var xmlDoc = null ;
var menuitems = null;
var xmlStream = new Array();

/*
** Ajax core stuff
*/
function httpload(url, processFunc, processArgs, streamNr) {
  // StreamNr is used, when you want to send out multiple requests
  // simultaniously. Use a different number for each request,
  // and an appropriate callback function, or things get messed up.....
  if (!streamNr) { streamNr = 1; }
  xmlStream[processFunc] = streamNr;

  if (typeof window.ActiveXObject != 'undefined' ) {
    eval('xmlDoc'+streamNr+' = new ActiveXObject("Microsoft.XMLHTTP");');
    eval('xmlDoc'+streamNr+'.onreadystatechange = eval(processFunc) ;');
  }
  else {
    eval('xmlDoc'+streamNr+' = new XMLHttpRequest();');
    eval('xmlDoc'+streamNr+'.onload = eval(processFunc) ;');
  }
  if (processFunc == 'processHtmlPage') {
    fillDiv("maincontent", "<h2>Loading content....</h2>");
  }
  eval('xmlDoc'+streamNr+'.open( "GET", url, true );');
  eval('xmlDoc'+streamNr+'.send( null );');
}

/*
** Ajax callback function
*/
function processPageIndex() {
  // Find stream nr
  streamNr = xmlStream['processPageIndex'];
  if (streamNr) { eval('xmlDoc = xmlDoc'+streamNr+';'); }
  if ( xmlDoc.readyState != 4 ) return ;
  /* Returned text should be a JavaScript array.... Eval it into existence */
  eval(xmlDoc.responseText);
  buildMenu(menutitle, menuitems);
}

/*
** Ajax callback function
*/
function processHtmlPage() {
  streamNr = xmlStream['processHtmlPage'];
  if (streamNr) { eval('xmlDoc = xmlDoc'+streamNr+';'); }
  if ( xmlDoc.readyState != 4 ) return ;
  /* Returned text should be page contents */
  document.getElementById("maincontent").innerHTML = xmlDoc.responseText;
  replaceHeaders();
}

/*
** Ajax callback function
*/
function processHtmlPage2() {
  streamNr = xmlStream['processHtmlPage2'];
  if (streamNr) { eval('xmlDoc = xmlDoc'+streamNr+';'); }
  if ( xmlDoc.readyState != 4 ) return ;
  /* Returned text should be page contents */
  document.getElementById("topcontent").innerHTML = xmlDoc.responseText;
}

/*
** Replace content of object
*/
function fillDiv(id, content) {
  document.getElementById(id).innerHTML = content;
}


/*
** Menu build function
*/
function buildMenu(menutitle, menuitems) {
    var menuDiv = document.getElementById('menuDiv');
    menuDiv.innerHTML = "";

    var preloadDiv = document.createElement("DIV");
    preloadDiv.style.visibility = "hidden";
    preloadDiv.style.display = "none";
    preloadDiv.style.width = "0px";
    preloadDiv.style.height = "0px";

    var myTable = document.createElement("TABLE");
    myAttr = document.createAttribute('class'); myAttr.value = 'testitem';
    myTable.setAttributeNode(myAttr);
    myTable.width = 225;
    myTable.border = 0;
    myTable.style.fontSize = '150%';

    if (menutitle['image'] ) {
      var myCaption = document.createElement("CAPTION");
      var myTitle = document.createElement("IMG");
      // myTitle.outerHTML = "<img class='menutitle' style='height: 3em; src='" + menutitle['image'] + "' alt='" + menutitle['Display_text'] + "' />";
      myAttr = document.createAttribute('class'); myAttr.value = 'menutitle';
      myTitle.setAttributeNode(myAttr);
      myAttr = document.createAttribute('height'); myAttr.value = 10;
      myTitle.setAttributeNode(myAttr);
      myTitle.style.height = '3em';
      // myTitle.style.width = 'auto';
      myTitle.src = menutitle['image']
      myTitle.setAttribute('alt', menutitle['displaytext']);

      myCaption.appendChild(myTitle);
      myTable.appendChild(myCaption);
    }
    else
    {
      myCaption = document.createElement("CAPTION");
      myCaption.innerHTML = "<br /><br /><br />";
      myTable.appendChild(myCaption);
    }

    var myTbody = document.createElement("TBODY");
    for(idx in menuitems) {
      var myTR = document.createElement("TR");
      var myTD = document.createElement("TD");
      myAttr = document.createAttribute('class'); myAttr.value = 'testitem';
      myTD.setAttributeNode(myAttr);

      var myA  = document.createElement("A");
      myAttr = document.createAttribute('class'); myAttr.value = 'testitem';
      myA.setAttributeNode(myAttr);
      newHref = 'javascript:';
      if (menuitems[idx]['iframe']) {
        newHref += 'startIframe("'+menuitems[idx]['href_text']+'")';
        // newHref += 'httpload(\''+menuitems[idx]['href_text']+'\', \'processHtmlPage\', \'\', 2);';
      } else {
        if (menuitems[idx]['type'] == 'menu') {
            // newHref += 'httpload(\'menu-2007.ajax.php?parent='+menuitems[idx]['child']+'\', \'processPageIndex\', \'\');';
            newHref += 'httpload(\'/ajax/parent/'+menuitems[idx]['child']+'\', \'processPageIndex\', \'\');';
        }
        if (menuitems[idx]['type'] == 'page' || (menuitems[idx]['type'] == 'menu' && menuitems[idx]['childpage'])) {
            // newHref += 'httpload(\'page-2007.ajax.php?page='+menuitems[idx]['childpage']+'\', \'processHtmlPage\', \'\', 2);';
            newHref += 'httpload(\'/ajax/page/'+menuitems[idx]['childpage']+'\', \'processHtmlPage\', \'\', 2);';
        }
      }
      myA.href = newHref;

      var myIMG  = document.createElement("IMG");
      myAttr = document.createAttribute('onMouseOver'); myAttr.value = 'this.src="'+menuitems[idx]['image_over']+'"';
      myIMG.setAttributeNode(myAttr);
      myAttr = document.createAttribute('onMouseOut'); myAttr.value = 'this.src="'+menuitems[idx]['image']+'"';
      myIMG.setAttributeNode(myAttr);
      myAttr = document.createAttribute('alt'); myAttr.value = menuitems[idx]['displaytext'];
      myIMG.setAttributeNode(myAttr);
      myIMG.style.width = (10*menuitems[idx]['displaytext'].length) +"px";
      myIMG.style.height = '25px';
      myIMG.src = menuitems[idx]['image'];

      var preloadIMG  = document.createElement("IMG");
      preloadIMG.src = menuitems[idx]['image_over'];
      preloadDiv.appendChild(preloadIMG);

      myA.appendChild(myIMG);
      myTD.appendChild(myA);
      myTR.appendChild(myTD);
      myTbody.appendChild(myTR);
      myTable.appendChild(myTbody);
    }

    menuDiv.appendChild(preloadDiv);
    menuDiv.appendChild(myTable);
}


