// Funciones Javascript
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//************************************
//* VACIO
//************************************

function EstaVacio(cadena)
{
	var i;
	var c;
	var longitud;

	longitud = cadena.length;

		// Se buscan caracteres que no sean espacios
	for (i=0 ; i<longitud ; i++)
		{
		c = cadena.charAt(i);
		if ( c != " " )
			return false;
		}

	return true;
}


//************************************
//* NUMEROS
//************************************

// Es un número entero
function EsNumeroEnteroSinSigno(cadena)
{
	var	numero = /^\d+$/

	return numero.test(cadena)
}

// Es un número entero con signo (opcional)
function EsNumeroEnteroConSigno(cadena)
{
	var	numero = /^(\+|-)?\d+$/

	return numero.test(cadena)
}

// Es un número real sin signo
function EsNumeroRealSinSigno(cadena)
{
	var	numero = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/

	return numero.test(cadena)
}

// Es un número real con signo (opcional)
function EsNumeroRealConSigno(cadena)
{
	var	numero = /^(((\+|-)?\d+(\.\d*)?)|((\+|-)?(\d*\.)?\d+))$/

	return numero.test(cadena)
}

// Es una direccion de correo valida
function EsDireccionCorreo(cadena)
{
	var	numero =  /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/

	return numero.test(cadena)
}



function EsNumeroEnteroSinSigno(cadena)
{
	var	numero = /^\d+$/

	return numero.test(cadena)
}

//Función para importes con 8 dígitos de pare entera y 2 parte fraccionaria. Puntos
//para los decimales
function esFloat(cadena){
    var euro=/(^[0-9]{0,8}|^[0-9]{1,8}[.][0-9]{0,2})$/;
	if(euro.test(cadena)){
		return true;
	}
	return false;
}




//************************************
//* FECHAS
//************************************

function FechaCorrecta(fecha)
{
      // 0123456789
      // Se espera que fecha sea una cadena en formato "DD-MM-AAAA"
      var   dd, mm, aaaa;
      var dias;

      if ( EstaVacio(fecha) )
            return true;

      if ( fecha.length != 10 )
            return false;
      
      dias = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
      
      dd = fecha.substring(0, 2);
      mm = fecha.substring(3, 5);
      aaaa = fecha.substring(6, 10);


      if ( !EsNumeroEnteroSinSigno(dd) )
            return false;
      if ( !EsNumeroEnteroSinSigno(mm) )
            return false;
      if ( !EsNumeroEnteroSinSigno(aaaa) )
            return false;
            
      if ( mm < 1 || mm > 12 )
            return false;
            
      mm--;
      
      if ( (aaaa % 4) == 0 )
            dias[1] = 29;
            
      if ( dd < 1 || dd > dias[mm] )
            return false;
            
      return true;
}


	// Cambia una fecha CORRECTA al formato AAAAMMDD
function FechaISO(fecha)
{
	//                                                0123456789
	// Se espera que fecha sea una cadena en formato "DD-MM-AAAA"

	return fecha.substring(6, 10) + fecha.substring(3, 5) + fecha.substring(0, 2);
}

//************************************
//* FECHA HORA
//************************************

function FechaHoraCorrecta(fecha) {
	//                                                01234567890123
	// Se espera que fecha sea una cadena en formato "DD-MM-AA HH:MM"
	var	dd, mm, aaaa, horas, minutos;
	var dias;

	if ( fecha.length != 14 )
		return false;

	dias = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	dd = fecha.substring(0, 2);
	mm = fecha.substring(3, 5);
	aaaa = fecha.substring(6, 8);
	aaaa = 2000 + aaaa*1;
	horas = fecha.substring(9, 11);
	minutos = fecha.substring(12, 14);

	if ( !EsNumeroEnteroSinSigno(dd) )
		return false;
	if ( !EsNumeroEnteroSinSigno(mm) )
		return false;
	if ( !EsNumeroEnteroSinSigno(aaaa) )
		return false;
	if ( !EsNumeroEnteroSinSigno(horas) )
		return false;
	if ( !EsNumeroEnteroSinSigno(minutos) )
		return false;

	if ( mm < 1 || mm > 12 )
		return false;

	mm--;

	if ( (aaaa % 4) == 0 )
		dias[1] = 29;

	if ( dd < 1 || dd > dias[mm] )
		return false;

	if ( horas > 23 )
		return false;

	if ( minutos > 59 )
		return false;

	return true;
}

//************************************
//* FECHA HORA
//************************************

function HoraCorrecta(tiempo) {
	//                                                01234
	// Se espera que hora  sea una cadena en formato "HH:MM"
	var	horas, minutos, divisor;

	if ( tiempo.length != 5 )
		return false;

	horas = tiempo.substring(0, 2);
	divisor = tiempo.substring(2, 3);
	minutos = tiempo.substring(3, 5);

	if ( !EsNumeroEnteroSinSigno(horas) )
		return false;
	if ( !EsNumeroEnteroSinSigno(minutos) )
		return false;
		
	if ( divisor != ":" )
		return false;

	if ( horas > 23 )
		return false;

	if ( minutos > 59 )
		return false;

	return true;
}



//************************************
//* AÑADIR A FAVORITOS
//************************************

function addBookmark(title,url) {
if (window.sidebar) { 
window.sidebar.addPanel(title, url,""); 
} else if( document.all ) {
window.external.AddFavorite( url, title);
} else if( window.opera && window.print ) {
return true;
}
}
