﻿YAHOO.namespace("limo");



function init() {
	//YAHOO.util.Event.addListener('submit', 'click', function(){
    //            var reservationDiv = YAHOO.util.Dom.get('reservation');
    //            reservationDiv.innerHTML = '';	
    //        });
	
	YAHOO.limo.selectVehiclePopup = new YAHOO.widget.Panel("selectVehiclePopup",
	    { context:["vehicleLeftCorner","tl","bl", ["beforeShow", "windowResize"]], close: false, draggable: false, zindex:4, modal: true, visible: false, constraintoviewport:true } );
	
	YAHOO.util.Event.addListener("submit", "click", sendMessage);
	
	YAHOO.limo.selectVehiclePopup.render();
	YAHOO.util.Event.addListener("vehicle", "click", YAHOO.limo.selectVehiclePopup.show, YAHOO.limo.selectVehiclePopup, true);
	YAHOO.util.Event.addListener("rCar", "click", YAHOO.limo.selectVehiclePopup.hide, YAHOO.limo.selectVehiclePopup, true);
	YAHOO.util.Event.addListener("rCar1", "click", YAHOO.limo.selectVehiclePopup.hide, YAHOO.limo.selectVehiclePopup, true);
	YAHOO.util.Event.addListener("rCar2", "click", YAHOO.limo.selectVehiclePopup.hide, YAHOO.limo.selectVehiclePopup, true);
	YAHOO.util.Event.addListener("rCar3", "click", YAHOO.limo.selectVehiclePopup.hide, YAHOO.limo.selectVehiclePopup, true);
	
	YAHOO.util.Event.addListener("name", "keyup", validateForm);
    YAHOO.util.Event.addListener("phone", "keyup", validateForm);
    YAHOO.util.Event.addListener("count", "keyup", validateForm);
    YAHOO.util.Event.addListener("rCar", "change", validateForm);
    YAHOO.util.Event.addListener("rCar1", "change", validateForm);
    YAHOO.util.Event.addListener("rCar2", "change", validateForm);
    YAHOO.util.Event.addListener("rCar3", "change", validateForm);
    YAHOO.util.Event.addListener("date", "keyup", validateForm);
    YAHOO.util.Event.addListener("accept", "click", validateForm);
	
	validateForm();
	
	var aCategories = [
            { text: "Lincoln Town Car - 4 passengers", value: "Lincoln Town Car" },
            { text: "Ford Expedition - 7 passengers", value: "Ford Expedition" },
            { text: "Lincoln Stretch Limousine - 10 passengers", value: "Lincoln Stretch Limo" },
            { text: "Ford Excursion Limousine - 16 passengers", value: "Ford Excursion Limo" }
        ];

    var oButton = new YAHOO.widget.Button({ 
        type: "menu", id:"vehiclebutton", label: "<em>Click to select...</em>", 
        menu: aCategories, container: "vehicle" }); 

	var onSelectedMenuItemChange = function (event) {
		var oMenuItem = event.newValue;
		this.set("label", ("<em class=\"yui-button-label\">" + oMenuItem.value + "</em>"));
		var vehicleField = YAHOO.util.Dom.get('typeofvehicle');
        vehicleField.value = oMenuItem.value;
        validateForm();
	};

	oButton.on("selectedMenuItemChange", onSelectedMenuItemChange);
}

function SetVehicleType()
{
    var vt = document.getElementById("vehicle");
    vt.value = event.srcElement.value;
    var vt2 = document.getElementById("typeofvehicle");
    vt2.value = event.srcElement.value;
}

function validateForm()
{
    var isFormvalid = true;

    var nameField = YAHOO.util.Dom.get('name');
    isFormvalid &= (nameField.value.length > 0);

    var phoneField = YAHOO.util.Dom.get('phone');
    isFormvalid &= (phoneField.value.length > 0);

    var countField = YAHOO.util.Dom.get('count');
    isFormvalid &= (countField.value.length > 0);

    var vehicleField = YAHOO.util.Dom.get('typeofvehicle');
    isFormvalid &= (vehicleField.value.length > 0);

    if (vehicleField.value == 'Lincoln Town Car' && countField.value > 4)
    {
        ElemContent2Message('error-message', 'Too many passengers. The vehicle has room for up to 4 passengers.');
        isFormvalid = false;
    }
    else if (vehicleField.value == 'Ford Expedition' && countField.value > 7)
    {
        ElemContent2Message('error-message', 'Too many passengers. The vehicle has room for up to 7 passengers.');
        isFormvalid = false;
    }
    else if (vehicleField.value == 'Lincoln Stretch Limo' && countField.value > 10)
    {
        ElemContent2Message('error-message', 'Too many passengers. The vehicle has room for up to 10 passengers.');
        isFormvalid = false;
    }
    else if (vehicleField.value == 'Ford Excursion Limo' && countField.value > 16)
    {
        ElemContent2Message('error-message', 'Too many passengers. The vehicle has room for up to 16 passengers.');
        isFormvalid = false;
    }
    else
    {
        ElemContent2Message('error-message', '');
    }
    
    var dateField = YAHOO.util.Dom.get('dateofservice');
    isFormvalid &= (dateField.value.length > 0);

    var submitButton = YAHOO.util.Dom.get('submit');

    if (isFormvalid) {
        submitButton.style.backgroundImage = 'url(i/submit.png)';
        submitButton.disabled = '';
    } else {
        submitButton.disabled = 'disabled';
        submitButton.style.backgroundImage = 'url(i/submit-disabled.png)';
    }
}

function sendMessage()
{
    var formObject = document.getElementById('mainForm');
	YAHOO.util.Connect.setForm(formObject, false);

	YAHOO.util.Connect.asyncRequest('POST', "reservation.php", {
	  	success: function(o){
            ElemContent2Message('reservation', '<p style="font-weight: bold; font-size: 12px; padding: 20px 0 0 20px; color: #eeeeee; width: 250px;">Our representative will contact you shortly.</p>');
		},
	  	failure: function(o){
			ElemContent2Message('reservation', '<p style="font-weight: bold; font-size: 12px; padding: 20px 0 0 20px; color: #eeeeee; width: 260px;">An error occured. Please try later.</p>');
		},
	  	cache: false
	});
}

function ElemContent2Message(elemId, message) {
	var div = YAHOO.util.Dom.get(elemId);
	div.innerHTML = message;
}

YAHOO.util.Event.addListener(window, "load", init);
