/**
 * Advertisement Event Listening
 * Supports bodyBackgroundColor, bodyLinkUrl, repositionPage
 *
 * File: advertisement.modifypage.js
 * Author: Jonas Fischer
 * Copyright: G+J Electronic Media Service GmbH
 */

if (typeof advertisements === 'undefined') 
{
  var advertisements = {};
}

/**
 * advertisements.modifyPage
 * modifyPage fucntion that can be customized for each site
 * 
 */
if (!advertisements.modifyPage) 
{
  advertisements.modifyPage = function(options) 
  {
    if (top.location.href !== document.location.href 
       && typeof top.advertisements !== 'undefined' 
       && typeof top.advertisements.modifyPage === 'function') 
    {
      return top.advertisements.modifyPage(options);
    }
    return advertisements._modifyPage(options);
  }
}

/**
 * advertisements.resetPage
 * resetPage fucntion that can be customized for each site - undo changes made by modifyPage
 * 
 */
if (!advertisements.resetPage) 
{
  advertisements.resetPage = function(options) 
  {
    if (top.location.href !== document.location.href 
       && typeof top.advertisements !== 'undefined' 
       && typeof top.advertisements.resetPage === 'function') 
    {
      return top.advertisements.resetPage(options);
    }
    return advertisements._resetPage(options);
  }
}

/**
 * advertisements.setPositionsAndExclusions
 * setPositionsAndExclusions function that can be customized for each site - move/show/hide elements according to advertisement combinations
 * 
 */
if (!advertisements.setPositionsAndExclusions) 
{
  advertisements.setPositionsAndExclusions = function(wallpaper, skyscraper, LeaderBoard, halfpage) 
  {
    if (top.location.href !== document.location.href 
       && typeof top.advertisements !== 'undefined' 
       && typeof top.advertisements.setPositionsAndExclusions === 'function') 
    {
      return top.advertisements.setPositionsAndExclusions(wallpaper, skyscraper, LeaderBoard, halfpage);
    }
    return advertisements._setPositionsAndExclusions(wallpaper, skyscraper, LeaderBoard, halfpage);
  }
}

/**
 * advertisements._modifyPage:
 * _modifyPage function shared across all sites 
 * 
 */
advertisements._modifyPage = function(options) 
{
//  Usage-Example:
//  var options = {bodyBackgroundColor: '#fbc82e;', bodyLinkUrl: 'http://jonasfischer.net', repositionPage: true};
  if (options.repositionPage) 
  {
    $(document.body).addClassName('repositionPage');

    if (window.console && window.console.firebug) // debugging in firebug
    {
      console.log('resize header');
    }

    // include css file for smaller header size
    var headerID    = document.getElementsByTagName('head')[0];
    var cssLinkNode = document.createElement('link');
    cssLinkNode.type  = 'text/css';
    cssLinkNode.rel   = 'stylesheet';
    cssLinkNode.href  = 'http://www.boerse-online.de/css/advert.header1024.css';
    cssLinkNode.media = 'screen';
    headerID.appendChild(cssLinkNode); 

    // force footer position for smaller width:
    $('footer').className = 'footer';

    // force smaller chartbox in header
    $('chartbox_normal').setStyle({display:'none'});
    $('chartbox_small').setStyle({display:'block'});
  }

  if (options.bodyBackgroundColor) 
  {    
    $(document.body).setStyle({'background-color': options.bodyBackgroundColor.sub(';','')});

    var contentwrapper = $('contentWrapper');
    if (contentwrapper) 
    {
      contentwrapper.addClassName('bodyBackground');
    }
  }
  
  if (options.bodyLinkUrl) 
  {
    var target = options.bodyLinkTarget ? options.bodyLinkTarget : '_blank';
    if (typeof $(document.body).insert === 'function')
    {
      $(document.body).insert('<a id="whole-page-link" href="' + options.bodyLinkUrl + '" target="' + target + '"></a>');
    }
    /*
    Event.observe(window, 'load', function(){
      alert($$('body')[0].insert);
    $$('body')[0].insert({bottom :'<a id="whole-page-link" href="' + options.bodyLinkUrl + '" target="' + target + '"></a>'});
    });
    */
  }
}

/**
 * advertisements._resetPage:
 * _resetPage function shared across all sites - undo changes made by _modifyPage 
 * 
 */
advertisements._resetPage = function() 
{
  var body = $(document.body);
  if (body.hasClassName('repositionPage')) 
  {
    body.removeClassName('repositionPage');
  }
  body.setStyle('background-color: transparent');

  var contentwrapper = $('contentwrapper');
  if (contentwrapper && contentwrapper.hasClassName('bodyBackground')) 
  {
    contentwrapper.removeClassName('bodyBackground');
  }

  var bodyLink = $('whole-page-link');
  if (bodyLink) 
  {
    bodyLink.remove();
  }
}

if (!advertisements._setPositionsAndExclusions) 
{
  advertisements._setPositionsAndExclusions = function(wallpaper, skyscraper, LeaderBoard, halfpage)
  {
    // Debugging in Firebug:
    if (window.console && window.console.firebug) 
    {
      console.log('wallpaper: ' + wallpaper); 
      console.log('skyscraper: ' + skyscraper);
      console.log('LeaderBoard: ' + LeaderBoard);
      console.log('halfpage: ' + halfpage);
    }

    //show wallpaper above header, but superbanner below header and above navigation
    if (1 == wallpaper && top.$('superbanner_ad') && top.$('wallpaper_top_ad')) 
    {
      advertisements.replaceElement(top.$('superbanner_ad'), top.$('wallpaper_top_ad'));
    }
    else if (1 == LeaderBoard) 
    {
      advertisements.replaceElement(top.$('wallpaper_top_ad'), top.$('superbanner_ad'));
    }
    
    if(1 == skyscraper) 
    {
      if (1 != halfpage) 
      {
        if (top.$('skyscraper_ad')) 
        {
          top.$('skyscraper_ad').show();
        }
      }
    }
  }
}

advertisements.replaceElement = function(oldParent, newParent) 
{
  if (newParent && oldParent) 
  {
    oldParent.hide();
    var nextNode;
    oldParent = oldParent.firstChild;
    while (oldParent)                       // move all children of superbanner_ad to  wallpaper_top_ad
    {
      nextNode = oldParent.nextSibling;
      newParent.appendChild(oldParent);
      oldParent = nextNode;
    }
    newParent.show();
  }
}


