// NOTE:  This adds a new object to an array everytime the a link is moused over. 
// poor for memory, but not a huge deal.


var origTextClr=[204,102,51];
var finTextClr=[00,00,00];
var enterSpeed=20;
var exitSpeed=15;


var doit = 0;

var objActive;
var buff = [];
var buffCTR = 0;
var buffinds = [];
var buffindsCTR = 0;

if (document.all) {
    document.onmouseover = DoFade;
	document.onmouseout  = UnFade;
}
else if (document.getElementById) {
    document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
    document.onmouseover = Mozilla_DoFade;
	document.onmouseout  = Mozilla_UnFade;
}

dualhex = new Array()
hex = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
for(i = 0; i < 256; i++) dualhex[i] = hex[parseInt(i / 16)] + hex[i % 16]


function DoFade()
{
    if (doit == 0) {
        var obj = event.srcElement;
        while (obj.tagName != 'A' && obj.tagName != 'HTML') {
            obj = obj.parentElement;
        }
        if (obj.tagName == 'A' && obj.href != '') {
            objActive = obj;
			buff[buffCTR] = obj;				// push object onto object buffer
            doit = 1;
            performFade(1,buffCTR);
        }
    }
}
function UnFade()
{
    if (doit) {
        if (objActive.tagName == 'A') {
            doit = 0;
			setTimeout("performFade(0," + buffCTR+ ")", enterSpeed * enterSpeed);
			//performFade(0,buffCTR);
			buffCTR++;
			
        }
    }
}
function Mozilla_DoFade(e)
{
    if (doit == 0) {
        obj = e.target;
        while (obj.nodeName != 'A' && obj.nodeName != 'HTML') {
            obj = obj.parentNode;
        }

        if (obj.nodeName == 'A' && obj.href != '') {
            objActive = obj;
			buff[buffCTR] = obj;				// push object onto object buffer
			doit = 1;
            performFade(1,buffCTR);
		
        }
    }
}
function Mozilla_UnFade(e)
{
    if (doit) {
        if (objActive.nodeName == 'A') {
            doit = 0;
			setTimeout("performFade(0," + buffCTR+ ")", enterSpeed * enterSpeed);
			//performFade(0,buffCTR);
			buffCTR++;
			buffindsCTR++;
        }
    }
}

function performFade(over, ind) {
  if(over) {
     mySpeed = enterSpeed;
  }
  else {
     mySpeed = exitSpeed;
  }
  for(i = 0; i <= mySpeed; i++)
	setTimeout('settheColor( ' + over + ', ' + i + ',' + ind +' );', i * mySpeed);
  

}

function settheColor(over,frame,theind)
{
  if(over) {
    startColor = origTextClr;
    endColor = finTextClr;
    mySpeed = enterSpeed;
  }
  else {
    startColor = finTextClr;
    endColor = origTextClr;
    mySpeed = exitSpeed;
  }

  var myObj = buff[theind];

  myObj.style.color = '#'+ dualhex[Math.floor(startColor[0] * ((mySpeed - frame) / mySpeed) + endColor[0] * (frame / mySpeed))]
    + dualhex[Math.floor(startColor[1] * ((mySpeed - frame) / mySpeed) + endColor[1] * (frame / mySpeed))]
     + dualhex[Math.floor(startColor[2] * ((mySpeed - frame) / mySpeed) + endColor[2] * (frame / mySpeed))];

}
