//phone format code

var previous_phone_length   = null;
var previous_ssn_length   = null;
var phone_test      = false;
var international   = false;
function autoFormat(input,type) {
  //lock out NS4
  if (!document.layers) {
    if (type == 'phone') {
      //var temp_selection = input.selectionStart;
      //alert("selectionStart=" + input.selectionStart);
      var addFirstParen   = false;
      var addSecondParen  = false;
      var addDash         = false;
      var areacodeLength  = 3;
      var firstThree      = 3;
      var previousLength  = null;
      var thisInput       = null;
      var originalLength  = null;
      var thisAreacode    = null;
      var thisFirstThree  = null;
      var thisLastFour    = null;
      
      thisInput           = input.value.replace(/[. ()-\/]/gi,'');
      //if first input is a "+" or "0" assume its an international number and do not format
      if (input.value.length == 1 && (input.value == '+' || input.value == '0')) { international = true; return true;}
      else if (input.value.length == 1 && input.value == '(') { previousLength = 1; return true;}
      //dont do anything on backspace
      else if (input.value.length >= previousLength && international == false) {
        thisAreacode    = thisInput.substr(0,3);
        thisFirstThree  = thisInput.substr(3,3);
        thisLastFour    = thisInput.substr(6,4);
        
        //add '('
        if (thisInput.length > 0) { addFirstParen = true; }
        //add ') '
        if (thisAreacode.length == areacodeLength) { addSecondParen = true; }
        //add '-'
        if (thisFirstThree.length == firstThree) { addDash = true; }
        
        //add everything, assign to field
        if (addFirstParen) { thisAreacode = '(' + thisAreacode; }
        if (addSecondParen) { thisAreacode += ') '; }
        if (addDash) { thisFirstThree += '-'; }
        if (phone_test) { alert('writing'); }
        input.value = thisAreacode + thisFirstThree + thisLastFour;
      }
      previousLength = input.value.length
      //if (temp_selection && temp_selection != 'undefined') { input.selectionStart = temp_selection; input.selectionEnd = temp_selection; }
    } else if (type == 'ssn') {
      //declare variables
      var first_group_length  = 3;
      var second_group_length = 2;
      var third_group_length  = 4;
      var this_input          = null;
      var original_length     = null;
      var first_group         = null;
      var second_group        = null;
      var third_group         = null;
      var add_first_dash      = false;
      var add_second_dash     = false;
      
      this_input = input.value.replace(/[. ()-\/a-z]/gi,'');
      //dont do anything on backspace
      if (input.value.length >= previous_ssn_length) {
        first_group   = this_input.substr(0, first_group_length);
        second_group  = this_input.substr(first_group_length, second_group_length);
        third_group   = this_input.substr(first_group_length + second_group_length, third_group_length);
        
        //add first dash
        if (first_group.length == first_group_length) { add_first_dash = true; }
        //add second dash
        if (second_group.length == second_group_length) { add_second_dash = true; }
        
        //add everything, assign to field
        if (add_first_dash) { first_group += '-'; }
        if (add_second_dash) { second_group += '-'; }
        if (third_group.length > third_group_length) { third_group = third_group.substr(0, third_group_length); }
        
        input.value = first_group + second_group + third_group;
      }
      previous_ssn_length = input.value.length    
    }
  }
}