﻿jQuery().ready(function () {

    //make several columns of submenu, if more than 5 items
    jQuery("#header .topMenu > ul > li").each(function () {
        var numberOfColumns = 4; //<= default when > 20 items
        var numberOfItemsInColumn = 5; //<= default when > 5 and < 20 items
        var numberOfSubMenuItems = jQuery(this).find("> ul > li").size();

        if (numberOfSubMenuItems > 5) {
            if (numberOfSubMenuItems <= 20) {
                //find number of columns
                numberOfColumns = Math.ceil(numberOfSubMenuItems / numberOfItemsInColumn);
            } else {
                numberOfItemsInColumn = Math.ceil(numberOfSubMenuItems / numberOfColumns);
            }
            //add a wrapper div for the columns
            jQuery(this).append("<div class='cols" + numberOfColumns + "'></div>");
            //populate each column
            for (i = 0; i < numberOfColumns; i++) {
                //clone the submenu and find items that should be in this column
                jQuery(this).find("> ul:eq(0)").clone().appendTo(jQuery(this).find("div")).find("li").slice((i * numberOfItemsInColumn), ((i * numberOfItemsInColumn) + numberOfItemsInColumn)).addClass("keeper");
                //remove the items that should not be in this column
                jQuery(this).find("div ul li:not(.keeper)").remove();
            }
            //remove original submenu
            jQuery(this).find("> ul").remove();

            //find topmenu item left position
            var topmenuItemLeftPos = jQuery(this).position().left;
            //submenu width
            var submenuColsWidth = jQuery(this).find("div").outerWidth(true);
            //if submenu ends to the right of #wrapper, move it inside
            if (topmenuItemLeftPos + submenuColsWidth > 955) {
                jQuery(this).find("div").css("left", (-(topmenuItemLeftPos + submenuColsWidth - 955)) + "px");
            }
        }
    });

    //using tab-key for navigating
    jQuery("#header .topMenu ul ul a")
    .focus(function () {
        jQuery(this).parents("li").parents("li").addClass("subIsActive");
    })
    .blur(function () {
        jQuery(this).parents("li").parents("li").removeClass("subIsActive");
    });

    //hover with delay on hoverout
    jQuery("#header .topMenu > ul > li").hover(function () {
        jQuery(this).addClass("hovered").removeClass("removeHoverFromMe");
        jQuery("#header .topMenu > ul > li").not(this).addClass("removeHoverFromMe");
    }, function () {
        setTimeout(removeHovered, 250);
        function removeHovered() {
            jQuery(".removeHoverFromMe").removeClass("hovered");
            if (jQuery(".subsNotRemovable").size() < 1) {
                jQuery(".removeHoverFromMe").removeClass("removeHoverFromMe");
            }
        }
    });
    jQuery("#header .topMenu ul").hover(function () {
        jQuery(this).addClass("subsNotRemovable");
    }, function () {
        jQuery("#header .topMenu > ul > li").addClass("removeHoverFromMe");
        jQuery(this).removeClass("subsNotRemovable");
    });


    //full block click
    jQuery(".flexigrid .freetextPart").addClass("clickableBlock").click(function () {
        window.location.href = jQuery(this).find("a").attr("href");
    });


    //GAS SELECTOR
    //Norwegian and global values are defaults
    //                   0        1         2         3         4          5         6          7           8           9
    var gasName = Array("Argon", "Dupcon", "Edling", "Estate", "Formier", "Harmix", "Helicon", "Heliplus", "Secure 8", "Secure 18");

    var recommendedGasComment = Array(
        "Den beste løsningen for blanke rot sveiser på rør",
        "Helicon er spesielt utviklet for dette",
        "Standard gass for bakgass",
        "Standard gass for MAG",
        "Standard gass for MIG sveising",
        "Standard gass for rørtråd sveising",
        "Standard gass for tig sveising"
    );

    var specialRequirementsGasComment = Array(
        "Argon er standard bakgass",
        "Brukes for mekanisert sveising. Større innbrenning.",
        "Dupcon gir bedre resultater ved korrosjonstest av sveiser",
        "Estate gir større innbrenning og bedre flyt i smeltebadet. For mekanisert sveising.",
        "Estate gir større innbrenning. Brukes for mekanisert sveising",
        "Gir blankere rot sveis og bedre resultater i korrosjonstest",
        "Gir blankere rot sveis",
        "Gir mindre sprut og bedre overflate. Høyhastighets sveising.",
        "Gir raskere oppsmelting og høyere produktivitet",
        "Gir større innbrenning og høyere kvalitet. Røntgenkrav.",
        "Harmix gir blanke rotsveiser på små rør. Brukes også som dekkgass.",
        "Harmix gir blankere, glattere sveis. Også godt egnet som bakgass.",
        "Harmix gir blankere sveiser og bedre flyt i smeltebadet",
        "Helicon gir større innbrenning og glattere, renere sveiser",
        "Heliplus gir større innbrenning og glattere sveiser",
        "Ved krav til høyere finish i rot"
    );

    //SWEDISH
    if (jQuery("html[lang='sv']").size() > 0) {

        //jQuery("#gasSelection").removeClass("norwegianGasSelector").addClass("swedishGasSelector");

        var recommendedGasComment = Array(
            "Den bästa lösningen för blanka rotsträngar på rostfria rör",
            "Helicon är speciellt utvecklat för detta",
            "Standard gas för rotgas",
            "Standard gas för MAG",
            "Standard gas för MIG svetsning",
            "Standard gas för rörtrådssvetsning",
            "Standard gas för TIG svetsning"
        );

        var specialRequirementsGasComment = Array(
            "Argon är en standard rotgas",
            "Används för mekaniserad svetsning. Djupare inträngning.",
            "Dupcon ger bättre resultat vid korrosionstest av svetsar",
            "Estate ger större inträngning och bättre flyt i smältbadet. För mekaniserad svetsning.",
            "Estate ger djupare inträngning. Används för mekaniserad svetsning.",
            "Ger blankare rot sträng och bättre restultat i korrosionstest",
            "Ger blankare rot sträng",
            "Ger mindre svetssprut och jämnare yta på svetsen. Höghastighets svetsning.",
            "Ger snabbare uppsmältning och högre produktivitet",
            "Ger djupare inträngning och högre svetskvalitet. (Röntgenkrav)",
            "Harmix ger blankare rotsträngar på små rör. Används också som skyddsgas.",
            "Harmix ger blankare, glattare svets. Även lämlig som rotgas.",
            "Harmix ger blankare svetsar och bättre flyt i smältbadet",
            "Helicon ger djupare inträngning och jämnare svetsyta",
            "Heliplus ger djupare inträngning och jämnare svetsyta",
            "Vid höga krav på finish i rotsträng"
        );
    }

    //DANISH
    if (jQuery("html[lang='da']").size() > 0) {

        //jQuery("#gasSelection").removeClass("norwegianGasSelector").addClass("danishGasSelector");
        //               0        1         2         3         4          5         6          7           8           9            10              11           12
        gasName = Array("Argon", "Dupcon", "Edling", "Estate", "Formier", "Harmix", "Helicon", "Heliplus", "Secure 8", "Secure 18", "Alumaxx Plus", "Inomaxx 2", "Duplex");

        var recommendedGasComment = Array(
            "Beskyttelsesgas til baggassvejsning af rør. Beskytter svejsningens bagside mod atmofærisk luft og forhindre derved oxydering. Giver blank og glat overflade.",
            "Helicon er spesielt utviklet for dette",
            "Beskyttelsesgas til baggassvejsning af rør",
            "Allround gas til MAG svejsning anvendes til de fleste materialer med masiv tråd, stabil lysbue, god indbrænding, og velegnet til alle svejsestillinger",
            "MAG svejsning af rustfaste stål, samt syrefast stål, pæn glat og ren svejsesøm. Edling giver stabil og rolig lysbue, anvendes i alle svejsestillinger.",
            "Allround gas til MAG svejsning anvendes til de fleste materialer med rørtråd, stabil lysbue, god indbrænding, og velegnet til alle svejsestillinger",
            "Standard gas til TIG svejsning, giver god gasdækning pga. stor gastæthed ingen afbrænding af legeringselementer, minimalt sprøjt derfor ingen efterbehandling",
            "Standard gas til TIG, plasma og lasersvejsning. Minimalt sprøjt derfor ingen efterbearbejdning.",
            "Standard gas til MIG svejsning, giver god gasdækning pga. stor gastæthed ingen afbrænding af legeringselementer, minimalt sprøjt derfor ingen efterbehandling"
        );

        var specialRequirementsGasComment = Array(
            "Beskyttelsesgas til baggassvejsning af rør",
            "Forhindrer bindefejl og porer, særdeles god indsmeltning og stor svejsehastighed pga. høj varmetilførsel.",
            "Dupcon gir bedre resultater ved korrosjonstest av sveiser",
            "Estate gir større innbrenning og bedre flyt i smeltebadet. For mekanisert sveising.",
            "",
            "Beskyttelsesgas til baggassvejsning af rør. Beskytter svejsningens bagside mod atmofærisk luft og forhindre derved oxydering. Giver blank og glat overflade.",
            "",
            "Anbefales til tynde og middeltykke materialer op til 6-8 mm, fin dråbeovergang til grundmaterialet med et minimum af sprøjt.",
            "Gir raskere oppsmelting og høyere produktivitet",
            "Gir større innbrenning og høyere kvalitet. Røntgenkrav.",
            "Harmix gir blanke rotsveiser på små rør. Brukes også som dekkgass.",
            "Forhindrer bindefejl og porer, særdeles god indsmeltning og stor svejsehastighed pga. høj varmetilførsel, høj finish på materiale",
            "Harmix gir blankere sveiser og bedre flyt i smeltebadet",
            "Helicon gir større innbrenning og glattere, renere sveiser",
            "Heliplus gir større innbrenning og glattere sveiser",
            "Ved krav til højere finish i rod",
            "Forhindrer bindefejl og porer, særdeles god indsmeltning og stor svejsehastighed pga. høj varmetilførsel. I 300 bar gasflaske.",
            "Forhindrer bindefejl og porer, særdeles god indsmeltning og stor svejsehastighed pga. høj varmetilførsel, høj finish på materiale. I 300 bar gasflaske.",
            "MAG svejsning af rustfaste stål, samt syrefast stål, pæn glat og ren svejsesøm. Edling giver stabil og rolig lysbue, anvendes i alle svejsestillinger.",
            "MAG svejsning af rustfaste stål, samt syrefast stål, pæn glat og ren svejsesøm. Edling giver stabil og rolig lysbue, anvendes i alle svejsestillinger. I 300 bar gasflaske."
        );
    }

    //reset radio buttons on pageload (refresh)
    jQuery("#gasSelection input:radio").removeAttr("checked").removeAttr("disabled");

    var materialChosen = "material";
    var methodChosen = "method";
    jQuery("input[name='material']").click(function () {
        materialChosen = jQuery(this).val();
        showRightGas(materialChosen, methodChosen, gasName, recommendedGasComment, specialRequirementsGasComment);
    });
    jQuery("input[name='method']").click(function () {
        methodChosen = jQuery(this).val();
        showRightGas(materialChosen, methodChosen, gasName, recommendedGasComment, specialRequirementsGasComment);
    });

    //reset gas selection
    jQuery("#resetGasSelectionForm").click(function () {
        jQuery("#gasSelection label").removeClass("disabled");
        jQuery("#gasSelection input:radio").removeAttr("checked").removeAttr("disabled");
        jQuery(".results .gasName div").empty();
        materialChosen = "material";
        methodChosen = "method";
        return false;
    });

    //make tooltip follow cursor
    jQuery("#gasSelection").mousemove(function (e) {
        jQuery('#gasDescription').css('top', e.clientY - jQuery(this).offset().top - 60).css('left', e.clientX - jQuery(this).offset().left - 270);
    });
});


//gas selector
function showRightGas(selectedMaterial, selectedMethod, gasName, recommendedGasComment, specialRequirementsGasComment) {
    //gasMaterialAndMethodMatch[0:Materiale, 1:Metode, 2:Anbefalt(e) gass(er), 3:Kommentar(er) anbefalt gass, 4:Gass(er) for spesielle krav, 5:Kommentar(er) gass for spesielle krav]
    var gasMaterialAndMethodMatch = Array(
		["material_0", "method_0", [0], [6], [3], [1]],
		["material_0", "method_1", [9], [3], [8], [7]],
		["material_0", "method_2", [9], [5], [], []],
		["material_0", "method_3", [], [], [0], [15]],
		["material_0", "method_4", [], [], [], []],
		["material_1", "method_0", [0], [6], [5, 3], [11, 4]],
		["material_1", "method_1", [2], [3], [7, 6], [14, 13]],
		["material_1", "method_2", [9], [5], [], []],
		["material_1", "method_3", [4], [0], [0, 5], [0, 10]],
		["material_1", "method_4", [], [], [], []],
		["material_2", "method_0", [0], [6], [1, 3], [2, 4]],
		["material_2", "method_1", [2], [3], [7, 6], [14, 13]],
		["material_2", "method_2", [9], [5], [], []],
		["material_2", "method_3", [0], [2], [4], [5]],
		["material_2", "method_4", [], [], [], []],
		["material_3", "method_0", [0], [6], [3, 5], [3, 12]],
		["material_3", "method_1", [6], [1], [], []],
		["material_3", "method_2", [], [], [], []],
		["material_3", "method_3", [0], [2], [4], [6]],
		["material_3", "method_4", [], [], [], []],
		["material_4", "method_0", [0], [6], [3], [8]],
		["material_4", "method_1", [], [], [], []],
		["material_4", "method_2", [], [], [], []],
		["material_4", "method_3", [], [], [], []],
		["material_4", "method_4", [0], [4], [3], [9]]
	);

    if (jQuery("html[lang='da']").size() > 0) {
        gasMaterialAndMethodMatch = Array(
		    ["material_0", "method_0", [0], [7], [3, 10], [1, 16]],
		    ["material_0", "method_1", [9], [3], [8], [7]],
		    ["material_0", "method_2", [9], [5], [], []],
		    ["material_0", "method_3", [], [], [0], [15]],
		    ["material_0", "method_4", [], [], [], []],
		    ["material_1", "method_0", [0], [6], [5, 3, 11], [11, 11, 17]],
		    ["material_1", "method_1", [2], [4], [12, 11], [18, 19]],
		    ["material_1", "method_2", [9], [5], [], []],
		    ["material_1", "method_3", [4], [0], [0], [0]],
		    ["material_1", "method_4", [], [], [], []],
		    ["material_2", "method_0", [0], [6], [3], [1]],
		    ["material_2", "method_1", [2], [4], [12, 11], [18, 19]],
		    ["material_2", "method_2", [9], [5], [], []],
		    ["material_2", "method_3", [0], [2], [4], [5]],
		    ["material_2", "method_4", [], [], [], []],
		    ["material_3", "method_0", [0], [6], [3, 10], [1, 16]],
		    ["material_3", "method_1", [2], [4], [], []],
		    ["material_3", "method_2", [], [], [], []],
		    ["material_3", "method_3", [0], [2], [4], [5]],
		    ["material_3", "method_4", [], [], [], []],
		    ["material_4", "method_0", [0], [6], [3], [1]],
		    ["material_4", "method_1", [], [], [], []],
		    ["material_4", "method_2", [], [], [], []],
		    ["material_4", "method_3", [], [], [], []],
		    ["material_4", "method_4", [0], [8], [3], [1]]
	    );
    }

    //if both material and method is selected, display gases
    if (selectedMaterial != "material" && selectedMethod != "method") {
        for (i = 0; i < gasMaterialAndMethodMatch.length; i++) {
            if (selectedMaterial == gasMaterialAndMethodMatch[i][0] && selectedMethod == gasMaterialAndMethodMatch[i][1]) {
                var currentMatch = i;
                //check if there are any recommended gases
                var newRecommendedGas = "";
                var newGasWithSpecifics = "";
                var urlToListGases = jQuery(".urlToTheGasSelectorPage input").val();
                //check for recommended gases
                if (gasMaterialAndMethodMatch[i][2].length > 0) {
                    for (j = 0; j < gasMaterialAndMethodMatch[i][2].length; j++) {
                        newRecommendedGas += "<a href='" + urlToListGases + "'>" + gasName[gasMaterialAndMethodMatch[i][2][j]] + "</a> ";
                    }
                }
                //check for gases with special demands
                if (gasMaterialAndMethodMatch[i][4].length > 0) {
                    for (k = 0; k < gasMaterialAndMethodMatch[i][4].length; k++) {
                        newGasWithSpecifics += "<a href='" + urlToListGases + "'>" + gasName[gasMaterialAndMethodMatch[i][4][k]] + "</a> ";
                    }
                }

                //show description on mouseover
                var currentLinkHovered = 0;
                //recommended gases
                jQuery("#recommendedGasResult a").live("mouseover mouseout", function (e) {
                    if (e.type == "mouseover") {
                        currentLinkHovered = jQuery(this).index();
                        jQuery("#gasDescription").show();
                        jQuery("#gasDescription").html("<strong style='display:block;margin-bottom:3px;'>" + gasName[gasMaterialAndMethodMatch[currentMatch][2][currentLinkHovered]] + "</strong><div>" + recommendedGasComment[gasMaterialAndMethodMatch[currentMatch][3][currentLinkHovered]] + "</div>");
                    } else {
                        jQuery("#gasDescription").hide();
                    }
                });
                //gases with specific requirements
                jQuery("#gasWithSpecifics a").live("mouseover mouseout", function (e) {
                    if (e.type == "mouseover") {
                        currentLinkHovered = jQuery(this).index();
                        jQuery("#gasDescription").show();
                        jQuery("#gasDescription").html("<strong style='display:block;margin-bottom:3px;'>" + gasName[gasMaterialAndMethodMatch[currentMatch][4][currentLinkHovered]] + "</strong><div>" + specialRequirementsGasComment[gasMaterialAndMethodMatch[currentMatch][5][currentLinkHovered]] + "</div>");
                    } else {
                        jQuery("#gasDescription").hide();
                    }
                });
            }
        }
        //swap gas name
        jQuery("#recommendedGasResult").empty().css({ top: "-40px" }).html(newRecommendedGas).animate({ top: "0px" }, "fast");
        jQuery("#gasWithSpecifics").empty().css({ top: "-40px" }).html(newGasWithSpecifics).animate({ top: "0px" }, "fast");
    }

    //disable non-compatible combinations
    jQuery("input[name='material']").removeAttr("disabled").parent().removeClass("disabled");
    jQuery("input[name='method']").removeAttr("disabled").parent().removeClass("disabled");
    for (l = 0; l < gasMaterialAndMethodMatch.length; l++) {
        if (gasMaterialAndMethodMatch[l][2].length < 1 && gasMaterialAndMethodMatch[l][4].length < 1) {
            if (selectedMaterial == gasMaterialAndMethodMatch[l][0]) {
                jQuery("input[value='" + gasMaterialAndMethodMatch[l][1] + "']").attr("disabled", "disabled").parent().addClass("disabled");
            }
            if (selectedMethod == gasMaterialAndMethodMatch[l][1]) {
                jQuery("input[value='" + gasMaterialAndMethodMatch[l][0] + "']").attr("disabled", "disabled").parent().addClass("disabled");
            }
        }
    }
}

