// Function to set Hot Key Links by Jim Stiles: e

var key = new Array();  
key['h'] = "http://www.floridafirstregional.com/index.html";
key['a'] = "http://www.floridafirstregional.com/about_FIRST.html";
key['c'] = "http://www.floridafirstregional.com/committees.html";
key['n'] = "http://www.floridafirstregional.com/news.html";
key['m'] = "http://www.floridafirstregional.com/members.html";
key['e'] = "http://www.floridafirstregional.com/events2009.html";
key['s'] = "http://www.floridafirstregional.com/sponsors_2009.html";
key['g'] = "http://www.floridafirstregional.com/eventpics.html";
key['u'] = "http://www.floridafirstregional.com/uniparts.html";
key['v'] = "http://www.floridafirstregional.com/volunteers.html";
key['d'] = "http://www.floridafirstregional.com/map.html";
key['b'] = "http://www.floridafirstregional.com/http://floridafirstregional.com/phpBB/index.php";
key['t'] = "http://www.floridafirstregional.com/frcchat.html";
key['z'] = "http://www.floridafirstregional.com/frcguestbook.html";
key['y'] = "http://www.floridafirstregional.com/current.html";
key['q'] = "http://www.floridafirstregional.com/frcsearch.html";
key['?'] = "http://www.floridafirstregional.com/contact.html";
key['f'] = "http://www.floridafirstregional.com/frcfeedback.html";
key['p'] = "http://www.floridafirstregional.com/privacy.html";
key['l'] = "http://www.floridafirstregional.com/links.html";
key['i'] = "http://www.floridafirstregional.com/getting_involved.html";
key['r'] = "http://www.floridafirstregional.com/events.html";
key['o'] = "http://www.floridafirstregional.com/offseason.html";
key['1'] = "http://www.floridafirstregional.com/javascript: history.go(-1)";


function getKey(keyStroke) {
isNetscape=(document.layers);

eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
which = String.fromCharCode(eventChooser).toLowerCase();
for (var i in key) if (which == i) window.location = key[i];
}
document.onkeypress = getKey;

// Color Transitioning Links by Jim Stiles: 

var rate = 20;  // Increase amount(The degree of the transmutation)

// Main routine: 

if (document.getElementById)
window.onerror=new Function("return true")

var objActive;  // The object which event occured in
var act = 0;    // Flag during the action
var elmH = 0;   // Hue
var elmS = 128; // Saturation
var elmV = 255; // Value
var clrOrg;     // A color before the change
var TimerID;    // Timer ID


if (document.all) {
    document.onmouseover = doRainbowAnchor;
    document.onmouseout = stopRainbowAnchor;
}
else if (document.getElementById) {
    document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
    document.onmouseover = Mozilla_doRainbowAnchor;
    document.onmouseout = Mozilla_stopRainbowAnchor;
}

// Function to change colors: 

function doRainbow(obj)
{
    if (act == 0) {
        act = 1;
        if (obj)
            objActive = obj;
        else
            objActive = event.srcElement;
        clrOrg = objActive.style.color;
        TimerID = setInterval("ChangeColor()",100);
    }
}

//  Stops the color changes: 

function stopRainbow()
{
    if (act) {
        objActive.style.color = clrOrg;
        clearInterval(TimerID);
        act = 0;
    }
}

//  Automatic color change: 

function doRainbowAnchor()
{
    if (act == 0) {
        var obj = event.srcElement;
        while (obj.tagName != 'A' && obj.tagName != 'BODY') {
            obj = obj.parentElement;
            if (obj.tagName == 'A' || obj.tagName == 'BODY')
                break;
        }

        if (obj.tagName == 'A' && obj.href != '') {
            objActive = obj;
            act = 1;
            clrOrg = objActive.style.color;
            TimerID = setInterval("ChangeColor()",100);
        }
    }
}

// Stops automatic functions: 

function stopRainbowAnchor()
{
    if (act) {
        if (objActive.tagName == 'A') {
            objActive.style.color = clrOrg;
            clearInterval(TimerID);
            act = 0;
        }
    }
}

// Makes Mozilla compatable: 

function Mozilla_doRainbowAnchor(e)
{
    if (act == 0) {
        obj = e.target;
        while (obj.nodeName != 'A' && obj.nodeName != 'BODY') {
            obj = obj.parentNode;
            if (obj.nodeName == 'A' || obj.nodeName == 'BODY')
                break;
        }

        if (obj.nodeName == 'A' && obj.href != '') {
            objActive = obj;
            act = 1;
            clrOrg = obj.style.color;
            TimerID = setInterval("ChangeColor()",100);
        }
    }
}

// Makes Mozilla compatable: 

function Mozilla_stopRainbowAnchor(e)
{
    if (act) {
        if (objActive.nodeName == 'A') {
            objActive.style.color = clrOrg;
            clearInterval(TimerID);
            act = 0;
        }
    }
}

//  Changes the colors: 

function ChangeColor()
{
    objActive.style.color = makeColor();
}

// Creates rainbow effects: 

function makeColor()
{

    // HSVtoRGB
    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).toString(16);
    elmG = Math.floor(elmG).toString(16);
    elmB = Math.floor(elmB).toString(16);
    if (elmR.length == 1)    elmR = "0" + elmR;
    if (elmG.length == 1)    elmG = "0" + elmG;
    if (elmB.length == 1)    elmB = "0" + elmB;

    elmH = elmH + rate;
    if (elmH >= 360)
        elmH = 0;

    return '#' + elmR + elmG + elmB;
}