/*

+-------------------------------------------------------------------+

|                     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 = "#FFF0E0";                       // 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:2px;">' +

			tickerEntries[i] + ((tickerEntries.length > 1) ? '<div class="dmnt_tickerDivider"' + (orientation=='horizontal' ? 'style = "float: right"' : '') + '>' + tickerSpacer + '</div>' : '') +

			'</div>');

	}

	objScroll += ('</div></div>');

	document.getElementById("tickerspace").innerHTML = objScroll;

	tickerInit();

}



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





window.onresize = tickerReload;

//window.onload = buildTicker;
