fixMozillaZIndex=true;

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_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_findObj(n, d) { //v3.0
  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); 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];}
}

<!--By Gon-->

function ValidarCharEx(sCharEx) {
	var oRegExp = new RegExp("^[A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx2(sCharEx) {
	var oRegExp = new RegExp("^[\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx3(sCharEx) {
	var oRegExp = new RegExp("^[\ñ\Ñ\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

function ValidarCharEx3(sCharEx) {
	var oRegExp = new RegExp("^[\ñ\Ñ\ A-Za-z0-9]+$","i");
	return sCharEx.match(oRegExp);
}

<!--By Gon-->

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

// Creación de un objeto para manejar los errores
var error = new crear_error();
	   
// Crea un objeto que guarda un mensaje de error y un 
// indice a la posición donde se ha producido dentro de una cadena
function crear_error()
{
this.mensaje = "";
this.posicion = 0;
this.rellenar = rellenar;
}
	  
// Método del objeto "crearerror" que rellena el error con un mensaje
// explicativo y la posición donde se produjo dentro de la cadena validada
function rellenar(mensaje, posicion) {
	this.mensaje = mensaje;
	this.posicion = posicion;
	return false;
}

// Determina si un carácter es un número
function es_numero(car) {
	var NUMEROS = "0123456789";
	return (NUMEROS.indexOf(car) >= 0)
}
	   
// Determina si un año es bisiesto
function es_bisiesto(anio) {
	if (((anio % 4 == 0) && anio % 100 != 0) || anio % 400 == 0) 
		return true;
	return false;
}

// Comprueba si una fecha es correcta
function comprobar_fecha(contenido, error) {
	var separador_fecha = "/";
	var numero_separadores = 0;

	if ((contenido.length == 0))
		return error.rellenar("Por favor seleccione una fecha.", 1);

	// Comprobación de la sintáxis de una fecha 
	for (var i = 0; i < contenido.length; i++) {
		var caracter = contenido.charAt(i);
		if (!es_numero(caracter) && caracter != separador_fecha)
			return error.rellenar("La Fecha solo puede tener números y el separador (/).", i + 1); 
		if (caracter == separador_fecha)
			numero_separadores++ 
	}
	if (numero_separadores != 2)
		return error.rellenar("Faltan separadores (/) en la fecha.", i + 1); 
	    
	// Comprobación de la semántica de una fecha
/*	var posicion_separador_1 = contenido.indexOf(separador_fecha);
	var anio = contenido.substring(0, posicion_separador_1);
	var posicion_separador_2 = contenido.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = contenido.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var dia = contenido.substring(posicion_separador_2 + 1, 10);*/

	var posicion_separador_1 = contenido.indexOf(separador_fecha);
	var dia = contenido.substring(0, posicion_separador_1);
	var posicion_separador_2 = contenido.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = contenido.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var anio = contenido.substring(posicion_separador_2 + 1, 10);


	if (anio.length != 4)
		return error.rellenar("El Año es incorrecto.", 6); 
	if (mes < 1 || mes > 12)
		return error.rellenar("El Mes es incorrecto.", 4);
	if ((dia < 1 || dia > 31) || (mes == 4 && dia > 30) ||
		(mes == 6 && dia > 30) || (mes == 9 && dia > 30) ||
		(mes == 11 && dia > 30) || (mes == 2 && es_bisiesto(anio) && dia > 29) ||
		(mes == 2 && !es_bisiesto(anio) && dia > 28))
		return error.rellenar("El Día es incorrecto.", 2);
	return true 
} 
	  
// Ejecuta la validación pedida
function ejecuta(valor) {
	if (comprobar_fecha(valor, error))
		return true;
	else
		return false;
}

function LimiteCaracteres(campo, Limite) {
	if (campo.value.length > Limite)
		campo.value = campo.value.substr(0, Limite);
	return;
}

function numerico(cadena)
{
    if(cadena.match(/[^\.0-9]+/)) {
		//alert("El campo "+campo+" solo puede contener numeros!.");
		return false;
    }
    else
		return true;
}

function es_numero_decimal(cadena)
{
    if(cadena.match(/^\-?[0-9]+\.?[0-9]*$/)) {
		return true;
    }
    else
		return false;
}

function es_numero_entero(cadena)
{
    if(cadena.match(/^[\-]?[0-9]+$/)) {
		return true;
    }
    else
		return false;
}

function es_numero_natural(cadena)
{
    if(cadena.match(/^[0-9]+$/)) {
		return true;
    }
    else
		return false;
}

function alfanumerico_comas(cadena)
{
    if(cadena.match(/[^\.,0-9a-zA-Z ]+/))
    {
	//alert("El campo "+campo+" solo puede contener letras, numeros y comas!.");
	return false;
    }
    else
	return true;
}

function es_numero_telefono(cadena) {
    if (cadena.match(/^[0-9]+-?[0-9]+$/))
	return true;
    else
	return false;
}

function dameFechaYYYYMMDD(fecha, separador_fecha) {

	var posicion_separador_1 = fecha.indexOf(separador_fecha);
	var dia = fecha.substring(0, posicion_separador_1);
	var posicion_separador_2 = fecha.indexOf(separador_fecha,posicion_separador_1 + 1);
	var mes = fecha.substring(posicion_separador_1 + 1, posicion_separador_2); 
	var anio = fecha.substring(posicion_separador_2 + 1, 10);

	return (anio+mes+dia);
}




/*
Dynamic Calendar II (By Jason Moon at http://www.jasonmoon.net)
Permission granted to Dynamicdrive.com to include script in archive
For this and 100's more DHTML scripts, visit http://dynamicdrive.com
*/

var ns6=document.getElementById&&!document.all
var ie4=document.all

var Selected_Month;
var Selected_Year;
var Current_Date = new Date();
var Current_Month = Current_Date.getMonth();
var TodayAnio = 0;

var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

var Current_Year = Current_Date.getFullYear();
if (Current_Year < 1000)
Current_Year+=1900


var Today = Current_Date.getDate();

function Header(Year, Month) {

   if (Month == 1) 
   {
	Days_in_Month[1] = ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) ? 29 : 28;
   }
   var Header_String = Month_Label[Month] + ' ' + Year;

   return Header_String;
}

function Make_Calendar(Year, Month) {

//   Year = '<?=$ano_final?>';
//   Month = '<?=$mes_final?>';
//   var arrayFechas = '<?echo $fecha_final?>'  // ----->Fechas para el Calendario sacadas de arriba

   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);

   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }

	if (TodayAnio>0){
		Today = 0;
	}

//   var HTML_String = '<form name="calForm" id="calForm" method="post" action="<?=$GLOBAL_URL?>/index.php>';
   var HTML_String = ' ';

   HTML_String += '<table width="50%" border="0" cellspacing="0" cellpadding="0">';

   HTML_String += '<tr><td bgcolor="#BFD5ED" align="center"><table width="50%" border="0" cellspacing="0" cellpadding="0">';

   HTML_String += '<tr align="center"><th class="Celda" height="15">D</th><th class="Celda" height="15">L</th><th class="Celda" height="15">M</th><th class="Celda" height="15">M</th>';

   HTML_String += '<th class="Celda" height="15">J</th><th class="Celda" height="15">V</th><th class="Celda" height="15">S</th></tr>';

   var Day_Counter = 1;
   var Loop_Counter = 1;

	fechaHoy = new Date();
	var DiaDeHoy = (fechaHoy).getDate();
	var MesDeHoy = (fechaHoy).getMonth();
	var AnioDeHoy = (fechaHoy).getFullYear();
//	var AnioDeHoy = (fechaHoy).getYear();    ----> NO FUNCA EN FIREFOX
	var AnioIni = 1917;
	var MesIni = 2;
	var DiaIni = 5;
	
	MesIni-=1;

   for (var j = 1; j <= Rows; j++) {
      HTML_String += '<tr align="center" class="Celda1">';
      for (var i = 1; i < 8; i++) {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {

			 if (Day_Counter<10)
				 strToday = '0'+Day_Counter;
			 else
				 strToday = Day_Counter;

			 var tmpMonth = (Month-1) + 2;

			 if (tmpMonth<10)
				 strToday += '/'+tmpMonth;
			 else
				 strToday += '/'+tmpMonth;

			 strToday += '/'+Year;

			if(	(	(Year<AnioDeHoy) ||
					( (Year==AnioDeHoy) && (Month<MesDeHoy) ) ||
					( (Year==AnioDeHoy) && (Month==MesDeHoy) && (Day_Counter<=DiaDeHoy))
				) & (
					(Year>AnioIni) ||
					( (Year==AnioIni) && (Month>MesIni) ) ||
					( (Year==AnioIni) && (Month==MesIni) && (Day_Counter>=DiaIni))
				)

				
				){				
				if((Day_Counter == TodayAnio) && (Year == Current_Year) && (Month == Current_Month)){
				   //HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'"><a href="index.php?fecha="'+ strToday  +' class="Link3"><strong><font color="red">' + Day_Counter + '</font></strong></a></td>';
				   
					HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'"><a href="#" class="Link3"><strong><font color="red">' + Day_Counter + '</font></strong></a></td>';

				} else {
					if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month)) 
					{
					   HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'"><a href="index.php?fecha="'+ strToday  +' class="Link3"><strong><font color="red">' + Day_Counter + '</font></strong></a></td>';
					}
					else 
					{
//						if(arrayFechas.indexOf(Day_Counter+',') == -1)
//						{
//						   HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'">' + Day_Counter + '</a></td>';					
//						}
//						else
//						{
						   HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'"><a href="index.php?fecha='+ strToday  +'&mes='+document.getElementById('month').value+'&ano='+document.getElementById('year').value+'" class="Link3">' + Day_Counter + '</a></td>';
//						}
					}
				}
			} else {
					   HTML_String += '<td onMouseOver="this.className=\'CeldaCursor\'" onMouseOut="this.className=\'Celda1\'">' + Day_Counter + '</a></td>';					
			}
            Day_Counter++;
         }
         else {
            HTML_String += '<td class="Celda1"> </td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
//   HTML_String += '</table></td></tr></table></form>';
   HTML_String += '</table></td></tr></table>';
//   HTML_String += '</table></form>';

   cross_el=ns6? document.getElementById("Calendar") : document.all.Calendar
   cross_el.innerHTML = HTML_String;
//alert(HTML_String);
}


function Check_Nums() {
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
   }
}



function On_Year() {
   var Year = document.when.year.value;

   if (Year.length == 4) {
      Selected_Month = document.when.month.selectedIndex;
        Selected_Year = Year;
//   	alert(Selected_Month+"/"+Selected_Year);
      Make_Calendar(Selected_Year, Selected_Month);
   }
}

function On_Month() {
   var Year = document.when.year.value;

   if (Year.length == 4) {
      Selected_Month = document.when.month.selectedIndex;
      Selected_Year = Year;
//   	alert(Selected_Month+"/"+Selected_Year);
      Make_Calendar(Selected_Year, Selected_Month);
   }
   else {
      alert('Please enter a valid year.');
      document.when.year.focus();
   }
}
function Defaults(ano, mes) {
if(navigator.appName != "Microsoft Internet Explorer")
{
   document.when.month.selectedIndex = mes;
   document.when.year.value = ano;
}
else
{
	document.getElementById("year").selectedIndex = ano-2007;
	document.getElementById("month").selectedIndex = mes;
}

   Selected_Month = mes;
   Selected_Year = ano;
   Make_Calendar(ano, mes);
}


function DefaultsAnio(Anio, Mes, Dia) {
   TodayAnio = Dia;
if(navigator.appName != "Microsoft Internet Explorer")
{
   document.when.month.selectedIndex = Mes-1;
   document.when.year.value = Anio;
}
else
{
	document.getElementById("year").selectedIndex = 2007-Anio;
	document.getElementById("month").selectedIndex = Mes-1;
}

   Selected_Month = Mes-1;
   Selected_Year = Anio;
   Current_Month = Mes - 1;
   Current_Year = Anio;
   Make_Calendar(Anio, Mes-1);

}

function Skip(Direction) {
   if (Direction == '+') {
      if (Selected_Month == 11) {
         Selected_Month = 0;
         Selected_Year++;
      }
      else {
         Selected_Month++;
      }
   }
   else {
      if (Selected_Month == 0) {
         Selected_Month = 11;
         Selected_Year--;
      }
      else {
         Selected_Month--;
      }
   }
   Make_Calendar(Selected_Year, Selected_Month);
   document.when.month.selectedIndex = Selected_Month;
   document.when.year.value = Selected_Year;
}

function CalCboMeses() {
	var s, j;

	s = '<select style="width:73px" name="month" id="month" onChange="On_Year()" class="ComboCalendario">';
	for (j = 0; j < Month_Label.length; j++) {
		s += '<option value=' + j + '>' + Month_Label[j] + '</option>';
	}
   s += '</select>'
	document.writeln(s);
}
function CalCboAnios() {
	var s, j;

	var Current_Date = new Date();
	var tmp_Year = Current_Date.getFullYear();


	if (tmp_Year < 1900){
		tmp_Year = tmp_Year + 1900;
	}

	s = '<select width="75" id="year" name="year" onChange="On_Month()" class="ComboCalendario">';

	for (j = tmp_Year; j >= 1917; j--) 
	{
		if(j == tmp_Year)
		{
			s += "<option value='" + j + "' SELECTED>" + j + "</option>";
		}
		else
		{
			s += "<option value='" + j + "'>" + j + "</option>";
		}
	}
    s += '</select>';
	document.writeln(s);
}
