﻿// JScript File
	var eventsareatached = false;
	var browsertype = navigator.userAgent
	    function cleanUpTimers()
	    {
	        //alert('cleanUpTimers');
	        clearTimeout(SlideShowNextTimer);
	        //clearTimeout(navigationTimer);
	        //clearTimeout(slideshowPreloadTimer);
	    }
	
	    function setText(index)
	    {
	        lbltitle.innerHTML = imageTitle[index]
	        lbldesc.innerHTML = imageDesc[index]
	    }
	
	
        function attachEvents()
		{
		
		    if (!eventsareatached)
		    {
		        eventsareatached = true;
		        for (i = 0; i < thumbimg.length; i++)
		        {
    		    
		           var currIndex = i;
		           addEvent(document.getElementById(thumbimg[i]), "click",   thumbNailClicked)
		        }
		        addEvent(buttonNext, "click",   Next)
		        addEvent(buttonPrev, "click",   Prev)
		        addEvent(document.getElementById("btnViewGallery"), "click",   viewGallery)
		        addEvent(document.getElementById("btnSlideShow"), "click",   viewSlideShow)
    		    
		        if (isSlideShow())
		        {
		            for (i = 0; i < mainimg.length; i++)
		            {
        		    
		               var currIndex = i;
		               addEvent(document.getElementById(mainimg[i]), "mouseover",   pauseSlideShow)
		               addEvent(document.getElementById(mainimg[i]), "mouseout",   unpauseSlideShow)
    		           
		            }
		        }
		    }
		}	
	
	    function detachEvents()
		{

		    eventsareatached = false;
		    for (i = 0; i < thumbimg.length; i++)
	        {
		    
	            var currIndex = i;
	            removeEvent(document.getElementById(thumbimg[i]), "click",   thumbNailClicked)
	        }
    		    
	        removeEvent(buttonNext, "click",   Next)
	        removeEvent(buttonPrev, "click",   Prev)
	        removeEvent(document.getElementById("btnViewGallery"), "click",   viewGallery)
	        removeEvent(document.getElementById("btnSlideShow"), "click",   viewSlideShow)
    		    

            for (i = 0; i < mainimg.length; i++)
            {
		    
               var currIndex = i;
               removeEvent(document.getElementById(mainimg[i]), "mouseover",   pauseSlideShow)
               removeEvent(document.getElementById(mainimg[i]), "mouseout",   unpauseSlideShow)
	           
            }
		}	
	
	
	
	    function isSlideShow()
	    {
	        return (spanSlide.style.display == 'block')
	    }
	
		function showpreloadMessage(index)
		{
		    MainCoordinates = whereAmI(document.getElementById(mainimg[index]), true)
		    spanPleaseWait.style.left = (MainCoordinates[0] + 10) + "px"
		    spanPleaseWait.style.top = (MainCoordinates[1] + 10) + "px";
		    spanPleaseWait.style.visibility = 'visible'
		}
		
		function hidepreloadMessage()
		{
		    spanPleaseWait.style.visibility = 'hidden'
		}
		
		
		
		function ispreloadMessageShown()
		{
		    return (spanPleaseWait.style.visibility == 'visible')
		}
		
		function showpreloadMessageThumbs(index)
		{
		    MainCoordinates = whereAmI(document.getElementById(mainimg[index]), true)
		    spanPleaseWaitThumbs.style.left = (MainCoordinates[0] + 10) + "px"
		    spanPleaseWaitThumbs.style.top = (MainCoordinates[1] + 10) + "px";
		    spanPleaseWaitThumbs.style.visibility = 'visible'
		}
		
		function hidepreloadMessageThumbs()
		{
		    spanPleaseWaitThumbs.style.visibility = 'hidden'
		}
		
		function ispreloadMessageShownThumbs()
		{
		    return (spanPleaseWaitThumbs.style.visibility == 'visible')
		}
		
		
		
		function ensureThumbNailImageIsLoaded(index)
		{
		    
		    if (document.getElementById(thumbimg[index]).src == '')
		    {
		        document.getElementById(thumbimg[index]).src = mainimgURL[index]   
		    }
		}
		
		function ensureImageIsLoaded(index)
		{
		    
		    if (document.getElementById(mainimg[index]).src == '')
		    {
		        document.getElementById(mainimg[index]).src = mainimgURL[index]   
		    }
		}	
		
		function isImageOk(img) 
		{
		
		    // if it's safario return true
		    if (browsertype.indexOf('Safari')!=-1)
		    {
		        return true;
		    }
            if (!img.complete) {
                //alert("img.complete" + img.complete)
                return false;
            }
            if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
            //alert("img.naturalWidth" + img.naturalWidth )
                return false;
            }
            return true;
        }

		
		
		
		function getThumbIndexfromID(sourceElement)
		{
		    for (i = 0; i < thumbimg.length; i++)
		    {
		        if (sourceElement.id == thumbimg[i])
		        {
		            return i;
		        }
		    }
		}
		
		function getCurrentIndex()
		{
		    return parseInt(document.getElementById(txtIndex).value)
		}
		
		function isGallery()
		{
		    return (document.getElementById(txtStyle).value == 'gallery')
		}
		
		function getCurrentPageNumber()
		{
		    return parseInt(document.getElementById(PageNumberID).value)
		}

		function setCurrentPageNumber(pageNumber)
		{
		    document.getElementById(PageNumberID).value = pageNumber;
		}		
		
		function whereAmI(obj,wch) {
            var L=0, R=0;
            if (obj.offsetParent) {
                while (1) {
                    L+=obj.offsetLeft;
                    R+=obj.offsetTop;
                    if (!obj.offsetParent) {
                        break;
                    }
                    obj=obj.offsetParent;
                }
            } else if (obj.x) {
                L+=obj.x;
            }
            var A=[L,R];
            return(wch===1 || wch=== 2)?  A[wch]: A;
        }
        
        function setCurrentIndex(ind)
        {
            document.getElementById(txtIndex).value = ind;
        }

        function gotoPage(pageNumber, direction, initalizeSlideshow)
		{
		    var pgNumber = pageNumber;
		    var totalImages = thumbimg.length;
		    var startindex = (pgNumber - 1) * PageSize; 
		    var endIndex;
		    var timeoutValue;
		    
		    if ((startindex + PageSize - 1) > (totalImages - 1))
		    {
		        endIndex = totalImages -1 
		    }
		    else
		    {
		        endIndex = (startindex + PageSize - 1);
		    }
		    
		    setCurrentPageNumber(pageNumber)
		    
		    FromLabel.innerHTML = startindex + 1
		    ToLabel.innerHTML = endIndex + 1
		    
		    if (startindex == 0)
		    {
		        buttonPrev.style.visibility = 'hidden'
		    }
		    else
		    {
		        buttonPrev.style.visibility = 'visible'
		    }
		    
		    if (endIndex == (totalImages - 1))
		    {
		        buttonNext.style.visibility = 'hidden'
		    }
		    else
		    {
		        buttonNext.style.visibility = 'visible'
		    }

		    hideThumbs();
		    
		    for (i = startindex; i <= endIndex; i++)
			{
			        thumbImage = document.getElementById(thumbimg[i]);
				    thumbImage.className = "trans0"
				    command = "transitionImage('" + i + "')";
				    document.getElementById(thumbspan[i]).style.display = 'block'
				    if (direction == "forward")
		            {
		                setTimeout(command, (i - startindex) * 50);
		            }
		            else
		            {
			            setTimeout(command, (endIndex - i) * 50);
			        }
				    thumbImage.className = "trans0"
			}
			
			if (isSlideShow())
	        {
	        
	            if (initalizeSlideshow)
	            {
	        
	                command = "initalizeSlideShow()";
	           
	            }
	            else
	            {
	                command = "startSlideShow(false)";
	            }
	           
	            if (direction == "forward")
	            {
	                setTimeout(command, 1000);
	            }
	            else
	            {
		            setTimeout(command, 1200);
		        }
	        }
			attachEvents();
			//setTimeout("attachEvents()", 1000);
		}
		
		
            	
		function transitionImage(index)
		{
		    
		    if (document.getElementById(thumbimg[index]) != null)
		    {
			    document.getElementById(thumbimg[index]).className = "trans0"
			    continueTransition(thumbimg[index], 0)
			}
		}
		
		function continueTransition(imageElementID, indexofCSSArray)
		{
		
			if (indexofCSSArray < aStyles.length && document.getElementById(imageElementID) != null)
			{
				document.getElementById(imageElementID).className = aStyles[indexofCSSArray]
				command = "continueTransition('" + imageElementID + "'," + (indexofCSSArray + 1) + ")";
				setTimeout(command, 10);
			}
		
		}
		
		function hideThumbs()
		{
		    for (i = 0; i < thumbimg.length; i++)
		    {
		        document.getElementById(thumbspan[i]).style.display = 'none'
		    }
		}


    var aStyles = new Array;
    aStyles[0] = "trans10";
    aStyles[1] = "trans20";
    aStyles[2] = "trans30";
    aStyles[3] = "trans40";
    aStyles[4] = "trans50";
    aStyles[5] = "trans60";
    aStyles[6] = "trans70";
    aStyles[7] = "trans80";
    aStyles[8] = "trans90";
    aStyles[9] = "trans100";

    var aStylesNav = new Array;
    aStylesNav[0] = "trans10NoBorder";
    aStylesNav[1] = "trans20NoBorder";
    aStylesNav[2] = "trans30NoBorder";
    aStylesNav[3] = "trans40NoBorder";
    aStylesNav[4] = "trans50NoBorder";
    aStylesNav[5] = "trans60NoBorder";
    aStylesNav[6] = "trans70NoBorder";
    aStylesNav[7] = "trans80NoBorder";
    aStylesNav[8] = "trans90NoBorder";
    aStylesNav[9] = "trans100NoBorder";