var tkDir = 'h';		//h=horizontal, v=vertical
var tkLines = 1;		//Anz. Zeilen
var tkStep = 1;			//Pixels to scroll per tick
var tkDelay = 20;		//Pause zwischen ticks
var tkPauseDelay = 2000;	//Stehenbleiben-Zeit
var tkTimeInterval = false;
var tkTimeVals='';
var tkMessageArr;

var tkMessageHeight;
var tkTick;
var tkText1;
var tkText2;
var tkFrame;
var tkTimeout;
var tkTickCount = 0;
var tkMessageWidth = new Array(0,0,0);

var tkMessage;
var bibLinesPerMix = 1;
var bibCurrLine = parseInt(getCookie('bibCurrLine'));
if(!bibCurrLine) bibCurrLine = 0;

var bildLines = 0;

function trimMessageArr() {
	if(tkMessageArr[tkMessageArr.length-1] == '') {
		tkMessageArr.length = tkMessageArr.length-1;
		trimMessageArr();
	}
	else return;
}

function mixMessageArr() {
	bildRssArr = bildRss.split('<p>').join('').split('</p>');
	newArr = new Array();
	for(var i=0; i<tkMessageArr.length; i++) {
		if(bildLines >= bildRssArr.length) bildLines=0;
		newArr.push(tkMessageArr[i]);
		if(i%bibLinesPerMix==0) newArr.push(bildRssArr[bildLines++]+' ');
	}
	tkMessageArr = newArr;
}

function fillNextTicker(tkContainer) {
	tkMessageArr = tkMessage.split('<p>').join('').split('</p>');
	if(!tkMessageArr.length) return 'leer';
	trimMessageArr();
	mixMessageArr();
	if(!tkDir || tkDir=='v') {
		var tkText = tkMessageArr.join('<br>');
	} else {
		var tkText = '<nobr>'+tkMessageArr.join(' ')+'</nobr>';
	}
	document.getElementById('tkText'+tkContainer).innerHTML = tkText;
	tkMessageWidth[tkContainer] = document.getElementById('tkText'+tkContainer).offsetWidth;
}

function tkInit() {
	addTkEvents();
	if(tkTimeout) clearTimeout(tkTimeout);
	tkFrame = document.getElementById('tkFrame');
	tkText1 = document.getElementById('tkText1');
	tkText2 = document.getElementById('tkText2');
	tkText2.style.visibility = 'visible';
	if(!tkDir || tkDir=='v') { // ------------------------ vertical 
	}
	else { // ------------------------ horizontal 
		tkMessageHeight = tkText1.offsetHeight;
		document.getElementById('tkFrame').style.height = tkMessageHeight +'px';
		tkTick = true;
		if(tkLeftpos = getCookie('tickerPos')) {
			tkText1.style.left = tkLeftpos;
		}
		else {
			tkText1.style.left = '0px';
			tkLeftpos = '0px'; 
		}
		tkText2.style.left = parseInt(tkText1.style.left) + tkMessageWidth[1] + 'px';
	}
	if(getCookie('tickerStop')) tkTick = false;
	tkText1scroll = true;
	tkText2scroll = false;
	tkPaused = false;
	if(tkTick) {
		tkScroll();
		//tkTimeInterval = setInterval('updateTickerTimes()', 1000*60);
	}
}


var tkText1loaded = true;
var tkText2loaded = true;

function tkScroll() {
	if(!tkDir || tkDir=='v') { // ------------------------ vertical 
	}
	else { // ------------------------ horizontal 
		if(parseInt(tkText1.style.left) + tkMessageWidth[1] <= tkFrame.offsetWidth && tkPaused != true) {
			tkText2.style.left = parseInt(tkText1.style.left) + tkMessageWidth[1] + 'px';
			tkText2scroll = true;
		}
		if(parseInt(tkText2.style.left) + tkMessageWidth[2] <= tkFrame.offsetWidth && tkPaused != true) {
			tkText1.style.left = parseInt(tkText2.style.left) + tkMessageWidth[2] + 'px';
			tkText1scroll = true;
		}
		if(parseInt(tkText1.style.left)	+ tkMessageWidth[1] <= 0) {
			tkText1.style.left = tkFrame.offsetWidth + 'px';
			tkText1scroll = false;	
			if(!tkText1loaded) getLines(bibCurrLine, bibGetLines, 1);
			tkText1loaded = true;
		}
		else {
			tkText1loaded = false;
		}
		if(parseInt(tkText2.style.left)	+ tkMessageWidth[2] <= 0) {
			tkText2.style.left = tkFrame.offsetWidth + 'px';
			tkText2scroll = false;	
			if(!tkText2loaded) getLines(bibCurrLine, bibGetLines, 2);
			tkText2loaded = true;
		}
		else {
			tkText2loaded = false;
		}
		if(tkText1scroll == true) {
			tkText1.style.left = parseInt(tkText1.style.left) - tkStep +'px';
			tkLeftpos = tkText1.style.left;
		}
		if(tkText2scroll == true)
			tkText2.style.left = parseInt(tkText2.style.left) - tkStep +'px';
		if(tkTick) tkTimeout = setTimeout('tkScroll()', tkDelay);
	}
}

function addEvent(obj, evt, fn) {
	if(obj.addEventListener) {
		obj.addEventListener(evt, fn, false);
	} else {
		obj.attachEvent('on'+evt, fn);
	}
}

function saveTickpos() {
	if(window.tkLeftpos && window.bibCurrLine && window.bibGetLines) {
		deleteCookie('tickerPos');
		setCookie('tickerPos', tkLeftpos, 30);
		deleteCookie('bibCurrLine');
		setCookie('bibCurrLine', bibCurrLine-(2*bibGetLines), 30);
	}
}

function resetAll() {
	tkText2scroll = false;
	tkText1scroll = false;
	tkLeftpos = tkText1.style.left = '0px';
	deleteCookie('tickerPos');
	bibCurrLine = 2*bibGetLines;
	deleteCookie('bibCurrLine');
	location.reload();
}

function tkPause() {
	tkText2scroll = false;
	tkText1scroll = false;
	tkPaused = true;
	document.getElementById('tickerbgImg').style.width = '100%';
	document.getElementById('tickerbg').style.visibility = 'visible';
}

function tkUnPause() {
	if(tkText1.style.left != tkFrame.offsetWidth + 'px') tkText1scroll = true;
	if(tkText2.style.left != tkFrame.offsetWidth + 'px') tkText2scroll = true;
	tkPaused = false;
	document.getElementById('tickerbg').style.visibility = 'hidden';
}

function addTkEvents() {
	window.addEvent(document.getElementById('tkFrame'), 'mouseover', tkPause);
	window.addEvent(document.getElementById('tkFrame'), 'mouseout', tkUnPause);
}

window.addEvent(window, 'unload', saveTickpos)

// ---------------------------------------- start cookie-handling

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
// ----------------------------------------  end cookie-handling

function stopTicker() {
	if(!tkTick) return;
	tkTick = false;
	saveTickpos();
	deleteCookie('tickerStop');
	setCookie('tickerStop', true, 30);
}

function startTicker() {
	if(tkTick) return;
	deleteCookie('tickerStop');
	tkText1.style.left = tkLeftpos;
	tkTick = true;
	tkScroll();
}





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

	var bibGetLines = 50; 
	var bildRss;
	
	function popNews(content, el) {
		if(!content) {
			document.getElementById('popRss').style.display = 'none';
		}
		else {
			popPos = (el.offsetLeft + el.parentNode.parentNode.offsetLeft);
			if(popPos<5) popPos=5;
			if(popPos + 420 > document.getElementById('ticker').offsetWidth) popPos=document.getElementById('ticker').offsetWidth - 425;
 			document.getElementById('popRss').style.left = popPos+'px';
			document.getElementById('popRss').innerHTML = decodeURIComponent(content);
			document.getElementById('popRss').style.display = 'block';
		}
	}
	
	function ajReq() {
		var xmlHttp;
		try {xmlHttp=new XMLHttpRequest();}
		catch(e) {
		  try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
		  catch(e) {
		    try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
		    catch(e) {
		      alert("Your browser does not support AJAX!");
		      return false;
		    }
		  }
		}
		return xmlHttp;
	}
	
	function getLines(start, count, tkText, init) {
		ajReqBibel = new ajReq();
	  ajReqBibel.onreadystatechange=function() {
	    if(ajReqBibel.readyState==4) {
				bibCurrLine += bibGetLines;
				if(bibCurrLine > 33479) bibCurrLine = 0;
				tkMessage = ajReqBibel.responseText;
				fillNextTicker(tkText);
				if(init) {
					tkInit();
					getLines(bibCurrLine, bibGetLines, 2);
				}
	    }
	  }
		ajReqBibel.open("GET","readlines.php?start="+start+"&count="+count, true);
		ajReqBibel.send(null);
  }
	
	function getRSS(init) {
		ajReqRss = new ajReq();
	  ajReqRss.onreadystatechange=function() {
	    if(ajReqRss.readyState==4) {
				bildRss = ajReqRss.responseText;
				if(init) getLines(bibCurrLine, bibGetLines, 1, 1);
	    }
	  }
		ajReqRss.open("GET","getrss.php", true);
		ajReqRss.send(null);
  }


