/// navigation.js

function checkFlash() {
  var boReturn = true;
  if ((parent.parent.isBrowserNetscape == true) && (parent.parent.enableFlash == false)) boReturn = false;
  return boReturn;
}

function checkBrowser() {
  var sBrowserName = navigator.appName;
  var iBrowserVersion = parseInt(navigator.appVersion);
  isBrowserNetscape = (sBrowserName == "Netscape") ? true : false;
  isBrowserIE = (sBrowserName.indexOf("Microsoft") != -1) ? true : false;
  isBrowserVersion4 = (((isBrowserNetscape == true) || (isBrowserIE == true)) && (iBrowserVersion >= 4)) ? true : false;
}

function checkPlugins() {
  enableFlash = false;
  enableShockwave = false;
  if ((isBrowserNetscape == true) && (isBrowserVersion4 == true)) {
    var myPlugins = initPlugins();
    var myPlugin = null;
    var sBeschreibung = "";
    for (var i = 0; i < myPlugins.length; ++i) {
      myPlugin = myPlugins[i];
      sBeschreibung = myPlugin.getName().toLowerCase();
      if (sBeschreibung.indexOf("shockwave flash") != -1) enableFlash = true;
      if ((sBeschreibung.indexOf("shockwave") != -1) && (sBeschreibung.indexOf("shockwave flash") == -1)) enableShockwave = true;
    }
  }
}

function NewWindow(sSource) {
  var clWidth = 0;
  var clHeight = 0;
  if (isBrowserNetscape == true) {
    clWidth = window.innerWidth;
    clHeight = window.innerHeight;
  }
  else if (isBrowserIE == true) {
    clWidth = document.body.clientWidth;
    clHeight = document.body.clientHeight;
  }
  else {
    clWidth = 800;
    clHeight = 600;
  }
  var clLeft = Math.round(0.2 * clWidth);
  var clTop = Math.round(0.2 * clHeight);
  clWidth = Math.round(0.6 * clWidth);
  clHeight = Math.round(0.6 * clHeight);
  return window.open(sSource,"","height="+clHeight+",hotkeys=yes,menubar=yes,locationbar=yes,resizable=yes,status=yes,scrollbars=yes,width="+clWidth+",screenX="+clLeft+",screenY="+clTop);
}

function checkNavigation(sPath) {
  sPath = window.location.protocol+"//"+sPath;
  if (sPath.indexOf(sBase) != -1) {
    var sName = sPath.substr(sBase.length,sPath.length-1);
    if ((isBrowserIE == true) && (window.location.protocol.indexOf("file:") == 0)) sName = unescape(escape(sName).replace(/%5C/g,"/"));
    var iAkt = getIndexOfLink(sName);
    if (iAkt != iAktNavigation) {
      iAktNavigation = iAkt;
      frames["Links"].frames["Navigation1"].window.location.href=sBase + "navigation1.htm";
    }
  }
}

function isInTree(myObj, myParent) {
  var boReturn = false;
  if (myParent != null) {
    if (myParent == myObj) return true;
    else {
      var myChilds = myParent.getDeeperList();
      if ((myChilds != null) && (myChilds.length > 0)) {
        for (var i = 0; i < myChilds.length; ++i) {
          myChild = myChilds[i];
          boReturn = isInTree(myObj, myChild);
          if (boReturn == true) break;
        }
      }
    }
  }
  return boReturn;
}

function getLevel(myObj) {
  var iLevel = -1;
  var myStartSeite = navigationArray[0];
  while ((myObj != null) && (myObj != myStartSeite)) {
    myObj = myObj.getHigher();
    iLevel++;
  }
  return iLevel;
}

function getTopLevelLink(myObj) {
  var myTop = null;
  var myStartSeite = navigationArray[0];
  while ((myObj != null) && (myObj.getHigher() != myStartSeite)) myObj = myObj.getHigher();
  if (myObj.getHigher() == myStartSeite) myTop = myObj;
  return myTop; 
}

function gotoPageByIndex(index, sForm) {
  var sDoForm = "";
  if (arguments.length > 1) sDoForm = sForm;
  if ((index >= 0) && (index < navigationArray.length)) {
    var myHelp = navigationArray[index];
    // Fr "leere" index-Seite
    if (myHelp.getLink() == "") {
	  var myChilds = myHelp.getDeeperList();
      if ((myChilds != null) && (myChilds.length > 0)) index = getIndexOfObject(myChilds[0]);
    }
    if (index != iAktNavigation) {
  	  iOldNavigation = iAktNavigation;
      iAktNavigation = index;
      showPage(sDoForm);
    }
    else {
	  if ((frames["Rechts"].frames["Text"].window.location.href != sBase + myHelp.getLink()) && (myHelp.getLink() != "")) showTextFrame(myHelp.getLink(), sDoForm);
    }
  }
}

function gotoPageByLink(sHref) {
  if (sHref != "") {
    var iQuestion = sHref.indexOf("?");
    var sQuestion = "";
    if (iQuestion != -1) {
      sQuestion = sHref.substring(iQuestion, sHref.length);
      sHref = sHref.substring(0, iQuestion);
    }
    gotoPageByIndex(getIndexOfLink(sHref), sQuestion);
  }
}

function getIndexOfLink(sHref) {
  var iIndex = -1;
  for (var i = 0; i < navigationArray.length; ++i) {
    if (navigationArray[i].getLink() == sHref) {
      iIndex = i;
      break;
    }
  }
  return iIndex;
}

function getIndexOfObject(myObj) {
  var iIndex = -1;
  for (var i = 0; i < navigationArray.length; ++i) {
    if (navigationArray[i] == myObj) {
      iIndex = i;
      break;
    }
  }
  return iIndex;
}

function changeNavigation(myAkt, myOld) {
  return ((myOld != null) && (getLevel(myAkt) >= 2) && (getLevel(myOld) >= 2) && (isInTree(myOld,myAkt.getHigher()))) ? false : true;
}

function showTextFrame(sLink, sForm) {
  var sDoForm = "";
  if (arguments.length > 1) sDoForm = sForm;
  var myText = frames["Rechts"].frames["Text"].window;
  myText.location.href=sBase + sLink + sDoForm;
}

function showPage(sForm) {
  var sDoForm = "";
  if (arguments.length > 0) sDoForm = sForm;

  var myAkt = navigationArray[iAktNavigation];
  var myOld = (iOldNavigation != -1) ? navigationArray[iOldNavigation] : null;
  var myNavigation1 = frames["Links"].frames["Navigation1"].window;
  var myNavigation2 = frames["Rechts"].frames["Navigation2"].window;

  showTextFrame(myAkt.getLink(), sDoForm);
  if (changeNavigation(myAkt, myOld) == true) myNavigation1.location.href=sBase + "navigation1.htm";
  if (myNavigation2.location.href.indexOf("/leer.htm") != -1) myNavigation2.location.href=sBase + "navigation2.htm";
}

function gotoLast() {
  // Beitr„ge einer Zeitschrift bercksichtigen
//  var myText = frames["Rechts"].frames["Text"].window;
//  if (myText.location.href.indexOf("zeitschriften/beitrag.php3") == -1) {
    iOldNavigation = iAktNavigation;
    iAktNavigation--;
    if (iAktNavigation < 0) iAktNavigation = navigationArray.length - 1;
//  }

  // Vorsicht mit "leeren" index-Seiten;
  var myHelp = navigationArray[iAktNavigation];
  if (myHelp.getLink() == "") gotoLast();
  else showPage();
}

function gotoNext() {
  iOldNavigation = iAktNavigation;
  iAktNavigation++;
  if (iAktNavigation > (navigationArray.length - 1)) iAktNavigation = 0;

  // Vorsicht mit "leeren" index-Seiten;
  var myHelp = navigationArray[iAktNavigation];
  if (myHelp.getLink() == "") gotoNext();
  else showPage();
}

function ArrayAdd(myArray, myObj) {
  myArray.length = myArray.length + 1;
  myArray[myArray.length-1] = myObj;
}

function makeNavigation() {
  navigationArray = new Array();
  var myNO = null;
  var sNum = "";

  // Startseite
  var myStartseite = new cl_NavigationObject("intro.htm","",null,null);
  ArrayAdd(navigationArray, myStartseite);

  // Bcher
  var myBuch = new cl_NavigationObject("buecher/index.htm","button_buecher","B&uuml;cher",myStartseite,null);
  ArrayAdd(navigationArray, myBuch);

/*  myNO = new cl_NavigationObject("buecher/buchonline.htm","Link zu buch online","", myBuch, null);
  ArrayAdd(navigationArray, myNO);

  myNO = new cl_NavigationObject("buecher/halbjahresprogramm.htm","Halbjahresprogramm","", myBuch, null);
  ArrayAdd(navigationArray, myNO);*/

  // Zeitschriften
  var myZeitschriften = new cl_NavigationObject("zeitschriften/index.htm","button_zeitschriften", "Zeitschriften",myStartseite,null);
  ArrayAdd(navigationArray,myZeitschriften);

  // Zeitschrift 1-11
  var myZeitschrift1_10 = new Array(12);
  var myZeitschriftenNamen = new Array("Beitr&auml;ge Jugendliteratur und Medien", "deutsche jugend", "Die Deutsche Schule", "Kriminologisches Journal", "Der p&auml;dagogische Blick", "Pflegemagazin", "Praxis Politische Bildung", "Sozialmagazin", "Unterrichtswissenschaft", "Zeitschrift f&uuml;r Gesundheitswissenschaften", "Zeitschrift für Sozialp&auml;dagogik ZfSp", "ZSE Zeitschrift f&uuml;r Soziologie der Erziehung und Sozialisation");
  var myZeitschriftDir = new Array("01","02","03","04","05","11","06","07","08","09","12","10");

  for (var i = 0; i < 12; ++i) {
    myZeitschrift1_10[i] = new cl_NavigationObject("", myZeitschriftenNamen[i], "",myZeitschriften,null);
    ArrayAdd(navigationArray,myZeitschrift1_10[i]);

    sNum = (i < 9) ? "0" + (i+1) : (i+1);

    myNO = new cl_NavigationObject("zeitschriften/zeitschrift"+myZeitschriftDir[i]+"/info.php3","","", myZeitschrift1_10[i], null);
    ArrayAdd(navigationArray,myNO);

    myNO = new cl_NavigationObject("zeitschriften/zeitschrift"+myZeitschriftDir[i]+"/abo.php3","","",myZeitschrift1_10[i], null);
    ArrayAdd(navigationArray,myNO);

    myNO = new cl_NavigationObject("zeitschriften/zeitschrift"+myZeitschriftDir[i]+"/einzelheft.php3","","",myZeitschrift1_10[i], null);
    ArrayAdd(navigationArray,myNO);

    myNO = new cl_NavigationObject("zeitschriften/zeitschrift"+myZeitschriftDir[i]+"/media.php3","","",myZeitschrift1_10[i], null);
    ArrayAdd(navigationArray,myNO);

    myNO = new cl_NavigationObject("zeitschriften/zeitschrift"+myZeitschriftDir[i]+"/inhalt.php3","","",myZeitschrift1_10[i], null);
    ArrayAdd(navigationArray,myNO);
  }

  // Verzeichnis
  var myVerzeichnis = new cl_NavigationObject("verzeichnis/index.htm","button_verzeichnis","Verzeichnis", myStartseite, null);
  ArrayAdd(navigationArray,myVerzeichnis);

  // Kontakte
  var myKontakte = new cl_NavigationObject("kontakte/index.htm","button_kontakte","Kontakte", myStartseite, null);
  ArrayAdd(navigationArray,myKontakte);

  // šber uns
  var myUns = new cl_NavigationObject("ueberuns/index.htm","button_ueberuns","&Uuml;ber uns", myStartseite, null);
  ArrayAdd(navigationArray,myUns);

  // Warenkorb
  var myWarenkorb = new cl_NavigationObject("warenkorb/index.htm","button_warenkorb","Warenkorb", myStartseite, null);
  ArrayAdd(navigationArray,myWarenkorb);
}

var navigationArray = null;
var iAktNavigation = 0;
var iOldNavigation = -1;

var isBrowserVersion4 = false;
var isBrowserNetscape = false;
var isBrowserIE = false;
var enableFlash = false;
var enableShockwave = false;

checkBrowser();
checkPlugins()

var sBase = window.location.protocol+"//"+window.location.host+window.location.pathname;
if ((isBrowserIE == true) && (window.location.protocol.indexOf("file:") == 0)) {
  var sDiv = "\\";
  sBase = sBase.substring(0,sBase.lastIndexOf(sDiv)+1);
}
else sBase = sBase.substring(0,sBase.lastIndexOf("/")+1);

makeNavigation();