function BMF_numkey(dtype,evt,nextOp){
try{
if (!evt)
    evt=event;
var srcEl=isfirefox?evt.target:event.srcElement;
var keyNo=isfirefox?evt.which:event.keyCode;
if (keyNo==127 || keyNo==8)
    return true;
var d = new Number(0);
var mynumber= new String(srcEl.value);
var floatP=mynumber.search('[.]');
var max=new Number(0);
switch(dtype){
    case 'bigint':
        d=0;
        max=9223372036854775807-1;
        break;
    case 'int':
        d=0;
        max=2147483647-1;
        break;
    case 'smallint':
        d=0;
        max=32768-1;
        break;
    case 'tinyint':
        d=0;
        max=255-1;
        break;
    case 'money':
        d=1;
        max=Math.pow(2,63);
        break;
    case 'float':
        d=1;
        max=1.79 * Math.pow(10,308);
        break;
    case 'real' :
        d=1;
        max=3.40 * Math.pow(10,38);
        break;
    case 'date' :
        d=0;
        max=9999999999;
        break;
    case 'year' :
        d=0;
        max=1500;
        break;
    default:
        d=0;
        max=2147483647-1;
        break;
}
switch(keyNo){
    case 0:
    case 8:
        break;
    case 46:
        if (d==1 && floatP==-1){
            break;
            }
            else{
                preventKeypress(evt);
                }
    case 47:
        if (dtype=='date'){
            break;
            }
            else{
                preventKeypress(evt);
                }
    case 48:
        break;
    case 49:
        break;
    case 50:
        break;
    case 51:
        break;
    case 52:
        break;
    case 53:
        break;
    case 54:
        break;
    case 55:
        break;
    case 56:
        break;
    case 57:
        break;
    default:
        preventKeypress(evt);
        break;
}
if (keyNo!=46){
    mynumber=mynumber+(keyNo-48);
    }
if (mynumber>max){
    preventKeypress(evt);
    };
var myselected=new String(BMF_getSelectedText());
if (dtype=='date' && mynumber.length>10 && myselected.length==0  ){
    preventKeypress(evt);
    };
    if (nextOp)
    eval(nextOp);
    }catch(e){}
}

function BMF_getSelectedText(){
var txt =new String('');
var foundIn = '';
if (window.getSelection){
    txt = window.getSelection();
    }
    else if (document.getSelection){
        txt = document.getSelection();
        }
        else if (document.selection){
            txt = document.selection.createRange();
            }else
                return;
return txt;
}
function preventKeypress(evt){
        if (isfirefox)
            evt.preventDefault();
        else
            evt.keyCode=NaN;
}
//(1)////////////////////////////////////////////////////////////////////////////////
function BMF_checkDate(evt,nextOp){
var srcEl=isfirefox?evt.target:evt.srcElement;
var DateText =new String(srcEl.value);

var helper,helper2;
if(DateText.length==8 && IsNumeric(DateText)){
srcEl.value=DateText.substring(0,4)+'/'+DateText.substring(4,6)+'/'+DateText.substring(6,8);
return;
}
if(DateText.length==6 && IsNumeric(DateText)){

srcEl.value='13'+DateText.substring(0,2)+'/'+DateText.substring(2,4)+'/'+DateText.substring(4,6);
return;
}
if(DateText.length<=8 & DateText.length>=6 & DateText.charAt(2)=='/'){
    DateText='13' + DateText;
    if (DateText.length<=10){
        srcEl.value=DateText;
        }
    }
if(DateText.length<10 & DateText.length>=8){
    if(DateText.charAt(4)=="/" & DateText.charAt(7)=="/"  & DateText.length==9){
        helper=DateText.slice(0,8);
        DateText=helper + "0" + DateText.charAt(8);
        srcEl.value=DateText;
        }
    if(DateText.charAt(4)=="/" & DateText.charAt(6)=="/" & DateText.length==8){
        helper=DateText.slice(0,4) + "/0" + DateText.charAt(5) + "/0" + DateText.charAt(7);
        DateText=helper;
        srcEl.value=DateText;
        }
    if(DateText.charAt(4)=="/" & DateText.charAt(6)=="/" & DateText.length==9){
        helper=DateText.slice(0,4);
        helper2=DateText.slice(5,9);
        DateText=helper + "/0" + helper2;
        srcEl.value=DateText;
        }
    }
if (nextOp)
    eval(nextOp);
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

