var catalog = {
	Zip: {
		config:{
			CONTAINER_ID : 'zip_api_container'
		},
		searchAddress: function() {
			var zip = document.getElementById('zip1').value + '-' + document.getElementById('zip2').value;
			ZipApi.searchByZip(zip, catalog.Zip.open, true);
		},
		open: function(data) {
			var ZipDialog = new ZipDialogClass(catalog.Zip.apply);
			ZipDialog.setTitle('住所候補');
			ZipDialog.showDialog(catalog.Zip.config.CONTAINER_ID, data);
		},
		apply: function(obj) {
			var zipCode = catalog.Zip.splitZipCode(obj.zip);
			catalog.Zip.setText('zip1', zipCode.top);
			catalog.Zip.setText('zip2', zipCode.tail);
			catalog.Zip.setList('pref', obj.adrs1);
			catalog.Zip.setText('address1', obj.adrs2);
			catalog.Zip.setText('address2', obj.adrs3);
			catalog.Zip.setText('address3', obj.adrs4);
		},
		splitZipCode: function(value) {
			return {top:value.substring(0, 3), tail:value.substring(3, 8)};
		},
		setText: function(id, value) {
			document.getElementById(id).value = value;
		},
		setList: function(id, value) {
			var options = document.getElementById(id).options;
			for(var i=0;i<options.length;i++) {
				if(options[i].text == value) {
					options[i].selected = true;
					break;
				}
			}
		}
	},
	Zip2: {
		config:{
			CONTAINER_ID : 'zip_api_container2'
		},
		searchAddress: function() {
			var zip = document.getElementById('zip3').value + '-' + document.getElementById('zip4').value;
			ZipApi.searchByZip(zip, catalog.Zip2.open, true);
		},
		open: function(data) {
			var ZipDialog = new ZipDialogClass(catalog.Zip2.apply);
			ZipDialog.setTitle('住所候補');
			ZipDialog.showDialog(catalog.Zip2.config.CONTAINER_ID, data);
		},
		apply: function(obj) {
			var zipCode = catalog.Zip.splitZipCode(obj.zip);
			catalog.Zip.setText('zip3', zipCode.top);
			catalog.Zip.setText('zip4', zipCode.tail);
			catalog.Zip.setList('pref2', obj.adrs1);
			catalog.Zip.setText('address4', obj.adrs2);
			catalog.Zip.setText('address5', obj.adrs3);
			catalog.Zip.setText('address6', obj.adrs4);
		},
	},
	Deliver: {
		back: function() {
			catalog.postBack('back');
		},
		remove: function(no, mypage) {
			if (confirm('一度削除したデータは、元に戻せません。\n削除しても宜しいですか？')) {
				var f = document.createElement('form');
				f.action = '/shopping/deliver/remove';
				f.method = 'post';
				var h = document.createElement('input');
				h.type = 'hidden';
				h.name = 'no';
				h.value = no;
				f.appendChild(h);
				if(mypage) {
					var h2 = document.createElement('input');
					h2.type = 'hidden';
					h2.name = 'url';
					h2.value = 'mypage';
					f.appendChild(h2);
				}
				document.body.appendChild(f);
				f.submit();
			}
		}
	},
	Payment: {
		back: function() {
			catalog.postBack('back');
		},
		change: function() {
			catalog.postBack('change')
		}
	},
	Confirm: {
		back: function() {
			location.href = '/shopping/order/payment';
		}
	},
	Profile: {
		back: function() {
			catalog.postBack('back');
		}
	},
	redirect: function(url) {
		location.href = url;
	},
	postBack: function(mode, form) {
		var f = form || document.forms[0];
		var m = document.createElement('input');
		m.type = 'hidden';
		m.name = 'mode';
		m.value = mode;
		f.appendChild(m);
		f.submit();
	},
	Check: {
		id : function(id) {
			var loginId = document.getElementById(id).value;
			if (loginId.length > 0) {
				var url = '/shopping/member/checker/id/' + loginId;
				if(location.pathname == '/member/entry') {
					url += '/shopping/mode/new';
				}
				catalog.popupWindow(url, 'checker', 640, 520, 0);
			}
			else {
				alert('ログインIDを入力してください。');
			}
		},
		apply : function(id) {
			var result = document.getElementById(id).checked;
			if(result) {
				return true;
			}
			else {
				alert('個人情報の取り扱いについて「同意する」をチェックしてください。');
				return false;
			}
		}
	},
	popupWindow: function(url, name, width, height, scroll, resize) {
		if(!scroll) {
			scroll = 'yes';
		}
		if(!resize) {
			resize = 'yes';
		}
		var posX = (screen.width - width) / 2;
		var posY = (screen.height - height) / 2;
		var options = 'height=' + height + ',width=' + width + ',top=' + posY + ',left=' + posX + ',scrollbars=' + scroll + ',resizable=' + resize;
		var childWindow = window.open(url, name, options);
		if (parseInt(navigator.appVersion) >= 4) { childWindow.window.focus(); }
	},
	Style : {
		unsetColor: function(obj) {
			obj.style.backgroundColor = 'white';
		}
	}
};
