// JavaScript Document
function Kalender(daten_sp,id_inhalt,id_tabelle)
{
	this.daten = eval(daten_sp);
	this.inhalt_div_id = id_inhalt;
	this.tabelle_div_id = id_tabelle;
	this.monate = new Array(0,"Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
	this.classHinz = function(element,classN)
	{
		if("" == element.className)
		{
			element.className = classN;
		}
		else
		{
			if(-1 == element.className.search(classN))
			{
				element.className += " " + classN;
			}
		}
	}
	this.classEntf = function(element,classN)
	{
		var class_sp = element.className;
		element.className = class_sp.replace(classN,"");
	}
	this.tabelle = function()
	{
		var tage_tabelle = this.daten.tage_tabelle;
		var laenge = tage_tabelle.length;
		for(var pos = 0; pos<laenge; pos++)
		{
			if(document.getElementById(this.daten.tage_prae+tage_tabelle[pos]))
			{
				var tag = document.getElementById(this.daten.tage_prae+tage_tabelle[pos])
				tag.self = this;
				tag.nummer = tage_tabelle[pos];
				this.classHinz(tag,this.daten.klasse_zeiger);
				tag.onclick = function()
				{
					var inhalt_div = document.getElementById(this.self.inhalt_div_id);
					if("" != this.self.daten.class_ul)
					{
						inhalt_div.innerHTML = "<a href=\"#\" id=\"uebersicht\">Zurück zur Übersicht</a>\n<ul class=\""+this.self.daten.class_ul+"\">\n";
					}
					else
					{
						inhalt_div.innerHTML = "<a href=\"#\" id=\"uebersicht\">Zurück zur Übersicht</a>\n<ul>";
					}
					var laenge_inhalt = this.self.daten.tage_liste[this.nummer].length;
					for(var pos_in = 0; pos_in<laenge_inhalt ; pos_in++)
					{
						inhalt_div.innerHTML += this.self.daten.tage_liste[this.nummer][pos_in]+"\n";
					}
					inhalt_div.innerHTML +="</ul>";
					if(true == this.self.daten.zugang.status)
					{
						inhalt_div.innerHTML += this.self.daten.zugang.links;
					}
					this.self.linkEditor();
					var uebersicht = document.getElementById("uebersicht");
					uebersicht.self = this.self;
					uebersicht.onclick = function()
					{
						var inhalt_div = document.getElementById(this.self.inhalt_div_id);
						var laenge_inhalt = this.self.daten.inhalt_liste.length;
						var innerHTML_sp = "<h1>Termine</h1>";
						if("" == this.self.daten.class_ul)
						{
							innerHTML_sp += "<ul>";
						}
						else
						{
							innerHTML_sp += "<ul class=\""+this.self.daten.class_ul+"\">";
						}
						for(var pos_in = 0; pos_in < laenge_inhalt; pos_in ++)
						{
							innerHTML_sp += this.self.daten.inhalt_liste[pos_in];
						}
						innerHTML_sp += "</ul>";
						if(true == this.self.daten.zugang.status)
						{
							innerHTML_sp += this.self.daten.zugang.links;
						}
						inhalt_div.innerHTML = innerHTML_sp;
						this.self.linkEditor();
						this.self.inhalt();
						return false;
					}
				}
			}
		}
	}
	this.inhalt = function()
	{
		var box_liste = this.daten.id_box;
		var inhalt_laenge = box_liste.length;
		for(var pos_in_l = 0; pos_in_l < inhalt_laenge; pos_in_l ++)
		{
			if(document.getElementById(box_liste[pos_in_l]))
			{
				var eintrag = document.getElementById(box_liste[pos_in_l]);
				eintrag.self = this;
				eintrag.pos = pos_in_l;
				eintrag.unsichtbar = true;
				this.classHinz(eintrag,this.daten.klasse_zeiger);
				eintrag.onclick = function()
				{
					if(document.getElementById(this.self.daten.id_box_un[this.pos]))
					{
						var un_div = document.getElementById(this.self.daten.id_box_un[this.pos])
						if(true == this.unsichtbar)
						{
							
							this.self.classEntf(un_div,this.self.daten.klasse_u);
							this.unsichtbar = false;
						}
						else
						{
							this.self.classHinz(un_div,this.self.daten.klasse_u);
							this.unsichtbar = true;
						}	
					}
				}
			}
		}
	}
	/*this.weiterZurueck = function()
	{
		var weiter;
		var zurueck;
		if(document.getElementById(this.daten.id_mon_weiter))
		{
			weiter = document.getElementById(this.daten.id_mon_weiter);
			weiter.self = this;
			weiter.onclick = function ()
			{
				var datum_array = this.self.naechsterMonat();

				var ajax_w = new Ajax();
				ajax_w.setMethode("POST");
				ajax_w.setURL(this.self.daten.src_php_ajax);
				ajax_w.self = this.self;
				ajax_w.setOnComplete(this.self.ajaxAusgabe);
				ajax_w.addDaten("ajax","true");
				ajax_w.addDaten("monat",datum_array[0]);
				ajax_w.addDaten("jahr",datum_array[1]);
				ajax_w.senden();
				return false;
			}
		}
		if(document.getElementById(this.daten.id_mon_zurueck))
		{
			zurueck = document.getElementById(this.daten.id_mon_zurueck);
			zurueck.self = this;
			zurueck.onclick = function()
			{
				var datum_array = this.self.vorherigerMonat();
				var ajax_z = new Ajax();
				ajax_z.setMethode("POST");
				ajax_z.setURL(this.self.daten.src_php_ajax);
				ajax_z.self = this.self;
				ajax_z.setOnComplete(this.self.ajaxAusgabe);
				ajax_z.addDaten("ajax","true");
				ajax_z.addDaten("monat",datum_array[0]);
				ajax_z.addDaten("jahr",datum_array[1]);
				ajax_z.senden();
				return false;
			}
		}
	}*/
	this.ajaxAusgabe = function(obj_sp) // Übergibt die neuen Daten nach dem löschen, hizufügen oder bearbeiten von Einträgen an das objekt
	{
		var daten = eval("("+obj_sp.request_obj.responseText+")");
		obj_sp.self.setDaten(daten);
	}
	
	this.setDaten = function(daten_sp)
	{
		this.daten = daten_sp;
		this.ersetzeMonat();
	}
	this.ersetzeMonat = function()
	{
		var tabelle_id = this.daten.id_tabelle_liste;
		var tabelle = document.getElementById(tabelle_id);
		tabelle.innerHTML = "";
		var inhalt_id = this.daten.id_inhalt_liste;
		var inhalt = document.getElementById(inhalt_id);
		var laenge_inhalt = this.daten.inhalt_liste.length;
		if(0 != laenge_inhalt)
		{
			var innerHTML_sp = "<h1>Termine</h1>";
			innerHTML_sp += "<h3>"+this.monate[this.daten.monat[0]]+" "+this.daten.jahr[0]+"</h3>";
			if("" != this.daten.class_ul)
			{
				innerHTML_sp += "<ul>";
			}
			else
			{
				innerHTML_sp += "<ul class=\""+this.daten.class_ul+"\">";
			}
			for(var pos_in = 0; pos_in < laenge_inhalt; pos_in ++)
			{
				if(0 != pos_in && ( this.daten.monat[pos_in] != this.daten.monat[pos_in-1] || this.daten.jahr[pos_in] != this.daten.jahr[pos_in-1]))
				{
					innerHTML_sp += "</ul>";
					innerHTML_sp += "<h3>"+this.monate[this.daten.monat[pos_in]]+" "+this.daten.jahr[pos_in]+"</h3>";
					if("" != this.daten.class_ul)
					{
						innerHTML_sp += "<ul>";
					}
					else
					{
						innerHTML_sp += "<ul class=\""+this.daten.class_ul+"\">";
					}
				}
				innerHTML_sp += this.daten.inhalt_liste[pos_in];
			}
			innerHTML_sp += "</ul>";
			if(true == this.daten.zugang.status)
			{
				innerHTML_sp += this.daten.zugang.links;
			}
			inhalt.innerHTML = innerHTML_sp;
			this.linkEditor();
		}
		else
		{
			inhalt.innerHTML = "";
		}
		
		//this.tabelle();
		this.inhalt();
		//this.weiterZurueck();
	}
	/*
	this.naechsterMonat = function()
	{
		var jahr_akt = this.daten.jahr_akt;
		var monat_akt = this.daten.monat_akt;
		var monat_nae = monat_akt*1 +1;
		var jahr_nae = jahr_akt;
		if(13 == monat_nae)
		{
			monat_nae = 1;
			jahr_nae = jahr_nae *1 +1;
		}
		var aus = new Array(monat_nae,jahr_nae);
		return aus;
	}
	this.vorherigerMonat = function()
	{
		var jahr_akt = this.daten.jahr_akt;
		var monat_akt = this.daten.monat_akt;
		var monat_vor = monat_akt*1-1;
		var jahr_vor = jahr_akt;
		if(0 == monat_vor)
		{
			monat_vor = 12;
			jahr_vor = jahr_vor*1-1;
		}
		var aus = new Array(monat_vor,jahr_vor);
		return aus;
	}*/
	this.linkEditor = function()
	{
		if(document.getElementById(this.daten.zugang.id_a_bearb))
		{
			
			var a_bearbeiten = document.getElementById(this.daten.zugang.id_a_bearb);
			a_bearbeiten.self = this;
			a_bearbeiten.onclick = function()
			{
				this.self.waehleEintrag();
				return false;
			}
		}
		if(document.getElementById(this.daten.zugang.id_a_einf))
		{
			var a_einfuegen = document.getElementById(this.daten.zugang.id_a_einf);
			a_einfuegen.self = this;
			a_einfuegen.onclick = function()
			{
				this.self.ladeEditor();
				return false;
			}
		}
	}
	this.waehleEintrag = function()
	{
		var ajax_bearb = new Ajax();
		ajax_bearb.setMethode("POST");
		ajax_bearb.setURL(this.daten.src_php_ajax);
		ajax_bearb.addDaten("ajax_bearb","true");
		ajax_bearb.self = this;
		ajax_bearb.setOnComplete(this.ajaxAusgabeEditor);
		ajax_bearb.senden();
	}
	this.ajaxAusgabeEditor = function(obj_sp)
	{
		var daten_bearb = eval("("+obj_sp.request_obj.responseText+")");
		var inhalt_id =daten_bearb.id_inhalt_liste;
		var inhalt = document.getElementById(inhalt_id);
		var laenge_inhalt = daten_bearb.inhalt_liste.length;
		if(0 != laenge_inhalt)
		{
			var innerHTML_sp = "<h1>Termine</h1>";
			innerHTML_sp += "<h3>"+this.self.monate[daten_bearb.monat[0]]+" "+daten_bearb.jahr[0]+"</h2>";
			if("" != daten_bearb.class_ul)
			{
				innerHTML_sp += "<ul>";
			}
			else
			{
				innerHTML_sp += "<ul class=\""+daten_bearb.class_ul+"\">";
			}
			for(var pos_in = 0; pos_in < laenge_inhalt; pos_in ++)
			{
				if(0 != pos_in && ( daten_bearb.monat[pos_in] !=daten_bearb.monat[pos_in-1] || daten_bearb.jahr[pos_in] != daten_bearb.jahr[pos_in-1]))
				{
					innerHTML_sp += "</ul>";
					innerHTML_sp += "<h3>"+this.self.monate[daten_bearb.monat[pos_in]]+" "+daten_bearb.jahr[pos_in]+"</h3>";
					if("" != daten_bearb.class_ul)
					{
						innerHTML_sp += "<ul>";
					}
					else
					{
						innerHTML_sp += "<ul class=\""+daten_bearb.class_ul+"\">";
					}
				}
				innerHTML_sp += daten_bearb.inhalt_liste[pos_in];
			}
			innerHTML_sp += "</ul>";
			inhalt.innerHTML = innerHTML_sp;
		}
		var anzahl_boxen = daten_bearb.id_box.length;
		for(var pos_bearb = 0; pos_bearb < anzahl_boxen; pos_bearb++)
		{
			var box_sp = document.getElementById(daten_bearb.id_box[pos_bearb])
			obj_sp.self.classHinz(box_sp,daten_bearb.klasse_zeiger);
			box_sp.id_tb = daten_bearb.id_tb[pos_bearb];
			box_sp.self = obj_sp.self;
			box_sp.onclick = function()
			{
				this.self.ladeEditor(this.id_tb);
			}
		}
	}
	this.ladeEditor = function()
	{
		var anzahl_argumente = arguments.length
		if(0 < anzahl_argumente)
		{
			var id = arguments[0];
			var editor = new Editor(this,this.daten.id_inhalt_liste,this.daten.id_tabelle_liste,this.daten.id_iframe,this.daten.src_iframe,id,this.datenEditor,true);
		}
		else
		{
			var editor = new Editor(this,this.daten.id_inhalt_liste,this.daten.id_tabelle_liste,this.daten.id_iframe,this.daten.src_iframe,"",this.datenEditor,true);
		}
	}
	this.datenEditor = function(obj_sp,daten_sp) // Wenn der Editor "Geschlossen" wird
	{
		var daten = eval("("+daten_sp+")");
		switch (daten.aktion)
		{
			case "update": obj_sp.update(daten_sp);
			break;
			case "insert": obj_sp.insert(daten_sp);
			break;
			case "abbrechen":obj_sp.abbrechen()
			break;
			case "loeschen": obj_sp.loeschen(daten_sp);
			break;
			default:obj_sp.ersetzeMonat();
		}
		
	}
	this.update = function(daten_sp) // Wenn ein Kalendereintrag bearbeitet wird
	{
		var ajax_update = new Ajax();
		ajax_update.setMethode("POST");
		ajax_update.setURL(this.daten.src_php_ajax);
		ajax_update.addDaten("ajax_update","true");
		ajax_update.addDaten("daten",daten_sp);
		ajax_update.self = this;
		ajax_update.setOnComplete(this.ajaxAusgabe);
		ajax_update.senden();
		
	}
	this.insert = function(daten_sp)// Wenn ein Kalendereintrag hinzugefüget wird
	{
		var ajax_insert = new Ajax();
		ajax_insert.setMethode("POST");
		ajax_insert.setURL(this.daten.src_php_ajax);
		ajax_insert.addDaten("ajax_insert","true");
		ajax_insert.addDaten("daten",daten_sp);
		ajax_insert.self = this;
		ajax_insert.setOnComplete(this.ajaxAusgabe);
		ajax_insert.senden();
	}
	this.abbrechen = function()
	{
		this.ersetzeMonat();
	}
	this.loeschen = function(daten_sp) //Wenn ein Kalendereintrag gelöscht wird
	{
		var ajax_loeschen = new Ajax();
		ajax_loeschen.setMethode("POST");
		ajax_loeschen.setURL(this.daten.src_php_ajax);
		ajax_loeschen.addDaten("ajax_loeschen","true");
		ajax_loeschen.addDaten("daten",daten_sp);
		ajax_loeschen.self = this;
		ajax_loeschen.setOnComplete(this.ajaxAusgabe);
		ajax_loeschen.senden();
	}
	//this.tabelle();
	this.inhalt();
	//this.weiterZurueck();
	this.linkEditor();
}

function Editor(self,elter_id,einst_id,iframe_id,iframe_src,id_tb,on_senden,erw)
{
	this.obj_sp = self;
	this.elter = elter_id;
	this.einst_div = einst_id;
	this.iframe_id = iframe_id;
	this.iframe = "";
	this.iframe_src = iframe_src;
	this.on_senden = on_senden;
	this.ids;
	this.id_tb = id_tb;
	this.eintrag = "";
	this.self = self;
	this.datum_tag_select;
	this.datum_monat_select;
	this.datum_jahr_select;
	this.beginn_st_select;
	this.beginn_min_select;
	this.ende_st_select;
	this.ende_min_select;
	this.art_select;
	this.login_input;
	this.erw = erw; // ERweitert oder nicht
	this.bereinigen_i = ""; //Speicher für setInterval
	this.range = false;
	this.ladeIds = function()
	{
		var ajax_ed = new Ajax();
		ajax_ed.setMethode("POST");
		ajax_ed.setURL(this.self.daten.src_php_ajax);
		ajax_ed.addDaten("ajax_ed","true");
		ajax_ed.self = this
		ajax_ed.id_tb = this.id_tb;
		ajax_ed.setOnComplete(this.ajaxAusgabe);
		ajax_ed.senden();
	}
	this.ajaxAusgabe = function(obj_sp)
	{
		this.self.ids = eval("("+obj_sp.request_obj.responseText+")");
		if("" != obj_sp.self.id_tb)
		{
			var ajax_eintr = new Ajax();
			ajax_eintr.setMethode("POST");
			ajax_eintr.setURL(obj_sp.self.self.daten.src_php_ajax);
			ajax_eintr.addDaten("ajax_eintr","true");
			ajax_eintr.addDaten("id_tb",obj_sp.self.id_tb);
			ajax_eintr.self = obj_sp.self;
			ajax_eintr.setOnComplete(obj_sp.self.ajaxAusgabeBearb);
			ajax_eintr.senden();
		}
		else
		{
			this.self.erstelleEditor();
		}
	}
	this.ajaxAusgabeBearb = function(obj_sp)
	{
		this.self.eintrag = eval("("+obj_sp.request_obj.responseText+")");
		this.self.erstelleEditor();
	}
	this.formatieren = function(name,wert)
	{
		var	uagent=navigator.userAgent.toLowerCase();
		if( uagent.match('msie') && !uagent.match('opera') && (!uagent.match('msie 5.5')||!uagent.match('msie 6.')))
		{
			var isIE = true;
		}
		
		if(true == isIE)
		{
			if(this.iframe.document.queryCommandSupported (name))
			{
				this.iframe.document.execCommand(name,false,wert);
			}
		}
		else
		{
			this.iframe.document.execCommand(name,false,wert);
		}
		this.iframe.focus();
	}
	this.erstelleEditor = function()
	{
		if(document.getElementById(this.elter))
		{
			if("" != this.einst_div && document.getElementById(this.einst_div))
			{
				var eint_div =  document.getElementById(this.einst_div);
				while(eint_div.hasChildNodes())
				{
					eint_div.removeChild(eint_div.firstChild);
				}
			}
			var elter = document.getElementById(this.elter);
			while(elter.hasChildNodes())
			{
				elter.removeChild(elter.firstChild);
			}
			var iframe_sp = document.createElement("iframe");
			iframe_sp.id = this.iframe_id;
			iframe_sp.allowTransparency = "true";
			if("" != this.id_tb)
			{
				iframe_sp.src = this.iframe_src+"?id_tb="+this.id_tb;
			}
			else
			{
				iframe_sp.src = this.iframe_src;
			}
			elter.appendChild(iframe_sp);
			this.iframe = iframe_sp.contentWindow;
			this.iframe.document.designMode= "on";
			this.iframe.focus();
			var div_steuerung = document.createElement("div");
			div_steuerung.id = this.ids.id_steuerung;
			elter.appendChild(div_steuerung);
			var ueberschrift1 = document.createElement("button");
			var ueberschrift1_text = document.createTextNode("Überschrift 1");
			ueberschrift1.appendChild(ueberschrift1_text);
			ueberschrift1.self = this;
			ueberschrift1.id = this.ids.id_ueberschrift_1;
			ueberschrift1.onclick = function()
			{
				this.self.formatieren("formatblock","<h1>");
			}
			div_steuerung.appendChild(ueberschrift1);
			var ueberschrift2 = document.createElement("button");
			var ueberschrift2_text = document.createTextNode("Überschrift 2");
			ueberschrift2.appendChild(ueberschrift2_text);
			ueberschrift2.self = this;
			ueberschrift2.id = this.ids.id_ueberschrift_2;
			ueberschrift2.onclick = function()
			{
				this.self.formatieren("formatblock","<h2>");
			}
			div_steuerung.appendChild(ueberschrift2);
			var absatz = document.createElement("button");
			var absatz_text = document.createTextNode("Absatz");
			absatz.appendChild(absatz_text);
			absatz.self = this;
			absatz.id = this.ids.id_absatz;
			absatz.onclick = function()
			{
				this.self.formatieren("formatblock","p");
			}
			div_steuerung.appendChild(absatz);
			var fett = document.createElement("button");
			var fett_text = document.createTextNode("Fett");
			fett.appendChild(fett_text);
			fett.self = this;
			fett.id = this.ids.id_fett;
			fett.onclick = function()
			{
				this.self.formatieren("styleWithCSS",false);
				this.self.formatieren("bold",null);
			}
			div_steuerung.appendChild(fett);
			var kursiv = document.createElement("button");
			var kursiv_text = document.createTextNode("Kursiv");
			kursiv.appendChild(kursiv_text);
			kursiv.self = this;
			kursiv.id = this.ids.id_kursiv;
			kursiv.onclick = function()
			{
				this.self.formatieren("styleWithCSS",false);
				this.self.formatieren("italic",null);
			}
			div_steuerung.appendChild(kursiv);
			var liste_ol = document.createElement("button");
			var liste_ol_text = document.createTextNode("Geordnete Liste");
			liste_ol.appendChild(liste_ol_text);
			liste_ol.self = this;
			liste_ol.id = this.ids.id_liste_ol;
			liste_ol.onclick = function()
			{
				
				this.self.formatieren("insertorderedlist",null);
			}
			div_steuerung.appendChild(liste_ol);
			var liste_ul = document.createElement("button");
			var liste_ul_text = document.createTextNode("Ungeordnete Liste");
			liste_ul.appendChild(liste_ul_text);
			liste_ul.self = this;
			liste_ul.id = this.ids.id_liste_ul;
			liste_ul.onclick = function()
			{
				
				this.self.formatieren("insertunorderedlist",null);
			}
			div_steuerung.appendChild(liste_ul);
			var link = document.createElement("button");
			var link_text = document.createTextNode("link");
			link.appendChild(link_text);
			link.self = this;
			link.id = this.ids.id_link;
			link.onclick = function()
			{
				this.self.nachfrageLink();
			}
			div_steuerung.appendChild(link);
			var bild = document.createElement("button");
			var bild_text = document.createTextNode("Bild");
			bild.appendChild(bild_text);
			bild.self = this;
			bild.id = this.ids.id_bild;
			bild.onclick = function()
			{
				this.self.nachfrageBild();
				//this.self.formatieren("insertunorderedlist",null);
			}
			div_steuerung.appendChild(bild);
			var fertig = document.createElement("button");
			var fertig_text = document.createTextNode("Fertig");
			fertig.appendChild(fertig_text);
			fertig.self = this;
			fertig.id = this.ids.id_fertig;
			fertig.onclick = function()
			{
				var innerHTML = this.self.antwortFormatieren();
				if(false != innerHTML)
				{
					if("" != this.self.id_tb)
					{
						var aktion = "update";
					}
					else
					{
						var aktion = "insert";
					}
					var aus_json = "{\"aktion\":\""+aktion+"\",\"inhalt\":"+innerHTML+"}";
					var text_sp = "Wollen Sie den Eintrag aktualisieren?";
					this.self.nachfragen(text_sp,aus_json);
				}
				else
				{
					var text_sp = "Es fehlt eine Überschrift oder Text";
					this.self.nachfragenFehler(text_sp,aus_json);
				}
			}
			div_steuerung.appendChild(fertig);
			var abbrechen = document.createElement("button");
			var abbrechen_text = document.createTextNode("Abbrechen");
			abbrechen.appendChild(abbrechen_text);
			abbrechen.self = this;
			abbrechen.id = this.ids.id_abbrechen;
			abbrechen.onclick = function()
			{
				var text_sp = "Wollen Sie die Bearbeitung abbrechen?";
				var aus_json = "{\"aktion\":\"abbrechen\"}";
				this.self.nachfragen(text_sp,aus_json);
			}
			div_steuerung.appendChild(abbrechen);
			var loeschen = document.createElement("button");
			var loeschen_text = document.createTextNode("Löschen");
			loeschen.appendChild(loeschen_text);
			loeschen.self = this;
			loeschen.id = this.ids.id_loeschen;
			loeschen.onclick = function()
			{
				var text_sp = "Wollen Sie den Eintrag löschen?";
				if("" != this.self.eintrag)
				{
					var id= this.self.eintrag.id_tb;
				}
				else
				{
					var id = 0;
				}
				var aus_json = "{\"aktion\":\"loeschen\",\"inhalt\":{\"id\":\""+id+"\"}}";
				this.self.nachfragen(text_sp,aus_json);
			}
			div_steuerung.appendChild(loeschen);
			//
			if(true == this.erw)
			{
				var datum = new Date();
				var tag = datum.getDate();
				var monat = datum.getMonth()+1;
				var jahr = datum.getFullYear();
				var start_jahr = parseInt(jahr)-2;
				var ende_jahr = parseInt(jahr)+3;
				var form = document.createElement("form");
				form.id = "kalender_einst";
				var absatz_datum = document.createElement("p");
				var monate = new Array(0,"Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
				/*var datum_label_tag = document.createElement("label");
				
				var datum_span = document.createElement("span");
				var datum_span_text = document.createTextNode("Datum:");
				this.datum_tag_select = document.createElement("select");
				this.datum_tag_select.id = "tag_select";
				for(var pos_tag = 1; pos_tag <32; pos_tag ++)
				{
					var option_tag_sp = document.createElement("option");
					option_tag_sp.value = pos_tag;
					if("" != this.eintrag)
					{
						if(pos_tag == this.eintrag.tag)
						{
							option_tag_sp.selected = "selected";
							option_tag_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					else
					{
						if(pos_tag == tag)
						{
							option_tag_sp.selected = "selected";
						}
					}
					var option_tag_text_sp = document.createTextNode(pos_tag+".");
					option_tag_sp.appendChild(option_tag_text_sp);
					this.datum_tag_select.appendChild(option_tag_sp);
				}
				var datum_label_monat = document.createElement("label");
				this.datum_monat_select = document.createElement("select");
				this.datum_monat_select.id = "monat_select";
				
				for(var pos_monat = 1; pos_monat <13; pos_monat ++)
				{
					var option_monat_sp = document.createElement("option");
					option_monat_sp.value = pos_monat;
					if("" != this.eintrag)
					{
						if(pos_monat == this.eintrag.monat)
						{
							option_monat_sp.selected = "selected";
							option_monat_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					else
					{
						if(pos_monat == monat)
						{
							option_monat_sp.selected = "selected";
						}
					}
					var option_monat_text_sp = document.createTextNode(monate[pos_monat]);
					option_monat_sp.appendChild(option_monat_text_sp);
					this.datum_monat_select.appendChild(option_monat_sp);
				}
				var datum_label_jahr = document.createElement("label");
				this.datum_jahr_select = document.createElement("select");
				this.datum_jahr_select.id = "jahr_select";
				if("" != this.eintrag)
				{
					var start_jahr = parseInt(this.eintrag.jahr)-2;
					var ende_jahr = parseInt(this.eintrag.jahr)+3;
					for(var pos_jahr = start_jahr; pos_jahr < ende_jahr; pos_jahr ++)
					{
						var option_jahr_sp = document.createElement("option");
						option_jahr_sp.value = pos_jahr;
						if(pos_jahr == this.eintrag.jahr)
						{
							option_jahr_sp.selected = "selected";
							option_jahr_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
						var option_jahr_text_sp = document.createTextNode(pos_jahr);
						option_jahr_sp.appendChild(option_jahr_text_sp);
						this.datum_jahr_select.appendChild(option_jahr_sp);
					}
				}
				else
				{
					var datum = new Date();
					var jahr = datum.getFullYear();
					var start_jahr = parseInt(jahr)-2;
					var ende_jahr = parseInt(jahr)+3;
					for(var pos_jahr = start_jahr; pos_jahr < ende_jahr; pos_jahr ++)
					{
						var option_jahr_sp = document.createElement("option");
						option_jahr_sp.value = pos_jahr;
						if(pos_jahr == jahr)
						{
							option_jahr_sp.selected = "selected";
						}
						var option_jahr_text_sp = document.createTextNode(pos_jahr);
						option_jahr_sp.appendChild(option_jahr_text_sp);
						this.datum_jahr_select.appendChild(option_jahr_sp);
					}
				}
				
				datum_span.appendChild(datum_span_text);
				datum_label_tag.appendChild(datum_span);
				datum_label_tag.appendChild(this.datum_tag_select);
				datum_label_monat.appendChild(this.datum_monat_select);
				datum_label_jahr.appendChild(this.datum_jahr_select);
				absatz_datum.appendChild(datum_label_tag);
				absatz_datum.appendChild(datum_label_monat);
				absatz_datum.appendChild(datum_label_jahr);*/
				if("" != this.eintrag)
				{
					var datum_id = this.macheZweist(this.eintrag.tag)+"-"+this.macheZweist(this.eintrag.monat)+"-"+this.eintrag.jahr;
					var datum = new KalenderPU(absatz_datum,datum_id,"Datum:","tag_select","monat_select","jahr_select");
					datum.laden(); //PickUp Kalender laden;
					datum.datum_voreinstellen();
				}
				else
				{
					var datum = new KalenderPU(absatz_datum,"heute","Datum:","tag_select","monat_select","jahr_select");
					datum.laden(); //PickUp Kalender laden;
				}
				
				form.appendChild(absatz_datum);
				var absatz_beginn = document.createElement("p");
				var beginn_label_st = document.createElement("label");
				var beginn_span = document.createElement("span");
				var beginn_span_text = document.createTextNode("Beginn:");
				this.beginn_st_select = document.createElement("select");
				this.beginn_st_select.id = "beginn_st_select";
				for(var pos_beginn_st = 0; pos_beginn_st <24; pos_beginn_st ++)
				{
					var option_begin_st_sp = document.createElement("option");
					option_begin_st_sp.value = pos_beginn_st;
					if("" != this.eintrag)
					{
						if(pos_beginn_st == this.eintrag.beginn_st)
						{
							option_begin_st_sp.selected = "selected";
							option_begin_st_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					else
					{
						if(pos_beginn_st == 12)
						{
							option_begin_st_sp.selected = "selected";
						}
					}
					var option_begin_st_text_sp = document.createTextNode(this.macheZweist(pos_beginn_st));
					option_begin_st_sp.appendChild(option_begin_st_text_sp);
					this.beginn_st_select.appendChild(option_begin_st_sp);
				}
				beginn_span.appendChild(beginn_span_text);
				beginn_label_st.appendChild(beginn_span);
				beginn_label_st.appendChild(this.beginn_st_select);
				var beginn_label_min = document.createElement("label");
				var beginn_label_min_text = document.createTextNode("Uhr");
				this.beginn_min_select = document.createElement("select");
				this.beginn_min_select.id = "beginn_min_select";
				for(var pos_beginn_min = 0; pos_beginn_min <60; pos_beginn_min ++)
				{
					var option_begin_min_sp = document.createElement("option");
					option_begin_min_sp.value = pos_beginn_min;
					if("" != this.eintrag)
					{
						if(pos_beginn_min ==this.eintrag.beginn_min)
						{
							option_begin_min_sp.selected = "selected";
							option_begin_min_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					var option_begin_min_text_sp = document.createTextNode(this.macheZweist(pos_beginn_min));
					option_begin_min_sp.appendChild(option_begin_min_text_sp);
					this.beginn_min_select.appendChild(option_begin_min_sp);
				}
				beginn_label_min.appendChild(this.beginn_min_select);
				beginn_label_min.appendChild(beginn_label_min_text);
				absatz_beginn.appendChild(beginn_label_st);
				absatz_beginn.appendChild(beginn_label_min);
				form.appendChild(absatz_beginn);
				var absatz_ende = document.createElement("p");
				var ende_label_st = document.createElement("label");
				var ende_span = document.createElement("span");
				var ende_span_text = document.createTextNode("Ende:");
				this.ende_st_select = document.createElement("select");
				this.ende_st_select.id = "ende_st_select";
				for(var pos_ende_st = 0; pos_ende_st <24; pos_ende_st ++)
				{
					var option_ende_st_sp = document.createElement("option");
					option_ende_st_sp.value = pos_ende_st;
					if("" != this.eintrag)
					{
						if(pos_ende_st == this.eintrag.ende_st)
						{
							option_ende_st_sp.selected = "selected";
							option_ende_st_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					else
					{
						if(pos_ende_st == 12)
						{
							option_ende_st_sp.selected = "selected";
						}
					}
					var option_ende_st_text_sp = document.createTextNode(this.macheZweist(pos_ende_st));
					option_ende_st_sp.appendChild(option_ende_st_text_sp);
					this.ende_st_select.appendChild(option_ende_st_sp);
				}
				ende_span.appendChild(ende_span_text);
				ende_label_st.appendChild(ende_span);
				ende_label_st.appendChild(this.ende_st_select);
				var ende_label_min = document.createElement("label");
				var ende_label_min_text = document.createTextNode("Uhr");
				this.ende_min_select = document.createElement("select");
				this.ende_min_select.id = "ende_min_select";
				for(var pos_ende_min = 0; pos_ende_min <60; pos_ende_min ++)
				{
					var option_ende_min_sp = document.createElement("option");
					option_ende_min_sp.value = pos_ende_min;
					if("" != this.eintrag)
					{
						if(pos_ende_min == this.eintrag.ende_min)
						{
							option_ende_min_sp.selected = "selected";
							option_ende_min_sp.className = this.eintrag.klasse_select_ausgwaehlt;
						}
					}
					var option_ende_min_text_sp = document.createTextNode(this.macheZweist(pos_ende_min));
					option_ende_min_sp.appendChild(option_ende_min_text_sp);
					this.ende_min_select.appendChild(option_ende_min_sp);
				}
				ende_label_min.appendChild(this.ende_min_select);
				ende_label_min.appendChild(ende_label_min_text);
				absatz_ende.appendChild(ende_label_st);
				absatz_ende.appendChild(ende_label_min);
				form.appendChild(absatz_ende);
				var art_absatz = document.createElement("p");
				var art_label = document.createElement("label");
				var art_span = document.createElement("span")
				var art_span_text = document.createTextNode("Art:");
				this.art_select = document.createElement("select");
				this.art_select.id = "art_select";
				var art_option_1 = document.createElement("option");
				var art_option_2 = document.createElement("option");
				var art_option_3 = document.createElement("option");
				var art_option_4 = document.createElement("option");
				var art_option_5 = document.createElement("option");
				var art_option_6 = document.createElement("option");
				art_option_1.value = 1;
				art_option_2.value = 2;
				art_option_3.value = 3;
				art_option_4.value = 4;
				art_option_5.value = 5;
				art_option_6.value = 6;
				if("" != this.eintrag)
				{
					if(1 == this.eintrag.art)
					{
						art_option_1.selected = "selected";
						art_option_1.className = this.eintrag.klasse_select_ausgwaehlt;
					}
					if(2 == this.eintrag.art)
					{
						art_option_2.selected = "selected";
						art_option_2.className = this.eintrag.klasse_select_ausgwaehlt;
					}
					if(3 == this.eintrag.art)
					{
						art_option_3.selected = "selected";
						art_option_3.className = this.eintrag.klasse_select_ausgwaehlt;
					}
					if(4 == this.eintrag.art)
					{
						art_option_4.selected = "selected";
						art_option_4.className = this.eintrag.klasse_select_ausgwaehlt;
					}
					if(5 == this.eintrag.art)
					{
						art_option_5.selected = "selected";
						art_option_5.className = this.eintrag.klasse_select_ausgwaehlt;
					}
					if(6 == this.eintrag.art)
					{
						art_option_6.selected = "selected";
						art_option_6.className = this.eintrag.klasse_select_ausgwaehlt;
					}
				}
				var art_option_1_text = document.createTextNode("Standardtraining");
				var art_option_2_text = document.createTextNode("Lateintraining");
				var art_option_3_text = document.createTextNode("Freies Training (BBr)");
				var art_option_4_text = document.createTextNode("Freies Training (BBü)");
				var art_option_5_text = document.createTextNode("Turnierstart");
				var art_option_6_text = document.createTextNode("Sonstiges");
				art_option_1.appendChild(art_option_1_text);
				art_option_2.appendChild(art_option_2_text);
				art_option_3.appendChild(art_option_3_text);
				art_option_4.appendChild(art_option_4_text);
				art_option_5.appendChild(art_option_5_text);
				art_option_6.appendChild(art_option_6_text);
				
				var auto_button = document.createElement("button");
				var auto_button_text = document.createTextNode("Autotext einfügen");
				auto_button.appendChild(auto_button_text);
				auto_button.self = this;
				auto_button.onclick = function()
				{
					var tag_sp = document.getElementById("tag_select").value;
					var monat_sp = document.getElementById("monat_select").value;
					var jahr_sp = document.getElementById("jahr_select").value;
					if(0 == this.self.art_select.selectedIndex)
					{
						this.self.iframe.document.getElementsByTagName("body")[0].innerHTML = "<h1>Standardtraining</h1><p>Standardtraining am "+tag_sp+". "+monate[monat_sp]+ " "+jahr_sp+" von "+this.self.beginn_st_select.value+ " Uhr "+this.self.macheZweist(this.self.beginn_min_select.value)+" bis "+this.self.ende_st_select.value+" Uhr "+this.self.macheZweist(this.self.ende_min_select.value)+"</p>";
					}
					else if(1 == this.self.art_select.selectedIndex)
					{
						this.self.iframe.document.getElementsByTagName("body")[0].innerHTML = "<h1>Lateintraining</h1><p>Lateintraining am "+tag_sp+". "+monate[monat_sp]+ " "+jahr_sp+" von "+this.self.beginn_st_select.value+ " Uhr "+this.self.macheZweist(this.self.beginn_min_select.value)+" bis "+this.self.ende_st_select.value+" Uhr "+this.self.macheZweist(this.self.ende_min_select.value)+"</p>";
					}
					else if(2 == this.self.art_select.selectedIndex)
					{
						this.self.iframe.document.getElementsByTagName("body")[0].innerHTML = "<h1>Freies Training Bingerbrück</h1><p>Freies Training in Bingen-Bingerbrück am "+tag_sp+". "+monate[monat_sp]+ " "+jahr_sp+" von "+this.self.beginn_st_select.value+ " Uhr "+this.self.macheZweist(this.self.beginn_min_select.value)+" bis "+this.self.ende_st_select.value+" Uhr "+this.self.macheZweist(this.self.ende_min_select.value)+"</p>";
					}
					else if(3 == this.self.art_select.selectedIndex)
					{
						this.self.iframe.document.getElementsByTagName("body")[0].innerHTML = "<h1>Freies Training Büdesheim</h1><p>Freies Training in Bingen-Büdesheim am "+tag_sp+". "+monate[monat_sp]+ " "+jahr_sp+" von "+this.self.beginn_st_select.value+ " Uhr "+this.self.macheZweist(this.self.beginn_min_select.value)+" bis "+this.self.ende_st_select.value+" Uhr "+this.self.macheZweist(this.self.ende_min_select.value)+"</p>";
					}
					else
					{
						this.self.iframe.document.getElementsByTagName("body")[0].innerHTML = "";
					}
					return false;
				}
				this.art_select.appendChild(art_option_1);
				this.art_select.appendChild(art_option_2);
				this.art_select.appendChild(art_option_3);
				this.art_select.appendChild(art_option_4);
				this.art_select.appendChild(art_option_5);
				this.art_select.appendChild(art_option_6);
				art_span.appendChild(art_span_text);
				art_label.appendChild(art_span);
				art_label.appendChild(this.art_select);
				art_label.appendChild(auto_button);
				art_absatz.appendChild(art_label);
				form.appendChild(art_absatz);
				var absatz_login = document.createElement("p");
				var login_label = document.createElement("label");
				var login_label_text = document.createTextNode("Login erforderlich");
				this.login_input = document.createElement("input");
				this.login_input.type = "checkbox";
				if("" != this.eintrag)
				{
					if("true" == this.eintrag.login)
					{
						this.login_input.checked = "checked";
					}
				}
				this.login_input.id = "login_input";
				login_label.appendChild(this.login_input);
				login_label.appendChild(login_label_text);
				absatz_login.appendChild(login_label);
				form.appendChild(absatz_login);
				eint_div.appendChild(form);
				//
			}
		}
	}
	this.nachfrageLink = function()
	{
		if(document.getElementById(this.elter) && !document.getElementById(this.ids.id_nachfrage_link))
		{
			var text_makiert;
			if(typeof document.selection != 'undefined') {
				this.range =this.iframe.document.selection.createRange();// 
				text_makiert = this.range.text;
			}
			else
			{
				text_makiert = this.iframe.window.getSelection();
			}
			if("" != text_makiert)
			{
				var elter = document.getElementById(this.elter);
				var div_nach = document.createElement("div");
				div_nach.id = this.ids.id_nachfrage_link;
				elter.appendChild(div_nach);
				var div_nach_absatz = document.createElement("p");
				var div_nach_absatz_text = document.createTextNode("Bitte geben Sie ein Ziel für den Link an");
				div_nach_absatz.appendChild(div_nach_absatz_text);
				div_nach.appendChild(div_nach_absatz);
				div_nach.self = this;
				var eingabe_form = document.createElement("form");
				var absatz_eingabe = document.createElement("p");
				var label_ziel = document.createElement("label");
				var label_ziel_text = document.createTextNode("Link:");
				var ziel_input = document.createElement("input");
				ziel_input.type = "text";
				label_ziel.appendChild(label_ziel_text);
				label_ziel.appendChild(ziel_input);
				absatz_eingabe.appendChild(label_ziel);
				eingabe_form.appendChild(absatz_eingabe);
				div_nach.appendChild(eingabe_form);
				var abbrechen = document.createElement("button");
				var abbrechen_text = document.createTextNode("Zurück zum Editor");
				abbrechen.appendChild(abbrechen_text);
				abbrechen.div_nach = div_nach;
				abbrechen.self = this;
				abbrechen.onclick = function()
				{
					this.self.iframe.focus();
					this.div_nach.parentNode.removeChild(this.div_nach);
				}
				div_nach.appendChild(abbrechen);
				var fertig = document.createElement("button");
				var fertig_text = document.createTextNode("Link einfügen");
				fertig.appendChild(fertig_text);
				fertig.self = this;
				fertig.input_ziel = ziel_input;
				fertig.div_nach = div_nach;
				fertig.onclick = function()
				{
					if("" != this.input_ziel.value)
					{
						this.self.iframe.focus();
						if(false != this.self.range)
						{
							this.self.range.select();
						}
						this.self.formatieren("createLink",this.input_ziel.value);
						this.div_nach.parentNode.removeChild(this.div_nach);
					}
					//this.self.on_senden(this.self.obj_sp,daten);
				}
				div_nach.appendChild(fertig);
			}
			else
			{
				this.iframe.focus();
			}
		}
		else
		{
			this.iframe.focus();
		}
	}
	this.nachfrageBild = function()
	{
		if(document.getElementById(this.elter) && !document.getElementById(this.ids.id_nachfrage_bild))
		{
			var text_makiert;
			if(typeof document.selection != 'undefined') {
				this.range =this.iframe.document.selection.createRange();// 
				text_makiert = this.range.text;
			}
			else
			{
				text_makiert = this.iframe.window.getSelection();
			}
			if("" != text_makiert)
			{
				var elter = document.getElementById(this.elter);
				var div_nach = document.createElement("div");
				div_nach.id = this.ids.id_nachfrage_bild;
				elter.appendChild(div_nach);
				var iframe_bild = document.createElement("iframe");
				iframe_bild.src = this.ids.iframe_bild_src;
				iframe_bild.id = this.ids.id_iframe_bild;
				div_nach.appendChild(iframe_bild);
				var abbrechen = document.createElement("button");
				var abbrechen_text = document.createTextNode("Zurück zum Editor");
				abbrechen.appendChild(abbrechen_text);
				abbrechen.div_nach = div_nach;
				abbrechen.self = this;
				abbrechen.onclick = function()
				{
					this.self.iframe.focus();
					this.div_nach.parentNode.removeChild(this.div_nach);
				}
				div_nach.appendChild(abbrechen);
				var fertig = document.createElement("button");
				var fertig_text = document.createTextNode("Bild einfügen");
				fertig.appendChild(fertig_text);
				fertig.self = this;
				fertig.iframe_bild = iframe_bild;
				fertig.div_nach = div_nach;
				fertig.onclick = function()
				{
					if(this.iframe_bild.contentWindow.document.getElementById(this.self.ids.id_bild_iframe))
					{
						var bild = this.iframe_bild.contentWindow.document.getElementById(this.self.ids.id_bild_iframe);
						this.self.iframe.focus();
						if(false != this.self.range)
						{
							this.self.range.select();
						}
						this.self.formatieren("insertimage",bild.src);
						this.div_nach.parentNode.removeChild(this.div_nach);
					}
					//this.self.on_senden(this.self.obj_sp,daten);
				}
				div_nach.appendChild(fertig);
			}
			else
			{
				this.iframe.focus();
			}
		}
		else
		{
			this.iframe.focus();
		}
	}
	this.nachfragen = function(text_sp,daten)
	{
		if(document.getElementById(this.elter) && !document.getElementById(this.ids.id_nachfrage))
		{
			var elter = document.getElementById(this.elter);
			var div_nach = document.createElement("div");
			div_nach.id = this.ids.id_nachfrage;
			elter.appendChild(div_nach);
			var div_nach_absatz = document.createElement("p");
			var div_nach_absatz_text = document.createTextNode(text_sp);
			div_nach_absatz.appendChild(div_nach_absatz_text);
			div_nach.appendChild(div_nach_absatz);
			div_nach.self = this;
			var abbrechen = document.createElement("button");
			var abbrechen_text = document.createTextNode("Zurück zum Editor");
			abbrechen.appendChild(abbrechen_text);
			abbrechen.div_nach = div_nach;
			abbrechen.onclick = function()
			{
				this.div_nach.parentNode.removeChild(this.div_nach);
			}
			div_nach.appendChild(abbrechen);
			var fertig = document.createElement("button");
			var fertig_text = document.createTextNode("Fortfahren");
			fertig.appendChild(fertig_text);
			fertig.self = this;
			fertig.onclick = function()
			{
				this.self.on_senden(this.self.obj_sp,daten);
			}
			div_nach.appendChild(fertig);	
		}
	}
	this.nachfragenFehler = function(text_sp,daten)
	{
		if(document.getElementById(this.elter) && !document.getElementById(this.ids.id_nachfrage))
		{
			var elter = document.getElementById(this.elter);
			var div_nach = document.createElement("div");
			div_nach.id = this.ids.id_nachfrage;
			elter.appendChild(div_nach);
			var div_nach_absatz = document.createElement("p");
			var div_nach_absatz_text = document.createTextNode(text_sp);
			div_nach_absatz.appendChild(div_nach_absatz_text);
			div_nach.appendChild(div_nach_absatz);
			div_nach.self = this;
			var beheben = document.createElement("button");
			var beheben_text = document.createTextNode("Weiter");
			beheben.appendChild(beheben_text);
			beheben.div_nach = div_nach;
			beheben.onclick = function()
			{
				this.div_nach.parentNode.removeChild(this.div_nach);
			}
			div_nach.appendChild(beheben);
		}
	}
	this.antwortFormatieren = function()
	{
		var innerHTML = this.iframe.document.body.innerHTML;
		//alert(innerHTML);
		if("" != innerHTML)
		{
			innerHTML = innerHTML.replace(/<(font|span).+?>/gi,"");
			innerHTML = innerHTML.replace(/<\/(font|span)>/gi,"");
			innerHTML = innerHTML.replace(/<b>/ig,"<strong>");
			innerHTML = innerHTML.replace(/<\/b>/ig,"</strong>");
			innerHTML = innerHTML.replace(/<em>/ig,"<i>");
			innerHTML = innerHTML.replace(/<\/em>/ig,"</i>");
			innerHTML = innerHTML.replace(/<!--.+?-->/ig,"");//Kommentare entfernen
			innerHTML = innerHTML.replace(/&nbsp;/gi," ");
			//alert(innerHTML);
			innerHTML = innerHTML.replace(/<h([12])>(.+?)<\/h\1>/i,"");
			var ueberschrift_sp = RegExp.$2
			ueberschrift_sp = ueberschrift_sp.replace(/<br>|<br \/>/gi,"");
			if( "" != ueberschrift_sp && "" != innerHTML)
			{
				innerHTML = innerHTML.replace(/<br>|<br \/>/gi,"");
				innerHTML = innerHTML.replace(/<b>/ig,"<strong>");
				innerHTML = innerHTML.replace(/<\/b>/ig,"</strong>");
				innerHTML = innerHTML.replace(/<em>/ig,"<i>");
				innerHTML = innerHTML.replace(/<\/em>/ig,"</i>");
				innerHTML = innerHTML.replace(/<([a-z0-9]+)>/ig,this.startTag);
				innerHTML = innerHTML.replace(/<\/([a-z0-9]+)>/ig,this.endTag);
				innerHTML = innerHTML.replace(/ title="[a-zA-Z\.\\ ]*"/g,"");
				innerHTML = innerHTML.replace(/<a href="(.+)">(.*):_\/a_:/ig,":_a_:(:$1,$2:)$2:_/a_:");
				innerHTML = innerHTML.replace(/:_\/img_:/ig,"");
				innerHTML = innerHTML.replace(/<img *src="(.+?)">/ig,":_img_:(:$1, :):_/img_:");
				innerHTML = innerHTML.replace(/ title=" *"/,"");
				innerHTML = innerHTML.replace(/ /g,"");
				innerHTML = innerHTML.replace(/[\r]+/g,"");
				innerHTML = innerHTML.replace(/\n/g,"");
				innerHTML = innerHTML.replace(/([\/"\\(\n)(\b)(\f)(\r)])/g,"$1");
				innerHTML = innerHTML.replace(/:_p_::_\/p_:/g,"");
				var aus = "";
				if(true == this.erw)
				{
					var tag = document.getElementById("tag_select").value;
					var monat =document.getElementById("monat_select").value;
					var jahr = document.getElementById("jahr_select").value;
					var beginn_st = this.beginn_st_select.value;
					var beginn_min = this.beginn_min_select.value;
					var ende_st = this.ende_st_select.value;
					var ende_min = this.ende_min_select.value;
					var art = this.art_select.value;
					var login = this.login_input.checked;
					var ueberschrift = ueberschrift_sp;
					if("" != this.eintrag)
					{
						var id= this.eintrag.id_tb;
						var autor = this.eintrag.autor;
					}
					else
					{
						var id="";
						var autor = "";
					}
					aus = "{\"art\":\""+art+"\",\"tag\":\""+tag+"\",\"monat\":\""+monat+"\",\"jahr\":\""+jahr+"\",\"beginn_st\":\""+beginn_st+"\",\"beginn_min\":\""+beginn_min+"\",\"ende_st\":\""+ende_st+"\",\"ende_min\":\""+ende_min+"\",\"ueberschrift\":\""+ueberschrift+"\",\"text\":\""+innerHTML+"\",\"autor\":\""+autor+"\",\"login\":"+login+",\"id\":\""+id+"\"}";
				}
				else
				{
					var ueberschrift = ueberschrift_sp;
					if("" != this.eintrag)
					{
						var id= this.eintrag.id_tb;
						var autor = this.eintrag.autor;
					}
					else
					{
						var id="";
						var autor = Benutzer;
					}
					aus = "{\"ueberschrift\":\""+ueberschrift+"\",\"text\":\""+innerHTML+"\",\"autor\":\""+autor+"\",\"id\":\""+id+"\"}";
				}
				return aus;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	this.macheZweist = function(wert)
	{
		var aus= wert;
		if(10 > wert)
		{
			aus = "0"+wert;
		}
		return aus;
	}
	this.startTag = function(string_such,text_such,pos_such,string_ges)
	{
		var start = ":_";
		var text = text_such.toLowerCase()
		var ende = "_:";
		var aus = start+text+ende;
		return aus;
	}
	this.endTag = function(string_such,text_such,pos_such,string_ges)
	{
		var start = ":_/";
		var text = text_such.toLowerCase()
		var ende = "_:";
		var aus = start+text+ende;
		return aus;
	}
	this.ladeIds();
}



function Ajax() {
	this.request_obj;
	if(window.XMLHttpRequest)
	{
		this.request_obj =  new XMLHttpRequest();
	}
	else
	{
		this.request_obj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	this.methode = "GET";
	this.daten = new Array();
	this.url = "";
	this.cache = false;
	this.onComplete;
}

Ajax.prototype.setMethode = function(methode_sp)
{
	this.methode = methode_sp;
}

Ajax.prototype.addDaten = function(name_sp,wert_sp)
{
	var array_sp = new Array(name_sp,wert_sp);
	this.daten.push(array_sp);
}
Ajax.prototype.setURL = function(url_sp)
{
	this.url = url_sp;
}
Ajax.prototype.setCache = function(cache_sp)
{
	this.cache = cache_sp;
}
Ajax.prototype.setOnComplete = function(onComplete_sp)
{
	this.onComplete = onComplete_sp;
}

Ajax.prototype.senden = function()
{
	var daten_sp = new String();
	var laenge = this.daten.length;
	if("GET" != this.methode)
	{
		this.methode = "POST";
	}
	else
	{
		daten_sp += "?";
	}
	for(var pos = 0; pos <laenge; pos ++)
	{
		if(0 != pos)
		{
			daten_sp += "&";
		}
		daten_sp += this.daten[pos][0]+"="+this.daten[pos][1];
	}
	if("GET" == this.methode)
	{
		this.url += daten_sp;
	}
	this.request_obj.open(this.methode,this.url,true);
	if("POST" == this.methode)
	{
		this.request_obj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		this.request_obj.setRequestHeader("Content-length",daten_sp.length);
		this.request_obj.setRequestHeader("Connection","close");
	}
	if(false == this.cache)
	{
		this.request_obj.setRequestHeader("If-Modified-Since","Thu, 01 Jan 1970 00:00:00 GMT");
	}
	var objekt_sp = this;
	this.request_obj.onreadystatechange =  function()
	{
		if((objekt_sp.request_obj.readyState==4) && (objekt_sp.request_obj.status==200))
		{
			objekt_sp.onComplete(objekt_sp);
		}
	}
	if("POST" == this.methode)
	{
		this.request_obj.send(daten_sp);
	}
	else
	{
		this.request_obj.send(null);
	}
}

function News(daten_sp,id_inhalt)
{
	this.daten = eval(daten_sp);
	this.inhalt_div_id = id_inhalt;
	this.classHinz = function(element,classN)
	{
		if("" == element.className)
		{
			element.className = classN;
		}
		else
		{
			if(-1 == element.className.search(classN))
			{
				element.className += " " + classN;
			}
		}
	}
	this.classEntf = function(element,classN)
	{
		var class_sp = element.className;
		element.className = class_sp.replace(classN,"");
	}
	
	this.ajaxAusgabe = function(obj_sp)
	{
		var daten = eval("("+obj_sp.request_obj.responseText+")");
		obj_sp.self.setDaten(daten);
	}
	this.setDaten = function(daten_sp)
	{
		this.daten = daten_sp;
		this.ersetzeMonat();
	}

	
	this.linkEditor = function()
	{
		if(document.getElementById(this.daten.link_bearb))
		{
			var a_bearbeiten = document.getElementById(this.daten.link_bearb);
			a_bearbeiten.self = this;
			a_bearbeiten.onclick = function()
			{
				this.self.waehleEintrag();
				return false;
			}
		}
		if(document.getElementById(this.daten.link_hinz))
		{
			var a_einfuegen = document.getElementById(this.daten.link_hinz);
			a_einfuegen.self = this;
			a_einfuegen.onclick = function()
			{
				this.self.ladeEditor();
				return false;
			}
		}
	}
	this.waehleEintrag = function()
	{
		var laenge = this.daten.id_news.length;
		for(var pos = 0; pos< laenge; pos ++)
		{
			var element_sp = document.getElementById(this.daten.id_news[pos]);
			element_sp.self = this;
			element_sp.id_tb = this.daten.id_tb[pos];
			this.classHinz(element_sp,this.daten.klasse_zeiger);
			element_sp.onclick = function ()
			{
				this.self.ladeEditor(this.id_tb);
			}
		}
	}
	this.ajaxAusgabeEditor = function(obj_sp)
	{
		var daten_bearb = eval("("+obj_sp.request_obj.responseText+")");
		var inhalt_id =daten_bearb.id_inhalt_liste;
		var inhalt = document.getElementById(inhalt_id);
		var laenge_inhalt = daten_bearb.inhalt_liste.length;
		if(0 != laenge_inhalt)
		{
			var innerHTML_sp = "<h1>Termine</h1>";
			if("" != daten_bearb.class_ul)
			{
				innerHTML_sp += "<ul>";
			}
			else
			{
				innerHTML_sp += "<ul class=\""+daten_bearb.class_ul+"\">";
			}
			for(var pos_in = 0; pos_in < laenge_inhalt; pos_in ++)
			{
				innerHTML_sp += daten_bearb.inhalt_liste[pos_in];
			}
			innerHTML_sp += "</ul>";
			inhalt.innerHTML = innerHTML_sp;
		}
		var anzahl_boxen = daten_bearb.id_box.length;
		for(var pos_bearb = 0; pos_bearb < anzahl_boxen; pos_bearb++)
		{
			var box_sp = document.getElementById(daten_bearb.id_box[pos_bearb])
			obj_sp.self.classHinz(box_sp,daten_bearb.klasse_zeiger);
			box_sp.id_tb = daten_bearb.id_tb[pos_bearb];
			box_sp.self = obj_sp.self;
			box_sp.onclick = function()
			{
				this.self.ladeEditor(this.id_tb);
			}
		}
	}
	this.ladeEditor = function()
	{
		var anzahl_argumente = arguments.length
		if(0 < anzahl_argumente)
		{
			var id = arguments[0];
			var editor = new Editor(this,this.daten.id_box,"",this.daten.id_iframe,this.daten.src_iframe,id,this.datenEditor,false);
		}
		else
		{
			var editor = new Editor(this,this.daten.id_box,"",this.daten.id_iframe,this.daten.src_iframe,"",this.datenEditor,false);
		}
	}
	this.datenEditor = function(obj_sp,daten_sp)
	{
		var daten = eval("("+daten_sp+")");
		switch (daten.aktion)
		{
			case "update": obj_sp.update(daten_sp);
			break;
			case "insert": obj_sp.insert(daten_sp);
			break;
			case "abbrechen":obj_sp.abbrechen()
			break;
			case "loeschen": obj_sp.loeschen(daten_sp);
			break;
			default:obj_sp.ersetzeMonat();
		}
		
	}
	this.update = function(daten_sp)
	{
		var ajax_update = new Ajax();
		ajax_update.setMethode("POST");
		ajax_update.setURL(this.daten.src_php_ajax);
		ajax_update.addDaten("ajax_update","true");
		ajax_update.addDaten("daten",daten_sp);
		ajax_update.self = this;
		ajax_update.setOnComplete(this.ajaxAusgabe);
		ajax_update.senden();
		
	}
	this.insert = function(daten_sp)
	{
		
		var ajax_insert = new Ajax();
		ajax_insert.setMethode("POST");
		ajax_insert.setURL(this.daten.src_php_ajax);
		ajax_insert.addDaten("ajax_insert","true");
		ajax_insert.addDaten("daten",daten_sp);
		ajax_insert.self = this;
		ajax_insert.setOnComplete(this.ajaxAusgabe);
		ajax_insert.senden();
	}
	this.abbrechen = function()
	{
		this.inhalt();
	}
	this.loeschen = function(daten_sp)
	{
		var ajax_loeschen = new Ajax();
		ajax_loeschen.setMethode("POST");
		ajax_loeschen.setURL(this.daten.src_php_ajax);
		ajax_loeschen.addDaten("ajax_loeschen","true");
		ajax_loeschen.addDaten("daten",daten_sp);
		ajax_loeschen.self = this;
		ajax_loeschen.setOnComplete(this.ajaxAusgabe);
		ajax_loeschen.senden();
	}
	this.inhalt = function()
	{
		var box = document.getElementById(this.daten.id_box);
		box.innerHTML = this.daten.inhalt;
		this.linkEditor();
	}
	this.ajaxAusgabe = function(obj_sp)
	{
		//(obj_sp.request_obj.responseText);
		var daten = eval("("+obj_sp.request_obj.responseText+")");
		obj_sp.self.setDaten(daten);
	}
	this.setDaten = function(daten_sp)
	{
		this.daten = daten_sp;
		this.inhalt();
	}
	this.linkEditor();
}

function Browser()
{
	var ie = false;
	var mozilla = false;
	var opera = false;
	this.name = "";
	this.versionsnummer = 0;
	var ua = navigator.userAgent.toLowerCase();
	if(-1 != ua.indexOf("gecko/"))
	{
		mozilla = true;
		this.name = "mozilla";
	}
	if(-1 < ua.indexOf("msie") && -1 == ua.indexOf("opera"))
	{
		ie = true;
		this.name = "ie";
	}
	if(-1 < ua.indexOf("opera"))
	{
		var opera = true;
		this.name = "opera";
	}
	
	if(mozilla || opera)
	{
		var av = navigator.appVersion;
		this.versionsnummer = av.substring(0,av.indexOf("."))*1;
	}
	if(ie)
	{
		var av = navigator.appVersion;
		var version = av.substring(0,av.indexOf("."))*1;
		if(4 == version && -1 == ua.indexOf("msie 5") && -1 == ua.indexOf("msie 6") && -1 == ua.indexOf("msie 7") && -1 == ua.indexOf("msie 8") && -1 == ua.indexOf("msie 9"))
		{
			this.versionsnummer = 4;
		}
		else if(4 == version && -1 < ua.indexOf("msie 5"))
		{
			this.versionsnummer = 5;
		}
		else if(4 == version && -1 < ua.indexOf("msie 6"))
		{
			this.versionsnummer = 6;
		}
		else if(4 == version && -1 < ua.indexOf("msie 7"))
		{
			this.versionsnummer = 7;
		}
		else if(4 == version && -1 < ua.indexOf("msie 8"))
		{
			this.versionsnummer = 8;
		}
		else if(4 == version && -1 < ua.indexOf("msie 9"))
		{
			this.versionsnummer = 9;
		}
	}
	this.getName = function()
	{
		return this.name;
	}
	this.getVersionsnummer = function()
	{
		return this.versionsnummer;
	}
}
