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) )
    else if ( (key>47&&key<58) && dFilterNum.length<dFilterMax(dFilterMask) )
    {
       dFilterNum=dFilterNum+String.fromCharCode(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);                
     	}
		// dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
   	}
  	textbox.value = dFilterFinal;
  	return false;
}

function replace(fullString,text,by) 
{
   	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;
}
