/***** 郵便番号 プラグイン *****/
function autoCompleteAddr(p){
	return function(){
		var ps=p.postcode();

		
		if(ps.match(/^\d{7}$/)){
			var set=function(oj){
				if(oj.length > 1){
					$('#auto-addr-complete-table').remove();
					// 複数該当
					var _em=document.createElement('DIV');
					$(_em).css({
							display:'none',
							border:'3px solid #cccccc',
							lineHeight:'14px',
							fontSize:'12px'
					});
					for(var i=0; i<oj.length; i++){
						var _sel=document.createElement('DIV');
						var _oji=oj[i];
						$(_sel).css({
									backgroundColor:'#f0f0f0',
									color:'#006699',
									padding:'4px',
									cursor:'pointer'
								})
								.text(_oji.postcode.substr(0,3)+'-'+_oji.postcode.substr(3,4)+' '+_oji.addr1 +' '+ _oji.addr2 +' '+ _oji.addr3)
								.attr(_oji)
								.click(
									function(){
										$('html,body').scrollTop(p.selectpos.offset().top-100);
										location.href='#auto-addr-complete-a';
										p.address({
											postcode:$(this).attr('postcode'),
											addr1:$(this).attr('addr1'),
											addr2:$(this).attr('addr2'),
											addr3:$(this).attr('addr3'),
											addr1_f:$(this).attr('addr1_f'),
											addr2_f:$(this).attr('addr2_f'),
											addr3_f:$(this).attr('addr3_f')
										});
									}
								)
								.hover(
									function(){
										$(this).css('color','#ff6600')
									},
									function(){
										$(this).css('color','#006699')
									}
								);
						$(_em).append(_sel);
					}
					p.selectpos.append(_em);
					$(_em)
						.attr('id','auto-addr-complete-table')
						.slideDown('fast');
					$('body').one('click',
						function(){
							$(_em).slideUp('fast',function(){$(_em).remove()});
						}
					);
					
				}else if(oj.length==1){
					p.address(oj[0]);
				}else{
					// No hit.
					alert('該当なし');
				}
			};
			$.ajax({
				type: "POST",
				url: p.url,
				data: 'json=1&p='+ps,
				dataType: "json",
				success: set,
				error: function(){
					alert('エラーが発生しました。');
				}
			});
		}else{
			alert('郵便番号を正しく入力してください。');
		}
	}
}

/***** 設置例 *****/
/*
$(function(){
	$('#auto-addr-complete').show().click(
		autoCompleteAddr(
			{
				url:'../ajax/getAddr.cgi',
				selectpos:$('[name=postcode1]').parent(),
				postcode:function(){
					return $('[name=postcode1]').attr('value')+$('[name=postcode2]').attr('value')
				},
				address:function(_addr){
					$('[name=pref]').find("option").removeAttr('selected').end()
						.find("option[value="+_addr.address1+"]").attr('selected','selected');
					$('[name=addr]').attr('value',_addr.address2+_addr.address3);
				}
			}
		)
	);
});
*/
