// JavaScript Document

function isEmail(email) 
{
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^[^\s].+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)[^\s]$/; // valid
	return (!reg1.test(email) && reg2.test(email))
}

function checkCharsArray(fieldStr)
 {
 	var arr = new Array("~","#", "%", "^", "*", "(", ")", "{", "}", "[", "]", "|", "+", "<", ">", "/", "|", "=", ":");
	var str = document.getElementById(fieldStr).value.toString();
	var errorStr = "";
		for (x in arr)
		{		
			for(var i = 0; i<=str.length; i++)
			{
				if(str[i] == arr[x])
				{
					errorStr += str[i];
				}				
			}
		}

	return errorStr;
}

function fnValidateEmailField(fieldID)
{
	
		var strRegExp = /^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/;
		var fieldID = document.getElementById(fieldID).id;
		var strfieldID = document.getElementById(fieldID).value;
		var strText = strfieldID.toString();
	
		if(strRegExp.test(strText)==true)
		{
			return true;
		}
		else
		{
			return false;
		}
}
function fnValidateTextField(fieldID)
{

	var strRegExp = /^([a-zA-Z0-9_\-.])+$/;
	var fieldID = document.getElementById(fieldID).id;
	var strfieldID = document.getElementById(fieldID).value;
	var strText = strfieldID.toString();
	strText = strText.trim();
	if(strRegExp.test(strText)==true)
	{
		return true;
	}
	else
	{
		return false;
	}
}
function fnValidatePhoneField(fieldID)
{

	var strRegExp = /^[2-9]\d{2}-\d{3}-\d{4}$/;
	var strRegExp2 = /^[2-9]\d{2}\d{3}\d{4}$/;
	var fieldID = document.getElementById(fieldID).id;
	var strfieldID = document.getElementById(fieldID).value;
	var strText = strfieldID.toString();

	if((strRegExp.test(strText)==true)||(strRegExp2.test(strText)==true))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function fnValidateTextAreaField(fieldID)
{

//	var strRegExp = /^[^\s][a-zA-Z0-9_\-.\s]+[^\s]$/;
	var strRegExp = /^[^\s][a-zA-Z0-9_\-.\s]*[^\s]$/;
	var fieldID = document.getElementById(fieldID).id;
	var strfieldID = document.getElementById(fieldID).value;
	var strText = strfieldID.toString();

	if(strRegExp.test(strText)==true)
	{
		return true;
	}
	else
	{
		return false;
	}
}
function fnValidateTextCommentsAreaField(fieldID)
{

	var strRegExp = /^([a-zA-Z0-9_\-.\s\!\&\@\?\;\:\,])+$/;
	var fieldID = document.getElementById(fieldID).id;
	var strfieldID = document.getElementById(fieldID).value;
	var strText = strfieldID.toString();

	if(strRegExp.test(strText)==true)
	{
		return true;
	}
	else
	{
		return false;
	}
}
function fnValidateForm(frm) 
{   

	var isError = false;
	var errorMessage = "";
	var isStrArrError = false;
	var errorStrArMsg= "";
	if(frm.user_name.value == "")
	{	
		isError = true;
		errorMessage += '\n Name'
	}
	else 
	{
		if (!fnValidateTextAreaField("user_name"))
		{
			isError = true;
			errorMessage += '\n Invalid Name'
		}
	}
	if(frm.user_company.value != "")
	{
		if (!fnValidateTextAreaField("user_company"))
		{
			isError = true;
			errorMessage += '\n Invalid Company'
		}
	}
	
	if(frm.user_email.value == ""){
		isError = true;
		errorMessage +='\n Email'
	} else {
		if(!fnValidateEmailField("user_email")){
			isError = true;
			errorMessage +='\n Invalid Email';
		}
	} 
	if(frm.user_phone.value != "")
	{
		if(!fnValidatePhoneField("user_phone"))
		{
			isError = true;
			errorMessage += '\n Invalid Phone'
			frm.user_phone.value=''	
		}
	}
	if(frm.user_subject.value == "")
	{
		isError = true;
		errorMessage += '\n Subject'
	}
	else
	{
		if(!fnValidateTextAreaField("user_subject"))
	 	{
			isError = true;
			errorMessage += '\n Invalid Subject'
		}	
	}
	if(frm.user_comments.value!="")
	{
		 var strFunc = checkCharsArray("user_comments");
		if(!fnValidateTextCommentsAreaField("user_comments"))
		{
			isError = true;
			errorMessage += '\n Invalid Comment'		
		}
		if(strFunc!='')
		{
			isStrArrError = true;
			errorStrArMsg = strFunc;
		}
	}
	if(frm.security_code.value == "") {
		isError = true;
		errorMessage += '\n Verification Code'	
	}
	if(isStrArrError == true)
	{
		alert('Comments field contains invalid character(s): '+errorStrArMsg+'.');
		return false;
	}
	if(isError == true) {

		alert('Missing required fields:\n' + errorMessage);
		return false;

	}
return true;
}

function fnResetFields(frm) {
	frm.user_name.value = '';
	frm.user_company.value = '';
	frm.user_email.value = '';
	frm.user_phone.value = '';
	frm.user_subject.value = '';
	frm.user_comments.value = '';
	frm.security_code.value = '';
}

function fnOpenMapWindow() 
{
	var testwindow = window.open ("GoogleMap.php", "Map", "location=1,menubar=no,resizable=no,status=no,scrollbars=no,width=400,height=400,");
	testwindow.moveTo(350,140);
}