//


function vrlBlocksScroller(scroller_name, width, height) {
	this.scroller_name = scroller_name;
	this.prev_block = -1;
	this.current_block = 0;
	this.step_height = 2;
	this.step_timeout = 50;
	this.fix_timeout = 1000;
	
	this.scroller_style = "\
		border: 1px solid #00cccc;\
		background-color: #eeeeee;\
		";
	this.block_style = "\
		border: 0;\
		font: 11px Arial;\
		padding: 6px;\
		";

	this.width = width;
	this.height = height;
	this.block_height = height-2;
	this.block_width = width-2;

	this.scroll_enabled = true;
	
	this.blocks = new Array();
	
}


////////////////////////////////////////////////////////////////
// scroll
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_scroll(){

  
	var block = this.get_block(this.current_block);

	var top = this.get_block_top(block);
  
	if(this.scroll_enabled) {
		top -= this.step_height;
		if(top<0) top = 0;
		this.set_block_top(block, top)

		block = this.get_block(this.prev_block);
		if(block) {
			var ptop = this.get_block_top(block) - this.step_height;
			this.set_block_top(block,ptop)
		}
	}
	
	if(top>0) {
		setTimeout(this.scroller_name + ".scroll()", this.step_timeout);
	} else {
		this.scroll_fix();
	}
	
}


vrlBlocksScroller.prototype.scroll = vrlBlocksScroller_scroll;


////////////////////////////////////////////////////////////////
// scroll_up
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_scroll_fix(){
	var block = this.get_block(this.prev_block);
	if(block) this.show_block(block, false);

	block = this.get_block(this.current_block);
	
	this.prev_block = this.current_block;
	
	this.current_block++;
	if(this.current_block >= this.blocks.length) this.current_block = 0;

	block = this.get_block(this.current_block);
	
	this.set_block_top(block,this.height);
	this.show_block(block, true);
		
	setTimeout(this.scroller_name + ".scroll()", this.fix_timeout);
}

vrlBlocksScroller.prototype.scroll_fix = vrlBlocksScroller_scroll_fix;


////////////////////////////////////////////////////////////////
// start_scroll
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_start_scroll(){
	this.current_block = 0;
	this.prev_block = -1;
	var block = this.get_block(0);
	this.set_block_top(block, 0);
	this.show_block(block, true);
	this.scroll_fix();
}

vrlBlocksScroller.prototype.start_scroll = vrlBlocksScroller_start_scroll;


////////////////////////////////////////////////////////////////
// make_scroller
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_make_scroller(bActivateHere){

	if(document.layers) {
		var outp = this.make_scroller_ns();
	}else{
		var outp = this.make_scroller_ie();
	}
	if(bActivateHere) {
		document.write(outp);
		this.start_scroll();
		return outp;
	} else {
		return outp;
	}
}


/////////////////////////////////////////////////
function vrlBlocksScroller_make_scroller_ie(){

var outp = 
 "<div style=\"position: relative; \
	width: " + this.width + ";\
	height: " + this.height + "; "
	+ this.scroller_style + " \"\
 >\n\
 <div id=\"" + this.scroller_name + "\"\
	style=\"\
	position: absolute;\
	clip: rect(0 " + this.width + " " + this.height + " 0);\
	overflow: hidden;\
	height: " + this.height + ";\
	width: " + this.width + ";\
	top: 0;\
	left: 0;\
	border: 0;\
	\"\
	onmousedown=\"" + this.scroller_name + ".scroll_on(false);\"\
	onmouseover=\"" + this.scroller_name + ".scroll_on(false);\"\
	onmouseout=\"" + this.scroller_name + ".scroll_on(true);\"\
	onmouseup=\"" + this.scroller_name + ".scroll_on(true);\"\
 >\n";

	for(var i = 0; i<this.blocks.length; i++) {
		outp = outp + this.make_block_ie(i); 
	}

	outp = outp + "</div></div>\n"; 

	return outp;

}

/////////////////////////////////////////////////
function vrlBlocksScroller_make_scroller_ns(){

 //	style=\""
 //	+ this.scroller_style + "\"\

 var outp =
  "<ilayer name=\"" + this.scroller_name + "\"\
	clip=\"" + this.width + "," + this.height + "\"\
	>\n";

	for(var i = 0; i<this.blocks.length; i++) {
		outp = outp + this.make_block_ns(i); 
	}

	outp = outp + "</ilayer>\n"; 

	return outp;

}


vrlBlocksScroller.prototype.make_scroller = vrlBlocksScroller_make_scroller;
vrlBlocksScroller.prototype.make_scroller_ie = vrlBlocksScroller_make_scroller_ie;
vrlBlocksScroller.prototype.make_scroller_ns = vrlBlocksScroller_make_scroller_ns;



////////////////////////////////////////////////////////////////
// make_block
////////////////////////////////////////////////////////////////

function vrlBlocksScroller_make_block_ie(block_index){

 var outp = "<div id=\"" + this.scroller_name + block_index + "\"\
	style=\"\
	position: absolute;\
	visibility: hidden;\
	overflow: hidden;\
	top: " + this.height + ";\
	left: 0;\
	height: " + this.block_height + ";\
	width: " + this.block_width + ";\
	margin: 0; "
	+ ((block_index%2 && this.block_style_odd)?this.block_style_odd:this.block_style) + 
	" \"\
 >\n"
 + this.blocks[block_index] +
 "\n</div>\n";

 return outp;
}
///////////////////////////////////////////////////
function vrlBlocksScroller_make_block_ns(block_index){
//	top=\"" + this.height + "\"\
  var outp = "<layer name=\"" + this.scroller_name + block_index + "\"\
	top=\"0\"\
	left=\"0\"\
	visibility=\"hide\">\
	<table width=\"" + this.block_width + "\" cellpadding=0 cellspacing=0><tr>\
	<td style=\""
	+ ((block_index%2 && this.block_style_odd)?this.block_style_odd:this.block_style) +
	"\">"
	+ this.blocks[block_index] +
	"</td></tr></table></layer>\n";

  return outp;
}


vrlBlocksScroller.prototype.make_block_ie = vrlBlocksScroller_make_block_ie;
vrlBlocksScroller.prototype.make_block_ns = vrlBlocksScroller_make_block_ns;








////////////////////////////////////////////////////////////////
// get_block
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_get_block(id){
	if(id<0) return null;

	if(document.layers) {
		var scroller = document.layers[this.scroller_name];
        var block = scroller.layers[this.scroller_name+id];
	} else {
		if(document.all) {
			var block = document.all(this.scroller_name+id);
		}else{
			var block = document.getElementById(this.scroller_name+id);
		}
	}
	
	return block;
}

vrlBlocksScroller.prototype.get_block = vrlBlocksScroller_get_block;









////////////////////////////////////////////////////////////////
// show_block
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_show_block(block, bShow){
	if(document.layers) {
		block.visibility = bShow ? "show" : "hide";
	} else {
		block.style.visibility = bShow ? "visible" : "hidden";
	}
}

vrlBlocksScroller.prototype.show_block = vrlBlocksScroller_show_block;





////////////////////////////////////////////////////////////////
// get_block_top
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_get_block_top(block){
	if(document.layers) {
		return parseInt(block.top);
	} else {
		return parseInt(block.style.top);
	}
}

vrlBlocksScroller.prototype.get_block_top = vrlBlocksScroller_get_block_top;






////////////////////////////////////////////////////////////////
// set_block_top
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_set_block_top(block, top){
	if(document.layers) {
		block.top = top;
	} else {
		block.style.top = top;
	}
}

vrlBlocksScroller.prototype.set_block_top = vrlBlocksScroller_set_block_top;



////////////////////////////////////////////////////////////////
// scroll_on
////////////////////////////////////////////////////////////////
function vrlBlocksScroller_scroll_on(bOn){
	this.scroll_enabled = bOn;
}

vrlBlocksScroller.prototype.scroll_on = vrlBlocksScroller_scroll_on;

