$(document).ready(function() {
	var closeModal = function(hash) {
		var $modalWindow = $(hash.w);
		$modalWindow.fadeOut('1000', function() {
			hash.o.remove();
			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 = false;
				}
			}
			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();
			}
			$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
	});
});
	
$(document).keydown( function( e ) { 
	if( e.which == 27) {  // escape, close box 
		$(".jqmWindow").jqmHide(); 
	} 
}); 

