/* SVN FILE:   $Id$
 * SVN HEADER: 1.0
 ***
 * $title           Core/System
 *
 * $description
 *    Schnittstelle zwischen einem Dokument und deren JavaScript-Funktionen.
 *    Angepasst für RKN.
 *
 *    Verwendung:
 *      <body onload="System.load()" onunload="System.unload()">
 *
 *
 * $classname       System
 * $author          a.rouel
 * $copyright       $Copyright$
 * $version         $Revision$
 * $lastrevision    $Date$
 * $modifiedby      $LastChangedBy$
 * $lastmodified    $LastChangedDate$
 * $filesource      $URL$
 * $keywords        Schnittstelle, JavaScript, Dokument, Funktionen
 * $require
 *
 */

var System = {
  init: function () {
    // Nichts zu tun
  },
  load: function () {
    // Konfiguration der SwitchContent-Funktionen
    this.initSwitchContentForMenu();
  },
  unload: function () {
    // Nichts zu tun
  },
  /**
   * Erzeugt einen Link für das Auf- und Zuklappen der Hauptnavigation und
   * konfiguriert SwitchContent auf die Unterelemente des Menüs.
   */
  initSwitchContentForMenu: function() {
    var element = document.getElementById('headNavigation');
    if(element) {
      // Link für das Auf- und Zuklappen der Navigation erzeugen
      var headNaviLink = document.createElement('a');
      headNaviLink.id = 'hn0010-title';
      headNaviLink.className = 'headnavi_icon';
      var headNaviLinkText = document.createTextNode('Hauptnavigation');
      headNaviLink.appendChild(headNaviLinkText);
      element.appendChild(headNaviLink);
      // Auf- und Zuklappen (über SwitchContent) konfigurieren
      var switchMenu = new switchcontent("main_menu", "div"); //Limit scanning of switch contents to just "div" elements
      switchMenu.setClassName('headnavi_icon_down','headnavi_icon');
      switchMenu.collapsePrevious(true); //Allow more than 1 content to be open simultanously
      switchMenu.setPersist(false);
      switchMenu.init();
    }
  },
 /**
  * Gibt verschiedene Teile der URL als Array zurück.
  *
  * @var     string
  *
  * @param   global
  * @access  protected
  * @return  array | null
  */
  getUriParts: function() {
    // wenn ein Argument übergeben wurde, nutze es
    // als regulären Ausdruck um die übergebene URL zu zerlegen
    if( this.getUriParts.arguments.length == 1 ) {
      var uriRegExp = this.getUriParts.arguments[0];
    } else {
      var uriRegExp = /^(http|https):\/\/(([0-9A-Za-z]+[.]*)+)(:\d+)?\/{1}(([0-9A-Za-z-_]+\/{1})*)*([0-9A-Za-z-_]+[.]{1}([a-z]+){1})(\?[0-9A-Za-z_=%&]+)?$/;
    }
    return uriRegExp.exec( location.href );
  }
};
System.init();