

var PSearchKrajinaId;
var PSearchKrajinaStrediskoId;
var PSearchNastupDenOdId;
var PSearchDlzkaPobytuId;
var PSearchTypDopravyId;
var PSearchNastupneMiestoId;
var PSearchPocetOsob;
var PSearchPocetDeti;
var PSearchDetiVek = new Array(3);
var PSearchLastminute;
var PSearchSemafor;

function setPSearchKrajinaId( krajinaId ) { PSearchKrajinaId = krajinaId; }
function setPSearchKrajinaStrediskoId( krajinaStrediskoId ) { PSearchKrajinaStrediskoId = krajinaStrediskoId; }
function setPSearchNastupDenOdId( nastupnyDen ) { PSearchNastupDenOdId = nastupnyDen; }
function setPSearchDlzkaPobytuId( dlzkaPobytu ) { PSearchDlzkaPobytuId = dlzkaPobytu; }
function setPSearchTypDopravyId( typDopravyId ) { PSearchTypDopravyId = typDopravyId; }
function setPSearchNastupneMiestoId( nastupneMiestoId ) { PSearchNastupneMiestoId = nastupneMiestoId; }
function setPSearchPocetOsob( pocetOsob ) { PSearchPocetOsob = pocetOsob; }
function setPSearchPocetDeti( pocetDeti ) { PSearchPocetDeti = pocetDeti; }
function setPSearchLastminute() { PSearchLastminute = 1; $("#PSearchLastminute").val(1); }
function unsetPSearchLastminute() { PSearchLastminute = 0; $("#PSearchLastminute").val(0); }

function getPSearchKrajiny() {
	$.getJSON('http://www.globtour.cz/ajax/ajaxKrajiny.php', 
		{ 	nastupDenOd: PSearchNastupDenOdId,
			pobytDlzka: PSearchDlzkaPobytuId,
			typDopravy: PSearchTypDopravyId,
			nastupneMiesto: PSearchNastupneMiestoId,
			lastMinute: PSearchLastminute
			}, createPSearchKrajinyOptions );
}

function getPSearchKrajinaStrediska() {
	$.getJSON('http://www.globtour.cz/ajax/ajaxStrediska.php', 
		{ 	krajinaId: PSearchKrajinaId,
			nastupDenOd: PSearchNastupDenOdId,
			pobytDlzka: PSearchDlzkaPobytuId,
			typDopravy: PSearchTypDopravyId,
			nastupneMiesto: PSearchNastupneMiestoId,
			lastMinute: PSearchLastminute
		}, createPSearchStrediskaOptions );
} 

function getPSearchDlzkaPobytu() {
	$.getJSON('http://www.globtour.cz/ajax/ajaxDlzkaPobytu.php', 
		{ 	krajinaId: PSearchKrajinaId, 
			krajinaStrediskoId: PSearchKrajinaStrediskoId,
			nastupDenOd: PSearchNastupDenOdId,
			typDopravy: PSearchTypDopravyId,
			nastupneMiesto: PSearchNastupneMiestoId,
			lastMinute: PSearchLastminute
		}, createPSearchDlzkaPobytuOptions );
}

function getPSearchTypDopravy() {
	$.getJSON('http://www.globtour.cz/ajax/ajaxTypDopravy.php', 
		{ 	krajinaId: PSearchKrajinaId, 
			krajinaStrediskoId: PSearchKrajinaStrediskoId,
			nastupDenOd: PSearchNastupDenOdId,
			pobytDlzka: PSearchDlzkaPobytuId,
			nastupneMiesto: PSearchNastupneMiestoId,
			lastMinute: PSearchLastminute
		}, createPSearchTypDopravyOptions );
}

function getPSearchNastupneMiesto() {
	$.getJSON('http://www.globtour.cz/ajax/ajaxNastupneMiesto.php', 
		{ 	krajinaId: PSearchKrajinaId, 
			krajinaStrediskoId: PSearchKrajinaStrediskoId,
			nastupDenOd: PSearchNastupDenOdId,
			pobytDlzka: PSearchDlzkaPobytuId,
			typDopravy: PSearchTypDopravyId,
			lastMinute: PSearchLastminute
		}, createPSearchNastupneMiestoOptions );
}

function getPSearchPocetZajazdov() {
	if( isNaN(PSearchSemafor) === true ) PSearchSemafor = 0;
		if( PSearchSemafor > 0 ) return;
		PSearchSemafor = PSearchSemafor + 1;
		$.getJSON('http://www.globtour.cz/ajax/ajaxPocetZajazdov.php', 
			{ 	krajinaId: getPSearchKrajinaId(), 
				krajinaStrediskoId: getPSearchKrajinaStrediskoId(),
				nastupDenOd: getPSearchNastupDenOdId(),
				pobytDlzka: getPSearchDlzkaPobytuId(),
				typDopravy: getPSearchTypDopravyId(),
				nastupneMiesto: getPSearchNastupneMiestoId(),
				lastMinute: getPSearchLastminute(),
				osobDospelych: getPSearchPocetOsobyDospele(),
				osobDeti: getPSearchPocetOsobyDeti(),
				vekDeti: getPSearchOsobyDetiVek()
			}, createPSearchPocetZajazdov );
}

function createPSearchKrajinyOptions( jsonArray, textStatus ) {
	$("#PSearchKrajinaId").html('');
	if(jsonArray.length > 1) $("#PSearchKrajinaId").append( $("<option></option>").val(0).html("všechny destinace"));
	$.each(jsonArray, function(val, element) { 
		$("#PSearchKrajinaId").append( $("<option></option>").val(element.krajinaId).html(element.nazov));
	});
	$("#PSearchKrajinaId option").each(function () { var hodnota = $(this).val(); if( PSearchKrajinaId == hodnota ) { $(this).attr("selected", "true"); }; });
}

function createPSearchStrediskaOptions( jsonArray, textStatus ) {
	$("#PSearchKrajinaStrediskoId").html("");
	$("#PSearchKrajinaStrediskoId").append( $("<option></option>").val(0).html("všechny střediska"));
	$.each(jsonArray, function(val, element) { 
		$("#PSearchKrajinaStrediskoId").append( $("<option></option>").val(element.strediskoId).html(element.nazov));
	});	
	$("#PSearchKrajinaStrediskoId option").each(function () {  var hodnota = $(this).val(); if( PSearchKrajinaStrediskoId == hodnota ) $(this).attr("selected", "true"); });
}

function createPSearchDlzkaPobytuOptions( jsonArray, textStatus ) {
	$("#PSearchDlzkaPobytuId").html("");
	$("#PSearchDlzkaPobytuId").append( $("<option></option>").val(0).html("délka pobytu"));
	$.each(jsonArray, function(val, element) { 
		$("#PSearchDlzkaPobytuId").append( $("<option></option>").val(element.dlzkaPobytuId).html(element.nazov));
	});	
	$("#PSearchDlzkaPobytuId option").each(function () { if( PSearchDlzkaPobytuId == $(this).val() ) $(this).attr("selected", "true"); });
}

function createPSearchTypDopravyOptions( jsonArray, textStatus ) {
	$("#PSearchTypDopravyId").html("");
	if(jsonArray.length > 0) $("#PSearchTypDopravyId").append( $("<option></option>").val(0).html("nezáleží"));
	$.each(jsonArray, function(val, element) { 
		$("#PSearchTypDopravyId").append( $("<option></option>").val(element.typDopravyId).html(element.nazov));
	});
	$("#PSearchTypDopravyId option").each(function () { if( PSearchTypDopravyId == $(this).val() ) $(this).attr("selected", "true"); });	
}

function createPSearchNastupneMiestoOptions( jsonArray, textStatus ) {
	$("#PSearchNastupneMiestoId").html("");
	if( jsonArray.length <= 1 ) $("#PSearchNastupneMiestoId").append( $("<option></option>").val(0).html("nástupní místo"));
	$.each(jsonArray, function(val, element) { 
		$("#PSearchNastupneMiestoId").append( $("<option></option>").val(element.nastupneMiestoId).html(element.nazov));
	});	
	$("#PSearchNastupneMiestoId option").each(function () { if( PSearchNastupneMiestoId == $(this).val() ) $(this).attr("selected", "true"); });
}

function createPSearchPocetZajazdov( jsonValue, textStatus ) {
	$("#PSearchPocetZajazdov").html( jsonValue );
}
		
function getPSearchKrajinaId() {
	var id = 0;
	$("#PSearchKrajinaId option:selected").each(function () { id = $(this).val(); });
	return id;
}

function getPSearchKrajinaStrediskoId() {
	var id = 0;
	$("#PSearchKrajinaStrediskoId option:selected").each(function () { id = $(this).val(); });
	return id;
}

function getPSearchNastupDenOdId() {
	return $("#PSearchNastupnyDenOd").val();
}
		
function getPSearchDlzkaPobytuId() {
	var id = 0;
	$("#PSearchDlzkaPobytuId option:selected").each(function () { id = $(this).val(); });
	return id;
}

function getPSearchTypDopravyId() {
	var id = "";
	$("#PSearchTypDopravyId option:selected").each(function () { id = $(this).val(); });
	return id;
}

function getPSearchNastupneMiestoId() {
	var id = 0;
	$("#PSearchNastupneMiestoId option:selected").each(function () { id = $(this).val(); });
	return id;
}

function getPSearchPocetOsobyDospele() {
	return $("#PSearchOsobyDospele").val();
}

function getPSearchPocetOsobyDeti() {
	return $("#PSearchOsobyDeti").val();
}

function getPSearchOsobyDetiVek() {
	var veky = new Array();
	$("#PSearchDietaVek1 option:selected").each(function () { veky[0] = $(this).val(); });
	$("#PSearchDietaVek2 option:selected").each(function () { veky[1] = $(this).val(); });
	$("#PSearchDietaVek3 option:selected").each(function () { veky[2] = $(this).val(); });
	return veky;
}

function getPSearchLastminute() {
	return $("#PSearchLastminute").val();
}

function zmenPSearchZobrazenieDetiVek() {
	var pocetDeti = new Number(getPSearchPocetOsobyDeti());
	if(pocetDeti != 0){
		$("#childs").show();
		$("#childs select").hide();
		$("#childs label").hide();
		for(var i=1; i <= pocetDeti;i++){
			$("select[id=PSearchDietaVek" + i +"]").parent().show();
			$("select[id=PSearchDietaVek" + i +"]").show();
			$("label[for=PSearchDietaVek" + i +"]").show();
		}
	}else{
		$("#childs").hide();
	}
}

function PSearchZmazKriteria() {
	setPSearchKrajinaId(0);
	setPSearchKrajinaStrediskoId(0);
	setPSearchDlzkaPobytuId(0);
	setPSearchTypDopravyId(0);
	setPSearchNastupneMiestoId(0);
	savePSearchState();
	getPSearchPocetZajazdov();
}

function PSearchKrajinaChange() { savePSearchState(); getPSearchKrajinaStrediska(); getPSearchDlzkaPobytu(); getPSearchTypDopravy(); getPSearchNastupneMiesto(); };
function PSearchKrajinaStrediskoChange() { savePSearchState(); getPSearchDlzkaPobytu(); getPSearchTypDopravy(); getPSearchDlzkaPobytu(); getPSearchNastupneMiesto(); };
function PSearchDlzkaPobytuChange() { savePSearchState(); getPSearchKrajiny(); getPSearchKrajinaStrediska(); getPSearchTypDopravy(); getPSearchNastupneMiesto(); };
function PSearchTypDopravyChange() { savePSearchState(); getPSearchKrajiny(); getPSearchKrajinaStrediska(); getPSearchDlzkaPobytu(); getPSearchNastupneMiesto(); };
function PSearchDatumOdChange() { savePSearchState(); getPSearchPocetZajazdov(); };
function PSearchNastupneMiestoChange() { savePSearchState(); getPSearchPocetZajazdov(); };
function PSearchOsobyDospeleChange() { savePSearchState(); getPSearchPocetZajazdov(); };
function PSearchOsobyDetiChange() { savePSearchState(); zmenPSearchZobrazenieDetiVek(); getPSearchPocetZajazdov(); };

function resetPSearch() {
	setPSearchKrajinaId(0);
	setPSearchKrajinaStrediskoId(0);
	setPSearchDlzkaPobytuId(0);
	setPSearchTypDopravyId(0);
	setPSearchNastupneMiestoId(0);
	getPSearchKrajiny();
	getPSearchKrajinaStrediska();
	getPSearchDlzkaPobytu();
	getPSearchTypDopravy();
	getPSearchNastupneMiesto();
	getPSearchLastminute();
	savePSearchState();
	getPSearchPocetZajazdov(); 
};

function savePSearchState() {
	PSearchKrajinaId = getPSearchKrajinaId();
	PSearchKrajinaStrediskoId = getPSearchKrajinaStrediskoId();
	PSearchDlzkaPobytuId = getPSearchDlzkaPobytuId();
	PSearchTypDopravyId = getPSearchTypDopravyId();
	PSearchNastupneMiestoId = getPSearchNastupneMiestoId();
	PSearchNastupDenOdId = getPSearchNastupDenOdId();
	PSearchPocetOsob = getPSearchPocetOsobyDospele();
	PSearchPocetDeti = getPSearchPocetOsobyDeti();
	PSearchDetiVek = getPSearchOsobyDetiVek();
	PSearchLastminute = getPSearchLastminute();
	PSearchSemafor = 0;
}
		
function ajaxRequestSend(e, xhr, settings) {
					
	if ( settings.url.search('ajaxKrajiny.php') > -1  ) {
		$("#PSearchKrajinaId").html("");
		$("#PSearchKrajinaId").append( $("<option></option>").val(0).html("načítám ..."));
	}

	if ( settings.url.search('ajaxStrediska.php') > -1  ) {
		$("#PSearchKrajinaStrediskoId").html("");
		$("#PSearchKrajinaStrediskoId").append( $("<option></option>").val(0).html("načítám ..."));
	}

	if ( settings.url.search('ajaxDlzkaPobytu.php') > -1  ) {
		$("#PSearchDlzkaPobytuId").html("");
		$("#PSearchDlzkaPobytuId").append( $("<option></option>").val(0).html("načítám ..."));
	}

	if ( settings.url.search('ajaxTypDopravy.php') > -1  ) {
		$("#PSearchTypDopravyId").html("");
		$("#PSearchTypDopravyId").append( $("<option></option>").val(0).html("načítám ..."));
	}

	if ( settings.url.search('ajaxNastupneMiesto.php') > -1  ) {
		$("#PSearchNastupneMiestoId").html("");
		$("#PSearchNastupneMiestoId").append( $("<option></option>").val(0).html("načítám ..."));
	}

	if ( settings.url.search('ajaxPocetZajazdov.php') > -1  ) {
		$("#PSearchPocetZajazdov").html("počítám ...");
	}
	
}
		
$(document).ready( 
	function () {
		$("#PSearchKrajinaId").ajaxSend( ajaxRequestSend );
		$("#PSearchKrajinaStrediskoId").ajaxSend( ajaxRequestSend );
		$("#PSearchDlzkaPobytuId").ajaxSend( ajaxRequestSend );
		$("#PSearchTypDopravyId").ajaxSend( ajaxRequestSend );
		$("#PSearchNastupneMiestoId").ajaxSend( ajaxRequestSend );
		$("#PSearchKrajinaId").ajaxStop( getPSearchPocetZajazdov );

		$(".button_zmazat_kriteria").click( function() { 
			setPSearchKrajinaId(0);
			setPSearchKrajinaStrediskoId(0);
			setPSearchDlzkaPobytuId(0);
			setPSearchTypDopravyId(0);
			setPSearchNastupneMiestoId(0);
			getPSearchKrajiny();
			getPSearchKrajinaStrediska();
			getPSearchDlzkaPobytu();
			getPSearchTypDopravy();
			getPSearchNastupneMiesto();
			savePSearchState();
			getPSearchPocetZajazdov(); 
		});
		
		$("#kriteria").click( function() {
			$(this).css({"color" : "#4f5563"});
			$("#lastmin").css({"color" : "#ffb905"});
			$("#search ul").css({"background-position" : "0px 0px"});
			unsetPSearchLastminute();
			resetPSearch();
		});
		
		$("#lastmin").click( function() {
			$(this).css({"color" : "#4f5563"});
			$("#kriteria").css({"color" : "#ffb905"});
			$("#search ul").css({"background-position" : "-300px 0px"});
			setPSearchLastminute();
			resetPSearch();
		});
	}
);	
