var sitemap = true;

function generateTree()
{
var aux1, aux2, aux3, aux4

USETEXTLINKS = 0

foldersTree = gFld("ОбосСайт")
aux1=insFld(foldersTree, gFld("Группы"))
aux2=insFld(aux1, gFld("Новосибирск"))
insDoc(aux2, gLnk("Бомж", "./groups/?gr=bomzhi"))
insDoc(aux2, gLnk("Геморрой Крейз", "./groups/?gr=gk"))  
insDoc(aux2, gLnk("СПиД", "./groups/?gr=spid"))
insDoc(aux2, gLnk("Путти", "./groups/?gr=putti"))
insDoc(aux2, gLnk("БеZ ФанатиZма", "./groups/?gr=bezfanatizma"))
insDoc(aux2, gLnk("Ангедония", "./groups/?gr=angedoniya"))
insDoc(aux2, gLnk("Рви меха", "./groups/?gr=rvimexa"))
insDoc(aux2, gLnk("Кузя", "./groups/?gr=kuzya"))
insDoc(aux2, gLnk("Раздетая до крови", "./groups/?gr=rdk"))
aux2=insFld(aux1, gFld("Красноярск"))
insDoc(aux2, gLnk("Паранойя и Ангедония", "./groups/?gr=pia"))
insDoc(aux2, gLnk("Энтропия", "./groups/?gr=entropiya"))
insDoc(aux2, gLnk("Fucking Шлак", "./groups/?gr=fsh"))
insDoc(aux2, gLnk("Лахматая Пизда", "./groups/?gr=lahmataya_pizda"))
insDoc(aux2, gLnk("Трансмутация Бетона", "./groups/?gr=tb"))
insDoc(aux2, gLnk("Набат", "./groups/?gr=nabat"))
aux2=insFld(aux1, gFld("Томск"))
insDoc(aux2, gLnk("Духи Цеха", "./groups/?gr=dc"))
insDoc(aux2, gLnk("Передвижные Хиросимы", "./groups/?gr=peredvizhnie_hirosimy"))
insDoc(aux2, gLnk("The Крыша", "./groups/?gr=the_krysha"))
insDoc(aux2, gLnk("ВЛОМ!", "./groups/?gr=vlom"))
aux2=insFld(aux1, gFld("Омск"))
insDoc(aux2, gLnk("Пик Клаксон", "./groups/?gr=pick_klakson"))
insDoc(aux2, gLnk("Адольф Гитлер", "./groups/?gr=adolf_gitler"))
insDoc(aux2, gLnk("Red Army", "./groups/?gr=red_army"))
aux2=insFld(aux1, gFld("Кемерово"))
insDoc(aux2, gLnk("Три Топора", "./groups/?gr=tri_topora"))
aux2=insFld(aux1, gFld("Междуречинск"))
insDoc(aux2, gLnk("Херовъ Генератор", "./groups/?gr=hg"))
aux2=insFld(aux1, gFld("Улан-уде"))
insDoc(aux2, gLnk("Оргазм Нострадамуса", "./groups/?gr=on"))
insDoc(aux2, gLnk("Аборт мозга", "./groups/?gr=abort_mozga"))
aux2=insFld(aux1, gFld("Усолье Сибирское"))
insDoc(aux2, gLnk("Флирт", "./groups/?gr=flirt"))
aux2=insFld(aux1, gFld("Заринск"))
insDoc(aux2, gLnk(" ХМЕЛИ-СУНЕЛИ", "./groups/?gr=hmelli_sunelli"))
aux1=insFld(foldersTree, gFld("Радио"))
insDoc(aux1, gLnk("Слушать радио", "http://radio.sibpunk.ru:8000/sibpunk.m3u"))
aux1=insFld(foldersTree, gFld("Аудио"))
insDoc(aux1, gLnk("Каталог аудио от SibPunk.ru", "./audio/"))
insDoc(aux1, gLnk("Каталог аудио от студии ШИШКА-С-ПЕРЦЕМ RECORDS", "./cat1.php"))
aux1=insFld(foldersTree, gFld("Видео"))
insDoc(aux1, gLnk("Каталог видео", "./video.php"))
aux1=insFld(foldersTree, gFld("Статьи"))
aux2=insFld(aux1, gFld("Отчёты"))
insDoc(aux2, gLnk("Панк фест «Нон-стоп Цугундер 3»", "./old/nonstopcugunder3.php"))
insDoc(aux2, gLnk("Панк фест «Выбрей Ирокез»", "./old/irokezfest.php"))
insDoc(aux2, gLnk("Сиб-панк десант в Новосибирске 14.07.2007 г.", "./old/spdn1.php"))
insDoc(aux2, gLnk("Сиб-панк десант в Красноярске 17.07.2007 г.", "./old/spdk1.php"))
insDoc(aux2, gLnk("Рок-ФЕСТ «Катастрофа»", "./old/katastrofa.php"))
insDoc(aux1, gLnk("Байки от Майка", "./spid/bayki.php"))
insDoc(aux1, gLnk("Байки про Майка", "./spid/bayki2.php"))
insDoc(aux1, gLnk("Статья про неформалов", "./old/nefor1.php"))
insDoc(aux1, gLnk("Олег Бочаров «ПАНК ЭНЦИКЛОПЕДИЯ»", "./old/punkenceclopediya.php"))
insDoc(aux1, gLnk("Евгений Головин «СЕНТИМЕНТАЛЬНОЕ БЕШЕНСТВО РОК-Н-РОЛЛА»", "./old/sent_besh_rnr.php"))
insDoc(aux1, gLnk("Панк - как этика и эстетика", "./old/punketica.php"))
insDoc(aux1, gLnk("Словарь DIY Панк-терминов", "./old/diy.php"))
aux1=insFld(foldersTree, gFld("Форум"))
insDoc(aux1, gLnk("Вход","./forum.php?event=login"))
insDoc(aux1, gLnk("Участники","./tools.php?event=who"))
insDoc(aux1, gLnk("Поиск","./tools.php?event=find"))
insDoc(aux1, gLnk("Помощь","./tools.php?event=find"))
insDoc(foldersTree, gLnk("Регистрация","./help.php"))
insDoc(foldersTree, gLnk("Панк-чат","./punkchat.php"))
insDoc(foldersTree, gLnk("Гостевуха","./guest/"))
insDoc(foldersTree, gLnk("FAQ","./faq/"))
insDoc(foldersTree, gLnk("Punk Soft","./punksoft/"))
insDoc(foldersTree, gLnk("О проекте","./about.php"))
ExpandTree()
}

function ExpandTree()
{
clickOnFolderRec(foldersTree, "ОбосСайт")
}

function gFld(name)
{
var arrayAux

  arrayAux = new Array
  arrayAux[0] = 0
  arrayAux[1] = 0
  arrayAux[2] = 0
  arrayAux[3] = name
  
  return arrayAux
}


//Append Child of type Folder
function insFld(parent, child)
{
  parent[parent.length] = child
  return child
}

//Append Child of type Doc
function insDoc(parent, child)
{
  parent[2] = parent[2] + 1
  parent[parent.length] = child
  return child
}


//these are the last entries in the hierarchy, the local and remote links to html documents (gLnk=generateLinkEntry)
function gLnk(docDescription, link)
{
var adr="<a href="+link+" target=_parent>";
var retString =adr+"<img src='img/doc.png' alt='Документ' border=0></a><td nowrap>"+adr+docDescription+"</a>";

return retString

}




// **********************
// display functions

//redraws the left frame
function redrawTree()
{
var doc = top.treeFrame.window.document
doc.clear()
doc.write("<html><meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /><style type='text/css'>");
doc.write("<!--");

doc.write("a {font-size:12px; font-family: Arial, Helvetica; color:#000; text-decoration:none}");
doc.write("a:hover {font-size:12px;font-family: Arial, Helvetica;color:#00E022;text-decoration:underline;}");
doc.write("body {margin-top:0px; background:#F6F8F7;scrollbar-face-color:#CFCED2; scrollbar-highlight-color:#F6F6F7; scrollbar-shadow-color:#B3B3B3; scrollbar-3dlight-color:#B3B3B3; scrollbar-arrow-color:#707071; scrollbar-track-color:#E1E1E1; scrollbar-darkshadow-color:#888888; scrollbar-base-color:#fff;}");
doc.write("#hdr {height:4px;}");
doc.write("-->");
doc.write("</style>");
doc.write("<body><div id=hdr></div><table border=0><tr><td>&nbsp;</td><td>");  
redrawNode(foldersTree, doc, 0, 1, "");
doc.write("</rd></tr></table></body></html>");
doc.close()
}

//recursive function over the tree structure called by redrawTree
function redrawNode(foldersNode, doc, level, lastNode, leftSide)
{
var j=0
var i=0
var numberOfFolders
var numberOfDocs

  doc.write("<table border=0 cellspacing=0 cellpadding=0>\n")
  doc.write("<tr>\n<td valign = middle nowrap>\n")

  doc.write(leftSide)

  if (level>0)
    if (lastNode) //the last 'brother' in the children array
    {
      doc.write("<img src='img/lastnode.gif' width=16 height=22>")
      leftSide = leftSide + "<img src='img/blank.gif' width=16 height=22>" 
    }
    else
    {
      doc.write("<img src='img/node.gif' width=16 height=22>")
      leftSide = leftSide + "<img src='img/vertline.gif' width=16 height=22>"
    }

  displayIconAndLabel(foldersNode, doc)
  doc.write("</table>\n\n")

  if (foldersNode.length > 4 && foldersNode[0]) //there are sub-nodes and the folder is open
  {
      numberOfFolders = foldersNode.length - 4 - foldersNode[2]

      // display the folders
      level = level + 1
      for (i=4 ; i < 4 + numberOfFolders; i++) 
      {
          if (i == (foldersNode.length - 1))
              redrawNode(foldersNode[i], doc, level, 1, leftSide)
          else
              redrawNode(foldersNode[i], doc, level, 0, leftSide)
      }
      // display the documents
      for ( i = 4 + numberOfFolders; i < foldersNode.length ; i++ ) 
      {
          doc.write("<table border=0 cellspacing=0 cellpadding=0 valign=middle>")
          doc.write("<tr><td nowrap>")
          doc.write(leftSide)
          if (i == foldersNode.length - 1)
              doc.write("<img src='img/lastnode.gif' width=16 height=22>")
          else
              doc.write("<img src='img/node.gif' width=16 height=22>")
          doc.write("</td><td>")
          doc.write(foldersNode[i])
          doc.write("</tr>")
          doc.write("</table>")
      }
  }
}

//builds the html code to display a folder and its label
function displayIconAndLabel(foldersNode, doc)
{
  doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[3] + "\")'")
  if (foldersNode[1])
  {
    doc.write(" onMouseOver=\'window.status=\"Закрыть папку\"; return true\'><img src=")
    doc.write("img/openfolder.png width=24 height=22 border=noborder></a>")
  }
  else
  {
    doc.write("onMouseOver='window.status=\"Открыть папку\"; return true'><img src=")
    doc.write("img/closedfolder.png width=24 height=22 border=noborder></a>")
  }
  doc.write("<td valign=middle align=left nowrap>")
  doc.write("<font size=-1 face='Arial, Helvetica'>"+foldersNode[3]+"</font>")
}

//**********************
// Recursive functions

//when a parent is closed all children also are
function closeFolders(foldersNode)
{
var i=0

    for (i=4; i< foldersNode.length - foldersNode[2]; i++)
      closeFolders(foldersNode[i])

    foldersNode[0] = 0
    foldersNode[1] = 0
}

//recursive over the tree structure
//called by openbranch
function clickOnFolderRec(foldersNode, folderName)
{
var i=0

  if (foldersNode[3] == folderName)
  {
    if (foldersNode[0])
      closeFolders(foldersNode)
    else
    {
      foldersNode[0] = 1
      foldersNode[1] = 1
    }
  }
  else
  {
      for (i = 4 ; i < foldersNode.length  - foldersNode[2]; i++)
         clickOnFolderRec(foldersNode[i], folderName)
  }
}


// ********************
// Event handlers

//called when the user clicks on a folder
function openBranch(branchName)
{
  clickOnFolderRec(foldersTree, branchName)
 /* if (branchName==foldersTree[3] && foldersTree[0]==0)
    top.folderFrame.location="basefolder.html" //closing the root folder
                                              //makes the welcome page to show*/
  timeOutId = setTimeout("redrawTree()",100)
}

//called after this html file is loaded
function initializeTree()
{
  generateTree()
  redrawTree()
}

function ttf(txt) {window.Hint.innerHTML=txt;}

var foldersTree = 0
var timeOutId = 0
var USETEXTLINKS = 0
//var clientPC = navigator.userAgent.toLowerCase(); 
generateTree() //sometimes when the user reloads the document Netscape 3.01 does not trigger the onLoad event (!!)


