﻿// Ein Fenster, das mit Ajax geöffnet wird, kann in der 'verarbeite_antwort'-Funktion
// ein 'fenster_schliesser'-Objekt konstruieren, das den Schliessen-Button Ajax-fähig macht.
// Aufruf: var blabla = new fenster_schliesser.konstruiere('ID des Elements, in das Ajax das Fenster reinschreibt',
//																																																									 Das 'Erkenner-Attribut': muss 'name' sein, 
//																																																										Der Wert des Attr. (von name=" ... ") z.B. name="bildgrossansicht_schliessen",
//																																																									 Die url des Fensters, z.B. 'includes/inc_bild_grossansicht.php');

 
function ein_fenster_schliessen()// Hier mit Contentloader Fenster schliessen
	{
		var params 	= this.fenster_schliesser.erstelle_anfragedaten(this.input_feld_name);

		//alert("fenster_schliesser: "+this.fenster_schliesser+ " url: "+this.fenster_schliesser.url+"\nParams: "+params);

	 var sending = new mpAjax.ContentLoader(this.fenster_schliesser.url,this.fenster_schliesser.verarbeite_antwort, params);
		
				// Der Kontext in der 'verarbeite_antwort' Fkt. ist der Contentloader!
		sending.span_element_id = this.span_element_id; 
		//alert("spanID: "+sending.span_element_id);
	
		// Nur im Administrationsmodus (eingeloggt)
		// Da sollte vielleicht vom Server aus ein Variable gesetzt werden....
		if(this.fenster_schliesser.steuerung_laden)
			{
					var element = document.getElementById('cms_strg_bearbeiten');
			 	if(element)
				 	lade_steuerung(element);
			}
}

//-----------------------------------------------------------------------------------------

var fenster_schliesser = new Object();

fenster_schliesser.konstruiere = function (span_element_id, erkenner, name, url, steuerung_laden)
{
	if(steuerung_laden)
		this.steuerung_laden = true;
	if(url)
		this.url = url;
	else
		this.url = "index.php";

	// Im Moment muss der 'Erkenner' 'name' (das name-Feld im input-tag) sein, alles andere geht noch nicht,
	// wird aber wahrscheinlich auch nie gebraucht. Die Erkennung sollte immer über name funktionieren.

		if(erkenner == 'name')
			{
				var elemente = document.getElementsByName(name);
				var num_el = elemente.length;
				if(num_el > 0)
						{
							var close_click 										= new Array();
							for(var i=0; i<num_el; i++)
								{				
									var element = elemente[i];
									close_click[i] = new jsEvent.EventRouter(element,"onclick");
									close_click[i].input_feld_name = name;
									close_click[i].span_element_id = span_element_id;	
									close_click[i].fenster_schliesser = this;
									close_click[i].addListener(ein_fenster_schliessen);				 
								}
					}
			}
//alert("Schliessbtns: "+num_el);
//window.status = "Schliessbtns: "+num_el;


		if(erkenner == 'class')		// nicht fertig
			{
				var forms = new Array();
			 forms = document.getElementsByTagName('form');
				var num = forms.length;
				if(num>0)
					{
						var close_click 										= new Array();
						var input=new Array();
						var j=0;
						for(var i=0; i<num; i++)
							{
												//alert("className "+forms[i].className+ "  ... "+i);
								if(forms[i].className == 'x')
									{
										var x_form = forms[i];
										var inputs=new Array();
										var inputs = x_form.getElementsByTagName('input');
										var element = inputs[0];
										close_click[j] = new jsEvent.EventRouter(element,"onclick");
										//close_click[j].input_feld_name = name;
										close_click[j].span_element_id = span_element_id;	
										close_click[j].fenster_schliesser = this;
										close_click[j].addListener(ein_fenster_schliessen);		
										j++;
										
										
										//alert("INPUT "+input);
										break;
									}
							}
					}
			}

}


fenster_schliesser.konstruiere.prototype = 
	{
			erstelle_anfragedaten:function(name)
				{
					return name+"=true";
				}
			,
			verarbeite_antwort:function()				// Der Kontext hier ist der Contentloader!
				{
					var element = document.getElementById(this.span_element_id);
					element.innerHTML = this.req.responseText;
					if(typeof tinyMCE != 'undefined')
						eval(js_globals.tinyMCE_config_norm);
					window.status = "Fenster geschlossen...";	
					//alert("Obj: "+this.req+"\nText: "+this.req.responseText);
				}	
	
	}

