// JavaScript Document
var inlineEdit = new Class({
	getOptions: function(){
		return {
			onComplete: function(el,oldContent,newContent){
				//alert('changed: \r\n'+oldContent+'\r\n\r\nTo: \r\n'+newContent);
			}
		};
	},
	initialize: function(element,options){
		this.editting = element;
		this.setOptions(this.getOptions(), options);
		this.inputBox = new Element('input').setProperty('value',element.innerHTML).setStyles('width:100%;font-size:100%;');
		//this.setAllStyles(element,this.inputBox);
		this.oldContent = element.innerHTML;
		this.editting.setHTML('');
		this.inputBox.injectInside(this.editting);
		(function(){this.inputBox.focus()}.bind(this)).delay(300);
		this.inputBox.addEvent('change',this.onSave.bind(this));
		this.inputBox.addEvent('blur',this.onSave.bind(this));
	},
	onSave: function(){
		this.newContent = this.inputBox.value;
		this.editting.setHTML(this.newContent);
		this.fireEvent('onComplete', [this.editting,this.oldContent,this.newContent]);
	},
	setAllStyles: function(prevel,el){
		var height = 'auto';
		if(prevel.getProperty('name'))el.setProperty('name',prevel.getProperty('name'));
		if(prevel.getStyle('font'))el.setStyle('font', prevel.getStyle('font'));
		if(prevel.getStyle('font-family'))el.setStyle('font-family', prevel.getStyle('font-family'));
		if(prevel.getStyle('font-weight'))el.setStyle('font-weight', prevel.getStyle('font-weight'));
		if(prevel.getStyle('line-height'))el.setStyle('line-height', prevel.getStyle('line-height'));
		if(prevel.getStyle('letter-spacing'))el.setStyle('letter-spacing', prevel.getStyle('letter-spacing'));
		if(prevel.getStyle('list-style'))el.setStyle('list-style', prevel.getStyle('list-style'));
		if(prevel.getStyle('color'))el.setStyle('color', prevel.getStyle('color'));
	}
});

inlineEdit.implement(new Events);
inlineEdit.implement(new Options);
