function getZip(e, script, target_id){
    var zip_code1_id = target_id + "zip_code1";
    var zip_code2_id = target_id + "zip_code2";
    var state_id     = target_id + "address_pref_state_id";
    var addr1_id     = target_id + "address1";
    var addr2_id     = target_id + "address2";

    var zip1 = YAHOO.util.Dom.get(zip_code1_id).value;
    var zip2 = YAHOO.util.Dom.get(zip_code2_id).value;
    var zip  = zip1 + zip2;
    var state = YAHOO.util.Dom.get(state_id);
    var addr1 = YAHOO.util.Dom.get(addr1_id);
    var addr2 = YAHOO.util.Dom.get(addr2_id);
    if(zip.length == 7 && zip == zip.match(/[0-9]+/)){
      cbFunc = {
        success:function(httpObj){

          var jsonDoc = httpObj.responseText;
          var data = eval("("+jsonDoc+")");

          if (YAHOO.util.Dom.inDocument(state_id)) {
            var opts = state.options;
            for(var i = 0; i < opts.length; i++ ) {
                if (opts[i].text == data.state) {
                  state.selectedIndex = i;
                  break;
                }
            }
          }
          if (YAHOO.util.Dom.inDocument(addr1_id)) {
            addr1.value = data.city;
          }
          if (YAHOO.util.Dom.inDocument(addr2_id)) {
            addr2.value = data.town;
          }
        },
        failure:function(httpObj){
          if (YAHOO.util.Dom.inDocument(state_id)) {
            state.selectedIndex = 0;
          }
          if (YAHOO.util.Dom.inDocument(addr1_id)) {
            addr1.value = "";
          }
          if (YAHOO.util.Dom.inDocument(addr2_id)) {
            addr2.value = "";
          }
        }
      }
      YAHOO.util.Connect.asyncRequest("GET", script + '?action_Pc_Zip2Address=true&z=' + zip, cbFunc, null);
    }else{
      if (YAHOO.util.Dom.inDocument(state_id)) {
        state.selectedIndex = 0;
      }
      if (YAHOO.util.Dom.inDocument(addr1_id)) {
        addr1.value = "";
      }
      if (YAHOO.util.Dom.inDocument(addr2_id)) {
        addr2.value = "";
      }
    }
}
