lenguage = "es";
mensajes = new Array;
mensajes["es"]=new Array("Debe introducir los campos obligatorios.",
						 "Debe introducir una dirección de correo válida.",
						 "Debe introducir el usuario y la contraseña.",
						 "Debe introducir un CIF válido.",
						 "Debe introducir un NIF válido.",
						 "Debe introducir un CIF/NIF válido.",
						 "Debe introducir una dirección web válida."
						);

/* Patrones para validar campos */
var pt_cif=/^[AaBbCcDdEeFfGgHhKkLlMmNnPpQqSs][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]$/;
//var pt_email=/\w.+\@\w.+\.[a-z]{2,3}$/;
var pt_email= /[A-Za-z0-9_\+\-\.]+@([A-Za-z0-9\-]+\.)?[A-Za-z0-9\-]+(\.[A-Za-z]{2,3})?\.[A-Za-z]{2,3}$/;
var pt_nif=/^(X|[0-9])[0-9]{7}([a-z]|[A-Z])$/;
var pt_digitos = /^\d*$/;
//var pt_url = /^(ftp|http):\/\/\w..+\.\w.+\.([a-z]{2,3})$/;
var pt_url = /^(ftp|http):\/\/\w.*$/;

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function check_obli(form) {

	for(i=0;i < form.length;i++)
	{
		
		if((form.elements[i].className == 'fieldObl') && (form.elements[i].value == null || form.elements[i].value == ''))
		{
			alert ('Debe rellenar todos los campos obligatorios (marcados con *)');
			return(false);
		}
	}
	
	return (true);
		
		
}

function chequearForm(form){

	if (check_obli(form))
	{
		form.submit();
	}
}
function mayusculas(obj) {

	obj.value = obj.value.toUpperCase();
}


function borradoSeleccionados(objFrm,nombreCampo)

{
	
   selec = false;
   for (i = 0; i < objFrm.elements.length && !selec; i++) {
        obj = objFrm.elements[i];
        field = obj.name;
        if (field.indexOf(nombreCampo) != -1) {
           if (obj.checked) {
              selec = true;
           }
   		} // fin if
    }// fin for

	return selec;
}

function borrarNoticias(frmEnv){
	
		
	if(borradoSeleccionados(frmEnv,"notBorrar[]")){
		
			frmEnv.submit();
	}

}

function borrarEnlaces(frmEnv){
	
		
	if(borradoSeleccionados(frmEnv,"encBorrar[]")){
		
			frmEnv.submit();
	}

}

function borrarSocios(frmEnv){
	
		
	if(borradoSeleccionados(frmEnv,"asoBorrar[]")){
		
			frmEnv.submit();
	}

}

function borrarUsuarios(frmEnv){
	
		
	if(borradoSeleccionados(frmEnv,"usrBorrar[]")){
		
			frmEnv.submit();
	}

}

/*-------------------------------------------------------------------------------------
--Nombre.......: borrarCategorias()
--Descripción..: Lanza el formulario para eliminar una categoria
--Utilizado por: 
--Parametros...: frmEnv -> formulario para borrar una categoria
--Ult. modific.: 30/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function borrarCategorias(frmEnv){
	
	if(borradoSeleccionados(frmEnv,"catBorrar[]")){	
		frmEnv.submit();
	}
}


function replaceBRporEnter (campo) {

  campo = campo.replace (/<BR>/gi,"\n");
  campo = campo.replace (/<BR\/>/gi,"\n"); // 16/09/2008
  return campo;
}

function marcarCasilla (objCb, valor) {

  if (valor=='S') 
	objCb.checked = 'true';
  else 
    objCb.checked = false;
}

function valorCasilla (objCb) {
  if (objCb.checked)
    return "S";
  else
    return "N";
}



/*
Funciones para comprobar la fecha
*/


/*-------------------------------------------------------------------------------------
--Nombre.......: getFecha()
--Descripción..: Devuelve la fecha formateada como dd/mm/YYYY  
--Utilizado por: empresas.jsp, alumnos.jsp, comerciales.jsp
--Ult. modific.: 26/08/2008 - Beatriz
-------------------------------------------------------------------------------------
*/
function getFecha () {
	var mydate=new Date();
	var year=mydate.getYear();
	
	if (year < 1000)
		year+=1900;

	var day=mydate.getDay();
	var month=mydate.getMonth()+1;

	if (month<10)
		month="0"+month;

	var daym=mydate.getDate();
	
	if (daym<10)
		daym="0"+daym;

	return daym+"/"+month+"/"+year;

}
/*
-------------------------------------------------------------------------------------
*/
function bisiesto (anyo) {
  if ((anyo % 100) == 0){
   if ((anyo % 400) == 0){ return true; }
  }
  else {
   if ((anyo % 4) == 0) { return true; }
  }
  return false;
}
/*
-------------------------------------------------------------------------------------
*/
function val_fecha (vDia, vMes, vAnyo)
{
 if(vDia.length!=0 && vMes.length!=0 && vAnyo.length!=0)
 {
  if ((!isNaN(vDia))&&(!isNaN(vMes))&&(!isNaN(vAnyo)))
  {
    
    var dia=vDia
    var mes=vMes
    var anyo=vAnyo

    if ((mes<1)||(mes>12)) { return false; }
    if ((dia<1)||(dia>31)) { return false;}
    if ((dia>30)&&((mes==4)||(mes==6)||(mes==9)||(mes==11))){ return false; }
    if ((dia>28)&&(mes==2)&&(!bisiesto(anyo))) { return false; }
    if ((dia>29)&&(mes==2)&&(bisiesto(anyo))) { return false; }
    if (anyo<1900){ return false; }
    
    return true;
  }
  else 
  {
   return false;
  }
 }
}
/*
-------------------------------------------------------------------------------------
*/
function validamosfecha(cad) {
	aux = cad.value;

	eldia = aux.substr(0,2);
	elmes = aux.substr(3,2);
	elano = aux.substr(6,4);

	return val_fecha(eldia,elmes,elano);
}
/*
-------------------------------------------------------------------------------------
*/
function comprobarFecha (obj) {

  if (obj.value.length > 0) 
  {

    if (!validamosfecha(obj)) {
      alert("Debe introducir una fecha válida con el formato dd/mm/aaaa.");
	  obj.focus();
	  obj.select();
	  return false; //19/11/2009 - Jaime
    }
	else{
	  return true; //19/11/2009 - Jaime
	}
  }
  else{
	return true; //19/11/2009 - Jaime
  }
}

function validar (obj, patron) {
	var subcadena = "";
	cadena = obj.value;
	if (cadena.search(patron) != 0) {
	  subcadena = cadena.charAt(0);
	  if (subcadena.search(patron) != 0)
	    subcadena = "";
	  for (irep=1;irep<cadena.length;irep++) {
	    auxiliar = subcadena + cadena.charAt(irep);
	    if (auxiliar.search(patron) == 0)  
			subcadena += cadena.charAt(irep);	
	  }
	  obj.value = subcadena; 
	}
    
}

function validarCampo (obj, patron) {
  var indice = "";
  var pt;
  var pt2;
  
  if (patron == "pt_email") {
    indice = 1;
	pt = pt_email;
	pt2 = pt; 
  }
  else if (patron == "pt_cif_nif") {
	indice = 5; 
	pt = pt_cif;
	pt2 = pt_nif;
  }
  else if (patron == "pt_cif") {
    indice = 3;
	pt = pt_cif;
	pt2 = pt;
  }
  else if (patron == "pt_nif") {
    indice = 4;
	pt = pt_nif;
	pt2 = pt;
  }

  cadena = obj.value;
  if (cadena.length > 0) {
    if ( (cadena.search(pt) != 0) && (cadena.search(pt2) != 0) ) { 
      alert(mensajes[lenguage][indice]);
	  obj.focus();
	  obj.select();
    }
  }
}

function limpiarForm(objFrm){
	
	objFrm.reset();

}

function cambiarImagen(objImagen,urlNuevaImagen){
	
	document.getElementById(objImagen).src = urlNuevaImagen ;
	
}

function comprobarURL (obj) { 
  cadena = obj.value;
  if (cadena.length > 0) {
    if (cadena.search(pt_url) != 0) { 
      alert(mensajes[lenguage][6]);
	  obj.focus();
	  obj.select();
	  return false;
    }
  }
  return true;
}

function comprobarEmail (obj) {
  cadena = obj.value;
  if (cadena.length > 0) {
    if (cadena.search(pt_email) != 0) { 
      alert(mensajes[lenguage][1]);
	  obj.focus();
	  obj.select();
    }
  }
}

function checkWebInsUpd (form) {

	if(comprobarURL(document.getElementById("web")))
		chequearForm(form);
}

/*-------------------------------------------------------------------------------------
--Nombre.......: despuesSubirArchivo()
--Descripción..: Operaciones necesarias despues de subir un archivo
--Utilizado por: ins_noticia.php, upd_noticia.php
--Parametros...: ruta -> ruta completa de la pagina que realizo la llamada, archivo -> nombre
-- del archivo subido, numero -> total de imagenes antes del proceso de borrado.
--Ult. modific.: 13/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function despuesSubirArchivo(ruta, archivo, numero, tipo){
	
	if (tipo == "imagen" && numero <= 2 && archivo != ""){
		ruta_bien = ruta.substring(0, ruta.lastIndexOf("/")+1) + archivo;
		eval("document.frmNoticia.notImagenUrl" + numero).value = ruta_bien;
		document.frmImagenes.cuenta.value = numero;
	}
	else if(tipo == "documento" && archivo != ""){
		ruta_bien = ruta.substring(0, ruta.lastIndexOf("/")+1) + archivo;
		document.frmSubir.ruta.value = ruta_bien;
		attachmentChanged(numero,"","");
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: borrarImagen()
--Descripción..: Lanza el formulario para eliminar una imagen de la noticia
--Utilizado por: upd_noticia.php
--Parametros...: 
--Ult. modific.: 13/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function borrarImagen(num_imagen){
	
	objFrmEnv = document.frmBorrarImagenes;
	objFrm = document.frmImagenes;
	var ruta_imagen = eval("document.frmNoticia.notImagenUrl" + num_imagen).value;
	
	if (ruta_imagen != ""){
		nombre_imagen = ruta_imagen.substring(ruta_imagen.lastIndexOf("/"),ruta_imagen.length);
		objFrmEnv.imagenAeliminar.value = objFrm.carpeta.value + nombre_imagen;
		objFrmEnv.cuenta.value = objFrm.cuenta.value;
		objFrmEnv.num_imagen.value = num_imagen;
	
		objFrmEnv.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: despuesBorrarArchivo()
--Descripción..: Operaciones necesarias despues de borrar un archivo
--Utilizado por: ins_noticia.php, upd_noticia.php, delete_archivo.php
--Parametros...: num_imagen -> numero de la imagen que se ha borrado, cuenta -> total de
-- imagenes antes del proceso de borrado.
--Ult. modific.: 10/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function despuesBorrarArchivo(num_imagen, cuenta){

	if(cuenta > 0){
		objFrm = document.frmImagenes;
		objFrm.cuenta.value = cuenta - 1;
	}
	else if (cuenta == -2){
		document.frmArchivos.reset();
		window.location.reload();
	}
	
	if(cuenta == 2 && num_imagen == 1){
		document.frmNoticia.notImagenUrl1.value = document.frmNoticia.notImagenUrl2.value;
		document.frmNoticia.notImagenUrl2.value = "";
	}
	else if(cuenta == 2 && num_imagen == 2){
		document.frmNoticia.notImagenUrl2.value = "";
	}
	else if(cuenta == 1 && num_imagen == 1){
		document.frmNoticia.notImagenUrl1.value = "";
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: calcularCuantos()
--Descripción..: Calcula cuantas imagenes hay subidas en una noticia
--Utilizado por: upd_noticia.php
--Parametros...: 
--Ult. modific.: 13/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function calcularCuantos(){

	var cuenta = 0;
	if(document.frmNoticia.notImagenUrl1.value != "")
		cuenta = cuenta + 1;
	if(document.frmNoticia.notImagenUrl2.value != "")
		cuenta = cuenta + 1;
		
	document.frmImagenes.cuenta.value = cuenta;
}

/*-------------------------------------------------------------------------------------
--Nombre.......: ponerEnHistorico()
--Descripción..: Manda al historico las noticias seleccionadas en el formulario
--Utilizado por: noticias_usuario.php
--Parametros...: frmEnv -> formulario con las noticias
--Ult. modific.: 17/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function ponerEnHistorico(frmEnv){
	
	if(borradoSeleccionados(frmEnv,"notBorrar[]")){
		frmEnv.action = "his_noticia.php";
		frmEnv.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: buscarHistorico()
--Descripción..: Comprueba la validez de las fechas y envia el formulario que busca en el historico.
--Utilizado por: historico.php
--Parametros...: 
--Ult. modific.: 19/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function buscarHistorico(){
	
	objFrm = document.frmBuscHistorico;
	
	if(comprobarFecha(objFrm.hisFecDesde) && comprobarFecha(objFrm.hisFecHasta)){
		objFrm.hisBuscar.value = "buscar";
		objFrm.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: insUpdNoticia()
--Descripción..: Comprueba la validez de la fecha y envia el formulario de insercion o 
--		actualizacion de noticias.
--Utilizado por: ins_noticia.php, upd_noticia.php
--Parametros...: form -> formulario que contiene los datos de la noticia.
--Ult. modific.: 26/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function insUpdNoticia(form){
	
	var archivos = new Array();

	if (check_obli(form) && comprobarFecha(form.notFecha)){
		
		for (var i = 0; i < document.frmSubir.elements.length; i++) {
        	if (document.frmSubir.elements[i].type == 'text' && document.frmSubir.elements[i].name.substr(0, 7) == 'upload_') {
        	    archivos[archivos.length] = document.frmSubir.elements[i].value;
        	}
    	}
		form.archivos.value = archivos;
		
		form.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: attachmentChanged()
--Descripción..: Crea dinamicamente una fila con los datos del archivo subido.
--Utilizado por: general.js -> function despuesSubirArchivo().
--Parametros...: nArchivo -> numero de fila que toca crear.
--Ult. modific.: 30/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function attachmentChanged(nArchivo, enlace, file_id)
{
	//var gko = navigator.userAgent.toLowerCase();

    var usedFields = 0;
    var fields = new Array();
    for (var i = 0; i < document.frmSubir.elements.length; i++) {
        if (document.frmSubir.elements[i].type == 'text' && document.frmSubir.elements[i].name.substr(0, 7) == 'upload_') {
            fields[fields.length] = document.frmSubir.elements[i];
        }
    }

    for (var i = 0; i < fields.length; i++) {
        if (fields[i].value.length > 0) {
            usedFields++;
        }
    }
	
    if (usedFields == fields.length) {
        var lastRow = document.getElementById('formulariosubida');
        if (lastRow) {
            var newRow = document.createElement('TR');
			newRow.id = 'file_' + nArchivo;
            var td = document.createElement('TD');
            newRow.appendChild(td);
			td.setAttribute('class', 'nombreCampo');
			td.setAttribute('className', 'nombreCampo');
			//td.class = 'nombreCampo';
            td.align = 'left';
            //var strong = document.createElement('STRONG');
            //td.appendChild(strong);
            //strong.appendChild(document.createTextNode('***Archivo: '));
			td.appendChild(document.createTextNode('*** Documento '));
			var br = document.createElement('BR');
			td.appendChild(br);
            td.appendChild(document.createTextNode(' '));
            var file = document.createElement('INPUT');
            file.type = 'text';
            td.appendChild(file);
            file.name = 'upload_' + nArchivo;
			file.id = 'upload_' + nArchivo;
			file.setAttribute('class','fieldOpc');
			file.setAttribute('className','fieldOpc');
			file.size = '95';
			file.readOnly = 'readOnly';
			if(enlace == ""){
				file.value = document.frmSubir.ruta.value;
			}
			else{
				file.value = enlace;
			}
			if(file_id != ""){
				var oculto = document.createElement('INPUT');
				oculto.type = 'hidden';
				td.appendChild(oculto);
				oculto.name = 'notfId_' + nArchivo;
				oculto.id = 'notfId_' + nArchivo;
				oculto.value = file_id;
			}
			td.appendChild(document.createTextNode(' '));
			var imagen = document.createElement('IMG');
			imagen.src = 'images/btn_remove.png';
			imagen.alt = 'Borrar documento';
			td.appendChild(imagen);
			imagen.id = 'remove_file_' + nArchivo;
			imagen.width = '10';
			imagen.height = '10';
			if(enlace == ""){
				imagen.onclick = function() { borrarDocumento(this.id, false); };
			}
			else{
				imagen.onclick = function() { borrarDocumento(this.id, true); };
			}

            lastRow.parentNode.insertBefore(newRow, lastRow);
        }
    }
	document.frmSubir.cuenta.value++;
}

/*-------------------------------------------------------------------------------------
--Nombre.......: borrarDocumento()
--Descripción..: Lanza el formulario para eliminar un documento de la noticia
--Utilizado por: 
--Parametros...: num_file -> recibe remove_file_x, el id del boton borrar, x va variando.
--Ult. modific.: 30/11/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function borrarDocumento(num_file, esta_en_BD){
	
	//parece que esto da error en explorer
	//document.frmBorrarDoc.imagenAeliminar.value = eval("document.frmSubir.upload_" + num_file.substr(12,1)).value;
	
	upload = eval("document.frmSubir.upload_" + num_file.substr(12,1));
	var ruta_documento = upload.value;
	nombre_documento = ruta_documento.substring(ruta_documento.lastIndexOf("/"),ruta_documento.length);
	document.frmBorrarDoc.imagenAeliminar.value = document.frmSubir.carpeta.value + nombre_documento;
	if (esta_en_BD){
		notf_Id = eval("document.frmSubir.notfId_" + num_file.substr(12,1));
		document.frmBorrarDoc.notfId.value = notf_Id.value;
	}
	
	nodo = document.getElementById(num_file.substr(7,6));
	nodo.parentNode.removeChild(nodo);
	
	document.frmBorrarDoc.submit();
}

/*-------------------------------------------------------------------------------------
--Nombre.......: mostrar_datos()
--Descripción..: Muestra el div oculto con los datos de una biblioteca.
--Utilizado por: pub_red_bibliotecas.php
--Parametros...: clave -> id de la biblioteca en la base de datos.
--Ult. modific.: 02/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function mostrar_datos(clave){
	
	capas = document.getElementsByTagName("div");
	for (var i = 0; i < capas.length; i++) {
        if (capas[i].id.substr(0, 7) == 'biblio_') {
            capas[i].style.visibility = "hidden";
        }
    }
	obj = document.getElementById("biblio_" + clave);
	obj.style.visibility = "visible";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: ocultar_datos()
--Descripción..: Oculta el div con los datos de una biblioteca.
--Utilizado por: pub_red_bibliotecas.php
--Parametros...: clave -> id de la biblioteca en la base de datos.
--Ult. modific.: 02/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function ocultar_datos(clave){
	
	obj = document.getElementById("biblio_" + clave);
	obj.style.visibility = "hidden";
}

/*-------------------------------------------------------------------------------------
--Nombre.......: borrarArchivos()
--Descripción..: Lanza el formuralio para borrar archivos o carpetas del gestor de archivos.
--Utilizado por: gestion_archivos.php
--Parametros...: 
--Ult. modific.: 10/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function borrarArchivos(objFrm){
	
	if(borradoSeleccionados(objFrm,"archBorrar[]")){
		objFrm.submit();
	}
}

/*-------------------------------------------------------------------------------------
--Nombre.......: mostarAoC()
--Descripción..: Cambia el tipo de la caja de texto dependiendo de si se quiere insertar
--	un archivo o un directorio.
--Utilizado por: ins_archivo.php
--Parametros...: 
--Ult. modific.: 10/12/2009 - Jaime
-------------------------------------------------------------------------------------
*/
function mostarAoC(){

	objFrm = document.frmInsArchivo;

	tipo = objFrm.archTipo.value;
	if(tipo == "A"){
		//objFrm.archNombre.type = "file";
		//objFrm.archNombre.setAttribute('type','file');
		objFrm.archNombre.style.cssText = "";
		objFrm.archNombre.setAttribute('className','fieldObl');
		objFrm.archNombre.setAttribute('class','fieldObl');
		
		objFrm.dirNombre.style.cssText = "display:none";
		objFrm.dirNombre.setAttribute('class','fieldOpc');
		objFrm.dirNombre.setAttribute('className','fieldOpc');
	}
	else if(tipo == "C"){
		//objFrm.archNombre.type = "text";
		//objFrm.archNombre.setAttribute('type','text');
		objFrm.archNombre.style.cssText = "display:none";
		objFrm.archNombre.setAttribute('className','fieldOpc');
		objFrm.archNombre.setAttribute('class','fieldOpc');
		
		objFrm.dirNombre.style.cssText = "";
		objFrm.dirNombre.setAttribute('class','fieldObl');
		objFrm.dirNombre.setAttribute('className','fieldObl');
	}
}
