﻿// JScript File
function datediffe(date1, date2)
	{
		var y1 = date1.getFullYear(), m1 = date1.getMonth(), d1 = date1.getDate(),
		y2 = date2.getFullYear(), m2 = date2.getMonth(), d2 = date2.getDate();
		if (d1 < d2) 
		{
			m1--;
			d1 += DaysInMonth(y2, m2);
		}
		if (m1 < m2)
		{
			y1--;
			m1 += 12;
		}
	
		return [y1 - y2, m1 - m2, d1 - d2];
	}
	
	function DaysInMonth(Y, M)
	{
		with (new Date(Y, M, 1, 12))
		{
			setDate(0);
			return getDate();
		}
	}
	function fnDateDiff(mDatePart, mStartDate, mEndDate)
	{
		var arrDate = mStartDate.split("/");
		var stdt = new Date(fnCInt(arrDate[2]), fnCInt(arrDate[1])-1, fnCInt(arrDate[0]));
		var arrDate = mEndDate.split("/");
		var endt = new Date(fnCInt(arrDate[2]), fnCInt(arrDate[1])-1, fnCInt(arrDate[0]));
		return endt.subtract(stdt).dateDiff(mDatePart);
	}
	function isValidDateCommon(mDate,mLabel) 
	{
		dateStr = fnReplace(mDate.value, "-", "/");
		if (dateStr == "dd/mm/yyyy" || dateStr == "")
		{
			//To assign the value to the object as "dd/mm/yyyy"
			mDate.value = "dd/mm/yyyy";
			return true;
		}
		if (dateStr!='')
		{

			// Checks for the following valid date formats:
			// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
			// Also separates date into month, day, and year variables

			var datePat1 = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

			var datePat = new RegExp("^[0-9]{1,2}[/]{1,1}[0-9]{1,2}[/]{1,1}([0-9]{2}|[0-9]{4})$"); 
			if(!datePat.test(dateStr))
			{
				alert("Please enter " + mLabel + " in dd/mm/yyyy format.")
				mDate.value="";
				mDate.focus();
				return false;
			}
			
			var matchArray = dateStr.match(datePat1); // if the format is ok.

			var month = matchArray[3]; // parse date into variables
			var day = matchArray[1];
			var year = matchArray[4];

			if (month < 1 || month > 12) 
			{ // check month range
				alert("Month must be between 1 and 12.");
				mDate.value="";
				mDate.focus();
				return false;
			}
			if (day < 1 || day > 31) 
			{
				alert("Day must be between 1 and 31.");
				mDate.value="";
				mDate.focus();
				return false;
			}
			if ((month==4 || month==6 || month==9 || month==11) && day==31) 
			{
				alert("Month "+month+" doesn't have 31 days!")
				mDate.value="";
				mDate.focus();
				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!");
					mDate.value="";
					mDate.focus();
					return false;
				}
			}
			month = "0"+month;
			month = month.substring(month.length-2,month.length)
			day = "0"+day;
			day = day.substring(day.length-2,day.length)
			year = "20" + year;
			year = year.substring(year.length-4,year.length)
			mDate.value = day + "/" + month + "/" + year;
			return true;
		}
		return false;
	}
	
	function fnReplace(mValue, findStr, replaceStr)
    {
		return mValue.toString().replaceAll(findStr, replaceStr, false);
	}
	
	function fnEmailValidation(oBj) // oBj will be (document.frmSample.txtEmail)
	{
		var emailid = oBj.value;
		if (emailid != "")
		{
			//var mailPat = new RegExp("^[a-zA-Z0-9]{1,}[.]{0,}[_]{0,}[a-zA-Z0-9]{1,}[@][a-zA-Z0-9]{1,}[.][a-zA-Z0-9]{2,}[.]{0,}[a-zA-Z0-9]{0,}$")
			var mailPat = new RegExp(/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/);
			if(!mailPat.test(emailid))
			{
				alert("Invalid Email ID.");
				oBj.focus();
				 oBj.value="";
				return false;
			}
			return true;
		}
		return true;
	}
	
	function Numeric(val)
	{
		var strValue;
		strValue=val;
	
		if(!((event.keyCode>=48 && event.keyCode<=57)))
		{
			return false;
		}
		return true;
	
	}
	function fnTxtMinLen(Ctrl,CharLength, ForCtrl)
	{
		var Ctrlval=Ctrl.value;	
		if(Ctrlval.length<CharLength)
		{
			alert("Please Enter Min " + CharLength + " Characters "+ForCtrl+".");
			Ctrl.focus();
			return false;
		}	
		return true;	
	}

function fnTrim(str) 
	{
		return str.replace(/^\s+/,'').replace(/\s+$/,'');
	}
	
	/* Start :added by ravindra*/
	function fnNameValidate(val, e)
	{
		var n = fnGetKeyCode(e);
		if(fnValidateCommonKeys(n))
			return true;		
		if((n>=65 && n<=90) || (n>=97 && n<=122) ||(n==32) ||(n==39)||(n==47)||(n==39) ||(n==46))// || (n>=97 && n<=122))
			return true;
		return false;
	}
	function fnGetKeyCode(e)
	{
		return (navigator.appName=="Netscape") ? e.which : event.keyCode;
	}
	function fnValidateCommonKeys(keyCode)	
    {
	if ((keyCode == 8) || (keyCode == 9) || (keyCode == 0))
		return true;
	else
	    return false;

	return true;
    }
    
    function fnValidateSpecialkeys(code,flg)
    {
        var n = fnGetKeyCode(code);
	    //1 AL and CL
	    //2 Policy and Card number
	    //3 Name
	    //4 Company Name
	    //5 Login Id
	    //6 Empoyee Id
	    //7 New Password
	    //8 Email Id
	    //9 Mobile No
	    //10 Date
	  //alert(n);
	    if(flg =='1')//AL and CL
	    {
	        // to allow '0-9' '/' AND  '-'
	        if((n >= 48 && n<= 57) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg =='2')//Policy and Card number
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' '/' AND  '-'
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 47) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg == '3')//Customer Name
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/)
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 47) || (n == 8) || (n == 0)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }    
        if(flg == '4')//Company Name
        {
            //Allowed only "a to z" "A to Z" amp &, At @, Dollar $, star *, single quoat "'", dot ".",   blank space " " and forward slash "/" 
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n==38) || (n==64) || (n==36) || (n == 42) || (n == 39) || (n == 46) || (n == 32) || (n == 47)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }    
	    if(flg == '5')//Login Id
	    {
	    //disAllow   # % & ' * + ; < > | \ " and blank space
	       if((n==35)||(n==37)||(n==38) ||(n==39) ||(n==43) ||(n==42) ||(n==59) ||(n==60) ||(n==62) ||(n==124) ||(n==34) ||(n==92) ||(n==47) ||(n==32))
	       {
	          return false;
	       }
	       else
           {
               return true; 
           }
	    }
	    
	    if(flg =='6')//Employee Id
	    {
	        //Allowed only "a to z" "A to Z"  "0 to 9" and hyphen "-"
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg =='7')//New Password
	    {
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 126)|| (n ==33)|| (n == 64)|| (n == 35)|| (n == 36)|| (n == 37)|| (n == 38)|| (n == 42)|| (n == 94))
	        {
	            if (( n >= 65 && n <= 90) || ( n >= 97 && n <=122))
	            {
	                strAlphaFlg = "1";
	            }
	            if(n>=48 && n<=57)
	            {
	                strNumFlg = "1";
	            }
	            return true; 
	        }
	    }
	    if(flg =='8')//Email ID//A-Z , a-z, 0-9, @ , dot(.) and _ underscore
	    {
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57)|| (n==64)|| (n == 46)|| (n == 95)|| (n == 45))
	        {
	            return true; 
	        }
	    }
	    
	    if(flg =='9')// Mobile No
	    {
	    // to allow 0-9
	        if(n>=48 && n<=57)
	        {
	            return true; 
	        }
	    }
	    
	    if(flg =='10')// Date
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' and '/'
	        if((n >= 48 && n<= 57) || (n == 47))
	        {
	            return true; 
	        }
	    }
	    if(flg =='11')// Passport Number
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' 
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57))
	        {
	            return true; 
	        }
	    }
	    if(flg == '12')//Role Name
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/) and underscore
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 47) || (n == 8) || (n == 0)|| (n == 95)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }  
        if(flg == '13')//Right Master
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/) and underscore
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 8) || (n == 0)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        } 
        if(flg == '14')//Right Master
        {
            //Allow A-Z a-z blank space (' ')and 0-9 
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 8) || (n == 0) ||(n>=48 && n<=57)|| (n == 95)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }       
         
	    
	    return false;
    }
    
    //CR 598	
	function CheckDuplicateMISReport(Val)
	{

	//Get data from the server
	    //$('txtSubmitValue').value = "";
	    var mValue = $('txtEmailId').value;
	    var xml = clienCallback("Admin","DuplicateMISReport|"+mValue+"|",Val);
	    var Models = xml.responseText;
	    if(Models=='1')
	    {
	    alert('MIS has already been deactivated for ' + mValue);
	    return false;
	    }
	    else if(Models=='0')
	    {
	    alert('MIS has been deactivated for ' + mValue);
	    return true;
	    }
	    else if(Models=='3')
	    {
	    alert('MIS has already been activated for ' + mValue);
	    return false;
	    }
	    else if(Models=='4')
	    {
	    alert('Please enter Login ID');
	    return false;
	    }
	    else if(Models=='5')
	    {
	    alert('Enter valid Login Id');
	    return false;
	    }

	    else
	    if(Models=='2')
	    {
	    alert('MIS has been activated for ' + mValue);
	    return true;
	    }
	    //end
	}
	//CR 598
    
/*    function fnCustomerNameValidation(oBj) // oBj will be (document.frmSample.txtEmail)
	{
	alert(oBj);
		var CustomerName = oBj.value;
		if (CustomerName != "")
		{
			//var mailPat = new RegExp("^[a-zA-Z0-9]{1,}[.]{0,}[_]{0,}[a-zA-Z0-9]{1,}[@][a-zA-Z0-9]{1,}[.][a-zA-Z0-9]{2,}[.]{0,}[a-zA-Z0-9]{0,}$")
			var mailPat = new RegExp(/^[a-zA-Z''.-\/]+$/);
			if(!mailPat.test(CustomerName))
			{
				alert("Invalid Customer Name.");
				oBj.focus();
				 oBj.value="";
				return false;
			}
			return true;
		}
		return true;
	}*/
    function fnValidateName(strName) 
	{
		if (strName != "")
		{
			var mailPat = new RegExp(/^[a-zA-Z\s\/]+$/);
			return mailPat.test(strName);
		}
		return false;
	}
	
	function fnNewEmailValidation(obj) // obj will be (document.frmSample.txtEmail)
	{
		var emailid = obj.value;
		if (emailid != "")
		{
			var mailPat = new RegExp(/^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/);//Valid email validation by MSDN
			if(!mailPat.test(emailid))
			{
				alert("Invalid Email ID.");
				obj.focus();
				obj.value="";
				return false;
			}
			return true;
		}
		return true;
	}
    /*End :added by ravindra*/
        /* Start : added for CR-579 */
    
    function fnValidateInputs(code)
    {
    
     var codePat = new RegExp(/^[a-zA-Z0-9\/-]+$/);
	 if(!codePat.test(code))
	   {
	      return false;
	   }
	 else
	   {
	      return true;
	   }
    }

function fnValidateInputsNew(code) 
    {

        var codePat = new RegExp(/^[a-zA-Z0-9@.\/-]+$/);
        if (!codePat.test(code)) {
            return false;
        }
        else {
            return true;
        }        
    } 

    
    function fnValidateALCLInputs(code)
    {
     var codePat = new RegExp(/^[0-9-]+$/);
	 if(!codePat.test(code))
	   {
	      return false;
	   }
	 else
	   {
	      return true;
	   }
    }
    
    function fnValidateEmpId(code)
    {
    
     var codePat = new RegExp(/^[a-zA-Z0-9-]+$/);
	 if(!codePat.test(code))
	   {
	      return false;
	   }
	 else
	   {
	      return true;
	   }
    }
    
    function fnValidateSpecialkeys(code,flg)
    {
        var n = fnGetKeyCode(code);
	    //1 AL and CL
	    //2 Policy and Card number
	    //3 Name
	    //4 Company Name
	    //5 Login Id
	    //6 Empoyee Id
	    //7 New Password
	    //8 Email Id
	    //9 Mobile No
	    //10 Date
	  //alert(n);
	    if(flg =='1')//AL and CL
	    {
	        // to allow '0-9' '/' AND  '-'
	        if((n >= 48 && n<= 57) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg =='2')//Policy and Card number
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' '/' AND  '-'
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 47) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg == '3')//Customer Name
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/)
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 47) || (n == 8) || (n == 0)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }    
        if(flg == '4')//Company Name
        {
            //Allowed only "a to z" "A to Z" amp &, At @, Dollar $, star *, single quoat "'", dot ".",   blank space " " and forward slash "/" 
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n==38) || (n==64) || (n==36) || (n == 42) || (n == 39) || (n == 46) || (n == 32) || (n == 47)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }    
	    if(flg == '5')//Login Id
	    {
	    //disAllow   # % & ' * + ; < > | \ " and blank space
	       if((n==35)||(n==37)||(n==38) ||(n==39) ||(n==43) ||(n==42) ||(n==59) ||(n==60) ||(n==62) ||(n==124) ||(n==34) ||(n==92) ||(n==47) ||(n==32))
	       {
	          return false;
	       }
	       else
           {
               return true; 
           }
	    }
	    
	    if(flg =='6')//Employee Id
	    {
	        //Allowed only "a to z" "A to Z"  "0 to 9" and hyphen "-"
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 45) )
	        {
	            return true; 
	        }
	    }
	    if(flg =='7')//New Password
	    {
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57) || (n == 126)|| (n ==33)|| (n == 64)|| (n == 35)|| (n == 36)|| (n == 37)|| (n == 38)|| (n == 42)|| (n == 94))
	        {
	            if (( n >= 65 && n <= 90) || ( n >= 97 && n <=122))
	            {
	                strAlphaFlg = "1";
	            }
	            if(n>=48 && n<=57)
	            {
	                strNumFlg = "1";
	            }
	            return true; 
	        }
	    }
	    if(flg =='8')//Email ID//A-Z , a-z, 0-9, @ , dot(.) and _ underscore
	    {
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57)|| (n==64)|| (n == 46)|| (n == 95)|| (n == 45))
	        {
	            return true; 
	        }
	    }
	    
	    if(flg =='9')// Mobile No
	    {
	    // to allow 0-9
	        if(n>=48 && n<=57)
	        {
	            return true; 
	        }
	    }
	    
	    if(flg =='10')// Date
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' and '/'
	        if((n >= 48 && n<= 57) || (n == 47))
	        {
	            return true; 
	        }
	    }
	    if(flg =='11')// Passport Number
	    {
	        // to allow 'A-Z' and 'a-z' '0-9' 
	        if((n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n >= 48 && n<= 57))
	        {
	            return true; 
	        }
	    }
	    if(flg == '12')//Role Name
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/) and underscore
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 47) || (n == 8) || (n == 0)|| (n == 95)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }  
        if(flg == '13')//Right Master
        {
            //Allow A-Z a-z blank space (' ')and forward slash (/) and underscore
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 8) || (n == 0)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        } 
        if(flg == '14')//Right Master
        {
            //Allow A-Z a-z blank space (' ')and 0-9 
            if( (n >= 65 && n <= 90) || (n >= 97 && n <= 122) || (n == 32) || (n == 8) || (n == 0) ||(n>=48 && n<=57)|| (n == 95)) 
	        {   
	            return true; 
	        }
	        else
	        {
	            return false; 
	        }
        }       
         
	    
	    return false;
    }
    
    //CR 598	
	function CheckDuplicateMISReport(Val)
	{

	//Get data from the server
	    //$('txtSubmitValue').value = "";
	    var mValue = $('txtEmailId').value;
	    var xml = clienCallback("Admin","DuplicateMISReport|"+mValue+"|",Val);
	    var Models = xml.responseText;
	    if(Models=='1')
	    {
	    alert('MIS has already been deactivated for ' + mValue);
	    return false;
	    }
	    else if(Models=='0')
	    {
	    alert('MIS has been deactivated for ' + mValue);
	    return true;
	    }
	    else if(Models=='3')
	    {
	    alert('MIS has already been activated for ' + mValue);
	    return false;
	    }
	    else if(Models=='4')
	    {
	    alert('Please enter Login ID');
	    return false;
	    }
	    else if(Models=='5')
	    {
	    alert('Enter valid Login Id');
	    return false;
	    }

	    else
	    if(Models=='2')
	    {
	    alert('MIS has been activated for ' + mValue);
	    return true;
	    }
	    //end
	}
	//CR 598
    
/*    function fnCustomerNameValidation(oBj) // oBj will be (document.frmSample.txtEmail)
	{
	alert(oBj);
		var CustomerName = oBj.value;
		if (CustomerName != "")
		{
			//var mailPat = new RegExp("^[a-zA-Z0-9]{1,}[.]{0,}[_]{0,}[a-zA-Z0-9]{1,}[@][a-zA-Z0-9]{1,}[.][a-zA-Z0-9]{2,}[.]{0,}[a-zA-Z0-9]{0,}$")
			var mailPat = new RegExp(/^[a-zA-Z''.-\/]+$/);
			if(!mailPat.test(CustomerName))
			{
				alert("Invalid Customer Name.");
				oBj.focus();
				 oBj.value="";
				return false;
			}
			return true;
		}
		return true;
	}*/
    function fnValidateName(strName) 
	{
		if (strName != "")
		{
			var mailPat = new RegExp(/^[a-zA-Z\s\/]+$/);
			return mailPat.test(strName);
		}
		return false;
	}
	
	function fnNewEmailValidation(obj) // obj will be (document.frmSample.txtEmail)
	{
		var emailid = obj.value;
		if (emailid != "")
		{
			var mailPat = new RegExp(/^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/);//Valid email validation by MSDN
			if(!mailPat.test(emailid))
			{
				alert("Invalid Email ID.");
				obj.focus();
				obj.value="";
				return false;
			}
			return true;
		}
		return true;
	}
    /*End :for CR-579 */