var $jq = jQuery.noConflict();

function initAnimations(slidersXBool, slidersXPause, hiddersBool, hiddersPause, slidersYBool, slidersYPause) {
// animowane nowowsci
	hidders(hiddersBool, hiddersPause * 1000);
// animowane promocje
	slidersX(slidersXBool, slidersXPause * 1000);
// animowane polecane
	slidersY(slidersYBool, slidersYPause * 1000);
}

function hidders(bool, pause) {
	var maxWidthHidders = 0;
	var maxHeightHidders = 0;
	var countHidders = jQuery("#windowHider").find("div.innerHider").length;
	
	for(var i = 0; i < countHidders; i++) {
		var widthHidders = jQuery("#windowHider").find("div.innerHider")[i].offsetWidth;
		var heightHidders = jQuery("#windowHider").find("div.innerHider")[i].offsetHeight;
		
		if(widthHidders > maxWidthHidders) {
			maxWidthHidders = widthHidders;
		}
		
		if(heightHidders > maxHeightHidders) {
			maxHeightHidders = heightHidders;
		}
	}
	
	/*		CSS		*/
	var hidderWindow = {
		width: maxWidthHidders + "px",
		height: maxHeightHidders + "px",
		position: "relative"
	}
	
	var hidderWindowCell = {
		width: maxWidthHidders + "px",
		height: maxHeightHidders + "px",
		position: "absolute"
	}
	
	jQuery("#windowHider").css(hidderWindow);
	jQuery("#windowHider").find("div.innerHider").css(hidderWindowCell);
	
	var k = 0;
	var obj;
	
	function showHidden(what) {
		what.animate({opacity: 1}, 3000);
		what.animate({opacity: 1}, pause);
		what.animate({opacity: 0}, 1500, animateHidden);
		k++;
	}
	
	function animateHidden() {
		if(k == countHidders || k == 0) {
			jQuery("#windowHider").find("div.innerHider").css({opacity: "0", display: "none"});
			obj = jQuery("div.innerHider:first");
			obj.css({display: "block"});
			k = 0;
			showHidden(obj);
		} else {
			obj = obj.next("div.innerHider");
			obj.css({display: "block"});
			showHidden(obj);
		}
	}
	
	if(bool) {
		animateHidden();
	} else {
		jQuery("#windowHider").find("div.innerHider").css({opacity: "0"});
		jQuery("div.innerHider:first").css({opacity: "1"});
	}
}

function slidersX(bool, pause) {
/*	var maxWidthSlidersX = 0;
	var maxHeightSlidersX = 0;
	var maximg = 0;
	var countSlidersX = jQuery("#windowHorizontal").find("div.innerSliderHor").length;
	
	for(var i = 0; i < countSlidersX; i++) {
		var img = jQuery("#windowHorizontal").find("div.innerSliderHor img")[i].offsetWidth;
		var widthSlidersX = jQuery("#windowHorizontal").find("div.innerSliderHor")[i].offsetWidth;
		var heightSLidersX = jQuery("#windowHorizontal").find("div.innerSliderHor")[i].offsetHeight;
		
		if(widthSlidersX > maxWidthSlidersX) {
			maxWidthSlidersX = widthSlidersX;
		}
		
		if(heightSLidersX > maxHeightSlidersX) {
			maxHeightSlidersX = heightSLidersX;
		}
		
		if(img > maximg) {
			maximg = img;
		}
		
	}
	///		CSS		
	var sliderXWindow = {
		width: maximg + "px",
		height: maxHeightSlidersX + "px",
		margin: "0px",
		padding: "0px",
		overflow: "hidden",
	}
	
	var sliderXWindowCell = {
		width: maximg + "px",
		height: maxHeightSlidersX + "px",
		margin: "0px",
		padding: "0px",
		display: "block",
		float: "left"
	}
	
	// trzeba zmienic rozmiary wielkiego kontenera,
	// w ktorym sa mniejsze komorki, by mogly byc jedna kolo drugiej
	var containerX = {
		width: countSlidersX * maxWidthSlidersX + "px"
	}
	
	jQuery("#windowHorizontal").css(sliderXWindow);
	jQuery("#containerHorizontal").css(containerX);
	jQuery("#windowHorizontal").find("div.innerSliderHor").css(sliderXWindowCell);
	jQuery("#windowHorizontal").find("div.innerSliderHor p").css({width: maximg + "px"});
	jQuery("#windowHorizontal").find("div.innerSliderHor *").css({padding: "0px", margin: "0px"});
	
	var j = 0;
	offsetX = maximg;
	
	function animateSliderX() {
		if(j == (countSlidersX + 1) || j == 0) {
			jQuery("#containerHorizontal").css({left: offsetX + "px"});
			j = 0;
		} 
		
		j++;
		
		if(j < countSlidersX + 2) {
			jQuery("#containerHorizontal").animate({left: "-=" + offsetX}, 2500);
			
			// to jest "przerwa" w wyswietlaniu, ten kod sprawia ze przewijanie zatrzymuje sie
			// by pokazac produkt przez chwile, zanim znow bedzie pzewiniety
			if(j == (countSlidersX + 1) || j == 0) {
				// to jest stosowane, gdy skoncza sie divy do przewijania i nastepuje ich
				// restart, to to eliminuje potrzebe czekania (pauzy)
				jQuery("#containerHorizontal").animate({left: "-= 0"}, 0, animateSliderX);
			} else {
				jQuery("#containerHorizontal").animate({left: "-= 0"}, pause, animateSliderX);
			} 
		}
	}
	/////////////////////////////////////////////////////////////////
	if(bool) {
		animateSliderX();
	}
	*/
		var maxWidthSlidersX = 0;
	var maxHeightSlidersX = 0;
	var countSlidersX = jQuery("#containerHorizontal").find("div.innerSliderHor").length;
	
	for(var i = 0; i < countSlidersX; i++) {
		var widthSlidersX = jQuery("#containerHorizontal").find("div.innerSliderHor")[i].offsetWidth;
		var heightSLidersX = jQuery("#containerHorizontal").find("div.innerSliderHor")[i].offsetHeight;
		
		if(widthSlidersX > maxWidthSlidersX) {
			maxWidthSlidersX = widthSlidersX;
		}
		
		if(heightSLidersX > maxHeightSlidersX) {
			maxHeightSlidersX = heightSLidersX;
		}
	}
	
	/*		CSS		*/
	var sliderXWindow = {
		width: "100%",
		height: maxHeightSlidersX + "px",
		margin: "0px",
		padding: "0px"
	}
	
	var sliderXWindowContainer = {
		width: "100%"
	}
	
	//podwojenie wysokosci diva, by byla przerwa miedzy przewijanymi produktami
	maxHeightSlidersX *= 2;
	
	var sliderXWindowCell = {
		width: "100%",
		height: maxHeightSlidersX + "px"
	}
	
	jQuery("#windowHorizontal").css(sliderXWindow);
	jQuery("#containerHorizontal").css(sliderXWindowContainer);
	jQuery("#windowHorizontal").find("div.innerSliderHor").css(sliderXWindowCell);

	offsetX = maxHeightSlidersX;
	var i = 0;
	
	function animateSliderX() {
		if(i == (countSlidersX + 1) || i == 0) {
			jQuery("#containerHorizontal").css({top: offsetX});
			i = 0;
		} 
		
		i++;
		
		if(i < countSlidersX + 2) {
			jQuery("#containerHorizontal").animate({top: "-=" + offsetX}, 3000);
			
			// to jest "przerwa" w wyswietlaniu, ten kod sprawia ze przewijanie zatrzymuje sie
			// by pokazac produkt przez chwile, zanim znow bedzie pzewiniety
			if(i == (countSlidersX + 1) || i == 0) {
				// to jest stosowane, gdy skoncza sie divy do przewijania i nastepuje ich
				// restart, to to eliminuje potrzebe czekania (pauzy)
				jQuery("#containerHorizontal").animate({top: "-=" + 0}, 0, animateSliderX);
			} else {
				jQuery("#containerHorizontal").animate({top: "-=" + 0}, pause, animateSliderX);
			} 
		}
	}
	
	// wywolanie funkcji animacji przesuwajacych sie animacji boksa "polecanych"
	if(bool) {
		animateSliderX();
	}
	
}

function slidersY(bool, pauseY) {
	var maxWidthSlidersY = 0;
	var maxHeightSlidersY = 0;
	var countSlidersY = jQuery("#container1").find("div.net77_nowosci_nowe").length;
	
	for(var i = 0; i < countSlidersY; i++) {
		var widthSlidersY = jQuery("#container1").find("div.net77_nowosci_nowe")[i].offsetWidth;
		var heightSLidersY = jQuery("#container1").find("div.net77_nowosci_nowe")[i].offsetHeight;
		
		if(widthSlidersY > maxWidthSlidersY) {
			maxWidthSlidersY = widthSlidersY;
		}
		
		if(heightSLidersY > maxHeightSlidersY) {
			maxHeightSlidersY = heightSLidersY;
		}
	}
	
	/*		CSS		*/
	var sliderYWindow = {
		width: "100%",
		height: maxHeightSlidersY + "px",
		margin: "0px",
		padding: "0px"
	}
	
	var sliderYWindowContainer = {
		width: "100%"
	}
	
	//podwojenie wysokosci diva, by byla przerwa miedzy przewijanymi produktami
	maxHeightSlidersY *= 2;
	
	var sliderYWindowCell = {
		width: "100%",
		height: maxHeightSlidersY + "px"
	}
	
	jQuery("#windowSlider").css(sliderYWindow);
	jQuery("#container1").css(sliderYWindowContainer);
	jQuery("#windowSlider").find("div.net77_nowosci_nowe").css(sliderYWindowCell);

	offsetY = maxHeightSlidersY;
	var i = 0;
	
	function animateSliderY() {
		if(i == (countSlidersY + 1) || i == 0) {
			jQuery("#container1").css({top: offsetY});
			i = 0;
		} 
		
		i++;
		
		if(i < countSlidersY + 2) {
			jQuery("#container1").animate({top: "-=" + offsetY}, 3000);
			
			// to jest "przerwa" w wyswietlaniu, ten kod sprawia ze przewijanie zatrzymuje sie
			// by pokazac produkt przez chwile, zanim znow bedzie pzewiniety
			if(i == (countSlidersY + 1) || i == 0) {
				// to jest stosowane, gdy skoncza sie divy do przewijania i nastepuje ich
				// restart, to to eliminuje potrzebe czekania (pauzy)
				jQuery("#container1").animate({top: "-=" + 0}, 0, animateSliderY);
			} else {
				jQuery("#container1").animate({top: "-=" + 0}, pauseY, animateSliderY);
			} 
		}
	}
	
	// wywolanie funkcji animacji przesuwajacych sie animacji boksa "polecanych"
	if(bool) {
		animateSliderY();
	}
	
}
var loginForm="";
function loginPopup()
{
	if(!loginForm)
	{
		jQuery.ajax({
			type: "GET",
			url: "rpc.php?action=get_login_form&plain",
			dataType: "html",
			async: false,
			success: function(response){
				loginForm = response;
				loginForm = jQuery(loginForm).filter("#mam_konto").html();
				jQuery.fancybox(loginForm);
			}	
		});
	}
	else
		jQuery.fancybox(loginForm);
	if(loginForm){
		return false;
	}
}
var registerForm="";
function registerPopup()
{
	if(!registerForm)
	{
		jQuery.ajax({
			type: "GET",
			url: "rpc.php?action=get_login_form&plain",
			dataType: "html",
			async: false,
			success: function(response){
				registerForm = response;
				registerForm = jQuery(registerForm).filter("#jestem_nowy").html();
				jQuery.fancybox(registerForm);
			}	
		});
	}
	else
		jQuery.fancybox(registerForm);
	if(registerForm){
		return false;
	}
}

function askAvailable(elem)
{
	var pattern = /products_id=([\d]+)$/im;
	var match = pattern.exec(elem.href);
	var id = match[1];
	if(id)
	{
		jQuery.ajax({
			type: "GET",
			url: "rpc.php?action=get_product_ask_avaliable&products_id="+id+"&plain",
			dataType: "html",
			async: false,
			success: function(response){
				askAvailableForm = response;
				jQuery.fancybox(askAvailableForm);
			}	
		});
		if(askAvailableForm){
			return false;
		}
	}
}

function tellFriend(elem)
{
	var idPattern = /products_id=([\d]+)$/im;
	var products_id = idPattern.exec(elem.href);
		products_id = products_id[1];
	var emailPattern = /to_email_address=([^&]+)/im;
	var email = emailPattern.exec(elem.href);
	if(email)
		email = email[1];
	if(products_id)
	{
		jQuery.ajax({
			type: "GET",
			url: "rpc.php?action=get_tell_a_friend&products_id="+products_id+(email ? "&to_email_address="+email : "")+"&plain",
			dataType: "html",
			async: false,
			success: function(response){
				tellFriendForm = response;
				jQuery.fancybox(tellFriendForm);
			}	
		});
		if(tellFriendForm){
			return false;
		}
	}
}

function centerBox(selector)
{
	var top = (jQuery(window).height() - jQuery(selector).outerHeight()) / 2;
	var left = (jQuery(window).width() - jQuery(selector).outerWidth()) / 2;
	jQuery(selector).css({top: (top > 0 ? top : 0)+'px', left: (left > 0 ? left : 0)+'px', position: "fixed"});
}

jQuery(document).ready(function(){
	//Fetching script path
	var scriptPath = document.location.host;
	scriptPath += (scriptPath[scriptPath.length-1] == "/" ? "" : "/");
	//Attaching login event
	jQuery("a").filter(function() {
		var reg = new RegExp(scriptPath+"(.*?)login\.php[^#]?$", "mi");
        return this.href.match(reg);
    }).click(loginPopup);
	//Attaching register event
	jQuery("a").filter(function() {
		var reg = new RegExp(scriptPath+"(.*?)login\.php[^#]?#jestem_nowy$", "mi");
        return this.href.match(reg);
    }).click(registerPopup);
	//Attaching ask_product_available event
	jQuery("a").filter(function() {
		var reg = new RegExp(scriptPath+"(.*?)product_ask_avaliable\.php", "mi");
        return this.href.match(reg);
    }).click(function(){return askAvailable(this)});
	//Attaching tell_a_freind event
	jQuery("a").filter(function() {
		var reg = new RegExp(scriptPath+".*?tell_a_friend\.php.*?", "mi");
        return this.href.match(reg);
    }).click(function(){return tellFriend(this)});
});
