var texts = new Array(
"<a href='http://outside-blog.away.com/blog/2009/10/documentaries-we-like-paddle-to-seattle.html' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia'><p style='text-align:center'><p style='text-align:center; font-size:x-large;'>“You get lost in the journey.”</p><p style='text-align:center; margin-top:5px; font-size:14px;'>—Outside Magazine</p></font></a>",

"<a href='http://www.sunny.org/blog/index.cfm/2009/11/9/Nov-9-Paddling-to-SOFLA' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia'><p style='text-align:center'><p style='text-align:center; font-size:medium;'>“The most refreshing new<br />documentary I’ve seen in years”</p><p style='text-align:center; margin-top:5px; font-size:14px;'>—The Fort Lauderdale Blog</p></font></a>",

"<a href='http://www.nationalgeographic.com/radio/national-geographic-weekend.html' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia'><p style='text-align:center'><p style='text-align:center; font-size:x-large;'>“A film full of adventure...beautiful!”</p><p style='text-align:center; margin-top:5px; font-size:14px;'>—Boyd Matson, National Geographic</p></font></a>",

"<a href='http://www.oceanpaddlermagazine.com/' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia' style='font-size:16px;'><p style='text-align:center;'><p style='text-align:center'>“The effervescent personalities of these two dynamic individuals suck you into their adventure like a whirlpool in a glass of Alka Seltzer.”&nbsp;&nbsp;&nbsp;<span style='font-size:14px'>—Ocean Paddler Magazine</span></p></font></a>",

"<a href='http://www.paddlermagazine.com/media/dvd-book-reviews/in-real-time.html' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia'><p style='text-align:center'><p style='text-align:center; font-size:large;'>“Eighty minutes of the best feature film about paddling produced in the last decade.”</p><p style='text-align:center; margin-top:5px; font-size:14px;'>—Paddler Magazine</p></font></a>",

"<a href='http://seattletimes.nwsource.com/html/movies/2011190948_kayak26.html' target='_blank' title='Click to read the full article.'><font color='{COLOR}' padding-top='10px' face='Georgia'><p style='text-align:center'><p style='text-align:center; font-size:x-large;'>“It’s laugh-out-loud hilarious.”</p><p style='text-align:center; margin-top:5px; font-size:14px;'>—The Seattle Times</p></font></a>");

var bgcolor = "#8bacd6"; // background color, must be valid browser hex color (not color names)
var fcolor = "#FFFFFF"; // foreground or font color
var steps = 20; // number of steps to fade
var show = 5000; // milliseconds to display message
var sleep = 30; // milliseconds to pause inbetween messages
var loop = true; // true = continue to display messages, false = stop at last message

// Do Not Edit Below This Line
var colors = new Array(steps);
var colors2 = new Array(steps);
getFadeColors(bgcolor,fcolor,colors);
var color = 0;
var text = 0;
var step = 1;

// fade: magic fader function
function fade() {

// insert fader color into message
var text_out = texts[text].replace("{COLOR}", colors[color]);
//var text_out = texts[text].replace("{COLOR2}", colors2[color]);// texts should be defined in user script, e.g.: var texts = new Array("<font color='{COLOR}' sized='+3' face='Arial'>howdy</font>");

// actually write message to document
document.getElementById("fader").innerHTML = text_out; 

// select next fader color
color += step;

// completely faded in?
if (color >= colors.length-1) {
step = -1; // traverse colors array backward to fade out

// stop at last message if loop=false
if (!loop && text >= texts.length-1) return; // loop should be defined in user script, e.g.: var loop=true;
}

// completely faded out?
if (color == 0) {
step = 1; // traverse colors array forward to fade in again

// select next message
text += 1;
if (text == texts.length) text = 0; // loop back to first message
}

// subtle timing logic...
setTimeout("fade()", (color == colors.length-2 && step == -1) ? show : ((color == 1 && step == 1) ? sleep : 50)); // sleep and show should be defined in user script, e.g.: var sleep=30; var show=500;
}
// getFadeColors: fills Colors (predefined Array)
// with color hex strings fading from ColorA to ColorB

// note: Colors.length equals the number of steps to fade
function getFadeColors(ColorA, ColorB, Colors) {
len = Colors.length;

// strip '#' signs if present
if (ColorA.charAt(0)=='#') ColorA = ColorA.substring(1);
if (ColorB.charAt(0)=='#') ColorB = ColorB.substring(1);

// substract rgb compents from hex string
var r = HexToInt(ColorA.substring(0,2));
var g = HexToInt(ColorA.substring(2,4));
var b = HexToInt(ColorA.substring(4,6));
var r2 = HexToInt(ColorB.substring(0,2));
var g2 = HexToInt(ColorB.substring(2,4));
var b2 = HexToInt(ColorB.substring(4,6));

// calculate size of step for each color component
var rStep = Math.round((r2 - r) / len);
var gStep = Math.round((g2 - g) / len);
var bStep = Math.round((b2 - b) / len);

// fill Colors array with fader colors
for (i = 0; i < len-1; i++) {
Colors[i] = "#" + IntToHex(r) + IntToHex(g) + IntToHex(b);
r += rStep;
g += gStep;
b += bStep;
}
Colors[len-1] = ColorB; // make sure we finish exactly at ColorB
}

// IntToHex: converts integers between 0-255 into a two digit hex string.
function IntToHex(n) {
var result = n.toString(16);
if (result.length==1) result = "0"+result;
return result;
}

// HexToInt: converts two digit hex strings into integer.
function HexToInt(hex) {
return parseInt(hex, 16);
}
// body tag must include: onload="fade()" bgcolor="#00B359" where bgcolor equals bgcolor in javascript above

window.onload=fade;

function setFadeLink() {
  var ilink = document.getElementById("fade_link");
  ilink.innerHTML = arrFadeTitles[text];
}
// End -->
