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;
}
