$(document).ready(function(){
	// Cargo el overlay	
	if($('#content_tags')){	$('#content_tags').overlay().load(); }	
	// Limpio las listas que están vacías.
	tags.clearListasVacias();
	// Agrego botones desplegables
	tags.addButtonsDesplegables();
	// Asigno la funcionalidad al botón desplegable	
	$('.buttonDesplegable').click(function(){ tags.toggleViewList(this); });
	// Contraigo todos los tags al mostrar el popup
	tags.hideAlltags();
	// Asigno a los checbox el creador del search.
	//$('input[type=checkbox]').click(function(){ tags.setWhereToSearchTag(this); });
	
	if($('#seleccionarAlletiquetas')){
		$('#seleccionarAlletiquetas').click(function(){
		   if ( $(this).attr('checked') == true ) {
		   		$('.tagsSimples,.tagsCompuestos,.tagsHijos').attr('checked',true);
		   }else{
		   		$('.tagsSimples,.tagsCompuestos,.tagsHijos').attr('checked',false);
		   }
		});
	}
	$('#searchProdsButton').click(function(element){
		if ( $('#buscarPorPalabra').val() == '' ) {
			setTagsForSearchQuery.showResults();
		}else{
			var error = 0; 
			$(':checkbox').each(function(){
				if( $(this).attr('checked') && $('#buscarPorPalabra').val() != '') {
					alert('La busqueda es unica, elimine su palabra o destilde las etiquetas');
					error = 1;
					return false;
				}
			});
			if(error == 0){
				$('#formBuscarPalabra').submit();
			}else{
				return;
			}
		}
	});
});
/**
 * Maneja el comportamiento de los tags
 * en el frontend
 * @type 
 */
var tags = {
	getTags: function(){	
		$('#content_tags').overlay().load();
		
		$('input[type=checkbox]').click(function(element){
			tags.selectAllCheck(element.currentTarget.id);
			tags.selectPreviousTags(element.currentTarget);
		});
	
		var altLi1 = $('#firstLiEtiqueta').innerWidth();
		var altLi2 = $('#secondLiEtiqueta').innerWidth();
		var altLi3 = $('#tirthLiEtiqueta').innerWidth();
		var alturafinal =  parseInt(altLi1)+parseInt(altLi2)+parseInt(altLi3);
		$('#listaCompletaDeEtiquetas').css('width',(parseInt(alturafinal)+110)+'px');
		
	},
	selectPreviousTags: function(tag) {
		if($(tag).is(':checked')){ 
			$(tag).parents('li').each(function(){
			    $(this).find('input').first().attr('checked', 'checked');
			})
		}
	},
	closeTags: function(){
		$('#content_tags').overlay().close();
	},
	/**
	 * Selecciona todos los
	 * tags hijos del tag padre
	 * seleccionado
	 * @param {} id
	 */
	selectAllCheck: function(id){
		var ul;
			(ul = $('#'+id).next()) && (ul = ul.next());
		tags.doChecksInputs(ul,id);
	},
	doChecksInputs: function(ul,id){
		if($('#'+id).attr('checked')){
			ul.find(':checkbox').attr('checked',true);
		}else{
			ul.find(':checkbox').attr('checked',false);	
		}
	},
	addButtonsDesplegables: function(){
		var d = 0;
		$('.isDesplegable, .items').each(function(){
		    if($(this).children('ul').length != 0){
		        $(this).prepend('<div class="buttonDesplegable" id="despliega_'+d+'">-</div>');
		        $(this).css('marginLeft','-12px');
		        d++;
		    }
		});
	},
	clearListasVacias: function(){
		$('.listaEtiquetas').each(function(){
		    if( $(this).children('li').length == 0){
		        $(this).remove();
		    }
		});
	},
	toggleViewList: function(div){
		var etiquetasHijas = $(div).parent('li').children('ul'); 
		var estado = $(etiquetasHijas).css('display');
		
		switch(estado){
			case 'none':
				$(etiquetasHijas).show();
				$(div).html('-');
			break;
			
			case 'block':
				$(etiquetasHijas).hide();
				$(div).html('+');
			break;
		}
	},
	hideAlltags: function(){
		$('.buttonDesplegable').each(function(){
     		tags.toggleViewList($(this));    
		});
	},
	setWhereToSearchTag: function(checkbox){
		
		var estado = $('#tag_padre_6').attr('checked');
		var tagsHijosTildados = [];
		var querytagsHijosTildados = '';
		
		tagsHijosTildados = tags.getHijosDeTag(checkbox);
		tagsHijosTildados.unshift( $(checkbox).val() );
		querytagsHijosTildados = tagsHijosTildados.join(',');
		
	},
	getHijosDeTag: function(checkbox){
		var tildados = [];
		$(checkbox).parent('li').children('ul').find(':checkbox;').each(function(){ 
    		if( !$(this).attr('checked') ){
    			tildados.push($(this).val());
    		}
		});
		
		return tildados;
	}
};
