var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);
var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
    && (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
    && (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));
var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);

function us_mail(u){
 WUs=window.open(g_pth+"module/r_forumMAIL.php?u="+u+"&i="+UId+"&l="+LNG,null,"height=450,width=550,status=no,toolbar=yes,menubar=no,location=no,resizable=yes,scrollbars=yes");
 WUs.focus();
}
function storeCaret(){
 var frm;
 frm=document.phform.p_mess;
 if (frm.createTextRange)
  frm.caretPos = document.selection.createRange().duplicate();
}
function Smile(s){
 var frm, text;
 frm=document.phform.p_mess;
 if(s=="1"){
  text=":-)";
}else  if(s=="2"){
  text=";-)";
}else  if(s=="3"){
  text=":-D";
}else  if(s=="4"){
  text="8-)";
}else  if(s=="5"){
  text="~jump~";
}else  if(s=="6"){
  text=":-P";
}else  if(s=="7"){
  text="~cool~";
}else  if(s=="8"){
  text="8-|";
}else  if(s=="9"){
  text=":-(";
}else  if(s=="10"){
  text=":-O";
}else  if(s=="11"){
  text=">-(";
}else  if(s=="12"){
  text="~drink~";
 }else{
  text="~"+s+"~";
 }
  if(is_ie && is_win){
   if(frm.createTextRange() && frm.caretPos){
    caretPos=frm.caretPos;
    caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==' '?text+' ':text;
    frm.selectionStart = frm.selectionEnd = caretPos;
   }else{
    frm.value+=text;
   }
  }else{
   frm.value+=text;
  }
  frm.focus();
  return true;
}

function CitateMessage(author,data,pt){
 if(author!="" && data!="" || pt==1){
 var fl=0;
 var obj_ta=document.phform.p_mess;
 if ((myVersion >= 4) && is_win && (is_nav || is_ie)){
  fl=1;
  var mess="";
  if(is_ie && obj_ta.isTextEdit){
   var sel = document.selection;
   var rng = sel.createRange();
   rng.colapse;
   if((sel.type == "Text" || sel.type == "None") && rng != null && rng.text.length > 0){
    mess=rng.text;
   }
  }else if(is_nav){
   mess=window.getSelection().toString();
  }

 }else if(document.selection){
  fl=2;
  mess = document.selection.createRange().text;
 }
 if(mess!=""){
  if(author!="" && data!="") mess=TemplateMessage(mess,author,data);
  else if(pt==1) mess="[CITE]"+mess+"[/CITE]";
  if(fl==1 && is_ie){
   if(obj_ta.createTextRange() && obj_ta.caretPos){
    caretPos=obj_ta.caretPos;
    caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==' '?mess+' ':mess;
   }else{
    obj_ta.value+=mess;
    caretPos=mess.length;
    obj_ta.select();
    with(document.selection.createRange()) 
    collapse(false),select();
   }
   obj_ta.selectionStart = obj_ta.selectionEnd = caretPos;
  }else if(fl==2 || is_nav){
//Opera, Mozilla
     if (obj_ta.selectionStart || obj_ta.selectionStart == '0'){
     var startPos = obj_ta.selectionStart;
     var endPos = obj_ta.selectionEnd;
     obj_ta.value = obj_ta.value.substring(0, startPos)+ mess + obj_ta.value.substring(endPos, obj_ta.value.length);
    }  
  }else{
   obj_ta.value+=mess;
  }
  obj_ta.focus();

 }else if(fl!=0)
  alert("Выделите текст для цитирования");
 }else
  alert("Не определены автор и дата сообщения!");
 return;
}
var B_open=0;
var I_open=0;
var U_open=0;
var S_open=0;
var URL_open=0;
var IMG_open=0;
var CITE_open=0;
var bbtags   = new Array();
var allcookies = document.cookie;
var pos = allcookies.indexOf("bbmode=");
prep_mode();
function prep_mode(){
 if (pos != 1) {
  var cstart = pos + 7;
  var cend   = allcookies.indexOf(";", cstart);
  if (cend == -1) { cend = allcookies.length; }
  cvalue = allcookies.substring(cstart, cend);
 }
}
function stacksize(thearray){
 for (i = 0 ; i < thearray.length; i++ ) {
  if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == "undefined") ) {
   return i;
  }
 }
 return thearray.length;
}
function pushstack(thearray, newval){
 arraysize = stacksize(thearray);
 thearray[arraysize] = newval;
}
function popstack(thearray){
 arraysize = stacksize(thearray);
 theval = thearray[arraysize - 1];
 delete thearray[arraysize - 1];
 return theval;
}
function simpletag(thetag){
 var tagOpen = eval(thetag + "_open");
 if (tagOpen == 0) {
  if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true)){
   eval(thetag + "_open = 1");
   eval("document.phform." + thetag + ".className = 'outset'");
   pushstack(bbtags, thetag);
  }else{
   eval("document.phform." + thetag + ".className = 'inset'");
  }
 }else{
  lastindex = 0;
  for (i = 0 ; i < bbtags.length; i++ ) {
   if ( bbtags[i] == thetag ) {
    lastindex = i;
   }
  }
  while (bbtags[lastindex]) {
   tagRemove = popstack(bbtags);
   if(doInsert("[/" + tagRemove + "]", "", false)){
    eval("document.phform." + thetag + ".className = 'outset'");
   }else{
    eval("document.phform." + thetag + ".className = 'inset'");
   }
   eval(tagRemove + "_open = 0");
  }
 }
}
function doInsert(ibTag, ibClsTag, isSingle){
 var isClose = false;
 var obj_ta = document.getElementsByName("p_mess")[0];
 if ((myVersion >= 4) && is_ie && is_win){
  if(obj_ta.isTextEdit){
   obj_ta.focus();
   var sel = document.selection;
   var rng = sel.createRange();
   rng.colapse;
   if((sel.type == "Text" || sel.type == "None") && rng != null){
    if(ibClsTag != "" && rng.text.length > 0){
     if(ibTag=="[IMG]"){
      var imgT=rng.text;
      var s=imgT.split(".");
      var sL=s.length-1;
      if(sL>0){
       if(s[sL]=="gif" || s[sL]=="jpe" || s[sL]=="jpg" || s[sL]=="jpeg" || s[sL]=="png"){
        ibTag += rng.text + ibClsTag;
       }else{
        alert("Выделенный текст не является Интернет-адресом картинки!");
        return false;
       }
      }else{
       alert("Выделенный текст не является Интернет-адресом картинки!");
       return false;
      }
     }else{
      ibTag += rng.text + ibClsTag;
     }
    }else if(isSingle){
     isClose = true;
    }
    rng.text = ibTag;
   }
  }else{
   if(isSingle)
    isClose = true;
    obj_ta.value += ibTag;
  }//isTextEdit


 }else if(obj_ta.selectionEnd){
 //----------------------------------------
 // Mozzila, Opera
 //----------------------------------------
      var ss = obj_ta.selectionStart;
      var st = obj_ta.scrollTop;
      var es = obj_ta.selectionEnd;
      if (es <= 2)
         es = obj_ta.textLength;
      var start  = (obj_ta.value).substring(0, ss);
      var middle = (obj_ta.value).substring(ss, es);
      var end    = (obj_ta.value).substring(es, obj_ta.textLength);
      if (obj_ta.selectionEnd - obj_ta.selectionStart > 0){
         middle = ibTag + middle + ibClsTag;
      }else{
         middle = ibTag + middle;
         if (isSingle)
            isClose = true;
      }

      obj_ta.value = start + middle + end;
      var cpos = ss + (middle.length);
      obj_ta.selectionStart = cpos;
      obj_ta.selectionEnd   = cpos;
      obj_ta.scrollTop      = st;

 }else{
  if(isSingle)
   isClose = true;
  obj_ta.value += ibTag;
 }
 obj_ta.focus();
 return isClose;
}

