/**
 * 地図切り替え・親子カテゴリのドリル・submitをJSで
 */
jQuery(function($){
	/**
	 * Map
	 */
	// map画像を探す
	var mapImgs = {};
	for (var i = 0; i < 100; i++) {
		var elm = $('[id^="area-swap-' + i + '"]');
		// なければ終了
		if (!elm.length) break;
		mapImgs[i] = elm.attr('src');
		// 消す
		elm.hide();
	}
	
	var hidden = $('#area_hidden');
	var map = $('[usemap="#swpimgMap"]');
	var areas = $('#swpimgMap>area');
	
	// hiddenが変更されるとマップを書き換える処理
	hidden.change(function(){
		var val = Number(hidden.val());
		map.attr('src', mapImgs[val]);
	});
	// ページを開くと一度changeを走らせる
	hidden.change();
	
	// areaをクリックすると、hiddenを書き換える処理
	areas.click(function(){
		var _this = $(this);
		var href = _this.attr('href');
		var id = href.replace('#', '');
		var val = hidden.val();
		
		if (val != id) {
			// hiddenを変えて、changeを走らせる
			hidden.val(id).change();
		}
		else {
			// 同じものを2回クリック＝解除
			hidden.val('').change();
		}
		// 強制的にblurする。Chromeの挙動を抑制
		_this.blur();
		return false;
	});
	
	/**
	 * Category
	 */
	var categoryElm = $('[name="c"]');
	var categoryGroupElm = $('[name="cg"]');
	var optGroups = {};
	
	// optgroupを記憶
	$('optgroup', categoryElm).each(function(){
		optGroups[$(this).attr('label')] = $(this).html();
	});
	// 全て一旦消すemptyだけのこる
	$('optgroup', categoryElm).remove();
	// 残ったものは初期値として記憶
	var def = categoryElm.html();
	
	// categoryGroupの値があればGroupを変える処理
	categoryGroupElm.change(function(){
		var label = categoryGroupElm.val();
		categoryElm.html(def + optGroups[label]);
	});
	// 初回一度走らせる
	categoryGroupElm.change();
	
	/**
	 * Bottun
	 */
	// 画像ボタンの座標がわたるので別にいいんだけどJSで送信
	$('input[type="image"]').click(function(){
		$(this).parents('form').submit();
		return false;
	});
});
