function isDate(inDate)
{
    if (inDate.length == 0)
    {
        return true;
    }

    var validformat = /^(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d$/, month, day, year, testDate;
    
    if (!validformat.test(inDate))
    {
        return false;
    }
    else
    {
        month = inDate.split("/")[0];
        day = inDate.split("/")[1];
        year = inDate.split("/")[2];
        testDate = new Date(year, month - 1, day);
        
        if ((testDate.getMonth() + 1 != month) || (testDate.getDate() != day) || (testDate.getFullYear() != year))
        {
            return false;
        }
    }
    return true;
}

function isMilitaryTime(inTime)
{
    if (inTime.length == 0)
    {
        return true;
    }
        
    return /^([01]?[0-9]|[2][0-3])(:[0-5][0-9])?$/.test(inTime)        
}

function CheckDate(inDate)
{
    if (inDate.length == 0)
    {
        return true;
    }

    var validformat = /(?=\d)^(?:(?!(?:10\D(?:0?[5-9]|1[0-4])\D(?:1582))|(?:0?9\D(?:0?[3-9]|1[0-3])\D(?:1752)))((?:0?[13578]|1[02])|(?:0?[469]|11)(?!\/31)(?!-31)(?!\.31)|(?:0?2(?=.?(?:(?:29.(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|(?:0?2(?=.(?:(?:\d\D)|(?:[01]\d)|(?:2[0-8])))))([-.\/])(0?[1-9]|[12]\d|3[01])\2(?!0000)((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?!\x20BC)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/, month, day, year, testDate;
    
    if (!validformat.test(inDate))
    {
        return false;
    }
    else
    {

        month = inDate.split("/")[0];
        day = inDate.split("/")[1];
        year = inDate.split("/")[2];
        testDate = new Date(year, month - 1, day)
        
        if ((testDate.getMonth() + 1 != month) || (testDate.getDate() != day) || (testDate.getFullYear() != year))
        {
            return false;
        }
    }
    
    return true;
}

function validateNumInput(field, imin, imax, maxdec)
{
    var val = field.value, sNumbers = '-0123456789.', iMaxAllowed = 2147483647, iMinAllowed = -2147483648, doDefault = false, i, l, newVal, hasDot;
    
    if (imin != undefined)
        iMinAllowed = imin;

    if (imax != undefined)
        iMaxAllowed = imax;
	
    if (val.length == 0)
    {
        if (doDefault)
        {
	        field.value = 0;
        }
        return true;
    }
		
    if (val < iMinAllowed || val > iMaxAllowed)
    {
        alert('Number outside of allowed range ' + iMinAllowed + ' - ' + iMaxAllowed);
        if (doDefault)
        {
	        field.value = 0;
        }
        else
        {
            field.value = '';
        }
        return false;
    }

    var anum = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
    if (!anum.test(val))
    {
        newVal = '';
        hasDot = false;
        for (i=0; i <= val.length; i++)
        {
	        l = val.charAt(i);
	        if (sNumbers.indexOf(l) > -1)
	        {
		        if (l == "." )
		        {
			        if (!hasDot)
			        {
				        newVal = newVal + l;
				        hasDot = true;
			        }
		        }
		        else
		        {
			        newVal = newVal + l;
		        }
	        }
        }
		
        field.value = newVal;
    }
	
    if (field.value.length == 0) 
    {
        if (doDefault)
        {
	        field.value = 0;
        }
    }
    else
    {
        if (maxdec != undefined)
        {
	        if (field.value.indexOf(".") > -1)
	        {
		        if ((field.value.length - field.value.indexOf(".") - 1) > maxdec)
		        {
			        alert('Only ' + maxdec + ' decimal(s) allowed');
			        field.value = field.value.substring(0, field.value.length - 1);
		        }
	        }
        }
    }
    
    return true;
}

