(function (f) {
  f.facebox = function (n, m) {
    f.facebox.loading();
    if (n.ajax) {
      g(n.ajax, m)
    } else {
      if (n.iframe) {
        h(n.iframe, n.rel)
      } else {
        if (n.image) {
          c(n.image, rel)
        } else {
          if (n.div) {
            k(n.div)
          } else {
            if (f.isFunction(n)) {
              n.call(f)
            } else {
              f.facebox.reveal(n, m)
            }
          }
        }
      }
    }
  };
  f.extend(f.facebox, {
    settings: {
      opacity: 0.85,
      overlay: true,
      loadingImage: "../css/img/facebox/loading.gif",
      closeImage: "../css/img/facebox/closelabel.gif",
      imageTypes: ["png", "jpg", "jpeg", "gif"],
      faceboxHtml: '<div id="facebox" style="display:none;"><div class="popup"><table><tbody><tr><td><div id="FaceboxClose"><a href="#" class="close facebox" id="CloseFacebox"><span>Schließen</span </a></div></td></tr><tr><td class="body"><div class="content"></div></td></tr></tbody></table></div></div>'
    },
    loading: function () {
      l();
      if (f("#facebox .loading").length == 1) {
        return true
      }
      e();
      f("#facebox .content").empty();
      f("#facebox .body").children().hide().end().append('<div class="loading"><img src="' + f.facebox.settings.loadingImage + '"/></div>');
      f("#facebox").css({
        top: i()[1] + (j() / 10),
        left: 385.5
      }).show();
      f(document).bind("keydown.facebox", function (m) {
        if (m.keyCode == 27) {
          f.facebox.close()
        }
        return true
      });
      f(document).trigger("loading.facebox")
    },
    reveal: function (n, m) {
      f(document).trigger("beforeReveal.facebox");
      if (m) {
        f("#facebox .content").addClass(m)
      }
      f("#facebox .content").append(n);
      f("#facebox .loading").remove();
      f("#facebox .body").children().fadeIn("normal");
      f("#facebox").css("left", f(window).width() / 2 - (f("#facebox table").width() / 2));
      f(document).trigger("reveal.facebox").trigger("afterReveal.facebox")
    },
    close: function () {
      if (f(".formError").length > 0) {
        f.validationEngine.closePrompt(".formError", true)
      }
      f(document).trigger("close.facebox");
      return false
    }
  });
  f.fn.facebox = function (m) {
    l(m);

    function n() {
      f.facebox.loading(true);
      var o = this.rel.match(/facebox\[?\.(\w+)\]?/);
      if (o) {
        o = o[1]
      }
      k(this.href, o);
      return false
    }
    return this.click(n)
  };

  function l(o) {
    if (f.facebox.settings.inited) {
      return true
    } else {
      f.facebox.settings.inited = true
    }
    f(document).trigger("init.facebox");
    d();
    var m = f.facebox.settings.imageTypes.join("|");
    f.facebox.settings.imageTypesRegexp = new RegExp("." + m + "$", "i");
    if (o) {
      f.extend(f.facebox.settings, o)
    }
    f("body").append(f.facebox.settings.faceboxHtml);
    var n = [new Image(), new Image()];
    n[0].src = f.facebox.settings.closeImage;
    n[1].src = f.facebox.settings.loadingImage;
    f("#facebox").find(".b:first, .bl, .br, .tl, .tr").each(function () {
      n.push(new Image());
      n.slice(-1).src = f(this).css("background-image").replace(/url\((.+)\)/, "$1")
    });
    f("#facebox .close").click(f.facebox.close);
    f("#facebox .close_image").attr("src", f.facebox.settings.closeImage)
  }
  function i() {
    var n, m;
    if (self.pageYOffset) {
      m = self.pageYOffset;
      n = self.pageXOffset
    } else {
      if (document.documentElement && document.documentElement.scrollTop) {
        m = document.documentElement.scrollTop;
        n = document.documentElement.scrollLeft
      } else {
        if (document.body) {
          m = document.body.scrollTop;
          n = document.body.scrollLeft
        }
      }
    }
    return new Array(n, m)
  }
  function j() {
    var m;
    if (self.innerHeight) {
      m = self.innerHeight
    } else {
      if (document.documentElement && document.documentElement.clientHeight) {
        m = document.documentElement.clientHeight
      } else {
        if (document.body) {
          m = document.body.clientHeight
        }
      }
    }
    return m
  }
  function d() {
    var m = f.facebox.settings;
    m.loadingImage = m.loading_image || m.loadingImage;
    m.closeImage = m.close_image || m.closeImage;
    m.imageTypes = m.image_types || m.imageTypes;
    m.faceboxHtml = m.facebox_html || m.faceboxHtml
  }
  function k(n, m) {
    if (n.match(/#/)) {
      var o = window.location.href.split("#")[0];
      var p = n.replace(o, "");
      f.facebox.reveal(f(p).clone().show(), m)
    } else {
      if (n.match(f.facebox.settings.imageTypesRegexp)) {
        c(n, m)
      } else {
        g(n, m)
      }
    }
  }
  function c(n, m) {
    var o = new Image();
    o.onload = function () {
      f.facebox.reveal('<div class="image"><img src="' + o.src + '" /></div>', m)
    };
    o.src = n
  }
  function g(n, m) {
    f.get(n, function (o) {
      f.facebox.reveal(o, m)
    })
  }
  function h(o, n) {
    var m = n.match(/faceboxIframe\[?\.(\w+)\]?/);
    if (m) {
      m = m[1]
    }
    var p = f('<iframe src="' + o + '" width="100%" height="100" scrolling="no" frameborder="0" />').width("100%").height("100%").load(function () {
      var r = this;
      var q = f(this).height();
      if (r && !window.opera) {
        r.style.display = "block";
        if (r.contentDocument && r.contentDocument.body.offsetHeight) {
          q = r.contentDocument.body.offsetHeight
        } else {
          if (r.Document && r.Document.body.scrollHeight) {
            q = r.Document.body.scrollHeight
          }
        }
      }
      f(this).height(q)
    });
    f.facebox.reveal(p, m)
  }
  function b() {
    return f.facebox.settings.overlay == false || f.facebox.settings.opacity === null
  }
  function e() {
    if (b()) {
      return
    }
    if (f("facebox_overlay").length == 0) {
      f("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')
    }
    f("#facebox_overlay").hide().addClass("facebox_overlayBG").css("opacity", f.facebox.settings.opacity).click(function () {
      f(document).trigger("close.facebox")
    }).fadeIn(200);
    return false
  }
  function a() {
    if (b()) {
      return
    }
    f("#facebox_overlay").fadeOut(200, function () {
      f("#facebox_overlay").removeClass("facebox_overlayBG");
      f("#facebox_overlay").addClass("facebox_hide");
      f("#facebox_overlay").remove()
    });
    return false
  }
  f(document).bind("close.facebox", function () {
    
    // Einbindung des Videos
    // Homepage
    if( f('#VideoTeaser').size() && f('#VideoTeaser .videoplace').css('display') == 'block' )
    {
       document.getElementById("VideoLayer").execute("resume");
    }
    else if( !f('#VideoTeaser .videoplace').size() )
    {
      if( f('#VideoLayer').size() )
      {
        document.getElementById("VideoLayer").execute("resume");
      }
      else if( !f('#Flash .play').size() && f('#Flash').size() )
      {
        document.getElementById("Flash").execute("resume");
      }
    }
    /*
    if( document.getElementById("VideoLayer") && $('#VideoLayer').size() && $('#VideoLayer').is(':visible') )
    {
      //document.getElementById("VideoLayer").execute("resume");
    }
    // Einbindung des Videos
    if( document.getElementById("Flash") && $('#Flash').size() && $('#Flash').is(':visible') )
    {
      //document.getElementById("Flash").execute("resume");
    }
    */
    f(document).unbind("keydown.facebox");
    f("#facebox").fadeOut(function () {
      f("#facebox .content").removeClass().addClass("content");
      a();
      f("#facebox .loading").remove()
    })
  })
})(jQuery);

