//
// Note that this method requires that your server support Server-Side
// Includes (SSI).
//
// Alternately, the message to be displayed may be defined by
// un-commenting the following line, and inserting whatever text is to be
// displayed:
//var messageToScroll = "Un-comment this line, then insert your message here.";
// The speed at which characters are scrolled may be controlled by modifying
// the 'displayDelay' variable. This variable specifies the amount of time, in
// milliseconds, the display pauses between scrolling characters:
var displayDelay = 200;
// The message to be displayed may either be scrolled completely off the
// display before it is repeated (scrollOffScreen = true), or, it may be
// repeated with no interviening spaces (scrollOffScreen = false):
var scrollOffScreen = true;
// The message scrolled by this script is displayed on a series of individual
// simulated dot matrix displays, each capable of displaying a single
// character of the message. You may vary the number of displays presented:
var displays = 22;
// The image for each character supported by this script is contained in a
// .gif file. The size of each of these images is:
var displayGraphicWidth = 12;
var displayGraphicHeight = 15;
// In many applications, it is desirable to have an image displayed on the
// left or right side of the string of simulated dot matrix display graphics.
// This may be accomplished by inserting the appropriate (X)HTML code into
// the following variables (set these variables to empty strings ("") if
// no graphics are to be displayed):
var displayLineStart = "
";
var displayLineEnd = "
";
// Global Variables
// ----------------
// I hate global variables. But, when writing code in JavaScript, they're
// pretty hard to avoid. Here are the ones used by this script:
// This array contains the images used to represent each character of the
// message to be displayed:
var displayImage = new Array();
// An index into the 'displayImage' array, indicating the first character to
// be displayed the next time the display is refreshed:
var firstCharacterToDisplay;
// An index into the DOM document.images object array, indicating which page
// image is the first simulated dot matrix display graphic:
var firstDisplayImage;
// Preparation
// -----------
//
// In preparation for scrolling the message, we'll pre-load all the graphics
// we'll be needing. First, we'll determine if the message is to be scrolled
// completely off the screen...
var count;
var displayImageToRecord = 0;
if (scrollOffScreen)
{
// It is. Pad start of image array with enough blanks for each
// character display...
for (count = 0; count < displays; count++)
{
displayImage[displayImageToRecord] = new Image();
displayImage[displayImageToRecord].src = "space.gif";
displayImageToRecord++;
}
}
// Stuff a display image for each character of the message to be
// displayed (this is where the character conversion of the message
// happens)...
for (count = 0; count < messageToScroll.length; count++)
{
displayImage[displayImageToRecord] = new Image();
switch(messageToScroll.charAt(count))
{
case "@":
displayImage[displayImageToRecord].src = "at.gif";
break;
case "A":
case "a":
displayImage[displayImageToRecord].src = "a.gif";
break;
case "B":
case "b":
displayImage[displayImageToRecord].src = "b.gif";
break;
case "C":
case "c":
displayImage[displayImageToRecord].src = "c.gif";
break;
case "D":
case "d":
displayImage[displayImageToRecord].src = "d.gif";
break;
case "E":
case "e":
displayImage[displayImageToRecord].src = "e.gif";
break;
case "F":
case "f":
displayImage[displayImageToRecord].src = "f.gif";
break;
case "G":
case "g":
displayImage[displayImageToRecord].src = "g.gif";
break;
case "H":
case "h":
displayImage[displayImageToRecord].src = "h.gif";
break;
case "I":
case "i":
displayImage[displayImageToRecord].src = "i.gif";
break;
case "J":
case "j":
displayImage[displayImageToRecord].src = "j.gif";
break;
case "K":
case "k":
displayImage[displayImageToRecord].src = "k.gif";
break;
case "L":
case "l":
displayImage[displayImageToRecord].src = "l.gif";
break;
case "M":
case "m":
displayImage[displayImageToRecord].src = "m.gif";
break;
case "N":
case "n":
displayImage[displayImageToRecord].src = "n.gif";
break;
case "O":
case "o":
displayImage[displayImageToRecord].src = "o.gif";
break;
case "P":
case "p":
displayImage[displayImageToRecord].src = "p.gif";
break;
case "Q":
case "q":
displayImage[displayImageToRecord].src = "q.gif";
break;
case "R":
case "r":
displayImage[displayImageToRecord].src = "r.gif";
break;
case "S":
case "s":
displayImage[displayImageToRecord].src = "s.gif";
break;
case "T":
case "t":
displayImage[displayImageToRecord].src = "t.gif";
break;
case "U":
case "u":
displayImage[displayImageToRecord].src = "u.gif";
break;
case "V":
case "v":
displayImage[displayImageToRecord].src = "v.gif";
break;
case "W":
case "w":
displayImage[displayImageToRecord].src = "w.gif";
break;
case "X":
case "x":
displayImage[displayImageToRecord].src = "x.gif";
break;
case "Y":
case "y":
displayImage[displayImageToRecord].src = "y.gif";
break;
case "Z":
case "z":
displayImage[displayImageToRecord].src = "z.gif";
break;
case "[":
displayImage[displayImageToRecord].src = "openSquareBrace.gif";
break;
case "~":
displayImage[displayImageToRecord].src = "tilde.gif";
break;
case "]":
displayImage[displayImageToRecord].src = "closeSquareBrace.gif";
break;
case "{":
displayImage[displayImageToRecord].src = "openCurleyBrace.gif";
break;
case "}":
displayImage[displayImageToRecord].src = "closeCurleyBrace.gif";
break;
case " ":
displayImage[displayImageToRecord].src = "space.gif";
break;
case "!":
displayImage[displayImageToRecord].src = "exclaimation.gif";
break;
case "\"":
displayImage[displayImageToRecord].src = "doubleQuote.gif";
break;
case "#":
displayImage[displayImageToRecord].src = "pound.gif";
break;
case "$":
displayImage[displayImageToRecord].src = "dollar.gif";
break;
case "%":
displayImage[displayImageToRecord].src = "percent.gif";
break;
case "&":
displayImage[displayImageToRecord].src = "amperstand.gif";
break;
case "'":
displayImage[displayImageToRecord].src = "apostrophy.gif";
break;
case "(":
displayImage[displayImageToRecord].src = "openParen.gif";
break;
case ")":
displayImage[displayImageToRecord].src = "closeParen.gif";
break;
case "*":
displayImage[displayImageToRecord].src = "asterisk.gif";
break;
case "+":
displayImage[displayImageToRecord].src = "plus.gif";
break;
case ",":
displayImage[displayImageToRecord].src = "comma.gif";
break;
case "-":
displayImage[displayImageToRecord].src = "dash.gif";
break;
case ".":
displayImage[displayImageToRecord].src = "period.gif";
break;
case "/":
case "\\":
displayImage[displayImageToRecord].src = "slash.gif";
break;
case "0":
displayImage[displayImageToRecord].src = "0.gif";
break;
case "1":
displayImage[displayImageToRecord].src = "1.gif";
break;
case "2":
displayImage[displayImageToRecord].src = "2.gif";
break;
case "3":
displayImage[displayImageToRecord].src = "3.gif";
break;
case "4":
displayImage[displayImageToRecord].src = "4.gif";
break;
case "5":
displayImage[displayImageToRecord].src = "5.gif";
break;
case "6":
displayImage[displayImageToRecord].src = "6.gif";
break;
case "7":
displayImage[displayImageToRecord].src = "7.gif";
break;
case "8":
displayImage[displayImageToRecord].src = "8.gif";
break;
case "9":
displayImage[displayImageToRecord].src = "9.gif";
break;
case ":":
displayImage[displayImageToRecord].src = "colon.gif";
break;
case ";":
displayImage[displayImageToRecord].src = "semicolon.gif";
break;
case "<":
displayImage[displayImageToRecord].src = "lessThan.gif";
break;
case "=":
displayImage[displayImageToRecord].src = "equal.gif";
break;
case ">":
displayImage[displayImageToRecord].src = "greaterThan.gif";
break;
case "?":
displayImage[displayImageToRecord].src = "question.gif";
break;
default:
displayImage[displayImageToRecord].src = "space.gif";
break;
}
displayImageToRecord++;
}
// Functions
// ---------
// This function is called once the page loads, allowing us to get things
// initialized and ready to run:
function InitializeScroller()
{
var count;
var firstDisplayImageFound;
// Initialize necessary variables...
firstCharacterToDisplay = 0;
// First, we'll do a little dummy-proofing. We'll attempt to find the first
// image in the series of images which comprise the display. This image was
// assigned the name 'ds0' if the companion file 'scrolla.js' was properly
// inserted in the page...
for
(
count = 0, firstDisplayImageFound = false;
(count < document.images.length) && (! firstDisplayImageFound);
count++
)
{
// Is this the image we're looking for?...
if (document.images[count].name == "ds0")
{
// Yes. Record its offset...
firstDisplayImage = count;
// And record the fact that we found it...
firstDisplayImageFound = true;
}
}
// See if we ever found the 'ds0' image...
if (! firstDisplayImageFound)
{
// We never found it. Something's hoddibly wrong. We have no choice
// but to give up...
alert("Can't find first display image. Script can't be executed.");
return;
}
// Prepare to update the display (just as soon as possible)...
setTimeout("UpdateDisplay()", 1);
// From here on out, the display will be refreshed everytime the timer
// expires, causing the 'UpdateDisplay()' function to be called.
}
// This function is called everytime the timer expires. Its purpose
// in life is to refresh the display:
function UpdateDisplay()
{
var displayToUpdate;
var sourceImageIndex;
sourceImageIndex = firstCharacterToDisplay;
for (displayToUpdate = 0; displayToUpdate < displays; displayToUpdate++)
{
document.images[firstDisplayImage + displayToUpdate].src =
displayImage[sourceImageIndex].src;
// Prepare to update next display, wrapping to fetch next image
// if necessary...
if (++sourceImageIndex >= displayImage.length)
sourceImageIndex = 0;
}
// Scroll index, wrapping if necessary...
if (++firstCharacterToDisplay >= displayImage.length)
firstCharacterToDisplay = 0;
// Get ready to do it all over again...
setTimeout("UpdateDisplay()", displayDelay);
}
// (script identifier id = fredbean)
// That's all, folks!
// Close the comment used to hide the script from non-compliant browsers -->