var ccTimerHandle = null, ccCntr=0;
var cHalf = cNoStp / 2;
function ccFadeLoop(){
	if(ccTimerHandle){ clearTimeout(ccTimerHandle); }
	var oneBox, k, vCol;
	var docAllEM = document.all.tags("EM"); 
	// for all spans in cSlds paint in right colour
	for(k = 0; k < cSlds[ccCurrentItem].span.length; k++){
		oneBox = docAllEM(("ID" + k));
		vCol = MakeHexCol(ccCurrentItem, k, ccCntr);
		oneBox.style.color = vCol;}
	// continue loop until ccCntr = cNoStp
	if(ccCntr == cHalf){ // hold on half
		ccTimerHandle = setTimeout('ccFadeLoop()',cSlds[ccCurrentItem].hold);}
	else {if(ccCntr == cNoStp){ // show next after cNoSteps
			ccShowNext();} 
		else { // just a plain loop
			ccTimerHandle = setTimeout('ccFadeLoop()',1);}}
	ccCntr++;
	return;}
function ccWriteHTML(aItm, aIsItLink){
	var docAllTD = document.all.tags("TD");
	var oneBox, vHTML = "", k;
	oneBox = docAllTD("MIADisplayBox");
	if(aIsItLink) {vHTML += "<A href='" + cSlds[aItm].href + "' target='MIAMain'>";}
	for(k = 0; k < cSlds[aItm].span.length; k++){
		vHTML += "<EM class='" + cSlds[aItm].span[k].cls + 
		"' id='ID" + k + "'>" +
		cSlds[aItm].span[k].txt + "</EM>";}
	if(aIsItLink) {vHTML += "<\A>";}
	oneBox.innerHTML = vHTML;
	//alert(vHTML);
	var docAllEM = document.all.tags("EM"); 
	for(k = 0; k < cSlds[aItm].span.length; k++){
		oneBox = docAllEM(("ID" + k));
		oneBox.style.color = MakeHexCol(aItm, k, 0);}
	ccCurrentItem = aItm;
	return;}
	
	


function MakeHexCol( aSld, aSpn, aCnt ){
	var vRet = ""
	vRet += Hex(cStp[cSlds[aSld].span[aSpn].col][aCnt].r);
	vRet += Hex(cStp[cSlds[aSld].span[aSpn].col][aCnt].g);
	vRet += Hex(cStp[cSlds[aSld].span[aSpn].col][aCnt].b);
	return vRet;}
// initial processing
// FILL IN Preset colours for 'cNoStp' steps
var cR1=229; var cR2=0;   var cR3=164; var cR12=(cR2-cR1)/cHalf; var cR13=(cR3-cR1)/cHalf;
var cG1=221; var cG2=65;  var cG3=146; var cG12=(cG2-cG1)/cHalf; var cG13=(cG3-cG1)/cHalf;
var cB1=193; var cB2=111; var cB3=55;  var cB12=(cB2-cB1)/cHalf; var cB13=(cB3-cB1)/cHalf;
function cRGB(xx, rr, gg, bb){
	this.r = (cR1 + (xx * rr)); 
	this.g = (cG1 + (xx * gg)); 
	this.b = (cB1 + (xx * bb)); 
	return this;}
var cStp = new Array; 
cStp[0] = new Array; 
cStp[1] = new Array; 
cStp[2] = new Array;
var j = 0;
for(j = 0; j < cHalf; j++){ cStp[1][j]            = new cRGB(j, cR12, cG12, cB12); }
for(j = cHalf; j >-1; j--){ cStp[1][(cNoStp - j)] = new cRGB(j, cR12, cG12, cB12); }

for(j = 0; j < cHalf; j++){ cStp[2][j] = new cRGB(j, cR13, cG13, cB13); }
for(j = cHalf; j >-1; j--){ cStp[2][(cNoStp - j)] = new cRGB(j, cR13, cG13, cB13); }

// utilities functions
//BGR = # E5 DD C1 BLUE = # 00 41 6F  GOLD = # BE AD 57
function Hex(aNum){
	var vSS = "0123456789ABCDEF";
	var vDigit1 = parseInt((aNum / 16), 10);
	var vDigit2 = parseInt((aNum - (vDigit1 * 16)), 10);
	var vHex = vSS.substring(vDigit1,(vDigit1 + 1)) + 
	           vSS.substring(vDigit2,(vDigit2 + 1));
	return( vHex );}