// JavaScript Document
/**********************************************************************************************************/
/*  Validierungsfunktionen fastbooking_dynapack (Original fastbooking.js changed by hej for Henda Travel) */
/*                                               Change startform to start                                */
/**********************************************************************************************************/

function init_datum()
{	
	
	var days_start = 5 ;                //  Offset zum aktuellen Datum für das frühest mögliche Abreisedatum
	var days_return = 12 ;              //  Offset zum aktuellen Datum für das vorgeschlagene Rückreisedatum
	
	if(document.start.days_start) days_start = parseInt(document.start.days_start.value);
		
	
	var today = new Date ();
	var iHdate = today.getTime() + (1000 *60 * 60 *24) * days_start;
	var hdate = new Date (iHdate);
	
	var s1 = hdate.getDate();
	var s2 = hdate.getMonth() + 1;
	var s3 = hdate.getFullYear();

	document.start.mindatum.value = s3*10000 + s2*100 + s1;
	document.start.maxdatum.value = (s3+1)*10000 + s2*100 + 1;
	
	var s = new String(s1);
	if(s.length == 1) s1 = '0' + s1;
	s = new String(s2);
	if(s.length == 1) s2 = '0' + s2;
	strToday = s1 +'.' + s2 + '.' + s3;
	
	document.start.hdate.value = strToday;
	document.start.startdatum.value = document.start.hdate.value;
	document.start.mindatumt.value = document.start.hdate.value;
	document.start.maxdatumt.value = '01.' + s2 + '.' + (s3+1);

	var iRdate = today.getTime() + (1000 *60 * 60 *24) * days_return;
	rdate = new Date (iRdate);
	
	s1 = rdate.getDate();
	s2 = rdate.getMonth() + 1;
	s3 = rdate.getFullYear();
	
	s = new String(s1);
	if(s.length == 1) s1 = '0' + s1;
	s = new String(s2);
	if(s.length == 1) s2 = '0' + s2;
	strToday = s1 +'.' + s2 + '.' + s3;
	
	document.start.rdate.value = new String(strToday);
	document.start.endedatum.value = document.start.rdate.value;
}

function check_startmaske (theForm)
{
	
	if (theForm.fromt.type == "text" && theForm.fromt.value == "")
	{
		alert("\nBitte geben Sie einen Abflugsort an !");
		theForm.fromt.focus();
		return (false);
	}
	
	if (theForm.destt.value == "")
	{
		alert("\nBitte geben Sie ein Reiseziel an !");
		theForm.destt.focus();
		return (false);
	}
	
	
	if (theForm.agentc.value == 'edi') {
		//theForm.destt.value = escape(theForm.destt.value);
	}
	
//  und nun die Datumsbetrachtung

	hdat = extract_datum (theForm.hdate.value);
			
	hd3 = parseInt (hdat / 10000);
	hd1 = hdat % 100;
	hd2 = parseInt ((hdat-hd3*10000)/100.);

	theForm.hdate1.value	= hd1;
	theForm.hdate2.value = hd3*100 + hd2;

	if (! teste_datum (hd1,hd2,hd3))
	{
		alert ("Dieses Datum gibt es nicht!");
		theForm.hdate.focus();
		return (false);
	}
		
	if (hdat < theForm.mindatum.value)
	{
		alert ("Sie können nicht früher als der "+theForm.mindatumt.value+" abreisen!");
		theForm.hdate.focus();
		return (false);
	}
					
	rdat = extract_datum (theForm.rdate.value);
			
	rd3 = parseInt (rdat / 10000);
	rd1 = rdat % 100;
	rd2 = parseInt ((rdat-rd3*10000)/100.);

	theForm.rdate1.value	= rd1;
	theForm.rdate2.value = rd3*100 + rd2;

	if (rdat > theForm.maxdatum.value)
	{
		alert ("Sie können nicht später als der "+theForm.maxdatumt.value+" zurückreisen!");
		theForm.rdate.focus();
		return (false);
	}
	if (! teste_datum (rd1,rd2,rd3))
	{
		alert ("Dieses Datum gibt es nicht!");
		theForm.rdate.focus();
		return (false);
	}

	if (rdat < hdat)
	{
		alert ("Die Rückreise kann nur nach der Abreise erfolgen!");
		theForm.hdate.focus();
		return (false);
	}	
	
	if (theForm.adult.value == 0 && theForm.youth.value == 0) 
	{
		alert("Achtung !  Sie müssen mindestens einen Erwachsenen\noder einen Jugendlichen unter\n'Anzahl Reisende' wählen!");
		theForm.adult.focus();	
		return (false);
	}
	if (theForm.adult.value > 0 && theForm.youth.value > 0) 
	{
	alert("Achtung !  Sie können nicht gleichzeitig Erwachsene und Jugendliche buchen,\nnehmen Sie die Buchung bitte in zwei separaten Buchungsvorgängen vor !");
		theForm.adult.focus();	
		return (false);
	}

//	Window.open("", "flightpopup", "location=0,resizable=1,width=650,height=350, status=yes, scrollbars=yes");
	return (true);
}

function change_mode ()   //  für "weitere Optionen"
{
	document.start.mode.value = 0;
	return (true);
}

function check_datum (typ)
{
// wir müssen zunächst die möglichen 3 Datumsteile separieren
	if (typ == 1)
		str = new String(document.forms.start.hdate.value);
	else
		str = new String(document.forms.start.rdate.value);

	dat = extract_datum (str);

	jahr = parseInt (dat / 10000);
	tag = dat % 100;
	monat = parseInt ((dat-jahr*10000)/100.);

	status = 0;
	
	while (true)
	{	
		
		if (dat <= 0)
		{
			alert ("Bitte geben Sie ein gültiges Datum der Form TT.MM.JJJJ ein !");
			break;
		}

		if (dat < parseInt(document.forms.start.mindatum.value))
		{
			alert ("Sie können nicht früher als am "+document.forms.start.mindatumt.value+" fliegen !");
			break;
		}
		if (dat > parseInt(document.forms.start.maxdatum.value))
		{
			alert ("Sie können nicht später als am "+document.forms.start.maxdatumt.value+" fliegen !");
			break;
		}

		status = 1;
		break;
	}

	if (status == 0) 
	{
		//if (typ == 1) document.forms.start.hdate.value = document.forms.start.startdatum.value;
		//if (typ == 2) document.forms.start.rdate.value = document.forms.start.endedatum.value;
	}	
	else
	{
		if (tag < 10) 
			datstr = "0"+tag;
		else
			datstr = tag;
		
		datstr += ".";
		
		if (monat < 10) 
			datstr += "0"+monat;
		else
			datstr += monat;
		datstr += ".";

		datstr += jahr;
		
		if (typ == 1) document.forms.start.hdate.value = datstr;
		if (typ == 2) document.forms.start.rdate.value = datstr;
	}	
	
	return (true);		
}

function extract_datum (datstr)
{
//  Umwandlung eines Datums von Textform in Zahlenform, also 'DD.MM.YYYY' nach YYYYMMDD
//  Als zugelassene Feldtrenner sind '/', '-' und '.' erlaubt.

	pos1 = datstr.indexOf (".");	
	if (pos1 < 0) pos1 = datstr.indexOf ("-");
	if (pos1 < 0) pos1 = datstr.indexOf ("/");
	
	if (pos1 < 0) return (0);
	
	pos2 = datstr.indexOf (".",pos1+1);	
	if (pos2 < 0) pos1 = datstr.indexOf ("-",pos1+1);
	if (pos2 < 0) pos1 = datstr.indexOf ("/", pos1+1);
	
	if (pos2 < 0) return (0);

	tag = parseInt (parseFloat(datstr));
	monat = parseInt (parseFloat(datstr.substr(pos1+1,2)));
	jahr = parseInt (parseFloat(datstr.substr(pos2+1,4)));

	if (jahr <= 99) jahr += 2000;

	if (! teste_datum (tag,monat,jahr)) return (0);

	dat = jahr*10000 + monat*100 + tag;	
		
	return (dat);
}

function Kalender_hin(Wert)
{
	var posleft = 250;
	var postop = 150;

	var href = new String ("http://flight1.onlinetravel.ch/cgi-bin/flightmore?mask=fastbook&mode=14&direction=1") + "&vendor=" + document.start.vendor.value + "&agentc=" + document.start.agentc.value + "&language=" + document.start.language.value + "&hdate=" + document.start.hdate.value + "&hdate1=" + document.start.hdate1.value + "&hdate2=" + document.start.hdate2.value + "&mindatum=" + document.start.mindatum.value + "&maxdatum=" + document.start.maxdatum.value;
	var neu = open(href,"Kalender","width=175,height=170,scrolling=no,left=" + posleft + ",top=" + postop);
}
function Kalender_back(Wert)
{
	var posleft = 250;
	var postop = 150;

	var href = new String ("http://flight1.onlinetravel.ch/cgi-bin/flightmore?mask=fastbook&mode=14&direction=2") + "&vendor=" + document.start.vendor.value + "&agentc=" + document.start.agentc.value + "&language=" + document.start.language.value + "&rdate=" + document.start.rdate.value + "&rdate1=" + document.start.rdate1.value + "&rdate2=" + document.start.rdate2.value + "&mindatum=" + document.start.mindatum.value + "&maxdatum=" + document.start.maxdatum.value;

	var neu = open(href,"Kalender","width=175,height=170,scrolling=no,left=" + posleft + ",top=" + postop);
}

function teste_datum (tag,monat,jahr)
{
	mleng = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
		
	if (tag > 0 && tag <= mleng[monat-1]) return (true);
		
	if (monat == 2 && tag == 29)   //  beim Februar könnte es sich um ein Schaltjahr handeln
	{
      if (! (jahr%100) && (jahr/100)%4 ) return (false);
		if (jahr % 4) return (false);
		return (true);
	}
				
	return (false);
}

function PopUp (url, width,height,typ)
{
	if (typ == 1)
		opt = "width=" + width + ",height=" + height + ",resizable=1,toolbar=1,scrollbars=1";
	else
		opt = "width=" + width + ",height=" + height + ",resizable=0,toolbar=0,scrollbars=0";
	
	neuesFenster=open(url,"anzeigeFenster1",opt); // hier anderen Namen als im "normalen" popup (functions.js in js_for_all). sonst werden z.B. agbs im Fenster der IBE geöffnet
	window.neuesFenster.focus();
}

function popup_result(width,height,typ) 
{
	
	var f = document.start;
	if (check_startmaske(f) == true) {
		var url = "http://flight1.onlinetravel.ch/cgi-bin/flightmore?mode=3&program=flightmore&mask=fastbook&onlyavail=1&youth=0"
		url = url.concat("&agentc=", f.agentc.value);
		url = url.concat("&vendor=", f.vendor.value);
		url = url.concat("&language=", f.language.value);
		
		url = url.concat("&hdate1=", f.hdate1.value);
		url = url.concat("&hdate2=", f.hdate2.value);
		url = url.concat("&rdate1=", f.rdate1.value);
		url = url.concat("&rdate2=", f.rdate2.value);
		url = url.concat("&mindatum=", f.mindatum.value);
		url = url.concat("&maxdatum=", f.maxdatum.value);
		url = url.concat("&maxdatumt=", f.maxdatumt.value);
		url = url.concat("&startdatum=", f.startdatum.value);
		url = url.concat("&endedatum=", f.endedatum.value);
		/* fromt kann als Dropdown oder als Freitext eingegeben werden */
		if (f.fromt.type == "text") url = url.concat("&fromt=", f.fromt.value);
		else  url = url.concat("&fromt=", f.fromt.options[f.fromt.selectedIndex].value);
		url = url.concat("&destt=", f.destt.value);
		url = url.concat("&hdate=", f.hdate.value);
		url = url.concat("&rdate=", f.rdate.value);
		url = url.concat("&adult=", f.adult.options[f.adult.selectedIndex].value);
		if(f.child) {
			url = url.concat("&child=", f.child.options[f.child.selectedIndex].value);
		}
		if(f.infant) {
			url = url.concat("&infant=", f.infant.options[f.infant.selectedIndex].value);
		}
		if(f.carrt) {
			url = url.concat("&carrt=", f.carrt.options[f.carrt.selectedIndex].value);
		}
		url = url.concat("&flugart=", f.flugart.value);
		
		
		//alert(url);

		if (typ == self) {
			location.href=url;
		}
		else {
			PopUp(url, width, height, typ);
		}
		
		return (true);
	}
	return (false);
}
