/////////////////////////////
// Basic browser detection
//
  var ie = (document.all) ? 1 : 0;
  var nn = (document.layers) ? 1 : 0;
  var n6 = (window.sidebar) ? 1 : 0;
  var form;
  var reSupport = 0;
  form = document.forms["f1"];
  function $(id) {
    return document.getElementById(id);
  }    


  function ubbCode(code) {
    $("fmessage").focus();
    if ($("fmessage").createTextRange && $("fmessage").caretPos) {
      var caretPos = $("fmessage").caretPos;
      caretPos.text = code;
    } else { $("fmessage").value += code; }
    $("fmessage").focus();
  }



/////////////////////////////
// Misc utils
//
  function storeCaret(el) {
    if (el.createTextRange) {
      el.caretPos = document.selection.createRange().duplicate();
    }
  }

  function getText() {
    if (ie) {
      return (($("fmessage").createTextRange && $("fmessage").caretPos) ? $("fmessage").caretPos.text : '');
    } else { return ''; }
  }

  function isUrl(text) {
    return ((text.indexOf('.') > 7) &&
            ((text.substring(0,7) == 'http://') ||
            (text.substring(0,6) == 'ftp://')));
  }
   function isImg(text) {
   
    return ((text.indexOf('.') > 7) &&
             ((text.substring(text.length-3,text.length) == 'jpg') ||
             (text.substring(text.length-3,text.length) == 'gif')  ||
             (text.substring(text.length-3,text.length) == 'png')  ||
             (text.substring(text.length-4,text.length) == 'jpeg')) &&
            (text.substring(0,7) == 'http://'));
  }
  function isEmail(str) {
    if (!reSupport) { return (str.indexOf(".") > 2) && (str.indexOf("@") > 0); }
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(str) && r2.test(str));
  }

  function winStat(txt) {
    window.status = txt;
    return true;
  }

  function returnFocus() {
    setTimeout('$("fmessage").focus()',10);
  }



  function removeElement(array,value) {
    array = array.split(',');
    for (i = 0; i < array.length; i++) {
      if (array[i] == value) { var pos = i; break; }
    }
    for (i = pos; i < (array.length-1); i++) {
      array[i] = array[i + 1];
    }
    array.length = array.length - 1;
    return array.join(',');
  }


/////////////////////////////
// Indivdual code types
//


  function ubbHref() {
    var url = 'http://'; var desc = '';
    var text = getText();
    if (text) {
      if (isUrl(text)) { url = text; }
      else { desc = text; }
    }
    url = prompt('Введите ссылку:',url) || '';
    desc = prompt('Описание ссылки:',desc) || url;
    if (!isUrl(url)) { returnFocus(); return; }
    var code = '[url=' + url + ']' + desc + '[/url]';
    ubbCode(code);
  }

  function ubbEmail() {
    var email = ''; var desc = '';
    var text = getText();
    if (text) {
      if (isEmail(text)) { email = text; }
      else { desc = text; }
    }
    email = prompt('Введите E-mail адрес:',email) || '';
    desc = prompt('Введите описание:',desc) || email;
    if (!isEmail(email)) { returnFocus(); return; }
    var code = '[email=' + email + ']' + desc + '[/email]';
    ubbCode(code);
  }

  function ubbImage() {
    var text = getText();
    var url = (text && isImg) ? text : prompt("\nВведите URL картинки (jpg, gif, png):","http://") || "";
    if (!url) { return; }
    if (!isImg(url)) {
         alert('Введите ссылку на картинку!');
         returnFocus();
         return; }
    var code = "[img]" + url + "[/img]";
    ubbCode(code);
  }






var openTags = new Array('');
var closedTags = new Array('dummy','b','i','u','s','code','quote','me','list');
function ubbBasic(code) {
    var text = getText();
    if (text) {
      code = '[' + code + ']' + text + '[/' + code + ']';
      ubbCode(code);
    } else {
      if (openTags.join(',').indexOf(','+code) != -1) {
        var tag = '[/' + code + ']';
        openTags = removeElement(openTags.join(','),code).split(',');
        closedTags[closedTags.length] = code;
      } else {
        var tag = '[' + code + ']';
        closedTags = removeElement(closedTags.join(','),code).split(',');
        openTags[openTags.length] = code;
      } ubbCode(tag);
    }
  }

/////////////////////////////
// Initilization
//



var IE=0;
var MZ=0;

												
function getSelectedText(){
  if (document.selection) {
    return document.selection.createRange().text
  } else {
    return document.getSelection();
  }     
}

function Insert(text, name, post_id){
  var input=$('fmessage');
  if (name) 
  {
    if (text!="") 
    {
      input.value=input.value+"[quote="+name+"]"+text+"[/quote]\n";
    }
    else
    {
      input.value=input.value+"[quote="+name+"]"+$('src'+post_id).innerHTML+"[/quote]\n";
    } 
  }    
  else
  {
    if (text!="") input.value=input.value+"[quote]"+text+"[/quote]\n";
  }
}
			  
function ins(name){
  var input=$('fmessage');
  input.value=input.value+""+name+""+" \n";
}
			      