

//Valida si el dato es un número
function IsValidNumber(txtfield){

	var digits="0123456789."
	var temp;
	var ndecimales=0;

	if (txtfield.value=="") {
		return false
	}
	for (var i=0;i<txtfield.value.length;i++){
		temp=txtfield.value.substring(i,i+1)		
		if (digits.indexOf(temp)==-1){
			return false;
			  }
		if(temp==","){
			ndecimales++;
			if(ndecimales>1){
				return false;
			}
		}
	}	

	return true
}

function IsValidNumberNeg(txtfield){

	var digits="0123456789.-"
	var temp;
	var ndecimales=0;

	if (txtfield.value=="") {
		return false
	}
	for (var i=0;i<txtfield.value.length;i++){
		temp=txtfield.value.substring(i,i+1)		
		if (digits.indexOf(temp)==-1){
			return false;
			  }
		if(temp==","){
			ndecimales++;
			if(ndecimales>1){
				return false;
			}
		}
	}	

	return true
}

//Valida si el dato es un número
function IsValidNumberInt(txtfield){

	var digits="0123456789"
	var temp;
	var ndecimales=0;

	if (txtfield.value=="") {
		return false
	}
	for (var i=0;i<txtfield.value.length;i++){
		temp=txtfield.value.substring(i,i+1)		
		if (digits.indexOf(temp)==-1){
			return false;
			  }
		if(temp==","){
			ndecimales++;
			if(ndecimales>1){
				return false;
			}
		}
	}	

	return true
}

//Valida si el dato es un número
function IsValidNumberIntNeg(txtfield){

	var digits="0123456789-"
	var temp;
	var ndecimales=0;

	if (txtfield.value=="") {
		return false
	}
	for (var i=0;i<txtfield.value.length;i++){
		temp=txtfield.value.substring(i,i+1)		
		if (digits.indexOf(temp)==-1){
			return false;
			  }
		if(temp==","){
			ndecimales++;
			if(ndecimales>1){
				return false;
			}
		}
	}	

	return true
}

//Valida una fecha
function IsValidDate(dateStr,msgStr) {
	// Checks for the following valid date formats:
	// DD/MM/YY   DD/MM/YYYY   DD-MM-YY   DD-MM-YYYY
	// Also separates date into month, day, and year variables

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

	// To require a 4 digit year entry, use this line instead:
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		msgStr = "Fecha con formato no válido.";
		return false;
	}
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[4];
	if (month < 1 || month > 12) { // check month range
		msgStr = "Debes introducir un mes entre 1 y 12.";
		return false;
	}
	if (day < 1 || day > 31) {
		msgStr = "Debes introducir un día entre 1 y 31.";
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		msgStr = "El mes " + month + " no tiene 31 días.";
		return false
	}
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
		msgStr = "El mes de Febrero del año " + year + " no tiene " + day + " días.";
		return false;
	   }
	}
return true;  // date is valid
}

function ValidarNIF(objNIF){

	if(objNIF.value==""){
	   return false;
	}

	return true;
}



function valido_CIF(valor) 
{
	if(valor.value==""){
	   return false;
	}

	return true;
}

	function IsValidEMail(email, msgStr) {

		var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.";
		var i;
		var pos_arroba = email.indexOf("@");
		var pos_ultimo_punto = email.lastIndexOf(".");
		var email_minus = email.toLowerCase();
		var login;
		
		if (pos_arroba == -1) {
			return false;
		}
		if (email_minus.indexOf("login@yaonline.es") != -1){
			return false;
		}
		if (pos_ultimo_punto == -1) {
			return false;
		}
		if (email.charAt(pos_arroba+1)=='.') {
			return false;
		}
		login = email.substring(0, pos_arroba);
		for(i=0;i<login.length;i++) {
			if (caracteres.indexOf(login.charAt(i)) == -1) {
				return false;
			}
		}    
		valido = true;
		trozo = email.substring(1+pos_arroba, pos_ultimo_punto);
		for(i=0;i<trozo.length;i++) {
			if (caracteres.indexOf(trozo.charAt(i)) == -1) {
				return false;
			}
		}    
		valido = true;
		trozo = email.substring(1+pos_ultimo_punto, email.length);    
		if ((trozo.length >= 2)&&(trozo.length <= 4)) {
			for(i=0;i<trozo.length;i++) {
				if (caracteres.indexOf(trozo.charAt(i)) == -1) {
					return false;
				}
			}    
		} else {
			return false;
		}
		return true;
	}    




//Devuelve True si existe en el formulario algún check marcado de nombre 'nombre'
function AlgunCheckMarcadoDeNombreComienzaPor(formulario,nombre){
	var n=0;	
	var marcado=false;
	var nombrefrm;
	var lennombrefrm;
	var lenfrm;

	lennombre=new String(nombre);
	lenfrm = lennombre.length;

	while(n<formulario.elements.length && !marcado){
		nombrefrm = new String(formulario.elements[n].name);
	
		if(nombrefrm.substr(0,lenfrm)==nombre){
			if(formulario.elements[n].checked) {marcado=true};
		}
		n++;	
	}
	return marcado;
}


//Devuelve True si existe en el formulario algún check marcado de nombre 'nombre'
function AlgunCheckMarcadoDeNombre(formulario,nombre){
 var n=0;	
 var marcado=false;
 
 while(n<formulario.elements.length && !marcado){
	if(formulario.elements[n].name==nombre){
		if(formulario.elements[n].checked) marcado=true;
	}
	n++;	
 }
 return marcado;
}

//Marcar o Desmarcar todos los check de nombre igual a 'nombre'
function MarcarDesmarcarChecks(formulario,nombre,marcar){
 var n=0;	
 
 while(n<formulario.elements.length){
	if(formulario.elements[n].name==nombre){
		formulario.elements[n].checked=marcar;
	}
	n++;	
 }
 return "";
}


//Marcar o Desmarcar todos los check de nombre igual a 'nombre'
function MarcarDesmarcarChecksDeNombreComienzaPor(formulario,nombre,marcar){
 var n=0;	
 var marcado=false;
 var nombrefrm;
 var lennombrefrm;
 var lenfrm;

 lennombre=new String(nombre);
 lenfrm = lennombre.length;

 while(n<formulario.elements.length && !marcado){
	nombrefrm = new String(formulario.elements[n].name);
	
	if(nombrefrm.substr(0,lenfrm)==nombre){
		formulario.elements[n].checked=marcar;
	}
	n++;	
 }

}


//Devuelve el valor del radio button marcado en el formulario de nombre 'nombre'
function ValorDeRBMarcado(formulario,nombre){
 var n=0;	
 var valor="";
 
 while(n<formulario.elements.length && valor==""){
	if(formulario.elements[n].name==nombre){
		if(formulario.elements[n].checked) valor=formulario.elements[n].value;
	}
	n++;	
 }
 return valor;
}

function AbrirVentana(url,ancho,alto){		

	var ventana;
	var winl;
	var wint;
	var h;
	var w;

	h=alto;
	w=ancho;
	winl = (screen.width - w) / 2;
	wint = (screen.height - h) / 2;

    var myrandom=Math.round(Math.random()*2)
	ventana = open(url ,'v'+myrandom,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=yes,width=' + w + ',height=' + h + ',left=' + winl +',top=' + wint);
	ventana.focus;
}

function AbrirVentana2(url,ancho,alto){		

	var ventana;
	var winl;
	var wint;
	var h;
	var w;

	h=alto;
	w=ancho;
	winl = (screen.width - w) / 2;
	wint = (screen.height - h) / 2;

    var myrandom=Math.round(Math.random()*2)
	ventana = open(url ,'b'+myrandom,'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=yes,width=' + w + ',height=' + h + ',left=' + winl +',top=' + wint);
	ventana.focus;
}



function vFechayHora(fecha)
{
	var bVerificar=false;
	var sfecha = new String(fecha.value);
		
	if(sfecha.length == 10 || sfecha.length == 16)
	{
		var sAno = parseInt(sfecha.substr(0,4));
		var sG = sfecha.substr(4,1);
		var sMes = parseInt(sfecha.substr(5,2));
		var sG2 = sfecha.substr(7,1);
		var sDia = parseInt(sfecha.substr(8,2));

		if(!isNaN(sAno))
		{
			if(sG == "-")
			{
				if(!isNaN(sMes))
				{
					if(sG2 == "-")
					{
						if(!isNaN(sDia))
						{
							bVerificar=true;

							if(sfecha.length == 16)
							{
								bVerificar=false;
								var sHora= parseInt(sfecha.substr(11,2));
								var sP=sfecha.substr(13,1);
								var sMin=parseInt(sfecha.substr(14,2));
								if(sHora >= 0 && sHora < 24 && sMin >= 0 && sMin <=59 && sP == ":")
								{
									return true;
								}
							}
							else
							{
								if(sMes<=0 || sMes >12 || sDia <=0 || sDia > 31){
								}
								else{
									return true;
								}
							}
						}
					}
				}
			}
		}			
	}
	return false;
}

function validaurl(surl){

	var digitosvalidos="qwertyuiopasdfghjklzxcvbnm-_QWERTYUIOPASDFGHJKLZXCVBNM/.";
	var s = surl.value;
	var temp;
	var i;
	var npospunto=0;

	if(surl.value.substr(0,7)!="http://"){
	   return false;	
	}
	if(surl.value.length < 11){
	   return false;	
	}
	if(s.indexOf("..")>0){
	   return false;	
	}

	if(s.indexOf(" ")>0){
	   return false;	
	}
	var npos=s.indexOf(".");
	if(npos<=0){
	   return false;	
	}
	if(npos==surl.value.length-1){
	   return false;	
	}

	var s = surl.value.substr(7);
	for (i=0;i<s.length;i++){
		temp=s.substring(i,i+1);
		if (digitosvalidos.indexOf(temp)==-1){
			return false;
	    }
		if(temp=="."){
			npospunto=i;
		}

	}	
	//si despues del punto final al menos hay 2 caracteres
	if((npospunto+1) < (s.length-1)){	   	
	  //si despues del punto final NO hay mas de 4 caracteres
	  if((s.length - (npospunto+1))<=4){	   	
	     return true;	
	  }
	  else{
	     return false;
	  }
	}
	else{
	   return false;	
	}
	
}

function RoundTo2dp(X){ 
	return Math.round(X*100)/100;
}

function AbrirEditorHtml(url){
	AbrirVentana(url+'&no_menu=1',750,550);		
}

function LTrim(str) { 
 for (var k=0; k<str.length && str.charAt(k)<=" " ; k++) ;
 return str.substring(k,str.length);
}
function RTrim(str) {
 for (var j=str.length-1; j>=0 && str.charAt(j)<=" " ; j--) ;
 return str.substring(0,j+1);
}
function Trim(str) {
 return LTrim(RTrim(str));
}

function roundOff(value, precision)
{
		value = "" + value //convert value to string
		precision = parseInt(precision);

		var whole = "" + Math.round(value * Math.pow(10, precision));

		var decPoint = whole.length - precision;

		if(decPoint != 0)
		{
				result = whole.substring(0, decPoint);
				result += ".";
				result += whole.substring(decPoint, whole.length);
		}
		else
		{
				result = 0;
				result += ".";
				result += whole.substring(decPoint, whole.length);
		}
		return result;
}
function diadehoy(frm_dia,frm_mes,frm_anyo){
    var d=new Date();
	frm_dia.value = d.getDate();
	frm_mes.value = d.getMonth() + 1;
	frm_anyo.value = d.getYear();
	return true;
}

function IsNumeric(valor)
{
	var log=valor.length; var sw="S";
	for (x=0; x<log; x++) {
		v1=valor.substr(x,1);
		v2 = parseInt(v1);
		//Compruebo si es un valor numérico
		if (isNaN(v2)) { sw= "N";}
	}
	if (sw=="S") {return true;} else {return false; }
}

var primerslap=false;
var segundoslap=false;
function formateafecha(fecha)
{
	var long = fecha.length;
	var dia;
	var mes;
	var ano;

	var barra1;

	if ((long>=2) && (primerslap==false)) { dia=fecha.substr(0,2);
		if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; }
		else { fecha=""; primerslap=false;}
	}
	else
		{ dia=fecha.substr(0,1);
		if (IsNumeric(dia)==false)
			{fecha="";}
			if ((long<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; }
			}
			if ((long>=5) && (segundoslap==false))
				{mes=fecha.substr(3,2);
				if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; }
				else { fecha=fecha.substr(0,3);; segundoslap=false;}
				}
			else { if ((long<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } }
			if (long>=7)
				{ano=fecha.substr(6,4);
				if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); }
				else { if (long==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } }
	}

	if (long>=10)
	{
		fecha=fecha.substr(0,10);
		dia=fecha.substr(0,2);
		mes=fecha.substr(3,2);
		ano=fecha.substr(6,4);
		// Año no bisiesto y es febrero y el dia es mayor a 28
		if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; }
	}
	return (fecha);
}