﻿ function FormatFloat(objNum)
     {
     //debugger;
         
          var num = objNum.value.replace(regExpGroup,'');
         //debugger;
           
          var ent, dec;
          
          if (num != '' && num != objNum.oldvalue)
          {
            
               num = MoneyToNumber(num);
               if (isNaN(ClearComma(num)))
               {
               
                    if(objNum.oldvalue != null)
                        objNum.value = objNum.oldvalue;
                    else
                        objNum.value = '';
               }
               else
                {
                    var ev = (navigator.appName.indexOf('Netscape') != -1)?Event:event;
                    if((ev.keyCode <=40 && ev.keyCode>=37) || (ev.keyCode  == 16 || ev.keyCode == 36))
                        return;
                    var decimalSeperatorKeyCode = (DECIMALSEPERATOR == ',')?188:110;
                    if (ev.keyCode == decimalSeperatorKeyCode || !isNaN(num.split(DECIMALSEPERATOR)[1]))
                    {
                         num += DECIMALSEPERATOR;
					     objNum.value = AddDots(num.split(DECIMALSEPERATOR)[0]) + DECIMALSEPERATOR + num.split(DECIMALSEPERATOR)[1];
                    }
                    else
                    {
						 //alert(AddDots(num.split(',')[0]));
                         objNum.value = AddDots(num.split(DECIMALSEPERATOR)[0]);
                    }
                    objNum.oldvalue = objNum.value;
                   
               }
          }
          setCursorPosition(objNum,objNum.value.length,objNum.value.length);
           
          
     }
     function FormatInteger(objNum)
         {
          
          var num = objNum.value.replace(regExpGroup,'');
         
          var ent, dec;
          if (num != '' && num != objNum.oldvalue)
          {
               num = MoneyToNumber(num);
               
               if (isNaN(num))
               {
                    if(objNum.oldvalue != null)
                        objNum.value = objNum.oldvalue;
                    else
                        objNum.value = '';
               }
               else
                {
                    var ev = (navigator.appName.indexOf('Netscape') != -1)?Event:event;
                    
                    if((ev.keyCode <=40 && ev.keyCode>=37) || (ev.keyCode  == 16 || ev.keyCode == 36))
                        return;
                     var decimalSeperatorKeyCode = (DECIMALSEPERATOR == ',')?188:110;   
                    if (ev.keyCode == decimalSeperatorKeyCode || !isNaN(num.split(DECIMALSEPERATOR)[1]))
                    {
                         num += DECIMALSEPERATOR;
					     objNum.value = AddDots(num.split(DECIMALSEPERATOR)[0])+DECIMALSEPERATOR+num.split(DECIMALSEPERATOR)[1];
                    }
                    else
                    {
						 //alert(AddDots(num.split(',')[0]));
                         objNum.value = AddDots(num.split(DECIMALSEPERATOR)[0]);
                    }
                    objNum.oldvalue = objNum.value;
                   
               }
          }
          setCursorPosition(objNum,objNum.value.length,objNum.value.length);
           //objNum.selectionEnd = pos;
           //objNum.selectionStart = pos;
           //objNum.setSelectionRange(objNum.caretPos.text.length - 1,objNum.caretPos.text.length - 1);
           //objNum.select();
           //alert(objNum.caretPos.text.length);
          
     }
     function MoneyToNumber(num)
     {
          return (num.replace(regExpGroup, ''));
          //return (num.replace(/\./g, ''));
     }
     function ClearComma(num)
     {
        return (num.replace(regExpDecimal, ''));
         //return (num.replace(/\,/ , ''));
     }
     function AddDots(num)
     {
          numArr=new String(num).split('').reverse();
          for (i=3;i<numArr.length;i+=3)
          {
               numArr[i] += GROUPSEPERATOR;
          }
          return numArr.reverse().join('');
     }
     function unFormatNumber(ref)
     {
        if(ref.value == "")
            return;
        ref.value = ref.value.replace(regExpGroup,'');
		var intPart = parseFloat(ref.value.split(DECIMALSEPERATOR)[0]).toString();
		var decimalPart = ref.value.split(DECIMALSEPERATOR)[1];
		ref.value = intPart;
		if(decimalPart != undefined)
		    ref.value += DECIMALSEPERATOR + decimalPart;
		/*    
		if(ref.value.split(DECIMALSEPERATOR).length == 2)
		    ref.value = intPart + ref.value.split(DECIMALSEPERATOR)[1];
		if(ref.value.split(DECIMALSEPERATOR).length == 2 && ref.value.split(DECIMALSEPERATOR)[1].length == 0)
		    ref.value = ref.value.replace(regExpDecimal,'');
		    */
		
     }
     function setCursorPosition(oInput,oStart,oEnd) 
     {
   	       if( oInput.setSelectionRange ) {
    	         oInput.setSelectionRange(oStart,oEnd);
             } 
             else if( oInput.createTextRange ) {
                var range = oInput.createTextRange();
                range.collapse(true);
                range.moveEnd('character',oEnd);
                range.moveStart('character',oStart);
                range.select();
             }
       }
       
     function CheckNumeric(e)
     {
        var validchars = '1234567890,';
        return CheckValidChars(e,validchars);
     }
     
     function CheckText(e)
     {
        var iCode = getKeyCode(e);
        var rtn   = ( iCode < 48 || iCode > 57 );
        return rtn;
     }
       
     function CheckValidChars(e,validchars)
     {
        var iCode = getKeyCode(e)
        var keychar='';
        
        if (iCode == null) return true;
        keychar = String.fromCharCode(iCode);
        keychar = keychar.toLowerCase();
        validchars = validchars.toLowerCase();
    //alert(iCode + ' ' + String.fromCharCode(iCode) );
	if (validchars.indexOf(keychar) != -1)
		return true;
	if ( iCode==null
            //|| (iCode >= 37 && iCode <= 40)     // Arrows
            //|| (iCode >= 96 && iCode <= 105)	// Numpad
			|| iCode == 0						// ??
			|| iCode == 8						// Backspace
			//|| iCode == 9						// Tab
			//|| iCode == 13						// Enter
			//|| iCode == 16						// Shift
			//|| iCode == 27						// Escape
			//|| iCode == 46						// Delete
        )
		return true;
	return false;
     }
     
     
 function getKeyCode(e)
{
 if (window.event)
    return window.event.keyCode;
 else if (e)
    return e.which;
 else
    return null;
}
     
     
     
     
     

