function easyEditor(editObjId)
{
	// actions
	// bold, italic, underline, strike, link, user, indent, img;
	//alert(editObjId+"\n"+E(editObjId));
	this.editObj = E(editObjId); 
	this.editObjId = editObjId; 
	
	this.selection = null;
	this.selectionStart = null;
	this.selectionEnd = null;
	
	this.replaceSelectedText = replaceSelectedText; // func replaceSelectedText
	this.captureText = captureText; // func captureText
	this.TF = new textFiltres();
	
	this.bold = function(){this.replaceSelectedText('TF.bold');}
	this.italic = function(){this.replaceSelectedText('TF.italic');}
	this.underline = function(){this.replaceSelectedText('TF.underline');}
	this.strike = function(){this.replaceSelectedText('TF.strike');}
	this.indent = function(){this.replaceSelectedText('TF.indent');}
	this.link = function(){this.replaceSelectedText('TF.link');}
	this.user = function(){this.replaceSelectedText('TF.user');}
	this.img = function(){this.replaceSelectedText('TF.img');}
	
}

function replaceSelectedText(action)
{
 this.editObj.focus();

 if (this.selection) // IE 
 {
     eval("this.selection.text=this."+action+"(this.selection.text);");
	 this.selection.select();
	 return true;
 }
 else if (typeof(this.editObj.selectionStart)=="number")
 {
     eval("var rs = this."+action+"(this.editObj.value.substr(this.selectionStart,this.selectionEnd-this.selectionStart));");
     this.editObj.value = this.editObj.value.substr(0,this.selectionStart)+rs+this.editObj.value.substr(this.selectionEnd);
	 if (this.selectionEnd==this.selectionStart)
	 {
		this.selectionEnd=this.selectionEnd+rs.length;
	 }
     this.editObj.setSelectionRange(this.selectionEnd,this.selectionEnd);
	 return true;
 }

 return false;
}

function captureText()
{
	this.selection = null;
	this.selectionStart = null;
	this.selectionEnd = null;
	if (document.selection) // IE || Opera
	{
		this.selection = document.selection.createRange(); 
		//alert('this.selection'+this.selection.text)
		if (this.selection.text)
		{
			this.selection.select();
			return true;
		}
	}
	else if (typeof(this.editObj.selectionStart)=="number") //FF || Safari
	{
		this.selectionStart = this.editObj.selectionStart;
		this.selectionEnd = this.editObj.selectionEnd;
		//alert('FF'+"\n"+this.editObj.value.substr(this.selectionStart,this.selectionEnd-this.selectionStart))
		return true;
	}
}

function textFiltres()
{
	this.bold = function(text){return '<strong>'+text+'</strong>';}
	this.italic = function(text){return '<em>'+text+'</em>';}
	this.underline = function(text){return '<u>'+text+'</u>';}
	this.strike = function(text){return '<strike>'+text+'</strike>';}
	this.indent = function(text){return '<blockquote>'+text+'</blockquote>';}
	this.link = function(text)
		{
			var url = prompt('Введите адрес страницы','http://');
			
			if ('string'==typeof(url) && 0<=url.length)
				return '<a href="'+url+'">'+text+'</a>';
			else return text;
		}
	this.user = function(text)
		{
			if (!text)
				text = prompt('Введите имя пользователя Блог.ру','');
			
			if ('string'==typeof(text) && 0<=text.length)
				return '[user '+text+']';
			else return '';
			
		}
	this.img = function(text)
		{
			if (!text)
				text = prompt('Введите адрес изображения','http://')
			
			if ('string'==typeof(text) && 0<=text.length)
				return '<img src="'+text+'" alt="" />';
			else return '';
		}
}


