function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function readSelected(group) {

	cookieValue = readCookie("productsToCompare_"+group);
	if (cookieValue) {
		return cookieValue.split(',');
	}
	else {
		return new Array('', '', '');
	}
}

function writeSelected(selectedProducts,group) {

	cookieValue = selectedProducts[0] + ",";
	cookieValue = cookieValue + selectedProducts[1] + ",";
	cookieValue = cookieValue + selectedProducts[2];
		
	createCookie("productsToCompare_"+group, cookieValue);

}	

function createCookie(name,value)
{
	var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function validate()	{
	form=document.getElementById('listForm');
	form.elements['businessEntityFilter.topFiveIncluded'].value=true;
	for (var i=0;i<form.elements.length; i++) {
		if (form.elements[i].type=='select-one' && form.elements[i].name!='pagingFilter.itemsOnPage' 	&& form.elements[i].value!='0')
		{
			form.elements['businessEntityFilter.topFiveIncluded'].value=false;
			return true;
		}
	}
	if (form.elements['pagingFilter.pageNr'].value > 0) 
		form.elements['businessEntityFilter.topFiveIncluded'].value=false;
	
	return true;
}

function checkSelected() {

	form=document.getElementById('listForm');
	for (var i=0;i<form.elements.length; i++) {
		if (form.elements[i].type=='checkbox')
			if(( form.elements[i].id == tablica[0]
			 || form.elements[i].id == tablica[1]
			 || form.elements[i].id == tablica[2]) ) 		
					form.elements[i].checked=true;
			else form.elements[i].checked=false;			
	}
}

function countChecked() {
	form=document.getElementById('listForm');
	for (var i=0;i<form.elements.length; i++) {
		if (form.elements[i].type=='checkbox' && form.elements[i].checked) {
			toCompare++;

		}
	}
}

function checkComparison(){

	if (!toCompare || toCompare <2) {
		alert("Zaznacz co najmniej 2 produkty");
		return false;
	}
	if (toCompare >3) {
		alert("Możesz zaznaczyć maksymalnie trzy produkty");
		return false;
	}		
	return true;
}

function countNotEmpty(array) {

	result = 0;
	
	for (var i=0;i<array.length; i++) {
		if (array[i] != '') {
			result ++;
		}
	}
	return result;

}
	
function changeCompare(cbx, id, group) {

	hid = document.getElementById('myHidden');
	hid.value = '';
	if (cbx.checked) {
	
		if (toCompare>2) { 
			alert("Możesz zaznaczyć maksymalnie trzy produkty"); cbx.checked=false; 
		}
		else {
			if (tablica[0]=='') tablica[0]=id;
			else if (tablica[1]=='') tablica[1]=id;
			else tablica[2]=id;								
			toCompare++;
		}
	}
	else {
		if (tablica[0]==id) tablica[0]='';
		else if (tablica[1]==id) tablica[1]='';
		else tablica[2]='';			
		toCompare--;
	}
	writeSelected(tablica, group);
	return true;
}
	
function cleanSelected(group)
{
		tablica[0]='';
		tablica[1]='';
		tablica[2]='';	
		toCompare=0;
		writeSelected(tablica,group);
}
	
function compa(group) {	

	selected = 0;
	if (tablica[0]!='') selected++;
	if (tablica[1]!='') selected++;
	if (tablica[2]!='') selected++;		
	
	if (selected>=2) {
		openNewWindow('/porownanie.bhtml?p1='+tablica[0]+'&p2='+tablica[1]+'&p3='+tablica[2], 900, 700, 'yes', 'yes');
		cleanSelected(group);				
		checkSelected();
	}
	else {
		alert("Zaznacz co najmniej 2 produkty"); 	
	}
}

/* ---------- stronicowanie ---- */

var urlParams = new Array()

function gotoUrl() {
	
	url=pageUrl;
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i] && urlParams[i]!='') url+=","+urlParams[i].substring(0,1)+urlParams[i].substring(1);
	}
	
	var manualPriceRange = getManualPriceRange();

	if (manualPriceRange == 'error01') {		
		alert('Podana cena jest nieprawidłowa');
		return false;
	}
	
	if (manualPriceRange == 'error02') {
		alert('Cena "od" jest większa od ceny "do"');
		return false;
	}
	
	url+=manualPriceRange+urlExp;
	
	var searchKeyword = document.getElementById('search.keyword');
	var keyword = document.getElementById('criteria.keyword');
	
	if(searchKeyword) {
		if(searchKeyword.value != '') {
			url=url+'?keyword='+encodeURIComponent(searchKeyword.value);
		}
	}
	else if (keyword && keyword.value != '') {
		url=url+'?keyword='+encodeURIComponent(keyword.value);
	}
	
	document.location.href=url;
	
	return false;
}

function getManualPriceRange() {

	/*dodać walidacje*/
	var range = '';
	var priceLowerLimit = document.getElementById('criteria.manualPrice.lowerLimit');
	var priceUpperLimit = document.getElementById('criteria.manualPrice.upperLimit');
	
	var simplePricePattern = /^[0-9]+$/;
	var pricePattern = /^[0-9]+[\.,][0-9]{2}$/;
	
	if (!(!(priceLowerLimit && priceLowerLimit.value != '') || simplePricePattern.test(priceLowerLimit.value) || pricePattern.test(priceLowerLimit.value)) 
		|| !(!(priceUpperLimit && priceUpperLimit.value != '') || simplePricePattern.test(priceUpperLimit.value) || pricePattern.test(priceUpperLimit.value))) {
		return 'error01';
	}
	
	if (priceLowerLimit && priceUpperLimit && parseFloat(priceLowerLimit.value.replace(',', '.')) > parseFloat(priceUpperLimit.value.replace(',', '.'))) {
		return 'error02';
	}
	
	if (priceLowerLimit && priceLowerLimit.value != '') range='od'+priceLowerLimit.value.replace(',', '.');
	if (priceUpperLimit && priceUpperLimit.value != '') range=range+'do'+priceUpperLimit.value.replace(',', '.');
	if (range != '') range = ',' + range;
	
	return range;
}

function parseParams(url) {
	params=url.split(',');j=0;
	for(i=0; i<params.length; i++) {
		if(params[i]!='') {urlParams[j]=params[i];j++;}
	}
}

function addVariable(code,value) {
	isThere=false;
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i] && urlParams[i].indexOf(code)==0) {
			isThere=true;
			if (value=='' || value=='0' || value==0 || value=='---+nie+wybieram+---') urlParams[i]=null;
			else urlParams[i]=code+value+"";		
			
		}			
	} 
	if (!isThere) {
		 urlParams[urlParams.length]=code+value+"";
	}
	return;		 

}

function showHide(obj){
	if (obj.className=="hide")
		obj.className="show";
	else 
		obj.className="hide";
}

function addVariable(code,value, append) {

	if(!append) { 
		clearVariable(code);
	}
	isThere=false;
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i] && urlParams[i].indexOf(code)==0) {
			isThere=true;
			if (value=='' || value=='0' || value==0 || value=='---+nie+wybieram+---') urlParams[i]=null;
			else urlParams[i]+=":"+value;		
		}			
	} 
	if (!isThere && !(value=='' || value=='0' || value==0 || value=='---+nie+wybieram+---')) {
		 urlParams[urlParams.length]=code+value+"";
	}
	return;		 
}

function removeVariable(code,value) {
	
	var param;
	isThere=false;
	var i=0
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i] && urlParams[i].indexOf(code)==0) {
			isThere=true;
			param = urlParams[i].substring(code.length);
			break;
		}			
	} 
	if (isThere) {
		var newParam = code;
		var paramSplit = param.split(":");
		 
		 for(j = 0; j < paramSplit.length; j++) {
		
			if(paramSplit[j] != value) {
				
				if(newParam != code) {
					newParam+=":";
				}
				newParam+=paramSplit[j];
			}
		 }
		 if(newParam == code) {
			 newParam =  null;
		 }
		 urlParams[i] = newParam;
	}
	return;	
}

function clearVariable(code) {
	
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i] && urlParams[i].indexOf(code)==0) {
			urlParams[i]=null;
		}
	}
}

function clearAllVariables() {
	
	for(i=0; i<urlParams.length; i++) {
		if (urlParams[i].indexOf('d')!=0 && urlParams[i].indexOf('e')!=0) {
			urlParams[i]=null;
		}
	}
}