/************************************************
** VERSION: 0.19
** FECHA: 16/04/2009
** AUTOR: UBALDO COTTA
** Esta versión necesita jQuery en noconflict:>> jQuery.noConflict();

  Ejemplos:
  
  MinMax
    JQuery:
		$('#box').setFondo();
		$('#caja').setFrente({'width': 300,'height': 300});	
  
    HTML
		<a href='javascript:sacamas()'>sacar mas</a>
		<div id='box'></div>
		<div id='caja'>
			<a href='javascript:sacamas()'>sacar menos</a>
		<div>  
    
    JavaScript:
		function masinfo() { $('#caja').maximiza(); }	
		function menosinfo() { $('#caja').minimiza(); }	


  ReadyOnLoad
    JQuery:
       $("body").readyOnLoad("#imgcontainer img", "alert('las imagenes fueron cargadas')");
       
    Note: Use this method ONLY with body element.

  animateMenu:
  	  JQuery:
  	  	$('#menu').animateMenu();
  	  HTML:
  	  	<ul id='menu'>
  	  		<li>uno</li><li>dos</li><li>tres</li>
  	  	</ul>

*/

(function($){
	//$.fn.setFondo.defaults = { layer: ''}
	$.fn.debug = function(obj) {
		if (window.console && window.console.log)
			window.console.log(obj);	
		else
			alert(obj);
	}	
	
	$.fn.animateMenuDefaults = {
		animatePadding: 20,
		defaultPadding: 0,
		animateBGColor: "#ffffff",
		defaultBGColor: "#eeee",
		evenColor: '#ccc',
		oddColor: '#eee',
		coloredItems: 0,
		onloadtime: 2000,
		opacityOut: 100,
		opacityIn: 200,
		onmouseover_class: '',
		onmouseout_class: '',
		active_class: 'sliding-active'
	};
	
	$.fn.setFondoDefaults = { 'background': '#000', 'layer': null };
	$.fn.setFrenteDefaults = { 'width': 200, 'height': 200 };
	$.fn.readyOnLoadDefaults = { method: 'alert("test");', images: "body img"};
	
	$.fn.extend({ 
		//plugin name - animatemenu
	/******************************************************************
		animateMenu: function(options) {
			var options = $.extend($.fn.animateMenuDefaults, options);
		
			return this.each(function() {
				var o =options;
				var obj = $(this);				
				var items = $("li", obj);
				$(this).fadeTo(0, 0);
				$(this).fadeTo(options.onloadtime, 1);
				
				if (o.coloredItems) {
					$("li:even", obj).css('background-color', o.evenColor);				
					$("li:odd", obj).css('background-color', o.oddColor);	
				}
				items.each(function() {
					if ($(this).hasClass(options.active_class))
						return;
					$(this).animate({opacity: 0.2}, 0);
				});
				items.mouseover(function() {
					items.stop();
					items.each(function() {
						if ($(this).hasClass(options.active_class))
							return;
						$(this).animate({opacity: 0.5}, options.opacityOut);
					});
					if (!$(this).hasClass(options.active_class)) {
						$(this).stop();
						$(this).animate({opacity: 1}, options.opacityIn);
					}
				}).mouseout(function() {
					items.stop();
					items.each(function() {
						if ($(this).hasClass(options.active_class))
							return;
						$(this).animate({opacity: 0.2}, options.opacityIn);
					});
				});
			});
		},
		***************/
		setFondo: function(options) {
			var opts = $.extend($.fn.setFondoDefaults, options);
			$.fn.setFondoDefaults = opts;
			
			return this.each(function() {
				// Preparamos los atributos de la capa box
				var box = $(this);
				$.fn.setFondoDefaults.layer = this;
				box.hide();
				box.css('background', opts.background);
				box.css('position', 'absolute');
				box.css('top', 0); 	box.css('left', 0); box.css('width', '100%'); box.css('height', '100%');
				box.fadeTo(0, '0.9');
				// hack para ie
				$('body').css('height', '100%');
				//$('body').css('height': '100%');	
			});
		},
		setFrente: function(options) {
			var opts = $.extend($.fn.setFrenteDefaults, options);
			//$.fn.setFrenteDefaults = opts;
			
			return this.each(function() {
				// Preparamos los atributos de la capa box
				//$.fn.setFrenteDefaults.layer = this;
				var box = $(this);
				box.hide();
				box.css('position', 'absolute');
				box.css('width', opts.width);
				box.css('height', opts.height);
				//box.css('background', 'blue');
				box.css('top', $(window).height() / 2 - (opts.height /2));
				box.css('left', $(window).width() / 2 - (opts.width /2));
				box.fadeTo(0, '0.9');
				$(window).bind('resize', function() {
					box.css('top', $(window).height() / 2 - (opts.height /2));
					box.css('left', $(window).width() / 2 - (opts.width /2));
				
				});
			});
		},
		maximiza: function() {
			return this.each(function() {
				var box = $(this);
				box.stop();
				fondo = $($.fn.setFondoDefaults.layer);
				fondo.stop();
				fondo.css('zIndex', 998);
				fondo.fadeTo(0,0);
				
				fondo.show();
				fondo.fadeTo(600, 0.8, function () {
					box.fadeTo(0, 0);
					box.css('zIndex', 999);
					box.show();
					box.fadeTo(600, 1);
				});
			});
		},
		minimiza: function() {
			return this.each(function() {
				var box = $(this);
				fondo = $($.fn.setFondoDefaults.layer);
				box.stop();
				fondo.stop();
				box.fadeTo(300, 0, function() {
					$(this).hide()
					fondo.fadeTo(600, 0, function() {$(this).hide()});
				});
			});
		},
		readyOnLoad: function(options) {
			var opts = $.extend($.fn.readyOnLoadDefaults, options);	
			$.fn.readyOnLoadInterval = readyOnLoadInterval;
			return this.each(function() {
				$.fn.readyOnLoadtimer = setInterval('jQuery("body").readyOnLoadInterval()', 100);
			});
			function readyOnLoadInterval() {
				var bImgLoaded = true;
				$(opts.images).each(function() {
					if ($(this).attr("complete") == false)
						bImgLoaded = false;
				});
				if (bImgLoaded) {
					clearInterval($.fn.readyOnLoadtimer);
					eval(opts.method);
				}
			}
		}
		
		
		
		
		
		
		
	});
})(jQuery);


