
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) ) && dFilterNum.length<dFilterMax(dFilterMask) )
		{
				dFilterNum=dFilterNum+String.fromCharCode(key);
		}
		else if ( ((key>95&&key<106) ) && dFilterNum.length<dFilterMax(dFilterMask) )
		{	
			/*96		\\`ab) cde-fghi
			97		\\a
			98		\\b
			99		\\c
			100		\\d
			101		\\e
			102		\\f
			103		\\g
			104		\\h
			105		\\i
			This code use to handle the values from the numeric pad
			*/
			
			if( key == 96)
				key = 48;
			else if( key == 97)
				key = 49;
			else if( key == 98)
				key = 50;
			else if( key == 99)
				key = 51;
			else if( key == 100)
				key = 52;
			else if( key == 101)
				key = 53;
			else if( key == 102)
				key = 54;
			else if( key == 103)
				key = 55;				
			else if( key == 104)
				key = 56;
			else if( key == 105)
				key = 57;
				
			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),'');
		}

		if (dFilterFinal == "--")
			textbox.value = "";
		else if(dFilterFinal == "()--")
			textbox.value = "";
		else if(dFilterFinal == "-")
			textbox.value = "";
		else
			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;
}

//Functions for include commas for money fields..

function CurrencyFormatted(amount)
		{
			var i = parseFloat(amount);
			if(isNaN(i)) { i = 0.00; }
			var minus = '';
			if(i < 0) { minus = '-'; }
			i = Math.abs(i);
			i = parseInt((i + .005) * 100);
			i = i / 100;
			s = new String(i);
			if(s.indexOf('.') < 0) { s += '.00'; }
			if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
			s = minus + s;
			return s;
		} // function CurrencyFormatted()

		function CommaFormatted(amount)
		{
			var delimiter = ",";
			var a = amount.split('.',2)
			var d = a[1];
			var i = parseInt(a[0]);
			if(isNaN(i)) { return ''; }
			var minus = '';
			if(i < 0) { minus = '-'; }
			i = Math.abs(i);
			var n = new String(i);
			var a = [];
			while(n.length > 3)
			{
				var nn = n.substr(n.length-3);
				a.unshift(nn);
				n = n.substr(0,n.length-3);
			}
			if(n.length > 0) { a.unshift(n); }
			n = a.join(delimiter);
			if(d.length < 1) { amount = n; }
			else { amount = n + '.' + d; }
			amount = minus + amount;
			return amount;
		} // function CommaFormatted()


		function ChangeFormat(control,value)
		{
			var s = new String();
			
			if(value != "")
			{
				while(value.indexOf(",") != -1)
					value = value.replace(",","");
				
				s = CurrencyFormatted(value);
				s = CommaFormatted(s);
				
				var sn='$';
				sn+=s;
				
				control.value = s;
			}
			
		} 