var non_error_field_color = "#fff";
var error_field_color = "#f9a5a5";

function err_msg(element_name, msg) {
	$('err_' + element_name).innerHTML = msg;
}


function validate_email(field) {
	with (field) {
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		if (apos<1||dotpos-apos<2) {
			return false;
		} else {
			return true;
		}
	}
}

// ******************************* VALIDATE PHONE ***************************************

// Validate Phone
function validate_phone(field) {
	p_bool = true;
	check_if_international = false;
	
	if ( $('' + field + '').value=='') {
		$('' + field + '').style.backgroundColor = error_field_color;
		err_msg(field, '&nbsp;Required');
		p_bool=false;
		return p_bool;
	} else {
		$('' + field + '').style.backgroundColor = non_error_field_color;
		err_msg(field, '');
	}
	
	if ( !$('' + field + '').value.match(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/) ) {
		$('' + field + '').style.backgroundColor = error_field_color;
		err_msg('' + field + '', '&nbsp;Invalid');
		p_bool=false;
		check_if_international = true;
	} else {
		$('' + field + '').style.backgroundColor = non_error_field_color;
		err_msg('' + field + '', '');
	}
	
	if ( check_if_international ) {
		if ( checkInternationalPhone( $('' + field + '').value )==false ) {
			$('' + field + '').style.backgroundColor = error_field_color;
			err_msg('' + field + '', '&nbsp;Invalid');
			p_bool=false;
		} else {
			$('' + field + '').style.backgroundColor = non_error_field_color;
			err_msg('' + field + '', '');
			p_bool=true;
		}
	}
	return p_bool;
}
// 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 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 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;
		}
		return true; // All characters are numbers
	}
	function trim(s) {  
		var i;
		var returnString = "";
		// Search through strings characters one by one
		// If character is not a whitespace, append to returnString
		for (i = 0; i < s.length; i++) {   
			// Check that current character isnt whitespace.
			var c = s.charAt(i);
			if (c != " ") returnString += c;
		}
		return returnString;
	}
	function stripCharsInBag(s, bag) {
		var i;
		var returnString = "";
		// Search through strings characters one by one.
		// If character is notin bag, append to returnString.
		for (i = 0; i < s.length; i++) {   
			// Check that current character isnt whitespace.
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}
// ******************************* END VALIDATE PHONE ***************************************