function getField(e)
{
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}

function isDelete(e) 
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	if (keycode==8 || keycode==46) {
		return true;
	}
	return false;
}

function isMove(e)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	if (keycode>36 && keycode<41) {
		return true;
	}
	return false;
}

function isInteger(e)
{
	 field = getField(e);
    var i;
	 var out;
	 out = "";
	 s = field.value
    for (i=0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (!isDigit(c)) {
	       field.value = out;
			 return false;
		}
		out = out+c;
    }
    return true;
}

function isPhone(e)
{
	if (!isDelete(e) && !isMove(e)) {
		field = getField(e);
		var i;
		var out;
		var j;
		j = 0;
		out = "";
		s = field.value
		for (i=0;i<s.length;i++)
		{
			j++;
			var c = s.charAt(i)
			if (j==1 || j==5 || j==9) {
				if (j==1) {
					out = out+"(";
					if (!isOpenB(c)) {
						j++;
						if (!isDigit(c)) {
							field.value = out;
							return false;
						}
						out = out+c;
					}
				} else {
					if (j==5) {
						out = out+")";
						if (!isCloseB(c)) {
							j++;
							if (!isDigit(c)) {
								field.value = out;
								return false;
							}
							out = out+c;
						}
					} else {
						out = out+"-";
						if (!isDash(c)) {
							j++;
							if (!isDigit(c)) {
								field.value = out;
								return false;
							}
							out = out+c;
						}
					}
				}
			} else {
				if (!isDigit(c)) {
					field.value = out;
					return false;
				}
				out = out+c;
			}
		}
		if (j==0) {
			out = out+'(';
		}
		if (j==4) {
			out = out+')';
		}
		if (j==8) {
			out = out+'-';
		}
		field.value = out;
		return true;
	}
}

function isDigit(c)
{
    return ((c >= "0") && (c <= "9"))
}

function isDash(c)
{
    return ((c == "-"))
}
function isOpenB(c)
{
    return ((c == "("))
}
function isCloseB(c)
{
    return ((c == ")"))
}

