/**
 * 
 */

function initJs() {
	jQuery("a").focus(function(event) {
		jQuery(event.target).blur(this);
	});
	jQuery('#lang-pl').click(function() {
		  jQuery('#language').val('pl');
		  jQuery('#langForm').submit();
	});
	jQuery('#lang-en').click(function() {
		  jQuery('#language').val('en');
		  jQuery('#langForm').submit();
	});
	jQuery.preloadCssImages();
}

function initMainBoxesAnimation(params) {
	jQuery(document).ready(function() {
		fadeInPanel({panelClass: 'panel', panelNo: 1, transparent: 0.7});
		initTimer(params);
	});
}

var iter = 0;
function initTimer(params) {	
	jQuery(document).oneTime(2500, function() {
		fadeElement({pattern: '.panel' + (iter % 3 + 1), transparent: 1, speed: 300});
		jQuery(document).everyTime(6000, function() {
			fadeOutPanel(1, params, fadeOutPanel(2, params, fadeOutPanel(3, params, function() {
				fadeElement({pattern: '.panel' + (iter % 3 + 1), transparent: 1, speed: 300});
			})));
			++iter;
		}, 0);	
	});
}



function fadeOutPanel(panelNo, params, callback) {
	fadeElement({pattern: '.panel' + panelNo, transparent: 0.7, speed: 300, fn: callback});
}

function fadeInPanel(params) {
	jQuery('.' + params.panelClass + params.panelNo).mouseover(function(event) {
		fadeElement({pattern: '.' + params.panelClass + params.panelNo, transparent: 1, speed: 300});
		jQuery(document).stopTime();
	});
	jQuery('.' + params.panelClass + params.panelNo).mouseout(function(event) {
		fadeElement({pattern: '.' + params.panelClass + params.panelNo, transparent: params.transparent, speed: 300});
		initTimer(params);
		
	});
	jQuery('.' + params.panelClass + params.panelNo).mouseleave(function(event) {
		fadeElement({pattern: '.' + params.panelClass + params.panelNo, transparent: params.transparent, speed: 300});
	});
	
	jQuery('.' + params.panelClass + params.panelNo).animate({
		opacity: params.transparent
	}, 450, null, function() {
		if (params.panelNo < 4) {
			fadeInPanel({panelClass: params.panelClass, panelNo: (params.panelNo + 1), transparent: params.transparent});
		}
	});	

}

function fadeElement(params) {
	jQuery(params.pattern).clearQueue();
	jQuery(params.pattern).animate({
		opacity: params.transparent
	}, params.speed, null, function() {
		if (params.fn) {
			params.fn();
		}
	});
}

function getSelectedSlideNo(params) {
	for(var i = 0; i < params.count; ++i) {
		if (jQuery(".page-" + i).hasClass("selected")) {
			return i;
		}
	}
	return -1;
}

function initSlider(params) {
	setPage(0);
	jQuery(".page-1").addClass("selected");
	jQuery(".page").click(function(event) {
		resetSlideTimer(params);
		jQuery(".page").removeClass("selected");
		for(var i = 0; i < params.count; ++i) {
			if (jQuery(event.target).hasClass("page-" + i)) {
				setPage(i);
				jQuery(event.target).addClass("selected");
				break;
			}
		}		
	});
	initSlideTimer(params);
}

function initSlideTimer(params) {
	jQuery(".slider").everyTime(params.time * 1000, function() {
		var i = getSelectedSlideNo(params);
		i = ((i + 1) % params.count);
		jQuery(".page").removeClass("selected");
		setPage(i);
		jQuery(".page-" + i).addClass("selected");
	});	
}

function resetSlideTimer(params) {
	jQuery(".slider").stopTime();
	initSlideTimer(params);
}

function setPage(no) {
	jQuery(".slider").fadeOut("slow", function() {
		jQuery(".slider").html(jQuery(".slide-" + no).html());
		jQuery(".slider").fadeIn("slow");
	});
}
