function GetNodeId()
{
  var obj = document.fTree.node;

  for(var i=0; i<obj.length; i++)
    if(obj[i].checked) return obj[i].value;
  if(obj.checked) return obj.value; // если всего 1 эл-т
  return 0;  // по умолчанию
}

function NextPage(action)
{
  var id = GetNodeId();
  top.location.href(action + '&page_id=' + id);
}

function GetNodeIds()
{
  var obj = document.fMap.node;
  var res = "";

  for(var i=0; i<obj.length; i++)
    if(obj[i].checked)
          res += ((res!="")?"*":"") + obj[i].value;
  if(res=="") if(obj.checked) res = obj.value;  // если всего 1 эл-т
  return res;
}

function NewUser(action)
{
  var ids = GetNodeIds();
  top.location.href(action + '&page_ids=' + ids);
}

function GetUserIds()
{
  var obj = document.fUsers.chbPage;
  var res = "";

  for(var i=0; i<obj.length; i++)
    if(obj[i].checked)
          res += ((res!="")?"*":"") + obj[i].value;
  if(res=="") if(obj.checked) res = obj.value;  // если всего 1 эл-т
  return res;
}

function SetSect(action)
{
  var idu = GetUserIds();
  var ids = document.fUsers.hPages.value;
  top.location.href(action + '&hIdU=' + idu + '&hPages=' + ids);
}

function GetViewVal()
{
  return "&headl=" + document.fPage.headl.value +
         "&text=" + document.fPage.text.value;
}

var idSuffixDoc = 0, idSuffixImg = 0;

function InitAttVar(idoc, iimg)
{
  idSuffixDoc = idoc;
  idSuffixImg = iimg;
}

function dropFile(btn)
{
  if(document.getElementById)
  {
        tr = btn;
        while(tr.tagName != 'TR') tr = tr.parentNode;
        tr.parentNode.removeChild(tr);
        checkForLast();
  }
}

function addFile(btn)
{
  if(document.getElementById)
  {
        tr = btn;
        while(tr.tagName != 'TR') tr = tr.parentNode;
        var newTr = tr.parentNode.insertBefore(tr.cloneNode(true), tr.nextSibling);
        thisChilds = newTr.getElementsByTagName('td');
        thisChilds[0].innerHTML = InputDocEls();
        /*for(var i = 0; i < thisChilds.length; i++)
        {
          if(thisChilds[i].className == 'header') thisChilds[i].innerHTML = '';
          if(thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="att" class="wideFile" type="file">';
        }*/
        checkForLast();
  }
}

function checkForLast()
{
  btns = document.getElementsByName('drop');
  for(i = 0; i < btns.length; i++)
        btns[i].disabled = (btns.length == 1) ? true : false;
}

function dropImg(btn)
{
  if(document.getElementById)
  {
        tr = btn;
        while(tr.tagName != 'TABLE') tr = tr.parentNode;
        tr.parentNode.removeChild(tr);
        checkForLastImage();
  }
}

function addImage(btn)
{
  if(document.getElementById)
  {
        tr = btn;
        while(tr.tagName != 'TABLE') tr = tr.parentNode;
        var newTr = tr.parentNode.insertBefore(tr.cloneNode(true), tr.nextSibling);
        thisChilds = newTr.getElementsByTagName('td');
    thisChilds[0].innerHTML = InputImgEls();
        thisChilds[2].innerHTML = RadioAlign();
        /*for(var i = 0; i < thisChilds.length; i++)
        {
          if(thisChilds[i].className == 'radio') alert("1");
          if(thisChilds[i].className == 'header') thisChilds[i].innerHTML = '';
          if(thisChilds[i].className == 'files'){ thisChilds[i].innerHTML = '<input size="32" name="att" class="wideFile" type="file">'; alert("1");}
        }*/
        checkForLastImage();
  }
}

function checkForLastImage()
{
  btns = document.getElementsByName('dropImage');
  for(i = 0; i < btns.length; i++)
        btns[i].disabled = (btns.length == 1) ? true : false;
}

function RadioAlign()
{
  return "Выравнивание <input class=radio name=align"+idSuffixImg+" type=radio value=left checked> По левому краю" +
                      "<input class=radio name=align"+idSuffixImg+" type=radio value=center> По центру"+
                      "<input class=radio name=align"+idSuffixImg+" type=radio value=right> По правому краю";
}

function InputImgEls()
{
  ++idSuffixImg;
  return "Текст для замещения<font color=red>*</font><br>" +
         "<input name=nameImg[] type=text value=''>" +
                 "<input type=file size=32 name=attImg[] onpropertychange='hImgName"+idSuffixImg+".value=this.value'>&nbsp;" +
                 "<input type=hidden name=hImgName"+idSuffixImg+" value=''>" +
                 "<input name=img_tag[] type=text size=7 value='[img_"+idSuffixImg+"]' readonly>";
}

function InputDocEls()
{
  ++idSuffixDoc;
  return "Название документа<font color=red>*</font><br>" +
                 "<input name=nameDoc[] type=text value=''>" +
         "<input type=file size=32 name=attDoc[] onpropertychange='hDocName"+idSuffixDoc+".value=this.value'>&nbsp;" +
                 "<input type=hidden name=hDocName"+idSuffixDoc+" value=''>" +
                 "<input name=doc_tag[] type=text size=7 value='[doc_"+idSuffixDoc+"]' readonly>";
}

function TabSwitch(mode)  // переключатель форматирования текста
{
 try
 {
//  alert("0");
  var obj_ed  = eval("window.frames[0].document.tbCE");
  var str_val = obj_ed.DocumentHTML;
//  alert(str_val);
//  var obj_ed = document.all.tags('iframe');
//  var obj_ed = window.top.document.getElementsByName("idTest")[0].contentWindow.document;
//  alert(window.top.document.getElementsByName("idTest")[0].contentDocument);
//  var obj_ed = eval("document.tbCE");
//  var obj_ed = window.frames['test'];
//    var obj_ed = document.all['tbCE'];
//  var obj_ed = eval("document.tbCE");
//  var obj_ed = document.frames['test'];
//  var obj_ed = document.frames['test'].tbCE;
//  var obj_ed = eval("document.test.tbCE");

//  alert("1");
  var firstPos = str_val.indexOf("<BODY>")+6;          // позиции начала и конца
//  alert(obj_ed.DocumentHTML);

  var lastPos  = str_val.lastIndexOf("</BODY>");       // текстового блока

  if(lastPos==-1)                                      // если страницу не загрузили полностью
  {
//    alert("1");
     window.location.reload();
//      setTimeout("fPage.submit(); window.location.reload();",2000);
//      setTimeout("fPage.submit()", 1000);
//    fPage.submit();
//    location.reload();
//    alert("2");
    return false;
  }
//    top.location = document.location;                  // загружаем её ещё раз
//  alert("3");
  var text     = str_val.substring(firstPos, lastPos); // получение содержимого wysiwyg
//  alert(str_val);

//  alert("firstPos - "+firstPos+" lastPos - "+lastPos+"<br> "+text);
//  alert("mode - "+mode);

  if(mode == 1)
  {
    //fPage.text.value = obj_ed.DocumentHTML;
    obj_ed.designMode = false;
    divSimple.style.display = 'table-header-group';
        divFormat.style.display = 'none';
        return false;
  }
  else if(mode == 2)
  {
    divSimple.style.display = 'none';
        divFormat.style.display = 'table-header-group';
        obj_ed.designMode = true;
//    obj_ed.DocumentHTML = "Hello";
//    alert("1 - "+obj_ed.DocumentHTML);
//    alert("first - "+obj_ed.DocumentHTML.substring(0, firstPos));
//    alert("center - "+fPage.text.value);
//    alert("last - "+obj_ed.DocumentHTML.substr(lastPos+7));
    obj_ed.DocumentHTML = obj_ed.DocumentHTML.substring(0, firstPos)+
                          fPage.text.value+obj_ed.DocumentHTML.substr(lastPos+7);
//    alert("2 - "+obj_ed.DocumentHTML);
        return false;
  }
  else if(mode == 3)
  {
    divSimple.style.display = 'table-header-group';
        divFormat.style.display = 'none';
    obj_ed.designMode = false;
    fPage.text.value = text;
        return false;
  }
 }
 catch(e)
 {
//  setTimeout(500);
   alert("catch");
//  TabSwitch(mode);
 }
}

function FormatVisible()
{
//  alert("start visible");
  inpForm.style.display = 'table-header-group';
  inpSimple.style.display = 'table-header-group';
  TabSwitch(2);                        // добавление текста в окно редактора
//  alert("stop visible");
}

function ChildDisable(idParent, flag)  // запрещает/разрешает доступ к поддереву
{                                      // выбранного узла - idParent
  var node   = document.fMap.node;     // идентификаторы узлов
  var parent = document.fMap.parent;   // идентификаторы их предков

  for(var i=0; i<parent.length; i++)
    if(parent[i].value == idParent)
    {
      node[i].checked = false;
      node[i].disabled = flag;
      ChildDisable(node[i].value, flag);
    }
}

// баннеры
var img; //картинки
var ttl;
var txt;
var lnk;
var load = new Array();
var cnt = 0;
var crt0 = -1, crt1 = -1; // баннер, активный в данный момент

var speed = 10000;   //скорость слайдшоу в миллисекундах

var chck0 = null,  chck1 = null;
var timer0 = null, timer1 = null;

function LoadBann()
{
  cnt = Math.round(LoadBann.arguments.length/4);
  ttl = new Array(cnt);
  img = new Array(cnt);
  lnk = new Array(cnt);
  txt = new Array(cnt);

  ns=(document.layers);
  n6=(document.getElementById&&!document.all);
  ie=(document.all);

  for(i=0; i<cnt; i++)
    ttl[i] = LoadBann.arguments[i];

  for(i=cnt; i<2*cnt; i++)
  {
    img[i-cnt] = LoadBann.arguments[i];

    load[i-cnt] = new Image();
    load[i-cnt].src = img[i-cnt];
  }

  for(i = 2*cnt; i<3*cnt; i++)
    lnk[i-(2*cnt)] = LoadBann.arguments[i];

  for(i = 3*cnt; i<4*cnt; i++)
    txt[i-(3*cnt)] = LoadBann.arguments[i];
}

function Picnum(numb)
{
  var d=(ns||ie)?'document.':'document.getElementById("';
  var a=(ns||n6)?'':'all.';
  var n6r=(n6)?'")':'';
  var p=eval(d+a+'Nums'+numb+n6r);
  var x=eval(d+a+'Txt'+numb+n6r);

  /*if(ie||n6) // добавление текста
  {
    p.innerHTML = ''+((numb==0)?ttl[crt0]:ttl[crt1]);
    x.innerHTML = ''+((numb==0)?txt[crt0]:txt[crt1]);
  } */

  if (ns)
  {
    p.document.write("<div style='position:absolute;top:0px;left:0px;font-family:Verdana;font-size:18px;color:#fffff0;text-align:center'>Picture "+count+"</div>");
    p.document.close();
  }
}

function Pause(numb)
{
  switch(numb)
  {
    case 0:
        chck0 = 1;
        clearTimeout(timer0);
        break;

    case 1:
        chck1 = 1;
        clearTimeout(timer1);
        break;
  }

  Picnum(numb);
}

function AutoCycle(numb)
{
  var deadlock = 0;
  while(++deadlock < 1000)  // выбираем НОВУЮ картинку
  {
    new_crt = Math.floor(Math.random()*cnt);
    if((new_crt!=crt0) && (new_crt!=crt1)) break;
  }

  var p = eval('document.images.slides'+numb);
  p.src = img[new_crt];

  switch(numb)
  {
    case 0:
        document.all.anch0.href = lnk[new_crt];
        timer0 = setTimeout('AutoCycle('+numb+')', Math.floor(speed+Math.random()*speed));
        crt0   = new_crt;
        break;

    case 1:
        document.all.anch1.href = lnk[new_crt];
        timer1 = setTimeout('AutoCycle('+numb+')', Math.floor(speed+Math.random()*speed));
        crt1   = new_crt;
        break;
  }

  Picnum(numb);
}

function Cycle(numb)
{
  switch(numb)
  {
    case 0:
        if(chck0 == 1) AutoCycle(numb);
        chck0 = null;
        break;

    case 1:
        if(chck1 == 1) AutoCycle(numb);
        chck1 = null;
        break;
  }
}

function onFocusFind(text)
{
  if(fFind.tFind.value == text) fFind.tFind.value = "";
}

function onBlurFind(text)
{
  if(fFind.tFind.value == "") fFind.tFind.value = text;
}

// --------------------
var aOPSId = new Array(), aOPSAdr = new Array(), iLen = 0;

function initOPSIdArray(array)
{
  iLen = arguments.length;
  for(var i=0; i<arguments.length; i++)
    aOPSId[i+1] = arguments[i];
}

function initOPSAdrArray(array)
{
  for(var i=0; i<arguments.length; i++)
    aOPSAdr[i+1] = arguments[i];
}

function opsToAdress()
{
  var i = 0;
  while(i++ < iLen)
    if(fRequest.idOPS.value==aOPSId[i])
    {
      fRequest.tOPS.value = aOPSAdr[i];
      break;
    }
}
// --------------------

function addNewImg(btn, id, img_path, alt, sort)
{
//  if(document.getElementById)
//  {
        tr = btn;
//        alert("1");
        while(tr.tagName != 'TABLE') tr = tr.parentNode;
//        alert("2");
        var newTr = tr.parentNode.insertBefore(tr.cloneNode(true), tr.nextSibling);
//        alert("3");
        thisChilds = newTr.getElementsByTagName('td');
    thisChilds[0].innerHTML = galleryImg(id, img_path, alt, sort);
//  }
}

function galleryImg(id, img_path, alt, sort)
{
  // строка удаления изображения
  var del_str  = 'javascript:if(confirm(\'Вы действительно хотите удалить изображение?\')) parent.location=\'?action=gallery&gallery=img_del&imageId='+id+'\'; else close();';
  // строка формы обновления примечания
  var upd_str  = 'method=post target=_blank action="?action=gallery&gallery=img_upd&imageId='+id+'" name=fUpd'+id;
  // строка для ввода сортировки
  var sort_str = 'onkeypress="keyFilter(event, \'[0-9]\')"';

  return '<table id=img_'+id+'><tr>'+
           '<td><input type=image src="'+img_path+'"></td>'+
           '<td><form '+upd_str+'>'+
             '<nobr><input name=tAlt value="'+alt+'">'+
             '<input size=1 maxlength=3 name=tSort value="'+sort+'" '+sort_str+'></nobr>'+
             '<div align=center><a href="javascript:fUpd'+id+'.submit();">Изменить</a></div></form></td>'+
           '<td><a target=_blank href="'+del_str+'">Удалить</a></td>'+
         '</tr></table>';
}

function delImg(id)
{
  tr = document.getElementById('img_'+id);
  tr.parentNode.removeChild(tr);
}

/*фильтр цифр*/
var isIE = (document.all) ? 1 : 0;

function keyFilter(e, strPattern)
{
   var chr = (isIE) ? e.keyCode : e.which;
   var ch = String.fromCharCode(chr);

   if (chr != 13 && chr != 8 && chr != 0)
   {
      var re = new RegExp(strPattern);

      if (ch.search(re) == -1)
      {
         if(isIE)
          e.returnValue = false;
         else
          e.preventDefault();
      }
   }
}

// Добавление нового элемента в массив. Инициализации
function qbadd(count, is_id, is_name, if_id)
{
  s_id[count]   = is_id;
  s_name[count] = is_name;
  f_id[count]   = if_id;
}

// для копирования элементов из массива в список выбора
function fillTown(if_id, frm_name)
{
  if(if_id == 0)
  {
    return false;
  }

  frm = document.getElementById(frm_name);

  frm.s_select.length = 1;
  iLCount=1;

  for(iPop = 0; iPop < f_id.length; iPop++)
  {
    if(f_id[iPop] == if_id)
    {
      dmaf = new Option(s_name[iPop], s_id[iPop]);
      frm.s_select.options[iLCount] = dmaf;
      iLCount++;
    }
  }
}

function curchoice(part)
{
  if (part == 1)
  {
    document.fRazmernost.txtWidth.value=document.fRazmernost.shin_w.options[document.fRazmernost.shin_w.options.selectedIndex].text;
  }
  else if (part == 2)
  {
    document.fRazmernost.txtHeight.value=document.fRazmernost.shin_h.options[document.fRazmernost.shin_h.options.selectedIndex].text;
  }
  else if (part == 3)
  {
    document.fRazmernost.txtDiam.value=document.fRazmernost.shin_d.options[document.fRazmernost.shin_d.options.selectedIndex].text;
  }
}

function popupWindow(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=385,screenX=150,screenY=150,top=150,left=150')
}
