/*
*	deccel - Decceleration index as block is moved (nominal range: 1 => 2)
*	begin - Initial speed of a block at beginning of slide:
*				 Maximum speed as this value approaches one
*				 Minimum speed as this value approaches scroller height
*	speed - Delay between each incremental movement upwards (milliseconds)
*	pause - Amount of time to pause before next scroll begins (milliseconds)
*/
var marq = new scrollObject("marq", "marqueeDiv", 479, 30, "left", 1.1, 8, 15, 7000, "marqueeText");
function scrollObject(objName, main, width, height, direct, deccel, begin, speed, pause, classname) {
	this.objName = objName;
	this.main = main;
	this.one = main + "Block1";
	this.two = main + "Block2";
	this.block = new Array();
	this.blockup = 1;
	this.divup = 1;
	this.height = height;
	this.width = width;
	this.direct = direct;
	this.deccel = Math.max(deccel, 1);
	this.begin = Math.max(Math.min(begin, (direct == "up" || direct == "down") ? height : width), 1);
	this.speed = speed;
	this.pause = pause;
	this.slide = ((direct == "up" || direct == "down") ? height : width) / this.begin;
	this.table = "<div class=\"" + classname + "\" style=\"width:" + width + "px;height:" + height + "px;\">";
	this.active = false;
	this.moving = false;
	this.process = 0;
	this.mouse = false;
	this.scroll = function() {
		if (!document.getElementById) return false;
		document.getElementById('marqueeAuthor').innerHTML =  marq.block[0][1];
		document.getElementById(this.main).innerHTML = "<div id=\"" + this.one + "\"></div><div id=\"" + this.two + "\"></div>";
		var divList = [document.getElementById(this.main), document.getElementById(this.one), document.getElementById(this.two)];
		for (var i = 0; i <= 2; i++) {
			if (i > 0) {
				divList[i].style.position = "absolute";
				divList[i].className = "clearfix";
				if (this.direct == "up" || this.direct == "down") {
					divList[i].style.left = "0px";
					divList[i].style.top = (i == 1) ? "0px" : ((this.direct == "up") ? "" : "-") + this.height + "px";
				} else {
					divList[i].style.left = (i == 1) ? "0px" : ((this.direct == "left") ? "" : "-") + this.width + "px";
					divList[i].style.top = "0px";
				}
				divList[i].innerHTML = this.table + this.block[i - 1][0] + "</div>";
			} else {
				divList[i].style.position = "relative";
				if (this.block.length > 1) {
					divList[i].onmouseover = new Function("if (" + this.objName + ".active) setTimeout(\"" + this.objName + ".scrollWait();\", " + this.objName + ".pause); " + this.objName + ".active = false; " + this.objName + ".mouse = true;");
					divList[i].onmouseout = new Function(this.objName + ".mouse = false;");
				}
			}
			divList[i].style.overflow = "hidden";
			divList[i].style.width = this.width + "px";
			divList[i].style.height = this.height + "px";
		}
		this.active = true;
		if (this.block.length > 1) this.process = setTimeout(this.objName + ".scrollLoop();", this.pause);
	}
	this.scrollLoop = function() {
		clearTimeout(this.process);
		if (this.moving == false && this.active == false) return false;
		var quoter = ''
		var divList = [document.getElementById(this.main), document.getElementById(this.one), document.getElementById(this.two)];
		this.slide = Math.max(this.slide / this.deccel, 1);
		var slideInc = (this.direct == "up" || this.direct == "left") ? -parseInt(this.slide) : parseInt(this.slide);
		if ((this.direct == "up" && Math.max(parseInt(divList[1].style.top) + slideInc, parseInt(divList[2].style.top) + slideInc) <= 0) ||
				(this.direct == "down" && Math.min(parseInt(divList[1].style.top) + slideInc, parseInt(divList[2].style.top) + slideInc) >= 0) ||
				(this.direct == "left" && Math.max(parseInt(divList[1].style.left) + slideInc, parseInt(divList[2].style.left) + slideInc) <= 0) ||
				(this.direct == "right" && Math.min(parseInt(divList[1].style.left) + slideInc, parseInt(divList[2].style.left) + slideInc) >= 0)) {
			this.slide = ((this.direct == "up" || this.direct == "down") ? this.height : this.width) / this.begin;
			if (++this.blockup >= this.block.length) this.blockup = 0;
			this.divup = (this.divup == 1) ? 2 : 1;
			if (this.direct == "up" || this.direct == "down") {
				divList[3 - this.divup].style.top = ((this.direct == "down") ? "-" : "") + this.height + "px";
				divList[this.divup].style.top = "0px";
			} else {
				divList[3 - this.divup].style.left = ((this.direct == "right") ? "-" : "") + this.width + "px";
				divList[this.divup].style.left = "0px";
			}
			divList[3 - this.divup].innerHTML = this.table + this.block[this.blockup][0] + "</div>";
			this.moving = false;
			quoter = this.blockup;
			if(quoter==0){quoter=this.block.length};
			document.getElementById('marqueeAuthor').innerHTML =  this.block[quoter-1][1];
			this.process = setTimeout(this.objName + ".scrollLoop();", this.pause);
		} else {
			this.moving = true;
			for (var j = 1; j <= 2; j++) {
				if (this.direct == "up" || this.direct == "down") {
					divList[j].style.top = (parseInt(divList[j].style.top) + slideInc) + "px";
				} else divList[j].style.left = (parseInt(divList[j].style.left) + slideInc) + "px";
			}
			this.process = setTimeout(this.objName + ".scrollLoop();", this.speed);
		}
	}
	this.scrollWait = function() {
		clearTimeout(this.process);
		if (this.active) return false;
		if (!this.mouse) {
			this.active = true;
			this.process = setTimeout(this.objName + ".scrollLoop();", this.pause / 2);
		} else this.process = setTimeout(this.objName + ".scrollWait();", this.pause);
	}
}