var timer, sliderTimer, initSliderTimer, maxLength, image = 5, maxSize = 5, currentSliderImage = 0, show = 1, moveInterval = 10, initSlide = 0, initialSlide = 1, finalSlide = 5, delayTimer, scrollImageFlag = 0, scrollImageCount = 0, slide, scrollType;
var imageGallery = new Array();

getFolderPictures(); //Preload the slide show images

//Input : num
//  -1 = move one slide backward
//  1 = move one slide forward
scrollImage = function(num) {
	scrollImageFlag = 0;
	clearInterval(timer);
	var left = getPos();
	if (num < 0) { 
		maxLength = Math.abs(maxLength) - 101;
		image--;		
	}
	else { 
		maxLength = Math.abs(maxLength) + 101;
		image++;
	}	
	enableOrDisableButtons();	
	timer = setInterval( function(){ moveImage(num);}, moveInterval);	
	return false;
}

getPos = function() {
	var left = '';
	if (document.getElementById('tnails')) left = document.getElementById('tnails').style.left;
	if (!left) return 0;
	return left.replace('px', '');
}

maxLength = getPos();

moveImage = function(num) {
	var left = getPos();
	var pos = (parseInt(left) * (parseInt(num)) - 3 );
	
	if ((num > 0) && (Math.abs(pos) > maxLength)) pos = maxLength;
	if ((num < 0) && (pos < maxLength)) pos = maxLength;
	if (((num > 0) && (image <= imageGallery.length)) || ((num < 0) && (image >= 0))) { 
		document.getElementById('tnails').style.left = '-'+(Math.abs(pos))+'px';
	}
	else { 
		clearInterval(timer); 
	}
	
	if (((num < 0) && (((Math.abs(left) <= 0) || (Math.abs(getPos()) == 0)))) || ((num > 0) && (Math.abs(left) >= maxLength))  || ((num < 0) && (Math.abs(left) <= Math.abs(getPos())))) { 
		clearInterval(timer);
		clearInterval(initSliderTimer);		
		if ((currentSliderImage == 0) && (initSlide == 1)) {
			clearInterval(timer);
			clearInterval(initSliderTimer);
			initSlide = 0;
			initSlideShow();
		}
		
		if (num < 0) { 
			initialSlide--;
			finalSlide--;
		} else {
			initialSlide++;
			finalSlide++;
		}
		enableOrDisableButtons();
		scrollImageCount--;
		if (scrollImageCount > 0)
			scrollImage(num);
		else {
			if (show == 2 ) resumeSlideShow();
		}
		//scrollImageFlag = 1;
	}
	
}

enableOrDisableButtons = function() {

//if (window.console) console.log( initialSlide + '=== ' + finalSlide  + '===' + imageGallery.length + '== ' + image);
	var prevImage = document.getElementById('prevImage');
	var nextImage = document.getElementById('nextImage');
	if (initialSlide <= 1) {
		prevImage.className = 'inactiveleftview';
		
		if (document.layers) 
			prevImage.setAttribute('onclick', ' '); // FF
		else 
			prevImage.onclick = function() { }; // IE
			
	/*} else if (image < imageGallery.length) {*/
	} else {
		prevImage.className = 'activeleftview';
		
		if (document.layers) 
			prevImage.setAttribute('onclick', ' stopSlideShow(0); return scrollImage(-1);'); // FF
		else 
			prevImage.onclick = function() { stopSlideShow(0); return scrollImage(-1); }; // IE
	}
	if (finalSlide >= imageGallery.length) {
		nextImage.className = 'inactiverightview';
		if (document.layers) 
			nextImage.setAttribute('onclick', ' '); // FF
		else 
			nextImage.onclick = function() { }; // IE
	} else {
		nextImage.className = 'activerightview';
		if (document.layers) 
			nextImage.setAttribute('onclick', ' stopSlideShow(0); return scrollImage(1);'); // FF
		else 
			nextImage.onclick = function() { stopSlideShow(0); return scrollImage(1); }; // IE
	}
		
}

//viewType => 0:thumbnail; 1:slideshow
viewImage = function(path, id,viewType) {
//	path = "show_tn_image.php?img=" + path+ "&w=541&h=381";
	//console.log(path);
	document.getElementById('currentImage').src = path;
	setImageBorder(id);
	if ((viewType == 0) && (show == 2) )
		stopSlideShow(0);
}

setImageBorder = function(id) {
	for (i=1;i<=imageGallery.length;i++) { //Reset image border class for all slide
		tn_image = 'tnimage'+i;
		image_id = document.getElementById(tn_image);
		if (id ==  image_id ) {
			if (document.layers) {
				image_id.setAttribute('onmouseout', ''); // FF
				image_id.setAttribute('onmouseover', ''); // FF
			}
			else {
				image_id.onmouseout = function() { }; // IE
				image_id.onmouseover = function() { }; // IE
			}
			id.className = 'imgbordergreen'; //set image border class for current slide
		}
		else {
			if (document.layers) {
				image_id.setAttribute('onmouseout', 'this.className = \'imgbg\';'); // FF
				image_id.setAttribute('onmouseover', 'this.className = \'imgborder\';'); // FF
			}
			else {
				image_id.onmouseout = function() { this.className = 'imgbg'; }; // IE
				image_id.onmouseover = function() {this.className = 'imgborder';  }; // IE
			}
			image_id.className = 'imgborderblack';
		}
		
	}
	
}

showSlides = function() {
	if (show == 1){
		playSlideShow();
	}
	else
		stopSlideShow(0);
}

playSlideShow = function() {
	clearInterval(sliderTimer);	
	show = 2;	
	var  arg, slide;
	
	if (currentSliderImage == 0) 
		slide = 1;
	else
		slide = currentSliderImage;
	//if (imageGallery.length > 5) {	//scorll only if gallery has more than 5 images
			if (currentSliderImage < initialSlide) {
				scrollImageCount = Math.abs(initialSlide - slide);
				arg = -1;  //scroll 'r' times backward to view current slide image
			}
			else if (currentSliderImage > finalSlide) {
				scrollImageCount = Math.abs(slide - finalSlide);
				arg = 1;  //scroll 'r' times forward  to view current slide image
			}
			else {
				scrollImageCount = 0;
				//current slider image is in thumbnail view
			}
			if (scrollImageCount > 0)
				scrollImage(arg);
			/*else {
				resumeSlideShow();
			}*/
	//}//End if of image gallery length
	document.getElementById('showSlides').innerHTML = 'Stop';
	document.getElementById('showSlides').alternateText = 'Stop slideshow';
	document.getElementById('showSlides').title = 'Stop slideshow';		
	resumeSlideShow();
}


//Input : resumeSlideShowFlag
// 0 : stop slide show
// 1 : resume slide show
stopSlideShow = function(resumeSlideShowFlag) {
	show = 1;
	document.getElementById('showSlides').innerHTML = 'Play';
	document.getElementById('showSlides').alternateText = 'Play slideshow';
	document.getElementById('showSlides').title = 'Play slideshow';
	clearInterval(sliderTimer);	
	if (resumeSlideShowFlag == 1) {
		if (imageGallery.length > 5)
			delayTimer = 7000;
		else
			delayTimer = 2000;
		if (currentSliderImage == imageGallery.length) {	
			delayTimer = setInterval('scrollToBegin()',delayTimer);
		}
	}
}

initSlideShow = function() {
	initSliderTimer = setInterval( function(){ 
		var posLeft = parseInt(getPos());
		if (Math.abs(posLeft) <= 0) {
			clearInterval(initSliderTimer);	
		} else {
			scrollImage(-1);
		}		
	}, 400);
}

scrollToBegin = function() {
	moveInterval = 2; 
	show = 1;
	scrollImageCount = imageGallery.length - maxSize;
	currentSliderImage = 0;	
	playSlideShow();
	clearTimeout(delayTimer);
}


resumeSlideShow = function() {
	if ( (initialSlide  == currentSliderImage) || (initialSlide == slide) || (scrollImageCount == 0) )  {
		sliderTimer = setInterval( function(){ 			
			viewImage(imageGallery[currentSliderImage++],document.getElementById('tnimage'+currentSliderImage),1);
			if (currentSliderImage > maxSize ) {
				scrollImage(1);
			}
			if (currentSliderImage > imageGallery.length - 1) {	
				stopSlideShow(1); //stop and then resume slide show
			}
			
		}, 4000); 
	}
}

/*
handleImageLink = function(linkFlag) {
	for (i=1;i<=imageGallery.length;i++) { 
		tn_image = 'tnimage'+i;
		image_obj = document.getElementById(tn_image);
		if (linkFlag == 1) {
			if (document.layers) 
				image_obj.setAttribute('onclick', 'viewImage(image_obj.src,image_obj);'); // FF
			else 
				image_obj.onclick = function() { viewImage(image_obj.src,image_obj);}; // IE
		}
		else {
			if (document.layers) 
				image_obj.setAttribute('onclick', ''); // FF
			else 
				image_obj.onclick = function() {}; // IE
		}
		
	}
}*/