/* Content Scrollbox */

var dragHelper = null;


var scroller = Class.create();
scroller.prototype = {

	initialize : function (element)
	{
		dragHelper = this;
		scrollerboxes = $$('div.scrollerbox');	
		scrolltexte = $$('div.scrolltext');
																		  
		for(i=0; i<scrolltexte.length; i++)
		{
				eval("scrolltextHeight" + i + " = scrolltexte[i].getHeight();");
				eval("containerHeight" + i + " = scrollerboxes[i].getHeight();");
				scrolltexte[i].Height = parseInt(scrolltexte[i].getStyle('height'));
		}
			
		for(i=0; i<scrolltexte.length; i++)
		{
			if(scrolltexte[i].Height < 150 )
			{
				scrollerboxes[i].getElementsByClassName('scrollers')[0].setStyle({display: 'none'});				
			}
			else
			{				
				eval( "scrolltextDifference" + i +" = scrolltextHeight" + i + " - containerHeight" + i + ";" );	
				eval( "textpercent" + i + " = scrolltextDifference" + i + " / 100;");
				eval( "scrollbarHeight" + i + " = scrollerboxes[i].getElementsByClassName('scrollers')[0].getHeight();" );
				eval( "draggerHeight" + i +" =  scrollerboxes[i].getElementsByClassName('dragger')[0].getHeight();" );
				eval( "difference" + i + " = scrollbarHeight" + i + " - draggerHeight" + i + ";" );
				eval("this.faktor" + i + " =  100 / difference" + i + ";");				
			}			
		}	 			
		
		this.options = element;
		this.writeButtonSelectorEvents();
		this.options.content1.setStyle({display: 'block'});
		this.options.content2.setStyle({display: 'none'});
		this.options.content3.setStyle({display: 'none'});
		this.options.flag = "content1";
		this.options.button1.parentNode.setAttribute('id', 'aleft_hover');		

		for(i=0; i<scrolltexte.length; i++)
		{
				scrollerboxes[i].getElementsByClassName('dragger')[0].style.marginTop = 0 + "px"; 
				Event.observe(scrollerboxes[i].getElementsByClassName('dragger')[0], 'mousedown', function(e){ dragHelper.startDrag(); });		
				Event.observe('container', 'mouseup', function(e){ dragHelper.stopDrag(); });
		}	
		
	}, 

	startDrag : function ()
	{
		for(i=0; i<scrolltexte.length; i++)
		{
			if(scrollerboxes[i].style.display == "block")
			{
				scrollerboxes[i].onmousemove = this.dragging;
			} 
		} 
	},
	
	stopDrag : function ()
	{
		for(i=0; i<scrolltexte.length; i++)
		{
			if(scrollerboxes[i].style.display != "none")
			{
				scrollerboxes[i].onmousemove = null;
			}
		}		
	},
	
	dragging : function (e)
	{
		//Textmarkierfunktion verbieten
		if(window.getSelection) {
 		   var sel = window.getSelection();
		    sel.removeAllRanges();
		}
		
		if(document.attachEvent) document.attachEvent("onselectstart",function () { return false; });
		
		e = e || window.event;
		var cursor = {x:0, y:0};
		if (e.pageX || e.pageY) {
			cursor.x = e.pageX;
			cursor.y = e.pageY;
		} 
		else {
			var de = document.documentElement;
			var b = document.body;
			cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
			cursor.y = e.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
		}		
		
		this.cursorPosition = cursor;
		
		for(i=0; i<scrolltexte.length; i++)  
		{
			if(scrollerboxes[i].style.display == "block")
			{ 
				eval("diff" + i + "= cursor.y - this.lastY" + i +";");
				eval("currentMargin" + i +" = parseInt(scrollerboxes[i].getElementsByClassName('dragger')[0].style.marginTop);");

				if(eval("currentMargin" + i + ">= 0 && currentMargin" + i +" <= difference" + i))
				{		
					eval("newMargin" + i +" = diff" + i + " + currentMargin" + i);					
					
					if(eval("newMargin" + i) < 0){
						eval("newMargin" + i +" = 0;");
					} 
					else if (eval("newMargin" + i + " > difference" + i)){

						eval("newMargin" + i +" = difference" + i);
					}
					if(eval("newMargin" + i) >= 0)
					{
						scrollerboxes[i].getElementsByClassName('dragger')[0].style.marginTop = eval("newMargin" + i) + 'px';
						percent = parseInt((eval("newMargin" + i + " * dragHelper.faktor" + i)));
						eval("newTopPosition" + i +" = parseInt((textpercent" + i + " * percent));");
						eval("newTopPosition" + i +" = newTopPosition" + i + " * -1;");						
						scrolltexte[i].style.top = eval("newTopPosition"+i)+"px";
					}
				}    
				eval("this.lastY" + i + " = cursor.y;");
			}
		}			
	},

// Button-Selection ---------- //

	writeButtonSelectorEvents : function()
	{	
		this.options.button1.observe('click', this.button1_active.bind(this));	
		this.options.button1.observe('mouseover', this.button1_mouseover.bind(this));
		this.options.button1.observe('mouseout', this.button1_mouseout.bind(this));
		this.options.button2.observe('click', this.button2_active.bind(this));	
		this.options.button2.observe('mouseover', this.button2_mouseover.bind(this));
		this.options.button2.observe('mouseout', this.button2_mouseout.bind(this));		
		this.options.button3.observe('click', this.button3_active.bind(this));	
		this.options.button3.observe('mouseover', this.button3_mouseover.bind(this));
		this.options.button3.observe('mouseout', this.button3_mouseout.bind(this));
		
	},
	
	button1_mouseover : function()
	{
		if(this.options.flag != "content1"){
			this.options.button1.parentNode.setAttribute('id', 'aleft_hover');
		}
	},
	
	button1_mouseout : function()
	{
		if(this.options.flag != "content1"){		
			this.options.button1.parentNode.setAttribute('id', 'aleft');
		}
	},
	
	button1_active : function()
	{
		if(this.options.flag != "content1"){
			this.options.content1.setStyle({display: 'block'});
			this.options.content2.setStyle({display: 'none'});
			this.options.content3.setStyle({display: 'none'});
			this.options.flag = "content1";
			this.options.button1.parentNode.setAttribute('id', 'aleft_hover');			
			this.options.button2.parentNode.setAttribute('id', 'amiddle');	
			this.options.button3.parentNode.setAttribute('id', 'aright');			
		}
		
	},
	
	button2_mouseover : function()
	{
		if(this.options.flag != "content2"){
			this.options.button2.parentNode.setAttribute('id', 'amiddle_hover');
		}
	},
	
	button2_mouseout : function()
	{
		if(this.options.flag != "content2"){		
			this.options.button2.parentNode.setAttribute('id', 'amiddle');
		}
	},
	
	button2_active : function()
	{
		if(this.options.flag != "content2"){
			this.options.content2.setStyle({display: 'block'});
			this.options.content1.setStyle({display: 'none'});
			this.options.content3.setStyle({display: 'none'});
			this.options.flag = "content2";
			this.options.button2.parentNode.setAttribute('id', 'amiddle_hover');
			this.options.button1.parentNode.setAttribute('id', 'aleft');			
			this.options.button3.parentNode.setAttribute('id', 'aright');
		}
	},

	button3_mouseover : function()
	{
		if(this.options.flag != "content3"){
			this.options.button3.parentNode.setAttribute('id', 'aright_hover');
		}
	},
	
	button3_mouseout : function()
	{
		if(this.options.flag != "content3"){		
			this.options.button3.parentNode.setAttribute('id', 'aright');
		}
	},

	button3_active : function()
	{
		if(this.options.flag != "content3"){
			this.options.content3.setStyle({display: 'block'});
			this.options.content2.setStyle({display: 'none'});
			this.options.content1.setStyle({display: 'none'});
			this.options.flag = "content3";
			this.options.button3.parentNode.setAttribute('id', 'aright_hover');
			this.options.button1.parentNode.setAttribute('id', 'aleft');			
			this.options.button2.parentNode.setAttribute('id', 'amiddle');			
		}
	}	
}  