function GetRidFromCartaddUrl( url )
{
	var re = /add-(\d+),/;
	var res = url.match( re );
//	alert( "url: "+url +" res: " + res );
	if( res ){
		return res[1];
	}else{
		return false;
	}
}

function ExtractCartStatusJsonObject( html )
{
	var re = /#jsondata([^\0]*)#endjsondata/;
	var res = html.match( re );
	if( res.length ){
		var jsonstr = res[1];
		var jsonobj = eval( "(" + jsonstr + ")" );
		return jsonobj;
	}else{
		return false;
	}
}

function IsProductPresentInJson( jsonobj, product_rid )
{
	var present = 0;
	for(var i=0; i< jsonobj.cart_identifiers.length; i++ ){
		if(jsonobj.cart_identifiers[i] == product_rid ){
			present = 1;
			break;
		}
	}
	return present;
}


//
// Ustawia zdarzenia ajax dla anhorow dodajacych do koszyka.
// Przyklad, zeby ustawic zdarzenia dla wszystkich elementow na stronie:
// 	SetupCartAhrefEvents( $("body") );

function SetupCartAhrefEvents( parentElements, fnAjaxStart, fnAjaxSuccess )
{
	var elements = parentElements.find(".add_koszyk");
	elements.click( function(){
		if( js_is_cart_category )		//jesli jest sie w kategorii koszyka to niech przeladuje strone.
			return true;
		var url = $(this).attr( "href" );
		url = url.replace( /koszyk/i, "requests/koszyk_async" );
		var product_rid = GetRidFromCartaddUrl(url);
		var sltr = $(this).attr( "preloader_slctr" );
		if( sltr != undefined ){
			var prnt = $(sltr);
			if( prnt != undefined ){
				var html =
					"<div style='background: transparent; position: absolute;' class='js_preloader_chldboxabs'>" +
					"	<img src='/img/layout/loading.gif' alt='image' />" +
					"</div>" +
					"";
				prnt.append( html );
				var dom = prnt.children( ":last" );
				var pos = {
					x: prnt.width() / 2 - dom.width() / 2,
					y: prnt.height() / 2 - dom.height() / 2
				};
				dom.css( "left", pos.x + "px" );
				dom.css( "top", pos.y + "px" );
			}
		}
			
		if( $.isFunction( fnAjaxStart ) )
			fnAjaxStart();
		$.ajax({
			async: true,
			type: "GET",
			url: url,
			success: function( html, textStatus ){
				$(".js_koszyk_dashboard_locatorx:first").empty();
				if( textStatus == "success" ){
					$(".js_koszyk_dashboard_locatorx:first").append( html );
				}
				var chba = $(sltr).find( ".js_preloader_chldboxabs" );
				chba.remove();
				var jsonobj   = ExtractCartStatusJsonObject( html );
				var addresult = IsProductPresentInJson( jsonobj, product_rid );
				if( $.isFunction( fnAjaxSuccess ) ){
					fnAjaxSuccess({ addresult: addresult, tpl_obj: jsonobj });
				}
				/*$("#alertwin").show();
				$("#alertwin .message").html("Produkt dodany do koszyka");
				setTimeout("$('#alertwin').fadeOut('slow');", 2000);*/
			}
		});
		return false;
	});
}




$(document).ready( function(){

	function Polecane2ButtonClick()
	{
		//alert("a");
		var btns = $(".polecane_tab_buttonx");
		if( !btns.size() )
			return;
		var originalColor;
		{
			var domelem = btns.get(0);
			if( domelem.originalColor == undefined ){
				domelem.originalColor = $(domelem).css( "background-color" );
			}
			originalColor = domelem.originalColor;
		}
		var nshow = 2;
		var btndom = this;
		$.each( btns, function( i ){
			if( this === btndom ){
				$(this).css( "background-color", "#b37db3" );
				current = i;
				nshow = $(this).attr( "title" );
			}else{
				$(this).css( "background-color", originalColor );
			}
		});
		var elems = $(".polecane_elem_containerx");
		$.each( elems, function( i ){
			if( i< nshow ){
				$(this).css( "display", "block" );
			}else{
				$(this).css( "display", "none" );
			}
		});
	}
	$(".polecane_tab_buttonx").click( Polecane2ButtonClick );
	// trigger initial elements.
	Polecane2ButtonClick.call( $(".polecane_tab_buttonx:first").get(0) );
/*
	//
	// aktualnosci rearrange na stronie glownej.
	//
	{
		var akt_source = $(".aktualnoscix_box");
		if( akt_source != undefined ){
			var akt_target = $(".aktualnoscix_redir_target");
			if( akt_target != undefined ){
				var cloned = akt_source.clone();
				akt_target.append( cloned );
				akt_source.empty();
			}
		}
	}
//*/

	//
	// przelaczanie obrazkow w szczegolach produktu.
	//
	var prodpbx = $(".produktdtil_pic_box");
	if( prodpbx != undefined ){
		var btns = prodpbx.find( ".js_produktdtil_imbtn" );
		btns.mousedown( function(){
			var bindex = $(this).attr("params");
			var imgboxs = prodpbx.find( ".produktdtil_oneimage" );
			var oldimg = undefined, newimg = undefined;
			imgboxs.each( function(){
				var iindex = $(this).attr("params");
				var dsply = $(this).css( "display" );
				if( dsply && dsply != "none" )
					oldimg = this;
				if( bindex == iindex )
					newimg = this;
			});
		//	$(this).siblings(".js_produktdtil_imbtn").removeClass( "produktdtil_imgbutn_sel" );
			//selected_class
			var that = this;
			$(".js_produktdtil_imbtn").each( function(){
				if( that !== this ){
					//$(this).removeClass( "produktdtil_imgbutn_sel" );
					var cls = $(this).attr( "selected_class" );
					if( cls )
						$(this).removeClass( cls );
				}
			});
		//	$(this).addClass( "produktdtil_imgbutn_sel" );
			var cls = $(this).attr( "selected_class" );
			if( cls )
				$(this).addClass( cls );
			if( oldimg !== newimg ){
				if( $.browser.msie && 0000 ){
					$(oldimg).css( "display", "none" );
					$(newimg).css( "display", "block" );
				}else{
					$(oldimg).stop()
						.animate( {opacity: "0.0"}, 333, function(){
							$(oldimg).css( "display", "none" );
							$(newimg)
								.stop()
								.css( "display", "block" )
								.css( "opacity", "0.0" )
								.animate( {opacity: "1.0"}, 333 );
						});
				}
			}
		});
	}

	//
	// checkboxy w wyszukiwarce zaawansowanej. przerobienie checkboxow na divy z eventen na "click".
	//
	var cfcbmlist = $(".colors_form_checkboxlist");
	if( cfcbmlist != undefined ){
		var ones = cfcbmlist.children( ".multilist_one_checkbox" );
	//	cfcbmlist.children().remove( ".clear" );
		ones.each( function(){
			var input = $(this).children("input");
			var divbox = $(this).children(".cf_color_checkbox");

			$(this).children().remove( ".cf_color_text, br" );
		//	$(this).siblings().remove( ".clear" );
			input.css( "display", "none" );

			var chash = divbox.attr("chash").replace( /#/i, "" );
			divbox.addClass( "wyszzaaw_kolorboxmst" );
			divbox.css( "width", "21px" ).css( "height", "22px" );
			divbox.css( "background", "url(/img/layout/kolorbox_double_"+chash+".gif) 0px 0px no-repeat" );

			if( input.attr("checked") )
				divbox.css( "background", "url(/img/layout/kolorbox_double_"+ chash +".gif) -21px 0px no-repeat" ).get(0).myCheckState = 1;
			divbox.css( "background-color", divbox.attr("chash") );

			divbox.click( function(){
				if( this.myCheckState == undefined )
					this.myCheckState = 0;
				this.myCheckState = !this.myCheckState;
				if( this.myCheckState ){
					$(this).siblings("input").attr( "checked", "checked" );
					$(this).css( "background", "url(/img/layout/kolorbox_double_"+ chash +".gif) -21px 0px no-repeat" );
				}else{
					$(this).siblings("input").removeAttr("checked");
					$(this).css( "background", "url(/img/layout/kolorbox_double_"+ chash +".gif) 0px 0px no-repeat" );
				}
			});
		});
	}

	function OnClickZwinrozwinActivator( first_run )
	{
		var trgtselector = $(this).attr("zwinrozwin_target_selector");
		var reverse = $(this).attr("reverse");
		var alt = $(this).attr("alt_text");
		var nocookie = $(this).attr("no_cookie");
		var cookiename = "js_zwrw_"+trgtselector+"_visibility";
		if( trgtselector != undefined && trgtselector != "" ){
			if( this.state == undefined )
				this.myOrigText = $(this).text();
			if(!nocookie)
				this.state = parseInt( $.cookie( cookiename ) );
			if( this.state == undefined || isNaN(this.state) )
				this.state = reverse? 1: 0;
			if( first_run == 0 )
				this.state = !this.state? 1: 0;
			if( this.state ){
				if(alt != undefined)
					$(this).text( alt );
				if(first_run){
					$(trgtselector).hide();
				}else{
				//	$(trgtselector).hide( "slow" );
					$(trgtselector).slideUp( "slow" );
				}
			}else{
				$(this).text( this.myOrigText );
				$(trgtselector).slideDown( "slow" );
			}
			if(!nocookie)
				$.cookie( cookiename, ""+this.state, {path:"/"} );
		}
	}
	$(".js_zwinrozwin_activator").click( function(){ OnClickZwinrozwinActivator.call( this, 0 ); } );
	$(".js_zwinrozwin_activator").each( function(){ OnClickZwinrozwinActivator.call( this, 1 ); });


	$(".tooltip_flwr_activator").tooltip({
		delay: 0,
		track: true,
		showURL: false,
		showBody: " - ",
		fixPNG: true,
		bodyHandler: function(){
			var box = $(this).nextAll(".js_tooltip_flwr_box:first").clone();
			box.css( "display", "block" );
			return box;
		}
	});

	/*********
	function SetupAnhorTitleTooltips( parentElements )
	{
		var elements = parentElements.find( "a[title]" );
		//elements.each( function(){
		//	$(this).attr( "title2", $(this).attr("title") );
		//});
		elements.tooltip({
			track: true, 
    			delay: 0, 
  			showURL: false, 
  			showBody: " - ", 
    			extraClass: "caltooltip", 
    			fixPNG: true, 
    			opacity: 1, 
    			left: -120
		//	bodyHandler: function(){
		//		var box = $(".js_generic_tooltipprebox .js_tooltip_flwr_box").clone();
		//		box.css( "display", "block" );
		//		var cont = box.find(".tooltip_fppl_tdmidcontent");
		//		cont.empty();
		//		cont.html( $(this).attr("title2") );
		//		return box;
		//	}
		});
	}
	SetupAnhorTitleTooltips( $("body") );
	/*************/



	var formazautomatu = $("form#form");
	if( formazautomatu != undefined ){
		var chkbox = $( "input[name=newsletter_js]" );
		if( chkbox.length != 0 ){
			formazautomatu.submit( function(){
				var chkbox = $( "input[name=newsletter_js]" );
				if( chkbox.length != 0 ){
					if( dbfromValidReturnValue == true ){
						if( Boolean( chkbox.attr( "checked" ) ) ){
							//alert( "value: " + chkbox.attr( "checked" ) );
							var email = $( "#dbformFlogin" ).val();
							var url = "/newsletter.php#newsletter";
							var data = "email=" + email + "&action=save&submit=zapisz";
							$.ajax({
								type: "POST",
								url: url,
								async: false,
								complete: function( XMLHttpRequest, textStatus ){
									//alert( "req completed, status: " + textStatus );
								},
								data: data
							});
						}
					}
					//
					//return false;
					//
				}
			});
		}
	}

	//
	// koszyk-teczka
	//


	function KoszykTeczkaClick( no_animation ){
		var oldelem = false, newelem = false;
		var that = this;
		$(".js_twojkoszyk, .js_twojateczka").each( function(){
			var sltr = $(this).attr( "body_selector" );
			var elem = $(sltr);
			if( this === that ){
				newelem = elem;
				$(this).addClass( "twojkoszykteczka_captext_selx" );
			}else{
				oldelem = elem;
				$(this).removeClass( "twojkoszykteczka_captext_selx" );
			}
		});
		if( oldelem !== false ){
			if( no_animation ){
				oldelem.hide();
				newelem.show();
			}else{
				oldelem.slideUp( 333, function(){
					newelem.slideDown( 333 );
				});
				//$("#main").fadeOut("slow");
			}
		}
	};
	$(".js_twojkoszyk, .js_twojateczka").click( function(){ KoszykTeczkaClick.call( this, 0 ); } );
	KoszykTeczkaClick.call( $(".js_twojkoszyk").get(0), 1 );


	var ahref_dodschdokosz = $(".js_dodschdokoszykax");
	if( ahref_dodschdokosz != undefined ){
		ahref_dodschdokosz.click( function(){
			if( typeof js_sz_musisz_byc_zal == "undefined" )
				$("#jsi_showek_invisible_form").submit();
			return false;
		});
	}

	
	if( typeof js_sz_musisz_byc_zal != "undefined" ){
		
		$(".js_zal_only_button").click( function(){
			var slctr = $(this).attr( "text_body_selector" );
			if( slctr != undefined ){
				$(slctr).text( js_sz_musisz_byc_zal );
			}
			var trgtkid = $(this).find( ".js_zal_only_text" );
			if( trgtkid != undefined ){
				trgtkid.text( js_sz_musisz_byc_zal );
			}
			return false;
		});
	}
	


	SetupCartAhrefEvents( $("body"), function(){}, function( statusobj ){
		ShowPopupDialog( statusobj.addresult? "Produkt dodany do koszyka": "Produkt nie został dodany do koszyka z powodu braku na magazynie", false );
	});


	var dlgbox1 = $(".js_dialogbox");
	if( dlgbox1 != undefined && dlgbox1.length ){
		var bhgt = $("body").height();
		dlgbox1.dialog({
			modal: true, 
			autoOpen: false,
			overlay: {
				opacity: 0.7,
				width: "100%",
				height: bhgt + "px",
				backgroundColor: "#393939"
			},
			resizable: false,
			width: "auto",
			height: "auto"
		});
	}

});

//
// Pokazuje dialog box. Komunikat albo pobiera z parametru albo wyswietla to co aktualnie jest w elemencie.
//
function ShowPopupDialog( message, no_autoclose )
{
	var dlgbox = $(".js_dialogbox");
	dlgbox.css( "display", "block" );
	dlgbox.dialog("open");
	$(".ui-dialog-content").css( "height", "auto" );
	var numwrds = 0;
	if(message){
		numwrds = message.split(" ").length;
	}else{
		numwrds = dlgbox.eq(0).find(".js_msg:first").text().split(" ").length;
	}
	var duration = numwrds * 200;		// 3000 / 5 = 600
	duration = Math.min( Math.max( duration, 1000 ), 10000 );
	if( message ){
		dlgbox.eq(0).find(".js_msg:first").text( message );
	}

	if( !no_autoclose ){
		setTimeout( function(){
			var speed = 500;
			dlgbox.fadeOut( speed, function(){
				dlgbox.dialog("close");
			});
			$(".ui-dialog-overlay").fadeOut( speed );
		}, duration );
	}
}


