
/* ----------------------------------------------------------------------------

   $RCSfile: ticker.js,v $ $Name:  $
   $Date: 2006/05/05 16:09:57 $ $Revision: 1.3 $
   ============================================================================
   When        Who        What
   ----------------------------------------------------------------------------
   2006-01-18  amm        Created
   ============================================================================

   Notes:

	- Handy ticker that spits out one character at a time

	- Good example at http://clumpies.com

   Usage:   

	<script src="/genjs/ticker.js"></script>
	<script>
	// execute the ticker
	var theCharacterTimeout = 50;
	var theStoryTimeout     = 2000;
	var theWidgetOne        = "_";
	var theWidgetTwo        = "-";
	var theWidgetNone       = "";
	var theLeadString 	= "";
	var theItemCount 	= 2;

	var theSummaries = new Array();
	var theSiteLinks = new Array();
    
	theSummaries[0] = "It's Official: Clumpies poised to conquer the world of ice cream";
	theSiteLinks[0] = "/ice-creams.php";

	theSummaries[1] = "Customers complain that every flavor is too good and choice is difficult";
	theSiteLinks[1] = "/ice-creams.php";

	startTicker();
	</script>

	<a href="#" target="_top" id="tickerAnchor" class="ticker"><span id="tickerBucket"></span></a>

   ------------------------------------------------------------------------  */

// Ticker startup
function startTicker() {
	// Define run time values
	theCurrentStory     = -1;
	theCurrentLength    = 0;

	// Locate base objects
	if (document.getElementById) {
		theAnchorObject     = document.getElementById("tickerAnchor");
		theBucketObject     = document.getElementById("tickerBucket");
		runTheTicker();	
	}
	else {
		document.write("<style>.ticki{display:none;}.ticko{border:0px; padding:0px;}</style>");
        	return true;
	}
}

// Ticker main run loop
function runTheTicker() {
	var myTimeout;  

	// Go for the next story data block
	if(theCurrentLength == 0) {
		theCurrentStory++;
		theCurrentStory      = theCurrentStory % theItemCount;
		theStorySummary      = theSummaries[theCurrentStory].replace(/&quot;/g,'"');
		theTargetLink        = theSiteLinks[theCurrentStory];
		theAnchorObject.href = theTargetLink;
		thePrefix      = "<span class=\"tickls\">" + theLeadString + "</span>";
	}

	// Stuff the current ticker text into the bucket
	theBucketObject.innerHTML = thePrefix + theStorySummary.substring(0,theCurrentLength) + whatWidget();

	// Modify the length for the substring and define the timer
	if(theCurrentLength != theStorySummary.length) {
		theCurrentLength++;
		myTimeout = theCharacterTimeout;
	}
	else {
		theCurrentLength = 0;
		myTimeout = theStoryTimeout;
	}

	// Call up the next cycle of the ticker
	setTimeout("runTheTicker()", myTimeout);
}

// Widget generator
function whatWidget() {
	if(theCurrentLength == theStorySummary.length) {
		return theWidgetNone;
	}

	if((theCurrentLength % 2) == 1) {
		return theWidgetOne;
	}
	else {
		return theWidgetTwo;
	}
}
