//Funciones javascript comunes

/**
 * Recuperación de los proyectos según empresaId
 */
function setEmpresa(urlServer) {
	var empresaId = dijit.byId("empresaId");
	if (empresaId.value != "") {
		return;
	}

	var store = new dojo.data.ItemFileReadStore( {
		url : urlServer
	});
	empresaId.set("store", store);
	store.fetch( {
		query : {
		id : "*"
	},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!store.isItem(empresaId.item)) {
					empresaId.set("value", items[0].id);
				}
			}
		},
		onError : ajaxComError,
		queryOptions : {
			deep : true
		}
	});
}

/** 
 * Recuperación de los proyectos según empresaId
 * @param {String} urlServer	Url del servidor
 */
function getProyectos(urlServer) {
	var empresaId = dijit.byId("empresaId").value;
	var proyectoId = dijit.byId("proyectoId");
	var url2 = urlServer + "&empresaId=" + empresaId;
	var store = new dojo.data.ItemFileReadStore( {
		url : url2
	});
	proyectoId.set("store", store);
	store.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!store.isItem(proyectoId.item)) {
					proyectoId.set("value", items[0].id);
				}
			}
		},
		onError : ajaxComError,
		queryOptions : {
			deep : true
		}
	});
}

/** 
 * Recuperación del departamento según proyectoId
 * @param {String} urlServer	Url del servidor
 */
function getDepartamento(urlServer) {
	var empresaId = dijit.byId("empresaId").value;
	var departamento = dijit.byId("departamento");
	departamentoStore.url = urlServer + "&empresaId=" + empresaId;
	departamentoStore.close();
	departamentoStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!departamentoStore.isItem(departamento.item)) {
					departamento.set("value", items[0].id);
				}
			} else {
				//departamento.reset();
	}
},
onError : ajaxComError,
queryOptions : {
	deep : true
}
	});
}

/** 
 * Recuperación del sourceSite según proyectoId
 * @param {String} urlServer	Url del servidor
 */
function getSourceSite(urlServer) {
	var proyectoId = dijit.byId("proyectoId").value;
	var sourceSite = dijit.byId("sourceSite");
	sourceSiteStore.url = urlServer + "&proyectoId=" + proyectoId;
	sourceSiteStore.close();
	sourceSiteStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!sourceSiteStore.isItem(sourceSite.item)) {
					//sourceSite.reset();
		sourceSite.set("value", items[0].id);
	}
} else {
	//sourceSite.reset();
	}
},
onError : ajaxComError,
queryOptions : {
	deep : true
}
	});
}

/** 
 * Recuperación del centroDeCoste según proyectoId
 * @param {String} urlServer	Url del servidor
 */
function getCentroDeCoste(urlServer, opt) {
	var empresaId = dijit.byId("empresaId").value;
	var centroDeCoste = dijit.byId("centroDeCoste");
	centroDeCosteStore.url = urlServer + "&empresaId=" + empresaId + "&opt="
	+ opt;
	centroDeCosteStore.close();
	centroDeCosteStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!centroDeCosteStore.isItem(centroDeCoste.item)) {
					//centroDeCoste.reset();
		centroDeCoste.set("value", items[0].id);
	}
} else {
	//centroDeCoste.reset();
	}
},
onError : ajaxComError,
queryOptions : {
	deep : true
}
	});
}

/** 
 * Recuperación de la lengua de partida según proyectoId
 * @param {String} urlServer	Url del servidor
 */
function getLenguaPartida(urlServer, opt) {
	var proyectoId = dijit.byId("proyectoId").value;
	var lenguaPartida = dijit.byId("lenguaPartida");
	lenguaPartidaStore.url = urlServer + "&proyectoId=" + proyectoId + "&opt="
			+ opt;
	lenguaPartidaStore.close();
	lenguaPartidaStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!lenguaPartidaStore.isItem(lenguaPartida.item)) {
					lenguaPartida.set("value", items[0].id);
				}
			}
		},
		onError : ajaxComError,
		queryOptions : {
			deep : true
		}
	});
}

/** 
 * Recuperación de la lengua de llegada según proyectoId, sourceSite y lengua de partida 
 *
 * @param {String} urlServer	Url del servidor
 */
function getLenguaLlegada(urlServer, opt) {
	var proyectoId = dijit.byId("proyectoId").value;
	var lenguaPartida = dijit.byId("lenguaPartida").value;
	var sourceSiteValue = "";
	if (dijit.byId("sourceSite") != undefined) {
		sourceSiteValue = dijit.byId("sourceSite").value;

	}
	var lenguaLlegada = dijit.byId("lenguaLlegada");
	lenguaLlegadaStore.url = urlServer + "&proyectoId=" + proyectoId
			+ "&sourceSite=" + sourceSiteValue + "&lenguaPartida="
			+ lenguaPartida + "&opt=" + opt;
	lenguaLlegadaStore.close();
	lenguaLlegadaStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!lenguaLlegadaStore.isItem(lenguaLlegada.item)) {
					lenguaLlegada.set("value", items[0].id);
				}
			} else {
				//lenguaLlegada.reset();
	}
},
onError : ajaxComError,
queryOptions : {
	deep : true
}
	});
}

/** 
 * Recuperación de las lenguas de llegada según proyectoId, sourceSite y lengua de partida
 * para un dijit.form.MultiSelect 
 *
 * @param {String} urlServer	Url del servidor
 */
function getLenguaLlegadaMulti(urlServer, opt) {
	var proyectoId = dijit.byId("proyectoId").value;
	var lenguaPartida = dijit.byId("lenguaPartida").value;
	var sourceSiteValue = "";
	if (dijit.byId("sourceSite") != undefined) {
		sourceSiteValue = dijit.byId("sourceSite").value;

	}
	var lenguaLlegada = dojo.byId("lenguaLlegada");
	lenguaLlegadaMultiStore.url = urlServer
			+ "ajaxGetLenguaLlegada?proyectoId=" + proyectoId + "&sourceSite="
			+ sourceSiteValue + "&lenguaPartida=" + lenguaPartida + "&opt="
			+ opt;
	lenguaLlegadaMultiStore.close();
	lenguaLlegadaMultiStore.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			lenguaLlegada.length = 0;
			for (j = 0; j < items.length; j++) {
				if (items[j].id == "null") {
					continue;
				}
				var opt = dojo.doc.createElement('option');
				opt.innerHTML = items[j].name;
				opt.value = items[j].id;
				lenguaLlegada.appendChild(opt);
			}
		},
		onError : ajaxComError,
		queryOptions : {
			deep : true
		}
	});
}

/** 
 * Recuperación de los nombres de propietario según proyectoId y origen
 *
 * @param {String} urlServer	Url del servidor
 */
function getNombrePropietario(urlServer) {
	var empresaId = dijit.byId("empresaId").value;
	var nombrePropietario = dijit.byId("nombrePropietario");
	var url = urlServer + "&empresaId=" + empresaId;
	var store = new dojo.data.ItemFileReadStore( {
		url : url
	});
	nombrePropietario.set("store", store);
	store.fetch( {
		query : {
			id : "*"
		},
		onComplete : function(items, request) {
			if (items.length != 0) {
				if (!store.isItem(nombrePropietario.item)) {
					nombrePropietario.set("value", items[0].id);
				}
			} else {
				//nombrePropietario.reset();
	}
},
onError : ajaxComError,
queryOptions : {
	deep : true
}
	});
}

/**
 * Visualización de un dialog con botón de confirmación
 * 
 * @param {String} title	Titulo de la ventana
 * @param {String} content	Contenido de la ventana
 * @param {String} messageButton	Mensaje del botón
 * @param {String} width	Ancho de la ventana
 */
function showOneButMessageDialog(title, content, messageButton, width) {
	dialog = dijit.byId("oneBut_messageDialog");
	dialog.set("title", title);
	dojo.byId("oneBut_messageDialog.content").innerHTML = content;
	dojo.byId("oneBut_messageDialog.messageButton").innerHTML = messageButton;
	if (width != null) {
		dialog.set("style", "width: " + width + "px");
	}
	dialog.show();
}

/**
 * Visualización del error de datos con Ajax
 * 
 */
function ajaxDataError() {
	var ajaxDataError = dojo.byId("ajaxDataError");
	ajaxDataError.className = "ajaxError";
}

/**
 * Visualización del error de comunicaciones con Ajax
 * 
 */
function ajaxComError(error) {
	if (viewAjaxError == "Y" || viewAjaxError == "S") {
		var buf = "<strong>Filename:</strong> " + error.fileName + "<br/>";
		buf += "<strong>Line number:</strong> " + error.lineNumber + "<br/>";
		buf += "<strong>Message:</strong> " + error.message + "<br/>";
		buf += "<strong>Name:</strong> " + error.name + "<br/>";

		showOneButMessageDialog("Error", buf, "Ok");

		var ajaxComError = dojo.byId("ajaxComError");
		ajaxComError.innerHTML = ajaxComError.innerHTML + " ("
				+ error.toString() + ")";
		ajaxComError.className = "ajaxError";
	} else {
		location.reload();
	}
}

/**
 * Desactivación visualización del error de comunicaciones con Ajax
 * 
 */
function ajaxComErrorHidden() {
	var ajaxComError = dojo.byId("ajaxComError");
	ajaxComError.className = "ajaxErrorHidden";
}

