/*************************************************************************************
	*
	*	PANEL JS
	*	Copyright 2008, Rewe Touristik
	*	www.itsreisen.de
	*	Author:Joerg Di Terlizzi, JUNG v. MATT Neckar GmbH
	*
 *************************************************************************************/	
	var isStartPanel = true;
	var posElement = '';
	var dateSelectForm = 'ajaxPanel';
	var travelType		= 'PF';
	var elementIdDay    = '';
	var elementIdMonth  = '';
	var elementIdYear   = ''; 
	var childrenDates 	 = new Array();
		childrenDates[0] = new Array();
		childrenDates[1] = new Array();
		childrenDates[2] = new Array();
	var countryPanelLen;
	
	function animateLogos2(airlines) {
		if(airlines) {
			var width = 1107;
		} else {
			var width = 994;
		}
		var width1 = width - 323;
    	$("#loadScreenLogoCt img.first").animate({ left:"-"+width1+"px" }, 15000, "linear", function() {
    		$("#loadScreenLogoCt img.first").animate({ left:"-"+width+"px" }, 6500, "linear");
    		$("#loadScreenLogoCt img.second").animate({ left:"0px" }, 6500, "linear", function() {
    			$("#loadScreenLogoCt img.first").removeClass("first").addClass("second").css("left","323px");
    			$(this).removeClass("second").addClass("first");
    			animateLogos2(airlines);
    		});
    	});
    }
	
	function createDateObj(dateStr)
	{
		// erzeugt dateobjekt
		
		if(dateStr == "") return new Date;
		var dateArr = dateStr.split(".");
	
		var day = dateArr[0];
		var month = dateArr[1] - 1;
		//var year = parseInt(dateArr[2]) + 2000;
		if (dateArr[2] < 2000)
			var year = 20 + dateArr[2];
		else
			var year = dateArr[2];
	
		if (dateArr.length == 3 && dateArr[0] > 0 && dateArr[1] > 0 && dateArr[2] > 0)
			return new Date(year, month, day);
	
		return false;
	}
	
	function getBrowser(){
		/*  Autor, Entwicklung 8/2002 Kristof Lipfert Duesseldorf    */
		/*  Version 2005-12-09                                  */
		if(document.ids)browserName='nc4';
		else if( document.all && !document.getElementById )browserName='ie4';
		else if( window.opera && !document.createElement )browserName='op5';
		else if( window.opera && window.getComputedStyle )  {
				  if(document.createRange)browserName='op8';
					else if(window.navigate)browserName='op7.5';
									 else browserName='op7.2';}
		else if( window.opera && document.compatMode )browserName='op7';
		else if( window.opera && document.releaseEvents )browserName='op6';
		else if( document.contains && !window.opera )browserName='kq3';
		else if(window.pkcs11&&window.XML)browserName='f15';
		else if( window.getSelection && window.atob )browserName='nn7';
		else if( window.getSelection && !document.compatMode )browserName='nn6';
		else if( window.clipboardData && document.compatMode )
		  browserName=window.XMLHttpRequest? 'IE7' : 'IE6';
		else if( window.clipboardData ){browserName='ie5';
			 if( !document.createDocumentFragment ) browserName+='.5';
			 if( document.doctype && !window.print ) browserName+='m';}
		else if( document.getElementById && !document.all ) browserName='op4';
		else if( document.images && !document.all ) browserName='nn3';
		else if(document.clientWidth&&!window.RegEbrowserNamep)browserName='kq2';
		else browserName='NoName';
	
	return browserName;		
	}
	
	/***********************************************************************************************************************************************************/
	/*	 	AJAX BUILD FUNCTIONS /FLYOUT FUNCTIONS	*/
	/*		USE GLOBAL FLY OUT						*/
	/***********************************************************************************************************************************************************/
	var xmlHttp 		= null;
	var loadingscreen 	= '<img src="/images/startseitenpanel/loading.gif" alt="Laden..." />';
	var currentFlyOut 	= '';

	function closeFlyOut(){
		document.getElementById('panelFlyOut').style.display = 'none';
		setElementProperty(loadingscreen, 'flyOutCt');
	}
	
	//show and place the flyout
	function showFlyOut(name, width){
		
		setElementProperty(loadingscreen, 'flyOutCt');
		
		var eventShow = true;
		if((name == currentFlyOut || currentFlyOut == '') && document.getElementById('panelFlyOut').style.display == 'block' && doClose){
			//alert(currentFlyOut+"<>"+name);
			closeFlyOut();
			eventShow =  false;
			//name = '';
		}
		else{
			//alert('3 DISPLAY: '+document.getElementById('panelFlyOut').style.display+' CLOSE: '+doClose+' FLYOUT: '+currentFlyOut+' NAME: '+name);
			if(width=='auto') {
				document.getElementById('panelFlyOut').style.width = 'auto'; 
			} else {
				document.getElementById('panelFlyOut').style.width = width.toString()+'px'; 
			}
			document.getElementById('panelFlyOut').style.display = 'block';	
			doClose = true;
			//name = '';
		}
		
		if(document.getElementById('surround')){
			document.getElementById('surround').onclick = function(){};
		}
		else if(document.getElementById('iehackwrap')){
			document.getElementById('iehackwrap').onclick = function(){};	
		}
		currentFlyOut = name;
		
		return eventShow;
	}

	//return requested element
	function getEt(id){
		return (document.getElementById(id));	
	}

	//getElementposition from target Element
	function getElementPosition(targetElement) {
		var offsetTrail = document.getElementById(targetElement);
		var offsetLeft = 0;
		var offsetTop = 0;
		var offsetarray = new Array();
		while (offsetTrail) {
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
		if (navigator.userAgent.indexOf("Mac") != -1 && 
			typeof document.body.leftMargin != "undefined") {
			offsetLeft += document.body.leftMargin;
			offsetTop += document.body.topMargin;
		}
		offsetarray = Array(offsetLeft, offsetTop);
	
	return offsetarray;
	}

	
	//define position for target;
	function setElementPosition(targetElement, showElement, left, top, offsetElement){
		
		offsetarrayForm = new Array();
		offsetarray 	= getElementPosition(targetElement);
		
		if(typeof(offsetElement)=='string' && document.getElementById(offsetElement)) {
			offsetarrayForm = getElementPosition(offsetElement);
		} else {
			if(document.getElementById('panelFormSurround') && (targetElement.search(/price/) == -1))
				offsetarrayForm = getElementPosition('panelFormSurround');
			else if(document.getElementById('priceFormSurround'))
				offsetarrayForm = getElementPosition('priceFormSurround');
			else if(document.getElementById('boxContentSrdS_NP'))
				offsetarrayForm = getElementPosition('boxContentSrdS_NP');
			else if(document.getElementById('dcCont'))
				offsetarrayForm = getElementPosition('dcCont');
			else if(document.getElementById('boxSurroundXXXL_NM'))
				offsetarrayForm = getElementPosition('boxSurroundXXXL_NM');	
			else if(document.getElementById('boxContentSurroundXL_NM'))
				offsetarrayForm = getElementPosition('boxContentSurroundXL_NM');
			else
				offsetarrayForm = getElementPosition('surround');
		}
		
		leftposition = offsetarray[0]+left-offsetarrayForm[0];
		topposition = offsetarray[1]+top;
		document.getElementById(showElement).style.left = leftposition.toString()+'px';
		document.getElementById(showElement).style.top = topposition.toString()+'px';	
	}
	
	//sets Element property 
	function setElementProperty(value, targetElement) {
		//if IE 4+
		if (document.all) {
			eval(targetElement+'.innerHTML = value;');
		//else if NS 4
		} else if (document.layers) {
			eval('document.'+targetElement+'.document.write(value);');
			eval('document.'+targetElement+'.document.close();');
		}
		//else if NS 6 (supports new DOM)
		else if (document.getElementById) {
			rng = document.createRange();
			el = document.getElementById(targetElement);
			rng.setStartBefore(el);
			htmlFrag = rng.createContextualFragment(value);
			while (el.hasChildNodes())
				el.removeChild(el.lastChild);
			el.appendChild(htmlFrag);
		}
	} 
	
	function getFlyoutHeight(){
		var ftHeight = document.getElementById("panelFlyOut").offsetHeight;
		if(getBrowser() == 'IE6'){
			ftHeight -= 9
		}
		
	return (ftHeight);
	}
	
	function getRandom( min, max ) {
		
		if( min > max ) {
			return( -1 );
		}
		
		if( min == max ) {
			return( min );
		}
		
		return( min + parseInt( Math.random() * ( max-min+1 ) ) );
		
	}
	
	function loadScreen(text){
		scroll(0,0);
		if(document.getElementById('offerBox')) {
			document.getElementById('offerBox').style.display = 'none';
		}
		ProgressImage = document.getElementById('loaderAni');
		document.getElementById('boxLoadingScreenSrd').style.display = 'block';
		document.getElementsByTagName('body')[0].style.overflow = 'hidden';
		document.getElementsByTagName('html')[0].style.overflow = 'hidden';
		if(text != ''){
			document.getElementById('loadingText').innerHTML = text;
		}
		setTimeout(function(){
			ProgressImage.src = ProgressImage.src;
		},100);
		if(travelType == "NF") {
			animateLogos2(true);
		} else {
			animateLogos2(false);
		}
		return true;
	}	
	//-----------------------------------------------------------------------------------------------------------------------//
    // A-X-send function //POST
	function writeAjax(fileElement, targetElement, requestUri){
		if (window.ActiveXObject){
			// Internet Explorer
			try {
				xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
			}
			catch (e){
				
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {}
			}
		}
		else if (window.XMLHttpRequest){
			// Opera, Firefox
			try {
				xmlHttp = new XMLHttpRequest();
			}
			catch (e) {}
		}
		
		if (xmlHttp){
			xmlHttp.open("POST", fileElement, true);
			xmlHttp.onreadystatechange = function(evt) { 
				if (xmlHttp.readyState == 4){
					setElementProperty(xmlHttp.responseText, targetElement);
					if(isStartPanel == true){
						var ftFrom = -6;
						if(getBrowser() == 'IE6'){
							//ftFrom = 19;	
						}
						setElementPosition(posElement, 'panelFlyOut', ftFrom, 0);	
					}
				}};
			xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
			xmlHttp.send(requestUri);
		}
		else {
			setTimeout("writeAjax('"+fileElement+"','"+targetElement+"')",500);
		}

	return(true);
	}
	
	 // A-X-send function //POST
	function writeAjaxObject(obj, fileElement, targetElement, requestUri){
		if (window.ActiveXObject){
			// Internet Explorer
			try {
				obj = new ActiveXObject("Msxm12.XMLHTTP");
			}
			catch (e){
				
				try {
					obj = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {}
			}
		}
		else if (window.XMLHttpRequest){
			// Opera, Firefox
			try {
				obj = new XMLHttpRequest();
			}
			catch (e) {}
		}
		
		if (obj){
			obj.open("POST", fileElement, true);
			obj.onreadystatechange = function(evt) { 
				if (obj.readyState == 4){
					setElementProperty(obj.responseText, targetElement);
					isXmlHttpReadyFunc();
				}}	
			obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
			obj.send(requestUri);
		}
		else {
			setTimeout("writeAjax('"+fileElement+"','"+targetElement+"')",500);
		}

	return(true);
	}
	
	function isXmlHttpReadyFunc(){}
	/***********************************************************************************************************************************************************/
	
	function formSubmit(){
		loadScreen('');
		document.forms['ajaxPanel'].submit();	
	}
	function formSubmitExtended(){
		document.getElementById('extendedSearch').value = 1;
		document.forms['ajaxPanel'].submit();
	}
	
	//set form type / init parameters
	function setFormType(ttype){

		//set lastactive inactive and current to active
		var previousActiveType = ('tType_'+travelType).toString();
		var currentActiveType = ('tType_'+ttype).toString();
		
		var isWbscgi = false;
		if(travelType == 'NF')
			isWbscgi = true;
		//set travel type
		travelType = ttype;

		//toggle formtype
		document.getElementById(previousActiveType).firstChild.className = ''; 
		document.getElementById(currentActiveType).firstChild.className = 'current';
		
		//hide open flyouts
		document.getElementById('panelFlyOut').style.display = 'none';
	
		//set action depending on ttype
		switch(ttype){
			case'PF':
				if(isWbscgi){
					for(var key in dateValues) {
						ttpanel = ttpanel.replace(new RegExp('##'+key+'##', 'g'), dateValues[key]);
					}
					$('#panelForm').html(ttpanel);
					setDateFrom(document.getElementById('date_fromDateString').value);
					setDateTo(document.getElementById('date_fromDateString').value);
				}
				
				document.forms['ajaxPanel'].action = '/buchen/index.php';
				document.forms['ajaxPanel'].method = 'post';
				document.getElementById('dptAirportContainer').style.display = 'block';
				document.getElementById('tmp_traveltype').value = ttype;
				document.getElementById('panelBtnIbe').href = 'javascript:formSubmitExtended();';
				document.getElementById('panelBtnIbe').style.display = 'block';
				$("#loadScreenLogoCt img").attr("src","/images/RD_images/veranstalterLogosSmall.jpg");
			break;
			
			case'PH':
				if(isWbscgi){
					for(var key in dateValues) {
						ttpanel = ttpanel.replace(new RegExp('##'+key+'##', 'g'), dateValues[key]);
					}
					$('#panelForm').html(ttpanel);
					setDateFrom(document.getElementById('date_fromDateString').value);
					setDateTo(document.getElementById('date_fromDateString').value);
				}
				
				document.forms['ajaxPanel'].action = '/buchen/index.php';
				document.forms['ajaxPanel'].method = 'post';			
							
				document.getElementById('dptAirportContainer').style.display = 'none';
				document.getElementById('tmp_traveltype').value = ttype;
				document.getElementById('panelBtnIbe').href = 'javascript:formSubmitExtended();';
				document.getElementById('panelBtnIbe').style.display = 'block';
				$("#loadScreenLogoCt img").attr("src","/images/RD_images/veranstalterLogosSmall.jpg");
			break;
			
			case'LM':
				if(isWbscgi){
					for(var key in dateValues) {
						ttpanel = ttpanel.replace(new RegExp('##'+key+'##', 'g'), dateValues[key]);
					}
					$('#panelForm').html(ttpanel);
					setDateFrom(document.getElementById('date_fromDateString').value);
					setDateTo(document.getElementById('date_fromDateString').value);
				}
				document.forms['ajaxPanel'].action = '/buchen/index.php';
				document.forms['ajaxPanel'].method = 'post';				
					
				document.getElementById('dptAirportContainer').style.display = 'block';
				document.getElementById('tmp_traveltype').value = ttype;
				document.getElementById('panelBtnIbe').href = 'javascript:formSubmitExtended();';
				document.getElementById('panelBtnIbe').style.display = 'block';
				$("#loadScreenLogoCt img").attr("src","/images/RD_images/veranstalterLogosSmall.jpg");
			break;	
			
			case'NF':
				for(var key in dateValues) {
					panel = panel.replace(new RegExp('##'+key+'##', 'g'), dateValues[key]);
				}
			    $('#panelForm').html(panel);
				document.forms['ajaxPanel'].action = '/buchen-nur-flug/index.php?panel=1&stid=st0001101';
				document.forms['ajaxPanel'].method = 'post';
				setDateFrom(document.getElementById('date_fromDateString').value);
				document.getElementById('dptAirportContainer').style.display = 'block';
				//document.getElementById('panelBtnIbe').href = '/buchen-nur-flug/index.php';
				document.getElementById('panelBtnIbe').style.display = 'none';
				$("#loadScreenLogoCt img").attr("src","/images/RD_images/airlineLogosSmall.jpg");
			break;			
			
		}
		
		//alert("Form-Method: "+document.forms['ajaxPanel'].method);
		
		setElementProperty(loadingscreen, 'flyOutCt');
		resetFormFields('all');
		
	}

	
	//resets airports and airports if ibe type s changing
	function resetFormFields(mode){
		
		if(mode == 'all'){
			if(travelType == 'PF' || travelType == 'PH' || travelType == 'LM') {
				document.getElementById('formText_arv_country').innerHTML = 'Alle Reiseziele';	
				document.getElementById('formText_arv_airport').innerHTML = 'Alle Reiseregionen';	
				document.getElementById('formText_dpt_airport').innerHTML = 'Alle Abflugh&auml;fen';
				document.getElementById('arv_country').value = '-1';
				document.getElementById('arv_airport').value = '-1';
				document.getElementById('dpt_airport').value = '-1';	
			} else {
				document.getElementById('formText_arv_country').innerHTML = 'Bitte w&auml;hlen';	
				document.getElementById('formText_arv_airport').innerHTML = 'Bitte w&auml;hlen';	
				document.getElementById('formText_dpt_airport').innerHTML = 'Bitte w&auml;hlen';	
				document.getElementById('arv_country').value = '';
				document.getElementById('arv_airport').value = '';
				document.getElementById('dpt_airport').value = '';
			}
				
		}
		else if(mode == 'arv_c'){
			if(travelType == 'PF' || travelType == 'PH' || travelType == 'LM') {
				document.getElementById('formText_arv_country').innerHTML = 'Alle Reiseziele';	
				document.getElementById('arv_country').value = '-1';
			} else {
				document.getElementById('formText_arv_country').innerHTML = 'Bitte w&auml;hlen';
				document.getElementById('arv_country').value = '';
			}
		}
		else if(mode == 'arv_a'){
			if(travelType == 'PF' || travelType == 'PH' || travelType == 'LM') {
				document.getElementById('formText_arv_airport').innerHTML = 'Alle Reiseregionen';	
				document.getElementById('arv_airport').value = '-1';
			} else {
				document.getElementById('formText_arv_airport').innerHTML = 'Bitte w&auml;hlen';
				document.getElementById('arv_airport').value = '';
			}
		}
		else if(mode == 'dpt_a'){
			if(travelType == 'PF' || travelType == 'PH' || travelType == 'LM') {	
				document.getElementById('formText_dpt_airport').innerHTML = 'Alle Abflugh&auml;fen';	
				document.getElementById('dpt_airport').value = '-1';
			} else {
				document.getElementById('formText_dpt_airport').innerHTML = 'Bitte w&auml;hlen';	
				document.getElementById('dpt_airport').value = '';
			}
		}
		
	}
	
	//hides cart
	function hideCartList(){
		if(document.getElementById('merkListenInsteadContainer') && document.getElementById('merkListenContainer')) {
			document.getElementById('panelFormSurround').style.width = "auto";
			document.getElementById('merkListenInsteadContainer').style.display = "block";
			document.getElementById('merkListenContainer').style.display = "none";
		}
	}
	
	function setDefaults(catering, cateringText, category, categoryText){
		/*
		if(catering != ''){
			document.getElementById('catering').value = catering;
			document.getElementById('formText_catering').innerHTML = cateringText;	
			document.getElementById('cateringText').value = cateringText;	
		}
		else {
			if(document.getElementById('catering')){
				document.getElementById('catering').value = '';
				document.getElementById('formText_catering').innerHTML = 'Halbpension';	
				document.getElementById('cateringText').value = 'Halbpension';	
			}
		}
		
		if(category != ''){
			document.getElementById('category').value = category;
			document.getElementById('formText_category').innerHTML = categoryText.substring(0,20);
			document.getElementById('categoryText').value = categoryText.substring(0,20);
		}
		else{
			if(document.getElementById('category')){
				document.getElementById('category').value = '';
				document.getElementById('formText_category').innerHTML = '3***';	
				document.getElementById('categoryText').value = '3***';	
			}	
		}*/
	}
	//EO set form type / init parameters
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//country
	function getCountry(){
		posElement = 'formText_arv_country';
		countryPanelLen = 450;
		var data_arv_country = document.getElementById('arv_country').value;
		if(travelType == 'PH' || travelType == 'PF' || travelType == 'LM'){
			 countryPanelLen = 615;	
		}
		if(travelType != 'PH' && travelType != 'LM' && travelType != 'PF') {
			setElementPosition('formText_arv_country', 'panelFlyOut', -6, 0);
		}
		if(showFlyOut('formText_arv_country', countryPanelLen)){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTCountries());
				setElementPosition('formText_arv_country', 'panelFlyOut', -6, 0);
			} else writeAjax('/ajax_module/getCountry.php?travelType='+travelType+'&arv_country='+data_arv_country, 'flyOutCt', 'travelType='+travelType+'&arv_country='+data_arv_country);
		}
	}
	function setCountry(val, text){
		document.getElementById('arv_country').value = val;
		document.getElementById('arv_countryText').value = text.toString().substring(0,20);
		document.getElementById('formText_arv_country').innerHTML = text.toString().substring(0,20);
		document.getElementById('formText_arv_country').className = 'valueSet';
		resetFormFields('arv_a');
		if(travelType != 'PH' && travelType != 'PF' && travelType != 'LM') {
			resetFormFields('dpt_a');
		}
		closeFlyOut();
	}
	//EO country
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//arrival Airport
	function getArvAirport(){
		posElement = 'formText_arv_airport';
		var data_arv_country = document.getElementById('arv_country').value;
		var data_arv_airport = document.getElementById('arv_airport').value;
		if(travelType != 'PH' && travelType != 'LM' && travelType != 'PF') {
			setElementPosition('formText_arv_airport', 'panelFlyOut', -6, 0);
			var flyOutWidth = 450;
		} else {
			if(data_arv_country=='' || data_arv_country=='-1' || typeof(data_arv_country)=='undefined') {
				flyOutWidth = 275;
			} else flyOutWidth = 'auto';
		}
		if(showFlyOut('formText_arv_airport', flyOutWidth)){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTRegions(data_arv_country));
				setElementPosition('formText_arv_airport', 'panelFlyOut', -6, 0);
			} else writeAjax('/ajax_module/getArvAirport.php?travelType='+travelType+'&arv_country='+data_arv_country+'&arv_airport='+data_arv_airport, 'flyOutCt', 'travelType='+travelType+'&arv_country='+data_arv_country+'&arv_airport='+data_arv_airport);
        }
	}
	function setArvAirport(val, text, topRegion, countryId, countryName){
		if(typeof(countryId)!='undefined' && typeof(countryName)!='undefined') {
			setCountry(countryId, countryName);
		}
		document.getElementById('arv_airport').value = val;
		document.getElementById('arv_airportText').value = text.toString().substring(0,20);
		document.getElementById('formText_arv_airport').innerHTML = text.toString().substring(0,20);
		document.getElementById('formText_arv_airport').className = 'valueSet';
		if(travelType != 'PH' && travelType != 'PF' && travelType != 'LM') {
			resetFormFields('dpt_a');
		}
		closeFlyOut();
	}
	function setHiddenTravelType(traveltype){
		document.getElementById('tmp_traveltype').value = traveltype;
		if(traveltype=='A'){
			document.getElementById('dptAirportContainer').style.display = 'none';
			document.getElementById('travelTypeMsg').style.display = 'block';
			document.getElementById('isAuto').value = 1;
			document.getElementById('frontendType').value = 'A';
		}
		else{
			document.getElementById('dptAirportContainer').style.display = 'block';
			document.getElementById('travelTypeMsg').style.display = 'none';
			document.getElementById('isAuto').value = '';
			document.getElementById('frontendType').value = traveltype;
		}
	}
	//EO arrival Airport
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//depart Airport
	function getDptAirport(){
		posElement = 'formText_dpt_airport';
		dptAirportPanelLen = 400;
		if(travelType == 'PH' || travelType == 'PF' || travelType == 'LM'){
			dptAirportPanelLen = 650;	
		}
		var add = '';
		if(document.getElementById('tmp_traveltype').value == 'B'){
			add = '&traveltype=both';	
		}
		else if(document.getElementById('tmp_traveltype').value == 'BS'){
			add = '&travelType=BS';	
		}
		else if(document.getElementById('tmp_traveltype').value == 'NF'){
			add = '&travelType=NF';	
		}
		//alert(document.getElementById('tmp_traveltype').value);
		var data_arv_country = document.getElementById('arv_country').value;
		var data_arv_airport = document.getElementById('arv_airport').value;
		var data_dpt_airport = document.getElementById('dpt_airport').value;
		if(travelType != 'PH' && travelType != 'LM' && travelType != 'PF') {
			setElementPosition('formText_dpt_airport', 'panelFlyOut', -6, 0);
		}
		if(showFlyOut('formText_dpt_airport', dptAirportPanelLen)){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTAirports());
				setElementPosition('formText_dpt_airport', 'panelFlyOut', -6, 0);
			} else writeAjax('/ajax_module/getDptAirport.php?arv_country='+data_arv_country+'&arv_airport='+data_arv_airport+add+'&dpt_airport='+data_dpt_airport, 'flyOutCt', 'arv_country='+data_arv_country+'&arv_airport='+data_arv_airport+add+'&dpt_airport='+data_dpt_airport);
        }
	}
	function setDptAirport(val, text){
		document.getElementById('dpt_airport').value = val;
		document.getElementById('dpt_airportText').value = text.toString().substring(0,20);
		document.getElementById('formText_dpt_airport').innerHTML = text.toString().substring(0,20);
		document.getElementById('formText_dpt_airport').className = 'valueSet';
		document.getElementById('isAuto').value = '0';
		closeFlyOut();
	}
	function setTravelType(){
		document.getElementById('dpt_airport').value = '-';
		document.getElementById('dptAirportContainer').style.display = 'none';
		document.getElementById('dpt_airportText').value = 'Eigene Anreise';
		document.getElementById('formText_dpt_airport').className = 'valueSet';
		document.getElementById('travelTypeMsg').style.display = 'block';
		document.getElementById('isAuto').value = '1';
		closeFlyOut();
	}
	//EO depart Airport
	//-------------------------------------------------------------------------------	

	//-------------------------------------------------------------------------------
	//PH Themen
	function getPhThemen(){
		posElement = 'formText_themen';
		setElementPosition('formText_themen', 'panelFlyOut',-6, 0);
		if(showFlyOut('formText_themen', 'auto')){
			$("#flyOutCt").html(getTTThemen());
			setElementPosition('formText_themen', 'panelFlyOut', -6, 0);
		}
	}
	function setPhThemen(val, text){
		document.getElementById('themen').value = val;
		document.getElementById('themenText').value = text.toString().substring(0,20);
		document.getElementById('formText_themen').innerHTML = text.toString().substring(0,20);
		document.getElementById('formText_themen').className = 'valueSet';
		closeFlyOut();
	}
	//EO PH Themen
	//-------------------------------------------------------------------------------
	
	//init datepicker
	//-------------------------------------------------------------------------------
	//date from	
	function getDateFrom(month, day){
		showFlyOut('formText_date_from', 530);
		setElementPosition('formText_date_from', 'panelFlyOut', -6, 0);
		setElementProperty('<div id="dpCont"></div><br class="clear" />' ,'flyOutCt');
		
		$('#dpCont').datepicker({
			numberOfMonths: 3,
			stepMonths:2,
			monthNames : ['Januar','Februar','M\xE4rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
			dayNames : ['Sonntag','Monntag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
			dayNamesMin : ['So','Mo','Di','Mi','Do','Fr','Sa'],
			monthNamesShort: ['Jan.','Feb.','M\xE4rz','April','Mai','Juni','Juli','Aug.','Sept.','Okt.','Nov.','Dez.'],
			prevText : '&laquo;',
			nextText : '&raquo;',
			dateFormat : 'dd.mm.yy',
			hideIfNoPrevNext : true,
			minDate : new Date(2011, month, day),
			maxDate : (travelType == 'NF') ? new Date(2012, 09, 31) : new Date(2012, 09, 31),
			showOtherMonths : true,
			changeMonth:true,
			changeYear:true,
			onSelect : setDateFrom,
			gotoCurrent: true, 
			currentText: 'Current'
		});
		
		//alert(jQuery('#dpCont').datepicker("testFunction"));
		
		//'<a class="ui-datepicker-next ui-corner-all" onclick="jQuery.datepicker._adjustDate(\'#dpCont\', +1, \'M\');" title="»"><span class="ui-icon ui-icon-circle-triangle-e">»</span></a>';
		//jQuery('.ui-datepicker-group-last').append('<a class="ui-datepicker-next ui-corner-all" onclick="jQuery.datepicker._adjustDate(\'#dpCont\', +1, \'M\');" title="»"><span class="ui-icon ui-icon-circle-triangle-e">»</span></a>');
		var tmpDate = document.getElementById('date_fromDateString').value.split(".");
		
		var day 	= tmpDate[0];
		var month 	= tmpDate[1];
		var year 	= tmpDate[2];
		
		var timeSt = createDateObj(document.getElementById('date_fromDateString').value);
		
		if(currentDate){
		   $('#dpCont').datepicker("setDate", new Date(parseInt(year), parseInt(month,10)-1, timeSt.getDate() )); 
		}
		
		$('#dpCont').show();
		
		setElementPosition('formText_date_from', 'panelFlyOut', -6, 0);	
		//jQuery('.ui-datepicker-group-last').append('<a style="display:block; position:absolute; bottom:5px; right:10px; fot-size16px;" onclick="jQuery.datepicker._adjustDate(\'#dpCont\', +1, \'M\');" title="»"><span class="ui-icon ui-icon-circle-triangle-e">» </span></a>');
		
	}
	
	//datepicker does that
	function setDateFrom(dateText){
		
		currentDate = dateText;
		
		var tmpDate = dateText.split(".");
		
		var day 	= tmpDate[0];
		var month 	= tmpDate[1];
		var year 	= tmpDate[2];
		
		document.getElementById('formText_date_from').innerHTML = formatDate(dateText);	
		document.getElementById('date_fromText').value = formatDate(dateText);
		document.getElementById('date_fromDateString').value = dateText;	
		document.getElementById('date_from_dd').value = dateText.substr(0, 2);
		document.getElementById('date_from_mmyy').value = month+(year.substr(2, 4)).replace(/\./g,'');
		if(!initDate){
			document.getElementById('formText_date_from').className = 'valueSet';
		}
		initDate = false;
		
		closeFlyOut();
	}
	
	//EO date from
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//date from
	function getDateTo(month, day){
		showFlyOut('formText_date_to', 530);
		setElementPosition('formText_date_to', 'panelFlyOut', -6, 0);
		setElementProperty('<div id="dpCont2"></div><br class="clear" />' ,'flyOutCt');
		
		$('#dpCont2').datepicker({
			numberOfMonths: 3,
			stepMonths:2,
			monthNames : ['Januar','Februar','M\xE4rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
			dayNames : ['Sonntag','Monntag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
			dayNamesMin : ['So','Mo','Di','Mi','Do','Fr','Sa'],
			monthNamesShort: ['Jan.','Feb.','M\xE4rz','April','Mai','Juni','Juli','Aug.','Sept.','Okt.','Nov.','Dez.'],
			prevText : '&laquo;',
			nextText : '&raquo;',
			dateFormat : 'dd.mm.yy',
			hideIfNoPrevNext : true,
			minDate : new Date(2011, month, day),
			maxDate : (travelType == 'NF') ? new Date(2012, 09, 31) : new Date(2012, 09, 31),
			showOtherMonths : true,
			changeMonth:true,
			changeYear:true,
			onSelect : setDateTo,
			gotoCurrent: true, 
			currentText: 'Current'
		});
		
		var tmpDate = document.getElementById('date_toDateString').value.split(".");
		
		var day 	= tmpDate[0];
		var month 	= tmpDate[1];
		var year 	= tmpDate[2];
		
		var timeSt = createDateObj(document.getElementById('date_toDateString').value);
		
		if(currentDate){
		   $('#dpCont2').datepicker("setDate", new Date(parseInt(year), parseInt(month,10)-1, timeSt.getDate() )); 
		}
		
		$('#dpCont2').show();
		
		setElementPosition('formText_date_to', 'panelFlyOut', -6, 0);	
		
	}
	//datepicker does that
	function setDateTo(dateText){
		
		currentDate = dateText;
		
		var tmpDate = dateText.split(".");
		
		var day 	= tmpDate[0];
		var month 	= tmpDate[1];
		var year 	= tmpDate[2];
		
		document.getElementById('formText_date_to').innerHTML = formatDate(dateText);	
		document.getElementById('date_toText').value = formatDate(dateText);
		document.getElementById('date_toDateString').value = dateText;	
		document.getElementById('date_to_dd').value = dateText.substr(0, 2);
		document.getElementById('date_to_mmyy').value = month+(year.substr(2, 4)).replace(/\./g,'');
		if(!initDate){
			document.getElementById('formText_date_to').className = 'valueSet';
		}
		initDate = false;
		
		closeFlyOut();
	}
	//EO date from
	//-------------------------------------------------------------------------------

	
	function formatDate(date){
		
		var tmpDate = date.split(".");
		
		var day = tmpDate[0];
		var month = tmpDate[1];
		var year = tmpDate[2];
		
		displayDate =  createDateObj(date);
		
		var days 	= new Array("So","Mo","Di","Mi","Do","Fr","Sa");				  
		var months 	= new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "Sept.", "Oktober", "Nov.", "Dez.");
	
		result = days[parseInt(displayDate.getDay())]+', '+day+'. '+months[parseInt(displayDate.getMonth())]+' '+year;

			
	return result;
	}
	
	//-------------------------------------------------------------------------------
	//travel days
	function getTravelDays(){
		posElement = 'formText_travel_days';
		setElementPosition('formText_travel_days', 'panelFlyOut',-6, 0);
		var data_travel_days = document.getElementById('travel_days').value;
		if(showFlyOut('formText_travel_days', 'auto')){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTDurations());
				setElementPosition('formText_travel_days', 'panelFlyOut', -6, 0);
			} else writeAjax('/ajax_module/getTravelDays.php?travelType='+travelType+'&travel_days='+data_travel_days, 'flyOutCt', 'travelType='+travelType+'&travel_days='+data_travel_days);
		}
	}
	function setTravelDays(val, text){
		document.getElementById('travel_days').value = val;
		document.getElementById('travel_daysText').value = text;
		document.getElementById('formText_travel_days').innerHTML = text;
		document.getElementById('formText_travel_days').className = 'valueSet';
		closeFlyOut();
	}
	//EO travel days
	//-------------------------------------------------------------------------------
																	

	//-------------------------------------------------------------------------------
	//catering
	function getCatering(){
		posElement = 'formText_catering';
		setElementPosition('formText_catering', 'panelFlyOut', -6, 0);
		var data_catering = document.getElementById('catering').value;
		if(showFlyOut('formText_catering', 300)){
			writeAjax('/ajax_module/getCatering.php?catering='+data_catering, 'flyOutCt', 'catering='+data_catering);
		}
	}
	function setCatering(val, text){
		document.getElementById('catering').value = val;
		document.getElementById('cateringText').value = text;
		document.getElementById('formText_catering').innerHTML = text;
		document.getElementById('formText_catering').className = 'valueSet';
		closeFlyOut();
	}
	//EO catering
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//category
	function getCategory(){
		posElement = 'formText_category';
		setElementPosition('formText_category', 'panelFlyOut', -6, 0);
		var data_category = document.getElementById('category').value;
		if(showFlyOut('formText_category', 300)){
			writeAjax('/ajax_module/getCategory.php?category='+data_category, 'flyOutCt', 'category='+data_category);
		}
	}
	function setCategory(val, text){
		document.getElementById('category').value = val;
		document.getElementById('categoryText').value = text;
		document.getElementById('formText_category').innerHTML = text;
		document.getElementById('formText_category').className = 'valueSet';
		closeFlyOut();
	}
	//EO category	
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//traveler
	function getTravelers(){
		posElement = 'formText_travelers';
		setElementPosition('formText_travelers', 'panelFlyOut', -6, 0);
		var isAuto = 'false';
		var travelers = document.getElementById('travelers').value;
		if(document.getElementById('isAuto')){
			if(document.getElementById('isAuto').value == 1){
					var isAuto = 'true';		
			}
		}
		if(showFlyOut('formText_travelers', 280)){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTTravelers());
				setElementPosition('formText_travelers', 'panelFlyOut', -6, 0);
			} else writeAjax('/ajax_module/getTravelers.php?travelType='+travelType+'&ownArrival='+isAuto+'&travelers='+travelers, 'flyOutCt', 'travelType='+travelType+'&ownArrival='+isAuto+'&travelers='+travelers);
			hideCartList();
		}
	}
	function setTravelers(val, text){
		document.getElementById('travelers').value = val;
		document.getElementById('travelersText').value = text;
		document.getElementById('formText_travelers').innerHTML = text;
		document.getElementById('formText_travelers').className = 'valueSet';
		closeFlyOut();
	}
	//EO traveler	
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//children_traveler
	function getChildren(){
		posElement = 'formText_children_travelers';
		setElementPosition('formText_children_travelers', 'panelFlyOut', -6, 0);
		var isAuto = 'false';
		var children_travelers = document.getElementById('children_travelers').value;
		if(document.getElementById('isAuto')){
			if(document.getElementById('isAuto').value == 1){
					var isAuto = 'true';		
			}
		}
		if(showFlyOut('formText_children_travelers', 280)){
			writeAjax('/ajax_module/getChildren.php?travelType='+travelType+'&ownArrival='+isAuto+'&children_travelers='+children_travelers, 'flyOutCt', 'travelType='+travelType+'&ownArrival='+isAuto+'&children_travelers='+children_travelers);
		}
	}
	
	function setChildren(val, text){
		//disable activate birthfields
		enableBirthdays(val);
		document.getElementById('children_travelers').value = val;
		document.getElementById('children_travelersText').value = text;
		document.getElementById('formText_children_travelers').innerHTML = text;
		document.getElementById('formText_children_travelers').className = 'valueSet';
		closeFlyOut();
	}
	
	function getChildAge(childId){
		posElement = 'formText_child'+childId;
		if(showFlyOut('formText_child'+childId, 280)){
			if(travelType == 'PH' || travelType == 'LM' || travelType == 'PF') {
				$("#flyOutCt").html(getTTAge(childId));
				setElementPosition('formText_child'+childId, 'panelFlyOut', -6, 0);
			}
		}
	}
	
	function setChildAge(id, val, text){
		document.getElementById('child'+id+'Age').value = val;
		document.getElementById('child'+id+'AgeText').value = text;
		document.getElementById('formText_child'+id).innerHTML = text;
		document.getElementById('formText_child'+id).className = 'valueSet';
		closeFlyOut();
	}
	
	
	function enableBirthdays(val){
		
		if(val > 0){
			for(var i = 0; i < val; i++){
				var tmp = ('a_childbirth_'+i).toString();
				document.getElementById(tmp).style.background = "url(/css/images/panel/bgInputMini.gif) no-repeat";
				document.getElementById(tmp).currIndex = i;
				document.getElementById(tmp).onclick = function(){
					var tmpdate = '';
					if(childrenDates[this.currIndex]){
						tmpdate = childrenDates[this.currIndex][0]+'.'+childrenDates[this.currIndex][1]+'.'+childrenDates[this.currIndex][2];
					}
					getChildrenBirthdate(this.currIndex,0, tmpdate);
					return false;
				};
				
			}
			for(i = val; i < 3; i++){
				var tmp = ('a_childbirth_'+i).toString();
				var currentChild = ('formText_childbirth_'+i).toString();
				document.getElementById(currentChild).innerHTML = '-';
				document.getElementById(tmp).style.background = "url(/css/images/panel/bgInputMiniDisabled.gif) no-repeat";
				document.getElementById(tmp).onclick = function(){return false;};
			}
		}
		else if(val == 0){
			for(i = 0; i < 3; i++){
				var tmp = ('a_childbirth_'+i).toString();
				var currentChild = ('formText_childbirth_'+i).toString();
				document.getElementById(currentChild).innerHTML = '-';
				document.getElementById(tmp).style.background = "url(/css/images/panel/bgInputMiniDisabled.gif) no-repeat";
				document.getElementById(tmp).onclick = function(){return false;};
			}
		}
	}
	//EO children_traveler
	//-------------------------------------------------------------------------------
	
	
	//-------------------------------------------------------------------------------
	//children_traveler
	function getChildrenBirthdate(child, iserror, date){
		
		var currentChild = ('formText_childbirth_'+child).toString();
		var add = '&date='+date;
		
		if(iserror == 1){
			add  = '&iserror=1&date='+childrenDates[child][0]+'.'+childrenDates[child][1]+'.'+childrenDates[child][2];
			doClose = false;
		}

		//on click reset values (hidden / visible) of current child
		childrenDates[child][0] = '-';
		childrenDates[child][1] = '-';
		childrenDates[child][2] = '-';
		
		document.getElementById(currentChild).innerHTML = '-';
		posElement = currentChild;
		setElementPosition(currentChild, 'panelFlyOut', -6, 0);
		if(showFlyOut(currentChild, 440) || iserror == 1){
			writeAjax('/ajax_module/getChildrenBirthdate.php?childId='+child+add, 'flyOutCt', 'childId='+child+add);
			document.getElementById('panelFlyOut').style.display = 'block';	
			doClose = false;
		}
	}
	
	function setChildrenBirthdate(child){
		
		if(checkDate(child) && setAge(child)){
			var currentChild = ('formText_childbirth_'+child).toString();
			document.getElementById(currentChild).innerHTML = setAge(child);
			document.getElementById(('children_'+child+'_Text').toString()).value = setAge(child);
			//document.getElementById(('children_'+child).toString()).value = setAge(child, false);
			document.getElementById(currentChild).className = 'valueSet';
			setBirthdayHidden(child);
			closeFlyOut();
		}
		else{
			getChildrenBirthdate(child, 1 ,'');
		}
	}
	
	function setBirthdayHidden(child){
		var formFieldDay = ('children_'+child+'_DAY').toString();
		var formFieldMonth = ('children_'+child+'_MONTH').toString();
		var formFieldYear = ('children_'+child+'_YEAR').toString();
		
		document.getElementById(formFieldDay).value = childrenDates[child][0];
		document.getElementById(formFieldMonth).value = childrenDates[child][1];
		document.getElementById(formFieldYear).value = childrenDates[child][2];
	}
	
	function setAge(child,add){

		if(isNaN(childrenDates[child][2]) || isNaN(childrenDates[child][1]) || isNaN(childrenDates[child][0]))
			return false;

		//depending on travel date from
		var day = document.getElementById('date_from_dd').value;
		var month = (document.getElementById('date_from_mmyy').value.substr(0,2));
		var year = ('20'+document.getElementById('date_from_mmyy').value.substr(2,4)).toString();
		
		yearnow = childrenDates[child][2];
        monthnow = childrenDates[child][1];
        daynow = childrenDates[child][0];
        if (monthnow < 10) {
            monthnow = "0"+monthnow;
        } else {
            monthnow = ""+monthnow;
        }
        if (daynow < 10) {
            daynow = "0"+daynow;
        } else {
            daynow = ""+daynow;
        }
        var tmpnow = year+""+month+""+day;
        var tmpchild = yearnow+""+monthnow+""+daynow;
       
        var age = (tmpnow - tmpchild);
		
		if(age < 10000){
			if(age>9000) {
				age = (age-9000+200) / 100;
			} else {
				age = age / 100;
			}
			age = Math.floor(age).toString();
			if(add!=false) age += " M.";
		}
		else{
			age = age / 10000;
			age = Math.floor(age).toString();
			if(add!=false) age += " J.";
		}
		
		return age;
	}
	
	
	//returns daynum from current month 
	function getMonthdaysCount(year){
		
		if(!(year % 4) && ((year % 100) || !(year % 400))){
			var montharray = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
		}
		else{
			var montharray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		} 
		
	return montharray; 
	}
	
	// check date if not in future ans if valid
	function checkDate(child){
		
		isvalid = true;
		
		var childTime = new Date(childrenDates[child][2],childrenDates[child][1] ,childrenDates[child][0]);
		var currentTime = new Date();
		
		months = getMonthdaysCount(childrenDates[child][2]);
		days = months[childrenDates[child][1]-1];

		if(childrenDates[child][0] > days || ( childTime.getTime() > currentTime.getTime() || childTime.getTime() < 0 ) ){
			isvalid = false;
		}
		
	return (isvalid);	
	}
	
	// check if all values have been set
	function allValuesSet(child){
		if( ( !isNaN(childrenDates[child][2]) && 
			  !isNaN(childrenDates[child][1]) && 
			  !isNaN(childrenDates[child][0]) 
			 ) && ( 
			 childrenDates[child][2] != '-' && 
			 childrenDates[child][1] != '-' && 
			 childrenDates[child][0] != '-' ) )	{
			 return true;
		 }
	return false;
	}
	
	//toggle and setter funktions
	function setDateFromDay(elementId,val,child){
		
		if(document.getElementById(elementIdDay))
			document.getElementById(elementIdDay).className = '';
		document.getElementById(elementId).className = 'tabDataSet'; 
		
		elementIdDay = elementId;
		
		childrenDates[child][0] = val;
		
		//set date if valid
		if(allValuesSet(child) && checkDate(child) && setAge(child) ) {
			setChildrenBirthdate(child);
		}//show error
		else if( (!checkDate(child) || !setAge(child) ) && allValuesSet(child) ){
			doClose = false;
			getChildrenBirthdate(child, 1,'');	
		}
	

	}
	
	//toggle and setter funktions
	function setDateFromMonth(elementId,val,child){
		
		if(document.getElementById(elementIdMonth))
			document.getElementById(elementIdMonth).className = '';
		document.getElementById(elementId).className = 'tabDataSet'; 
		
		elementIdMonth = elementId;
		
		childrenDates[child][1] = val;
		
		if(allValuesSet(child) && checkDate(child) && setAge(child)) {
			setChildrenBirthdate(child);
		}//show error
		else if( (!checkDate(child) || !setAge(child) ) && allValuesSet(child) ){
			doClose = false;
			getChildrenBirthdate(child, 1,'');	
		}
	}						

	//toggle and setter funktions
	function setDateFromYear(elementId,val,child){
		
		if(document.getElementById(elementIdYear))
			document.getElementById(elementIdYear).className = '';
		document.getElementById(elementId).className = 'tabDataSet'; 
		
		elementIdYear = elementId;
		
		childrenDates[child][2] = val;
		
		if(allValuesSet(child) && checkDate(child) && setAge(child)) {
			setChildrenBirthdate(child);
		}//show error
		else if( (!checkDate(child) || !setAge(child) ) && allValuesSet(child) ){
			doClose = false;
			getChildrenBirthdate(child, 1, '');	
		}
	}
	//EO children traveler
	//----------------------------------------------------------------------------------------------------------------------------------------------------------
