function f_init(){
	f_searchVerticalScrollModules();
}
window.onload = f_init;

var staticscrollspeed = 1;
var statictime = 20;
var ycurrentscrollspeed = staticscrollspeed;
var allSI = Object();
var rootObj = Object();
var opacityMin = 50;

function f_searchVerticalScrollModules(){
	var allDiv = document.getElementsByTagName('div');
	var selectedDiv = Array();
	for(var i = 0; i < allDiv.length; i++){
		if(allDiv[i].className == "verticalScroll"){
			selectedDiv.push(allDiv[i]);
			f_configScrollModuleDiv(allDiv[i]);
			
			// start scroll
			allSI[allDiv[i].id] = setInterval("f_verticalScroll('" + allDiv[i].id + "')", statictime);
			
			// suppliment
			var divFirst = f_getFirstDivChild(allDiv[i]);
			var allCurrentDiv = divFirst.getElementsByTagName('div');
			for(var j = 0; j < allCurrentDiv.length; j++){
				//var divSecond = f_getFirstDivChild(divFirst);
				//divSecond.style.backgroundColor = "#CCC";
				changeOpac(opacityMin, allCurrentDiv[j]);
				
				allCurrentDiv[j].onmouseover = f_select;
				allCurrentDiv[j].onmouseout = f_deselect;
			}
		}
	}
	//alert(selectedDiv.length);
}

function f_select(){
	f_selectObj(this);
}
function f_selectObj(obj){
	changeOpac(100, obj);
	var className = obj.className + '_selected';
	obj.className = className;
}

function f_deselect(){
	f_deselectObj(this);
}
function f_deselectObj(obj){
	changeOpac(opacityMin, obj);
	var className = obj.className;
	className = className.replace(/_selected/, '');
	obj.className = className;
}

function changeOpac(opacity, obj) {
	obj.style.opacity = (opacity / 100);
	obj.style.MozOpacity = (opacity / 100);
	obj.style.KhtmlOpacity = (opacity / 100);
	obj.style.filter = "alpha(opacity=" + opacity + ")";
}

function f_getH(){
	var objProperties = f_getProperties(this);
	alert(objProperties.h);
}
function f_getW(){
	var objProperties = f_getProperties(this);
	alert(objProperties.w);
}
function f_getL(){
	var objProperties = f_getProperties(this);
	alert(objProperties.l);
}
function f_getT(){
	var objProperties = f_getProperties(this);
	alert(objProperties.t);
}
function f_getX(){
	var objProperties = f_getProperties(this);
	alert(objProperties.x);
}
function f_getY(){
	var objProperties = f_getProperties(this);
	alert(objProperties.y);
}

function f_getProperties(obj){
	var w = obj.offsetWidth;
	var h = obj.offsetHeight;
	var l = obj.offsetLeft;
	var t = obj.offsetTop;
	
	var r = getAbsolutePosition(obj);
	var x = r.x;
	var y = r.y;
	
	return {'w':w, 'h':h, 'l':l, 't':t, 'x':x, 'y':y};
}

function getAbsolutePosition(obj){
	var r = { x: obj.offsetLeft, y: obj.offsetTop };
	if (obj.offsetParent) {
		var tmp = getAbsolutePosition(obj.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	
	return r;
}

function f_verticalScroll(modulId){
	var modul = document.getElementById(modulId);
	var container = f_getFirstDivChild(modul);
	
	modul.style.position = "relative";
	container.style.position = "absolute";
	
	var containerPosition = modul.offsetTop - container.offsetTop;
	if(container.offsetTop <= -container.offsetHeight){
		container.style.top = modul.offsetHeight + "px";
	}
	container.style.top = (container.offsetTop - ycurrentscrollspeed) + "px";
}

function f_configScrollModuleDiv(divModul){
	allSI[divModul.id] = "";
	var divContainer = f_getFirstDivChild(divModul);
	
	divModul.onmouseover = clearInt;
	divModul.onmouseout = setInt;
}
function setInt(){
	if(allSI[this.id] == ""){
		allSI[this.id] = setInterval("f_verticalScroll('" + this.id + "')", statictime);
	}
}
function clearInt(){
	clearInterval(allSI[this.id]);
	allSI[this.id] = "";
}

function f_getFirstDivChild(objDiv){
	var currentChild = objDiv.childNodes[0];
	while(currentChild.nodeName != 'DIV'){
		currentChild = currentChild.nextSibling;
	}
	return currentChild;
}

function f_getNextDivChild(objDiv){
	var currentChild = objDiv.nextSibling;
	while(currentChild.nodeName != 'DIV'){
		currentChild = currentChild.nextSibling;
	}
	return currentChild;
}
