/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	var bracket=3
	strPhone=trim(strPhone)
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function removeLeadingAndTrailingChar (inputString, removeChar){
	var returnString = inputString;
	if (removeChar.length)
	{
		while(''+returnString.charAt(0)==removeChar)
		{
			returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar)
		{
			returnString=returnString.substring(0,returnString.length-1);
		}
	}
	return returnString;
}

function checkmail(e){
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
	return emailfilter.test(e);
}

function validateEnquiryForm(){
	var name = removeLeadingAndTrailingChar(document.getElementById("name").value," ");	
	var company = removeLeadingAndTrailingChar(document.getElementById("company").value," ");	
	var city = removeLeadingAndTrailingChar(document.getElementById("city").value," ");	
	var country = removeLeadingAndTrailingChar(document.getElementById("country").value," ");	
	var telephone = removeLeadingAndTrailingChar(document.getElementById("telephone").value," ");	
	var mobile = removeLeadingAndTrailingChar(document.getElementById("mobile").value," ");			
	var email = removeLeadingAndTrailingChar(document.getElementById("email").value," ");
	var service = document.getElementById("service").value;
	var enquiry = removeLeadingAndTrailingChar(document.getElementById("enquiry").value," ");
	
	if(name == ""){
		document.getElementById("error").innerHTML = "Please enter your Name";
		document.getElementById("name").focus();
	}else if(company == ""){
		document.getElementById("error").innerHTML = "Please enter your Company";
		document.getElementById("company").focus();
	}else if(city == ""){
		document.getElementById("error").innerHTML = "Please enter your City";
		document.getElementById("city").focus();
	}else if(country == ""){
		document.getElementById("error").innerHTML = "Please enter your Country";
		document.getElementById("country").focus();
	}else if(telephone == "" || checkInternationalPhone(telephone)==false){
		document.getElementById("error").innerHTML = "Please enter valid Telephone No.";
		document.getElementById("telephone").focus();
	}else if(mobile == "" || checkInternationalPhone(mobile)==false){
		document.getElementById("error").innerHTML = "Please enter valid Mobile No.";
		document.getElementById("mobile").focus();
	}else if(email == ""){
		document.getElementById("error").innerHTML = "Please enter your Email ID";
		document.getElementById("email").focus();
	}else if(!checkmail(email)){
		document.getElementById("error").innerHTML = "Please enter a valid Email ID";
		document.getElementById("email").focus();
	}else if(service == "select"){
		document.getElementById("error").innerHTML = "Please select a Service";
		document.getElementById("service").focus();
	}else if(enquiry == ""){
		document.getElementById("error").innerHTML = "Please enter your Enquiry";
		document.getElementById("enquiry").focus();
	}else{
		return true;
	}
	
	return false;
}
