//requires jQuery

//wait for the DOM to be loaded
jQuery( document ).ready( function() {
	
	//TABLES
	jQuery( 'table tbody tr:nth-child(even)' ).addClass( 'alt' );
	
	//IE6FIX
	$( 'body.richMediaAds div#mainContent h2' ).eq(1).before( '<div id="ie6fix01"></div>' );
	
} );

//*******************************************************************************************
//start FORMS
//*******************************************************************************************

//validate forms
function fValidateForm( pmFormId )
{
	//expecting form element parameter
	//get form object
	var myFormID = pmFormId;
	var myForm = $( '#' + myFormID );
	
	//remove all error messages
	var myErrorList = $( 'p.errorMessage' ).remove();
	//alert(myErrorList.length);
	
	//track first element to fail validation 
	var myAlphaErrorElement;
	
	//track return
	var myReturn = false;
	
	//get actions for each form
	switch(myFormID)
	{
		case( 'contactForm' ):
		
			//NAME required
			var myElement = $( '#name' );
			if( myElement[0].value == '' ) { fSetError( myElement, "NAME field required" ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			
			//EMAIL required
			var myElement = $( '#email' );
			//if( myElement[0].value == '' ) { fSetError( myElement, "EMAIL field required" ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			if( fValidateEmail( myElement[0].value ) != true ) { fSetError( myElement, fValidateEmail( myElement[0].value ) ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			
			//MESSAGE required
			var myElement = $( '#message' );
			if( myElement[0].value == '' ) { fSetError( myElement, "MESSAGE field required" ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			
			//set return
			myReturn = ( myAlphaErrorElement == undefined );
			
			break;
		
		case( 'keywordTest' ):
		
			//URL required
			var myElement = $( '#url' );
			if( myElement[0].value == '' ) { fSetError( myElement, "URL field required" ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			
			//KEY WORD or PHRASE required
			var myElement = $( '#keyword' );
			if( myElement[0].value == '' ) { fSetError( myElement, "KEY WORD OR PHRASE field required" ); if( myAlphaErrorElement == undefined ){ myAlphaErrorElement = myElement; }; };
			
			//open window if form validated
			if( myAlphaErrorElement == undefined ) { window.open('','seotestpop','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=750,height=500'); };
			
			//set return
			myReturn = ( myAlphaErrorElement == undefined );
		
			break;
	};//end switch
	
	//set focus of first error element if required
	if( myAlphaErrorElement != undefined) { myAlphaErrorElement.focus(); };
	
	return( myReturn );
};//end function fValidate

//handles validating an email address
function fValidateEmail( pmEmail )
{
	//get email address to validate
	var myEmail = pmEmail;
	
	//EMPTY EMAIL
	//check if email is empty
	if(myEmail==""){return('EMAIL field is required')};
	
	//INVALID CHARACTERS
	//set invalid email character set
	var myInvalidCharSet = " /:,;";
	
	//check for invalid chars in email
	for(i=0;i<myInvalidCharSet.length;i++){
		var myChar = myInvalidCharSet.charAt(i);
		if(myEmail.indexOf(myChar)>-1){return('EMAIL field entry does not appear to be in the right format')};
	}//end for
	
	//PRESENCE AND POSITION OF @ SYMBOL
	//get position of first at symbol from second char of email
	var atPos = myEmail.indexOf("@",1);
	//check for at least one @ symbol later than second char
	if(atPos==-1){return('EMAIL field entry does not appear to be in the right format')};
	//second @ symbol present after first @ symbol not valid
	if(myEmail.indexOf("@",atPos+1) != -1){return('EMAIL field entry does not appear to be in the right format')};
	
	//PRESENCE AND POSITION OF PERIOD SYMBOL
	//get position of first period symbol from after first @ symbol
	var periodPos = myEmail.indexOf(".",(atPos+2));
	//period required after @ symbol
	if(periodPos==-1){return('EMAIL field entry does not appear to be in the right format')};
	//if not enough space for TLD (Top Level Domain) then send error
	if(periodPos+3>myEmail.length){return('EMAIL field entry does not appear to be in the right format')};
	
	//email validates
	return(true);
}//end function f_formValidateEmail

//validate URL string
function fValidateUrl( pmUrl )
{
	var myUrl = pmUrl;
	var myRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   	return myRegExp.test( myUrl );
};//end function fValidateUrl

//handles setting error message on a form element
function fSetError( pmElement, pmMessage )
{
	//get element - expecting DOM element
	var myElement = pmElement;
	if( !myElement ){ return(false); };
	
	//get error message
	var myMessage = pmMessage;
	
	//get element parent
	var myElementDiv = myElement.parent();
	if( !myElementDiv ){ return(false); };
	
	//append error element to parent
	myElementDiv.append('<p class="errorMessage">' + myMessage + '</p>');
	
	return( true );
};//end function fSetError

/*
function fSetElementError(pmElement, pmMessage)
{
	var myElement = pmElement;
	var myMessage = pmMessage;
	var myElementDiv = myElement.parentNode;
	if(!myElementDiv){ return(false); };
	ClassUtil.addClass( myElementDiv, 'error' );
	
	var myErrPara = document.createElement( 'p' );
	myErrPara.innerHTML = myMessage;
	ClassUtil.addClass( myErrPara, 'errorMessage' );
	myElementDiv.appendChild(myErrPara);
	
	return(true);
};//end function
*/

//*******************************************************************************************
//end FORMS
//*******************************************************************************************