var Rules = {
	'#bio-pictures img': function(element) {
		element.addClassName('out')
		element.onclick = function() {
			if (this.hasClassName('out')) {
				focus_bio(this)
			}
		}
		$(element.id + '-bio').hide();
	}, 
	'p.video-info, a.video-link': function(element) {
		$(element).hide();
	}, 
	'#video': function(element) {
		var so = new SWFObject('/player/player.swf','video-player','500','280','8');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');						
		so.addVariable('width','500');
		so.addVariable('height','280');
		so.addVariable('file','/player/demo.flv');
		so.addVariable('javascriptid','video-player');
		so.addVariable('enablejs','true');		
		so.addVariable('image','/images/demo.jpg');
		so.addVariable("usefullscreen","true");
		so.write('video');

	}, 
	'.work-video img': function(element) {
		element = $(element);
		element.style.cursor="pointer";
		element.onclick = function() {
			container = this.parentNode;
			
			newVideo = $(container).getElementsBySelector('a.video-link')[0];
			newVideo = newVideo.href + ".flv";
			
			thePlayer = $('video-player');
			
			thePlayer.sendEvent("PLAY", "false");

			newDescription = $(container).getElementsBySelector('p.video-info')[0];
			oldDescription = document.getElementById('main-description');
			oldDescription.innerHTML = newDescription.innerHTML;
			
			newTitle = $(container).getElementsBySelector('p.title')[0];
			oldTitle = document.getElementById('main-title');
			oldTitle.innerHTML = newTitle.innerHTML;

			thePlayer.sendEvent("LOAD",newVideo);
			thePlayer.sendEvent("PLAY", "true");
		}
		return false;
	}
}

function focus_bio(element) {
	//First get rid of other focus
	images = $('bio-pictures').getElementsByTagName('img');
	for (i=0; i < images.length; i++) {
		elt = images[i];
		if (elt.hasClassName('in')) {
			elt.removeClassName('in');
			elt.addClassName('out');
			elt.setAttribute('src', '/images/' + elt.id + 'thumb.gif');
		}
	}
	
	//Next update the bio to focus
	element.removeClassName('out');
	element.addClassName('in');
	element.setAttribute('src', '/images/' + element.id + 'over.gif');
	bio_text = $('bio-text');
	bio_text.innerHTML = $(element.id + '-bio').innerHTML;
}

function setupSlider() {
	slider = new Control.Slider('handle3', 'track3', {
		axis: 'vertical',
		onSlide: function(v) { scrollVertical(v, $('scroll-content'), slider);  },
		onChange: function(v) { scrollVertical(v, $('scroll-content'), slider); }
	});
	
	// disable vertical scrolling if text doesn't overflow the div
	//if ($('scroll-content').scrollHeight <= $('scroll-content').offsetHeight) {
	//	slider3.setDisabled();
	//	$('wrap3').hide();
	//}
	// mozilla
	Event.observe('scroll-content', 'DOMMouseScroll', wheel);
	
	// IE/Opera
	Event.observe('scroll-content', 'mousewheel', wheel);



}

// mouse wheel code from http://adomas.org/javascript-mouse-wheel/
function handle(delta) {
	slider.setValueBy(-delta);
}

/** Event handler for mouse wheel event. */
function wheel(event){
	var delta = 0;
	if (!event) /* For IE. */
		event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
		delta = event.wheelDelta/120;
		/** In Opera 9, delta differs in sign as compared to IE. */
		if (window.opera)
			delta = -delta;
	} else if (event.detail) { /** Mozilla case. */
		/** In Mozilla, sign of delta is different than in IE.
		* Also, delta is multiple of 3.
		*/
		delta = -event.detail/3;
	}

	/** If delta is nonzero, handle it.
	* Basically, delta is now positive if wheel was scrolled up,
	* and negative, if wheel was scrolled down.
	*/
	delta = delta/10;
	if (delta)
		handle(delta);

	/** Prevent default actions caused by mouse wheel.
	* That might be ugly, but we handle scrolls somehow
	* anyway, so don't bother here..
	*/
	if (event.preventDefault)
		event.preventDefault();
	
	event.returnValue = false;
}


// scroll the element vertically based on its width and the slider maximum value
function scrollVertical(value, element, slider) {
	element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}

