﻿// ----------------------------------------------------
// General purpose regular expressions together with
// regular expression checking functions
// created: Sun. 21-May-2006
// author: asaleh
// ----------------------------------------------------

// variables
var regExSearchText = /^(?:[ -~]{3,50}(?:$|(?:[\w!?.])\s))/ // one or more ACSII non white-space characters (ref: http://regexadvice.com/blogs/mash/archive/2005/02/09/324.aspx )
var regExFirstLastName = /^(?:[ -~]{3,50}(?:$|(?:[\w!?.])\s))/ // one or more ACSII non white-space characters (ref: http://regexadvice.com/blogs/mash/archive/2005/02/09/324.aspx )
var regExEmailAddress = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/

// functions
function IsSearchTextOK(searchText)
{
    if (IsMatch(searchText, regExSearchText))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function IsNameOK(name)
{
    if (IsMatch(name, regExFirstLastName))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function IsEmailOK(email)
{
    if (IsMatch(email, regExEmailAddress))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function IsMatch(anInputField, aRegEx)
{   
    if (anInputField.value.match(aRegEx)) 
    {
        return true;    //alert("Successful match");
    } 
    else 
    {
        return false;   //alert("No match");
    }        
}

// -----------------------------------------------------
// Notes:
// -----------------------------------------------------

// The object-oriented approach:
// Regex.IsMatch(aString, "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 

// Using the single RegExp object in a Javascript thread
// don't use literals here for escaping reasons!
// var regEx = new RegExp(document.demoMatch.regex.value);

