// Events initialisieren
document.addEvent('domready',function() {

	// Accordion initialisieren							
	ecoToggle = new toggle();
	ecoToggle.obj = 'wrapper_economy';
	businessToggle = new toggle();
	businessToggle.obj = 'wrapper_business';
	firstToggle = new toggle();
	firstToggle.obj = 'wrapper_first';
	upgradeToggle = new toggle();
	upgradeToggle.obj = 'wrapper_upgrade';
		
	// hidden fields bei Neuladen der Seite leeren	
	for (i=0;i<document.getElementsByTagName('input').length;i++) {
		if (document.getElementsByTagName('input')[i].type == 'hidden' && document.getElementsByTagName('input')[i].id != 'language') {
			document.getElementsByTagName('input')[i].value = '';
		}
	}
	// Checkbox 'Residence' zuruecksetzen
	$('res').checked = false;
		
	var autocomplete_destination;
	var autocomplete_origin;
	
	// Werte der Eingabefelder speichern 
	var origin = $('origin');
	var airportcode_origin = $('airportcode_origin');
	var destination = $('destination');
	var airportcode_destination = $('airportcode_destination');
	var language = $('language').value;

	// Autosuggest 'Ursprung' erzeugen
	autocomplete_origin = new Autocompleter.Request.HTML(origin, 'php/spend/search_origin_destination.php?language='+language, {
		'minLength': 2,
		'selectMode': 'pick',
		'markQuery': false,
		'forceSelect': true,
		'width': 265,
		'maxChoices': 10,
		'usage': 'origin',
		'fillHidden': 'airportcode_origin',
		'indicatorClass': 'autocompleter-loading',
		'onSelection':function() {
			autocomplete_destination.setOptions({postData: {'origin': $('airportcode_origin').value}});
		}
	});

	// Autosuggest 'Ziel' erzeugen
	autocomplete_destination = new Autocompleter.Request.HTML(destination, 'php/spend/search_origin_destination.php?language='+language, {
		'postData': {'mode': 'destination', 'origin': $('airportcode_origin').value},
		'minLength': 2,
		'selectMode': 'pick',
		'markQuery': false,
		'forceSelect': true,
		'width': 265,
		'maxChoices': 10,
		'usage': 'destination',
		'fillHidden': 'airportcode_destination',
		'indicatorClass': 'autocompleter-loading',
		'onSelection':function() {
			autocomplete_origin.setOptions({postData: {'origin': $('airportcode_destination').value}});
		}
	});
	
	// Änderungen am Wohnsitz
	$('res').addEvent('click', function(event) {
		updateMiles();
	});

	// Zuruecksetzen-Button
	$('resetButton').addEvent('click', function(event) {
		 resetInput(autocomplete_origin, autocomplete_destination);
		 return false;
	});

});

function checkResidence() {
	var airportcode_origin = $('airportcode_origin').value;
	var airportcode_destination = $('airportcode_destination').value;
	var language = $('language').value;

	// Checkbox 'Wohnsitz'
	var req = new Request({
		url: 'php/spend/check_residence.php',
		method: 'get',
		data: { 
			'origin': airportcode_origin,
			'destination': airportcode_destination,
			'language': language
		},  
		onComplete: function(response) { 
			var parsed = response.split('|');  
			var region_origin = parsed[0];  
			var country_origin =  parsed[1];
			var country_origin_name =  parsed[2];
			var res_label = parsed[3];
			
			// wenn Wohnsitz in Region 'NO1' oder Region 'NAM' --> Checkbox anzeigen
			if (region_origin == 'NO1' || country_origin == 'US' || country_origin == 'HAW') {
				$('region_origin').value = region_origin;
				res_label += country_origin_name; 
				$('res_label').innerHTML = res_label;
				$('residence').style.display = 'block';
				$('resetButton').style.top = "50px";
			}
			else {
				$('residence').style.display = "none";
				$('resetButton').style.top = "9px";
			}
		}    
	}).send();
}


function getPromotions(origin, destination) {
	// alle Promotion-Felder ausblenden
	$('tr_economy_schnaeppchen').style.display = "none";
	$('promotiontext_economy').style.display = "none";
	$('tr_business_schnaeppchen').style.display = "none";
	$('promotiontext_business').style.display = "none";
	$('tr_eco1_up_schnaeppchen').style.display = "none";
	$('tr_eco2_up_schnaeppchen').style.display = "none";
	$('promotiontext_upgrade').style.display = "none";
	
	var language = $('language').value;
	var req = new Request({
		url: 'php/spend/get_promotions.php?language='+language,
		method: 'get',
		data: { 
		 	'origin': origin,
			'destination': destination
		},  
		onComplete: function(response) { 
			
			if (response != "") {
				var parsed = response.split('|');  
				var miles_economy = parsed[0];
				var time_from_economy = parsed[1];
				var time_until_economy = parsed[2];
				var journey_from_economy = parsed[3];
				var journey_until_economy = parsed[4];
				var miles_business = parsed[5];
				var time_from_business = parsed[6];
				var time_until_business = parsed[7];
				var journey_from_business = parsed[8];
				var journey_until_business = parsed[9];
				var miles_upgrade_eco1 = parsed[10];
				var miles_upgrade_eco2 = parsed[11];
				var time_from_upgrade = parsed[12];
				var time_until_upgrade = parsed[13];
				var journey_from_upgrade = parsed[14];
				var journey_until_upgrade = parsed[15];
				var only_online = parsed[16];	
				var booking_period = parsed[17];	
				var travel_period = parsed[18];	
				var until = parsed[19];	
				var conditions = parsed[20];	
				var up_conditions = parsed[21];	
					
				// wenn Meileneschnaeppchen fuer Economy existiert	
				if (miles_economy != " ") {
					$('miles_schnaeppchen_economy').innerHTML = only_online;
					$('miles_schnaeppchen_economy_online').innerHTML = miles_economy;
					$('tr_economy_schnaeppchen').style.display = "block";
					$('promotiontext_economy').style.display = "block";
					$('link_economy').style.borderBottom = 0;
					$('link_economy').style.marginBottom = 0;
					$('promotiontext_economy').innerHTML = "*"+booking_period+" "+time_from_economy+" "+until+" "+time_until_economy+", "+travel_period+" "+journey_from_economy+" "+until+" "+journey_until_economy+".<br />"+conditions;
				}
				
				// wenn Meileneschnaeppchen fuer Business existiert	
				if (miles_business != " ") {
					$('miles_schnaeppchen_business').innerHTML = only_online;
					$('miles_schnaeppchen_business_online').innerHTML = miles_business;
					$('tr_business_schnaeppchen').style.display = "block";
					$('promotiontext_business').style.display = "block";
					$('link_business').style.borderBottom = 0;
					$('link_business').style.marginBottom = 0;
					$('promotiontext_business').innerHTML = "*"+booking_period+" "+time_from_business+" "+until+" "+time_until_business+", "+travel_period+" "+journey_from_business+" "+until+" "+journey_until_business+".<br />"+conditions;
				}
								
				// wenn Meileneschnaeppchen fuer Upgrade existiert	
				if (miles_upgrade_eco1 != " ") {
					$('miles_schnaeppchen_up_eco1').innerHTML = only_online;
					$('miles_schnaeppchen_up_eco1_online').innerHTML = miles_upgrade_eco1;
					$('tr_eco1_up_schnaeppchen').style.display = "block";
					$('miles_schnaeppchen_up_eco2').innerHTML = only_online;
					$('miles_schnaeppchen_up_eco2_online').innerHTML = miles_upgrade_eco2;
					$('tr_eco2_up_schnaeppchen').style.display = "block";
					$('promotiontext_upgrade').style.display = "block";
					$('link_upgrade').style.borderBottom = 0;
					$('link_upgrade').style.marginBottom = 0;
					$('promotiontext_upgrade').innerHTML = "*"+booking_period+" "+time_from_upgrade+" "+until+" "+time_until_upgrade+", "+travel_period+" "+journey_from_upgrade+" "+until+" "+journey_until_upgrade+".<br />"+up_conditions;
				}
			}
		}
	}).send();
}


function updateMiles() {
	if ($('airportcode_origin').value != "" && $('airportcode_destination').value != "") {
		var origin = $('origin').value;
		var destination = $('destination').value;
		var airportcode_origin = $('airportcode_origin').value;
		var airportcode_destination = $('airportcode_destination').value;
		var residence = 'ALL';

		getPromotions(airportcode_origin, airportcode_destination);

		// Wohnort überprüfen
		if ($('res').checked == true) {
			if ($('region_origin').value == 'NO1') {
				residence = "NO";
			}
			if (origin.indexOf(', USA') != -1) {
				residence = "US";
			}
		}
		// Meilenwerte aktualisieren
		if (origin != "" && destination != "") {
			var language = $('language').value;
			var req = new Request({
				url: 'php/spend/update_miles.php?language='+language,
				method: 'get',
				data: { 
					//'flighttype': flighttype,
					'origin': airportcode_origin,
					'destination': airportcode_destination,
					'residence': residence
				},  
				onComplete: function(response) { 
					var parsed = response.split('|');  
					
					// Logik: wenn Wert keinen Punkt enthält --> ist 0 oder Text

					// WERTE ECONOMY CLASS
					$('miles_economy').innerHTML = parsed[0];
		 			$('miles_economy_online').innerHTML = parsed[1];
					if (parsed[1].indexOf(".") == -1) {
						$('miles_economy_online').className = "text last";
					}
		 			$('miles_oneway_economy').innerHTML = parsed[2];
		 			$('miles_oneway_economy_online').innerHTML = parsed[3];
		 			$('miles_oneway_economy_online').className = "text last";
					// wenn Flysmart für Economy Class nicht möglich --> Zeile ausblenden
		 			if (parsed[4].indexOf(".") == -1 && parsed[5].indexOf(".") == -1) {
						$('tr_economy_fs').style.display = 'none';
		 			}
					else {
			 			$('miles_fs_economy').innerHTML = parsed[4];
			 			$('miles_fs_economy').className = "text";
			 			$('miles_fs_economy_online').innerHTML = parsed[5];
						if (parsed[5].indexOf(".") == -1) {
							$('miles_fs_economy_online').className = "text last";
						}
					}
					
					// WERTE BUSINESS CLASS
					$('miles_business').innerHTML = parsed[6];
		 			$('miles_business_online').innerHTML = parsed[7];
					if (parsed[7].indexOf(".") == -1) {
						$('miles_business_online').className = "text last";
					}
					$('miles_oneway_business').innerHTML = parsed[8];
		 			$('miles_oneway_business_online').innerHTML = parsed[9];
		 			$('miles_oneway_business_online').className = "text last";
					// wenn Flysmart für Business Class nicht möglich --> Zeile ausblenden
		 			if (parsed[10].indexOf(".") == -1 && parsed[11].indexOf(".") == -1) {
						$('tr_business_fs').style.display = 'none';
		 			}
					else {
			 			$('miles_fs_business').innerHTML = parsed[10];
			 			$('miles_fs_business').className = "text";
						$('miles_fs_business_online').innerHTML = parsed[11];
						if (parsed[11].indexOf(".") == -1) {
							$('miles_fs_business_online').className = "text last";
						}
					}
					
					// WERTE FIRST CLASS
					// wenn Meilenwerte für First Class 0 sind --> Zeile ausblenden
					if (parsed[12].indexOf(".") == -1 && parsed[13].indexOf(".") == -1) {
						$('tr_first').style.display = 'none';
					}
					else {
						$('miles_first').innerHTML = parsed[12];
			 			$('miles_first_online').innerHTML = parsed[13];
						if (parsed[13].indexOf(".") == -1) {
							$('miles_first_online').className = "text last";
						}
					}

					// wenn Kinder/Oneway für First Class 0 ist --> Zeile ausblenden
					if (parsed[14].indexOf(".") == -1 && parsed[15].indexOf(".") == -1) {
						$('tr_first_oneway').style.display = 'none';
					}
					else {
			 			$('miles_oneway_first').innerHTML = parsed[14];
		 				$('miles_oneway_first_online').innerHTML = parsed[15];
		 				$('miles_oneway_first_online').className = "text last";
		 			}

					// wenn alle Werte für First Class 0 sind --> Meldung anzeigen
					if (parsed[12].indexOf(".") == -1 && parsed[13].indexOf(".") == -1 && parsed[14].indexOf(".") == -1 && parsed[15].indexOf(".") == -1) {
						$('no_first_class').innerHTML = parsed[22];
						$('hl_first').className = '';
						$('link_first').style.display = 'none';
					}

					// wenn Economy1-Upgrade nicht möglich --> Zeile ausblenden
					if (parsed[16].indexOf(".") == -1 && parsed[17].indexOf(".") == -1) {
						$('tr_eco1_up').style.display = 'none';
					}
					else {
						$('miles_up_eco1').innerHTML = parsed[16];
						$('miles_up_eco1_online').innerHTML = parsed[17];
		 				if (parsed[17].indexOf(".") == -1) {
							$('miles_up_eco1_online').className = "text last";
						}
					}

					// wenn Economy2-Upgrade nicht möglich --> Zeile ausblenden
					if (parsed[18].indexOf(".") == -1 && parsed[19].indexOf(".") == -1) {
						$('tr_eco2_up').style.display = 'none';
					}
					else {
						$('miles_up_eco2').innerHTML = parsed[18];
						$('miles_up_eco2_online').innerHTML = parsed[19];
		 				if (parsed[19].indexOf(".") == -1) {
							$('miles_up_eco2_online').className = "text last";
						}
					}

					// wenn Business-Upgrade nicht möglich --> Zeile ausblenden
					if (parsed[20].indexOf(".") == -1 && parsed[21].indexOf(".") == -1) {
						$('tr_business_up').style.display = 'none';
					}
					else {
						$('miles_up_business').innerHTML = parsed[20];
						$('miles_up_business_online').innerHTML = parsed[21];
						if (parsed[21].indexOf(".") == -1) {
							$('miles_up_business_online').className = "text last";
						}
					}
					
					// wenn alle Werte für Upgrades 0 sind --> Meldung anzeigen und Link zur Online-Buchung ausblenden
					if (parsed[16].indexOf(".") == -1 && parsed[17].indexOf(".") == -1 && parsed[18].indexOf(".") == -1 && parsed[19].indexOf(".") == -1 && parsed[20].indexOf(".") == -1 && parsed[21].indexOf(".") == -1) {
						$('no_upgrades').innerHTML = parsed[23];
						$('hl_upgrade').className = '';
						$('link_upgrade').style.display = 'none';
					}
				}    
			}).send();
		}
	}
}
