var tickerHLColor = "";                      		 // hilight (mouse over) color
var tickerBorderStyle = "solid"; 
var DOM = document.getElementById;
var IE4 = document.all;
dm_ticker_activeEl = null;
dm_ticker_state = false;
dm_ticker_forward = 0;


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


function tickerStart(init, ceUid) {
	if(!DOM && !IE4) return;
	obj = tickerGetObj('divTicker_' + ceUid, ceUid);
	if(dm_newsticker_data[ceUid]["backColour"] && (dm_newsticker_data[ceUid]["backColour"] != 'none')) {
		obj.style.backgroundColor = dm_newsticker_data[ceUid]["backColour"];
	}
	if(init) {
		dm_newsticker_data[ceUid]["tickerID"] = 0;
		//tickerNext(ceUid);
	}
	dm_newsticker_data[ceUid]["tickerIV"] = setInterval('tickerMove(' + ceUid + ')', dm_newsticker_data[ceUid]["speed"]);
}

function buildTicker(ceUid) {
	//---------------------------------------------------------------------------------------------------------
	// Ticker entries
	//---------------------------------------------------------------------------------------------------------
	dm_newsticker_data[ceUid]["tickerItems"] = new Array();
	dm_newsticker_data[ceUid]["tickerID"] = '';
	dm_newsticker_data[ceUid]["tickerTimeout"] = '';
	dm_newsticker_data[ceUid]["tickerIV"] = '';

	dm_newsticker_data[ceUid]["orientation"] = dm_newsticker_data[ceUid]["orientation"].toLowerCase();
	dm_newsticker_data[ceUid]["speed"] = Math.round(((100-(dm_newsticker_data[ceUid]["speed"]))/2));
	dm_newsticker_data[ceUid]["tickerOffset"] = parseInt(dm_newsticker_data[ceUid]["tickerOffset"]);			 // Tickeroffset, also der Top / left - Wert (je noch orientation), an der das erste item des Tickers beginnen soll
	
	//alert(var_dump(dm_newsticker_data[ceUid]["backColour"]));

	if ((dm_newsticker_data[ceUid]["tickerOffset"] % 2)) {
		dm_newsticker_data[ceUid]["tickerOffset"] = dm_newsticker_data[ceUid]["tickerOffset"] + 1;
	}

	//alert(var_dump(dm_newsticker_data[ceUid]["orientation"]));

	if (dm_newsticker_data[ceUid]["articleData"]=='') {
		return false;
	}


	linked_article = new Array();
	for (x in dm_newsticker_data[ceUid]["articleData"]) {
		//Link the Articles from the Given array
		//Article[x][3] is the Thumbnail Image
		//alert(dm_newsticker_data[ceUid]["articleData"][x][5]);
		linked_article[x] = dm_newsticker_data[ceUid]["articleData"][x][1] +
		dm_newsticker_data[ceUid]["articleData"][x][3] + '<span class="dmnt_newstitle">' + dm_newsticker_data[ceUid]["articleData"][x][5] + '<br />' + dm_newsticker_data[ceUid]["articleData"][x][0] + '</span>' +
		(dm_newsticker_data[ceUid]["articleData"][x][4] ? (dm_newsticker_data[ceUid]["subtitleDivider"] ? '<div class="dmnt_subtitledivider" ' + (dm_newsticker_data[ceUid]["orientation"]=='horizontal' ? 'style = "display: inline;"' : '') + '>' + dm_newsticker_data[ceUid]["subtitleDivider"] +'</div>' : '') + '<span class="dmnt_newssubtitle">'  + dm_newsticker_data[ceUid]["articleData"][x][4] + '</span>' : "") +
		dm_newsticker_data[ceUid]["articleData"][x][2];
	}
	dm_newsticker_data[ceUid]["articleData"]["tickerEntries"] = linked_article;


	if (dm_newsticker_data[ceUid]["articleData"]["tickerEntries"]=='') {
		return false;
	}
	
	//CSS
	document.write(
		'<style type="text/css"> ' +
		'#divTicker_' + ceUid + ' { ' +
		(dm_newsticker_data[ceUid]["bg_image"] ? 'background-image: url(' + dm_newsticker_data[ceUid]["bg_image"] + ');' : '') +
		'position: relative; ' +
		'height: 83px; ' +
		'width: ' + dm_newsticker_data[ceUid]["objScrollWidth"] + 'px; ' +
		'overflow: hidden; ' +
		(dm_newsticker_data[ceUid]["borderWidth"] ? 'border-width: ' + dm_newsticker_data[ceUid]["borderWidth"] + 'px; ' : '') +
		(dm_newsticker_data[ceUid]["borderColour"] ? 'border-color: ' + dm_newsticker_data[ceUid]["borderColour"] + '; ' : '') +
		'} ' +
		'.cssTickerContainer_' + ceUid + ' { ' +
		'position: relative; ' +
		'height: 83px; ' +
		'width: ' + dm_newsticker_data[ceUid]["objScrollWidth"] + 'px; ' +
		'z-index: 5;' +
		'} ' +
		'.cssTickerEntry_' + ceUid + ' { padding-left:8px;padding-top:8px;width: 184px;height:82px;text-align: left;} ' +
		'.cssTickerEntry_' + ceUid + ' a {text-decoration:none;font-family:Arial;}' +
		'.cssTickerEntry_' + ceUid + ' img { ' +
		'display: none;' +
		(dm_newsticker_data[ceUid]["orientation"] == "vertical" ? 'margin: auto;' : 'float: left;') +
		'} ' +
		'.dmnt_newstitle{font-size:13px;}</style>'
		);

	objScroll = ('<div class="cssTickerContainer_' + ceUid + ' cssTickerContainer">' +
		'<div id="divTicker_' + ceUid + '" class="divTicker">');

	for(var i = 0; i < dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length; i++) {
		objScroll += ('<div id="divTickerEntry_' + ceUid + '_' + (i+1) + '" class="cssTickerEntry_' + ceUid + ' cssTickerEntry" ' +
			'style="position:absolute;display:none;">' +
			dm_newsticker_data[ceUid]["articleData"]["tickerEntries"][i] +
			'</div>');
	}
	objScroll += ('</div></div><div id="dm_tickerNav" style="margin-right:5px;float:right"><a href="javascript:tickerBackward(' + ceUid + ')"><img src="typo3conf/ext/datamints_newsticker/res/backward.gif"></a><a href="javascript:tickerToggle(' + ceUid + ')"><img id="tickerToggleButton" src="typo3conf/ext/datamints_newsticker/res/pause.gif"></a><a href="javascript:tickerForward(' + ceUid + ')"><img src="typo3conf/ext/datamints_newsticker/res/forward.gif"></a></div>');
	document.getElementById("tickerspace_" + ceUid).innerHTML = objScroll;
	dm_ticker_state = true;
	tickerNext(ceUid,false);

	return true;
}
dm_ticker_forward = 0;
function tickerNext(ceUid,tickerForward){
	//if sB hit the sart button fade out the shown element
	if(tickerForward == 2){
		$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeOut(500);
	}
	if(dm_ticker_forward == 0 || tickerForward == true){
		if(dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length == 0){
	 	 	  			dm_ticker_state == true
	 	}
		if(dm_ticker_state == true){
			if(dm_ticker_activeEl == null && dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length > 0){
				dm_ticker_activeEl = 1;
			
				//alert("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl);
				$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeIn(1300,ticker_fadeout_callback(dm_ticker_activeEl,ceUid));
				setTimeout(function(){tickerNext(ceUid,false);}, 9000);
			}else{
				if(dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length > dm_ticker_activeEl && 0 < dm_ticker_activeEl){
					dm_ticker_activeEl++;
				}else if(0 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length;
				}else if(-1 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length - 1;
				}else if(-2 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length - 2;
				}else{
				 	dm_ticker_activeEl = 1;
				}
				if(dm_ticker_activeEl < 1)dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length;
					$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeIn(1300,ticker_fadeout_callback(dm_ticker_activeEl,ceUid));
			
					setTimeout(function(){tickerNext(ceUid,false);}, 9000);
	 	  		 }
		}
	}
	
	if(tickerForward == false)dm_ticker_forward--;
	if(dm_ticker_forward < 0)dm_ticker_forward = 0;
}

function tickerLast(ceUid,tickerForward){
	//if sB hit the sart button fade out the shown element
	if(tickerForward == 2){
		$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeOut(500);
	}
	if(dm_ticker_forward == 0 || tickerForward == true || tickerForward == false){
		if(dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length == 0){
	 	 	  			dm_ticker_state == true
	 	}
		if(dm_ticker_state == true){
			if(dm_ticker_activeEl == null && dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length > 0){
				dm_ticker_activeEl = 1;
			
				//alert("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl);
				$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeIn(1300,ticker_fadeout_callback(dm_ticker_activeEl,ceUid));
				setTimeout(function(){tickerNext(ceUid,false);}, 9000);
			}else{
				if(dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length > dm_ticker_activeEl && 0 < dm_ticker_activeEl){
					dm_ticker_activeEl--;
				}else if(0 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length;
				}else if(-1 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length - 1;
				}else if(-2 == dm_ticker_activeEl){
					dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length - 2;
				}else{
				 	dm_ticker_activeEl = 1;
				}
				if(dm_ticker_activeEl < 1)dm_ticker_activeEl = dm_newsticker_data[ceUid]["articleData"]["tickerEntries"].length;
					$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeIn(1300,ticker_fadeout_callback(dm_ticker_activeEl,ceUid));
			
					setTimeout(function(){tickerNext(ceUid,false);}, 9000);
	 	  		 }
		}
	}
	
	if(tickerForward == false)dm_ticker_forward--;
	if(dm_ticker_forward < 0)dm_ticker_forward = 0;
}

function ticker_fadeout_callback(ticker_element,ceUid){
			setTimeout(function(){if(dm_ticker_state == true){$("#divTickerEntry_"+ceUid+"_" + ticker_element).fadeOut(1500);}},6000);
}

function tickerForward(ceUid){
	if(dm_ticker_forward < 5 && dm_ticker_state == true){
		dm_ticker_forward++;
		$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeOut(100);
		tickerNext(ceUid,true);
	}
}

function tickerBackward(ceUid){
	if(dm_ticker_forward < 3 && dm_ticker_state == true){
		dm_ticker_forward++;
		$("#divTickerEntry_"+ceUid+"_" + dm_ticker_activeEl).fadeOut(100);
		tickerLast(ceUid,true);
	}
}
function tickerToggle(ceUid){
		if(dm_ticker_state == true){
			dm_ticker_state = false;
			document.getElementById('tickerToggleButton').src = "typo3conf/ext/datamints_newsticker/res/play.gif";
		}else{
			dm_ticker_state = true;
			dm_ticker_forward++;
			tickerNext(ceUid,true);
			document.getElementById('tickerToggleButton').src = "typo3conf/ext/datamints_newsticker/res/pause.gif";
		}
		
}
