    var zChar = new Array(' ', '(', ')', '-', '.');
    var maxphonelength = 14;
    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
            window.status=cursorposition
            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,9);
        p40 = p40 + "-"

        p41 = pp.substring(9,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 <= 4) {
          cursorposition = cursorposition + 3
        } else if (cursorposition == 5) {
          cursorposition = cursorposition + 3
        } else if (cursorposition == 6) {
          cursorposition = cursorposition + 3
        } else if (cursorposition == 7) {
          cursorposition = cursorposition + 4
        } else if (cursorposition == 8) {
          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 == 9) {
          cursorposition = cursorposition + 4
        } else if (cursorposition < 11) {
          cursorposition = cursorposition + 3
        } else if (cursorposition == 11) {
          cursorposition = cursorposition + 1
        } else if (cursorposition == 12) {
          cursorposition = cursorposition + 1
        } else if (cursorposition >= 13) {
          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;
    }