//odścieżanie strony
function odswiez(){
	window.location.reload();	
}

//ustawianie stałej szerokości

jQuery.fn.extend({
  strictWidth: function() {
    return this.css('width',this.width()+'px');
  }
});

//1 zwraca najdłuższy ciąg znaków wystepujący w napisie(pierwszy argument) pomiędzy znakami { i } lub podanymi jako 2 i 3 argument

function $between(){
	var s=arguments[0];
	var ld='{';
	var rd='}';
	if(arguments[1] && arguments[2]){
		ld=arguments[1];
		rd=arguments[2];
	}
	return s.substring(s.indexOf(ld)+1, s.lastIndexOf(rd))	
}

//3 funkcja do kolorowania wierszy tabeli
function paintRows(elem){
	$('tr', elem).removeClass('hard');
	$('tr[td]:odd', elem).addClass('hard');
}



//4 funkcje do obsługi dodawania produktów do koszyka
function updateIlosc(zmiennik, roznica){
	var $wkoszyku=$('#jqwkoszyku');
	var $wkoszykuwartosc=$('#jqkoszkwartosc');
	var $podmiana=$('#jqpodmiana');
	var newwart=parseFloat($wkoszykuwartosc.text())+parseFloat(roznica);
	$wkoszykuwartosc.text(newwart.toFixed(2));
	
	var ile=$wkoszyku.text();
	ile=parseInt(ile)+zmiennik;
	$wkoszyku.text(ile+'');
	$podmiana.text(odmienRzeczownik(ile));
	return ile;
}

function setIlosc(liczba, wartosc){
	$('#jqwkoszyku').text(liczba+'');
	$('#jqpodmiana').text(odmienRzeczownik(liczba));
	$('#jqkoszkwartosc').text(parseFloat(wartosc).toFixed(2));
}

//funkcje do obsługi zapamiętywania starych wartości pól formularzy i kolorowania pól w zalezności od ich stanu

function setChangeEvent(obj){
	if(arguments[1])
		$(obj).bind('keyup', function(){
			$(this).removeClass("valerr updated");
			if(!compareValues(this))
				$(this).addClass("vc changed");
			else
				$(this).removeClass("vc changed");
		});
	else
		$(obj).bind('keyup', function(){
			$(this).removeClass("valerr updated").addClass('changed');
			if(!compareValues(this))
				$(this).addClass("vc");
			else
				$(this).removeClass("vc");
		});
}

function setUpdated(objs){
	objs.each(function (){
		this.oldvalue=$(this).val();
		if($(this).is('.changed'))
			$(this).removeClass("changed valerr").addClass("updated");
	})
}

function setBad(objs){
	objs.each(function (){
		$(this).removeClass("changed updated").addClass("valerr");
	})
}

function saveFieldsValues(objs){
	var arg1=arguments[1];
	objs.each(function (){
		this.oldvalue=$(this).val();
		if(arg1)
			setChangeEvent(this, arg1);
		else
			setChangeEvent(this);
	})
}

function compareValues(obj){
	return obj.oldvalue==$(obj).val();
}

//5 funkcje obsługi pojawiających się i znikających komunikatów
function printInNewWindow(echo){
		var okno=window.open();
		okno.document.write('<html><head><title></title>');
		okno.document.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">');
		okno.document.write('</head><body onclick="window.close();"><pre>');
		okno.document.write(echo);		
		okno.document.write('</pre></body></html>');
		okno.document.close();
		okno.focus();
}

var $infTimeId;

function loadData(json){
	if(json)
		$.each(json, function (k,o){
			if($(k).size()>0)
				$(k).empty().html(o);
		});
}

function prepareInfo(){
	var inf=$('#info');
	if(inf.size()==0)
		inf=$('<div id="info" class="flyTop"><div id="wcontent"></div><div id="wbottom"><div id="infIco"></div></div></div>').prependTo('body');
	else{
		if($infTimeId)
			clearTimeout($infTimeId);
		inf.css('display','none');
	}
	if(!inf.is(':has(#wtop)')){
		inf.prepend('<div id="wtop"><img src="images/w_minimalize.png" id="wdisplay"><img src="images/w_close.png" id="wclose" title="Zamknij"></div>');
		$('#wdisplay:eq(0)',inf).bind('click',function(){
			if($(this).attr('src').indexOf('min')>0){
				$(this).attr({'src':"images/w_maxymalize.png",'title':'Maksymalizuj'})
				$('#wcontent:eq(0)',inf).slideUp();
			}else{
				$(this).attr({'src':"images/w_minimalize.png",'title':'Minimalizuj'})
				$('#wcontent:eq(0)',inf).slideDown();				
			}
		}).css('cursor','pointer');
		$('#wclose:eq(0)',inf).bind('click',function(){
			$hideInfo();
		}).css('cursor','pointer');	
		var left=Math.round(($(document).width()-inf.width())/2);
		inf.css('left',left+'px')
	}else{
		//resetowanie
		$('#wdisplay:eq(0)',inf).attr({'src':"images/w_minimalize.png",'title':'Minimalizuj'});
		$('#wcontent:eq(0)',inf).slideDown();
	}
	return inf;
}

$showInfo=function(json){
	//printObject(json);
	/*if(json.devmsg)
		alert(json.devmsg);*/
	var typ=(json.typ?json.typ:'msg');
	var actionAfter=(json.runAfter?json.runAfter+'; ':'; ');
	var hideafter=(json.hideafter?json.hideafter:3000);
	
	loadData(json.data);
	if(json.echo)
		printInNewWindow(json.echo);
	if(json.runBefore)
		eval(json.runBefore+'; ');
	
	inf=prepareInfo();
	
	if(json.msg)
		$('#wcontent:eq(0)',inf).html(json.msg);
	else if(json.dontShow)
		$('#wcontent:eq(0)',inf).html('');

	if(json.runMiddle)
		eval(json.runMiddle+'; ');
	inf.removeClass().addClass(typ+' flyTop');
	$('div#infIco', inf).ifixpng();
	if($('#wcontent:eq(0)',inf).html()){
		if(hideafter>0)
			inf.fadeIn("slow", function (){$infTimeId=setTimeout(actionAfter+"$hideInfo()", hideafter);});
		else
			inf.fadeIn("slow", function (){
				eval(actionAfter);
			});
	}else
		eval(actionAfter);
}

function $hideInfo(){
	if($infTimeId)
		clearTimeout($infTimeId);
	var speed='slow';
	$('#info').fadeOut(speed, function(){$('div#infIco', this).iunfixpng();});
}


//6 funkcje obsługi paska ładowania danych
function $showLoad(){
	var lo=$('#load');
	if(lo.size()==0)
		lo=$('<div id="load" class="flyBottom">Proszę czekać...</div>').prependTo('body');
	else		
		lo.css('display','none');
	lo.fadeIn();
}

function $hideLoad(){
	var speed=(arguments[0]?arguments[0]:'slow');
	$('#load').fadeOut(speed);
}

//7 funkcja do podliczania wartości z koszyka
function podliczKoszyk(){
	var razem=0;
	var koszyk=$('#koszyk');
	$('td[id^=jqcena_brutto]', koszyk).each(function (i,o){
		var id=$between(this.id,'[',']');
		var	wartosc=parseFloat($(this).text())*parseInt($('input[name="jqilosc['+id+']"]', koszyk).val());
		if(isNaN(wartosc) || wartosc<=0) wartosc=0.0;
		$('td[id="jqwartosc_brutto['+id+']"]', koszyk).html(wartosc.toFixed(2));
		razem=razem+wartosc;
	});
	$('#jqrazemwartosc', koszyk).html(razem.toFixed(2));
}

//8 funkcja do usuwania niepotrzebnych wierszy w koszyku i liczniku koszyka
function removeDeleted(){
	var koszyk=$('#koszyk');
	var pozostalo=0;
	$('input[name^=jqilosc]', koszyk).each(function(i,o){
		var t_val=$(o).val();
		if(int(t_val) && t_val<1)
			$(o).parents('tr').eq(0).remove();
		else
			pozostalo++;
	});
	paintRows(koszyk);
	setIlosc(pozostalo, parseFloat($('#jqrazemwartosc', koszyk).text()));
}

//10 funkcja do ustawiania thickboxa
function setThickboxIn($objs){
	tb_init('a.thickbox', $objs);
}

//12 funkcja do walidacji i wysyłania formularzy POST lub GET parametr type odbiera dane w obiekcie JSON
function checkAndSendForm(selector, submiturl, type){
	var obj=$(selector);
	obj.find('input[name=back]').remove();
	var opt={
		url:submiturl, 		
		type:type,
		data:obj.formToArray(),
		dataType:"json",
		success:$showInfo,
		beforeSubmit:Validate.validateForm
	};
	if(arguments[4]){
		opt.beforeSubmit=arguments[3];
		opt.success=arguments[4];		
	}else if(arguments[3]){
		opt.success=arguments[3];
	}
	obj.ajaxForm(opt);
}

//14 funkcja do wypisywania nazw pól i wartości pól obiektu

function printObject(obj){
	var ret='';
	var sep='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	var padd=(arguments[1]?arguments[1]:'')
	if(typeof obj=='object')// && !obj instanceof Function)
		for (var i in obj){
			var v=obj[i];
		//$.each(obj, function (i,v){
			if(typeof v=='object'){// && !v instanceof Function){
				ret+=padd+'<b>'+i+'</b>:<br>'; 
				ret+=printObject(v,padd+sep);
			}else
				ret+=padd+'<b>'+i+'</b>: '+v+'<br>';
		}//);
	else
		ret=obj;
	if(padd=='')
		printInNewWindow(ret);
	else
		return ret;	
}

//15 link przypomnij hasło
function przypomnijHaslo(){
	$('#przypomnij-haslo').bind('click',function(event){
		$.getJSON("przypomnij-haslo.php?getcontent",
			  function(json) {
				   $showInfo(json);
			 }
		)
		return false;
	});	
}

//16 odmiana rzeczownika
function odmienRzeczownik(liczba){
	var rzeczownik=(arguments[1]?arguments[1]:'produkt')
	var konc=['ów', '', 'y'];
	var przedzdo21={0:[0, 0],1:[1, 1],2:[4, 2],5:[21, 0]};
	var przedzpo21={0:[1, 0],2:[4, 2],5:[9, 0]};			
	var przel=parseInt(liczba)%100;
	var przedz=przedzdo21;
	if(przel>=22){
		przedz=przedzpo21;
		przel=przel%10;
	}
	
	for(k in przedz)
		if(przel>=parseInt(k) && przel<=przedz[k][0])
			return rzeczownik+konc[przedz[k][1]];
}

//17 formularz kontaktowy
function przypomnijHaslo(){
	$('#jqKontakt').bind('click',function(event){
		$.getJSON("kontakt.php?getcontent",
			  function(json) {
				   $showInfo(json);
			 }
		)
		return false;
	});	
}

//zaznacz kategorię
function selectCategory(id){
	$('a[href^="k'+id+'-"]',$('#menucat')).addClass('current').parents('ol').show();
}

//zaznacz porzadek sortowania kategorii
function selectOrderCat(order){
	$("#selectcategoryorder option[value="+order+"]").attr('selected', 'selected');
}

//zaznacz producenta w kategorii
function selectManCat(order){
	$("#selectman option[value="+order+"]").attr('selected', 'selected');
}

//zmienne i uruchamianie funkcji !!!!!!!!!!!!!!!!!!!!!!!!!!!

var $noStdAJAX;
var $wKoszyku=false;
//on ready
$(function (){
	//zaokrąglenia w nagłówkach tabelek i formularzach
	$('table.formtab, table.colored').find('tr[th]').each(function(i,o){
		$th=$(o).find('th');
		if($th.size()==1){
			$($th).css('padding','0px').html('<img src="images/th_right.jpg" style="float:right;"><img src="images/th_left.jpg" style="float:left;"><div style="margin-top:4px; text-align:left;">'+$($th).html()+'</div>');
		}else{
			$th.filter(':first').css('background','#EDE0D0 url(images/th_left.jpg) top left no-repeat').end().filter(':last').css('background','#EDE0D0 url(images/th_right.jpg) top right no-repeat');
		}		
	})
	if(window.location.pathname.indexOf('koszyk.php')!=-1)
		$wKoszyku=true;

	//obsługa formularzy logowania i newslettera
	checkAndSendForm('#frmlogowanie', "logowanie.ax.php"+($wKoszyku?'?full':window.location.search), "GET");
	
	checkAndSendForm("#frmnewsletter","newsletter.ax.php", "GET");
	
	checkAndSendForm('#frmszybkiezakupy', "zakupy-autoryzacja.ax.php", "POST");

	//dodawanie stylu do radio
	$('input:radio, input:checkbox').addClass('radio');
	
	//inicjalizacja menu kategorii-----------------------------------------------------------------------//

	jqsekcjamenu=$('#menucat');
	$("div#menucat ol").each(function (i,o){
		if(i==1)
		$(o).addClass('menucat');
	});
	$("div#menucat ol:first").addClass('menucat');
	$("div#menucat ol.menucat ol").addClass('podmenu');
	$("div#menucat ol.menucat ol.podmenu ol").addClass('podmenu2');
	$("div#menucat ol.menucat ol.podmenu ol").removeClass('podmenu');

	//reakcja na kliknięcie opcji poziom1
	$('li:has(ol.podmenu)', jqsekcjamenu).each(function (i,o){
		var a=$(o).children('a:first');
		$(a).bind('click', function (){
				var next=$(o).children('.podmenu:first');
				if ( $(a).is(".active")&&next.css('display') ){
					$(a).removeClass('active');
				}else{
					$('a.active').removeClass('active');
					$(a).addClass('active');
				}
				$('.podmenu:visible', jqsekcjamenu).not(next).slideUp(1);
				next.slideToggle("fast"); //zwalnia ostro w IE6
				return false;
		});
	});
	//reakcja na kliknięcie opcji poziom2
	$('li:has(ol.podmenu2)', jqsekcjamenu).each(function (i,o){
	var a=$(o).children('a:first');
		$(a).bind('click', function (){
				var next=$(o).children('.podmenu2:first');
				$('.podmenu2:visible', jqsekcjamenu).not(next).slideUp(1);
				next.slideToggle("fast"); //zwalnia ostro w IE6
				return false;
		});
	});


	//wypełnianie pustych komórek tabeli
	$('td:empty').html('&nbsp');
	
	//odznaczanie zaznaczanego elementu
	$('a, input:button, input:image, input:radio, img').click(function(){this.blur()});

	//zapamiętywanie wartości pól które mają być aktualizowane
	saveFieldsValues($('input, textarea, select, radio', $('form.jqupdate')), 'strict');

	//testowa obsługa błędów ajaxa
	$('body').ajaxError(function(request, settings){
	   $hideLoad();
	   //printObject(request);
	   //printObject(settings);
	   printInNewWindow('<b>responseText</b>: '+settings.responseText+'<br>');
	}).ajaxStart(function(){
		if(!$noStdAJAX)
			$showLoad();
	}).ajaxStop(function(){
		if(!$noStdAJAX)
			$hideLoad();
	});
	
	//domyślne wartości pola wyszukiwania
      domyslnyText('input[name=keywords]','podaj nazwę produktu ...');
	  domyslnyText('input[name=keywords2]','podaj nazwę produktu ...');
      domyslnyText('input[name=nimie]','Imię ...');
	domyslnyText('input[name=nemail]','E-mail ...');
	
	// przewijanie zawansowanego wyszukiwania
	$("#advanced-search-link").click(function(){
		$.scrollTo('[name=advanced-search]',800);
		setTimeout("$('#advanced-search').fadeOut()", 1100);
		setTimeout("$('#advanced-search').fadeIn()", 1300);
		return false;
	});
});

//on load
$(window).load(function(){
	//temp
	//$('#layout > tbody > tr > td').bind('click',function (){alert($(this).width())});
});

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function validate_formularz_kontakt()
{
  f = document.forms['jqKontakt'];
  if (f.imie.value == "" || f.nazwisko.value == "") { window.alert("Podaj imię i nazwisko!"); return false; }
  if (f.ulica.value == "") { window.alert("Podaj ulicę, nr domu i mieszkania!"); return false; }
  if (f.kod.value == "") { window.alert("Podaj kod pocztowy!"); return false; }
  if (f.miasto.value == "") { window.alert("Podaj miasto!"); return false; }
  if (f.email.value == "") { window.alert("Podaj prawidłowy email!"); return false; }
  if (f.temat.value == "") { window.alert("Podaj temat!"); return false; }
  if (f.tresc.value == "") { window.alert("Podaj treść!"); return false; }
  return true;
}

function domyslnyText(selektor,tekst){
      $(selektor).each(function(i,o){
            if($(this).val()=='')
			$(this).val(tekst);
	}).focus(function (){
		if($(this).val()==tekst)
			$(this).val('');
	}).blur(function (){
		if($(this).val()=='')
			$(this).val(tekst);
	});
}


function validate_platnosc()
{

  f = document.forms['payform'];

  if (f.desc.value == "") {
    window.alert("Enter title!");
    return false;
  }

  if (f.amount.value == "") {
    window.alert("Enter amount!");
    return false;
  }

 f.amount.value=(parseFloat(f.amount.value)*100);
//  alert(f.amount.value); 

  return true;
}

// bestsellers
$(document).ready(function(){
		
		$('ul.bestsellers').children('li').mouseover(function() {
			var _a = $(this).find('a').is('a') ? $(this).find('a') : false;
			var img = $(this).find('img').is('img') ? $(this).find('img') : false;
			var li = $('ul.bestsellers li.active');
			var img2 = li.find('img').is('img') ? li.find('img') : false;
				var _a2 = li.find('a').is('a') ? li.find('a') : false;
					li.removeClass('active');
					img2.css('display','none');
					_a2.css('color','#663434');
			$(this).addClass('active');
			img.css('display','block');
			_a.css('color','black');
		});
		
		$('ul.oceniane').children('li').mouseover(function() {
			var _a = $(this).find('a').is('a') ? $(this).find('a') : false;
			var img = $(this).find('img').is('img') ? $(this).find('img') : false;
			var li = $('ul.oceniane li.active');
			var img2 = li.find('img').is('img') ? li.find('img') : false;
				var _a2 = li.find('a').is('a') ? li.find('a') : false;
					li.removeClass('active');
					img2.css('display','none');
					_a2.css('color','#663434');
			$(this).addClass('active');
			img.css('display','block');
			_a.css('color','black');
		});
	});

//zaznaczanie kategorii - produkty nieaktywne
function selectCategories(id){
	for (i=0;i<document.s.id_kategorii.options.length;i++)
			 if (document.s.id_kategorii.options[i].value==id)
					document.s.id_kategorii.selectedIndex=i;
} 

function CategoriesOrder(link,gets,pp,flag){
	
	var producent = pp;
	var order = $('#selectcategoryorder').val();
	if (flag==1){
			if($('#selectman').val()!=0){
				producent = "&producent="+$('#selectman').val()+"&sp";
			}else{producent="";}
	}
	document.location.href=link+"?order="+order+""+producent+""+gets;
} 
