
var myErrors        = new Array();
var myErrorCount    = 0;

function ValidatePresence( formId, message )
{
	var myError = "";

	var myPattern = /^\s*$/;
			
	if ( myPattern.test( $(formId).value ) == true )
	{
		myError =  message;
	}
    
	return myError;
}
		
function ValidatePattern( formId, pattern, message )

{
	var myError = "";
			
	if ( pattern.test( $(formId).value ) == false )
	{
        myError = message;
	}
			
	return myError;	
}

function ValidateEmail( formId, message )
{
    var myPattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;   
    var myError =  ValidatePattern( formId, myPattern, message );
    
    if ( myError == "" )
    {
        if ( $(formId).value.trim().length > 256 )
        {
            myError = "The email address must be less than 256 characters";
            Errors.AddError( myError );
        }
    }
    
    return myError;
}

function ValidateUKPostcode( formId, message )
{
    $(formId).value = $(formId).value.toUpperCase();
    var myPattern = /(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]) [0-9][ABD-HJLNP-UW-Z]{2})/i;
    return ValidatePattern( formId, myPattern, message );
    
}

function ValidateMoney( formId, message )
{
    var myPattern = /^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?$/;
    return ValidatePattern( formId, myPattern, message );
}


function ValidateMatch( formId, compareFormId, message )
{
    return ( $(formId).value.trim() == $(compareFormId).value ) ? "" : message;
}


function ValidateNotDefault( formId, theDefault, message )
{
    return ( $(formId).value.trim() == theDefault ) ? message : "";
}

function ValidateTelephoneNumber( formId, message, mandatory )
{
    var myMessage = '';
    
    if (mandatory || $(formId).value.trim() != '' )
    {
        var myCheck = $(formId).value.trim().match(/\d/g);
        var myLength = ( myCheck == null ) ? 0 : myCheck.length;
        myMessage = ( myLength < 10 ) ? message : '';
    }
    
    return myMessage;
}

function AddError( message )
{
    if ( message != "" )

    {
        myErrors[myErrorCount++] = message;
    }
}

function ClearErrors() 
{
    myErrors = new Array();
    myErrorCount = 0;
}

function DisplayErrors()
{
    if ( myErrorCount != 0 )

    {
        var myErrorString = "";
        
        for ( i = 0; i < myErrors.length ; i++ )
        {
            myErrorString += "<li><p>" + myErrors[i] + "</p></li>\n";

        }
        
        $("errors").innerHTML = myErrorString;
        $("errorblock").className = "err";
        
        window.location.href = "#errorblock";
    }
    else
    {
        $("errorblock").className = "noerr";
    }
    
    return ( myErrorCount == 0 );
}
