// JavaScript Document


Event.observe ( window, 'load', function() { init_slider(); });

function init_slider() {

	if( $('txt_frame') && ( $('txt_frame').getHeight() < $('txt_frame').scrollHeight ) ) {
		if ($('txt_scroller')) $('txt_scroller').setStyle({visibility:'visible'}); 
	}

	if ($('handle') && $('track') ) {
	
		document.slider = new Control.Slider('handle', 'track', {
			axis: 'vertical',
			onSlide: function(v) { scrollVertical(v, $('txt_frame'), document.slider);  },
			onChange: function(v) { scrollVertical(v, $('txt_frame'), document.slider); }
		});
	}
}

function scrollVertical(value, element, slider) {
	element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}



/* Mouse Wheel */

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
	}
});

SetupMouseWheel = {
	initialize: function() {
		Event.observe(document, 'dom:loaded', this.setup_mouse_wheel);
	},
	
	setup_mouse_wheel: function() {
		Event.observe($('txt_frame'), "mousewheel", function(e) { SetupMouseWheel.handleDiv(e) }, false);
		Event.observe($('txt_frame'), "DOMMouseScroll", function(e) { SetupMouseWheel.handleDiv(e) }, false); // Firefox
	},
	
	handleDiv: function(e) {
		direction = Event.wheel(e) < 0 ? leftSeek : rightSeek;
		//console.log(direction); //handle scroll 
		//console.log(Event.wheel(e));
		direction(); //call leftSeek or rightSeek depending on direction.
	}
};

function leftSeek() {
	if (document.slider) document.slider.setValueBy(0.1);
	//alert(document.slider);
}
function rightSeek() {
	if (document.slider) document.slider.setValueBy(-0.1);
	//alert('up');
}	

SetupMouseWheel.initialize();