/***********************************************
* 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=10; //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.
var endofgallerymsg=""; //3) message to show at end of gallery. Enter "" to disable message.


var iedom=document.all||document.getElementById;
var scrollspeed=0;
var movestate="";

var actualHeight = new Array(6);
var cross_scrollVertical = new Array(6);
var ns_scroll;
var loadedyesVertical = new Array(6);
var crossmainVertical = new Array(6);

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function creatediv(){
	statusdiv=document.createElement("div");
	statusdiv.setAttribute("id","statusdiv");
	document.body.appendChild(statusdiv);
	statusdiv=document.getElementById("statusdiv");
	statusdiv.innerHTML=endofgallerymsg;
}

function positiondiv(sliderNum){
	menuHeight=parseInt(crossmainVertical[sliderNum].offsetHeight);
	mainobjoffsetH=getposOffset(crossmainVertical[sliderNum], "top");
	statusdiv.style.left=mainobjoffset+(menuwidth/2)-(statusdiv.offsetWidth/2)+"px";
	statusdiv.style.top=menuHeight+mainobjoffsetH+"px";
}

function showhidediv(isVisible)
{
	if (endofgallerymsg!="")
		statusdiv.style.visibility=isVisible;
}

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 movetop(sliderNum){
//alert("moveTop 1");
		if (loadedyesVertical[sliderNum]){
//alert("moveTop 2 top"+ cross_scrollVertical[sliderNum].style.top + " mheigh "+menuHeight+"acthei "+actualHeight[sliderNum]);
		scrollspeed= maxspeed;
		movestate="left";
		if (iedom&&parseInt(cross_scrollVertical[sliderNum].style.top)>(menuHeight-actualHeight[sliderNum])){
             //       alert("moveTop 3");

			cross_scrollVertical[sliderNum].style.top=parseInt(cross_scrollVertical[sliderNum].style.top)-scrollspeed+"px";
			showhidediv("hidden");
		}
		else
			showhidediv("visible");
	}
	toptime=setTimeout("movetop("+sliderNum+")",10);
}

function movebottom(sliderNum){
 //   alert("moveBottlm 1");
	if (loadedyesVertical[sliderNum]){
  //          alert("moveBottlm 2");
	
		scrollspeed= maxspeed;
		movestate="right";
		if (iedom&&parseInt(cross_scrollVertical[sliderNum].style.top)<0){
 //                   alert("moveBottlm 3");
	
			cross_scrollVertical[sliderNum].style.top=parseInt(cross_scrollVertical[sliderNum].style.top)+scrollspeed+"px";
			showhidediv("hidden");
		}
		else
			showhidediv("visible");
	}
	bottomtime=setTimeout("movebottom("+sliderNum+")",10);
}

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-dsocy;
	var leftbound=(menuHeight-restarea)/2;
	var rightbound=(menuHeight+restarea)/2;
	
	if (curposy>rightbound){
		scrollspeed=(curposy-rightbound)/((menuHeight-restarea)/2) * maxspeed;
		if (window.bottomtime) 
			clearTimeout(bottomtime);
	}
	else if (curposy<leftbound){
		scrollspeed=(leftbound-curposy)/((menuHeight-restarea)/2) * maxspeed;
		if (window.toptime) 
			clearTimeout(toptime);
	}
	else
		scrollspeed=0;
}

function contains_ns6(a, b) {
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	return false;
}

function stopmotionVertical()
{
	if (window.toptime) 
		clearTimeout(toptime);
	if (window.bottomtime) 
		clearTimeout(bottomtime);
	movestate="";
}

function fillupVertical(sliderNum,startValue)
{
	if (iedom)
	{
		crossmainVertical[sliderNum] = (document.getElementById)? document.getElementById("outerGalleryContainerV"+sliderNum) : document.all.outerGalleryContainerV;
		if (crossmainVertical[sliderNum])
		{
                        menuHeight = parseInt(crossmainVertical[sliderNum].style.height);
			mainobjoffset=getposOffset(crossmainVertical[sliderNum], "top");
			cross_scrollVertical[sliderNum]=document.getElementById? document.getElementById("motionGalleryV"+sliderNum) : document.all.motionGalleryV;
			actualHeight[sliderNum]=document.all? cross_scrollVertical[sliderNum].offsetHeight : document.getElementById("motionGalleryV"+sliderNum).offsetHeight;
			
			crossmainVertical[sliderNum].onmousemove=function(e){
				motionengine(e);
			}
	
			crossmainVertical[sliderNum].onmouseout=function(e){
				stopmotionVertical(e);
				showhidediv("hidden");
			}
		}
	}
	loadedyesVertical[sliderNum]=1;
	if (endofgallerymsg!=""){
		creatediv();
		positiondiv(sliderNum);
	}

	if (parseInt(startValue))
		cross_scrollVertical[sliderNum].style.top=startValue;
}

window.onload=function(){
	fillupVertical(0);
	fillupVertical(1);
	fillupVertical(2);
	fillupVertical(3);
	fillupVertical(4);
	fillupVertical(5);
};
