//--------------------------------------------------------------------------------------------------------------
// CVars
//--------------------------------------------------------------------------------------------------------------

var newsticker=new Object()

newsticker.createCVars=function() {
	this.strDir					=	'left';  // Laufrichtung(up,down,left,right)
	this.strDelimiter			=	' + + + ';  // Delimiter zwischen den einzelnen News(nur bei left/right)
	this.intInterval 			=	10;  // Interval in ms
	this.blnStopHover		=	true;  // Stop bei mouseover?true:false
	this.intRepeat   			=	1;  // Falls Leeraum zwischen News...hier Wert erhoehen...minimum:1
	this.strBorder   			=	'1px solid #818181';	// Rahmen
	this.strWhiteSpace		=	'white-space:nowrap;'; // nowrap
	this.intWidth    			=	500; // Breite
	this.intHeight   			=	21; // Höhe
	this.intTextBuffer		=	25 // +/- Text start Toleranz
	this.intPadding  			=	2; // Abstand Rahmen->Inhalt
	this.strBgc      			=	'#515151'; // Background-color
	this.strTxtc     			=	'#ffffff'; // Text-color
	this.strAlign    			=	'left'; // Textausrichtung
	this.intStep				=	1;  // Schritt pro Durchlauf(px)
	this.intPos					=	0;
	this.tNews 				= new Array();	
	
}

newsticker.cvars = new newsticker.createCVars();

newsticker.initTicker=function(	_strDir, 
											_strDelimiter,
											_intInterval,
											_blnStopHover,
											_strBorder,
											_intWidth,
											_intTextBuffer,
											_intPadding,
											_strBgc,
											_strTxtc,
											_strAlign,
											_blnWhiteSpace
										) {

	newsticker.cvars.strDir				=	_strDir;  // Laufrichtung(up,down,left,right)
	newsticker.cvars.strDelimiter		=	_strDelimiter;  // Delimiter zwischen den einzelnen News(nur bei left/right)
	newsticker.cvars.intInterval 		=	_intInterval;  // Interval in ms
	newsticker.cvars.blnStopHover	=	_blnStopHover;  // Stop bei mouseover?true:false
	newsticker.cvars.strBorder   		=	_strBorder;	// Rahmen
	newsticker.cvars.intWidth    		=	_intWidth; // Breite
	newsticker.cvars.intTextBuffer	=	_intTextBuffer; // +/- Text start Toleranz
	newsticker.cvars.intPadding  		=	_intPadding; // Abstand Rahmen->Inhalt
	newsticker.cvars.strBgc      		=	_strBgc; // Background-color
	newsticker.cvars.strTxtc     		=	_strTxtc; // Text-color
	newsticker.cvars.strAlign    		=	_strAlign; // Textausrichtung
	newsticker.cvars.strWhiteSpace =  (_blnWhiteSpace) ? newsticker.cvars.strWhiteSpace : '';
}

newsticker.addNews=function(text) {
	newsticker.cvars.tNews.push(text);
}

newsticker.changeDirection=function(to) {
	IE=document.all&&!window.opera;
	objTicker=(IE)?document.all.newsticker:document.getElementById('newsticker');
	
	switch(to) {
		case 'left': case 'right':		
			objTicker.style['top'] = 0;
			newsticker.cvars.strDir = to;
			break;
		case 'down': case 'up':
			//objTicker.style['top'] = 0;
			newsticker.cvars.strDir = to;
			break;
	}
}

newsticker.printTicker=function() {
	/* * * * * * * * * * * * * * * * * * D E R  T I C K E R * * * * * * * * * * * * * * * * * * * * * */
	//IE ab V4?
	IE=document.all&&!window.opera;
	//DOM-Browser(ausser IE)
	DOM=document.getElementById&&!IE;


	//läuft ab IE4 und in DOM-Browsern
	if (DOM||IE) {
	    //Ermitteln, ob Ticker horizontal oder vertikal laufen soll
	    blnDir=(newsticker.cvars.strDir=='up'||newsticker.cvars.strDir=='down') ? true : false;

	    //Bei horizontalem Ticker wird ein nobr-, ansonsten ein div-Tag verwendet
	    strNobr=(blnDir)?'div':'nobr';

	    //Trennzeichen zwischen den Einzelnen Eintraegen
	    //bei horizontalem Ticker gemäss Angabe in Variale strDelimiter
	    //Ansonsten Zeilenumbrueche
	    newsticker.cvars.strDelimiter=(blnDir)?'<br><br>':newsticker.cvars.strDelimiter;

	    //String fuer Textausrichtung bei vertikalem Ticker
	    newsticker.cvars.strAlign=(blnDir)?'text-align:'+newsticker.cvars.strAlign+';':'';

	    //Variable zum Speichern des Intervals
	    var objGo;

	    //String erzeugen fuer JS-Code, falls Ticker beim mouseover stoppen soll
	    strStopHover=(newsticker.cvars.blnStopHover)?'onmouseover="clearInterval(objGo)"onmouseout="objGo=setInterval(\'newsticker.DM_ticken()\','+newsticker.cvars.intInterval+')"':'';

	    //Tickertext zu String zusammenfuegen
	    strText=(blnDir)?newsticker.cvars.tNews.join(newsticker.cvars.strDelimiter)+newsticker.cvars.strDelimiter:newsticker.cvars.tNews.join(newsticker.cvars.strDelimiter)+newsticker.cvars.strDelimiter;
	    strNews=strText;
	    for (i=1;i<newsticker.cvars.intRepeat;++i) {
	      strNews+=strText;
	    }

		//Variable zum Speichern der Position
		switch(newsticker.cvars.strDir) {
		  case 'right':
			newsticker.cvars.intPos=-newsticker.cvars.intTextBuffer;
			break;
		  case 'left':
			newsticker.cvars.intPos=newsticker.cvars.intWidth+newsticker.cvars.intTextBuffer;
			break;
		  case 'top':
			newsticker.cvars.intPos=0;
			break;
		  case 'bottom':
			newsticker.cvars.intPos=0;
			break;
		}
	    

	    //TickerCode zu String zusammenfuegen
	    strTicker='<div style="position: relative; '+newsticker.cvars.strAlign+'overflow:hidden;background-color:'+newsticker.cvars.strBgc+
	                    ';border:'+newsticker.cvars.strBorder+';width:'+newsticker.cvars.intWidth+'px;height:'+newsticker.cvars.intHeight+'px;padding:'+newsticker.cvars.intPadding+
	                    'px;overflow:hidden"><'+strNobr+'><div id="newsticker" style="position:relative;color:'+newsticker.cvars.strTxtc+';'+
	                    ';"'+strStopHover+'><table border="0"><tr><td id="newstickerTD" style="color:'+newsticker.cvars.strTxtc+';'+newsticker.cvars.strWhiteSpace+'">'+strNews+'</td></tr></table></div></'+strNobr+'></div>';

	    //TickerCode im Dokument ausgeben
	    document.write(strTicker);
	}
}

newsticker.DM_ticken=function() {
	if (DOM||IE) {
		   //Ticker-Objekt je nach Browser ermitteln
	       objTicker=(IE)?document.all.newsticker:document.getElementById('newsticker');
		   objTickerTD=(IE)?document.all.newstickerTD:document.getElementById('newstickerTD');
		   
		   //alert(objTickerTD.offsetWidth);
		   
		   //alert(objTicker.offsetWidth);
	       //Array fuer zu manipulierende Eigenschaften des Tickers je nach Richtung
	       //Richtung=new Array(Pixelwert zur Aenderung der Position,Breite/Höhe des Tickers,zu andernder Positionswert);
	       arrDir=new Array();
	       arrDir['up']		= new Array(-1,objTicker.offsetHeight,'top');
	       arrDir['down']	= new Array(1,objTicker.offsetHeight,'top');
	       arrDir['left']  	= new Array(-1,objTickerTD.offsetWidth,'left');
	       arrDir['right'] 	= new Array(1,objTickerTD.offsetWidth,'left');

	       //Ermitteln von Breite bzw. Höhe der anzuzeigenden Items
	       dblOffset=arrDir[newsticker.cvars.strDir][1]/newsticker.cvars.intRepeat;
		   
	   
	       //Neuen Positionswert ermitteln
	       switch(newsticker.cvars.strDir) {
	        case 'right':
				newsticker.cvars.intPos=(newsticker.cvars.intPos>(newsticker.cvars.intWidth+newsticker.cvars.intTextBuffer))?-(objTickerTD.offsetWidth+newsticker.cvars.intTextBuffer):newsticker.cvars.intPos;
				break;
	        case 'left':
				newsticker.cvars.intPos=(Math.abs(newsticker.cvars.intPos)>dblOffset)?(newsticker.cvars.intWidth+newsticker.cvars.intTextBuffer):newsticker.cvars.intPos;
				break;
	        case 'up':
	            newsticker.cvars.intPos=(Math.abs(newsticker.cvars.intPos)>(newsticker.cvars.intHeight+newsticker.cvars.intTextBuffer))?(objTickerTD.offsetHeight+newsticker.cvars.intTextBuffer):newsticker.cvars.intPos;
				break;
	        case 'down':
	            newsticker.cvars.intPos=(newsticker.cvars.intPos>(newsticker.cvars.intHeight+newsticker.cvars.intTextBuffer))?-(objTickerTD.offsetHeight+newsticker.cvars.intTextBuffer):newsticker.cvars.intPos;
				break;
	        }
			
	       //Neuen Positionswert zuweisen
	       objTicker.style[arrDir[newsticker.cvars.strDir][2]]=newsticker.cvars.intPos + "px";

	       //Positionswert hoch/heruntersetzen
	       newsticker.cvars.intPos+=newsticker.cvars.intStep*arrDir[newsticker.cvars.strDir][0];
	}
}
