if(!Koszyk) var Koszyk = new Object();

var Koszyk = 
{
		Timer : null,
		Link : null,
		
		Init : function()
		{
			$("#jq_koszyk_kontener").load(ajaxLinks.reload_koszyk+"&r="+Math.random());
			
			$('a[rel^="dodajDoKoszyka"]').bind('click', Koszyk.DodajProdukt);
			$('select[name="sposob_platnosci"]').bind('change', Koszyk.SposobyTransportu);
			$('select[name="sposob_transportu"]').live('change', Koszyk.PrzeliczSume);
		
			$('input#wyczyscKoszyk').bind('click', Koszyk.Wyczysc);
			$('input[rel*="usunProdukt"]').bind('click', Koszyk.UsunProduktCheck);
			$('select[name*="ilosc"]').bind('change', Koszyk.PrzeliczKoszykCheck);
			$('input#przelicz').bind('click', Koszyk.PrzeliczKoszykCheck);
			
			$('a[rel^="krok"]').bind('click', Koszyk.SprawdzKrok);
			
			//animacja bloczka
			$('.koszyk').live('click', function(){$('.koszyk-rozwiniety').slideToggle('slow');});
		},
		
		DodajProdukt : function()
		{
			var buttons = {};
			
			dane = $(this).attr('rel').split(",");
			
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.dodaj_produkt_link) != "undefined" && dane[2] != 'null' && dane[2] != undefined)
			{
				$('#jq_ajax_kontener').showAjaxIndicator();
				
				var ilosc = $('.produkt-ilosc select option:selected').val();
				ilosc = parseInt(ilosc);

				if(isNaN(ilosc) || ilosc<1)
					ilosc = 1;
				
				$.ajax({
		            type: 'POST',
		            url: ajaxLinks.dodaj_produkt_link, 
		            data: {id_produktu:dane[1],wariant:dane[2],ilosc:ilosc}, 
		            dataType: 'json',
		            success: function(response)
		            {
						  $('#jq_koszyk_kontener').html(response.html);						  
						  buttons[response.button2] = function(){$(this).dialog('destroy');location.href=response.button2_link;};
						  buttons[response.button] =  function(){$(this).dialog('destroy');};
						  $('#DodajProduktInfo').html(response.komunikat);
						  $('#DodajProduktInfo').dialog({ title: response.komunikat, width: 450, modal: true,  buttons: buttons });
						  $('#jq_ajax_kontener').hideAjaxIndicator();
		            },
		            error: function(request, status, error)
		            {  
		                if (request.status == 501);
		                    alert(request.responseText);
		            }
				});
			}
			else
			{
				alert('error: link lub wariant');
			}
			
			return false;
		},
		
		UsunProduktCheck : function()
		{
			Koszyk.Link = $(this).attr('rel');

			$('#zamowienie').showAjaxIndicator();
			
			clearTimeout(Koszyk.Timer);
			Koszyk.Timer = setTimeout("Koszyk.UsunProdukt();",200);
			
		},

		UsunProdukt : function()
		{
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.usun_produkt_link) != "undefined")
			{
				$('#zamowienie').showAjaxIndicator();
								
				var dane = Koszyk.Link.split(",");
				var id = parseInt( dane[1] );
				
				if ( id > 0)
				{
					var cartRow = $(this).parent().parent('tr');
				
					$.ajax({
						type: 'POST',
						url: ajaxLinks.usun_produkt_link,
						data: {id_produktu:id,wariant:dane[2]}, 
						dataType: 'json',
						success: function(response)
						{
							document.location.href = document.location.href;
						},
			            error: function(request, status, error)
			            {  
			                if (request.status == 501);
			                    alert(request.responseText);
			            }
					});
				}
			}
			else
			{
				alert('brak linku ajaxLinks.usun_produkt_link');
			}
			
			return false;
	
		},
		
		PrzeliczKoszyk : function()
		{
			var url = $(this).attr('rel');
		
			if (url == '' || url == undefined) 
				url = 'przeliczkoszyk';
			
			$('#jq_dane_do_faktury input[name="akcja"]').val('');
			$('#zamowienie').attr('action', url+'.html');
			$('#zamowienie').submit();
			return false;
		},
		
		PrzeliczKoszykCounter : function()
		{
			$('#zamowienie').showAjaxIndicator();
			Koszyk.PrzeliczKoszykCheck;
			
			clearTimeout(Koszyk.Timer);
			Koszyk.Timer = setTimeout("Koszyk.PrzeliczKoszyk();",100);
		},
		
		PrzeliczKoszykCheck : function()
		{
			setTimeout(function()
				{
					var zero = false;
					
					$('select[name*=ilosc]').each(
						function()
						{
							var val = $(this).val();
						
							if(!val.match(/^\d+$/))
							{
								val = 1;
								$(this).val(val);
							}
							
							if(val == 0)
							{
								$('#UsunPytanie').dialog({ width: 450, modal: true,  buttons: {"NIE" : function() { $(this).dialog("close"); }, "TAK": function() { $(this).dialog("close"); Koszyk.PrzeliczKoszykCounter(); }  } });
								zero = true;
							}
						}
					);
				
					if(!zero) Koszyk.PrzeliczKoszykCounter();
				}
				,100
			);
		},	

		Wyczysc : function()
		{
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.wyczysc_koszyk_link) != "undefined")
			{
				$('#zamowienie').showAjaxIndicator();
				
				$.ajax({
					type: 'POST',
					url: ajaxLinks.wyczysc_koszyk_link, 
					success: function(response)
					{
						document.location.href = document.location.href;
					},
		            error: function(request, status, error)
		            {  
		                if (request.status == 501);
		                    alert(request.responseText);
		            }
				});
			}
			else
			{
				alert('brak linku ajaxLinks.wyczysc_koszyk_link');
			}
		},
		
		SposobyTransportu : function()
		{
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.sposoby_transportu_link) != "undefined")
			{
				$('#jq_podsumowanie_koszyk').showAjaxIndicator();
	
				var sposob_platnosci = $('select[name=sposob_platnosci] :selected').val();
				
				$.ajax({
					type: 'POST',
					url: ajaxLinks.sposoby_transportu_link, 
					data: {sposob_platnosci: sposob_platnosci},
					success: function(response)
					{
						$('#jq_sposob_transportu').empty().append(response);
						$('#jq_podsumowanie_koszyk').hideAjaxIndicator();	
					},
		            error: function(request, status, error)
		            {  
		                if (request.status == 501);
		                {
		                    alert(request.responseText);
		                }
		            }
				});
			}
			else
			{
				alert('brak linku ajaxLinks.sposoby_transportu_link');
			}
		},
		
		PrzeliczSume : function ()
		{
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.suma_zamowienia_link) != "undefined")
			{
				$('#jq_podsumowanie_koszyk').showAjaxIndicator();

				var sposob_transportu = $('select[name=sposob_transportu] :selected').val();
				
				$.ajax({
					type: 'POST',
					url: ajaxLinks.suma_zamowienia_link, 
					data: {sposob_transportu: sposob_transportu},
					dataType: 'json',
					success: function(response)
					{
						Koszyk.RenderResponse(response);
						$('#jq_podsumowanie_koszyk').hideAjaxIndicator();	
					},
		            error: function(request, status, error)
		            {  
		                if (request.status == 501);
		                {
		                    alert(request.responseText);
		                }
		            }
				});
			}
			else
			{
				alert('brak linku ajaxLinks.suma_zamowienia_link');
			}
		},
				
		RenderResponse : function(suma)
		{
			var suma_zamowienia = suma.suma_zamowienia;
			var koszt_transportu = suma.koszt_transportu;
			
			$('#suma_zamowienia').empty().append(suma_zamowienia.brutto);
			$('#koszt_transportu').empty().append(koszt_transportu.brutto);
		},
		
		ShowMsg : function(jQ_ident, msg, classtype)
		{
			var msgBox = $('div#'+jQ_ident);
			var msg = $('<div>'+msg+'</div>').addClass(classtype).appendTo(msgBox);

			setTimeout(function(){
				msg.fadeOut('slow', function () {
					$(this).remove();
				});
			}, 4000);
		},
		
		Faktura: function()
		{
			$('#jq_dane_do_faktury table').toggle();
		},
		
		WczytajDaneAdresowe : function(input)
		{
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.wczytaj_dane_adresowe) != "undefined")
			{
				$('#jq_dane_adresowe').showAjaxIndicator();
				
				$.ajax({
					type: 'POST',
					url: ajaxLinks.wczytaj_dane_adresowe, 
					data: {id: $(input).val()},
					dataType: 'json',
					success: function(response)
					{
						var form = $('#jq_dane_adresowe');
						
						$('#imie', form).val(response.imie);
						$('#nazwisko', form).val(response.nazwisko);
						$('#firma', form).val(response.firma);
						$('#ulica', form).val(response.ulica);
						$('#nr_domu', form).val(response.nr_domu);
						$('#nr_mieszkania', form).val(response.nr_mieszkania);
						$('#miejscowosc', form).val(response.miejscowosc);
						$('#kod_pocztowy', form).val(response.kod_pocztowy);
						$('#telefon', form).val(response.telefon);
						$('#nip', form).val(response.nip);
						
						$('#jq_dane_adresowe').hideAjaxIndicator();	
					},
		            error: function(request, status, error)
		            {
		                if (request.status == 501);
		                {
		                    alert(request.responseText);
		                }
		            }
				});
			}
			else
			{
				alert('brak linku ajaxLinks.suma_zamowienia_link');
			}
		},
		
		PrzepiszDaneDoFaktury : function()
		{
			var form = $('#jq_dane_adresowe');
			var faktura = $('#jq_dane_do_faktury');
			
			$('#imie_faktura', faktura).val( $('#imie', form).val() );
			$('#nazwisko_faktura', faktura).val( $('#nazwisko', form).val() );
			$('#firma_faktura', faktura).val( $('#firma', form).val() );
			$('#ulica_faktura', faktura).val( $('#ulica', form).val() );
			$('#nr_domu_faktura', faktura).val( $('#nr_domu', form).val() );
			$('#nr_mieszkania_faktura', faktura).val( $('#nr_mieszkania', form).val() );
			$('#miejscowosc_faktura', faktura).val( $('#miejscowosc', form).val() );
			$('#kod_pocztowy_faktura', faktura).val( $('#kod_pocztowy', form).val() );
			$('#telefon_faktura', faktura).val( $('#telefon', form).val() );
			$('#nip_faktura', faktura).val( $('#nip', form).val() );
			
		},
		
		SprawdzKrok : function()
		{
			var data = $(this).attr('rel').split(",");
			var redirectLink = $(this).attr('href');
			
			$('#zamowienie').showAjaxIndicator();
			
			var postData = Koszyk.PrzygotujDaneAdresowe();
			postData['krok'] = data[1];
			
			$.ajax({
				type: 'POST',
				url: ajaxLinks.sprawdz_krok, 
				data: postData,
				dataType: 'json',
				success: function(response)
				{
					$('#zamowienie input').removeClass('errorClass');
					$('#zamowienie select').removeClass('errorClass');
					
					$('#zamowienie').hideAjaxIndicator();	
					
					if(response.isError)
					{
						if(response.fields != null && response.fields.length > 0)
						{
							for(i=0;i<response.fields.length;i++)
							{
								$('#'+response.fields[i]).addClass('errorClass');
							}
						}
						
						Koszyk.ShowMessage(response);
					}
					else
					{
						location.href = redirectLink;
					}
				},
	            error: function(request, status, error)
	            {
	                if (request.status == 501);
	                {
	                    alert(request.responseText);
	                }
	            }
			});
			
			return false;
		},
		
		PrzygotujDaneAdresowe : function()
		{
			var data = new Object();
			
			// dane do wysylki
			$('#jq_dane_adresowe input').each(
				function ()
				{
					// pomin niezaklikane checkboxy
					if($(this).attr('type') == 'checkbox' && !$(this).is(':checked')) return;
					
					var name = $(this).attr("name");
					var value = $(this).val();
					
					data[name] = value;
				}
			);
			
			// dane do faktury
			$('#jq_dane_do_faktury input').each(
				function ()
				{
					// pomin niezaklikane checkboxy
					if($(this).attr('type') == 'checkbox' && !$(this).is(':checked')) return;
					
					var name = $(this).attr("name");
					var value = $(this).val();
					
					data[name] = value;
				}
			);
			
			// dodatkowe uwagi
			data['dodatkowe_uwagi'] = $('#dodatkowe_uwagi').val();
			
			
			return data;
		},
		
		ShowMessage : function(response)
		{
			$("#StoreCartMsg").html(response.msg);
			
			if(Koszyk.myDialog == null)
			{
				Koszyk.myDialog = $("#StoreCartMsg").dialog({ width: 450, modal: true,  buttons: {"OK" : function() { $(this).dialog("close"); } } });
			}
			else
			{
				Koszyk.myDialog.dialog('open');
			}
		}
};

$(document).ready(function()
{
	Koszyk.Init();
});


/* wybor opcji/wariantu */
var Wariant = 
{
	IloscOpcji:null,
	lblWybierz:null,
	
	Init:function(ilosc, wybierz, dodaj)
	{
		Wariant.IloscOpcji = ilosc;
		Wariant.lblWybierz = wybierz;
		Wariant.lblDodaj = dodaj;
		wybrany = new Array();
		
		$('.jq-opcja div.normal').live('click', Wariant.Wybierz);
		$('.jq-opcja div.hidden').live('click', Wariant.Reset);
		$('a[rel^="dodajDoKoszyka"]').unbind('click').addClass('hidden').html(Wariant.lblWybierz);
	},
	
	Wybierz:function()
	{
		var war = $(this).attr('id');
			war = war.split('-');
		
		$(this).parent().find('div.active').each(function(){//wylacz wybrany wczesniej w tej samej grupie
			$(this).removeClass('active').addClass('normal');
			var poprz = $(this).attr('id');
			poprz = poprz.split('-');
			Wariant.Usun(poprz[1]);
		});
		
		wybrany.push(war[1]);
		$(this).removeClass('normal');
		$(this).addClass('active');
		
		if(wybrany.length > 0)
		{
			var grupa = $(this).parent();
		
			$('.jq-opcja').not(grupa).each(function(){//foreach grupa oprocz wlasnie zaklikanej
			
				$('div', this).not('.active').addClass('hidden').removeClass('normal');//wylacz wszystkie normale
				
				var active = $('div.active', this).attr('id');
				
				if(active != undefined)
				{
					active = active.split('-');
					active = active[1];
					
					var wybranyTmp = [];
					
					$(wybrany).each(function(){ // zmniejszamy wybrane o aktywny z danej grupy
						if(this != active)
							wybranyTmp.push(this);
					});
					
					$('.warianttt').each(function(){ // dla kazdego wariantu
					
						var war_tmp = ';'+$(this).val()+';';
						
						$(wybranyTmp).each(function(){				
							war_tmp = war_tmp.replace(';'+this+';',';'); // usun juz wybrane				
						});
						
						war_tmp = war_tmp.substring(1, war_tmp.length-1);
						war_tmp = war_tmp.split(';');
				
						if(war_tmp.length > 0 && (war_tmp.length == (Wariant.IloscOpcji-wybranyTmp.length)))
						{
							for(i=0;i<war_tmp.length;i++) // opublikuj mozliwe
							{
								if(war_tmp[i] > 0)
									$('.jq-opcja div[id="wa-'+war_tmp[i]+'"]').removeClass('hidden').addClass('normal');
							}
						}
					});
				}
				
				$('.warianttt').each(function(){ // dla kazdego wariantu
				
					var war_tmp = ';'+$(this).val()+';';
					
					$(wybrany).each(function(){				
						war_tmp = war_tmp.replace(';'+this+';',';'); // usun juz wybrane				
					});
					
					war_tmp = war_tmp.substring(1, war_tmp.length-1);
					war_tmp = war_tmp.split(';');
			
					if(war_tmp.length > 0 && (war_tmp.length == (Wariant.IloscOpcji-wybrany.length)))
					{
						for(i=0;i<war_tmp.length;i++) // opublikuj mozliwe
						{
							if(war_tmp[i] > 0)
								$('.jq-opcja div[id="wa-'+war_tmp[i]+'"]').removeClass('hidden').addClass('normal');
						}
					}
				});
			});
			
			Wariant.SetParams($('#def_wariant').val()); // przywroc bazowe wartosci
			$('a[rel^="dodajDoKoszyka"]').unbind('click').addClass('hidden').html(Wariant.lblWybierz);
			
			if(Wariant.IloscOpcji == wybrany.length)// wybrano wszystko to wpisujemy wartosci z wariantu
			{
				wybrany = wybrany.sort(Wariant.SortNumber);
				Wariant.SetParams($('.warianttt[value="'+wybrany.join(';')+'"]').attr('name'));
				
				$('a[rel^="dodajDoKoszyka"]').bind('click', Koszyk.DodajProdukt).removeClass('hidden').html(Wariant.lblDodaj);
				
			}
		}
	},
	
	Usun:function(warosc)
	{
		wybrany = ';'+wybrany.join(';')+';';
		wybrany = wybrany.replace(';'+warosc+';',';');
		wybrany = wybrany.substring(1, wybrany.length-1);

		if(wybrany == ';')
			wybrany = [];
		else
			wybrany = wybrany.split(';');
	},
	
	Reset:function()
	{
		wybrany = [];
		$('.jq-opcja div').addClass('normal').removeClass('active').removeClass('hidden');
		$(this).click();
	},
	
	SortNumber:function(a,b)
	{
		return a - b;
	},
	
	SetParams:function(params)
	{
		params = params.split('|');
		
		if(params != undefined)
		{
			if(params[1] != '')
				$('.jq-kod').html(params[1]);
			
			$('.jq-cena').html(params[2]);
			
			if(params[4] != '')
				$('.jq-dostepnosc').html(params[4]);
			
			if(params[5] != '')
				$('.jq-czas').html(params[5]);
			
			var idDodania = $('a[rel^="dodajDoKoszyka"]').attr('rel');
			idDodania = idDodania.split(',');
			
			if(params[6] != undefined)
				idDodania[2] = parseInt(params[6])
			else
				idDodania[2] = 'null';
			
			$('a[rel^="dodajDoKoszyka"]').attr('rel', idDodania.join(','));
		}
	}
};

/* sklep porownywarka */
function delCompare(komunikat)
{
	if($('input[name^="produkty"]:checked').length > 0)
	{
		$('input[name="usun"]').val('1'); 
		$('form[name="porownaj"]').submit(); 
	}
	else
	{
		alert(komunikat);
	}
}

if(!Porownanie) var Porownanie = new Object();

var Porownanie = 
{
		Init : function()
		{
			$('a[rel^="dodajPorownanie"]').bind('click', Porownanie.DodajProdukt);

		},
		
		DodajProdukt : function()
		{
			var buttons = {};
			
			dane = $(this).attr('rel').split(",");
			
			if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.porownaj_link) != "undefined")
			{
				$('#jq_ajax_kontener').showAjaxIndicator();
				
				$.ajax({
		            type: 'POST',
		            url: ajaxLinks.porownaj_link, 
		            data: {id_produktu:dane[1]}, 
		            dataType: 'json',
		            success: function(response)
		            {						  
						  buttons[response.button2] = function(){$(this).dialog('destroy'); $('#DodajProduktInfo form').submit();};
						  buttons[response.button] =  function(){$(this).dialog('destroy');};
						  $('#DodajProduktInfo').html(response.html);
						  $('#DodajProduktInfo').dialog({ title: response.komunikat, width: 550, modal: true,  buttons: buttons });
						  $('#jq_ajax_kontener').hideAjaxIndicator();
		            },
		            error: function(request, status, error)
		            {  
		                if (request.status == 501);
		                    alert(request.responseText);
		            }
				});
			}
			else
			{
				alert('error: link lub wariant');
			}
			
			return false;
		}
};

$(document).ready(function()
{
	Porownanie.Init();
});

/* ostatnio ogladane */
$(document).ready(function()
{
	if(typeof(ajaxLinks) != "undefined" && typeof(ajaxLinks.dodaj_ogladany) != "undefined")
	{
		$.ajax({
			url: ajaxLinks.dodaj_ogladany
		});
	}
	
	$("#jq_ogladane").load(ajaxLinks.reload_ogladane+"&r="+Math.random());
});

/* sklep wyszukiwarka */
function dig(blok)
{
	var que=[];
	var queFilter = '';
	url = location.href.split('?');
	
	if(url[1]!=undefined)
	{
		exp=new RegExp("s=(.*?)(&|$)");
		m = url[1].match(exp);
		
		if(m!=null&&m[1]!=null)
			que.push('s='+m[1]);
		
		exp=new RegExp("v=(.*?)(&|$)");
		m = url[1].match(exp);
		
		if(m!=null&&m[1]!=null)
			que.push('v='+m[1]);
	}
	
	var cod = $('#sklepform'+blok+' input[name=cod]').val();
	var cdo = $('#sklepform'+blok+' input[name=cdo]').val();
	
	if(cod!=''||cdo!='')
		que.push('c=' + cod.replace(',','.')+','+cdo.replace(',','.'));
	
	var values = [];
	var statusy = $('#sklepform'+blok+' input[name^=st_]:checked');

	if(statusy.length>0)
	{
		statusy.each(function(){
			values.push(this.value);
		});
		que.push('t='+values.join(','));
	}
	
	if(que.length >= 1)
	{
		que.sort();
		queFilter = '?'+que.join('&');
	}
	
	// opcje
	values = [];
	
	var q=$('#sklepform'+blok+' input[name^=q]').val();
	if(q!='')values.push('q,'+q);
	
	exp=new RegExp("filtry,(.*?)\.html");
	m = url[0].match(exp);
	
	if(m!=null&&m[1]!=null)
	{
		var aktualne = m[1].split(',');
		
		for(i=0;i<aktualne.length;i++)
		{
			switch(aktualne[i])
			{
				case 'c':
				case 'o':
					values.push('o,'+aktualne[i+1]+','+aktualne[i+2]+','+aktualne[i+3]);
					i=i+3;
					break;
				case 'p':
					values.push('p,'+aktualne[i+1]+','+aktualne[i+2]);
					i=i+2;
					break;
				case 'page':
					break;
			}
		}
	}
	
	var opcje = $('#sklepform'+blok+' input[name^=opcje_]:checked');
	
	if(opcje.length>0)
	{
		opcje.each(function(){
			values.push(this.value);
		});
	}
	
	if(values.length>0)
	{
		values.sort();
		queFilter = 'filtry,'+values.join(',')+'.html'+queFilter;
	}
	
	// skladanie url
	var query = $('#sklepform'+blok+' input[name=sciezka_katalog]').val();
	
	if(queFilter != '')
		query=query+queFilter;
	
	location.href=query;
}

/* sortowanie w katalogu z zachowaniem filtrow */
function sort(s,p)
{
	if(s!='')s=p+'='+s;
	
	link = location.href;
	url = link.split('?');
	
	if(url[1]!=undefined)
	{
		exp=new RegExp(p+"=(.*?)(&|$)");
		m = url[1].match(exp);
		var que=[];
		
		if(m!=null&&m[1]!=null)
		{
			url[1] = url[1].replace(exp,s+'&');
			var tmp=url[1].split('&');
			
			for(i=0;i<tmp.length;i++)
			{
				if(tmp[i]!='')
					que.push(tmp[i]);
			}
		}
		else
		{
			if(s!='')
			{
				que=url[1].split('&');
				que.push(s);
			}
		}
		
		que.sort();
		url[1]=que.join('&');

		if(url[1]!='')
			location.href=url[0]+'?'+url[1];
		else
			location.href=url[0];
	}
	else
	{
		if(s!='')
			location.href = url[0]+'?'+s;
	}
}

function szukajenter(e, id_bloku)
{
	if(e.keyCode == 13)
		dig(id_bloku);
}

/* tooltip */
var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {an = 1; DH = 1;}}} function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi); if (al) return wS ? document.all[oi].style: document.all[oi]; if (an) return document.layers[oi];}
function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
function mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
function mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
function popUp(evt,oi) {if (DH) {var wp = pw(); ds = fd(oi,1); dm = fd(oi,0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else {tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew/4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew/2; if (!an) {lv += 'px';tv += 'px';} ds.left = lv; ds.top = tv; ds.visibility = "visible";}}}




/* Zoom Image */
(function($)
{
	function ZoomImage()
	{
	}
	
	$.extend(ZoomImage.prototype,
	{
		mouseenter : function(handler, e)
		{
			var offset = $(handler).offset();
			var width = $(handler).outerWidth();
			var height = $(handler).outerHeight();
			
			var select = $('<span id="imgzoom-select"></span>');
			
			var preview = $('<div id="imgzoom-preview"></div>');
			preview.css('left', offset.left + width);
			preview.css('top', offset.top);
			
			$(handler).append(select);
			$('body').append(preview);
		},
		
		mousemove : function(handler, e)
		{
			var preview = $('#imgzoom-preview');
			var select = $('#imgzoom-select');
			
			var left = e.pageX - select.outerWidth() / 2;
			var top = e.pageY - select.outerHeight() / 2;
			
			var image = $(handler).find('img');
			var offset = image.offset();
			
			// ograniczenie pozycji lupy w poziomie
			if (left < offset.left)
			{
				left = offset.left;
			}
			if (offset.left + image.innerWidth() < left + select.outerWidth())
			{
				left = offset.left + image.innerWidth() - select.outerWidth();
			}
			
			// ograniczenie pozycji lupy w pionie
			if (top < offset.top)
			{
				top = offset.top;
			}
			if (offset.top + image.innerHeight() < top + select.outerHeight())
			{
				top = offset.top + image.innerHeight() - select.outerHeight();
			}
			
			var positionX = ((left - offset.left) / (image.innerWidth() - select.outerWidth()) * 100);
			var positionY = ((top - offset.top) / (image.innerHeight() - select.outerHeight()) * 100);
			
			preview
				.css('background-image', 'url(' + $(handler).attr('href') + ')')
				.css('background-position', positionX + '% ' + positionY + '%')
				.css('background-repeat', 'no-repeat');
			
			select
				.css('left', left)
				.css('top', top);
		},
		
		mouseleave : function(handler, e)
		{
			$('#imgzoom-select').remove();
			$('#imgzoom-preview').remove();
		}
	});
	
	$.fn.zoomImage = function(options)
	{
		return this.each(function()
		{
			var handler = this;
			
			$(handler).css("cursor", "move");

			$(handler).click(function()
			{
				return false;
			});
			
			$(handler).bind('mouseenter', function(e)
			{
				$.zoomImage.mouseenter(handler, e);
			});
			
			$(handler).mousemove(function(e)
			{
				$.zoomImage.mousemove(handler, e);
			});
			
			$(handler).bind('mouseleave', function(e)
			{
				$.zoomImage.mouseleave(handler, e);
			});
		});
	};
	
	$.zoomImage = new ZoomImage();
	
})(jQuery); 
 
$(document).ready(function()
{
	$('a[rel=imgzoom]').zoomImage();
});
