//Counter Time DEC Ver.0.2
//Junio-2008
//aplicando clases como namespaces con el pattern singleton
//con este metodo las variables dentro de la clase tienen acceso total sin recurrir a this.variable.

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->//

var counterTime = new Object();

counterTime.clase = (function() {

//atributos privados
//hay que definir variables con var aqui de no, no seran privadas
//las funciones no deben estar dentro de variables

var datosGenerales = new Array();
datosGenerales["navegador"] = navigator.appName;

//metodos privados

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//

function reparteVariables(datos) {


		datosGenerales["datosExternos"] = datos;
			

}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//


//-------------------------------------------------------------------------------------------------------------------------------------------------------------->//
return {
//-------------------------------------------------------------------------------------------------------------------------------------------------------------->//
//metodos publicos
//se pueden definir variables tipo: casa:"casa",
//para que esto quede como publico la terminacion entre funciones y variables debe ser una coma no punto y coma

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//

 inicia : function(datos) {

		reparteVariables(datos);
		 counterTime.clase.iniciaCuenta();

},


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//

 para : function() {


		clearInterval(datosGenerales["datosExternos"]["elTimer"]);

},


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//


contador : function() {

	
		//ascendente o descendete
		
		if(datosGenerales["datosExternos"]["ascendente"] == true) {
		
				datosGenerales["datosExternos"]["numeroEmpieza"] = datosGenerales["datosExternos"]["numeroEmpieza"] + datosGenerales["datosExternos"]["incrementosDe"];

		} else {

				datosGenerales["datosExternos"]["numeroEmpieza"] = datosGenerales["datosExternos"]["numeroEmpieza"] - datosGenerales["datosExternos"]["incrementosDe"];

		}

		//si se muestra en un objeto DOM

		if(datosGenerales["datosExternos"]["muestraEnObjetoDOM"] == true) {
		
						//elemento donde se mostrara el contador
						
						window.document.getElementById(datosGenerales["datosExternos"]["objetoDOMCambia"]).innerHTML = datosGenerales["datosExternos"]["numeroEmpieza"];


		}

		//si se establecen limites
		
		if(datosGenerales["datosExternos"]["siLlegaAUnLimiteHacerAlgo"] == true) {

					if(datosGenerales["datosExternos"]["numeroEmpieza"] == datosGenerales["datosExternos"]["cualEsElLimiteEnNumeros"]) {

				
							clearInterval(datosGenerales["datosExternos"]["elTimer"]);
							eval(datosGenerales["datosExternos"]["queHacerSiLlegaAUnLimite"]);


					} 


		} 
		
		

},

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//

 iniciaCuenta : function() {

	
	var nombreTimerCompleto = "var " + datosGenerales["datosExternos"]["elTimer"] + " = ";	

	clearInterval(datosGenerales["datosExternos"]["elTimer"]);
	
	
	datosGenerales["datosExternos"]["elTimer"] = setInterval(counterTime.clase.contador, datosGenerales["datosExternos"]["frecuenciaDe"])



}


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>//




//-------------------------------------------------------------------------------------------------------------------------------------------------------------->//
};
//-------------------------------------------------------------------------------------------------------------------------------------------------------------->//

//finaliza la clase como nameSpace
})();

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->//