﻿// JScript File
var zindexcounter = 200;
var browsertype = navigator.userAgent

        function ensureThumbNailsAreLoaded(pageNumber)
        {
            startingindex = (pageNumber == 1 ? 0 : (pageNumber - 1) * PageSize)
            for (i = startingindex; i < startingindex + PageSize; i++)
            {
                ensureThumbNailImageIsLoaded(indexofImagePlus(startingindex, i - startingindex))
            }
            
        }

        function transitionThumbs(pageNumber)
        {
            var counter = 0;
            for (i = 0; i < thumbimg.length; i++)
            {
                document.getElementById(thumbimg[i]).className = "trans0";
                document.getElementById(thumbspan[i]).className = "trans0";
                
                
            }
            for (i = startingindex; i < startingindex + PageSize && i < thumbimg.length; i++)
            {  
                document.getElementById(thumbspan[i]).className = "spanThumbHome";
	        }
        
            for (i = startingindex; i < startingindex + PageSize && i < thumbimg.length; i++)
            {  
                counter++;
	            document.getElementById(thumbimg[i]).className = "trans0";
	            for (j = 0; j < tStyles.length; j++)
	            {
	                command = "setClassNameThumb(" + i + ", " + j + ")";
	                setTimeout(command, j * 50);
	            }
	            
	        }
            
            //alert(counter)
        }
        
        
        function AreNextThumbNailsLoaded(pageNumber)
		{
		    startingindex = (pageNumber == 1 ? 0 : (pageNumber - 1) * PageSize)
	        for (i = startingindex; i < startingindex + PageSize; i++)
            {  
	            if(! isImageOk(document.getElementById(thumbimg[indexofImagePlus(startingindex, i - startingindex)])))
		        {
		            return false;
		        }
	            
	        }
	        return true;
		}


		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];
		        document.getElementById(mainimg[index]).width = mainimgWidth[index] + "px";
		        document.getElementById(mainimg[index]).height = mainimgHeight[index] + "px";   
		    }
		}
		
		function ensureNextSlidesAreLoaded(numberSlides)
		{
		   var currentIndex = getCurrentIndex();
	        for (i = 0; i <= numberSlides; i++)
	        {
	            ensureImageIsLoaded(indexofThisImagePlus(i));
	            
	        }
		}
		
		
		function isImageOk(img) 
		{
		
		    // if it's safario return true
		    if (browsertype.indexOf('Safari')!=-1)
		    {
		        return true;
		    }

		
            if (!img.complete) {
                return false; 
            }
            if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
                return false;
            }
            return true;
        }

		
		
		
		function getThumbIndexfromID(sourceElement)
		{
		    for (i = 0; i < thumbimg.length; i++)
		    {
		        if (sourceElement.id == thumbimg[i])
		        {
		            return i;
		        }
		    }
		}
		
		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 AreNextSlidesAreLoaded(numberSlides)
		{
		    var currentIndex = getCurrentIndex();
		    var returnValue = true;
	        for (i = 0; i <= numberSlides; i++)
	        {   
	            if(! isImageOk(document.getElementById(mainimg[indexofThisImagePlus(i)])))
		        {
		            return false;
		        }
	            
	        }
	        return true;
		}
		
		
		function indexofThisImagePlus(plusValue)
		{
		    var currentIndex = getCurrentIndex();
		    var returnVal = (parseInt(currentIndex) + parseInt(plusValue) >= mainimg.length ? (parseInt(currentIndex) + parseInt(plusValue)) - mainimg.length :  parseInt(currentIndex) + parseInt(plusValue) )
		    if (returnVal > mainimg.length - 1)
		    {
		        returnVal = 0;
		    }
		    if (returnVal < 0)
		    {
		        returnVal = mainimg.length - 1;
		    }
		    return returnVal;
		}
		
		function indexofImagePlus(imageIndex, plusValue)
		{
		    var currentIndex = imageIndex;
		    var returnVal = (parseInt(currentIndex) + parseInt(plusValue) >= mainimg.length ? (parseInt(currentIndex) + parseInt(plusValue)) - mainimg.length :  parseInt(currentIndex) + parseInt(plusValue) )
		    if (returnVal > mainimg.length - 1)
		    {
		        returnVal = 0;
		    }
		    if (returnVal < 0)
		    {
		        returnVal = mainimg.length - 1;
		    }
		    return returnVal;
		}
		
		function getCurrentIndex()
		{
		    return parseInt(document.getElementById(txtIndex).value)
		}
		
		function getCurrentPage()
		{
		    return parseInt(document.getElementById(txtPageNumber).value);
		}
		
		function setCurrentPage(pgNumber)
		{
		    document.getElementById(txtPageNumber).value = pgNumber;
		}
		
		function setCurrentIndex(index)
		{
		    document.getElementById(txtIndex).value = index
		}
		
	    function getImageFromIndex(index)
	    {
	        return document.getElementById(mainimg[index]);
	    
	    }
	    
	    function getImageThumbFromIndex(index)
	    {
	        return document.getElementById(thumbimg[index]);
	    
	    }
	    
	    function transitionImage(from, to)
	    {
	   // alert(to + " " + from)
	    newIMage = getImageFromIndex(to)
        oldImg = getImageFromIndex(from)

        var mainImageContainer = document.getElementById(spanContainer);
        var A = whereAmI(mainImageContainer);
        
        oldImg.style.zIndex = zindexcounter;
        
        newIMage.style.position = 'absolute';
        newIMage.style.left = A[0] + "px";
        newIMage.style.top = A[1] + "px";

        newIMage.style.display = 'block';
        newIMage.style.visibility = 'visible';

        newIMage.style.zIndex = zindexcounter - 1;
            
	    zindexcounter = zindexcounter + 2;

	        for (i = 0; i < aStyles.length; i++)
	        {
	            command = "setClassName(" + from + ", " + (aStyles.length - 1 - i) + ")";
	            setTimeout(command, i * 30);
	        }
	        
	        command = "CleanUp(" + from + "," + to + ")";
	        setTimeout(command, i * 30);
	        
	    }
	    
	        
	    function CleanUp(oldImgIndex, newImageIndex)
	    {
	         oldImg = getImageFromIndex(oldImgIndex)
	         oldImg.style.position = 'absolute';
	         oldImg.style.display = 'none';
             oldImg.style.visibility = 'hidden';
             attachEvents();
             getImageFromIndex(oldImgIndex).className = "photo";
	    }
	    
	    function setClassName(indexOfImage, indexofClassName)
	    {
	        getImageFromIndex(indexOfImage).className = aStyles[indexofClassName];
	    }
	    
	    function setClassNameThumb(indexOfImage, indexofClassName)
	    {
	        getImageThumbFromIndex(indexOfImage).className = tStyles[indexofClassName];
	    }
	    
	var aStyles = new Array;
    aStyles[0] = "trans10NoBorder";
    aStyles[1] = "trans20NoBorder";
    aStyles[2] = "trans30NoBorder";
    aStyles[3] = "trans40NoBorder";
    aStyles[4] = "trans50NoBorder";
    aStyles[5] = "trans60NoBorder";
    aStyles[6] = "trans70NoBorder";
    aStyles[7] = "trans80NoBorder";
    aStyles[8] = "trans90NoBorder";
    aStyles[9] = "trans100NoBorder";
    
    var tStyles = new Array;
    tStyles[0] = "trans10";
    tStyles[1] = "trans20";
    tStyles[2] = "trans30";
    tStyles[3] = "trans40";
    tStyles[4] = "trans50";
    tStyles[5] = "trans60";
    tStyles[6] = "trans70";
    tStyles[7] = "trans80";
    tStyles[8] = "trans90";
    tStyles[9] = "trans100";
