﻿function Trim(STR)
{
    STR = LTrim(STR);
    return RTrim(STR);
}

function RTrim(STR)
{
    while(STR.charAt((STR.length -1))==" ")
    {
	    STR = STR.substring(0,STR.length-1);
    }
    return STR;
}

function LTrim(STR)
{
    while(STR.charAt(0)==" ")
    {
	    STR = STR.replace(STR.charAt(0),"");
    }
    return STR;
}

function IsImage(controlId,falseMessage)
{
    var iCtrl = document.getElementById(controlId);
    var extn = Trim(iCtrl.value.substring(iCtrl.value.lastIndexOf(".")+1).toLowerCase());
    if(extn!="gif" && extn!="jpg" && extn!="jpeg" && extn!="bmp" && extn!="tif" && extn!="png") //modify list to allow more image types
    {
        window.alert(falseMessage);
        iCtrl.focus();
        return false;
    }
    return true;
}

function IsVideo(controlId,falseMessage)
{
    var iCtrl = document.getElementById(controlId);
    var extn = Trim(iCtrl.value.substring(iCtrl.value.lastIndexOf(".")+1).toLowerCase());
    if(extn!="avi" && extn!="mpeg" && extn!="rm" && extn!="wmv" && extn!="flv") //modify list to allow more video types
    {
        window.alert(falseMessage);
        iCtrl.focus();
        return false;
    }
    return true;
}

function IsHtml(controlId,falseMessage)
{
    var iCtrl = document.getElementById(controlId);
    var extn = Trim(iCtrl.value.substring(iCtrl.value.lastIndexOf(".")+1).toLowerCase());
    if(extn!="html" && extn!="htm") 
    {
        window.alert(falseMessage);
        iCtrl.focus();
        return false;
    }
    return true;
}

function IsNumeric(text)
{
	var valid = "0123456789";
	var temp;
	for (var i=0; i<text.length; i++)	
	{
	   	temp = text.substring(i,i+1);
	   	if (valid.indexOf(temp) == "-1")    
		{
            return false;
   		}
	}
	return true;		
}

function IsDecimal(text)
{
	var valid = "0123456789.";
	var temp;
	for (var i=0; i<text.length; i++)	
	{
	   	temp = text.substring(i,i+1);
	   	if (valid.indexOf(temp) == "-1")    
		{
            return false;
   		}
	}
	return true;		
}

function IsDate(dateStr)
{
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;        
    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null)
    {
        alert("Invalid date")
        return false;
    }
    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];
    if (month < 1 || month > 12) // check month range
    { 
        alert("Month must be between 1 and 12.");
        return false;
    }
    if (day < 1 || day > 31) 
    {
        alert("Day must be between 1 and 31.");
        return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) 
    {
        alert("Month "+month+" doesn't have 31 days!")
        return false
    }
    if (month == 2)  // check for february 29th
    { 
        var isleap = ((year % 4 == 0) && (year % 100 != 0 || year % 400 == 0));
        if ((day > 29) || (day==29 && !isleap)) {
        alert("February " + year + " doesn't have " + day + " days!");
        return false;
        }
    }  
    return true;  // date is valid
}   