﻿$(function() {
	// Accordion klickbar machen
	$('#accordion_wrap h3').click(function() {
		if ($(this).hasClass('clickable')) {
			$(this).toggleClass('open');
			$(this).parent().next().slideToggle('slow');
		}
	});

	// bei Klick auf Hilfe-Icon Infolayer öffnen
	$('a.helpicon, a.helptext').click(function() {
		openInfobox($(this));
	});
	
	// bei Klick auf schließen-Icon Infolayer schließen
	$('#infobox a.closeInfobox').click(function() {
		$('#infobox').css('visibility', 'hidden');
		$('#dimmer').css('display', 'none');
	});
});


function openInfobox(element) {
		// Größe festlegen
		if (element.hasClass('small')) {
			$('#infobox').removeClass().addClass('small');
		}
		else {
			$('#infobox').removeClass().addClass('large');
		}

		// Position festlegen
		if (element.find('img').length > 0) {
			position = element.find('img').offset();
		}
		else {
			position = element.offset();
		}

		// Inhalt festlegen
		if (element.attr('id').indexOf('_') != -1) {
			id = element.attr('id').substr(0, element.attr('id').indexOf('_'));
		}
		else {
			id = element.attr('id');
		}
		$('#infoheadline').html(window["headline_" + id]);
		$('#infocontent').html(window["content_" + id]);

		// Textlinks
		if (element.hasClass('helptext')) {
			if (element.hasClass('right')) {
				$('#infobox').css('left', (position.left + element.width() ) + 'px');
			}
			else {
				$('#infobox').css('left', (position.left - $('#infobox').width()) + 'px');	
			}
			$('#infobox').css('top', (position.top - $('#infobox').height()) + 'px');	
		}
		// Links mit Icon
		else {
			if (element.hasClass('right')) {
				$('#infobox').css('left', position.left + $('a.helpicon img').width() + 'px');
			}
			else {
				$('#infobox').css('left', (position.left - $('#infobox').width()) + 'px');	
			}
			$('#infobox').css('top', position.top + 'px');	
		}

		// Spezialfälle 'Buchungsklassen' und 'Hilfe'
		if (element.attr('id') == 'bookingclass' || element.attr('id') == 'mainhelp') {
			$('#dimmer').css('display', 'block');
			$('#infobox').addClass('dim');

			position_wrapper = $('#wrapper').offset();
			$('#infobox').css('left', position_wrapper.left + 83 + 'px');
			$('#infobox').css('top', '40px');
		}
		
		// anzeigen
		$('#infobox').css('visibility', 'visible');
		
		return false;	
}

function displayMap(origin,destination) {
	$.ajax({
		type: 'GET',
		url: 'php/get_map.php',
		data: ({ 
			'origin': $('#airportcode_origin').val(),
			'destination': $('#airportcode_destination').val()
		}),  
		success: function(response){
			$('#map').attr('src', 'img/karten/' + response);
		}
	});
}


// KOMMUNIKATION MIT DER FLASHKARTE

function thisMovie(movieName) { 
	if (navigator.appName.indexOf("Microsoft") != -1) { 
		return window.document[movieName]; 
	} 
	else { 
		return document[movieName];
	}
} 


// Übergabe der gewählten Flughäfen aus HTML an Flash
function flashIsLoaded() {
}

// Übergabe der Werte der Eingabefelder an Flash
function airportsToActionScript(origin,destination){
	thisMovie("flashMap").airportsToActionScript(origin,destination); 
}

// Zurücksetzen der Karte
function resetToActionScript(){
	thisMovie("flashMap").resetToActionScript();
}

// Übergabe der Werte von Flash an die Eingabefelder
function airportsToJavaScript(origin, destination){
	piwikTracker.trackGoal(3);
	$.ajax({
		type: 'GET',
		url: 'php/getCompleteName.php?language='+$('#language').val(),
		data: ({ 
			'origin': origin,
			'destination': destination
		}),  
		success: function(response){
			var parsed = response.split('|');  
			
			origin_complete = parsed[0];
			destination_complete = parsed[1];

			// Sonderzeichen ersetzen
			origin_complete = origin_complete.replace("&#268;", "Č");
			destination_complete = destination_complete.replace("&#268;", "Č");
			origin_complete = origin_complete.replace("&#269;", "č");
			destination_complete = destination_complete.replace("&#269;", "č");
			origin_complete = origin_complete.replace("&#352;", "Š");
			destination_complete = destination_complete.replace("&#352;", "Š");
			origin_complete = origin_complete.replace("&#353;", "š");
			destination_complete = destination_complete.replace("&#353;", "š");
			origin_complete = origin_complete.replace("&#381;", "Ž");
			destination_complete = destination_complete.replace("&#381;", "Ž");
			origin_complete = origin_complete.replace("&#382;", "ž");
			destination_complete = destination_complete.replace("&#382;", "ž");
			origin_complete = origin_complete.replace("&#379;", "Ż");
			destination_complete = destination_complete.replace("&#379;", "Ż");
			origin_complete = origin_complete.replace("&#380;", "ż");
			destination_complete = destination_complete.replace("&#380;", "ż");
			origin_complete = origin_complete.replace("&#346;", "Ś");
			destination_complete = destination_complete.replace("&#346;", "Ś");
			origin_complete = origin_complete.replace("&#347;", "ś");
			destination_complete = destination_complete.replace("&#347;", "ś");
			origin_complete = origin_complete.replace("&#321;", "Ł");
			destination_complete = destination_complete.replace("&#321;", "Ł");
			origin_complete = origin_complete.replace("&#322;", "ł");
			destination_complete = destination_complete.replace("&#322;", "ł");
			origin_complete = origin_complete.replace("&#260;", "Ą");
			destination_complete = destination_complete.replace("&#260;", "Ą");
			origin_complete = origin_complete.replace("&#261;", "ą");
			destination_complete = destination_complete.replace("&#261;", "ą");
			origin_complete = origin_complete.replace("&#280;", "Ę");
			destination_complete = destination_complete.replace("&#280;", "Ę");
			origin_complete = origin_complete.replace("&#281;", "ę");
			destination_complete = destination_complete.replace("&#281;", "ę");
			origin_complete = origin_complete.replace("&#243;", "ó");
			destination_complete = destination_complete.replace("&#243;", "ó");
			
			if (origin_complete != "") {
				$('#origin').val(origin_complete);
				$('#airportcode_origin').val(origin);
			}
			else {
				$('#origin').val('');
				$('#airportcode_origin').val('');
			}
			
			if (destination_complete != "") {
				$('#destination').val(destination_complete);
				$('#airportcode_destination').val(destination);
			}
			else {
				$('#destination').val('');
				$('#airportcode_destination').val('');
			}	
			
			if (origin_complete == "" || destination_complete == "") {
				if (location.href.indexOf('earn_miles.php') != -1) {
					disableAccordion();
				}
				else if (location.href.indexOf('spend_miles.php')!= -1) {
					//clearFields();
				}	
			}
			
			if (origin_complete != "" && destination_complete != "") {
				if (location.href.indexOf('earn_miles.php') != -1) {
					getVia(origin, destination);
				}
				else if (location.href.indexOf('spend_miles.php')!= -1) {
					activateAccordion();
					//restoreAccordion();
					updateMiles();
				}
			}
		}
	});
}


function openAccordion(tab) {

	if (tab == 'economy') {
		$('#wrapper_economy').slideDown('slow');
		$('#hl_economy').addClass('open');
	}
	else if (tab == 'business') {
		$('#wrapper_business').slideDown('slow');
		$('#hl_business').addClass('open');
	}
	else if (tab == 'first') {
		$('#wrapper_first').slideDown('slow');
		$('#hl_first').addClass('open');
	}
	else if (tab == 'upgrade') {
		$('#wrapper_upgrade').slideDown('slow');
		$('#hl_upgrade').addClass('open');
	}
}


function closeAccordion(tab) {
	if (tab == 'economy') {
		$('#wrapper_economy').slideUp('slow');
		$('#hl_economy').removeClass('open');
	}
	else if (tab == 'business') {
		$('#wrapper_business').slideUp('slow');
		$('#hl_business').removeClass('open');
	}
	else if (tab == 'first') {
		$('#wrapper_first').slideUp('slow');
		$('#hl_first').removeClass('open');
	}
	else if (tab == 'upgrade') {
		$('#wrapper_upgrade').slideUp('slow');
		$('#hl_upgrade').removeClass('open');
	}
}

function activateAccordion(mode) {

// Accordion klickbar machen	
	$('#hl_economy').addClass('clickable');
	$('#hl_business').addClass('clickable');
	$('#hl_first').addClass('clickable');
	if (mode == 'spend') {
		$('#hl_upgrade').addClass('clickable');
	}
	
	// Hinweis entfernen
	$('#notification').hide();
	$('#notice_returnflight').show();
}


function disableAccordion() {
	$('#debug_result').html("disableAccordion");

	if (location.href.indexOf('earn_miles.php') != -1) {
		closeAccordion('economy');
		closeAccordion('business');
		closeAccordion('first');
	
		$('#wrapper_economy,#wrapper_business,#wrapper_first').hide();
	
//		$('#hl_economy,#hl_business,#hl_first').removeClass().css('background', 'transparent url(img/arrow.gif) 8px center no-repeat');
		$('#hl_economy,#hl_business,#hl_first').removeClass('clickable');
	}
	else if (location.href.indexOf('spend_miles.php')!= -1) {
		// Residence-Checkbox ausblenden
		$('#residence').hide();
		$('#resetButton').css('top', '9px');
	
		// Hinweis anzeigen
		$('#notification').show();
		$('#notice_returnflight').hide();
	
		// Sichtbarkeit der Accordion-Tabellen-Wrapper aufheben
		$('#wrapper_economy,#wrapper_business,#wrapper_first,#wrapper_upgrade').hide();
	
		// kein Hand-Cursor fuer Accordion-Balken
		$('#hl_economy,#hl_business,#hl_first,#hl_upgrade').removeClass();
		$('#hl_economy').css('background', 'transparent url(img/arrow.gif) 8px center no-repeat');
	
		// ausgeblendete Tabellenreihen einblenden
		$('#miles_fs_business,#miles_first,#miles_oneway_first,#miles_up_eco1,#miles_up_eco2,#miles_up_business').parent().show();
							
		// Texte in Accordion-Balken entfernen
		$('#no_first_class,#no_upgrades').html('');
	}
}

function restoreAccordion() {
alert("restoreAccordion");

	if (location.href.indexOf('earn_miles.php') != -1) {
		// Accordion-Tabellen-Wrapper sichtbar machen
		$('#wrapper_economy,#wrapper_business,#wrapper_first').show();

		// Hand-Cursor fuer Accordion-Balken
		$('#hl_economy,#hl_business,#hl_first').addClass = 'clickable';

		// versteckte Reihen wieder sichtbar machen
		$('#tr_economy1,#tr_economy2,#tr_economy3,#tr_business,#tr_first').show();
	
		// Texte in Ueberschriften entfernen
		$('#no_first_class').html('');
	}
	else if (location.href.indexOf('spend_miles.php')!= -1) {
		// Accordion-Tabellen-Wrapper sichtbar machen
		$('#wrapper_economy,#wrapper_business,#wrapper_first,#wrapper_upgrade').show();

		// Hand-Cursor fuer Accordion-Balken
		$('#hl_economy,#hl_business,#hl_first,#hl_upgrade').addClass = 'clickable';

		// versteckte Reihen wieder sichtbar machen
		$('#tr_economy_fs,#tr_business_fs,#tr_first,#tr_first_oneway,#tr_eco1_up,#tr_eco2_up,#tr_business_up').show();
	
		// Texte in Ueberschriften entfernen
		$('#no_first_class,#no_upgrades').html('');
	
		// Links zur Online-Buchung einblenden
		$('#link_first,#link_upgrade').show();
	
		// Styles auf Darstellung von Zahlen anpassen
		$('#miles_economy_online,#miles_fs_economy_online,#miles_business_online,#miles_fs_business_online,#miles_first_online,#miles_up_eco1_online,#miles_up_eco2_online,#miles_up_business_online').removeClass().addClass('miles last');
	}	
}


function resetInput(defaultOriginText, defaultDestinationText) {
	$('#origin').val(htmlDecode(defaultOriginText));
	$('#destination').val(htmlDecode(defaultDestinationText));
	$('#airportcode_origin').val('');
	$('#airportcode_destination').val('');
	
	if (location.href.indexOf('earn_miles.php') != -1) {
		$('#connectiondetails').hide();
		$('#selection_bookingclass').hide();
		resetFields('details');
	}
	disableAccordion();
	resetToActionScript();
}

// FAQ in Popup öffnen
function openFAQ(url) {
	satellit = window.open(url,"FAQ","height=650,width=800,left=20,top=20,screenX=20,screenY=20,resizable=no,menubar=no,scrollbars=no,status=yes,toolbar=no,adressbar=no");
}

// Sprachumschalter ein- bzw. ausblenden
function toggleLanguageChoice() {
	if ($('#languagechoice').css('display') == 'none') {
		$('#languagechoice').css('display', 'block');
		$('#languagelink').removeClass().addClass('language selected');
	}
	else {
		$('#languagechoice').css('display', 'none');
		$('#languagelink').removeClass().addClass('language');
	}
}


function htmlDecode(value){ 
  return $('<div/>').html(value).text(); 
}

function piwik_most_searched_routes_earn(origin, destination) {
//	alert("ROUTE: " + origin + " - " + destination);
	$.ajax({
		type: 'GET',
		url: 'php/mostSearchedRoutesEarn.php',
		data: ({ 
			'origin': origin,
			'destination': destination
		}),  
		success: function(response) {
//			alert(response);
		}
	});
}

function piwik_most_searched_routes_spend(origin, destination) {
//	alert("ROUTE: " + origin + " - " + destination);
	$.ajax({
		type: 'GET',
		url: 'php/mostSearchedRoutesSpend.php',
		data: ({ 
			'origin': origin,
			'destination': destination
		}),  
		success: function(response) {
//			alert(response);
		}
	});
}


