﻿var images = new Array();
var curIdx = 0;
var img, next, prev, p, loaderImg;
var nexta, preva;

var nav = (window.Event && typeof window.captureEvents === 'function') ? true : false;
//alert(window.Event);


function showSlideshow(id, obj) {
    scroll(0, 0);
    var table = document.getElementById(id);
    if (!table) return;
    var tds = table.getElementsByTagName('td');
    if (!tds || tds.length == 0) return;
    images = new Array();
    curIdx = 0;
    for (var i = 0; i < tds.length; i++) {
        if (tds[i].getElementsByTagName('a').length > 0) {
            images.push({ img: tds[i].getElementsByTagName('a')[0].href, caption: tds[i].getElementsByTagName('p')[0].innerHTML });
            if (obj && obj.href && obj.href === tds[i].getElementsByTagName('a')[0].href) {
                curIdx = images.length - 1;
            }
        }
    }
    if (images.length == 0) return;
    deleteObject('overlay');
    var overlay = document.createElement('div');
    overlay.id = 'overlay';
    overlay.style.visibility = 'visible';
    document.getElementsByTagName('body')[0].appendChild(overlay);
    
    //Holds all content
    var wrapper = createElementId('div', 'wrapper')
    overlay.appendChild(wrapper);
    
    //Holds Close button
    var closeDiv = createElementId('div', 'close-div');
    var close = createElementIdHtml('div', 'close', 'close');
    close.onclick = function() { deleteObject('overlay'); };
    closeDiv.appendChild(close);
    wrapper.appendChild(closeDiv);
    
    //Holds Image
    var imageDiv = createElementId('div', 'image-div');
    img = document.createElement('img');
    imageDiv.appendChild(img);
    wrapper.appendChild(imageDiv);
    
    //Holds Bottom
    var captionNavDiv = createElementId('div', 'caption-nav-div');

    var captionDiv = createElementId('div', 'caption-div');
    p = createElementId('p', 'p');
    captionDiv.appendChild(p);
    
    var navDiv = createElementId('div', 'nav-div');
    next = createElementId('div', 'next');
    prev = createElementId('div', 'prev');
    nexta = createElementId('a', 'nexta');
    nexta.appendChild(createElementImg('/images/new/slideshow-next.png', 'Next'));
    nexta.onclick = nextImg;
    preva = createElementId('a', 'preva');
    preva.appendChild(createElementImg('/images/new/slideshow-prev.png', 'Previous'));
    preva.onclick = prevImg;
    
    next.appendChild(nexta);
    prev.appendChild(preva);


    navDiv.appendChild(next);
    navDiv.appendChild(prev);
    
    captionNavDiv.appendChild(captionDiv);
    captionNavDiv.appendChild(navDiv);

    wrapper.appendChild(captionNavDiv);
    
    setNextPrev();

//    wrapper.appendChild(close);
//    wrapper.appendChild(img);
//    wrapper.appendChild(prev);
    //wrapper.appendChild(next);
    //wrapper.appendChild(p);
    showImg();
    document.onkeyup = handleArrowKeys;
    if (nav) {
        window.captureEvents(Event.KEYDOWN);
        window.onkeydown = NetscapeEventHandler_KeyDown;
    } else {
        document.onkeydown = MicrosoftEventHandler_KeyDown;
    }
}
function nextImg() {
    ++curIdx;
    showImg();
}
function prevImg() {
    --curIdx;
    showImg();
}
function setNextPrev() {
    if (curIdx == 0) {
        prev.style.visibility = 'hidden';
    } else {
        prev.style.visibility = 'visible';
    }
    if (curIdx == (images.length - 1)) {
        next.style.visibility = 'hidden';
    } else {
        next.style.visibility = 'visible';
    }
}
function showImg() {
    if (curIdx >= images.length) {
        curIdx = images.length-1;
        return;
    }
    if (curIdx < 0) {
        curIdx = 0;
        return; 
    }
    setNextPrev();
    loaderImg = new Image();
    loaderImg.src = images[curIdx].img;
    //img.src = images[curIdx].img;
    loaderImg.onload = function() { img.className = (loaderImg.width > loaderImg.height ? 'land' : 'port'); img.src = loaderImg.src; };
    p.innerHTML = images[curIdx].caption;
}
function deleteObject(id) {
    var obj = document.getElementById(id);
    if (obj) {
        obj.parentNode.removeChild(obj);
    }
}
function createElementImg(src,alt){
    var obj = document.createElement('img');
    obj.src = src;
    obj.alt = alt;
    return obj;
}
function createElementId(ele, id) {
    var obj = document.createElement(ele);
    obj.id = id;
    return obj;
}
function createElementIdHtml(ele, id, html) {
    var obj = document.createElement(ele);
    obj.id = id;
    obj.innerHTML = html;
    return obj;
}
function handleArrowKeys(evt) {
    evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
        switch (evt.keyCode) {
            case 37: //Left
                prevImg();
                break;
//            case 38: //Up
//                prevImg();
//                break;
            case 39: //Right
                nextImg();
                break;
//            case 40: //Down
//                nextImg();
//                break;
        }
    }
}
function NetscapeEventHandler_KeyDown(e) {
    if (e.which == 38 || e.which == 40) {
        return false;
    }
    return true;
}
function MicrosoftEventHandler_KeyDown() {
    if (event.keyCode == 38 || event.keyCode == 40) {
        return false;
    }
    return true;
}
