﻿
var Quote_errorMsg1 = "<p>Please select a number.</p>";
var Quote_errorMsg2 = "<p>Please enter a valid postcode.</p>";
var Quote_errorMsg3 = "<p>Please enter your name.</p>";
var Quote_errorMsg4 = "<p>Please enter a valid email address.</p>";
var Quote_errorMsg5 = "<p>Please enter your telephone number.</p>";
var Quote_errorMsg6 = "<p>Please enter your enquiry.</p>";
   
function QuoteMe()
{   
    var noOfPeople = Quote_GetNoOfPeople();
    var noOfPeopleValid = Quote_ValidateNoOfPeople(noOfPeople);
    var postcodeValid = Quote_ValidatePostcode();
    var nameValid = Quote_ValidateName();
    var emailValid = Quote_ValidateEmail();
    var telValid = Quote_ValidateTelephone();
    var enquiryValid = Quote_ValidateEnquiry();
    
    if( noOfPeopleValid == false || postcodeValid == false || nameValid == false ||
        emailValid == false || telValid == false || enquiryValid == false )
    {
        return false;    
    }

    Quote_xmlhttpPost("/PageTemplates/FormProcessing.aspx?" + 
                "FormType=QuoteDropDown" +
                "&NoOfPeople=" + escape(noOfPeople) +
                "&Postcode=" + escape(document.getElementById('txtPostcode').value) +
                "&Name=" + escape(document.getElementById('txtName').value) +
                "&Email=" + escape(document.getElementById('txtEmail').value) +
                "&TelephoneNumber=" + escape(document.getElementById('txtTel').value) +
                "&Enquiry=" + escape(document.getElementById('txtEnquiry').value));
      
    return false;
}

function Quote_xmlhttpPost(strURL) 
{
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('GET', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            Quote_Updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}


function Quote_Updatepage(str)
{
    //document.getElementById('filled').style.display = "";
    //document.getElementById('fill').style.display = "none";
    //document.getElementById("filled").innerHTML = "<p>Thank you. Your form has been submitted successfully.</p>";
    
    window.location = str;
}

function Quote_GetNoOfPeople()
{
    var value;

    for (var i=0; i<document.getElementsByName("RadioGroup1").length; i++)
    { 
        if (document.getElementsByName("RadioGroup1")[i].checked)  
        {
            value = document.getElementsByName("RadioGroup1")[i].value
        } 
    } 
    return value;
}

function Quote_ValidateNoOfPeople(str)
{
    if(str == null || str == "")
    {
        document.getElementById('Quote_ErDiv1').style.display = "";
        document.getElementById('Quote_ErDiv1').innerHTML = Quote_errorMsg1;
        return false;
    }
    else
    {
        document.getElementById('Quote_ErDiv1').style.display = "none";
        document.getElementById('Quote_ErDiv1').innerHTML = "";
        return true;
    }
}

function Quote_ValidatePostcode()
{
    if (document.getElementById('txtPostcode').value != "" && Quote_IsValidPostcode(document.getElementById('txtPostcode').value))
    {
        document.getElementById('Quote_ErDiv2').style.display = "none";
        document.getElementById('Quote_ErDiv2').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('Quote_ErDiv2').style.display = "";
        document.getElementById('Quote_ErDiv2').innerHTML = Quote_errorMsg2;
        return false;
    }
}

function Quote_ValidateName()
{
    if (document.getElementById('txtName').value != "")
    {
        document.getElementById('Quote_ErDiv3').style.display = "none";
        document.getElementById('Quote_ErDiv3').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('Quote_ErDiv3').style.display = "";
        document.getElementById('Quote_ErDiv3').innerHTML = Quote_errorMsg3;
        return false;
    }
}

function Quote_ValidateEmail()
{
    var email = document.getElementById('txtEmail').value;
    if ( (email.indexOf("@") > 1) && //  must contain @, and it must not be the first character
          (email.lastIndexOf(".") > email.indexOf("@")) &&  // last dot must be after the @
          (email.indexOf("@") != email.length) &&  // @ must not be the last character
          (email.indexOf("..") < 0) && // two periods in a row is not valid
          (email.indexOf(".") != email.length) &&  // . must not be the last character
          (Quote_AllValidEmailChars(email)) ) // all characters must be valid
    {
        document.getElementById('Quote_ErDiv4').style.display = "none";
        document.getElementById('Quote_ErDiv4').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('Quote_ErDiv4').style.display = "";
        document.getElementById('Quote_ErDiv4').innerHTML = Quote_errorMsg4;
        return false;
    }
}

function Quote_ValidateTelephone()
{
    if (document.getElementById('txtTel').value != "" )
    {
        document.getElementById('Quote_ErDiv5').style.display = "none";
        document.getElementById('Quote_ErDiv5').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('Quote_ErDiv5').style.display = "";
        document.getElementById('Quote_ErDiv5').innerHTML = Quote_errorMsg5;
        return false;
    }
}

function Quote_ValidateEnquiry()
{
    if (document.getElementById('txtEnquiry').value != "")
    {
	    document.getElementById('Quote_ErDiv6').style.display = "none";
        document.getElementById('Quote_ErDiv6').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('Quote_ErDiv6').style.display = "";
        document.getElementById('Quote_ErDiv6').innerHTML = Quote_errorMsg6;
        return false;
    }
}

function Quote_AllValidEmailChars(email)
{
    var isValid = true;
    var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
    for (var i=0; i < email.length; i++) 
    {
        var letter = email.charAt(i).toLowerCase();
        if (validchars.indexOf(letter) != -1)
        {
          continue;
        }
        else
        {
            isValid = false;
            break;
        }
    }
    return isValid;
}

function Quote_IsValidPostcode(postcode)
{
    var test = postcode; 
    var size = test.length;
    test = test.toUpperCase(); //Change to uppercase
    
    while (test.slice(0,1) == " ") //Strip leading spaces
    {
        test = test.substr(1,size-1);
        size = test.length;
    }
    while(test.slice(size-1,size)== " ") //Strip trailing spaces
    {
        test = test.substr(0,size-1);
        size = test.length;
    }
    if (size < 6 || size > 8){ //Code length rule-->
        return false;
    }
    if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
        return false;
    }
    if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
        return false;
    }
    if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
        return false;
    }
    if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
        return false;
    }
    //if (!(test.charAt(size-4) == " ")){ //space in position length-3 rule
    //    return false;
    //}
    //count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
    //if (count1 != count2){//only one space rule
    //    return false;
    //}
    return true;
}

