﻿var errorFirstName = "<p>Please enter your first name.</p>";
var errorLastName = "<p>Please enter your last name.</p>";
var errorSchoolName = "<p>Please enter your school name.</p>";
var errorEmail = "<p>Please enter a valid email address.</p>";
var errorTelephone = "<p>Please enter your telephone number.</p>";
var errorAddr1 = "<p>Please enter your school address line 1.</p>";
var errorAddr2 = "<p>Please enter your school address line 2.</p>";
var errorCity = "<p>Please enter your school city.</p>";
var errorPostcode = "<p>Please enter a valid postcode.</p>";
var errorNatureOfEnquiry = "<p>Please enter the nature of your enquiry.</p>";
var errorEnquiry = "<p>Please enter an enquiry.</p>";

   
function ContactUs()
{      
    var firstnameValid = ValidateFirstName();
    var lastnameValid = ValidateLastName();
    var schoolValid = ValidateSchoolName();
    var emailValid = ValidateEmail();
    //var telephoneValid = ValidateTelephone();
    var addr1Valid = ValidateAddressLine1();
    //var addr2Valid = ValidateAddressLine2();
    var addr3Valid = ValidateAddressLine3();
    var postcodeValid = ValidatePostcode();
    //var natureValid = ValidateNatureOfEnquiry();
    //var messageValid = ValidateEnquiry();
    
    if(firstnameValid == false || lastnameValid == false || schoolValid == false || emailValid == false ||
        addr1Valid == false || addr3Valid == false || postcodeValid == false)
    {
        return false;
    }   

    xmlhttpPost_contactus("/PageTemplates/FormProcessing.aspx?" + 
                "FormType=ContactUs" +
                
                "&FirstName=" + escape(document.getElementById('firstname').value) +
                "&LastName=" + escape(document.getElementById('lastname').value) +
                "&SchoolName=" + escape(document.getElementById('school').value) +
                "&AddressLine1=" + escape(document.getElementById('address1').value) +
                "&AddressLine2=" + escape(document.getElementById('address2').value) +
                "&AddressLine3=" + escape(document.getElementById('address3').value) +
                "&Postcode=" + escape(document.getElementById('postcode').value) +
                "&TelephoneNumber=" + escape(document.getElementById('telephone').value) +
                "&Email=" + escape(document.getElementById('email').value) +
                //"&NatureOfEnquiry=" + escape(document.getElementById('nature').value) +
                "&Enquiry=" + escape(document.getElementById('enquiry').value));
      
    return false;
}

function xmlhttpPost_contactus(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) {
            updatepage_contactus(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}


function updatepage_contactus(str)
{
    if (str.substring(0,6) != "failed")
    {
        window.location = str;    
    }
    else
    {
        //document.getElementById('').innerHTML = errorCredentialsNotFound;
        //document.getElementById('').style.display = "inline";
    }
}

function ValidatePostcode()
{
    if (document.getElementById('postcode').value != "" && IsValidPostcode(document.getElementById('postcode').value))
    {
        document.getElementById('ErrPostcode').style.display = "none";
        document.getElementById('ErrPostcode').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrPostcode').style.display = "";
        document.getElementById('ErrPostcode').innerHTML = errorPostcode;
        return false;
    }
}

function ValidateFirstName()
{
    if (document.getElementById('firstname').value != "")
    {
        document.getElementById('ErrFirstName').style.display = "none";
        document.getElementById('ErrFirstName').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrFirstName').style.display = "";
        document.getElementById('ErrFirstName').innerHTML = errorFirstName;
        return false;
    }
}

function ValidateLastName()
{
    if (document.getElementById('lastname').value != "")
    {
        document.getElementById('ErrLastName').style.display = "none";
        document.getElementById('ErrLastName').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrLastName').style.display = "";
        document.getElementById('ErrLastName').innerHTML = errorLastName;
        return false;
    }
}

function ValidateSchoolName()
{
    if (document.getElementById('school').value != "")
    {
        document.getElementById('ErrSchool').style.display = "none";
        document.getElementById('ErrSchool').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrSchool').style.display = "";
        document.getElementById('ErrSchool').innerHTML = errorSchoolName;
        return false;
    }
}

function ValidateEmail()
{
    var email = document.getElementById('email').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
          (AllValidEmailChars(email)) ) // all characters must be valid
    {
        document.getElementById('ErrEmail').style.display = "none";
        document.getElementById('ErrEmail').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrEmail').style.display = "";
        document.getElementById('ErrEmail').innerHTML = errorEmail;
        return false;
    }
}

function ValidateTelephone()
{
    if (document.getElementById('telephone').value != "" )
    {
        document.getElementById('ErrTelephone').style.display = "none";
        document.getElementById('ErrTelephone').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrTelephone').style.display = "";
        document.getElementById('ErrTelephone').innerHTML = errorTelephone;
        return false;
    }
}

function ValidateAddressLine1()
{
    if (document.getElementById('address1').value != "")
    {
        document.getElementById('ErrAddress1').style.display = "none";
        document.getElementById('ErrAddress1').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrAddress1').style.display = "";
        document.getElementById('ErrAddress1').innerHTML = errorAddr1;
        return false;
    }
}

function ValidateAddressLine2()
{
    if (document.getElementById('address2').value != "")
    {
        document.getElementById('ErrAddress2').style.display = "none";
        document.getElementById('ErrAddress2').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrAddress2').style.display = "";
        document.getElementById('ErrAddress2').innerHTML = errorAddr2;
        return false;
    }
}

function ValidateAddressLine3()
{
    if (document.getElementById('address3').value != "")
    {
        document.getElementById('ErrAddress3').style.display = "none";
        document.getElementById('ErrAddress3').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrAddress3').style.display = "";
        document.getElementById('ErrAddress3').innerHTML = errorCity;
        return false;
    }
}

function ValidateNatureOfEnquiry()
{
    if (document.getElementById('nature').value != "")
    {
        document.getElementById('ErrNature').style.display = "none";
        document.getElementById('ErrNature').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrNature').style.display = "";
        document.getElementById('ErrNature').innerHTML = errorNatureOfEnquiry;
        return false;
    }
}

function ValidateEnquiry()
{
    if (document.getElementById('enquiry').value != "")
    {
        document.getElementById('ErrEnquiry').style.display = "none";
        document.getElementById('ErrEnquiry').innerHTML = "";
	    return true;
    }
    else
    {
        document.getElementById('ErrEnquiry').style.display = "";
        document.getElementById('ErrEnquiry').innerHTML = errorEnquiry;
        return false;
    }
}

function 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 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;
}

