//<input value="" type="text" onKeyDown="javascript:return dFilter(event.keyCode, this, '##-##-##-##-##');" />
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 (e, textbox, dFilterMask) {

  if (!e) { var e = window.event; }
  if (e.keyCode) { key = e.keyCode; }
  else if (e.which) { key = e.which; }

  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 ( dFilterNum.length<dFilterMax(dFilterMask) ) {
	if (key>47&&key<58) {
	  dFilterNum=dFilterNum+String.fromCharCode(key);
	} else if (key>95&&key<106) {
	  dFilterNum=dFilterNum+String.fromCharCode(key-48);
	}
  }

  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 = (dFilterStrip(dFilterFinal, dFilterMask) != '')?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;
}

