﻿// Validates digital input.
function IsDigitalInput()
{
    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) ||
         event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39)
        {
            event.returnValue = true;
        }
        else
            event.returnValue = false;
}

// Validates e-mail format.
function IsEmail(strValue)
{
    var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
    var isValid = false;
    
    if (objRegExp.test(strValue))
	    isValid = true;
	    
	return isValid;
}

// Validate phone number.
function IsPhone(strValue)
{
    var objRegExp  = /^([0-9\-\s]*)[0-9\s]$/;
    var isValid = false;
    
    strValue = trim(strValue);
    
    if (strValue.length >= 8)
    {
        if (strValue.substring(0, 1) == "+" || strValue.substring(0, 1) == "0")
        {
            if (objRegExp.test(strValue.substring(1, strValue.length)))
                isValid = true;
        }
    }
        
    return isValid;
}

// Validates integer format.
function IsInteger(strValue)
{
    var objRegExp  = /(^-?\d\d*$)/;
    var isValid = false;

    if (objRegExp.test(strValue))
        isValid = true;
        
    return isValid;
}

// Validates numeric format.
function IsNumeric(strValue)
{
    var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
    var isValid = false;
    
    if (objRegExp.test(strValue))
        isValid = true;
        
    return isValid;
}

// Validates Europe date format.
function IsEUDate(strValue)
{
    var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
    var isValid = false;
    var arrayDate;
    var intDay;
    var intYear;
    var intMonth;
    var arrayLookup;
    var booLeapYear;
 
    if (objRegExp.test(strValue))
    {
        arrayDate = strValue.split(RegExp.$1);
	    intDay = parseInt(arrayDate[0],10);
	    intYear = parseInt(arrayDate[2],10);
        intMonth = parseInt(arrayDate[1],10);
	
	    if (intMonth > 12 || intMonth < 1)
		    isValid = false;
		else
		{
            arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
                            '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
  
            if (arrayLookup[arrayDate[1]] != null)
            {
                if (intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
                    isValid = true;
            }

            booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
            if (((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <= 28)) && intDay !=0)
                isValid = true;
        }
    }
    
    return isValid;
}

// Validates empty value.
function IsEmpty(strValue)
{
    var isValid = true;

    if (trim(strValue) != "")
	    isValid = false;
	
	return isValid;
}

// Trim string.
function trim(stringToTrim)
{
	return stringToTrim.replace(/^\s+|\s+$/g, "");
}

// Left trim string.
function ltrim(stringToTrim)
{
	return stringToTrim.replace(/^\s+/, "");
}

// Right trim string.
function rtrim(stringToTrim)
{
	return stringToTrim.replace(/\s+$/, "");
}