$.extend($.expr[':'], {
  'containsi': function(elem, i, match, array)
  {
    return (elem.textContent || elem.innerText || '').toLowerCase()
    .indexOf((match[3] || "").toLowerCase()) >= 0;
  }
});

jQuery(document).ready(function($) {

  $(".filter_body  input:checked").each(function(event){
	  var filter_value  = $(this).parent().text(); //0,1mm
	  var filter_option = $(this).parents(".filter-wrapper").addClass("filter-i").index(); //2
	  //alert(filter_option);
      $(".space").filter(function() {
          return $(this).data('rawfilterdesc').toLowerCase() === filter_value.toLowerCase();
      }).addClass("found");
	  // $(".space:containsi('"+filter_value+"')").addClass("found");
  });

  var filter_i = $("div.filter-i").length;
  if (filter_i > 0) {
	  $(".itemlist2").each(function(event){
	      if(!$(this).hasClass('itemlist2_header')){
              var space_i = $(this).find(".space").length;
              if (space_i > 0) {
                  $(this).addClass("very-hidden");
                  $(this).parent().addClass("very-very-hidden");
                  var found_i = $(this).find(".space.found").length;
                  if (filter_i == found_i) {
                      $(this).parent().removeClass("very-very-hidden");
                      $(this).addClass("founded");
                  }
              }
          }
	  });

	$("span.no_of_var").each(function(event){
		$(this).text($(this).parents(".itemlist2_spacer").nextUntil(".has-variant").find(".itemlist2.founded").length);
	});
  }

  // Hoverintent für Shop-Menü
	$("#header_5 li.level_1").hoverIntent(function(f) {
  	$(this).toggleClass("hoverint");
	});

	// versieht Gadget_Divs mit has-/no-childs (ggf. für display:none oder margin: nu†zbar.)
  $("#gadget .row > div, #menu > div").each(function(e) {
    if ($(this).children().length > 0) {
      $(this).addClass("has-childs");
    } else {
      $(this).addClass("no-childs");
    }
  });
  $(".btn-favorite").on("click", function(c) {
    $(this).toggleClass("opened");
  });

  // Such-Icon im Header = klickbar machen
	$("#form_search button").on("click", function(c) {
  	$(this).parents("#form_search").submit();
	});

  // Such-Icon im Header = klickbar machen
	$(".col3 .fa-shopping-cart").on("click", function(c) {
  	$(this).parents("form").submit();
	});

	$(".cc_DE .is_variant").on("click", function(event) {
  	event.preventDefault();
  	var href = $(this).find("a.image").attr("href");
  	window.location.assign(href);
	});
	$(".is_variant .itemlist2_extended").on("click", function(event) {
  	event.preventDefault();
  	var href = $(this).parent(".itemlist2").find("a.image").attr("href");
  	window.location.assign(href);
	});



	// IMG Funktion aus Maul
	  $(".item_main_image").on("click", "a[data-open]", function(d) {
    var img2modalsrc = $(this).attr("data-open");
    var img2modal = '<img src="'+img2modalsrc+'" />';

    var img2thumbs = '<div class="modal_thumbs">';
        img2thumbs = img2thumbs + $(".item_images a[rev]").parent().html();
        img2thumbs = img2thumbs + '</div>';

    $("#myModalImage .modal-body").html(img2modal+img2thumbs);
  });

  $("#myModalImage").on("click", "a[rev]", function(d) {
    d.preventDefault();
    var img2mainsrc = $(this).attr("href");
    $("#myModalImage .modal-body > img").attr("src",img2mainsrc);
  });

  $(".item_images").on("click", "a[rev]", function(d) {
    d.preventDefault();
    var img2mainsrc = $(this).attr("rev");
    var img2maintarget = $(this).attr("href");
    var img2main = '<img src="'+img2mainsrc+'" />';

    $(".item_main_image_layer1 a").attr("data-open",img2maintarget);
    $(".item_main_image_layer1 a img").attr("src",img2mainsrc);
    $(".item_main_image_layer1 a img").attr("data-zoom-image",img2maintarget);
    $(".zoomWindow").css("background-image","url('"+img2maintarget+"')");

    /*
      $('img[data-zoom-image]').removeData('elevateZoom');//remove zoom instance from image
      $('.zoomContainer').remove();
      $("#zoom img").elevateZoom().promise().done(function(d) {
    */
  });

  var a_total_width = 0;
  var last_left = 0;
  $(".item_images a").each(function(e) {
    // alert($(this).width());
    a_total_width = $(this).outerWidth() + a_total_width;
    $(".item_images .scroll-area").css("width",a_total_width+"px");
  });
  if (a_total_width > $(".item_images").outerWidth()) {
    $(".item_images").addClass("show_buttons");
    // alert($(".item_images").outerWidth());
  }
  $(".item_images").on("click", "span.left", function(c) {
    $(".item_images .scroll-area").css("left","20px");
    last_left = 0;
  });
  $(".item_images").on("click", "span.right", function(c) {
    var left_px = a_total_width - $(".item_images").outerWidth() + 20;
    // alert('Atotal:'+a_total_width+' outer:'+$(".item_images").outerWidth() +' left:'+left_px);

    if (left_px > $(".item_images").outerWidth()) {
      // scrolle hälfte
      last_left = last_left + $(".item_images").outerWidth() - 118;
      if (last_left > left_px) {
        last_left = left_px;
      }
      $(".item_images .scroll-area").css("left","-"+last_left+"px");
    } else {
      // scrolle ganz
      $(".item_images .scroll-area").css("left","-"+left_px+"px");
    }

  });
  // IMG FUNKTION ENDE

  // ABFRAGE OB DOPPELTE TABS, WENN JA = ENTFERNEN
/*
  var last_name = '';
  $("ul.tab > li > a").each(function(e) {
    var this_name = $(this).text();
    if (last_name == this_name) {
      var prev_item = $(this).parent("li").prev("li");
      var prev_item_id = prev_item.attr("id");
      if(prev_item_id == 'tab1') {
        $("#tab2").addClass("tabon").removeClass("taboff");
        $("#tab_content2").addClass("show").removeClass("hide");
        $("#tab_content1").removeClass("show").addClass("hide");
      }
      prev_item.remove();
    }
    last_name = this_name;
  });  */


  /*$("ul.tab_2 li a, ul.tab li a").on("click", function(c) {
    c.preventDefault();
    var this_rel = $(this).attr("rel");
    $(this).parents("ul.tab_2, ul.tab").find("> li").removeClass("tabon").addClass("taboff");
    $(this).parent("li").addClass("tabon");

    //$(this).parents(".itemcard_bottom_fake").find("> div.row > div > div[id]").removeClass("show").addClass("hide");
    $(this).parents(".itemcard_bottom_fake").find("> div[id]").removeClass("show").addClass("hide");
    //$(this).parents(".itemcard_bottom_fake").find("> .row > div > div."+this_rel+", > .row > div > div#"+this_rel).removeClass("hide").addClass("show");
    $(this).parents(".itemcard_bottom_fake").find("> div."+this_rel+",> div#"+this_rel).removeClass("hide").addClass("show");
  });*/


  // view_switch LISTe/Kacheln
  $(".view_switch a").on("click", function(c) {
    c.preventDefault();
    $(".view_switch a").removeClass("active");
    $(this).addClass("active");
  });

  $(".view_switch a.switch2list").on("click", function(c) {
    $(".itemcard_list2").addClass("show_as_list");
  });
  $(".view_switch a.switch2block").on("click", function(c) {
    $(".itemcard_list2").removeClass("show_as_list");
  });


  // Grundlagen Box -> Links laden dynamisch Inhalte rein/nach (aus CMS ;-)
  $("#menu_0 a").on("click", function(event) {
    event.preventDefault();
    var target_href = $(this).prop("href");

    $("#ajax-content").load(target_href+ ' #content_1 > div', function() {
      // done
    });
  });

  // Varianten Dropdown -> on Change Variante laden
  $("#itemcard_right select").on('change', function (e) {
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    window.location = valueSelected;
  });

  // Google Maps im neuen Fenster öffnen
  $('a[href*="anfahrt"]').attr("target","_blank");


  // Bestellprozess verschönern
  $("table.cardform div.label, .pw-forgot div.label, .contactformular div.label, #form_user_order_3 div.label, #myModalRec div.label, #myModalRate div.label").removeClass("label").addClass("label_");
  $("table.cardform, .contactformular, #form_user_order_3, #myModalRec, #myModalRate").find("input.text, input.code, select, textarea").addClass("form-control");
  $("table.cardform, .contactformular, #form_user_order_3, #myModalRec, #myModalRate").find("input.text_error, input.code_error").addClass("form-control").css("border-color","#a94442").css("color","#a94442");
  $(".contactformular").prev("h3").addClass("h5 text-danger");
  $(".contactformular").prev(".successbox").addClass("h5 text-success");
  $(".contactformular").addClass("bordered-inputs").css("display","block").find("input#button").addClass("btn button_action btn-block");

  // CBs
  $("#input_is_company").wrap("<div class='checkbox'><label class='company_cb'></label></div>");
  var label_company = $("td.cardform_right label[for*='input_is_company']");
  $(".company_cb").append(label_company.text());
  label_company.remove();

  $("input#newsletter").wrap("<div class='checkbox'><label class='company_cb3'></label></div>");
  var label_newsletter = $(".cardform label[for*='newsletter']");
  $(".company_cb3").append(label_newsletter.text());
  label_newsletter.remove();

  $("input#input_shipping_is_not_invoice").wrap("<div class='checkbox'><label class='company_cb2'></label></div>");
  var label_shipping = $(".cardform label[for*='input_shipping_is_not_invoice']");
  $(".company_cb2").append(label_shipping.text());
  label_shipping.remove();

  $("input#input_agb_checked").wrap("<div class='checkbox agbs'><label class='company_cb2 '></label></div>");
  var label_agb = $("label[for*='input_agb_checked']");
  $(".company_cb2").append(label_agb.text());
  label_agb.remove();

  // USTID für AT Kunden verpflichtend machen!

  $(".btn-group-1 .basket_button_next.btn-2").on("click", function(c) {
    c.preventDefault();

    var proceed = true;
    /*
    var land  = $( "#input_country option:selected" ).val();
    var ustid = $("#input_vat_registration_no").val();
    var firma = $("#input_is_company").is(':checked') ? true : false;
    if (land == 'AT' && ustid == '' && firma == true) {
      proceed = false;
    }
    */
    if (proceed == true) {
      document.form_user_order.action='?shop_category=order&action=step2';
      document.form_user_order.submit();
    }
    if (proceed == false) {
      alert('Bitte geben Sie als österreichisches Unternehmen eine Umsatzsteuer-ID (USt-ID) ein.');
      $("#input_vat_registration_no").focus();
    }
  });

  $(".category_description_1").on("click",function(c) {
    $(this).toggleClass("no-max-height");
  });

  // Menü Toggle Butotn
  $(".pull-left2").on("click", function(e) {
    $("#header > .bordered").toggleClass("opened");
    $(this).toggleClass("opened");
  });

  /*
  $(".testberichte .collection_content.link").each(function(e) {
    var testbericht_href = $(this).find("a").attr("href");
    $(this).find("a").text("Zum Testbericht");
    $(this).prev().find("a").attr("href",testbericht_href).attr("target","_blank");
    $(this).prev().prev().find("a").attr("href",testbericht_href).attr("target","_blank");
  });
  $(".news_messe .collection_content.link").each(function(e) {
    var testbericht_href = $(this).find("a").attr("href");
    $(this).find("a").text("Zur Veranstalter-Website");
    $(this).prev().find("a").attr("href",testbericht_href).attr("target","_blank");
    $(this).prev().prev().find("a").attr("href",testbericht_href).attr("target","_blank");
  });
  */
  $(".btn-refresh").on("click", function(e) {
    e.preventDefault();
    $('#form_user_basket').submit();
  });

  $("#filters .filter_unset").parent(".filter-wrapper").addClass("with-padding-top");
  $("#filters .filter-wrapper .filter_headline").on("click", function(c) {
    $(this).parents(".filter-wrapper").toggleClass("opened");
    $(this).parents(".filter-wrapper").prevAll().removeClass("opened");
    $(this).parents(".filter-wrapper").nextAll().removeClass("opened");
  });
  /*
  $("#filters .filter-wrapper ul.filterlist").on("click", "div", function(event) {
      var checkBoxes = $(this).find('input[type*="checkbox"]');
    if (checkBoxes.prop("readonly") !== true) {
      checkBoxes.prop("checked", !checkBoxes.prop("checked"));
    }
  });
  $("#filters .filter-wrapper").on("click", "input", function(event) {
    event.preventDefault();
    var checkBoxes = $(this);
    checkBoxes.prop("checked", !checkBoxes.prop("checked"));
  });
  */
  $("#filters .filter-wrapper ul.filterlist").on("click", "div", function(event) {
    // $(this).find('input[type*="checkbox"]').trigger("dblclick");
  });
  // $(".filterlist").on("click", "label", function(event) {
  //   $(".filter-wrapper.opened").addClass("changed")
  // });


  $(".orderlist.show_as_list").removeClass("show_as_list");

  // Premium Partner Visible Hacks
  $("#input_country").on("change", function(event) {
    $("#input_premium_partner_id").parent().addClass("hidden").prev().addClass("hidden");
    $("#input_premium_partner_id .not-empty").removeClass("not-empty");

    var sel_val = $(this).find("option:selected").val();
    $("#input_premium_partner_id option:first-child").prop("selected", true);
    $("#input_premium_partner_id option:not(:first-child)").addClass("hidden");
    $("#input_premium_partner_id option[rev*='"+sel_val+"']").removeClass("hidden");

    $("#input_premium_partner_id option:not(:first-child):not('.hidden')").addClass("not-empty");

    $("#input_premium_partner_id .not-empty").parents(".input").removeClass("hidden").prev().removeClass("hidden");
  });
  $("#input_country").trigger("change");

  var ajax_country = $(".ajax_country").text();
  //alert(ajax_country);
  $('#input_country option[value*="'+ajax_country+'"]').attr("selected",true);
  $("#input_country").trigger("change");

  // NEU AH

  $(".itemcard_list2 .has-variant a").on("click", function(c) {
  	c.preventDefault();
  });

  $(".itemcard_list2").on("click", ".has-variant:not(.opened)", function(c) {
  	$(this).addClass("opened").nextUntil( ".has-variant" ).removeClass("hidden");
	});
  $(".itemcard_list2").on("click", ".has-variant.opened", function(c) {
  	$(this).removeClass("opened").nextUntil( ".has-variant" ).addClass("hidden");
	});
	/*
  $(".itemcard_list2").on("click", ".is_variant a", function(c) {
  	c.preventDefault();
	});
	$(".itemcard_list2 .is_variant").on("click", ":not(.basket)", function(c) {
  	alert('TEST');
  	var a_href = $(this).find("a.image").prop("href");
  	//window.location = a_href;
	}); */

	$("#header_2 a[target*='_blank']").attr("target","");

  $(".scroll-area a + a").each(function(e) {
    $this_rev = $(this).prop("rev");
    $prev_rev = $(this).prev().prop("rev");
    if ($this_rev == $prev_rev) {
      $(this).remove();
    }
  });
  //$(".itemcard_list2 > .itemlist2_spacer.is_variant:first-child").parent().find(".is_variant.hidden").removeClass("hidden");

  var filter  = 'false';
  $(".filterlist label.true").each( function(event) {
    filter = 'true';
  });
  if (filter == 'true') {
    $(".no_of_vars").remove();
    $(".itemcard_list2 > .hidden:not(.itemlist2_header_wrapper)").addClass("very-hidden");
  }
  $(".filterlist label.true").each( function(event) {
    filter = 'true';
    var label = $(this).text();
    $(".very-hidden .rel-container:contains('"+label+"')").parents(".very-hidden").removeClass("very-hidden");
  });



    $('.jumpmark').click(function (event) {
        scrolling($(this).attr('href'));
        event.preventDefault();
    });

    if ($('.shop_item_preview > .owl-carousel').length > 0) {
        $('.shop_item_preview > .owl-carousel').each(function(){
            $(this).owlCarousel({
                loop: true,
                margin: 40,
                autoplay: true,
                autoHeight: true,
                navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
                nav: true,
                autoplayHoverPause: true,
                items: 5,
                responsive: {
                    0: {
                        items: 1
                    },
                    767: {
                        items: 3
                    },
                    991: {
                        items: 4
                    },
                    1200: {
                        items: 5
                    }
                }
            });
        });
    }


    $('[data-toggle="tooltip"]').tooltip();


    if($('#sticky-tab').length > 0) {
        $('#sticky-tab ul > li').click(function (event) {
            scrollTab($(this).children('a').attr('href'));

            event.preventDefault();
        });

        stickyTab();
        $(window).scroll(stickyTab);
    }



    $(document).on('click','.slidecontent_headline',function () {
        var thisSlide = $(this);
        var active = $(this).hasClass('active');
        console.log(active);
        thisSlide.closest('.slide_container').prevAll().find('.slidecontent_content_container').slideUp('fast',
            function () {
                $(this).closest('.slidecontent').find('.slidecontent_headline').removeClass('active');
            });
        thisSlide.closest('.slide_container').nextAll().find('.slidecontent_content_container').slideUp('fast',
            function () {
                $(this).closest('.slidecontent').find('.slidecontent_headline').removeClass('active');
            });
        if(!active){
            thisSlide.next('.slidecontent_content_container').slideDown('fast',function () {
                thisSlide.addClass('active');
            });
        }else{
            thisSlide.next('.slidecontent_content_container').slideUp('fast',function () {
                thisSlide.removeClass('active');
            });
        }
    });

    $('.navbarToggle').click(function () {
        showMobileMenu();
    });

    $('.close_button_navigation_mobile,.overlay').click(function () {
        hideMobileMenu();
    });

    initScrolltopbutton($('#scrolltop_button'));

    if($(window).width() < 992){
        $('#header_5 li').each(function () {
            if($(this).children('ul').length > 0){
                $(this).addClass('hasChildren');
            }
        });


        $('#header_5 ul li > a').click(function (event) {
            var nextUl = $(this).next('ul');
            if (nextUl.length > 0) {
                if (nextUl.is(':visible')) {
                    nextUl.slideUp('fast');
                    $(this).removeClass('active_tree');
                    $(this).parent().removeClass('active_tree');
                    nextUl.find('ul').slideUp('fast');
                } else {
                    nextUl.slideDown('fast');
                    $(this).addClass('active_tree');
                    $(this).parent().addClass('active_tree');
                }
                event.preventDefault();
            }
        });
    }
});



function initScrolltopbutton(scrolltop) {
    if ($(window).scrollTop() > 0) {
        scrolltop.addClass('sticky');
        var scrolltopButtonBottom = scrolltop.offset().top + scrolltop.outerHeight();
    } else {
        scrolltop.removeClass('sticky');
    }

    $(window).scroll(function () {
        if ($(window).scrollTop() > 0) {
            scrolltop.addClass('sticky');
            var scrolltopButtonBottom = scrolltop.offset().top + scrolltop.outerHeight();
        } else {
            scrolltop.removeClass('sticky');
        }
    });

    scrolltop.click(function () {
        $('html,body').animate({
            scrollTop: 0
        }, 800);
    })
}

function showMobileMenu (){
    $('#header .bordered').fadeIn('fast');
    $('.overlay').fadeIn('fast');
}

function hideMobileMenu (){
    $('#header .bordered').fadeOut('fast');
    $('.overlay').fadeOut('fast');
}

function stickyTab() {
    if ($('#sticky-tab').size() == 0) return false;
    var element_to_stick = $('#sticky-tab');
    var heightTabnavi = element_to_stick.outerHeight();
    var widthTabnavi = element_to_stick.outerWidth();
    var window_top = $(window).scrollTop();
    var top_position = element_to_stick.offset().top;
    if (window_top > top_position) {
        if (!element_to_stick.hasClass('sticky')) {
            element_to_stick.addClass('sticky');
            element_to_stick.css('padding-top', heightTabnavi);
            element_to_stick.children('div').children('ul').css('width', widthTabnavi);
        }

        var window_top_with_navi = window_top + heightTabnavi + 2;

        element_to_stick.children('div').children('ul').children('li').each(function () {
            var thisTab = $(this);
            var curHref = $(this).children('a').attr('href');
            var offsetTopCurHref = $(curHref).offset().top;
            var offsetBottomCurHref = $(curHref).offset().top + $(curHref).outerHeight();
            if((window_top_with_navi > offsetTopCurHref) && (window_top_with_navi < offsetBottomCurHref)) {
                thisTab.prevAll().children('a').removeClass('active');
                thisTab.nextAll().children('a').removeClass('active');
                thisTab.children('a').removeClass('active').addClass('active');
            }
        })
    } else {
        if (element_to_stick.hasClass('sticky')) {
            element_to_stick.removeClass('sticky');
            element_to_stick.css('padding-top', '');
            element_to_stick.children('div').children('ul').css('width','');
        }
    }
}

function scrollTab(tabcontent_id) {
    var ziel = $(tabcontent_id);
    var top = ziel.offset().top;
    var heightTabnavi = $('#sticky-tab > div > ul').outerHeight();
    $('html,body').animate({
        scrollTop: top - heightTabnavi
    }, 800);
}

// scrolling top
/*$(function() {
  var hieghtThreshold = $("#content").offset().top;
  var hieghtThreshold_end  = $("#content").offset().top +$("#content").height() ;
  $(window).scroll(function() {
      var scroll = $(window).scrollTop();

      if (scroll >= hieghtThreshold) { // && scroll <=  hieghtThreshold_end ) {
          $("body, #header, #menu").addClass('scrolling-top');
      } else {
          $("body, #header, #menu").removeClass('scrolling-top');
      }
  });
});*/




function scrolling(tabcontent_id) {
    var ziel = $(tabcontent_id);
    var top = ziel.offset().top;
    var heightHeader = 20;
    var heightHeader = //$('#header').outerHeight();
    $('html,body').animate({
        scrollTop: top - heightHeader
    }, 800);
}

var filterChanged = false;
var changedFilterDiv;
var triggerReload = true;

$( document ).ready(function() {
    // $('.filter_refresh').on('click',function(){
    //     var link_string = '?reload_filter=true';
    //     $('[id*="'+$(this).attr('filter_data')+'"] input[type=checkbox]:checked').each(function(){
    //         link_string = link_string + $(this).attr('filter-data') + '=true';
    //     });
    //     $('[id*="'+$(this).attr('filter_data')+'"] input[type=checkbox]:not(:checked)').each(function(){
    //         link_string = link_string + $(this).attr('filter-data') + '=false';
    //     });
    //     window.location.href = link_string;
    // });

    $('ul.filterlist input').on('click', function() {
        // var link_string = '?reload_filter=true';
        // link_string = link_string + $(this).parent("ul.filterlist").attr("filter_data")
        // link_string = link_string + $(this).attr('filter-data') + '=true';
        // window.location.href = link_string;
        filterChanged = true;
        changedFilterDiv = $(this).closest(".filter_body");
    });

    $(document).mousemove(function(e){
        $(".filter-wrapper.opened .filter_body").each(function (i) {
            var offset = $(this).offset();
            var dimensions = { width : $(this).width() , height : $(this).height() };
            var divPos = {
                left: e.pageX - offset.left,
                top: e.pageY - offset.top
            };
            if (divPos.left < 0
                || divPos.top < 0
                || divPos.left > dimensions.width
                || divPos.top > dimensions.height) {
                if (filterChanged && triggerReload) {
                    triggerReload = false;
                    var link_string = '?reload_filter=true';
                    changedFilterDiv.find("input[type=checkbox]:checked").each(function(){
                        link_string = link_string + $(this).attr('filter-data') + '=true';
                    });
                    changedFilterDiv.find("input[type=checkbox]:not(:checked)").each(function(){
                        link_string = link_string + $(this).attr('filter-data') + '=false';
                    });
                    window.location.href = link_string;
                }
            }
        });
    });
});