////////////////////////////////////////////////////////////////////////////////////////////////////////		
// mooEdit based on nyokiglitter - http://www.nyokiglitter.com/blog/mootools-in-place-editor - :)
////////////////////////////////////////////////////////////////////////////////////////////////////////	
	var mooEdit = new Class({
		initialize: function(el) {
			//start editor
			tinyMCE.init({
					theme : "advanced",
					mode: "none",
					valid_elements : "*[*]",
					plugins: "inlinepopups, save, advimage, advlink",
					theme_advanced_toolbar_location : "top",
					theme_advanced_statusbar_location : "bottom", //<-- remove this line
					theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,"
					+ "justifyleft,justifycenter,justifyright,justifyfull,formatselect,"
					+ "bullist,numlist,outdent,indent,",
					theme_advanced_buttons2 :"undo,redo,cleanup,code,separator,save,separator,sub,sup,charmap,link,unlink,anchor,image,separator,",
					theme_advanced_buttons3 : "",
					theme_advanced_resizing : true
						  });

			
			$$(el).each(function(el) {
				var obj = $(el); 
				obj.setStyle('background-color', '#ffffff');
				var hilighter = new Fx.Style(obj, 'background-color', {wait: false});
						$(el).addEvent('mouseover', function() {
							hilighter.start('#ffffcc');
						});
						$(el).addEvent('mouseout', function() {
							hilighter.start('#ffffff');
						});
								
						if($(el).getProperty('rel').indexOf('textarea') > -1){
												
								$(el).addEvent('click', function() {
									var rel = $(el).getProperty('rel');
									var params = parseQuery(rel.substr(5,999));
									
										$(el).style.display = 'none';
										var content = this.innerHTML;
										var container = this.parentNode;

										//check params are suitable or set base attributes
										if(params['rows'] == undefined){
											params['rows'] = '25';
											}
										if(params['cols'] == undefined){
											params['cols'] = '75';
											}

										var txtID = 'mce_'+$(el).getProperty('id');
											
										//textarea
										var textarea = new Element('textarea').injectInside(container);
										textarea.value = content;
										textarea.setProperty('class', 'mceEditor');
										textarea.setProperty('id', txtID);
										textarea.setProperties({
											rows: params['rows'],
											cols: params['cols']
										});
													  
										setTextareaToTinyMCE(txtID);
														
										//save + cancel div
										var saveDiv = new Element('div').injectInside(container);
										saveDiv.setProperty('class', 'txtAreaSave');
																				
										//cancel
										var cancel = new Element('a').injectInside(saveDiv);
										cancel.setProperty('href', 'javascript:;');
										cancel.innerHTML = 'cancel';
										
										//seperator
										var span = new Element('span').injectAfter(cancel);
										span.innerHTML = ' - ';
										
										//save
										var save = new Element('a').injectInside(saveDiv);
										save.setProperty('href', 'javascript:;');
										save.innerHTML = 'save';
		
										save.addEvent('click', function() {
											unsetTextareaToTinyMCE(txtID);
												$(el).style.display = 'block';
												$(el).innerHTML = textarea.value;
											
									if($('loading')){
											//values
												var field = $(el).getProperty('id');
												var rel = $(el).getProperty('rel');
												var params = parseQuery(rel.substr(5,999));
												var listing = params['listingid'];
																							
												$('loading').style.display = 'inline';
												var pars = 'listing='+listing+'&field='+field+'&data='+textarea.value;
												var url = 'ajax/model/functions?sys=realEstateSaveData';
												
												new Ajax( url, {
															 method: 'post',
															 postBody: pars,
															 onComplete: saveDataCallback }
															).request(); 								
										}
												textarea.remove();
												this.remove();
												cancel.remove();
												span.remove();
												saveDiv.remove();
										});
										cancel.addEvent('click', function() {
										unsetTextareaToTinyMCE(txtID);
											$(el).style.display = 'block';
											textarea.remove();
											this.remove();
											save.remove();
											span.remove();
											saveDiv.remove();
										});	

									});
						}
						if($(el).getProperty('rel') == 'input'){
								$(el).addEvent('click', function() {
										$(el).style.display = 'none';

										var content = this.innerHTML;
										var container = this.parentNode;
//										alert(container.innerHTML);
										
										//input
										var textarea = new Element('input').injectInside(container);
										textarea.value = content;
										textarea.setProperty('size',5);
										
										
										//save + cancel div
										var saveDiv = new Element('span').injectInside(container);
										saveDiv.setProperty('class', 'inputSave');
										
										//cancel
										var cancel = new Element('a').injectInside(saveDiv);
										cancel.setProperty('href', 'javascript:;');
										cancel.innerHTML = 'x';
										
										//seperator
										var span = new Element('span').injectAfter(cancel);
										span.innerHTML = ' - ';
										
										//save
										var save = new Element('a').injectInside(saveDiv);
										save.setProperty('href', 'javascript:;');
										save.innerHTML = 's';

										
										save.addEvent('click', function() {
											$(el).style.display = 'block';
											$(el).innerHTML = textarea.value;

								if($('loading')){		
											//values
												var field = $(el).getProperty('id');
												var listing = $('listingid').className;
																							
												$('loading').style.display = 'inline';
												var pars = 'listing='+listing+'&field='+field+'&data='+textarea.value;
												var url = 'ajax/model/functions?sys=realEstateSaveData';
												
												new Ajax( url, {
															 method: 'post',
															 postBody: pars,
															 onComplete: saveDataCallback }
															).request(); 
											}
												
											textarea.remove();
											this.remove();
											cancel.remove();
											span.remove();
											saveDiv.remove();
										});
										cancel.addEvent('click', function() {
											$(el).style.display = 'block';
											textarea.remove();
											this.remove();
											save.remove();
											span.remove();
											saveDiv.remove();
										});		
									});
						}
					});	
		
			},		
		
		hover: function(container, el, hilite, original) {
			var hilighter = new Fx.Color(el, 'background-color', {wait: false});
			$(container).addEvent('mouseover', function() {
				hilighter.toColor(hilite);
			});
			$(container).addEvent('mouseout', function() {
				hilighter.toColor(original);
			});
		}
	});

bTextareaWasTinyfied = false; //this should be global, could be stored in a cookie...
	function setTextareaToTinyMCE(sEditorID) {
		var oEditor = document.getElementById(sEditorID);
		if(oEditor && !bTextareaWasTinyfied) {
			tinyMCE.execCommand('mceAddControl', true, sEditorID);
			bTextareaWasTinyfied = true;
		}
		return;
	}
	function unsetTextareaToTinyMCE(sEditorID) {
		var oEditor = document.getElementById(sEditorID);
		if(oEditor && bTextareaWasTinyfied) {
			tinyMCE.execCommand('mceRemoveControl', true, sEditorID);
			bTextareaWasTinyfied = false;
		}
		return;
	}
