		
	
	var zChar = new Array( ' ', '(', ')', '-', '.' );
	var maxphonelength = 13;
	var phonevalue1;
	var phonevalue2;
	var cursorposition;

	function ParseForNumber1( object )
	{
		phonevalue1 = ParseChar( object.value, zChar );
	}
	
	function ParseForNumber2(object)
	{
		phonevalue2 = ParseChar( object.value, zChar );
	}

	function backspacerUP( object, e )
	{ 
		if( e )
		{ 
			e = e 
		}
		else
		{
			e = window.event 
		} 
	
		if( e.which )
		{ 
			var keycode = e.which 
		}
		else
		{
			var keycode = e.keyCode 
		}
		
		ParseForNumber1( object )
	
		if( keycode > 48 )
		{
			ValidatePhone( object )
		}
	}

	function backspacerDOWN( object, e )
	{ 
		if( e )
		{ 
			e = e 
		}
		else
		{
			e = window.event 
		} 
	
		if( e.which )
		{ 
			var keycode = e.which 
		}
		else
		{
			var keycode = e.keyCode 
		}
		
		ParseForNumber2( object )
	} 

	function GetCursorPosition()
	{
		var t1 = phonevalue1;
		var t2 = phonevalue2;
		var bool = false
		for ( i=0; i<t1.length; i++ )
		{
			if ( t1.substring( i, 1 ) != t2.substring( i, 1 ) )
			{
				if( !bool )
				{
					cursorposition = i
					bool=true
				}
			}
		}
	}

	function ValidatePhone( object )
	{
		var p = phonevalue1
		p = p.replace( /[^\d]*/gi,"" )
		if ( p.length < 3 )
		{
			object.value=p
		}
		else if( p.length == 3 )
		{
			pp=p;
			d4=p.indexOf( '(' )
			d5=p.indexOf( ')' )
			
			if( d4 == -1 )
			{
				pp = "(" + pp;
			}
			
			if( d5==-1 )
			{
				pp = pp + ")" ;
			}
			
			object.value = pp;
		}
		else if( p.length > 3 && p.length < 7 )
		{
			p = "(" + p; 
			l30 = p.length;
			p30 = p.substring( 0, 4 );
			p30 = p30 + ")"
			p31 = p.substring( 4, l30 );
			pp = p30 + p31;
			object.value = pp; 
		}
		else if( p.length >= 7 )
		{
			p ="(" + p; 
			l30 = p.length;
			p30 = p.substring( 0, 4 );
			p30 = p30 + ")"
			p31 = p.substring( 4,l30 );
			pp = p30 + p31;
			l40 = pp.length;
			p40 = pp.substring( 0, 8 );
			p40 = p40 + "-"
			p41 = pp.substring( 8, l40 );
			ppp = p40 + p41;
			object.value = ppp.substring( 0, maxphonelength );
		}

		GetCursorPosition()

		if( cursorposition >= 0 )
		{
			if ( cursorposition == 0 )
			{
				cursorposition = 2
			}
			else if ( cursorposition <= 2 )
			{
				cursorposition = cursorposition + 1
			}
			else if ( cursorposition <= 5 )
			{
				cursorposition = cursorposition + 2
			}
			else if ( cursorposition == 6 )
			{
				cursorposition = cursorposition + 2
			}
			else if ( cursorposition == 7 )
			{
				cursorposition = cursorposition + 4
				e1 = object.value.indexOf( ')' )
				e2 = object.value.indexOf( '-' )
				if ( e1 > -1 && e2 >- 1 )
				{
					if ( e2 - e1 == 4)
					{
						cursorposition = cursorposition - 1
					}
				}
			}
			else if ( cursorposition < 11 )
			{
				cursorposition = cursorposition + 3
			}
			else if ( cursorposition == 11)
			{
				cursorposition = cursorposition + 1
			}
			else if ( cursorposition >= 12 )
			{
					cursorposition = cursorposition
			}

			var txtRange = object.createTextRange();
			txtRange.moveStart( "character", cursorposition );
			txtRange.moveEnd( "character", cursorposition - object.value.length );
			txtRange.select();
		}

	}

	function ParseChar( sStr, sChar )
	{
		if ( sChar.length == null ) 
		{
			zChar = new Array( sChar );
		}
		else zChar = sChar;

			for ( i=0; i < zChar.length; i++ )
			{
				sNewStr = "";

				var iStart = 0;
				var iEnd = sStr.indexOf( sChar[i] );

				while ( iEnd != -1 )
				{
					sNewStr += sStr.substring( iStart, iEnd );
					iStart = iEnd + 1;
					iEnd = sStr.indexOf( sChar[i], iStart );
				}
				sNewStr += sStr.substring( sStr.lastIndexOf( sChar[i] ) + 1, sStr.length );

				sStr = sNewStr;
			}

		return sNewStr;
	}