// *** Global Vars ***
var inwork = 0;
var ajaxOnClickCountry = null;
var ajaxOnClickAirport = null;
var ajaxOnClickRegion = null;
var ajaxOnClickHotel = null;
var ajaxOnClickLuggage = null;
var hotels = [''];
var regions = [''];
var focused = null;
var pressed = 0;
var tcal = null;
var pcal = null;
var mDCal = null;
var firstload = true;

function doPayment(ref){
	//facebox.view_image('/img/ajax-loader.gif');
	document.getElementById("bglayer").style.display = 'block';
	document.getElementById("bookload").style.display = 'block';
	if(ref){
		var ajax = new Ajax.Request("/index/payment/refID/"+ref, {onComplete: paymentComplete});
	}else{
		var ajax = new Ajax.Request("/index/payment", {onComplete: paymentComplete});
	}
}

function paymentComplete(data){
	var json = data.responseText.evalJSON(true);
	window.location.href = json.url;
}

// *** Transfer ***
function fillCountrySelect(request) {
	var item = request.responseXML.getElementsByTagName('country_data');
	var count = 0;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').country.options[count] = new Option(item[i].getElementsByTagName('country_name')[0].childNodes[0].nodeValue, item[i].getElementsByTagName('country_id')[0].childNodes[0].nodeValue);
	}
	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);
}

function getCountries() {
	inwork = inwork + 1;
	loadingBar(true);
	var ajax = new Ajax.Request("/soap/getcountries", {onComplete: fillCountrySelect});
}

function getCountriesOnClick() {
	if(ajaxOnClickCountry == null) {
		inwork = inwork + 1;
		loadingBar(true);
		ajaxOnClickCountry = new Ajax.Request("/soap/getcountries", {onComplete: fillCountrySelect});
		ajaxOnClickAirport = 1;
		ajaxOnClickRegion = 1;
		ajaxOnClickHotel = 1;
	}
}

function fillAirportSelect(request) {
	var item = request.responseXML.getElementsByTagName('airport_data');
	var count = 0;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').airport.options[count] = new Option(item[i].getElementsByTagName('airport_name')[0].childNodes[0].nodeValue + ' (' + item[i].getElementsByTagName('airport_id')[0].childNodes[0].nodeValue + ')', item[i].getElementsByTagName('airport_id')[0].childNodes[0].nodeValue);
	}
	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);
}

function getAirports(id) {
	if(id != 0) {
		inwork = inwork + 1;
		loadingBar(true);
		var ajax = new Ajax.Request("/soap/getairports", {method: 'post', parameters: 'id='+id, onComplete: fillAirportSelect});
	}
}

function getAirportsOnClick(id) {
	if(id != 0) {
		if(ajaxOnClickAirport == null) {
			inwork = inwork + 1;	
			loadingBar(true);
			ajaxOnClickAirport = new Ajax.Request("/soap/getairports", {method: 'post', parameters: 'id='+id, onComplete: fillAirportSelect});
			ajaxOnClickRegion = 1;
			ajaxOnClickHotel = 1;
		}
	}
}

function fillRegionSelect(request) {
	var item = request.responseXML.getElementsByTagName('region_data');
	var count = 1;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').region.options[count] = new Option(item[i].getElementsByTagName('region_name')[0].childNodes[0].nodeValue, item[i].getElementsByTagName('region_id')[0].childNodes[0].nodeValue);
	}

	if($('transfer').airport.selectedIndex != 0) {
		$('transfer').region.options[1] = new Option(all, "alle");
		getHotelsFromAirport($('transfer').airport.options[$('transfer').airport.selectedIndex].value);
	}

	inwork = inwork - 1;
	//if(inwork == 0)
		//loadingBar(false);
}

function getRegion(cid, aid) {
	if(cid != 0 && $('transfer').airport.selectedIndex != 0) {
		inwork = inwork + 1;
		loadingBar(true);
		var ajax = new Ajax.Request("/soap/getregions", {method: 'post', parameters: 'country_id='+cid+'&airport_id='+aid, onComplete: fillRegionSelect});
	}
}

function getRegionOnClick(cid, aid) {
	if(cid != 0) {
		if(ajaxOnClickRegion == null) {
			inwork = inwork + 1;
			loadingBar(true);
			ajaxOnClickRegion = new Ajax.Request("/soap/getregions", {method: 'post', parameters: 'country_id='+cid+'&airport_id='+aid, onComplete: fillRegionSelect});
			ajaxOnClickHotel = 1;
		}
	}
}

function fillHotelFromRegionSelect(request) {
	$('transfer').hotel.options.length = 1;
	var item = request.responseXML.getElementsByTagName('hotel_data');
	var count = 0;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').hotel.options[count] = new Option(item[i].getElementsByTagName('hotel_name')[0].childNodes[0].nodeValue, item[i].getElementsByTagName('hotel_id')[0].childNodes[0].nodeValue);
	}

	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);

	$('popup').style.visibility = 'hidden';
}

function fillHotelFromAirportSelect(request) {
	$('transfer').hotel.options.length = 1;
	var item = request.responseXML.getElementsByTagName('hotel_data');
	var count = 0;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').hotel.options[count] = new Option(item[i].getElementsByTagName('hotel_name')[0].childNodes[0].nodeValue + " (" + item[i].getElementsByTagName('region_name')[0].childNodes[0].nodeValue + ")", item[i].getElementsByTagName('hotel_id')[0].childNodes[0].nodeValue);
		regions[count] = item[i].getElementsByTagName('region_name')[0].childNodes[0].nodeValue;
	}
	$('transfer').region.options[1].selected = true;

	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);

	fillHotelArray();
}

function getHotelsFromAirport(id) {
	if(id != 0) {
		inwork = inwork + 1;
		//loadingBar(true);
		var ajax = new Ajax.Request("/soap/gethotelsfromairport", {method: 'post', parameters: 'id='+id, onComplete: fillHotelFromAirportSelect});
	}
}

function getHotelsFromRegion(rid, aid) {
	if(rid != 0 && rid != 'alle') {
		inwork = inwork + 1;
		loadingBar(true);
		var ajax = new Ajax.Request("/soap/gethotelsfromregion", {method: 'post', parameters: 'region_id='+rid+'&airport_id='+aid, onComplete: fillHotelFromRegionSelect});
	}else if(rid == 'alle') {
		loadingBar(true);
		getHotelsFromAirport($('transfer').airport.options[$('transfer').airport.selectedIndex].value);
	}
}

function getHotelOnClick(rid, aid) {
	if(rid != 0 && rid != 'alle') {
		if(ajaxOnClickHotel == null) {
			inwork = inwork + 1;
			loadingBar(true);
			ajaxOnClickHotel = new Ajax.Request("/soap/gethotelsfromregion", {method: 'post', parameters: 'region_id='+rid+'&airport_id='+aid, onComplete: fillHotelFromRegionSelect});
		}
	}else if(rid == 'alle') {
		if(ajaxOnClickHotel == null) {
			inwork = inwork + 1;
			loadingBar(true);
			ajaxOnClickHotel = new Ajax.Request("/soap/gethotelsfromairport", {method: 'post', parameters: 'id='+$('transfer').airport.options[$('transfer').airport.selectedIndex].value, onComplete: fillHotelFromAirportSelect});
		}
	}
}

function fillAddress(request) {
	var item = request.responseXML.getElementsByTagName('hoteladdress');
	for(var i = 0; i < item.length; i++) {
		//$('transfer').hotel_street.value = item[i].getElementsByTagName('hotel_street')[0].childNodes[0].nodeValue;
		$('transfer').hotel_city.value = item[i].getElementsByTagName('hotel_region')[0].childNodes[0].nodeValue; //item[i].getElementsByTagName('hotel_zip')[0].childNodes[0].nodeValue + " " + 
	}

	if($('region').options[$('region').options.selectedIndex].value == 'alle') {
		for(i = 0; i < $('region').options.length; i++) {
				if($('region').options[i].text == regions[$('hotel').options.selectedIndex]){
					$('region').options.selectedIndex = i;
				}
		}
	}

	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);
}

function getAddress(id) {
	if(id != 0) {
		inwork = inwork + 1;
		loadingBar(true);
		var ajax = new Ajax.Request("/soap/gethoteladdresses", {method: 'post', parameters: 'id='+id, onComplete: fillAddress});
	}
}

function fillLuggageSelect(request){
	var item = request.responseXML.getElementsByTagName('special_luggage');
	var count = 0;
	for(var i = 0; i < item.length; i++) {
		count++;
		$('transfer').luggage.options[count] = new Option(item[i].getElementsByTagName('luggage_name')[0].childNodes[0].nodeValue, item[i].getElementsByTagName('luggage_id')[0].childNodes[0].nodeValue);
	}
	inwork = inwork - 1;
	if(inwork == 0)
		loadingBar(false);
}
/*
function getLuggage(){
	inwork = inwork + 1;
	loadingBar(true);
	var ajax = new Ajax.Request("/soap/getspecialluggage", {onComplete: fillLuggageSelect});
}

function getLuggageOnClick(){
	if(ajaxOnClickLuggage == null) {
		inwork = inwork + 1;
		loadingBar(true);
		ajaxOnClickLuggage = new Ajax.Request("/soap/getspecialluggage", {onComplete: fillLuggageSelect});
	}
}
*/
function submitTransfer(lang) {
	setHiddenFields();
	var transferType = false;
	var dateerror = false;

	$('error').innerHTML = "";

	if($('transfer').pickup.value && $('transfer').takethere.value && $('transfer').transferType.value == 3) {
		tdate = $('transfer').takethere.value.split('.');
		pdate = $('transfer').pickup.value.split('.');

		tdate = new Date(tdate[2], tdate[1]-1, tdate[0]);
		pdate = new Date(pdate[2], pdate[1]-1, pdate[0]);

		if(pdate.getTime() > (new Date().getTime()+(3*24*60*60*1000)) && tdate.getTime() > (new Date().getTime()+(3*24*60*60*1000)) && tdate <= pdate) {
			transferType = true;
			dateerror = false;
			$('cal_indicator').innerHTML = "";
		}else {
			dateerror = true;
		}
	}else if($('transfer').pickup.value && $('transfer').transferType.value == 2) {
		pdate = $('transfer').pickup.value.split('.');

		pdate = new Date(pdate[2], pdate[1]-1, pdate[0]);
		border = new Date().getTime()+(3*24*60*60*1000);

		if(pdate.getTime() > border) {
			transferType = true;
			dateerror = false;
			$('cal_indicator').innerHTML = "";
		}else {
			dateerror = true;
		}
	}else if($('transfer').takethere.value && $('transfer').transferType.value == 1) {
		tdate = $('transfer').takethere.value.split('.');

		tdate = new Date(tdate[2], tdate[1]-1, tdate[0]);
		border = new Date().getTime()+(3*24*60*60*1000);

		if(tdate.getTime() > border) {
			transferType = true;
			dateerror = false;
			$('cal_indicator').innerHTML = "";
		}else {
			dateerror = true;
		}
	}

	/*if(($('transfer').transferType.value == 1 && $('transfer').takethere.value != 0) || ($('transfer').transferType.value == 2 && $('transfer').pickup.value != 0)) {
			transferType = true;
			$('cal_indicator').innerHTML = "";
	}*/

	if(!transferType)
		$('cal_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";

	if($('transfer').country.value != 0)
		$('country_indicator').innerHTML = "";
	else
		$('country_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";

	if($('transfer').airport.value != 0)
		$('airport_indicator').innerHTML = "";
	else
		$('airport_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";

	if($('transfer').region.value != 0)
		$('region_indicator').innerHTML = "";
	else
		$('region_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";

	if($('transfer').hotel.value != 0) {
		//$('hotel_indicator1').innerHTML = "";
		$('hotel_indicator2').innerHTML = "";
	}else {
		//$('hotel_indicator1').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		$('hotel_indicator2').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('transfer').country.value != 0 && $('transfer').airport.value != 0 && $('transfer').region.value != 0 && $('transfer').hotel.value != 0 && $('transfer').adults.value != 0 && transferType) {
		$('transfer').submit();
	}else{
		if(lang == "de"){
			$('error').innerHTML = "Auswahl nicht vollständig, bitte überprüfen!";
		}
		if(lang == "en"){
			$('error').innerHTML = "Please fill out the complete form!";
		}
		if(dateerror) {
			err = new Date(new Date().getTime()+(4*24*60*60*1000));
			err = err.getDate() + '.' + (err.getMonth()+1) + '.' + err.getFullYear();
			if(lang == "de"){
				$('error').innerHTML = $('error').innerHTML + "<br/>Das früheste Abreisedatum ist der " + err + '!';
			}
			if(lang == "en"){
				$('error').innerHTML = $('error').innerHTML + "<br/>The earliest travel date is: " + err + '!';
			}
		}
		location.href = '#';
	}
}

function setHiddenFields() {
	$('country_name').value = $('country').options[$('country').selectedIndex].text;
	$('airport_name').value = $('airport').options[$('airport').selectedIndex].text;
	$('region_name').value = $('region').options[$('region').selectedIndex].text;
	$('hotel_name').value = $('hotel').options[$('hotel').selectedIndex].text;
	//$('luggage_name').value = $('luggage').options[$('luggage').selectedIndex].text;
}

function clearAdressFields() {
	//$('hotel_street').value = "";
	$('hotel_city').value = "";
}

function clearSelects(element) {
	if(element.name == 'country') {
		$('transfer').airport.options.length = 1;
		$('transfer').region.options.length = 1;
		$('transfer').hotel.options.length = 1;
	} else if(element.name == 'airport'){
		$('transfer').region.options.length = 1;
		$('transfer').hotel.options.length = 1;
	} else {
		$('transfer').hotel.options.length = 1;
	}
}

function fillHotelArray() {
	for(var i=1; i < $('transfer').hotel.options.length; i++) {
		hotels[i] = $('transfer').hotel.options[i].text;
	}

	new Autocompleter.Local("hotel_search", "result", hotels, {choices:99, fullSearch:true});

	$('popup').style.visibility = 'visible';
	$('tooltip').style.display = 'block';
	new Tip('popup', $('tooltip'), {className: 'none', fixed: true, showOn: 'click', hideOn: {element: '.close', event: 'click'}});

}

function selectHotel() {
	for(var i=0; i < $('transfer').hotel.options.length; i++) {
		if($('transfer').hotel.options[i].text == $('hotel_search').value) {
			$('transfer').hotel.options[i].selected = true;
			getAddress($('transfer').hotel.options[i].value);
		}
	}
}

function calculateSuitcases() {
	var len = parseInt($('adults').value) + parseInt($('children').value) + parseInt($('newborn').value);
	$('suitcases').value = len;
}

function calculateSpecialLuggage() {
	if(!session) {
			golf = parseInt($('transfer').golfBagCount.selectedIndex);
			diving = parseInt($('transfer').divingGearCount.selectedIndex);
			snow = parseInt($('transfer').skiGearCount.selectedIndex);
	}

	$('transfer').golfBagCount.length = null;
	$('transfer').divingGearCount.length = null;
	$('transfer').skiGearCount.length = null;
	var len = parseInt($('adults').value);

	if(len >= (diving+golf+snow)) {
		var golflen = len-(diving+snow);
		for(var i=0; i <= golflen; i++) {
			if(golf == i || golf == i)
				$('transfer').golfBagCount.options[i] = new Option(i+String.fromCharCode(160), i, false, true);
			else
				$('transfer').golfBagCount.options[i] = new Option(i+String.fromCharCode(160), i);
		}

		var divinglen = len-(golf+snow);
		for(var i=0; i <= divinglen; i++) {
			if(diving == i || diving == i)
				$('transfer').divingGearCount.options[i] = new Option(i+String.fromCharCode(160), i, false, true);
			else
				$('transfer').divingGearCount.options[i] = new Option(i+String.fromCharCode(160), i);
		}

		var snowlen = len-(diving+golf);
		for(var i=0; i <= snowlen; i++) {
			if(snow == i || snow == i)
				$('transfer').skiGearCount.options[i] = new Option(i+String.fromCharCode(160), i, false, true);
			else
				$('transfer').skiGearCount.options[i] = new Option(i+String.fromCharCode(160), i);
		}
	}else {
		golf = 0;
		diving = 0;
		snow = 0;

		for(var i=0; i <= len; i++)
			$('transfer').golfBagCount.options[i] = new Option(i+String.fromCharCode(160), i);

		for(var i=0; i <= len; i++)
			$('transfer').divingGearCount.options[i] = new Option(i+String.fromCharCode(160), i);

		for(var i=0; i <= len; i++)
			$('transfer').skiGearCount.options[i] = new Option(i+String.fromCharCode(160), i);
	}
}

function chooseTransferDateBox() {
	now = new Date();
	var startdate = new Date(now.getFullYear(), now.getMonth(), now.getDate()+4);
//	var enddate = new Date(now.getFullYear(), now.getMonth(), now.getDate()+11);

	if($('transferType').value == 1) {
		if(tcal == null) {
			tcal = new dhtmlxCalendarObject('takecal', false, {isYearEditable: true, isMonthEditable: true});
			tcal.setDateFormat("%d.%m.%Y");
			if(session == true && takethere){
				tcal.setDate(takethere);
			}else{
				tcal.setDate(startdate);
				$('takethere').value = tcal.getFormatedDate("%d.%m.%Y", startdate);
			}
			tcal.setSensitive(startdate, null);
			tcal.attachEvent('onClick', function(date){ $('takethere').value = tcal.getFormatedDate("%d.%m.%Y", date); });
			tcal.draw();
		}else {
			tcal.show();
		}

		if(pcal != null)
			pcal.hide();

		if(mDCal != null) {
			mDCal.leftCalendar.hide();
			mDCal.rightCalendar.hide();
		}

	}else if($('transferType').value == 2) {
		if(pcal == null) {
			pcal = new dhtmlxCalendarObject('pickcal', false, {isYearEditable: true, isMonthEditable: true});
			pcal.setDateFormat("%d.%m.%Y");
			if(session == true && pickup){
				pcal.setDate(pickup);
			}else{
				pcal.setDate(startdate);
				$('pickup').value = pcal.getFormatedDate("%d.%m.%Y", startdate);
			}
			pcal.setSensitive(startdate, null);
			pcal.attachEvent('onClick', function(date){ $('pickup').value = pcal.getFormatedDate("%d.%m.%Y", date); });
			pcal.draw();
		}else {
			pcal.show();
		}

		if(tcal != null)
			tcal.hide();

		if(mDCal != null) {
			mDCal.leftCalendar.hide();
			mDCal.rightCalendar.hide();
		}

	}else if($('transferType').value == 3) {
		if(mDCal == null) {
			mDCal = new dhtmlxDblCalendarObject('dblcal', false, {isYearEditable: true, isMonthEditable: true});
			mDCal.setDateFormat("%d.%m.%Y");
			if(session == true && takethere != '' && pickup != ''){
				mDCal.setDate(takethere, pickup);
			}else {
				mDCal.leftCalendar.setDate(startdate);
				mDCal.rightCalendar.setDate(startdate);
				$('takethere').value = mDCal.leftCalendar.getFormatedDate("%d.%m.%Y", startdate);
				$('pickup').value = mDCal.rightCalendar.getFormatedDate("%d.%m.%Y", startdate);
			}
			mDCal.leftCalendar.attachEvent('onClick', function(date){ $('takethere').value = mDCal.leftCalendar.getFormatedDate("%d.%m.%Y", date); });
			mDCal.rightCalendar.attachEvent('onClick', function(date){ $('pickup').value = mDCal.rightCalendar.getFormatedDate("%d.%m.%Y", date); });
			mDCal.draw();
		}else {
			mDCal.leftCalendar.show();
			mDCal.rightCalendar.show();
		}

		if(tcal != null)
			tcal.hide();

		if(pcal != null)
			pcal.hide();
	}
}

// *** Prices ***
function getAvailableTransfers() {
	//inwork = inwork + 1;
	//loadingBar(true);
	var ajax = new Ajax.Request("/soap/getavailableouttransfers"/*, {onComplete: function(changeLoadStatus) {
																										inwork = inwork - 1;
																										if(inwork == 0)
																											loadingBar(false);
																									}}*/);
	
	var ajax = new Ajax.Request("/soap/getavailableintransfers"/*, {onComplete: function(changeLoadStatus) {
																										inwork = inwork - 1;
																										if(inwork == 0)
																											loadingBar(false);
																									}}*/);
}

function calculateTotalPrice() {

	if(type == 3 && $('transferSelect').inTransfer && $('transferSelect').outTransfer) {
		var inPrice = [''];
		var outPrice = [''];

		if(!$('transferSelect').inTransfer.length && !$('transferSelect').outTransfer.length) {
			inPrice = ($('transferSelect').inTransfer.value).split(",");
			outPrice = ($('transferSelect').outTransfer.value).split(",");
			$('transferSelect').inTransfer.checked = true;
			$('transferSelect').outTransfer.checked = true;
		}else if(!$('transferSelect').inTransfer.length){
			for(foo = 0; foo < $('transferSelect').outTransfer.length; foo++) {
				if($('transferSelect').outTransfer[foo].checked)
					outPrice = ($('transferSelect').outTransfer[foo].value).split(",");
			}
			inPrice = ($('transferSelect').inTransfer.value).split(",");
			$('transferSelect').inTransfer.checked = true;
		}else if(!$('transferSelect').outTransfer.length){
			for(foo = 0; foo < $('transferSelect').inTransfer.length; foo++) {
				if($('transferSelect').inTransfer[foo].checked)
					inPrice = ($('transferSelect').inTransfer[foo].value).split(",");
			}
			outPrice = ($('transferSelect').outTransfer.value).split(",");
			$('transferSelect').outTransfer.checked = true;
		}else{
			for(foo = 0; foo < $('transferSelect').inTransfer.length; foo++) {
				if($('transferSelect').inTransfer[foo].checked)
					inPrice = ($('transferSelect').inTransfer[foo].value).split(",");
			}
			for(foo = 0; foo < $('transferSelect').outTransfer.length; foo++) {
				if($('transferSelect').outTransfer[foo].checked)
					outPrice = ($('transferSelect').outTransfer[foo].value).split(",");
			}
		}

		if(inPrice[0] != '' && outPrice[0] != '') {
			erg = (parseFloat(inPrice[1]) + parseFloat(outPrice[1]));
			$('totalPrice').innerHTML = erg.toFixed(2) + " &euro;";
		}
	}

}

function submitPrices(lang) {
	var confirmOut = false;
	var confirmIn = false;

	if($('transferSelect').outTransfer){
		if($('transferSelect').outTransfer.length) {
			for(var i=0; i < $('transferSelect').outTransfer.length; i++) {
				if($('transferSelect').outTransfer[i].checked == true)
					confirmOut = true;
			}
		}else if($('transferSelect').outTransfer.checked){
			confirmOut = true;
		}
	}

	if($('transferSelect').inTransfer){
		if($('transferSelect').inTransfer.length) {
			for(var i=0; i < $('transferSelect').inTransfer.length; i++) {
				if($('transferSelect').inTransfer[i].checked == true)
					confirmIn = true;
			}
		}else if($('transferSelect').inTransfer.checked){
			confirmIn = true;
		}
	}
        
	if(type == 1 && confirmIn || type == 1 && $('transferSelect').inTransfer.checked)
		$('transferSelect').submit();
	else if(type == 2 && confirmOut || type == 2 && $('transferSelect').outTransfer.checked)
		$('transferSelect').submit();
	else if(type == 3 && confirmOut && confirmIn || type == 3 && $('transferSelect').outTransfer.checked && $('transferSelect').inTransfer.checked)
		$('transferSelect').submit();
	else {
		if(lang == "de"){
			$('error').innerHTML = "Bitte wählen Sie Ihren Hin- und Rücktransfer aus!";
		}
		if(lang == "en"){
			$('error').innerHTML = "Please select your transfer/s!";
		}
		location.href = '#';
	}
}

// *** Booking ***
function focusNext() {
	pressed = pressed+1;
	if($('cardnumber1').value.length == 4 && pressed >= 4 && focused.id == 'cardnumber1') {
		$("cardnumber2").focus();
		pressed = 0;
	}else if($('cardnumber2').value.length == 4 && pressed >= 4 && focused.id == 'cardnumber2') {
		$('cardnumber3').focus();
		pressed = 0;
	}else if($('cardnumber3').value.length == 4 && pressed >= 4 && focused.id == 'cardnumber3') {
		$('cardnumber4').focus();
		pressed = 0;
	}
}

function submitBooking(lang) {
	var email;
	var takethere_flightnumber;
	var pickup_flightnumber;
	var name;
	var surname;
	var address;
	var city;
	var plz;
	var email;
	var tel;
	var creditcard;
	var cardowner;
	var cardnumber;
	var validto;
	var checksum;
	var takethere_time;
	var pickup_time;
	var paytype;
	var accountholder_firstname;
	var accountholder_lastname;
	var bankname;
	var accountnumber;
	var bankcode;
	var test;
	
	if($('booking').email.value.indexOf('@') > -1 && $('booking').email.value.indexOf('.') > -1 && $('booking').email.value === $('booking').email2.value) {
		email = true;
		$('email_indicator').innerHTML = "";
		$('email_indicator2').innerHTML = "";
	}else {
		$('email_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		$('email_indicator2').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').takethere_flightnumber) {
		if($('booking').takethere_flightnumber.value != "" || type == 2) {
			takethere_flightnumber = true;
			$('takethere_flightnumber_indicator').innerHTML = "";
		}else {
			$('takethere_flightnumber_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}else {
		takethere_flightnumber = true;
	}

	if($('booking').pickup_flightnumber) {
		if($('booking').pickup_flightnumber.value != "" || type == 1) {
			pickup_flightnumber = true;
			$('pickup_flightnumber_indicator').innerHTML = "";
		}else {
			$('pickup_flightnumber_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}else {
		pickup_flightnumber = true;
	}

	if($('booking').takethere_arrival_time) {
		var temp = $('booking').takethere_arrival_time.value;
		if(temp != "") {
			takethere_time = timeCheck(temp);
		}
	
		if(takethere_time) {
			$('takethere_arrival_indicator').innerHTML = "";
		}else {
			$('takethere_arrival_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}else {
		takethere_time = true;
	}

	if($('booking').pickup_arrival_time) {
		var temp = $('booking').pickup_arrival_time.value;
		if(temp != "") {
			pickup_time = timeCheck(temp);
		}
		
		if(pickup_time) {
			$('pickup_arrival_indicator').innerHTML = "";
		}else {
			$('pickup_arrival_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}else {
		pickup_time = true;
	}

	if($('booking').name.value != "") {
		name = true;
		$('name_indicator').innerHTML = "";
	}else {
		$('name_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').surname.value != "") {
		surname = true;
		$('surname_indicator').innerHTML = "";
	}else {
		$('surname_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').address.value != "") {
		address = true;
		$('address_indicator').innerHTML = "";
	}else {
		$('address_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').city.value != "") {
		city = true;
		$('city_indicator').innerHTML = "";
	}else {
		$('city_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').plz.value != "") {
		plz = true;
		$('city_indicator').innerHTML = "";
	}else {
		$('city_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').tel.value != "") {
		tel = true;
		$('tel_indicator').innerHTML = "";
	}else {
		$('tel_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
	}

	if($('booking').paytype.value == "0"){
		if($('booking').creditcard.value != "0") {
			creditcard = true;
			$('creditcard_indicator').innerHTML = "";
		}else {
			$('creditcard_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').cardowner.value != "") {
			cardowner = true;
			$('cardowner_indicator').innerHTML = "";
		}else {
			$('cardowner_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').cardnumber1.value.length == 4 && $('booking').cardnumber2.value.length == 4 && $('booking').cardnumber3.value.length == 4 && $('booking').cardnumber4.value.length == 4) {
			cardnumber = true;
			$('booking').cardnumber.value = $('booking').cardnumber1.value + $('booking').cardnumber2.value + $('booking').cardnumber3.value + $('booking').cardnumber4.value;
			$('cardnumber_indicator').innerHTML = "";
		}else {
			$('cardnumber_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').checksum.value != "" && $('booking').checksum.value.length >= 3 && $('booking').checksum.value.length <= 4 && !isNaN($('booking').checksum.value)) {
			checksum = true;
			$('checksum_indicator').innerHTML = "";
		}else {
			$('checksum_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}
	if($('booking').paytype.value == "1"){
		if($('booking').accountholder_firstname.value != "") {
			accountholder_firstname = true;
			$('accountholder_firstname_indicator').innerHTML = "";
		}else {
			$('accountholder_firstname_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').accountholder_lastname.value != "") {
			accountholder_lastname = true;
			$('accountholder_lastname_indicator').innerHTML = "";
		}else {
			$('accountholder_lastname_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').bankname.value != "") {
			bankname = true;
			$('bankname_indicator').innerHTML = "";
		}else {
			$('bankname_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').accountnumber.value != "") {
			accountnumber = true;
			$('accountnumber_indicator').innerHTML = "";
		}else {
			$('accountnumber_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}

		if($('booking').bankcode.value != "" && $('booking').bankcode.value.length == 8) {
			bankcode = true;
			$('bankcode_indicator').innerHTML = "";
		}else {
			$('bankcode_indicator').innerHTML = "<img src='/img/critical.gif' class='align-middle' />";
		}
	}

	if(takethere_flightnumber && pickup_flightnumber && takethere_time && pickup_time && name && surname && address && city && plz && email && tel && ((creditcard && cardowner && cardnumber && checksum) || (accountholder_firstname && accountholder_lastname && bankname && accountnumber && bankcode))) {
		$('booking').submit();
	}else {
		if(lang == "de"){
			$('error').innerHTML = "Bitte überprüfen Sie die Vollständigkeit und Richtigkeit Ihrer Angaben!";
		}
		if(lang == "en"){
			$('error').innerHTML = "Please check if your data is filled out completely!";
		}
		location.href = '#';
	}
}

// *** Confirm ***
function submitConfirm(ref,lang) {
	if($('confirm_agb').checked == true && $('confirm_dat').checked == true){
		doPayment(ref);
	}else{
		if(lang == "de" || lang == ""){
			$('error').innerHTML = "Unsere AGBs und die Datenschutzerklärung müssen akzeptiert werden!";
		}
		if(lang == "en"){
			$('error').innerHTML = "You have to accept our Terms and Conditions and our Declaration of privacy protection!";
		}
		location.href = '#';
	}
}

// *** Loading Bar ***
function loadingBar(visible) {
	if(visible) {
		new Effect.Appear($('lightbox'), { duration: 0.0, from: 0.0, to: 1 });
	}else {
		new Effect.Fade($('lightbox'), { duration: 0.0, from: 1, to: 0.0 });
	}
}

/*
function fireOwnEvent(eventType, elementID) {
		elementID = "" + elementID;
		var o = $(elementID);
		if (document.createEvent) {
			var evt = document.createEvent("MouseEvent");
			evt.initMouseEvent(eventType, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
			o.dispatchEvent(evt);
		}else if(document.createEventObject) {
			var evt = document.createEventObject();
			o.fireEvent('on' + eventType, evt);
		}
}
*/
function timeCheck(z){ 
	r = new RegExp('[0-9][0-9]:[0-9][0-9]'); 
	if(z.length == 5 && r.test(z)) { 
		h=Number(z.substr(0,2)); 
		m=Number(z.substr(3,5)); 
		if(h<24 && m<60)
			return true 
	}
	return false; 
}

function getPageSize() {
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	}else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	}else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) { // all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		}else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	}else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	}else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;
	}else {
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}

function switchCC(){
	$('credit_charge').show();
	$('debit_charge').hide();
	$$('.dc_fields').invoke("disable");
	$$('.cc_fields').invoke("enable");
	$('booking').paytype.value = 0;
}

function switchDC(){
	$('debit_charge').show();
	$('credit_charge').hide();
	$$('.cc_fields').invoke("disable");
	$$('.dc_fields').invoke("enable");
	$('booking').paytype.value = 1;
}

function selectAd(country) {
	new Ajax.Updater('rechts', '/page/getadcontent', 
		{method: 'post', parameters: 'country='+country, onComplete: function(request){
				$('rechts').innerHTML = request.responseXML.getElementsByTagName('content')[0].childNodes[0].nodeValue;}});
}

function selectLuggage(id) {
	var ajax = new Ajax.Request("/soap/getspecialluggagefromairport", {method: 'post', parameters: 'id='+id, onComplete: function(request){
		var item = request.responseXML.getElementsByTagName('luggage_data');
		var count = 0;
		var text = "";
		$$('.luggage_area').invoke("hide");
		$$('.luggage_select').invoke("disable");
		for(var i = 0; i < item.length; i++) {
			$('luggage_'+item[i].getElementsByTagName("luggage_id")[0].childNodes[0].nodeValue).show();
			$('luggage_select_'+item[i].getElementsByTagName("luggage_id")[0].childNodes[0].nodeValue).enable();
		}
		if(item.length > 0){
			$('sl_head').show();
		}
	}});
}

function selectExtras(id) {
	var ajax = new Ajax.Request("/soap/getextrasfromairport", {method: 'post', parameters: 'id='+id, onComplete: function(request){
		var item = request.responseXML.getElementsByTagName('extra_data');
		var count = 0;
		var text = "";
		$$('.extras_area').invoke("hide");
		$$('.extras_select').invoke("disable");
		for(var i = 0; i < item.length; i++) {
			$('extras_'+item[i].getElementsByTagName("extra_id")[0].childNodes[0].nodeValue).show();
			$('extras_select_'+item[i].getElementsByTagName("extra_id")[0].childNodes[0].nodeValue).enable();
		}
		if(item.length > 0){
			$('ex_head').show();
		}else{
			$('ex_head').hide();
		}
	}});
}
