$(function() {

	//codigo encargado de hacer limpieza previa a mostrar los resultados, hacer las validaciones correspondientes y ejecutar search con filtros.
	//-----------------------------------------------------------------------------------------------------------------------------------------
	
	$("#btnSearchNew").click(function (){
		
		//limpieza
		$(".introSearch").html("<b>Buscando...</b>");
		$(".introSearch").html("");
		$(".resellerList").html("");
		$(".introTitle").hide();
		$("#filtroNameProducto").html("");
		$("#filtroImgProducto").html("");
		$("#infoProducto").hide();
		
		//-----------------------------------------------------------------------
		
		//validaciones
		//busco si hay lineas de productos marcadas
		var checkedLineaProducto=false;
		$("[name=idLineaProducto]").each(function(){		
			checkedLineaProducto = checkedLineaProducto || $(this).attr("checked")		
		});
		
		//busco si hay perfiles comerciales marcadas
		var checkedPerfilComercial=false;
		$("[name=tbTipoPerfilComercial]").each(function(){
			checkedPerfilComercial = checkedPerfilComercial || $(this).attr("checked")		
		});
		
		//obtengo el valor del idEstado
		var idEstado = $("#idEstado").val();

		var hayError=false;
		var msgError="";
		if(checkedLineaProducto == false){
			//hayError=true;
			msgError="Seleccione una linea de producto"
		}
		
		if(idEstado == ""){
			hayError=true;
			msgError="Debe ingresar una provincia."
		}
		
		if(checkedPerfilComercial == false){
			hayError=true;
			msgError="Debe ingresar un lugar donde comprar."
		}
		
		if(hayError){
			alert(msgError)
			return;
		}
		
		//deshabilito barra de ciudad, y habilito circulo de busqueda
		$("#gifBar").unbind();
		$("#gifCircle").bind("ajaxSend", function(){
			$(".introSearch").html("<b>Buscando...</b>")
			$(this).show();
		}).bind("ajaxComplete", function(){
			//$("[class=introSearch]").html("")
			$(this).hide();
		});
		
		//-----------------------------------------------------------------------
		
		//ejecuta busqueda
		var query = $().doBuildQuery();			
		$.getJSON("/dev/resellers/default.asp?query=" + query + "&doAction=doSearch", function(json){
			
			$().loadFlatList(json.resellers,json.sysMessages);
			
			//verifico que no venga con el qs armado
			if(location.href.search("/?/")){
				//voy al principio de la pantalla
				location.href="#titleReseller"
				location.hash="query=" + query + "&doAction=doInitSearch";
			}
		});
		
	});
	
	//--------------------------------------------------------------------------------------------------------------
	
	//codigo encargado de hacer la limpieza de los datos de los resultados de la busqueda.
	//------------------------------------------------------------------------------------
	
	$("#btnClean").click(function (){
	
		//limpio los datos de la busqueda
		$("[class=resellerList]").html("");
	
		//--------------------------------------------------------------------
		//limpio los datos de la info del produto, y oculto el div contenedor
		$("#filtroNameProducto").html("");
		$("#filtroImgProducto").html("");
		$("#infoProducto").hide();

		//--------------------------------------------------------------------
		
		//limpio la informacion del titulo, y hago que vuelva a aparecer la info de busqueda.
		$(".introTitle").show();
		$(".introSearch").html("<b>Búsqueda</b><br>Seleccione las condiciones y presione Buscar");
		$(".infoUser").hide();
		$(".borderInfo").hide();
		
	});
	
	//--------------------------------------------------------------------------------------------------------------
	
	//codigo encargado de asignar al enter de Razon Social, la busqueda por ajax.
	//---------------------------------------------------------------------------
	$("#razonSocial").keypress(function(event){
	
		//alert("razonSocial");
		if(event.keyCode == '13'){
			$("#btnSearchNew").click();
			return false;
		}
		
	});
	
	//--------------------------------------------------------------------------------------------------------------
	
	//funciones
	//---------
	
	$.fn.doBuildQuery = function(datos) {
		
		var cad = ""
		
		cad += getCadena($("[name=idEstado]").attr("value"),$("[name=idEstado]").attr("criterio"));
		cad += getCadena($("[name=idCiudad]").attr("value"),$("[name=idCiudad]").attr("criterio"));
		cad += getCadena($("[name=razonSocial]").attr("value"),$("[name=razonSocial]").attr("criterio"));

		//cargo los values del checkList
		var aux="";
		$('[name=idLineaProducto]').each(function(i){
		
			if( $(this).attr('checked') == true )
				aux += $(this).attr("value") + ","
		
		});
		if(aux!=""){
			cad += "idLineaProducto:in:" + getCadenaValida(aux) + ";";
		}

		var aux="";
		$('[name=tbTipoPerfilComercial]').each(function(i){
		
			if( $(this).attr('checked') == true)
				aux += $(this).attr("value") + ","
		
		});
		if(aux!=""){
			cad += "idPerfilComercial:in:" + getCadenaValida(aux) + ";";
		}
		
		//alert(cad)
		
		$("[name=queryFilter]").attr("value",cad)
		
		//------------------------------------------------------------------------------------------
		
		function getCadenaValida(cadena){
			
			var aux = cadena.substring(cadena.length -1,cadena.length);
			
			if( aux == ",")
				return cadena.substring(0,cadena.length -1)
			return cadena
		
		}
		
		//------------------------------------------------------------------------------------------
		
		function getCadena(value,criterio){
		
			if( value ==  "" )
				return ""
			return criterio + ":" + value + ";";
		}
		
		return cad;
		
	};
	
	//------------------------------------------------------------------------
	
	$.fn.loadFlatList = function(json,sysMessages) {
		
		// cargo el titulo de la seccion

		$(".introSearch").html(sysMessages);

		// si hay mas de un registro, aparece la info para el usuario.
		if(json.length >1)
			$(".infoUser").show();
		
		for (var x in json){

			//clono 
			var resellerTab = $("#resellerTab").clone();
			var local = $(resellerTab).find("#local").clone();

			//agrego fondo celeste a Epson Argentina
			if(json[x].idReseller == "Epson")
				$(resellerTab).find("#resellerItem").attr("style","background-color:white;width:406px;");
			
			
			//seteo lo que me viene por json
			$(resellerTab).find(".idReseller").html(json[x].idReseller);
			$(resellerTab).find(".razonSocial").html(json[x].razonSocial);
			$(resellerTab).find(".webSite").html(json[x].webSite);
			$(resellerTab).find(".email").html("<a href='mailto:" + json[x].email + "'>" + json[x].email + "</a>");
			if(json[x].email == "") $(resellerTab).find(".email").hide();
			$(resellerTab).find(".sucursales").attr("id","sucursal_" + x);
			$(resellerTab).find(".reseller").attr("id",x + "A");
			$(resellerTab).find(".tbPerfilComercial").html(json[x].labelPerfilComercial);
			$(resellerTab).find(".tbPerfilComercial").attr("id",json[x].idPerfilComercial);
			$(resellerTab).find(".tbLineaProducto").html("<font color='red'>" + json[x].labelLineaProducto + "</font>");
			//$(resellerTab).find(".productos").html("<font color='green'>" + json[x].nombreProducto + "</font>");
			
			for(var y in json[x].locales){
				
				$(local).find(".direccion").attr("id",json[x].locales[y].idDireccion).html(json[x].locales[y].direccion);
				$(local).find(".telefono").html(json[x].locales[y].te1);
				
				if(y == 0){
					$(resellerTab).find(".firstLocal").append(local.html());
					$(local).append("<div class='separadorLocales'></div>");
				} else {
					//$(local).find("#separador").addClass("separadorLocales");
					$(resellerTab).find(".reseller").append("<div class='local'>" + local.html() + "</div>");
				}
				//$(local).find("#separador").addClass("separadorLocales");
			}
			//si hay un solo local, oculto el [+]
			if(json[x].locales.length<=1){
				$(resellerTab).find(".sucursales").attr("style","display:none");
			}
			
			$(resellerTab).attr("style","");
			$(".resellerList").append(resellerTab.html());
		}
		
		//confirm para todos los links presionados
		$("[id=infoLinkList]").click(function(){
			var answer = confirm("Esta por salir de esta página. ¿Desea Continuar?");
			return answer;
		});
		
		//-----------------------------------------------------------------------------------------------
		
		//para localizar con google maps
		$().doLocation(json);
			
		//para contraer y expandir la seccion de los locales.
		$("[class=sucursales]").click(function (){
	
			var id = $(this).attr("id")
			var cad = "#" + id;
			
		
			$(cad).each(function(i){
				
				//parseo el id de la sucursal
				var aux = $(this).attr("id").split("_");
				
				var ul = "#" + aux[1] + "A";
				
				$(ul).each(function(i){
				
					if ($(ul).is(":hidden")) {
					
						$(cad).css("background","url(imgs/upTriangle.gif) no-repeat scroll left center");	
						$(ul).show("slow");
					} else {
					
						$(cad).css("background","url(imgs/downTriangle.gif) no-repeat scroll left center");
						$(ul).slideUp();
					  }
				
				});
			
			});
			
		});
		
	};

});