/**
 * This function initiates the website
 */
var marnixkerk = new Object();
marnixkerk.init = function(conf) {




 // -- set constants
 
 // set master-url
 marnixkerk.URL = conf['htmlSRC'];
 
 // set dimension
 marnixkerk.CLIENT_WIDTH = (xClientWidth() < 800) ? 800 : xClientWidth();
 marnixkerk.CLIENT_HEIGHT = (xClientHeight() < 600) ? 600 : xClientHeight();
 marnixkerk.BORDER_WIDTH = 1;
 marnixkerk.BUILD = '1037';
 marnixkerk.MAJOR_VERSION = '2';
 marnixkerk.MINOR_VERSION = '01';

 // set colors
 marnixkerk.COLORS = [];
 marnixkerk.COLORS.GRASS_GREEN = '#3C746B';
 marnixkerk.COLORS.RED_BROWN = '#BB824B';
 marnixkerk.COLORS.TEN_PERCENT_BLACK = '#DEDEDD';
 marnixkerk.COLORS.RED = '#DA251D';
 marnixkerk.COLORS.WHITE = '#FFFFFF';
 marnixkerk.COLORS.GRAY = 'gray';
 
 // set navigationbar height
 marnixkerk.NAV_BAR_HEIGHT = 85;
 
 // set advancedbar height
 marnixkerk.MNG_BAR_HEIGHT = 25;
 
 // set footer height
 marnixkerk.FOOTER_HEIGHT = 20;
 marnixkerk.FOOTER_BORDER_HEIGHT = 1;
 marnixkerk.FOOTER_ZINDEX = 100;
 
 // set offset - needed to make it more smooth; only for height > expected height
 marnixkerk.SITE_OFFSET = 10;
 
 // minimal dimension
 marnixkerk.MIN_WIDTH = 930; // - tested 2008, March 20
 marnixkerk.MIN_HEIGHT = 450;

 // set espected dimension
 marnixkerk.EXP_WIDTH = 1000;
 marnixkerk.EXP_HEIGHT = 700;
 
 // set functions to buttons
 marnixkerk.BUTTON_EVENT = [];
 marnixkerk.BUTTON_EVENT['homepage24'] = function() {loadHomePage();}
 marnixkerk.BUTTON_EVENT['sermons80'] = function() {loadSermonsPage();}
 marnixkerk.BUTTON_EVENT['links79'] = function() {loadLinksPage();}
 marnixkerk.BUTTON_EVENT['contact57'] = function() {loadContactPage();}
 marnixkerk.BUTTON_EVENT['login68'] = function() {requestLogin();}
 
 // managementbuttons
 marnixkerk.BUTTON_EVENT['worshiptimes'] = function() {loadWorshiptimesPage();}
 marnixkerk.BUTTON_EVENT['headlines'] = function() {loadHeadlinesPage();}
 marnixkerk.BUTTON_EVENT['cms'] = function() {loadCMSPage();}
 marnixkerk.BUTTON_EVENT['visitors'] = function() {loadVisitorsPage();}
 marnixkerk.BUTTON_EVENT['logs'] = function() {loadLogsPage();}
 marnixkerk.BUTTON_EVENT['usermanagement'] = function() {loadUsermanagementPage();}
 
 // set dependence - prevent for loading stuff people don't really need
 marnixkerk.SCRIPT = [];
 marnixkerk.VERIFY_ID = [];
 marnixkerk.STYLE = [];
 
 // home page
 marnixkerk.SCRIPT['homepage24'] = [];
 marnixkerk.VERIFY_ID['homepage24'] = [];
 marnixkerk.STYLE['homepage24'] = [];
 
 // contact page
 marnixkerk.SCRIPT['contact57'] = [];
 marnixkerk.VERIFY_ID['contact57'] = [];
 marnixkerk.STYLE['contact57'] = [];
 marnixkerk.SCRIPT['contact57'][0] = marnixkerk.URL + '/ClientSideScripts/contact.js';
 marnixkerk.VERIFY_ID['contact57'][0] = '2f8a6bf31f3bd67bd2d9720c58b19c9a';
 marnixkerk.SCRIPT['contact57'][1] = marnixkerk.URL + '/lib/an_Dialog.js';
 marnixkerk.VERIFY_ID['contact57'][1] = 'fbae51a971100b57761419682d56bafa';
 
 marnixkerk.STYLE['contact57'][0] = marnixkerk.URL + '/style/contact.css';
 
 // sermons page
 marnixkerk.SCRIPT['sermons80'] = [];
 marnixkerk.VERIFY_ID['sermons80'] = [];
 marnixkerk.STYLE['sermons80'] = [];
 marnixkerk.SCRIPT['sermons80'][0] = marnixkerk.URL + '/ClientSideScripts/sermons.js';
 marnixkerk.VERIFY_ID['sermons80'][0] = '546d69b3882029299809816a3bf4b9ed';
 
 marnixkerk.STYLE['sermons80'][0] = marnixkerk.URL + '/style/sermons.css';
 
 // links page
 marnixkerk.SCRIPT['links79'] = [];
 marnixkerk.VERIFY_ID['links79'] = [];
 marnixkerk.STYLE['links79'] = [];
 marnixkerk.SCRIPT['links79'][0] = marnixkerk.URL + '/ClientSideScripts/links.js';
 marnixkerk.VERIFY_ID['links79'][0] = '7c8b4f7913c8d5d9f5d3ac1a5941839b';
 
 marnixkerk.STYLE['links79'][0] = marnixkerk.URL + '/style/links.css';
 
 // login
 marnixkerk.SCRIPT['login68'] = [];
 marnixkerk.VERIFY_ID['login68'] = [];
 marnixkerk.STYLE['login68'] = [];
 marnixkerk.SCRIPT['login68'][0] = marnixkerk.URL + '/lib/an_Dialog.js';
 marnixkerk.VERIFY_ID['login68'][0] = 'fbae51a971100b57761419682d56bafa';
 marnixkerk.SCRIPT['login68'][1] = marnixkerk.URL + '/lib/md5.js';
 marnixkerk.VERIFY_ID['login68'][1] = '1bc29b36f623ba82aaf6724fd3b16718';
 marnixkerk.SCRIPT['login68'][2] = marnixkerk.URL + '/ClientSideScripts/login.js';
 marnixkerk.VERIFY_ID['login68'][2] = 'd56b699830e77ba53855679cb1d252da';
 marnixkerk.SCRIPT['login68'][3] = marnixkerk.URL + '/ClientSideScripts/m_management.js';
 marnixkerk.VERIFY_ID['login68'][3] = 'd10af457daa1deed54e2c36b5f295e7e';
 marnixkerk.SCRIPT['login68'][4] = marnixkerk.URL + '/lib/yuiloader-beta-min.js';
 marnixkerk.VERIFY_ID['login68'][4] = 'd16ac07671c878ce3f1cff0afcfbc828';

 
 marnixkerk.STYLE['login68'][0] = marnixkerk.URL + '/style/m_management.css';
 marnixkerk.STYLE['login68'][1] = marnixkerk.URL + '/style/YahooRTE/Yahoo-text-editor.css';
 
 /* managementpages */
 // worshiptimes page
 marnixkerk.SCRIPT['worshiptimes'] = [];
 marnixkerk.VERIFY_ID['worshiptimes'] = [];
 marnixkerk.STYLE['worshiptimes'] = [];
 marnixkerk.SCRIPT['worshiptimes'][0] = marnixkerk.URL + '/ClientSideScripts/m_worshiptimes.js';
 marnixkerk.VERIFY_ID['worshiptimes'][0] = 'ee4c3ca68503305fc4a2c8b848e29032';
 marnixkerk.SCRIPT['worshiptimes'][1] = marnixkerk.URL + '/lib/calendar.js';
 marnixkerk.VERIFY_ID['worshiptimes'][1] = 'd4c8763b1d39d01dbd2117e3a024b207';
 marnixkerk.SCRIPT['worshiptimes'][2] = marnixkerk.URL + '/lib/calendar-du.js';
 marnixkerk.VERIFY_ID['worshiptimes'][2] = '65040ec6bc6af6d41a8d8c68c069fc9a';
 marnixkerk.SCRIPT['worshiptimes'][3] = marnixkerk.URL + '/lib/calendar-setup.js';
 marnixkerk.VERIFY_ID['worshiptimes'][3] = 'a081672dc75aba32630b202e01fe241a';
 
 marnixkerk.STYLE['worshiptimes'][0] = marnixkerk.URL + '/style/calendar-aqua/theme.css';
 marnixkerk.STYLE['worshiptimes'][1] = marnixkerk.URL + '/style/m_worshiptimes.css';
 
 // headlines page
 marnixkerk.SCRIPT['headlines'] = [];
 marnixkerk.VERIFY_ID['headlines'] = [];
 marnixkerk.STYLE['headlines'] = [];
 marnixkerk.SCRIPT['headlines'][0] = marnixkerk.URL + '/ClientSideScripts/m_headlines.js';
 marnixkerk.VERIFY_ID['headlines'][0] = 'c43071e2c4a1aff2f5a267e6cbf74299';
 
 marnixkerk.STYLE['headlines'][0] = marnixkerk.URL + '/style/m_headlines.css';
 
 // cms page
 marnixkerk.SCRIPT['cms'] = [];
 marnixkerk.VERIFY_ID['cms'] = [];
 marnixkerk.STYLE['cms'] = [];
 marnixkerk.SCRIPT['cms'][0] = marnixkerk.URL + '/ClientSideScripts/m_cms.js';
 marnixkerk.VERIFY_ID['cms'][0] = '570d99e4c85914470d914170d1e95144';
 
 marnixkerk.STYLE['cms'][0] = marnixkerk.URL + '/style/m_cms.css';
 
 // logs page
 marnixkerk.SCRIPT['logs'] = [];
 marnixkerk.VERIFY_ID['logs'] = [];
 marnixkerk.STYLE['logs'] = [];
 marnixkerk.SCRIPT['logs'][0] = marnixkerk.URL + '/ClientSideScripts/m_logs.js';
 marnixkerk.VERIFY_ID['logs'][0] = '2165e4fa5bddb65a31f6a0c495c2fa37';
 
 marnixkerk.STYLE['logs'][0] = marnixkerk.URL + '/style/m_logs.css';
 
 // visitors page
 marnixkerk.SCRIPT['visitors'] = [];
 marnixkerk.VERIFY_ID['visitors'] = [];
 marnixkerk.STYLE['visitors'] = [];
 marnixkerk.SCRIPT['visitors'][0] = marnixkerk.URL + '/ClientSideScripts/m_visitors.js';
 marnixkerk.VERIFY_ID['visitors'][0] = 'f24d2cc05ca7eaa87d0959ea3f5ddfb2';
 marnixkerk.SCRIPT['visitors'][1] = marnixkerk.URL + '/lib/an_Chart.js';
 marnixkerk.VERIFY_ID['visitors'][1] = 'fee5e621f8f73de95a41ecc397e19f38';
 
 marnixkerk.STYLE['visitors'][0] = marnixkerk.URL + '/style/m_visitors.css';
 marnixkerk.STYLE['visitors'][1] = marnixkerk.URL + '/style/an_chart.css';
 
 // visitors page
 marnixkerk.SCRIPT['usermanagement'] = [];
 marnixkerk.VERIFY_ID['usermanagement'] = [];
 marnixkerk.STYLE['usermanagement'] = [];
 marnixkerk.SCRIPT['usermanagement'][0] = marnixkerk.URL + '/ClientSideScripts/m_usermanagement.js';
 marnixkerk.VERIFY_ID['usermanagement'][0] = '6b32d2ec78ababb7fdde173e1948144f';
 
 // The communication with the server
 marnixkerk.POSTMAN = new post.Postman();
 
 // The loader for loading scripts dynamicly
 marnixkerk.LOADER = new an_smartLoader();
 
  // set loading image
 marnixkerk.IMAGE_LOADING = marnixkerk.URL + "/Images/getPicture.php?id=5";
 marnixkerk.IMAGE_IDLE = marnixkerk.URL + "/Images/getPicture.php?id=4";
 
 marnixkerk.ANIMATION = new xAnimation(10);
 
 
 // -- set global vars
 
 // set the sessionId fields
 marnixkerk.sessionID = false;
 
 // set boolean for remembering first footer element
 marnixkerk.firstFooterElement = true;
 
 // the space used by the pages - cms
 marnixkerk.pages = [];
 marnixkerk.subpages = [];
 marnixkerk.tabpages = [];
 marnixkerk.articles = [];
 
 marnixkerk.CMSloader = new CMSloader('marnixkerk.CMSloader');
 
 
 


 // -- set fields
 
 // set the navigationbar buttonnames and id's
 // set left buttons
 this.leftButtons = [];
 this.leftButtons[0] = {id : 'homepage24',name : 'home'};
 
 // set right buttons
 this.rightButtons = [];
 this.rightButtons[0] = {id : 'sermons80',name : 'preken'};
 this.rightButtons[1] = {id : 'links79',name : 'links'};
 this.rightButtons[2] = {id : 'contact57',name : 'contact'};
 this.rightButtons[3] = {id : 'login68',name : 'login'};
 
 // set height of website
 marnixkerk.HEIGHT = marnixkerk.CLIENT_HEIGHT;
 
 // set website dimension by expected dimension
 marnixkerk.WIDTH = (marnixkerk.CLIENT_WIDTH < marnixkerk.EXP_WIDTH) ? marnixkerk.CLIENT_WIDTH : marnixkerk.EXP_WIDTH;
 
 
 // set website dimension by minimum dimension
 marnixkerk.WIDTH = (marnixkerk.WIDTH < marnixkerk.MIN_WIDTH) ? marnixkerk.MIN_WIDTH : marnixkerk.WIDTH;
  
 // check if offset is available
 this.offset = (marnixkerk.HEIGHT > (marnixkerk.EXP_HEIGHT + marnixkerk.SITE_OFFSET) ) ? true : false;
 
 // set footerNotice info
 marnixkerk.FOOTERNOTICE_WIDTH = 200;
 marnixkerk.FOOTERNOTICE_HEIGHT = 180;
 var tmp = marnixkerk.HEIGHT - marnixkerk.FOOTER_HEIGHT;
 marnixkerk.FOOTERNOTICE_TOP = (this.offset) ? tmp - 2 * marnixkerk.SITE_OFFSET : tmp;
 marnixkerk.FOOTERNOTICE_RUN_TIME = 1000;
 marnixkerk.FOOTERNOTICE_ACCELERATION_TYPE = 1;// =sine(fast start, slow end)
 marnixkerk.FOOTERNOTICE_ZINDEX = 9;
 marnixkerk.FOOTERNOTICE_OPENED = false;
 

 
 // set header dimensions
 this.headerOffset = (marnixkerk.HEIGHT > marnixkerk.EXP_HEIGHT) ? true : false;
 this.headerHeight = (this.headerOffset) ? (2 * marnixkerk.NAV_BAR_HEIGHT + marnixkerk.MNG_BAR_HEIGHT) : marnixkerk.NAV_BAR_HEIGHT + marnixkerk.MNG_BAR_HEIGHT;
 
 
 // recalculate dimension
 if (this.offset) {
  marnixkerk.HEIGHT -= 2 * marnixkerk.SITE_OFFSET;
 }
 
 // set inner dimension
 this.INNER_WIDTH = marnixkerk.WIDTH - (2 * marnixkerk.BORDER_WIDTH);
 this.INNER_HEIGHT = marnixkerk.HEIGHT - (2 * marnixkerk.BORDER_WIDTH);
 
 // set position
 this.LEFT = (marnixkerk.CLIENT_WIDTH - marnixkerk.WIDTH) / 2;
 if (this.LEFT < 0) {this.LEFT = 0;}
 this.TOP = (this.offset) ? marnixkerk.SITE_OFFSET : 0;
 if (this.TOP < 0) {this.TOP =0;}
 
 // set the contentoverflow
 marnixkerk.CONTENT_OVERFLOW = (marnixkerk.CLIENT_HEIGHT > marnixkerk.MIN_HEIGHT) ? 'auto' : 'visible';
 
 // remove no-js message
 this.removeNoJS();
 
 // load mainContainer
 this.loadMainContainer();

 // load website container
 this.loadWebsiteSkeleton();
 
 // fill header with content
 this.fillHeader();
 this.setButtons();

 // fill footer with content
 this.fillFooter();
 
 // set the footerNotice @ the footer
 this.setFooterNotice();
 
 // retrieve and set page-buttons
 this.getPages();
  
 // load the homepage
 activateHomepage();
 
 // log visit finaly
 this.logVisit();
};
marnixkerk.init.prototype = {
 /**
  * Load the main container
  */
 loadMainContainer : function() {
  
  // load main-container
  this.wContainer = document.createElement("div");
  this.wContainer.id = 'wContainer';
  wCs = this.wContainer.style;
  wCs.position = "absolute";
  wCs.top = this.TOP + "px";
  wCs.left = this.LEFT + "px";
  wCs.width = this.INNER_WIDTH  + "px";
  wCs.height = this.INNER_HEIGHT + "px";
  wCs.backgroundColor = marnixkerk.COLORS.WHITE;
  wCs.border = "solid " + marnixkerk.BORDER_WIDTH + "px " + marnixkerk.COLORS.RED_BROWN;
  wCs.overflow = "hidden";
  
  document.body.appendChild(this.wContainer);
 },
 /**
  * load website skeleton
  */
 loadWebsiteSkeleton : function() {
 
  // set body background
  document.body.style.backgroundImage = "url(" + marnixkerk.URL + "/Images/getPicture.php?id=3)";
 
  // set header
  this.wHeader = document.createElement("div");
  wHs = this.wHeader.style;
  wHs.height = this.headerHeight  + "px";
  
  this.wContainer.appendChild(this.wHeader);
  
  // set body
  this.wBody = document.createElement("div");
  this.wBody.id = "wContentSpace";
  wBs = this.wBody.style;
  wBs.height = this.INNER_HEIGHT - (this.headerHeight + marnixkerk.FOOTER_HEIGHT - marnixkerk.FOOTER_BORDER_HEIGHT) + "px";
  wBs.backgroundColor = marnixkerk.COLORS.WHITE;
  wBs.position = 'relative';
  if (marnixkerk.CONTENT_OVERFLOW == 'auto') {
   wBs.overflow = marnixkerk.CONTENT_OVERFLOW;
  }
  
  this.wContainer.appendChild(this.wBody);
  
  // set footer
  this.wFooter = document.createElement("div");
  this.wFooter.id = "wFooter";
  wFs = this.wFooter.style;
  wFs.position = 'relative';
  wFs.height = marnixkerk.FOOTER_HEIGHT + "px";
  wFs.width = this.INNER_WIDTH + "px";
  wFs.color = marnixkerk.COLORS.GRAY;
  wFs.backgroundColor = marnixkerk.COLORS.WHITE;
  wFs.borderTop = "solid " + marnixkerk.FOOTER_BORDER_HEIGHT + "px " + marnixkerk.COLORS.GRAY;
  wFs.fontSize = 0.8 + "em";
  wFs.textAlign = 'center';
  wFs.zIndex = marnixkerk.FOOTER_ZINDEX;
  
  this.wContainer.appendChild(this.wFooter);
 },
 /**
  * remove no js message
  */
 removeNoJS : function() {
  var jsMessage = xGetElementById('noJS');
  an_removeElement(jsMessage);
 },
/**
 * Fill header with content
 */
 fillHeader : function() {
  
  // load offset
  if (this.headerOffset) {
   var offsetDiv = document.createElement("div");
   var oDs = offsetDiv.style;
   oDs.height = marnixkerk.NAV_BAR_HEIGHT + "px";
   
   this.wHeader.appendChild(offsetDiv);
  }
  
  // load navigation bar
  var navBar = document.createElement("div");
  navBar.id = "navBar";
  var nBs = navBar.style;
  nBs.height = marnixkerk.NAV_BAR_HEIGHT + "px";
  nBs.backgroundColor = marnixkerk.COLORS.GRASS_GREEN;
  nBs.color = marnixkerk.COLORS.TEN_PERCENT_BLACK;
  nBs.fontFamily = "arial";
  nBs.fontSize = 1.1 + "em";
  
   // set banner
   var imageWidth = 717;
   var imageDiv = document.createElement("div");
   iDs = imageDiv.style;
   iDs.position = 'relative';
   iDs.top = 10 + 'px';
   iDs.left = (this.INNER_WIDTH - imageWidth - 8) + "px";
   var banner = new Image(imageWidth,45);
   banner.src = marnixkerk.URL + "/Images/getPicture.php?id=6";
   imageDiv.appendChild(banner);
   navBar.appendChild(imageDiv);
  
   // set left buttons space
   var menuHeight = 25;
   var leftOffset = 8;
   var sixPercent = Math.round(this.INNER_WIDTH * 0.6);
   var leftMenu = document.createElement("div");
   leftMenu.id = "leftMenu";
   var lMs = leftMenu.style;
   lMs.position = "relative";
   lMs.left = leftOffset + "px";
   lMs.top = 10 /*marnixkerk.NAV_BAR_HEIGHT - menuHeight - 50*/ + "px";
   lMs.width = sixPercent - leftOffset + "px"; // 60%
   lMs.height = menuHeight + "px";
   navBar.appendChild(leftMenu);
  
   // set right buttons space
   var rightMenu = document.createElement("div");
   rightMenu.id = "rightMenu";
   var rMs = rightMenu.style;
   rMs.position = "relative";
   rMs.width = Math.round(this.INNER_WIDTH * 0.4) - 8 + "px"; // 40%
   rMs.top = - 15 /*marnixkerk.NAV_BAR_HEIGHT - 2 * menuHeight*/ + "px";
   rMs.left = sixPercent + "px";
   rMs.height = menuHeight + "px";
   rMs.textAlign = "right";
   navBar.appendChild(rightMenu);
  
  this.wHeader.appendChild(navBar);
  
  // load management bar
  var mngBar = document.createElement("div");
  mngBar.id = "managementBar";
  var mBs = mngBar.style;
  mBs.height = marnixkerk.MNG_BAR_HEIGHT + "px";
   
   // set the buttonsbar
   var mngButtonsBar = document.createElement("span");
   mngButtonsBar.id = "mngButtonsBar";
   var mBBs = mngButtonsBar.style;
   mBBs.color = "blue";
   mBBs.paddingLeft = 4 + "px";
  mngBar.appendChild(mngButtonsBar);
  
   // set loading image
   var loadingImageSize = 16;
   var loadingImageTop = (this.headerOffset) ? 2 * marnixkerk.NAV_BAR_HEIGHT : marnixkerk.NAV_BAR_HEIGHT;
   var loadingImage = new Image(loadingImageSize,loadingImageSize);
   loadingImage.id = "loadingImage";
   loadingImage.src = marnixkerk.IMAGE_IDLE;
   lIs = loadingImage.style;
   lIs.position = 'absolute';
   lIs.left = this.INNER_WIDTH - loadingImageSize - 4 + "px";
   lIs.top = loadingImageTop + 4 + "px";
  mngBar.appendChild(loadingImage);
  
  this.wHeader.appendChild(mngBar);
 },
/**
 * Set the buttons for the navigation bar
 */
 setButtons : function() {

  // set leftbuttons
  var leftMenu = xGetElementById("leftMenu");
  var delimiter = " | ";
  for (var i=0; i<this.leftButtons.length; i++) {
   var buttonSpan = document.createElement("span");
   buttonSpan.id = this.leftButtons[i].id;
   buttonSpan.selected = false;
   buttonSpan.type = "navBarButton";
   buttonSpan.onmouseovercolor = marnixkerk.COLORS.RED;
   buttonSpan.onmouseoutcolor = marnixkerk.COLORS.TEN_PERCENT_BLACK;
   buttonSpan.onclickcolor = marnixkerk.COLORS.RED_BROWN;
   buttonSpan.activebuttoncolor = marnixkerk.COLORS.RED_BROWN;
   var buttonText = document.createTextNode(this.leftButtons[i].name);
   
   // add delimiter if needed
   if (i != 0) {
    var itemDelimiter = document.createTextNode(delimiter);
    leftMenu.appendChild(itemDelimiter);
   }
   buttonSpan.appendChild(buttonText);
   leftMenu.appendChild(buttonSpan);
  }

  // set rightbuttons
  var rightMenu = xGetElementById("rightMenu");
  for (var i=0; i<this.rightButtons.length; i++) {
   var buttonSpan = document.createElement("span");
   buttonSpan.id = this.rightButtons[i].id;
   buttonSpan.selected = false;
   buttonSpan.type = "navBarButton";
   buttonSpan.onmouseovercolor = marnixkerk.COLORS.RED;
   buttonSpan.onmouseoutcolor = marnixkerk.COLORS.TEN_PERCENT_BLACK;
   buttonSpan.onclickcolor = marnixkerk.COLORS.RED_BROWN;
   buttonSpan.activebuttoncolor = marnixkerk.COLORS.RED_BROWN;
   var buttonText = document.createTextNode(this.rightButtons[i].name);
   
   // add delimiter if needed
   if (i != 0) {
    var itemDelimiter = document.createTextNode(delimiter);
    rightMenu.appendChild(itemDelimiter);
   }
   buttonSpan.appendChild(buttonText);
   rightMenu.appendChild(buttonSpan);
  }
  
  // set events
  var tagName = "span";
  var parent = xGetElementById("navBar");
  var buttons = xGetElementsByTagName(tagName,parent);
  for (var i=0;i<buttons.length;i++) {
   var button = buttons[i];
   if (button.type == "navBarButton") {
    button.onmouseover = navBarMouseOver;
    button.onmouseout = navBarMouseOut;
    button.onclick = navBarMouseClick;
   }
  }
 },
/**
 * Fill footer with content
 */
 fillFooter : function() {
  this.addNodeToFooter(document.createTextNode("v " + marnixkerk.MAJOR_VERSION + '.' + marnixkerk.MINOR_VERSION + '.' + marnixkerk.BUILD));
  this.addNodeToFooter(document.createTextNode("client-dimension: " + marnixkerk.CLIENT_WIDTH + " x " + marnixkerk.CLIENT_HEIGHT));
  this.addNodeToFooter(document.createTextNode("site-dimension: " + marnixkerk.WIDTH + " x " + marnixkerk.HEIGHT));
  
  // set contributions
  var msg = document.createTextNode("contributions");
  var contributions = document.createElement("span");
  contributions.onmouseoutcolor = marnixkerk.COLORS.GRAY;
  contributions.appendChild(msg);
  setHyperlink(contributions,showContributions,true);
  this.addNodeToFooter(contributions);
  
  // set visitors information
  var msg = document.createTextNode("visitors");
  var visitors = document.createElement("span");
  visitors.onmouseoutcolor = marnixkerk.COLORS.GRAY;
  visitors.appendChild(msg);
  setHyperlink(visitors,requestVisitorsInfo,true);
  this.addNodeToFooter(visitors);
 },
/**
 * Set the footerNotice @ the footer
 */
 setFooterNotice : function () {
  var footerNotice = document.createElement("div");
  footerNotice.id = 'footerNotice';
  var fNs = footerNotice.style;
  fNs.position = 'absolute';
  fNs.border = "solid 1px " + marnixkerk.COLORS.GRAY;
  fNs.width = marnixkerk.FOOTERNOTICE_WIDTH + "px";
  fNs.height = 0 + "px";
  fNs.top = marnixkerk.FOOTERNOTICE_TOP + "px";
  fNs.zIndex = marnixkerk.FOOTERNOTICE_ZINDEX;
  this.wContainer.appendChild(footerNotice);
  
  // set header
  var footerNoticeHeader = document.createElement("div");
  footerNoticeHeader.id = 'footerNoticeHeader';
  var fHs = footerNoticeHeader.style;
  fHs.backgroundColor = marnixkerk.COLORS.RED_BROWN;
  
  var closeButton = document.createElement("div");
  var cBs = closeButton.style;
  cBs.position = 'relative';
  cBs.fontFamily = 'arial';
  cBs.fontWeight = 'bold';
  cBs.left = marnixkerk.FOOTERNOTICE_WIDTH - 20 + "px";
  closeButton.appendChild(document.createTextNode('X'));
  footerNoticeHeader.appendChild(closeButton);
  setHyperlink(closeButton,removefooterNotice);
  footerNotice.appendChild(footerNoticeHeader);
  
  // set body
  var footerNoticeBody = document.createElement("div");
  footerNoticeBody.id = 'footerNoticeBody';
  footerNotice.appendChild(footerNoticeBody);
 },
/**
 * Add node to footerbar
 * @param dom node to be added to the footerbar
 */
 addNodeToFooter : function(node) {
  if (marnixkerk.firstFooterElement) {
   var delimiter = document.createTextNode("");
   marnixkerk.firstFooterElement = false;
  } else {
   var delimiter = document.createTextNode(" | ");
  }
  this.wFooter.appendChild(delimiter);
  this.wFooter.appendChild(node);
 },
 /**
  * retrieve ...
  */
 getPages : function() {
  var request = new Request('getPages',false);
  request.setCallBack(this.setPages);
  request.addParam('pageType','rootPage');
  marnixkerk.POSTMAN.postData(request);
 },
 /**
  * ... and set page-buttons
  */
 setPages : function(response) {
 
  // extract the pages from the response
  var bodyItems = response.getBodyItemsNum();
  for (var i=0;i<bodyItems.length;i++) {
   if (typeof(bodyItems[i].id) != 'undefined') {
    marnixkerk.pages[marnixkerk.pages.length] = bodyItems[i];
   }
  }
  
  // add buttons to the menu
  var leftMenu = xGetElementById('leftMenu');
  var delimiter = " | ";
  
  if (typeof(response.getBodyItems()['emptySet']) == 'undefined') {
   for (var i=0; i<marnixkerk.pages.length; i++) {
    var buttonSpan = document.createElement('span');
    buttonSpan.id = marnixkerk.pages[i].id;
    buttonSpan.selected = false;
    buttonSpan.type = 'cmsBarButton';
    buttonSpan.onmouseovercolor = marnixkerk.COLORS.RED;
    buttonSpan.onmouseoutcolor = marnixkerk.COLORS.TEN_PERCENT_BLACK;
    buttonSpan.onclickcolor = marnixkerk.COLORS.RED_BROWN;
    buttonSpan.activebuttoncolor = marnixkerk.COLORS.RED_BROWN;
    var buttonText = document.createTextNode(marnixkerk.pages[i].name);
   
    // add delimiter 
    var itemDelimiter = document.createTextNode(delimiter);
    leftMenu.appendChild(itemDelimiter);
    buttonSpan.appendChild(buttonText);
    leftMenu.appendChild(buttonSpan);
   }
  }
  
  // set events
  var parent = xGetElementById('navBar');
  var buttons = xGetElementsByTagName('span',parent);
  for (var i=0;i<buttons.length;i++) {
   var button = buttons[i];
   if (button.type == 'cmsBarButton') {
    button.onmouseover = navBarMouseOver;
    button.onmouseout = navBarMouseOut;
    button.onclick = navBarCMSClick;
   }
  }
 },
/**
 * Log this visit
 */
 logVisit : function() {
  var request = new Request("logVisit");
  marnixkerk.POSTMAN.postData(request);
 }
}
