// utf-8
if(typeof $ == 'undefined') {
	alert('jQuery is not loaded.');
}

(typeof $ == 'function') && $(function() {
	var setup;
	var selected_group = 0;
	
	var tabs;
	var handler = function(g) {
		return function() {
			selected_group = g;
			
			// main procedure
			setup();
			
			// Update tabs status
			for(var i=0 ; i<tabs.length ; i++) {
				var links = tabs[i].getElementsByTagName('A');
				for(var j=0 ; j<links.length ; j++) {
					var tab = links[j].parentNode;
				//	tab.className = (links[j].innerHTML==this.innerHTML) ? 'now' : '';
					tab.className = (j == g) ? 'now' : '';
				}
			}
			
			return false;
		};
	};
	
	var setup_tabs = function(groups, term2name) {
		tabs = [ document.getElementById('tab') ];
		for(var i=0 ; i<tabs.length ; i++) {
			for(var j=0 ; j<groups.length ; j++) {
				var group = groups[j];
				var tab = document.createElement('LI');
				var anchor = document.createElement('A');
				tab.appendChild(anchor);
				anchor.innerHTML = group[0]+'-'+group[group.length-1]+'期';
				anchor.href = '#';
				anchor.onclick = handler(j);
				tabs[i].appendChild(tab);
			}
		}
	}
	
	var term2idx = { };
	var term2name = { };
	var width = -1;
	var groups = [ [ ] ];
	var attach = function(table) {
		var rows = table.getElementsByTagName('TR');
		if(width == -1) {
			var terms = [ ];
			for(var i=0 ; i<rows.length ; i++) {
				var cols = rows[i].getElementsByTagName('TH');
				if(cols.length == 0) {
					continue;
				}
				width = 0;
				for(var j=0 ; j<cols.length ; j++) {
					if(cols[j].className.indexOf("highlight_dummy") == -1
					&& cols[j].id.indexOf("highlight_") == 0) {
						var term = cols[j].id.substr(10);
						terms.push(term);
						term2idx[term] = width;
						term2name[term] = cols[j].innerHTML;
						width++;
					}
				}
				break;
			}
			
			while(0 < terms.length) {
				if(groups[groups.length-1].length == 6) {
					groups.push([ ]);
				}
				groups[groups.length-1].unshift(terms.pop());
			}
			
			setup_tabs(groups, term2name);
		}
		
		var group = groups[selected_group];
		for(var i=0 ; i<rows.length ; i++) {
			var cols = rows[i].getElementsByTagName('TD');
			if(cols.length == 0) {
				var th_list = rows[i].getElementsByTagName('TH');
				cols = [ ];
				for(var j=0 ; j<th_list.length ; j++) {
					if(th_list[j].id.indexOf('highlight_') == 0
					|| th_list[j].className.indexOf('highlight_dummy') != -1) {
						cols.push(th_list[j]);
					}
				}
			}
			for(var j=0 ; j<cols.length ; j++) {
				cols[j].style.display = 'none';
			}
			for(var j=0 ; j<group.length ; j++) {
				var idx = term2idx[group[j]];
				cols[idx].style.display = '';
			}
			for(var j=0 ; group.length+j<6 ; j++) {
				// dummyのクラスを使わず、右端から使ってみた.
				cols[cols.length-1-j].style.display = '';
			}
		}
	};
	
	setup = function() {
		var tables = document.getElementsByTagName('TABLE');
		for(var i=0 ; i<tables.length ; i++) {
			if(tables[i].className.indexOf("highlight_support") == -1) {
				continue;
			}
			attach(tables[i]);
		}
	};
	
	(handler(1 * (location.hash.substr(1) || 0)))();
});
