function isDigit() {
    if(navigator.userAgent.indexOf("MSIE") != -1) 
    { /* for IE */ 
        if ((event.keyCode < 48)||(event.keyCode > 57 )) {
            event.returnValue=false;     
        }
    }
}

function isDigitForNetscape(e) {
    if ((navigator.appName.indexOf("Netscape") != -1) || (navigator.appName.indexOf("Opera") != -1)) 
    { /* for Netscape, Mozilla, Opera */        
        if ((e.keyCode == 32)||(e.keyCode == 59)||(e.keyCode == 61)||(e.keyCode == 109)||(e.keyCode == 188)||((e.keyCode >= 65) && (e.keyCode <= 90))||((e.keyCode >= 190) && (e.keyCode <= 192))||((e.keyCode >= 219) && (e.keyCode <= 222)))
        {e.preventDefault()=false;}        
    }    
}

function isDecimal(val)
{            
    if(navigator.userAgent.indexOf("MSIE") != -1) 
    { /* for IE */ 
        if ((event.keyCode < 48)||(event.keyCode > 57 )) {
            if (event.keyCode != 46)
	        {event.returnValue=false;}
        }
        //if key being pressed is decimal point, check if decimal point already exist
        if (val.indexOf(".") != -1)
        {
            if (event.keyCode == 46)
	            {event.returnValue=false;}
        }
    }    
}

function isDecimalForNetscape(val, e)
{    
    if ((navigator.appName.indexOf("Netscape") != -1) || (navigator.appName.indexOf("Opera") != -1)) 
    { /* for Netscape, Mozilla, Opera */        
        if ((e.keyCode == 32)||(e.keyCode == 59)||(e.keyCode == 61)||(e.keyCode == 109)||(e.keyCode == 188)||(e.keyCode == 191)||(e.keyCode == 192)||((e.keyCode >= 65) && (e.keyCode <= 90))||((e.keyCode >= 219) && (e.keyCode <= 222)))
        {e.preventDefault()=false;}
        //if key being pressed is decimal point, check if decimal point already exist
        if (val.indexOf(".") != -1)
        {
            if (e.keyCode == 190)
	            {e.preventDefault()=false;}
        }
    }
}

function validateContactNo(id, msg, len, t)
{ 
    var bIsContactNo = true
    obj = document.getElementById(id);
    str = obj.value
    if (str != "")
    {
        if (str.length != len)
        { bIsContactNo = false }
        else
        {
            fc =str.charAt(0)
            if (t == 'r')
            {
                if (fc != "6")
                    { bIsContactNo = false }
            }
            else if(t == 'm')
            {
                if (fc != "8" && fc != "9" )
                    { bIsContactNo = false }
            }
            else
            {
                if (fc != "8" && fc != "9" && fc != "6" )
                    { bIsContactNo = false }
            }
        }
    }
    else
    {bIsContactNo = false }
    
    if (bIsContactNo)
    { return true; }
    else
    { alert(msg); obj.focus(); return false; }   
}
function validateTxt(id, msg)
{
    obj = document.getElementById(id);
    if (obj.value != ""){ return true; } else { alert(msg); obj.focus(); return false; }
}

function validateCbx(id, msg)
{
    obj = document.getElementById(id);
    if (obj.checked){ return true; } else { alert(msg); obj.focus(); return false; }
}

function validateCbo(id, msg)
{    
    obj = document.getElementById(id);
    if (obj.options[obj.selectedIndex].value != ''){ return true; } else { alert(msg); obj.focus(); return false; }
}

function validateRad(id, cnt, msg){
    bValid = false;
    for (i=1;i<=cnt;i++){
        obj = document.getElementById(id+i);
        if(obj.checked){bValid=true;}
    }
    if (bValid){ return true; } else { alert(msg); return false; }
}

function validateEmail(id, msg){
    obj = document.getElementById(id);
    str = obj.value
    var bIsEmail = true
	var at = '@';
	var dot = '.';
	var lat = parseInt(str.indexOf(at));
	var ldot = parseInt(str.lastIndexOf(dot));
	var lstr = parseInt(str.length);
	
	//no '@' or '@' is first character or '@' is the last character
	if ((lat <= 0) || (lat == parseInt(lstr-1)))
		bIsEmail =  false;

	//no '.' or '.' is first character or '.' is the last character
	if (bIsEmail && (ldot <= 0) || (ldot == parseInt(lstr-1)))
		bIsEmail =  false;

	//presence of another '@'
	if (bIsEmail && str.indexOf(at, parseInt(lat+1)) != -1) 
		bIsEmail =  false;

	//presence of '.' before or after '@'
	if (bIsEmail && (str.substr(parseInt(lat - 1), 1) == dot) || (str.substr(parseInt(lat + 1), 1) == dot))
		bIsEmail =  false;

	//check '.' is at least one character after '@'
	if (bIsEmail && str.indexOf(dot, parseInt(lat + 2)) == -1) 
		bIsEmail =  false;

	//check for blank
	if (bIsEmail && str.indexOf(" ") != -1) 
		bIsEmail =  false;

	//check the length after the last '.' is not less than 2 characters
	if (bIsEmail && str.substr(parseInt(ldot + 1)).length < 2) 
		bIsEmail =  false;

	if (bIsEmail && !isAlphaNumeric(str.substr(ldot + 1)))
		bIsEmail =  false;
	
	if (bIsEmail) { return true;}
	else { alert(msg); obj.focus(); return false; }
	
}
function isAlphaNumeric(str){
	for (i=0; i<str.length; i++){
		if (!((str.charCodeAt(i)>=97) && (str.charCodeAt(i)<=122)) && !((str.charCodeAt(i)>=65) && (str.charCodeAt(i)<=90)) && !((str.charCodeAt(i)>=48) && (str.charCodeAt(i)<=57))){
			return false;
		}
	}
	return true;
}

function isDate(datestring)
{    
    var daystring = ''
    var monthstring = ''
    var yearstring = ''
    
    if(datestring == ''){ return false;}
    if(datestring.indexOf('/') != -1)
    {
        daystring = datestring.substring(0, datestring.indexOf('/'))
        datestring = datestring.substring(datestring.indexOf('/')+1)
        if(datestring.indexOf('/') != -1)
        {
            monthstring = datestring.substring(0, datestring.indexOf('/'))
            datestring = datestring.substring(datestring.indexOf('/')+1)
            yearstring = datestring
        }            
    }
            
    if((daystring != '') && (monthstring != '') && (yearstring != ''))
    {                
        //if day is not between 1 - 31 or month is not between 1 - 12        
        if (parseInt(daystring) < 1 || parseInt(daystring) > 31 || parseInt(monthstring) < 1 || parseInt(monthstring) > 12) {return false;;}
        //if month does not have 31 days
        if (parseInt(daystring) == 31 && (parseInt(monthstring) == 2 || parseInt(monthstring) == 4 || parseInt(monthstring) == 6 || parseInt(monthstring) == 9 || parseInt(monthstring) == 11)) {return false;;}            
        //leap year
        if (parseInt(monthstring) == 2)
        {                
            var isleap = (parseInt(yearstring) % 4 == 0 && (parseInt(yearstring) % 100 != 0 || parseInt(yearstring) % 400 == 0));
            if (parseInt(daystring) > 29 || (parseInt(daystring) == 29 && !isleap)) {return false;;}
        }
        if(daystring.length == 1) {daystring = '0' + daystring}
        if(monthstring.length == 1) {monthstring = '0' + monthstring}            
            return true;
    }
    return false;
}