// ############################################################################
// #
// #    Javascriptfunktionen für Clientseitige Navigation in Baumstruktur
// #
// #    autor Andreas Staskewitsch 2005
// #
// #    (c) 2005 www.shivas-garden.de
// ############################################################################

/////////////////////
// FrameName zum Öffnen der Links
var actiontarget = "main";

function generateTree()
{
// newElement = folderNode("IchonPath", "Link/Forlder-Title", "Link/Forlder-Description", "Link")
// wenn IconPath = 0 dan wird es ein OrdnerElement

foldersTree = folderNode(0, "navi", "Menue", "main.htm");

	//*** Shop ************************************************
		test201 = appendChild(foldersTree, folderNode(0, "Shop", "Shop", "cgi-bin/pro.pl?wg=Shop", "main"));
	//	test201 = appendChild(foldersTree, folderNode(0, "Shop", "Shop", "javascript:top.writeWKLine();top.main.location.href='cgi-bin/pro.pl?wg=Shop'", "main"));
	
		// Bongs
	    	test202 = appendChild(test201, folderNode(0, "Bongs", "Bongs","cgi-bin/pro.pl?wg=Bongs","main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Acryl","Acryl","cgi-bin/pro.pl?wg=Acryl","main"));
     			test204 = appendChild(test202, folderNode("images/doc.gif","Glas","Glas", "cgi-bin/pro.pl?wg=Glas", "main"));
     		//	test204 = appendChild(test202, folderNode("images/doc.gif","Zubehör","Zubehör", "cgi-bin/pro.pl?wg=Bong-Zubehoer", "main"));

     	// Orientalisch Wasserpfeifen
		    test202 = appendChild(test201, folderNode("0", "Orient. Wasserpfeifen", "Orient. Wasserpfeifen", "cgi-bin/pro.pl?wg=Orientalisch-Wasserpfeifen","main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Zubehör","Zubehör", "cgi-bin/pro.pl?wg=Zubehoer-Wasserpfeifen", "main"));
     		
     	// Waagen
		    test202 = appendChild(test201, folderNode(0, "Waagen", "Waagen", "cgi-bin/pro.pl?wg=Waagen", "main"));
		    	test204 = appendChild(test202, folderNode("images/doc.gif","Digitalwaagen","Digitalwaagen","cgi-bin/pro.pl?wg=Digitalwaagen","main"));
     			test204 = appendChild(test202, folderNode("images/doc.gif","Federwaagen","Federwaagen", "cgi-bin/pro.pl?wg=Federwaagen", "main"));
     			     
     	// Textilien
		    test202 = appendChild(test201, folderNode(0, "Textilien", "Textilien", "cgi-bin/pro.pl?wg=Textilien", "main"));
    		//	test204 = appendChild(test202, folderNode("images/doc.gif","Kleidung","Kleidung", "cgi-bin/pro.pl?wg=Kleidung", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Taschen","Taschen", "cgi-bin/pro.pl?wg=Taschen", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Tücher-Flaggen","Tücher-Flaggen", "cgi-bin/pro.pl?wg=Tuecher-Flaggen", "main"));
    
    	// Lebensmittel
    	 	test202 = appendChild(test201, folderNode(0, "Lebensmittel", "Lebensmittel", "cgi-bin/pro.pl?wg=Lebensmittel", "main"));					    	test204 = appendChild(test202, folderNode("images/doc.gif","Süßwaren","Süßwaren", "cgi-bin/pro.pl?wg=Suesswaren", "main"));
    		//	test204 = appendChild(test202, folderNode("images/doc.gif","Tee","Tee", "cgi-bin/pro.pl?wg=Tee", "main"));
    	
    	// Kometika
		    test204 = appendChild(test201, folderNode("images/doc.gif", "Kosmetik", "Kosmetik", "cgi-bin/pro.pl?wg=Kosmetik", "main"));	
    	
    	// Grow-Bedarf
		    test202 = appendChild(test201, folderNode(0, "Grow-Bedarf", "Grow-Bedarf", "cgi-bin/pro.pl?wg=Grow-Bedarf", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Dünger","Dünger", "cgi-bin/pro.pl?wg=Duenger", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Lampen","Lampen", "cgi-bin/pro.pl?wg=Lampen", "main"));
    		//	test204 = appendChild(test202, folderNode("images/doc.gif","Bewässung","Bewässung", "cgi-bin/pro.pl?wg=Bewässerung", "main"));
    	
    	// Raecherstaeben
		    test202 = appendChild(test201, folderNode("images/doc.gif", "Räucherstäbchen", "Räucherstäbchen", "cgi-bin/pro.pl?wg=Raeucherstaebchen", "main"));	
    			
    	// Zubehör-Sonsiges
		    test202 = appendChild(test201, folderNode(0, "Zubehör-Sonstiges", "Zubehör-Sonstiges", "cgi-bin/pro.pl?wg=Zubehoer-Sonstiges", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Köpfe-Siebe","Köpfe-Siebe", "cgi-bin/pro.pl?wg=Koepfe-Siebe", "main"));
		    	test204 = appendChild(test202, folderNode("images/doc.gif","Chillums","Chillums", "cgi-bin/pro.pl?wg=Chillums", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Reiniger-Bürsten","Reiniger-Bürsten", "cgi-bin/pro.pl?wg=Reiniger-Buersten", "main"));
    			test204 = appendChild(test202, folderNode("images/doc.gif","Pfeifen","Pfeifen", "cgi-bin/pro.pl?wg=Pfeifen", "main"));
	   		//	test204 = appendChild(test202, folderNode("images/doc.gif","Drehmaschinen","Drehmaschinen", "cgi-bin/pro.pl?wg=Drehmaschinen", "main"));
 				test204 = appendChild(test202, folderNode("images/doc.gif","Papers-Blunts-Tips","Papers-Blunts-Tips", "cgi-bin/pro.pl?wg=Papers-Blunts-Tips", "main"));
 		
 				
	    	test204 = appendChild(test201, folderNode("images/doc.gif","Warenkorb ?","Warenkorb ?","javascript:top.writeWK1()","main"));
		test200 = appendChild(foldersTree, folderNode("images/doc.gif", "Kurzporträt", "Kurzporträt","cgi-bin/seit.pl?wg=Kurzportraet","main"));
    	test200 = appendChild(foldersTree, folderNode("images/doc.gif", "Growecke", "Growecke","cgi-bin/seit.pl?wg=Growecke","main"));
	   	test200 = appendChild(foldersTree, folderNode("images/doc.gif", "AGBs", "AGBs", "cgi-bin/seit.pl?wg=AGBs","main"));
  		test200 = appendChild(foldersTree, folderNode("images/doc.gif", "Impressum", "Impressum","impressum.htm","main"));
 		test200 = appendChild(foldersTree, folderNode("images/doc.gif", "Kontakt","Kontakt", "mail.htm"));
//  	test200 = appendChild(foldersTree, folderNode("images/doc.gif", "Intern","Intern", "intern.htm"));
}
// Auxiliary function to build the node
function folderNode( icon, name, tooltip, link ){
  var arrayAux
  arrayAux = new Array
  arrayAux[0] = 0;
  arrayAux[1] = 0;
  arrayAux[2] = 0;
  arrayAux[3] = name;
  arrayAux[4] = link;
  arrayAux[5] = tooltip;
  arrayAux[6] = icon;
  return arrayAux
}
// UnterElement anfügen
function appendChild(parent, child){
  parent[parent.length] = child
  return child
}
////////////////////////////
// Anzeige funktionen
function redrawTree(){
  var doc = parent.tree.window.document
  doc.clear()
  doc.write('<link rel="stylesheet" href="style/tree.css" type="text/css">');
  doc.write("<body><form>");
  doc.write('<table height="12"><tr><td></td></tr></table>');
  doc.write('<table width="200" cellpadding="0" cellspacing="0" border="0"><tr><td width="13"></td><td height="20" class="tablehead">&nbsp;Menue</td></tr></table>');
  doc.write('<table width="200" border="0" cellpadding="0" cellspacing="0" border="0"><tr><td width="13"></td><td height="12" class="tablemain">&nbsp;</td></tr></table>');
  doc.write('<table width="200" cellpadding="0" cellspacing="0" height="90%" border="0"><tr><td width="13"></td><td valign="top" class="tablemain">');
  redrawNode(foldersTree, doc, 0, 1, "");
  doc.write('</td></tr></table></form></body>');
  doc.close()
}
// Ordnerstruktur erstellen
function redrawNode(foldersNode, doc, level, lastNode, leftSide){
var j=0
var i=0
  doc.write("<table border='0' cellspacing=0 cellpadding=0>");
  doc.write("<tr onMouseOver=this.style.backgroundColor='#eae7e6' onMouseOut=this.style.backgroundColor=''><td valign = middle nowrap>");
  doc.write(leftSide);
  if (level>1){ // mehrere Elemente auf einer Ebene
    if (lastNode){
      // Letztes Element
      doc.write("<img src='images/lastnode.gif' width=16 height=22>");
      leftSide = leftSide + "<img src='images/blank.gif' width=16 height=22>";
    }else{
      doc.write("<img src='images/node.gif' width=16 height=22>");
      leftSide = leftSide + "<img src='images/vertline.gif' width=16 height=22>";
    }
  }
  // Icons anzeigen
  if(level > 0){
    displayIconAndLabel(foldersNode, doc);
  }
  doc.write("</table>")

  // Rekursion ...
  // hat UnterElemente
  if (foldersNode.length > 7 && foldersNode[0]){
    // ist Ordner ? // Todo !foldersNode[2] kann eigentlich raus
    if (!foldersNode[2] && foldersNode[6] == 0){
      level=level+1 // Tiefe der Rekursion
      for (i=7; i<foldersNode.length;i++){
        if (i==foldersNode.length-1){
          // Letzte Node einer Ebene
          redrawNode(foldersNode[i], doc, level, 1, leftSide)
        }else{
          // erste bis vorletzte Noden
          redrawNode(foldersNode[i], doc, level, 0, leftSide)
        }
      }
    }
  }
}
// Icons anzeigen
function displayIconAndLabel(foldersNode, doc){
  if ( foldersNode[6]==0 ){
    // Element ist ein Ordner
    doc.write("<A href='javascript:parent.openBranch(\"" + foldersNode[3] + "\")'><img src=")
    if (foldersNode[1]){
      // Ordner ist geöffnet
      doc.write("images/openfolder.gif width=24 height=22 border=noborder alt=\""+foldersNode[5]+"\"></a>")
    }else{
      // Ordner ist geschlossen
      doc.write("images/closedfolder.gif width=24 height=22 border=noborder alt=\""+foldersNode[5]+"\"></a>")
    }
  }else{
    // es ist ein Link
    doc.write("<A href=\""+foldersNode[4]+"\" target=\""+actiontarget+"\"><img src=\""+foldersNode[6]+"\" border=0 alt=\""+foldersNode[5]+"\">")
  }

  doc.write("<td valign=middle align=left nowrap>")
  doc.write("<font size= 1px face='verdana, Helvetica'><A href='javascript:parent.openBranch(\"" + foldersNode[3] + "\")'>"+foldersNode[3]+"</a></font>")
}

function closeFolders(foldersNode){
  var i=0;
  // Rekursiv alle UnterOrdner schließen
  for (i=7; i<foldersNode.length; i++){
    closeFolders(foldersNode[i])
  }
  // OrdnerElemente als geschlossen markieren
  foldersNode[0] = 0
  foldersNode[1] = 0
}

function clickOnFolderRec(foldersNode, folderName){
 var i=0;
 // Angeklickte Ordnernode suchen
 if (foldersNode[3] == folderName){
  if (foldersNode[0]){
    // OrdnerNode schließen
    closeFolders(foldersNode)
    eval("parent."+actiontarget+".document.location.href = foldersNode[4]");
  }else{
   // OrdnerNode öffnen
   foldersNode[0] = 1;
   foldersNode[1] = 1;
   if ( foldersNode[4] != 0 ){
    // Link unter OrdnerNode aufrufen
    eval("parent."+actiontarget+".document.location.href = foldersNode[4]");
   }
  }
 }else{
  // Rekursion - Node nach Namen (weiter)suchen
  for (i=7; i< foldersNode.length; i++){
    clickOnFolderRec(foldersNode[i], folderName)
  }
 }
}
function openBranch(branchName){
  clickOnFolderRec(foldersTree, branchName);
  // Neue Struktur schreiben
  timeOutId = setTimeout("redrawTree()",100);
}
function initializeTree(){
  // OrdnerStruktur ausgeben
  generateTree();
  foldersTree[0]=1;

  ///////////////////////////////////////
  E1 = getParam("E1");
  E2 = getParam("E2");
  E3 = getParam("E3");
  if(E1!=""){openBranch(E1)};
  if(E2){setTimeout("openBranch(\""+E2+"\");",1000)}
  if(E3){setTimeout("openBranch(\""+E3+"\");",2000)}
  ///////////////////////////////////////

  redrawTree();
// setTimeout("openBranch('Shop');",200);
}

///////////////////////////////////////////////////////////////////
//  Funktionsname    : getParam
//  Kurzbeschreibung : gibt den Wert eines QueryStringParameters
//                     ( SParamName ) zurüch
///////////////////////////////////////////////////////////////////
function getParam( sParamName ){
  sLocation = location.href;
  aLCQS = sLocation.split("?");
  if (aLCQS.length > 1){ // Es gibt ein QS
    aParams = aLCQS[1].split("&");
    for( f=0; f<aParams.length; f++ ){
      aParam = aParams[f].split("=");
      if( aParam[0] == sParamName ){
        return aParam[1]; // Den Wert zurück!!
      }
    }
  }
}
var foldersTree = 0;
var timeOutId = 0;
window.onload = initializeTree;
