// set speed of banner (pause in milliseconds between addition of new character)
var speed = 10 

// decrease value to increase speed (must be positive)
// set pause between completion of message and beginning of following message
var pause = 8500 

// increase value to increase pause
// set initial values
var timerID = null
var bannerRunning = false

// create array
var ar = new Array()

// assign index of current message
var message = 0

// empty string initialization
var state = ""

// 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	
	timerRunning = false
}

// start the banner
function startBanner() {
	// make sure the banner is stopped	
	stopBanner()	
	// start the banner from the current position	
	showBanner()
}

// assign state a string of "0" characters of the length of the current message
function clearState() {	
	// initialize to empty string	
	state = ""	
	// create string of same length containing 0 digits	
	for (var i = 0; i < ar[message].length; ++i) {		
		state += "0"	
	}
}

// display the current message
function showBanner() {	
	// if the current message is done	
	if (getString()) {		
		// increment message		
		message++		
		// if new message is out of range wrap around to first message		
	if (ar.length <= message)			
		message = 0		
		// new message is first displayed as empty string		
		clearState()		
		// display next character after pause milliseconds		
		timerID = setTimeout("showBanner()", pause)	
	} 
	else {		
		// initialize to empty string		
		var str = ""		
		// built string to be displayed (only character selected thus far are displayed)		
	for (var j = 0; j < state.length; ++j) {			
		str += (state.charAt(j) == "1") ? ar[message].charAt(j) : "     "		
	}		
	// partial string is placed in status bar		
	window.status = str		
	// add another character after speed milliseconds		
	timerID = setTimeout("showBanner()", speed)	
	}
}

function getString() {	
	// set variable to true (it will stay true unless proven otherwise)	
	var full = true	
	// set variable to false if a free space is found in string (a not-displayed char)	
	for (var j = 0; j < state.length; ++j) {		
		// if character at index j of current message has not been placed in displayed string		
		if (state.charAt(j) == 0)			
		full = false	
	}	
	// return true immediately if no space found (avoid infinitive loop later)	
	if (full) return true	
	// search for random until free space found (braoken up via break statement)	
	while (1) {		
		// a random number (between 0 and state.length - 1 == message.length - 1)		
		var num = getRandom(ar[message].length)		
		// if free space found break infinitive loop		
	if (state.charAt(num) == "0")			
		break	
	}	
	// replace the 0 character with 1 character at place found	
	state = state.substring(0, num) + "1" + state.substring(num + 1, state.length)	
	// return false because the string was not full (free space was found)	
	return false
}

function getRandom(max) {	
	// create instance of current date	
	var now = new Date()		
	// create a random number (good generator)	
	var num = now.getTime() * now.getSeconds() * Math.random()	
	// cut random number to value between 0 and max - 1, inclusive	
	return num % max
}

// ---------------------------------------------

function showDate() {
	var day="";
	var month="";
	var ampm="";
	var ampmhour="";
	var myweekday="";
	var year="";
	mydate = new Date();
	myday = mydate.getDay();
	mymonth = mydate.getMonth();
	myweekday= mydate.getDate();
	weekday= myweekday;
	myyear= mydate.getYear();
	myhours = mydate.getHours();
	ampmhour = (myhours > 12) ? myhours - 12 : myhours;
	ampm = (myhours >= 12) ? 'PM' : 'AM';
	mytime = mydate.getMinutes();
	myminutes = ((mytime < 10) ? ':0' : ':') + mytime;
	year = (myyear > 100) ? myyear : 1900 + myyear;
	if(myday ==0)
	day = " Sunday, ";
	else if(myday == 1)
	day = " Monday, ";
	else if(myday == 2)
	day = " Tuesday, ";
	else if(myday == 3)
	day = " Wednesday, ";
	else if(myday == 4)
	day = " Thursday, ";
	else if(myday == 5)
	day = " Friday, ";
	else if(myday == 6)
	day = " Saturday, ";
	if(mymonth == 0) {
	month = "Jan ";}
	else if(mymonth ==1)
	month = "Feb ";
	else if(mymonth ==2)
	month = "March ";
	else if(mymonth ==3)
	month = "April ";
	else if(mymonth ==4)
	month = "May ";
	else if(mymonth ==5)
	month = "June ";
	else if(mymonth ==6)
	month = "July ";
	else if(mymonth ==7)
	month = "August ";
	else if(mymonth ==8)
	month = "Sept ";
	else if(mymonth ==9)
	month = "Oct ";
	else if(mymonth ==10)
	month = "Nov ";
	else if(mymonth ==11)
	month = "Dec ";
	
	var nn = navigator.appName;
	var nnv = parseInt(navigator.appVersion)
	if((nn == "Netscape") && (nnv < 4)){
	}
	else{
	document.write("<span class=date>" + day + month + myweekday + ", " + year + 
	"</span>");
}
}

// -------------------------------------------------

function setVariable(variablename,variablevalue) {
	var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
	var m = InternetExplorer ? bonton: document.embeds[0];
	m.SetVariable(variablename, variablevalue);
}
