   	/***********************************************************************************************
	
	Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com
	
	UPDATE LOG:
	
	March, 10th, 2006 : Added support for a message while large image is loading
	
	Get this and other scripts at www.dhtmlgoodies.com
	
	You can use this script freely as long as this copyright message is kept intact.
	
	***********************************************************************************************/ 
   	/*
		Edit by tlh.ntuanphuc@gmail.com
		at November, 09/07
	*/
	var displayWaitMessage=true;	// Display a please wait message while images are loading?
  	
	var activeImage = false;
	var galleryContainerWidth = false;
	var galleryContainerWidthTop = false;
	var categoryContainerHeight = false;
	var imageGalleryWidth = false;
	var imageGalleryWidthTop = false;
	var imageGalleryObj = false;
	var maxGalleryXPos = false;
	var slideSpeed = 0;
	var slideSpeedL = 0;
	var slideSpeedT = 0;
	var imageGalleryCaptions = new Array();

	function findPos(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft;
			curtop = obj.offsetTop;
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
		}
		return [curtop,curleft];
	}
	
	//start slide for vertical	
	function startVSlide(e)
	{
		slideSpeed = 0;
		if(document.all)e = event;
		//calculate minGalleryXPos
		var slideshowImages = categoryGalleryObj.getElementsByTagName('DIV');		
		//image gallery height
		categoryGalleryHeight = 0;
		var tmp =0;
		for(var no=0;no<slideshowImages.length;no++){
			categoryGalleryHeight += slideshowImages[no].offsetHeight+8;
		}
		minGalleryYPos = -(categoryGalleryHeight - categoryContainerHeight);

		//create slide speed
		var objPos = findPos(this);
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		var objTop = objPos[0] - st;
		var percent = this.offsetHeight/10;
		//document.getElementById('lb').innerHTML = e.clientY+'x'+objTop;
		if(this.id=='imgUpArrow'){
			slideSpeedMultiply = 10 - Math.floor((e.clientY - objTop)/percent);
			slideSpeedL = -1*slideSpeedMultiply-1;
			slideSpeedL = Math.max(-10,slideSpeedL);
			slideSpeedL = -3;
		}else{
			slideSpeedMultiply = Math.floor((e.clientY - objTop)/percent);
			slideSpeedL = 1*slideSpeedMultiply;
			slideSpeedL = Math.min(10,slideSpeedL);
			if(slideSpeedL<0)slideSpeedL=10;
			slideSpeedL = 3;
		}
	}
	
	//start slide for horizontal 
	function startSlide(e)
	{
		slideSpeedL = 0;
		if(document.all)e = event;
		//calculate minGalleryXPos
		var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
		var leftPosOfRightArrow = findPos(document.getElementById('imgRightArrow'));
		//image gallery width
		imageGalleryWidth = 0;
		for(var no=0;no<slideshowImages.length;no++){
			imageGalleryWidth += slideshowImages[no].offsetWidth + 4;
		}
		//minGalleryXPos = -(imageGalleryWidth  + imageGalleryLeftPos - leftPosOfRightArrow[1]); SUPER VERSION
		
		minGalleryXPos = -(imageGalleryWidth - galleryContainerWidth);
		//alert(minGalleryXPos);
		if(minGalleryXPos>0) minGalleryXPos = 0;
		//create slide speed
		
		//var objPos = findPos(this);
		
		var objLeft = this.offsetLeft;//objPos[1];
		//document.getElementById('lb').innerHTML = ' Min: '+minGalleryXPos;
		
		var percent = 10*(this.offsetWidth)/10;
		//percent =1 ;
		//this.getElementsByTagName('IMG')[0].src = '../slideshow/images/' + this.id + '_over.gif';	
		if(this.id=='imgRightArrow'){
			slideSpeedMultiply = Math.floor((e.clientX - objLeft)/percent);
			slideSpeed = -1*slideSpeedMultiply-1;
			slideSpeed = Math.max(-10,slideSpeed);
			slideSpeed = -3;
		}else{
			slideSpeedMultiply = 10 - Math.floor((e.clientX - objLeft)/percent);			
			slideSpeed = 1*slideSpeedMultiply;
			slideSpeed = Math.min(10,slideSpeed);
			slideSpeed = 3;
			if(slideSpeed<0)slideSpeed=10;
		}
		//document.getElementById('hehe').innerHTML = slideSpeedMultiply+'='+e.clientX+' '+objLeft+' '+percent;
	}
	
	//top slide
	//start slide for horizontal 
	function startSlideTop(e)
	{
		slideSpeedT = 0;
		if(document.all)e = event;
		//calculate minGalleryXPos
		var slideshowImages = imageGalleryObjTop.getElementsByTagName('IMG');
		var leftPosOfRightArrow = findPos(document.getElementById('imgRightArrowTop'));
		//image gallery width
		imageGalleryWidthTop = 0;
		//alert(slideshowImages.length);
		for(var no=0;no<slideshowImages.length;no++){
			imageGalleryWidthTop += slideshowImages[no].offsetWidth+8;
		}
		//minGalleryXPos = -(imageGalleryWidth  + imageGalleryLeftPos - leftPosOfRightArrow[1]); SUPER VERSION
		//alert(imageGalleryWidthTop);
		minGalleryXPosTop = -(imageGalleryWidthTop - galleryContainerWidthTop);
		//alert(minGalleryXPos);
		if(minGalleryXPosTop>0) minGalleryXPosTop = 0;
		//create slide speed
		
		//var objPos = findPos(this);
		
		var objLeft = this.offsetLeft;//objPos[1];
		//document.getElementById('lb').innerHTML = ' Min: '+minGalleryXPos;
		
		var percent = 10*(this.offsetWidth)/10;
		//percent =1 ;
		//this.getElementsByTagName('IMG')[0].src = '../slideshow/images/' + this.id + '_over.gif';	
		if(this.id=='imgRightArrowTop'){
			slideSpeedMultiply = Math.floor((e.clientX - objLeft)/percent);
			slideSpeedT = -1*slideSpeedMultiply-1;
			slideSpeedT = Math.max(-10,slideSpeedT);
			slideSpeedT = -3;
		}else{
			slideSpeedMultiply = 10 - Math.floor((e.clientX - objLeft)/percent);			
			slideSpeedT = 1*slideSpeedMultiply;
			slideSpeedT = Math.min(10,slideSpeedT);
			slideSpeedT = 3;
			if(slideSpeedT<0)slideSpeedT=10;
		}
		//document.getElementById('hehe').innerHTML = slideSpeedMultiply+'='+e.clientX+' '+objLeft+' '+percent;
	}
	
	function releaseSlide()
	{
		//var id = this.id;
		//this.getElementsByTagName('IMG')[0].src = '../slideshow/images/' + this.id + '.gif';
		slideSpeed = 0;
		slideSpeedL = 0;
		slideSpeedT = 0;
	}
		
	function gallerySlide()
	{
		//slide top
		if(slideSpeedT!=0){
			var leftPos = imageGalleryObjTop.offsetLeft;			
			var now = new Date();
			var sec = now.getSeconds();
			//document.getElementById('hehe1').innerHTML = slideSpeed+' '+sec+' '+leftPos+' '+maxGalleryXPos+' '+minGalleryXPos;
			//slideSpeedT = 3;
			leftPos = leftPos/1 + slideSpeedT;			
			if(leftPos>maxGalleryXPosTop){
				leftPos = maxGalleryXPosTop;
				slideSpeedT = 0;
			}
			if(leftPos<minGalleryXPosTop){
				leftPos = minGalleryXPosTop;
				slideSpeedT = 0;
			}
			imageGalleryObjTop.style.left = leftPos + 'px';
		}
		//slideSpeed=3;
		if(slideSpeed!=0){
			var leftPos = imageGalleryObj.offsetLeft;			
			var now = new Date();
			var sec = now.getSeconds();
			//document.getElementById('hehe1').innerHTML = slideSpeed+' '+sec+' '+leftPos+' '+maxGalleryXPos+' '+minGalleryXPos;
			//slideSpeed = 3;
			leftPos = leftPos/1 + slideSpeed;			
			if(leftPos>maxGalleryXPos){
				leftPos = maxGalleryXPos;
				slideSpeed = 0;
			}
			if(leftPos<minGalleryXPos){
				leftPos = minGalleryXPos;
				slideSpeed=0;
			}
			imageGalleryObj.style.left = leftPos + 'px';
		}
		//left category
		if(slideSpeedL!=0){
			//slideSpeedL=1;
			var topPos = categoryGalleryObj.offsetTop;
			topPos = topPos/1 - slideSpeedL;			
			if(topPos>maxGalleryYPos){			
				topPos = maxGalleryYPos;
				slideSpeedL = 0;
			}
			if(topPos<minGalleryYPos){
				topPos = minGalleryYPos;
				slideSpeedL=0;
			}
			//document.getElementById('hehe').innerHTML = minGalleryYPos+' '+topPos;
			categoryGalleryObj.style.top = topPos + 'px';
		}
		setTimeout('gallerySlide()',20);
	}
	
	function showImage()
	{
		if(activeImage){		
			//activeImage.style.filter = 'alpha(opacity=50)';	
			//activeImage.style.opacity = 0.5;
			activeImage.className = 'imgUnActive';
		}
		//this.style.filter = 'alpha(opacity=100)';
		//this.style.opacity = 1;
		this.className = 'imgActive';
		activeImage = this;
		
	}
	
	function initSlideShow()
	{
		document.getElementById('imgLeftArrowTop').onmousemove = startSlideTop;
		document.getElementById('imgLeftArrowTop').onmouseout = releaseSlide;
		document.getElementById('imgRightArrowTop').onmousemove = startSlideTop;
		document.getElementById('imgRightArrowTop').onmouseout = releaseSlide;
		if(document.getElementById('imgLeftArrow')){
			document.getElementById('imgLeftArrow').onmousemove = startSlide;
			document.getElementById('imgLeftArrow').onmouseout = releaseSlide;
			document.getElementById('imgRightArrow').onmousemove = startSlide;
			document.getElementById('imgRightArrow').onmouseout = releaseSlide;
		}
		document.getElementById('imgUpArrow').onmousemove = startVSlide;
		document.getElementById('imgUpArrow').onmouseout = releaseSlide;
		document.getElementById('imgDownArrow').onmousemove = startVSlide;
		document.getElementById('imgDownArrow').onmouseout = releaseSlide;
		
		//get left position of image gallery
		imageGalleryObjTop = document.getElementById('theImagesTop');
		imageGalleryObj = document.getElementById('theImages');
		categoryGalleryObj = document.getElementById('theCategory');
		//var lp = findPos(imageGalleryObj);
		galleryContainerWidthTop = document.getElementById('galleryContainerTop').offsetWidth;
		//
		if(document.getElementById('galleryContainer')){
			galleryContainerWidth = document.getElementById('galleryContainer').offsetWidth;//lp[1];
		}
		galleryContainerWidthTop = 530;
		//document.getElementById('hehe2').innerHTML = galleryContainerWidth;
		categoryContainerHeight = document.getElementById('divCategoryContainer').offsetHeight;
		//imageGalleryLeftPos = imageGalleryObj.offsetLeft;
		//imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80;
		maxGalleryXPosTop = imageGalleryObjTop.offsetLeft; 
		if(imageGalleryObj){
			maxGalleryXPos = imageGalleryObj.offsetLeft; 
			maxGalleryYPos = categoryGalleryObj.offsetTop;
		}
		//document.getElementById('hehe').innerHTML = maxGalleryXPos;
		var slideshowImagesTop = imageGalleryObjTop.getElementsByTagName('IMG');
		for(var no=0;no<slideshowImagesTop.length;no++){
			slideshowImagesTop[no].onmouseover = showImage;
		}
		
		if(imageGalleryObj){
			var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
			for(var no=0;no<slideshowImages.length;no++){
				slideshowImages[no].onmouseover = showImage;
			}
			
			var divs = imageGalleryObj.getElementsByTagName('DIV');
			for(var no=0;no<divs.length;no++){
				if(divs[no].id=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
			}
		}
		gallerySlide();
	}
	
	function showPreview(imagePath,imageIndex){
		/*var subImages = document.getElementById('previewPane').getElementsByTagName('IMG');
		if(subImages.length==0){
			var img = document.createElement('IMG');
			document.getElementById('previewPane').appendChild(img);
		}else img = subImages[0];
		
		if(displayWaitMessage){
			document.getElementById('waitMessage').style.display='inline';
		}
		document.getElementById('largeImageCaption').style.display='none';
		img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };*/
		document.getElementById('imgPreview').src = imagePath;
		//img.src = imagePath;
		
	}
	function hideWaitMessageAndShowCaption(imageIndex)
	{
		document.getElementById('waitMessage').style.display='none';	
		document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
		document.getElementById('largeImageCaption').style.display='block';
		
	}
	//window.onload = initSlideShow;
