var dFilterStep

function dFilterStrip (dFilterTemp, dFilterMask) {
    dFilterMask = replace(dFilterMask,'#','');
    for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++)
		{
		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
		}
		return dFilterTemp;
}

function dFilterMax (dFilterMask) {
 		dFilterTemp = dFilterMask;
    for (dFilterStep = 0; dFilterStep < (dFilterMask.length+1); dFilterStep++)
		{
		 		if (dFilterMask.charAt(dFilterStep)!='#')
				{
		        dFilterTemp = replace(dFilterTemp,dFilterMask.charAt(dFilterStep),'');
				}
		}
		return dFilterTemp.length;
}

function dFilter (key, textbox, dFilterMask) {
   dFilterNum = dFilterStrip(textbox.value, dFilterMask);
		
   if (key==9) {
      return true;
   }
   else if (key==8&&dFilterNum.length!=0) {
      dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
   }
   else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length<dFilterMax(dFilterMask) ) {
      dFilterNum=dFilterNum+String.fromCharCode((key>95&&key<106) ? key-48 : key);
   }

   var dFilterFinal='';
   for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++) {
      if (dFilterMask.charAt(dFilterStep)=='#') {
         if (dFilterNum.length!=0) {
            dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
			dFilterNum = dFilterNum.substring(1,dFilterNum.length);
         }
         else {
            dFilterFinal = dFilterFinal + "";
         }
      }
      else if (dFilterMask.charAt(dFilterStep)!='#') {
         dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep); 			
      }
   }

   textbox.value = dFilterFinal;
   return false;
}

function replace(fullString,text,by) {
// Replaces text with by in string
    var strLength = fullString.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return fullString;

    var i = fullString.indexOf(text);
    if ((!i) && (text != fullString.substring(0,txtLength))) return fullString;
    if (i == -1) return fullString;

    var newstr = fullString.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(fullString.substring(i+txtLength,strLength),text,by);

    return newstr;
}
function inputMaskFloat(evnt, field) {
  var key = document.all ? evnt.keyCode : document.layers ? evnt.which : 0;
  var val = field.value;
  if (key == 9 || key == 13)
    return true;
  else
  if ((key > 47 && key < 58) || (key > 95 && key < 106) || (key == 8)) {
    if (key == 8) {
      val = val.substring(0, val.length-3) + val.substring(val.length-2, val.length-1);
      if (val.length < 3)
        val = '0' + val;
	} else {
	  val = val.substring(0, val.length-3) + val.substring(val.length-2, val.length);
	  if (val.length < field.maxLength-1)
	    val += String.fromCharCode(key > 95 ? key-48 : key);
	  if (val.charAt(0) == '0')
		val = val.substring(1, val.length);
    }
    val = val.substring(0, val.length-2) + '.' + val.substring(val.length-2, val.length);
	field.value = val;
  }
  return false;
}

