var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 23;
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*?x\d*]/gi,"");
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 + "-";

// *JGK - Handle extensions. Add in the x
// after (nnn)nnn-nnnn to ensure extensions
// appear correctly (i.e. (nnn)nnn-nnnnxnnnnnn )
if (l40>=13)
{
p41 = pp.substring(8,12);
ppp = p40 + p41 + "x" + pp.substring(12,l40);
}
else
{
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+1;
}

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;
}
