mits.load('zipCode');
mits.load('Class.Form');
mits.load('util.dom');

/****** 郵便番号検索機能の挿入 ******/
mits.util.event.addEventOnReady(function() {
	if(!location.href.match(/^https:/)) {
		var elem = document.getElementById('groovetechnology');
		if(elem) {
			elem.innerHTML = '<a href="http://groovetechnology.co.jp/webservice/" target="_blank"><img src="http://groovetechnology.co.jp/images/gt_websrv_w.gif" alt="グルーブテクノロジー Web サービス" width="125" height="17" /></a>';
			document.getElementById('form_addressSearch').style.display = 'inline';
		}
	}
});

/****** 郵便番号から住所検索 ******/
function searchAddr() {
	var $tmp = document.getElementById('form_address');
	var $tmpValue = $tmp.value;
	$tmp.value = '検索中…';

	var $zip1 = document.getElementById('form_postalCode1').value;
	var $zip2 = document.getElementById('form_postalCode2').value;
	var $zip = $zip1.concat($zip2);
	if(!mits.zipCode.searchAddr($zip, 'writeAddr')) {
		$tmp.value = $tmpValue;
	}
}
function writeAddr($res) {
	var $addr = mits.zipCode.getAdder($res);
	if($addr) {
		document.getElementById('form_address').value = $addr;
	} else {
		document.getElementById('form_address').value = '該当する住所はありませんでした';
	}
}

/****** エラーチェック ******/
form = new mits.Class.Form('mitsForm', formCheck);
form.setListener();
function formCheck($isError, $errs, $evSrc) {
	var $form = form.getFormElement();
	if($isError && $evSrc === $form) {
		alert('入力内容を確認してください');
	}
	for(var $name in $errs) {
		var $node = $form[$name];
		mits.util.dom.clearStyleAttrs($node);
		var $msgNodes = mits.util.dom.getElementsByClassName('error_message', $node.parentNode);
		for(var $i=0; $i< $msgNodes.length; $i++) {
			mits.util.dom.removeElement($msgNodes[$i]);
		}
		if($errs[$name].length > 0) {
			$node.style.backgroundColor = '#FFF0F0';
			$node.style.border = '1px solid #FF0000';
			var $newNode = document.createElement('p');
			$newNode.className = 'error_message';
			$newNode.innerHTML = '↑'+ form.getErrorMessage($errs[$name][0]);
			$node.parentNode.appendChild($newNode);
		}
	}
}
