/*********************/
/*		cDynLoad.js		*/
/*********************/


hexa = new Array(16);
for(var i = 0; i < 10; i++) {	hexa[i] = i; }
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";
pasos = 20;

cDynLoad = function(obj)
{
	this.salidaFinal = "......";
	this.bCargando = false;
	this.nPuntos = 0;
	this.capaSalida = "";
	this.obj = obj;
	this.mensaje = "";
	this.colorR = 9999;
	this.colorG = 9999;
	this.colorB = 9999;
	this.idTimeout = null;

	this.paso = 0;
	this.cargando = function ()
	{
		if (this.colorR<256 && this.colorG<256 && this.colorB<256 && this.capaSalida!="") {
			setColor(this.colorR, this.colorG, this.colorB, this.capaSalida);
		}
		if (this.bCargando && this.capaSalida != "")
		{
			//A?ADE LOS PUNTOS
			this.nPuntos = (this.nPuntos + 1) % this.salidaFinal.length;
			ptmp = this.salidaFinal.substr(0,this.nPuntos);
			document.getElementById(this.capaSalida).innerHTML = this.mensaje + ptmp;
	
			//CAMBIA LOS COLORES
			fadein(this.capaSalida,this.paso);
			this.paso = (this.paso + 1) % pasos;
			this.idTimeout = setTimeout(this.obj+".cargando()",300);
		} else {
			document.getElementById(this.capaSalida).innerHTML = "";
		}
	};


	this.setColor = function (vColorR, vColorG, vColorB) {
		if (vColorR<256 && vColorG<256 && vColorB<256) {
			this.colorR = vColorR;
			this.colorG = vColorG;
			this.colorB = vColorB;
		}
	};

}

function hex(i)
{
	if (i < 0)
		return "00";
	else if (i > 255)
		return "ff";
	else
		return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setColor(r, g, b , capaSalida)
{
	var hr = hex(r);
	var hg = hex(g);
	var hb = hex(b);
	this.colorR = r;
	this.colorG = g;
	this.colorB = b;
	document.getElementById(capaSalida).style.background = "#"+hr+hg+hb;
}

function fade(sr, sg, sb, er, eg, eb,capa,paso)
{
	setColor(
		Math.floor(sr * ((pasos-paso)/pasos) + er * (paso/pasos)),
		Math.floor(sg * ((pasos-paso)/pasos) + eg * (paso/pasos)),
		Math.floor(sb * ((pasos-paso)/pasos) + eb * (paso/pasos)),capa);
}

function fadein(capa,paso)
{
	if (typeof(this.colorR)!="undefined" && typeof(this.colorG)!="undefined" && typeof(this.colorB)!="undefined") {
		fade(this.colorR,this.colorG,this.colorB,232,232,232,capa,paso);
	}
	else {
		fade(243,101,35,232,232,232,capa,paso);
	}
}