$(function() {
	BoaBox.prepare('a.modal');
});

var BoaBox = {
	
	getOverlay : function() {
		$('#overlay').remove();
		var overlay = $('<div id="overlay" />');
		overlay.css({
			height : $('body').innerHeight()
		});
		overlay.click(BoaBox.close);
		
		return overlay;
	},
	
	open : function(url, params, options) {
		
		if( null == params ) {
			params = {};
		}
		
		var content = $('.boabox-content');
		content.attr('id', 'boabox-current-content');
		
		if( content.length == 0 ) {
			BoaBox.setup(options);
			content = $('.boabox-content');
		}
		
		var p = $.extend(params, {format:'ajax'} );
		$.get(url, p , function(data) {
			content.html(data);
			BoaBox.prepare('.boabox a.modal');
			content.prepend('<a href="javascript:void(0)" onclick="BoaBox.close()" class="boabox-close"></a>');
			
		});
	},
	
	prepare : function(selector) {
		$(selector).click(function() {
			
			BoaBox.setup();
			var url = $(this).attr('href');
			BoaBox.open(url);
			
			return false;
		});
	},
	
	setup : function(options)
	{
		var box, content;
	
		if( null == options ) {
			options = {};
		}
		
		var defaultOptions = {
			large : false,
			medium : false
		};

		options = $.extend(defaultOptions, options);

		if( $('.boabox').length > 0 ) {
			box = $('.boabox');
			content = box.find('.boabox-content');
			content.html('');
		} else {
			var className = 'boabox';
			if( options.large ) {
				className += ' large';
			} else if( options.medium ) {
				className += ' medium';
			}
			box = $('<div class="' + className + '" />');
			box.append('<div class="boabox-header" />');
			content = $('<div class="boabox-content" />');
		}
		//content.append('<div class="lightbox-loading"><img src="' + config.baseurl + 'skin/base/images/lightbox_loader.gif" alt="Loading" /></div>');

		
		box.append(content);
		
		$('embed').addClass('hidden');
		
		$('body')
			.append( BoaBox.getOverlay() )
			.append(box);
	},
	
	close : function() {
		$('#overlay').remove();
		$('.boabox').remove();
		$('embed').removeClass('hidden');
	}
		
};
