// [dFilter] - A Numerical Input Mask for JavaScript
// Written By Dwayne Forehand - March 27th, 2003
// Please reuse & redistribute while keeping this notice.



function dFilter (evt, textbox, dFilterMask){
 var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
//alert(charCode);
//alert( textbox.value);

  p=textbox.value;

if((charCode>47 && charCode>57)){
  return false;
}

if(p.length>12){
 return false;
}
  if(p.length==3){
	//d10=p.indexOf('(')
	pp=p;
	d4=p.indexOf('(')
	d5=p.indexOf(')')
	if(d4==-1){
		pp="("+pp;
	}
	if(d5==-1){
		pp=pp+")";
	}
	//pp="("+pp+")";
	textbox.value="";
	textbox.value=pp;
  }
  if(p.length>3){
	d1=p.indexOf('(')
	d2=p.indexOf(')')
	if (d2==-1){
		l30=p.length;
		p30=p.substring(0,4);
		//alert(p30);
		p30=p30+")"
		p31=p.substring(4,l30);
		pp=p30+p31;
		//alert(p31);
		textbox.value="";
		textbox.value=pp;
	}
  }
  if(p.length>5){
	p11=p.substring(d1+1,d2);
	if(p11.length>3){
	p12=p11;
	l12=p12.length;
	l15=p.length
	//l12=l12-3
	p13=p11.substring(0,3);
	p14=p11.substring(3,l12);
	p15=p.substring(d2+1,l15);
	document.frmPhone.txtphone.value="";
	pp="("+p13+")"+p14+p15;
	textbox.value=pp;
	//obj1.value="";
	//obj1.value=pp;
   }
	l16=p.length;
	p16=p.substring(d2+1,l16);
	l17=p16.length;
	if(l17>3&&p16.indexOf('-')==-1){
		p17=p.substring(d2+1,d2+4);
		p18=p.substring(d2+4,l16);
		p19=p.substring(0,d2+1);
		//alert(p19);
	pp=p19+p17+"-"+p18;
	textbox.value="";
	//document.frmPhone.txtphone.value=pp;
	textbox.value=pp
	}
}


}

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 bak_dFilter (evt, textbox, dFilterMask)
{
key = evt.keyCode;
//alert('g' + evt);
//if (event) {
  var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
 // window.status = evt.charCode + ' '+evt.keyCode + ' ' + String.fromCharCode(charCode) + ' ' + String.fromCharCode(69) + ' ' + key;
  key=charCode;
//}


		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) )
                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 mdFilter (key, textbox, dFilterMask)
{

if (event) {
  var charCode = (event.charCode) ? event.charCode : event.keyCode;
  window.status = event.charCode + ' '+event.keyCode + ' ' + String.fromCharCode(charCode) + ' ' + String.fromCharCode(69) + ' ' + key;
}
key=charCode;

		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);
		}

		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) {
// 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;
}
