﻿
// Common.js de document ready de cagiriliyor.
function naviLoadEvent() {

}

function naviReady() {
    createMenuHtml();
    naviResize();

    if (screenSize > 1024) {
        $('.menu.opener .mainMenu .primaryMenu ul.level1 li.level1, header .contactLink').hover(function () {
            $('header').addClass('v2');
            $('.menu.opener').addClass('v2');
        }, function () {
            $('header').removeClass('v2');
            $('.menu.opener').removeClass('v2');

        })
    }
}

function createMenuHtml() {
    $("[data-menu='true'] >ul").addClass("level1")
    $("[data-menu='true'] ul *").each(function (index) {
        if ($(this).is("a")) {
            $(this).addClass("level" + ($(this).parents("li").length));
        }
        else {
            if ($(this).is("li")) {
                if ($(this).find("ul").length != 0) {
                    $(this).addClass("hasSub");
                    $(this).append("<div class='level" + ($(this).parents("li").length + 2) + "Content subLevelContent'></div>");
                    if ($(this).find(">ul").is("data-open-type")) {
                        $(this).find(".level" + ($(this).parents("li").length + 2) + "Content").attr("data-open-type", $(this).find(">ul").attr("data-open-type"));
                        $(this).find(">ul").removeAttr("data-open-type")
                    }
                    $(this).find(">ul,div.advertisementArea").appendTo($(this).find(".level" + ($(this).parents("li").length + 2) + "Content"));
                }
            }
            $(this).addClass("level" + ($(this).parents("li").length + 1));
        }
    });
}

function naviResize() {
    $("[data-menu]").each(function (index) {
        var menuElement = $(this);
        if (menuElement.is("data-responsive")) {
            if (screenSize <= eval(menuElement.attr("data-responsive"))) {
                initMobileMenu(menuElement);
            } else {
                unbindMobileMenu(menuElement);
            }
        }
    });
}

function initMobileMenu(menuElement) {
    menuElement.addClass("responsive");
    $(menuElement).find("ul >li").unbind("click")
    $(menuElement).find("ul >li").on("click", function (e) {
        if ($(this).hasClass("hasSub")) {
            e.preventDefault();
            cloneSubLevelLiToNav(this);
        }

    })
}

function unbindMobileMenu(menuElement) {
    menuElement.removeClass("responsive");
    $(menuElement).find("ul >li").unbind("click");
}

function cloneSubLevelLiToNav(liElement) {

    var subMenuElement = $(liElement).clone().html();
    var countOfOpneSubMenu = $(liElement).parents("[data-menu=true]").find(".mobileContainer").length + 2;
    var openType = $(liElement).parents("[data-open-type]").attr("data-open-type");
    var subLevelPosition = $(liElement).parents("[data-sub-position-type]").attr("data-sub-position-type");

    if (openType != "accordion") {
        //Add Element To Nav
        initSubLevelDiv(liElement, countOfOpneSubMenu, subLevelPosition, subMenuElement)
        // Move Nav Or New Element To Show New Element
        moveNavOrElementToShowSubMenu(liElement, openType, countOfOpneSubMenu)

    } else {

    }

    // bind click to back button
    $(".subMenu_" + countOfOpneSubMenu + ">a").on("click", function (e) {
        e.preventDefault();
        removeCloneSubLevelLiFromNav($(this).parent(), openType, subLevelPosition)
    })
    //

    $(".subMenu_" + countOfOpneSubMenu + "  ul > li").on("click", function (e) {
        if ($(this).hasClass("hasSub")) {
            e.preventDefault();
            cloneSubLevelLiToNav(this);
        }
    });

}

function initSubLevelDiv(element, countOfOpneSubMenu, subLevelPosition, subMenuElement) {
    var parentElement = $(element).parents("[data-menu=true]");

    $(element).parents("[data-menu=true]").append("<div class='subMenu_" + countOfOpneSubMenu + " mobileContainer' >" + subMenuElement + "</div>");
    $(".subMenu_" + countOfOpneSubMenu + ".mobileContainer > a ").addClass("subLevelTitle")
    // Add Postion Class To New Element
    if (subLevelPosition == "rightTop") {
        $(".subMenu_" + countOfOpneSubMenu).css("right", "-" + parseFloat(parentElement.attr("data-transition-value")) + "px");
    } else {
        $(".subMenu_" + countOfOpneSubMenu).css("left", "-" + parseFloat(parentElement.attr("data-transition-value")) + "px");
    }
    $(".subMenu_" + countOfOpneSubMenu).addClass(subLevelPosition);
}

function moveNavOrElementToShowSubMenu(element, openType, countOfOpneSubMenu) {
    var parentElement = $(element).parents("[data-menu=true]");

    // Move Nav Or New Element To Show New Element
    if (openType == "push") {
        $(element).parents("[data-menu=true]").transformAnimation("translateX(-" + (parseFloat(parentElement.width()) + parseFloat(parentElement.attr("data-transition-value"))) + "px)");

        // Save transform value in nav element attribute
        $(element).parents("[data-menu=true]").attr("data-transition-value", (parseFloat(parentElement.width()) + parseFloat(parentElement.attr("data-transition-value"))));

    } else if ((openType == "over")) {
        $(".subMenu_" + countOfOpneSubMenu).transformAnimation("translateX(0px)");
    }
}

function removeCloneSubLevelLiFromNav(element, openType, subLevelPosition) {
    // Move Nav Or New Element To Show New Element
    if (openType == "push") {
        var elementParent = $(element).parents("[data-menu=true]")

        elementParent.transformAnimation("translateX(-" + (parseFloat(elementParent.attr("data-transition-value")) - parseFloat(elementParent.width())) + "px)");
        // Save transform value in nav element attribute
        elementParent.attr("data-transition-value", (parseFloat(elementParent.attr("data-transition-value")) - parseFloat(elementParent.width())));

        setTimeout(function () {
            $(element).remove()
        }, 500);

    } else if ((openType == "over")) {
        $(element).transformAnimation("translateX(0px)");
        // Add Postion Class To New Element
        if (subLevelPosition == "rightTop") {
            $(element).transformAnimation("translateX(100%)");
        } else {
            $(element).transformAnimation("translateX(-100%)");
        }
        setTimeout(function () {
            $(element).remove()
        }, 500);
    } else if ((openType == "accordion")) {

    }

}

function menuOpenerCloseCallBack() {
    $("[data-menu=true]").attr("style", "").attr("data-transition-value", "0").find(".mobileContainer").remove();

}