﻿$(document).ready(function() {
    //thickbox replacement
    var closeModal = function(hash) {
        var $modalWindow = $(hash.w);

        //$('#jqmContent').attr('src', 'blank.html');
        $modalWindow.fadeOut('2000', function() {
            hash.o.remove();
            //refresh parent
            if (hash.refreshAfterClose === 'true') {

                window.location.href = document.location.href;
            }
        });
    };
    var openInFrame = function(hash) {
        var $trigger = $(hash.t);
        var $modalWindow = $(hash.w);
        var $modalContainer = $('iframe', $modalWindow);
        var myUrl = $trigger.attr('href');
        var myTitle = $trigger.attr('title');
        var newWidth = 0, newHeight = 0, newLeft = 0, newTop = 0;
        $modalContainer.html('').attr('src', myUrl);
        $('#jqmTitleText').text(myTitle);
        myUrl = (myUrl.lastIndexOf("#") > -1) ? myUrl.slice(0, myUrl.lastIndexOf("#")) : myUrl;
        var queryString = (myUrl.indexOf("?") > -1) ? myUrl.substr(myUrl.indexOf("?") + 1) : null;

        if (queryString != null && typeof queryString != 'undefined') {
            var queryVarsArray = queryString.split("&");
            for (var i = 0; i < queryVarsArray.length; i++) {
                if (unescape(queryVarsArray[i].split("=")[0]) == 'width') {
                    var newWidth = queryVarsArray[i].split("=")[1];
                }
                if (escape(unescape(queryVarsArray[i].split("=")[0])) == 'height') {
                    var newHeight = queryVarsArray[i].split("=")[1];
                }
                if (escape(unescape(queryVarsArray[i].split("=")[0])) == 'jqmRefresh') {
                    // if true, launches a "refresh parent window" order after the modal is closed.
                    hash.refreshAfterClose = queryVarsArray[i].split("=")[1]
                }
                if (escape(unescape(queryVarsArray[i].split("=")[0])) == 'hideheader') {
                    // if true, launches a "refresh parent window" order after the modal is closed.
                    hash.hideHeader = queryVarsArray[i].split("=")[1]
                }

            }
            // let's run through all possible values: 90%, nothing or a value in pixel
            if (newHeight != 0) {
                if (newHeight.indexOf('%') > -1) {

                    newHeight = Math.floor(parseInt($(window).height()) * (parseInt(newHeight) / 100));

                }
                var newTop = Math.floor(parseInt($(window).height() - newHeight) / 2);
            }
            else {
                newHeight = $modalWindow.height();
            }
            if (newWidth != 0) {
                if (newWidth.indexOf('%') > -1) {
                    newWidth = Math.floor(parseInt($(window).width() / 100) * parseInt(newWidth));
                }
                var newLeft = Math.floor(parseInt($(window).width() / 2) - parseInt(newWidth) / 2);

            }
            else {
                newWidth = $modalWindow.width();
            }

            newHeight = parseInt(newHeight) + 10;

            if ($.browser.msie && $.browser.version.indexOf("7") >= 0) {
                newHeight = parseInt(newHeight) + 20;
                $modalWindow.css
                (
                    {
                        padding: 0,
                        border: "0"
                    }
                );

                $("#jqmTitle").attr("class", "ie7Popup");
            }

            // do the animation so that the windows stays on center of screen despite resizing
            $modalContainer.css
            (
                {
                    width: newWidth,
                    height: newHeight,
                    top: newTop,
                    left: newLeft,
                    opacity: 1
                }
            );

            $("#modalWindow").css("width", newWidth + "px");
            $("#modalWindow").css("height", newHeight + "px");

            $modalWindow.css({
                width: newWidth,
                height: newHeight,
                top: newTop,
                left: newLeft,
                marginLeft: 0,
                opacity: 0
            }).jqmShow().animate({
                width: newWidth,
                height: newHeight,
                opacity: 1
            }, 'slow');


            if (hash.hideHeader == "1") {
                $("#jqmTitle").hide();
            }

        }
        else {
            // don't do animations

            $modalWindow.jqmShow();
        }

    }


    $('#modalWindow').jqm({
        overlay: 70,
        modal: true,
        trigger: 'a.thickbox',
        target: '#jqmContent',
        onHide: closeModal,
        onShow: openInFrame
    });

});
            
    function CloseDialogue()
    {
        $('#modalWindow').jqmHide(); 
    }

