
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;
}
/*  Below is the original phone number validator */
var n;
var p;
var p1;
var txtphone;
function ValidatePhone() {
	p = p1.value;
	if (p.length == 3) {
		pp = p;
		d4 = p.indexOf("(");
		d5 = p.indexOf(")");
		if (d4 == -1) {
			pp = "(" + pp;
		}
		if (d5 == -1) {
			pp = pp + ")";
		}
		txtphone.value = "";
		txtphone.value = pp;
	}
	if (p.length > 3) {
		d1 = p.indexOf("(");
		d2 = p.indexOf(")");
		if (d2 == -1) {
			l30 = p.length;
			p30 = p.substring(0, 4);
			p30 = p30 + ")";
			p31 = p.substring(4, l30);
			pp = p30 + p31;
			txtphone.value = "";
			txtphone.value = pp;
		}
	}
	if (p.length > 5) {
		p11 = p.substring(d1 + 1, d2);
		if (p11.length > 3) {
			p12 = p11;
			l12 = p12.length;
			l15 = p.length;
			p13 = p11.substring(0, 3);
			p14 = p11.substring(3, l12);
			p15 = p.substring(d2 + 1, l15);
			txtphone.value = "";
			pp = "(" + p13 + ")" + p14 + p15;
			txtphone.value = pp;
		}
		l16 = p.length;
		p16 = p.substring(d2 + 1, l16);
		l17 = p16.length;
		if (l17 > 3 && p16.indexOf("-") == -1) {
			p17 = p.substring(d2 + 1, d2 + 4);
			p18 = p.substring(d2 + 4, l16);
			p19 = p.substring(0, d2 + 1);
			pp = p19 + p17 + "-" + p18;
			txtphone.value = "";
			txtphone.value = pp;
		}
	}
	setTimeout(ValidatePhone, 100);
}
function formatPhone(m) {
	n = m.name;
	txtphone = document.getElementById(m.id);
	p1 = m;
	ValidatePhone();
}
function testphone(obj1) {
	p = obj1.value;
	p = p.replace("(", "");
	p = p.replace(")", "");
	p = p.replace("-", "");
	p = p.replace("-", "");
	if (isNaN(p) == true) {
		alert("Check phone");
		return false;
	}
}

