//  Código obtenido de http://www-est.fib.upc.es/~d8112527/forges.html
//  Mejorado por NetVicious
// http://www.elpais.com/recorte/20080630elpepivin_1/XLCO/Ges/20080630elpepivin_1.jpg
//  Licencia Creative Commons - Attribution License (se agradecen los correos de aviso) ;-)

function $(obj) {
	if ( document.all ) {
		return document.all[obj];
	} else {
		return document.getElementById(obj);
	}
}

function inicio()
{
  var ahora = new Date();
  var dia = ahora.getDate();
  var mes = 0 + ahora.getMonth() + 1;
  var anyo = ahora.getFullYear();
  pintarDia(dia, mes, anyo);
  loadForges(dia, mes, anyo);
}

function pintarDia(dia, mes, anyo)
{
  $("dia").value  = dia;
  $("mes").value  = mes;
  $("anyo").value = anyo;
}

function calcularIMG(dia, mes, anyo)
{
  dia = dia + '';
  mes = mes + '';
  anyo = anyo + '';
  if (mes<10 && mes.length==1) mes="0"+mes;
  if (dia<10 && dia.length==1) dia="0"+dia;

  addr="http://www.elpais.com/recorte/"+anyo+""+mes+""+dia;
  tmp="elpepivin_1/XLCO/Ges/"+anyo+""+mes+""+dia+"elpepivin_1.jpg";
  addr+=tmp;

  return addr;
}

function loadForges(dia, mes, anyo)
{
	$('forges').onLoad = mostrarImagen();
	$('forges').src=calcularIMG(dia, mes, anyo);
}

function num_dias(mes,anyo)
{
  if (mes==4 || mes==6 || mes==9 || mes==11) return 30
  else if ((mes==2) && bisiesto(anyo)) return 29
  else if (mes==2) return 28
  else return 31
}

function bisiesto(anyo) {
  if (((anyo % 4 == 0) && anyo % 100 != 0) || anyo % 400 == 0) return true
  else return false
}

function pre_siguienteDia()
{
	$('forges').style.visibility = "hidden";
	$('forges').src = 'blank.gif';
	setTimeout( "siguienteDia()", 100 );
}

function siguienteDia()
{

  var dia = parseInt( $("dia").value ) + 1;
  var mes = parseInt( $("mes").value );
  var anyo = parseInt( $("anyo").value );
  if (dia > num_dias(mes,anyo)) {
     dia=1;
     mes++;
  }

  if (mes==13) {
     mes=1;
     anyo++;
  }

  pintarDia(dia, mes, anyo);
  loadForges(dia, mes, anyo);
  pre_cache(dia, mes, anyo, 1);
}

function pre_anteriorDia()
{
	$('forges').style.visibility = "hidden";
	$('forges').src = 'blank.gif';
	setTimeout( "anteriorDia()", 100 );
}

function anteriorDia()
{
  var dia = parseInt( $("dia").value ) - 1;
  var mes = parseInt( $("mes").value );
  var anyo = parseInt( $("anyo").value );
  if (dia==0) {
     mes=mes-1;

     if (mes==0) {
        mes=12;
        anyo=anyo-1;
     }

     dia = num_dias(mes,anyo);
  }

  pintarDia(dia, mes, anyo);
  loadForges(dia, mes, anyo);
  pre_cache(dia, mes, anyo, -1);
}

function pre_cache(dia, mes, anyo, sumar)
{
  $("loading").style.visibility = "visible";

  setTimeout( "cache(" + dia + ", " + mes + ", " + anyo + ", " + sumar + ")", 100 );
}

function cache(dia, mes, anyo, sumar)
{
  if ( sumar==-1 ) {
    dia=dia-1;
    if (dia==0) {
       mes=mes-1;

       if (mes==0) {
          mes=12;
          anyo=anyo-1;
       }

       dia=num_dias(mes,anyo);
    }
  } else {
    dia=dia+1;
    if (dia > num_dias(mes,anyo)) {
       dia=1;
       mes=mes+1;
    }

    if (mes==13) {
       mes=1;
       anyo=anyo+1;
    }
  }

  $("cache").onLoad = ocultarCargando();
  $("cache").src=calcularIMG(dia, mes, anyo);
}

function mostrarImagen()
{
	$('forges').style.visibility = "visible";
}

function ocultarCargando()
{
  $("loading").style.visibility = "hidden";
}

function captureKeys(ev) {
	ev = ev || window.event;          // gets the event in ie or ns
	kCode = ev.keyCode || ev.which;   // gets the keycode in ie or ns

	if ( (kCode == 97) || (kCode == 65) || (kCode == 37) || (kCode == 40) ) { // a, A, izquierda, abajo
		pre_anteriorDia($("dia").value, $("mes").value, $("anyo").value);
		return false;
	}

	if ( (kCode == 32) || (kCode == 115) || (kCode == 83) || (kCode == 39) || (kCode == 38) ) { // espacio, s, S, derecha, arriba
		pre_siguienteDia($("dia").value, $("mes").value, $("anyo").value);
		return false;
	}
}