/*
+-------------------------------------------------------------------+
|                     J S - T I C K E R   (v1.5)                    |
|                                                                   |
| Copyright Gerd Tentler                www.gerd-tentler.de/tools   |
| Created: Oct. 20, 2004                Last modified: Nov. 6, 2009 |
+-------------------------------------------------------------------+
| This program may be used and hosted free of charge by anyone for  |
| personal purpose as long as this copyright notice remains intact. |
|                                                                   |
| Obtain permission before selling the code for this program or     |
| hosting this software on a commercial website or redistributing   |
| this software over the Internet or in any other medium. In all    |
| cases copyright must remain intact.                               |
+-------------------------------------------------------------------+

+-------------------------------------------------------------------+
|																	|
| Code modified by Johann Allgäuer with the permission of 			|
| Gerd Tentler, for use in the TYPO3 Extension datamints_newsticker |
|																	|
+-------------------------------------------------------------------+

*/
//---------------------------------------------------------------------------------------------------------
// Ticker entries
//---------------------------------------------------------------------------------------------------------
linked_article = new Array();

for (x in Article) {
	//Link the Articles from the Given array
	//Article[x][3] is the Thumbnail Image
	linked_article[x] = '<a class="' + link_cssClass + '" href="' + Article[x][1] + '" target="' + Article[x][2] + '" >' +
							Article[x][3] + '<span class="dmnt_newstitle">' + Article[x][0] + '</span>' +
							(Article[x][4] ? (subtitleDivider ? '<div class="dmnt_subtitledivider" ' + (orientation=='horizontal' ? 'style = "display: inline;"' : '') + '>' + subtitleDivider +'</div>' : '') + '<span class="dmnt_newssubtitle">' + Article[x][4] + '</span>' : "") +
						'</a>';
}
var tickerEntries = linked_article;

//---------------------------------------------------------------------------------------------------------
// Configuration
//---------------------------------------------------------------------------------------------------------
var orientation = orientation.toLowerCase();		 // wheter the newsticker moves vertical or horizontal
var tickerWidth = objScrollWidth;                    // width (in px)
var tickerHeight = objScrollHeight;					 // height (in px)

var stopScroll = stopScroll;						 // If stopscroll is true, then ticker gets paused at mouseover
var tickerPause = ticker_pause;						 // time the ticker pauses each element (if defined)
var tickerDelay = 100 - speed;                       // scrolling delay
var tickerSpacer = objScrollDivider;                 // spacer between ticker entries

var tickerBGImage = bg_image;						 // background image
var tickerBGColor = backColour;                      // background color
var tickerHLColor = "#cfcfcf";                       // hilight (mouse over) color

var textAlignment = textAlignment;					 // text align (left; center; right; justify), makes only a difference if orientation = vertical

var tickerBorderWidth = borderWidth;                 // border width (pixels)
var tickerBorderStyle = "solid";                     // border style (CSS-spec)
var tickerBorderColor = borderColour;                // border color

//---------------------------------------------------------------------------------------------------------
// Functions
//---------------------------------------------------------------------------------------------------------

//var tickerHeight = tickerFontSize + 8;
var DOM = document.getElementById;
var IE4 = document.all;

var tickerIV, tickerID;
var tickerTimeout = "";
var tickerItems = new Array();


function tickerGetObj(id) {
	if(DOM) return document.getElementById(id);
	else if(IE4) return document.all[id];
	else return false;
}

function tickerObject(id) {
	this.elem = tickerGetObj(id);
	this.css = this.elem.style;
	if (orientation.toLowerCase() == "horizontal") {
		this.x = tickerWidth;
		this.width = this.elem.offsetWidth;
		this.css.width = this.width + 'px';
		this.css.left = this.x + 'px';
	}
	else {
		this.height = this.elem.offsetHeight;
		this.y = tickerHeight;
		this.css.height = this.height + 'px';
		this.css.top = this.y + 'px';
	}
	this.move = false;
	return this;
}

function tickerNext() {
	if(!DOM && !IE4) return;
	var obj = tickerItems[tickerID];
	if (orientation.toLowerCase() == "horizontal") {
		if(!obj.move) {
			obj.x = tickerWidth;
			obj.css.left = tickerWidth + 'px';
			obj.move = true;
		}
	}
	else {
		if(!obj.move) {
			obj.y = tickerHeight;
			obj.css.top = tickerHeight + 'px';
			obj.move = true;
		}
	}

}

function tickerMove() {
	if(!DOM && !IE4) return;
	if (orientation.toLowerCase() == "horizontal") {
		for(var i = 0; i < tickerItems.length; i++) {
			if(tickerPause) {
				if(tickerItems[i].x == 0) {
						tickerStop(1);
				}
			}
			if(tickerItems[i].move) {
				if(tickerItems[i].x > -tickerItems[i].width) {
					tickerItems[i].x -= 2;
					tickerItems[i].css.left = tickerItems[i].x + 'px';
				}
				else tickerItems[i].move = false;
			}
		}
		if(tickerItems[tickerID].x + tickerItems[tickerID].width <= tickerWidth) {
			tickerID++;
			if(tickerID >= tickerItems.length) tickerID = 0;
			tickerNext();
		}
	}
	else {
		for(var i = 0; i < tickerItems.length; i++) {
			if(tickerPause) {
				if(tickerItems[i].y == 0) { //TODO: TEST
						tickerStop(1);
				}
			}
			if(tickerItems[i].move) {
				if(tickerItems[i].y > -tickerItems[i].height) {
					tickerItems[i].y -= 2;
					tickerItems[i].css.top = tickerItems[i].y + 'px';
				}
				else {
					tickerItems[i].move = false;
				}
			}
		}

		if(tickerItems[tickerID].y + tickerItems[tickerID].height <= tickerHeight) {
			tickerID++;
			if(tickerID >= tickerItems.length) tickerID = 0;
			tickerNext();
		}
	}
}

function tickerStart(init) {
	if(!DOM && !IE4) return;
	var obj = tickerGetObj('divTicker');
	if(tickerBGColor) {
		obj.style.backgroundColor = tickerBGColor;
	}
	if(init) {
		tickerID = 0;
		tickerNext();
	}
	tickerIV = setInterval('tickerMove()', tickerDelay);
}

function tickerStop(isTickerPause) {
	if(!DOM && !IE4) return;
	clearInterval(tickerIV);
	if(isTickerPause) {
		tickerTimeout = setTimeout("tickerStart()", tickerPause);
		return;
	}
	else {
		if(tickerHLColor) {
			var obj = tickerGetObj('divTicker');
			obj.style.backgroundColor = tickerHLColor;
		}
	}
}

function tickerInit() {
	if(!DOM && !IE4) return;
	for(var i = 0; i < tickerEntries.length; i++) {
		tickerItems[i] = new tickerObject('divTickerEntry' + (i+1));
	}
	var obj = tickerGetObj('divTicker');
	obj.style.width = tickerWidth + 'px';
	obj.style.height = tickerHeight + 'px';
	obj.style.visibility = 'visible';
	tickerStart(true);
}

function tickerReload() {
	if(!DOM && !IE4) return;
	document.location.reload();
}


//---------------------------------------------------------------------------------------------------------
// Build ticker
//---------------------------------------------------------------------------------------------------------


function buildTicker() {
	if (Article=='') {
		return false;
	}
	//CSS
	document.write(
		'<style type="text/css"> ' +
		'#divTicker { ' +
			(tickerBGImage ? 'background-image: url(' + tickerBGImage + ');' : '') +
			'position: absolute; ' +
			'height: ' + tickerHeight + 'px; ' +
			'width: ' + tickerWidth + 'px; ' +
			'overflow: hidden; ' +
			'visibility: hidden; ' +
			(tickerBorderWidth ? 'border-width: ' + tickerBorderWidth + 'px; ' : '') +
			(tickerBorderStyle ? 'border-style: ' + tickerBorderStyle + '; ' : '') +
			(tickerBorderColor ? 'border-color: ' + tickerBorderColor + '; ' : '') +
		'} ' +
		'.cssTickerContainer { ' +
			'position: relative; ' +
			'height: ' + tickerHeight + 'px; ' +
			'width: ' + tickerWidth + 'px; ' +
		'} ' +
		'.cssTickerEntry { ' +
			(orientation == "vertical" ? 'width: 100%; text-align: ' + textAlignment + ';' : '') +
		'} ' +
		'.cssTickerEntry img { ' +
			'display: block;' +
			(orientation == "vertical" ? 'margin: auto;' : 'float: left;') +
		'} ' +
		'</style>'
	);

	objScroll = ('<div class="cssTickerContainer">' +
		'<div id="divTicker" onMouseOver="' + (stopScroll ? 'tickerStop(0); clearTimeout(tickerTimeout);"' : '') + '" onMouseOut="' + (stopScroll ? 'tickerStart();' : '') + '">');

	for(var i = 0; i < tickerEntries.length; i++) {
		objScroll += ('<div id="divTickerEntry' + (i+1) + '" class="cssTickerEntry" ' +
			'style="position:absolute; top:3px;">' +
//			tickerEntries[i] + ((tickerEntries.length > 1) ? '<div class="dmnt_tickerDivider"' + (orientation=='horizontal' ? ' style = "float: right"' : '') + '>' + tickerSpacer + '</div>' : '') +
			tickerEntries[i] + ( ( tickerEntries.length > 1 ) ? tickerSpacer : '' ) + '</div>');
//			'</div>');
	}
	objScroll += ('</div></div>');
	document.getElementById("tickerspace").innerHTML = objScroll;
	tickerInit();
}

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


//window.onresize = tickerReload;
//window.onload = buildTicker;