var mouseY;
var textarea_height;
var quote=false;

//preview
/*function text_preview(){
	if (document.getElementById("htmlarea").value!="") {
		str = document.getElementById("htmlarea").value;
		str=str.replace(/\n/g,"<br>");
		document.getElementById("preview_container").innerHTML=str;
		commentformPreviewSlide.slideIn();
	} else {
		commentformPreviewSlide.slideOut();
	}
}*/
//cursor
function getCursor(input)
{
	var result = { start: 0, end: 0 };
	if (input.setSelectionRange)
	{
		result.start= input.selectionStart;
		result.end = input.selectionEnd;
	}
	else if (!document.selection) { return 0; }
	else if (document.selection && document.selection.createRange)
	{

		var range = document.selection.createRange();
		var stored_range = range.duplicate();
		stored_range.moveToElementText(input);
		stored_range.setEndPoint('EndToEnd', range);
		result.start = stored_range.text.length - range.text.length;
		result.end = result.start + range.text.length; //}


	}
	return result;
}
function setCursor(txtarea, start, end){

	if(txtarea.createTextRange) {
		var range = txtarea.createTextRange();
		range.move("character", start);
		range.select();
	} else if(txtarea.selectionStart) {
		txtarea.setSelectionRange(start, end);
	}

}

function insert_tag(starttag,endtag){
	var txtarea = document.getElementById("htmlarea");
	txtarea.focus();
	var scrtop = txtarea.scrollTop;
	var cursorPos=getCursor(txtarea);

	if (cursorPos.start==cursorPos.end)
	{
		var nuCursorPos=cursorPos.start+starttag.length;
		txtarea.value = txtarea.value.substring(0,cursorPos.start)+starttag+endtag+txtarea.value.substr(cursorPos.start );
		setCursor(txtarea,nuCursorPos,nuCursorPos);
	}
	else{
		var txt_pre=txtarea.value.substring (0,cursorPos.start);
		var txt_sel=txtarea.value.substring(cursorPos.start,cursorPos.end);
		var txt_aft=txtarea.value.substring(cursorPos.end);
		txtarea.value = txt_pre+starttag+txt_sel+endtag+txt_aft;
		var nuCursorPos=String(txt_pre+starttag+txt_sel+endtag).length;
		setCursor(txtarea,nuCursorPos,nuCursorPos);
	}
	if (scrtop) txtarea.scrollTop=scrtop;
}

function insert_text_quote(){
	var txtarea = document.getElementById("htmlarea");
	var cur = getCursor(txtarea);
	if (cur.start!=cur.end){
		insert_tag("&laquo;", "&raquo;");
	}
	else
	{
		document.getElementById("quoteimg").src=quote?"/js/img/editor/laquo.gif":"/js/img/editor/raquo.gif";
		insert_tag("", quote?"&raquo;":"&laquo;");
		quote=!quote;
	}
}
function insert_text_mdash(){
	insert_tag("", "&mdash;");
}
function insert_text_blockquote(){
	insert_tag("<blockquote>", "</blockquote>");
}
function insert_text_b(){
	insert_tag("<b>", "</b>");
}
function insert_text_cut(){
	insert_tag("<cut>", "</cut>");
}
function insert_text_sup(){
	insert_tag("<sup>", "</sup>");
}
function insert_text_sub(){
	insert_tag("<sub>", "</sub>");
}
function insert_text_ul(){
	insert_tag("<ul>\n\t<li>", "</li>\n</ul>");
}
function insert_text_ol(){
	insert_tag("<ol>\n\t<li>", "</li>\n</ol>");
}
function insert_text_table(){
	insert_tag("<table>\n\t<tr>\n\t\t<th>","</th>\n\t</tr>\n\t<tr>\n\t\t<td></td>\n\t</tr>\n</table>");
}
function insert_text_youtube(){
	insert_tag("<youtube>", "</youtube>");
}
function insert_text_rutube(){
	insert_tag("<rutube>", "</rutube>");
}
function insert_text_img(){
	insert_tag('<img src="', '">');
}
function insert_text_img_blog(url){
	insert_tag('<img src="'+url+'">', '');
}
function insert_text_i(){
	insert_tag("<i>", "</i>");
}
function insert_text_user() {
	insert_tag("<user>", "</user>");
}
function insert_text_u(){
	insert_tag("<u>", "</u>");
}
function insert_text_link(){
	insert_tag('<a href="', '"></a>');
}
function resize_mousemove(evt){
	if (!evt) evt=this.event;
	if (evt.pageY)
	var newheight=evt.pageY-mouseY;
	else
	var newheight=evt.clientY-mouseY;
	if (newheight>=50){
		document.getElementById("htmlarea").style.height=newheight+"px";
		textarea_height=newheight;
	}
}
function resize_start(evt){
	if (!evt) evt=this.event;
	if (!textarea_height) textarea_height=100;
	if (evt.pageY)
	mouseY=evt.pageY-textarea_height;
	else
	mouseY=evt.clientY-textarea_height;
	if (document.addEventListener){ //GECKO
		document.addEventListener('mousemove',resize_mousemove,false);
	}
	else{//IE
		document.attachEvent('onmousemove',resize_mousemove);
	}
}

function resize_stop(){
	if (document.addEventListener){ //GECKO
		document.removeEventListener('mousemove',resize_mousemove,false);
	}
	else {//IE
		document.detachEvent('onmousemove',resize_mousemove);
	}
}

if (document.addEventListener){ //GECKO
	document.addEventListener('mouseup',resize_stop,false);
}
else {//IE
	document.attachEvent('onmouseup',resize_stop);
}