// 
// imageFader.js
// 
// [2011-08-14] Version 2.0
//              Als Target ist jetzt auch ein <iframe> möglich.
//              Verwendung: <a href="datei-in-iframe-zu-oeffnen.htm" rel="imagefaderIFrame[idDesTargetIFrames]">...</a>
// 
// -------------------------------------------------------------------

function ImageFader() { }

ImageFader.prototype.pattern = /imagefader\[(\w+)\]/;
ImageFader.prototype.fade = function(imageLinkObject) 
{
  var relAttribute = String(imageLinkObject.getAttribute('rel'));

  if ((regexResult = myImageFader.pattern.exec(relAttribute)) == null)
    return;

  var idOfTargetDiv = regexResult[1];
  var targetDiv = document.getElementById(idOfTargetDiv);
  if (targetDiv == null)
    return;

  var imgId = idOfTargetDiv + 'XXX';
  var imgElement = document.createElement('img');
  imgElement.setAttribute('src', imageLinkObject.href);
  imgElement.setAttribute('id', imgId);
  targetDiv.innerHTML = '';
  targetDiv.appendChild(imgElement);

  var imgObject = $("#" + imgId);
  imgObject.hide();
  imgObject.fadeIn(1000);
}

ImageFader.prototype.patternIFrame = /imagefaderIFrame\[(\w+)\]/;
ImageFader.prototype.fadeIFrame = function(imageLinkObject) 
{
  if (myImageFader.isFading)
    return;

  myImageFader.isFading = true;
  var relAttribute = String(imageLinkObject.getAttribute('rel'));

  if ((regexResult = myImageFader.patternIFrame.exec(relAttribute)) == null)
    return;

  var idOfTargetIFrameObject = regexResult[1];
  var targetIFrameObject = $("#" + idOfTargetIFrameObject);
  if (targetIFrameObject == null)
    return;

  targetIFrameObject.hide();
  targetIFrameObject.attr('src', imageLinkObject.href);
  targetIFrameObject.fadeIn(1000, function() { myImageFader.isFading = false; });
}


// -------------------------------------------------------------------

if (window.addEventListener)
{
  window.addEventListener("load", initImageFader, false);
}
else if (window.attachEvent)
{
  window.attachEvent("onload", initImageFader);
}
else
{
  window.onload = function() { initImageFader(); }
}

function initImageFader()
{
  myImageFader = new ImageFader();

  var anchors = document.getElementsByTagName('a');

  for (var i = 0; i < anchors.length; i++)
  {
    var anchor       = anchors[i];
    var relAttribute = String(anchor.getAttribute('rel'));

    if (anchor.getAttribute('href'))
    {
      if ((regexResult = myImageFader.pattern.exec(relAttribute)) != null)
      {
        var idOfTargetDiv = regexResult[1];
        anchor.onclick = function () {
          myImageFader.fade(this); return false;
        }
      }

      if ((regexResult = myImageFader.patternIFrame.exec(relAttribute)) != null)
      {
        var idOfTargetDiv = regexResult[1];
        anchor.onclick = function () {
          myImageFader.fadeIFrame(this); return false;
        }
      }
    }
  }
}

