this.keyflow = function(){
	// 対応エレメントIDID
	var id = "keyFlow";
	// 移動スピード
	var speed = 5;
	// ボックスのサイズ
	var height = 250;
	var width  = 200;

	var p_elems = document.getElementsByTagName("ul");
	var p_elems_length = p_elems.length;
	for (var i=0; i< p_elems_length; i++) {
		p_elem = p_elems[i];
		if (p_elem.className == "keyflowlist") {
			p_elem.style.display = 'block';
		}
	}
	
	var obj = document.getElementById(id);
	obj.down = false;
	obj.fast = false;
	obj.st   = 0; // 動作開始フラグ
	
	var container = document.createElement("div");
	var parent = obj.parentNode;
	container.id="keyFlowContainer";
	parent.insertBefore(container, obj);
	parent.removeChild(obj);
	
	container.style.position = "relative";
	container.style.height = height + "px";
	container.style.width = width + "px";
	container.style.overflow = "hidden";
	obj.style.position = "absolute";
	obj.style.top = "0";
	obj.style.left = "0";
	container.appendChild(obj);
	obj.style.display = "block";

	obj.down = true;
	
	var resumeTop = "";
	
	this.start = function(){
		if (obj.st == 0) return;
		var newTop;
		var objHeight = obj.offsetHeight;
		var top = obj.offsetTop;
		var fast = (obj.fast) ? 2 : 1;
		if(obj.down){
			newTop = ((objHeight+top) > height) ? top-(speed*fast) : top;
			
			var nowPos = objHeight+top;
			if ((nowPos % height) == 0) {
				if ((objHeight+top) <= height) {
					reset(); //setTimeout("reset()", 1);
				} else {
					obj.down = false;
					setTimeout("resume()", 1000);
					resumeTop = newTop + "px";
				}
				return;
			}
			obj.style.top = newTop + "px";
		}
	};
	this.resume = function()
	{
		obj.style.top = resumeTop;
		obj.down = true;
	};
	this.reset = function()
	{
		obj.st = 0;
		obj.style.top = "0px";
	};
	this.addEvent = function(obj,type,fn){
		if(obj.attachEvent){
			obj['e'+type+fn] = fn;
			obj[type+fn] = function(){obj['e'+type+fn](window.event);}
			obj.attachEvent('on'+type, obj[type+fn]);
		} else {
			obj.addEventListener(type,fn,false);
		}
	};
	
	obj.interval = setInterval("start()", 10);
	
	addEvent(obj, "mouseover", function() {
		speed = 0;
	});
	addEvent(obj, "mouseout", function() {
		speed = 1;
	});
};

this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event);}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	}
};
addEvent(window, "load", keyflow);
