/*************************************************************************************
	*
	*	PANEL JS
	*	Copyright 2008, Rewe Touristik
	*	www.itsreisen.de
	*	Author:Joerg Di Terlizzi, JUNG v. MATT Neckar GmbH
	*
 *************************************************************************************/	
	var isStartPanel = false;	
	var elementIdDay    = '';
	var elementIdMonth  = '';
	var elementIdYear   = '';
	var childrenDates 	 = new Array();
		childrenDates[0] = new Array();
		childrenDates[1] = new Array();
		childrenDates[2] = new Array();
	
	//ibeForm defaults (ibeFormStyles)
	var ibeFormStyles = new Array();
	ibeFormStyles['arv_country'] = new Array();
	ibeFormStyles['arv_country']['input'] = 'inputField fmDdSrdLong';
	ibeFormStyles['arv_country']['label'] = 'label';
	ibeFormStyles['arv_country']['text']  = 'Reiseland';
	
	ibeFormStyles['arv_airport'] = new Array();
	ibeFormStyles['arv_airport']['input'] = 'inputField fmDdSrdLong';
	ibeFormStyles['arv_airport']['label'] = 'label-marge';
	ibeFormStyles['arv_airport']['text']  = 'Reiseziel';
	
	ibeFormStyles['dpt_airport'] = new Array();	
	ibeFormStyles['dpt_airport']['input'] = 'inputField fmDdSrdLong';
	ibeFormStyles['dpt_airport']['label'] = 'label-marge';
	ibeFormStyles['dpt_airport']['text']  = 'Abflughafen';
	
	ibeFormStyles['travel_days'] = new Array();	
	ibeFormStyles['travel_days']['input'] = 'inputField fmDdSrdLong';
	ibeFormStyles['travel_days']['label'] = 'label-marge';
	ibeFormStyles['travel_days']['text']  = 'Reisedauer';
	
	ibeFormStyles['catering'] = new Array();	
	ibeFormStyles['catering']['input'] 	= 'inputField inputL';
	ibeFormStyles['catering']['label']  = 'label-marge';
	ibeFormStyles['catering']['text']   = 'Verpflegung';
	
	ibeFormStyles['category'] = new Array();
	ibeFormStyles['category']['input'] 	= 'inputField inputL';
	ibeFormStyles['category']['label']  = 'label';
	ibeFormStyles['category']['text']   = 'Kategorie';
	
	ibeFormStyles['a_childbirth_0'] = new Array();
	ibeFormStyles['a_childbirth_0']['input']  = 'inputField fmDdSrdMini';
	ibeFormStyles['a_childbirth_0']['label']  = 'label-marge';
	ibeFormStyles['a_childbirth_0']['text']   = 'Kindesalter';	
	
	ibeFormStyles['a_childbirth_1'] = new Array();
	ibeFormStyles['a_childbirth_1']['input']  = 'inputField fmDdSrdMini';
	ibeFormStyles['a_childbirth_1']['label']  = 'label-marge';
	ibeFormStyles['a_childbirth_1']['text']   = 'Kindesalter';	
	
	ibeFormStyles['a_childbirth_2'] = new Array();
	ibeFormStyles['a_childbirth_2']['input']  = 'inputField fmDdSrdMini';
	ibeFormStyles['a_childbirth_2']['label']  = 'label-marge';
	ibeFormStyles['a_childbirth_2']['text']   = 'Kindesalter';		
	
	//reset the form errors using the defaults (ibeFormStyles)
	function resetError(eName){
		var inputElement = document.getElementById((eName+'Input').toString());
		var labelElement = document.getElementById((eName+'Label').toString());
		//var imgElement = document.getElementById((eName+'Img').toString());
		
		if(inputElement){ 
			inputElement.className = ibeFormStyles[eName]['input'];
		}
		if(labelElement){
			labelElement.className = ibeFormStyles[eName]['label'];
			labelElement.innerHTML = ibeFormStyles[eName]['text'];
		}	
	}
	
	//validates ibe panel //onsubmit="return validIbeForm();"	
	//sets erroricons errorclasses and errortext
	function validIbeForm(){
			
		if(document.getElementById('rmflash')) {
			document.getElementById('rmflash').style.display = 'none';
			document.getElementById('rmImg').style.display = 'block';
		}

		var ibeError = '';
		//if ibe hidden fields not delivered
		if(!document.form1.step){
			document.getElementById('jsIbePanelError').style.display ='block'; 
			return false;
		}
		
		if(document.form1){
			
			ibeError = new Array();

			if( document.form1.arv_country ){
				if( document.form1.arv_country.value.length < 2)
					ibeError.push('arv_country');
				else
					resetError('arv_country');
			}
			
			if( document.form1.arv_airport ){
				if( document.form1.arv_airport.value.length < 2 )
					ibeError.push('arv_airport');
				else
					resetError('arv_airport');
			}
			
			if( document.form1.dpt_airport && document.getElementById('dptAirportContainer').style.display=='block'){
				if( document.form1.dpt_airport.value.length < 2 && document.form1.dpt_airport.value != '-')
					ibeError.push('dpt_airport');
				else
					resetError('dpt_airport');					
			}			
			
			if( document.form1.travel_days){
				if( document.form1.travel_days.value.length < 1 || document.form1.travel_days.value == '-' )
					ibeError.push('travel_days');
				else
					resetError('travel_days');					
			}			
			
			/*if( document.form1.catering){
				if( document.form1.catering.value.length < 1)
					ibeError.push('catering');
				else
					resetError('catering');					
			}
			
			if( document.form1.category){
				if( document.form1.category.value.length < 1)
					ibeError.push('category');
				else
					resetError('category');					
			}*/	
			
			//children travellers special treatment
			if(document.form1.children_travelers){
				if( document.form1.children_travelers.value > 0){
					for(var i = 0; i < document.form1.children_travelers.value; i++){
						if(document.getElementById(('children_'+i+'_DAY').toString()).value == '' || document.getElementById(('children_'+i+'_DAY').toString()).value == '-'){
							ibeError.push('a_childbirth_'+i);
						}
						else{
							resetError('a_childbirth_'+i);
						}
					}
				}
				else{
					resetError('a_childbirth_0');
					resetError('a_childbirth_1');
					resetError('a_childbirth_2');
				}
			}

			//set errormessage / errorstyles / erroricon
			if(ibeError.length > 0){
				for(var i = 0; i < ibeError.length; i++){
					var inputElement = document.getElementById((ibeError[i]+'Input').toString());
					var labelElement = document.getElementById((ibeError[i]+'Label').toString());
					//var imgElement = document.getElementById((ibeError[i]+'Img').toString());
					
					if(inputElement){ 
						if(inputElement.className.search(/Error/) == -1){
							inputElement.className = inputElement.className.replace(/inputField/, "inputFieldError"); //errorstyle
						}
					}
					if(labelElement){
						if(labelElement.className.search(/Error/) == -1){
							labelElement.className = labelElement.className+'Error';//errorstyle	
							if(labelElement.innerHTML.search('Abflughafen/Reiseart') > -1)
								labelElement.innerHTML = labelElement.innerHTML+' ergänzen!'; 	//errormessage
							else{
							    labelElement.innerHTML = ''+labelElement.innerHTML+' ergänzen!'; 	//errormessage
							}
							
						}
					}

				}
			
			return false;
			}
		}

		get_vacancy('2');//set step 2
		if(document.form1.start)
			document.form1.start.value = '';
	
		loadScreen('');	
		
	return true;	
	}
	
	function initPanel(travelType){
		//set action depending on ttype
		//alert(travelType);
		switch(travelType){
			case'PF':
				document.forms['form1'].action = '/buchen-pauschal/index.php';
			break;
			
			case'PH':
				document.forms['form1'].action = '/buchen-auto/index.php';
			break;
			
			case'LM':
				document.forms['form1'].action = '/buchen-last-minute-more/index.php';
			break;	
			
			case'NF':
				document.forms['form1'].action = '/buchen-nur-flug/index.php';
			break;	
			
			case'BS':
				document.forms['form1'].action = '/buchen-flug-hotel-kombinieren/index.php';
			break;	
			
			case'KF':
				document.forms['form1'].action = '/buchen-kreuzfahrten/index.php';
			break;
			
		}		
	}
	
	//resets airports and airports if ibe type s changing
	function resetFormFields(mode){
		
		if(mode == 'all'){
			document.getElementById('formText_arv_country').innerHTML = 'Bitte wählen';	
			document.getElementById('formText_arv_airport').innerHTML = 'Bitte wählen';	
			if(travelType != 'PH')
				document.getElementById('formText_dpt_airport').innerHTML = 'Bitte wählen';	
			document.getElementById('arv_country').value = '';
			document.getElementById('arv_airport').value = '';
			if(travelType != 'PH')
				document.getElementById('dpt_airport').value = '';
		}
		else if(mode == 'arv_c'){
			document.getElementById('formText_arv_country').innerHTML = 'Bitte wählen';	
			document.getElementById('arv_country').value = '';
		}
		else if(mode == 'arv_a'){
			document.getElementById('formText_arv_airport').innerHTML = 'Bitte wählen';	
			document.getElementById('arv_airport').value = '';
		}
		else if(mode == 'dpt_a' && travelType != 'PH'){
			document.getElementById('formText_dpt_airport').innerHTML = 'Bitte wählen';	
			document.getElementById('dpt_airport').value = '';
		}	
	}
	

	//-------------------------------------------------------------------------------
	// GETTER
	//-------------------------------------------------------------------------------
	
	//function mapper all forminputs.onlick using this
	function getCT(functionType){
		var eHtml = '';
		
		switch (functionType){
			case'country':
				eHtml = getCountry(functionType);	
			break;

			case'arv_airport':
				eHtml = getArvAirport(functionType);	
			break;
			
			case'dpt_airport':
				eHtml = getDptAirport(functionType);	
			break;	
			
			case'travel_days':
				eHtml = getTravelDays(functionType);	
			break;							
			default:
				eHtml = getFlyOutHeader(functionType,'')+makeList(foConfig[functionType]['data'], foConfig[functionType]['function'] , foConfig[functionType]['usekey'], foConfig[functionType]['textadd'], foConfig[functionType]['jsadd'])+'<br class="clear"><\/div>';
			break;
		}
		
		setElementPosition(foConfig[functionType]['formfield'], 'panelFlyOut', 16, 18);
		if(showFlyOut(foConfig[functionType]['formfield'], foConfig[functionType]['width'])){
			//setElementProperty(eHtml, 'flyOutCt');
			//jQuery('#flyOutCt').html(eHtml);
			//setElememtHTML(eHtml, 'flyOutCt');
			document.getElementById('flyOutCt').innerHTML = eHtml; 
		}
	}
	
	//get Flyout Content for Travel Days 3 cols 
	function getTravelDays(functionType){
		
		var eHtml = getFlyOutHeader(functionType,'');
		var c_data = getLen(foConfig[functionType]['data']);
		var slice_at = 0;
		var data_travel_days = document.getElementById('travel_days').value;
		
		if(c_data%2 == 0){
			slice_at = c_data / 2;
		}
		else{
			slice_at = Math.ceil(c_data / 2);
		}
		
		eHtml += '<ul class="flyOutList">';
		//add 1 2 3 Wochen 
		if(keyExists(foConfig[functionType]['data'],7)) {
			if(data_travel_days=='7') a_style = ' style="background-color:#e1f0f6"';
			else a_style = '';
			eHtml +='<li class="first"><a href="javascript:setTravelDays(\'7\', \'1 Woche\');"'+a_style+'>1 Woche<\/a><\/li>';
		}
		if(keyExists(foConfig[functionType]['data'],14)) {
			if(data_travel_days=='14') a_style = ' style="background-color:#e1f0f6"';
			else a_style = '';
			eHtml += '<li><a href="javascript:setTravelDays(\'14\', \'2 Wochen\');"'+a_style+'>2 Wochen<\/a><\/li>';
		}
		if(keyExists(foConfig[functionType]['data'],21)) {
			if(data_travel_days=='21') a_style = ' style="background-color:#e1f0f6"';
			else a_style = '';
			eHtml += '<li><a href="javascript:setTravelDays(\'21\', \'3 Wochen\');"'+a_style+'>3 Wochen<\/a><\/li>';
		}
		if(keyExists(foConfig[functionType]['data'],28)) {
			if(data_travel_days=='28') a_style = ' style="background-color:#e1f0f6"';
			else a_style = '';
			eHtml += '<li><a href="javascript:setTravelDays(\'28\', \'4 Wochen\');"'+a_style+'>4 Wochen<\/a><\/li>';
		}			
		
		eHtml += '<\/ul>';
		
		var i = 0;
		
		var li_class = ' class="first"';
		for (key in foConfig[functionType]['data']){

			if(data_travel_days==key) var a_style = ' style="background-color:#e1f0f6"';
    	    else var a_style = '';
			
			if(i == 0 || i == (slice_at)) {
				eHtml += '<ul class="flyOutList">';
				li_class = ' class="first"';
			}

			var textAdd = 'Tage';
			if(key == 1) 
				textAdd = 'Tag';
				
			eHtml += '<li'+li_class+'><a href=\'javascript:setTravelDays("'+key+'", "'+key+' '+textAdd+' ");\''+a_style+'>'+key+' '+textAdd+'<\/a><\/li>'+"\n";
			
			if(i == c_data || i == (slice_at-1))
				eHtml += '<\/ul>';
			
			i++;
			li_class = '';
		}
		eHtml += '<\/ul><br class="clear"><\/div>';
		
	return eHtml;			
	}
	


	//get Flyout Content for Country 2 cols
	function getCountry(functionType){
		
		var eHtml = getFlyOutHeader(functionType,'');
		var c_data = getLen(foConfig[functionType]['data']);
		var slice_at = 0;
		var data_arv_country = document.getElementById('arv_country').value;
		
		if(c_data%2 == 0){
			slice_at = c_data / 2;
		}
		else{
			slice_at = Math.ceil(c_data / 2);
		}
		
		var i = 0;
		
		var li_class = ' class="first"';
		for (key in foConfig[functionType]['data']){
			
			if(data_arv_country==key) var a_style = ' style="background-color:#e1f0f6"';
    	    else var a_style = '';
			
			if(i == 0 || i == (slice_at)) {
				eHtml += '<ul class="flyOutList">';
				li_class = ' class="first"';
			}
			
			if(key == 'SN'){
				eHtml += '<li'+li_class+'><a href="/montenegro/"'+a_style+'>Montenegro<\/a><\/li>'+"\n";	
			}
			/*else if(key == 'RO'){
				eHtml += '<li><a href="/rumaenien/">Rumänien<\/a><\/li>'+"\n";
			}*/
			else{
				eHtml += '<li'+li_class+'><a href=\'javascript:setCountry("'+key+'", "'+foConfig[functionType]['data'][key]['NAME']+'");\''+a_style+'>'+foConfig[functionType]['data'][key]['NAME']+'<\/a><\/li>'+"\n";
			}
			if(i == c_data || i == (slice_at-1))
				eHtml += '<\/ul>';
			
			i++;
			li_class = '';
		}
		eHtml += '<\/ul><br class="clear"><\/div>';
		
		//eHtml += '<p style="width: 360px; border-top:1px solid #CCC; margin-top:15px; padding-top:5px;">Besondere Reiseziele</p><br class="clear"><ul class="flyOutList"><li><a href="/montenegro/">Montenegro<\/a><a href="/rumaenien/">Rumänien<\/a><\/li><\/ul><br class="clear">';
		
		
	return eHtml;			
	}
		
	//get Flyout Content for Arrival Airport 2 cols
	function getArvAirport(functionType){
		if(document.getElementById('arv_country').value == ''){
			return (getFlyOutHeader(functionType,'Bitte w&auml;hlen Sie zuerst ein Reiseland aus!'));	
		}
		
		var eHtml = getFlyOutHeader(functionType,'');
		var currentCountry = document.getElementById('arv_country').value;
		var data = eval(jsonPanel.DATA.TARGET[currentCountry]['3LC']);
		var c_data = getLen(data);
		var slice_at = 0;
		var data_arv_airport = document.getElementById('arv_airport').value;
		
		if(c_data%2 == 0){
			slice_at = c_data / 2;
		}
		else{
			slice_at = Math.ceil(c_data / 2);
		}
		
		var i = 0;

		var li_class = ' class="first"';
		for (key in data){
			
			if(data_arv_airport==key) var a_style = ' style="background-color:#e1f0f6"';
    	    else var a_style = '';
			
			var tmp_tType = '';
			//assign hidden TravelType 
			if(data[key]['AUTO'] && data[key]['FLIGHT']){
				tmp_tType = 'PH';
				hidden_tType = 'B'; //BOTH
			}
			else if(data[key]['BS']){
				tmp_tType = hidden_tType = 'BS';
			}
			else if(data[key]['NF']){
				tmp_tType = hidden_tType = 'NF';
			}
			else if(data[key]['AUTO']){
				tmp_tType = 'PH';
				hidden_tType = 'A';
			}
			else if(data[key]['FLIGHT']){
				tmp_tType = 'PF';		
				hidden_tType = 'F';
			}
			
			if(i == 0 || i == (slice_at)) {
				eHtml += '<ul class="flyOutList">';	
				li_class = ' class="first"';
			}
				
			var lampo = data[key]['NAME'].substr(0,26);
			lampo = lampo.replace(/\'/gi, "&#x27;");
			
			eHtml += '<li'+li_class+'><a href=\'javascript:setArvAirport("'+key+'", "'+lampo+'", "'+tmp_tType+'"); setHiddenTravelType( "'+hidden_tType+'"); \''+a_style+'>'+data[key]['NAME']+'<\/a><\/li>'+"\n";
			
			
			//
			if(i == c_data || i == (slice_at-1))
				eHtml += '<\/ul>';
			
			i++;
			li_class = '';
		}
		eHtml += '<\/ul><br class="clear"><\/div>';
		
	return eHtml;			
	}						
		
	//get Flyout Content for Department Airport 2 cols
	function getDptAirport(functionType){
		
		if(document.getElementById('arv_country').value == '' || document.getElementById('arv_airport').value == ''){
			return (getFlyOutHeader(functionType, 'Bitte w&auml;hlen Sie zuerst Reiseland und Reiseziel aus!'));	
		}
		
		var eHtml = getFlyOutHeader(functionType,'');
		
		if(document.getElementById('tmp_traveltype').value == 'A' || document.getElementById('tmp_traveltype').value == 'B')//wenn TT = A  ist "Eigene Anreise" erlaubt
			eHtml +='<br class="clear" /><p style="width:360px;float:left;"><a href="javascript:setOwnArival();" class="linkBtn" style="font-size:1em">Eigene Anreise</a></p><br class="clear" /><hr /><br class="clear" />'
		
		var currentCountry = document.getElementById('arv_country').value;
		var currentDptAirport = document.getElementById('arv_airport').value;
		var data = eval(jsonPanel.DATA.TARGET[currentCountry]['3LC'][currentDptAirport]['DPT_3LC']);
		var c_data = getLen(data);
		var slice_at = 0;
		var data_dpt_airport = document.getElementById('dpt_airport').value;
		
		if(c_data%2 == 0){
			slice_at = c_data / 2;
		}
		else{
			slice_at = Math.ceil(c_data / 2);
		}
		
		var i = 0;

		var li_class = ' class="first"';
		for (key in data){
			
			if(data_dpt_airport==key) var a_style = ' style="background-color:#e1f0f6"';
    	    else var a_style = '';
			
			if(i == 0 || i == (slice_at)) {
				eHtml += '<ul class="flyOutList">';	
				li_class = ' class="first"';
			}	
			
			/*if(key == 'TXL')
				data[key]['NAME'] = "Berlin Tegel";
			else if(key == 'SXF')
				data[key]['NAME'] = "Berlin Schönefeld";*/
						
			eHtml += '<li'+li_class+'><a href=\'javascript:setDptAirport("'+key+'", "'+data[key]['NAME']+'");\''+a_style+'>'+data[key]['NAME']+'<\/a><\/li>'+"\n";
			
			if(i == c_data || i == (slice_at-1))
				eHtml += '<\/ul>';
			
			i++;
			li_class = '';
		}
		eHtml += '<\/ul><br class="clear"><\/div>';
		
	return eHtml;			
	}
		
	//used by all Flyout functions bulid topmsg and close btn
	function getFlyOutHeader(functionType, textMsg){
		var style = ('width:'+(parseInt(foConfig[functionType]['width'])-30)+'px;').toString();
		if(textMsg == '')
			var text = foConfig[functionType]['text']
		else
			text = textMsg;
			
	return '<p style="'+style+'">'+text+'<\/p><a href="javascript:void(0);" onclick="closeFlyOut();" class="closeFlyOut">x<\/a><div class="clear"><\/div>';
	}
		
	//common list builder generates flyout content list either with key or value  1 col
	function makeList(array_value, jsFunction, useKey, textAdditional, jsAdditional){
		var listHtml = '<div><ul class="flyOutList">';
		var li_class = ' class="first"';
		var c_data = getLen(array_value);
		var i = 0;
		if(c_data%2 == 0){
			slice_at = c_data / 2;
		}
		else{
			slice_at = Math.ceil(c_data / 2);
		}

		
		if(useKey == false){ //common list key value
			for (key in array_value){
				if(key.length <= 2)
				listHtml += '<li'+li_class+'><a href=\'javascript:'+jsFunction+'("'+key+'", "'+array_value[key].substring(0,20)+'"); '+jsAdditional+' \'>'+array_value[key]+'<\/a><\/li>'
				li_class = '';
			}
		}
		else{ //common list key key
			if(textAdditional!='')
			textAdditional = ' '+textAdditional;
			
			for (key in array_value){
				if(i == 0 || i == (slice_at)) {
					listHtml += '<ul class="flyOutList">';
					li_class = ' class="first"';
				}
				
				if(key.length <= 2)
				listHtml += '<li'+li_class+'><a href=\'javascript:'+jsFunction+'("'+key+'", "'+key+textAdditional+'"); '+jsAdditional+' \'>'+key+'<\/a><\/li>'
				li_class = '';
				if(i == c_data || i == (slice_at-1))
					listHtml += '<\/ul>';
				
				i++;
				li_class = '';
			}

		}
		listHtml += '<\/ul><br class="clear" \/><\/div>';
	
	return listHtml;
	}			
	
	
	
	//-------------------------------------------------------------------------------
	// SETTER
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//set defaults dependeing on arv_airport and traveltype 
	function setDefaults(tType){

		/*if(document.getElementById('arv_airport').value != ''){
			
			var tmp_jsonDefaults = eval(jsonPanel.DATA.DEFAULTS['3LC']);
			var jsonDefaults = tmp_jsonDefaults[(document.getElementById('arv_airport').value).toString()];
			lm_travelType = tType;//global ttype only 4 lm
			
			if(jsonDefaults && (travelType == 'PH' || travelType == 'PF' || travelType == 'LM')){
				for(caseKey in jsonDefaults){
					switch(caseKey){	
						
						case'CATERING':
							document.getElementById('catering').value = jsonDefaults[caseKey];
							document.getElementById('formText_catering').innerHTML = foConfig['catering']['data'][jsonDefaults[caseKey]];	
							document.getElementById('cateringText').value = foConfig['catering']['data'][jsonDefaults[caseKey]];	
						break;
			
						case'CATEGORY':
							document.getElementById('category').value = jsonDefaults[caseKey];
							document.getElementById('formText_category').innerHTML = (foConfig['category']['data'][jsonDefaults[caseKey]]).toString().substring(0,20);
							document.getElementById('categoryText').value = (foConfig['category']['data'][jsonDefaults[caseKey]]).toString().substring(0,20);
						break;
						
						case'TRAVEL_DAYS':
							if(jsonDefaults[caseKey][tType])
								foConfig['travel_days']['data'] = eval(jsonDefaults[caseKey][tType]);
							
						break;
					}			
				}
			}
		}*/			
	}
	//EO Defaults
	//-------------------------------------------------------------------------------
	
	
	//-------------------------------------------------------------------------------
	//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');
		resetFormFields('dpt_a');
		closeFlyOut();
	}
	//EO country
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//arrival Airport
	function setArvAirport(val, text, tType){
		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';
		resetFormFields('dpt_a');
		setDefaults(tType);
		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.form1.travel_type.value = 'PH';
			document.getElementById('frontendType').value = 'A';
		}
		else{
			document.getElementById('dptAirportContainer').style.display = 'block';
			document.getElementById('travelTypeMsg').style.display = 'none';
		}
	}
	//EO arrival Airport
	//-------------------------------------------------------------------------------
	
	//-------------------------------------------------------------------------------
	//depart Airport
	function setDptAirport(val, text){
		document.getElementById('dpt_airport').value = val;
		document.getElementById('dpt_airportText').value = text;
		document.getElementById('formText_dpt_airport').innerHTML = text;
		document.getElementById('formText_dpt_airport').className = 'valueSet';
		if(document.form1.travel_type){
			if(document.form1.travel_type.value != 'BS')
				document.form1.travel_type.value = 'PF';
		}
		document.getElementById('frontendType').value = 'B';
		if(travelType=='LM') {
			lm_travelType = 'PF';
			switchTravelType(lm_travelType);
		}
		closeFlyOut();
	}
	function setOwnArival(){ //Traveltype PH (Eigene Anreise)
		document.getElementById('dpt_airport').value = '-';
		document.getElementById('formText_dpt_airport').innerHTML = 'Eigene Anreise';
		document.getElementById('dpt_airportText').value = 'Eigene Anreise';
		document.getElementById('formText_dpt_airport').className = 'valueSet';
		document.form1.travel_type.value = 'PH';
		document.getElementById('frontendType').value = 'B';
		//document.getElementById('dptAirportContainer').style.display = 'none';
		//document.getElementById('travelTypeMsg').style.display = 'block';
		if(travelType=='LM') {
			lm_travelType = 'PH';
			switchTravelType(lm_travelType);
		}
		closeFlyOut();
	}
	function switchTravelType(type) {
		foConfig['travelers']['data'] = eval(jsonPanel.DATA.TRAVELER[type]);
		foConfig['travel_days']['data'] = eval(jsonPanel.DATA.TRAVEL_DAYS[type]);
		document.getElementById('travel_days').value = '7';
		document.getElementById('travel_daysText').value = '7 Tage';
		document.getElementById('formText_travel_days').innerHTML = '7 Tage';
		document.getElementById('travelers').value = '2';
		document.getElementById('travelersText').value = '2';
		document.getElementById('formText_travelers').innerHTML = '2';
		//alert(type);
	}
	//EO depart Airport
	//-------------------------------------------------------------------------------	
	
	//init datepicker
	var startFlugDays;
	var startFlugDateString;
	
	var endFlugDate;
	var dp1;
	
	//-------------------------------------------------------------------------------
	//date from
	//init datepicker
	//-------------------------------------------------------------------------------
	//date from	
	function getDateFrom(month, day, isKf, customEndDate, customStartDate){
		//--------------------------------------------------------------------------------------
		//BO workaround Kreuzfahrt
		if(isKf == 'true'){
			showFlyOut('formText_date_from', 530);
			setElementPosition('formText_date_from', 'panelFlyOut', 16, 18);
			var content  = '<ul class="flyOutList">'+
								'<li><a href=\'javascript:setDateFrom("31.07.2010");\'>31. Juli 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("07.08.2010");\'>07. Aug. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("14.08.2010");\'>14. Aug. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("21.08.2010");\'>21. Aug. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("28.08.2010");\'>28. Aug. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("04.09.2010");\'>04. Sept. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("11.09.2010");\'>11. Sept. 2010</a></li>'+
							'</ul><ul class="flyOutList">'+
								'<li><a href=\'javascript:setDateFrom("18.09.2010");\'>18. Sept. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("25.09.2010");\'>25. Sept. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("02.10.2010");\'>02. Okt. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("09.10.2010");\'>09. Okt. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("16.10.2010");\'>16. Okt. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("23.10.2010");\'>23. Okt. 2010</a></li>'+
								'<li><a href=\'javascript:setDateFrom("39.10.2010");\'>30. Okt. 2010</a></li>'+
							'</ul>';
			
			setElementProperty('<div class="flyOutCt" id="flyOutCt"><p style="width: 400px;">Bitte Anreisedatum auswählen.</p><a href="javascript:closeFlyOut();" onclick="closeFlyOut();" class="closeFlyOut">x</a><div class="clear"></div>'+content+'</div><br class="clear" />' ,'flyOutCt');	
		}
		//EO workaround Kreuzfahrt
		//---------------------------------------------------------------------------------------
		else{
			month = (parseInt(month.substr(0, 2),10));
	
			showFlyOut('formText_date_from', 530);
			setElementPosition('formText_date_from', 'panelFlyOut', 16, 18);
			setElementProperty('<div id="dpCont"></div><br class="clear" />' ,'flyOutCt');
			
			if(customStartDate) {
				var tmp_min_date 	= customStartDate.split(",");
				var tmp_min_year 	= tmp_min_date[0];
				var tmp_min_month 	= tmp_min_date[1];
				var tmp_min_day 	= tmp_min_date[2];
				var minDate			= new Date(parseInt(tmp_min_year,10), parseInt(tmp_min_month,10)-1, parseInt(tmp_min_day,10));
			} else {
				var minDate			= new Date(2011, month, day);
			}
			
			if(customEndDate) {
				var tmp_max_date 	= customEndDate.split(",");
				var tmp_max_year 	= tmp_max_date[0];
				var tmp_max_month 	= tmp_max_date[1];
				var tmp_max_day 	= tmp_max_date[2];
				//alert(parseInt(tmp_max_year,10)+"/"+parseInt((tmp_max_month,10)-1)+"/"+parseInt(tmp_max_day,10));
				var maxDate			= new Date(parseInt(tmp_max_year,10), parseInt(tmp_max_month,10)-1, parseInt(tmp_max_day,10));
			} else {
				var maxDate			= new Date(2012, 09, 31);
			}
			
			jQuery('#dpCont').datepicker({
				numberOfMonths: 3,
				stepMonths:2,
				duration:'fast',
				showButtonPanel: false,
				showAnim : 'slideDown',
				monthNames : ['Januar','Februar','März','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ärz','April','Mai','Juni','Juli','Aug.','Sept.','Okt.','Nov.','Dez.'],
				prevText : '&laquo;',
				nextText : '&raquo;',
				dateFormat : 'dd.mm.yy',
				hideIfNoPrevNext : true,
				minDate : minDate,
				maxDate : maxDate,
				showOtherMonths : true,
				changeMonth:true,
				changeYear:true,
				onSelect : setDateFrom,
				gotoCurrent: true, 
				currentText: 'Current'
			});
				
			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){
			   jQuery('#dpCont').datepicker("setDate", new Date(parseInt(year,10), parseInt(month,10)-1, timeSt.getDate() )); 
			}
			
			jQuery('#dpCont').show();
		}
	}
	
	//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(isFirstLoad){
			document.getElementById('formText_date_from').className = 'valueSet';
		}
		isFirstLoad = true;
		
		closeFlyOut();
	}
	
	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;
	}
	
	function getDateString(datestr, format){
	
		var tmp_date = datestr.split("-");
		
		var year 	 = tmp_date[0];
		var day 	 = tmp_date[2];
		var month 	 = tmp_date[1];
		//alert('DD '+day+'  MM '+month+' YYYY '+year);
		if(format != 'yyyy,mm,dd')
			if (day < 10 && day > 0) day = "0" + day;
		if (month < 10 && month > 0) month = "0" + month;
		if (year < 10 && year > 0) year = "0" + year;
		
		switch(format){
			case'yymmdd':
				return year.substr(2,2)+'.'+month+'.'+day;
			break;
			case'yyyy,mm,dd':
				return year+','+month+','+day;
			break;			
			case'ddmmyy':
				return day+'.'+month+'.'+year.substr(2,2);
			break;
		}
		
	return day+'.'+month+'.'+year;
	}	
	//EO date from
	//-------------------------------------------------------------------------------
	
	
	//-------------------------------------------------------------------------------
	//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 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 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 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 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 enableBirthdays(val){
		
		if(val > 0){
			for(var i = 0; i < val; i++){
				var tmp = ('a_childbirth_'+i+'Input').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+'Input').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+'Input').toString();
				var currentChild = ('formText_childbirth_'+i).toString();
				document.getElementById('children_'+i+'_Text').value = '';
				document.getElementById('children_'+i+'_DAY').value = '';
				document.getElementById('children_'+i+'_MONTH').value = '';
				document.getElementById('children_'+i+'_YEAR').value = '';
				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 = '-';
		
		setElementPosition(currentChild, 'panelFlyOut', -387, 18);
		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){
		
		var childAge = setAge(child);
		
		if(checkDate(child) && childAge){
			var currentChild = ('formText_childbirth_'+child).toString();
			document.getElementById(currentChild).innerHTML = childAge.substr(0,4);
			document.getElementById(('children_'+child+'_Text').toString()).value = childAge;
			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){

		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()+" M.";
		}
		else{
			age = age / 10000;
			age = Math.floor(age).toString()+" 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
	//----------------------------------------------------------------------------------------------------------------------------------------------------------
