/**
 * Written by Rob Schmitt, The Web Developer's Blog 
 * http://webdeveloper.beforeseven.com/ 
 */
 
/** 
 * The following variables may be adjusted 
 */
var active_color = '#000'; // Colour of user provided text
var inactive_color = '#bababa'; // Colour of default text

/** 
 * No need to modify anything below this line 
 */
$(document).ready(function() {  
	$("input[type=text],input[type=textarea]").css("color", inactive_color);
	$("input[type=text],input[type=textarea]").css("font-style", 'italic');
	var default_values = new Array();  
	$("input[type=text],input[type=textarea]").focus(function() {    
		if (!default_values[this.id]) {      
			default_values[this.id] = this.value;    
			}    
		if (this.value == default_values[this.id]) {      
			this.value = '';      
			this.style.color = active_color;   
			this.style.fontStyle = 'normal';
			}    
		$(this).blur(function() {      
			if (this.value == '') {        
				this.style.color = inactive_color;        
				this.style.fontStyle = 'italic';
				this.value = default_values[this.id];      
			}    });  
			
		});
});

$('#searchBox').keypress(function(event){            
	if(event.keyCode == '13' || event.which == '13')
	{
		if(elementHasValue('#searchBox'))
		{
			document.getElementById('searchForm').submit(); return false;
		}	
	}
});  

function elementHasValue(elementName)
{
	return ($(elementName).val().length > 0 && $(elementName).val() != $(elementName)[0].title);
}

function loginFormCheck() 
 {

		if (validateNotEmpty(document.login.email_addr.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your email address.");
        		document.login.email_addr.focus();
        		document.login.email_addr.select();
        		return false;		
        	}
		if (validateNotEmpty(document.login.user_pass.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your password.");
        		document.login.user_pass.focus();
        		document.login.user_pass.select();
        		return false;		
        	}		

	}

function newUserFormCheck() 
 {

		if (validateNotEmpty(document.Register.FirstName.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your first name.");
        		document.Register.FirstName.focus();
        		document.Register.FirstName.select();
        		return false;		
        	}
			
		if (validateNotEmpty(document.Register.LastName.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your last name.");
        		document.Register.LastName.focus();
        		document.Register.LastName.select();
        		return false;		
        	}
			
		if (validateNotEmpty(document.Register.Company.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your Company's name.");
        		document.Register.Company.focus();
        		document.Register.Company.select();
        		return false;		
        	}			
						
		if (validateNotEmpty(document.Register.EmailAddress.value) == validateNotEmpty(""))
        	{
        		alert("Please enter an email address.");
        		document.Register.EmailAddress.focus();
        		document.Register.EmailAddress.select();
        		return false;		
        	}		
        if (validateEmail(document.Register.EmailAddress.value) == false)
			{
        		alert("The format of your email address does not apear to be valid.  Please correct this and try again.");
        		document.Register.EmailAddress.focus();
        		document.Register.EmailAddress.select();
        		return false;					
			}	
        	
        	if (validateNotEmpty(document.Register.Password.value) == validateNotEmpty(""))
        	{
        		alert("Please enter a password.");
        		document.Register.Password.focus();
        		document.Register.Password.select();
        		return false;		
        	}
			
        	if (validateNotEmpty(document.Register.Confirm_Password.value) == validateNotEmpty(""))
        	{
        		alert("Please re-enter your password.");
        		document.Register.Confirm_Password.focus();
        		document.Register.Confirm_Password.select();
        		return false;		
        	}			
			
	}
	
function resetPasswordFormCheck() 
 {

		if (validateNotEmpty(document.lost.EmailAddress.value) == validateNotEmpty(""))
        	{
        		alert("Please enter your email address.");
        		document.lost.EmailAddress.focus();
        		document.lost.EmailAddress.select();
        		return false;		
        	}

	}

	
function validateNotEmpty( strValue ) {
/************************************************
DESCRIPTION: Validates that a string is not all
  blank (whitespace) characters.
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/
   var strTemp = strValue;
   strTemp = trimAll(strTemp);
   if(strTemp.length > 0){
     return true;
   }  
   return false;
}
function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes leading and trailing spaces.

PARAMETERS: Source string from which spaces will
  be removed;

RETURNS: Source string with whitespaces removed.
*************************************************/ 
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }
    
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}	

function PassConfirm() {
	if (document.Register.Password.value !=
	document.Register.Confirm_Password.value) {
	alert("Your passwords do not match, please re-enter.");
	return false;
	}
	else
		return true;
}


/* CHECKS Email for correct formatting */

function validateEmail(strValue) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid email pattern. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
   
REMARKS: Accounts for email with country appended
  does not validate that email contains valid URL
  type (.com, .gov, etc.) or valid country suffix.
*************************************************/
var objRegExp  = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
//old - /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i; 
  //check for valid email
  return objRegExp.test(strValue);
}
