		
/*****************************************************************************/
//Phone number Event Hanlders


//<!-- This script is based on the javascript code of Roman Feldblum (web.developer@programmer.net) -->
//<!-- Original script : http://javascript.internet.com/forms/format-phone-number.html -->
//<!-- Original script is revised by Eralper Yilmaz (http://www.eralper.com) -->
//<!-- Revised script : http://www.kodyaz.com -->

var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 13;
var phonevalue1;
var phonevalue2; 
var cursorposition;

function ParseForNumber1(el){
    phonevalue1 = ParseChar(el.value, zChar);
}
function ParseForNumber2(el){
    phonevalue2 = ParseChar(el.value, zChar);
}

function phoneKeyUP(el, e) {
	keycode = (e.which) ? e.which : e.keyCode
    ParseForNumber1(el)

    if(keycode >= 48){
        ValidatePhone(el)
    }
}

function phoneKeyDOWN(el,e) {
	keycode = (e.which) ? e.which : e.keyCode
    ParseForNumber2(el)
}

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(el){
    var p = phonevalue1
    p = p.replace(/[^\d]*/gi,"")

    if (p.length < 3) {
        el.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+")";
        }
            el.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;

        el.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;

        el.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=el.value.indexOf(')')
            e2=el.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;
        if (Prototype.Browser.IE) {
            txtRange = el.createTextRange();
            txtRange.moveStart( "character", cursorposition);
            txtRange.moveEnd( "character", cursorposition - el.value.length);
            txtRange.select();
        } 
    }
}

function ParseChar(sStr, sChar) {
	sChar.each(function(item) {
		sNewStr = "";
		var iStart = 0;
		var iEnd = sStr.indexOf(item);
		while (iEnd != -1) {
			sNewStr += sStr.substring(iStart, iEnd);
			iStart = iEnd + 1;
			iEnd = sStr.indexOf(item, iStart);
		}
		sNewStr += sStr.substring(sStr.lastIndexOf(item) + 1, sStr.length);
		sStr = sNewStr;
	});
	return sStr;
   
}
