// PORTADA

// Envio del formulario principal
function GuardaParametros(org,des,prms,mnu,sbmnu,scont,idm,vent,perf) 
{
	if (Number(vent)==0)
	{
		document.thisForm.org.value = org;
		document.thisForm.des.value = des;
		document.thisForm.prms.value = prms;
		document.thisForm.mnu.value = mnu;
		document.thisForm.sbmnu.value = sbmnu;
		document.thisForm.scont.value = scont;
		document.thisForm.idm.value = idm;
		
		// Si el valor del perfil es -1, no almacenamos nigún valor
		// NOTA: si ponemos como condición if(perf != -1) no funciona en Netscape 6.2
		if(perf > -1)
		{
			document.thisForm.perf.value = perf;
		}

		// Enviamos la información
		document.thisForm.submit() 
	}
	else 
	{
		AbrirNuevaVentana(org,des,prms,mnu,sbmnu,scont,idm)
	}
}

// Cambia una imagen por otra al pasar el ratón por encima.
function CambiarImg(flag,img) {
   if (document.images) {
        if (document.images[img].permloaded) {
            if (flag==1) document.images[img].src = document.images[img].perm.src
            else document.images[img].src = document.images[img].perm.oldsrc
        }
   }
}

// Precarga de las imágenes que se muestran al pasar el ratón por encima.
function PreloadImg(img,adresse) {
   if (document.images) {
        img.onload = null;
        img.perm = new Image ();
        img.perm.oldsrc = img.src;
        img.perm.src = adresse;
        img.permloaded = true;
   }
}

// Abre una nueva ventana con la posición y tamaño indicado.
function AbrirNuevaVentana(org,des,prms,mnu,sbmnu,scont,idm) {

	var strDay;
	var strId;
	var strHref;

	strDay = new Date();
	strId = strDay.getTime();

	strHref="home.asp?org="+org+"&des="+des+"&prms="+prms+"&mnu="+mnu+"&sbmnu="+sbmnu+"&scont="+scont+"&idm="+idm+"&mod="+document.thisForm.mod.value+"&nav="+document.thisForm.nav.value+"&msgEnvio="+"0"+"&buscgeneral="+"0"+"&res=1024$768"+"&def=0"
	window.open(strHref,strId,'toolbar=no,scrollbars=1,location=0,statusbar=0,status=0,menubar=0,resizable=1,width=650,height=450,left=140,top=25');
}

// Cierra la ventana actual.
function CerrarVentana() {
	window.close()
}

function BuscarProyectos(org,des,prms,mnu,sbmnu,scont,idm) {
	
	// Texto de la búsqueda.
	strTexto = document.thisForm.tema.value;

	// Reemplazar simbolo "$" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"$"," ");
	// Reemplazar simbolo "!" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"!"," ");
	// Reemplazar comilla simple por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"'","");
	// Reemplazar comilla doble por un "!"
	strTexto = ReemplazarCadena(strTexto,'"','!');

	prms = prms + '$' + document.thisForm.prog.value + "$" + document.thisForm.area.value + '$' + strTexto;
	GuardaParametros(org,des,prms,mnu,sbmnu,scont,idm,0,document.thisForm.perf.value);
}

function BuscarProductos(org,des,mnu,sbmnu,scont,idm) {

	prms = document.thisForm.grupoprod.value + '$' + document.thisForm.area.value; 
	GuardaParametros(org,des,prms,mnu,sbmnu,scont,idm,0,document.thisForm.perf.value)
}

function BuscarProductosTema(org,des,mnu,sbmnu,scont,idm) {

	// Texto de la búsqueda.
	strTexto = document.thisForm.tema.value;
	// Reemplazar simbolo "$" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"$"," ");
	// Reemplazar simbolo "!" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"!"," ");
	// Reemplazar comilla simple por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"'","");
	// Reemplazar comilla doble por un "!"
	strTexto = ReemplazarCadena(strTexto,'"','!');

	prms = document.thisForm.grupoprod.value + '$' + document.thisForm.area.value + '$' + strTexto + '$'; 
	GuardaParametros(org,des,prms,mnu,sbmnu,scont,idm,0,document.thisForm.perf.value);
}

// Realiza una busqueda general en la base de datos a partir del texto/s introducido
function BuscarGeneral(prms,idm,ini) {
	
	var strTexto="";

	// Texto de la búsqueda.
	strTexto = document.thisForm.busc.value;

	// Reemplazar simbolo "$" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"$"," ")
	// Reemplazar simbolo "!" por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"!"," ")
	// Reemplazar comilla simple por una cadena vacía.
	strTexto = ReemplazarCadena(strTexto,"'","")
	// Reemplazar comilla doble por un "!"
	strTexto = ReemplazarCadena(strTexto,'"','!');

	if (ini == 1) {
		if (trimCadena(strTexto) == '') {
			alert(ObtenerMensaje('CONFIRMAR_BUSQUEDA',idm)); document.thisForm.busc.focus(); return false;
		}
		prms = "1${" + strTexto + "}$";
	} 
	// Mostrar Resultados de la búsqueda.
	document.thisForm.buscgeneral.value = 1;

	// Enviar página.
	GuardaParametros(-1,-1,prms,-1,-1,0,idm,0,document.thisForm.perf.value) ;
}

function SeleccionarProducto(org,des,mnu,sbmnu,scont,idm) {

	var params='';
	var prms='';
	var cont;

	params = document.thisForm.prms.value;
	params = params.split('$');
	cont = params.length;

	for (var i=0; i < 3; i++) {
		if (i<cont)	{
			prms = prms + params[i] + '$'; }
		else {
			prms = prms + '$'; }
	}

	prms = prms + '{' + document.thisForm.subgrupoprod.value + '}$'

	GuardaParametros(org,des,prms,mnu,sbmnu,scont,idm,0,document.thisForm.perf.value);
}

//Obtener un texto en un idioma determinado.
function ObtenerMensaje(strCodigoMensaje, strIdm) {
	var strMensaje = "";
	switch(strCodigoMensaje) {
		case "DATOS_OBLIGATORIOS_CONTROL":
			if (strIdm == "en") 
				strMensaje = "Please, enter mandatory data in the fields";
			else if (strIdm == "eu") 
				strMensaje = "Derrigorrezko datuak sartu mesedez";
			else
				strMensaje = "Por favor, introduzca los datos obligatorios";
			break;
		case "CORREO_ELECTRONICO_INCORRECTO":
			if (strIdm == "en") 
				strMensaje = "Incorrect e-mail";
			else if (strIdm == "eu") 
				strMensaje = "Posta elektronikoa ez da zuzena";
			else
				strMensaje = "Dirección de correo electrónico incorrecta";
			break;
		case "MENSAJE_CONFIRMACION_SOLICITUD":
			if (strIdm == "en") 
				strMensaje = "Your data has been submitted";
			else if (strIdm == "eu") 
				strMensaje = "Datuak bidaliak izan dira";
			else
				strMensaje = "Sus datos se han enviado";
			break;
		case "CONFIRMAR_BUSQUEDA":
			if (strIdm == "en") 
				strMensaje = "Please, enter data to search";
			else if (strIdm == "eu") 
				strMensaje = "Mesedez, sar ezazu bilatze testua";
			else
				strMensaje = "Por favor, introduzca un texto de busqueda";
			break;
		case "MENSAJE_PORTADA":
			if (strIdm == "en") 
				strMensaje = "&nbsp;&nbsp;&nbsp;&nbsp;Welcome...";
			else if (strIdm == "eu") 
				strMensaje = "&nbsp;&nbsp;&nbsp;&nbsp;Ongi etorri...";
			else
				strMensaje = "&nbsp;&nbsp;&nbsp;&nbsp;Bienvenido...";
			break;
		

	}
	return(strMensaje);
}


/* Funciones para cadenas: */

function ReemplazarCadena(strCadena, strCadena1, strCadena2) { 
	while(strCadena.indexOf(strCadena1) != -1) {
		strCadena = strCadena.replace(strCadena1, strCadena2);
	} 
	return strCadena;     
} 

function trimCadena(strCadena) {

	while(strCadena.charAt(0) == ' ') {
		 strCadena=strCadena.substring(1,strCadena.length);
	}
	return strCadena;
}

// Función que responde al evento OnKeyPress del textbox de búsqueda general

var nav4 = window.Event ? true : false;

function BuscarGeneralIntro(evt,prms,idm,ini){	
	// Obtenemos el código de la tecla que se ha pulsado
	var key = nav4 ? evt.which : evt.keyCode;	
		
	if (key == 13) {
		BuscarGeneral(prms,idm,ini);
	}
	else {
		return (key);
	}
}

// Función que responde al evento OnKeyPress del textbox de búsqueda de un producto por tema

function BuscarProductosTemaIntro(evt,org,des,mnu,sbmnu,scont,idm){	
	// Obtenemos el código de la tecla que se ha pulsado
	var key = nav4 ? evt.which : evt.keyCode;	
		
	if (key == 13) {
		BuscarProductosTema(org,des,mnu,sbmnu,scont,idm);
	}
	else {
		return (key);
	}
}

// Función que responde al evento OnKeyPress del textbox de búsqueda de un proyecto por tema
function BuscarProyectosTemaIntro(evt,org,des,prms,mnu,sbmnu,scont,idm){	
	// Obtenemos el código de la tecla que se ha pulsado
	var key = nav4 ? evt.which : evt.keyCode;	
	
	if (key == 13) {
		BuscarProyectos(org,des,prms,mnu,sbmnu,scont,idm);
	}
	else {
		return (key);
	}
}

// ---------------------------------------------------------------------------------------------------------------------------
// Función que responde al evento OnClick del enlace "Enviar" de un formulario.
// PARÁMETROS DE ENTRADA:
//			- strIdm: código alfanumérico del idioma de los recursos
//			- strFormulario: cadena con el valor del registro ELEMENTO del formulario donde se va a insertar este enlace
// ---------------------------------------------------------------------------------------------------------------------------

function EnviarDatos(strIdm,strElementoFormulario) {
	var strNames, strEtiquetasCorreo, strCamposCorreo, strTiposControl, strCamposObligatorios;
	var astrNames, astrEtiquetasCorreo, astrCamposCorreo, astrTiposControl, astrCamposObligatorios;
	var intItem;
	var strDato;
	
	strNames = eval("document.forms['thisForm'].names" + strElementoFormulario + ".value");
	strEtiquetasCorreo = eval("document.forms['thisForm'].etiqs" + strElementoFormulario + ".value");
	strCamposCorreo = eval("document.forms['thisForm'].mails" + strElementoFormulario + ".value");
	strTiposControl = eval("document.forms['thisForm'].tipos" + strElementoFormulario + ".value");
	strCamposObligatorios = eval("document.forms['thisForm'].obligs" + strElementoFormulario + ".value");

	astrNames = strNames.split("$");
	astrEtiquetasCorreo = strEtiquetasCorreo.split("$");
	astrCamposCorreo = strCamposCorreo.split("$");
	astrTiposControl = strTiposControl.split("$");
	astrCamposObligatorios = strCamposObligatorios.split("$");

	//Comprobamos que hay datos
	for(intItem = 0; intItem < astrNames.length; intItem++) {
		// ¿Campo obligatorio?
		if (astrCamposObligatorios[intItem] == "1") {
			//Comprobamos que hay datos
			strDato = eval("document.thisForm." + astrNames[intItem] + ".value");
			strDato = trimCadena(strDato);
			if (strDato == "") {
				alert(ObtenerMensaje("DATOS_OBLIGATORIOS_CONTROL", strIdm));
				eval("document.thisForm." + astrNames[intItem] + ".focus()");
				return false;
			}
		}

		// ¿Campo correo electrónico?
		if (astrCamposCorreo[intItem] == "1") {
			//Comprobamos que el formato de la dirección es correcto
			strDato = eval("document.thisForm." + astrNames[intItem] + ".value");
			strDato = trimCadena(strDato);
			if (ValidarCorreoElectronico(strDato) == false) {
				alert(ObtenerMensaje("CORREO_ELECTRONICO_INCORRECTO", strIdm));
				eval("document.thisForm." + astrNames[intItem] + ".focus()");
				return false;
			}
		}
	}
	
	// Indicamos el registro elemento del formulario cuyos datos se están mandando
	document.thisForm.elemsolic.value = strElementoFormulario

	// Atributo "ACTION" del formulario
	document.thisForm.action = "form.asp";

	// Enviar los datos del formulario
	document.thisForm.submit();
}

function ValidarCorreoElectronico(strCorreoElectronico) {
	   var intPosArroba;			//Posición del caracter @ en la cadena
	   var intPosPunto;				//Posición del caracter punto en la cadena
	   var blnResultado = true;		//Indica si la validación es correcta o no

	   // Comprobamos la cadena de la dirección de correo
	   intPosArroba = strCorreoElectronico.indexOf('@', 0);
	   intPosPunto = strCorreoElectronico.indexOf('.', 0);
	   blnResultado = blnResultado && (intPosArroba > 0);
	   blnResultado = blnResultado && (intPosPunto != -1);
	   blnResultado = blnResultado && (intPosArroba < intPosPunto - 1);
	   blnResultado = blnResultado && (intPosPunto < strCorreoElectronico.length - 1);

       //¿Es correcta la validación?
      return(blnResultado); 
}
