var hibContent = Class.create();
hibContent.prototype = {
	initialize: function(){
		this.minHeight=0;
		this.state = "min";
	},
	setContent:function(container,button){
		this.content = $(container);
		this.button = $(button);
		this.button.className="toggle_up";
		this.button.onclick = function(){contentAnim.maximize()};
		this.cDim = Element.getDimensions(this.content);
		this.oH = Element.getHeight(this.content);
	},
	minimize:function(){
		new Effect.Move (
						 this.content,{ 
						 	y: 344, duration:0.5,
							mode: 'relative',
							beforeStart:function(){
								new Effect.Scale($("module_wrapper_main"),31,{duration:0.5,scaleContent:false,scaleX:false,afterFinish:function(effect){effect.element.style.height = "158px";}});
								new Effect.Scale($("module_wrapper_content"),31,{duration:0.5,scaleContent:false,scaleX:false,afterFinish:function(effect){effect.element.style.height = "158px";}});
							},
							afterFinish:function(){
								contentAnim.button.className="toggle_up";
								contentAnim.button.onclick=function(){contentAnim.maximize()}
								checkScrollable();
							}
						}
		);
		this.state="min";
		
	},
	maximize:function(){
		if(menu.state=="min") menu.maximize();
		new Effect.Move(
						this.content,{ 
							y: -344, mode: 'relative', duration:0.5,
							afterFinish:function(effect){
								new Effect.Scale($("module_wrapper_main"),322.58,{duration:0.3,scaleX:false,scaleContent:false,afterFinish:function(effect){effect.element.style.height = "502px";checkScrollable();}});
								new Effect.Scale($("module_wrapper_content"),322.58,{duration:0.3,scaleX:false,scaleContent:false,afterFinish:function(effect){effect.element.style.height = "502px";checkScrollable();}});
								contentAnim.button.className="toggle_down";
								contentAnim.button.onclick=function(){contentAnim.minimize()};
							}
						}
		);
		this.state="max";
	}
}

/*scroll functions*/
Object.extend(Event, {
	wheel:function (event){
		var delta = 0;
		if (!event) event = window.event;
		if (event.wheelDelta) {
			delta = event.wheelDelta/120; 
			if (window.opera) delta = -delta;
		} else if (event.detail) { delta = -event.detail/3;	}
		return Math.round(delta); //Safari Round
	}
});

function doScroll(v,slider){
	el = $("module_wrapper_content");
	//$("module_wrapper_content").scrollTop = $("module_wrapper_main").offsetHeight * v;
	el.scrollTop = Math.round(v/slider.maximum*(el.scrollHeight-el.offsetHeight));
}
function checkScrollable(){
	if ($("module_wrapper_content").scrollHeight <= $("module_wrapper_content").offsetHeight) {
		slider.setDisabled();
		Element.setStyle($("scrollbar"),{"display":"none"});
		$("module_wrapper_content").scrollTop = 0;
	}
	else{
		slider.disabled=false;
		Element.setStyle($("scrollbar"),{"display":""});
	}
}
var contentAnim;
var slider;
Event.observe(
			  window,
			  'load',
			  function(){
				  	try{
						if($('module_wrapper')){
							contentAnim = new hibContent();
							contentAnim.setContent("content_column","content_toggle");
							slider = new Control.Slider("sliderhandle","slider",{axis:"vertical",onSlide:function(v){doScroll(v,slider)},onChange:function(v){doScroll(v,slider)}});
							// disable vertical scrolling if text doesn't overflow the div
							checkScrollable();
							Event.observe($('module_wrapper_main'), "mousewheel", function(e){slider.setValue(slider.value+= (Event.wheel(e) < 0) ? 0.05 : -0.05)}, false);
							Event.observe($('module_wrapper_content'), "DOMMouseScroll", function(e){slider.setValue(slider.value+= (Event.wheel(e) < 0) ? 0.05 : -0.05)}, false); // Firefox
						}
					}
					catch(e){}
				},
			false);	
			
			
		