// Config
var tickerSpeed = 1;
var tickerDelay = 100;
var tickerFile = '/cms/ticker.txt';


// IE FIX: XMLHttpRequest
var __IEAJAXPLUGIN = null;
if ( window.ActiveXObject ) {
    if ( (typeof XMLHttpRequest=='undefined') || (!XMLHttpRequest) ) {
         __IEPLUGINS = [ "MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];

        function findActiveXPlugin ( pluginList ) {
		var found = false; 
                for (var i=0; i < pluginList.length  && !found; i++) {
			try {
				var obj = new ActiveXObject( pluginList[i] );
				var pluginName = pluginList[i];
				found = true;
			} catch ( pluginException) { };
		}

		if ( !found ) {
			throw "Could not find suitable ActiveX plugin";
			return null;
		}
		return pluginName;
	};

	__IEAJAXPLUGIN = findActiveXPlugin( __IEPLUGINS );
 	}
 }


var tickerText, tickerEl, tickerBodyEl, tickerTemp, 
    tickerHeight, tickerBodyHeight, tickerPos,
    tickerDelta = tickerSpeed,
    tickerInited = false;

function tickerLoad() {
    var client, uri;

    try {
        client = new XMLHttpRequest();
    } catch (e) {
        client = new ActiveXObject( __IEAJAXPLUGIN );
    }

    uri = window.location.protocol + '//' + window.location.host + tickerFile;
    client.open( 'GET', uri, false );
    client.send( null );

    if ( (client.readyState == 4) && (client.status == 200) ) {
        tickerText = client.responseText;
	tickerInit();
    }
}

function tickerInit() {
// tickerText insertion into DIV

    tickerEl = document.getElementById( 'ticker' );
    tickerHeight = tickerEl.offsetHeight;
    
    tickerBodyEl = document.getElementById( 'tickerBody' );
    var style = tickerBodyEl.style;
    style.visibility = 'hidden';
    tickerBodyEl.innerHTML = tickerText;


    // event listeners
    if ( tickerEl.addEventListener ) {
        tickerEl.addEventListener( 'mouseover', tickerPause, false );
	tickerEl.addEventListener( 'mouseout', tickerResume, false );
    } else if ( tickerEl.attachEvent ) {
        tickerEl.attachEvent( 'onmouseover', tickerPause );
	tickerEl.attachEvent( 'onmouseout', tickerResume );
    } else {
        tickerEl.onmouseover = tickerPause;
	tickerEl.onmouseout = tickerResume;
    }

    // scroll pane workaroung
    tickerTemp = document.createElement( 'div' );
    var style2 = tickerTemp.style;
    style2.position = 'absolute';
    style2.top = '-10000px';
    style2.left = '-10000px';
    style2.visibility = 'hidden';
    tickerTemp.innerHTML = tickerBodyEl.innerHTML;
    tickerEl.appendChild( tickerTemp );

    tickerBodyHeight = tickerTemp.offsetHeight;

    tickerStart();
}

function tickerStart() {
    tickerPos = tickerHeight;
    tickerBodyEl.style.top = tickerPos + 'px';

    if ( !tickerInited ) {
        tickerBodyEl.style.visibility = 'visible';
	tickerInited = true;
    }

    tickerTick();

}

function tickerTick() {
    tickerPos -= tickerDelta;

    if ( -tickerPos < tickerBodyHeight ) {
        tickerBodyEl.style.top = tickerPos + 'px';
	window.setTimeout( "tickerTick();", tickerDelay );
    } else {
        tickerStart();
    }
}

function tickerPause() {
    tickerDelta = 0;
}

function tickerResume() {
    tickerDelta = tickerSpeed;
}


addOnLoad( tickerLoad );
