

var interpreteResponse = new Class({
	initialize: function(respo){
		$each(respo.getElementsByTagName('replace'), function(item, index) {
			var id = item.getProperty('id');
			var html = decodeURIComponent(item.innerHTML);
   			$(id).innerHTML = html;

   		})

		$each(respo.getElementsByTagName('message'), function(item, index) {
			var title = item.getProperty('id');
			var text = decodeURIComponent(item.innerHTML);
   			new MooPrompt(title, text, {
				buttons: 1,
				width:200,
				button1: 'OK',
				onButton1: function() {
				}
			});
   		})

   		$each(respo.getElementsByTagName('response'), function(item, index){
   			item.remove();
   		})
	}
});

function getPopup(name){
	var response = new Element('div').injectAfter(document.getElementById('content'));
	var pars = 'mod=syscm&type=popup&action='+name;
	var url = 'ajax.php';
	new Ajax( url, {
		method: 'post',
		postBody: pars,
		update: $('txtReponse'),
		onComplete: function(){
		var txtID = 'mce_'+$(el).getProperty('id');
		new interpreteResponse($('txtReponse'));
		}
	}
	).request();
}

//////////////////////////////////////////////////////////////////////////
// TinyMCE helper functions
//////////////////////////////////////////////////////////////////////////
bTextareaWasTinyfied = new Array(); //this should be global, could be stored in a cookie...
	function setTextareaToTinyMCE(sEditorID) {
		var oEditor = document.getElementById(sEditorID);
		if(oEditor && !bTextareaWasTinyfied[sEditorID]) {
			tinyMCE.execCommand('mceAddControl', true, sEditorID);
			bTextareaWasTinyfied[sEditorID] = true;
		}
		return;
	}
	function unsetTextareaToTinyMCE(sEditorID) {
		var oEditor = document.getElementById(sEditorID);
		if(oEditor && bTextareaWasTinyfied[sEditorID]) {
			tinyMCE.execCommand('mceRemoveControl', true, sEditorID);
			bTextareaWasTinyfied[sEditorID] = false;
		}
		return;
	}
//////////////////////////////////////////////////////////////////////////
// parseQuery code borrowed from ibox borrowed from thickbox, Thanks Cody!
// retrieve rel attributes with cols=x&rows=x
//////////////////////////////////////////////////////////////////////////
		parseQuery = function(query) {
		   var Params = new Object ();
		   if (!query) return Params;
		   var Pairs = query.split(/[;&]/);
		   for ( var i = 0; i < Pairs.length; i++ ) {
			  var KeyVal = Pairs[i].split('=');
			  if ( ! KeyVal || KeyVal.length != 2 ) continue;
			  var key = unescape( KeyVal[0] );
			  var val = unescape( KeyVal[1] );
			  val = val.replace(/\+/g, ' ');
			  Params[key] = val;
		   }
		   return Params;
		}


///Addons zu Mootools
String.extend({
  toElement: function() {
    var tagInfo = this.match(/<(\S*) (.*)>(.*)\<\/\1>/);
    if(tagInfo) {
      var tag = tagInfo[1],
          attributes = "{" + tagInfo[2].replace(/(\S*)=(['"\\]?)([^'"\\]*)\2\s?/g, "\"$1\":\"$3\",") + "}",
          html = tagInfo[3];
      return new Element(tag, Json.evaluate(attributes)).setHTML(html);
    } else return new Element("div").setHTML(this);
  },
  toElements: function() {
    var tags = this.match(/\<(\S*)\>([^<>]*)\<\/\1>/g), elements = [];
    if(tags) {
      for(var i = 0; i < tags.length; i++) {
        var element = tags[i].toElement();
        if(element) elements.push(element);
      }
      return elements;
    } else return [this.toElement()];
  },

  injectBefore: function(element) {
    this.toElements().each(function(item) {
      item.injectBefore(element);
    });
  },
  injectAfter: function(element) {
    this.toElements().each(function(item) {
      item.injectAfter(element);
    });
  },
  injectInside: function(element) {
    this.toElements().each(function(item) {
      item.injectInside(element);
    });
  },
  injectTop: function(element) {
    this.toElements().each(function(item) {
      item.injectTop(element);
    });
  }
});

Element.extend({
  appendTopHTML: function(html) {
    this.setHTML(html + this.innerHTML);
  },
  appendHTML: function(html) {
    this.setHTML(this.innerHTML + html);
  }
});
