// INICIO Funciones de visualización
function getSelectedRadio(buttonGroup) 
	{
     if (buttonGroup[0]) 
		 { 
          for (var i=0; i<buttonGroup.length; i++) 
			  {
               if (buttonGroup[i].checked) { return i }
              }
		 } 
	 else { if (buttonGroup.checked) { return 0; } }
     return -1;
	} 

function getSelectedRadioValue(buttonGroup) 
	{
     var i = getSelectedRadio(buttonGroup);
     if (i == -1) { return 0; } 
	 else {
		   if (buttonGroup[i]) 
			 { 
			  return buttonGroup[i].value;
			 } 
		   else { return buttonGroup.value; }
		  }
	}

function getSelectedCheckbox(buttonGroup) 
	{
     var retArr = new Array();
     var lastElement = 0;
     if (buttonGroup[0]) 
	   { 
        for (var i=0; i<buttonGroup.length; i++) 
			{
             if (buttonGroup[i].checked) 
				 {
                  retArr.length = lastElement;
                  retArr[lastElement] = i;
                  lastElement++;
                 }
            }
	   } 
	  else { 
            if (buttonGroup.checked) 
			  {
               retArr.length = lastElement;
               retArr[lastElement] = 0;
              }
		   }
      return retArr;
	 }

function getSelectedCheckboxValue(buttonGroup) 
	{
     var retArr = new Array(); 
     var selectedItems = getSelectedCheckbox(buttonGroup);
     if (selectedItems.length != 0) 
	   { 
        retArr.length = selectedItems.length;
        for (var i=0; i<selectedItems.length; i++) 
			{
             if (buttonGroup[selectedItems[i]]) { retArr[i] = buttonGroup[selectedItems[i]].value;} 
			   else {retArr[i] = buttonGroup.value;}
            }
       }
     return retArr;
    }

function VisualizarRegistro(pagina, ancho, largo)
	{
		if (getSelectedRadioValue(document.fDatos.informacio) != 0) 
			{
			 url = pagina + '?Id=' + getSelectedRadioValue(document.fDatos.informacio);
			 ancho2 = ancho;
			 largo2 = largo;
			 document.fDatos.action = "JavaScript:displayWindow(url,'Fitxa',ancho2,largo2,'resizable=yes, scrollbars=yes')";
			 document.fDatos.submit();
			}
		else alert('No se ha seleccionado ningún registro')
	}
// FIN Funciones de visualización

function MM_openBrWindow(theURL,winName,features, myWidth, myHeight, isCenter) 
	{ //v3.0
  if(window.screen)if(isCenter)if(isCenter=="true")
	  {
		var myLeft = (screen.width-myWidth)/2;
		var myTop = (screen.height-myHeight)/2;
		features+=(features!='')?',':'';
		features+=',left='+myLeft+',top='+myTop;
	  }
  window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
	}

function LTrim(s) // Devuelve una cadena sin los espacios del principio
	{
	var i= 0;
	var j= 0;
	for(i= 0; i<=s.length-1; i++) // Busca el primer caracter <> de un espacio
		if(s.substring(i, i+1) != ' '){
			j= i;
			break;
		}
	return s.substring(j, s.length);
	}

function RTrim(s) // Quita los espacios en blanco del final de la cadena
	{
	var j= 0;
	for(var i=s.length-1; i>-1; i--) // Busca el último caracter <> de un espacio
		if(s.substring(i, i+1) != ' '){
			j= i;
			break;
		}
	return s.substring(0, j+1);
	}

function Trim(s) // Quita los espacios del principio y del final
	{
	return LTrim(RTrim(s));
	}

function NoComillaSimple()
	{
	 var isNS4 = (navigator.appName=="Netscape")?1:0;

     if(!isNS4)
		 {
		  if (event.keyCode==39) event.returnValue = false;
		 }
	 else {
		   if (event.which==39) return false;
		  }
	}

function SoloNumeros()
	{
	 var isNS4 = (navigator.appName=="Netscape")?1:0;

     if(!isNS4)
		 {
		  if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;
		 }
	 else {
		   if (event.which < 48 || event.which > 57) return false;
		  }
	}

function SoloNumerosNegativos()
	{
	 var isNS4 = (navigator.appName=="Netscape")?1:0;

     if(!isNS4)
		 {
		  if ((event.keyCode < 48 || event.keyCode > 57)&& (event.keyCode != 45)) event.returnValue = false;
		 }
	 else {
		   if ((event.which < 48 || event.which > 57)&& (event.keyCode != 45)) return false;
		  }
	}

function SoloPrecios()
	{
	 var isNS4 = (navigator.appName=="Netscape")?1:0;

     if(!isNS4)
		 {
		  if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 46)) event.returnValue = false;
		 }
	 else {
		   if ((event.which < 48 || event.which > 57) && (event.which != 46)) return false;
		  }
	}

function SoloFechas()
	{
	 var isNS4 = (navigator.appName=="Netscape")?1:0;

     if(!isNS4)
		 {
		  if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 47)) event.returnValue = false;
		 }
	 else {
		   if ((event.which < 48 || event.which > 57) && (event.which != 47)) return false;
		  }
	}

function obtenerDigito(valor)
	{
	  valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
	  control = 0;
	  for (i=0; i<=9; i++) control += parseInt(valor.charAt(i)) * valores[i];
	  control = 11 - (control % 11);
	  if (control == 11) control = 0; else if (control == 10) control = 1;
	  return control;
	}

function EsCuentaBancaria(pEntidad, pOficina, pDCEstimado, pCuenta)
	{
	 if (pEntidad.length != 4 || pOficina.length != 4 || pDCEstimado.length != 2 || pCuenta.length != 10) return false;
	 else {
	       if (!(obtenerDigito("00" + pEntidad + pOficina) == parseInt(pDCEstimado.charAt(0))) || !(obtenerDigito(pCuenta) == parseInt(pDCEstimado.charAt(1)))) return false;
	      }
	 return true;
    }

formatoEuro = function( n ) 
	{
	if (n == undefined)
	{
	 return '';
	}
	else {
	var d = ","; var t = "."; var c = 2; 
	var m = ( c = Math.abs( c ) + 1 ? c : 2, d = d || ",", t = t || ".", /(\d+)(?:(\.\d+)|)/.exec( n + "" ) ), x = m[1].length % 3;
	var resultado = ( x ? m[1].substr( 0, x ) + t : "" ) + m[1].substr( x ).replace( /(\d{3})(?=\d)/g, "$1" + t ) + ( c ? d + ( +m[2] ).toFixed( c ).substr( 2 ) : "" ); 
	return resultado.replace(".,", ",") + " €"
		}
	};

function AfegirItem(a,b,c)
{
  MarcarTodosItems(c); //selecciono todos los items de la caja

  var repetido = false;
  for (i=0; i<c.length; i++ )	
	{
	 if (a == c.options[i].value) 
	 {
	  repetido = true;
	  break;
	 }
	}

	if ((a != "") && (!repetido))
	    {
	      texte = b.options[b.selectedIndex].text;		
		  valor = a;
    	  newOpt = new Option(texte, valor);
		  c.add(newOpt, c.length);
		  b.remove(b.selectedIndex);		
    }
    else {
		if (!repetido)
		{
    	 alert("No hay ningún item para agregar");
		 b.focus();
		}
    }

  DesMarcarTodosItems(c)
}

function MarcarTodosItems(c)
{
	for (i=0; i<c.length; i++ )	//selecciono todos los items de la caja
	{
		c.options[i].selected = true;
	}
}

function DesMarcarTodosItems(c)
{
	for (i=0; i<c.length; i++ )	//selecciono todos los items de la caja
	{
		c.options[i].selected = false;
	}
}

function TreureItem(a,b,c) 
{
    if (c.selectedIndex!=-1) 
    {
		valor= c[c.selectedIndex].value;
		texte= c[c.selectedIndex].text;
		newOpt= new Option(texte, valor);
		b.add(newOpt, b.length);
		c.remove(c.selectedIndex);
	}
	else
	{
		alert("No se ha seleccionado ningún registro de la lista");
		c.focus();
	}	
}

function TreureTotItem(c) //borro todos los items
{
    MarcarTodosItems(c);
	for (i = c.length - 1; i>=0; i--)	
	{
		c.remove(i);
	}
}

function validaEmail(email)
	{
	  if (Trim(email) == '') 	
		  { 
		    return false; 
		  }
      else if (email.indexOf("@") != -1)
				  {
					dominio=email.substring(email.indexOf("@")+1,email.length)
					if (dominio.indexOf(".") == -1 || email.lastIndexOf(".") == email.length-1)
						{
						  return false;
						}
				  }
				else if (email.length != 0  && email.indexOf("@") == -1)
					  {
						return false;
					  }
	  return true;
	}

function validaFitxer(fitxer)
	{

	 if (fitxer.indexOf("'") != -1)
		{	
		 alert("El nombre del fichero o imagen no puede contener el carácter apóstrofo (')");	
		 return false;
		}

	 var punto = 0;
	 for (var i = 0; i < fitxer.length; i++)
		{
		 var car = fitxer.charAt (i);
		 if (car == '.') 
			{
			 punto ++;
			 if (punto == 2)
				{
				 alert("El nombre del fichero o imagen no puede contener el carácter '.' dos veces");
				 return false;
				}
			}
		}

	  if (fitxer.length > 100)
	  {
	   alert("El nombre del fichero es demasiado largo");	
	   return false;
	  }	

	  return true;
	}

function displayWindow(theURL, winName, width, height, features)
{
	var window_width = width;
    var window_height = height;
    var newfeatures= features;
    var window_top = (screen.height-window_height)/2;
    var window_left = (screen.width-window_width)/2;
    newWindow=window.open(''+ theURL + '',''+ winName + '','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',features=' + newfeatures + '');
    newWindow.focus();
}

// periodo_valido(fi,ff): fi debe ser una fecha menor o igual que ff
function periodo_valido(fi, ff) 
	{
	 var dd1 = fi.charAt(0) + fi.charAt(1) ;
	 var mm1 = fi.charAt(3) + fi.charAt(4) ;
	 var yyyy1 = fi.charAt(6) + fi.charAt(7) + fi.charAt(8) + fi.charAt(9);

	 var dd2 = ff.charAt(0) + ff.charAt(1) ;
	 var mm2 = ff.charAt(3) + ff.charAt(4) ;
	 var yyyy2 = ff.charAt(6) + ff.charAt(7) + ff.charAt(8) + ff.charAt(9);

	 if ( yyyy1 + mm1 + dd1 > yyyy2 + mm2 + dd2 ) return -4;
	 return 1;
	}


// fecha_valida(a): Devuelve true si "a"  tiene el formato DD/MM/YYYY y false en el caso contrario.
function fecha_valida(a) 
{
	 if (a.length != 10) return -1;
	 for(var i=0;i<a.length;i++) 
	  {
		if (i==2 || i==5) {	if (a.charAt(i) != '/')  return -1; }
		else { if (a.charAt(i) < '0' || a.charAt(i)>'9')  return -1; }
	  }

	 var dd = parseInt(a.charAt(0) + a.charAt(1), 10);
	 var mm = parseInt(a.charAt(3) + a.charAt(4), 10);
	 var any = parseInt(a.charAt(6) + a.charAt(7) + a.charAt(8) + a.charAt(9));

	 // el día debe ser menor que 31 y el mes menor que 12
	 if (dd<1 || dd>31) return -2;
	 if (mm<1 || mm>12) return -3;

	 if ((mm > 12) || (dd > 31)) return -4
	 else
	 {
		if (((mm == 01) || (mm == 03) || (mm == 05) || (mm == 07) || (mm == 08) || (mm == 10) || (mm == 12)) && (dd > 31)) return -4
		else
		{
				if (((mm == 04) || (mm == 06) || (mm == 09) || (mm == 11)) && (dd > 30)) return -4
				else
				{
				 if ((mm == 02))
				 {
					if (dd > 29) return -4
					else
					{
						resto = any % 4
						if ((resto != 0) && (dd > 28)) return -4
						else
						{
							resto = any / 100;
							if ((resto == 0) && (dd > 28)) return -4
						}
					}
				 }
				} 
		 }
	 }
	 return 1;
}

function desconectar()
	{
	document.fDatosDes.submit();
	}

///////////////////////////////////////////// MANTENIMENTS ////////////////////////////////////////////////////////////////////////////////////

function comprueba_tiponoticia()
	{
	var fmForm = document.fDatos;

    var tipo = Trim(fmForm.tipo.value);
		if (tipo.length == 0)
		{
			alert ("El campo 'Tipo Noticia' está vacio");
			return false;
		}
	return true;
	}

function comprueba_noticiasubscripcio()
	{
	var fmForm = document.fDatos;

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El campo 'Nombre' está vacio");
			return false;
		}

    var mail = Trim(fmForm.mail.value);
	   if (!validaEmail(mail))
	   {
		alert ("E-Mail mal escrito");
		return false;
	   }

	return true;
	}

function comprueba_noticia()
	{
	var fmForm = document.fDatos;

    var titol = Trim(fmForm.titol.value);
		if (titol.length == 0)
		{
			alert ("El campo 'Título' está vacio");
			return false;
		}

	var result = fecha_valida(fmForm.f_data.value);
		if (result==-1) 
			{
			alert ("El campo 'Fecha' no tiene formato DD/MM/AAAA");
			return false;
			}
		if (result==-2) 
			{
			alert ("En el formato 'Fecha' el dia (DD) ha de ser menor que 31");
			return false;
			}
		if (result==-3) 
			{
			alert ("En el formato 'Fecha' el mes (MM) ha de ser menor que 12");
			return false;
			}
		if (result==-4) 
			{
			alert ("Formato de 'Fecha' incorrecto");
			return false;
			}

	var result1 = fecha_valida(fmForm.f_inici.value);
		if (result1==-1) 
			{
			alert ("El campo 'Fecha inicio' no tiene formato DD/MM/AAAA");
			return false;
			}
		if (result1==-2) 
			{
			alert ("En el formato 'Fecha inicio' el dia (DD) ha de ser menor que 31");
			return false;
			}
		if (result1==-3) 
			{
			alert ("En el formato 'Fecha inicio' el mes (MM) ha de ser menor que 12");
			return false;
			}
		if (result1==-4) 
			{
			alert ("Formato de 'Fecha inicio' incorrecto");
			return false;
			}

	if (fmForm.f_fi.value != '')
	  {
		var result2 = fecha_valida(fmForm.f_fi.value);
			if (result2==-1) 
				{
				alert ("El campo 'Fecha fin' no tiene formato DD/MM/AAAA");
				return false;
				}
			if (result2==-2) 
				{
				alert ("En el formato 'Fecha fin' el dia (DD) ha de ser menor que 31");
				return false;
				}
			if (result2==-3) 
				{
				alert ("En el formato 'Fecha fin' el mes (MM) ha de ser menor que 12");
				return false;
				}
			if (result2==-4) 
				{
				alert ("Formato de 'Fecha inicio' incorrecto");
				return false;
				}

			if ((result1 == 1) && (result2 == 1)) 
				{
				result = periodo_valido(fmForm.f_inici.value, fmForm.f_fi.value);
				if (result < 0)
					{
					alert ("Error en el campo Fecha. La 'Fecha fin' ha de ser posterior o igual a la 'Fecha inicio'.");
					return false;
					}
				}
	  }

    var resum = Trim(fmForm.resum.value);
		if (resum.length == 0)
		{
			alert ("El campo 'Resumen' está vacio");
			return false;
		}

	if (fmForm.Fitxer.value != '')
	  {
	   if (!validaFitxer(fmForm.Fitxer.value)) { return false; } 
      }

	return true;
	}


function comprueba_tipolink()
	{
	var fmForm = document.fDatos;

    var tipo = Trim(fmForm.tipo.value);
		if (tipo.length == 0)
		{
			alert ("El campo 'Tipo Link' está vacio");
			return false;
		}
	return true;
	}

function comprueba_seccio()
	{
	var fmForm = document.fDatos;

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El campo 'Sección' está vacio");
			return false;
		}

    var ordre = Trim(fmForm.ordre.value);
		if (ordre.length == 0)
		{
			alert ("El campo 'Orden' está vacio");
			return false;
		}

	return true;
	}

function comprueba_autor()
	{
	var fmForm = document.fDatos;

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El camp 'Nom' está buit");
			return false;
		}

//    var ordre = Trim(fmForm.cognoms.value);
//		if (ordre.length == 0)
//		{
//			alert ("El camp 'Cognoms' está buit");
//			return false;
//		}

	return true;
	}

function comprueba_mot()
	{
	var fmForm = document.fDatos;

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El camp 'Mot' está buit");
			return false;
		}

	return true;
	}


function comprueba_article()
	{
	var fmForm = document.fDatos;

    var titol = Trim(fmForm.titol.value);
		if (titol.length == 0)
		{
			alert ("El camp 'Títol' està buit");
			return false;
		}

    var Fitxer = Trim(fmForm.Fitxer.value);
		if ((Fitxer.length == 0) && (fmForm.Fitxer_aux.value == 0))
		{
			alert ("Ha de posar un fitxer PDF");
			return false;
		}

	if (fmForm.Fitxer.value != '') {fmForm.Fitxer_variable.value = 1} else {fmForm.Fitxer_variable.value = 0;} 
	if (fmForm.Foto.value != '') {fmForm.FitxerFoto_variable.value = 1} else {fmForm.FitxerFoto_variable.value = 0;} 

	MarcarTodosItems(fmForm.TemesSele);
	var c = fmForm.TemesSele 

	for (i=0; i<c.length; i++ )	
		{
		 if (i == c.length-1) fmForm.LlistaMots.value = fmForm.LlistaMots.value + c.options[i].value
			else fmForm.LlistaMots.value = fmForm.LlistaMots.value + c.options[i].value + ', ';
		}


	MarcarTodosItems(fmForm.TemesSele2);
	var d = fmForm.TemesSele2 

	for (x=0; x<d.length; x++ )	
		{
		 if (x == d.length-1) fmForm.LlistaAutors.value = fmForm.LlistaAutors.value + d.options[x].value
			else fmForm.LlistaAutors.value = fmForm.LlistaAutors.value + d.options[x].value + ', ';
		}


	return true;
	}

function comprueba_revista()
	{
	var fmForm = document.fDatos;

    var titol = Trim(fmForm.titol.value);
		if (titol.length == 0)
		{
			alert ("El camp 'Títol' està buit");
			return false;
		}

    var any = Trim(fmForm.any.value);
		if (any.length != 4)
		{
			alert ("El camp 'Any' està buit");
			return false;
		}

	return true;
	}

function comprueba_soci1()
	{
	var fmForm = document.fDatos;

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El camp 'Nom' està buit");
			return false;
		}

    var cognom = Trim(fmForm.cognom.value);
		if (cognom.length == 0)
		{
			alert ("El camp 'Cognoms' està buit");
			return false;
		}

    var codi = Trim(fmForm.codi.value);
		if (codi.length == 0)
		{
			alert ("El camp 'Codi' està buit");
			return false;
		}

    var mail = Trim(fmForm.mail.value);
	   if (!validaEmail(mail))
	   {
		alert ("E-Mail mal escrito");
		return false;
	   }

    var password1 = Trim(fmForm.password1.value);
    var password2 = Trim(fmForm.password2.value);
	if ((password1 != '---') || (password2 != ''))
	{
	   if (password1 != password2)
	   {
		alert ("Las contrasenyas no son iguals");
		return false;
	   }
	}

	return true;
	}

function comprueba()
	{
	var fmForm = document.fDatosWeb;

    var codi = Trim(fmForm.codi.value);
		if ((codi.length == 0) || (codi.length > 10))
		{
			alert ("El camp 'codi' està buit o incomplet");
			return false;
		}

    var password1 = Trim(fmForm.password1.value);
		if ((password1.length == 0) || (password1.length > 10))
		{
			alert ("El camp 'contrasenya' està buit o incomplet");
			return false;
		}

	return true;
	}


function formularimail()
	{
	var fmForm = document.fDatos;

    var cognoms = Trim(fmForm.cognoms.value);
		if (cognoms.length == 0)
		{
			alert ("El camp 'Cognoms' està buit o incomplet");
			return false;
		}

    var nom = Trim(fmForm.nom.value);
		if (nom.length == 0)
		{
			alert ("El camp 'Nom' està buit o incomplet");
			return false;
		}

    var adreca = Trim(fmForm.adreca.value);
		if (adreca.length == 0)
		{
			alert ("El camp 'Adreca' està buit o incomplet");
			return false;
		}

    var cp = Trim(fmForm.cp.value);
		if (cp.length == 0)
		{
			alert ("El camp 'CP' està buit o incomplet");
			return false;
		}

    var poblacio = Trim(fmForm.poblacio.value);
		if (poblacio.length == 0)
		{
			alert ("El camp 'Població' està buit o incomplet");
			return false;
		}

    var telefon = Trim(fmForm.telefon.value);
		if (telefon.length == 0)
		{
			alert ("El camp 'Telèfon fix' està buit o incomplet");
			return false;
		}

    var email = Trim(fmForm.email.value);
		if (email.length == 0)
		{
			alert ("El camp 'E-mail' està buit o incomplet");
			return false;
		}

    var titularcompte = Trim(fmForm.titularcompte.value);
		if (titularcompte.length == 0)
		{
			alert ("El camp 'Nom del titular del compte' està buit o incomplet");
			return false;
		}

    var entitatfinancera = Trim(fmForm.entitatfinancera.value);
		if (entitatfinancera.length == 0)
		{
			alert ("El camp 'Entitat financera' està buit o incomplet");
			return false;
		}

    var adrecabanc = Trim(fmForm.adrecabanc.value);
		if (adrecabanc.length == 0)
		{
			alert ("El camp 'Adreça' està buit o incomplet");
			return false;
		}

    var f_data = Trim(fmForm.f_data.value);
		if (f_data.length == 0)
		{
			alert ("El camp 'Data' està buit o incomplet");
			return false;
		}



	return true;
	}
