var zChar = new Array(' ', '-', '.');
var maxphonelength = 12;
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,3);
		p30=p30+"-"
		
		p31=p.substring(3,l30);
		pp=p30+p31;
		
		object.value = pp;
	
	} 
	else if(p.length >= 7){
		//p ="(" + p;
		l30=p.length;
		p30=p.substring(0,3);
		p30=p30+"-"
		
		p31=p.substring(3,l30);
		pp=p30+p31;
		
		l40 = pp.length;
		p40 = pp.substring(0,7);
		p40 = p40 + "-"
		
		p41 = pp.substring(7,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;
}