function activarOrganizacion (num){
    if (num == 1){
        document.solicitud.OTRA_OP_DETALLE.disabled = false;
    }else{
        document.solicitud.OTRA_OP_DETALLE.disabled = true;
	}
}

function AceptaYchckValues(formid,classerror){
					
	    var persona = document.solicitud.TIPO_PERSONA;
					
				 if(persona){
				 		if(!(persona[0].checked || persona[1].checked)){
				 							alert('Elija persona fisica o juridica');
				 							window.location.href="#";
				 				   return false;
				 			
				 		}
				 	 
				 }	





	
	    var verificar = document.getElementById('verificar');

					if(verificar.checked)
					{					
								return chckValues(formid,classerror);
					}
					else
					{
								alert('Debe dar conformidad y aceptar los terminos');
								verificar.focus();
								verificar.className="error";
								return false;
					
					}
					
}



/* 
*   Funcion que pasandole un id y un literal con la clase de error
*   comprueba utilizando el atributo HTML personalizado 'datatype' para todos
*   los elementos del form, haciendo uso de la juncion chckValueMultiplexer
*   
*   Si falla cambia la clase CSS del elemento a la classerror y salta pone el 
*   foco en el ultimo elemento que falla.
*    
*   David Sánchez
*   (C) E2000 Financial Investments S.A.
*/  

function chckValues(formid,classerror){
	var returnValue = true;
	
	
	
	var form = document.getElementById(formid);
	

	
	if (form){
				if(form.elements){
							var i;
							var el;

							for(i=0;i<form.elements.length;i++)
								{
										el = form.elements[i];

										
										if(el.datatype){ // <-- Solo Internet Explorer admite atributos personalizados
												
										  if (!chckValueMultiplexer(el.datatype,el.value)){

															var antiguaClase=el.className;
															if (!el.antiguaClase){
																					el.antiguaClase="input";
															}
														 
														 el.className=classerror;
										  			el.focus();
														 

															var myFunc = new Function('if(this.antiguaClase){this.className=this.antiguaClase;}');
															
															el.onchange = myFunc;

															

										  			returnValue =  false;
										  }
										}
								}
						
						
				}
	}
	return returnValue;
}


/* 
*   Funcion que pasandole un literal 'datatype' y un valor 'value'
*   Llama y retorna el valor de los distintos tipos de datatypes
*   
*    
*   David Sánchez
*   (C) E2000 Financial Investments S.A.
*/  

function chckValueMultiplexer(datatype,value){

	
	switch(datatype){

		case "integer":
									return IsNumeric(value);
									break;
									
		case "integerornull":
								if (value.length == 0)
											return true;
								return IsNumeric(value);
								break;

  case "currency":
  					if (value.length==0)
  						return true;

							if(!IsNumericNoAlert(value)){
								return isCurrency(value);
							}

							return true;
							break;

  case "currencyrequired":
							if(!IsNumericNoAlert(value)){
								return isCurrency(value);
							}
							return true;
							break;



		case "mustnull":
								if (!isEmpty(value)){
									alert("Este campo debe ser vacio");
									return false;
								}
									break;
				
									
		case "notnull":
								if (isEmpty(value)){
									alert("Este campo no puede ser vacio");
									return false;
								}
									break;
																		
  case "email":
  					return compruebaEmail(value);
							break;

  case "emailornull":
								if (value.length == 0)
											return true;
  					return compruebaEmail(value);
						break;

	}
	return true;
	
}

/*  Esta vacio el elemento?
*   
*   David Sánchez
*   (C) E2000 Financial Investments S.A.
*/


function isEmpty(value){
					retValue = true;

					if(value){
								if(value.length!=0){
									retValue=false;
								}
					}
									
					return retValue;
}

/*  
*   El elemento es un valor monetario?
*   
*   David Sánchez
*   (C) E2000 Financial Investments S.A.
*/


function isCurrency(str) {
		var isPrice = /^\d+\,\d{2}$/;
		if(isPrice.test( str )){
				return true;
		}
		else{
			alert("Este campo no contiene un valor monetario valido \n\nEjemplo de formatos validos:\n\n\t3,43\t(tres euros con cuarenta y tres cents)\n\t3\t(tres euros)");
		}
		
}



function detalleAction(formid){
	var form = document.getElementById(formid);

	if(form){

		if (form.action == 'modify.jsp'){
			 if(!chckValues(formid,"SQLKeyword")){
			 		return false;
			 }
				return doConfirm("¿Esta seguro que desea actualizar estos datos?");
		}
		else
			 return doConfirm("¿Esta seguro que desea eliminar esta entrada?");
	}
}

function nuevo(formid){
	var form = document.getElementById(formid);
	if(form)
	if (form.action=='insert.jsp')
 {
 		if(!chckValues(formid,"SQLKeyword")){
			 		return false;
			 }
				
 		if(doConfirm('¿Esta seguro que desea dar de alta este campo con estos valores?'))
 			return true;
 	 else
 	  return false;		
 }
	return true;
}


function chaction(formid, action){
	var form = document.getElementById(formid);
	if(form){
		form.action = action;
	}else{
		alert("The specified form " + formid + " cant be found");
	}

	return form?true:false;
}


function doConfirm(message)
{
   if(window.confirm(message))
   return true;
   return false;
}

function viewDetail(primarykey)
{
   document.location.href = "detalle.jsp?id=" + primarykey;
   return true;
}

function IsNumeric(strString) //  check for valid numeric strings	
{
			var returnValue=true;
			returnValue=IsNumericNoAlert(strString);
			if(!returnValue)
							alert("Introduzca solo numeros en este campo");
			
			return returnValue;
}


function IsNumericNoAlert(strString) //  check for valid numeric strings	
{
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;
   if(strString.length == 0)
   return false;
   //  test strString consists of valid characters listed above
   for(i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if(strValidChars.indexOf(strChar) == - 1)
      {
         blnResult = false;
      }
   }



   return blnResult;


}




function IsBoolSN(strString) //  check for valid boolean SN strings
{
   var strValidChars = "sSnN";
   var strChar;
   var blnResult = true;
   if(strString.length == 0)
   return false;
   //  test strString consists of valid characters listed above
   for(i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if(strValidChars.indexOf(strChar) == - 1)
      {
         blnResult = false;
      }
   }
   if(!blnResult)
   						alert('Elija un valor para este campo');


   return blnResult;
}

function IsBoolOneZero(strString) //  check for valid Boolean One Zero strings
{
   var strValidChars = "10";
   var strChar;
   var blnResult = true;
   if(strString.length == 0)
   return false;
   //  test strString consists of valid characters listed above
   for(i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if(strValidChars.indexOf(strChar) == - 1)
      {
         blnResult = false;
      }
   }
   
   if(!blnResult)
   						alert('Elija un valor para este campo');

   return blnResult;
}




function IsEmail(email_to_test) {
	var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
 if(!email.test(email_to_test))
				alert('Direccion de correo invalida');
	return(email.test(email_to_test));


}



function TestAndReturn(element, type)
{
   var returnValue=false;
   
   
			if (type == "numeric")
			{
					if (element.value.length >= 0)
							returnValue = IsNumeric(element.value);
				
			}
			if (type == "boolsn")
			{
					if (element.value.length = 1)
							returnValue = IsBoolSN(element.value);
				
 		}

			if (type == "boolonezero")
			{
					if (element.value.length = 1)
							returnValue = IsBoolOneZero(element.value);
				
			}


			if (type == "email")
			{
					if (element.value.length >= 0)
							returnValue = IsEmail(element.value);
				
			}


   return returnValue;
}


  function compruebaEmail(direccion)
  {
	//===============================================================================  
    var CaracteresInvalidos = ' ºª\\!|"·#$~%€¬/()=?¿¡\'`^[+*]´{¨ç}ÇáéíóúÁÉÍÓÚäëïöüÄËÏÖÜ:;,<>ñÑ';
    var I , L;	  
	//===============================================================================
    var contieneArroba   = direccion.indexOf("@")>0;
	var unaSolaArroba    = direccion.indexOf("@")==direccion.lastIndexOf("@");
	var contienePunto    = direccion.indexOf(".")>0;
    //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
    //Contiene punto después de la arroba y al menos un caracter entre ambos*-*-*-*-*-
	var puntoTrasArroba  = contieneArroba && contienePunto 
	                       && direccion.lastIndexOf(".")>direccion.lastIndexOf("@")+1;
    //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
    //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-	
	var noTerminaEnPunto = direccion.lastIndexOf(".")<(direccion.length-1);
	var sinCharsInvalidos = true;
	//===============================================================================
    for (I = 0, L=CaracteresInvalidos.length; I<L && sinCharsInvalidos; I++ ){
	   sinCharsInvalidos = (direccion.indexOf(CaracteresInvalidos.substr(I,1))<0);	
    }
	//===============================================================================	
    var valido= contieneArroba
	            && unaSolaArroba
				&& contienePunto
				&& puntoTrasArroba
				&& noTerminaEnPunto
				&& sinCharsInvalidos;
	//===============================================================================	
	if (!valido)
	{
	  var Errores = "";
	  Errores = (contieneArroba?   "":"\n\tNo contiene arroba ('@').")
		       +(unaSolaArroba?    "":"\n\tContiene más de una arroba ('@').")
		       +(contienePunto?    "":"\n\tNo contiene ningún punto.")
		       +(puntoTrasArroba?  "":"\n\tNo se ha especificado un dominio.")
		       +(noTerminaEnPunto? "":"\n\tNo debe terminar con un punto.")
		       +(sinCharsInvalidos?"":("\n\tContiene caracteres inválidos.\n\n\t\t"
			                           +"Los caracteres inválidos son:\n\t\""
									   +CaracteresInvalidos+"\""));
	  alert ( "'"+direccion+"' es incorrecta:" + Errores);
	}
	return valido	;
}