var ssf_imported = true;

function ssfSubmit() {
	if (parseInt(document.forms['ssf'].elements['ssf_count'].value) == 0) {
		alert("Zvolenej kombinácii podmienok nevyhovuje žiaden zájazd!\n"
			+ "Vyberte, prosím, iné podmienky.");
		return false;
	}
	if ($('#ssf_cisloZajezdu').val()) {
		window.location.href = 'http://' + location.hostname + '/' + $("#ssf_cisloZajezdu").val() + '/';
		return false;
	}
	return true;
}


function ssfReset() {
	document.forms['ssf'].reset();
	$('#index_search_form select').attr("disabled","");
	$('#index_search_form input[type=text],input[type=checkbox]').attr("disabled","");
	removeInput('cisloZajezdu');
	removeInput('zamereni');
	removeInput('fulltext');
	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();
	}
}

var showProgress = true;
var urlHash = 'xxx';
var homePage = true;

function ssfRefresh() {
	var data = gatherFormData(document.forms['ssf']);
	document.location.hash = data;
	urlHash = data;
	ajaxSearch(data);
	return true;
}

function ssfForceRefresh(data) {
	ajaxSearch(data);
	return true;
}

function ajaxSearch(data) {	
	ssfHttp = getHTTPObject();
	if (ssfHttp) {
		document.getElementById('ssf_count').innerHTML = "vyhľadá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;
	}
}

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("Zvolenej kombinácii podmienok nevyhovuje žiaden zájazd!\n"
				+ "Vyberte, prosím, iné podmienky.");
			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 = "disabled";
    						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 {
				if (el.name != 'ssf_count' && el.name != 'thru')
					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;
}

function addInput(parametr,force) {
	$('#button_'+parametr).hide();
	var display = false;
	$('#ssf_buttons a').each(function() {
		if ($(this).css('display') != 'none') display = true;
	});
	if (!display) $('#ssf_buttons').hide();
	var added = '<div id="input_'+parametr+'" style="display: none;';
	if (parametr == 'cisloZajezdu') 
		added += 'padding: 10px 0;';
	
	added += '"><label for="ssf_'+parametr+'">';
	if (parametr == 'zamereni') added += 'Typ zájazdu :';
	else if (parametr == 'cisloZajezdu') added += 'Číslo zájazdu :';
	else if (parametr == 'fulltext') added += 'Názov hotela :';
	added += '</label> ';
	if (parametr == 'zamereni') {
		added += '<select name="'+parametr+'[]" id="ssf_'+parametr+'" onchange="ssfRefresh(this);">';
		added += '<option value="" selected="selected">nerozhoduje</option>';
		added += '<option value="" class="gray" disabled="disabled">-------------------------------------</option>';
		added += '</select>';
	}
	else if (parametr == 'cisloZajezdu') {
		added += '<input name="'+parametr+'" style="width: 179px;" id="ssf_'+parametr+'" value="" type="text" class="input">';
	}
	else if (parametr == 'fulltext') {
		added += '<input name="ftext" style="width: 179px;" id="ssf_'+parametr+'" value="" type="text" class="input">';
	}
	added += ' <a style="text-decoration: none; position: relative; top: 3px;" href="#" onclick="javascript: return removeInput(\''+parametr+'\');"><img class="ssf_minus" src="http://www.zajezdy.cz/img/minus.gif" alt="-" border="0" /></a>';
	added += '</div>';
	if (parametr == 'cisloZajezdu')
		$('#ssf_buttons').after(added);
	else
		$('#ssf_inputs').append(added);	
	
	if (!force)
		ssfRefresh(document.getElementById('ssf_'+parametr));
	
	$('#input_'+parametr).show('fast');
	if (parametr == 'cisloZajezdu' || $('#input_cisloZajezdu').length) {
		$('#index_search_form select').attr("disabled","disabled");
		$('#index_search_form input[type=text],input[type=checkbox]').attr("disabled","disabled");
		$('#index_search_form #input_cisloZajezdu input[type=text]').attr("disabled","");
	}
	if (parametr == 'cisloZajezdu' || parametr == 'fulltext')
		$('#ssf_'+parametr).focus();
	
	return false;
}

function removeInput(parametr,force) {
	if (parametr == 'cisloZajezdu') {
		$('#index_search_form select').attr("disabled","");
		$('#index_search_form input[type=text],input[type=checkbox]').attr("disabled","");
	}
	if ($('#input_'+parametr).length) {
		$('#ssf_buttons').show();
		$('#button_'+parametr).show('fast');
		$('#input_'+parametr).remove();
		if (!force) ssfRefresh();
	}
	return false;
}

function resizeBoxes() {
	var sirka = screenWidth();
	if (sirka <= 1024) {
		$('#index_catalogue_list').css('width','41%');
		$('#index_search_form').css('width','58%');
	}
	else {
		$('#index_catalogue_list').css('width','');
		$('#index_search_form').css('width','');
	}
	var vyska1, vyska2;
	$('#index_catalogue_list').css('height','');
	$('#index_catalogue_list_inner').css('height','');
	vyska1 = $('#index_search_form').height();
	vyska2 = $('#index_catalogue_list').height();	
	if (vyska1 > vyska2-5) {
		$('#index_catalogue_list').height(vyska1-5);
		$('#index_catalogue_list_inner').height(vyska1-5);
	}
}

function checkHash(){
  // kontrola jestli se zmenila kotva
  if(urlHash != document.location.hash && document.location.hash!=""){
    urlHash = document.location.hash; // nastavime zmenenou kotvu
    homePage = false; // uz byla ajaxem volana jina stranka
    
    if (urlHash.search('zamereni') != -1) {
    	if(!$('#input_zamereni').length)
			addInput('zamereni', true);
    }
    else removeInput('zamereni', true);
    
    if (urlHash.search('cisloZajezdu') != -1) {
    	if(!$('#input_cisloZajezdu').length)
			addInput('cisloZajezdu', true);
    }
    else removeInput('cisloZajezdu', true);
    
    if (urlHash.search('ftext') != -1) {
    	if(!$('#input_fulltext').length)
			addInput('fulltext', true);
    }
    else removeInput('fulltext', true);
    
    if (urlHash.search('lm=1') != -1) {
		$('#lm_check').attr('checked', true);
    }
    else
		$('#lm_check').attr('checked', false);
    
    ssfForceRefresh(urlHash.substring(1));
  }
  // pokud byl navrat na uvodni stranku
  if(document.location.hash=="" && homePage==false){
    document.location.reload();  // reloadujeme stranku
    homePage = true;  // aby se cyklicky nevracel na stranku
  }
}

setInterval("checkHash()", 300);

window.onload=function(){
	if (document.location.hash == '') {
		document.forms['ssf'].reset();
		$('#index_search_form select').attr("disabled","");
		$('#index_search_form input[type=text],input[type=checkbox]').attr("disabled","");
	}
} 

$(document).ready(function() {
	resizeBoxes();
});
/*
$(window).resize(function(){
	resizeBoxes();
});
*/
