/**
*   @version $Id: catalog.js 459 2008-01-24 13:27:15Z 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: obsluguje kody produktow na karcie katalogowej
	*/
	function zmien_kod()
	{
		vkod = $( "kod" );
		vkod.value = $( "dkod" ).value;
		vcena = $( "cena" );
		vdoplata = $( "doplata" );
		vcena.value = $( "dcena" ).value;
		vcenavat = $( "cenavat" );
		vvat = $( "dvat" );
		numer = 1;
		chks = "chks"+numer+"";
		chkc = "chkc"+numer+"";
		vdoplata2 = 0;
		while( ( checks = $( chks ) ) )
		{
			if( checks.checked )
			{
				vkod.value += checks.value;
				checkc = $( chkc );
				//vcena.value = numberToPrecision( ( parseFloat( vcena.value )+parseFloat( checkc.value ) ), 2 );
				vdoplata2 = numberToPrecision( ( parseFloat( vdoplata2 )+parseFloat( checkc.value ) ), 2 );
				//vdoplata.value = numberToPrecision( ( parseFloat( checkc.value ) ), 2 );
			}
			numer++;
			chks = "chks"+numer+"";
			chkc = "chkc"+numer+"";
		}
		vdoplata.value = vdoplata2;
		vcenavat.value = numberToPrecision( ( ( parseFloat( vcena.value ) + parseFloat( vdoplata2 ) )*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;
		chkc = "chkc" + numer;
		ok = 1;
		oktmp = 0;
		oldname = "";
		vdoplata2 = 0;
		while( ( checks = $( chks ) ) )
		{
			name = checks.name;
			if( oldname != name )
			{
				if( ( oktmp == 0 ) && ( oldname != "" ) )
				{
					ok = 0;
				}
				oldname = name;
				oktmp = 0;
			}
			if( ( checks.checked ) && ( checkc = $( chkc ) ) )
			{
				oktmp = 1;
				vdoplata2 = numberToPrecision( ( parseFloat( vdoplata2 )+parseFloat( checkc.value ) ), 2 );
				//alert( checkc.value );
			}
			numer++;
			chks = "chks" + numer;
			chkc = "chkc" + numer;
		}
		if( ( oktmp == 0 ) && ( oldname != "" ) )
		{
			ok = 0;
		}
		if( ok == 1 )
		{
			//l_cena = $( "cena" ).value+vdoplata2;
			l_cena = numberToPrecision( ( parseFloat( $( "cena" ).value )+parseFloat( vdoplata2 ) ), 2 );
			//alert( 'cena = '+$( "cena" ).value );
			//alert( 'doplata = '+vdoplata2 );
			l_kod = $( "kod" ).value;
			l_vat = $( "vat" ).value;
			//l_zam = a_id+"+"+l_kod+"+"+l_cena+"+"+l_vat+"+1|";
			l_zam = a_id+"+"+l_kod+"+"+l_cena+"+1|";
			$( "koszykadd" ).value = l_zam;
			$( "koszykmem" ).submit();
			//alert( l_zam );
		}
		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 )
	{
		//showLoading( 'sortedComparisonDiv' );
		new Ajax( ajaxSendUrl,
			{
				method: 'post',
				data: "adr="+ajaxGetUrl+"&catalogSortBy="+sortBy+"&catalogSortType="+sortType+"",
				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" ).selected != true ) && ( $( "katdesc" ).selected != true ) && ( $( "katcode" ).selected != 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 Tips1 = new Tips($('.Tips1'));

	function showTip()
	{
		/* Tips 2 */
		var Tips2 = new Tips($$('.Tips2'), {
			initialize:function(){
				this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			},
			onShow: function(toolTip) {
				this.fx.start(1);
			},
			onHide: function(toolTip) {
				this.fx.start(0);
			}
		});
	}

