
// ¿©·¯°³ÀÇ ¸®½ºÆ®¸¦ ºÎµå·´°Ô ·Ñ¸µ
/* 
 * params
 * className				: °´Ã¼ »ý¼º½Ã °´Ã¼¸í
 * _width						: 
 * _height						: 
 * _movespeed			: ÀÌµ¿¹öÆ° Å¬¸¯½Ã ¿òÁ÷ÀÏ ¼Óµµ	(±âº»°ª50)
 * _pause						: pause½Ã°£ (±âº»°ª 1000)
 * _type							: ·Ñ¸µ ¹æÇâ								(±âº»°ª 1(up))
 * _pausemouseover	: ¸¶¿ì½º ¿À¹öÇÏ¸é pause ¿©ºÎ(±âº»°ª false)
*/
rollingbaduk=function(className,_width,_height,_movespeed, _pause, _type, _pausemouseover)	{

	this.name = className;
	this.item = new Array();
	this.itemcount = 0;
	this.currentspeed = 0;
	this.scrollspeed = 50;
	this.pausedelay = 1000;
	this.pausemouseover = false;
	this.stop = false;
	this.type = 1;
	this.height = _height;
	this.width = _width;
	this.stopHeight=0;
	this.i=0;
	
	//·Ñ¸µ ÃÊ±âÈ­
	if(_movespeed)												this.scrollspeed=_movespeed;
	if(_pause)															this.pausedelay=_pause;
	if(_type)															this.type=_type;
	if(_pausemouseover)										this.pausemouseover=_pausemouseover;
			
	this.add = function () {
		var text = arguments[0];
		this.item[this.itemcount] = text;
		this.itemcount ++;
	};
	
	this.start = function (layer_name) {
		if ( this.itemcount == 1 ) {
			this.add(this.item[0]);
		}
		if (layer_name != null) {
			document.getElementById(layer_name).innerHTML = this.str_ret();
		} else {
			this.display();
		}
		this.currentspeed = this.scrollspeed;
		if ( this.type == 1 || this.type == 2 ) {
			this.stop = true;
			setTimeout(this.name+'.scroll()',this.currentspeed);
			window.setTimeout(this.name+".stop = false", this.pausedelay);
		} else if ( this.type == 3 ) {
			this.stop = true;
			setTimeout(this.name+'.rolling()',this.currentspeed);
			window.setTimeout(this.name+".stop = false", this.pausedelay);
		}
	};
	
	this.display = function () {
		document.write('<div id="'+this.name+'" style="height:'+this.height+'px; width:'+this.width+'px; position:relative; overflow:hidden; " OnMouseOver="'+this.name+'.onmouseover(); " OnMouseOut="'+this.name+'.onmouseout(); ">');
		for(var i = 0; i < this.itemcount; i++) {
			if ( this.type == 1 ) {
				document.write('<div id="'+this.name+'item'+i+'"style="left:0px; width:'+this.width+'px; position:absolute; top:'+(this.height*i)+'px; ">');
				document.write(this.item[i]);
				document.write('</div>');
			} else if ( this.type == 2 || this.type == 3 ) {
				document.write('<div id="'+this.name+'item'+i+'"style="left:'+(this.width*i)+'px; width:'+this.width+'px; position:absolute; top:0px; ">');
				document.write(this.item[i]);
				document.write('</div>');
			}
		}
		document.write('</div>');
	};
	
	// ¹Ù·Î µð½ºÇÃ·¹ÀÌ ¾Ê°í ½ºÆ®¸µ ¸®ÅÏÇÏµµ·Ï Ãß°¡ 2006-03-30
	this.str_ret = function () {
		var str = '<div id="'+this.name+'" style="height:'+this.height+'; width:'+this.width+'; position:relative; overflow:hidden; " OnMouseOver="'+this.name+'.onmouseover(); " OnMouseOut="'+this.name+'.onmouseout(); ">';
		for(var i = 0; i < this.itemcount; i++) {
			if ( this.type == 1 ) {
				str += '<div id="'+this.name+'item'+i+'"style="left:0px; width:'+this.width+'; position:absolute; top:'+(this.height*i)+'px; ">';
				str += this.item[i];
				str += '</div>';
			} else if ( this.type == 2 || this.type == 3 ) {
				str += '<div id="'+this.name+'item'+i+'"style="left:'+(this.width*i)+'px; width:'+this.width+'; position:absolute; top:0px; ">';
				str += this.item[i];
				str += '</div>';
			}
		}
				str += '</div>';
				return str;
	};
	
	this.scroll = function () {
	
		if ( this.pause == true ) {
			window.setTimeout(this.name+".scroll()",this.pausedelay);
			this.pause = false;
		} else {
			this.currentspeed = this.scrollspeed;
			if ( !this.stop ) {
				for (i = 0; i < this.itemcount; i++) {
					obj = document.getElementById(this.name+'item'+i).style;
					if ( this.type == 1 ) {
						obj.top = parseInt(obj.top) - 1;
						if ( parseInt(obj.top) <= this.height * (-1) ) obj.top = this.height * (this.itemcount-1);
						if ( parseInt(obj.top) == 0 ) this.currentspeed = this.pausedelay;
					} else if ( this.type == 2 ) {
						obj.left = parseInt(obj.left) - 1;
						if ( parseInt(obj.left) <= this.width * (-1) ) obj.left = this.width * (this.itemcount-1);
						if ( parseInt(obj.left) == 0 ) this.currentspeed = this.pausedelay;
					}
				}
			}
			window.setTimeout(this.name+".scroll()",this.currentspeed);
		}
	};
	
	this.rolling = function () {
		if ( this.stop == false  ) {
			this.next();
		}
		window.setTimeout(this.name+".rolling()",this.scrollspeed);
	}
	
	this.onmouseover = function () {
		if ( this.pausemouseover ) {
			this.stop = true;
		}
	};
	
	this.onmouseout = function () {
		if ( this.pausemouseover ) {
			this.stop = false;
		}
	};
	
	this.next = function() {
	
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.left) < 1 ) {
				width = this.width + parseInt(obj.left);
				break;
			}
		}
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.left) < 1 ) {
				obj.left = this.width * (this.itemcount-1);
			} else {
				obj.left = parseInt(obj.left) - width;
			}
		}
	
	}
	
	this.down = function() {
	
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.top) < 1 ) {
				height = this.height + parseInt(obj.top);
				break;
			}
		}
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.top) < 1 ) {
				obj.top = this.height * (this.itemcount-1);
			} else {
				obj.top = parseInt(obj.top) - height;
			}
		}
	
	}
	
	this.prev = function() {
	
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.left) < 1 ) {
				width = parseInt(obj.left) * (-1);
				break;
			}
		}
		if ( width == 0 ) {
			total_width = this.width * (this.itemcount-1);
			for (i = 0; i < this.itemcount; i++) {
				obj = document.getElementById(this.name+'item'+i).style;
				if ( parseInt(obj.left) + 1 > total_width ) {
					obj.left = 0;
				} else {
					obj.left = parseInt(obj.left) + this.width;
				}
			}
		} else {
			for (i = 0; i < this.itemcount; i++) {
				obj = document.getElementById(this.name+'item'+i).style;
				if ( parseInt(obj.left) < 1 ) {
					obj.left = 0;
				} else {
					obj.left = parseInt(obj.left) + width;
				}
			}
		}
	}
	
	this.up = function() {
	
		for (i = 0; i < this.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.top) < 1 ) {
				height = parseInt(obj.top) * (-1);
				break;
			}
		}
		if ( height == 0 ) {
			total_height = this.height * (this.itemcount-1);
			for (i = 0; i < this.itemcount; i++) {
				obj = document.getElementById(this.name+'item'+i).style;
				if ( parseInt(obj.top) + 1 > total_height ) {
					obj.top = 0;
				} else {
					obj.top = parseInt(obj.top) + this.height;
				}
			}
		} else {
			for (i = 0; i < this.itemcount; i++) {
				obj = document.getElementById(this.name+'item'+i).style;
				if ( parseInt(obj.top) < 1 ) {
					obj.top = 0;
				} else {
					obj.top = parseInt(obj.top ) + height;
				}
			}
		}
	
	}
	
	this.unext = function () {
		this.onmouseover();
	    if(this.type == 1) {
	        this.down();
	    } else {
		    this.next();
	    }
		window.setTimeout(this.name+".onmouseout()",this.pausedelay);
	}
	
	this.uprev = function () {
		this.onmouseover();
	    if(this.type == 1) {
	        this.up();
	    } else {
	    	this.prev();
	    }
		window.setTimeout(this.name+".onmouseout()",this.pausedelay);
	}

}
