// JavaScript Document
var obj = {};

function ini(){
	iniMenu();
	iniTabs();
	iniLnks();
}

function iniMenu(){
	var msg = [];
	var sb = document.getElementById("sidebar");
	var li = sb.getElementsByTagName("li");
	for(var i=0;i<li.length;i++){
		var id = (i<10)?"mm0"+i:"mm"+i;
		var o = document.getElementById(id);
		var src = o.getAttribute("src");
		var alt = src.substring(0,src.length-4)+"h.gif";
		o.onmouseover = function(){this.setAttribute("src",this.def.alt);};
		o.onmouseout = function(){this.setAttribute("src",this.def.src);};
		o.def = {"id":id,"src":src,"alt":alt};
		obj[id] = o;
		msg.push(i+" "+id+" "+src+","+alt);
	}
	//alert(msg.join("\n"));
}

function iniTabs(){
	var msg = [];
	var tabs = document.getElementById("gtab");
	if(!tabs) return;
	var li = tabs.getElementsByTagName("li");
	for(var i=0;i<li.length-1;i++){
		var id = (i<10)?"gt0"+i:"gt"+i;
		if(i==0) obj.seltab = id;
		var o = document.getElementById(id);
		var src = o.getAttribute("src");
		var alt = src.substring(0,src.length-4)+"h.gif";
		var tgt = i+1;
		o.onmouseover = function(){this.setAttribute("src",this.def.alt);};
		o.onmouseout = function(){if(obj.seltab!=this.def.id) this.setAttribute("src",this.def.src);};
		o.onmousedown = function(){this.setAttribute("src",this.def.alt);var sel=obj.seltab;obj[sel].setAttribute("src",obj[sel].def.src);obj.seltab=this.def.id;scrll(this.def.tgt);};
		o.style.cursor = "pointer";
		o.def = {"id":id,"src":src,"alt":alt, "tgt":tgt};
		obj[id] = o;
		msg.push(i+" "+id+" "+src+","+alt);
	}
	var sel = obj.seltab;
	obj[sel].setAttribute("src",obj[sel].def.alt);
	//alert(msg.join("\n"));
}

function iniLnks(){
	var msg = [];
	var tabs = document.getElementById("gtab");
	if(!tabs) return;
	for(var nen=1;nen<8;nen++){
		var lnks = document.getElementById("gaku"+nen);
		var a = lnks.getElementsByTagName("a");
		var trg = "gaku"+nen+"img";
		var ini = "images/gakunen/"+nen+"/gaku"+nen+"_1.gif";
		for(var i=0;i<a.length;i++){
			var id = "gaku"+nen+"_"+i;
			var o = document.getElementById(id);
			var src = "images/gakunen/"+nen+"/gaku"+nen+"_"+(i+1)+".gif";
			o.onmouseover = function(){onLnk(this.def.trg,this.def.src);};
			o.onmouseout = function(){onLnk(this.def.trg,this.def.ini);};
			o.style.cursor = "pointer";
			o.def = {"id":id,"src":src,"ini":ini,"trg":trg};
			obj[id] = o;
			msg.push(i+" "+id+" "+src+","+ini+","+trg);
		}
	}
	//alert(msg.join("\n"));
}

function onLnk(trg,src){
	var obj = document.getElementById(trg);
	obj.setAttribute("src", src);
	//alert(src);
}

function scrll(n){
	SmoothScroll.scrollTo("gaku"+n, "mado");
}

function xscrll(n){
	var ofs = 0;
	for(var i=1;i<n;i++){
		var o = document.getElementById("gaku"+i);
		var d = o.offsetHeight;
		alert(i+" "+o+" "+d);
		ofs+=objH[i];
	}
	//document.getElementById("mado").scrollTop = ofs;
}

var SmoothScroll = {};
SmoothScroll = {
	targetScrollTop : 0,	// we're gonna make the $(parentid).scrollTop -> targetScrollTop
	dist : 0,
	timer : 0,
	count : 0,
	parentid : 0,
	lastDist : 0,
	//speedStore : [],		// for debug
	options : {},
	defaultOptions : {
		time : 1*1000,	// [ms]
		unit : 20			// [ms]
	},
	scrollTo : function( element, parent, options ){
		this.options.time = this.defaultOptions.time;
		this.options.unit = this.defaultOptions.unit;
		if( options ){
			this.options.time = ( options.time ) ? options.time : this.options.time;
			this.options.unit = ( options.unit ) ? options.unit : this.options.unit;
		}
		clearInterval( this.timer );
		this.parentid = parent;

		this.scrollTopMax = this.$(parent).scrollHeight - this.$(parent).offsetHeight + parseInt(this.$(parent).style.borderTopWidth) + parseInt(this.$(parent).style.borderBottomWidth);

		if( navigator.userAgent.match( "MSIE" ) ){
			this.targetScrollTop = ( element ) ? this.$(element).offsetTop : 0;
		}else{
			var targetOffsetTop = ( element ) ? this.$(element).offsetTop : this.$(parent).offsetTop;
			this.targetScrollTop = targetOffsetTop - this.$(parent).offsetTop;
		}
		this.targetScrollTop = ( this.targetScrollTop > this.scrollTopMax ) ? this.scrollTopMax : this.targetScrollTop;

		this.dist = this.targetScrollTop - this.$(parent).scrollTop;
		//alert(this.dist);
		this.lastDist = 0;
		this.timer = setInterval('SmoothScroll.update()', this.options.unit );
		this.count = 0;
		//this.speedStore = [];
		this.update();
	},
	update : function(){
		var dist = this.targetScrollTop - this.$(this.parentid).scrollTop;
		var speed = 2 * dist * this.options.unit / ( this.options.time - this.options.unit * this.count );
		//this.speedStore.push( speed );
		speed = ( speed > 0 ) ? Math.ceil( speed ) : Math.floor( speed );
		if( Math.abs(dist) <= Math.abs(speed) ){
			// got there
			clearInterval( this.timer );
			this.$(this.parentid).scrollTop = this.targetScrollTop;
			return;
		}else if( this.lastDist == dist ){
			// stuck
			clearInterval( this.timer );
			this.$(this.parentid).scrollTop = this.targetScrollTop;
			return;
		}
		var scrollTop = this.$(this.parentid).scrollTop + speed;
		this.$(this.parentid).scrollTop = scrollTop;
		this.lastDist = dist;
		this.count++;
		if( this.count == this.options.time / this.options.unit ){
			// timeout
			clearInterval( this.timer );
			this.$(this.parentid).scrollTop = this.targetScrollTop;
		}
	},
	$ : function(id) {
		return document.getElementById(id);
	}
}

function gototop(){
	document.getElementById('mado').scrollTop = 0;
}


