﻿function ResizeWindow() {
    window.moveTo(0, 0);

    if (document.all) {
        top.window.resizeTo(screen.availWidth, screen.availHeight);
    }

    else if (document.layers || document.getElementById) {
        if (top.window.outerHeight < screen.availHeight || top.window.outerWidth < screen.availWidth) {
            top.window.outerHeight = screen.availHeight;
            top.window.outerWidth = screen.availWidth;
        }
    }
}

function ResizeCollectionViewer() {
    var windowWidth = 0;
    var windowHeight = 0;

    if (typeof (window.innerWidth) == "number") {
        //Non-IE
        windowWidth = window.innerWidth;
        windowHeight = window.innerHeight;
    }
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    }
    else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }

    var slObject = document.getElementById("PhotoZoomCollectionViewer");
    slObject.style.height = windowHeight + "px";
    slObject.style.width = windowWidth + "px";
}

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() {
    ResizeWindow();
    ResizeCollectionViewer();
    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);
}

/* 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;