/**
*   @version $Id: catalog.js 2 2009-08-12 15:03:25Z andrzejle $
*	@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
*---------------------------------------------------------------------*/
var currentlyCheckedParams = '';
var lastClickedParam = '';
var paramsToCheck = '';
var paramsToExclude = '';

	function showWaiter()
	{
		manageSelectsAll( 'hidden' );
		LightboxForWaiter.show( 'hideWaiter()', '' );
	}
	
	function hideWaiter()
	{
		LightboxForData.close();
		manageSelectsAll( 'visible' );
	}
	
	function zmien_kod1( showWaiter )
	{
		if( typeof( showWaiter ) == "undefined" )
		{
			manageSelectsAll( 'hidden' );
			LightboxForWaiter.show( 'hideWaiter()', '' );
			//LightboxForWaiter.show( 'hideProductCodeConfigurator()', 'productOrderCodeDiv' );
			//alert('begin');
			setTimeout( 'zmien_kod()', 200 );
		}
		else
		{
			zmien_kod( 1 );
		}
	}
	
	/**
	*	Opis: obsluguje kody produktow na karcie katalogowej
	*/
	function zmien_kod( showWaiter )
	{
		/*if( typeof( showWaiter ) == "undefined" )
		{
			manageSelectsAll( 'hidden' );
			LightboxForWaiter.show( 'hideWaiter()', '' );
			//LightboxForWaiter.show( 'hideProductCodeConfigurator()', 'productOrderCodeDiv' );
			//alert('begin');
		}*/
		var checks, i, parObj, parid, add, od3, checkc, oCena, oMainParam, colNum, oCommander;
		for( var k = 0; k < 2; k++ )
		{
			paramsToCheck = '';
			paramsToExclude = '';
			var numex = 1;
			while( checks = $( 'chks'+numex+'' ) )
			{
				if( checks.checked )
				{
					parObj = $( 'chkParIdToExclude'+numex+'' );
					if( parObj.value != lastClickedParam )
					{
						addParamsToCheck( $( 'chkParExclusion_'+parObj.value+'' ).value, parObj.value );
					}
				}
				numex++;
			}
			if( lastClickedParam != '' )
			{
				removeParamsToCheck( $( 'chkParExclusion_'+lastClickedParam+'' ).value, lastClickedParam );
			}
		}
		//alert( 'paramsToCheck=['+paramsToCheck+']; paramsToExclude=['+paramsToExclude+']' );
		var priceColumnCount = 0;
		if( $( "priceColumnCount" ) )
		{
			priceColumnCount = parseInt( $( "priceColumnCount" ).value );
		}
		var vkod = $( "kod" );
		var vkodDummy = $( "kodDummy" );
		vkod.value = $( "dkod" ).value;
		vkodDummy.value = $( "dkod" ).value;
		var vcena = $( "cena" );
		vcena.value = $( "dcena" ).value;
		var prices = new Array();
		prices[0] = $( "dcena" ).value;
		for( i = 1; i <= priceColumnCount; i++ )
		{
			prices[i] = prices[0];
		}
		var chosenPriceNum = 0;
		var mainParamNum = -1;
		if( oMainParam = $( "chkcmainparam" ) )
		{
			chosenPriceNum = parseInt( oMainParam.value );
		}
		var vcenavat = $( "cenavat" );
		var vvat = $( "dvat" );
		var vpoi = $( "paramOrderIds" );
		vpoi.value = '';
		var numer = 1;
		var chks = "chks"+numer+"";
		var chkc = "chkc"+numer+"_0";
		var chkParId = "chkParId"+numer+"";
		var paridfound = '';
		while( ( checks = $( chks ) ) )
		{
			parid = $( 'chkParIdToExclude'+numer+'' ).value;
			if( paramsToCheck.indexOf( '_'+parid+';' ) < 0 )
			{
				checks.checked = false;
			}
			else
			{
				checks.checked = true;
			}
			add = '';
			if( paramsToExclude.indexOf( '_'+parid+';' ) >= 0 )
			{
				add = 'Off';
			}
			$( 'ckDiv1_'+numer+'' ).className = 'ckDiv1'+add;
			$( 'ckDiv2_'+numer+'' ).className = 'ckDiv2'+add;
			if( od3 = $( 'ckDiv3_'+numer+'' ) )
			{
				od3.className = 'ckDiv3'+add;
			}
			for( i = 1; i <= priceColumnCount; i++ )
			{
				if( od3 = $( 'ckDiv3_'+numer+'_'+i ) )
				{
					//colNum = i%2;
					//od3.className = 'ckDiv3'+add+' ckDivCol'+colNum+' ckDiv3Soldier'+i;
					od3.className = 'ckDiv3'+add+' ckDivCol ckDiv3Soldier'+i;
				}
			}
			if( checks.checked )
			{
				vkod.value += checks.value;
				vkodDummy.value += checks.value;
				checkc = $( chkc );
				//vcena.value = numberToPrecision( ( parseFloat( vcena.value )+parseFloat( checkc.value ) ), 2 );
				for( i = 1; i <= priceColumnCount; i++ )
				{
					if( oCena = $( "chkc"+numer+'_'+i ) )
					{
						prices[i] = numberToPrecision( parseFloat( prices[i] ) + parseFloat( oCena.value ) );
						if( $( "chkcmainparam_"+numer+'_'+i ) )
						{
							chosenPriceNum = i;
						}
					}
				}
				if( vpoi.value != '' )
				{
					vpoi.value += ',';
				}
				vpoi.value += $( chkParId ).value;
			}
			numer++;
			chks = "chks"+numer+"";
			chkc = "chkc"+numer+"_0";
			chkParId = "chkParId"+numer+"";
		}
		if( oCommander = $( 'ckDiv3Commander' ) )
		{
			//oCommander.className = '';
			oCommander.className = 'ckDiv3Commander'+chosenPriceNum;
		}
		var finalPrice = 0;
		var discount = $( 'ddiscount' ).value;
		if( typeof( prices[chosenPriceNum] ) != 'undefined' )
		{
			//finalPrice = numberToPrecision( ( vcena.value*parseFloat(prices[chosenPriceNum] ) ), 2 );
			finalPrice = numberToPrecision( ( parseFloat( prices[chosenPriceNum] ) ), 2 );
		}
		else
		{
			//finalPrice = numberToPrecision( ( vcena.value*parseFloat(prices[0] ) ), 2 );
			finalPrice = numberToPrecision( ( parseFloat( prices[0] ) ), 2 );
		}
		//cena netto
		vcena.value = finalPrice;
		$( 'finalPricePrint' ).innerHTML = finalPrice;
		$( 'finalPricePrintDummy' ).innerHTML = finalPrice;
		// cena brutto
		vcenavat.value = numberToPrecision( parseFloat( finalPrice )*parseFloat( vvat.value ) );
		//cena netto z rabatem
		finalPrice = numberToPrecision( ( parseFloat( finalPrice )*parseFloat( discount ) ), 2 );
		$( 'cenadicount' ).value = finalPrice;
		//cena brutto z rabatem i z vatem
		$( 'cenavatdiscount' ).value = numberToPrecision( ( parseFloat( finalPrice )*parseFloat( vvat.value ) ), 2  );
		//vcenavat.value = numberToPrecision( ( vcena.value*parseFloat( vvat.value ) ), 2 );
		if( typeof( showWaiter ) == "undefined" )
		{
			//alert('end');
			LightboxForWaiter.close();
			manageSelectsAll( 'visible' );
		}
	}

	/**
	*	Opis: obsluguje kody produktow na karcie katalogowej
	*/
	function addParamsToCheck( exclusionList, checkedId )
	{
		if( paramsToExclude == '' )
		{
			paramsToExclude = exclusionList;
			paramsToCheck += '_'+checkedId+';';
		}
		else
		{
			if( paramsToExclude.indexOf( '_'+checkedId+';' ) < 0 )
			{
				if( exclusionList != '' )
				{
					var list = exclusionList.split( ';' );
					for( var i = 0; i < list.length-1; i++ )
					{
						if( paramsToExclude.indexOf( ''+list[i]+';' ) < 0 )
						{
							paramsToExclude += ''+list[i]+';';
						}
					}
				}
				if( paramsToCheck.indexOf( '_'+checkedId+';' ) < 0 )
				{
					paramsToCheck += '_'+checkedId+';';
				}
			}
		}
	}

	/**
	*	Opis: obsluguje kody produktow na karcie katalogowej
	*/
	function removeParamsToCheck( exclusionList, checkedId )
	{
		if( exclusionList != '' )
		{
			if( paramsToExclude != '' )
			{
				var list = exclusionList.split( ';' );
				for( var i = 0; i < list.length-1; i++ )
				{
					if( paramsToExclude.indexOf( ''+list[i]+';' ) < 0 )
					{
						paramsToExclude += ''+list[i]+';';
					}
				}
			}
			else
			{
				paramsToExclude = exclusionList;
			}
		}
		if( paramsToCheck != '' )
		{
			if( paramsToExclude != '' )
			{
				var re;
				eval( "re = /(_"+checkedId+";)+/g;" );
				paramsToExclude = paramsToExclude.replace( re, '' );
				var list = paramsToCheck.split( ';' );
				for( var i = 0; i < list.length-1; i++ )
				{
					if( paramsToExclude.indexOf( ''+list[i]+';' ) >= 0 )
					{
						eval( "re = /("+list[i]+";)+/g;" );
						paramsToCheck = paramsToCheck.replace( re, '' );
						numToUncheck = $( 'chkParNumberToExclude'+list[i]+'' ).value;
						$( "chks"+numToUncheck+"" ).checked = false;
					}
				}
			}
			if( paramsToCheck.indexOf( '_'+checkedId+';' ) < 0 )
			{
				paramsToCheck += '_'+checkedId+';';
			}
		}
		else
		{
			paramsToCheck = '_'+checkedId+';';
		}
	}

/**-------------------------------------------------------------------*/


/**--------------------------------------------------------------------
*	funkcje dodajace produkty do koszyka
*---------------------------------------------------------------------*/

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasketNew2( prodId, paramIds, productType, basketType )
	{
		/*
		0 => id produktu
		1 => id parametrow rozdzielone ","
		2 => typ produktu (0-zwykly, 1-akcesoria)
		3 => typ koszyka (0-koszyk, 1-przechowalnia)
		4 => komentarz klienta
		5 => ilosc
		*/
		l_zam = prodId+"+"+paramIds+"+"+productType+"+"+basketType+"++1";
		$( "koszykaddnew" ).value = l_zam;
		$( "koszykmem" ).submit();
	}
	
	function addToBasketNew1( prodId, a_txt, productType, basketType )
	{
		//manageSelectsAll( 'hidden' );
		//LightboxForWaiter.show( 'hideWaiter()', '' );
		setTimeout( "addToBasketNew( "+prodId+", '"+a_txt+"', "+productType+", "+basketType+" )", 300 );
	}

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasketNew( prodId, a_txt, productType, basketType )
	{
		//zmien_kod( 1 ); //zakomentowalam
		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 )
		{
			/*
			0 => id produktu
			1 => id parametrow rozdzielone ","
			2 => typ produktu (0-zwykly, 1-akcesoria)
			3 => typ koszyka (0-koszyk, 1-przechowalnia)
			4 => komentarz klienta
			5 => ilosc
			*/
			//l_zam = prodId+"+"+$( "paramOrderIds" ).value+"+"+productType+"+"+basketType+"++1";
			l_zam = prodId+"++"+productType+"+"+basketType+"++1";
			$( "koszykaddnew" ).value = l_zam;
			$( "koszykmem" ).submit();
		}
		else
		{
			alert( a_txt );
			switchTabs( 2, 'catTab' );
			//showTabbed( "tab", 5, 2 );
		}
		LightboxForWaiter.close();
		manageSelectsAll( 'visible' );
	}

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasketNew_old( prodId, productType, basketType )
	{
		/*
		0 => id produktu
		1 => id parametrow rozdzielone ","
		2 => typ produktu (0-zwykly, 1-akcesoria)
		3 => typ koszyka (0-koszyk, 1-przechowalnia)
		4 => komentarz klienta
		5 => ilosc
		*/
		l_zam = prodId+"+"+$( "paramOrderIds" ).value+"+"+productType+"+"+basketType+"++1";
		$( "koszykaddnew" ).value = l_zam;
		$( "koszykmem" ).submit();
	}

	/**
	*	Opis: dodaje produkt do koszyka
	*/
	function addToBasketMultiNew( txt )
	{
		var i = 0;
		var lZam = '';
		while( oObj = $( 'accesoryCheck'+i+'' ) )
		{
			if( oObj.checked )
			{
				if( lZam != '' )
				{
					lZam += '|';
				}
				lZam += oObj.value;
			}
			i++;
		}
		if( lZam != '' )
		{
			$( "basketmultiadd" ).value = lZam;
			$( "koszykmem" ).submit();
		}
		else
		{
			alert( txt );
		}
	}

	/**
	*	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 );
			switchTabs( 2, 'catTab' );
			//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" ).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 );
			}
		}
	}
	
	
	function changeCategoryFilter( valueId )
	{
		divObj = $$( '.catBlock' );
		for( i = 0; i < divObj.length; i++ )
		{
			divObj[i].style.display = 'none';
		}
		divObj1 = document.getElementsByName( 'valueFilter1' );
		for( i = 0; i < divObj1.length; i++ )
		{
			divObj1[i].disabled = true;
		}
		if( $( 'valueFilter0' ).options[0].selected )
		{
			$( 'category' ).style.display = 'block';
		}
		else
		{	
			$( 'category' ).style.display = 'none';
			$( 'category_'+valueId ).style.display = 'block';
			$( 'valueFilter_'+valueId ).disabled = false;
		}
	}
	
	
	/*-------------------------------------------------------------*/
	
	var pricePopVis = 0;
	var pricePopTime = 0;
	var pricePopX = 0;
	var pricePopY = 0;
	var priceLastVis = '';
	/** opcje dla boxa pop */
	var priceSchowOptions = {
		maxTitleChars: 30,
		showDelay: 100,
		hideDelay: 100,
		className: 'tipsGal',
		offsets: { 'x': -165, 'y': 0 },
		offsetsReverse: { 'x': 30, 'y': 0 },
		prefers: { 'x': false, 'y': true }, // preferowana pozycja: true - dalej od gornego lewego rogu; false - blizej
		prefersConst: { 'x': true, 'y': true }, // jesli true, to nie 'przerzucac' na druga strone
		stopOnEdge: { 'x': false, 'y': true }, // zatrzymac na brzegu
		fixed: false,
		center: false//'x' // false - nic nie jest wycentrowane; x - wycentrowane w poziomie; y - wycentrowane w pionie
	}

	/**
	*	Opis: inicjuje pokazywanie dymka
	*/
	function startPricePopShow( fId, txt )
	{
		//forumPopX = e.screenX+20;
		//forumPopY = e.screenY-50;
		clearTimeout( pricePopTime );
		if( priceLastVis != fId )
		{
			pricePopTime = setTimeout( "showPricePop( '"+fId+"', '"+txt+"' )", 500 );
		}
	}

	/**
	*	Opis: zatrzymuje pokazywanie dymka
	*/
	function stopPricePopShow()
	{
		clearTimeout( pricePopTime );
		pricePopTime = setTimeout( "hidePricePop()", 500 );
	}

	/**
	*	Opis: ukrywa dymek
	*/
	function hidePricePop()
	{
		var pricePopDiv = $( 'PricePopDiv' );
		var pricePopDiv2 = $( 'PricePopDiv2' );
		pricePopDiv2.innerHTML = '';
		pricePopDiv.style.top = '0px';
		pricePopDiv.style.left = '0px';
		pricePopDiv.style.display = 'none';
		manageSelects2( 1 );
		priceLastVis = '';
	}

	/**
	*	Opis: pokazuje dymek
	*/
	function showPricePop( fId, txt )
	{
		manageSelects2( 0 );
		answerFromAjaxForum = 0;
		//clearTimeout( ajaxForumTimeout );
		var pricePopDiv = $( 'PricePopDiv' );
		var pricePopDiv2 = $( 'PricePopDiv2' );
		pricePopDiv.injectInside( document.body );
		pricePopDiv2.innerHTML = txt;
		pricePopDiv.style.display = 'block';
		pricePopDiv.style.left = ''+pricePopX+'px';
		pricePopDiv.style.top = ''+pricePopY+'px';
		
		locatePricePop( fId, 'PricePopDiv' );
		priceLastVis = fId;
	}
	
	/**
	* Opis: umiejscawiadymek na stronie
	*/
	function locatePricePop( fId, pricePopDivId )
	{
		//if( answerFromAjaxForum == 1 )
		//{
			var pricePopDiv = $( pricePopDivId );
			var win = {'x': window.getWidth(), 'y': window.getHeight()};
			var scroll = {'x': window.getScrollLeft(), 'y': window.getScrollTop()};
			var tip = {'x': pricePopDiv.offsetWidth, 'y': pricePopDiv.offsetHeight};
			var prop = {'x': 'left', 'y': 'top'};
			var point = priceGetXY( fId );
			var source = {'x': point.x, 'y': point.y };
			for ( var z in prop )
			{
				if( priceSchowOptions.center == z ) // wycentrowane
				{
					//stopOnEdge - to ma znaczenie dla wysrodkowanych - true: opiera sie o brzeg, false: chowa sie za brzegiem
					var pos = source[z] - Math.floor( tip[z] / 2 ) + priceSchowOptions.offsets[z];
					if( priceSchowOptions.prefers[z] ) // wolimy blizej gornego lewego rogu
					{
						if( pos < scroll[z] )
						{ // za bardzo w lewo/gore - przesuwamy
							pos = scroll[z];
						}
						else if( ( source[z] + Math.ceil( tip[z] / 2 ) - scroll[z] ) > win[z] )
						{ // za bardzo w prawo/dol - przeskakuje na druga strone lub odsuwa
							pos = Math.max( ( win[z] + scroll[z] - tip[z] ), scroll[z] );
						}
					}
					else // wolimy dalej od gornego lewego rogu
					{
						if( ( source[z] + Math.ceil( tip[z] / 2 ) - scroll[z] ) > win[z] )
						{ // za bardzo w prawo/dol - przesuwamy
							pos = win[z] + scroll[z] - tip[z];
						}
						else if( ( pos < scroll[z] ) )
						{ // za bardzo w lewo/gore - odsuwa sie lub przeskakuje
							pos = Math.min( scroll[z], ( win[z] + scroll[z] - tip[z] ) );
						}
					}
				}
				else // nie wycentrowane
				{
					if( priceSchowOptions.prefers[z] ) // wolimy blizej gornego lewego rogu
					{
						var pos = source[z] + priceSchowOptions.offsets[z] - tip[z];
						if( !priceSchowOptions.prefersConst && ( pos < scroll[z] ) )
						{
							pos = source[z] + priceSchowOptions.offsetsReverse[z];
						}
					}
					else // wolimy dalej od gornego lewego rogu
					{
						var pos = source[z] + priceSchowOptions.offsets[z];
						if( !priceSchowOptions.prefersConst && ( ( pos + tip[z] ) > ( win[z] + scroll[z] ) ) )
						{
							pos = source[z] + priceSchowOptions.offsetsReverse[z];
						}
					}
				}
				pricePopDiv.setStyle( prop[z], pos );
			}
		//}
		//else
		//{
		//	ajaxForumTimeout = setTimeout( "locateForumPop( '"+fId+"', '"+forumPopDivId+"' )", 100 );
		//}
	}

	/**
	*	Opis: resetuje konfiguracje
	*/
	function PricePoint( iX, iY )
	{
		this.x = iX;
		this.y = iY;
	}

	/**
	*	Opis: resetuje konfiguracje
	*/
	function priceGetXY( fId )
	{
		var oTmp = $( fId );
		var pt = new PricePoint( 0, 0 );
		do{
			pt.x += oTmp.offsetLeft;
			pt.y += oTmp.offsetTop;
			oTmp = oTmp.offsetParent;
		}
		while( oTmp.tagName != "BODY" );
		return pt;
	}


