Skip to content

Instantly share code, notes, and snippets.

@nanasess
Created September 12, 2012 02:33
Show Gist options
  • Save nanasess/3703865 to your computer and use it in GitHub Desktop.
Save nanasess/3703865 to your computer and use it in GitHub Desktop.
/*
* ATTENTION
* Comment of Japanese cause of the error.
* Do not use!!
*/
(function($) {
var o,
_start = function() {
$.fancybox.showActivity();
},
_success = function(data, textStatus, jqXHR) {
$(o.addresses_selector).children().remove();
if (data.result == 'success' && _empty(data['result_detail'])) {
var details = data['result_detail'];
var $ul = $(o.list_wrapper);
for (var address_code in details) {
var li = o.list;
li = li.replace(/{address_code}/g, address_code);
li = li.replace(/{prefecture}/g, details[address_code]['PrefecturesName']);
li = li.replace(/{city}/g, details[address_code]['CityName']);
li = li.replace(/{town}/g, details[address_code]['TownName']);
li = li.replace(/{chome}/g, details[address_code]['ChomeName']);
$ul.append(li);
}
$(o.addresses_selector).append($ul);
$.fancybox(
{
'width': '96%',
'height': '96%',
'autoScale': true,
'transitionIn': 'none',
'transitionOut': 'none',
'content': $(o.content_selector).html()
});
_click();
return false;
} else {
_error(jqXHR, textStatus);
$.fancybox.hideActivity();
return false;
}
},
_error = function(jqXHR, textStatus, errorThrown) {
fnCallAddress(o.fallback_url,
$(o.zip01_selector).attr('name'),
$(o.zip02_selector).attr('name'),
$(o.state_selector).attr('name'),
$(o.addr01_selector).attr('name'),
$(o.addr02_selector).attr('name'),
'true');
return false;
},
_complete = function() {
$.fancybox.hideActivity();
return false;
},
_click = function() {
$(o.address_code_selector).click(function() {
$(o.state_selector).val($('label[for=' + $(this).attr('id') + '] span.pref').eq(0).text());
var addr01 = $('label[for=' + $(this).attr('id') + '] span.addr01').eq(0).text();
var nAddrs = fnSplitStr(addr01, 30);
$(o.addr01_selector).val(nAddrs[0]);
$(o.addr02_selector).val(nAddrs[1]);
if (nAddrs[1]) {
$(o.addr01_selector).css('backgroundColor', '#FFF')
.attr('readOnly', false);
} else {
$(o.addr01_selector).css('backgroundColor', '#C9C9C9')
.attr('readOnly', true);
}
$.fancybox.close();
return false;
});
},
_empty = function(obj) {
if (obj) {
var size = 0;
for (var i in obj) {
size++;
}
if (size > 0) {
return true;
}
}
return false;
};
$.fn.search_postal_info = function(options) {
return this.each(function() {
if (options) {
o = $.fn.extend($.fn.search_postal_info.defaults, options);
} else {
o = $.fn.search_postal_info.defaults;
}
var $this = $(this);
$this.click(function() {
o.start();
$.ajax({
url: o.url,
data: {
zipcode: $(o.zip01_selector).val() + $(o.zip02_selector).val()
},
dataType: o.dataType,
cache: o.cache,
type: o.type,
success: o.success,
error: o.error,
complete: o.complete,
href: false
});
return false;
}
);
});
};
$.fn.search_postal_info.defaults = {
form_selector: '#form1',
zip01_selector: 'input[name=regist_zip01]',
zip02_selector: 'input[name=regist_zip02]',
state_selector: 'input[name=regist_state]',
addr01_selector: 'input[name=regist_addr01]',
addr02_selector: 'input[name=regist_addr02]',
content_selector: '#popupColumnWrap_address',
addresses_selector: '#addresses',
address_code_selector: 'input[name=address_code]',
list_wrapper: '<ul />',
list: '<li><input type="radio" name="address_code" id="{address_code}" value="{address_code}" />'
+ ' <label for="{address_code}"> <span class="pref">{prefecture}</span><span class="addr01">{city}{town}{chome}</span></label>'
+ '</li>',
url: '/shopping/ajax/search_postal_info.php',
fallback_url: '',
type: 'post',
dataType: 'json',
cache: false,
start: _start,
success: _success,
error: _error,
complete: _complete,
click: _click
};
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment