$(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') hash.refreshAfterClose = queryVarsArray[i].split("=")[1]
		else hash.refreshAfterClose = true;
	    }
	    // 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();
	    // 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 $modalWindow.jqmShow();
    }
    $('#modalWindow').jqm({
	overlay: 70,
	modal: true,
	trigger: 'a.thickbox',
	target: '#jqmContent',
	onHide: closeModal,
	onShow: openInFrame
    });
});
