Tiempo = function(idioma) {
	this.ArmarFecha    = ArmarFecha;
	this.CountDownTime = CountDownTime;
	this.Hoy           = new Date();
	var idioma         = (idioma == undefined) ? 'es' : idioma;
	this.rotulacion    = RotularFecha(idioma);
	
	function ArmarFecha(modo, str_dia) {
		// La fecha puede expresarse de diversos modos en cuanto al orden, pero siempre usando como separador "/" en la parte de días
		var str_to_replace;
		var str_return;
		var arr_dias   = this.rotulacion['dias'];
		var arr_meses  = this.rotulacion['meses'];
		var arr_sep    = this.rotulacion['sep'];
		var ahora      = (str_dia == undefined) ? this.Hoy : new Date(str_dia);
		var anio       = ahora.getYear();
		anio           = (anio<1000) ? anio+1900 : anio;
		var dia        = ahora.getDay();
		var mes        = ahora.getMonth();
		var dia_mes    = ahora.getDate();
		var hora       = ahora.getHours();
		hora           = (hora<10) ? "0"+hora : hora;
		var minutos    = ahora.getMinutes();
		minutos        = (minutos<10) ? "0"+minutos : minutos;
		var segundos   = ahora.getSeconds();
		segundos       = (segundos<10) ? "0"+segundos : segundos;
		switch(modo) {
			case 1 :
				str_return = "%Nombre_Dia_Completo% %Num_Dia% %de% %Nombre_Mes_Completo% %de% %Año_Completo%";
				break;
			case 2 :
				str_return = "%Nombre_Dia_Corto% %Num_Dia% %Nombre_Mes_Corto%";
				break;
			
		}
		// El modificador "g" lo reemplaza todas las veces que aparezca
		$dia = arr_dias[dia];
		$mes = arr_meses[mes];
				
		str_return = str_return.replace(/%Nombre_Dia_Completo%/, $dia);
		str_return = str_return.replace(/%Nombre_Dia_Corto%/, $dia.substring(0, 3));
		str_return = str_return.replace(/%Num_Dia%/, dia_mes);
		str_return = str_return.replace(/%de%/g, arr_sep[0]);
		str_return = str_return.replace(/%Nombre_Mes_Completo%/, $mes);
		str_return = str_return.replace(/%Nombre_Mes_Corto%/, $mes.substring(0, 3));
		str_return = str_return.replace(/%Año_Completo%/, anio);
		return str_return;
	}
	
	function CountDownTime(str_dia) {
		// m/d/Y H:i:s
		var Falta;
		var arr       = this.rotulacion['inic'];
		var ahora     = new Date(str_dia);
		var segundos  = Math.floor((ahora.getTime() - this.Hoy.getTime())/1000);
		var minutos   = Math.floor(segundos/60);
		var horas     = Math.floor(minutos/60);
		var dia       = Math.floor(horas/24);
		var CDia      = dia;
		var CHoras    = horas%24;
		var CMinutos  = minutos%60;
		var CSegundos = segundos%60;
		CMinutos      = (CMinutos<10)  ? '0'+CMinutos  : CMinutos;
		CSegundos     = (CSegundos<10) ? '0'+CSegundos : CSegundos;
		if(CDia>=0) {
			Falta     = CDia+arr[0]+' '+CHoras+arr[1]+' '+CMinutos+arr[2]+' '+CSegundos+arr[3];
		} else {
			Falta     = false;
		}
		return Falta;
	}
	
	function RotularFecha(idioma) {
	var rotulos            = new Array();
	// Español:
	rotulos['es']          = new Array();
	rotulos['es']['inic']  = new Array("d", "h", "m", "s");
	rotulos['es']['dias']  = new Array("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado");
	rotulos['es']['meses'] = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
	rotulos['es']['sep']   = new Array("de", ",");
	/////
	return rotulos[idioma];
}
	
}