“use strict”;

/**

* Golbal namespace for FOS.
*/

if (typeof FOS === “undefined”) {

var FOS = {};

}

/**

* The navigation module.
*/

(function (_fos, _$) {

var module = function () {
    this._$navigation = _$(".fos-navigation");
    this._$iconNav = this._$navigation.find(".fos-menu-icon");
    this._$icon = _$(".fos-menu-icon");
    this._$window = _$(window);

    this._$icon.unbind("click").on("click", (function(context){
        return function(event) {
            context.click(event);
        }
    })(this));
}

module.prototype = {
    constructor: module,

    init: function () {
        this.delayTransition();
        return this;
    },

    delayTransition: function () {
        var delay = 0.2;
        this._$navigation.find("nav a").each(function() {
            _$(this).css("transition-delay", delay + "s");
            delay += 0.04;
        });
        return this;
    },

    click: function (event) {
        if (this._$icon.hasClass("fos-menu-open")) {
            this._$icon.removeClass("fos-menu-open");
            this._$iconNav.removeClass("fos-menu-open");
            this._$navigation.removeClass("fos-menu-open");
        } else {
            this.positionIconNav(_$(event.target));
            this._$icon.addClass("fos-menu-open");
            this._$iconNav.addClass("fos-menu-open");
            this._$navigation.addClass("fos-menu-open");
        }
        return this;
    },

    positionIconNav: function ($target) {
        this._$iconNav.css("top", $target.offset().top - this._$window.scrollTop() + "px");
        this._$iconNav.css("left", $target.offset().left - this._$window.scrollLeft() + "px");
    }
}

_fos.navigation = new module();

})(FOS, $);

/**

* Console logger.
*/

(function(_fos){

var message = "A bug or a suggestion? fahim@fahimfarook.me please.";

_fos.log = function () {
    if (!console || !console.info) {
        return;
    }
    console.info(message);
}

})(FOS)

// jQuery document.ready $(function () {

FOS.navigation.init();
FOS.log();

});