var anyo, mes, dia, hora, minuto;
var formato = "<h1>day/month/year, hour:minutes:seconds</h1>";
var nombre_div = 'texto_cuenta_atras';
var timerParpadeo = null;
var horaLocal = new Date();

function cuenta(a,m,d,h,mi){
	var atras = arguments.length>6?arguments[6]:true;
	formato = arguments.length>5?(arguments[5]!=null?arguments[5]:formato):formato;
	anyo = a;
	mes = m-1;
	dia = d;
	hora = h>0?h+1:h;
	minuto = mi;
	document.write('<div id="'+nombre_div+'">'+formatea_quedan(anyo,mes,dia,hora,minuto,0)+'</div>');
	if(atras){
		cuentaAtras();
	}else{
		cuentaAdelante();
	}
}

function cuentaAtras(){
	var di = document.getElementById(nombre_div);
	var fechaFinal = new Date(anyo,mes,dia,hora,minuto);
	var fechaActual = new Date();
	var aux = new Date();
	aux.setTime(fechaFinal - fechaActual);

	var diA = aux.getFullYear()-1970;
	var diM = aux.getMonth();
	var diD = aux.getDate()-1;
	var diH = aux.getHours()-1;
	var diMi = aux.getMinutes();
	var diS = aux.getSeconds();

	/* Si queda un mes para que cumpla un aņo comenzamos a parpadear */
	if(diM == 0){
		parpadea(true);
	}

	if(diA<0 || diM<0 || diD<0 || diH<0 || diMi<0 || diS<0){
		di.innerHTML = formatea_quedan(0,0,0,0,0,0);	
	}else{
		di.innerHTML = formatea_quedan(diA,diM,diD,diH,diMi,diS);
		setTimeout('cuentaAtras()',1000);
	}
}

function cuentaAdelante(){
	var di = document.getElementById(nombre_div);
	var fechaDesde = new Date(anyo,mes,dia,hora,minuto);
	var fechaActual = new Date();
	var aux = new Date();
	aux.setTime(fechaActual - fechaDesde);

	var diA = aux.getFullYear()-1970;
	var diM = aux.getMonth();
	var diD = aux.getDate()-1;
	var diH = aux.getHours();
	var diMi = aux.getMinutes();
	var diS = aux.getSeconds();
	
	/* Si queda un mes para que cumpla un aņo comenzamos a parpadear */
	if(diM == 11){
		parpadea(true);
	}

	if(diA<0 || diM<0 || diD<0 || diH<0 || diMi<0 || diS<0){
		di.innerHTML = formatea_quedan(anyo,mes,dia,hora,minuto,0);	
	}else{
		di.innerHTML = formatea_quedan(diA,diM,diD,diH,diMi,diS);
		setTimeout('cuentaAdelante()',1000);
	}
}

function parpadea(){
	var di = document.getElementById(nombre_div);
	var inicial = arguments[0]==null?false:arguments[0];
	
	if(inicial && timerParpadeo){
		return;
	}
	if(di.style.visibility == "hidden"){
		di.style.visibility = "visible";
	}else{
		di.style.visibility = "hidden";
	}
	timerParpadeo = setTimeout('parpadea()',500);
}

function formatea_quedan(da,dm,dd,dh,dmi,ds){
	var res = new String(formato);
	
	res = res.replace("year",(da<10?"000":"")+da);
	res = res.replace("month",(dm<10?"0":"")+dm);
	res = res.replace("day",(dd<10?"0":"")+dd);
	res = res.replace("hour",(dh<10?"0":"")+dh);
	res = res.replace("minutes",(dmi<10?"0":"")+dmi);
	res = res.replace("seconds",(ds<10?"0":"")+ds);

	return res;
}
