// JavaScript Document
/*
*		===================   Jquery JOW PLUGINS  ==============
*	
*			Version 	: 	0.1.2
*			Desarrollador 	: 	Williams Medina Aguirre
*           Modificado en   :       04-nov-2009, 3:24:47 AM
*                       
*			Copyright (c) 2009 WiLLiAms Medina A. - JOW
* 			Condiciones de uso  | 
*			GPL (http://www.opensource.org/licenses/gpl-license.php)
*
*			Description:
*
*				- Consola		ex. $.Log(mensaje);
*               - Cookies		ex. $.CreateCookie(variable,valor,dias); - $.EraseCookie(variable); - var a = $.ReadCookie(variable);
*               - Preload		ex. $.Preload(imgurl);
*               - Mascaras      ex. $("#selector").Mask(opciones);
*				- Slider		en progreso...
*                           
*			Compatibilidad	: 
*				- IE 6+	
*				- Firefox 2.0 + 
*				- Google Chrome 2, 3 + 
*				- Opera 9, 10 +
*				- Safari
*				
*	       ==========================================================
*
*/
( function($) {
		/*---------- Consola  ----------*/
        $.Log = function(msj,opcion){
			ol = $.extend( {}  , $.fn.OLog ,opcion );
			
			if($.browser.msie){
               if($.browser.version=="6.0"){
				   //No Soporta
			   }else{
				   	if (typeof console != 'object') {
						  console = {log:function() {}}
					}
			   			  console.log("> williams@exeperu.com:~$ "+msj+".");
			   }
			}else{
				if (typeof console != 'object') {
						  console = {log:function() {}}
				}else{
					if (! ('console' in window) || !('firebug' in console)) {
						var names = ['debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd'];
						window.console = {};
						for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {};
					}
					if (window.console && window.console.firebug) { 
						if(ol.clear==true){ console.clear()}
						console.log("> williams@exeperu.com:~$ "+msj+".");
					}
				}
			}
        }

        $.fn.OLog = {
                 clear 		: false
        }
		/*---------- Cookies -----------*/
		$.CreateCookie = function(name,value,days){
			if (days) {
				
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = name+"="+value+expires+"; path=/";

		}
		$.ReadCookie = function (name) {
			var nameEQ = name + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
			return null;
		}
		$.EraseCookie = function (name) {
			createCookie(name,"",-1);
		}
		/*---------Precarga-------------*/
        $.Preload =function(urls){
                var Imagenes = new Array();
                function preloading(){

                for (x=0; x<preloading.arguments.length; x++){
                                Imagenes[x] = new Image();
                                Imagenes[x].src = preloading.arguments[x];
                                $.Log("Precargando:"+Imagenes[x].src,{clear:true});
                   }
                }preloading(urls);

        }
        
		/*----------mascaras ----------*/
		
        $.fn.Mask = function(opciones){ 
		
		o = $.extend( {} ,$.fn.OMask , opciones );
		 
		 return this.each( function(){	
			
			var $obj		 	= $(this);
			var $val		 	= $(this).val();
			var $mask 			= o.Texto;
			var $mensaje 		= o.Mensaje;
			var $efecto			= { 'opacity':	'.60','filter':	'alpha(opacity=60)'}
			var $opacidad		= 1.0;
			
			$obj.val($mask);
			$obj.css({'background':'url('+o.Img+') no-repeat 0 center',
					  'border':''+o.Borde+'px solid '+o.BordeColor+'',
					  'padding':'2px 0 0 '+(o.ImgSize + 2)+'px',
					  'height':'20px'
					 })
			if ( o.Efecto == true ){
				$obj.css($efecto);
				$opacidad = 0.5;
			}
			$obj.bind("focus", function(e){
				$newobj =$(this);
				if ($newobj.val()==$mask){
					$newobj.val("");
					$newobj.animate({opacity:1.0},500)
				}
			});
			$obj.bind("blur", function(e){
				$newobj =$(this);
				
				if ($newobj.val()==""){
					$newobj.val($mask);
					$newobj.animate({opacity: $opacidad },500)
				}
			});
			
		 });
	 }
	 $.fn.OMask = {
		 Texto 		: "Hola",
		 Img 		: "user_32.png"	,
		 ImgSize	: 16,	
		 Borde		: 1	,
		 BordeColor	: "#666",
		 Efecto 	: true
	 }
	 
	 /*------------- Slider --------------*/ 
	 $.SliderH = function(Opciones){
			o = $.extend( {} , Opciones );
			var run=0;
			function UpSlide(){
				var items = o.Lista.find("li").length;
					if(items > 4){		
							if(run==0){run=1;
								linea1	=	o.Lista.find("li:eq(0)");
								linea2	=	o.Lista.find("li:eq(1)");
								o.Lista.animate({ marginTop: '0px' },0);
								o.Lista.animate({ marginTop: (linea1.height()*-2) }, o.Speed ,function(){
									linea1.remove();
									linea2.remove();
									o.Lista.append( linea1 );
									o.Lista.append( linea2 );
									o.Lista.css({ marginTop: '0px' });
									run=0;
								});
							}
					 }
			}
			function DownSlide(){
				var items = o.Lista.find("li").length;
				if(items > 4){
							if(run==0){run=1;
								linea1	=	o.Lista.find("li:last");
								linea2	=	o.Lista.find("li:last").prev();
								
								o.Lista.find("li:first").before( linea1 );
								o.Lista.find("li:first").before( linea2 );
								
									o.Lista.animate({ marginTop: linea1.height()*-1 },0);
									o.Lista.animate({ marginTop: '0px' }, o.Speed ,function(){
										run=0;
										//linea.remove();
										//o.Lista.css({ marginTop: linea.height()*-1 });
									});
							}
				}
			}
			o.Up.css({'cursor':'pointer'}).bind("click",function(){
				UpSlide();
			})
			o.Down.css({'cursor':'pointer'}).bind("click",function(){
				DownSlide();
			})
	}	
})(jQuery);