//
// Booking Engine Functions
// by MK
// Copyright (C) 2010 Adenion GmbH. All rights reserved.
//



// pauschal booking engine class


function pauschalBuma(agent, type, dep, dest, von, bis, dauer, erwachsene, alter1, alter2, alter3){
	// sets buma type
	if(type == 'TT'){ this.type = 'TT'; }else if(type == 'TF'){ this.type = 'TF'; }else{ this.type = 'TIT' };

	this.agent	= agent;
	this.dep	= dep;
	this.dest	= dest;
	this.von	= von;
	this.bis	= bis;
	this.dauer	= dauer;
	this.erwachsene	= erwachsene;
	this.alter 	= new Array(alter1, alter2, alter3);


// non public functions

	this.buildOptions = function (list, selected) {
		for (var i in list) {
			if(i == selected) document.write('\t<option selected="selected" ');  else document.write('\t<option ');
			
			document.write(' value='+i+'>'+list[i]+'</option>\n');
		}
	}

	// returns: named, filled and preselected select element
	// needs: object name, values array, default selection
	// optional: class name, id name

	this.buildSelect = function (name, list, selected, parameter) {
		if(parameter != ''){
			parameter = " "+parameter;
		}

		document.write('<select name="' + name + '"' + parameter + '>\n')

		this.buildOptions(list, selected);

		document.write('</select>')
	}

	this.GetDatum = function (offset) {
		Days = new Array("So","Mo","Di","Mi","Do","Fr","Sa","??" )
		var time = new Date()
		time.setTime( time.getTime()+offset*86400000)
		return time.getDate()+'.'+(1+time.getMonth())+'.'+(2000+(time.getYear()%100))+' '+Days[time.getDay()]
	}



	this.calendar = function (name, start, end, selected) {
		document.write("<select name='"+name+"'>")
		if(selected < 1 | selected > 330 | selected == '' ){ selected = 2; }

		for (var i=start; i<=end;i++){
			if (i==selected) document.write('<option selected ');  else document.write('<option ');
			document.write('value='+i+'>'+this.GetDatum(i)+'</option>')
		}
		document.write("</select>")
	}




// public funtions


	this.getForm = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			document.write('<form method="GET" action="http://www.terracus.net/lmweb/iframe.php">');
		}
	}
	
	this.getHiddens = function () {
		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			document.write('<input type="hidden" name="AGENT" value="'+this.agent+'" />');
			document.write('<input type="hidden" name="HEIGHT" value="3500" />');
		}
	}

	this.getSearch = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = " "+parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			document.write('<input type="submit"'+parameter+' value="suchen" />');
		}
	}

	this.getFormEnd = function () {
		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			document.write('</form>');
		}
	}




	// erstellt select zur Auswahl des Abflughafens
	// in: Nummer des Kindes
	// out: document.write

	this.getDep = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment
			this.buildSelect(this.parameter);
		}else if(this.type == "TF"){		// Traffics
			this.buildSelect(this.parameter);
		}else{					// LMweb
			this.buildSelect('RW', depTIT, this.dep, this.parameter);
		}
	}

	// erstellt select zur Auswahl Zielflughafens
	// in: -
	// out: document.write

	this.getDest = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment
			this.buildSelect(this.parameter);
		}else if(this.type == "TF"){		// Traffics
			this.buildSelect(this.parameter);
		}else{					// LMweb
			this.buildSelect('ZIEL', destTIT, this.dest, this.parameter);
		}
	}

	this.getVon = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		this.calendar('VON', 1, 356, 2);
	}

	this.getBis = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		this.calendar('BIS', 1, 356, 16);
	}

	// erstellt select zur Auswahl der Dauer
	// in: -
	// out: document.write

	this.getDauer = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			var minmax = new Array();
			minmax["7-7"]	= "7 Tage";
			minmax["14-14"]	= "14 Tage";
			minmax["21-21"]	= "21 Tage";
			minmax["3-8"]	= "3-8 Tage";
			minmax["8-15"]	= "8-15 Tage";
			minmax["16-21"]	= "16-21 Tage";
			minmax["21-"]	= "länger";

			this.buildSelect('DAUER', minmax, this.dauer, this.parameter);
		}
	
	}

	// erstellt select zur Auswahl der Erwachsenen
	// in: -
	// out: document.write

	this.getErwachsene = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			var erwachsene = new Array();
			erwachsene["1"]	= "1 Erwachsener";
			erwachsene["2"]	= "2 Erwachsene";
			erwachsene["3"]	= "3 Erwachsene";
			erwachsene["4"]	= "4 Erwachsene";

			this.buildSelect('RA', erwachsene, this.erwachsene, this.parameter);
		}
	
	}



	// erstellt alle select zur Auswahl des Kindes
	// in: -
	// out: document.write

	this.getKinder = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			this.getKind(1);
			this.getKind(2);
			this.getKind(3);
		}
	}




	// erstellt ein select zur Auswahl des Kindes
	// in: Nummer des Kindes
	// out: document.write

	this.getKind = function (kind, parameter) {
		this.kind = kind;
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "TT"){			// TravelTainment

		}else if(this.type == "TF"){		// Traffics

		}else{					// LMweb
			alter = this.alter[this.kind-1];
			if(alter < 1){ alter = "-1"}
			
			var kinder = new Array();
			kinder['-1']	= "Kind "+this.kind;
			kinder['-2']	= "keines";
			for(i=2; i<=14; i++ ){
				kinder[" "+i+" "] = i+" Jahre";		
			}
			this.buildSelect('KA'+this.kind, kinder, alter, this.parameter);
		}
	
	}

}





















// cruise booking engine class


function cruiseBuma(agent, type, dest, von, dauer, ship){
	// sets buma type
	if(type == 'EHOI'){ this.type = 'EHOI'; }

	this.agent	= agent;
	this.dest	= dest;
	this.von	= von;
	this.dauer	= dauer;
	this.ship	= ship;


// non public functions

	this.buildOptions = function (list, selected) {
		for (var i in list) {
			if(i == selected) document.write('\t<option selected="selected" ');  else document.write('\t<option ');
			
			document.write(' value='+i+'>'+list[i]+'</option>\n');
		}
	}

	// returns: named, filled and preselected select element
	// needs: object name, values array, default selection
	// optional: class name, id name

	this.buildSelect = function (name, list, selected, parameter) {
		if(parameter != ''){
			parameter = " "+parameter;
		}

		document.write('<select name="' + name + '"' + parameter + '>\n')

		this.buildOptions(list, selected);

		document.write('</select>')
	}

	this.GetDatum = function (offset) {
		Days = new Array("So","Mo","Di","Mi","Do","Fr","Sa","??" )
		var time = new Date()
		time.setTime( time.getTime()+offset*86400000)
		writtenDate = time.getDate()+'.'+(1+time.getMonth())+'.'+(2000+(time.getYear()%100));
		dateAndWeekday = writtenDate+' '+Days[time.getDay()];
		return[writtenDate, dateAndWeekday];
	}



	this.calendar = function (name, start, end, selected) {
		document.write("<select name='"+name+"'>")
		if(selected < 1 | selected > 330 | selected == '' ){ selected = 2; }

		for (var i=start; i<=end;i++){
			if (i==selected) document.write('<option selected ');  else document.write('<option ');
			document.write('value='+this.GetDatum(i)[0]+'>'+this.GetDatum(i)[1]+'</option>')
		}
		document.write("</select>")
	}




// public funtions


	this.getForm = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			document.write('<form method="GET" action="http://partner.e-hoi.de/xml/rest/remoteAction.cfm">');
		}
	}
	
	this.getHiddens = function () {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			document.write('<input type="hidden" name="cruisingAreaTyp" value="1">');
			document.write('<input type="hidden" name="partnerID" value="111332000038">');
			document.write('<input type="hidden" name="declareUser" value="'+this.agent+'">');
			document.write('<input type="hidden" name="startrow" value="1">');
			document.write('<input type="hidden" name="endrow" value="15">');
			document.write('<input type="hidden" name="version" value="WEB">');
			document.write('<input type="hidden" name="authID" value="E9AFD6923">');
			document.write('<input value="searchroutes" type="hidden" name="action">');
			document.write('<input value="html" type="hidden" name="format">');
		}
	}

	this.getSearch = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			document.write('<input type="submit"'+parameter+' value="suchen" />');
		}
	}

	this.getFormEnd = function () {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			document.write('</form>');
		}
	}




	// erstellt select zur Auswahl Zielgebietes
	// in: -
	// out: document.write

	this.getDest = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			this.buildSelect('Destination', destEHOI, this.dest, this.parameter);
		}
	}


	// erstellt select zur Auswahl Schiffe
	// in: -
	// out: document.write

	this.getCruisers = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			this.buildSelect('Ship', shipEHOI, this.dest, this.parameter);
		}
	}




	this.getAb = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		this.calendar('StartDay', 1, 356, 2);
	}

	// erstellt select zur Auswahl der Dauer
	// in: -
	// out: document.write

	this.getDauer = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			var duration = new Array();
			duration["0"]	= "Anzahl Tage";
			duration["4"]	= "k&uuml;rzer als 5 Tage";
			duration["5"]	= "5 - 9 Tage";
			duration["6"]	= "10 - 14 Tage";
			duration["3"]	= "l&auml;nger als 14 Tage";

			this.buildSelect('Duration', duration, this.dauer, this.parameter);
		}
	
	}

	// erstellt select zur Auswahl der Erwachsenen
	// in: -
	// out: document.write

	this.getErwachsene = function (parameter) {
		if (typeof parameter == "undefined") { this.parameter = ''; }else{ this.parameter = parameter; }

		if(this.type == "CP"){			// CruisePool

		}else{					// eHoi
			var erwachsene = new Array();
			erwachsene["1"]	= "1 Erwachsener";
			erwachsene["2"]	= "2 Erwachsene";
			erwachsene["3"]	= "3 Erwachsene";
			erwachsene["4"]	= "4 Erwachsene";

			this.buildSelect('RA', erwachsene, this.erwachsene, this.parameter);
		}
	
	}



}




