﻿//Js File
function chkNum(KeyRequest, oItem, decDigit)
{   
    var curPosition = doGetCaretPosition(oItem);
    var str = new String();
    var eventCharCode;
    var IsTextSelected;            
    
    //Text selection problem fixed by Deepak on 17-Apr-2008 ---
    var selectedText ;              
    if (document.selection) //IE
    {
        eventCharCode = KeyRequest.keyCode
        selectedText = document.selection;
        IsTextSelected = false;    
        if (selectedText.type == 'Text') 
        {
            IsTextSelected = true;
        }
    }
    else if (( oItem.selectionEnd - oItem.selectionStart) > 0 ) //Firefox
    {
        oItem.focus();
        eventCharCode = KeyRequest.charCode
        var startPos = oItem.selectionStart;
        var endPos = oItem.selectionEnd;
        selectedText = oItem.value.substring(startPos, endPos)
        if (selectedText.length > 0) 
        {
            IsTextSelected = true;
        }
    }
   else  //Firefox
   {
        eventCharCode = KeyRequest.charCode
        IsTextSelected = false;
   }
   
   if(eventCharCode == 0)   
   {
        return true;
   } 
    
    //---------------------------------------------------------
    //Code changed by Deepak  on 27-Nov-2008 to solve value editing issue
    //str = oItem.value + String.fromCharCode(eventCharCode);
    str = oItem.value.substring(0, doGetCaretPosition(oItem)) + String.fromCharCode(eventCharCode) + oItem.value.substring(doGetCaretPosition(oItem), oItem.value.length);            
    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    if(str.indexOf(".") != -1 && IsTextSelected == false)            
    {      
        var strTemp = str.replace("(","");
        strTemp = strTemp.replace(")","");
        if(strTemp.substr(strTemp.indexOf(".") + 1, strTemp.length - (strTemp.indexOf(".") -1)).length > parseInt(decDigit))
        {                
            return false;                    
        }
    }

    if(parseInt(decDigit) > 0 && parseInt(eventCharCode) == 46 && oItem.value.length > 0)
    {
        if(oItem.value.indexOf(".") == -1)
        {
            return true;
        }
    }
    
    if(curPosition > str.indexOf(")") && str.indexOf(")") != -1)
        return false;
        
    if(curPosition < str.indexOf("(") && str.indexOf(")") != -1)
        return false;
        
    if(parseInt(eventCharCode) == 41)
    {
        if(oItem.value.indexOf("-") != -1)
            return false;
            
        if(oItem.value.indexOf(")") == (oItem.value.length - 1))
            return false;
        
        if(str.indexOf(")") == (str.length - 1) && oItem.value.indexOf("(") != -1)
            return true;
    }
    
    var oTextSelection;
    if (document.getElementById && !document.all)
    {
        var startPos = oItem.selectionStart;
        var endPos = oItem.selectionEnd;
        oTextSelection = oItem.value.substring(startPos, endPos)        
    }
    else
    {
        oTextSelection = document.selection.createRange();    
        oTextSelection = oTextSelection.text;
    }
    
    if(parseInt(eventCharCode) == 40)
    {
         if(oItem.value.indexOf("-") != -1)
            return false;
            
        if(oItem.value.indexOf("(") == 0)
            return false;     
        
        if(str.indexOf("(") == 0 || oItem.value == oTextSelection)
            return true;
        
    }
    if(parseInt(eventCharCode) == 45)
    {   
        //Code added by Deepak  on 27-Nov-2008 to validate that the minus sign should not be repeat more than one.
        if(oItem.value.indexOf("(") != -1 || oItem.value.indexOf(")") != -1)
            return false;
        
        if(oItem.value.indexOf("-") == 0)
        {
            return false;
        }
        //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        if(str.indexOf("-") == 0 || oItem.value == oTextSelection)
        {
            return true;
        }    
    }
    if(parseInt(eventCharCode) < 48 || parseInt(eventCharCode) > 57)
    {            
        return false;
    }        
}

//added by Swati Nagar//
function echeck(str)
    {
   
	    var at="@";
	    var dot=".";
	    var lat=str.indexOf(at);
	    var lstr=str.length;
	    var ldot=str.indexOf(dot);
	    if (str.indexOf(at)==-1)
	    {
	    alert("Invalid E-mail ID");
	    return false;
	    }

	    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	    {
	    alert("Invalid E-mail ID");
	    return false;
	    }

	    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr-1)
	    {
		    alert("Invalid E-mail ID");
		    return false;
	    }
	    if (str.indexOf(at,(lat+1))!=-1)
	    {
		    alert("Invalid E-mail ID");
		    return false;
	    }

	    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	    {
		    alert("Invalid E-mail ID");
		    return false;
	    }

	    if (str.indexOf(dot,(lat+2))==-1)
	    {
		    alert("Invalid E-mail ID");
		    return false;
	    }
    	
	    if (str.indexOf(" ")!=-1)
	    {
		    alert("Invalid E-mail ID");
		    return false;
	    }

	    return true;			
    }
    
    function PANCheck(strPAN)
{

    if(strPAN.length < 10)
        {
            alert("PAN number should be of 10 characters.");
            return false;
        }
        
    var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

    for (var i = 0; i < strPAN.length; i++) 
    {
  	    if (iChars.indexOf(strPAN.charAt(i)) != -1) 
  	        {
    	        alert ("Invalid PAN number.");
  	            return false;
  	        }
     }
     var PANFirstFive = strPAN.substring(0,5) + strPAN.substring(9);
     var IsNumeric = "0123456789";
    for (var i = 0; i < PANFirstFive.length; i++) 
    {
  	    if (IsNumeric.indexOf(PANFirstFive.charAt(i)) != -1) 
  	        {
    	        alert ("Invalid PAN number.");
  	            return false;
  	        }
     }
     var PANNextFour = strPAN.substring(5,9);
     for (var i = 0; i < PANNextFour.length; i++) 
    {
  	    if (IsNumeric.indexOf(PANNextFour.charAt(i)) == -1) 
  	        {
    	        alert ("Invalid PAN number.");
  	            return false;
  	        }
     }
     
}
//Function added by Deepak  on 27-Nov-2008 to solve value editing issue
function doGetCaretPosition (ctrl) 
{
var CaretPos = 0;	
// IE Support	
if (document.selection) 
{
var Sel = document.selection.createRange();
Sel.moveStart('character', -(ctrl.value.length)); 		
CaretPos = Sel.text.length;	
}	
// Firefox support	
else if (ctrl.selectionStart || ctrl.selectionStart == '0')		
CaretPos = ctrl.selectionStart;
return (CaretPos); 
}
