var opacitySpeed = 10;	// Speed of opacity - switching between large images - Lower = faster
var opacitySteps = 3; 	// Also speed of opacity - Higher = faster
var slideSpeed = 12;	// Speed of thumbnail slide - Lower = faster
var slideSteps = 2;	// Also speed of thumbnail slide - Higher = faster
var columnsOfThumbnails = false;	// Hardcoded number of thumbnail columns, use false if you want the script to figure it out dynamically.

/* Don't change anything below here */
var HTML_largeImage = false;
var HTML_imageToShow = false;
var HTML_currentOpacity = 100;
var HTML_slideWidth = false;
var HTML_thumbTotalWidth = false;
var HTML_viewableWidth = false;

var currentUnqiueOpacityId = false;
var HTML_currentActiveImage = false;
var HTML_thumbDiv = false;
var HTML_thumbSlideInProgress = false;

var browserIsOpera = navigator.userAgent.indexOf('Opera')>=0?true:false;
var leftArrowObj;
var rightArrowObj;
var thumbsColIndex = 0;
var thumbsLeftPos = false;
var imageGalleryCaptions = new Array();
var enabledClick = true;
var stopButton = document.getElementById('stop_button');
var currentSlide = 0;

var slides = new Array();
var num = new Array();
var real_width = new Array();
var real_height = new Array();

var slideShowTimer;
var largeImagePopup;
var realW;
var realH;
var topLPicture;
var leftLPicture;
var altTitleLar;
var altTitle = new Array();

function initGalleryScript()
{    
	leftArrowObj = document.getElementById('DHTMLgoodies_leftArrow');
	rightArrowObj = document.getElementById('DHTMLgoodies_rightArrow');
	leftArrowObj.onclick = '';
	rightArrowObj.onclick = '';
	currentSlide = 0;
	thumbsColIndex = 0;
	HTML_largeImage = document.getElementById('DHTMLgoodies_largeImage').getElementsByTagName('IMG')[0];
	var innerDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
	HTML_slideWidth = innerDiv.getElementsByTagName('DIV')[0].offsetWidth;
	HTML_thumbDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
	totalWidthOfDiv = HTML_thumbDiv.offsetWidth;
	HTML_thumbDiv.style.left = '1px';
	
	var subDivs = HTML_thumbDiv.getElementsByTagName('DIV');
	HTML_thumbTotalWidth = 0;
	var tmpLeft = 0;
	var i=0;
	for(var no=0;no<subDivs.length;no++){
		if(subDivs[no].className=='strip_of_thumbnails'){
		    i++;
			HTML_thumbTotalWidth = HTML_thumbTotalWidth + HTML_slideWidth;
			subDivs[no].style.left = tmpLeft + 'px';
			subDivs[no].style.top = '0px';
			tmpLeft = tmpLeft + subDivs[no].offsetWidth;
		}
	}    
	HTML_viewableWidth = document.getElementById('DHTMLgoodies_thumbs').offsetWidth;
	
	
	HTML_currentActiveImage = HTML_thumbDiv.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0];
	HTML_currentActiveImage.className='activeImage';
	
	for(var no=0;no<subDivs.length;no++){
		if(subDivs[no].className=='imageCaption'){
		    imageGalleryCaptions[imageGalleryCaptions.length] = subDivs[no].innerHTML;
		}
	}
	
	thumbsLeftPos = false;
}

function moveThumbnails()
{
	if(HTML_thumbSlideInProgress)return;
	HTML_thumbSlideInProgress = true;
	if(this.id=='DHTMLgoodies_leftArrow'){
	    rightArrowObj.onclick = moveThumbnails;
		thumbsColIndex--;
		if(HTML_thumbDiv.style.left.replace('px','')/1>=0){
			HTML_thumbSlideInProgress = false;
			leftArrowObj.onclick = '';
			return;
		}
		
		slideThumbs(slideSteps,0);
		
	}else{
	    leftArrowObj.onclick = moveThumbnails;
		thumbsColIndex++;
		var left = HTML_thumbDiv.style.left.replace('px','')/1;	
		var showArrow = true;		
	    var countImage= num.length;
	    
	    if(thumbsColIndex==countImage){
	        showArrow = false;	        
	    }	   
		if(!showArrow) {		   
			HTML_thumbSlideInProgress = false;
			rightArrowObj.onclick = '';
			return;		    
		}else {
		  slideThumbs((slideSteps*-1),0);
		}
	}
}

function slideThumbs(speed,currentPos)
{
	var leftPos;
	if(thumbsLeftPos){
		leftPos= thumbsLeftPos;
	}else{
		var leftPos = HTML_thumbDiv.style.left.replace('px','')/1;
		thumbsLeftPos = leftPos;
	}
	currentPos = currentPos + Math.abs(speed);		
	var tmpLeftPos = leftPos;
	leftPos = leftPos + speed;
	
	thumbsLeftPos = leftPos;
	HTML_thumbDiv.style.left = leftPos + 'px';
	
	var leng = 90;
	if(currentPos<leng) {
	    setTimeout('slideThumbs(' + speed + ',' + currentPos + ')',slideSpeed);
	}
	else {					
		HTML_thumbSlideInProgress = false;
	}

}

function showPreview(imagePath,inputObj,widthOfImage,heightOfImage,num)
{		
    currentSlide = num;
    thumbsColIndex = num;
	if(HTML_currentActiveImage){
		if(HTML_currentActiveImage==inputObj.getElementsByTagName('IMG')[0])return;
		HTML_currentActiveImage.className='';
	}
	HTML_currentActiveImage = inputObj.getElementsByTagName('IMG')[0];
	HTML_currentActiveImage.className='activeImage';
	
	document.getElementById('largeImageCaption').style.display='none';
	HTML_imageToShow = imagePath;
	var tmpImage = new Image();	
	tmpImage.onload = function() { hideWaitMessageAndShowCaption(num); };
	tmpImage.src = imagePath;		
	currentUnqiueOpacityId = Math.random();	
	realW = real_width[num];
	realH = real_height[num];
	altTitleLar = altTitle[num];
	moveOpacity(opacitySteps*-1,currentUnqiueOpacityId,widthOfImage,heightOfImage);	
		
}
function hideWaitMessageAndShowCaption(imageIndex)
{
	document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
	document.getElementById('largeImageCaption').style.display='';    	
}
function setOpacity(heightOfImage)
{
    HTML_largeImage.style.height = heightOfImage;
	if(document.all)
	{
		HTML_largeImage.style.filter = 'alpha(opacity=' + HTML_currentOpacity + ')';
	}else{
		HTML_largeImage.style.opacity = HTML_currentOpacity/100;
	}		
}
function moveOpacity(speed,uniqueId,widthOfImage,heightOfImage)
{
	
	if(browserIsOpera){
		HTML_largeImage.src = HTML_imageToShow;
		HTML_largeImage.width = widthOfImage;
		HTML_largeImage.height = heightOfImage;
		if(document.getElementById('stop_button').style.display=='block' || document.getElementById('stop_button').style.display=='') {
		   HTML_largeImage.style.cursor = 'pointer';
		   HTML_largeImage.onclick = stopOnClickImage;  
		}
		return;
	}
	
	HTML_currentOpacity = HTML_currentOpacity + speed;
	if(HTML_currentOpacity<=5 && speed<0){
		var tmpParent = HTML_largeImage.parentNode; 
		HTML_largeImage.parentNode.removeChild(HTML_largeImage);
		HTML_largeImage = document.createElement('IMG');						
		HTML_largeImage.src = HTML_imageToShow;
		HTML_largeImage.width = widthOfImage;
		HTML_largeImage.height = heightOfImage;
		if(altTitle != ''){
    		HTML_largeImage.alt = altTitleLar;
    		HTML_largeImage.title = altTitleLar;
		}
		if(document.getElementById('stop_button').style.display=='block' || document.getElementById('stop_button').style.display=='') {	
		  HTML_largeImage.style.cursor = 'pointer';	  
		  HTML_largeImage.onclick = stopOnClickImage;		  
		}
		/**/
		setOpacity(heightOfImage);
		tmpParent.appendChild(HTML_largeImage);
		if(document.getElementById('start_button').style.display=='block' || document.getElementById('start_button').style.display=='') {
		    HTML_largeImage.style.cursor = 'pointer';	
    		HTML_largeImage.onclick = viewImageInNewWindow; 
    	}	
	
		speed=opacitySteps;
	}
	if(HTML_currentOpacity>=99 && speed>0)HTML_currentOpacity=99;		
	setOpacity(heightOfImage);	
	if(HTML_currentOpacity>=99 && speed>0)return;		
	if(uniqueId==currentUnqiueOpacityId)setTimeout('moveOpacity(' + speed + ',' + uniqueId + ',' + widthOfImage +',' + heightOfImage + ')',opacitySpeed);		
}

function stopSlideShow()
{
    clearInterval(slideShowTimer);
}

function resumeSlideShow()
{
    var i;
    var k;
    if(thumbsColIndex>currentSlide) {
        k=thumbsColIndex-currentSlide;       
        for(i=0;i<k;i++) {
            thumbsColIndex--;		
    		//alert(thumbsColIndex+'aaa'+currentSlide);
    		if(HTML_thumbDiv.style.left.replace('px','')/1>=0) {
    			HTML_thumbSlideInProgress = false;
    			return;
    		}
    		
    		slideThumbs(slideSteps,0);
        }
        thumbsColIndex=currentSlide;
    } else {
         if(thumbsColIndex<currentSlide) {
            k=currentSlide-thumbsColIndex;
            for(i=0;i<k;i++){
                thumbsColIndex++;
        		var left = HTML_thumbDiv.style.left.replace('px','')/1;	
        		var showArrow = true;		
        	    var countImage= num.length;
        	    
        	    if(thumbsColIndex==countImage){
        	        showArrow = false;
        	    }	   
        		if(!showArrow) {
        			HTML_thumbSlideInProgress = false;
        			return; 
        		}	
        		
        		slideThumbs((slideSteps*-1),0);
             }
             thumbsColIndex=currentSlide;
         }
    }    
    if(document.getElementById('stop_button').style.display=='block' || document.getElementById('stop_button').style.display=='') {
        setTimeout('nextSlide()',1000);
        slideShowTimer = setInterval("nextSlide()", 6000);
    }
}

function nextSlide()
{
    //alert(currentSlide+'strip'+thumbsColIndex+'len'+slides.length);
    if (currentSlide == slides.length-1) {     
       stopSlideShow();
       showPreview(slides[0].src,document.getElementById('aTag'+0),slides[0].width,slides[0].height,0);
       initGalleryScript();  
       currentSlide= 0;
       thumbsColIndex = 0;     
       setTimeout('resumeSlideShow()',6000);
       return;
    } 
    updateSlide();
   
}
function openSlide(num)
{
     showPreview(slides[num].src,document.getElementById('aTag'+num),slides[num].width,slides[num].height,num);     
}
function updateSlide()
{    
    if(HTML_thumbSlideInProgress)return;
    var countImage= num.length;
    currentSlide++;
    thumbsColIndex++;
    showPreview(slides[currentSlide].src,document.getElementById('aTag'+currentSlide),slides[currentSlide].width,slides[currentSlide].height,num[currentSlide]);
	var showArrow = true;		
    
    if(thumbsColIndex==countImage){
        showArrow = false;	        
    }	   
	if(!showArrow) {		   
		HTML_thumbSlideInProgress = false;
		return;		    
	}		
	slideThumbs((slideSteps*-1),0);
}
function stopOnClickImage()
{
    stopSlideShow();
    enableArrows();
    document.getElementById('stop_button').style.display='none';
    document.getElementById('start_button').style.display='';
    HTML_largeImage.style.cursor = 'pointer';	
    HTML_largeImage.onclick = viewImageInNewWindow; 
}
function stopOnClickThumb(i)
{
    stopSlideShow();
    enableArrows();
    openSlide(i);
    document.getElementById('stop_button').style.display='none';
    document.getElementById('start_button').style.display='';
    return false;
}
function viewImageInNewWindow()
{
    
    var rW = realW-(-17);
    var rH = realH-(-45);
    //from details page
    if(parent.document.getElementById('main_photo_content_div')) {
        var top = getPositionOfIframe(parent.document.getElementById('main_photo_content_div')).top;
        var left = getPositionOfIframe(parent.document.getElementById('main_photo_content_div')).left;
    }
    //from primecommunity page
    if(parent.document.getElementById('communitySlideShow_iFrameDiv')){
         var top = getPositionOfIframe(parent.document.getElementById('communitySlideShow_iFrameDiv')).top;
         var left = getPositionOfIframe(parent.document.getElementById('communitySlideShow_iFrameDiv')).left;
    }
  parent.openPopupWindow("viewImageBig","<img src='"+HTML_largeImage.src+"' width='"+realW+"' height='"+realH+"' alt='" + altTitleLar + "' title='" + altTitleLar + "'/>",'',top+'px',left+'px',rW+'px');
}
function disableArrows()
{
    leftArrowObj.onclick = '';
	rightArrowObj.onclick = '';
	HTML_largeImage.onclick = stopOnClickImage; 
}
function enableArrows()
{	
	leftArrowObj.onclick = moveThumbnails;
	rightArrowObj.onclick = moveThumbnails;
	HTML_largeImage.style.cursor = 'pointer';	
    HTML_largeImage.onclick = viewImageInNewWindow; 
}
function getPositionOfIframe(obj){
    var curleft = curtop = 0;
    var position = new Array();
    if (obj.offsetParent) {
        do {
    		curleft += obj.offsetLeft;
    		curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
        position['left'] = curleft;        
        position['top'] = curtop;        
        return position;
    }
}
