/**
 * requires: jQuery basic library
 * overlay
 */

(function($) {
	
	sld.overlay = function(config){		
		
		// CONFIG WITH DEFAULTS
		var obtrusive = config.obtrusive || true;
		var parent = config.parent || $('body');
		var width = config.width || 0;
		var level = config.level || $('.overlay').size() + 1;
		var ajax = config.ajax || false;
		var autoShow = config.autoShow || true;
		var content = config.content || '';
		var tooltip = config.tooltip || false;
		var complete = config.complete || false;
		
		// INJECT HTML
		var overlayWrapper = $("<div class='overlayWrapper " + level + "' />")
			.appendTo(parent);
		
		if (!autoShow) overlayWrapper.hide();
		if (obtrusive) $("<div class='overlayBackdrop' />").appendTo(overlayWrapper);
		
		var overlay = $("<div class='overlay'></div>").appendTo(overlayWrapper);
		if (tooltip) {
			var e = sld.app.globalEvent;
			$(overlay).css({'left' : e.pageX + 'px', 'top' : e.pageY + 'px'});
		}
		// CREATE DEFAULT CLOSE BUTTON
		var setupClose = function() {
			$("<a href='#close' class='overlay-close-trigger'>close</a>").prependTo(overlay).click(function(e){
				e.preventDefault();
				overlayWrapper.remove();
			});
		};
	
		// HANDLE CONTENT
		if (ajax) overlay.load(ajax.url, function(response){
			
			if (ajax.callback) ajax.callback(response);
			width = $(overlay).width();
			
			var config = {width : width}
			
			if (!tooltip) {
				config.left = '50%';
				config.marginLeft = '-' + (width / 2) + 'px';
				config.top = (window.pageYOffset + 100) + 'px';
			}
			
			overlay.css(config);
			
			if (complete) complete();
			
			setupClose();
		});
		else {
			overlay.html(content);
			width = $(overlay).width();
			
			var config = {width : width}
			
			if (!tooltip) {
				config.left = '50%';
				config.marginLeft = '-' + (width / 2) + 'px';
			}
			
			overlay.css(config);

			$('.ck', content).each(function(i, v) {
				sld.app.newEditor(v);
			});
			
			setupClose();
		}
		
		
		
		return overlayWrapper;
	}
})(jQuery);
