function ventanaSecundaria (URL,WIDTH,HEIGHT,NOMBRE){ 
	window.open(URL,NOMBRE,"width="+WIDTH+",height="+HEIGHT+",scrollbars=Yes") 
} 
function MM_jumpMenu(targ,selObj,restore){ //v3.0
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

/* DATA CHECK **************************************************************************************************/
function checkFailed(id,name, color,mensaje) {
	/*
	id[name].style.background=(color);
	id[name].focus();
	*/
	alert(mensaje);
}
function checkFailedDate(id,name, color,mensaje) {
	id[name].style.background=(color);
	id[name].focus();
	window.alert(mensaje);
}

function checkFieldValueNotReq (id,name, mensaje,color) {
	var valor=id[name].value;
	if (valor=='') {
		return 1;
	} else {
		return 0;
	}	
}

function checkFieldValue (id,name, mensaje,color) {
	// alert (id.name + ", " + name + " -> " + id[name].value);
	var valor=id[name].value;
	if (valor=='') {
		check = checkFailed(id,name, color,mensaje)
		return 1;
	} else {
		return 0;
	}	
}

// Validaci�n de NIF
function checkFieldNIF (id, name, mensaje, color) {
	var valor=id[name].value;

	numero = valor.substr(0,valor.length-1);
	let = valor.substr(valor.length-1,1);
	numero = numero % 23;
	letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
	letra = letra.substring(numero,numero+1);
	
	if (valor=='' || (letra != let.toUpperCase())) {
		check=checkFailed(id, name, color, mensaje);
		return 1;
	} else {
		return 0;
	}	
	// return (letra != let.toUpperCase()) ? false : true;
};

function checkLongitud (id, name,longitud,mode,mensaje,color) {
	//window.alert(cadena+" "+cadena.length+" "+longitud+" "+mode);
	var cadena = id[name].value;
	if (mode=="max") {
		if (cadena.length<longitud) {
			check=checkFailed(id,name, color,mensaje)
			return 1;	
		} else {
			return 0;
		}
	} else if (mode=="min") {
		if (cadena.length>longitud) {
			check=checkFailed(id,name, color,mensaje)
			return 1;	
		} else {
			return 0;
		}
	} else if (mode=="exact") {
		
		if (cadena.length==longitud) {
			return 0;	
		} else {
			check=checkFailed(id,name, color,mensaje)
			return 1;
		}
	}
}

function checkEmail (id, name,mensaje,color) {
	var emailStr = id[name].value;
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		check=checkFailed(id,name, color,mensaje)
		return 1
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		check=checkFailed(id,name, color,mensaje)
		return 1
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				check=checkFailed(id,name, color,mensaje)
				return 1
			}
		}
		return 0
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		check=checkFailed(id,name, color,mensaje)
		return 1
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
    	domArr[domArr.length-1].length>3) {
		check=checkFailed(id,name, color,mensaje)
   		return 1
	}
	if (len<2) {
		check=checkFailed(id,name, color,mensaje)
	   return 1
	}

	return 0;
}

function checkEmail_2 (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:.\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		return 1
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		return 1
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return 1
			}
		}
		return 0
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return 1
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
    	domArr[domArr.length-1].length>3) {
   		return 1
	}
	if (len<2) {
	   return 1
	}

	return 0;
}

function checkString (id, name,mensaje,color) {
	var cadena = id[name].value;
	var patron=/[a-zA-Z]/
	var patron2=/[0-9]/
	
	var matchArray=cadena.match(patron)
	if (cadena.lenght<2) {
		check=checkFailed(id,name, color,mensaje)
	   return 1
	}
	if (matchArray==null) {
		check=checkFailed(id,name, color,mensaje)
		return 1
	}
	var matchArray=cadena.match(patron2)
	if (matchArray!==null) {
		check=checkFailed(id,name, color,mensaje)
		return 1
	}
	

	return 0;
}

function checkInt (id,name,mensaje,color) {
	var valor=id[name].value;
	if (isNaN(valor)==true) {
		check=checkFailed(id,name, color,mensaje)
		return 1;
	} else {
		return 0;
	}
}
function checkDate (id,name, color,mensaje){
	//window.alert (id[name+"_year"].value);
	
	var Cadena = id[name+"_dia"].value+"-"+id[name+"_mes"].value+"-"+id[name+"_year"].value;
	
	var fdia=id[name+"_dia"].value;
	var fmes=id[name+"_mes"].value;
	var fyear=id[name+"_year"].value;
	
	var Fecha= new String(Cadena)	// Crea un string
	//var RealFecha= new Date()	// Para sacar la fecha de hoy
	
	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;
	}
	
	
	
	// Cadena A�o
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")))
	if (Mes<10) {
		Mes="0"+Mes;
	}
	// Cadena D�a
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")))
	if (Dia<10) {
		Dia="0"+Dia;
	}
	ahora=year+"-"+month+"-"+daym;
	compare=Ano+"-"+Mes+"-"+Dia;
	if (ahora<compare) {
		check=checkFailed(id,name+"_year", color,mensaje)
		return 1;		
	}
	// Valido el a�o
	if (isNaN(fyear) || fyear.length<4 || parseFloat(fyear)<1900){
			
			check=checkFailed(id,name+"_year", color,mensaje)
			return 1
	}
	
	// Valido el Mes
	if (isNaN(fmes) || parseFloat(fmes)<1 || parseFloat(fmes)>12){
		check=checkFailed(id,name+"_mes", color,mensaje)
		return 1
	}
	// Valido el Dia
	if (isNaN(fdia) || parseInt(fdia)<1 || parseInt(fdia)>31){
		check=checkFailed(id,name+"_dia", color,mensaje)
		return 1
	}
	if ((Mes==4 || Mes==6 || Mes==9 || Mes==11) && Dia>30) {
		check=checkFailed(id,name+"_dia", color,mensaje)
		return 1
	}
	if ((Mes==2 && Dia > 29) && bisiesto(Ano)) {
		check=checkFailed(id,name+"_dia", color,mensaje)
		//window.alert ("Bisiesto"+id[name+"_year"].value);
		return 1
	}
	if ((Mes==2 && Dia > 28) && !bisiesto(Ano)) {
		check=checkFailed(id,name+"_dia", color,mensaje)
		return 1
	}
	
  //para que envie los datos, quitar las  2 lineas siguientes
  //alert("Fecha correcta.")
  return 0;
}
function bisiesto(year) { 
	return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}
