/*
* jQuery 1.2.1 Plugin
* plugin: light modal
* author: Alexandre Quinto (kintobr[at]gmail.com)
* 
* example: $('div.modal').modalToggle()
* params: 
*	zIndex: 12000,
*	lock: false,
*	fade: true,
*	cssClass: 'modal',
*	overlayAlpha: 50,
*	overlayCssClass: 'overlay'
*/

(function($) {
	var config = {}
	$.fn.modalToggle = function(config){
		var $this = $(this);
		config = $.modalConfig(config, $this);
		$.overlay(config, $this);
		$.modalDraw($this, config);
		$this.hasClass(config.cssClass) == true ? $this.removeClass(config.cssClass) : $this.addClass(config.cssClass);
	}
	$.modalDefaults = {
		zIndex: 12000,
		lock: false,
		fade: true,
		cssClass: 'modal',
		overlayAlpha: 50,
		overlayCssClass: 'overlay',
		callbackOut: function(){  }
	}
	$.modalConfig = function(config, element){
		config = jQuery.extend($.modalDefaults, config);
		return config;
	}
	$.modalDraw = function(element, config){
		var overlay = $('div.' + config.overlayCssClass);
		element.css('z-index', config.zIndex);
		if(element.is(':visible')){
			if (config.fade) {
				overlay.fadeOut();
				element.fadeOut(config.callbackOut);
			} else {
				overlay.hide();
				element.hide(config.callbackOut);
			}
		} else {
			if (config.fade) {
				overlay.fadeIn();
				element.fadeIn();
			} else {
				overlay.show();
				element.show();
			}
		}
	}
	$.setHeight = function(){ var doc = $(document).height(); var win = $(window).height(); return doc > win ? doc : win; }
	$.setWidth = function(){ var doc = $(document).width(); var win = $(window).width(); return doc > win ? doc : win; }
	$.overlay = function(config, element){
		$('div').hasClass(config.overlayCssClass) == false ? $('<div class="' + config.overlayCssClass + '"></div>').prependTo(document.body).css({'filter':'alpha(opacity='+config.overlayAlpha+')', 'opacity': config.overlayAlpha / 100, '-moz-opacity': config.overlayAlpha / 100, 'z-index': config.zIndex - 1}).height($.setHeight()).width($.setWidth()).unbind().click(function(){ $.overlayClick(element, config); }) : null;
		if($.browser.msie && $.browser.version.indexOf('6') != -1)
			$('iframe').hasClass('ie6Fix') == false ? $('<iframe class="ie6Fix" frameborder="0" tabindex="-1" src="javascript: false" />').prependTo(document.body).css({'filter':'alpha(opacity=100)', 'position': 'absolute', 'z-index': 'auto', 'top': 0, 'left': 0}).height($.setHeight()) : $('iframe').remove();
	}
	$.overlayClick = function(element, config){ 
		if (!config.lock) $('div.'+config.cssClass).modalToggle(config); 
		return false;
	}
})($);
