jQuery(function($){

	$('.main-nav .page_item a').focus(function(){
		if (!$(this).parent().hasClass('current_page_item')) {
			$(this).parent().addClass('current_page_item');
			$(this).addClass('temp');
		}
	});
	
	$('.main-nav .page_item a').blur(function(){
		if ($(this).hasClass('temp')) {
			$(this).parent().removeClass('current_page_item');
		}
	});

	
	jQuery.ajaxSetup({
		timeout: 30000
	});
	//Ajax Error handler
	$(document).ajaxError(ajaxErrorHandler);
});

(function () {
var $el,
	counter = 0,
	fullscreen = false,
	mask;

jQuery.extend({
	showLoading: function (msg, options) {
		
		msg = msg || 'Saving';
		options = options || {};

		$el || ($el = $('#ajax_messages'));

		if (!options.hideProgressImg) {
			msg = '<img alt="" src="/images/indicator.gif" />&nbsp; ' + msg;
		}
		$el.html(msg);

		(counter == 0) && $el.show();
		if (!fullscreen && options.fullscreen) {
		
			$('body').trigger('hidePlayer');
		
			$el.addClass('fullscreen');
			$el.css("top", ( $(window).height() - $el.height() ) / 2+$(window).scrollTop() + "px");
			$el.css("left", ( $(window).width() - $el.width() ) / 2+$(window).scrollLeft() + "px");
			mask = $(document.createElement('div')).css({
				'position': 'fixed',
				'z-index': String($el.css('z-index') - 1),
				'background-color': '#FFF',
				'opacity': '0.6',
				left: '0', right: '0', top: '0', bottom: '0'
			}).appendTo(document.body);
			fullscreen = true;
		}
		counter++;
	},
	hideLoading: function () {
		counter--;
		if (counter == 0) {
			$el.hide();
			if (fullscreen) {
				$el.removeClass('fullscreen');
				$el.css("top", "");
				$el.css("left", "");
				mask.remove();
				fullscreen = false;
				
				$('body').trigger('showPlayer');
			}
		}
	}
});

})();

//Ajax Error handler
var ajaxErrorHandler = function(e, xhr, settings) {
	$('#saving').hide();
	
	var msg = '';
	if(e && e.error && e.error.message){
		msg = e.error.message;
	}else{
		if(!object_name) var object_name = 'object';
		var requestType = settings ? settings.type : settings;
		switch(requestType)
		{
			case 'GET':
				msg = 'Failed to receive the ' + object_name;
				break;
			case 'POST':
				msg = 'Failed to create the ' + object_name;
				break;
			case 'PUT':
				msg = 'Failed to update the ' + object_name;
				break;
			case 'DELETE':
				msg = 'Failed to delete the ' + object_name;
				break;
			default:
				msg = 'Ajax error detected';
		}
	}
	$('#ajax_messages').text(msg).fadeIn(1000).delay(3000).fadeOut(1000);
};

//Error logger
//Can be activated on any page using code: window.onerror = errorHandler;
var error_content="";
function errorHandler(errMessage,url,line){
	try{
		var data = {
			error_mesage: errMessage,
			file_location: (url.indexOf('?')>-1?url.slice(0,url.indexOf('?')):url),
			line_number: line,
			browser: navigator.userAgent.replace(/;/g,','),
			referrer: document.URL
		};
		
		$.postJSON('/info/add-error-entry', data);
	}catch(e){};
	return true;
}

function keepSessionAlive(){
	/*
	 * Sends empty echo request every 10m, just to keep session alive
	 */
	setInterval(function(){
		$.getJSON('/info/time', {}, function(){});
	},600000);
}

showFlashRequiredMessage = function (major) {
	if (is_idevice || is_bberry) {
		return;
	}
	if (!window.swfobject || swfobject.getFlashPlayerVersion()['major'] > (major ? major-1 : 0)) {
		return;
	}
	function onCloseClick() {
		$('#flash-required').closeDialog();
		return false;
	};
	if (!showFlashRequiredMessage.initialized) {
		$('#flash-required a.btn.done').click(onCloseClick);
		showFlashRequiredMessage.initialized = true;
	}
	$('#flash-required').openDialog();
};
