//thickbox replacement
$(document).ready(function(){
	
	var closeModal = function(hash)
	{
	    var $modalWindow = $(hash.w);
	
	    $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]
	            } else
	            {
	
	                hash.refreshAfterClose = false;
	            }
	        }
	        // let 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();
	        }
	
	        // do the animation so that the windows stays on center of screen despite resizing
	        $modalWindow.css({
	            width: newWidth,
	            height: newHeight,
	            opacity: 0
	        }).jqmShow().animate({
	            width: newWidth,
	            height: newHeight,
	            top: newTop,
	            left: newLeft,
	            marginLeft: 0,
	            opacity: 1
	        }, "slow");
	    }
	    else
	    {
	        // dont do animations
	        $modalWindow.jqmShow();
	    }
	
	}
	
	$("#modalWindow").jqm({
	    overlay: 70,
	    modal: true,
	    trigger: "a.thickbox",
	    target: "#jqmContent",
    onHide: closeModal,
    onShow: openInFrame
	});
});	