//*********************************************************************************************
//***                          Nemint Text-Scroller v1.1                                    ***
//***                 2004 Nemint, New Media Interactiv www.nemint.de                       ***
//***       Für private Nutzung kostenlos einsetzbar, solange dieser Kopfbereich            ***
//***                           unverändert erhalten bleibt                                 ***
//***     Für eine gewerbliche Nutzung setzen Sie sich bitte mit uns in Verbindung          ***
//*********************************************************************************************
var nemintScroller_objects = new Array();
//window.onresize = nemintScrollerGetPosition;
window.onload = nemintScrollerStart;

function nemintScrollerStart() {
	for (i=0;i<nemintScroller_objects.length;i++) {
		if(nemintScroller_objects[i]) {
			obj = nemintScroller_objects[i]['name'];
			if(obj) {
				obj.update();
			}
		}
	}
}

function nemintScrollerGetPosition() {
	for (i=0;i<nemintScroller_objects.length;i++) {
		if(nemintScroller_objects[i]) {
			obj = nemintScroller_objects[i]['name'];
			if(obj) {
				obj.index = 0;
				obj.getPosition();
			}
		}
	}
}

function nemintScroller() {
	this.scrollLeft		= 1;
	this.scrollingText	= '';
	this.scrollingSpeed	= 10;
	this.scrollingSpeedUp	= 2;
	this.scrollerObjName	= '';
	this.stopScrollingOnMouseover = 1;
	this.heightTicker	= 20;
	this.widthTicker		= 400;
	this.marginTop		= 0;
	this.marginLeft		= 0;
	this.stopScrollingOnMouseover = 1;

	this.finetuningLeft	= 0;
	this.finetuningTop	= 0;

	this.bgcolor		= 'yellow';
	this.border		= '';
	this.bordercolor		= '';
	this.borderstyle		= 'solid';

	this.tmp		= '';
	this.i			= 0;
	this.i2			= 0;
	this.i3			= 0;
	this.index		= 0;
	this.positionTop	= 0;
	this.positionLeft	= 0;
	this.positionTopTicker	= 0;
	this.positionLeftTicker	= 0;

	this.realTickerText		= '';

	this.scrolling		= 1;
	this.heightRealTicker	= 20;
	this.widthRealTicker	= 400;
	this.endMarkerTop	= -50000;
	this.endMarkerLeft	= -50000;
	var zeit = new Date();
	var ms = Date.parse(zeit);
	this.info			= "infobereich";
	this.info2			= "infobereich2";
	this.elTicker			= "ticker" + Math.random();
	this.elTickerID			= "tickerID" + Math.random();
	this.elTickerInnen		= "tickerInnen" + Math.random();
	this.elTickerInnenText		= "tickerInnenText" + Math.random();
	this.elTickerInnenEnde		= "tickerInnenEnde" + Math.random();
	this.elTickerInnenAnfang	= "tickerInnenAnfang" + Math.random();
	this.elTicker			= this.elTicker.replace(/\W/ig,'');
	this.elTickerInnen		= this.elTickerInnen.replace(/\W/ig,'');
	this.elTickerInnenText		= this.elTickerInnenText.replace(/\W/ig,'');
	this.elTickerInnenEnde		= this.elTickerInnenEnde.replace(/\W/ig,'');
	this.elTickerInnenAnfang	= this.elTickerInnenAnfang.replace(/\W/ig,'');
	return this;
}

nemintScroller.prototype.Start = function(name) {
	if(document.getElementById) {
		this.heightRealTicker = parseInt(this.heightTicker - (this.marginTop * 2));
		this.widthRealTicker  = parseInt(this.widthTicker - (this.marginLeft * 2));

		var tickerout = '';
		tickerout = tickerout + '<div id="' + this.elTicker + '" style=\"';
		if(this.border != '' && this.border != '0') {
			tickerout = tickerout + 'border: ' + this.border + 'px ' + this.borderstyle + '; ';
			if(this.bordercolor != '') {
				tickerout = tickerout + 'border-color: ' + this.bordercolor + '; ';
			}
		}
		if(this.bgcolor != '') {
			tickerout = tickerout + 'background-color: ' + this.bgcolor + '; ';
		}
		tickerout = tickerout + 'height:' + this.heightTicker + 'px; width: ' + this.widthTicker + 'px;">\n\n';

		tickerout = tickerout + '\n<div id="' + this.elTickerInnen + '" style="height:' + this.heightRealTicker + 'px; width: ' + this.widthRealTicker + 'px;">\n\n';

		if(this.scrollLeft == 1) {
			tickerout = tickerout + '<span style="white-space: nowrap;"><img src="/gfx/blank.gif" id="' + this.elTickerInnenAnfang + '" style="height: 1px; width: ' + this.widthTicker + 'px;" width="' + this.widthTicker + '" />' + this.scrollingText + '<span id="' + this.elTickerInnenEnde + '">&nbsp;</span></span>';
		}
		else {
			tickerout = tickerout + '<img src="/gfx/blank.gif" id="' + this.elTickerInnenAnfang + '" style="height: ' + this.heightTicker + 'px; width: 1px;" height="' + this.heightTicker + '" /><br />' + this.scrollingText + '<br /><span id="' + this.elTickerInnenEnde + '">&nbsp;</span>';
		}

		tickerout = tickerout + '\n</div>\n</div>';
		document.write(tickerout);
		document.write('<div style=\"height:' + this.heightTicker + 'px; width: ' + this.widthTicker + 'px;">\n\n</div>');

		this.positionTopTicker =  this.absTop(document.getElementById(this.elTicker));
		this.positionLeftTicker = this.absLeft(document.getElementById(this.elTicker));

		document.getElementById(this.elTicker).style.position = "absolute";
		document.getElementById(this.elTicker).style.overflow = "hidden";
		document.getElementById(this.elTickerInnen).style.position = "absolute";
		document.getElementById(this.elTicker).style.overflow = "hidden";
		document.getElementById(this.elTickerInnen).style.top = this.marginTop + "px";
		document.getElementById(this.elTickerInnen).style.left = this.marginLeft + "px";

		var obj = this;
		if(this.stopScrollingOnMouseover == 1) {
			document.getElementById(this.elTickerInnen).onmouseover = function() {
										obj.scrolling = 0;
										return false;
										};
			document.getElementById(this.elTickerInnen).onmouseout = function() {
										obj.scrolling = 1;
										return false;
										};
		}
		this.scrollerObjName	= name;
		objCount = nemintScroller_objects.length;
		nemintScroller_objects[objCount] = new Array();
		nemintScroller_objects[objCount]['name'] = this;
		nemintScroller_objects[objCount]['realname'] = name;
		nemintScroller_objects[objCount]['speed'] = this.scrollingSpeed;
		nemintScroller_objects[objCount]['last'] = 0;
	}
	else {
		//todo for old browsers, perhaps ???
	}
}


nemintScroller.prototype.update = function(newticker) {
	if(this.scrollLeft != 0 && this.scrolling == 1) {
		this.scrollLeftFunc();
	}
	else if(this.scrolling == 1) {
		this.scrollTopFunc();
	}
	window.setTimeout(this.scrollerObjName + ".update()", this.scrollingSpeed);
}

nemintScroller.prototype.scrollLeftFunc = function() {
	this.index = parseInt(this.index - 1 * this.scrollingSpeedUp);
	this.i = this.index;

	var endMarkerLeftTemp = this.endMarkerLeft + this.i;

	if(endMarkerLeftTemp <= this.positionLeftTicker) {
		this.index = 0;
		this.index--;
		this.i = 0;
		this.i--;
		this.getPosition();
	}

	document.getElementById(this.elTickerInnen).style.left = this.i + "px";
}

nemintScroller.prototype.scrollTopFunc = function() {
	this.index = parseInt(this.index - 1 * this.scrollingSpeedUp);
	this.i = this.index;

	var endMarkerTopTemp = this.endMarkerTop + this.i;

	if(endMarkerTopTemp < this.positionTopTicker) {
		this.index = 0;
		this.index--;
		this.i = 0;
		this.i--;
		this.getPosition();
	}

	document.getElementById(this.elTickerInnen).style.top = this.i + "px";
}

nemintScroller.prototype.getPosition = function() {
	this.positionTopTicker =  parseInt(this.absTop(document.getElementById(this.elTicker)));
	this.positionLeftTicker = parseInt(this.absLeft(document.getElementById(this.elTicker)));
	this.endMarkerTop  = this.absTop(document.getElementById(this.elTickerInnenEnde));
	this.endMarkerLeft = this.absLeft(document.getElementById(this.elTickerInnenEnde));
}

nemintScroller.prototype.absLeft = function(el) {
	if(el) {
		return (el.offsetParent)?
		el.offsetLeft+this.absLeft(el.offsetParent) : el.offsetLeft;
	}
	else return 0;
}

nemintScroller.prototype.absTop = function(el) {
	if(el) {
		return (el.offsetParent)?
		el.offsetTop+this.absTop(el.offsetParent) : el.offsetTop;
	}
	else return 0;
}
