$(function(){

  var settings = {
    maskId: "mask",
    maskFadeDuration: 150,
    footerFolder: "images/footer/",
    switchFolder: "switch/",
    logoFolder: "logo/",
    birdFolder: "bird/",
    imgAlternative: "Éteindre la lumière",
    imgExtension: ".png",
    onLabel: "on",
    offLabel: "off",
    offLogoId: "off-logo",
    flyingBirdId: "flying-bird",
    flyingBirdSpeed: 1000
  }

  var body = $("body"),
      footer = $("footer"),
      pageHeight = $(document).height(),
      changeSwitchSrc = function(elt, newState){
        elt.children().attr("src",
          settings.footerFolder
          + settings.switchFolder
          + newState
          + settings.imgExtension
        )
      };

  body
    .addClass(settings.onLabel)
    .prepend(
      $(document.createElement("img"))
        .hide()
        .attr({
           id: settings.flyingBirdId,
          alt: "",
          src: settings.footerFolder
               + settings.birdFolder
               + settings.offLabel
               + settings.imgExtension
        })
    )
    .prepend(
      $(document.createElement("img"))
        .hide()
        .attr({
           id: settings.offLogoId,
          alt: footer.find("strong img").attr("alt"),
          src: settings.footerFolder
               + settings.logoFolder
               + settings.offLabel
               + settings.imgExtension
        })
    )
    .prepend(
      $(document.createElement("div"))
        .hide()
        .attr("id",settings.maskId)
        .css("height",pageHeight - 75)
    );

  var mask       = $(document.getElementById(settings.maskId)),
      offLogo    = $(document.getElementById(settings.offLogoId)),
      flyingBird = $(document.getElementById(settings.flyingBirdId));

  footer.children().append(
    $(document.createElement("a"))
      .attr("href","#")
      .click(function(e){
        e.preventDefault();
        offLogo.toggle();
        var $this = $(this);
        if (body.hasClass(settings.onLabel)) {
          changeSwitchSrc($this, settings.offLabel);
          mask.fadeIn(settings.maskFadeDuration);
          flyingBird
            .show()
            .animate({
              marginLeft: 0,
              left: "100%",
              top: "970px"
            }, settings.flyingBirdSpeed);
          body.removeClass().addClass(settings.offLabel);
        }
        else {
          changeSwitchSrc($this, settings.onLabel);
          mask.fadeOut(settings.maskFadeDuration);
          flyingBird.removeAttr("style").hide();
          body.removeClass().addClass(settings.onLabel);
        }
      })
      .append(
        $(document.createElement("img")).attr({
          alt: settings.imgAlternative,
          src: settings.footerFolder
               + settings.switchFolder
               + settings.onLabel
               + settings.imgExtension
        })
      )
  );

});