/***********************************************
* CMotion Image Gallery- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for source code
* Last updated Mar 15th, 04'. Added "End of Gallery" message.
* This copyright notice must stay intact for legal use
***********************************************/


var restarea=0 //1) width of the "neutral" area in the center of the gallery in px
var maxspeed=2 //2) top scroll speed in pixels. Script auto creates a range from 0 to top speed.

function enlargeimage(path, optWidth, optHeight){ //function to enlarge image. Change as desired.
var actualWidth=typeof optWidth!="undefined" ? optWidth : "600px" //set 600px to default width
var actualHeight=typeof optHeight!="undefined" ? optHeight : "500px" //set 500px to  default height
var winattributes="width="+actualWidth+",height="+actualHeight+",resizable=yes"
window.open(path,"", winattributes)
}

////NO NEED TO EDIT BELOW THIS LINE////////////

var iedom=document.all||document.getElementById
var scrollspeed=0
var movestate=""
var stopping = false;

var actualwidth=''
var cross_scroll, ns_scroll
var loadedyes=0

var timer_id = 0

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function getposOffset(what, offsettype){

var totaloffset=(offsettype=="left")? what.offsetLeft: what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}


var internal_offset = 0.0;

function move(tick) {
	if (!loadedyes) 
		return;
	if (stopping) {
		scrollspeed *= 0.95;
		if (scrollspeed < 0.1) {
			stopping = false;
			movestate = "";
			timer_id = 0;
			return;
		}
	}
	if (movestate == 'left')
		moveleft();
	else if (movestate == 'right')
		moveright();
	if (tick || !timer_id) {
		timer_id = setTimeout("move(true)", 10);
	}
}

function moveleft(){
	if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth)){
		var dist_to_end = parseInt(cross_scroll.style.left)-(menuwidth-actualwidth);
		var max_scroll = dist_to_end > 25 ? maxspeed : dist_to_end / 25.0 * maxspeed;
		var scroll = scrollspeed > max_scroll ? max_scroll : scrollspeed;
		internal_offset -= scroll;
		var int_part = Math.round(internal_offset)
		if (int_part < 0) {
			internal_offset -= int_part;
			cross_scroll.style.left=parseInt(cross_scroll.style.left)+int_part+"px"
		}
	}
}

function moveright(){
	if (iedom&&parseInt(cross_scroll.style.left)<0){
		var dist_to_end = -parseInt(cross_scroll.style.left);
		var max_scroll = dist_to_end > 25 ? maxspeed : dist_to_end / 25.0 * maxspeed;
		var scroll = scrollspeed > max_scroll ? max_scroll : scrollspeed;
		internal_offset += scroll;
		var int_part = Math.round(internal_offset)
		if (int_part > 0) {
			internal_offset -= int_part;
			cross_scroll.style.left=parseInt(cross_scroll.style.left)+int_part+"px"
		}
	}
}

function motionengine_internal(pos, rightbound, leftbound) {
	if (pos>rightbound){
		scrollspeed=(pos-rightbound)/((menuwidth-restarea)/2);
		scrollspeed *= scrollspeed * maxspeed
		if (scrollspeed < 0.1) scrollspeed = 0
		if (movestate!="left") {
			movestate="left"
			move(false)
		}
	}
	else if (pos<leftbound){
		scrollspeed=(leftbound-pos)/((menuwidth-restarea)/2);
		scrollspeed *= scrollspeed * maxspeed
		if (scrollspeed < 0.1) scrollspeed = 0
		if (movestate!="right") {
			movestate = 'right';
			move(false)
		}
	}
	else
		scrollspeed=0
}


var velocity = 0;
var motion_dest = 0;
var engine2_id;

function start_engine2()
{
	if (engine2_id) {
		return;
	}
	engine2_id = setTimeout("engine2()", 10);
}

function engine2()
{
	cur_pos = parseInt(cross_scroll.style.left);
	dist = engine2_dist();
	//document.getElementById('debug_div').innerHTML = dist + 'px';
	cur_pos += dist*0.1;
	cross_scroll.style.left = cur_pos + 'px';
	if (Math.abs(engine2_dist()) > 1) {
		engine2_id = setTimeout("engine2()", 10);
	}
	else {
		engine2_id = 0;
	}
}

function engine2_dist()
{
	return motion_dest - parseInt(cross_scroll.style.left);
}

function motionengine_set_destination(pos)
{
	if(!iedom) {
		return;
	}
	motion_dest = pos * (menuwidth - actualwidth - 10);
	if (Math.abs(engine2_dist()) > 1) {
		start_engine2();
	}
}

function motionengine(e){
	var dsocx=(window.pageXOffset)? pageXOffset: ietruebody().scrollLeft;
	var dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop;
	var curposy=window.event? event.clientX : e.clientX? e.clientX: ""
	curposy-=mainobjoffset-dsocx
	var leftbound=(menuwidth-restarea)/2
	var rightbound=(menuwidth+restarea)/2
	motionengine_internal(curposy, rightbound, leftbound);
	get_or_set_left(slider_name, curposy);
}

function contains_ns6(a, b) {
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	return false;
}

function stopmotion(e){
	if ((window.event&&!crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))){

		stopping = true;
		get_or_set_left(slider_name, neutral_pos);
	}
}

function fillup(){
//	if (iedom){
		crossmain=document.getElementById? document.getElementById("motioncontainer") : document.all.motioncontainer
		slider_elt=document.getElementById? document.getElementById("slider") : document.all.slider
		menuwidth=parseInt(crossmain.style.width)
		mainobjoffset=getposOffset(crossmain, "left")
		cross_scroll=document.getElementById? document.getElementById("motiongallery") : document.all.motiongallery
		actualwidth=document.all? cross_scroll.offsetWidth : document.getElementById("trueContainer").offsetWidth
		cross_scroll.style.left = Math.round((menuwidth - actualwidth)*0.5)+"px";
		cross_scroll.style.visibility = 'visible';
		slider_init();

//	}
	loadedyes=1
}


var mouseoverslider = false;
var max_pos = 407 - 15;
var neutral_pos = max_pos * 0.5;
var slider_name = 'slider';

function slider_init()
{
	slider_elt.onmousedown=slide_begin;
	get_or_set_left(slider_name, neutral_pos);
}

function slide_begin(e)
{
	if (!e)
		e = window.event;
	//slider = (e.target) ? e.target : e.srcElement;
	slider_elt.XOffset = get_or_set_left(slider_name) - e.screenX;
	mouseoverslider = true;
	document.onmousemove = slider_move;
	document.onmouseup = slider_mouse_up;
	return false;
}

function slider_mouse_up(e)
{
	if (mouseoverslider) {
		if (document.removeEventListener) {
			document.removeEventListener('mousemove', slider_move, false);
			document.removeEventListener('mouseup', slider_mouse_up, false);
		}
		else if (document.detachEvent) {
			document.detachEvent('onmousemove', slider_move);
			document.detachEvent('onmouseup', slider_mouse_up);
		}
	}
	//get_or_set_left(slider_name, neutral_pos);
	stopping = true;
	mouseoverslider = false;
}

function get_or_set_left(id, pos)
{
	element = document.getElementById(id)
	if (!element)
		return 0;
	var setting_value = (typeof(pos) == 'number');
	if (element.style && typeof(element.style.left) == 'string') {
		if (setting_value) {
			element.style.left = pos + 'px';
		}
		else {
			pos = parseInt(element.style.left);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (element.style && element.style.pixelLeft) {
		if (setting_value) {
			element.style.pixelLeft = pos;
		}
		else {
			pos = element.style.pixelLeft;
		}
	}
	return pos;
}

function slider_move(e)
{
	if (!e)
		e = window.event;
	if (mouseoverslider) {
		x = slider_elt.XOffset + e.screenX;
		if (x < 0) x = 0;
		if (x > max_pos) x = max_pos;
		get_or_set_left(slider_name, x)
		//motionengine_internal(x, 200, 300);
		motionengine_set_destination(x / max_pos);
		return false;
	}
	return
}


