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=="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="~help~";
}else  if(s=="13"){
  text="~jump~";
}else  if(s=="14"){
  text="~good~";
}else  if(s=="15"){
  text="~bad~";
}else  if(s=="16"){
  text="~drink~";
}else  if(s=="17"){
  text="8-(";
}else  if(s=="18"){
  text="~rotate~";
}else  if(s=="19"){
  text="~bayan~";
}else  if(s=="20"){
  text="~spy~";
}else  if(s=="21"){
  text="~lamer~";
}else  if(s=="22"){
  text="~shuffle~";
}else  if(s=="23"){
  text="~confused~";
}else  if(s=="24"){
  text="~censored~";
}else  if(s=="25"){
  text="~love~";
}else  if(s=="26"){
  text="~heart~";
 }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;

 var selText = '';
 if (window.getSelection && !window.opera) selText = window.getSelection();
 else if (document.getSelection) selText = document.getSelection();
 else if (document.selection) selText = document.selection.createRange().text;
 var mess="";
 if (selText && selText!="") mess=selText.toString();

 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];

 var selText = '';
 if (window.getSelection && !window.opera) selText = window.getSelection();
 else if (document.getSelection) selText = document.getSelection();
 else if (document.selection) selText = document.selection.createRange().text;
 if (selText && selText!=""){
   var rng = selText.toString();
    if(ibClsTag != "" && rng.length > 0){
     if(ibTag=="[IMG]"){
	var flI=0;
	var imgT=rng;
	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")
			flI=1;
	}
	if(flI==1 || confirm('Выделенный текст не является Интернет-адресом картинки! Вставить картинку?')){
		ibTag += rng + ibClsTag;
	}else{
		return false;
	}

     }else{
      ibTag += rng + ibClsTag;
     }
    }else if(isSingle){
     isClose = true;
    }
	if (window.getSelection && !window.opera) var caretPos = obj_ta.selectionStart + ibTag.length;
	
	if (obj_ta && obj_ta.caretPos) 
		   obj_ta.caretPos.text = ibTag; 
	else if (obj_ta && obj_ta.selectionStart+1 && obj_ta.selectionEnd+1)
		   obj_ta.value = obj_ta.value.substring(0, obj_ta.selectionStart) + ibTag + obj_ta.value.substring(obj_ta.selectionEnd, obj_ta.value.length);
	else if (obj_ta)
		   obj_ta.value += ibTag;
	
	if (window.getSelection && !window.opera) obj_ta.setSelectionRange(caretPos, caretPos);



 }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;
}
//======= Функции для работы с тэгами =========

//Добавление тэга в первый список
function AddNewTag(ph){
 var obj=document.getElementById('NewTag');
 if(ph>0 && obj && obj.value!=""){
 var params='pr=1&ph='+ph+'&val='+obj.value;
 var xl=new XML_Load(g_pth+'module/a_phorum_ajx.php','POST',params,'',null);
 if (xl.IsReady()) {
  xl.OnReady=function(a,b,ldata) {
   var parts={};
   parts=ldata.split('|');
   if(parts[0]>0){
    var el=document.getElementById('TagList1');
    if(el){
     var z=el.length;
     for(i=0;i<z;i++)
      el.options[i].selected = false;
     el.length++;
     el.options[z] = new Option(parts[1],parts[0],true,true);
     el.options[z].selected = true;
     obj.value="";
    }//el
   }
  }
  xl.Load();
 }
 }//obj
}
//Устанавливаем список добавленных тэгов
function SetHiddValue(){
 var v,s;
 s="";
 var lst=document.getElementById('ListTopicTag');
 var el2=document.getElementById('TagList2');
 if(lst && el2){
  var z=el2.length;
  for(i=0;i<z;i++){
   v=el2.options[i].value;
   if(v>0){
    if(s!="") s=s+',';
    s=s+v.toString();
   }//v
  }//for
  lst.value=s;
 }
}
//Добавление тэга из первого списка во второй
function AddTagToList(){
 var el=document.getElementById('TagList1');
 var el2=document.getElementById('TagList2');
 if(el && el2){
 var i=el.selectedIndex;
 if(i>-1){
  var n=el.options[i].value;
  var str=el.options[i].text;
  if(n>0){
   var z=el.length;
   for(j=i;j<z;j++){
    if(j<z-1){
     el.options[j].text=el.options[j+1].text;
     el.options[j].value=el.options[j+1].value;
    }
   }
   el.length--;
   var z=el2.length;
   el2.length++;
   el2.options[z] = new Option(str,n,false,false);
   el2.options[z].selected = true;
   SetHiddValue();
  }//n
 }//i
 }//el
}
//Удаление тэга из второго списка в первый
function DelTagFromList(){
 var el=document.getElementById('TagList1');
 var el2=document.getElementById('TagList2');
 if(el && el2){
 var i=el2.selectedIndex;
 if(i>-1){
  var n=el2.options[i].value;
  var str=el2.options[i].text;
  if(n>0){
   var z=el2.length;
   for(j=i;j<z;j++){
    if(j<z-1){
     el2.options[j].text=el2.options[j+1].text;
     el2.options[j].value=el2.options[j+1].value;
    }
   }
   el2.length--;
   var z=el.length;
   for(i=0;i<z;i++)
    el.options[i].selected = false;
   el.length++;
   el.options[z] = new Option(str,n,true,true);
   SetHiddValue();
  }//n
 }//i
 }//el
}
//Подтверждение удаления тэга
function ConfirmDelTag(mes){
 if(mes=="") mes='Удалить тэг?';
 return confirm(mes);
}

