function jsTest() { alert("JS file is linked"); }

function makearray(n){	this.length = n;
	for(var i = 1; i <= n; i++) this[i] = 0;	return this;}    
var hexa = new makearray(16);
var msg;
    
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";    
var currentDirection = new Array();

function handleFadeOn(elemId) {
	currentDirection[elemId] = "on";
//	alert(HexConverter.hex2dec('1A')+", "+HexConverter.hex2dec('23')+", "+HexConverter.hex2dec('4C'));
//	alert(HexConverter.hex2dec('E5')+", "+HexConverter.hex2dec('EB')+", "+HexConverter.hex2dec('F1'));
	doFade(26,35,76,229,235,241,10, elemId, "on");
}

function handleFadeOff(elemId) {
	currentDirection[elemId] = "off";
	doFade(229,235,241,26,35,76,10, elemId, "off");
}


function doFade(br, bg, bb, er, eg, eb, dif, elemId, direction) {
	if(direction != currentDirection[elemId]) return;
	if(br == er && bg == eg && bb == eb) return;
	else {
		var nr = getNValue(br, er, dif);
		var ng = getNValue(bg, eg, dif);
		var nb = getNValue(bb, eb, dif);
		setbgColor(nr, ng, nb, elemId);
		setTimeout("doFade("+nr+", "+ng+", "+nb+", "+er+", "+eg+", "+eb+", "+dif+", '"+elemId+"', '"+direction+"');", "", 1000);
	}		
}

function getNValue(begin, end, steps) {
	var jump = Math.ceil(Math.abs(begin - end)/steps);
	var nVal;
	if(begin < end) {
		if((end - begin) < jump) nVal = end
			else nVal = begin+jump;
	} else if(begin > end) {
		if((begin - end) < jump) nVal = end
			else nVal = begin-jump;
	} else nVal = end;
	
	return nVal;
}

function setbgColor(r, g, b, elemId){
	var hr = hex(r); var hg = hex(g); var hb = hex(b);	document.getElementById(elemId).style.backgroundColor = "#"+hr+hg+hb;
}



var HexConverter = {	hexDigits : '0123456789ABCDEF',		dec2hex : function( dec )	{		return( this.hexDigits[ dec >> 4 ] + this.hexDigits[ dec & 15 ] );	},		hex2dec : function( hex )	{		return( parseInt( hex, 16 ) )	}}
//	alert( HexConverter.dec2hex( 240 ) ); // gives: F0//	alert( HexConverter.hex2dec( 'EF' ) ); // gives: 239

function makearray(n){      this.length = n;      for(var i = 1; i <= n; i++)      this[i] = 0;      return this;}

    hexa = new makearray(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";
    
function hex(i){      if (i < 0) return "00";      else if (i >255) return "ff";      else return "" + hexa[Math.floor(i/16)] + hexa[i%16];}

