function trim(strValue)
{
    while (strValue.charAt(0) == ' ')
    {
        strValue = strValue.substring(1, strValue.length);
    }

    while (strValue.charAt(strValue.length - 1) == ' ')
    {
        strValue = strValue.substring(0, strValue.length - 1);
    }

    return strValue;
}


function isNumeric(input)
{
    if (input.length == 0)
    {
        return false;
    }

    for (var i = 0; i < input.length; i++)
    {
        if (((input.substring(i, i + 1) < '0') || (input.substring(i, i + 1) > '9')) && input.substring(i, i + 1) != '.' && input.substring(i, i + 1) != '-')
        {
            return false;
        }
    }

    return true;
}


function isEmpty(input)
{
    return (trim(input) == "");
}


function isSelected(lstInput)
{
    if (lstInput.type == "select-one")
    {
        return (lstInput.options[lstInput.selectedIndex].value == "" || lstInput.options[lstInput.selectedIndex].value == "error");
    }
    else if (lstInput.type == "select-multiple")
    {
        return (lstInput.selectedIndex == -1);
    }
}

function isEmail(emailStr)
{
    var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var firstChars = validCharsvar;
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom="(" + firstChars + validChars + "*" + ")";
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray = emailStr.match(emailPat);

    if (matchArray==null)
    {
        return false;
    }
    
    var user=matchArray[1];
    var domain = matchArray[2];
    
    if (user.match(userPat)==null)
    {
        return false;
    }

    var IPArray = domain.match(ipDomainPat);

    if (IPArray!=null)
    {
        for (var i=1;i<=4;i++)
        {
            if (IPArray[i]>255) 
            {
                return false;
            }
        }
        return true;
    }

    var domainArray = domain.match(domainPat);

    if (domainArray==null) 
    {
        return false;
    }
    var atomPat = new RegExp(atom, "g");
    var domArr = domain.match(atomPat);
    var len = domArr.length;

    if (domArr[domArr.length - 1].length < 2 || domArr[domArr.length - 1].length > 4)
    {
        return false;
    }

    if (domArr[domArr.length - 1].length == 3 && len < 2)
    {
        return false;
    }

    return true;
}

function isDate(dateStr)
{
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
    var matchArray = dateStr.match(datePat);

    if (matchArray == null)
    {
        return false;
    }

    month = matchArray[1];
    day = matchArray[3];
    year = matchArray[4];

    if (month < 1 || month > 12)
    {
        return false;
    }

    if (day < 1 || day > 31)
    {
        return false;
    }

    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31)
    {
        return false;
    }

    if (month == 2)
    {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));

        if (day > 29 || (day == 29 && !isleap))
        {
            return false;
        }
    }

    return true;
}

function xreplace(checkMe)
{
    var temp = checkMe;
    var i = temp.indexOf(" ");

    while (i > -1)
    {
        temp = temp.replace(" ", "");
        i = temp.indexOf(" ", i + "".length + 1);
    }

    return temp;
}

function ValidSecurityCode(nameregex)
{
    re = new RegExp(nameregex);

    for (i = 0; i < document.forms[0].elements.length; i++)
    {
        elm = document.forms[0].elements[i];

        if (elm.type == 'text')
        {
            if (re.test(elm.name))
            {
                if (isNaN(elm.value))
                {
                    document.forms[0].elements[i].value = "";
                }
            }
        }
    }
}