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