/**********************************
          GLOBAL VARIABLES
***********************************/

// pre-cache art files and sizes for widget styles and spacers
// (all images must have same height/width)

var collapsedWidget = new Image(20, 16);
collapsedWidget.src = "oplus.gif";

var collapsedWidgetStart = new Image(20, 16);
collapsedWidgetStart.src = "oplusStart.gif";

var collapsedWidgetEnd = new Image(20, 16);
collapsedWidgetEnd.src = "oplusEnd.gif";

var expandedWidget = new Image(20, 16);
expandedWidget.src = "ominus.gif";

var expandedWidgetStart = new Image(20, 16);
expandedWidgetStart.src = "ominusStart.gif";

var expandedWidgetEnd = new Image(20, 16);
expandedWidgetEnd.src = "ominusEnd.gif";

var nodeWidget = new Image(20, 16);
nodeWidget.src = "onode.gif";

var nodeWidgetEnd = new Image(20, 16);
nodeWidgetEnd.src = "onodeEnd.gif";

var emptySpace = new Image(20, 16);
emptySpace.src = "oempty.gif";

var chainSpace = new Image(20, 16);
chainSpace.src = "ochain.gif";


// miscellaneous globals
var widgetWidth = "20";
var widgetHeight = "16";
var currState = "";
var displayTarget = "mainp";

/**********************************
           DATA COLLECTIONS
***********************************/

//var expansionState = "0,1,1,1,1,1,1";
var expansionState = "";

// constructor for outline item objects
function outlineItem(text, uri) {

    this.text = text;
    this.uri = uri;
}

/*

var olData =

{childNodes:[
 {item:new outlineItem("Allgemeines Krankenhaus der Stadt Wien","")
  ,childNodes:[
   {item:new outlineItem("Ambulanz","")
    ,childNodes:[
     {item:new outlineItem("Besuche","")
      ,childNodes:[
        {item:new outlineItem("Auswahl Betriebstellen (Ambulanzen)","")
         ,childNodes:[
          {item:new outlineItem("Ambulanz Zuw.Betriebsstelle andere Krankenanstalt","")
           ,childNodes:[
            {item:new outlineItem("Ambulanz Besuchsdatum","javascript:emp('10000006')")}]},
          {item:new outlineItem("Dermatologie Ambulanz","")}
         ]
        }
       ]
      }
     ]
    }
   ]
  }
 ]
}

*/

var olData = 

{childNodes:[ 
  {item:new outlineItem("Bornit Spol. s r.o.", "")
      ,childNodes:[ 
		     {item:new outlineItem("Decal", "")
		       ,childNodes:[ 
				   {item:new outlineItem("Tally Ho !", "")
			         ,childNodes:[ 
			              {item:new outlineItem("lietadla  1/72", "ViewDB5.php?_TABLE=DeTallyho72")},
				          {item:new outlineItem("lietadla  1/48", "ViewDB5.php?_TABLE=DeTallyho48")},
				          {item:new outlineItem("lietadla  1/32", "ViewDB5.php?_TABLE=DeTallyho32")} 
			          ] }  



			      ,{item:new outlineItem("Ostatne", "")
					 ,childNodes:[ 

							   {item:new outlineItem("lietadla  1/72", "ViewDB5.php?_TABLE=DeOstatne72")},
				               {item:new outlineItem("lietadla  1/48", "ViewDB5.php?_TABLE=DeOstatne48")},
				               {item:new outlineItem("lietadla  1/32", "ViewDB5.php?_TABLE=DeOstatne32")} 

					] }
				] }


            ,{item:new outlineItem("Doplnky", "") 

	           ,childNodes:[

			       {item:new outlineItem("Aires", "")

			         ,childNodes:[ 

			              {item:new outlineItem("lietadla  1/72", "ViewDB3.php?_TABLE=DoAires72")},
				          {item:new outlineItem("lietadla  1/48", "ViewDB3.php?_TABLE=DoAires48")},
				          {item:new outlineItem("lietadla  1/32", "ViewDB3.php?_TABLE=DoAires32")},
				          {item:new outlineItem("ostatne",        "ViewDB1.php?_TABLE=DoAireso")} 

			          ]
			       } 
				   
				   ,{item:new outlineItem("Bilek lepty", "") 

			         ,childNodes:[ 

					      {item:new outlineItem("lietadla  1/72", "ViewDB3.php?_TABLE=DoBilekl72")},
						  {item:new outlineItem("technika  1/35", "ViewDB3.php?_TABLE=DoBilekt35")}
                      ]
			       } 

				   ,{item:new outlineItem("Eduard Big Ed", "") 

			         ,childNodes:[ 

					      {item:new outlineItem("lietadla  1/72", "ViewDB3.php?_TABLE=DoEdliet72")},
						  {item:new outlineItem("lietadla  1/48", "ViewDB3.php?_TABLE=DoEdliet48")},
				          {item:new outlineItem("lietadla  1/32", "ViewDB3.php?_TABLE=DoEdliet32")},
				          {item:new outlineItem("vrtulniky 1/35", "ViewDB3.php?_TABLE=DoEdvrtul35")},
						  {item:new outlineItem("lode",           "ViewDB3.php?_TABLE=DoEdlode")},
				          {item:new outlineItem("technika  1/48", "ViewDB3.php?_TABLE=DoEdtech48")},
						  {item:new outlineItem("technika  1/35", "ViewDB3.php?_TABLE=DoEdtech35")}
                      ]
			       } 

				   ,{item:new outlineItem("Eduard lepty", "")  

			         ,childNodes:[ 
					 
					      {item:new outlineItem("lietadla  1/72",          "ViewDB3.php?_TABLE=DoEdlliet72")},
						  {item:new outlineItem("lietadla color 1/72",     "ViewDB3.php?_TABLE=DoEdllietc72")},
						  {item:new outlineItem("lietadla ZOOM 1/72",      "ViewDB1.php?_TABLE=DoEdllietz72")},
                          {item:new outlineItem("lietadla  1/48",          "ViewDB3.php?_TABLE=DoEdlliet48")},
						  {item:new outlineItem("lietadla color 1/48",     "ViewDB3.php?_TABLE=DoEdllietc48")},
						  {item:new outlineItem("lietadla ZOOM 1/48",      "ViewDB1.php?_TABLE=DoEdllietz48")},
				          {item:new outlineItem("lietadla  1/32",          "ViewDB3.php?_TABLE=DoEdlliet32")},
						  {item:new outlineItem("lietadla color 1/32",     "ViewDB3.php?_TABLE=DoEdllietc32")},
						  {item:new outlineItem("lietadla dashb. 1/32",    "ViewDB3.php?_TABLE=DoEdllietd32")},
				          {item:new outlineItem("lietadla 1/24",           "ViewDB3.php?_TABLE=DoEdlliet24")},
						  {item:new outlineItem("vrtulniky 1/35",          "ViewDB3.php?_TABLE=DoEdlvrtul35")},
						  {item:new outlineItem("lode",                    "ViewDB1.php?_TABLE=DoEdllode")},
				          {item:new outlineItem("technika  1/72",          "ViewDB3.php?_TABLE=DoEdltech72")},
						  {item:new outlineItem("technika  1/48",          "ViewDB3.php?_TABLE=DoEdltech48")},
						  {item:new outlineItem("technika  1/35",          "ViewDB3.php?_TABLE=DoEdltech35")},
						  {item:new outlineItem("technika ZOOM 1/35",      "ViewDB3.php?_TABLE=DoEdltechz35")},
						  {item:new outlineItem("ostatne",                 "ViewDB3.php?_TABLE=DoEdlost")}
                      ]
			       } 


				   ,{item:new outlineItem("Eduard masky", "")  

			         ,childNodes:[ 

					      {item:new outlineItem("lietadla  1/72", "ViewDB3.php?_TABLE=DoEdmaliet72")},
						  {item:new outlineItem("lietadla  1/48", "ViewDB3.php?_TABLE=DoEdmaliet48")},
				          {item:new outlineItem("lietadla  1/32", "ViewDB3.php?_TABLE=DoEdmaliet32")},
				          {item:new outlineItem("vrtulniky 1/35", "ViewDB3.php?_TABLE=DoEdmavrtul35")},
				          {item:new outlineItem("technika  1/48", "ViewDB3.php?_TABLE=DoEdmatech48")},
						  {item:new outlineItem("technika  1/35", "ViewDB3.php?_TABLE=DoEdmatech35")}
                      ]
			       } 


				   ,{item:new outlineItem("Quickboost-lietadla 1/72", "")  



			         ,childNodes:[ 



							   {item:new outlineItem("engines/cowlings",   "ViewDB8.php?_TABLE=DoQuickec72")},
							   {item:new outlineItem("ejection seats",     "ViewDB8.php?_TABLE=DoQuickes72")},
							   {item:new outlineItem("exhausts",           "ViewDB8.php?_TABLE=DoQuickex72")},
							   {item:new outlineItem("gun/cannon barrels", "ViewDB8.php?_TABLE=DoQuickgc72")},
							   {item:new outlineItem("propeller",          "ViewDB8.php?_TABLE=DoQuickpr72")},
							   {item:new outlineItem("other",              "ViewDB8.php?_TABLE=DoQuickot72")} 
                                 ] }



				   ,{item:new outlineItem("Quickboost-lietadla 1/48", "")

					 ,childNodes:[ 

							   {item:new outlineItem("engines/cowlings",   "ViewDB8.php?_TABLE=DoQuickec48")},
							   {item:new outlineItem("ejection seats",     "ViewDB8.php?_TABLE=DoQuickes48")},
							   {item:new outlineItem("exhausts",           "ViewDB8.php?_TABLE=DoQuickex48")},
							   {item:new outlineItem("gun/cannon barrels", "ViewDB8.php?_TABLE=DoQuickgc48")},
							   {item:new outlineItem("propeller",          "ViewDB8.php?_TABLE=DoQuickpr48")},
							   {item:new outlineItem("other",              "ViewDB8.php?_TABLE=DoQuickot48")} 
							     ] }



				          ,{item:new outlineItem("Quickboost-lietadla 1/32", "")

						    ,childNodes:[ 

							   {item:new outlineItem("engines/cowlings",   "ViewDB8.php?_TABLE=DoQuickec32")},
							   {item:new outlineItem("ejection seats",     "ViewDB8.php?_TABLE=DoQuickes32")},
							   {item:new outlineItem("exhausts",           "ViewDB8.php?_TABLE=DoQuickex32")},
							   {item:new outlineItem("gun/cannon barrels", "ViewDB8.php?_TABLE=DoQuickgc32")},
							   {item:new outlineItem("propeller",          "ViewDB8.php?_TABLE=DoQuickpr32")},
							   {item:new outlineItem("other",              "ViewDB8.php?_TABLE=DoQuickot32")} 
							]
						  } 

			   ]
             } 



            ,{item:new outlineItem("Chemia", "") 

	           ,childNodes:[

				    {item:new outlineItem("GSI", "")  


			         ,childNodes:[ 

					      {item:new outlineItem("farby Mr. Color (C)",       "ViewDB3.php?_TABLE=ChGsiMrc")},
						  {item:new outlineItem("farby Aq.Hb.Col. (H)",      "ViewDB3.php?_TABLE=ChGsiAhc")},
						  {item:new outlineItem("Metallic",                  "ViewDB3.php?_TABLE=ChGsiMet")},
				          {item:new outlineItem("ostatne",                   "ViewDB3.php?_TABLE=ChGsiOst")} 
                      ]
			        } 



				    ,{item:new outlineItem("Revell", "")  


			         ,childNodes:[ 

					      {item:new outlineItem("farby synteticke",          "ViewDB3.php?_TABLE=ChRevFas")},
						  {item:new outlineItem("farby Aqua color",          "ViewDB3.php?_TABLE=ChRevFac")},
				          {item:new outlineItem("ostatne",                   "ViewDB3.php?_TABLE=ChRevOst")} 

                      ]
			         } 

			   ]
			 } 

            ,{item:new outlineItem("Modely", "") 

	           ,childNodes:[

			       {item:new outlineItem("lietadla 1/144", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLDragon144")},
				          {item:new outlineItem("Eduard",         "ViewModels.php?_TABLE=MoLEduard144")},
				          {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLTrump144")},
				          {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoLZvezda144")} 
			          ]
			       } 


			       ,{item:new outlineItem("lietadla a vrtulniky 1/72", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Academy",        "ViewModels.php?_TABLE=MoLAcademy72")},
						  {item:new outlineItem("AZ model",       "ViewModels.php?_TABLE=MoLAzmodel72")},
						  {item:new outlineItem("Bilek",          "ViewModels.php?_TABLE=MoLBilek72")},
						  {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLDragon72")},
				          {item:new outlineItem("Eduard",         "ViewModels.php?_TABLE=MoLEduard72")},
                          {item:new outlineItem("Fujimi",         "ViewModels.php?_TABLE=MoLFujimi72")},
						  {item:new outlineItem("Hasegawa",       "ViewModels.php?_TABLE=MoLHasegawa72")},
						  {item:new outlineItem("Hobby Boss",     "ViewModels.php?_TABLE=MoLHobbyboss72")},
						  {item:new outlineItem("ICM",            "ViewModels.php?_TABLE=MoLIcm72")},
						  {item:new outlineItem("Italeri",        "ViewModels.php?_TABLE=MoLItaleri72")},
						  {item:new outlineItem("Revell",         "ViewModels.php?_TABLE=MoLRevell72")},
						  {item:new outlineItem("Roden",          "ViewModels.php?_TABLE=MoLRoden72")},
						  {item:new outlineItem("RS models",      "ViewModels.php?_TABLE=MoLRsmodels72")},
				          {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLTrumpeter72")},
						  {item:new outlineItem("Valom",          "ViewModels.php?_TABLE=MoLValom72")},
				          {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoLZvezda72")} 

			          ]
			       } 

			       ,{item:new outlineItem("lietadla a vrtulniky 1/48", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Academy",        "ViewModels.php?_TABLE=MoLAcademy48")},
						  {item:new outlineItem("Airfix",         "ViewModels.php?_TABLE=MoLAirfix48")},
						  {item:new outlineItem("AZ model",       "ViewModels.php?_TABLE=MoLAzmodel48")},
						  {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLDragon48")},
				          {item:new outlineItem("Eduard",         "ViewModels.php?_TABLE=MoLEduard48")},
						  {item:new outlineItem("Gavia",          "ViewModels.php?_TABLE=MoLGavia48")},
						  {item:new outlineItem("Hasegawa",       "ViewModels.php?_TABLE=MoLHasegawa48")},
						  {item:new outlineItem("Hobby Boss",     "ViewModels.php?_TABLE=MoLHobbyboss48")},
						  {item:new outlineItem("ICM",            "ViewModels.php?_TABLE=MoLIcm48")},
						  {item:new outlineItem("Italeri",        "ViewModels.php?_TABLE=MoLItaleri48")},
						  {item:new outlineItem("Revell",         "ViewModels.php?_TABLE=MoLRevell48")},
						  {item:new outlineItem("Roden",          "ViewModels.php?_TABLE=MoLRoden48")},
						  {item:new outlineItem("Special Hobby",  "ViewModels.php?_TABLE=MoLSphobby48")},
						  {item:new outlineItem("Tamiya",         "ViewModels.php?_TABLE=MoLTamiya48")},
				          {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLTrumpeter48")},
				          {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoLZvezda48")} 
			          ]
			       } 


			       ,{item:new outlineItem("lietadla 1/32", "")


			         ,childNodes:[ 

					      {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLDragon32")},
                          {item:new outlineItem("Eduard",         "ViewModels.php?_TABLE=MoLEduard32")},
			              {item:new outlineItem("Roden",          "ViewModels.php?_TABLE=MoLRoden32")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLTrumpeter32")}

			          ]
			       } 

			       ,{item:new outlineItem("vrtulniky 1/35", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Dragon",         "ViewDB3.php?_TABLE=MoVRDragon35")},
						  {item:new outlineItem("Trumpeter",      "ViewDB3.php?_TABLE=MoVRTrumpeter35")}

			          ]
			       } 


			       ,{item:new outlineItem("technika 1/72", "")

			         ,childNodes:[ 

					      {item:new outlineItem("Academy",        "ViewModels.php?_TABLE=MoTchAcademy72")},
			              {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoTchDragon72")},
						  {item:new outlineItem("Hobby Boss",     "ViewModels.php?_TABLE=MoTchHobbyboss72")},
						  {item:new outlineItem("ICM",            "ViewModels.php?_TABLE=MoTchIcm72")},
						  {item:new outlineItem("Italeri",        "ViewModels.php?_TABLE=MoTchItaleri72")},
						  {item:new outlineItem("mUMt",           "ViewModels.php?_TABLE=MoTchMumt72")},
                          {item:new outlineItem("Revel",          "ViewModels.php?_TABLE=MoTchRevel72")},
						  {item:new outlineItem("Roden",          "ViewModels.php?_TABLE=MoTchRoden72")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoTchTrumpeter72")},
						  {item:new outlineItem("UM",             "ViewModels.php?_TABLE=MoTchUm72")}
			          ]
			       } 

			       ,{item:new outlineItem("technika 1/35", "")

			         ,childNodes:[ 

					      {item:new outlineItem("AFV Club",       "ViewModels.php?_TABLE=MoTchAfvclub35")},
						  {item:new outlineItem("Bilek",          "ViewModels.php?_TABLE=MoTchBilek35")},
			              {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoTchDragon35")},
						  {item:new outlineItem("Eduard",         "ViewModels.php?_TABLE=MoTchEduard35")},
						  {item:new outlineItem("Hobby Boss",     "ViewModels.php?_TABLE=MoTchHobbyboss35")},
						  {item:new outlineItem("ICM",            "ViewModels.php?_TABLE=MoTchIcm35")},
						  {item:new outlineItem("Italeri",        "ViewModels.php?_TABLE=MoTchItaleri35")},
						  {item:new outlineItem("Master Box",     "ViewModels.php?_TABLE=MoTchMasterbox35")},
						  {item:new outlineItem("Mini Art",       "ViewModels.php?_TABLE=MoTchMiniart35")},
						  {item:new outlineItem("Tamiya",         "ViewModels.php?_TABLE=MoTchTamiya35")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoTchTrumpeter35")},
						  {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoTchZvezda35")} 

			          ]
			       } 

			       ,{item:new outlineItem("lode 1/700", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLoDragon700")},
						  {item:new outlineItem("Italeri",        "ViewModels.php?_TABLE=MoLoItaleri700")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLoTrumpeter700")}
			          ]
			       } 



			       ,{item:new outlineItem("lode, ponorky 1/350", "")

			         ,childNodes:[ 

			              {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoLPDragon350")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoLPTrumpeter350")},
						  {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoLPZvezda350")} 
			          ]
			       } 



                   ,{item:new outlineItem("lode,ponorky,ostatne", "") 
			         ,childNodes:[ 

						  {item:new outlineItem("Heller 1/400",    "ViewModels.php?_TABLE=MoLPOHeller400")},
                          {item:new outlineItem("Italeri",         "ViewModels.php?_TABLE=MoLPOItaleri")}
			          ]
			       } 

			       ,{item:new outlineItem("figurky 1/72", "")
			         ,childNodes:[ 

						  {item:new outlineItem("Eduard",         "ViewDB3.php?_TABLE=MoFigEduard72")},
                          {item:new outlineItem("Italeri",        "ViewDB3.php?_TABLE=MoFigItaleri72")},
						  {item:new outlineItem("Zvezda",         "ViewDB3.php?_TABLE=MoFigZvezda72")}
			          ]
			       } 


			       ,{item:new outlineItem("figurky 1/48", "")

			         ,childNodes:[ 

						  {item:new outlineItem("Eduard",         "ViewDB3.php?_TABLE=MoFigEduard48")}

			          ]
			       } 


			       ,{item:new outlineItem("figurky 1/35", "")

			         ,childNodes:[ 

						  {item:new outlineItem("Dragon",         "ViewModels.php?_TABLE=MoFigDragon35")},

						  {item:new outlineItem("Master Box",     "ViewModels.php?_TABLE=MoFigMasterbox35")},
						  {item:new outlineItem("Mini Art",       "ViewModels.php?_TABLE=MoFigMiniart35")},
						  {item:new outlineItem("Trumpeter",      "ViewModels.php?_TABLE=MoFigTrumpeter35")},
						  {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoFigZvezda35")} 
			          ]
			       } 
				   
			       ,{item:new outlineItem("plachetnice", "")

			         ,childNodes:[ 

						  {item:new outlineItem("Heller",         "ViewModels.php?_TABLE=MoPlaHeller")},
						  {item:new outlineItem("Zvezda",         "ViewModels.php?_TABLE=MoPlaZvezda")} 
			          ]
			       } 

 		       ,{item:new outlineItem("tahace 1/24", "")

			         ,childNodes:[ 

						  {item:new outlineItem("Italeri",         "ViewModels.php?_TABLE=MoTahItaleri24")}

			   ] 

			 } 

		 ]

	 } 

			       ,{item:new outlineItem("Naradie", "")

			         ,childNodes:[ 

						  {item:new outlineItem("Pomocky",        "ViewDB3.php?_TABLE=NarPomocky")}

			          ]

			       } 





	        ,{item:new outlineItem("Admin",               "Login.html")}

	        ,{item:new outlineItem("Zasielkova sluzba",   "Sluzba.html")}


            ,{item:new outlineItem("Kontakt",             "Kontakt.html")}




     ]
  }

 ]
};

/**********************************
  TOGGLE DISPLAY AND ICONS
***********************************/

// invert item state (expanded to/from collapsed)

function swapState(currState, currVal, n) {

    var newState = currState.substring(0,n);

    newState += currVal ^ 1 // Bitwise XOR item n;
    newState += currState.substring(n+1,currState.length);
    return newState;
}

// retrieve matching version of 'minus' images

function getExpandedWidgetState(imgURL) {

    if (imgURL.indexOf("Start") != -1) {
        return expandedWidgetStart.src;
    }
    if (imgURL.indexOf("End") != -1) {
        return expandedWidgetEnd.src;
    }
	
    return expandedWidget.src;
}

// retrieve matching version of 'plus' images

function getCollapsedWidgetState(imgURL) {

    if (imgURL.indexOf("Start") != -1) {
        return collapsedWidgetStart.src;
    }
    if (imgURL.indexOf("End") != -1) {
        return collapsedWidgetEnd.src;
    }
	
    return collapsedWidget.src;
}

// toggle an outline mother entry, storing new state value;
// invoked by onclick event handlers of widget image elements

function toggle(img, blockNum) { 
    //alert("img="+img);
	//alert("blockNum="+blockNum);
    var newString = "";
    var expanded, n;

    // modify state string based on parameters from IMG
    expanded = currState.charAt(blockNum);

	//alert("expanded="+expanded);
    currState = swapState(currState, expanded, blockNum);

    // dynamically change display style
    if (expanded == "0") {
        document.getElementById("OLBlock" + blockNum).style.display = "block";
        img.src = getExpandedWidgetState(img.src);
    } else {
        document.getElementById("OLBlock" + blockNum).style.display = "none";
        img.src = getCollapsedWidgetState(img.src);
    }
}

function expandAll() {
    var newState = "";
    while (newState.length < currState.length) {
        newState += "1";
    }
    currState = newState;
    initExpand();
}


function collapseAll() {
    var newState = "";
    while (newState.length < currState.length) {
        newState += "0";
    }

    currState = newState;
    initExpand();
}


/*********************************
   OUTLINE HTML GENERATION
**********************************/

// apply default expansion state from outline's header
// info to the expanded state for one element to help
// initialize currState variable

function calcBlockState(n) {
    // get default expansionState data
    var expandedData = (expansionState.length > 0) ? expansionState.split(",") : null;
    if (expandedData) {
        for (var j = 0; j < expandedData.length; j++) {
            if (n == expandedData[j] - 1) {
                return "1";
            }
        }
    }
    return "0";
}


// counters for reflexive calls to drawOutline()
var currID = 0;
var blockID = 0;

// generate HTML for outline
function drawOutline(ol, prefix) {
    var output = "";
    var nestCount, link, nestPrefix, lastInnerNode;
    prefix = (prefix) ? prefix : "";
    for (var i = 0; i < ol.childNodes.length ; i++) {
        nestCount = (ol.childNodes[i].childNodes) ? ol.childNodes[i].childNodes.length : 0;
        output += "<div class='OLRow' id='line" + currID++ + "'>\n";
        if (nestCount > 0) {
            output += prefix;
            output += "<img id='widget" + (currID-1) + "' src='" + ((i == ol.childNodes.length-1 && blockID != 0) ? collapsedWidgetEnd.src : (blockID == 0) ? collapsedWidgetStart.src : collapsedWidget.src);
            output += "' height=" + widgetHeight + " width=" + widgetWidth;
            output += " title='Click to expand/collapse nested items.' onClick='toggle(this," + blockID + ")'>&nbsp;";
            link =  (ol.childNodes[i].item.uri) ? ol.childNodes[i].item.uri : "";
            if (link) {
                output += "<a href='" + link + "' class='itemTitle' title='" +
                link + "' target='" + displayTarget + "'>" ;
            } else {
                output += "<a class='itemTitle' title='" + link + "'>";
            }
            output += "<span style='position:relative; top:-3px; height:11px'>" + ol.childNodes[i].item.text + "</span></a>";
            currState += calcBlockState(currID-1);
            output += "<span class='OLBlock' blocknum='" + blockID + "' id='OLBlock" + blockID++ + "'>";
            nestPrefix = prefix;
            nestPrefix += (i == ol.childNodes.length - 1) ?
                       "<img src='" + emptySpace.src + "' height=" + widgetHeight + " width=" + widgetWidth + ">" :
                       "<img src='" + chainSpace.src + "' height=" + widgetHeight + " width=" + widgetWidth + ">"
            output += drawOutline(ol.childNodes[i], nestPrefix);
            output += "</span></div>\n";
        } else {
            output += prefix;
            output += "<img id='widget" + (currID-1) + "' src='" + ((i == ol.childNodes.length - 1) ? nodeWidgetEnd.src : nodeWidget.src);
            output += "' height=" + widgetHeight + " width=" + widgetWidth + ">";
            link =  (ol.childNodes[i].item.uri) ? ol.childNodes[i].item.uri : "";
            if (link) {
                output += "&nbsp;<a href='" + link + "' class='itemTitle' title='" +
                link + "' target='" + displayTarget + "'>";
            } else {
                output += "&nbsp;<a class='itemTitle' title='" + link + "'>";
            }

            output += "<span style='position:relative; top:-3px; height:11px'>" + ol.childNodes[i].item.text + "</span></a>";
            output += "</div>\n";
        }
    }

	//alert("output="+output);
	//alert("link="+link);
    return output;
}


/*********************************
     OUTLINE INITIALIZATIONS
**********************************/

// expand items set in expansionState var, if any
function initExpand() { 
    for (var i = 0; i < currState.length; i++) {
        if (currState.charAt(i) == 1) {
            document.getElementById("OLBlock" + i).style.display = "block";
        } else {
            document.getElementById("OLBlock" + i).style.display = "none";
        }
    } 
}

// initialize first time -- invoked onload
function initExpMenu(xFile) {

    // wrap whole outline HTML in a span
    var olHTML = "<span id='renderedOL'>" + drawOutline(olData) + "</span>";

	//alert("olHTML="+olHTML);
    // throw HTML into 'content' div for display

    document.getElementById("content").innerHTML = olHTML;

	var newState = "100000000000000000000000000000000000000";

	/* var newState = "1111000000000000011111000000000000000"; */ 

	currState = newState;

    initExpand();

	setTimeout ("expandAll()", 200);

}


