var rate = 20; 

var obj; 

var act = 0; 

var elmH = 0; 

var elmS = 128; 

var elmV = 255; 

var clrOrg; 

var TimerID; 

if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4)  

{ 

Browser = true; 

} else { 

Browser = false; 

} 

if (Browser) { 

document.onmouseover = doRainbowAnchor; 

document.onmouseout = stopRainbowAnchor; 

} 

function doRainbow() 

{ 

if (Browser && act != 1) { 

act = 1; 

obj = event.srcElement; 

clrOrg = obj.style.color; 

TimerID = setInterval("ChangeColor()",100); 

} 

} 

function stopRainbow() 

{ 

if (Browser && act != 0) { 

obj.style.color = clrOrg; 

clearInterval(TimerID); 

act = 0; 

} 

} 

function doRainbowAnchor() 

{ 
/*
if (Browser && act != 1) { 

obj = event.srcElement; 
 if (obj !=null)
{
while (obj.tagName != 'A' && obj.tagName != 'BODY') { 

obj = obj.parentElement; 

 if (obj !=null)
{
if ( (obj.tagName == 'A' || obj.tagName == 'BODY') ) 

break; 

}
}
} 
 if (obj !=null)
{
if (obj !=null && obj.tagName == 'A' && obj.href != '') { 

act = 1; 

clrOrg = obj.style.color; 

TimerID = setInterval("ChangeColor()",100); 

} 
}

} //


*/
} 

function stopRainbowAnchor() 

{ 

if (Browser && act != 0) { 

if (obj.tagName == 'A') { 

obj.style.color = clrOrg; 

clearInterval(TimerID); 

act = 0; 

} 

} 

} 

function ChangeColor() 

{ 

obj.style.color = makeColor(); 

} 

function makeColor() 

{ 

if (elmS == 0) { 

elmR = elmV; elmG = elmV; elmB = elmV; 

} 

else { 

t1 = elmV; 

t2 = (255 - elmS) * elmV / 255; 

t3 = elmH % 60; 

t3 = (t1 - t2) * t3 / 60; 

if (elmH < 60) { 

elmR = t1; elmB = t2; elmG = t2 + t3; 

} 

else if (elmH < 120) { 

elmG = t1; elmB = t2; elmR = t1 - t3; 

} 

else if (elmH < 180) { 

elmG = t1; elmR = t2; elmB = t2 + t3; 

} 

else if (elmH < 240) { 

elmB = t1; elmR = t2; elmG = t1 - t3; 

} 

else if (elmH < 300) { 

elmB = t1; elmG = t2; elmR = t2 + t3; 

} 

else if (elmH < 360) { 

elmR = t1; elmG = t2; elmB = t1 - t3; 

} 

else { 

elmR = 0; elmG = 0; elmB = 0; 

} 

} 

elmR = Math.floor(elmR); 

elmG = Math.floor(elmG); 

elmB = Math.floor(elmB); 

clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16); 

elmH = elmH + rate; 

if (elmH >= 360) 

elmH = 0; 

return clrRGB; 

}

