var SForum = new Class ({
	
	options: {		
		loading:false,
		from_id:0
	},
	
	initialize: function(options){
		this.setOptions(options);
	},
	
	editText:Array(), //needed for cancel button
	edit: function(id) {
		if($('post_content_'+id).innerHTML.test("<textarea")) return false;
		height = heightEl('post_content_'+id) + 22;
		if(height < 200) height = 200;
		
		this.editText[id] = $('post_content_'+id).innerHTML;
		$('post_content_'+id).innerHTML = "<textarea rows=\"15\" class=\"writeentry\" style=\"width:500px;height: "+height+"px;\" id=\"savethistext_"+id+"\">"+revertp(this.editText[id])+"</textarea>"+"<br/>"+getBBBar("savethistext_"+id)+"<br/>";
		
		$('post_content_'+id).adopt(
			new Element("button", {'id':'save_button_'+id}).setHTML('speichern').addEvent('click', 
				function() {return mySForum.saveEntry(id)}
			)
		).adopt(new Element("span").setHTML("&nbsp;")).adopt(
			new Element("button", {'id':'cancel_button_'+id}).setHTML('abbrechen').addEvent('click', 
				function() {return mySForum.cancelEdit(id)}
			)
		).adopt(new Element("div").setHTML('<h3>Vorschau</h3><div id="commentPreview"></div>'));
		$('savethistext_'+id).addEvent('keyup', function(){
			$('commentPreview').innerHTML = '<div>' + wpautop(($('savethistext_'+id).value)) + '</div>';
		});
			$('commentPreview').innerHTML = '<div>' + wpautop(($('savethistext_'+id).value)) + '</div>';
		
		return false;
	},
	
	cancelEdit: function(id) {
		$('post_content_'+id).innerHTML = this.editText[id];
		//restoreEditButtons(id);
		return false;
	},
	
	saveEntry: function(id) {
		this.editText[id] = $('savethistext_'+id).value;
		toShow = wpautop(this.editText[id]); //get the html code
		$('post_content_'+id).innerHTML = toShow;
		
		//disable the buttons and say "wird gespeichert..."
		$('save_button_'+id).onclick=function() {return false;};
		$('post_edit_button_'+id).innerHTML="wird gespeichert...";
		$('cancel_button_-'+id).onclick=function() {return false;};
		
		jslink('/'+LANG.LANG+'/forum/edit/'+id+'/', {'text':this.editText[id]}, 'Forum::edit', function(theText) {$('post_edit_button_'+id).setHTML("&rarr; &auml;ndern"); var myObject = Json.evaluate(theText); $('post_content_'+id).setHTML(wpautop(myObject.text))});
		
		return false;
	},
	
	isLoggedIn: function(nologinto) {
		if(this.options.user_id>0) return true;
		else {location.href = '/'+this.options.LANG+'/nologin'+nologinto; return false; }
	}
	
});

SForum.implement(new Chain, new Events, new Options);

function getBBBar(textfieldID) {
	return	'<input title="Alt+B" type="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="insertbb(\'[b]\',\'[/b]\',\''+textfieldID+'\')">'+
		'<input title="Alt+I" type="button" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="insertbb(\'[i]\',\'[/i]\',\''+textfieldID+'\')">'+
		'<input title="Alt+U" type="button" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="insertbb(\'[u]\',\'[/u]\',\''+textfieldID+'\')">'+
		'<input title="Alt+D" type="button" accesskey="d" name="addbbcode5" value=" s " style="text-decoration: line-through; width: 30px" onclick="insertbb(\'[s]\',\'[/s]\',\''+textfieldID+'\')">'+
		'<input title="Alt+Q" type="button" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="insertbb(\'[quote]\',\'[/quote]\',\''+textfieldID+'\')">'+
		'<input title="Alt+L" type="button" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="insertbb(\'[list]\',\'[/list]\',\''+textfieldID+'\')">'+
		'<input title="Alt+X" type="button" accesskey="x" name="addbbcode18" value="[*]" style="width: 40px" onclick="insertbb(\'[*]\',\'\',\''+textfieldID+'\')">'+
		'<input title="Alt+P" type="button" accesskey="p" name="addbbcode14" value="Img" style="width: 40px"  onclick="insertbb(\'[img]\',\'[/img]\',\''+textfieldID+'\')">'+
		'<input title="Alt+W" type="button" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="insertbb(\'[url]\',\'[/url]\',\''+textfieldID+'\')">';
}