// JavaScript Document// Copyright (c) 1996 Tomer Shiran. All rights reserved.// Permission given to use this script provided that the copyright// notice remains as is. Additional scripts and information are// available at http://www.geocities.com/SiliconValley/9000/// set speed of banner (pause in milliseconds between characters)var speed = 100 // decrease value to increase speed (must be positive)// set pause between completion of message and beginning of following messagevar pause = 1000 // increase value to increase pause// set initial valuesvar timerID = nullvar bannerRunning = false// create global arrayvar ar = new Array()// assign the strings to the array's elementsar[0] = "Welcome to Town of Stoneville!"ar[1] = "Finest Small Town in Piedmont, North Carolina"ar[2] = "Ravaged by Tornado, Stoneville Rebuilds"ar[3] = "A Proud Past, A Bright Future"ar[4] = "Visit with us again soon."// set index of first message to be displayed firstvar currentMessage = 0// set index of last character to be displayed firstvar offset = 0// stop the banner if it is currently runningfunction stopBanner() {  // if banner is currently running  if (bannerRunning)    // stop the banner    clearTimeout(timerID)  // timer is now stopped  bannerRunning = false}// start the bannerfunction startBanner() {  // make sure the banner is stopped  stopBanner()  // start the banner from the current position  showBanner()}// type-in the current messagefunction showBanner() {  // assign current message to variable  var text = ar[currentMessage]  // if current message has not finished being displayed  if (offset < text.length) {    // if last character of current message is a space    if (text.charAt(offset) == " ")      // skip the current character      offset++    // assign the up-to-date to-be-displayed substring    // second argument of method accepts index of last character plus one    var partialMessage = text.substring(0, offset + 1)    // display partial message in status bar    window.status = partialMessage    // increment index of last character to be displayed    offset++ // IE sometimes has trouble with "++offset"    // recursive call after specified time    timerID = setTimeout("showBanner()", speed)    // banner is running    bannerRunning = true  } else {    // reset offset    offset = 0    // increment subscript (index) of current message    currentMessage++    // if subscript of current message is out of range    //if (currentMessage == ar.length)    if (currentMessage == 5)      // wrap around (start from beginning)      currentMessage = 0    // recursive call after specified time    timerID = setTimeout("showBanner()", pause)    // banner is running    bannerRunning = true  }}
window.onload=startBanner;
