
//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 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz0123456789_-.";
		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()*1000)
	ventana = open(url ,'vxxx'+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 AbrirVentanaP(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=1,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',1050,650);		
}

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.getFullYear();
	return true;
}
function trimAll(sString){

	while (sString.substring(0,1) == ' '){
		sString = sString.substring(1, sString.length);
	}

	while (sString.substring(sString.length-1, sString.length) == ' '){
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function mostrarCapa(capa) {
  document.getElementById(capa).style.display="block";
}
 
function ocultarCapa(capa) {
  document.getElementById(capa).style.display="none";
}

function SetColor(sColor,Objeto){

		var oInput = eval('document.all.'+ Objeto);
		
		if (navigator.appName=='Netscape') {
			oInput.style.backgroundColor =sColor;
		}
	  else 
	  {
		 oInput.style.backgroundColor =sColor;
	  }
}


function ValidarAccesoLogon(formulario)
{
	var msgStr="";

	if(formulario.email.value=="" || formulario.password.value.length<5){
	   formulario.email.focus();
	   alert(MSG_INTRO_EMAIL_PASSW);	   
	   return false;
	}

	if(formulario.email.value!=""){
		if(!IsValidEMail(formulario.email.value, msgStr)){
		   formulario.email.focus();
		   alert(MSG_INTRO_EMAIL);	   
		   return false;
		}
	}

	return true;
}
function limpia_dato_referencia(valor){
	var cadena = "" + valor;
	var txt=new RegExp("[^ A-Za-z0-9_.-]","ig");
	cadena=cadena.replace(txt, "");
	cadena=cadena.replace(/ /gi, "");
	return cadena;
}

function verifica_referencia(txtfield){

	var valor = txtfield.value;
	var new_valor = limpia_dato_referencia(valor);
	if(new_valor==valor){
	}
	else{
		alert("Para la referencia no se permiten algunos de los caracteres introducidos. Hemos modificado el contenido");
		txtfield.value=new_valor;
	}
	return true;	
}


 function mostrardiv(post) {
    div = document.getElementById(post); 
    div.style.display = ''; 
	centrar_capa(post);
} 

function centrar_capa(capa){
    var pagina=getWindowData();
	W=document.getElementById(capa).style.width;
	H=document.getElementById(capa).style.height;

    document.getElementById(capa).style.top=(pagina[1]/2)-(H/2)+pagina[3]+'px';
    document.getElementById(capa).style.left=(pagina[0]/2)-(W/2)+pagina[2]+'px';
}

function ocultardiv(post) { 
    div = document.getElementById(post); 
    div.style.display='none'; 
}

function getWindowData(){
    var widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal;
    if (typeof window.innerWidth != 'undefined'){
        widthViewport= window.innerWidth-17;
        heightViewport= window.innerHeight-17;
    }else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0){
        widthViewport=document.documentElement.clientWidth;
        heightViewport=document.documentElement.clientHeight;
    }else{
        widthViewport= document.getElementsByTagName('body')[0].clientWidth;
        heightViewport=document.getElementsByTagName('body')[0].clientHeight;
    }
    xScroll=self.pageXOffset || (document.documentElement.scrollLeft+document.body.scrollLeft);
    yScroll=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
    widthTotal=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth,widthViewport);
    heightTotal=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,heightViewport);
    return [widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal];
}
 
function situar_capa(capa) {

	var ns6 = (!document.all && document.getElementById);
	var ie4 = (document.all);
	var ns4 = (document.layers);
	if(ns6||ns4) {
		pageWidth = innerWidth;
		pageHeight = innerHeight;
	}
	else if(ie4) {
		pageWidth = document.body.clientWidth;
		pageHeight = document.body.clientHeight;
	   }

	if (ns4 || ns6) {
		findHt = window.innerHeight;
	} else if(ie4) {
		findHt = document.body.clientHeight;
	}
	if (ns4) {
		this.currentY = document.layers[capa].top;
		this.scrollTop = window.pageYOffset;
	}
	else if(ns6) {
		this.currentY = parseInt(document.getElementById(capa).style.top);
		this.scrollTop = scrollY;
	} else if(ie4) {
		this.currentY = document.all[capa].style.pixelTop;
		this.scrollTop = document.body.scrollTop;
   }


	newY=this.scrollTop+50;

	if ( ie4 )document.all[capa].style.pixelTop = newY; 
	if ( ns4 )document.layers[capa].top = newY;
	if ( ns6 )document.getElementById(capa).style.top = newY + "px";
	   

}

function setdato(valor,campo,div){
	var oInput = eval(campo);
	if(oInput){
		oInput.value=valor;
	}
	ocultardiv(div);
}

