﻿// Firefox initializes object height to 0px instead of filling parent height.
function ResizeSLViewerObj() {
    scroll(0, 0);
    if (document.body.clientHeight) {
        var slObject = document.getElementById("PhotoZoomCollectionViewer");

        if (!slObject)
            return;

        var oldHeight = slObject.clientHeight;
        var offsetHeight = document.getElementById("pageHeader").clientHeight +
                document.getElementById("albumSilverlightView").offsetTop +
                document.getElementById("pageFooter").clientHeight;

        var newHeight = Math.max(450, document.body.clientHeight - offsetHeight - 25);
        var newWidth = document.body.clientWidth - 335;
        slObject.style.height = newHeight + "px";
        slObject.style.width = newWidth + "px";

    }
}

window.onresize = ResizeSLViewerObj;

var failedCount = 0;

function InitializeCollectionViewer() {
    try {
        var slObject = document.getElementById("PhotoZoomCollectionViewer");

        if (slObject)
            slObject.Content.CollectionViewer.InitializePage();
    }
    catch (e) {
        failedCount++;
        setTimeout(InitializeCollectionViewer, 1);
    }
}


function OnLoadPage() {   
    ResizeSLViewerObj();
    InitializeCollectionViewer();
}

// Dean Edwards/Matthias Miller/John Resig

function init() {
    // quit if this function has already been called
    if (arguments.callee.done) return;

    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;

    // kill the timer
    if (_timer) clearInterval(_timer);

    OnLoadPage();
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
    document.addEventListener("pageshow", init, false);
}

/* for Internet Explorer */
/*@cc_on@*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
    if (this.readyState == "complete") {
        init(); // call the onload handler
    }
};
/*@end@*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            init(); // call the onload handler
        }
    }, 10);
}

/* for other browsers */
window.onload = init;

function uninit() {
    // do nothing.  the presence of this forces browser not to cache/reconstruct DOM, so load event fires on back button.
}

window.onunload = uninit;

