﻿
var einw = {

debug: true,

x_path: "/xternJumi/",

textarea_cols: 60,

anwohner_ID: "2",	// verlangt nach Angabe eines Gebietes

chooser: function(buttonobj){
 
 	this.tabula_rasa();
 	
 	switch(buttonobj.name)
 	{
 		
 		case "header_edit_category_button":
 		document.getElementById('anweisung').innerHTML = "Bitte wählen Sie die zutreffende Option aus:";
 		document.getElementById('einw_betroffener').selectedIndex = 0;
 		document.getElementById('betroffener_para').style.display = "block";
 		break;
 		
 		case "header_edit_search_button":
 		document.getElementById('anweisung').innerHTML = "Bitte Suchbegriff eingeben:";
 		document.getElementById('search_para').style.display = "block";
 		document.einw_form.search_field.value= "";
 		document.einw_form.search_field.focus();
 		break;
 		
 		
 		default:
 			alert("Fehler mit Button");
 		break;
 	}
},

tabula_rasa: function(){

	document.getElementById('anweisung').innerHTML = "";
	
	document.getElementById('betroffener_para').style.display = "none";
	document.getElementById('gebiete_para').style.display = "none";
	document.getElementById('gebiete_span').innerHTML = "";
	document.getElementById('themen_para').style.display = "none";
	document.getElementById('themen_span').innerHTML = "";
	document.getElementById('text_para').style.display = "none";
	document.getElementById('text_span').innerHTML = "";
	
	document.getElementById('search_para').style.display = "none";
	document.getElementById('search_result_para').style.display = "none";
},

select_betroffener: function(selectedVal){
	
	//alert(selectedVal + " sent!");
	
	einw.elemente_verstecken();
	
	if(selectedVal === einw.anwohner_ID)
	{
		// get area options by Ajax
		var url = einw.x_path + "Includes/ajaxResponse_suche.php?f=area";
		//alert("url: " + url);
		einw.ajaxFunction(url, einw.handleHttpResponse_area);
		
	}
	else if(selectedVal === "0") 
	{
		if(document.getElementById('gebiete_span'))
		{
			document.getElementById('gebiete_span').innerHTML = "";
			document.getElementById('themen_span').innerHTML = "";
			document.getElementById('gebiete_para').style.display = "none";
			document.getElementById('themen_para').style.display = "none";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else
	{
		if(document.getElementById('gebiete_span'))
		{
			document.getElementById('gebiete_span').innerHTML = "";
			
		} else alert("Bitte benutzen Sie einen neueren Browser!");
		
		// get topic by Ajax
		einw.get_topics(selectedVal);
	}

},


handleHttpResponse_area: function(content){

	if(content.match(/^false_/))
	{
		alert(content.replace(/^(false_)(.*)$/, "$2"));
	}
	else if(content.match(/^true_/))
	{
		content = content.replace(/^(true_)(.*)$/, "$2");
		
		var gebietArray = content.split("__&__");
		var innerHTMLString = "<select id='einw_gebiet' name='einw_gebiet' onchange='einw.select_gebiet(this.value)'>";
		innerHTMLString += "<option selected value='0'> &nbsp; - Betroffenes Gebiet - &nbsp; </option>";
		innerHTMLString += "<option value='1'> &nbsp; "+gebietArray[0].replace(/^(.+)(__\d+__)$/, "$1")+" &nbsp; </option>";
		
		gebietArray.shift();
		gebietArray.sort();
		
		for(var i=0; i<gebietArray.length; i++ )
		{
			innerHTMLString += "<option value='"+gebietArray[i].replace(/^(.+__)(\d+)(__)$/, "$2")+"'> &nbsp; "+gebietArray[i].replace(/^(.+)(__\d+__)$/, "$1")+" &nbsp; </option>";
		}
		
		innerHTMLString += "</select>";
		
		if(document.getElementById('gebiete_span'))
		{
			document.getElementById('gebiete_span').innerHTML = innerHTMLString;
			document.getElementById('gebiete_para').style.display = "block";
			document.getElementById('themen_para').style.display = "none";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else
	{
		if(einw.debug) 
		{
			alert(content);
		}
	}
},

select_gebiet: function(selectedVal){
	
	//alert(selectedVal + " sent!");
	
	einw.elemente_verstecken();
	
	
	if(selectedVal === "0") 
	{
		if(document.getElementById('gebiete_span'))
		{
			document.getElementById('themen_span').innerHTML = "";
			document.getElementById('themen_para').style.display = "none";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else
	{
		// get topic by Ajax
		
		einw.get_topics(einw.anwohner_ID,selectedVal);
	}

},

get_topics: function(betroffner_id, area_id){

	//alert("Hi");
	
	var url = einw.x_path + "Includes/ajaxResponse_suche.php?f=topic&b="+betroffner_id;
	
	if(area_id !== null) url += "&a="+area_id;
	einw.ajaxFunction(url, einw.handleHttpResponse_thema);
	
	
},

handleHttpResponse_thema: function(content){

	if(content.match(/^false_/))
	{
		alert(content.replace(/^(false_)(.*)$/, "$2"));
	}
	else if(content.match(/^null_/))
	{
		var innerHTMLString = "<select id='einw_thema' name='einw_thema'>";
		innerHTMLString += "<option selected value='0'> &nbsp; - "+content.replace(/^(null_)(.*)$/, "$2")+" - &nbsp; </option>";
		innerHTMLString += "</select>";
		if(document.getElementById('themen_span'))
		{
			document.getElementById('themen_span').innerHTML = innerHTMLString;
			document.getElementById('themen_para').style.display = "block";
			document.getElementById('search_result_para').style.display = "none";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else if(content.match(/^true_/))
	{
		content = content.replace(/^(true_)(.*)$/, "$2");
		
		var themenArray = content.split("__&__");
		var innerHTMLString = "<select id='einw_thema' name='einw_thema' onchange='einw.select_thema(this.value)'>";
		innerHTMLString += "<option selected value='0'> &nbsp; - Thematischer Schwerpunkt - &nbsp; </option>";
		themenArray.sort();
		
		for(var i=0; i<themenArray.length; i++ )
		{
			innerHTMLString += "<option value='"+themenArray[i].replace(/^(.+__)(\d+)(__)$/, "$2")+"'> &nbsp; "+themenArray[i].replace(/^(.+)(__\d+__)$/, "$1")+" &nbsp; </option>";
		}
		
		innerHTMLString += "</select>";
		
		if(document.getElementById('themen_span'))
		{
			document.getElementById('themen_span').innerHTML = innerHTMLString;
			document.getElementById('themen_para').style.display = "block";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else
	{
		if(einw.debug) 
		{
			alert(content);
		}
	}

},

select_thema: function(selectedVal){
	//alert(selectedVal);
	
	einw.elemente_verstecken();
	
	if(selectedVal !== "0") 
	{
		// get topic by Ajax
		
		einw.get_text(selectedVal);
	}


},

get_text: function(themaString){

	themaString = encodeURIComponent(themaString)
	//alert(themaString);
	
	// get values from other selects
	
	var betroffener_id = document.getElementById('einw_betroffener').value;
	var gebieteString = (betroffener_id === einw.anwohner_ID) ? "&a="+document.getElementById('einw_gebiet').value : "";
	
	var url = einw.x_path + "Includes/ajaxResponse_suche.php?f=text&b="+betroffener_id + gebieteString + "&t=" + themaString;
	einw.ajaxFunction(url, einw.handleHttpResponse_text);
	
},

handleHttpResponse_text: function(content){

	if(content.match(/^false_/))
	{
		alert(content.replace(/^(false_)(.*)$/, "$2"));
	}
	else if(content.match(/^null_/))
	{
		content = content.replace(/^(null_)(.*)$/, "$2");
		
		var innerHTMLString = "<textarea id='einw_text' style='width:500px;' rows='10'>"+ content + "</textarea>";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
			document.getElementById('search_result_para').style.display = "none";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else if(content.match(/^true_/))
	{
		
		var resArray = einw.explodeReturnString(content);
		
		var resultString = "";
		
		if(resArray.idString.match(/,/))
		{
			einw.searchResults = resArray.idString.split(",");
			resultString += "Ergebnis 1 von " + einw.searchResults.length + " &nbsp; &bull;  &nbsp; <a href='javascript:void(0)' onclick='einw.otherHit("+einw.searchResults[1]+",1);' style='color:blue;text-decoration:underline;'>N&auml;chstes Ergebnis</a>";

		}
		else
		{
			resultString += "1 Ergebnis";
		}
		
		document.getElementById('search_result_para').style.display = "block";
		document.getElementById('search_result_span').innerHTML = resultString;
		
		
		var innerHTMLString = "<textarea id='einw_text' name='einw_text' style='width:500px;' rows='20'>"+ resArray.text + "</textarea><br /> <br />";
		innerHTMLString += "<input type='button' value='Text ausw&auml;hlen' onclick='document.einw_form.einw_text.select();' />";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
		
	}
	else
	{
		if(einw.debug) 
		{
			alert(content);
		}
	}

},

// search

searchResults:[],	// Array der text id Werte
currentResultindex: 0, // Index in searchResults, der zur Zeit angezeigt wird

typing: function(fieldtext){

	if(fieldtext.match(/\s/)) document.einw_form.search_field.value = fieldtext.replace(/\s/, "");
	
	if(document.getElementById('text_span'))
	{
		document.getElementById('text_span').innerHTML = "";
		document.getElementById('text_para').style.display = "none";
		document.getElementById('search_result_para').style.display = "none";
		document.getElementById('search_result_span').innerHTML = "";
	} 
	else alert("Bitte benutzen Sie einen neueren Browser!");
	document.einw_form.search_field.focus();
},

search: function(searchtext){

	if(searchtext.length < 3)
	{
		alert("Suchbegriff muss mindestens 3 Zeichen enthalten");
	}
	else
	{
		var url = einw.x_path + "Includes/ajaxResponse_suche.php?s=" +searchtext;
		einw.ajaxFunction(url, einw.handleHttpResponse_search);
	}
},

handleHttpResponse_search: function(content){
	
	einw.currentResultindex = 0;
	
	if(content.match(/^false_/))
	{
		alert(content.replace(/^(false_)(.*)$/, "$2"));
		document.getElementById('search_result_para').style.display = "none";
		document.getElementById('search_result_span').innerHTML = "";
		document.getElementById('text_span').innerHTML = "";
		document.getElementById('text_para').style.display = "none";
	}
	else if(content.match(/^null_/))
	{
		content = content.replace(/^(null_)(.*)$/, "$2");
		
		var innerHTMLString = "<span style='color:blue;'>"+ content + "</style>";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
			document.getElementById('search_result_para').style.display = "none";
			document.getElementById('search_result_span').innerHTML = "";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else if(content.match(/^true_/))
	{
		var resArray = einw.explodeReturnString(content);
		
		var resultString = "";
		
		if(resArray.idString.match(/,/))
		{
			einw.searchResults = resArray.idString.split(",");
			resultString += "Ergebnis 1 von " + einw.searchResults.length + " &nbsp; &bull;  &nbsp; <a href='javascript:void(0)' onclick='einw.otherHit("+einw.searchResults[1]+",1);' style='color:blue;text-decoration:underline;'>N&auml;chstes Ergebnis</a>";

		}
		else
		{
			resultString += "1 Ergebnis";
		}
		
		document.getElementById('search_result_para').style.display = "block";
		document.getElementById('search_result_span').innerHTML = resultString;
		
		var innerHTMLString = "<textarea id='einw_text' name='einw_text' style='width:500px;' rows='20'>"+ resArray.text + "</textarea><br /> <br />";
		innerHTMLString += "<input type='button' value='Text ausw&auml;hlen' onclick='document.einw_form.einw_text.select();' />";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
		} else alert("Bitte benutzen Sie einen neueren Browser!");
		
	}
	else
	{
		if(einw.debug) 
		{
			alert(content);
		}
	}
	
},

otherHit: function(textId, direction){
		
	if(direction === 1) einw.currentResultindex++;
	else einw.currentResultindex--;
	
	var url = einw.x_path + "Includes/ajaxResponse_suche.php?res=" +textId;
	einw.ajaxFunction(url, einw.handleHttpResponse_result);
},

handleHttpResponse_result: function (content){

	content = content.replace(/^(true_)([.\s]*)/, "$2");
	
	var innerHTMLString = "<textarea id='einw_text' name='einw_text' style='width:500px;' rows='20'>"+ content+ "</textarea><br /> <br />";
	innerHTMLString += "<input type='button' value='Text ausw&auml;hlen' onclick='document.einw_form.einw_text.select();' />";
	
	if(document.getElementById('text_span'))
	{
		document.getElementById('text_span').innerHTML = innerHTMLString;
		document.getElementById('text_para').style.display = "block";
	} else alert("Bitte benutzen Sie einen neueren Browser!");
	
	var resultString = "";
	
	if(einw.currentResultindex > 0) resultString += "<a href='javascript:void(0)' onclick='einw.otherHit("+einw.searchResults[einw.currentResultindex-1]+", -1);' style='color:blue;text-decoration:underline;'>Vorheriges Ergebnis</a> &nbsp; &bull;  &nbsp; ";
	
	resultString += "Treffer "+(einw.currentResultindex +1) +" von " + einw.searchResults.length;
	
	if(einw.currentResultindex < einw.searchResults.length - 1) resultString += " &nbsp; &bull;  &nbsp; <a href='javascript:void(0)' onclick='einw.otherHit("+einw.searchResults[einw.currentResultindex+1]+", 1);' style='color:blue;text-decoration:underline;'>N&auml;chstes Ergebnis</a>";
	
	document.getElementById('search_result_span').innerHTML = resultString;
	
},

// id search

id_typing: function(fieldtext){
 
 	if(fieldtext.match(/\s/)) document.einw_form.id_field.value = fieldtext.replace(/\s/, "");
	if(fieldtext.match(/\D/)) document.einw_form.id_field.value = fieldtext.replace(/\D/, "");
	
	if(document.getElementById('text_span'))
	{
		document.getElementById('text_span').innerHTML = "";
		document.getElementById('text_para').style.display = "none";
		
	} 
	else alert("Bitte benutzen Sie einen neueren Browser!");
	document.einw_form.id_field.focus();
},

id_search: function(searchtext){

	var url = einw.x_path + "Includes/ajaxResponse_suche.php?id=" +searchtext;
	this.ajaxFunction(url, this.handleHttpResponse_id_search);
	
},

handleHttpResponse_id_search: function(content){
	if(content.match(/^false_/))
	{
		alert(content.replace(/^(false_)(.*)$/, "$2"));
		document.getElementById('text_span').innerHTML = "";
		document.getElementById('text_para').style.display = "none";
	}
	else if(content.match(/^null_/))
	{
		content = content.replace(/^(null_)(.*)$/, "$2");
		
		var innerHTMLString = "<span style='color:blue;'>"+ content + "</style>";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
			
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
	}
	else if(content.match(/^true_/))
	{
		
		var resArray = einw.explodeReturnString(content);
		
		
		
		var innerHTMLString = "<textarea id='einw_text' name='einw_text' style='width:500px;' rows='20'>"+resArray.text + "</textarea><br /> <br />";
		innerHTMLString += "<input type='button' value='Text ausw&auml;hlen' onclick='document.einw_form.einw_text.select();' />";
		
		if(document.getElementById('text_span'))
		{
			document.getElementById('text_span').innerHTML = innerHTMLString;
			document.getElementById('text_para').style.display = "block";
		} 
		else alert("Bitte benutzen Sie einen neueren Browser!");
		
	}
	else
	{
		if(einw.debug) 
		{
			alert(content);
		}
	}
},


// general

explodeReturnString: function(content){

	// Struktur : "true_idArr:\d+[,\d+...]__id:\d+__text:..."
	
	content = content.replace(/^(true_)([.\s]*)/, "$2");
	
	var Text = content.replace(/^(.*)(__text:)(.*)$/m, "$3");
	
	var Textanfang = content.indexOf("__text:");
	content = content.substr(0, Textanfang + 7);
	//alert("content: "  + content);
	
	var IdString = content.replace(/^(idArr:)([,\d]*)(.*)$/, "$2");	
	var Id = content.replace(/^(idArr:)([,\d]*)(__id:)(\d+)(.*)$/, "$4");	
	//var Text = content.replace(/^(idArr:)([,\d]*)(__id:)(\d+)(__text:)(.*)$/, "$6");
		
	var resArray = {
		idString: IdString,
		id: Id,
		text:Text
	}
	return resArray;
},

elemente_verstecken: function(){

	if(document.getElementById('text_span'))
	{
		document.getElementById('text_span').innerHTML = "";
		document.getElementById('text_para').style.display = "none";
		document.getElementById('search_result_para').style.display = "none";
		document.getElementById('search_result_span').innerHTML = "";
		
	} 
	else alert("Bitte benutzen Sie einen neueren Browser!");
	
	
},

ajaxFunction: function(url, responsefunction){
	// Browser Weiche
	
	var httpRequest = false; 
	if(window.XMLHttpRequest)  // Mozilla, Safari,... 
		httpRequest = new XMLHttpRequest(); 
	else if(window.ActiveXObject) 
	{ // IE 
		try 
		{ 
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
		} 
		catch (e)
		{ 
			try 
			{ 
				   httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
			catch (e) {} 
		} 
	} 
   if(!httpRequest) return false; 
   
   // Handling response
   
	httpRequest.onreadystatechange = function() 
	{ 
		if(httpRequest.readyState == 4) 
		{ 
			if(httpRequest.status == 200) responsefunction(httpRequest.responseText); 
			else 
			return false; 

		} 
		else 
		return false; 
	} 
	httpRequest.open('get', url, true); 
	httpRequest.send(null); 
	
	return true;
}

};