var BFDNEWS = {news: null};
var BUFFEDNTEXT = {};
BUFFEDNTEXT['loader'] = 'Lade buffed-News';
BUFFEDNTEXT['buildup'] = '...';
BUFFEDNTEXT['newsentries'] = 'Newseintr&auml;ge...';
// Config
var BUFFEDNEWSOPTS = {};
BUFFEDNEWSOPTS['notext'] = 0;
BUFFEDNEWSOPTS['limit'] = null;
var BUFFEDNEWS_VALIDTYPES = {"www":1,"blizzcon":1,"aion":1,"wow":1,"war":1,"hdro":1,"diablo":1,"rom":1,"swtor":1,'cataclysm':1,'twoworlds2':1};

function BUFFED_ADDNEWS(data)
{
	if(typeof data == "object")
	{
		BFDNEWS = data;
		BUFFED_SHOWNEWS();
	}
}
function BUFFED_NEWSROOSTER_REQUEST(newstype)
{		
	var h=document.getElementsByTagName("head")[0];

	element=document.createElement("script");
	element.id="BUFFED_NEWS_REQUEST";
	element.type="text/javascript";
	element.src= "http://www.buffed.de/newtickerservice.cfm?category=" + newstype;

	h.appendChild(element);

	var h=document.getElementsByTagName("head")[0];
	var l=document.createElement("link");
	l.type="text/css";
	l.href="http://my.buffed.de/css/buffed-news-public.css";
	l.rel="stylesheet";
	h.appendChild(l);	
}
function BUFFED_LOADNEWS(newstype) 
{
	if(newstype == '' || !BUFFEDNEWS_VALIDTYPES[newstype]) {
		newstype = 'www';
	}
	
	document.write("<div id='bfd_news_data' class='buffednews'></div>");
	BUFFED_NEWSSTATUS(BUFFEDNTEXT['buildup']);
	
	BUFFED_NEWSROOSTER_REQUEST(newstype);

	//window.setTimeout("BUFFED_SHOWNEWS()",1000);	
}
function BUFFED_NEWS_GET_LOADER() 
{	
	var loader = document.createElement('img');
	loader.src = 'http://my.buffed.de/fileadmin/ajax-loader-fb.gif';
	loader.setAttribute('align', 'absmiddle');
	loader.width = '14';
	loader.height = '14';

	return loader;
}
function BUFFED_NEWS_GET_ICON()
{
	var ico = document.createElement('img');
	ico.src = 'http://my.buffed.de/fileadmin/favicon.gif';
	ico.setAttribute('align', 'absmiddle');
	ico.align = 'absmiddle';
	
	return ico;
}
function BUFFED_NEWSSTATUS(l_txt) 
{	
	var datadiv = document.getElementById('bfd_news_data');
	var statustext = document.createTextNode(' ' + BUFFEDNTEXT['loader'] + ': ' + l_txt);
	
	datadiv.innerHTML = '';
	datadiv.appendChild(BUFFED_NEWS_GET_ICON());
	datadiv.appendChild(statustext);
	datadiv.appendChild(BUFFED_NEWS_GET_LOADER());
}
String.prototype.fromUnicode=function(isTextNode) 
{
	if(isTextNode)
	{		
		text = this.replace(/\\u00C4/g, 'Ä');
		text = text.replace(/\\u00E4/g, 'ä');
		text = text.replace(/\\u00D6/g, 'Ö');
		text = text.replace(/\\u00F6/g, 'ö');
		text = text.replace(/\\u00DC/g, 'Ü');
		text = text.replace(/\\u00FC/g, 'ü');
		text = text.replace(/\\u00DF/g, 'ß');
	}
	else 
	{
		text = this.replace(/\\u00C4/g, '&Auml;');
		text = text.replace(/\\u00E4/g, '&auml;');
		text = text.replace(/\\u00D6/g, '&Ouml;');
		text = text.replace(/\\u00F6/g, '&ouml;');
		text = text.replace(/\\u00DC/g, '&Uuml;');
		text = text.replace(/\\u00FC/g, '&uuml;');
		text = text.replace(/\\u00DF/g, '&szlig;');
	}
	return text;
};
function BUFFED_SHOWNEWS()
{
	
	var datadiv = document.getElementById("bfd_news_data");
	// Header
	var headdiv = document.createElement('div');
	headdiv.className = 'headline';

	var headlnk = document.createElement('a');
	var headh3 = document.createElement('h3');
	headh3.className = 'headlinetext';
	
	var headtxt = document.createTextNode(BFDNEWS.headline.fromUnicode(true));
	
	var subhead = document.createElement('h2');
	subhead.className = 'subheadlinetext';

	var subheadtext = document.createTextNode(BFDNEWS.subheadline.fromUnicode(true));
	subhead.appendChild(subheadtext);
	
	headlnk.href = BFDNEWS.link;
	headlnk.target = '_blank';
	headlnk.appendChild(BUFFED_NEWS_GET_ICON());
	headlnk.appendChild(headtxt);
	headh3.appendChild(headlnk);
	headdiv.appendChild(headh3);
	headdiv.appendChild(subhead);
						
	BUFFED_NEWSSTATUS(BUFFEDNTEXT['newsentries']);
	// Erzeuge News
	var newsdiv = document.createElement('div');
	
	if(!BFDNEWS.news) {
		datadiv.innerHTML = '';
		datadiv.appendChild(BUFFED_NEWS_GET_ICON());
		datadiv.appendChild(document.createTextNode(' Keine Newseintraege gefunden'));
		return;
	}
	var allcount = BFDNEWS.news.length;
	
	if(BUFFEDNEWSOPTS['limit'] != null && typeof BUFFEDNEWSOPTS['limit'] == 'number') {
		if(BUFFEDNEWSOPTS['limit'] < allcount && BUFFEDNEWSOPTS['limit'] > 0) {
			allcount = BUFFEDNEWSOPTS['limit'];
		}
	}

	for(var n = 0; n <allcount; n++) 
	{
		var entry = document.createElement('div');
		entry.className = 'entry';
		
		var h3 = document.createElement('h3');		
		h3.className='newstitle';

		var pubDateText = document.createTextNode(BFDNEWS.news[n].pubDate);
		var pubDate = document.createElement('div');
		pubDate.className='datetext';
		pubDate.appendChild(pubDateText);		
		
		var a = document.createElement('a');
		a.href=BFDNEWS.news[n].link;
		a.target='_bfdnews';
		a.innerHTML = BFDNEWS.news[n].title.fromUnicode();
		
		h3.appendChild(a);
		h3.appendChild(pubDate);
		
		entry.appendChild(h3);
		
		if(BUFFEDNEWSOPTS['notext'] == 0) 
		{
			var content = document.createElement('div');
			content.className = 'newstext';
			var p = document.createElement('p');
			content.innerHTML = BFDNEWS.news[n].description.fromUnicode();
			entry.appendChild(content);
		}		

		newsdiv.appendChild(entry);
		
		var clear = document.createElement('div');
		clear.setAttribute('style', 'clear:both');
		
		newsdiv.appendChild(clear);	
		
		var perc = Math.round(100/allcount*n);
		BUFFED_NEWSSTATUS(BUFFEDNTEXT['newsentries'] + perc + '%');
	}
	
	datadiv.innerHTML = '';
	datadiv.appendChild(headdiv);
	datadiv.appendChild(newsdiv);
}
