/***************************
plugins by borknagar => geraldo.gonzalo@gmail.com
****************************/
jQuery(document).ready(function(){	
	/**************************
	abrir html en prettyPhoto
	**************************/
	$("a[rel^='prettyPhoto']").prettyPhoto({deeplinking:false, theme:'light_square', inline_markup:'<div class="pp_inline">{content}</div>'});
	
	var hintsConcurso = {nombre:'TU NOMBRE', apellido:'TU APELLIDO', rut:'RUT (12345678-9)', fecha_nacimiento:'FECHA DE NACIMIENTO', comuna:'COMUNA', telefono:'TELÉFONO', sexo:'', mail:'MAIL', comentario:'COMENTARIO', recibir_email:''};
	/**************************
	paso1-concurso
	**************************/
	$('.paso1-concurso img, .paso1-concurso .boton-dos').click(function(){
		$('.paso1-concurso').slideToggle(100);
		$('.paso2-concurso').slideToggle(400);
	});
	/**************************
	//contacto
	**************************/
	function formularioContacto(){
		$('#contacto :input').each(function(){
			$.data(this, 'hints', {hint:$(this).val()});
			$(this).focus(function(){
				if( $(this).val() == $.data(this, 'hints').hint ){
					$(this).val('');
				}
			}).blur(function(){
				if( $(this).val() == "" ){
					$(this).val($.data(this, 'hints').hint);
				}
			});
		});
	}
	formularioContacto();
	
	$('.enviar-contacto').click(function(){
		$('#mensaje-contacto').hide();
		$('#contacto :input').removeAttr('style');
		var te = 0;
		$(validarContacto($(':input[name="email"]'))).each(function(i){
			for(var key in this){
				te++;
			}
		});
		if( te == 0 ){
			var form = $('form#contacto');	
			$.ajax({
				url:$(form).attr('action'),
				type:'POST',
				dataType:'json',
				data:form.serialize(),
				success: function(response){
					switch(response.status){
						case 'success':	
							alert(response.msg);
						break;
						case 'error':
							alert(response.msg);
						break;
					}
				},
				error: function(event, jqXHR, ajaxSettings, thrownError){
					alert(event, jqXHR, ajaxSettings, thrownError);
				}
			});
		}else{
			$(validarContacto()).each(function(){
				for(key in this){
					$('#contacto :input[name="' + key + '"]').css('border', '1px solid #900');
				}
			});	
			$('#mensaje-contacto').show();
		}
	});
	/**************************
	//concursar
	**************************/
	var max = 500;
	$('span.comentario-max-chars').text(max);
	$('#concurso-form textarea[name="comentario"]').live('keyup', function(e){
		var text = $(this).val();
		$('span.comentario-max-chars').text( (max - text.length) <= 0 ? 0 : (max - text.length) );
		if( text.length >= max ){
			var textMax = text.substring(0, max);
			$(this).val(textMax);
		}
	});
	function formularioConcurso(){
		$('#concurso-form :input').each(function(){
			if( hintsConcurso[ $(this).attr('name') ] ){
				if( $(this).attr('type') != 'file' ) $(this).val( hintsConcurso[ $(this).attr('name') ] );
			}
			$.data(this, 'hints', {hint:$(this).val()});
			$(this).focus(function(){
				if( $(this).val() == $.data(this, 'hints').hint ){
					$(this).val('');
				}
			}).blur(function(){
				if( $(this).val() == "" ){
					$(this).val($.data(this, 'hints').hint);
				}
			});
		});
	}
	formularioConcurso();
	
	$('.paso2-concurso .cerrar').click(function(e){
		e.preventDefault();
		formularioConcurso();
		$('.paso1-concurso').slideToggle(400);
		$('.paso2-concurso').slideToggle(100);	
		$('#mensaje-concurso').hide();
	});
	
	$('.enviar-concurso').click(function(){
		$('#mensaje-concurso').hide();
		$('#concurso-form :input').css('border', '0');
		$('.mensaje-rut').hide();
		var te = 0;
		$(validar()).each(function(i){
			for(var key in this){
				te++;
			}
		});
		if( te == 0 ){
			var form = $('form#concurso-form');	
			$.ajax({
				url:$(form).attr('action'),
				type:'POST',
				dataType:'json',
				data:form.serialize(),
				success: function(response){
					switch(response.status){
						case 'success':	
							if(response.status == 'success'){
								//nuevo
								$('#mensaje-inscrito').show();
								setTimeout(function(){
									formularioConcurso();
									$('.paso1-concurso').slideToggle(400);
									$('.paso2-concurso').slideToggle(100);	
									$('#mensaje-inscrito').hide();
									$('.enviar-concurso').show();
								}, 6000);
								 /*var uploader = new qq.FileUploader({
									element: document.getElementById('file-uploader'),
									action: $(form).attr('action'),
									multiple:false,
									params: {salt: $(':hidden[name="salt"]').val(), action:'adjunto'},
									onComplete: function(id, fileName, responseJSON){
										if(responseJSON.success){
											$('.qq-uploader').remove();
											$('#mensaje-inscrito').show();
											setTimeout(function(){
												formularioConcurso();
												$('.paso1-concurso').slideToggle(400);
												$('.paso2-concurso').slideToggle(100);	
												$('#mensaje-inscrito').hide();
												$('.enviar-concurso').show();
											}, 6000);
										}
									}
								});*/
							}
						break;
						case 'error':
							alert(response.msg);
						break;
					}
				},
				error: function(event, jqXHR, ajaxSettings, thrownError){
					alert(event, jqXHR, ajaxSettings, thrownError);
				}
			});
		}else{
			$(validar()).each(function(){
				for(key in this){
					$('#concurso-form :input[name="' + key + '"]').css('border', '1px solid #900');
					if(key == 'rut'){
						$('.mensaje-rut').show();
					}
				}
			});	
			$('#mensaje-concurso').show();
		}
	});

	function validar(){
		var errores = {};
		$('#concurso-form :input:not(:button, :input[name="rut"], :radio, :hidden, :input[name=recibir_email], :input[name=mail])').each(function(){
			if( $.data(this, 'hints').hint == $(this).val()){
				errores[$(this).attr('name')] = $(this).val();
			}
		});
		if( !validarRut( $('#concurso-form :input[name="rut"]').val() ) ){
			errores['rut'] = 'RUT INVÁLIDO';
		}
		
		var reg = /^[\w\.-]+@[\w\.-]+\.\w+$/i;
		if( !reg.test( $('#concurso-form :input[name="mail"]').val() ) ){
			errores['mail'] = "EMAIl INVÁLIDO";
		}
		
		return errores;
	}
	function validarContacto(email){
		var errores = {};
		$('#contacto :input:not(:button, :hidden)').each(function(){
			if( $.data(this, 'hints').hint == $(this).val()){
				errores[$(this).attr('name')] = $(this).val();
			}
			var reg = /^[\w\.-]+@[\w\.-]+\.\w+$/i;
			if( !reg.test( $(email).val() ) ){
				errores['email'] = $(this).val();
			}
		});
		return errores;
	}
	function validarRut(value){
		if(value == ''){
			return false;
		}
		var rexp = new RegExp(/^([0-9])+\-([kK0-9])+$/);
		if(!value.match(rexp)){
			return false;
		}
		var RUT  = value.split("-");
		var elRut = RUT[0];
		var factor = 2;
		var suma = 0;
		var dv;
		for(i=(elRut.length-1); i>=0; i--){
			factor = factor > 7 ? 2 : factor;
			suma += parseInt(elRut[i])*parseInt(factor++);
		}
		var ret = true;
		dv = 11 -(suma % 11);
		if(dv == 11){
			dv = 0;
		}else if (dv == 10){
			dv = "k";
		}
		if(dv != RUT[1].toLowerCase()){
			ret= false;
		}
		return ret;
	}
});
/***************************
@name: sliderPhotos
@version: 1.0
@date: 25-03-2011 23:20:00
****************************/
(function($){
	$.fn.sliderPhotos = function(opt){
		var defaults = {
			imgSrc:[]
		};
		var options = $.extend(defaults, opt);
		
		/**************
		private methods
		***************/
		var methods = {
			ul: {},
			li: {},
			liW: 0,
			liVisibles:6,
			controls:[],
			timeout:0,
			current:0,
			speed:400,
			minHeight:600,
			ulHeight:0,
			ulWidth:0,
			timeoutinterval:10000,
			init: function($thumb){
				methods.ul = $('#lista-imagenes ul', $thumb);
				methods.li = $('#lista-imagenes ul li', $thumb);
				methods.liW = $('#lista-imagenes ul li', $thumb).first().outerWidth(true);
				methods.controls = $('#lista-imagenes, #nav-imagenes-campana .anterior, #nav-imagenes-campana .siguiente');
				
				$('#nav-imagenes-campana').mouseenter(function(e){
					$(methods.controls).animate({opacity:'1'}, 300);
				}).mouseleave(function(e){
					$(methods.controls).animate({opacity:'0'}, 300);
				});
				
				$(methods.li).each(function(i){
					var opacity = 150;
					$.data(this, 'dataThumb', {id:i});
					$(this).click(function(e){
						clearTimeout(methods.timeout);
						$('.central').stop();
						methods.setCurrentActiveLi();
						methods.setCurrent( $.data(e.currentTarget, 'dataThumb').id );
						methods.loadImage();
					}).mouseenter(function(e){
						$(this).animate({opacity:'1'}, 200).siblings().animate({opacity:'0.5'}, opacity);	
					});
				});
				
				$('#nav-imagenes-campana .anterior').click(function(){
					methods.navigate('anterior');
				});
				$('#nav-imagenes-campana .siguiente').click(function(){
					methods.navigate('siguiente');
				});
				
				methods.configureAssets();
				methods.setCurrentActiveLi();
				methods.loadImage();
			},
			configureAssets: function(){
				$('#lista-imagenes ul').width($(methods.li).outerWidth(true) * $(methods.li).size() + 'px');
				if($(methods.li).size() <= methods.liVisibles){
					$('#nav-imagenes-campana .anterior, #nav-imagenes-campana .siguiente').css('visibility', 'hidden');
				}
			},
			loadImage: function(){
				var img = $('<img />', {
					src:options.imgSrc[methods.current] + '?' + Math.random() * 9999,
					className:'central',
					css:{
						opacity:'0'
					},
					load: function(){
						var thisImg = this;
						$('.img-central img').fadeOut(300, function(){
							$('.img-central').empty().append(thisImg);
							$(this).width( '100%' );
							$('.img-central img').fadeIn(300,
								function(){
									$('.img-central').append(thisImg);
									methods.setAnimationImage(thisImg);
									methods.setCurrentActiveLi();
									methods.setCurrent('+');
								}
							);	
						});
					}
				});
			},
			setAnimationImage: function(obj){
				methods.centerDiv();
				$(obj).animate(
					{opacity:'1.0'},
					500,
					function(){
						methods.timeout = setTimeout(function(){methods.loadImage();}, methods.timeoutinterval);
					}
				);
			},
			navigate: function(dir){
				switch(dir){
					case 'anterior':
						methods.updateNavigation('<');
						$(methods.ul).animate(
							{left: '+=' + methods.liW + 'px'},
							methods.speed,
							function(){
								//TODO
							}
						);
					break;
					case 'siguiente':
						methods.updateNavigation('>');
						$(methods.ul).animate(
							{left: '-=' + methods.liW + 'px'},
							methods.speed,
							function(){
								//TODO
							}
						);
					break;
				}
			},
			//?wtf
			updateNavigation: function(dir){
				if(dir == '>'){
					$(methods.li).first().appendTo(methods.ul);
				}else if(dir == '<'){
					$(methods.li).last().prependTo(methods.ul);
				}
			},
			setCurrent: function(id){
				id == '+' ? methods.current++ : methods.current = id;
				methods.current = methods.current % ($(methods.li).size());
			},
			setCurrentActiveLi: function(){
				$(methods.li).removeClass('activo').eq(methods.current).addClass('activo');
			},
			centerDiv: function(){
				var iniW = 1440;
				var imgH = 750;
				var size = methods.resize(iniW, imgH, $(window).width());
				methods.ulWidth =  size[0] + 'px';
				methods.ulHeight = size[1] + 'px';
				
				$('#imagenes-campana').height(methods.ulHeight).width(methods.ulWidth).find('.central').height(methods.ulHeight).width(methods.ulWidth);
				$('#fade').css({top: ($('#imagenes-campana').height() - ( $('#fade').height() / 2 )) + 'px'});
				var topControl = $(window).height() >= $('#cuerpo').offset().top ? methods.min : $(window).height() - 300 + 'px';
				$('#imagenes-campana .envoltura').css({top: topControl, width:'960px', left: $('#cuerpo').offset().left + 'px', zIndex:'999'});
			},
			resize: function(initW, initH, newW){
				var ratio = initH / initW;	
            	var newH = newW * ratio;
				return [newW, newH];
			},
			pauseAnimation: function(scrolling){
				clearTimeout(methods.timeout);
				$('.img-central').stop();
			},
			restartAnimation: function(){
				methods.timeout = setTimeout(function(){methods.loadImage();}, methods.timeoutinterval);
			}
		};
		this.each(function(){
			methods.centerDiv();

			methods.init($('#nav-imagenes-campana'));
			
			$(window).resize(function(){
				methods.centerDiv();
			});
		});
		return methods;
	}
})(jQuery);

/***************************
@name: catalogo
@version: 1.0
@date: 27-03-2011 19:10:00
****************************/
(function($){
	$.fn.catalogo = function(opt){
		var defaults = {};
		var options = $.extend(defaults, opt);
		
		/**************
		private methods
		***************/
		var methods = {
			obj:{},
			ul: {},
			li: {},
			liW:0,
			liWpx:240,
			liVisibles:4,
			padding:3,
			viewSide:'front',
			liActive:null,
			liActiveId:0,
			liContainer:{},
			copy:[],
			init: function(obj, filtro){
				methods.obj = obj;
				
				if( $(methods.copy).size() == 0){
					methods.ul = $('#rotador-catalogo ul', obj);
					methods.copy = methods.ul.clone();
				}
				methods.padding = 0;
				methods.padding = $(methods.ul).find('> li').filter(function(i){
					return $(this).is(filtro);
				}).size();
				
				var l = methods.copy.find('> li').filter(function(){
					return $(this).is(filtro);	
				}).slice(-methods.padding).clone().addClass('clone');
				
				var r = methods.copy.find('> li').filter(function(){
					return $(this).is(filtro);	
				}).slice(0, methods.padding).clone().addClass('clone');
				
				var c = methods.copy.find('> li').filter(function(){
					return $(this).is(filtro);	
				}).slice(0, methods.padding).clone();
				
				methods.ul.empty().prepend(l).append(c).append(r);
				
				methods.li = $('#rotador-catalogo ul li', obj);
				methods.liW = $('#rotador-catalogo ul li:first', obj).width();
				methods.liContainer = $('#rotador-catalogo');
				
				methods.li.each(function(i){
					$(this).click(function(e){
						if( !$('#viewer .navegador .grande').size() ){
							methods.updatePosition(this);
						}else{
							if( $(this).prev().hasClass('modo-grande') ){
								methods.navigate('>');	
							}else{
								methods.navigate('<');	
							}
						}
						$(this).addClass('modo-grande');
						//
						methods.liActive = this;
						methods.liActiveId = i;
					});
				});
				//iniciar posicion de ul
				methods.preloadPreview();
				//
				$('#filtro-campana h3 a, #catalogo h2').click(function(e){
					e.preventDefault();
					//cerrar viewer
					methods.liActive = null;
					methods.li.css('marginRight', '0px');
					$(methods.li).filter(function(){return $(this).hasClass('modo-grande')}).removeClass('modo-grande');
					
					$('#viewer .navegador').empty();
					methods.viewSide = 'front';
					$('#viewer').hide();
						
					$(methods.ul).css({left: '0px', width: '0'});
					methods.li = $('#rotador-catalogo ul li');
					//TODO: filtros
					if( $(this).attr('href') == '#hombre' ){
						methods.init(methods.obj, '.hombre');
					}else if( $(this).attr('href') == '#mujer' ){
						methods.init(methods.obj, '.mujer');
					}else{
						methods.init(methods.obj, '.mujer, .hombre');
					}
					methods.navigate('=');
				});
			},
			preloadPreview: function(){
				var firstLi = methods.li.first();
				if($('.pequena img', firstLi).width() > 0){
					methods.liW = $('.pequena', firstLi).width();
					$(methods.ul).css({left: -(methods.liW * methods.padding) + 'px', width: (methods.li.size() * methods.liW) + methods.liW});
				}else{
					setTimeout(function(){methods.preloadPreview()}, 100);	
				}
			},
			url: function(){
				var url = window.location.search;
				var pattern = /\?catalogo=(\d{1,})/
				if(url && pattern.test(url)){
					$('html, body').stop().animate({scrollTop: $('#catalogo').offset().top-50}, 1000,'easeInOutExpo');
					var liFromUrl = $('ul li:not(.clone) .grande .fbk-destacado a', methods.obj).filter(function(){
						return url == $(this).attr('href');
					}).closest('li');
					methods.liActive = liFromUrl;
					methods.li.filter(function(){
						return $(this).hasClass('modo-grande');	
					}).removeClass('modo-grande');
					$(liFromUrl).addClass('modo-grande');
					methods.toggleImages(methods.li, 'cerrar');
					methods.updatePosition(liFromUrl);
				}
			},
			controls: function(){
				$('.anterior a', methods.obj).click(function(e){
					e.preventDefault();
					e.stopPropagation();
					methods.navigate('<');
				});
				$('.siguiente a', methods.obj).click(function(e){
					e.preventDefault();
					e.stopPropagation();
					methods.navigate('>');
				});
			},
			navigate: function(dir){
				$('html, body').stop().animate({scrollTop: $('#catalogo').offset().top-50}, 1000,'easeInOutExpo');
					
				methods.toggleImages(methods.li, 'cerrar');
				$(methods.li).filter(function(){return $(this).hasClass('modo-grande')}).removeClass('modo-grande');
				$('#viewer .navegador').empty();
				switch(dir){
					case '<':
						$(methods.getCenterImage()).prev().addClass('modo-grande');
						if(methods.liActive != null){
							methods.toggleImages(methods.getCenterImage(), 'abrir', dir);
						}
						methods.ul.animate({left:'+=' + methods.liW}, 300, function(){
							if(Math.abs(methods.ul.position().left) <= 1){
								$(methods.ul).css('left', -(methods.liW * methods.padding) + 'px');							
							}
						});
					break;
					case '>':
						$(methods.getCenterImage()).next().addClass('modo-grande');
						if(methods.liActive != null){
							methods.toggleImages(methods.getCenterImage(), 'abrir', dir);
						}
						methods.ul.animate({left:'-=' + methods.liW}, 300, function(){
							if( Math.abs( methods.ul.position().left) + (methods.liVisibles * methods.liW) >= methods.ul.width()){
								$(methods.ul).css('left', -(methods.liW * methods.liVisibles) + 'px');								
							}
						});
					break;
					case '=':
						$(methods.ul).css('left', -(methods.liW * methods.liVisibles) + 'px');
					break;
				}
			},
			toggleImages: function(li, action, dir){
				if(action == 'cerrar'){
					methods.li.css('marginRight', '0px');
					methods.liContainer.removeAttr('style');
				}else if(action == 'abrir'){
					if( !$('#viewer').children('.grande').size() ){
						methods.liActive == null ? methods.liContainer.animate({height:$('.grande', methods.li).height()}, 300) : methods.liContainer.height($('.grande', methods.li).height());
					}
					var clone = {};
					if(dir == '>'){
						clone = $(li).next().find('.grande').clone();
						$(li).css('marginRight', methods.liW + 'px');
					}else if(dir == '<'){
						clone = $(li).prev().find('.grande').clone();
						$(li).prev().css('marginRight', methods.liW + 'px');
					}else{
						clone = $(li).find('.grande').clone();
						$(li).prev().css('marginRight', methods.liW + 'px');
					}
					$(clone).appendTo($('#viewer .navegador').empty());
					/*if(jQuery.support.leadingWhitespace){
						Cufon.refresh();
					}else{
						 Cufon.replace('#viewer h2, #viewer h3, #viewer h4, #viewer h5');
					}*/
					Cufon.replace('#viewer h2, #viewer h3, #viewer h4, #viewer h5');
					
					$('a.pantalla-completa').prettyPhoto({animationSpeed:'slow',theme:'light_square',slideshow:2000, allow_resize:false, deeplinking:false});
					methods.loadImage(clone, '_frente');
					methods.setFBLikeButton( window.location.protocol + '//' + window.location.host + $('#viewer span.fbk-destacado a').attr('href') );
					//cerrar grande
					$('#viewer .navegador span.cerrar a').click(function(e){
						e.preventDefault();
						e.stopPropagation();
						methods.liActive = null;
						methods.li.css('marginRight', '0px');
						$(methods.li).filter(function(){return $(this).hasClass('modo-grande')}).removeClass('modo-grande');
						methods.liContainer.animate({height:'-=356'}, 300, function(){
							$('#viewer .navegador').empty();
							methods.viewSide = 'front';
							$('#viewer').hide();
						});
						
					});
					//cargar espalda y/o frente
					$('#viewer .cargar-otra-vista').click(function(e){
						e.stopPropagation();
						if(methods.viewSide == 'front'){
							methods.loadImage(clone, '_espalda');
							methods.loadPreview(this, '_frente-chica');
							methods.viewSide = 'back';
						}else if(methods.viewSide == 'back'){
							methods.loadImage(clone, '_frente');
							methods.loadPreview(this, '_espalda-chica');
							methods.viewSide = 'front';
						}
					});
				}
			},
			setFBLikeButton: function(url){
				$('.fb-recommend').remove();
				$('#fb-root').empty();
				// Build and inject Like button		
				var fb_url = url;
				fb_like = '<div class="fb_recommend"><fb:like href="'+fb_url+'" layout="button_count" show_faces="true" action="like" colorscheme="light"></fb:like></div>';
				$('#viewer .fbk-destacado').append(fb_like);
				// Load in FB javascript SDK
				$('body').append('<div id="fb-root"></div>');
				window.fbAsyncInit = function() {
					FB.init({status: true, cookie: true, xfbml: true});
				};
				(function() {
					var e = document.createElement('script'); e.async = true;
					e.src = document.location.protocol + '//connect.facebook.net/es_CL/all.js';
					document.getElementById('fb-root').appendChild(e);
				}());
			},
			loadPreview: function(holder, view){
				$('<img />', {
					src: $('#viewer span.urlhidden').text() + view + '.jpg',
					id:'view-chica',
					className:view,
					load: function(){
						$(this).appendTo($('#viewer .cargar-otra-vista').empty());
					}
				});
			},
			loadImage: function(holder, view){
				$('<img />', {
					src: $('#viewer span.urlhidden').text() + view + '.jpg',
					id:'view-grande',
					css:{opacity:'0'},
					className:view,
					load: function(){
						$(this).appendTo($('#viewer .imagenes').empty()).animate({opacity:'1'}, 300);
						$('#viewer').show().find('.navegador .grande').fadeIn();
					}
				});
			},
			getCenterImage: function(){
				var leftUl = Math.abs(methods.ul.position().left), li = {};
				methods.li.each(function(i){
					if($(this).position().left == leftUl){
						li = $(this).next();
					}
				});
				return li;
			},
			updatePosition: function(li){
				methods.ul.animate(     
					{left: - ( $(methods.li).index($(li).prev()) * methods.liW )},
					500,
					function(){
						methods.toggleImages(li, 'abrir');
					}
				);
			}
		};
		return this.each(function(){
			$('html').attr("xmlns:og","http://www.facebook.com/2008/fbml").attr("xmlns:fb","http://www.facebook.com/2008/fbml");
			methods.init(this, '.hombre, .mujer');
			methods.controls();
			methods.url();
		});
	}
})(jQuery);

/********************
comentarios
*********************/
(function($){
	$.fn.comentarios = function(opt){
		var defaults = {
			form:{},
			categorias:0,
			comentarios:0
		};
		var options = $.extend(defaults, opt);
		var methods = {
			init:function(data){
				$('h3.agregar-comentario').click(function(){
					$(options.form).toggle();	
				});
				$('.enviar-comentario').click(function(){
					methods.send(options.form.serialize());	
				});
				
				methods.navigation();
			},
			load: function(){
				$.ajax({
					url: $(options.form).attr('action'),
					dataType:'html',
					type:'POST',
					data: {action:'comentarios', id_cat:1},
					success: function(response){
						$('.comentarios-contenedor').empty().append(response);	
					}
				});
			},
			send: function(data){
				$.ajax({
					url: $(options.form).attr('action'),
					dataType:'html',
					type:'POST',
					data: data,
					success: function(response){
						//alert(response);
						methods.load();
					}
				});
			},
			navigation: function(){
				
			}	
		};
		return this.each(function(){
			options.form = $('form.comentario');
			//methods.init();
			//methods.load();
		});	
	}
})(jQuery);
/**********************
posts por categorias
***********************/
(function($){
	$.fn.posteos = function(opt){
		var defaults = {
			url:'',
			categorias:[],
			ppp:0,
			categoria_actual:0,
			velocidad:500,
			total_paginas:0,
			total_comentarios:0,
			pagina_actual:0,
			comentarios_por_pagina:5,
			offset:0,
			total_comentarios_superior:0,
			pagina_actual_superior:0,
			tipo:'',
			hints: {author:'Nombre', email:'Mail', comment:'Comentario'},
			errores:[]
		};
		var options = $.extend(defaults, opt);
		var methods = {
			init: function(holder){
				if(options.tipo == 'superior'){
					methods.navigation();
				}
				methods.postEvents(holder);
			},
			navigation: function(){
				for(var i = 0; i < $(options.categorias).size(); i++){
					var li = $('<li/>', {html: $('<a/>', {text:i, href:'#' + i}), className: i == 0 ? 'active' : ''});
					$('#paginador-post').append(li);
				}
			},
			load: function(holder){
				$.ajax({
					url: options.url,
					type: 'POST',
					dataType:'json',
					data:{action:'articulos', categorias:options.categorias[options.categoria_actual], ppp:options.ppp, cpp:options.comentarios_por_pagina, offset:options.offset},
					success: function(response){
						switch(options.tipo){
							case 'superior':
								$('.boton-mas', holder).removeClass("boton-mas-cerrar");
								$('.boton-mas').siblings('.contenido-post').hide();
								$(response).each(function(){
									var obj = this;
									for(key in obj){
										$(obj[key]).each(function(){
											var obj2 = this;
											for(k in obj2){
												$(holder).find('.ajax-' + k).empty().html(obj2[k]);
												$('.ajax-ano', holder).addClass('ano-' + obj2['ano']);
												$('.ajax-mes', holder).addClass('mes-' + obj2['mes']);
												$('#comment_post_ID', holder).val(obj2['id']);
												options.total_comentarios = obj2['total-comentarios'];
												options.total_paginas = Math.ceil(options.total_comentarios_superior / options.comentarios_por_pagina) - 1;
												options.total_comentarios_superior = obj2['total-comentarios-superior'];
											}
										});
									};
								});
								
							break;
							case 'inferior':
								$('.contenedor-lista-post .clones').remove();
								$(response).each(function(){
									var obj = this;
									for(key in obj){
										var clone = $('.contenedor-lista-post .clone', holder).clone();
										$(clone).removeAttr('style').removeClass('clone').addClass('clones');
										$(obj[key]).each(function(){
											var obj2 = this;
											var tc, tp, pa, cat;
											for(k in obj2){
												$(clone, holder).find('.ajax-' + k).empty().html(obj2[k]);
												$('#comment_post_ID', clone).val(obj2['id']);
												options.total_comentarios = obj2['total-comentarios'];
												tc = obj2['total-comentarios'];
												tp = Math.ceil(obj2['total-comentarios'] / options.comentarios_por_pagina);
												pa = 0;
												cat = obj2['categoria'];
											}
											$('.data .tc', clone).text(tc);
											$('.data .tp', clone).text(tp);
											$('.data .pa', clone).text(pa);
											$('h2.ajax-categoria').text(cat);
										});
										methods.refreshNavigationInferior(clone);
										$(clone).insertAfter('.contenedor-lista-post .post-wrapper h2');
										methods.hints('.seccion-comentarios-lista form', clone);
									};
								});
							break;
						}
						$('.ajax-post .post-wrapper, .contenedor-lista-post .post-wrapper').animate({opacity:'1'}, options.velocidad / 2);
						methods.refreshCommentNavigation(holder);
						Cufon.refresh();
					}
				});	
			},
			comment: function(holder, form){
				var formObj = $(form, holder);
				$.ajax({
					url: options.url,
					type: 'POST',
					dataType:'html',
					data:formObj.serialize(),
					success: function(response){
						//methods.refreshComments(holder, options.pagina_actual_superior);
						methods.hints(form);
						$('.cargando', holder).hide();	
					},
					beforeSend: function(jqXHR, settings){
						$('.cargando', holder).show();	
					}
				});	
			},
			refreshCommentNavigation: function(holder){			
				if(options.total_comentarios_superior <= options.comentarios_por_pagina){
					$('.paginador-comentarios', holder).hide();
				}else{
					$('.paginador-comentarios', holder).show();	
				}
				
				if(options.pagina_actual_superior <= 0){
					$('.paginador-comentarios li.anteriores', holder).hide();
				}else{
					$('.paginador-comentarios li.anteriores', holder).show();
				}
				//console.log(options.pagina_actual_superior, options.total_paginas);
				if(options.pagina_actual_superior == options.total_paginas){
					$('.paginador-comentarios li.siguiente', holder).hide();
				}else{
					$('.paginador-comentarios li.siguiente', holder).show();
				}
			},
			refreshNavigationInferior: function(clone){
				if( parseInt($('.data .tc', clone).text()) <= options.comentarios_por_pagina){
					$('.paginador-comentarios', clone).hide();
				}else{
					$('.paginador-comentarios', clone).show();
				}
				
				if($('.data .pa', clone).text() <= 0){
					$('.paginador-comentarios li.anteriores', clone).hide();
				}else{
					$('.paginador-comentarios li.anteriores', clone).show();
				}
				
				if($('.data .pa', clone).text() > $('.data .tp', clone).text() + 1){
					$('.paginador-comentarios li.siguiente', clone).hide();
				}else{
					$('.paginador-comentarios li.siguiente', clone).show();
				}
			},
			refreshComments: function(holder, offset){
				var formObj = $('form', holder);
				$.ajax({
					url: options.url,
					type: 'POST',
					dataType:'json',
					data:{action:'comentarios', ID:$(formObj).find('input[name=comment_post_ID]').val(), offset:offset, number:options.comentarios_por_pagina},
					success: function(response){
						$(formObj).parent().find('.comentarios-contenedor').empty().append(response.html);
						if(options.tipo == 'superior'){
							$('.comentarios-contenedor').animate({opacity:'1'}, options.velocidad / 2, function(){
								methods.refreshCommentNavigation(holder);
							});
						}
						Cufon.refresh();
						
					}
				});
			},
			postEvents: function(holder){
				//post principal
				$('.boton-mas', holder).click(function(e){
					e.preventDefault();	
					$(this).toggleClass("boton-mas-cerrar");
					$(this).siblings('.contenido-post').slideToggle(options.velocidad);
				});
				//post antiguos
				$('.boton-mas-lista', holder).live('click', function(e){
					e.preventDefault();	
					$(this).toggleClass("boton-mas-lista-cerrar");
					$(this).siblings('.contenido-post').slideToggle(options.velocidad);
					$(this).parent().siblings('.seccion-comentarios-lista').slideToggle(options.velocidad);
				});
				//toggle formulario de comentarios
				$('.agregar-comentario, .cerrar-comentario', holder).click(function(e){
					$('form.comentario').slideToggle(options.velocidad);	
				});
				//navegar por comentarios
				if(options.tipo == 'superior'){
					$('.paginador-comentarios li a', holder).click(function(e){
						$('.paginador-comentarios', holder).hide();
						e.preventDefault();	
						switch($(this).attr('href')){
							case '#anteriores':
								options.pagina_actual_superior--;
							break;
							case '#siguientes':
								options.pagina_actual_superior++;
							break;
						}
						$('.comentarios-contenedor', holder).animate({opacity:'0'}, options.velocidad / 2, function(){
							methods.refreshComments(holder, options.pagina_actual_superior * options.comentarios_por_pagina);
						});
					});
				}else if(options.tipo == 'inferior'){
					$('.paginador-comentarios li a').live('click', function(e){
						e.preventDefault();	
						var clone = $(this).closest('.clones');
						var pa = parseInt($('.data .pa', clone).text()); 
						switch($(this).attr('href')){
							case '#anteriores':
								$('.data .pa', clone).text( pa - 1 );
							break;
							case '#siguientes':
								$('.data .pa', clone).text( pa + 1 );
							break;
						}
						methods.refreshComments(clone, parseInt($('.data .pa', clone).text()));
						methods.refreshNavigationInferior(clone);
					});
				}
				//navegar por categorias
				$('#nav-post span.anterior').click(function(e){
					e.stopPropagation();
					methods.categoriaActual('-');
					$('.ajax-post .post-wrapper, .contenedor-lista-post .post-wrapper').animate({opacity:'0'}, options.velocidad / 2, function(){
						methods.load(holder);
					});
				});
				$('#nav-post span.siguiente').click(function(e){
					e.stopPropagation();
					methods.categoriaActual('+');
					$('.ajax-post .post-wrapper, .contenedor-lista-post .post-wrapper').animate({opacity:'0'}, options.velocidad / 2, function(){
						methods.load(holder);
					});
				});
				//validar form ultimo
				$('#paginador-post li').click(function(e){
					e.preventDefault();	
					e.stopPropagation();
					methods.categoriaActual(parseInt( $(this).find('a').attr('href').substring(1) ));
					$('.ajax-post .post-wrapper, .contenedor-lista-post .post-wrapper').animate({opacity:'0'}, options.velocidad / 2, function(){
						methods.load(holder);
					});
					
				});
				if(options.tipo == 'inferior'){
					//validar form antiguos
					$('.seccion-comentarios-lista form .enviar-comentario-chico').live('click', function(){
						$(':input', $(this).parent('form')).removeAttr('style');
						methods.validateForm( $(this).parent('form') );
						if( options.errores.length > 0 ){
							for(var i = 0; i < options.errores.length; i++){
								$(':input[name=' + options.errores[i] + ']', $(this).parent('form') ).css('border', '1px solid #900');
							}
						}else{
							methods.comment(holder, $(this).parent('form'));
						}
					});
				}else if(options.tipo == 'superior'){
					$('.seccion-comentarios form .enviar-comentario').click(function(){
						$('.seccion-comentarios form :input').removeAttr('style');
						methods.validateForm( $('.seccion-comentarios form') );
						if( options.errores.length > 0 ){
							for(var i = 0; i < options.errores.length; i++){
								$('.seccion-comentarios form :input[name=' + options.errores[i] + ']').css('border', '1px solid #900');
							}
						}else{
							methods.comment(holder, $('form.comentario'));
						}
					});
				}
				
			},
			updateNavigation: function(){
				$('#paginador-post li').removeClass('active');
				$('#paginador-post li').eq(options.categoria_actual).addClass('active');
			},
			categoriaActual: function(id){
				var largoCategorias = $(options.categorias).size();
				switch(id){
					case '+':
						options.categoria_actual++;
						options.categoria_actual = options.categoria_actual == largoCategorias ? 0 : options.categoria_actual;
					break;	
					case '-':
						options.categoria_actual--;
						options.categoria_actual = options.categoria_actual < 0 ? largoCategorias - 1 : options.categoria_actual;
					break;
					default:
						options.categoria_actual = id;
					break;	
				}
				methods.updateNavigation();
			},
			validateForm: function(form){
				options.errores = new Array();
				$(':input', form).each(function(){
					var val = $(this).val();
					switch( $(this).attr('name') ){
						case 'author':
							var chars = /^(\w)+/gi;
							if(!chars.test(val) || val == $.data(this, 'hints').hint){
								options.errores.push($(this).attr('name'));
							}
						break;
						case 'comment':
							var comment = /^(.){1,500}$/gi;
							if(!comment.test(val) || val == $.data(this, 'hints').hint){
								options.errores.push($(this).attr('name'));
							}
						break;
						case 'email':
							var email = /^[\w\.-]+@[\w\.-]+\.\w+$/gi;
							if(!email.test(val) || val == $.data(this, 'hints').hint){
								options.errores.push($(this).attr('name'));
							}
						break;
					}
				});
			},
			hints: function(form){
				$(':input', form).each(function(){
					if( options.hints[ $(this).attr('name') ] ){
						$(this).val( options.hints[ $(this).attr('name') ] );
					}
					$.data(this, 'hints', {hint:$(this).val()});
					$(this).focus(function(){
						if( $(this).val() == $.data(this, 'hints').hint ){
							$(this).val('');
						}
					}).blur(function(){
						if( $(this).val() == "" ){
							$(this).val($.data(this, 'hints').hint);
						}
					});
				});	
			}
		};
		return this.each(function(){
			methods.init(this);
			methods.hints('.seccion-comentarios form');
			methods.load(this);
			var max = 500;
			if(options.tipo == 'superior'){
				var pattern = /\?articulo=[0-9]+$/gi
				if(pattern.test(window.location.search)){
					$('html, body').stop().animate({
						scrollTop: $('#emergente').offset().top-50
					}, 1500,'easeInOutExpo');
				}
				
				$('#comment').keyup(function(){
					var chars = parseInt($(this).val().length);
					var total = max - chars;
					$(this).siblings('.caracteres').text(total);
					if( total < 0 || total > max ){
						$(this).siblings('.caracteres').addClass('exceso-caracteres');
						$(this).prev('.msg').show();
					}else{
						$(this).siblings('.caracteres').removeClass('exceso-caracteres');
						$(this).prev('.msg').hide();
					}
				});
			}else{
				$('.comment-chico').live('keyup', function(){
					var chars = parseInt($(this).val().length);
					var total = max - chars;
					$(this).siblings('.caracteres').text(total);
					if( total < 0 || total > max ){
						$(this).siblings('.caracteres').addClass('exceso-caracteres');
						$(this).prev('.msg').show();
					}else{
						$(this).siblings('.caracteres').removeClass('exceso-caracteres');
						$(this).prev('.msg').hide();
					}
				});	
			}
		});		
	}
})(jQuery);


