﻿// JScript File
var g_activeView;
var g_viewerId;
var g_selectedId;
var g_selectedImgSrc;
var g_selectedFlashImgSrc;
var g_isFlashViewer;

var g_linkFlashViewId;
var g_linkClassicViewId;

function initView (flashViewLinkId, classicViewLinkId, isFlash) {
    g_linkFlashViewId = flashViewLinkId;
    g_linkClassicViewId = classicViewLinkId;
    
    var flashViewLink = document.getElementById(g_linkFlashViewId);
    var classicViewLink = document.getElementById(g_linkClassicViewId);
    var flashCell = document.getElementById("fcell_" + g_selectedId);
    
    
    if (isFlash.toUpperCase() == "TRUE") {
        g_activeView = "FLASH";
        if (flashViewLink != null) {
//            flashViewLink.style.display = "";   // make sure link is visible
            flashViewLink.className = "active"; // set link to active
        }
        
        // if this step ever called?? since g_selectedId should still be undefined at this point
        if (flashCell != null) {
            flashCell.style.display = "";
        }
    } else {
        g_activeView = "CLASSIC";
        if (flashViewLink != null) { flashViewLink.style.display = "none"; }
        if (classicViewLink != null) { classicViewLink.style.display = "none"; }
        if (flashCell != null) { flashCell.style.display = "none"; }
    }
}

function changeView (currentView, activeLinkid, unactiveLinkid)
{
    var activeViewLink, inactiveViewLink;
    var changedViewToFlash;
    
    if (currentView == "FLASH") {
        changeViewToFlash = false;
        
        g_activeView = "CLASSIC";
        activeViewLink = document.getElementById(g_linkClassicViewId);
        inactiveViewLink = document.getElementById(g_linkFlashViewId);
        
    } else {
        changeViewToFlash = true;
        
        g_activeView = "FLASH";
        activeViewLink = document.getElementById(g_linkFlashViewId);
        inactiveViewLink = document.getElementById(g_linkClassicViewId);
    }
    
    // setting style to the active link
    if (activeViewLink != null) { activeViewLink.className = "active"; }
    if (inactiveViewLink != null) { inactiveViewLink.className = ""; }
    
    
    var flashCell, iCell;
    var viewer = document.getElementById(g_viewerId);
    if (viewer) {
        var viewerItems = viewer.getElementsByTagName('LI');
        for (var i = 0; i < viewerItems.length; i++) 
        {
            flashCell = document.getElementById("fcell_" + viewerItems[i].id);
            iCell = document.getElementById("icell_" + viewerItems[i].id);
            
            if (changeViewToFlash) {
                // show flash cell, hide image cell
                if (flashCell != null) { flashCell.style.display = ""; }
                if (iCell != null) { iCell.style.display = "none"; }
            } else {
                // show image cell, hide flash cell
                if (flashCell != null) { flashCell.style.display = "none"; }
                if (iCell != null) { iCell.style.display = ""; }
            }
        }
    }
}
       

function setImage (viewerId, selectedId, selectedImgSrc, selectedFlashImgSrc, isFlashViewer) {
    g_viewerId = viewerId;
    g_selectedId = selectedId;
    g_selectedImgSrc = selectedImgSrc;
    g_selectedFlashImgSrc = selectedFlashImgSrc;
    g_isFlashViewer = isFlashViewer;
    
    if(width == undefined) {
        width = 885;
    }
    if(height == undefined) {
        height = 535;
    }
    
    var viewer = document.getElementById(viewerId);
    if (viewer) {
        
        // get lists of images for this viewer
        var viewerItems = viewer.getElementsByTagName('LI');
        if (isFlashViewer == "True" && g_activeView == "FLASH") {
            var icell;
            var flashObj, flashCell, flashPlaceHolderEle;
            var flashvars = false;
            var params = {
                menu: "false",
                FlashVars: "zoomifyXMLPath=ZoomifyDesignViewer.xml" + "&zoomifyImagePath=" + selectedFlashImgSrc,
                SRC :"zoomifyViewer.swf"
            };
            swfobject.embedSWF("zoomifyViewer.swf", "flash_" + selectedId, 
                width, height, "9.0.0", "expressInstall.swf", flashvars, params);
                
            for (var i = 0; i < viewerItems.length; i++) 
            {
                icell = document.getElementById("icell_" + viewerItems[i].id);
                
                if (viewerItems[i].id == selectedId) {
                    viewerItems[i].className = "active";
                    if (icell) { icell.style.display = "none"; }
                } else {
                    viewerItems[i].className = "";
                    if (icell) { icell.style.display = ""; }
                    
                    flashObj = document.getElementById("flash_" + viewerItems[i].id);
                    if (flashObj != null && flashObj.tagName == "OBJECT") {
                        
                        // replace the flash object tag with a place holder tag
                        flashCell = document.getElementById("fcell_" + viewerItems[i].id);
                        if (flashCell != null) {
                            flashCell.innerHTML = "";
                            flashCell.style.display = "";
                            
                            flashPlaceHolderEle = document.createElement("span");
                            flashPlaceHolderEle.id = "flash_" + viewerItems[i].id;
                            flashCell.appendChild(flashPlaceHolderEle);
                        }
                    }
                }
            }
        } else { // is classic image view
            var mainImageIndex;
            var images;
            for (var i = 0; i < viewerItems.length; i++)
            {
                mainImageIndex = -1;
                
                images = viewerItems[i].getElementsByTagName('IMG');
                for (var j = 0; j < images.length; j++)
                {
                    if (images[j].className == 'fullsize') {
                        mainImageIndex = j;
                        break;
                    }
                }

                if (viewerItems[i].id == selectedId) {
                    viewerItems[i].className = 'active';
                    if (mainImageIndex != -1) { 
                        images[mainImageIndex].style.display = ""; 
                        images[mainImageIndex].src = selectedImgSrc; 
                    }
                }
                else {
                    viewerItems[i].className = '';
                    if (mainImageIndex != -1) { images[mainImageIndex].src = ''; }
                }
            }
        } // End isFlashViewer / current view is flash
    } // End if (viewer)
}