var bmModal = function(){
	var uri;
	var params;
	return {
		// add click handler for link/input elements that has class thickbox
		// note: thickbox.js also had area.thickbox
		init: function(){
			$("a.thickbox, input.thickbox").click(function(){
				bmModal.handle(this);
				// dont follow link/submit button
				return false;
			});
		},
		getParams: function(){
			return params;
		},
		// check element parameters
		handle: function(obj){
			uri=obj.href || obj.alt;
			//var url=obj.href || obj.alt;
			params=this.tb_parseQuery(uri);
			// for modal to work, cover all elements with TB_overlay
			if(!$("#TB_overlay").is("*")){
				$("body").prepend('<div id="TB_overlay"></div>');
			}
			$("#TB_overlay").show();
			if(!$('#TB_window').is('*')) {
				$('body').prepend('<div id="TB_window"><div id="TB_ajaxContent"></div></div>');
			}
			$("#TB_window").show();
			TB_WIDTH=(params['width']*1 || 250);
			TB_HEIGHT=(params['height']*1 || 150);
			// reposition and show div
			$("#TB_window").css({
				display: 'block',
				position: 'fixed',
				width: TB_WIDTH+'px',
				height: TB_HEIGHT+'px',
				top: '50%', marginTop: (-TB_HEIGHT/2)+'px',
				left: '50%', marginLeft: (-TB_WIDTH/2)+'px'
			});
			$("#TB_ajaxContent").load(uri+"&random="+(new Date().getTime()),function(){
				//alert("Thickbox "+url);
				if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
					//$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
				}
			});
		},
		remove: function(){
			// remove TB_overlay and TB_window
			$("#TB_window").hide();
			$("#TB_overlay").hide();
		},
		// from Thickbox 3
		tb_parseQuery: function( query ) {
			var Params = {};
			if ( ! query ) {return Params;}// return empty object
			var Pairs = query.split(/[;&]/);
			for ( var i = 0; i < Pairs.length; i++ ) {
				var KeyVal = Pairs[i].split('=');
				if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
				var key = unescape( KeyVal[0] );
				var val = unescape( KeyVal[1] );
				val = val.replace(/\+/g, ' ');
				Params[key] = val;
			}
			return Params;
		}
	}
}();

$(function(){
	bmModal.init();
});
