jQuery(document).ready(function(){


	
	
//Init
	var contacto_id=$("#etiquetasContactoId").val();
	var etiquetasIdList = $("#etiquetasIdList").val();
	var varFlagCheckBox=true;
	var varSelectMode = 2;
	
	if (contacto_id==0){
		varFlagCheckBox = false;
		varSelectMode = 1;
	}
	
			$("#lista_etiquetas").dynatree({
				initAjax: {
					url: "../contactos/lista",
					  data: {contactoId: contacto_id, // Optional arguments to append to the url
						  etiquetasIdList: etiquetasIdList,
		              mode: "all"
		                  }
		
				},
				activeVisible: true, // Make sure, active nodes are visible (expanded).
				checkbox: varFlagCheckBox, // Show checkboxes.
				selectMode: varSelectMode, // 1:single, 2:multi, 3:multi-hier
				onClick: function(node, event) {
					// We should not toggle, if target was "checkbox", because this
					// would result in double-toggle (i.e. no toggle)
					if( node.getEventTargetType(event) == "title" ) {
						node.toggleSelect();
					}
				},
			    onPostInit: function(isReloading, isError) {
			        // In lazy mode, this will be called *after* the initAjax request returned.
			        // 'this' is the current tree
			        // isReloading is set, if status wss read from existing cookies
			        // isError is set, if Ajax failed
			        // Fire an onActivate() event for the currently active node
			      //  this.reactivate();
			    	saveSelec(null);
			    },
				onSelect: function(flag, node) {
					saveSelec(node);
//					if (contacto_id!="0" && contacto_id!="-1" && contacto_id!="-2") {
//						//alert("F: "+flag);
//						//alert("N: "+node);
//						saveNode(flag, node);
//					}
				},
				// The following options are only required, if we have more than one tree on one page:
				cookieId: "etiquetas_list_dynatree",
				idPrefix: "etiquetas_list_dynatree"
			});
	
			$("#etiquetasActualizar").click(function(){
				
				guardarEtiqueta();
				
			});
			
	
			$("#etiquetasGuardar").click(function(){
				guardarEtiqueta();
			});
	
			$("#bt_aceptar_etiquetas").click(function(){
				$("#capaEtiquetas").dialog("close");
			});		
	
	$("#etiquetasBorrar").click(function(){
		
		var contacto_id=$("#etiquetasContactoId").val();
		var etiqueta = form2object("frmEtiquetas", ".", false);

		//if(!validateProperty("Etiqueta", etiqueta, "rupFeedback")) {
			
			//return;
		//}
		//$("#rupFeedback").text("Object: " + $.toJSON(etiqueta));
		//validateEtiqueta(etiqueta);
		
		$.ajax({
			type : 'POST',
			url : "/y42bVistaWar/etiqueta",
			dataType : "json",
			data : $.toJSON(etiqueta),
			contentType : 'application/json',
			error : function(jqXHR, textStatus, errorThrown) {

				$("#rupFeedback").rup_feedback("option", "delay",
						null);
				$("#rupFeedback").rup_feedback("set",
						textStatus + ": error", "error");

			},
			success : function(data, textStatus, jqXHR) {

				// Muestra un success en pantalla
				$("#rupFeedback").rup_feedback("option", "delay",
						800);
				$("#rupFeedback").rup_feedback("set",
						textStatus + ": success", "ok");
			}

		});
		
	});
	
	$("#etiqueta_bt_add").click(function(){
		var etiqueta_nueva=$("#etiquetaNueva").val();
		//alert("etiqueta_nueva"+etiqueta_nueva);
		
		if (etiqueta_nueva!=""){
			var rootNode = $("#lista_etiquetas").dynatree("getRoot");
			rootNode.addChild({title: etiqueta_nueva, key: "00", select:true, activate:true});
			var tree = $("#lista_etiquetas").dynatree("getTree");
			var node = tree.getNodeByKey("00");
			node.toggleExpand();
			saveSelec(node);
			$("#etiquetaId").val("");
			var nombre =$("#nombre").val(etiqueta_nueva);
			guardarEtiqueta(nombre);
		}
	
		
		
	});	
	
});

function guardarEtiqueta(nombre){
		
		var etiqueta = form2object("frmEtiquetas", ".", false);
		if(!validateBean("Etiqueta", etiqueta,"", "rupFeedback")) {
			return;
		}
		etiqueta = form2object("frmEtiquetas", ".", true);
	//alert("nombre"+nombre.val());
	var valor = nombre.val();
	
		$.ajax({
			type : 'POST',
			url : "/y42bVistaWar/etiqueta?nombre="+valor,
			dataType : "json",
			data : $.toJSON(etiqueta),
			contentType : 'application/json',
			error : function(jqXHR, textStatus, errorThrown) {

				$("#rupFeedback").rup_feedback("option", "delay",
						null);
				$("#rupFeedback").rup_feedback("set",
						textStatus + ": error", "error");

			},
			success : function(data, textStatus, jqXHR) {
				//alert(">>>"+$.toJSON(data));
				
				var contenidoIds = $("#etiquetasIdList").val();
				$("#etiquetasIdList").val(contenidoIds + ","+data.etiquetaId);
				
				saveNuevaEtiqueta(data.etiquetaId);
				
				// Muestra un success en pantalla
				$("#rupFeedback").rup_feedback("option", "delay",
						800);
				$("#rupFeedback").rup_feedback("set",
						textStatus + ": success", "ok");
			}

		});
	
};


function saveSelec(node){
var selNodes=$("#lista_etiquetas").dynatree("getSelectedNodes");	
//Display list of selected nodes
// var selNodes = node.tree.getSelectedNodes();
// convert to key array
var keyList = $.map(selNodes, function(node){
	return node.data.key;
});

var keyListNames = $.map(selNodes, function(node){
	return htmlDecode(node.data.title);
});
//alert(">>>>>>>>ids: "+keyList+">>>>>>>>etiquetas: "+keyListNames );

$("#contactoEtiquetasIdList").val(keyList);
$("#etiquetas").val("[" + keyListNames + "]");

}

function saveNode(flag, node){
	//alert("node: "+$.toJSON(node));
	var urlSELECT="";
	var keyEtiqueta=node.data.key;
	var contacto_id=$("#etiquetasContactoId").val();
	if (flag){
		urlSELECT = "/y42bVistaWar/etiqueta/bindEtiquetaContacto";
	}else{
		urlSELECT = "/y42bVistaWar/etiqueta/unbindEtiquetaContacto";
	}
	
	var dataParam="contactoId=" + contacto_id;
	dataParam=dataParam + "&etiquetaId=" + keyEtiqueta;
	
	$.ajax({
		type : 'POST',
		url : urlSELECT,
		data: dataParam,
		
		error : function(jqXHR, textStatus, errorThrown) {
			$("#rupFeedback").rup_feedback("option", "delay",null);
			$("#rupFeedback").rup_feedback("set",textStatus + ": error", "error");

		},
		
		success : function(data, textStatus, jqXHR) {
			//alert("OK: " + data + " : " + textStatus);
			//$("#rupFeedback").text("Elllll");
			var propFeedback={delay:"500",block:"false",closeLink:"true"};
			// Muestra un success en pantalla
			//$("#rupFeedback").rup_feedback(propFeedback);
			//$("#rupFeedback").rup_feedback("set", textStatus + ": success", "ok");
			//$("#rupFeedback").rup_feedback("show");
		}
	});
}	
	
	
function saveNuevaEtiqueta(id){
	var urlSELECT = "/y42bVistaWar/etiqueta/bindEtiquetaContacto";
	var keyEtiqueta= id;
	var contacto_id=$("#etiquetasContactoId").val();
	
	var dataParam="contactoId=" + contacto_id;
	dataParam=dataParam + "&etiquetaId=" + keyEtiqueta;
	
	$.ajax({
		type : 'POST',
		url : urlSELECT,
		data: dataParam,
		
		error : function(jqXHR, textStatus, errorThrown) {
			$("#rupFeedback").rup_feedback("option", "delay",null);
			$("#rupFeedback").rup_feedback("set",textStatus + ": error", "error");

		},
		success : function(data, textStatus, jqXHR) {
			var propFeedback={delay:"500",block:"false",closeLink:"true"};
		}
	});
}	
	



