var initCallbacks = new Array();
var verbose;
var firstLoad = 0;
var updateDropOpenTime = 1;
var dropoffTomorrowDay = 0;
var formChanged = 0;

$(document).ready(function() {
	// IE Fix for select dropdowns
	$(".ui-dialog").hover(function() {
		$("select").css({ visibility: "hidden" });
	}, function() {
    	$("select").css({ visibility: "visible" });
	});


	for(var i = 0; i < initCallbacks.length; i++) {
		initCallbacks[i]();
	}
});

function isIE(version) {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number

		if (ieversion == version) {
			return true;
		}
	}
	return false;
}

function sessionExpireCheck() {
	$.getJSON('/sessioncheck.php', function(data) {
		if (data == 1) {
			alert('Session has expired!');
		} else {
			setTimeout('sessionExpireCheck()', 10000);
		}
	});
}

function addInitCallback(callback) {
	initCallbacks.push(callback);
}

function loader(close) {
	if (close == 1) {
		$('#loader_cover').fadeOut(500);
		$('#loader_content').fadeOut(500);
	} else {
		$('#loader_content').css('top', ($(window).scrollTop() +300) + 'px');
		$('#loader_cover').fadeIn(500);
		$('#loader_content').fadeIn(500);
	}
}

function initSearchBox() {
	$('#pickup_country').change( changePickupCountry );
	$('#pickup_city').change( changePickupCity );
	$('#pickup_location').change( changePickupLocation );
	$('#dropoff_country').change( changeDropoffCountry );
	$('#dropoff_city').change( changeDropoffCity );
	$('#dropoff_location').change( changeDropoffLocation );
	$('#pickup_year').change( changePickupYear );
	$('#pickup_month').change( changePickupMonth );
	$('#pickup_day').change( changePickupDay );
	$('#pickup_hour').change( changePickupHour );
	$('#pickup_minute').change( changePickupMinute );
	$('#dropoff_year').change( changeDropoffYear );
	$('#dropoff_month').change( changeDropoffMonth );
	$('#dropoff_day').change( changeDropoffDay );
	$('#dropoff_hour').change( changeDropoffHour );
	$('#dropoff_minute').change( changeDropoffMinute );

	initSearchBoxSelectValues();
}

function initSearchBoxSelectValues () {
	// Select User values for dropdown menus on page load
	setOptionSelected(document.getElementById('pickup_country').options, pickupCountry);
	setOptionSelected(document.getElementById('pickup_city').options, pickupCity);
	setOptionSelected(document.getElementById('pickup_location').options, pickupLocation);
	setOptionSelected(document.getElementById('dropoff_country').options, dropoffCountry);
	setOptionSelected(document.getElementById('dropoff_city').options, dropoffCity);
	setOptionSelected(document.getElementById('dropoff_location').options, dropoffLocation);
	setOptionSelected(document.getElementById('pickup_year').options, pickupYear);

	setOptionSelectedArray(document.getElementById('pickup_hour').options, Array(pickupHour, 12));
	setOptionSelectedArray(document.getElementById('dropoff_hour').options, Array(dropoffHour, 12));

	if (document.getElementById('f-calendar-field-pickup_date_calendar')) {
		document.getElementById('f-calendar-field-pickup_date_calendar').value = pickupYear + '-' + pickupMonth + '-' + pickupDay;
		document.getElementById('f-calendar-field-dropoff_date_calendar').value = dropoffYear + '-' + dropoffMonth + '-' + dropoffDay;
	}
		
	firstLoad = 1;
	changePickupYear();
	firstLoad = 0;
	changePickupHour();
	changeDropoffHour();
}


function initInsertDate() {
	$('#birth_year').change ( updateDayDropoff );
	$('#birth_month').change ( updateDayDropoff );
}


function updateDayDropoff() {
	var options = document.getElementById('birth_day').options;

	var birthDay = parseInt($('#birth_day').val());
	var birthYear = parseInt($('#birth_year').val());
	var birthMonth = parseInt($('#birth_month').val());

	options.length = 0;
	if (birthYear == 0 || birthMonth == 0) {
	} else {
		var firstDay = 1;
		var lastDay = monthLength(birthMonth, birthYear);

		for (var i = firstDay; i <= lastDay; i++) {
			options.add(new Option(i + '.', i));
		}
	}

	setOptionSelected (options, birthDay);
}


// month in [1,12]
// year any integer
// return number of days in the month
function monthLength(month, year) {
	if (month < 1 || month > 12) {
		consolelog("Invalid monthLenght parameter month: " + month);
		return 0;
	}
	var lastDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[month-1];
	if (month == 2 && year % 4 == 0) lastDay++; // Y2100 bug

	return lastDay;
}


/* Usage:
		var prevValue = $('#xxx').val();
		var options = document.getElementById('xxx').options;
		...
		update list of options
		...
 		setOptionSelected (options, prevValue, defaultValue);
// Try to select previously selected option value
*/
function setOptionSelected (options, selected_value) {
	//consolelog("searching for " + selected_value);
	//if (isNaN(selected_value)) return;
	for (var i = 0; i < options.length; i++) {
		if (verbose) consolelog("opt " + options[i].value + ' ' + selected_value);
		if (options[i].value == selected_value) {
			options[i].selected = true;
			return;
		}
	}
}

// Select first possible nonzero value in the array
function setOptionSelectedArray (options, selected_value_array) {
	//consolelog("searching for " + selected_value);
	//verbose = 1;
	for (var j = 0; j < selected_value_array.length; j++) {
		var selected_value = selected_value_array[j];
		if (verbose) consolelog("try option " + selected_value);
		//if (isNaN(selected_value)) continue;
		//if (selected_value == 0) continue;
		for (var i = 0; i < options.length; i++) {
			if (verbose) consolelog("opt " + options[i].value + ' ' + selected_value);
			if (options[i].value == selected_value) {
				options[i].selected = true;
				return;
			}
		}
	}
	//verbose = 0;
}


function toInteger (id) {
	//var y = parseInt(document.getElementById(id).value, 10);
	//document.getElementById(id).value = (isNaN(y) || y<=0 ? "" : y);
	var y = parseInt(id.value, 10);
	id.value = (isNaN(y) || y<=0 ? "" : y);
}


/*
 * Update Pickup Place
 */

function updatePickupCountryDropdown() {
	var options = document.getElementById('pickup_country').options;

	setOptionSelected(options, pickupCountry);
	changePickupCountry();
}

function changePickupCountry() {
	pickupCountry = parseInt($('#pickup_country').val());
	updatePickupCityDropdown();
}

function updatePickupCityDropdown() {
	var options = document.getElementById('pickup_city').options;

	if(pickupCountry == 0) {
		options.length = 1;
		changePickupCity();
		return;
	}
	$.getJSON('/' + LANG + '/process/cityrq/' + pickupCountry, function(data) {
		options.length = 1;
		for(var i = 0; i < data.length; i++) {
			options.add(new Option(data[i]['name'], data[i]['id']));
		}
		setOptionSelected(options, pickupCity);
		changePickupCity();
	});
}

function changePickupCity () {
	pickupCity = parseInt($('#pickup_city').val());
	updatePickupLocationDropdown();
}

function updatePickupLocationDropdown() {
	var options = document.getElementById('pickup_location').options;
	if(pickupCity == 0) {
		options.length = 1;
		changePickupLocation();
		return;
	}
	$.getJSON('/' + LANG + '/process/locationrq/' + pickupCity, function(data) {
		options.length = 1;
		for(var i = 0; i < data.length; i++) {
			options.add(new Option(data[i]['name'], data[i]['id']));
		}
		setOptionSelected(options, pickupLocation);
		changePickupLocation();
	});
}

function changePickupLocation () {
	pickupLocation = parseInt($('#pickup_location').val());

	updatePickupHourDropdown();
	updateDropoffCountryDropdown();
};

/*
 * Update Dropoff Place
 */


function updateDropoffCountryDropdown() {
	var options = document.getElementById('dropoff_country').options;

	options.length = 1;
	if (pickupLocation == 0) {
		changeDropoffCountry();
		return;
	}
	$.getJSON('/' + LANG + '/process/dropcountryrq/' + pickupLocation, function(data) {
		for(var i = 0; i < data.length; i++) {
			options.add(new Option(data[i]['name'], data[i]['id']));
		}
		setOptionSelectedArray(options, new Array(dropoffCountry == 0 ? -1 : dropoffCountry, pickupCountry));
		changeDropoffCountry();
	});
}

function changeDropoffCountry () {
	dropoffCountry = parseInt($('#dropoff_country').val());
	updateDropoffCityDropdown();
}

function updateDropoffCityDropdown() {
	var options = document.getElementById('dropoff_city').options;

	options.length = 1;
	if (pickupLocation == 0 || dropoffCountry == 0) {
		changeDropoffCity();
		return;
	}
	$.getJSON('/' + LANG + '/process/dropcityrq/' + pickupLocation + '/' + dropoffCountry, function(data) {
		for(var i = 0; i < data.length; i++) {
			options.add(new Option(data[i]['name'], data[i]['id']));
		}
		setOptionSelectedArray(options, new Array(dropoffCity == 0 ? -1 : dropoffCity, pickupCity));
		changeDropoffCity();
	});
}

function changeDropoffCity() {
	dropoffCity = parseInt($('#dropoff_city').val());
	updateDropoffLocationDropdown();
}

function updateDropoffLocationDropdown() {
	var options = document.getElementById('dropoff_location').options;

	options.length = 1;
	if (pickupLocation == 0 || dropoffCity == 0) {
		changeDropoffLocation();
		return;
	}
	$.getJSON('/' + LANG + '/process/droplocationrq/' + pickupLocation + '/' + dropoffCity, function(data) {
		for(var i = 0; i < data.length; i++) {
			options.add(new Option(data[i]['name'], data[i]['id']));
		}
		setOptionSelectedArray(options, new Array(dropoffLocation == 0 ? -1 : dropoffCity, pickupLocation));
		changeDropoffLocation();
	});
}

function changeDropoffLocation() {
	dropoffLocation = parseInt($('#dropoff_location').val());
	updateDropOpenTime = 1;
	updateDropoffHourDropdown();
}

/*
 * Update Pickup Time
 */

function changePickupDate () {
	var pickupDate = document.getElementById('f-calendar-field-pickup_date_calendar').value;
	var ymd = pickupDate.split('-');

	pickupYear = parseInt(ymd[0], 10);
	pickupMonth = parseInt(ymd[1], 10);
	pickupDay = parseInt(ymd[2], 10);

	//consolelog("got: " + ymd[0] + '-' + ymd[1] + '-' + ymd[2]);
	//verbose = 1;
	updatePickupYearDropdown();
	//verbose = 0;
}

function updatePickupYearDropdown() {
	var options = document.getElementById('pickup_year').options;

	setOptionSelected(options, pickupYear);
	changePickupYear();
}

function changePickupYear() {
	pickupYear = parseInt($('#pickup_year').val());
	updatePickupMonthDropdown();
}

function updatePickupMonthDropdown() {
	var options = document.getElementById('pickup_month').options;

	options.length = 0;

	if (pickupYear == 0) {
	} else {
		var firstMonth = 0;
		if (currentYear == pickupYear) {
			firstMonth = currentMonth - 1;
		}

		for (var i = firstMonth; i < monthNames.length; i++) {
			options.add(new Option(monthNames[i], i + 1));
		}
	}

	setOptionSelected(options, pickupMonth);
	changePickupMonth();
}

function changePickupMonth() {
	pickupMonth = parseInt($('#pickup_month').val());
	updatePickupDayDropdown();
}

function updatePickupDayDropdown() {
	var options = document.getElementById('pickup_day').options;

	options.length = 0;
	if (pickupYear == 0 || pickupMonth == 0) {
	} else {
		var firstDay = 1;
		if (currentYear == pickupYear && currentMonth == pickupMonth) {
			firstDay = currentDay;
		}

		var lastDay = monthLength(pickupMonth, pickupYear);

		for (var i = firstDay; i <= lastDay; i++) {
			options.add(new Option(i, i));
		}
	}

	setOptionSelected (options, pickupDay);
	changePickupDay();
}
var nextSelectOtherDay = 0;
var nextSelectOtherMonth = 0;
function changePickupDay() {
	pickupDay = parseInt($('#pickup_day').val());
	if (document.getElementById('f-calendar-field-pickup_date_calendar')) {
		document.getElementById('f-calendar-field-pickup_date_calendar').value = pickupYear + '-' + pickupMonth + '-' + pickupDay;
	}

	pickupTomorrowDay = pickupDay + tomorrowDays;
	pickupTomorrowMonth = pickupMonth;
	pickupTomorrowYear = pickupYear;
	dropoffTomorrowDay = pickupDay + dropoffTomorrowDays - pickupTomorrowDay;

	var monthLen = monthLength(pickupTomorrowMonth, pickupTomorrowYear);

	if (dropoffTomorrowDay + pickupDay + 1 > monthLen) {
		nextSelectOtherDay = pickupDay - monthLen + dropoffTomorrowDays;
		nextSelectOtherMonth = 1;
		dropoffTomorrowDay = monthLen-pickupDay-1;
	}

	if (pickupTomorrowDay > monthLen) {
		pickupTomorrowDay -= monthLen;
		pickupTomorrowMonth++;
	}
	if (pickupTomorrowMonth > 12) {
		pickupTomorrowMonth -= 12;
		pickupTomorrowYear++;
	}
	if (pickupTomorrowYear > dropoffYear
		|| pickupTomorrowYear == dropoffYear && pickupTomorrowMonth > dropoffMonth
		|| pickupTomorrowYear == dropoffYear && pickupTomorrowMonth > dropoffMonth && pickupTomorrowDay > dropoffDay) {
		dropoffYear = pickupTomorrowYear;
		dropoffMonth = pickupTomorrowMonth;
		dropoffDay = pickupTomorrowDay;
	}
	if (!firstLoad) {
		updatePickupHourDropdown();
	}
	updateDropoffYearDropdown();
}

function updatePickupHourDropdown() {
	var options = document.getElementById('pickup_hour').options;

	if (pickupLocation == 0 || pickupYear == 0
		|| pickupMonth == 0 || pickupDay == 0) {
		options.length = 0;
		for (var i = 0; i < 24; i++) {
			options.add(new Option(i, i));
		}
		setOptionSelectedArray (options, new Array(pickupHour, 12));
		changePickupHour();
	} else {
		var pickupDate = pickupYear + '-' + pickupMonth + '-' + pickupDay;
		$.getJSON('/' + LANG + '/process/locationopentimerq/' + pickupLocation + '/' + pickupDate, function(data) {
			options.length = 0;
			for(var i = 0; i < data.length; i++) {
				options.add(new Option(data[i], data[i]));
			}
			// Copy-paste from if-clause, Asynchrouneus getJSON!!
			setOptionSelectedArray (options, new Array(pickupHour, 12));
			changePickupHour();
		});
	}
}

function changePickupHour() {
	pickupHour = parseInt($('#pickup_hour').val());
	updatePickupMinuteDropdown();
}

function updatePickupMinuteDropdown() {
	var options = document.getElementById('pickup_minute').options;

	options.length = 0;
	if (isNaN(pickupHour)) {
	} else {
		for (var i = 0; i < minuteList.length; i++) {
			options.add(new Option(minuteList[i], minuteList[i]));
		}
	}

	setOptionSelected(options, pickupMinute);
	changePickupMinute();
}

function changePickupMinute() {
	pickupMinute = parseInt($('#pickup_minute').val());
}


/*
 * Update Dropoff Time
 */

function changeDropoffDate () {
	var dropoffDate = document.getElementById('f-calendar-field-dropoff_date_calendar').value;
	var ymd = dropoffDate.split('-');

	dropoffYear = parseInt(ymd[0], 10);
	dropoffMonth = parseInt(ymd[1], 10);
	dropoffDay = parseInt(ymd[2], 10);

	consolelog("drop got: " + ymd[0] + '-' + ymd[1] + '-' + ymd[2]);

	updateDropoffYearDropdown();
}

function updateDropoffYearDropdown() {
	var options = document.getElementById('dropoff_year').options;

	options.length = 0;
	if (pickupYear == 0 || pickupMonth == 0 || pickupDay == 0) {
		updateDropoffMonthDropdown();
		return;
	}

	for (var i = 0; i < yearList.length; i++) {
		if (pickupTomorrowYear > yearList[i]) continue;
		options.add(new Option(yearList[i], yearList[i]));
	}

	setOptionSelected(options, dropoffYear);
	changeDropoffYear();
}

function changeDropoffYear() {
	if (dropoffYear != parseInt($('#dropoff_year').val())) updateDropOpenTime = 1;
	dropoffYear = parseInt($('#dropoff_year').val());
	updateDropoffMonthDropdown();
}

function updateDropoffMonthDropdown() {
	var options = document.getElementById('dropoff_month').options;

	options.length = 0;
	if (isNaN(dropoffYear) || pickupYear == 0
		|| pickupMonth == 0 || pickupDay == 0) {
	} else {
		var firstMonth = 0;
		if (pickupTomorrowYear == dropoffYear) {
			firstMonth = pickupTomorrowMonth - 1;
		}

		for (var i = firstMonth; i < monthNames.length; i++) {
			options.add(new Option(monthNames[i], i + 1));
		}
	}

	setOptionSelected(options, dropoffMonth);
	changeDropoffMonth();
}

function changeDropoffMonth() {
	if (dropoffMonth != parseInt($('#dropoff_month').val())) updateDropOpenTime = 1;
	dropoffMonth = parseInt($('#dropoff_month').val());
	if (nextSelectOtherMonth == 1 && nextSelectOtherDay < dropoffTomorrowDays) {
		document.getElementById('dropoff_month').selectedIndex = 1;
	}
	updateDropoffDayDropdown();
}

function updateDropoffDayDropdown() {
	var options = document.getElementById('dropoff_day').options;

	options.length = 0;
	if (pickupYear == 0 || pickupMonth == 0
		|| pickupDay == 0 || dropoffYear == 0
		|| dropoffMonth == 0) {
	} else {
		var firstDay = 1;
		if (dropoffYear == pickupTomorrowYear && dropoffMonth == pickupTomorrowMonth && nextSelectOtherMonth != 1) {
			firstDay = pickupTomorrowDay;
		}

		var lastDay = monthLength(dropoffMonth, dropoffYear);

		for (var i = firstDay; i <= lastDay; i++) {
			options.add(new Option(i, i));
		}
	}
	setOptionSelected (options, dropoffDay);
	/*if (formChanged == 1) {
		document.getElementById('dropoff_day').selectedIndex = dropoffTomorrowDay;
		if (nextSelectOtherMonth == 1) {
			document.getElementById('dropoff_day').selectedIndex = nextSelectOtherDay-1;
			nextSelectOtherMonth = 0;
		}
	}*/
	changeDropoffDay();
}

function changeDropoffDay() {
	if (dropoffDay != parseInt($('#dropoff_day').val())) updateDropOpenTime = 1;
	dropoffDay = parseInt($('#dropoff_day').val());
	if (document.getElementById('f-calendar-field-pickup_date_calendar')) {
		document.getElementById('f-calendar-field-dropoff_date_calendar').value = dropoffYear + '-' + dropoffMonth + '-' + dropoffDay;
	}
	if (!firstLoad) {
		updateDropoffHourDropdown();
	}
}

function updateDropoffHourDropdown() {
	var options = document.getElementById('dropoff_hour').options;

	if (dropoffLocation == 0 || pickupYear == 0 || pickupMonth == 0 || pickupDay == 0
		|| dropoffYear == 0 || dropoffMonth == 0 || dropoffDay == 0) {
		options.length = 0;
		for (var i = 0; i < 24; i++) {
			options.add(new Option(i, i));
		}
		setOptionSelectedArray (options, new Array(dropoffHour, 12));
		changeDropoffHour();
	} else {
		if (updateDropOpenTime == 0) {
			setOptionSelectedArray (options, new Array(dropoffHour, 12));
			changeDropoffHour();
			return;
		}
		updateDropOpenTime = 0;
		var dropoffDate = dropoffYear + '-' + dropoffMonth + '-' + dropoffDay;
		$.getJSON('/' + LANG + '/process/locationdroptimerq/' + pickupLocation + '/' + dropoffDate, function(data) {
			options.length = 0;
			for(var i = 0; i < data.length; i++) {
				options.add(new Option(data[i], data[i]));
			}
			// Copy-paste from if-clause, Asynchrouneus getJSON!!
			setOptionSelectedArray (options, new Array(dropoffHour, 12));
			changeDropoffHour();
		});
	}

}

function changeDropoffHour() {
	dropoffHour = parseInt($('#dropoff_hour').val());
	updateDropoffMinuteDropdown();
}

function updateDropoffMinuteDropdown() {
	var options = document.getElementById('dropoff_minute').options;

	options.length = 0;
	if (isNaN(dropoffHour)) {
	} else {
		for (var i = 0; i < minuteList.length; i++) {
			options.add(new Option(minuteList[i], minuteList[i]));
		}
	}

	setOptionSelected(options, dropoffMinute);
	changeDropoffMinute();
}


function changeDropoffMinute() {
	dropoffMinute = parseInt($('#dropoff_minute').val());
}

function updateExtraPrice(id, reservNumber) {
	var key = '#quantity_' + id;
	var amount = $(key).val();

	var url = '/' + LANG + '/process/updateextraprice/' + id + '/' + amount;
	if (reservNumber != 0) {
		url += '/' + reservNumber;
	}

	$.getJSON(url, function(data) {
		$('#price_' + data['id']).html(data['price']);
		//$('#localtotal').html(data['localtotal']);
		//$('#nowtotal').html(data['nowtotal']);
		$('#extra_total').html(data['total']);
		//updateExtraTotalPrices();
		if ($('#payment_summary').html()) {
			$('#payment_summary').load('/' + LANG + '/step3/&summary');
		}
	});
}

function consolelog(message) {
	if(window.console) {
		console.log(message);
	}
}

function updateFilter(id) {
	var any = document.getElementById('filter_any');
	var a = document.getElementById('filter_automatic');
	var m = document.getElementById('filter_manual');

	if (id == 'any') {
		if (any.checked) {
			a.checked = true;
			m.checked = true;
		} else {
			a.checked = true;
			m.checked = false;
		}
	} else if (id == 'a' || id == 'm') {
		if (a.checked && m.checked) {
			any.checked = true;
		} else if (a.checked || m.checked) {
			any.checked = false;
		}
	}
}

function initTermsDialog() {
	$('#tc').dialog({
		modal: true,
		autoOpen: false,
		draggable: false,
		height: 'auto',
		width: 600,
		position: 'center',
		overlay: {
			opacity: 0.5,
			background: "black"
		}
	});
}

function openTerms(branchId) {
	$.get('/' + LANG + '/tc/' + branchId, function(data) {
		if (isIE(6)) {
			data = '<iframe class="overlap_iframe" src="javascript:\'\'"></iframe>' + data;
		}
		$('#tc').html(data);
		$('#tc').dialog('open');

		//$('#terms').dialog('open');
	});
	return false;
}

function initExtraInfoDialog() {
	$('#extrainfo').dialog({
		modal: true,
		autoOpen: false,
		draggable: false,
		height: 250,
		width: 250,
		position: 'center',
		resizable: false,
		overlay: {
			opacity: 0.5,
			background: 'black'
		}
	});
}

function openExtraInfo(extraId) {

	$.get('/' + LANG + '/process/extrainforq/' + extraId, function(data) {
		if (data.length == 0) return;
		if (isIE(6)) {
			data = '<iframe class="overlap_iframe"></iframe>' + data;
		}
		$('#extrainfo').html(data);
		$('#extrainfo').dialog('open');
	});

	return false;
}

function initCvv2Dialog() {
	$('#whatiscvv2').dialog({
		modal: false,
		autoOpen: false,
		draggable: false,
		height: 350,
		width: 400
	});

	$('#open_cvv2_dialog').click(function(e) {
		return openCvv2(e.pageX, e.pageY);
	});
}

function openCvv2(x, y) {
	$.get('/' + LANG + '/whatiscvv2', function(data) {
		if (isIE(6)) {
			data = '<iframe class="overlap_iframe"></iframe>' + data;
		}
		$('#whatiscvv2').html(data);
		$('#whatiscvv2').dialog('open');
	});
	return false;
}

function initSelfServiceTabs() {
	$('#selfservice-tabs').tabs();
}

/**
 * Change booking
 */
function initChangeBooking() {
	$('#check_availability').click(function() {
		var data = {
			pickup_location: $('#pickup_location').val(),
			dropoff_location: $('#dropoff_location').val(),
			pickup_day: $('#pickup_day').val(),
			pickup_month: $('#pickup_month').val(),
			pickup_year: $('#pickup_year').val(),
			pickup_hour: $('#pickup_hour').val(),
			pickup_minute: $('#pickup_minute').val(),
			dropoff_day: $('#dropoff_day').val(),
			dropoff_month: $('#dropoff_month').val(),
			dropoff_year: $('#dropoff_year').val(),
			dropoff_hour: $('#dropoff_hour').val(),
			dropoff_minute: $('#dropoff_minute').val(),
			driver_age: $('#driver_age').val()
		};

		$.post('/' + LANG + '/process/checkavailability', data, function(data) {
			loader();
			if(data['status'] == 0) {
				alert(data['message']);
			} else if(data['status'] == 2) {
				if(confirm(data['message'])) {
					$('#search_for_new_car').click();
					loader(1);
					return false;
				}
			} else {
				window.location.href = '/' + LANG + '/changebooking/';
				return false;
			}
			loader(1);
			return false;
		}, "json");
		loader(1);
		return false;
	});

	$('#close_search').click(function() {
		$("#car_search").hide();
		$("#change_booking").show();
		loader(1);
		return false;
	});

	$('#search_for_new_car').click(function() {
		loader();
		var data = {
			pickup_location: $('#pickup_location').val(),
			dropoff_location: $('#dropoff_location').val(),
			pickup_day: $('#pickup_day').val(),
			pickup_month: $('#pickup_month').val(),
			pickup_year: $('#pickup_year').val(),
			pickup_hour: $('#pickup_hour').val(),
			pickup_minute: $('#pickup_minute').val(),
			dropoff_day: $('#dropoff_day').val(),
			dropoff_month: $('#dropoff_month').val(),
			dropoff_year: $('#dropoff_year').val(),
			dropoff_hour: $('#dropoff_hour').val(),
			dropoff_minute: $('#dropoff_minute').val(),
			driver_age: $('#driver_age').val()
		};

		$.post('/' + LANG + '/process/searchvehicles', data, function(data) {
			$("#result").html('');
			$('#car_search').show();
			$("#loading").fadeIn('slow');
			for(var i = 0;i < data.length; i++) {
				$("#result").append(data[i]);
			}

			$("#loading").fadeOut('slow');
			if(data.length > 0) {
				$('#change_booking').hide();
			} else {
				$('#car_search').hide();
			}

			if(data.length == 0) {
				alert("#no_vehicles_found#");
			}
			loader(1);
		}, "json");
		return false;
	});

	$('#convert_quote').click(function() {
		loader(1);
		return checkBookForm(document.getElementById('personal_form'));
	});

	$('#amend_booking').click(function() {
		loader(0);
		var data = {
			pickup_location: $('#pickup_location').val(),
			dropoff_location: $('#dropoff_location').val(),
			pickup_day: $('#pickup_day').val(),
			pickup_month: $('#pickup_month').val(),
			pickup_year: $('#pickup_year').val(),
			pickup_hour: $('#pickup_hour').val(),
			pickup_minute: $('#pickup_minute').val(),
			dropoff_day: $('#dropoff_day').val(),
			dropoff_month: $('#dropoff_month').val(),
			dropoff_year: $('#dropoff_year').val(),
			dropoff_hour: $('#dropoff_hour').val(),
			dropoff_minute: $('#dropoff_minute').val(),
			driver_age: $('#driver_age').val()
		};

		$.post('/' + LANG + '/process/checkavailability', data, function(data) {
			if(data['status'] == 0) {
				alert(data['message']);
			} else if(data['status'] == 2) {
				if(confirm(data['message'])) {
					$('#search_for_new_car').click();
					loader(1);
					return false;
				}
			} else {
				checkBookForm(document.getElementById('personal_form'));
				loader(1);
				return false;
			}
			loader(1);
			return false;
		}, "json");
		loader(1);
		return false;
	});
}


function checkCardType() {
	var type = document.getElementById('cc_type').options[document.getElementById('cc_type').options.selectedIndex].text;
	if (type == "Visa" || type == "Mastercard") {
		document.getElementById('cc_start_date').style.display = "none";
	} else {
		document.getElementById('cc_start_date').style.display = "";
	}
}
function initCardType() {
	$('#cc_type').change(checkCardType);
	if (document.getElementById('cc_start_year')) {
		setOptionSelected(document.getElementById('cc_start_year').options, 2009);
	}
}

function loadHowto(){
	var str="<embed src='/images/Banner_6.swf' type='application/x-shockwave-flash' wmode='transparent' height='600' width='600'></embed>";
	document.write(str);
}

function loadBanner() {
	var str="<embed src='/images/Eavto_351x156.swf' type='application/x-shockwave-flash' wmode='transparent' height='156' width='351'></embed>";
	document.write(str);
}

function loadRinningText() {
	var str="<embed src='/images/Eavto_376x30.swf' type='application/x-shockwave-flash' wmode='transparent' height='30' width='376'></embed>";
	document.write(str);

}

function showCarInfo(carId) {
	window.open('/' + LANG + '/carinfo/' + carId, 'carinfo', 'height=600,width=640,scrollbars=yes');
	return false;
//	$.get('/' + LANG + '/carinfo/' + carId, function(data) {
//		document.getElementById('carinfo').innerHTML=data;
//		$('#carinfo').dialog('open');
////		$('#carinfo').dialog('open');
////		$('#carinfo').html(data);
////		$('#carinfo').show();
////		$('#carinfo').dialog('open');
//
//		//document.getElementById('carinfo').style.display='';
//		//document.getElementById('carinfo').style.height='auto';
//	});
////	carinfoDialog.data('dialog.height', 'auto');
////	document.getElementById('carinfo').style.height = 'auto';
//	return false;
}
//var carinfoDialog;
//function initCarinfoDialog() {
//	carinfoDialog = $('#carinfo').dialog({
//		modal: false,
//		autoOpen: false,
//		width: 'auto'
//	});
//	document.getElementById('carinfo').style.display='';
//	carinfoDialog.data('height.dialog', 'auto');
//}

function submitMailinglist() {
	if (!validate('mailinglist_email', isEmailValid)) {
		alert("Entered email address is not valid. Please revise");
		return false;
	}
	document.getElementById('mailinglist_form').submit();
}

function hideResult() {
	if (document.getElementById('result')) {
		$('#found_cars').hide();
		$('#cars_found').hide();
		$('#result').hide();
		$('#loading').show();
		$('body').css('cursor', 'wait');
		progress = 0;
		setTimeout('updateProgress()', 200);
	}
}
