
/*--------------------- Reading and writing to the clipboard starts here ------------------------- */
function readClipboard()
{
	try
	{
		var strText='';

		if(document.all) //Get clipboard text for IE
			strText=clipboardData.getData("Text");
		else //Get clipboard text for Firefox
		{

					netscape.security.PrivilegeManager.enablePrivilege( 'UniversalXPConnect' );
					this.clipboardid = Components.interfaces.nsIClipboard;
					this.clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].getService( this.clipboardid );
					this.clipboardstring = Components.classes['@mozilla.org/supports-string;1'].createInstance( Components.interfaces.nsISupportsString );

					netscape.security.PrivilegeManager.enablePrivilege( 'UniversalXPConnect' );
					var transfer = Components.classes['@mozilla.org/widget/transferable;1'].createInstance( Components.interfaces.nsITransferable );
					transfer.addDataFlavor( 'text/unicode' );
					this.clipboard.getData( transfer, this.clipboardid.kGlobalClipboard );
					var str = new Object();
					var strLength = new Object();
					transfer.getTransferData( 'text/unicode', str, strLength );
					str = str.value.QueryInterface( Components.interfaces.nsISupportsString );
					strText =str.data.substring( 0, strLength.value / 2 );
		}
		return strText;
	}
	catch(mErr)
	{
		//alert('readClipboard :'+mErr.message);
	}
}


function writeClipboard(strInput)
{	
	

	if(document.all) //Clear clipboard for IE
	{
		clipboardData.clearData();
		clipboardData.setData("Text",strInput);
	}
	else //Cear clipboard for Firefox
	{
		   netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		   
		   var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);

		   var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		   
		   trans.addDataFlavor('text/unicode');
		   
		   var str = new Object();
		   var len = new Object();
		   
		   var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		   
		   var copytext=strInput;
		   
		   str.data=copytext;
		   
		   trans.setTransferData("text/unicode",str,copytext.length*2);
		   
		   var clipid=Components.interfaces.nsIClipboard;
		   
		   clip.setData(trans,null,clipid.kGlobalClipboard);
		   	
	}
}

/*--------------------- Reading and writing to the clipboard ends here ------------------------- */

// div show hide method for spliter for the RadGrid
function HideGrid(Obj)
{
	if (document.getElementById('showHide'))
	{	
		var classValue = Obj.parentNode.getAttribute('class');	
		if(document.all)
			Obj.parentNode.parentNode.childNodes[2].attributes['class'].value = Obj.parentNode.attributes['class'].value;
		else
			Obj.parentNode.parentNode.childNodes[5].setAttribute('class',classValue);

		if(document.getElementById('showHide').style.display == 'none')
		{
			Obj.src = "../Images/minus.gif";
			document.getElementById('showHide').style.display = 'inline';
			var ex = Obj.parentNode.parentNode.getElementsByTagName('input');
			for(var i =0 ; i < ex.length; i++)
			{
				ex[i].style.visibility = 'visible';
			}
			document.getElementById("hdnToggle").value="inline";
		}
		else
		{
			Obj.src = "../Images/plus.gif";
			document.getElementById('showHide').style.display = 'none';
			var ex = Obj.parentNode.parentNode.getElementsByTagName('input');
			for(var i=0 ; i < ex.length; i++)
			{
				ex[i].style.visibility = 'hidden';
			}
			document.getElementById("hdnToggle").value="none";
		}
	}
}

    
    
// div show hide for post back events
function DivGrid()
{
	/*
	if (document.getElementById("hdnToggle"))
	{
		if(document.getElementById("hdnToggle").value=="N")
		{
			document.getElementById("image").src = "../Images/minus.gif";
		}
		else
		{
			document.getElementById("image").src = "../Images/minus.gif";
			//Obj.alt = "Collapse";
			document.getElementById('showHide').style.display = 'inline';
			document.getElementById("hdnToggle").value="N"
		}
	}
	*/
	if (document.getElementById('showHide'))
	{	
	    var Obj=document.getElementById("image");
		var classValue = Obj.parentNode.getAttribute('class');	
		if(document.all)
			Obj.parentNode.parentNode.childNodes[2].attributes['class'].value = Obj.parentNode.attributes['class'].value;
		else
			Obj.parentNode.parentNode.childNodes[5].setAttribute('class',classValue);

		if(document.getElementById("hdnToggle").value=="none")
		{
			Obj.src = "../Images/plus.gif";
			document.getElementById('showHide').style.display = 'none';
			var ex = Obj.parentNode.parentNode.getElementsByTagName('input');
			for(var i=0 ; i < ex.length; i++)
			{
				ex[i].style.visibility = 'hidden';
			}
			document.getElementById("hdnToggle").setAttribute("Adr_display","none");
		}
		else
		{
			Obj.src = "../Images/minus.gif";
			document.getElementById('showHide').style.display = 'inline';
			var ex = Obj.parentNode.parentNode.getElementsByTagName('input');
			for(var i =0 ; i < ex.length; i++)
			{
				ex[i].style.visibility = 'visible';
			}
				
			document.getElementById("hdnToggle").setAttribute("Adr_display","inline");
		}
	}
}
        

//for prevent back button
function doCheckBack() 
{ 
	try
	{
		if(history.forward() != null) 
		self.location.reload(); 
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

// This method will hide the loading message.. This will be called at the end of the page
function doHideLoadMsg()
{
	try
	{
	
		document.getElementById("DivLoadMsg").style.display="none";
		
		/*For help*/
		if(window.addEventListener)
		{
			window.addEventListener('keydown', function(event){return firefoxHelp(event);}, true);
		}
		else
		{
			window.onhelp= new Function("return winHelp();");
		}
		

	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}


// display the tooltip for the given object (value should be "S" for show and "H" for hide) 
// onmouseover and onmouseout you have to call this method and pass like this
// Add this div part in your html body - <div class="tooltipDiv" id="divTooltip" style='display:none;POSITION:  absolute'></div>
// EX: onmouseover = "doTooltip(this, 'S');" onmouseout = "doTooltip(this, 'H');"
function doTooltip(Obj, Value)
{
	var msg;
	var toolTip;
	if(Obj.selectedIndex>=0)
	{
		var DivRef = document.getElementById('divTooltip');
		var IfrRef = document.getElementById('ifrmTooltip');
		if(Value=="S")
		{
			msg = Obj.options(Obj.selectedIndex).text;
			window.status = msg
			DivRef.style.display = "block";
			DivRef.innerHTML = "&nbsp;" +  msg + "&nbsp;";
			DivRef.style.pixelLeft = event.x;
			DivRef.style.pixelTop = event.y + 9;

			IfrRef.style.width = DivRef.offsetWidth;
			IfrRef.style.height = DivRef.offsetHeight;
			IfrRef.style.top = DivRef.style.top;
			IfrRef.style.left = DivRef.style.left;
			IfrRef.style.zIndex = DivRef.style.zIndex - 1;
			IfrRef.style.display = "block";
		}
		else
		{
			window.status ="Done";
			DivRef.style.display = "none";
			IfrRef.style.display = "none";
		}
	}
	return;
}

// above method with parameter - to clear the validator control if required
function clearPageValidatorByID(vdSummary)
{
	//Page_ClientValidate = 0;
	var VSum = document.getElementById (vdSummary).innerHTML = "";
	
	for ( var i = 0; i < Page_Validators.length ; i ++ )
	{
		document.getElementById (Page_Validators[i].id).style.visibility ="hidden";
	}	
}




// this method will open max. window (mainly for reports)
function doOpenReports(mURL, winName)
{
	try
	{
		var mWidth = parseInt(window.screen.availWidth,10) - parseInt(20,10);
		var mHeight = parseInt(window.screen.availHeight,10) - parseInt(20,10);
		var mTop = 5;
		var mParam = "top=" + mTop + ",width=" + mWidth + ",height=" + mHeight + ",left=5,toolbars=no,controlbox=no,status=yes,scrollbars=yes";
		if(mURL.length>0)
			window.open(mURL,winName,mParam);
	}
	catch(mErrr)
	{
		//alert(mErr.message);
	}
}

// this method will opend a normal window(search, master) at el.
function doOpenWindow(mURL)
{
	try
	{
		if(mURL.length>0)
			window.open(mURL,"winMaster","top=175px,width=550px,height=400px,toolbars=no,controlbox=no,status=yes,scrollbars=yes");
	}
	catch(mErrr)
	{
		//alert('doOpenWindow : ' + mErr.message);
	}
}

//Trim function is to trim the values
function trim(s) 
{
	try
	{
		while (s.substring(0,1) == ' ') 
		{
			s = s.substring(1,s.length);
		}
		while (s.substring(s.length-1,s.length) == ' ') 
		{
			s = s.substring(0,s.length-1);
		}
		return s;
	}
	catch(mErr)
	{
		//alert('trim : ' + mErr.message);
	}
}


function chkemail(str)
{
	//regexp=/[^@.]+@+[^@.]+\.+[^@.]/
	regexp=/^[a-z][\w\.]*@[\w\.]+\.[a-z]{2,3}/i
   	return regexp.test(str)
}


//Allow to enter number only
function NumberOnly_onkeypress(sender, e)
{
      try
      {
			var key;

			e=(e) ? e:window.event;
				
			key = (e.which)? e.which : e.keyCode;

			if(!document.all && e.keyCode!=0) return true;// this is for firefox to allow non printable characters

			if (key > 31 && (key < 48 || key > 57))
			{
				if(document.all) 
					e.keyCode =false; 
				else
					e.preventDefault();
				return false;
			}
			else
			{

				return true;
			}
      }
      catch(mErr)
      {
            alert(mErr.message);
      }
}

//Allow to paste number only
function NumberOnly_onpaste(sender, e)
{
	try
	{
		var cbText=readClipboard();
		cbText=parseInt(cbText);
		if(cbText)
			return true;
		else
			return false;
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

//Allow to enter float values only
function FloatOnly_onkeypress(sender, e)
{
	try
	{
		var key;
		e=(e)?e:window.event;
			
        key = (e.which)?e.which:e.keyCode;

		if(!document.all && e.keyCode!=0) return true;// this is for firefox to allow non printable characters
		
		if(key>=48 && key<=57)
		{
			return true;
		}
		else if(key==46)
		{
			if(sender.value.indexOf('.')>=0)
			if(document.all) e.keyCode=false;
			else e.preventDefault();
		}
		else
		{
			if(document.all) e.keyCode=false;
			else e.preventDefault();
			return false;
		}
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}


//Allow to paste float only
function FloatOnly_onpaste(sender, e)
{
	try
	{
		var cbText=readClipboard();
		cbText=parseFloat(cbText);
		if(cbText)
		{
			cbText=''+cbText;
			clipboardData.setData("Text",cbText);
			return true;
		}
		else
			return false;
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}



//*********************************TEXT AREA METHODS STARTS HERE ************************************//

function txt_checkMax_onfocus(sender,event,maxAlert,toolTipMsg)
{	
	if(!sender.getAttribute('maxAlert'))
	{
		sender.setAttribute('maxAlert',maxAlert);
		sender.setAttribute('toolTipMsg',toolTipMsg);
	}
}

//Prevent typing on textarea above the given limit
function txt_checkMax_onkeypress(sender, maxlength, e)

{
	try
	{
		if(!e)
			e=window.event;

		if(!maxlength)
		{
			maxlength=sender.getAttribute('maxlength');
		}
		else
			sender.setAttribute('maxlength',maxlength);

		var keyValue;
		
		if(document.all)
			keyValue=e.keyCode;
		else
			keyValue=e.which;

		if(keyValue==0 || keyValue==8) //for firefox allowing non-printable character
		{
			//return true;
			//do nothing
		}
		else if(keyValue==13 && sender.value.length+2>=maxlength)
		{
			if(document.all) e.keyCode=false;
			else e.preventDefault();
			return false;
		}
		else if(sender.value.length>=maxlength)
		{
			if(document.all) e.keyCode=false;
			else e.preventDefault();
			return false;
		}
		
	
		return true;

	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

function txt_checkMax_onkeyup(sender,event)
{
		var DivRef =document.getElementById('checkMaxDiv');
		var maxlength=sender.getAttribute('maxlength');
		if(!maxlength)			
			return;
		if(!DivRef)
		{
			DivRef= document.createElement('div');
			
			DivRef.style.visibility='visible';
			//DivRef.style.visibility='hidden';
			DivRef.style.display = "block";
			DivRef.className="maxlengthToolTip";
			DivRef.id='checkMaxDiv';
		    DivRef.style.position='absolute';

            //Set the position and dimension of the tooltip
            var curleft=0;
            var curtop=0;
            var obj=sender;		    
            do{ 
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
            }
            while (obj = obj.offsetParent);

		    DivRef.style.left=curleft;
		    DivRef.style.top=curtop-20;
		    DivRef.style.zIndex='1';
		    
		    //adding the tooltip control to form

		    document.forms[0].appendChild(DivRef);

		}	

		var strRemaining= (maxlength-sender.value.length);
		
		var toolTipMsg=sender.getAttribute('toolTipMsg');
		if(toolTipMsg && toolTipMsg!='')
		{	
			toolTipMsg=toolTipMsg.replace('{0}',strRemaining);
			toolTipMsg=toolTipMsg.replace('{1}',maxlength);
		}
		else
		{
			toolTipMsg=strRemaining+ " of "+maxlength
		}
		
		DivRef.innerHTML =  toolTipMsg;
}

function txt_checkMax_onblur(sender,event)
{
    try
    {
	    var maxlength=sender.getAttribute('maxlength');
    	
	    if(maxlength && sender.value.length>maxlength)
	    {
		    var maxAlert=sender.getAttribute('maxAlert');
		    if(maxAlert && maxAlert!='')
		    {
			    maxAlert=maxAlert.replace('{0}',maxlength);
			    maxAlert=maxAlert.replace('{1}',sender.value.length);
		    }
		    else
		    {
			    maxAlert='Maximum allowed characters are ' + maxlength +' only.';
			    maxAlert+='But u have entered ' + sender.value.length +' characters';
		    }	
    			
		    alert(maxAlert);
		    sender.focus();
		    return;
	    }	
	  
	    var DivRef =document.getElementById('checkMaxDiv');
	    if(DivRef)
	    {
	       DivRef.style.visibility='hidden';
	       DivRef.parentNode.removeChild(DivRef);
	    }
    }
   	catch(mErr)
	{
		alert(mErr.message);
	}

}

//On paste process
function txt_checkMax_onpaste(sender, maxlength, e)
{
	try
	{
		txt_checkMax_onkeyup(sender,e);
		
		var DivRef =document.getElementById('checkMaxDiv');
		
		if(!maxlength)
		{
			maxlength=sender.getAttribute('maxlength');
		}
		else
			sender.setAttribute('maxlength',maxlength);

		var strRemaining= (maxlength-sender.value.length);
		var toolTipMsg=sender.getAttribute('toolTipMsg');
		if(toolTipMsg && toolTipMsg!='')
		{	
			toolTipMsg=toolTipMsg.replace('{0}',strRemaining);
			toolTipMsg=toolTipMsg.replace('{1}',maxlength);
		}
		else
		{
			toolTipMsg=strRemaining+ " of "+maxlength
		}
		
		if(DivRef)
			DivRef.innerHTML =  toolTipMsg;
		
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

//*******************************TEXTAREA FUNCTIONS ENDS HERE******************************//

      
/* ------------------Methods related to RAD Controls starts here-------------------------*/
//Check empty date in the RAD Date picker. 
//Note : Its for the non-AJAX rad datepickers. For AJAX rad controls use REQUIRED FIELD VALIDATORS
function checkDate(source, arguments)

{
	var dtPickName=source.controltovalidate+'_dateInput';


	if(document.getElementById(dtPickName).value==''||
		document.getElementById(dtPickName).value=='0001-1-1' || 
		document.getElementById(dtPickName).value=='0001-1-1 0:0:0')

		arguments.IsValid=false;
	else
		arguments.IsValid=true;
}

//RAD DatePicker for disabling the typing. Clear the date while press delete button
function radDP_onKeyDown(sender, e)
{
	try
	{
		if(!e)
			e=window.event;
		var keyValue;
		if(document.all) keyValue=e.keyCode
		else keyValue = e.which;
		
		var dp=$find(sender);
		
		if(keyValue==8 || keyValue==46) //backspace and delete
		{
			dp.clear();
		}
		else if(keyValue==9) //tab
		{
			return true;
		}
			
		return false;
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

/* ------------------Methods related to RAD Controls ENDS here-------------------------*/



/* -------------------- Functions used for the HELP functionalities starts here-------------------- */
//For help
function adrHelp()
{
            strURL=document.location.href;

            strURL=strURL.replace(document.location.search,'');

            arrParse=strURL.split('/');

            strHelpURL=arrParse[arrParse.length-1];

            strHelpURL=strHelpURL.replace('.aspx','.htm');

           
	    var LangCookieValue = getCookieValue('CLang');

	    if(LangCookieValue !='')

		 strHelpURL='../help/'+LangCookieValue+'/'+strHelpURL;	
	    else
		 strHelpURL='../help/ENG/'+strHelpURL;


            var oScriptColl = document.getElementsByTagName('SCRIPT');

            for(i=0;i<oScriptColl.length;i++)

            {

                var strAtt=oScriptColl[i].attributes.getNamedItem('src');



                if(strAtt.value.indexOf('JS/CommonLibrary.js')!=-1)

                {

                    var strHelpFolder=strAtt.value.replace('JS/CommonLibrary.js','')

                    strHelpURL=strHelpURL.replace('../',strHelpFolder);

                    break;

                }

            }

            window.open(strHelpURL,'HelpPopup','alwaysRaised=1, dependent=Yes, width=900, height=500, top=150, left=75, titlebar=0,status=Yes,scrollbars =1');
            //window.open(strHelpURL);
           return false;
}


function winHelp() //windows help
{
	adrHelp();
	return false;
}


function firefoxHelp(e)
{

    
	if(e && e.which!=112)  //112 is for F1
	{
		return true;
	}
	adrHelp();
	e.preventDefault();
}

function getCookieValue (cookieName) 
{
	var exp = new RegExp (escape(cookieName) + "=([^;]+)");
	if (exp.test (document.cookie + ";")) 
	{
		exp.exec (document.cookie + ";");
		return unescape(RegExp.$1);
	}
	else 
		return false;
}
/* -------------------- Functions used for the HELP functionalities ends here-------------------- */



/*---------------------- PAYROLL functions are starts here ---------------------------------------*/

//Restricted float values for the PAYROLL entries

	function FloatOnlyWithRestrict_onkeypress(thiss,e,Bdot,Adot)
      {
            var str;
            var cnt=0;
            var totdigit=0;
            var len=0;
            var temp=Bdot;
            var iLoop,iNumAscii,iNumValue,dotposition;

                if(document.getElementById (thiss.id)!=null)
                {
                  str=new String(document.getElementById (thiss.id).value);
                }
                 len=str.length;
              var key;
		       e=(e)?e:window.event;
               key = (e.which)?e.which:e.keyCode;
               if(!document.all && e.keyCode!=0) return true;
               
                if(key==46)
                {
                    temp=Bdot+Adot+1;
                    for( iLoop=0; iLoop<str.length;iLoop++)
                    {		
                    iNumValue=str.charAt(iLoop);
                    iNumAscii=iNumValue.charCodeAt(0);

                    if(iNumAscii==46)
                    { cnt++; }
                }
                if(cnt>0 && key!=8 && key!=0 )
                {
                    if(document.all) e.keyCode=false;
                    else e.preventDefault();
                    return false;
                }
              }
                else
                {
                    if((key<48 || key>57)&& (key!=46) && key!=8 && key!=0 )
                    {
                        if(document.all) e.keyCode=false;
                        else e.preventDefault();
                        return false;
                    }
                    dotposition=str.indexOf(".");
                }
                dotposition=str.indexOf(".");
                if(dotposition>-1)
                  {
                   temp=Adot+Bdot+1;

                   totdigit=str.substring(dotposition+1,str.length);

                  if(((totdigit.length)>Adot-1) && key!=8 && key!=0 )
                    {
                     if(document.all) e.keyCode=false;
                     else e.preventDefault();
                     return false;
                  }
                }
                if(len>temp && key!=8 && key!=0 )
                {

                    if(document.all) e.keyCode=false;
                    else e.preventDefault();
                    return false;
                }
                temp++; 
     }




function doDelete(mObj)
{
	try
	{
		// if del key is pressed, clear the text box
		if(event.keyCode==46)
		{
			mObj.value = "";
		}
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}


//Allow Alphabets only
function AlphabetsWithExcep_onkeypress(sender, e)
{
	try
	{
		
		if(!e)
			e=window.event;
		
		var keyValue;
		
		if(document.all) 
			keyValue=e.keyCode;
		else 
			keyValue = e.which;
		
		if(keyValue==0 || keyValue==8 || keyValue==9 || (keyValue >= 33 && keyValue <= 40)) //for firefox allowing non-printable character
			return true;
			
		if (keyValue != 32)
		{
			if(keyValue<65 || keyValue>90)
			{
				if(keyValue<97 || keyValue>122 )
				{
					if(!((keyValue == 46) || (keyValue== 44)) )
					{
						if(document.all) e.keyCode=false;
						else e.preventDefault();
						return false; 
					}
				}
			}
		}	
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

function AlphaNumericOnly_onkeypress(sender, e)
{
	

		

	if(!e)
		e=window.event;
	
	var keyValue;
	
	if (document.all) 
		keyValue=e.keyCode;
	else 
		keyValue = e.which;
	
	
	
	if (keyValue==0) //for firefox allowing non-printable character
		return true;
		
    var str;

    str=document.getElementById(sender.id).value;

    if (str.length==0)
    {
       if (!((keyValue >= 65 && keyValue <= 90) || (keyValue >= 97 && keyValue <= 122 ) || (keyValue==8)))
        {
	    if(document.all) e.keyCode=false;                                                                 
            else e.preventDefault();
            return false;                                       
        }
    }
    else
    {
        if (!((keyValue >= 65 && keyValue <= 90) || (keyValue >= 97 && keyValue <= 122 ) || (keyValue >= 48 && keyValue <= 57) || (keyValue == 95) || (keyValue==8)))
        {
            if(document.all) e.keyCode=false;                                                                 
            else e.preventDefault();
            return false;
        }
    }
}            


function AlphaNumeric_onkeypress(sender, e)
{

	if(!e)
		e=window.event;
	
	var keyValue;
	if(document.all) 
		keyValue=e.keyCode;
	else 
		keyValue = e.which;
	
	if(keyValue==0) //for firefox allowing non-printable character
			return true;
	var str;
    str=document.getElementById(sender.id).value;
    if (str.length==0)
    {
       if (!((keyValue >= 65 && keyValue <= 90) || (keyValue >= 97 && keyValue <= 122 ) || (keyValue==8)))
        {
            if(document.all) window.event.keyCode=false;                                                                 
            else e.preventDefault();
            return false;                                       
        }
    }
    else
    {
        if (!((keyValue >= 65 && keyValue <= 90) || (keyValue >= 97 && keyValue <= 122 ) || (keyValue >= 48 && keyValue <= 57) || (keyValue == 95) || (keyValue == 32) || (keyValue == 40) || (keyValue == 41) || (keyValue == 91) || (keyValue == 93) || (keyValue == 123) || (keyValue == 125) || (keyValue == 38) || (keyValue==8)))
        {
            if(document.all) window.event.keyCode=false;                                                                 
            else e.preventDefault();
            return false;
        }
    }
}


//Allow to enter alpha numeric with exceptions
function AlphaNumWithExcep_onkeypress(sender, e)
{
	try
	{
		
		if(!e)
			e=window.event;
		
		var keyValue;
		if(document.all) keyValue =e.keyCode;
		else keyValue = e.which;
		
		if(keyValue==0 || keyValue==8 || keyValue==9 || (keyValue >= 33 && keyValue <= 40)) //for firefox allowing non-printable character
			return true;
			
		if (keyValue != 32)
		{
			if(keyValue<48 || keyValue>58 )
			{
				if(keyValue<65 || keyValue>90)
				{
					if(keyValue<97 || keyValue>122 )
					{
						if(!((keyValue == 47) ||(keyValue == 46) || (keyValue== 44) || (keyValue == 43) || 
							 (keyValue == 45) ||(keyValue == 40) || (keyValue == 41)) )
						{
							if(document.all) e.keyCode=false;
							else e.preventDefault();
							return false; 
						}
					}
				}
			}
		}	
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

function FloatOnlyWithNeg_onkeypress(thiss,e,Bdot,Adot)
      {
            var str;
            var cnt=0;
            var totdigit=0;
            var len=0;
            var temp=Bdot;
            var iLoop,iNumAscii,iNumValue,dotposition;
            
                if(document.getElementById (thiss.id)!=null)
                {
                  str=new String(document.getElementById (thiss.id).value);
                }
                 len=str.length;
              var key;
		       e=(e)?e:window.event;
               key = (e.which)?e.which:e.keyCode;
               if(!document.all && e.keyCode!=0) return true;
               
                if(key==46)
                {
                    temp=Bdot+Adot+1;
                    for( iLoop=0; iLoop<str.length;iLoop++)
                    {		
                    iNumValue=str.charAt(iLoop);
                    iNumAscii=iNumValue.charCodeAt(0);

                    if(iNumAscii==46)
                    { cnt++; }
                  }
                if(cnt>0 && key!=8 && key!=0 )
                {
                    if(document.all) e.keyCode=false;
                    else e.preventDefault();
                    return false;
                }
              }
               else if(key==45)
	         {
			        
			        if(thiss.value.length==0)
			            return true;
			        else if(thiss.value.indexOf('-')>=0)
				     {
    				   
				      if(document.all) e.keyCode=false;
			                else e.preventDefault();
			                return false;
				     }
			       else
			       {
			        if(document.all) e.keyCode=false;
			                else e.preventDefault();
			                return false;
			       }
			       
			  }      
                else
                {
                    if((key<48 || key>57)&& (key!=46) && key!=8 && key!=0 )
                    {
                        if(document.all) e.keyCode=false;
                        else e.preventDefault();
                        return false;
                    }
                    dotposition=str.indexOf(".");
                }
                dotposition=str.indexOf(".");
                if(dotposition>-1)
                  {
                   temp=Adot+Bdot+1;

                   totdigit=str.substring(dotposition+1,str.length);

                  if(((totdigit.length)>Adot-1) && key!=8 && key!=0 )
                    {
                     if(document.all) e.keyCode=false;
                     else e.preventDefault();
                     return false;
                  }
                }
                if(str.indexOf("-")>-1)
                  temp++;
                if(len>temp && key!=8 && key!=0 )
                {

                    if(document.all) e.keyCode=false;
                    else e.preventDefault();
                    return false;
                }
     }

function NegativeFloat_onkeypress(sender, e)
 {
	try
	{
		var key;
		e=(e)?e:window.event;
	        key = (e.which)?e.which:e.keyCode;
           
		if(!document.all && e.keyCode!=0) return true;// this is for firefox to allow non printable characters
		
		if(key>=48 && key<=57)
		{
			return true;
		}
		else if(key==46)
		{
			if(sender.value.indexOf('.')>=0)
			if(document.all) e.keyCode=false;
			else e.preventDefault();
		}
		else if(key==45)
		{
               //alert(key);

                               
                 if(sender.value.length==0)
                          return true; 
		 else if(sender.value.indexOf('-')>=0)
                      {
			if(document.all) e.keyCode=false;
			else e.preventDefault();
			return false;
                       } 
                   else 
                       {
                           if(document.all) e.keyCode=false;
			   else e.preventDefault();
			return false;
                      
		      }
                     
		}
		else
		{
			if(document.all) e.keyCode=false;
			else e.preventDefault();
			return false;
		}
	}
	catch(mErr)
	{
		alert(mErr.message);
	}
}

/*---------------------- PAYROLL functions are ENDS here ---------------------------------------*/

/*---------------------- Dynamic Popup Autosuggest ---------------------------------------------*/

var thisid;var tblname;var textfield;var codefield;
function setthisid(cntrlid,tbl,txt,code)
{thisid=cntrlid;tblname=tbl;textfield=txt;
codefield=code;document.getElementById(thisid+'_Value').value='';
CallSum();}
function CallSum(){var k = event.keyCode;if( k == 40)
{showtooltip();return;}var txt1 = $get(thisid+'_Text');
if(txt1.value.length > 2){var strqry="SELECT "+ textfield +" AS NAME, "+ codefield +" AS CODE FROM "+ tblname +" WHERE "+ textfield +" LIKE N'" + txt1.value + "%'";try {PageMethods.Filler(strqry,OnCallSumComplete,OnCallSumError);} catch(e){}}  
else{ClearListBox();}}
function OnCallSumComplete(result,txtresult,Filler)
{var ds = result;var jcnt='NA';if(ds != null && typeof(ds) == 'object')
{ClearListBox();var lstBoxObj = document.getElementById(thisid+'_lstBox');
for(var i=0; i<ds.tables[0].rows.length; i++){var newOption = new Option();
newOption.text = ds.tables[0].rows[i].name;newOption.value = ds.tables[0].rows[i].code;
lstBoxObj.options[i] = newOption;jcnt=i;}}else{ClearListBox();}if (jcnt!='NA'){showtooltip();}}
function ClearListBox(){var lstBoxObj = document.getElementById(thisid+'_lstBox');
for(var i = lstBoxObj.options.length; i >= 0; i--){lstBoxObj.remove(i);}}
function OnCallSumError(error,userContext,Filler){alert('here-err');
if(error !== null){alert(error.get_message());}}
function showtooltip(){if ( document.getElementById(thisid+'_Text').value.length>=1)
{var tooltip = $find(thisid+'rdTooltip');
tooltip.set_offsetX(document.getElementById(thisid+'_Text').offsetLeft);
tooltip.set_offsetY(document.getElementById(thisid+'_Text').offsetTop);
tooltip.show();var k = event.keyCode;
if( k == 40){document.getElementById(thisid+'_lstBox').focus();}}}
function ChooseSelected(){var k = event.keyCode;
if( k == 39 || k == 13)
{var lstBoxObj = document.getElementById(thisid+'_lstBox');
for(var i = 0;i<=lstBoxObj.options.length-1; i++)
{if (lstBoxObj.options[i].selected==true)
{document.getElementById(thisid+'_Text').value=lstBoxObj.options[i].text;
document.getElementById(thisid+'_Value').value=lstBoxObj.options[i].value;}}
var tooltip = $find(thisid+'rdTooltip');tooltip.hide();
setTimeout("__doPostBack(' + document.forms[0] + ' ,'')", 0);}}
function onblurpost(){ 
if (document.getElementById(thisid+'_Value').value=='' && document.getElementById(thisid+'_Text').value!='' && document.getElementById(thisid+'_lstBox').options.length<=0){setTimeout("__doPostBack(' + document.forms[0] + ' ,'')", 0);}}
function SelectFirst(){var lstBoxObj = document.getElementById(thisid+'_lstBox');try{lstBoxObj.options[0].selected=true; }catch(e){}}


/*---------------------- Dynamic Popup Autosuggest Ends Here---------------------------------------------*/
