/***********************************************

* CMotion Image Gallery- ?Dynamic Drive DHTML code library (www.dynamicdrive.com)

* Visit http://www.dynamicDrive.com for source code

* This copyright notice must stay intact for legal use

* Modified for autowidth and optional starting positions in

* http://www.dynamicdrive.com/forums/showthread.php?t=11839 by jschuer1 8/5/06

***********************************************/



 //1) Set width of the "neutral" area in the center of the gallery.

var restarea=200;

 //2) Set top scroll speed in pixels. Script auto creates a range from 0 to top speed.

var maxspeed=5;

 //3) Set to maximum width for gallery - must be less than the actual length of the image train.

var maxwidth=610;

 //4) Set to 1 for left start, 0 for right, 2 for center.

var startpos=0;

 //5) Set message to show at end of gallery. Enter "" to disable message.

var imagesize=610;

var movingtime=10;
var pausetime=800;



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, scrollspeed=0, movestate='', actualwidth='', cross_scroll, ns_scroll, statusdiv, loadedyes=0, lefttime, righttime, leftrightend='', rollingmotiontime;



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;

}





function moveleft()
{
	if (loadedyes)
	{
		movestate="left";
		if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth))
		{
			cross_scroll.style.left=parseInt(cross_scroll.style.left)-scrollspeed+"px";
		}
		else
		{
		}
	}
	lefttime=setTimeout("moveleft()",movingtime);
}



function moveright()
{
	if (loadedyes)
	{
		movestate="right";
		if (iedom&&parseInt(cross_scroll.style.left)<0)
		{
			cross_scroll.style.left=parseInt(cross_scroll.style.left)+scrollspeed+"px";
		}
		else
		{
		}
	}
	righttime=setTimeout("moveright()",movingtime);
}



function motionengine(e)
{
	var mainobjoffset=getposOffset(crossmain, "left"),
		dsocx=(window.pageXOffset)? pageXOffset: ietruebody().scrollLeft,
		dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop,
		curposy=window.event? event.clientX : e.clientX? e.clientX: "";
		curposy-=mainobjoffset-dsocx;
	var leftbound=(menuwidth-restarea)/2;
	var rightbound=(menuwidth+restarea)/2;
	if (curposy>rightbound)
	{
		//scrollspeed=(curposy-rightbound)/((menuwidth-restarea)/2) * maxspeed;
		scrollspeed=1;
		clearTimeout(righttime);
		if (movestate!="left") 
		{
			moveleft();
		}
	}
	else if (curposy<leftbound)
	{
		//scrollspeed=(leftbound-curposy)/((menuwidth-restarea)/2) * maxspeed;
		scrollspeed=1;
		clearTimeout(lefttime);
		if (movestate!="right") 
		{
			moveright();
		}
	}
	else
	{
		scrollspeed=0;
	}
}

function rollingmotionengine()
{
	var nexttime=movingtime;
	scrollspeed=1;
	if (loadedyes)
	{
		if (leftrightend=='left')
		{
			movestate="right";
			if (iedom&&parseInt(cross_scroll.style.left)<0)
			{
				cross_scroll.style.left=parseInt(cross_scroll.style.left)+scrollspeed+"px";
				if ((parseInt(cross_scroll.style.left)%imagesize)==0)
					nexttime=pausetime;
				else
					nexttime=movingtime;
				
			}
			else
			{
				leftrightend='right';
				nexttime=pausetime;
			}
		}
		else
		{
			movestate="left";
			if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth))
			{
				cross_scroll.style.left=parseInt(cross_scroll.style.left)-scrollspeed+"px";
				if ((parseInt(cross_scroll.style.left)%imagesize)==0)
					nexttime=pausetime;
				else
					nexttime=movingtime;
			}
			else
			{
				leftrightend='left';
				nexttime=pausetime;
			}
		}
	}
	
	rollingmotiontime=setTimeout("rollingmotionengine()",nexttime);
}


function contains_ns6(a, b) {

if (b!==null)

while (b.parentNode)

if ((b = b.parentNode) == a)

return true;

return false;

}


function stoprollingmotion()
{
	clearTimeout(rollingmotiontime);
}



function stopmotion(e){

if (!window.opera||(window.opera&&e.relatedTarget!==null))

if ((window.event&&!crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))){

clearTimeout(lefttime);
clearTimeout(righttime);
if (movestate=="left")
	leftrightend="right";
else
	leftrightend="left";
movestate="";

}

}



function fillup()
{
	if (iedom)
	{
		crossmain=document.getElementById? document.getElementById("motioncontainer") : document.all.motioncontainer;
		if(typeof crossmain.style.maxWidth!=='undefined')
		{
			crossmain.style.maxWidth=maxwidth+'px';
		}
		menuwidth=crossmain.offsetWidth;
		cross_scroll=document.getElementById? document.getElementById("motiongallery") : document.all.motiongallery;
		actualwidth=document.getElementById? document.getElementById("trueContainer").offsetWidth : document.all['trueContainer'].offsetWidth;
		if (startpos)
		{
			cross_scroll.style.left=(menuwidth-actualwidth)/startpos+'px';
		}
		
		crossmain.onmouseover=function(e)
		{
			stoprollingmotion();
		}
		
		crossmain.onmousemove=function(e)
		{
			motionengine(e);
		}
		
		crossmain.onmouseout=function(e)
		{
			stopmotion(e);
			rollingmotionengine();
		}
	}
	loadedyes=1
	if (document.body.filters)
	{
		onresize()
	}
	rollingmotionengine();
}

window.onload=fillup;



onresize=function(){

if (typeof motioncontainer!=='undefined'&&motioncontainer.filters){

motioncontainer.style.width="0";

motioncontainer.style.width="";

motioncontainer.style.width=Math.min(motioncontainer.offsetWidth, maxwidth)+'px';

}

menuwidth=crossmain.offsetWidth;

cross_scroll.style.left=startpos? (menuwidth-actualwidth)/startpos+'px' : 0;

}