﻿function disableEnterButton(e)
{
    evt = e || window.event;
    if (evt.which == 13 || evt.keyCode == 13)
    {        
        return false;       
    }
}

function validateEmailAddress(field)
{
    var emailAddress = document.getElementById(field).value
    var regex = /^([a-zA-Z0-9])(([a-zA-Z0-9])*([\._\+-])*([a-zA-Z0-9]))*@(([a-zA-Z0-9\-])+(\.))+([a-zA-Z]{2,4})+$/;
    
    if (emailAddress.search(regex) == -1)
    {
        alert('Invalid email address!');
        return false;
    }        
    else
        return true;
    
}

function isDate(dateStr) 
{
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat);

    if (matchArray == null)     
        return false;    

    month = matchArray[1];
    day = matchArray[3];
    year = matchArray[5];

    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 Left(str, n)
{
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0,n);
}

function Right(str, n)
{
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function dateAdd(str, numDaysToAdd)
{
    var date = new Date(str);
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
    var daysLeftToAdd = numDaysToAdd;
    
    while (daysLeftToAdd != 0)
    {       
        //Subtracting days to previous month     
        if (day + numDaysToAdd < 1)
        {
            daysLeftToAdd = numDaysToAdd + day;

            //Jan to Dec
            if (month == 1)
            {
                day = 31;
                month = 12;
                year--;
            }
            //Mar to Feb
            else if (month == 3)
            {
                if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
                    day = 29;
                else
                    day = 28;
                    
                month--;
            }
            //May to Apr, Jul to Jun, Oct to Sept, Dec to Nov
            else if (month == 5 || month == 7 || month == 10 || month == 12)
            {
                day = 30;
                month--;
            }
            //Feb to Jan, Apr to Mar, Jun to May, Aug to Jul, Sept to Aug, Nov to Oct
            else
            {
                day = 31;
                month--;
            }
        } 
        else
        {
            //February
            if (month == 2)  
            {
                var daysInFebruary = 28;
                
                if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
                    daysInFebruary = 29;
                                   
                if (day + numDaysToAdd <= daysInFebruary)
                {
                    day = day + numDaysToAdd;                
                    daysLeftToAdd = 0;
                }
                else
                {
                    daysLeftToAdd = numDaysToAdd - ((daysInFebruary+1) - day);
                    month++;
                    day = 1;
                }
            }
            //April, June, September, November
            else if (month == 4 || month == 6 || month == 9 || month == 11)
            {
                if (day + numDaysToAdd <= 30)
                {
                    day = day + numDaysToAdd;
                    daysLeftToAdd = 0;
                }
                else
                {
                    daysLeftToAdd = numDaysToAdd - ((30+1) - day);
                    month++;
                    day = 1;
                }
            }
            //January, March, May, July, August, October, December
            else
            {
                if (day + numDaysToAdd <= 31)
                {
                    day = day + numDaysToAdd;
                    daysLeftToAdd = 0;
                }
                else
                {
                    daysLeftToAdd = numDaysToAdd - ((31+1) - day);
                    month++;
                    day = 1;
                    
                    if (month == 13)
                    {
                        month = 1;
                        year++;
                    }
                }
            }
        }
    }   
    
    return Right("0" + month, 2) + "/" + Right("0" + day, 2) + "/" + year;     
}

function formatDate(dateObject)
{
    var month = dateObject.getMonth()+1;
    var day= dateObject.getDate();        
    var year = dateObject.getFullYear();
    return Right("0"+month,2) + "/" + Right("0"+day,2) + "/" + year;
}

function openPopup(sURL, sTitle, sOptions)
{
    window.open(sURL, sTitle, sOptions);
}

function autoTab(original, destination, maxLength)
{
    if (document.getElementById(original).value.length == maxLength)
        document.getElementById(destination).focus();
}

function checkForXMLCharacters(field)
{    
    if (field.value.indexOf('&') > -1 ||
        field.value.indexOf('<') > -1 ||
        field.value.indexOf('>') > -1)
    {
        alert("Special characters &, <, and > are not allowed.");
        field.value = field.value.substring(0, field.value.length - 1);
        return false; 
    }

}

