/****************************************************************
 * Global Variables												*
 ****************************************************************/
var numb			= '0123456789';
var lwr				= 'abcdefghijklmnopqrstuvwxyz';
var upr				= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var keys			= '!@#$%^&*()-_+=[]\{}|;\':",./<>?\n\t\r ' ;


/****************************************************************
 * Main Functions												*
 ****************************************************************/

function validateForm() {
	
	var allGood	;
	var errorObj 		= getObj('formError') ;
	var contactName 	= getObj('contactName').value ;
	var emailAddress 	= getObj('emailAddress').value ;
	var emailSubject 	= getObj('emailSubject').value ;
	var emailBody 		= getObj('emailBody').value ;
	
	var goodName		= ((contactName != "")  && isAlphaSpaceDot(contactName)) ;
	var goodEMail		= ((emailAddress != "") && isEmail(emailAddress)) ;
	var goodSubject		= ((emailSubject != "") && isPrintable(emailSubject)) ;
	var goodBody		= ((emailBody != "")    && isPrintable(emailBody)) ;

	allGood = (goodName && goodEMail && goodSubject && goodBody) ;
	
	if (!allGood) {
		
		var errorMsg = '<BR><BR>All fields are required!<BR>' ;
		if (!goodName)		{ errorMsg += "Please provide a contact name<BR>" ; }
		if (!goodEMail)		{ errorMsg += "Please provide a contact email<BR>" ; }
		if (!goodSubject)	{ errorMsg += "Please provide a subject for your message<BR>" ; }
		if (!goodBody)		{ errorMsg += "Please provide a message to send<BR>" ; }
		
		errorObj.style.overflow 	= 'visible' ;
		errorObj.style.visibility	= 'visible' ;
		errorObj.style.fontSize		= '14px' ;
		
		errorObj.innerHTML			= errorMsg ;
	}
	
	return allGood ;
}


/****************************************************************
 * Helper Functions												*
 ****************************************************************/

function getObj(obj_id) {
	
	var obj = null ;
	
	if (document.getElementById)	{ obj = document.getElementById(obj_id) ; }
	else if (document.all)			{ obj = document.all[obj_id] ; }
	
	return obj ;
}

function isValid(parm,val) {
	if (parm == "")	{ return false ; }
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) { return false ; }
	}
	return true;
}

function isAlphaSpaceDot(parm)	{ return isValid(parm,lwr+upr+' '+'.') ; }
function isPrintable(parm)		{ return isValid(parm,lwr+upr+numb+keys) ; }

function isEmail(parm) {
	
	var len = parm.length ;
	var foundat = false ;
	
	if (!isValid(parm,lwr+upr+numb+'-'+'_'+'@'+'.')) { return false ;}
	
	for(i=0; ((i<len) && !foundat); i++) {
		foundat = ((parm.charAt(i) == '@') && (i != (len - 1))) ;
	}
	
	return foundat ;
}
