/**
*   @version $Id: catalog.js 9 2008-01-16 11:27:42Z piotrj $
*	@package frontend
*	@author piotrj
*/

	/**
	*	Opis: wstawia obrazek ladowania do wskazanego elementu
	*/
	function showLoading( id )
	{
		$( id ).innerHTML = '<div style="text-align: center; padding: 10px;"><img alt="loading" src="/images/loading.gif" /></div>';
	}

/**--------------------------------------------------------------------
*	konfigurator
*---------------------------------------------------------------------*/

	/**
	*	Opis: resetuje konfiguracje
	*/
	function resetConfig()
	{
		//showLoading( 'configuratorDiv' );
		new Ajax( ajaxSendUrl,
			{
				method: 'post',
				data: "adr="+ajaxGetUrl+"&currentPar=0&chosenVal=0&chosenValName=_&reset=1",
				onFailure: function()
							{
								docConfForm = $( "configuratorForm" );
								act = docConfForm.action;
								re = /\/ajax/
								act = act.replace( re, "" );
								docConfForm.action = act;
								$( "reset" ).value = "1";
								docConfForm.submit();
							},
				update: $( 'configuratorDiv' ),
				evalScripts: true
			}
		).request();
	}

	/**
	*	Opis: zarzadza przeladowaniami w konfiguratorze
	*/
	function configuratorSubmit( paramNumber, txt, type )
	{
		iVal = 0;
		iName = "_";
		if( type == 1 )
		{
			i = 1;
			id = "value"+i+"";
			found = 0;
			while( ( found == 0 ) && ( oObj = $( id ) ) )
			{
				if( oObj.checked )
				{
					iVal = $( "confval"+i+"" ).value;
					iName = $( "confvalname"+i+"" ).value;
					found = 1;
				}
				i++;
				id = "value"+i+"";
			}
		}
		else
		{
			found = 1;
		}
		if( found == 1 )
		{
			//showLoading( 'configuratorDiv' );
			new Ajax( ajaxSendUrl,
				{
					method: 'post',
					data: "adr="+ajaxGetUrl+"&currentPar="+paramNumber+"&chosenVal="+iVal+"&chosenValName="+iName+"&reset=0",
					onFailure: function()
								{
									docConfForm = $( "configuratorForm" );
									act = docConfForm.action;
									re = /\/ajax/
									act = act.replace( re, "" );
									docConfForm.action = act;
									$( "currentPar" ).value = paramNumber;
									$( "chosenVal" ).value = iVal;
									$( "chosenValName" ).value = iName;
									docConfForm.submit();
								},
					update: $( 'configuratorDiv' ),
					evalScripts: true
				}
			).request();
		}
		else
		{
			alert( txt );
		}
	}

/**-------------------------------------------------------------------*/


/**--------------------------------------------------------------------
*	tabbed panel i kody produktow w karcie katalogowej
*---------------------------------------------------------------------*/

	/**
	*	Opis: funkcja podswietla tabbed panel
	*/
	function lightTabbed( a_name, on )
	{
		obj = $( a_name );
		iname = a_name+"div";
		if( ( obj.className == 'catTabOn' ) || ( obj.className == 'catTabOff' ) )
		{
			if( on == 1 )
			{
				//obj.style.color = '#993366';
				obj.className = 'catTabOn';
				changeDots( iname+"b", iname+"a" );
			}
			else
			{
				//obj.style.color = '#142a3b';
				obj.className = 'catTabOff';
				changeDots( iname+"a", iname+"b" );
			}
			
		}
	}

	/**
	*	Opis: funkcja zarzadza przelaczaniem tabbed panel
	*/
	function showTabbed( a_name, a_num, a_id ) 
	{
		// a_name to nazwa wspolna dla grupy paneli
		// a_num to ilosc paneli w grupie [ 1..n ]
		// a_id to numer panelu w grupie [ 0..n-1 ]
		for( i = 0; i < a_num; i++ )
		{
			l_tab = ''+a_name+''+i+'';
			obj = $( l_tab );
			obj.style.display = 'none';
			l_tabtop = ''+a_name+''+i+'top';
			if( objtop = $( l_tabtop ) )
			{
				//objtop.style.color = '#142a3b';
				objtop.className = 'catTabOff';
				changeDots( l_tabtop+"diva", l_tabtop+"divb" );
			}
		}
		l_tab = ''+a_name+''+a_id+'';
		obj = $( l_tab );
		obj.style.display = 'block';
		l_tabtop = ''+a_name+''+a_id+'top';
		objtop = $( l_tabtop );
		//objtop.style.color = '#9a3366';
		objtop.className = 'catTabOn2';
		changeDots( l_tabtop+"divb", l_tabtop+"diva" );
	}

	/**
	*	Opis: obsluguje kody produktow na karcie katalogowej
	*/
	function zmien_kod()
	{
		vkod = $( "kod" );
		vkod.value = $( "dkod" ).value;
		vcena = $( "cena" );
		vcena.value = $( "dcena" ).value;
		vcenavat = $( "cenavat" );
		vvat = $( "dvat" );
		numer = 1;
		chks = "chks"+numer+"";
		chkc = "chkc"+numer+"";
		while( ( checks = $( chks ) ) )
		{
			if( checks.checked )
			{
				vkod.value += checks.value;
				checkc = $( chkc );
				vcena.value = numberToPrecision( ( parseFloat( vcena.value )+parseFloat( checkc.value ) ), 2 );
			}
			numer++;
			chks = "chks"+numer+"";
			chkc = "chkc"+numer+"";
		}
		vcenavat.value = numberToPrecision( ( vcena.value*parseFloat( vvat.value ) ), 2 );
	}

/**-------------------------------------------------------------------*/


/**--------------------------------------------------------------------
*	funkcje dodajace produkty do koszyka
*---------------------------------------------------------------------*/

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasket2( a_id, a_price, a_code, a_vat )
	{
		l_zam = a_id+"+"+a_code+"+"+a_price+"+"+a_vat+"+1|";
		$( "koszykadd" ).value = l_zam;
		$( "koszykmem" ).submit();
	}

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasket( a_id, a_txt )
	{
		numer = 1;
		chks = "chks" + numer;
		ok = 1;
		oktmp = 0;
		oldname = "";
		while( ( checks = $( chks ) ) )
		{
			name = checks.name;
			if( oldname != name )
			{
				if( ( oktmp == 0 ) && ( oldname != "" ) )
				{
					ok = 0;
				}
				oldname = name;
				oktmp = 0;
			}
			if( checks.checked )
			{
				oktmp = 1;
			}
			numer++;
			chks = "chks" + numer;
		}
		if( ( oktmp == 0 ) && ( oldname != "" ) )
		{
			ok = 0;
		}
		if( ok == 1 )
		{
			l_cena = $( "cena" ).value;
			l_kod = $( "kod" ).value;
			l_vat = $( "vat" ).value;
			l_zam = a_id+"+"+l_kod+"+"+l_cena+"+"+l_vat+"+1|";
			$( "koszykadd" ).value = l_zam;
			$( "koszykmem" ).submit();
		}
		else
		{
			alert( a_txt );
			showTabbed( "tab", 5, 2 );
		}
	}

/**-------------------------------------------------------------------*/

	/**
	*	Opis: odznacza zaznaczony produkt
	*/
	function unCheck( a_id, a_mem_id )
	{
		a_num = "chks"+a_id
		check = $( a_num );
		memory = "mem"+a_mem_id;
		chk = $( memory );
		if( chk.value == a_id )
		{
			check.checked = false;
			chk.value = 0;
		}
		else
		{
			chk.value = a_id;
		}
	}

	/**
	*	Opis: sprawdza, czy zaznaczony jest przynajmniej jeden produkt
	*/
	function isProductChecked( a_tekst, a_type, a_adr )
	{
		jest = 0;
		numer = 0;
		chk = "chk" + numer;
		zaz = "";
		while( check = $( chk ) )
		{
			if( check.checked == true )
			{
				zaz += check.value+";";
				jest = 1;
			}
			numer++;
			chk = "chk" + numer;
		}
		if( ( jest == 1 ) || ( a_type == 0 ) )
		{
			if( a_type == 0 )
			{
				//alert( a_adr );
				docFormCP = $( "check_prod" );
				docFormCP.action = a_adr;
				docFormCP.submit();
			}
			else
			{
				a_adr += "/" + zaz;
				//alert( a_adr );
				winObj = window.open( a_adr, "_blank", "channelmode=no, toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, titlebar=yes, fullscreen=no, width=800, height=600" );
			}
		}
		else
		{
			alert( a_tekst );
		}
	}

	/**
	*	Opis: sprawdza, czy zaznaczony jest przynajmniej jeden parametr
	*/
	function isParamChecked( a_tekst )
	{
		jest = 0;
		numer = 0;
		chk = "chk" + numer;
		while( ( check = $( chk ) ) && ( jest == 0 ) )
		{
			if( check.checked == true )
			{
				jest = 1;
			}
			numer++;
			chk = "chk" + numer;
		}
		if( jest == 1 )
		{
			$( "check_param" ).submit();
		}
		else
		{
			alert( a_tekst );
		}
	}

	/**
	*	Opis: zaznacza wszystkie checkboxy
	*/
	function check_all()
	{
		numer = 0;
		chk = "chk" + numer;
		while( ( check = $( chk ) ) )
		{
			check.checked = true;
			numer++;
			chk = "chk" + numer;
		}
	}

	/**
	*	Opis: odznacza wszystkie checkboxy
	*/
	function check_none()
	{
		numer = 0;
		chk = "chk" + numer;
		while( ( check = $( chk ) ) )
		{
			check.checked = false;
			numer++;
			chk = "chk" + numer;
		}
	}

	/**
	*	Opis: resetuje filtry globalne
	*/
	function dropFilters()
	{
		$( "dropFilters" ).value = 1;
		$( "paramFilterForm" ).submit();
	}

	/**
	*	Opis: resetuje filtry w grupie
	*/
	function dropGroupFilters()
	{
		$( "dropGroupFilters" ).value = 1;
		$( "paramGroupFilterForm" ).submit();
	}

	/**
	*	Opis: usuwa parametr lub produkt z porownania
	*/
	function alterComparison( value, type )
	{
		if( type == 0 )
		{
			$( "dropProduct" ).value = value;
		}
		else
		{
			$( "dropParam" ).value = value;
			$( "reloadCheck" ).value = "yes";
		}
		$( "dropForm" ).submit();
	}

	/**
	*	Opis: ustawia sortowanie w trybie akcesoria
	*/
	function setSort( sortBy, sortType, pageNumber )
	{
		//showLoading( 'sortedComparisonDiv' );
		new Ajax( ajaxSendUrl,
			{
				method: 'post',
				data: "adr="+ajaxGetUrl+"&catalogSortBy="+sortBy+"&catalogSortType="+sortType+"&catalogPageNumber="+pageNumber+"",
				onFailure: function()
							{
								$( "catalogSortBy" ).value = sortBy;
								$( "catalogSortType" ).value = sortType;
								$( "catalogsortform" ).submit();
							},
				update: $( 'sortedComparisonDiv' ),
				evalScripts: true
			}
		).request();
	}

	/**
	*	Opis: sprawdza, czy w wyszukiwarce dla katalogu 
	*/
	function checkCatalogWords( a_txt, a_txt2, a_loc, plainTxt )
	{
		if( ( $( "katname" ).checked != true ) && ( $( "katdesc" ).checked != true ) && ( $( "katcode" ).checked != true ) )
		{
			alert( a_txt2 );
		}
		else
		{
			words_container = $( "catalog_words2" );
			send_text = words_container.value;
			newstr = "";
			if( ( send_text != "" ) && ( send_text != plainTxt ) )
			{
				re = /(^\s*)|(\s*$)/g
				newstr = send_text.replace( re, "" );
				re = /\s+/g
				newstr = newstr.replace( re, " " );
			}
			if( newstr != "" )
			{
				$( "catalog_words" ).value = newstr;
				docFormCWS = $( "catalog_words_search" );
				docFormCWS.action = a_loc;
				docFormCWS.submit();
			}
			else
			{
				words_container.value = "";
				$( "catalog_words" ).value = "";
				alert( a_txt );
			}
		}
	}

	var lastOpenedCatTab = 0;

	/**
	* Opis: funkcja przelacza taby na stronie glownej
	*/
	function switchCatTabs( nr )
	{
		if( nr != lastOpenedCatTab )
		{
			$( 'mainTab'+lastOpenedCatTab+'' ).style.display = 'none';
			$( 'mainTab'+nr+'' ).style.display = 'block';
			//$( 'tabSwitcher'+lastOpenedCatTab+'' ).style.color = '#c23b6d';
			//$( 'tabSwitcher'+lastOpenedCatTab+'' ).style.backgroundColor = '#ffffff';
			$( 'tabSwitcherBottom'+lastOpenedCatTab+'' ).className = 'catTabBotOff';
			$( 'tabSwitcher'+lastOpenedCatTab+'' ).className = 'catTabOff';
			//$( 'tabSwitcher'+nr+'' ).style.color = '#ffffff';
			//$( 'tabSwitcher'+nr+'' ).style.backgroundColor = '#c23b6d';
			$( 'tabSwitcher'+nr+'' ).className = 'catTabOn';
			$( 'tabSwitcherBottom'+nr+'' ).className = 'catTabBotOn';
			lastOpenedCatTab = nr;
		}
	}

	/**
	* Opis: funkcja podswietla taby na stronie glownej
	*/
	function lightCatTabs( id, on )
	{
		oDiv = $( id );
		if( oDiv.className != 'catTabOn' )
		{
			if( on == 1 )
			{
				oDiv.className = 'catTabOffOver';
			}
			else
			{
				oDiv.className = 'catTabOff';
			}
		}
	}


