﻿// JScript File

//Validates the email address
function validateEmail(objStr)
{
	var obj = document.getElementById(objStr);
	if(isQuote(obj) == true)
	{
		alert("Single or double quotes not allowed in email adress.");
		return false;
	}
	
	var ArEmails=  Trimming(obj.value).split(";");
	for(CountNo=0;CountNo<ArEmails.length;CountNo++)
	{
		emailStr=ArEmails[CountNo];
					
		if(emailStr=="")
		{
			return;
		}	
		
		var checkTLD=1;
		
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

		var emailPat=/^(.+)@(.+)$/;

		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

		var validChars="\[^\\s" + specialChars + "\]";

		var quotedUser="(\"[^\"]*\")";

		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

		var atom=validChars + '+';

		var word="(" + atom + "|" + quotedUser + ")";

		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) 
		{
    		alert("Email address incorrect (check @ and .'s)");
			return false;
	    }
		
		var user=matchArray[1];
		var domain=matchArray[2];

		for (i=0; i<user.length; i++) 
		{
		    if (user.charCodeAt(i)>127) 
		    {
		        alert("The username contains invalid characters.");
		    	return false;
		    }
		}
		for (i=0; i<domain.length; i++) 
		{
		    if (domain.charCodeAt(i)>127) 
		    {
		    	alert("The domain name contains invalid characters.");
				return false;
		    }
		}
		for (i=0; i<obj.value.length; i++) 
        {
            if ((parseInt(obj.value.charCodeAt(i))==44) || (parseInt(obj.value.charCodeAt(i))==59)) 
            {
                alert("Only one MailId allowed.");
			    return false;
		    }
	    }
  
	    if (user.match(userPat)==null) 
	    {
    		alert("Only one MailId allowed.");
	    	return false;
	    }
		
	    var IPArray=domain.match(ipDomainPat);
	    if (IPArray!=null) 
	    {
        	for (var i=1;i<=4;i++) 
        	{
	            if (IPArray[i]>255) 
	            {
	                alert("Destination IP address is invalid!");
	                return false;
	            }
	        }   
	        return true;
		}
		
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) 
		{
			if (domArr[i].search(atomPat)==-1) 
			{
			    alert("The domain name is invalid.");
			    return false;
			}
		}
		
		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
		{
			alert("The address must end in a well-known domain or two letter " + "country.");
			return false;
		}
			// Make sure there's a host name preceding the domain.
		if (len<2)
		{
	    	alert("This address is missing a hostname!");
			return false;
        }
			// If we've gotten this far, everything's valid!
    }	
	return true;
}

function isQuote(obj)
{
	var varlen
	varlen = obj.value.length
	for(i=0;i<varlen;i++)
	{
		var varccode = obj.value.charCodeAt(i)
		if(varccode == 39 || varccode == 34 )
		{
			return true;
		}
	}
}

function Trimming(str)
{
		
	while(str.charAt(0)==' ')
		str=str.substring(1,str.length);
	while(str.charAt(str.length-1)==' ')
		str=str.substring(0,str.length-1);
	
	return str;
}
function CheckNumber(myfield, dec)
{
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else
		return true;

	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
		return true;
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;
	else if (dec && (keychar == ".")) 	// decimal point jump
	{
		myfield.form.elements[dec].focus();
		return false;
	}
	else
		return false;
}
function CheckNumberDecimal(myfield, dec)
{
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else
		return true;

	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
		return true;
	else if ((("0123456789.").indexOf(keychar) > -1))
		return true;
	else if (dec && (keychar == ".")) 	// decimal point jump
	{
		myfield.form.elements[dec].focus();
		return false;
	}
	else
		return false;
}
function CheckAlphabets(myfield)
{
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else
		return true;

	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
		return true;
	else if ((("'><").indexOf(keychar) > -1))
		return false;
	else
		return true;
}

//clears a box on focus & fills with default value onblur if value is "".
function clearBox(box)
{
    var str = TrimString(box.value);;
    if(box.value==box.defaultValue) 
    {
        box.value = "";
    }
    else if(str=="") 
    {
        box.value = box.defaultValue;
    }
}
//Trims the given string
function TrimString(sInString)
{
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
}

function PerformClick(txtObj, btnName)
{         
    var btn=document.getElementById(btnName);
    if(event.keyCode==13)
    {
        btn.click();
        return false;    
    }
}

 function DateValidation(pDate)
    {       
        var pDateLenth = pDate.Length;
        var ArrDate =new Array();
        ArrDate = pDate.split('/');
        var l_Lenth = ArrDate.length;
        var flg=1;      
                 
        for(var i=0;i<ArrDate.length;i++)
        {        
            if(isNaN(ArrDate[i]))
            {
                flg=0;
                break;         
            }   
            else if(ArrDate[i]<=0)
            {
                flg=0;
                break;         
            }
            else if (i<2)
            {
                if(ArrDate[i].length!=2)                
                {
                    flg=0;
                    break;
                }
            }
        }
        if(l_Lenth==3)
        {  
            var ArrDays =new Array();         
            var strDays ="31,28,31,30,31,30,31,31,30,31,30,31";    
            ArrDays = strDays.split(',');;            
            var Day = ArrDate[0];  
            var Year = ArrDate[2];   
            GivenDays= ArrDate[1]           
            Days = ArrDays[Day-1]            
            if(Year%4==0)
               ArrDate[1]=29;            
            else
               ArrDate[1]=28;         
            
            var YearLen = Year.length;
            if(YearLen!=4)
                flg=0;
                
            if(Day>12)
                 flg=0;
            
            else if(Number(GivenDays)>Number(Days))
                 flg=0;
            
         }
        else
           flg=0
        
        if(flg==0)
        {
            alert("Please enter valid date");
            return false;
        }
        return true;
    }

function disableThis(obj)
{
    obj.disabled= true;
    return true;
}

