/**
 *	Klasse EditText, Logik der Edit-Text-Komponente 
 */
function EditTextControl()
{
	//"globale" Variabeln in dieser "Klasse"
	var json = jsonobj_EditText;
	var json_obj;
	var blende;
	var objdiv;		//Der DIV-Bereich im Frontend, welcher das Editier-Objekt enthält
	
	
	var etds = _contentdiv.select("div.edittext");
	for(var a=0; a<etds.length; a++) {
		
		etds[a].observe('click', function(event) {

			var elems = (event.element()).ancestors();	//DOM-Elemente bis zur Wurzel
			elems.unshift(event.element());
			
			
			for(var i=0; i<elems.length; i++) {
				var css = String(elems[i].classNames());
				if(css.match(/edittext/)) {
					objdiv = (elems[i].ancestors())[0];
					objdiv = elems[i];
					
					create( Event.pointerX(event), Event.pointerY(event) );
					break;
				}
			}
			
			Event.stop(event);
			//alert(rtes[a]);
			//textdiv = rtes[a];
			//create( Event.pointerX(event), Event.pointerY(event) );
		});
	}
	
	
	/*
	_contentdiv.observe('click', function(event) {
		
		var elems = (event.element()).ancestors();	//DOM-Elemente bis zur Wurzel
		elems.unshift(event.element());
		
		
		for(var i=0; i<elems.length; i++) {
			var css = String(elems[i].classNames());
			if(css.match(/edittext/)) {
				objdiv = (elems[i].ancestors())[0];	//Eltern-Element des Admin-DIVs
				create( Event.pointerX(event), Event.pointerY(event) );
				break;
			}
		}
		
		alert("Karl-Heinz !");
		
	});	
	*/
	
	
	//Editier-Komponente erzeugen
	function create(clickX, clickY)
	{
		try {
			
			
			json_obj = eval("json." + (objdiv.ancestors()[0]).id );
			var editordiv = document.createElement('div');
			
			//Style-String zur Positionierung des Editor-DIV's zusammenbauen
			if(typeof json_obj.style != "undefined") {
				
				try {
					setWidth = parseInt( eval("json_obj.style.width") );
					setHeight = parseInt( eval("json_obj.style.height") );
					
					calcTop = clickY - Math.round(2 * (setHeight)); // + setHeight;
					calcLeft = clickX - Math.round(setWidth / 2); // + setWidth;
					
					//alert(calcTop);
					
					//if( (calcTop + setHeight) > 700) calcTop = calcTop + setHeight - 80;
					
					stylestr = "top: '" + calcTop + "px', left: '" + calcLeft + "px',";

					for(prop in json_obj.style) {
						if(prop != "top" && prop != "left")
						stylestr += prop + ":'" + eval("json_obj.style."+ prop) + "',";
					}
					
				} catch(e) {  
				
					alert(e);
					
					var stylestr = "";
					var propstr;
					for(prop in json_obj.style) {
						stylestr += prop + ":'" + eval("json_obj.style."+ prop) + "',";
					}
				}

				stylestr = stylestr.substr(0, stylestr.length-1);			
				eval("editordiv.setStyle({" + stylestr + "});");
				
				/*
				var stylestr = "";
				var propstr;
				for(prop in json_obj.style) {
					stylestr += prop + ":'" + eval("json_obj.style."+ prop) + "',";
				}
				stylestr = stylestr.substr(0, stylestr.length-1);			
				eval("editordiv.setStyle({" + stylestr + "});");
				*/
			}
			
			blende = new Blende( json.component_root, editordiv );
	
			/*
			//Elemente für den Fileupload erstellen
			//var fileupload = document.createElement('div');
			//fileupload.id = "fileupload";
			
			
			//fileupload.appendChild(loadpic);
			
			editordiv.innerHTML = "<iframe id=\"aframe\" name=\"aframe\"></iframe>";
			
			
			var now = new Date();
			*/
			editordiv.id = "edittext";

			var form = document.createElement('form');
			form.id = "edittextfield";
			//form.writeAttribute({ method: 'post', target: 'aframe', action: json.ajaxcall.updateimage_url, enctype: 'multipart/form-data'});
		    form.addClassName('visible');

			var headline = document.createElement('span');
			headline.innerHTML = "Text bearbeiten (ENTER = Bestätigen)";

			var edittextfield = document.createElement('input');
			edittextfield.id = "textfield";
			
			//alert(objdiv);
			//alert((objdiv.firstChild).firstChild.innerHTML);
			
			edittextfield.value = (objdiv.firstChild).innerHTML;
			edittextfield.writeAttribute({ type: 'input', name: 'textfield'});
			form.appendChild(edittextfield);
			
		    
			editordiv.appendChild(headline);
			editordiv.appendChild(form);
			
			if(typeof json_obj.style != "undefined") {
		
				var wv = 0;
				if(typeof json_obj.style.width != undefined) wv = parseInt(json_obj.style.width) + 35;
		
				blende.addCloseButton({top:"-15px", left: wv+"px"});
			}
			
			blende.addElement(editordiv);
			blende.show();
			
			
			//Edit-Dialog (Enter) --> Ergebnis absenden und eintragen
			edittextfield.observe('keypress', function(event) {
				
				//ENTER-Taste
				if(event.keyCode == Event.KEY_RETURN) {
					Event.stop(event);
					var textcontent = (event.element()).value;
					
					//ggf. zusätzliche JS-Handler abarbeiten
					if(typeof json.addedJSHandler[0] != "undefined") {
					
						try {
							eval(json.addedJSHandler[0]);
						} catch(e) {
							alert(e);
							alert("handler '" + json.addedJSHandler[0] + "' not found !")
						}
					}
					
					/*
					alert(json.ajaxcall.update_url);
					
					var res = 3;
					//Speichern des Editor-Inhalts in der Datenbank
					saveTextInDB = new Ajax.Request( json.ajaxcall.update_url , {
						  method:'post',
						  parameters: { content: textcontent, mediumid: objdiv.id },
						  requestHeaders: {Accept: 'text/plain'},
						  onSuccess: function(transport) {
							 
							  res = transport.responseText;
							  alert(res);
						  },
						  onComplete: function() {
							  
							  if(res == 1) {
								
								(objdiv.firstChild).firstChild.innerHTML = textcontent;
								blende.exitBlende();
							  } else {
								alert("Fehler beim Speichern des EditText-Objekts:\n" + res);
							  }
				
						  },
						  onFailure: function(){ alert("Datenbank-Fehler beim Speichern des EditText-Objekts!"); }
					});
					*/
				}

				//ESC-Taste -Abbruch
				if(event.keyCode == Event.KEY_ESC) {
					
					blende.exitBlende();
				}
			});

			
	
		} catch(e) {
			alert("Fehler in EditTextControl.create():\n" + e);
		}			
	
	}
	
}var jsonobj_EditText = [];_dynascript = _dynascript + "try { _etc = new EditTextControl(); } catch(e) { alert(\"Initialisierung EditTextControl()\\n\" + e); }";
