/*
*
* iCMS Image Viewer (iviewiew.js)
*
*/

$(document).ready(function() { $("a.iview").click(iviewOnClickThumb); } );

function iviewOnClickThumb()
{
    var img = this.getElementsByTagName('img')[0];
    var caption = img.alt || img.title || img.name || img.src || null;
    iviewShowImage(caption, this.href);
    this.blur();

    return false;
}

function iviewOnClose()
{
    $("#iviewImageWindow").slideUp("normal", function() { $('#iviewImageWindow,#iviewOverlay').remove(); } );
    $("#iviewLoadingWindow").remove();

    return false;
}

function iviewOnResizePage()
{
    centerWindow('iviewImageWindow', IMAGE_WIN_WIDTH, IMAGE_WIN_HEIGHT);
    iviewOverlayResize();

    return true;
}

function iviewShowImage(caption, url)
{
    $("body").append("<div id='iviewOverlay'></div><div id='iviewImageWindow'></div>");
    $("body").append("<div id='iviewLoadingWindow'><img src='images/iview/loading.gif' /></div>");

    $("#iviewOverlay").click(iviewOnClose);
    iviewOverlayResize();

    centerWindow('iviewLoadingWindow', 100, 100);
    $("#iviewLoadingWindow").show();

    var img = new Image();

    img.onload = function() {
        img.onload = null;

        var pagesize = getPageSize();
        var x = pagesize[0] - 150;
        var y = pagesize[1] - 150;
        var imageWidth = img.width;
        var imageHeight = img.height;

        if (imageWidth > x) {
            imageHeight = imageHeight * (x / imageWidth);
            imageWidth = x;
            if (imageHeight > y) {
                imageWidth = imageWidth * (y / imageHeight);
                imageHeight = y;
            }
        } else if (imageHeight > y) {
            imageWidth = imageWidth * (y / imageHeight);
            imageHeight = y;
            if (imageWidth > x) {
                imageHeight = imageHeight * (x / imageWidth);
                imageWidth = x;
            }
        }

        IMAGE_WIN_WIDTH = imageWidth + 30;
        IMAGE_WIN_HEIGHT = imageHeight + 60;

        $("#iviewImageWindow").append("<a href='' id='#IvCloseButton'><img id='iviewImage' src='" + url + "' width='" + imageWidth + "' height='" + imageHeight + "' alt='" + caption + "'/>" + "</a><p>" + caption + "</p>");

        centerWindow('iviewImageWindow', IMAGE_WIN_WIDTH, IMAGE_WIN_HEIGHT);
        resizeWindow('iviewImageWindow', IMAGE_WIN_WIDTH, IMAGE_WIN_HEIGHT);

        $(window).resize(iviewOnResizePage);
        $(window).scroll(iviewOnResizePage);

        $("#iviewImageWindow").click(iviewOnClose);
        $("#iviewLoadingWindow").remove();
        $("#iviewImageWindow").slideDown("slow");
    }

    img.src = url;
}

function iviewOverlayResize()
{
    if (window.innerHeight && window.scrollMaxY) {
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        yScroll = document.body.scrollHeight;
    } else {
        yScroll = document.body.offsetHeight;
    }

    $("#iviewOverlay").css("height", yScroll + "px");
}
