
//Menüstruktur 
var menu = [
  {title:"Home", lnk:"index.html"},
  {title:"Club", lnk:"club/index.html", submenu: [
    {title:"Der Club", lnk:"club/club.html"},
    {title:"Lageplan", lnk:"club/lageplan.html"},
    {title:"Vorstand", lnk:"club/vorstand.html"},
    {title:"Presse", lnk:"club/presse.html"},
    {title:"Impressum", lnk:"club/impressum.html"}
  ]},
  {title:"Service", lnk:"service/index.html", submenu: [
    {title:"Infos", lnk:"service/infos.html"},
    {title:"CDs/DVDs", lnk:"service/cds.html"},
    {title:"Flohmarkt", lnk:"service/flohmarkt.html"},
    {title:"Links", lnk:"service/links.html"},
    {title:"Humor", lnk:"service/humor.html"},
    {title:"Desktop", lnk:"service/hintergrund.html"}
  ]},
  {title:"Termine", lnk:"termine/index.html", submenu: [
    {title:"Aktuell", lnk:"termine/aktuell/aktuell.html"},
    {title:"Kurse", lnk:"termine/kurse/kurse.html"},
    {title:"Was Wann Wer", lnk:"termine/was_wann_wer/was_wann_wer.html"}
  ]},
  {title:"Fotos", lnk:"foto/index.html", submenu: [
    {title:"Wettbewerb", lnk:"foto/fotowet/2013_kalender/page1.htm"},
    {title:"Kalender", lnk:"foto/fotowet/fotowet.html"},
    {title:"Feste", lnk:"foto/feste/feste.html"}
  ]},
  {title:"Intern", lnk:"intern/intern.html"}  
];

var MENUWIDTH = 130;
var MENUHEIGHT = 20;


// ------------- Hier drunter nichts ändern -----------------

window.onload = posFooter;    

var PATHNAME = "";

//Menü Zentrieren
function centerMenu(initial) {
  if (!document.getElementById("menubar")) return;
  if (document.documentElement.clientWidth)
    var w = document.documentElement.clientWidth;
  else
    var w = window.innerWidth;
  var leftpix = (w - 40 - menu.length*(MENUWIDTH+1))/2;
  document.getElementById("menubar").style.left = leftpix + "px";
  
  if (document.getElementById("crumb"))
    document.getElementById("crumb").style.left = (leftpix + 20) + "px";
  
  w = w<806?w:(w+806)/2;
  document.getElementById("print").style.left = (w - 40) + "px";
  
  if (!initial) posFooter();
}

//Menüobjekt
function Menu() {
  this.data = menu;
  
  this.show = function () {
    
    var menuNode = document.createElement("div");
    menuNode.className = "head";
    menuNode.id = "head";
    
    var barNode = document.createElement("div");
    barNode.className = "bar";
    barNode.id = "menubar";
    
    menuNode.appendChild(barNode);             

    var brdrItem = this.createBorder("left");
    barNode.appendChild(brdrItem);
    
    for (var i=0; i<this.data.length; i++) {
       var menuItem = this.createMenu(this.data[i]);
       if (menuItem == -1) continue; 
   
       menuItem.style.left = i*(MENUWIDTH+1) + 20 + "px";
       menuItem.onmouseover = function() { if (this.lastChild.id) this.lastChild.style.display = 'block'; };
       menuItem.onmouseout = function() { if (this.lastChild.id) this.lastChild.style.display = 'none'; };
       menuItem.onclick = function() { if (this.lastChild.id) this.lastChild.style.display = 'none'; };
       
       if (this.data[i].submenu != undefined) {
         
         var subItem = this.createSubmenu(this.data[i].submenu);
         subItem.id = "sm"+i;
         menuItem.appendChild(subItem);
       }      
       barNode.appendChild(menuItem);
    }

    var brdrItem = this.createBorder("right");
    barNode.appendChild(brdrItem);
   
    var printItem = this.createPrintbtn();
    menuNode.appendChild(printItem);

    var ftrNode = this.createFooter();
   
    var crumb = this.createBreadcrumb();

    var bdy = document.getElementsByTagName("body")[0];
    bdy.appendChild(menuNode);
    bdy.appendChild(ftrNode);
    if (crumb) bdy.appendChild(crumb);
    
    //posFooter();
    var im1 = new Image();
    im1.src = PATHNAME + "inc/images/cci-logo-print.png";
    var im2 = new Image();
    im2.src = PATHNAME + "inc/images/bgmnu-r.png";
    
    if (!window.onresize)
      window.onresize = centerMenu;

  };
  

  //Menübegrenzung erzeugen
  this.createBorder = function(align) {
    var menuNode = document.createElement("div");
    if (align == "left") {
      menuNode.className = "left";
    } else if (align == "right") {
      menuNode.className = "right";
      menuNode.style.left = (this.data.length*(MENUWIDTH+1) + 20) + "px";
    }
    return menuNode;
  }
  
  //Menüentrag erzeugen
  this.createMenu = function(item) {
    if (item.title == undefined || item.lnk == undefined) return -1;

    var menuNode = document.createElement("div");
    menuNode.className = "menu";

    if (item.lnk != undefined) {
      var menuLnk = document.createElement("a");
      menuLnk.setAttribute("href", PATHNAME + item.lnk);
      var path = this.getCurrentPath();
      if ((!path && item.lnk == "index.html") || (path && item.lnk.indexOf(path) == 0)) {
        menuLnk.style.fontStyle = "italic";
        menuLnk.style.lineHeight = "1.18";
      }
      var menuTxt = document.createTextNode(item.title)
      menuLnk.appendChild(menuTxt);
      menuNode.appendChild(menuLnk); 
    }
       
    return(menuNode);
  }

    
  //Untermenü-popup erzuegen
  this.createSubmenu = function(item) {

    var menuNode = document.createElement("div");
    menuNode.className = "submenu";
    menuNode.style.height = ((MENUHEIGHT-1)*item.length) + "px";
    
    for (var i=0; i<item.length; i++) {
      if (item[i].title == undefined || item[i].lnk == undefined) continue;
      var menuLnk = document.createElement("a");
      menuLnk.setAttribute("href", PATHNAME + item[i].lnk);
      
      var menuTxt = document.createTextNode(item[i].title)
      menuLnk.appendChild(menuTxt);
      menuNode.appendChild(menuLnk); 
    }
   
    return menuNode;
  };


  //Druck-Schaltfläche erzeugen
  this.createPrintbtn = function() {
     lnkPrint = document.createElement("a");
     lnkPrint.href = "javascript:printme();"

     btnPrint = document.createElement("img");
     btnPrint.src = PATHNAME + "inc/images/print.png";
     btnPrint.title = "Seite ausdrucken";
     btnPrint.style.position ="absolute";
     btnPrint.style.left = (this.getScreenWidth() - 40) + "px";
     btnPrint.className = "print";
     btnPrint.id = "print";
     
     lnkPrint.appendChild(btnPrint);
     
     return lnkPrint;
  }

  
  //Seitenfuss erzeugen
  this.createFooter = function(align) {
    var ftrNode = document.createElement("div");
    ftrNode.className = "footer";
    ftrNode.id = "foot";
    ftrNode.style.fontSize = "9pt"; 
    ftrNode.style.textAlign = "center";
    ftrNode.style.color = "#666";
    
    var dtNow = new Date();
    var dtMod = new Date(document.lastModified);

    var ftrLnk1 = document.createElement("a");
    ftrLnk1.setAttribute("href", PATHNAME + "sitemap.html");
    ftrLnk1.innerHTML = "Sitemap";

    var ftrLnk2 = document.createElement("a");
    ftrLnk2.setAttribute("href", PATHNAME + "club/impressum.html");
    ftrLnk2.innerHTML = "Impressum";
    
    var ftrLnk3 = document.createElement("a");
    ftrLnk3.setAttribute("href", PATHNAME + "club/lageplan.html");
    ftrLnk3.innerHTML = "Lageplan";

    var ftrTxt1 = document.createTextNode("\u00a9 CCI Torrevieja " + dtNow.getFullYear() + " \u2014 ");
    var ftrTxt2 = document.createTextNode(" \u2014 ");
    var ftrTxt3 = document.createTextNode(" \u2014 " + "Letzte \u00c4nderung: " + dtMod.toLocaleDateString());
    var ftrTxt4 = document.createTextNode(" \u2014 ");

    ftrNode.appendChild(ftrTxt1); 
    ftrNode.appendChild(ftrLnk1); 
    ftrNode.appendChild(ftrTxt2); 
    ftrNode.appendChild(ftrLnk2); 
    ftrNode.appendChild(ftrTxt4); 
    ftrNode.appendChild(ftrLnk3); 
    ftrNode.appendChild(ftrTxt3); 
    return ftrNode;
  }


  //Breadcrumb-pfad ermitteln und formatieren
  this.createBreadcrumb = function() {
    var crumb = [{lnk:"index.html", title:"CCI Homepage"}];
    var url = window.location.pathname;
    //if (url.indexOf("/") == 0)
      url = url.replace(/(.*htdocs)?\//, "");

    var folder = url.split("/");
    if (!folder[0] || folder[0] == "index.html") return;
    
    var ptrn = new RegExp(folder[0]);
    for (var i=0; i<menu.length; i++) {
      if (menu[i].lnk.search(ptrn) != -1) {
        crumb[1] = menu[i];
        break;   
      }
    }    
    if (!crumb[1]) return;
     
    if (!folder[1]) return this.formatCrumb(crumb);

    if (folder[1] == "index.html" || folder[1] == "intern.html") {
      crumb[2] = {title:"\u00dcbersicht"};
    } else if (!menu[i].submenu) {  //intern
      crumb[2] = this.getIntern(folder[1]);
    } else {
      var ptrn = new RegExp(folder[1]);    
    
      for (var j=0; j<menu[i].submenu.length; j++) {
        if (menu[i].submenu[j].lnk.search(ptrn) != -1) {
          if (menu[i].submenu[j].lnk.search("kalender") == -1)
            crumb[2] = menu[i].submenu[j];
          else
            crumb[2] = {title:"Kalender/Wettbewerb", lnk:"foto/fotowet/fotowet.html"};

          break;   
        }
      }    
    }
    
    if (!folder[2]) return this.formatCrumb(crumb);

    if ((folder[1] == "was_wann_wer" || folder[1] == "fotowet" || folder[1] == "feste") && (folder[2].search(folder[1]) == -1 || folder[2].search("feste_") != -1))
      crumb[3] = this.getJahr(folder[2]);

    if (folder[1] == "infos" || folder[1] == "humor")
      crumb[3] = this.getTitle(folder[2]);
      
      
    return this.formatCrumb(crumb);
    
  }
  
  //Breadcrumb formatieren  
  this.formatCrumb = function(crumb) {
    var nodeCrumb = document.createElement("div");
    nodeCrumb.className = "crumb";
    nodeCrumb.id = "crumb";
    nodeCrumb.style.left = (this.getScreenWidth() - this.data.length*(MENUWIDTH+1))/2 + "px";

    for (var i=0; i<crumb.length; i++) {
      if (!crumb[i].lnk || i==crumb.length-1) {
         var txtCrumb = document.createTextNode(crumb[i].title);
         nodeCrumb.appendChild(txtCrumb);
      } else {
        var lnkCrumb = document.createElement("a");
        lnkCrumb.href = PATHNAME + crumb[i].lnk;
        lnkCrumb.innerHTML = crumb[i].title;
        nodeCrumb.appendChild(lnkCrumb);
        if (i < crumb.length-1) {
          var txtSpcr = document.createTextNode(" \u00bb ");
          nodeCrumb.appendChild(txtSpcr);
        }
      }
    }

    return nodeCrumb;
  }  
  
  //Breadcrumb Hilfsfunktion
  this.getIntern = function(fldr) {
    switch (fldr) {
      case "wettbewerb_bedingungen.html": return {title:"Fotowettbewerb"};
      case "vs_beschreibungen": return {title:"Vorstand"};
      case "skype.html": return {title:"CCI Skype"};
      default: return {title:"Interne Information"};
    }
  };


  //Breadcrumb Hilfsfunktionen
  this.getJahr = function(fldr) {
    var yr = fldr.replace(/\D|\./g, "");
    return {title:yr};
  }  

  this.getTitle = function(str) {
    if (!str) return;
    var ttl = str.replace(/\.html$/, "");
    ttl = ttl.substring(0,1).toUpperCase() + ttl.substring(1);
    return {title:ttl};
  }
  
  //Stilzuweisungen
  this.setStyle = function(item, stl) {
    var ss = document.styleSheets[0];
    var rules = ss.cssRules?ss.cssRules:ss.rules;
    
    for(var i=rules.length-1; i>=0; i--) {
      if (rules[i].selectorText == stl) {
        for (var j=0; j<rules[i].style.length; j++) {
          var attr = rules[i].style[j];
          if (rules[i].style.getPropertyValue)
            item.style[attr] = rules[i].style.getPropertyValue(attr);  
          else
            item.style[attr] = rules[i].style.getAttribute(attr); 
        }
        break;
      }
    }
  }
  
 
  this.addEvent = function (obj, evType, fn){ 
    if (obj.addEventListener){ 
      obj.addEventListener(evType, fn, false); 
      return true; 
    } else if (obj.attachEvent) { 
      var r = obj.attachEvent("on"+evType, fn); 
      return r; 
    } else { 
      return false; 
    } 
  }


  this.getCurrentPath = function() {
    var path = "";
    var url = window.location.pathname;
    if (url.indexOf("/") == 0)
      url = url.replace(/.*htdocs/, "");

    var folder = url.split("/");
    if (folder[1]) return folder[1];
    else return folder[0];
  }

  
  this.getPath = function() {
    var path = "";
    var url = window.location.pathname;
    if (url.indexOf("/") == 0)
      url = url.replace(/.*htdocs/, "");

    var depth = url.match(/\//g);
    for (var i=0; i<depth.length-1; i++)
      path += "../";
    PATHNAME = path;
  }
 
  this.getScreenWidth = function() {
    if (document.documentElement.clientWidth)
      return document.documentElement.clientWidth;
    else
      return window.innerWidth;
  }

  if (top != self) top.location = self.location;
  
  this.getPath();
  this.show();
  centerMenu(true);
};


function printme() {
  window.print();
}

function get(id) {
	return document.getElementById(id);
}

function posFooter() {
  var ftrNode = document.getElementById("foot")
  var h = window.innerHeight || document.body.clientHeight;
  var elemTop = parseInt(window.getComputedStyle(ftrNode, null).top);
  if (!elemTop) elemTop = ftrNode.offsetTop;
  if (h > elemTop + 30) {
    ftrNode.style.top = (window.innerHeight - 30).toString() + "px";
    ftrNode.style.position = "fixed";
  }
}

//var m = new Menu();
//m.show();

