// JavaScript Document
var form = document.getElementById('frm_rezervace');

function setFormRezervace() {
	
	form.submit_button.disabled = true;
	
	form.datum.readOnly = true;
	form.datum.onclick = new Function("displayCalendar(document.getElementById('frm_rezervace').datum,'dd.mm.yyyy',document.getElementById('frm_rezervace').datum, false)");
	document.getElementById('calendar_icon').onclick = new Function("displayCalendar(document.getElementById('frm_rezervace').datum,'dd.mm.yyyy',document.getElementById('frm_rezervace').datum, false)");
	document.getElementById('row10').style.visibility = 'hidden';
	document.getElementById('prvne0').style.visibility = 'hidden';
	document.getElementById('prvne1').style.visibility = 'hidden';
	form.datum.onchange = new Function("zvolenDatum();");
	
	nastavPomocnika(1);
		
}

function zvolenDatum() {
	document.getElementById('frm_datum').className = "";
	query.constructor(document.getElementById('frm_datum').value, 'query_program.php', 'frm_div_program');
	nastavPomocnika(2);
}

function zvolenProgram() {
	var program = document.getElementById('frm_program').value;
	query.constructor(document.getElementById('frm_program').value + '|' + document.getElementById('frm_datum').value, 'query_zacatkyprogramu.php', 'frm_div_zacatkyProgramu');
	if (program == 8) // 8 == Volný program
		nastavPomocnika('3b');
	else
		nastavPomocnika(3);
}

function zvolenZacatekProgramu() {
	var o = document.getElementById('frm_div_pocet_osob');
	var program = document.getElementById('frm_program').value;
	o.innerHTML = '<input type="text" name="pocet_osob" id="frm_pocet_osob" size="10" title="Počet účastníků návštěvy" autocomplete="off" onkeyup="zvolenPocetOsob(this.value)" autocomplete="off" /> osob';
	if (program == 8) 
		nastavPomocnika('4b');
	else
		nastavPomocnika(4);
}

function zvolenaDoprava() {
	var o = document.getElementById('frm_div_doprava_km');
	var typ = document.getElementById('frm_doprava_typ').value;
	o.innerHTML = '<input type="text" name="doprava_km" id="frm_doprava_km" size="25" title="Zadejte obec odkud k nám jedete" autocomplete="off" />';
	o.innerHTML +='<label for="doprava_psc" title="PSČ">PSČ</label><input type="text" id="frm_doprava_psc" name="doprava_psc" size="6" onkeyup="zvolenoPSC(this.value)" />';
	
	if (typ == 1)
		nastavPomocnika('6b');
	else
		nastavPomocnika(6);	
}

function zvolenoObcerstveni() {
	var typ = form.obcerstveni_typ.value;
	var o = document.getElementById('frm_div_obcerstveni_ks');
	
	if (typ > 1) {
		o.innerHTML = '<input type="text" name="obcerstveni_ks" id="frm_obcerstveni_ks" size="10" onkeyup="zvolenPocetObcerstveni(this.value)" autocomplete="off" />&nbsp;ks';
		nastavPomocnika(8);
	}
	else {
		o.innerHTML = '<input type="hidden" name="obcerstveni_ks" id="frm_obcerstveni_ks" value="0" />';
		zvolenPocetObcerstveni('0');
		nastavPomocnika(9);
	}

}

function zvolenPocetObcerstveni(hodnota) {
	var obj = document.getElementById('frm_obcerstveni_ks');
	var reg = new RegExp("^[0-9]{1,}$");
	var result = hodnota.match(reg);
	
	if (result != null) {
		obj.className = "";
		document.getElementById('frm_div_prezdivka').innerHTML = '<input type="text" name="prezdivka" id="frm_prezdivka" size="15" autocomplete="off" title="Zvolte si vlastní přezdívku pro veřejný seznam rezervací" onkeyup="zvolenaPrezdivka()" />'
	}
	else {
		document.getElementById('frm_div_prezdivka').innerHTML = "";
		obj.className = "input_chyba";
	}
	nastavPomocnika(9);
}

function zvolenoPSC(hodnota) {
	var obj = document.getElementById('frm_doprava_psc');
	var reg = new RegExp("^[0-9]{5}$");
	var result = hodnota.match(reg); 
	//var chyba = false;
	
	if (result != null) {
		obj.className = "";
		query.constructor(document.getElementById('frm_doprava_km').value, 'query_obcerstveni.php', 'frm_div_obcerstveni_typ');
		nastavPomocnika(7);
	}
	else {
		document.getElementById('frm_div_obcerstveni_typ').innerHTML = "";
		obj.className = "input_chyba";
	}
}

function zvolenPocetOsob(hodnota) {
	var obj = document.getElementById('frm_pocet_osob');
	var reg = new RegExp("^[0-9]{1,}$");
	var result = hodnota.match(reg);
	var jQ = jQuery.noConflict();
	
	if (result != null && obj.value > 0) 
	{
		obj.className = "";
		
		jQ.get('query_pocetosob.php', {program: document.getElementById('frm_program').value}, 
				function(max)
				{
					if (parseInt(obj.value) <= parseInt(max))
					{
						query.constructor(document.getElementById('frm_pocet_osob').value, 'query_doprava.php', 'frm_div_doprava_typ');
						nastavPomocnika(5);
						return;
					}
					else
					{
						obj.className = "input_chyba";
						nastavPomocnika(4, "<p style='color:red;'>Dovolujeme si Vás upozornit, že maximální počet na tento program je <strong>" + max + " účastníků</strong>. " + 
							"V případě, že je Vás více, doporučujeme Vám rozdělit účastníky do skupin a pro každou skupinu provést <strong>novou rezervaci</strong>.</p> ");
						//jQ("div#frm_div_doprava_typ").remove();
						return;
					}
				}
		);
	}
	else {
		document.getElementById('frm_div_doprava_typ').innerHTML = "";
		obj.className = "input_chyba";
	}
}

function zvolenaPrezdivka() {
	var elm = document.getElementsByTagName('input');
	var chyba = false;
	
	document.getElementById('row10').style.visibility = 'visible';
	document.getElementById('prvne0').style.visibility = 'visible';
	document.getElementById('prvne1').style.visibility = 'visible';
	
	for (var i=0; i < elm.length; i++) {
		if (elm[i].className == 'input_chyba') chyba = true;
	}
	
	if (chyba == false) {
		kalk.constructor();
		document.getElementById('submit_button').disabled = false;
	}
	nastavPomocnika(10);
}


var query = {
	xmlHttp : null,
	force : false,
	
	queryInput : null,
	resultElm : null,
	handler: null,
	
	constructor : function(Input, phpSkript, resultId) {
			query.queryInput = Input;
			query.resultElm = document.getElementById(resultId);
			query.handler = phpSkript;
			query.send(phpSkript);
	},
	
	send : function (phpSkript) {
			var xmlHttp = query.getXmlHttpObject();
			var q = query.queryInput;
			if (xmlHttp) {
				var url = phpSkript;
				url=url+"?q="+urlencode(q);
				url=url+"&sid="+Math.random();
				//alert(url);
				xmlHttp.open("GET",url,true);			
				//xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');				
				xmlHttp.onreadystatechange=function () { 
					if(xmlHttp.readyState==4) {
						query.getResult(xmlHttp.responseText);
					}
				}
			xmlHttp.send(null);
			}
	},
	
	getResult: function(result) {
			//alert(result);
			query.resultElm.innerHTML = result;
	},
	
	getXmlHttpObject: function() {
		//var xmlHttp;
		try	 {
			// Firefox, Opera 8.0+, Safari
			query.xmlHttp=new XMLHttpRequest();
		}
		catch (e) {
			// Internet Explorer
		 	try	{
		  		query.xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  	}
		 	catch (e)  {
		  		query.xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		  	}
		}
		return query.xmlHttp;
	}
	
}	// konec objektu query

function nastavPomocnika(typ, param) {
	var pomocnik = document.getElementById('pomocnik');
	var text;
	if (typeof param=="undefined") param = "";
	
	pomocnik.innerHTML = "<h4>Pomocník:</h4>";
	
	switch (typ) {
		case 1: 	text = "<p>Pro úspěšnou rezervaci musíte vyplnit postupně všech 9 políček vlevo od tohoto textu.</p><p>Začněte volbou datumu (1.), kdy chcete Techmanii navšívit.</p>"; break;
		case 2: 	text = "<p>Výborně. Nyní zvolte ze seznamu (2.) program, který chcete absolvovat.</p>"; break;
		//case 3: 	text = "<p>Zvolte jeden z dostupných začátků programů.</p><p>V případě, že není žádný termín volný, můžete zkusit vybrat jiný program, resp. datum návštěvy.</p><p>V případě, že (ne)chcete na program edutainera (průvodce) (ne)zaškrtnutě políčko \"S edutainerem\". Je-li to možné. U některých programů je průvodce povinný, u jiných býti nesmí.</p>"; break;
		case 3: 	text = "<p>Zvolte jeden z dostupných začátků programů.</p><p>V případě, že není žádný termín volný, můžete zkusit vybrat jiný program, resp. datum návštěvy.</p>"; break;
		case '3b':	text = "<p style=\"color: red;\">Při potvrzení rezervace uveďte do poznámky <strong>orientační čas</strong> Vaší návštěvy. Děkujeme.</p>"; break; //<p>V případě, že (ne)chcete na program edutainera (průvodce) (ne)zaškrtnutě políčko \"S edutainerem\".</p>"; break;
		case 4: 	text = "<p>Nyní následuje zadání počtu účastníků návštěvy (4.). Prosíme, zadejte pouze číslo.</p>" + param; break;
		case '4b':	text =  "<p>Nyní následuje zadání počtu účastníků návštěvy (4.). Prosíme, zadejte pouze číslo.</p>"; break;
		case 5: 	text = "<p>Nyní vyberte ze seznamu způsob dopravy (5.)</p>"; break;
		case 6: 	text = "<p>Zadejte název obce a PSČ odkud k nám jedete.<br /><br />Budete kontaktováni pracovníkem TSC, který Vás bude informaovat o podrobnostech (čas, cena, kontaktní osoba u dopravce, atd.)</p>"; break;
		case '6b':	text = "<p>Zadejte název obce a PSČ odkud k nám jedete. Tento údaj má při Vlastní dopravě <strong>pouze informativní charakter</strong>."; break;
		case 7: 	text = "<p>Nabízíme Vám možnost objednat si dopředu balíčky s občerstvením (7.) nebo si můžete zakoupit občerstvení dle svého výběru na místě v našem občerstvení.</p>"; break;
		case 8: 	text = "<p>Zadejte počet kusů zvoleného balíčku. (8.)</p>"; break;
		case 9: 	text = "<p>Zvolte si přezdívku, pod kterou bude Vaše objednávka k vidění na Seznamu rezervací. Jako přezdívku můžete zvolit cokoliv. Děkujeme.</p>"; break;
		case 10: 	text = "<p>Výborně. Nyní máte všechny potřebné údaje k rezervaci. Pokračujte kliknutm na tlačítko (10.) <strong>Pokračovat v rezervaci >>></strong>.</p>"; break;
		default: 	text = "";		
	}
	
	pomocnik.innerHTML += text;
	
}

function urlencode(str)  {
	var ret = str;
    
		ret = ret.toString();
		ret = encodeURIComponent(ret);
		ret = ret.replace(/%20/g, '+');

	return ret;
}
