<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://baripedia.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ATicker2.js</id>
	<title>MediaWiki:Ticker2.js - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://baripedia.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ATicker2.js"/>
	<link rel="alternate" type="text/html" href="https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;action=history"/>
	<updated>2026-05-25T23:29:25Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.38.6</generator>
	<entry>
		<id>https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;diff=11940&amp;oldid=prev</id>
		<title>Arthur le 4 mai 2014 à 21:41</title>
		<link rel="alternate" type="text/html" href="https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;diff=11940&amp;oldid=prev"/>
		<updated>2014-05-04T21:41:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;amp;diff=11940&amp;amp;oldid=3541&quot;&gt;Voir les modifications&lt;/a&gt;</summary>
		<author><name>Arthur</name></author>
	</entry>
	<entry>
		<id>https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;diff=3541&amp;oldid=prev</id>
		<title>Arthur : Page créée avec «  /*globals Bawolff getElementsByClassName hookEvent wgServer wgArticlePath addLoadEvent*/  /*   __This is Ticker2-0.9__      This is an attempt to redesign the ticker syst... »</title>
		<link rel="alternate" type="text/html" href="https://baripedia.org/index.php?title=MediaWiki:Ticker2.js&amp;diff=3541&amp;oldid=prev"/>
		<updated>2013-08-17T21:34:25Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;globals Bawolff getElementsByClassName hookEvent wgServer wgArticlePath addLoadEvent : &lt;/span&gt;  /*   __This is Ticker2-0.9__      This is an attempt to redesign the ticker syst... »&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
/*globals Bawolff getElementsByClassName hookEvent wgServer wgArticlePath addLoadEvent*/&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
 __This is Ticker2-0.9__&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 This is an attempt to redesign the ticker system. I believe that well the current ticker system is a good idea, it can be improved on&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Then again, this may just be overthinking things. time will tell.&lt;br /&gt;
&lt;br /&gt;
 ######&lt;br /&gt;
&lt;br /&gt;
 Design goals&lt;br /&gt;
&lt;br /&gt;
 *modular - should be able to have more then one transition between items&lt;br /&gt;
&lt;br /&gt;
 *user configurable - should be able to customize on wiki (aka {{ticker|for=Africa|speed=...}})&lt;br /&gt;
&lt;br /&gt;
 **The user should never have to do anything in js&lt;br /&gt;
&lt;br /&gt;
 **Downside: have to be extra-careful about XSS&lt;br /&gt;
&lt;br /&gt;
 *fast - performance was an issue with the other system&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 cavets:&lt;br /&gt;
&lt;br /&gt;
 *Doesn't handle multilevel lists well&lt;br /&gt;
&lt;br /&gt;
 *onblur/onfocus?? (works in opera, firefox, broken in MSIE)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Todo:&lt;br /&gt;
&lt;br /&gt;
 *change intro string to a control string with escape sequences (think printf)&lt;br /&gt;
&lt;br /&gt;
 **Play/pause button&lt;br /&gt;
&lt;br /&gt;
 *better fade transitions (current one kind of sucks)&lt;br /&gt;
&lt;br /&gt;
 *Change state system to number instead of T,F,U.&lt;br /&gt;
&lt;br /&gt;
 *make fade work in IE&lt;br /&gt;
&lt;br /&gt;
 *multiple speed variables&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 ####&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Note: Setting disable_ticker2 to true will disable the ticker.&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//to avoid name conflicts (we already have way to many global variables as is imho)&lt;br /&gt;
&lt;br /&gt;
//Everything should be a member of Bawolff.Ticker&lt;br /&gt;
&lt;br /&gt;
if (typeof Bawolff !== &amp;quot;object&amp;quot;) Bawolff = {};&lt;br /&gt;
&lt;br /&gt;
if (typeof Bawolff.Ticker === &amp;quot;Object&amp;quot;) throw new Error(&amp;quot;Can not initilize ticker. Already initilized, or someone stole its name!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker = function() {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
&lt;br /&gt;
     This is the constructor function for new Ticker objects. Call as:&lt;br /&gt;
&lt;br /&gt;
     var some_ticker_object = new Bawolff.Ticker;&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     Its primary purpose is to set defaults and create new Ticker objects. It takes no arguments.&lt;br /&gt;
&lt;br /&gt;
     Ticker Objects should have the following methods:&lt;br /&gt;
&lt;br /&gt;
     *setUp - set up ticker properties (and does sanity checks)&lt;br /&gt;
&lt;br /&gt;
     *engines - functions for transitions&lt;br /&gt;
&lt;br /&gt;
     probably more&lt;br /&gt;
&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var t_s = Bawolff.Ticker; //shortcut&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    this.arg = &amp;quot;&amp;quot;; //defaults to none, if uspecified. (should this be an arg to this function?). unphrased definition of options&lt;br /&gt;
&lt;br /&gt;
    this.elm = null; //element to work ticker magic on. setUp method will throw an error if this isn't set by then&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    //method setUp will take care of these. These are the actual options (defaults here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    this.engineNumb = t_s.eng.none; //constant representing engine number&lt;br /&gt;
&lt;br /&gt;
    this.speed = 1; //float - multiplication factor&lt;br /&gt;
&lt;br /&gt;
    //Probably can't set these to null through wiki&lt;br /&gt;
&lt;br /&gt;
    this.strLeft = &amp;quot;Dernières nouvelles (&amp;quot;; //Intro string part 1 - null for none&lt;br /&gt;
&lt;br /&gt;
    this.strRight = &amp;quot;) :&amp;quot;; //intro part 3 - null for none&lt;br /&gt;
&lt;br /&gt;
    this.strLinkURI = &amp;quot;//fr.wikinews.org/wiki/Utilisateur:TheFearow/Tickersource&amp;quot;; //part 2 url&lt;br /&gt;
&lt;br /&gt;
    this.strLinkText = &amp;quot;liste complète&amp;quot;; //part 2 text. null for no link.&lt;br /&gt;
&lt;br /&gt;
    this.schowControls = false; //pause/restart&lt;br /&gt;
&lt;br /&gt;
    this.tickSpeed = 1;&lt;br /&gt;
&lt;br /&gt;
    this.resetSpeed=1;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    //Internal thingies (don't change)&lt;br /&gt;
&lt;br /&gt;
    this.listIndex = 0;&lt;br /&gt;
&lt;br /&gt;
    this.charIndex = 0;&lt;br /&gt;
&lt;br /&gt;
    this.curState = &amp;quot;ok&amp;quot;; //for pausing&lt;br /&gt;
&lt;br /&gt;
    this.resumeFunc = null; //storage for resume function&lt;br /&gt;
&lt;br /&gt;
    this.resumeDelay = 0; //wait time before executing&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.prototype.setUp = function() {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
&lt;br /&gt;
     This function takes no arguments. call as:&lt;br /&gt;
&lt;br /&gt;
     some_ticker_object.setUp();&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     It initilizes ticker options based on what the class name of the ticker element is.&lt;br /&gt;
&lt;br /&gt;
     The options are (mostly) encoded as follows in a class attribute:&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     Ticker_&amp;lt;option name- no dashes, underscore allowed&amp;gt;-&amp;lt;urlencoded option value(must end in alphanumeric or _ character)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     options are separated by a space (each is a different class).&lt;br /&gt;
&lt;br /&gt;
     ###################################################&lt;br /&gt;
&lt;br /&gt;
     ##This function must be extra careful not to be  ##&lt;br /&gt;
&lt;br /&gt;
     ##vulnurable to an xss attack as it directly     ##&lt;br /&gt;
&lt;br /&gt;
     ##deals with editable on wiki data, that could be##&lt;br /&gt;
&lt;br /&gt;
     ##malicious! be careful                          ##&lt;br /&gt;
&lt;br /&gt;
     ###################################################&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    //check to see if we really have an element&lt;br /&gt;
&lt;br /&gt;
    if (!(this.elm &amp;amp;&amp;amp; this.elm.nodeType &amp;amp;&amp;amp; this.elm.nodeType === 1)) throw new Error(&amp;quot;no element, or invalid element for ticker&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var propMatch = /\bTicker_(\w+)-(\S*)\b/g;&lt;br /&gt;
&lt;br /&gt;
    var res;&lt;br /&gt;
&lt;br /&gt;
    var plusSign = /\+/g;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    while(res = propMatch.exec(this.arg)) {&lt;br /&gt;
&lt;br /&gt;
        switch(res[1]) { //option name&lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;speed&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                var speed = parseFloat(decodeURIComponent(res[2]));&lt;br /&gt;
&lt;br /&gt;
                if (isNaN(speed)) break;&lt;br /&gt;
&lt;br /&gt;
                speed = 1/speed; //turn delay into speed multiplier&lt;br /&gt;
&lt;br /&gt;
                if (speed &amp;lt; 1e-5) break;&lt;br /&gt;
&lt;br /&gt;
                if (speed &amp;gt; 1e2)  break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
                this.speed = speed;&lt;br /&gt;
&lt;br /&gt;
                break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;strRight&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace(plusSign, '%20');//encode + with % encode. does this work w/unicode&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace('%00', '');&lt;br /&gt;
&lt;br /&gt;
                this.strRight = decodeURIComponent(res[2]);&lt;br /&gt;
&lt;br /&gt;
                break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;strLeft&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace(plusSign, '%20');//encode + with % encode. does this work w/unicode&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace('%00', '');&lt;br /&gt;
&lt;br /&gt;
                this.strLeft = decodeURIComponent(res[2]);&lt;br /&gt;
&lt;br /&gt;
                break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;strLinkText&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace(plusSign, '%20');//encode + with % encode. does this work w/unicode&lt;br /&gt;
&lt;br /&gt;
                res[2] = res[2].replace('%00', '');&lt;br /&gt;
&lt;br /&gt;
                this.strLinkText = decodeURIComponent(res[2]);&lt;br /&gt;
&lt;br /&gt;
                break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;strLinkURI&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                //despite name, actually local page name, not a URI&lt;br /&gt;
&lt;br /&gt;
                var page = encodeURIComponent(res[2]); //note encode not decode&lt;br /&gt;
&lt;br /&gt;
                if (page.match(/^special(%3A|:)userlogout/i)) break; //link is malicious&lt;br /&gt;
&lt;br /&gt;
                this.strLinkURI = (page.length &amp;gt; 0) ? wgServer + wgArticlePath.replace(&amp;quot;$1&amp;quot;, page) : null;&lt;br /&gt;
&lt;br /&gt;
                break;&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            case &amp;quot;engine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                //takes a literal engine name&lt;br /&gt;
&lt;br /&gt;
                var engName = decodeURIComponent(res[2]);&lt;br /&gt;
&lt;br /&gt;
                if (engName.match(/^\d+$/)||engName.length === 0) break;&lt;br /&gt;
&lt;br /&gt;
                this.engineNumb = (typeof Bawolff.Ticker.eng[engName] === &amp;quot;number&amp;quot; ? Bawolff.Ticker.eng[engName] : this.engineNumb);&lt;br /&gt;
&lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
            default:&lt;br /&gt;
&lt;br /&gt;
                //throw new Error(&amp;quot;not implemented&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    this.bigList = this.elm.getElementsByTagName(&amp;quot;li&amp;quot;); //items to cycle ticker through&lt;br /&gt;
&lt;br /&gt;
    this.listLength = this.bigList.length;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.prototype.start = function() {&lt;br /&gt;
&lt;br /&gt;
    //Start the ticker sets it up as well) separate from restart&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
&lt;br /&gt;
     Creates a &amp;lt;ul class=&amp;quot;actualTicker&amp;quot;&amp;gt; - actualTicker&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;span class=&amp;quot;tickerIntroduction&amp;quot;&amp;gt;(into &amp;lt;a class=&amp;quot;tickerLink&amp;quot;&amp;gt;stuff&amp;lt;/a&amp;gt;):&amp;lt;/span&amp;gt; - realTicker&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;li &amp;gt; ...&amp;lt;/li&amp;gt; (dummyItem)&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    this.elm.style.display = &amp;quot;none&amp;quot;; //hide the list&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var actualTicker = this.tickerElm = document.createElement(&amp;quot;ul&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    actualTicker.className = &amp;quot;actualTicker&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var realTicker = document.createElement(&amp;quot;Span&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    realTicker.className = &amp;quot;tickerIntroduction&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    realTicker.appendChild(document.createTextNode(this.strLeft));&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var realTickerLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    realTickerLink.href= this.strLinkURI;&lt;br /&gt;
&lt;br /&gt;
    realTickerLink.title = this.strLinkText;&lt;br /&gt;
&lt;br /&gt;
    realTickerLink.className = &amp;quot;tickerLink&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    realTickerLink.appendChild(document.createTextNode(this.strLinkText));&lt;br /&gt;
&lt;br /&gt;
    realTicker.appendChild(realTickerLink);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    realTicker.appendChild(document.createTextNode(this.strRight));&lt;br /&gt;
&lt;br /&gt;
    //Start the 2nd (Actual) span&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    actualTicker.appendChild(realTicker);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var dummyItem = document.createElement(&amp;quot;li&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    actualTicker.appendChild(dummyItem);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    this.elm.parentNode.insertBefore(actualTicker, this.elm);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    this[Bawolff.Ticker.eng[this.engineNumb]](true); //Start the engine (ticker)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.prototype.pause = function () {&lt;br /&gt;
&lt;br /&gt;
    this.curState = &amp;quot;paused&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.prototype.restart = function () {&lt;br /&gt;
&lt;br /&gt;
    if (this.curState !== &amp;quot;paused&amp;quot;) return false;&lt;br /&gt;
&lt;br /&gt;
    this.curState = &amp;quot;ok&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    window.setTimeout(this.resumeFunc, this.resumeDelay);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
 ####&lt;br /&gt;
&lt;br /&gt;
 functions that are direct properties of the ticker constructor (not in prototype chain)&lt;br /&gt;
&lt;br /&gt;
 ####&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.eng = []; //Stores object mapping engine name to engine number&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.registerEngine = function (engName, engine) {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
&lt;br /&gt;
     This function takes care of hooking up engines (transitions)&lt;br /&gt;
&lt;br /&gt;
     into the system.&lt;br /&gt;
&lt;br /&gt;
     Arguments: String engName - name of engine (can not be a number)&lt;br /&gt;
&lt;br /&gt;
     function engine - function containing engine code&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     Structure of what an engine should look like is noted somewhere (FIXME)&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    //to prevent screwing around with length property. considered an array index, even if passed a string with an interger value&lt;br /&gt;
&lt;br /&gt;
    if (typeof engName !== &amp;quot;string&amp;quot; || (engName.match(/^\d+$/) !== null)) throw new Error(&amp;quot;Invalid engine name. (can't be a number)&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var te_s = Bawolff.Ticker.eng;&lt;br /&gt;
&lt;br /&gt;
    var listLen = te_s.length;&lt;br /&gt;
&lt;br /&gt;
    te_s[listLen] = &amp;quot;eng-&amp;quot; + engName;&lt;br /&gt;
&lt;br /&gt;
    te_s[engName] = listLen;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    Bawolff.Ticker.prototype[&amp;quot;eng-&amp;quot; + engName] = engine; //is that really the best way to add the engine functions?&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.registerEngine(&amp;quot;none&amp;quot;, function(state) {&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
 This function is a dummy transition (no animation, but changes it)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 called as:&lt;br /&gt;
&lt;br /&gt;
 tick() - advance one letter forward (unused)&lt;br /&gt;
&lt;br /&gt;
 tick(flase) - last tick before break&lt;br /&gt;
&lt;br /&gt;
 tick(true) - set up/first tick&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
                              if (!state) return true; //Shouldn't happen as null transition. normally can't do this&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state) {&lt;br /&gt;
&lt;br /&gt;
                              var newItem = this.bigList[this.listIndex].cloneNode(true); //true means deep&lt;br /&gt;
&lt;br /&gt;
                              this.tickerElm.replaceChild(newItem, this.tickerElm.lastChild);&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex++;&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex &amp;gt;= this.listLength ? this.listIndex = 0: true;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj, true);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 7000*cur_obj.speed*cur_obj.resetSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.registerEngine(&amp;quot;std&amp;quot;, function(state) {&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
 This function is a standard - 1 char at a time ticker&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 //this is not the greatest done tick function. In a paticular it expects a list formated&lt;br /&gt;
&lt;br /&gt;
 // a specific way, and does not handle exceptional conditions as it should&lt;br /&gt;
&lt;br /&gt;
 //this should be fixed later&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 called as:&lt;br /&gt;
&lt;br /&gt;
 tick() - advance one letter forward (unused)&lt;br /&gt;
&lt;br /&gt;
 tick(flase) - last tick before break&lt;br /&gt;
&lt;br /&gt;
 tick(true) - set up/first tick&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
                              if (state === false) {&lt;br /&gt;
&lt;br /&gt;
                              this.tickerElm.lastChild.firstChild.firstChild.data = this.fullItem.substring(0,this.charIndex); // kill ...&lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj, true);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 7000*cur_obj.speed*cur_obj.resetSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state === void 0) { //undefined as in normal tick&lt;br /&gt;
&lt;br /&gt;
                              if (this.charIndex === this.fullItem.length) {&lt;br /&gt;
&lt;br /&gt;
                              //if we're done&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj, false);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 60*cur_obj.speed*cur_obj.tickSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              return true;&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              this.charIndex++;&lt;br /&gt;
&lt;br /&gt;
                              this.tickerElm.lastChild.firstChild.firstChild.data = this.fullItem.substring(0,this.charIndex) + '...';&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 60*cur_obj.speed*cur_obj.tickSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              return true;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state) {&lt;br /&gt;
&lt;br /&gt;
                              var newItem = this.bigList[this.listIndex].cloneNode(true); //true means deep&lt;br /&gt;
&lt;br /&gt;
                              //This still doesn't handle exceptional situations as good as possible, but it won't indef loop or freeze&lt;br /&gt;
&lt;br /&gt;
                              if (newItem.firstChild.firstChild !== null) { //Link and then text&lt;br /&gt;
&lt;br /&gt;
                              this.fullItem = newItem.firstChild.firstChild.data;&lt;br /&gt;
&lt;br /&gt;
                              newItem.firstChild.firstChild.data = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                              } else if (newItem.firstChild !== null) { //just text&lt;br /&gt;
&lt;br /&gt;
                              this.fullItem = newItem.firstChild.data;&lt;br /&gt;
&lt;br /&gt;
                              newItem.replaceChild(document.createElement(&amp;quot;span&amp;quot;), newItem.firstChild);&lt;br /&gt;
&lt;br /&gt;
                              newItem.firstChild.appendChild(document.createTextNode(&amp;quot;&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
                              } else { //input confused script. send error message&lt;br /&gt;
&lt;br /&gt;
                              newitem.insertBefore(document.createElement(&amp;quot;strong&amp;quot;), null);&lt;br /&gt;
&lt;br /&gt;
                              newitem.firstChild.className = &amp;quot;error&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                              newitem.firstChild.appendChild(document.createTextNode(&amp;quot;Error: List item incorrectly formated for this ticker type. Please use unformatted text, or a single unformatted link (or otherwise one element deep).&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
                              this.fullItem = newItem.firstChild.firstChild.data;&lt;br /&gt;
&lt;br /&gt;
                              newItem.firstChild.firstChild.data = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              this.charIndex = 0;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              this.tickerElm.replaceChild(newItem, this.tickerElm.lastChild);&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex++;&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex &amp;gt;= this.listLength ? this.listIndex = 0: true;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj);&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.registerEngine(&amp;quot;fade&amp;quot;, function(state) {&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
 This function is a fade in effect&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 This is relies on Css3+MSIE extentions, and thus isn't all that cross browser compatible&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 called as:&lt;br /&gt;
&lt;br /&gt;
 tick() - advance one letter forward (unused)&lt;br /&gt;
&lt;br /&gt;
 tick(flase) - last tick before break&lt;br /&gt;
&lt;br /&gt;
 tick(true) - set up/first tick&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state === false) { //sleep&lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj, true);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 7000*cur_obj.speed*cur_obj.resetSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state === void 0) { //undefined as in normal tick&lt;br /&gt;
&lt;br /&gt;
                              if (this.charIndex === 100) {&lt;br /&gt;
&lt;br /&gt;
                              //if we're done&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj, false);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 40*cur_obj.speed*cur_obj.tickSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              return true;&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              this.charIndex++;&lt;br /&gt;
&lt;br /&gt;
                              Bawolff.setTrans(this.tickerElm.lastChild, this.charIndex/100);&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              var resF = function() {&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              var resD = 40*cur_obj.speed*cur_obj.tickSpeed;&lt;br /&gt;
&lt;br /&gt;
                              if (this.curState === &amp;quot;paused&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
                              this.resumeFunc = resF;&lt;br /&gt;
&lt;br /&gt;
                              this.resumeDelay = resD;&lt;br /&gt;
&lt;br /&gt;
                              } else { //assume &amp;quot;ok&amp;quot; but allow other states&lt;br /&gt;
&lt;br /&gt;
                              window.setTimeout(resF, resD);&lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              return true;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              if (state) {&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              this.charIndex = 0;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var newItem = this.bigList[this.listIndex].cloneNode(true); //true means deep&lt;br /&gt;
&lt;br /&gt;
                              Bawolff.setTrans(newItem, 0);&lt;br /&gt;
&lt;br /&gt;
                              (navigator &amp;amp;&amp;amp; navigator.appName === &amp;quot;Microsoft Internet Explorer&amp;quot;) ? newItem.style.display = 'inline-block' : true;&lt;br /&gt;
&lt;br /&gt;
                              this.tickerElm.replaceChild(newItem, this.tickerElm.lastChild);&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex++;&lt;br /&gt;
&lt;br /&gt;
                              this.listIndex &amp;gt;= this.listLength ? this.listIndex = 0: true;&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              var cur_obj = this; //needed, as otherwise executes in context of window&lt;br /&gt;
&lt;br /&gt;
                              cur_obj[Bawolff.Ticker.eng[cur_obj.engineNumb]].call(cur_obj);&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              }&lt;br /&gt;
&lt;br /&gt;
                              &lt;br /&gt;
&lt;br /&gt;
                              });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*Not really used. To make all pause call Bawolff.Ticker.allDo(&amp;quot;pause&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
 Bawolff.Ticker.allDo =  function (func) {&lt;br /&gt;
&lt;br /&gt;
 var l = Bawolff.Ticker.allTickers.length;&lt;br /&gt;
&lt;br /&gt;
 for (var i=0;i&amp;lt;l;i++) {&lt;br /&gt;
&lt;br /&gt;
 Bawolff.Ticker.allTickers[i][func]();&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.allDoPause =  function () {&lt;br /&gt;
&lt;br /&gt;
    var l = Bawolff.Ticker.allTickers.length;&lt;br /&gt;
&lt;br /&gt;
    for (var i=0;i&amp;lt;l;i++) {&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].pause();&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.allDoRestart =  function () {&lt;br /&gt;
&lt;br /&gt;
    var l = Bawolff.Ticker.allTickers.length;&lt;br /&gt;
&lt;br /&gt;
    for (var i=0;i&amp;lt;l;i++) {&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].restart();&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.setTrans = function(elm, opacity/*1 being full visible, 0 being invisible*/) {&lt;br /&gt;
&lt;br /&gt;
    if (!Bawolff.setTrans.opacityMethod) {&lt;br /&gt;
&lt;br /&gt;
        //standard way (CSS3)&lt;br /&gt;
&lt;br /&gt;
        if (elm.style &amp;amp;&amp;amp; (typeof elm.style.opacity != &amp;quot;undefined&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
            Bawolff.setTrans.opacityMethod = 1;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        else if (elm.style &amp;amp;&amp;amp; (typeof elm.style.MozOpacity != &amp;quot;undefined&amp;quot;)) { //old moz&lt;br /&gt;
&lt;br /&gt;
            Bawolff.setTrans.opacityMethod = 2;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        else if (elm.style &amp;amp;&amp;amp; (typeof elm.style.filter != &amp;quot;undefined&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
            Bawolff.setTrans.opacityMethod = 3;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        else {&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
&lt;br /&gt;
            //throw new Error(&amp;quot;opacity is not supported on this platform (or this script needs to be fixed to include support on your platform&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    switch (Bawolff.setTrans.opacityMethod) {&lt;br /&gt;
&lt;br /&gt;
        case 1:&lt;br /&gt;
&lt;br /&gt;
            elm.style.opacity = opacity;&lt;br /&gt;
&lt;br /&gt;
            break;&lt;br /&gt;
&lt;br /&gt;
        case 2:&lt;br /&gt;
&lt;br /&gt;
            elm.style.MozOpacity = opacity;&lt;br /&gt;
&lt;br /&gt;
            break;&lt;br /&gt;
&lt;br /&gt;
        case 3:&lt;br /&gt;
&lt;br /&gt;
            elm.style.filter = &amp;quot;alpha(opacity=&amp;quot; + opacity*100 + &amp;quot;)&amp;quot;; //No guarantees this works&lt;br /&gt;
&lt;br /&gt;
            break;&lt;br /&gt;
&lt;br /&gt;
        default:&lt;br /&gt;
&lt;br /&gt;
            //do nothing, so other browsers not inconvianced&lt;br /&gt;
&lt;br /&gt;
            break;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.init = function () {&lt;br /&gt;
&lt;br /&gt;
    //handled elsewhere if (!document.getElementById(&amp;quot;enableTickers&amp;quot;)) return false; //Bcause getting all elements by class is expensive&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var tickerList = getElementsByClassName(document.body, &amp;quot;div&amp;quot;, &amp;quot;isATicker&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var l = tickerList.length;&lt;br /&gt;
&lt;br /&gt;
    var i = 0; //index of which ticker we are on.&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    Bawolff.Ticker.allTickers = [];&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    if (document.getElementById(&amp;quot;singleTickerForPage&amp;quot;)) { //for simplifications. if only one on page&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i] = new Bawolff.Ticker;&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].elm = document.getElementById(&amp;quot;singleTickerForPage&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].arg = document.getElementById(&amp;quot;singleTickerForPage&amp;quot;).className;&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].setUp();&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].start();&lt;br /&gt;
&lt;br /&gt;
        i++;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    for (;i&amp;lt;l;i++) {&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i] = new Bawolff.Ticker;&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].elm = tickerList[i];&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].arg = tickerList[i].className;&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].setUp();&lt;br /&gt;
&lt;br /&gt;
        Bawolff.Ticker.allTickers[i].start();&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    if (!(navigator &amp;amp;&amp;amp; navigator.appName === &amp;quot;Microsoft Internet Explorer&amp;quot;)) {&lt;br /&gt;
&lt;br /&gt;
        //blur sometimes fires too much on MSIE and makes things not work&lt;br /&gt;
&lt;br /&gt;
        hookEvent('blur', Bawolff.Ticker.allDoPause);//stop anim on loss of focus, and restart it on gain of focus. hookEvent from wikibits&lt;br /&gt;
&lt;br /&gt;
        hookEvent('focus', Bawolff.Ticker.allDoRestart);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Bawolff.Ticker.init(); //already from a load event&lt;/div&gt;</summary>
		<author><name>Arthur</name></author>
	</entry>
</feed>