// Validate Phone Number
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 to validate email addresses
function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

	if (str.indexOf(at)==-1) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.indexOf(at,(lat+1))!=-1) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.indexOf(dot,(lat+2))==-1) {
		alert('Invalid E-mail address');
		return false;
	}

	if (str.indexOf(" ")!=-1) {
		alert('Invalid E-mail address');
		return false;
	}
	return true					
}


// User Details
function validate() {
	var Phone=document.form.Telephone
	var emailID=document.form.EmailAddress

	if (document.form.FullName.value <1) {
		alert('Please type in your Full Name and Surname.')
		document.form.FullName.style.background = 'Yellow';
		document.form.FullName.style.borderColor = 'Red';

		document.form.FullName.focus()
		document.form.FullName.select()
		return false
	}         

	if ((emailID.value==null)||(emailID.value=="")) {
		alert('Please Enter your Email address');
		document.form.EmailAddress.style.background = 'Yellow';
		document.form.EmailAddress.style.borderColor = 'Red';

        document.form.EmailAddress.focus()
        document.form.EmailAddress.select()
		return false;
	}

	if (echeck(emailID.value)==false){
		emailID.value=""
		document.form.EmailAddress.style.background = 'Yellow';
		document.form.EmailAddress.style.borderColor = 'Red';

        document.form.EmailAddress.focus()
        document.form.EmailAddress.select()
		return false;
	}

	if ((Phone.value==null)||(Phone.value=="")) {
		document.form.Telephone.style.background = 'Yellow';
		document.form.Telephone.style.borderColor = 'Red';

        document.form.Telephone.focus();
        document.form.Telephone.select();

		alert('Please Enter your Phone Number');
		return false;
	}

	if (checkInternationalPhone(Phone.value)==false) {
		document.form.Telephone.style.background = 'Yellow';
		document.form.Telephone.style.borderColor = 'Red';

        document.form.Telephone.focus();
        document.form.Telephone.select();

		alert('Please Enter a Valid Phone Number');
		return false;
	}

	if (document.form.QuestionComments.value <1) {
		alert('Please type in your question / comment.')
		document.form.QuestionComments.style.background = 'Yellow';
		document.form.QuestionComments.style.borderColor = 'Red';

		document.form.QuestionComments.focus()
		document.form.QuestionComments.select()
		return false
	}         
		
}

function BackButton_Onclick() {
	window.location="/cgi-bin/contactus";
}

