/* Ecriptar password a md5*/
function enc_psw(field) {
	if ($(field).value != "") $(field).value = hex_md5($(field).value);
	return true;
}
/* Show elememt */
function showThis(id) {
	var obj = $(id);
	if(obj) obj.style.display = 'block';
}
/* Hide elememt */
function hideThis(id) {
	var obj = $(id);
	if(obj) obj.style.display = 'none';
}
/* Toggle View */
function toggleView(div) {
	var obj = $(div);
	if(obj.style.display == 'block') obj.style.display = 'none';
	else obj.style.display = 'block';
}
// Variable de seccion
function cambiarSeccion(nueva) {
	if (nueva != seccion) {
		showThis(nueva);
		if ($(seccion+"_link_on") && $(seccion+"_link")) {
			hideThis(seccion+"_link_on");
			showThis(seccion+"_link");
		}
		if (seccion != "") {
			hideThis(seccion);
		}
		seccion = nueva;
	}
}

/* Img Swap :: id of the img, new src, name of the attribute with the src name */
function swapImg(img_id, attName) {
	var img = $(img_id);
	var aux = img.getAttribute(attName);
	img.setAttribute(attName, img.src);
	$(img_id).src = aux;
}
/* Seter eventos de aquellos que tengan propiedad onMouseOverSwap */
var img_swap = document.getElementsByAttribute("onMouseOverSwap");
var auxImg = new Image();
for (i=0; i < img_swap.length; i++) {
	auxImg.src = img_swap[i].getAttribute('onMouseOverSwap');
	addEvent(img_swap[i], "mouseover", function() {swapImg(this.id, "onMouseOverSwap")});
	addEvent(img_swap[i], "mouseout", function() {swapImg(this.id, "onMouseOverSwap")});
}
/* Setear eventos de aquellos que tengan propiedad OnMouseOutText */
var inputsOut = document.getElementsByAttribute("OnMouseOutText");
for (i=0; i < inputsOut.length; i++) {
	addEvent(inputsOut[i], "click", function() {if (this.value == "" || this.value == this.getAttribute("OnMouseOutText")) this.value=""});
	addEvent(inputsOut[i], "blur", function() {if (this.value=="") this.value = this.getAttribute("OnMouseOutText")});
}
/* Focus on element */
function setFocus(id) {
	var obj = $(id);
	obj.focus();
}
/* Ir a un url */
function goTo(url) {
	document.location.href = url;
}

/***********************/
// Propias del sitio

// Validar formilario de primer envio
function validarPrimerEnvio(){
	var form    = $('primer_envio');
	var titulo  = $('titulo');
	var tema    = $('tema');
	var archivo = $('archivo');
	var errores = Array();
	var error_txt = "Por favor corrija los siguientes errores:\n";
	// Validar Inputs
	if (titulo.value == "")  errores.push("El titulo se encuentra vacío");
	if (tema.value == "")    errores.push("El tema se encuentra vacío");
	if (archivo.value == "") errores.push("No fue seleccionado ningún archivo");
	else {
		// Validar extensión del archivo
		if (!validateFileExtension(archivo.value, Array(".doc", ".rtf", ".pdf", ".txt", ".docx"))) errores.push("La extensión del archivo no es válida");
	}
	if (errores.length > 0) {
		for (i=0;i<errores.length;i++) error_txt += " - " + errores[i] + "\n";
		alert(error_txt);
		return false;
	} else{
		form.submit();
		return true;
	}
}

// Validar extension de un campo de file
function validateFileExtension(file, extArray) {
	allowSubmit = false;
	if (!file) return;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext  = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
		if (extArray[i] == ext) { allowSubmit = true; break; }
	}
	return allowSubmit;
}

// Validar un formulario que permite el upload de un archivo
function validarUpload(input, form, extensiones){
	var inputobj = $(input);
	var formobj  = $(form);
	// Validar seleccion de archivo
	if (inputobj.value == "") alert("Por favor seleccione un archivo.");
	else {
		var extensiones_arr = extensiones.split(",");
		if (validateFileExtension(inputobj.value, extensiones_arr)) formobj.submit();
		else alert("La extensión de archivo no es valida. \nPor favor seleccione un archivo con las siguientes extensiones:\n - "+(extensiones.replace(/,/g, "\n - ")));
	}
}

function upload() {
	var tipo    = $("select_tipo");
	var archivo = $('file_input');
	var formobj = $('envio_archivo');
	if (tipo.options[tipo.selectedIndex].value == "") alert ("Por favor seleccione que tipo de archivo desea subir");
	else {
		if (archivo.value == "") alert("Por favor seleccione un archivo.");	
		else {
			var extensiones_arr = extensiones[tipo.options[tipo.selectedIndex].value].split(",");
			if (validateFileExtension(archivo.value, extensiones_arr)) formobj.submit();
			else alert("La extensión de archivo no es valida. \nPor favor seleccione un archivo con las siguientes extensiones:\n - "+(extensiones[tipo.options[tipo.selectedIndex].value].replace(/,/g, "\n - ")));
		}
	}
}

function iniciarOrden() {
	Sortable.create('coautores',{tag:'div'});
	showThis('guardar_orden');
	hideThis('ordenar_coautores');
}

// gaurdar orden de autores
function guardarOrden(destino, loader) {
	var orden = (Sortable.serialize('coautores'));
	Sortable.destroy('coautores');
	showThis('ordenar_coautores');
	hideThis('guardar_orden');
	new Ajax.Request(destino, {
		postBody  : orden,
		onLoading  : function() {
			showThis(loader);
		},
		onComplete : function() {
			hideThis(loader);
		}
	});
	return false;
}

function validarAutor() {
	var nombre    = $("autor_nombre");
	var apellido  = $("autor_apellido");
	var org       = $("autor_organizacion");
	var form      = $("autor_form");
	var error_txt = "Por favor corrija los siguientes errores:\n";
	var errores   = Array();
	if (nombre.value == "")   errores.push("El nombre se encuentra vacío");
	if (apellido.value == "") errores.push("El apellido se encuentra vacío");
	if (org.value == "")      errores.push("La organización se encuentra vacía");
	if (errores.length > 0) {
		for (i=0;i<errores.length;i++) error_txt += " - " + errores[i] + "\n";
		alert(error_txt);
	} else{
		form.submit();
	}
	return false;
}