var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));

bbtags = new Array
(
  '[b]','[/b]',
  '[i]','[/i]',
  '[u]','[/u]',
  '[size=]','[/size]',
  '[color=]','[/color]',
  '[split=]', '[/split]',
  '[url=]','[/url]',
  '[img=]', '',
  '[swf=]', '',
  '[ole=]', '',
  '[p]','[/p]',
  '[left]','[/left]',
  '[center]','[/center]',
  '[right]','[/right]',
  '[list]','[/list]',
  '[list=]','[/list=]',
  '[li]','[/li]',
  '[table w=%]','[/table]',
  '[tr h=]','[/tr]',
  '[td w=%]','[/td]',
  '[th w=%]','[/th]'
);

function set_cursor(textarea)
{
	if (textarea.createTextRange)
    textarea.caretPos = document.selection.createRange().duplicate();
}
function get_caret_pos(textarea)
{
  textarea.focus();
  if (textarea.selectionStart)
    return textarea.selectionStart; //Gecko
  else if (document.selection) //IE
  {
    var sel = document.selection.createRange();
    var clone = sel.duplicate();
    sel.collapse(true);
    clone.moveToElementText(textarea);
    clone.setEndPoint('EndToEnd', sel);
    text = escape(clone.text);
    for (var i = 0; i < text.length; i++)
      text = text.replace('%0D', '');
    text = unescape(text);
    return text.length;
  }
  return 0;
}
function add_style(name, style_num)
{
  var textarea = get_object(name);
  textarea.focus();
  if (textarea.caretPos)
  {
    var selection = window.document.selection.createRange().text;
    window.document.selection.createRange().text = bbtags[style_num] +
      selection + bbtags[style_num + 1];
    if (is_ie)
    {
      textarea_pos = get_caret_pos(textarea);
      t = textarea.createTextRange();
      t.move("character", textarea_pos + bbtags[style_num].length +
        selection.length + bbtags[style_num + 1].length);
      t.select();
    }
  }
  else
  {
    if (insert_tag(textarea, bbtags[style_num] + bbtags[style_num + 1]))
    {
      textarea_pos = get_caret_pos(textarea);
      t = textarea.createTextRange();
      t.move("character", textarea_pos - bbtags[style_num + 1].length);
      t.select();
    }
  }
}
function insert_tag(obj, tag)
{
  if (tag == '[url=][/url]')
  {
    url = prompt('Ââåäèòå àäðåñ ññûëêè.', 'http://');
    if (url == null) return false;
    link = prompt('Ââåäèòå íàçâàíèå ññûëêè.', '');
    if (link == null) return false;
    tag = '[url=' + url + ']' + link + '[/url]';
  }
  else if (tag == '[img=]')
  {
    url = prompt('Ââåäèòå ïóòü äî ðèñóíêà.', 'http://');
    if (url == null) return false;
    tag = '[img=' + url + ']';
  }
  if (obj.caretPos)
  {
    set_cursor(obj);
    caret_pos = obj.caretPos;
    caret_pos.text = tag + caret_pos.text;
  }
  else
  {
    var sel1 = obj.value.substr(0, obj.selectionStart);
    var sel2 = obj.value.substr(obj.selectionEnd, obj.value.length - obj.selectionEnd);
    obj.value = sel1 + tag + sel2;
  }
  return true;
}
function bb_encode(text)
{
  var count = text.length;
  for (var i = 0; i < count; i++)
  {
    text = text.replace("\r\n", '<br>');
    text = text.replace(";", '~');
  }
  return text;
}
function show_text_preview(name)
{
  var preview_frame = get_object('preview_frame_' + name);
  var preview_frame_update = get_object('preview_frame_update_' + name);
  if (preview_frame.style.display == 'none')
  {
    preview_frame.style.display = 'block';
    eval('set_preview_' + name + '()');
  }
  else
    preview_frame.style.display = 'none';
  preview_frame_update.style.display = preview_frame.style.display;
}
function show_smiles(name)
{
  var div_smiles = get_object('div_' + name + '_smiles');
  if (div_smiles.style.display == 'none')
    div_smiles.style.display = 'block';
  else
    div_smiles.style.display = 'none';
}
function insert_smile(name, text)
{
  var textarea = get_object(name);
  textarea.focus();
  insert_tag(textarea, text);
}
function set_status(name, textarea_max_len)
{
  var textarea = get_object(name);
  var div_status = get_object('div_' + name + '_status');
  div_status.innerHTML = textarea.value.length + " / " + textarea_max_len;
}
function show_help(lang)
{
  var path = 'classes/text_editor/help.php';
  if (lang != '')
    path = path + '?lang=' + lang;
  open(path, 'Win' ,'width=800, height=600, scrollbars=1, resizable=1, status=1');
}