﻿//common js functions
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

function emailTest(address)
{
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(address);
}

function isValidZipCode(value) 
{
    var re = /^\d{5}?$/;
    return (re.test(value));
}

function isValidState(value) 
{
    var re = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i;
    return (re.test(value));
}

function glCheckInt(numberVal){
	if (isNaN(numberVal) || numberVal == "")
	{
		return false;
	}
	else
	{
		if (numberVal.indexOf('.') != -1)
		{
			return false;
		}
		else
		{
			if(numberVal>=0)
				return true;
			else
				return false;
		}
	}
}

function glCheckFloat(numberVal){
	if (isNaN(numberVal) || numberVal == "") {
		return false;
	}else{
		return true;
	}
}

function glCheckRealInt(numberVal)
{
	if (isNaN(numberVal) || numberVal == "")
	{
		return false;
	}
	else
	{
		if (numberVal.indexOf('.') != -1)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}

function EPDGenericValidator(elemsToCheck, elemsToCheckName)
{
    var tmpItmArry = elemsToCheck.split("|");
    var tmpNameArry = elemsToCheckName.split("|");
    
    for(var i=0;i<tmpItmArry.length;i++)
    {
        if( tmpItmArry[i].indexOf("*") > -1 )
        {
            var tmpElem = document.getElementById(tmpItmArry[i]);
            if( tmpElem.SelectedIndex == - 1)
            {
                alert(tmpNameArry[i] + " is required.");
                return false;
            }
        }
        else if( tmpItmArry[i].indexOf("~") > -1 )
        {
            var tmpElemNCount = tmpItmArry[i].split("~");
            var found = false;
            for(var j=0;j<tmpElemNCount[1];j++)
            {
                var tmpElem = document.getElementById(tmpElemNCount[0] + "_" + j);
                if( tmpElem.checked )
                {
                    found = true;
                    break;
                }
            }
            if( !found )
            {
                alert(tmpNameArry[i] + " is required.");
                return false;
            }
        }
        else
        {
            var tmpElem = document.getElementById(tmpItmArry[i]);
            if( tmpElem.value.trim() == "" )
            {
                alert(tmpNameArry[i] + " is required.");
                tmpElem.focus();
                return false;
            }
        }        
    }
    
    return true;
}

function valCompVals(elemOneId, elemTwoId, typeToCheck)
{
    var valOne = document.getElementById(elemOneId).value;
    var valTwo = document.getElementById(elemTwoId).value;
    if( valOne.trim() != "" && valTwo.trim() != "")
    {
        switch(typeToCheck)
        {
            case 'dbl':
                if( glCheckFloat(valOne) && glCheckFloat(valTwo) )
                {
                    if( parseFloat(valOne) > parseFloat(valTwo) )
                        return false;
                }
            
                break;
            case 'intp':
                if( glCheckInt(valOne) && glCheckInt(valTwo) )
                {
                    if( parseInt(valOne) > parseInt(valTwo) )
                    {
                        return false;
                    }
                }
            
                break;
        }
    }
    
    return true;
}

function valZip(sender, args)
{
    args.IsValid = true;
    if( args.Value.trim() == "" )
        return;	            
    var tmpItems = args.Value.split(',');
    for(var i=0;i<tmpItems.length;i++)
    {
        if( !isValidZipCode(tmpItems[i].trim()) )
        {
            args.IsValid = false;
            return;
        }                    
    }
}


