String.prototype.parseJSON = function ()
{
	try
	{
		return !(/[^,: {}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
		this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
		eval('(' + this + ')');
	} catch (e) {
		return false;
	}
};

function changeImage(imgObject, way)
{
	var iconString = imgObject.src;
	var icon = null;

	switch(way){

		case 'open':

			var ergebnis = iconString.match(/2plast/);
			if(ergebnis){
				icon = iconString.replace(/2plast/, "2mlast");
			} else {
				icon = iconString.replace(/2p/, "2m");
			}

		break;

		case 'close':

			var ergebnis = iconString.match(/2mlast/);
			if(ergebnis){
				icon = iconString.replace(/2mlast/, "2plast");
			} else {
				icon = iconString.replace(/2m/, "2p");
			}

		break;

	}

	return imgObject.src = icon;

}

function buildTree(jsonData)
{

	if(jsonData.open){

		changeImage($('img' + jsonData.open), 'open');

		var myLink = $('a' + jsonData.open);
		myLink.onclick = new Function("getTree('ajax/tree.php?close=" + jsonData.open + "&target=" + jsonData.target + "&url=" + jsonData.myUrl + "');")

		//var myDiv = $('div' + jsonData.open);
		//myDiv.style.border = "1px solid red";

		var myChildDiv = $('divChild' + jsonData.open);
		myChildDiv.innerHTML = jsonData.content;
		return myChildDiv.style.display = "inline";
	}
	else
	{
		changeImage($('img' + jsonData.close), 'close');

		var myLink = $('a' + jsonData.close);
		myLink.onclick = new Function("getTree('ajax/tree.php?open=" + jsonData.close + "&target=" + jsonData.target + "&url=" + jsonData.myUrl + "');")

		var myChildDiv = $('divChild' + jsonData.close);
		return myChildDiv.style.display = "none";
	}
}

function getTree(newLink)
{
	//Ausgabe
	//alert(newLink);

	new Ajax.Request(newLink,
	{
		method:'get',
			onSuccess: function(req){
				var jsonData = req.responseText.parseJSON();
				buildTree(jsonData);
			},
			onFailure: function(){
				alert('Something went wrong...');
			},
			onLoading: function(){
				var ergebnis = newLink.match(/open=\S{36}/);
				if(ergebnis){
					var myChildDiv = $('divChild' + String(ergebnis).substr(5,41));
					if(myChildDiv)
					{
						myChildDiv.innerHTML = '<div style="padding-left: 16px;"><strong>... wird ge&ouml;ffnet</strong></div>';
						return myChildDiv.style.display = "inline";
					}
				}
			}
		});
}

function setContent(jsonData, boxId, selectValue)
{
	var myChildDiv = $('boxContent' + boxId);
	if(myChildDiv)
	{
		if(selectValue == '')
			myChildDiv.innerHTML = '<div><em>Bitte w&auml;hlen Sie eine Ortschaft aus</em></div>';
		else if(jsonData.html){
			myChildDiv.innerHTML = '<div>' +jsonData.html+ '</div>';
		}
		else
			myChildDiv.innerHTML = '<div><em>Heute ist in dieser Ortschaft kein Mittagstisch definiert. W&auml;hlen Sie bei Bedarf eine andere Ortschaft aus. </em></div>';
	}
}

function getMittagstisch(selectOb, newLink, boxId)
{
	newLink = newLink + '?commune=' + selectOb.value;

	// Ausgabe
	// alert('Ajax Link: ' + newLink + ' # Box ID: ' + boxId);

	new Ajax.Request(newLink,
	{
		method:'get',
			onSuccess: function(req){
				var jsonData = req.responseText.parseJSON();
				setContent(jsonData, boxId, selectOb.value);
			},
			onFailure: function(){
				alert('Something went wrong...');
			},
			onLoading: function(){
			}
		});
}