var blokada = false ;
var aktywneId = null ;
var login_login = '' ;
var login_nazwa = '' ;
var login_miasto = '' ;
var do_zamowienia = false ;

setTimeout( 'sprawdzPrzyciskKupuje()' , 1000) ;


function zaloguj2()
{
	zaloguj() ;
}

function zaloguj()
{
	do_zamowienia = true ;
	loginLogout('form_login2') ;
	return false ;
}


function rozwiniety(div)
{
	return (div.rozwiniety != null) && div.rozwiniety ;
}

function rozwinZwin(numerki,katalog)
{
	var licznik = 1 ;
	var prefix = 'fun_' + numerki + '_' ;
	var szukaj = prefix + licznik ;
	var div_nad = document.getElementById('fun_' + numerki) ;
	var div ; // roboczy

	while((div = document.getElementById(szukaj)) != null)
	{
		// jeśli zwijamy to być może trzeba zwinąć rekurencyjnie podgrupy?

		if(div_nad.rozwiniety && rozwiniety(div))  // div.rozwiniety != null && div.rozwiniety)
		{
			rozwinZwin(numerki + '_' + licznik , katalog) ;
		}

		div.style.display = rozwiniety(div_nad) ? 'none' : 'block' ;
		szukaj = prefix + (++licznik) ;
	}

	// jeśli odnaleziono przynajmniej jedną podgrupę, to zmieniamy ikonkę
	if(licznik > 1)
	{
		document.getElementById('gfun_' + numerki).src = katalog + '/' 
		+ (rozwiniety(div_nad) ? 'plus.gif' : 'minus.gif');

		div_nad.rozwiniety = ! div_nad.rozwiniety ;
	}

}

/*
function zmienIkonke(id,typ)
{
	var img = document.getElementById(id) ;

	if(img == null)
	{
		return ;
	}

	img.src = katalog + '/' + typ + '.gif' ;
}
*/

function oznaczJakoAktywny(id,poziom)
{
//	alert('jestem') ;
	if(poziom == 1)
	{
		document.getElementById(id).style.color = 'red' ;
		return null ;
	}

	if(poziom == 2)
	{
		document.getElementById(id).style.color = 'blue' ;
		return null ;

	}

	if(poziom == 3)
	{
		document.getElementById(id).style.color = 'green' ;
		return null ;
	}

	return null ;
}

function rozwinDrzewo(aktywny,przechodni1,przechodni2,katalog)
{
	if(aktywny < 1)
	{
		return ;
	}

	if(przechodni1 == 0)
	{ // kliknięcie na 1 poziomie, rozwijamy tą gałąź drzewa i oznaczamy jako aktywny
		rozwinZwin(aktywny + '',katalog) ;
		oznaczJakoAktywny('fun_' + aktywny, 1) ;
		return ;
	}

	if(przechodni2 == 0)
	{ // kliknięcie na 2 poziomie,
		// rozwijamy grupy na 2 poziomie
		rozwinZwin(przechodni1 + '',katalog) ;
		// rozwijamy grupy klikniętej grupy (3 poziom)
		rozwinZwin(przechodni1 + '_' + aktywny,katalog) ;
		oznaczJakoAktywny('fun_' + przechodni1 + '_' + aktywny , 2) ;
		return ;
	}

	// nastąpiło kliknięcie na 3 poziomie
	// rozwimajmy grupy na 2 poziomie
	rozwinZwin( przechodni1 + '',katalog ) ;

	// rozwijamy grupy na 3 poziomie
	rozwinZwin(przechodni1 + '_' + przechodni2 ,katalog) ;

	oznaczJakoAktywny('fun_' + przechodni1 + '_' + przechodni2 + '_' + aktywny , 3) ;
}


function sumujIlosciWariantow()
{
	var pole ;
	var suma = 0 ;
	for(i = 1 ; i < 40 ; i++)
	{
		pole = document.getElementById('w_' + i) ;

		if(pole == null)
		{
			i = 40 ;
		}
		else
		{
			suma += weryfikujInt(pole.value) ;
		}
	}

	return suma ;
}

function sprawdzPrzyciskKupuje()
{
	if(! blokada && aktywneId != null)
	{
		var pole = document.getElementById('pr_' + aktywneId).iloscint ;

		// pole jest null, jeśli to produkt wariantowy
		var ilosc = (pole == null ? sumujIlosciWariantow() : weryfikujInt(pole.value)) ;


		ustawKupuje(aktywneId, ilosc) ;
	}

	setTimeout( 'sprawdzPrzyciskKupuje()' , 1000) ;
}

function wejscieWtrybEdycji(id,nrWariantu)
{
	
	if(! blokada)
	{

		var pole ;
		if(nrWariantu == 0)
		{
			pole = document.getElementById('pr_' + id).iloscint ;
		}
		else
		{
			pole = document.getElementById('w_' + nrWariantu) ;
		}

		ustawStyleDlaPolaIlosci(pole, true) ;

		//		document.getElementById("focus").value = 'jestem ' + (++tmp) + ': ' + nrWariantu + ' ' + pole.id ;

		//		pole.className = 'ilosc_edycja' ;
		//		pole.style.color = 'black' ;

		aktywneId = id ;
	}
}

function skanujIlosci(prefix,ilosc)
{
	// muszę przeskanować wszystie produkty aktualnie wyświetlane i zmienić ilości
	// jeśli ilość uległa zmianie np. poprzez modyfikację koszyka, usunięcie z koszyka
	// lub modyfikację na tym samym produkcie ale w innym miejscu strony
	var stop = false ;
	var form ;
	var licznik = 0 ;
	var szukany ;


	// dopóki odnajdziemy kolejny formularz
	while(! stop)
	{
		licznik++ ;
		szukany = prefix + licznik ;

		form = document.getElementById('pr_' + szukany) ;



		if(form == null)
		{
			stop = true ;
		}
		else
		{
			// bo to może być form strony produktu wariantowego, które nie ma pola ilości
			if(form.iloscint != null)
			{
				form.iloscint.value = ilosc ;
				wyjscieZTrybuEdycji(szukany) ;
			}

			ustawKupuje(szukany, ilosc) ;
		}
	}
}


function ustawStyleDlaPolaIlosci(pole,edycja)
{
//	alert('pole: ' + pole.value) ;
	// pole to pole input
	if(edycja)
	{
		pole.style.color = 'gray' ;
		pole.style.fontWeight = 'normal' ;
	}
	else
	{
		if(weryfikujInt(pole.value) > 0)
		{
			pole.style.color = 'red' ;
			pole.style.fontWeight = 'bold' ;

		}
		else
		{
			pole.style.color = 'black' ;
			pole.style.fontWeight = 'normal' ;
		}
	}
}


function wyjscieZTrybuEdycji(id)
{ // do uruchamiania tylko z innych funkcji synchronizowanych blokadą
	var pole = document.getElementById('pr_' + id).iloscint ;

	// na stronie z wariantami nie ma tego pola
	if(pole != null)
	{
		ustawStyleDlaPolaIlosci(pole,false) ;
		pole.blur() ;
	}
	//	var ilosc = weryfikujInt(pole.value) ;
	//	pole.style.color = ((ilosc > 0) ? 'red': 'black') ;
	//	pole.style.fontWeight = ((ilosc > 0) ? 'bold' : 'normal') ;



	aktywneId = null ;
}


function obrazekOver(img)
{
	if(img.najechany != null && ! przyciskNieaktywny(img))
	{
		img.src = img.najechany ;
	}
}

function obrazekOut(img)
{
	if(img.aktywny != null && ! przyciskNieaktywny(img))
	{
		img.src = img.aktywny ;
	}
}


function rozszerzeniePliku(nazwaPliku)
{
	return nazwaPliku.substring(nazwaPliku.lastIndexOf(".") + 1) ;
}


function initObrazkow(jezyk,katalog)
{
	// inicjujemy obrazki, których id zaczynają się na img_ lub imgnl_
	var obrazki = document.images ;
	var i ;

	for(i = 0 ; i < obrazki.length ; i++)
	{

		if(obrazki[i].id.indexOf('img_') == 0)
		{
			initObrazka(obrazki[i].id.substr(4),jezyk,katalog) ;
		}
		else if(obrazki[i].id.indexOf('imgnl_') == 0)
		{
			initObrazka(obrazki[i].id.substr(6),null,katalog) ;
		}
	}
}

function initObrazka(id,jezyk,katalog)
{
	var jez = ((jezyk != null) ? ('_' + jezyk) : '') ;
	var img = document.getElementById(((jezyk != null) ? 'img_' : 'imgnl_') + id) ;
	var	typObrazka = rozszerzeniePliku(img.src) ;
	var a ;
	var b ;

	if((a = id.indexOf('_')) != -1)
	{
		b = id.substring(0,a) ;
	}
	else
	{
		b = id ;
	}

	img.aktywny = katalog + '/' + b + '_aktywny' + jez + '.' + typObrazka ;
	img.najechany = katalog + '/' + b + '_najechany' + jez + '.' + typObrazka ;
	img.src = img.aktywny ;

//	alert(id + "," + img.aktywny + "," + img.najechany + "," + img.src) ;


}

function initKupuje(id , jezyk , ilosc , katalog , typObrazka)
{
	// przypisz obrazki do przycisku kupuję i minus1
	var img = document.getElementById('kupuje_' + id) ;
	img.nieaktywny = katalog + '/kupuje_nieaktywny_' + jezyk + '.' + typObrazka ;
	img.aktywny = katalog + '/kupuje_aktywny_' + jezyk + '.' + typObrazka ;
	img.najechany = katalog + '/kupuje_najechany_' + jezyk + '.' + typObrazka ;
	img = document.getElementById('minus1_' + id) ;

	if(img != null)
	{
		img.nieaktywny = katalog + '/minus1_nieaktywny.' + typObrazka ;
		img.aktywny = katalog + '/minus1_aktywny.' + typObrazka ;
		img.najechany = katalog + '/minus1_najechany.' + typObrazka ;
	}

	// i podstaw właściwy
	ustawKupuje(id , ilosc) ;

	// ustaw styl dla pola tekstowego
	if(! blokada && img != null)
	{
		wyjscieZTrybuEdycji(id) ;
	}
}


function zmienAktywnosc(img,ilosc)
{
	if(ilosc <= 0)
	{
		if(! przyciskNieaktywny(img))
		{
			img.src = img.nieaktywny ;
		}
	}
	else
	{
		if(przyciskNieaktywny(img))
		{
			img.src = img.aktywny ;
		}
	}
}

function ustawKupuje(id,ilosc)
{

	try
	{
		var img = document.getElementById('kupuje_' + id) ;

		if(img == null) // img może być null dla boxów wielowariantowych
		{
			return ;
		}

		zmienAktywnosc(img, ilosc) ;

		img = document.getElementById('minus1_' + id) ;

		if(img != null) // sprawdzam, bo metodę tą wywołuję także bez obecności przycisku
		{               // minus1 w przypadku towarów wariantowych
			zmienAktywnosc(img, ilosc) ;
		}
	}
	catch (error)
	{
		alert('blad: ' + id) ;
	}
}

function fKupuje(id)
{
	if((! przyciskNieaktywny(document.getElementById('kupuje_' + id))) && (! blokada))
	{
		blokada = true ;
		//		plus(id,0) ;
		document.location.href = 'koszyk.jsp' ;
	}
}


function utrataFokusu(id)
{
	if(! blokada)
	{
		blokada = true ;
		plus(id,0) ;
	}
}

function zdejmijFokusIZatwierdz(e,id)
{
	var wynik = true ;

	if(! blokada)
	{
		blokada = true ;
		//		var pole = document.getElementById('pr_' + id).iloscint ;

		var keynum;

		if(window.event) // IE
		{
			keynum = e.keyCode;
		}
		else if(e.which) // Netscape/Firefox/Opera
		{
			keynum = e.which;
		}

		if(keynum == 13) // enter
		{
			plus(id,0) ;
			return false ;
		}
		else
		{
		}

		blokada = false ;
	}
	
	return wynik ;
}

function wpiszKoszyk()
{

	if(! blokada)
	{
		blokada = true ;

		// tak naprawdę nie jest dodawane lecz tylko wpisana zawartość koszyka
		dodaj('form_w_koszyku',true) ;
	}

	blokada = false ;
}

function dodaj(id,auto)
{
	var el = (id == 'form_w_koszyku' || id == 'usunPozycje') ? id : ('pr_' + id) ;

	var form = document.getElementById(el) ;

	advAJAX.submit
	(
		form ,
		{
			onError   : function(obj) {
				blad(obj) ;
				blokada = false ;
			} ,
			onSuccess : function(obj) {
				drukujKoszyk(obj,auto) ;
				blokada = false ;
			}
		}
		) ;
	return false ;
}


function loginLogout2(id)
{
	loginLogout(id) ;
}

function loginLogout(id)
{
	var form = document.getElementById(id) ;

	advAJAX.submit
	(
		form ,
		{
			onError   : function(obj) {
				blad(obj) ;
			} ,
			onSuccess : function(obj) {
				sukcesLogin(obj) ;
			}
		}
		) ;

	return false ;
}


function blad(obj)
{
	alert("Operacja nieudana, b\u0142\u0105d nr " + obj.status) ;
}


function usunPozycje(id)
{
	if(! blokada)
	{
		blokada = true ;
		document.usunPozycje.to_id.value = id ;
		dodaj('usunPozycje',false) ;
	}

}

function weryfikujInt(liczba)
{
	var i = parseInt( liczba ) ;
	
	if( isNaN(i) || i < 0)         // jeśli nie jest to liczba całkowita
	{
		i = 0 ;
	}

	return i ;
}

function plus(id,x)
{
	var pole = document.getElementById('pr_' + id).iloscint ;
	var ilosc = weryfikujInt(pole.value) ;
	ilosc += x ;

	if(ilosc < 0)
	{
		ilosc = 0 ;
	}

	pole.value = ilosc + '';

	ustawKupuje(id, ilosc) ;
	dodaj(id,false) ;
}

function przyciskNieaktywny(img)
{
	return img.src.indexOf('nieaktywny',0) != -1 ;
}

function minus1(id)
{

	if(! przyciskNieaktywny(document.getElementById('minus1_' + id)))
	{
		plusX(id,-1) ;
	}

}

function plusX(id,x)
{
	if(! blokada)
	{
		blokada = true ;
		plus(id,x) ;
	}
}

function sukcesLogin(obj)
{
	var aktualny = obj.responseXML.documentElement.firstChild ;
	var element ;

	while(aktualny != null)
	{
		
		if(aktualny.nodeType == 1)
		{
			if(aktualny.nodeName == 'zalogowano')
			{
				if(do_zamowienia)
				{
					document.location.href="do_zamowienia.jsp" ;
					return ;
				}

				element = aktualny.firstChild ;
				while(element != null)
				{
					if(element.nodeType == 1)
					{
						if(element.nodeName == 'login')
						{
							login_login = element.firstChild.nodeValue ;
						}
						else if(element.nodeName == 'nazwa')
						{
							login_nazwa += element.firstChild.nodeValue ;
						}
						else if(element.nodeName == 'miasto')
						{
							login_miasto += element.firstChild.nodeValue ;
						}
					}
					element = element.nextSibling ;
				} // while(element != null) - przejście przez elementy tagu <login>

			}
			else if(aktualny.nodeName == 'niezalogowano')
			{
				login_login = '' ;
				login_nazwa = '' ;
				login_miasto = '' ;
			}
			else if(aktualny.nodeName == 'komunikat')
			{
				element = aktualny.firstChild ;
				alert(element.nodeValue) ;
			}

		} //  if(aktualny.nodeType == 1)

		aktualny = aktualny.nextSibling ;
	}

	ustawBoxLogin() ;

}

function ustawBoxLogin()
{
	if(login_login == '')
	{
		document.getElementById('box_zalogowany').style.display = 'none' ;
		document.getElementById('box_wylogowany').style.display = 'block' ;
	}
	else
	{

		document.getElementById('login_login').innerHTML = login_login ;
		document.getElementById('login_nazwa').innerHTML = login_nazwa ;
		document.getElementById('login_miasto').innerHTML = login_miasto ;
		document.getElementById('box_zalogowany').style.display = 'block' ;
		document.getElementById('box_wylogowany').style.display = 'none' ;
	}

}

function sukces(obj)
{

	var aktualny = obj.responseXML.documentElement.firstChild ;

	var element ;
	var tekst = '... jest pusty' ;

	while(aktualny != null)
	{
		if(aktualny.nodeType == 1 && aktualny.nodeName == 'pozycja')
		{
			if(tekst == '... jest pusty')
			{
				tekst = '' ;
			}
			
			element = aktualny.firstChild ;
			while(element != null)
			{
				if(element.nodeType == 1)
				{
					if(element.nodeName == 'nazwa')
					{
						tekst += '<br>' + element.firstChild.nodeValue ;
					}
					else if(element.nodeName == 'ilosc')
					{
						tekst += element.firstChild.nodeValue ;
					}
				}
				element = element.nextSibling ;
			} // while(element != null) - przejście przez elementy tagu <pozycja>
		}
		
		aktualny = aktualny.nextSibling ;

	}



	document.getElementById('w_koszyku').innerHTML = tekst ;

}


function dodajWariant(ile , nr)
{
	//	alert('blokada: ' + blokada) ;
	if(!blokada)
	{
		blokada = true ;
		var input = document.getElementById("w_" + nr) ;
		input.value = '' + (weryfikujInt(input.value) + ile) ;
		zapiszWarianty() ;
	}
}

function weryfikujIlosc(input)
{
	var ilosc = weryfikujInt(input.value) ;
	input.value = '' + ilosc ;
	return ilosc ;
}


function utrataFokusuNaWariancie()
{
	//			document.getElementById('focus').value = '' + (++tmp) ;

	if(!blokada)
	{
		blokada = true ;
		zapiszWarianty() ;
	}
}

function zapiszWarianty()
{
	var ilosc ;
	var input ;
	var wynik = '' ;
	var suma = 0 ;

	for(i = 0 ; i < wariantyTab.length ; i++)
	{
		input = document.getElementById('w_' + (i+1)) ;
		ilosc = weryfikujIlosc(input) ;

		if(ilosc > 0)
		{
			if(wynik != '')
			{
				wynik += ","
			}

			wynik += wariantyTab[i] + ":" + ilosc ;
			suma += ilosc ;
		}
		ustawStyleDlaPolaIlosci(input,false) ;
	}

	document.getElementById("warianty_input").value = wynik ;
	//	document.getElementById("ilosc_input").value = '' + suma ;

	//			alert('id: ' + document.getElementById("id_input").value) ;
	//			alert('jestem') ;
	dodaj(document.getElementById("id_input").value + '_1' , false) ;
}

function wcisnietoKlawiszNaWariancie(e,input)
{
	var wynik = true ;


	var keynum;

	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}


	if(keynum == 13) // enter
	{
		if(! blokada)
		{
			blokada = true ;
			input.blur() ;
			zapiszWarianty() ;
			wynik = false ;
		}
	}

	return wynik ;
}



