// JavaScript Document
$(document).ready(function(){
	
	// Function to Validate the Contact Us Form
	
	$("form#contact_us_form").submit(function(){
		var error="";
		var name=jQuery.trim($("#name").val() );
		var email=jQuery.trim( $("#email").val() );
		var phone=jQuery.trim( $("#phone").val() );
		var msg=jQuery.trim( $("#msg").val() );
		if (!(name)) {
			error += "-Please enter your name \n";
		}
		if (!(email)) {
			error += "-Please enter your email address\n";
			} else {
					if(!isValidEmailAddress(email)) {
						error += "-Please enter a valid email address\n";
						$("#email").val("");
						}
			}
		if (!(phone)) {
			error += "-Please enter your phone number\n";
			} else {	
					if(checkInternationalPhone(phone)==false) {
						error+= "-Please enter a valid phone number\n";
						$("#phone").val("");
						}
			}
		if (!(msg)) {
			error += "-Please enter your message\n";
		}
		if (error) {
			alert("Check errors:\n" + error);
			return false;
		}
		var dataStr = $("#contact_us_form").serialize();
		$.ajax({
			type: "post",
			data: dataStr,
			url : "./index.php?opt=contact-us",
			success : function(data){
				if (jQuery.trim(data)){	
					$("#Thanks").show();
					$("#errMessage").hide();
					$("#name").val("");
					$("#email").val("");
					$("#phone").val("");
					$("#msg").val("");
					return false;
					} else {
				 	 	$("#errMessage").show();
				 		$("#Thanks").hide();
				  		return false;
				}
			}		
		}); // End of the ajax post
		return false;
		
	}); // End of Contact Us
	return false;
	
});
	/**
	* End of Function to 
	*/
	
function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}

// Declaring required variables for phone
	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);
}

