$(function() {

	function zipFlash(level, str) {
		var f = $('#zipSearchFlash');
		if (f) f.html('<div class="' + level + '">' + str + '</div>');
	}

	var zipAjaxBefore = function() {
		zipFlash('notice', '検索しています。');
	};

	var zipAjaxError = function() {
		zipFlash('error', 'エラーです。');
	};

	var zipAjaxSuccess = function(data, textStatus) {
		var results = data.results;

		if (results.length == 1) {
			var r = results[0];
			$('#booking_prefecture').val(r.prefecture);
			$('#booking_city').val(r.city);
			$('#booking_area').val(r.area);
			zipFlash('notice',
					 '住所の一部を挿入しました。'
					 + '続けて番地等をご記入ください。'
			);
		}
		else if (results.length > 1) {
		}
		else if (results.length == 0) {
			zipFlash('error',
					 '該当する住所が見つかりませんでした。');
		}
	};


	var zc1f = $('#booking_zip_code_1');
	var zc2f = $('#booking_zip_code_2');

	if (zc1f && zc2f) {
		var func = function () {
			var loc = window.location;
			var apiurl = loc.protocol + '//'
			        + loc.host
			        ;

			var path = loc.pathname;
			path = path.replace(/reserve.*$/, '');
			path = path.replace(/confirm.*$/, '');

			apiurl = apiurl + path + 'zip_code';

			var zc1 = zc1f.val();
			var zc2 = zc2f.val();

			if (zc1 && zc2) {
				$.ajax({
					'beforeSend' : zipAjaxBefore,
					'error'      : zipAjaxError,
					'success'    : zipAjaxSuccess,
					'data'       : { 'zip_code' : '' + zc1 + zc2 },
					'dataType'   : 'json',
					'type'       : 'GET',
					'url'        : apiurl
				});
			}
		};

		zc1f.change(func);
		zc2f.change(func);
	}
});
