var ssf_imported = true;

function ssfSubmit() {
	if (parseInt(document.forms['ssf'].elements['ssf_count'].value) == 0) {
		alert("Zvolené kombinaci podmínek nevyhovuje žádný zájezd!\n"
			+ "Vyberte, prosím, jiné podmínky.");
		return false;
	}
	return true;
}


function ssfReset() {
	document.forms['ssf'].reset();
	ssfRefresh();
}

function ssfReload() {
	var cook;// = getCookie('ssf_data');
	//alert(cook);
	if (cook && cook.length > 10) {
		parts = cook.split("|");
		for(var i=0; i<parts.length; i++) {
			param = parts[i].split(":");
			if (param[1] != "") {
				pName = param[0] + '[]';
				if (el = document.forms['ssf'].elements[pName]) {
					for(var o=0; o<el.options.length; o++) {
						if (el.options[o].value == param[1]) {
							el.options[o].selected = true;
							break;
						}
					}
				}
				else if(param[0] == "lm" && param[1] == "1") {
					document.forms['ssf'].elements['lm'].checked = true;
				}
			}
		}
		ssfRefresh();
	}
	else {
		document.forms['ssf'].reset();
		ssfRefresh();
	}
}

var showProgress = true;

function ssfRefresh() {
	var data = gatherFormData(document.forms['ssf']);
	
	ssfHttp = getHTTPObject();
	if (ssfHttp) {
		document.getElementById('ssf_count').innerHTML = "vyhledávám ...";
		window.showProgress = true;
		ssfProgress();
		
		ssfHttp.open("POST", "/inc/ssf.php?rand="+(Math.random()*9), true);
		ssfHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ssfHttp.send(data);
		
		ssfHttp.onreadystatechange = populateSsfForm;
		
		
	}
	return true;
}

function ssfProgress() {
	if (window.showProgress) {
		ih = document.getElementById('ssf_count').innerHTML;
		if (ih.length > 18) {
			document.getElementById('ssf_count').innerHTML = "vyhledávám .";
		}
		else {
			document.getElementById('ssf_count').innerHTML += ".";
		}
		window.setTimeout(ssfProgress, 1000);
	}
	else {
		document.getElementById('ssf_count').innerHTML = window.pocet;
	}
}

var ssfParams = new Array('zamereni', 'zeme', 'destinace', 'doprava', 'odjezdInterval', 'maxCena', 'strava');

function populateSsfForm() {
	
	if (ssfHttp.readyState == 4) {
		
		window.showProgress = false;
		
		if (ssfHttp.status != 200) {
			return true;
		}
		//alert(ssfHttp.responseText);
		
		xmldoc = ssfHttp.responseXML;
		if(!xmldoc) {
			return true;
		}
		
		// pocet vyhovujicich zajezdu
		countEl = xmldoc.getElementsByTagName("count").item(0);
		window.pocet = countEl.firstChild.nodeValue;
		document.getElementById('ssf_count').innerHTML = window.pocet;
		document.forms['ssf'].elements['ssf_count'].value = window.pocet;
		
		if (parseInt(pocet) == 0) {
			alert("Zvolené kombinaci podmínek nevyhovuje žádný zájezd!\n"
				+ "Vyberte, prosím, jiné podmínky.");
			return true;
		}
		
		//jsou k dispozici LM
		lmEl = xmldoc.getElementsByTagName("lm").item(0);
		if (lmEl.firstChild.nodeValue.indexOf("true") < 0) {
			document.getElementById('ssf_lm').style.visibility = 'hidden';
		}
		else {
			document.getElementById('ssf_lm').style.visibility = 'visible';
		}
		
		for (var i=0; i<ssfParams.length; i++) {
			
			selectedIndex = 0;
			
			if (select = document.getElementById(('ssf_' + ssfParams[i]))) {
				var newOptions = new Array();
				
				source = xmldoc.getElementsByTagName(ssfParams[i]).item(0);
				opts = source.getElementsByTagName("option");
				for(var o=0; o<opts.length; o++) {
					node = opts.item(o);
					newOpt = document.createElement("option");
					
					label = node.attributes.getNamedItem("label").nodeValue;
					newOpt.appendChild(document.createTextNode(label));
					
					atr = document.createAttribute("value");
    				atr.value = node.attributes.getNamedItem("value").nodeValue;
    				newOpt.setAttributeNode(atr);
    				
    				// vybrany option
    				if (selected = node.attributes.getNamedItem("selected")
    						&& selectedIndex == 0)
    				{
    					selectedIndex = o;
    				}
    				
    				if (cls = node.attributes.getNamedItem("class")) {
    					atr = document.createAttribute("class");
    					atr.value = cls.nodeValue;
    					newOpt.setAttributeNode(atr);
    					
    					if (cls.nodeValue == "gray") {
    						atr = document.createAttribute("disabled");
    						atr.value = "true";
    						newOpt.setAttributeNode(atr);
    					}
    				}
    				// u cenovych polozek zarovnavani doprava
    				/*
    				else if (ssfParams[i] == "maxCena" && label != "nerozhoduje") {
    					atr = document.createAttribute("class");
    					atr.value = "ssf_cena";
    					newOpt.setAttributeNode(atr);
    				}
    				*/   				
    				newOptions[o] = newOpt;
				}
				
				while(select.hasChildNodes()) {
    				select.removeChild(select.firstChild);
				}
				for(var o=0; o<newOptions.length; o++) {
					select.appendChild(newOptions[o]);
				}
				
				select.options[selectedIndex].selected = true;			
				if (ssfParams[i]=='zeme') {
					if (selectedIndex > 0)
						$('#div_ssf_destinace').slideDown();
					else
						$('#div_ssf_destinace').slideUp();
				}
			}
		}
	}
}

function gatherFormData(form){
	var str = "";
	for(i=0; i<form.elements.length; i++) {
		el = form.elements[i];
		if (el.type != "button" && el.type != "reset"
				&& el.type != "submit" && el.name != "")
		{
			if (el.type == "radio" || el.type == "checkbox") {
				if (el.checked) {
					str += el.name + "=" + encodeURIComponent(el.value) + "&";
				}
			}
			else if(el.type == "select-one") {
				x = 0;
				while (op = el.options[x]) {
					if (op.selected) {
						str += el.name + "=" + encodeURIComponent(el.options[x].value) + "&";
					}
					x++;
				}
			}
			else {
				str += el.name + "=" + encodeURIComponent(el.value)+"&";
			}
		}
	}
	return str;
}

function advancedSearch (odkaz) {
  var link = '?';
  var element;
  for(i=0;i<ssfParams.length;i++) {
    element = document.getElementById('ssf_'+ssfParams[i]);
    if (element && element.value) {
      link += ssfParams[i]+'[]='+element.value+'&';
    }
  }
  element = document.getElementById('lm_check');
  if (element && element.checked) {
    link += 'lm=1';
  }  
  if (link != '?') {
    location.href=odkaz+link;
    return false;
  }
  else return true;
}

window.onload=function(){
  document.forms['ssf'].reset();
} 
