/*@cc_on _d=document;eval('var document=_d')@*/
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

$(function(){
	var targetBoxId = 'special-index';
	var categoryList = $('#special-index > ul > li');
	var addClass = {
		current	:	'current',
		hover		:	'hover'
	}
	var queryId = {
		category : 'category',
		id			:	'id'
	}
	var childCheck = false;
	var queryParm, currentCat, currentList;
	// format
	$('#'+targetBoxId+' > ul > li > ul').hide();
	$(',#'+targetBoxId+' > ul > li > ul > li > ul').hide()
	.parent().parent().each(function(){
		var num = 0;
		$(this).children('li ul li').each(function(){
																							
			var categoryId = getCategoryId($(this).find('a'));
			$(this).attr('id',categoryId+ ++num)
//			console.log(categoryId,num,$(this).html());
		});

	});

	// read query
	
	queryParm = getParameter(location.search);
	currentCat = queryParm[queryId.category];
	currentList = queryParm[queryId.id];
	if(currentCat && currentList){
		$('#'+currentCat+' > span').addClass(addClass.current).parent().children('ul').show();
		$('#'+currentList).addClass(addClass.current).children('ul').show();
		childCheck = true;
	}
	
	
	// func
	$('#'+targetBoxId+' > ul > li > span')
	.hover(function(){
		$(this).addClass(addClass.hover)
		.click(function(){
			
			var target = $(this);
			
			target.parent('li').siblings('li').each(function(){
				if($(this).find('> span').attr('class')== addClass.current) {
					$(this).find('> span.'+addClass.current).removeClass(addClass.current).end()
									.find('> ul').slideUp(400,function(){
											openList(target);
																		
										});

				}else {
					openList(target);
				}
				
			});
			
			function openList(el){
				el.addClass(addClass.current)
					.siblings('ul').slideDown(function(){
				});
			};
		});
	},function(){
		$(this).removeClass(addClass.hover);
	});
	
	// child
	$('#'+targetBoxId+' > ul > li > ul > li')
	.hover(function(){
			$(this).addClass(addClass.hover)
			.click(function(){
				if(childCheck){
//					console.log('?');
					$('#'+targetBoxId+' > ul > li > ul > li').each(function(){
							if($(this).attr('class')==addClass.current){
								$(this).removeClass(addClass.current).find('ul').slideUp();
							}
					});
					$(this).addClass(addClass.current).find('ul').slideDown();
					childCheck = true;
				}else {
					$(this).addClass(addClass.current).find('ul').slideDown();
					childCheck = true;
				}
			});
	},function(){
			$(this).removeClass(addClass.hover);
	});
	
	
	// add query
	$('#'+targetBoxId+' > ul > li > ul > li > ul > li > a')
	.click(function(){
		var _target = $(this);
		var categoryId = getCategoryId(_target);
		var url = _target.attr('href');
		var currentId = _target.parent().parent().parent().attr('id');
		
		if(_target.attr('target') == '_blank'){
			window.open(url);
			return false;
		}else {
			
		location.href = url+'?category='+categoryId+'&id='+currentId;
		return false;
		}
	});
	
	// a要素の所属するカテゴリのIDを返す
	function getCategoryId(el){
			return el.parent().parent().parent().parent().parent().attr('id');
	}
	// Query String から 配列を返す
	function getParameter(str){
		var dec = decodeURIComponent;
		var par = new Array, itm;
		if(typeof(str) == 'undefined') return par;
		if(str.indexOf('?', 0) > -1) str = str.split('?')[1];
		str = str.split('&');
		for(var i = 0; str.length > i; i++){
			itm = str[i].split("=");
			if(itm[0] != ''){
				par[itm[0]] = typeof(itm[1]) == 'undefined' ? true : dec(itm[1]);
			}
		}
		return par;
	}
})