function storeCaret(text)
{
	// Only bother if it will be useful.
	if (typeof(text.createTextRange) != "undefined")
		text.caretPos = document.selection.createRange().duplicate();
}

// Replaces the currently selected text with the passed text.
function replaceText(text, textarea)
{
	// Attempt to create a text range (IE).
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		caretPos.select();
	}
	// Mozilla text range replace.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var scrollPos = textarea.scrollTop;

		textarea.value = begin + text + end;

		if (textarea.setSelectionRange)
		{
			textarea.focus();
			textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
		}
		textarea.scrollTop = scrollPos;
	}
	// Just put it on the end.
	else
	{
		textarea.value += text;
		textarea.focus(textarea.value.length - 1);
	}
}

// Surrounds the selected text with text1 and text2.
function surroundText(text1, text2, textarea)
{
	// Can a text range be created?
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;

		if (temp_length == 0)
		{
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		}
		else
			textarea.focus(caretPos);
	}
	// Mozilla text range wrap.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;

		textarea.value = begin + text1 + selection + text2 + end;

		if (textarea.setSelectionRange)
		{
			if (selection.length == 0)
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			else
				textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			textarea.focus();
		}
		textarea.scrollTop = scrollPos;
	}
	// Just put them on the end, then.
	else
	{
		textarea.value += text1 + text2;
		textarea.focus(textarea.value.length - 1);
	}
}


function replace(str,ch1,ch2) {
  if (str == "") return "";
  do{
    pos = str.indexOf(ch1);
    if (pos == -1) return str;
    str = str.replace(ch1,ch2);
  }  while (true);
}

function GetYan2(str){
  str = replace(str,"&","\uFFFE");
  str = replace(str,"ma'may","\uFFFD");
  str = replace(str,"a'","\u04D9");str = replace(str,"A'","\u04D8");
  str = replace(str,"o'","\u04E9");str = replace(str,"O'","\u04E8");
  str = replace(str,"i'","\u0131");str = replace(str,"I'","\uFFFF");
  str = replace(str,"I","\u0130"); str = replace(str,"\uFFFF","I");
  str = replace(str,"u'","\u00FC");str = replace(str,"U'","\u00DC");
  str = replace(str,"ch","\u00E7");str = replace(str,"Ch","\u00C7"); str = replace(str,"CH","\u00E7");
  str = replace(str,"gh","\u011F");str = replace(str,"Gh","\u011E"); str = replace(str,"GH","\u011E");
  str = replace(str,"sh","\u015F");str = replace(str,"Sh","\u015E"); str = replace(str,"SH","\u015E");
  str = replace(str,"n'","\u014B");str = replace(str,"N'","\u014A");
  str = replace(str,"àü","\u04D9");str = replace(str,"Àü","\u04D8");str = replace(str,"ÀÜ","\u04D8");
  str = replace(str,"îü","\u04E9");str = replace(str,"Îü","\u04E8");str = replace(str,"ÎÜ","\u04E8");
  str = replace(str,"óü","\u04AF");str = replace(str,"Óü","\u04AE");str = replace(str,"ÓÜ","\u04AE");
  str = replace(str,"õú","\u04BB");str = replace(str,"Õú","\u04BA");str = replace(str,"ÕÚ","\u04BA");
  str = replace(str,"æú","\u0497");str = replace(str,"Æú","\u0496");str = replace(str,"ÆÚ","\u0496");
  str = replace(str,"íú","\u04A3");str = replace(str,"Íú","\u04A2");str = replace(str,"ÍÚ","\u04A2");
  str = replace(str,"ê\"","\u049B");str = replace(str,"Ê\"","\u049A");
  str = replace(str,"ã\"","\u0491");str = replace(str,"Ã\"","\u0490");
  str = replace(str,"â\"","w");str = replace(str,"Â\"","W");
  str = replace(str,"\uFFFD","ma'may");
  str = replace(str," ","&nbsp;");
  str = replace(str,"<","&lt;");
  str = replace(str,">","&gt;");
  str = replace(str,"\n","<br>");
  str = replace(str,"[b]","<b>");
  str = replace(str,"[/b]","</b>");
  str = replace(str,"[i]","<i>");
  str = replace(str,"[/i]","</i>");
  str = replace(str,"[u]","<u>");
  str = replace(str,"[/u]","</u>");
  str = replace(str,"[color=red]","<font color=red>");		//qi'zi'l
  str = replace(str,"[color=yellow]","<font color=yellow>");	//sari'
  str = replace(str,"[color=green]","<font color=green>");	//ya'shel
  str = replace(str,"[color=orange]","<font color=orange>");	//a'flisun
  str = replace(str,"[color=purple]","<font color=purple>");	//quyi' qi'zi'l
  str = replace(str,"[color=blue]","<font color=blue>");	//za'nga'r
  str = replace(str,"[color=brown]","<font color=brown>");	//ko'ra'n
  str = replace(str,"[color=teal]","<font color=teal>");	//fira'za'
  str = replace(str,"[color=navy]","<font color=navy>");	//quyi' za'nga'r
  str = replace(str,"[color=maroon]","<font color=maroon>");	//qi'zi'l-ko'ra'n
  str = replace(str,"[/color]","</font>");
  str = replace(str,"[size=-1]","<font size=-1>");
  str = replace(str,"[size=+1]","<font size=+1>");
  str = replace(str,"[size=+2]","<font size=+2>");
  str = replace(str,"[/size]","</font>");
  str = replace(str,":-)",        "<img src=../yan2/smiles/smile.gif>");
  str = replace(str,":)",         "<img src=../yan2/smiles/smile.gif>");
  str = replace(str,";-)",        "<img src=../yan2/smiles/wink.gif>");
  str = replace(str,";)",         "<img src=../yan2/smiles/wink.gif>");
  str = replace(str,"!)",         "<img src=../yan2/smiles/fine.gif>");
  str = replace(str,":ok:",       "<img src=../yan2/smiles/ok.gif>");
  str = replace(str,":yes:",      "<img src=../yan2/smiles/yes.gif>");
  str = replace(str,":bonny:",    "<img src=../yan2/smiles/bonny.gif>");
  str = replace(str,":rose:",     "<img src=../yan2/smiles/rose.gif>");
  str = replace(str,":inlove:",   "<img src=../yan2/smiles/inlove.gif>");
  str = replace(str,":call:",     "<img src=../yan2/smiles/call.gif>");
  str = replace(str,":dance:",    "<img src=../yan2/smiles/dance.gif>");
  str = replace(str,":dance2:",   "<img src=../yan2/smiles/dance2.gif>");
  str = replace(str,":bravo:",    "<img src=../yan2/smiles/bravo.gif>");
  str = replace(str,":yahoo:",    "<img src=../yan2/smiles/yahoo.gif>");
  str = replace(str,":joking:",   "<img src=../yan2/smiles/joking.gif>");
  str = replace(str,":-((",       "<img src=../yan2/smiles/cry.gif>");
  str = replace(str,":((",        "<img src=../yan2/smiles/cry.gif>");
  str = replace(str,":-(",        "<img src=../yan2/smiles/sad.gif>");
  str = replace(str,":(",         "<img src=../yan2/smiles/sad.gif>");
  str = replace(str,":tired:",    "<img src=../yan2/smiles/tired.gif>");
  str = replace(str,":stop:",     "<img src=../yan2/smiles/stop.gif>");
  str = replace(str,":no:",       "<img src=../yan2/smiles/no.gif>");
  str = replace(str,":sorry:",    "<img src=../yan2/smiles/sorry.gif>");
  str = replace(str,":dontknow:", "<img src=../yan2/smiles/dontknow.gif>");
  str = replace(str,"\"","&quot;");
  str = replace(str,"\uFFFE","&amp;");
  return str+"&nbsp;";
}
