/**
 * contact form
 * 
 * Javascript to handle contact form
 * 
 * @version		1.0rc1
 * 
 * @author		liquid motors inc.
 * @copyright		Copyright 2006-2007 liquid motors inc.
 */

	var bError = false;
	var sError = "";

	String.prototype.trim = function() {
		return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""))
	}

	String.prototype.startsWith = function(str) { 
		return (this.match("^"+str)==str)
	}

	String.prototype.endsWith = function(str) {
		return (this.match(str+"$")==str)
	}

    function formValidator(){
		bError = false;
		sError = "";
		var temp = "";

        var firstname = "";
        var lastname = "";
        var email = "";
        var homephone = "";
        var workphone = "";
        var cellphone = "";

		var year = "";
		var make = "";
		var model = "";
		var trans = "";

		var offer = "";

		var miles = "";
		var condition = "";

		var part = "";
		
		var comments = "";

        var pagetitle = "";
        var inst = "";

        var lang = "";


		var inputfields = document.getElementsByTagName("input"); 
		for (var i = 0; i < inputfields.length; i++) { 
		    temp = inputfields[i].id; 
		    if (temp.endsWith("txtFName")) { 
		        firstname = inputfields[i];
		    }
		    else if (temp.endsWith("txtLName")) { 
		        lastname = inputfields[i];
		    }
		    else if (temp.endsWith("txtEmail")) { 
		        email = inputfields[i];
		    }
		    else if (temp.endsWith("txtHomePhone")) { 
		        homephone = inputfields[i];
		    }
		    else if (temp.endsWith("txtWorkPhone")) { 
		        workphone = inputfields[i];
		    }
		    else if (temp.endsWith("txtCellPhone")) { 
		        cellphone = inputfields[i];
		    }
		    else if (temp.endsWith("txtModel")) { 
		        model = inputfields[i];
		    }
		    else if (temp.endsWith("rblTransmission_0")) {
			trans = document.getElementsByName(inputfields[i].name);
		    }
		    else if (temp.endsWith("txtOffer")) { 
		        offer = inputfields[i];
		        offer.value = offer.value.replace(/,/, "");
		    }
		    else if (temp.endsWith("txtMileage")) { 
		        miles = inputfields[i];
		    }
		    else if (temp.endsWith("rblCondition_0")) { 
			condition = document.getElementsByName(inputfields[i].name);
		    }
		    else if (temp.endsWith("txtPartDesc")) { 
		        part = inputfields[i];
		    }
		    else if (temp.endsWith("txtLang")) { 
		        lang = inputfields[i];
		    }
		}

		var selectfields = document.getElementsByTagName("select"); 
		for (var i = 0; i < selectfields.length; i++) { 
		    temp = selectfields[i].id; 
		    if (temp.endsWith("ddlYear")) { 
		        year = selectfields[i];
		    }
		    else if (temp.endsWith("ddlMake")) { 
		        make = selectfields[i];
		    }
		}

		var textareafields = document.getElementsByTagName("textarea"); 
		for (var i = 0; i < textareafields.length; i++) { 
		    temp = textareafields[i].id; 
		    if (temp.endsWith("txtATComments")) { 
		        comments = textareafields[i];
		    }
		}

		var spanfields = document.getElementsByTagName("span"); 
		for (var i = 0; i < spanfields.length; i++) { 
		    temp = spanfields[i].id; 
		    if (temp.endsWith("lblTitle")) { 
		        pagetitle = spanfields[i];
		    }
		    else if (temp.endsWith("lblInstructions")) { 
		        inst = spanfields[i];
		    }
		}

		// Check common vehicle info fields
		if (pagetitle.innerHTML == 'Quick Quote' || pagetitle.innerHTML == 'Make an Offer' || pagetitle.innerHTML == 'Trade In' || pagetitle.innerHTML == 'Schedule Test Drive' ||  pagetitle.innerHTML == 'Order Parts' ||  pagetitle.innerHTML == 'Ask a Tech' ||  pagetitle.innerHTML == 'Schedule Service')
		{
			if (lang) {
				if (lang.value == 'SPANISH') {
					isSelected(year, "Please select a year for the vehicle.")
					isSelected(make, "Please select a make for the vehicle.")
		            isEmpty(model, "Please enter a model for the vehicle")
				}
				else
				{
					isSelected(year, "Please select a year for the vehicle.")
					isSelected(make, "Please select a make for the vehicle.")
		            isEmpty(model, "Please enter a model for the vehicle")
				}
			}
			else
			{
				isSelected(year, "Please select a year for the vehicle.")
				isSelected(make, "Please select a make for the vehicle.")
	            isEmpty(model, "Please enter a model for the vehicle")
			}
		}							

		// Check offer amount
		if (pagetitle.innerHTML == 'Make an Offer') {
	        isNumeric1(offer, "Please enter an offer amount")
		}

		// Check Trade In
		if (pagetitle.innerHTML == 'Trade In') {
			isRadioSelected(trans, "Please specify the transmission type for your vehicle.")
			isNumeric1(miles, "Please enter the mileage for your vehicle.")
			isRadioSelected(condition, "Please specify the condition of your vehicle.")
		}

		// Check Order Parts
		if (pagetitle.innerHTML == 'Order Parts') {
	        isEmpty(part, "Please provide a description of the part you are looking to buy.")
		}

		// Check Ask a Tech
		if (pagetitle.innerHTML == 'Ask a Tech') {
	        isEmpty(comments, "Please provide a question for the tech.")
		}

		// Check contact info
		if (lang) {
			if (lang.value== 'SPANISH') {
				isAlphabet1(firstname, "Entre por favor su primer nombre que utiliza cartas solo.")
				isAlphabet1(lastname, "Entre por favor su apellido que utiliza cartas solo.")
			}
			else
			{
				isAlphabet1(firstname, "Please enter your first name using letters only.")
				isAlphabet1(lastname, "Please enter your last name using letters only.")
			}
		}
		else
		{
			isAlphabet1(firstname, "Please enter your first name using letters only.")
			isAlphabet1(lastname, "Please enter your last name using letters only.")
		}

		if (homephone.value.length == 0 && workphone.value.length == 0 && cellphone.value.length == 0) {
			if (sError == ""){
				homephone.focus(); // set the focus to this input
			}
			if (lang) {
				if (lang.value== 'SPANISH') {
					sError = sError + "Proporcione por favor por lo menos un numero de telefono.\r\n";
				}
				else
				{
					sError = sError + "Please provide at least one phone number.\r\n";
				}
			}
			else
			{
				sError = sError + "Please provide at least one phone number.\r\n";
			}
			bError = true;
		}

        if (homephone.value.length > 0) {
			if (lang) {
				if (lang.value== 'SPANISH') {
		            isPhone(homephone, "En casa numero de telefono es invalido.")
				}
				else
				{
		            isPhone(homephone, "Home phone number is invalid.")
				}
			}
			else
			{
	            isPhone(homephone, "Home phone number is invalid.")
			}
        }
        if (workphone.value.length > 0) {
			if (lang) {
				if (lang.value== 'SPANISH') {
		            isPhone(workphone, "El numero de telefono del trabajo es invalido.")
				}
				else
				{
		            isPhone(workphone, "Work phone number is invalid.")
				}
			}
			else
			{
	            isPhone(workphone, "Work phone number is invalid.")
			}
        }
        if (cellphone.value.length > 0) {
			if (lang) {
				if (lang.value== 'SPANISH') {
		            isPhone(cellphone, "El numero del telefono celular es invalido.")
				}
				else
				{
		            isPhone(cellphone, "Cell phone number is invalid.")
				}
			}
			else
			{
	            isPhone(cellphone, "Cell phone number is invalid.")
			}
        }

		if (lang) {
			if (lang.value== 'SPANISH') {
		        emailValidator(email, "Entre por favor una direccion correo electronico valida.")
			}
			else
			{
		        emailValidator(email, "Please enter a valid email address.")
			}
		}
		else
		{
	        emailValidator(email, "Please enter a valid email address.")
		}

		if (bError == true){
			alert(sError);
			return false;
		}
		else
		{
			inst.innerHTML = "";
            var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
            VehicleInfoDIV.style.display = 'none';
            var AskaTechDIV = document.getElementById('AskaTechDIV');
            AskaTechDIV.style.display = 'none';
            var VehicleFinderDIV = document.getElementById('VehicleFinderDIV');
            VehicleFinderDIV.style.display = 'none';
            var QuickQuoteDIV = document.getElementById('QuickQuoteDIV');
            QuickQuoteDIV.style.display = 'none';
            var TestDriveDIV = document.getElementById('TestDriveDIV');
            TestDriveDIV.style.display = 'none';
            var ScheduleServiceDIV = document.getElementById('ScheduleServiceDIV');
            ScheduleServiceDIV.style.display = 'none';
            var OfferDIV = document.getElementById('OfferDIV');
            OfferDIV.style.display = 'none';
            var OrderPartsDIV = document.getElementById('OrderPartsDIV');
            OrderPartsDIV.style.display = 'none';
            var TradeInDIV = document.getElementById('TradeInDIV');
            TradeInDIV.style.display = 'none';
            var ContactInfoDIV = document.getElementById('ContactInfoDIV');
            ContactInfoDIV.style.display = 'none';
            var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
            GeneralCommentsDIV.style.display = 'none';
            var SubmitDIV = document.getElementById('SubmitDIV');
            SubmitDIV.style.display = 'none';
            var RequestSubmittedDIV = document.getElementById('RequestPendingDIV');
            RequestSubmittedDIV.style.display = 'block';
            var RequestSubmittedDIV = document.getElementById('RequestSubmittedDIV');
            RequestSubmittedDIV.style.display = 'none';

			return true;
		}
	}
    
	function isPhone(elem, helperMsg) {
	    var strng = elem.value;
        var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
        //strip out acceptable non-numeric characters
        if (isNaN(parseInt(stripped))) {
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
        }
        else if (stripped.length < 10)
        {
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
        }
    }

	function isRadioSelected(elem, helperMsg) {
		var bselected = false;
		for (var x = 0; x < elem.length; x ++) {
			if (elem[x].checked) {
				bselected = true;
			}
		}
		if (bselected == false) {
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isSelected(elem, helperMsg){
		if(elem.selectedIndex == 0){
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isEmpty(elem, helperMsg){
		if(elem.value.length == 0){
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isNumeric1(elem, helperMsg){
		var regExp =/^\d+(\.\d\d)?$/;
		if(elem.value.match(regExp)){
			var x = 1;
		}else{
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isAlphabet1(elem, helperMsg){
		var alphaExp = /^[a-zA-Z ]+$/;
		if(elem.value.match(alphaExp)){
			var x=1;
		}else{
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isAlphabet(elem, helperMsg){
		var alphaExp = /^[a-zA-Z ]+$/;
		if(elem.value.match(alphaExp)){
			var x=1;
		}else{
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

	function isNumeric(elem, helperMsg){
		var numericExpression = /^\(?\d{3}\)?\s|-\d{3}s|-\d{4}$/;
		if(elem.value.match(numericExpression)){
			var x=1;
		}else{
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}


	function emailValidator(elem, helperMsg){
		var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
		if(elem.value.match(emailExp)){
			var x=1;
		}else{
			if (sError == ""){
				elem.focus(); // set the focus to this input
			}
			sError = sError + helperMsg + "\r\n";
			bError = true;
		}
	}

    function SetupCF()
    {
		if ( window.startscrolling )
		{
			startscrolling();
		}

        var txtsubmitted = "";
        var stitle = "";
        var txtfullsite;

		var inputfields = document.getElementsByTagName("input"); 
		for (var i = 0; i < inputfields.length; i++) { 
		    temp = inputfields[i].id; 
		    if (temp.endsWith("txtSubmitted")) { 
		        txtsubmitted = inputfields[i];
		    }
		    else if (temp.endsWith("txtTitle")) { 
		        stitle = inputfields[i];
		    }
		    else if (temp.endsWith("txtFullSite")) { 
		        txtfullsite = inputfields[i];
		    }
		}
		
        if (txtsubmitted.value == "0")
        {
            if (stitle.value == "ASK A TECH")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var AskaTechDIV = document.getElementById('AskaTechDIV');
                AskaTechDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "VEHICLE FINDER")
            {
                var VehicleFinderDIV = document.getElementById('VehicleFinderDIV');
                VehicleFinderDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "QUICK QUOTE")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var QuickQuoteDIV = document.getElementById('QuickQuoteDIV');
                QuickQuoteDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "FAST QUOTE")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'none';
                var QuickQuoteDIV = document.getElementById('QuickQuoteDIV');
                QuickQuoteDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "SCHEDULE TEST DRIVE")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var TestDriveDIV = document.getElementById('TestDriveDIV');
                TestDriveDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "SCHEDULE SERVICE")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
				var ScheduleServiceDIV = document.getElementById('ScheduleServiceDIV');
				ScheduleServiceDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "MAKE AN OFFER")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var OfferDIV = document.getElementById('OfferDIV');
                OfferDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "ORDER PARTS")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var OrderPartsDIV = document.getElementById('OrderPartsDIV');
                OrderPartsDIV.style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }
            else if (stitle.value == "TRADE IN")
            {
                var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
                VehicleInfoDIV.style.display = 'block';
                var TradeInDIV = document.getElementById('TradeInDIV');
                TradeInDIV .style.display = 'block';
                var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
                GeneralCommentsDIV.style.display = 'none';
            }

			if (txtfullsite) {
				if (txtfullsite.value == "False"){
					window.resizeTo( 720,780 );
				}
			}
        }
        else
        {
            var VehicleInfoDIV = document.getElementById('VehicleInfoDIV');
            VehicleInfoDIV.style.display = 'none';
            var AskaTechDIV = document.getElementById('AskaTechDIV');
            AskaTechDIV.style.display = 'none';
            var VehicleFinderDIV = document.getElementById('VehicleFinderDIV');
            VehicleFinderDIV.style.display = 'none';
            var QuickQuoteDIV = document.getElementById('QuickQuoteDIV');
            QuickQuoteDIV.style.display = 'none';
            var TestDriveDIV = document.getElementById('TestDriveDIV');
            TestDriveDIV.style.display = 'none';
            var ScheduleServiceDIV = document.getElementById('ScheduleServiceDIV');
            ScheduleServiceDIV.style.display = 'none';
            var OfferDIV = document.getElementById('OfferDIV');
            OfferDIV.style.display = 'none';
            var OrderPartsDIV = document.getElementById('OrderPartsDIV');
            OrderPartsDIV.style.display = 'none';
            var TradeInDIV = document.getElementById('TradeInDIV');
            TradeInDIV.style.display = 'none';
            var ContactInfoDIV = document.getElementById('ContactInfoDIV');
            ContactInfoDIV.style.display = 'none';
            var GeneralCommentsDIV = document.getElementById('GeneralCommentsDIV');
            GeneralCommentsDIV.style.display = 'none';
            var SubmitDIV = document.getElementById('SubmitDIV');
            SubmitDIV.style.display = 'none';
            var RequestSubmittedDIV = document.getElementById('RequestPendingDIV');
            RequestSubmittedDIV.style.display = 'none';
            var RequestSubmittedDIV = document.getElementById('RequestSubmittedDIV');
            RequestSubmittedDIV.style.display = 'block';
        }

    }
    
    window.onload = SetupCF;
