function get_el(id) {
  if      (document.layers)         return document.layers[id];         // NC 4
  else if (document.all)            return document.all[id];            // IE 4
  else if (document.getElementById) return document.getElementById(id); // DOM
  else                              return null;        
}

function ins2(txt1,txt2) {
  if (!document.forms['corrform'] && !document.forms['newmess']) return;
  var txtarea;
  if (document.forms['corrform']) txtarea=document.forms['corrform'].mess; else txtarea=document.forms['newmess'].mess;
  txtarea.focus();
 
  if (document.selection) {
    theSelection = document.selection.createRange().text; // Get text selection
    document.selection.createRange().text = txt1 + theSelection + txt2;
    theSelection = '';
    return;
  }
  else
  if (txtarea.selectionEnd)
    mozWrap(txtarea, txt1, txt2);
  else
    txtarea.value=txtarea.value+txt1+txt2;
}
 
function ins(txt){
  ins2(txt,'');
}

//Перобразование html -> Ubb
function checktag(tag){
  tag=tag.substring(0,tag.length-1).toLowerCase(); //Extract tag
  if (tag=="br") return "\n";

  if (tag=="b") return "[b]";
  if (tag=="/b") return "[/b]";
  if (tag=="i") return "[i]";
  if (tag=="/i") return "[/i]";
  if (tag=="u") return "[u]";
  if (tag=="/u") return "[/u]";
 
  if (tag=="div class=d1") return "[q]";
  if (tag=="/div") return "[/q]";
 
  if (tag=="ul") return "[list]";
  if (tag=="/ul") return "[/list]";
  if (tag=="li") return "[*]";

  return '';
}

//Склонение писал/писала
function GetSx(sx){
  var s='писал(а)';
  if (sx=='m') s='писал';
  if (sx=='f') s='писала';
  if (sx=='o') s='писало';
  return s;
}

//Процитировать сообщение
function quotmsg(id, sx) {
  var m=get_el('quot_'+id).innerHTML;
  var a=get_el('aut_'+id).innerHTML;
  var b="";
  var tag="";
  var c=true;
 
  for (var i=0; i < m.length; i++) {
    if (m.charAt(i)=='<') {
      c=false;
      tag="";
      continue;
    }
 
    if (c) b+=m.charAt(i); else if (m.charAt(i)!='"') tag+=m.charAt(i);
 
    if (m.charAt(i)=='>') {
      c=true;
      b+=checktag(tag); //Replace tag
    }
  }
 
  ins('\n[q][b]'+a+' '+GetSx(sx)+':[/b] \n'+b+'[/q]\n');
}

function getSel() {
  if      (window.getSelection)   return window.getSelection();
  else if (document.getSelection) return document.getSelection();
  else if (document.selection)    return document.selection.createRange().text;
  else                            return '';
}

function quot(id, sx){
  var b=getSel();
  var a=get_el('aut_'+id).innerHTML;
  if (b!='')
    ins('\n[q][b]'+a+' '+GetSx(sx)+':[/b] \n'+b+'[/q]\n');
  else quotmsg(id, sx); 
}
 
function mozWrap(txtarea, open, close){
  var selLength = txtarea.textLength;
  var selStart = txtarea.selectionStart;
  var selEnd = txtarea.selectionEnd;
  if (selEnd == 1 || selEnd == 2)
    selEnd = selLength;
 
  var s1 = (txtarea.value).substring(0,selStart);
  var s2 = (txtarea.value).substring(selStart, selEnd)
  var s3 = (txtarea.value).substring(selEnd, selLength);
  txtarea.value = s1 + open + s2 + close + s3;
  return;
}

function trim(s){
  if (s=='') return '';
  while (s.substring(0,1) == ' ')
    s = s.substring(1, s.length);

  while (s.substring(s.length-1, s.length) == ' ')
    s = s.substring(0,s.length-1);

  return s;
}
 
//Проверка заполнености полей
function CheckSend(){
  var txt='';
  var nick='registred';
  var tto=1;
  var subj='aaa';

  if (document.forms['corrform']) {
    txt=trim(document.forms['corrform'].mess.value);
  } else {
    txt=trim(document.forms['newmess'].mess.value);
    if (get_el('to')==null)
      nick=trim(document.forms['newmess'].nick.value);
    if (get_el('subj')!=null)
      subj=get_el('subj').value;
    if (get_el('caption')!=null)
      subj=get_el('caption').value;
  }
  
  if (nick=='') {
    alert('Вы забыли, как Вас зовут?');
    return false;
  }

  if (subj=='') {
    alert('Некорректное название темы');
    return false;
  }
  
  if (tto==0) {
    alert('Вы не выбрали кому отсылать сообщение');
    return false;
  }

  if (txt=='') {
    alert('Вы забыли, что хотели написать?');
    return false;
  }
  return true;
}

//Показ полей ввода для файлов
var m=1;
function ShowMore(){
  if (m<5) {
    var x=get_el('att'+m);
    x.style.display='block';
    x.style.visibility='visible';
    m++;
    if (m>4) {
      x=get_el('lnk');
      x.style.display='none';
      x.style.visibility='hidden';
    }
  }
}

//Включить/выключить все чекбоксы
function CheckAll(frm, val) {
  var c = document.forms[frm].elements.length;
  for (i=0; i<c; i++) {
    if (document.forms[frm].elements[i].type=='checkbox')
      document.forms[frm].elements[i].checked=val;
  }
}
 
//Клавиатура
if      (document.addEventListener) document.addEventListener("keyup", listener, true);
else if (document.attachEvent)      document.attachEvent("onkeyup", listener);
else                                document.onkeyup=listener;

function listener(e){
  if (!e) e=window.event; 
  if (e.keyCode==13 && e.ctrlKey) AddMessage();
}

function AddMessage(){
  if (document.forms['corrform'] && CheckSend()) 
    document.forms['corrform'].submit();
  else if (document.forms['newmess'] && CheckSend())
    document.forms['newmess'].submit();
}

function wo(url, width, height) {
  var l=screen.width/2-width/2;
  var t=screen.height/2-height/2-100;
  var w=window.open(url, 'popupw','resizable=1, scrollbars=1, menubar=0, status=0, location=0, left='+l+', top='+t+', width='+width+', height='+height);
  w.focus();
  return false;
}

