/*
'**********************************************************************
'*  CÓDIGO MODIFICACIÓN: ND1
'*  FECHA MODIFICACIÓN: 17/06/2002
'*  AUTOR MODIFICACIÓN: ZSCRMM
'*  DESCRIPCIÓN DE LA MODIFICACIÓN:
'*		Se ha modificado la función ValidaFecha para que no admita
'*		dia, mes, ni año 0 ni negativos.
'**********************************
'*  CÓDIGO MODIFICACIÓN: ND2
'*  FECHA MODIFICACIÓN: 20/06/2002
'*  AUTOR MODIFICACIÓN: ZSCRMM
'*  DESCRIPCIÓN DE LA MODIFICACIÓN:
'*		La función ValidaFecha no funcionaba correctamente. Al
'*	hacerle un parseInt a una cadena que empieza por 0 lo
'*	interpreta como octal.
'**********************************************************************
'**********************************
'*  CÓDIGO MODIFICACIÓN: ND3
'*  FECHA MODIFICACIÓN: 07/10/2002
'*  AUTOR MODIFICACIÓN: EXTIDF
'*  DESCRIPCIÓN DE LA MODIFICACIÓN:
'*		La función ValidaFecha no validaba que el carácter separador 
'*		de fechas sea "/"
'**********************************************************************
*/
function ConvertirAMayus(Cadena){
	var palabrasnoconvertir
	var cadaux,minus,mayus;
	var Retorno='';
	var k,m
	var arraycadena
	var arraypalabrasnoconvertir
	var palabra
	var noconvertir
	
	palabrasnoconvertir='de,la,del,el,la,los';
	arraypalabrasnoconvertir=palabrasnoconvertir.split(',');
		
	if (Cadena!=''){
		arraycadena=Cadena.split(' ');
		for (k=0;k<arraycadena.length;k++){
			noconvertir=false;
			for (m=0;m<arraypalabrasnoconvertir.length;m++){
				if (arraypalabrasnoconvertir[m].toUpperCase()==arraycadena[k].toUpperCase()){
					noconvertir=true;
					m=arraypalabrasnoconvertir.length+1;
				}
			}
			cadaux=arraycadena[k];
			if (noconvertir==false){				
				mayus=cadaux.substring(0,1);
				minus=cadaux.substring(1);
				palabra=mayus.toUpperCase() + minus.toLowerCase();
			}else{
				palabra=cadaux.toLowerCase();
			}
			Retorno=Retorno + palabra + " ";
		}
		Retorno=Retorno.substring(0,Retorno.length-1);
	}
	
	return Retorno;
}



//** FUNCIONES PARA ACTIVAR/DESACTIVAR CAMPOS *************************

function DsabledForm()
{
	this.tamano=0	
}

function prototipar(obj,valor)
{
	eval("DsabledForm.prototype." + obj.name + "=" + valor)
}


function preparadesactivador(f){
	for (i=0;i < f.length;i++)
	{
	  prototipar(f[i],"-1");	
	} 
	// para depurar:
	//for (i=0;i < f.length;i++)
	//{
	//	alert(f[i].name ); //+ eval("obF." + f[i].name));
	//} 


}

function preparadesactivadorON(f){
	for (i=0;i < f.length;i++)
	{
	  prototipar(f[i],"0");	
	} 
	// para depurar:
	//for (i=0;i < f.length;i++)
	//{
	//	alert(f[i].name ); //+ eval("obF." + f[i].name));
	//} 


}


function activa(ob){
		if (eval("Desactivador."+ ob.name)==-1)
		{
			//alert (ob.desativar);  
			ob.blur();
		}
}
//** FIN FUNCIONES PARA ACTIVAR/DESACTIVAR CAMPOS *************************


//****** FUNCIONES PARA VALIDAR CAMPOS DE UN FORMULARIO *******************
function GETform(f,c)
{	
	var fc1
	var ns,ie,ns6
	ns  = (document.layers) ? true	: false;
	ie  = (document.all)? true	: false;
	ns6 = (document.getElementById	&& !document.all)? true	: false
	
	if (ie){
			//alert ('ie');
			fc1=document.forms(f);}
    if (ns){
			//	 alert ('ne');
				if (c=='') {
					fc1=window.document.forms[f];
				} else {
					fc1=window.document.layers[c].document.forms[f];
				}
	}
    if (ns6){
			//	  alert ('ns6');
				  Faux=document.getElementsByTagName("FORM");	
				  fc1=eval('Faux.' + f);}	
	return(fc1);	
}



function CampoEsEmail(correo)
{	
	//Recibe el valor
	var correcto='true';
	var pos=correo.indexOf("@");	
	var pos2=correo.indexOf(".");
	
	if (pos==-1 || pos==0) 
	{
  	    correcto='false';
	}	
	else if	 (pos2==-1 || pos2==correo.length-1)
	{
		correcto='false';
	}	
    else if (pos2-pos==1) 
    {
	    correcto='false';
	}
	return correcto;
}


//function CampoEsEmail(obj){ 
	//Requiere que llamemos a la funcion pasandole el objeto con this
//	var ValorCampo; 
//	var Form0=document.forms[0]; 
//	var error; 		
//	ValorCampo=Form0.elements[obj.name].value; 

//	if(ValorCampo.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1)	
//	{ 
//		error='true'; 
//	} 
//	else 
//	{
//		error='false'; 
//	}
//	return error; 
//} 


function CampoNoEstaVacio(NombreCampo)
{
	//Le pasamos el nombre del campo y el nombre del formulario
	//Valida que los campos no esten vacios
	//Si devuelve false es que esta vacio
	
	if (NombreCampo.value!="") 
	{
		var valcampo=NombreCampo.value;
		var encontrado=0;
		var letra;
		var enviar;
				
		/*for (var x=0;x<valcampo.length;x++)		*/
		for (var x=0;x<NombreCampo.value.length;x++)
		{
			letra=valcampo.substring(x,x+1);
			if (letra!=" ")
			{
				encontrado=1;
				enviar='true';
			}
			if (encontrado==0)
			{
				//alert("Debes introducir un usuario válido.");
				enviar='false';				
			}
		}
	}
	else
	{
		enviar='false';
	}

	return enviar;
}

function CampoEsNumerico(pCaracter)
{
	var enviar;
	var patron;
	var cadena,cadenaorigen;
	enviar='true';
	
	//Reemplazamos la coma por el punto
	patron=/,/gi;
	cadenaorigen=pCaracter.value;
	cadena=cadenaorigen.replace(patron,'.');
	pCaracter.value=cadena;
	
	for (var i=0;i<pCaracter.length;i++)
	{
	      var sByte=pCaracter.substring(i,i+1);
	      if (!(sByte=="0" || sByte=="1" || sByte=="2" || sByte=="3" || sByte=="4" || sByte=="5" || sByte=="6" || sByte=="7" || sByte=="8" || sByte=="9" || sByte==".")) 
	      {
			enviar='false';
	      }
	}
	
	if (isNaN(pCaracter.value))
	{
		enviar='false';
	}
	
	return enviar;
}



function EsEstrictamenteNumerico(pCaracter)
{
	//Comprueba que un campo sólo contenga valores numéricos, es decir, del 0 al 9
	//(se le pasa el .value)
	
	var enviar;
	enviar='true';
	for (var i=0;i<pCaracter.length;i++)
	{
	      var sByte=pCaracter.substring(i,i+1);
	      if (!(sByte=="0" || sByte=="1" || sByte=="2" || sByte=="3" || sByte=="4" || sByte=="5" || sByte=="6" || sByte=="7" || sByte=="8" || sByte=="9")) 
	      {
				enviar='false';
		  }
	}
	return enviar;
}


function EsDecimal(pCaracter,nEnteros,nDecimales)
{
	//Comprueba que un campo sólo contenga: valores del 0-9 y coma o punto para los
	//decimales
	
	var numenteros=0;
	var numdecimales=0;
	var llevacoma=0;
		
	var enviar;
	enviar='true';
	for (var i=0;i<pCaracter.length;i++)
	{
	      var sByte=pCaracter.substring(i,i+1);
	      if (!(sByte=="0" || sByte=="1" || sByte=="2" || sByte=="3" || sByte=="4" || sByte=="5" || sByte=="6" || sByte=="7" || sByte=="8" || sByte=="9")) 
	      {
				//Si es distinto de punto y coma
				if (!(sByte=="," || sByte=="."))
				{
					//Caracter distinto de 0-9 y distinto de punto o coma
					enviar='false';
				}
				else
				{
					if (parseInt(llevacoma)==0){
						llevacoma=1;
					}else{
						//Tiene más de una coma
						enviar='false';
					}
				}
		  }
		  //Es numérico
		  else{
			//Es parte entera
			if (parseInt(llevacoma)==0){
				numenteros=numenteros+1;						
			}
			//Es parte decimal
			else{
				numdecimales=numdecimales+1;
			}
		  }
	}
	
	if (enviar=='true')
	{
		if (parseInt(numenteros)>parseInt(nEnteros))
		{
			//Tienes más enteros de los que está permitido
			enviar='false';
		}
		if (parseInt(numdecimales)>parseInt(nDecimales))
		{
			//Tienes más decimales de los que está permitido
			enviar='false';
		}		
	}
	
	return enviar;
}
function damevalue(Combo){
	for (i=0;i<Combo.length;i++)
	{
		if (Combo.options[i].selected){
			return (Combo.options[i].value)
		}
	}
}

function Seleccionavalue(Combo,value){
	//alert(Combo + '---' + value);
	for (i=0;i<Combo.length;i++)
	{
		if (Combo.options[i].value==value){
			Combo.options[i].selected=true
		}
	}
	//alert('FIN' + value);
}

function RepiteCadena(cadenaARepetir,vecesARepetir)
{
	var nuevacadena,j;
	nuevacadena='';
	for(j=0;j<parseInt(vecesARepetir);j++)	
	{	
		nuevacadena = nuevacadena + cadenaARepetir;
	}
	
	return nuevacadena;
}
//****** FIN FUNCIONES PARA VALIDAR CAMPOS DE UN FORMULARIO ***************

/* Funciones para la conversión de fechas a números y de 
   números a fechas. 
*/
function cdatetonumber(fecha)
{
	var str;
	//Convierte de fecha a número
	fecha = '' + fecha ;
	str = fecha.substr(-3,4) + fecha.substr(3,2) + fecha.substr(0,2);
	return str;
}

function cnumbertodate(fecha)
{	
	var str;
	/*Convierte de número a fecha*/
	if (fecha != '') 
		str = fecha.substr(-1,2)+ '/' + fecha.substr(4,2) + '/' + fecha.substr(0,3);
	else
		str = '';
	return str;
}


function ValidaFecha(cFecha)
{		
	var continua='';
	var Dia,Mes,Anio,Signo1,Signo2
	
	if (cFecha.value!='')
	{		
		if(cFecha.value.length != 10)
		{
			continua='false';
		}
		else
		{
			// INICIO MODIFICACION ND2
			Dia = parseInt(parseFloat(cFecha.value.substring(0,2)));
			Mes = parseInt(parseFloat(cFecha.value.substring(3,5)));
			Anio = parseInt(parseFloat(cFecha.value.substring(6,10)));
			// FIN MODIFICACION ND2
			
			Signo1 = cFecha.value.substring(2,3);
			Signo2 = cFecha.value.substring(5,6);
			
			//INICIO MODIFICACION: ND3
			if (Signo1!='/'){
				continua='false';
			}
			if (Signo2!='/'){
				continua='false';
			}			
			
			if (continua!='false'){
			//FIN MODIFICACION: ND3			
				if (isNaN(Dia) || isNaN(Mes) || isNaN(Anio)){
					continua='false';
				}else{
					if  (parseInt(Mes)==1|| parseInt(Mes)==3 || parseInt(Mes)==5|| parseInt(Mes)==7 || parseInt(Mes)==8|| parseInt(Mes)==10 || parseInt(Mes)==12)
					{
						if (parseInt(Dia) > 31)
						{
							continua='false';
						}					
					}	
					if (parseInt(Mes)==4 || parseInt(Mes)==6 ||parseInt(Mes)==9 || parseInt(Mes)==11)
					{
						if ( parseInt(Dia) > 30 )
						{
							continua='false';
						}								
					}							
					if (parseInt(Mes)==2)
					{
						if ( parseInt(Dia) > 29 )
						{
							continua='false';
						}				
					}
					//********** SE COMPRUEBA QUE EL MES NO SEA MAYOR DE 12
					if (parseInt(Mes)>12)
					{
						continua='false';
					}
					//********** SE COMPRUEBA QUE EL DIA NO SEA MAYOR DE 31
					if (parseInt(Dia)>31)
					{
						continua='false';
					}				
					//********** SE COMPRUEBA QUE EL ANNO SEA SUPERIOR A 1930 
					if (parseInt(Anio)<=1930)
					{
						continua='false';
					}
					/*'INICIO MODIFICACION ND1*/
					if (parseInt(Dia)<=0 || parseInt(Mes)<=0 || parseInt(Anio)<=0)
					{
						continua='false';
					}
					/*'FIN MODIFICACION ND1*/
				}	
			//INICIO MODIFICACION: ND3
			}
			//FIN MODIFICACION: ND3
		}	
	}
	
	if (continua=='')
	{
		continua='true';
	}
	
	return continua;
}



//Funcion de validacion de fechas

	function EsFechaCorrecta(cFecha)
	{
		
			
			if (cFecha.value !='')
	{		
			if(cFecha.value.length != 10)
			{
				alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
				cFecha.focus();
				return 0; 
							
			}
			else
			{
				
				Dia = parseInt(cFecha.value.substring(0,2));
				Mes = parseInt(cFecha.value.substring(3,5));
				Anio = parseInt(cFecha.value.substring(6,10));
				Signo1 = cFecha.value.substring(2,3);
				Signo2 = cFecha.value.substring(5,6);
				if (isNaN(Dia) || isNaN(Mes) || isNaN(Anio))
					{
					alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
					cFecha.focus();
					return 0;
					
					}
				else
				{
						if  (Mes==1|| Mes==3 || Mes==5|| Mes==7 || Mes==8|| Mes==10 || Mes==12)
							{
									
								if (  Dia > 31)
								{
									
									alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
									cFecha.focus();
									return 0;
								}
								
							}	
							if (Mes==4 || Mes==6 ||Mes==9 || Mes==11)
							{
								if ( Dia > 30 )
								{
									alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
									cFecha.focus();
									return 0;
								}
								
							}
							
							if (Mes==2)
							{
							if ( Dia > 29 )
								{
									alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
									cFecha.focus();
									return 0;
								}
							
							}
//********** SE COMPRUEBA QUE EL MES NO SEA MAYOR DE 12
							if (Mes>12)
							{
								alert('Por favor, introduce un formato de fecha correcta');
								cFecha.focus();
								return 0;
							}
//********** SE COMPRUEBA QUE EL DIA NO SEA MAYOR DE 31
							if (Dia>31)
							{
								alert('Por favor, introduce la fecha en formato (dd/mm/aaaa)');
								cFecha.focus();
								return 0;
							}
			}	
	 }	
 }
return 1;
}



function ReemplazarCaracteresExtranos(pCadena)
{
	var patron;
	var cadena,cadenaorigen;
		
	var caracteresparasustituir;
	var caracteressustituirpor;
	var arrayparasustituir;
	var arraysustituirpor;
	
	cadenaorigen=pCadena;
	
	caracteresparasustituir='á|à|ä|â|Á|À|Ä|Â|';
	caracteresparasustituir=caracteresparasustituir + 'é|è|ë|ê|É|È|Ë|Ê|';
	caracteresparasustituir=caracteresparasustituir + 'í|ì|ï|î|Í|Ì|Ï|Î|';
	caracteresparasustituir=caracteresparasustituir + 'ó|ò|ö|ô|Ó|Ò|Ö|Ô|';
	caracteresparasustituir=caracteresparasustituir + 'ú|ù|ü|û|Ú|Ù|Ü|Û|';
	caracteresparasustituir=caracteresparasustituir + 'ç|Ç|ñ|Ñ';
	
	caracteressustituirpor='a|a|a|a|A|A|A|A|';
	caracteressustituirpor=caracteressustituirpor + 'e|e|e|e|E|E|E|E|';
	caracteressustituirpor=caracteressustituirpor + 'i|i|i|i|I|I|I|I|';
	caracteressustituirpor=caracteressustituirpor + 'o|o|o|o|O|O|O|O|';
	caracteressustituirpor=caracteressustituirpor + 'u|u|u|u|U|U|U|U|';
	caracteressustituirpor=caracteressustituirpor + 'c|C|n|N';
	
	//Creo arrays
	arrayparasustituir=caracteresparasustituir.split('|');
	arraysustituirpor=caracteressustituirpor.split('|');
	
	//Reemplazamos la coma simple y el acento por vacio
	patron=/\'/gi;
	cadena=cadenaorigen.replace(patron,'');

	patron=/\´/gi;
	cadena=cadenaorigen.replace(patron,'');

		
	//Reemplazo resto de caracteres
	for (k=0;k<arrayparasustituir.length;k++){
		patron=new RegExp(arrayparasustituir[k],"g");
		cadena=cadena.replace(patron,arraysustituirpor[k]);
	}

	return cadena;
}

/*++++++++++++ FUNCIONES PARA ABRIR POPUPS +++++++++++++*/

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


