var gdir;

function initialize() {
	if (GBrowserIsCompatible()) {
		gdir = new GDirections();
		GEvent.addListener(gdir, "load", onGDirectionsLoad);
		GEvent.addListener(gdir, "error", handleErrors);

		//setDirections("1502 Randolph, Detroit MI 48226", "Mountain View", "en_US");
	}
}

function setDirections(fromAddress, toAddress, locale) {
	//alert("from: " + fromAddress + " to: " + toAddress)
	gdir.load("from: " + fromAddress + " to: " + toAddress,
		{ "locale": locale });
}

function handleErrors() {
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
		alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
		alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
		alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_KEY)
		alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
		alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);

	else alert("An unknown error occurred.");

}

function onGDirectionsLoad() {
	var d = gdir.getDistance();
	d = Math.round(d.meters * 0.6214 / 1000);
	//alert(d);
	var TP = 200;
	if (d >= 100)
		TP = 2 * d;

	var b = document.forms[0].number_of_cigars_needed.value;
	CP = b * 10;

	TN = b / 25;
	var t = document.forms[0].hour_of_rolling.value;
	if (TN > t)
		CP = t * 25 * 10 + (TN - t) * 25 * 7;

	var peopleNumber = document.forms[0].cigar_server.value;
	CG = 0;
	if (peopleNumber > 0){
		CG = peopleNumber * 20 * t + TP / 2;
		$('div.cigar_servers em.servers_print').html('(to ' + $('#roling_form #city').val() + ' + $' + (20 * t + TP / 2) + ' / per server)');
	}

	var guitarist = document.forms[0].spanish_guitarist_yes.checked;
	var MP = 0;
	if (guitarist){
		MP = 50 * t + TP / 2;
		$('div.spanish_guitarist em.spanish_guitarist_print').html('(to ' + $('#roling_form #city').val() + ' + $' + MP + ' extra)');
	}

	var outdoorTent = document.forms[0].heated_outdoor_tent_yes.checked;
	var TT = 0;
	if (outdoorTent){
		TT = 300;
		$('div.outdor_tent em.outdor_tent_print').html('(+ $' + TT + ' extra)');
	}

	var price = TP + CP + CG + MP + TT;
	$('#you_total span').html('$' + price);
	//alert(TP + ", " + CP+ "," + CG + "," + MP + "," + TT + "," +price);
	// Use this function to access information about the latest load()
	// results.

	init_confirm();
	$('#book_form_send_ajax').ajaxForm();
	$('#book_form_send_ajax').submit();
}

function calculate() {
	if (verification_form()){
		var state = document.forms[0].state.value;
		var city = document.forms[0].city.value;
		var zip = document.forms[0].zip.value;
		setDirections("1502 Randolph, Detroit MI 48226", state + " " + city + " " + zip, "en_US");
	}
}
function init_confirm(){
	$('#confirm_booking div.c_name div.value').html($('#roling_form #name').val());
	$('#confirm_booking #c_name').val($('#roling_form #name').val());
	$('#confirm_booking #ac_name').val($('#roling_form #name').val());
	$('#confirm_booking div.c_telefone div.value').html($('#roling_form #telephone').val());
	$('#confirm_booking #c_telephone').val($('#roling_form #telephone').val());
	$('#confirm_booking #ac_telephone').val($('#roling_form #telephone').val());
	$('#confirm_booking div.c_email div.value').html($('#roling_form #e-mail').val());
	$('#confirm_booking #c_email').val($('#roling_form #e-mail').val());
	$('#confirm_booking #ac_email').val($('#roling_form #e-mail').val());
	$('#confirm_booking div.c_occasion div.value').html($('#roling_form #occasion').val());
	$('#confirm_booking #c_occasion').val($('#roling_form #occasion').val());
	$('#confirm_booking #ac_occasion').val($('#roling_form #occasion').val());
	$('#confirm_booking div.c_city div.value').html($('#roling_form #city').val());
	$('#confirm_booking #c_city').val($('#roling_form #city').val());
	$('#confirm_booking #ac_city').val($('#roling_form #city').val());
	$('#confirm_booking div.c_state div.value').html($('#roling_form #state').val());
	$('#confirm_booking #c_state').val($('#roling_form #state').val());
	$('#confirm_booking #ac_state').val($('#roling_form #state').val());
	$('#confirm_booking #c_zip').val($('#roling_form #zip').val());
	$('#confirm_booking #ac_zip').val($('#roling_form #zip').val());
	$('#confirm_booking div.c_date div.value').html($('#roling_form #date').val());
	$('#confirm_booking #c_date').val($('#roling_form #date').val());
	$('#confirm_booking #ac_date').val($('#roling_form #date').val());
	$('#confirm_booking div.c_hour_of_roling div.value').html($('#roling_form #hour_of_rolling').val());
	$('#confirm_booking #c_hours_of_rolling').val($('#roling_form #hour_of_rolling').val());
	$('#confirm_booking #ac_hours_of_rolling').val($('#roling_form #hour_of_rolling').val());
	$('#confirm_booking div.c_number_of_cigar div.value').html($('#roling_form #number_of_cigars_needed').val());
	$('#confirm_booking #c_number_of_cigars').val($('#roling_form #number_of_cigars_needed').val());
	$('#confirm_booking #ac_number_of_cigars').val($('#roling_form #number_of_cigars_needed').val());
	$('#confirm_booking div.c_total div.value').html($('#roling_form #you_total span').text());
	$('#confirm_booking #c_total').val($('#roling_form #you_total span').text());
	$('#confirm_booking #ac_total').val($('#roling_form #you_total span').text());
	$('#confirm_booking #c_cigar_servers').val($('#roling_form #cigar_server').val());
	$('#confirm_booking #ac_cigar_servers').val($('#roling_form #cigar_server').val());
	var opt_features = '';
	$('#confirm_booking div.c_opt_features ul').empty();
	if (document.forms[0].spanish_guitarist_yes.checked){
		$('#confirm_booking div.c_opt_features ul').append('<li>SPANISH GUITARIST</li>');
		opt_features = opt_features + 'SPANISH GUITARIST \n\r';
	}
	if (document.forms[0].heated_outdoor_tent_yes.checked){
		$('#confirm_booking div.c_opt_features ul').append('<li>HEATED OUTDOOR TENT</li>');
		opt_features = opt_features + 'HEATED OUTDOOR TENT \n\r';
	}
	if ($('#roling_form #cigar_server').val()>0){
		$('#confirm_booking div.c_opt_features ul').append('<li>' + $('#roling_form #cigar_server').val() + ' of ELEGANT CIGAR SERVER(S)</li>');
		opt_features = opt_features + $('#roling_form #cigar_server').val() + ' of ELEGANT CIGAR SERVER(S)\n\r';
	}
	$('#confirm_booking #c_optional_features').val(opt_features);
	$('#confirm_booking #ac_optional_features').val(opt_features);
}

function verification_form(){
	if (jQuery.trim($('#roling_form #e-mail').val()) == ""){
		alert('Attention: Please Enter E-mail');
		return false;
	}
	if (jQuery.trim($('#roling_form #city').val()) == ""){
		alert('Attention: Please Enter City');
		return false;
	}
	if (jQuery.trim($('#roling_form #state').val()) == ""){
		alert('Attention: Please Enter State');
		return false;
	}
	if (jQuery.trim($('#roling_form #zip').val()) == ""){
		alert('Attention: Please Enter Zip');
		return false;
	}
	if (jQuery.trim($('#roling_form #hour_of_rolling').val()) == ""){
		alert('Attention: Please Enter Hour of Rolling');
		return false;
	}
	if (jQuery.trim($('#roling_form #number_of_cigars_needed').val()) == ""){
		alert('Attention: Please Enter Number of Cigars Needed');
		return false;
	}
	return true;
}

function confirm_booking (){
	if (verification_form()){
		$('#confirm_booking').modal();
	}
}

function show_about_service(name){
	$('#more_info_about_service div:visible').hide('slow');
	$('#more_info_about_service div.'+name).show('slow');
}

$(document).ready(function(){
	initialize();
});
$(document).unload( function () { 
	GUnload();
});