﻿
/*$(document).ready(function ()
{
    var x = new ShowImageDialog("otevrit_dialog_obrazek");
})*/

//imgClass = identifikator css class na kterem se ma vyvolat udalost pro zobrazeni dialogu
//urlLoadImg = obrazek znazornujici load obrazku

function ShowImageDialog(imgClass, urlLoadImg, urlCloseImg)
{
    var selectElement = null;

    $("body").append("<div id='jquery_show_image_dialog'><a href='javascript:void(0)' id='jquery_image_close_dialog' title='close'><img /></a><img id='jquery_image_big_dialog'/><img id='jquery_image_wait_dialog' alt='load' title='load' /></div>");
    $("#jquery_show_image_dialog").hide();
    $("#jquery_image_big_dialog").hide();
    $("#jquery_image_wait_dialog").hide();
    $("#jquery_image_wait_dialog").attr("src", urlLoadImg);
    $("#jquery_image_close_dialog img").attr("src", urlCloseImg);

    $("#jquery_image_big_dialog").bind("load", function ()
    {
        $("#jquery_image_wait_dialog").hide();
        $("#jquery_image_big_dialog").show();

        if ($("#jquery_show_image_dialog").width() != ($(this).width() + 50) && $("#jquery_show_image_dialog").height() != ($(this).height() + 50))
        {
            $("#jquery_show_image_dialog").width(($(this).width() + 50) + "px").height(($(this).height() + 50) + "px");
        }

        NastavStred();
    });

    $("#jquery_image_close_dialog, #jquery_show_image_dialog").bind("click", function ()
    {
        $("#jquery_show_image_dialog").effect("fade", {}, 600, ZavritDialog)
    });

    $("." + imgClass).css("cursor", "pointer");
    $("#jquery_show_image_dialog").css("cursor", "pointer");
    $("." + imgClass).bind("click", function ()
    {
        NahrajObrazek(this);
    })

    function ZavritDialog()
    {
        $("#jquery_show_image_dialog").hide();
        $("#jquery_image_big_dialog").hide();
    }

    function NahrajObrazek(element)
    {
        selectElement = element;

        $("#jquery_image_wait_dialog").show();
        $("#jquery_show_image_dialog").show();

        NastavStred();

        //Nahraj obrazek
        var src = $(element).attr("src");
        if ($(element).attr("src").indexOf(".ashx") > -1)
        {
            //Pokud se jedna o ashx stranku tak zmenim parametr pro generovani width
            var start = src.indexOf("width=");
            var end = src.indexOf("&", start);
            src = src.replace(src.substring(start, end), "width=800");

            $(" #jquery_image_big_dialog").attr("src", src);
        }
        else
        {
            src = src.replace("[s]_", "[b]_").replace("%5Bs%5D_", "%5Bb%5D_");
            $(" #jquery_image_big_dialog").attr("src", src);
        }

        //Zjistim zda ma smysl zobrazovat wait ikonku
        var width = $("#jquery_image_big_dialog").width();
        var height = $("#jquery_image_big_dialog").height();
        if (width <= $("#jquery_image_wait_dialog").width() && height <= $("#jquery_image_wait_dialog").height())
        {
            width = ($("#jquery_image_wait_dialog").width());
            height = ($("#jquery_image_wait_dialog").height());
        }

        //Nastaveni velikosto dialogu
        $("#jquery_show_image_dialog").width((width + 50) + "px");
        $("#jquery_show_image_dialog").height((height + 50) + "px");

        NastavStred();
    }

    function NastavStred()
    {
        //Vycentruju hlavni okno
        $("#jquery_show_image_dialog").position(
        {
            of: $(window),
            my: "center center",
            at: "center center",
            offset: 0,
            collision: "flip flip"
        });

        //Vycentruju obrazek
        $("#jquery_image_big_dialog, #jquery_image_wait_dialog").position(
        {
            of: $("#jquery_show_image_dialog"),
            my: "center center",
            at: "center center",
            offset: 0,
            collision: "flip flip"
        });
    }
}
