

/*
  author:   Michael Eichelsdoerfer, www.michael-eichelsdoerfer.de
  version:  1.3.1
  date:     2011-11-05
  client:   BayernSPD, www.bayernspd.de
  about:    JavaScript content module;
            file is generated dynamically via XSLT;

            "classical" DOM scripting (no JavaScript framework used);
            requirements: HTML container, CSS file; see configuration;

  version history:
    1.3.1   2011-11-05; using network-path reference to load CSS file;
    1.3     2010-10-28: renamed global variables to be more "unique";
    1.2     2010-10-28; initial public version;

  example usage (XHTML snippet, URL inlcuding optional parameters):
--------------------------------------------------------------------------------
<script type="text/javascript" charset="utf-8" src="http://bayernspd.de/termin-module-1/?limit=20&amp;width=300&amp;align=right"></script>
<div id="bayernspdtermine-container"></div>
--------------------------------------------------------------------------------

  url parameters:
    - [limit] (optional): limits the number of entries to be displayed
                          value may be any number (maximum is defined by server side data source);
    - [width] (optional): see corresponding CSS file;
    - [align] (optional): see corresponding CSS file;
    - [style] (optional): see corresponding CSS file;
    - [linkstyle] (optional): see corresponding CSS file;
    'width', 'align', 'style' and 'linkstyle' params will be included in the CSS loading URL (var bayernspdTermineCssFile) if not NULL;
*/

// configuration
var bayernspdTermineContainerId = 'bayernspdtermine-container';
var bayernspdTermineHeaderId    = 'bayernspdtermine-header';
var bayernspdTermineContentId   = 'bayernspdtermine-content';
var bayernspdTermineItemClass   = 'bayernspdtermine-item';


var bayernspdTermineCssFile = '//bayernspd.de/terminmodul-css/';


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
      oldonload();
      }
      func();
    }
  }
}

function bayernspdTermineLinkControl() {
  if (!document.getElementById) return false;
  if (!document.getElementsByTagName) return false;
  var container = document.getElementById(bayernspdTermineContainerId);
  if(!container) return false;
  var links = container.getElementsByTagName("a");
  for (var i=0; i<links.length; i++) {
    links[i].target = "_blank";
  }
}

function bayernspdTermineLoadCssFile(url) {
  if (!document.getElementsByTagName) return false;
  var fileref=document.createElement("link");
  fileref.setAttribute("rel", "stylesheet");
  fileref.setAttribute("type", "text/css");
  fileref.setAttribute("href", url);
  document.getElementsByTagName("head")[0].appendChild(fileref);
}
bayernspdTermineLoadCssFile(bayernspdTermineCssFile);

function bayernspdTermineGenerate() {

  var container = document.getElementById(bayernspdTermineContainerId);
  var termine = document.createElement("div");
  termine.setAttribute("id", bayernspdTermineContentId);

  // create header
  var termineHeader = document.createElement("p");
  termineHeader.setAttribute("id", bayernspdTermineHeaderId);
  var termineHeaderInner = document.createElement("strong");
  termineHeader.appendChild(termineHeaderInner);
  var termineHeaderText = document.createTextNode("BayernSPD Termine");
  termineHeaderInner.appendChild(termineHeaderText);

  // create list and list items
  var termineList = document.createElement("ul");



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42150");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Schwabach: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=41966");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Vilshofen an der Donau: Politischer Aschermittwoch der BayernSPD";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42541");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Grafenw&ouml;hr: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42622");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Hof: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42634");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Bayreuth: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42508");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Ingolstadt: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42674");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Vilsbiburg: Traditionelles Fischessen der SPD Vilsbiburg";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42675");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Altdorf: Traditionelles Fischessen der SPD Altdorf";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42151");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. N&uuml;rnberg: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42152");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Schwarzenbruck: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42546");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Viechtach: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  var termineListItem = document.createElement("li");
  termineListItem.setAttribute("class", bayernspdTermineItemClass);
  var termineListItemLink = document.createElement("a");
  termineListItemLink.setAttribute("href", "http://bayernspd.de/termine/?id=42540");
  termineListItem.appendChild(termineListItemLink);
  termineListItemLink.innerHTML = "22.02. Flossenb&uuml;rg: Politischer Aschermittwoch";
  termineList.appendChild(termineListItem);



  termine.appendChild(termineList);
  if (container){
    container.appendChild(termineHeader);
    container.appendChild(termine);
  }
}

// load events
addLoadEvent(function(){
  bayernspdTermineGenerate();
  bayernspdTermineLinkControl();
});


