﻿var ajaxNews;
var ajaxLosung;
var now, day, month, xmlDate;
var losungen = null;

function init()
{
	// initialize AJAX for news
	try {
		ajaxNews = new XMLHttpRequest();
	} catch(w3c) {
		try {
			ajaxNews = new ActiveXObject('Msxml2.XMLHTTP');
		} catch(msie) {
			try {
				ajaxNews= new ActiveXObject('Microsoft.XMLHTTP');
			}  catch(msie_old) {
				return false;
			}
		}
	}
	ajaxNews.open('GET', 'news.xml', true);
	ajaxNews.send(null);
	ajaxNews.onreadystatechange = news;
	// initialize AJAX for Losungen
	try {
		ajaxLosung = new XMLHttpRequest();
	} catch(w3c) {
		try {
			ajaxLosung = new ActiveXObject('Msxml2.XMLHTTP');
		} catch(msie) {
			try {
				ajaxLosung = new ActiveXObject('Microsoft.XMLHTTP');
			}  catch(msie_old) {
				return false;
			}
		}
	}
	now = new Date();
	month = (now.getMonth() + 1 < 10) ? '0' + (now.getMonth() + 1) : (now.getMonth() + 1);
	day = (now.getDate() < 10) ? '0' + now.getDate() : now.getDate();
	xmlDate = now.getFullYear() + '-' + month + '-' + day;
	ajaxLosung.open('GET', 'losung' + now.getFullYear() + '.xml', true);
	ajaxLosung.send(null);
	ajaxLosung.onreadystatechange = losung;
}

function news()
{
	if(ajaxNews.readyState != 4 || ajaxNews.status != 200) return false;
	var news = ajaxNews.responseXML;
	var entries = news.getElementsByTagName('entry');
	var html = '<dl><dt>Aktuelles</dt>';
	for(i = 0; i < Math.min(2, entries.length); i++)
	{
		var text, href;
		var childs = entries[i].childNodes;
		for(j = 0; j < childs.length; j++)
		{
			if(childs[j].nodeName == 'title') text = childs[j].firstChild.nodeValue;
			if(childs[j].nodeName == 'link') href = childs[j].getAttribute('href');
		}
		html += '<dd><a href="' + href + '">' + text + '</a></dd>'
	}
	html += '</dl><hr />';
	document.getElementById("news").innerHTML = html;
	document.getElementById("news").style.display = 'block';
}

function losung()
{
	if(ajaxLosung.readyState != 4 || ajaxLosung.status != 200) return false;
	// prepare data
	losungen = ajaxLosung.responseXML;
	var entries = losungen.getElementsByTagName('Losungen');
	// find data for current day
	var found = false;
	for(i = 0; i < entries.length; i++)
	{
		var childs = entries[i].childNodes;
		// search for Datum child node explicitly
		var ok = false;
		for(j = 0; j < childs.length; j++)
		{
			if(childs[j].nodeName == 'Datum' && childs[j].firstChild && childs[j].firstChild.nodeValue == xmlDate + 'T00:00:00') ok = true;
		}
		if(!ok) continue;
		var losung, losungsvers, lehrtext, lehrtextvers;
		for(j = 0; j < childs.length; j++)
		{
			if(childs[j].nodeName == 'Losungstext') losung = childs[j].firstChild.nodeValue;
			if(childs[j].nodeName == 'Losungsvers') losungsvers = childs[j].firstChild.nodeValue;
			if(childs[j].nodeName == 'Lehrtext') lehrtext = childs[j].firstChild.nodeValue;
			if(childs[j].nodeName == 'Lehrtextvers') lehrtextvers = childs[j].firstChild.nodeValue;
		}
		found = true;
		break;
	}
	if(!found) return false;
	// process data
	var isCurrentYear = now.getFullYear() == (new Date()).getFullYear();
	var months = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
	var html = '<hr />';
	html += '<div style="float:left; font-size:10px;"><a href="javascript:go(-1)">&lt;&lt;</a></div>';
	html += '<div style="float:right; font-size:10px;"><a href="javascript:go(1)">&gt;&gt;</a></div>';
	html += '<h1 class="center">Losungen ' + day + '.' + month + (isCurrentYear ? '.' : '.' + now.getFullYear()) + '</h1>';
	html += '<p class="bibletext">';
	html += processData(losung, 0);
	html += '</p><p class="bibleverse">';
	html += '<a href="http://www.bibleserver.com/go.php?guid=ff2&lang=de&bible=lut&ref='+processData(losungsvers, 1)+'">'+processData(losungsvers, 1)+'</a>';
	html += '<br /><br /></p>';
	html += '<p class="bibletext">';
	html += processData(lehrtext, 0);
	html += '</p><p class="bibleverse">';
	html += '<a href="http://www.bibleserver.com/go.php?guid=ff2&lang=de&bible=lut&ref='+processData(lehrtextvers, 1)+'">'+processData(lehrtextvers, 1)+'</a>';
	html += '<br /><br /></p>';
	html += '<p style="font-size:8px">';
	html += '<a href="http://www.ebu.de">&copy; Evangelische Br&uuml;der-Unit&auml;t – Herrnhuter Br&uuml;dergemeine.</a>&nbsp;&nbsp;';
	html += '<a href="http://www.losungen.de">Weitere Informationen hier.</a></p>';
	// output data
	document.getElementById("watchwords").innerHTML = html;
	document.getElementById("watchwords").style.display = 'block';
}

function go(step)
{
	var date = xmlDate.split('-');
	var currentDate = Date.UTC(date[0], parseInt(date[1], 10) - 1, parseInt(date[2], 10));
	now = new Date(currentDate + step * 24 * 60 * 60 * 1000);
	month = (now.getMonth() + 1 < 10) ? '0' + (now.getMonth() + 1) : (now.getMonth() + 1);
	day = (now.getDate() < 10) ? '0' + now.getDate() : now.getDate();
	xmlDate = now.getFullYear() + '-' + month + '-' + day;
	if(date[0] != now.getFullYear()) losungen = null;
	if(losungen == null)
	{
		ajaxLosung.open('GET', 'losung' + now.getFullYear() + '.xml', true);
		ajaxLosung.send(null);
		ajaxLosung.onreadystatechange = losung;
	}
	else losung();
}

function processData(text, type)
{
	if(type == 0)
	{
		text = text.replace(/\/([^\/]+)\//g, '<span style="font-style:italic">$1</span>');
		text = text.replace(/#([^#]+)#/g, '<span style="font-weight:bold">$1</span>');			
	}
	else
	{
		text = text.replace(/[.]/, '. ');
		text = text.replace(/[,]/g, ', ');
		text = text.replace(/[-]/g, ' - ');
	}
	return text;
}
