﻿// 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]   
    }
}

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 setCurrentIndex(index)
{
    document.getElementById(txtIndex).value = index;
}
function getCurrentPage()
{
    return parseInt(document.getElementById(txtPageNumber).value);
}

function setCurrentPage(pgNumber)
{
    document.getElementById(txtPageNumber).value = pgNumber;
}



function getImageFromIndex(index)
{
    return document.getElementById(mainimg[index]);
}

function getImageThumbFromIndex(index)
{
    return document.getElementById(thumbimg[index]);
}

//function setText(index)
//{
//    document.getElementById(lblCaption).innerHTML = imageTitle[index];
//	document.getElementById(lblDescription).innerHTML = imageDesc[index];
//}

function transitionImage(from, to)
{
    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);
    }
    
    //setText(to);
    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";