/**
 *	Klasse InnerLinkControl, Logik der zum Editieren von Caption und HREF des Links
 */
function InnerLinkControl()
{
	//"globale" Variabeln in dieser "Klasse"
	var json = jsonobj_InnerLink;
	var json_obj;
	var blende;
	var objdiv;		//Der DIV-Bereich im Frontend, welcher das Editier-Objekt enthält
	
	
	var ils = _contentdiv.select("div.innerlink");
	for(var a=0; a<ils.length; a++) {
		
		ils[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(/innerlink/)) {
					objdiv = (elems[i].ancestors())[0];		//Eltern-Element des Admin-DIVs
					create( Event.pointerX(event), Event.pointerY(event) );
					break;
				}
			}
			
			Event.stop(event);
		});

	}	
	

	
	
	//Editier-Komponente erzeugen
	function create(clickX, clickY)
	{
		try {
			
			json_obj = eval("json."+objdiv.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; // + setHeight;
					calcLeft = clickX - Math.round(setWidth / 2); // + setWidth;
					
					if( (calcTop + setHeight) > 720) calcTop = calcTop - (calcTop - 400);
					
					//if(calcLeft > 900) calcLeft = 900; else calcLeft = clickX - Math.round(setWidth / 2);
					
					
					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) {  
				
					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 );
	
			editordiv.id = "innerlink";

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

			var desc_caption = document.createElement('span');
			desc_caption.id = "caption";
			desc_caption.innerHTML = "Textanzeige des Links:";

			var desc_href = document.createElement('span');
			desc_href.id = "href";
			desc_href.innerHTML = "Verweisziel des Links:";

			
			var edittextfield = document.createElement('input');
			edittextfield.id = "textfield";
			edittextfield.value = ((objdiv.select("a"))[0]).innerHTML;
			edittextfield.writeAttribute({ type: 'input', name: 'textfield'});
			form.appendChild(edittextfield);

			
			
			var linkbox = document.createElement('select');
			linkbox.writeAttribute({id: 'linklist', name: 'linklist', size: '8'});
			//Seitenstruktur für den Inhalt der Linkbox via AJAX ermitteln
			var res = "error";
			
			
			
			new Ajax.Request( json.ajaxcall.getsites_url , {
				  method:'post',
				  parameters: { currentlink: ((objdiv.select("a"))[0]).href },
				  requestHeaders: {Accept: 'text/plain'},
				  onSuccess: function(transport) 
				  {
					  res = transport.responseText;
					  //alert(res);
				  },
				  onComplete: function() 
				  {
					  if(res != "error") 
					  {
						linkbox.innerHTML = res;
						
						window.setTimeout(function() {
							//wenn keine Vorauswahl getroffen, standardmäßig ersten Eintrag markieren
							if(linkbox.options.selectedIndex <= 0) {
								
								linkbox.options.selectedIndex = 0;
							}
						},100);
						
					  } 
					  else 
					  {
						alert("Fehler beim Erstellen der Seitenstruktur:\n" + res);
					  }
				  },
				  onFailure: function(){ alert("Ajax-Fehler beim Abfragen der Seitenstruktur!"); }
			});
			
			
			
			var okbutton = document.createElement('input');
			okbutton.writeAttribute({id: 'okbutton', name: 'okbutton', type: 'button'});
		    okbutton.value = "Übernehmen";

			var visitbutton = document.createElement('input');
			visitbutton.writeAttribute({id: 'visitbutton', name: 'visitbutton', type: 'button'});
		    visitbutton.value = "Link besuchen";

		    
			editordiv.appendChild(desc_caption);
			editordiv.appendChild(form);
			editordiv.appendChild(desc_href);
			editordiv.appendChild(linkbox);
			editordiv.appendChild(okbutton);
			editordiv.appendChild(visitbutton);
			
			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);
					saveLink();
				}
				//ESC-Taste -Abbruch
				if(event.keyCode == Event.KEY_ESC) blende.exitBlende();
				
			});
			
			
			//Übernehmen-Button: Link-Caption und Verweisziel übernehmen
			okbutton.observe('click', function(event) {
				saveLink();
			});	
			
			
			function saveLink() {
				
				if(linkbox.options.selectedIndex != -1) 
				{
					
					
					var res = 3;
					//Aufruf der PHP-Routine via AJAX
					saveTextInDB = new Ajax.Request( json.ajaxcall.updatelink_url , {
						  method:'post',
						  parameters: {	caption: edittextfield.value, 
										id: linkbox.options[linkbox.options.selectedIndex].value, 
										mediumid: objdiv.id
						  },
						  requestHeaders: {Accept: 'text/plain'},
						  onSuccess: function(transport) {
							 
							  res = transport.responseText;
							  //alert(res);
						  },
						  onComplete: function() {
							  
							  if(res != "error") {
								try {
									returnobj = res.evalJSON();
									
									(objdiv.firstChild).firstChild.innerHTML = "<a href=\"" +returnobj.href+ "\">" + edittextfield.value + "</a>"; 
									blende.exitBlende();
								} catch(e) {
									alert("saveLink() - Fehler:\n" + e);
								}
							  } else {
								alert("Fehler beim Speichern des InnerLink-Objekts:\n" + res);
							  }
				
						  },
						  onFailure: function(){ alert("Datenbank-Fehler beim Speichern des InnerLink-Objekts!"); }
					});
				}
			
			}	
			
			
			
			//"Link besuchen"-Button: zum Verweisziel wechseln
			visitbutton.observe('click', function(event) { getAndVisitLink(); });

			//Doubleklick in die Liste: zum Verweisziel wechseln
			linkbox.observe('dblclick', function(event) { getAndVisitLink(); });

			
			function getAndVisitLink()
			{
				
				
				if(linkbox.options.selectedIndex != -1) {
					
					var res = 3;
					//Aufruf der PHP-Routine via AJAX
					saveTextInDB = new Ajax.Request( json.ajaxcall.getsiteuri_url , {
						  method:'post',
						  parameters: {	id: linkbox.options[linkbox.options.selectedIndex].value },
						  requestHeaders: {Accept: 'text/plain'},
						  onSuccess: function(transport) {
							  res = transport.responseText;
							  //alert(res);
						  },
						  onComplete: function() {
							  
							  if(res != "error") {
								  top.location.href = res;
							  } else {
								alert("Fehler beim Abfragen des Links zu einer Seitenid:\n" + res);
							  }
						  },
						  onFailure: function(){ alert("Datenbank-Fehler beim Abfragen einer Seitenid !"); }
					});
					
				}
			}
			
			
		} catch(e) {
			alert("Fehler in EditTextControl.create():\n" + e);
		}			
	
	}
	
}var jsonobj_InnerLink = {"component_root":"\/webframework\/Component\/InnerLink\/","document_root":"\/perform\/site\/","subsiteelem_3_153_link":{"style":{"position":"absolute","top":"200px","left":"350px","width":"300px","height":"260px"}},"ajaxcall":{"updatelink_url":"429380dsaoifj\/ajax\/updatelinkcaption","getsites_url":"4234erfdfdafasd\/ajax\/fetchpagestructure","getsiteuri_url":"fijgfodj0sf093urdsf3\/ajax\/getsiteuri"},"subsiteelem_3_154_link":{"style":{"position":"absolute","top":"200px","left":"350px","width":"300px","height":"260px"}},"subsiteelem_3_157_link":{"style":{"position":"absolute","top":"200px","left":"350px","width":"300px","height":"260px"}}};_dynascript = _dynascript + "try { _etc = new InnerLinkControl(); } catch(e) { alert(\"Initialisierung InnerLinkControl()\\n\" + e); }";
