function refreshQuickNavigation(id) {
    jQuery.ajax({ url: '/Ajax2.ashx', success: function (html) { $('.productnavlist').html(html); }, data: 'id=' + id });
}


$.fn.extend({
	bindProductSearch: function (container) {
		$(this).bind('keyup', function () {

			if ($(this).val().length < 3)
				return;

			$.ajax({ url: '/AjaxSearchHandler.ashx', success: function (result) {
				var json = jQuery.parseJSON(result);

				var dataList = json.results;
				if (dataList.length != 0) {
					var html = '<ul class="dropdownSmaller searchresultlist">';
					$.each(dataList, function () {
						html += '<li><a title="' + this.text + '" href="' + this.path + '">';
						html += this.text;
						html += '</a></li>';
					});
					html += '</ul>';

					$(container).html(html);
					$(container).addClass("dropdownMenu").show();
				}
				else $(container).html("").hide();
			}, data: 'searchfield=' + $(this).val()
			});

		}).blur(function () {
			setTimeout(function () {
				$(container).fadeOut('fast', function () {
					$(container).html("").hide();
				});
				
			}, 100);

		});
	}
});
     
function CheckForEmptyDropdowns() {
    $("ul.dropdownSubmenu").each(function () {
        if ($(this).children().length == 0) {
            $(this).parent().hide();
        }
    });
}

function has(a, v) {
    for (i = 0; i < a.length; i++) {
        if (a[i] == v) return i;
    }
    return false;
}

var tertiaryMenuEntriesList = Array(20);
var tertiaryMenuEntriesOpened = [];
var tertiaryMenuEntriesTree = [];
var tertiaryMenuEntriesIndexInParentNode = [];
var defaultSubnavHeightBase;
var defaultSubnavHeightCurrent;
var tertiaryMenuLock = false;
var tertiaryMenuInnerAcitve = 0;
var tertiaryMainMenuSwitchLock = false;
var tertiarynMenuChangeTimeout;


$(document).ready(function () {

  /* Begin Dropdown Menu
  ----------------------------------------------------------------------------------------------------------------------*/
  CheckForEmptyDropdowns();

  $("ul.dropdownSubmenu").parent().append("<span></span>");
  $("div.dropdownMenu a").click(function () {
    DropdownClick($(this));
  });
  $("div.dropdownMenu span").click(function () {
    DropdownClick($(this));
  }).hover(function () {
    $(this).addClass("subhover");
  }, function () {
    $(this).removeClass("subhover");
  });
  /* End Dropdown Menu
  ----------------------------------------------------------------------------------------------------------------------*/

  // Thumb Navigation Hover Function
  $(".thumbslidebox li").hover(function () {
    $(this).find(".hv-content").show();
  }, function () {
    $(this).find(".hv-content").hide();
  });


  // Gallery Function 
  $(".glthumb li:first").addClass("active");
  $(".galcontent:first").show();
  $(".glthumb li").click(function () {
    $(".glthumb li").removeClass("active");
    $(this).addClass("active");
    $(".galcontent").hide();
    var activeTab = $(this).find("a").attr("rel");
    $(activeTab).show();
    return false;
  });

  $(".pronav a.pronavitem").click(function () {
    $(this).next(".dropbox").show();
  });

  $(".close a").click(function () {
    $(this).parents(".dropbox").hide();
  });


  $(".codetable-list tr").hover(function () {
    $(this).addClass("hover");
  }, function () {
    $(this).removeClass("hover");
  });

  $(".overview li").hover(function () {
    $(this).find(".productname").css({ visibility: "visible" });
  }, function () {
    $(this).find(".productname").css({ visibility: "hidden" });
  });

  $("#mainNavigation li").find("ul").parent("li").addClass("subnavigation");
  $("#mainNavigation li.subnavigation .mainEntry").toggle(function () {
    if (tertiaryMenuLock == false) {
      tertiaryMainMenuSwitchLock = true;
      var tmp = $("#mainNavigation").find(".subnavigation");
      $("#mainNavigation li").first().children("a.active").removeClass("active");
      $(tmp).find("a.active").removeClass("active");
      $(tmp).find("ul").hide();
      $(this).parents("#content").find(".subnav").show().height(defaultSubnavHeightBase);
      $(this).addClass("active");
      var tmp = $(this).parents("li.subnavigation").find("ul");
      $(tmp).show();
      $(tmp).find(".subnavigation").find("ul").hide();

      tertiaryMenuReset();
    }
  }, function () {
    if (tertiaryMenuLock == false) {
      $(this).removeClass("active");
    }
  });

  FormatTertiaryMenu();

  var fillTree = function (fromElement, start, parentId, tree, treeLength) {
    var newTree = [parentId].concat(tree);
    var newTreeLength = treeLength + 1;
    tertiaryMenuEntriesTree[parentId] = [];

    $(fromElement).children("ul > a > li").each(function (i) {
      var x = i + start;
      $(this).attr("pos", x);
      tertiaryMenuEntriesList[x] = this;
      tertiaryMenuEntriesIndexInParentNode[x] = i;
      for (var p = 0; p < treeLenght; p++) {
        tertiaryMenuEntriesTree[tree[p]].push(x);
      }
      fillTree(this, x << 6, x, newTree, newTreeLength);
    });
  };

  var i = 2;
  var elements = $("div#mainNavigation > ul.clearfix > li.subnavigation > ul");
  var I = 0;
  var L = elements.length;

  if (I != L) do {
    var list = elements[I++].childNodes;
    var ii = 0;
    var l = list.length;

    if (ii != l) do {
      var innerCurrent = list[ii++];
      $(innerCurrent).attr("pos", i);
      tertiaryMenuEntriesIndexInParentNode[i] = ii - 1;
      tertiaryMenuEntriesList[i] = innerCurrent;
      fillTree(innerCurrent, i << 6, i, [], i++);
    } while (ii != l);
  } while (I != L);

  // Page Corner Flip Function
  var background = $(".msg_block").css("background");
  $("#pageflip").hover(function () {
    //$('#pageflip').jsMovie('play');
    $(".msg_block").css("background-image", "none");
    $("#pageflip a img").attr("src", "../../../../../img/ecke3.gif");
    //        $("#pageflip img , .msg_block").stop()
    //			.animate({
    //			    width: '155px',
    //			    height: '155px'
    //			}, 500);
    //    }, function () {
    //        $("#pageflip img").stop()
    //			.animate({
    //			    width: '110px',
    //			    height: '110px'
    //			}, 180);
    //        $(".msg_block, .msg_block a").stop()
    //			.animate({
    //			    width: '110px',
    //			    height: '110px'
    //			}, 60);
  },
    function () {
      $(".msg_block").css("background", background);
      $("#pageflip a img").attr("src", "../../../../../img/ecke-teil1.gif");
    });

  var subnavHeight = $("#mainNavigation li ul").height() + 127;
  $(".subnav").css({ height: subnavHeight });
  defaultSubnavHeightBase = subnavHeight;
  //FormatBreadcrumb();
  OnCarouselClick();

  var target = $("div#mainNavigation > ul.clearfix > li.subnavigation").children("*[show=true]");
  $(target).parent().children("a").click();
  $(target).find("*[show=true]").parent().children("a").click();

  //$("div#mainNavigation > ul.clearfix > li.subnavigation").children("*[show=true]")

});

function sleep(milliseconds) {
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds) {
            break;
        }
   }
}

function DropdownClick(element) {
    $(element).parent().find("ul.dropdownSubmenu").show();
    $(element).parent().hover(function () {
    }, function () {
        $(element).parent().find("ul.dropdownSubmenu").hide();
    });
}

function OnCarouselClick() {
    if ($("#art-slider").length <= 0) {
        return false;
    }
    $("#art-slider .overview li a").click(function () {
        var enlargedImageContainer = $(".pro-sliderImageContainer");
        var mainImageOffset = $(".productpicblock").children("img").position();
        var clickedImage = $(this).children("img").clone();
        clickedImage.removeClass("auszPic");
        $(enlargedImageContainer).html("");
        $(enlargedImageContainer).css("position", "absolute");
        //Bugfix Container Positioning
        if ($(enlargedImageContainer).offset().left != ($(".productpicblock").children("img").offset().left + 30))
            $(enlargedImageContainer).offset({ left: mainImageOffset.left + 30, top: mainImageOffset.top + 330 });
        $(clickedImage).appendTo(".pro-sliderImageContainer");
        $(enlargedImageContainer).show();
    });
}

function FormatTertiaryMenu() {
    $(".subEntry").click(function () {
        tertiaryMenuChange($(this).parent());
    });
}

function tertiaryMenuReset() {
    if (tertiaryMenuLock == true) {
        clearTimeout(tertiarynMenuChangeTimeout);
        setTimeout(tertiaryMenuReset, 320);
    }
    else if (tertiaryMenuInnerAcitve != 0)
        setTimeout(tertiaryMenuReset, 180);
    else {
        for (var key in tertiaryMenuEntriesOpened) {
            var value = tertiaryMenuEntriesOpened[key];
            tertiaryMenuClose(value, 0);
        }
        tertiaryMenuEntriesOpened = [];

        setTimeout(function () {
            defaultSubnavHeightCurrent = defaultSubnavHeightBase;
            $(".subnav").height(defaultSubnavHeightCurrent);

            tertiaryMainMenuSwitchLock = false;
        }, 100);
    }
}

function tertiaryMenuChange(elementToChange) {
    if (tertiaryMenuLock == true || tertiaryMainMenuSwitchLock == true) {
        setTimeout(function () {
            tertiaryMenuChange(elementToChange);
        }, 300);
    }
    else {
        tertiaryMenuLock = true;
        var entryId = parseInt($(elementToChange).attr("pos"));
        var thisElement = tertiaryMenuEntriesOpened[entryId];

        var neededTree;
        if (has(tertiaryMenuEntriesOpened, entryId) !== false) {
            neededTree = tertiaryMenuEntriesTree[entryId];
        }
        else {
            neededTree = [entryId].concat(tertiaryMenuEntriesTree[entryId]);
        }

        for (var key in tertiaryMenuEntriesOpened) {
            var value = tertiaryMenuEntriesOpened[key];
            if (has(neededTree, value) === false)
                tertiaryMenuClose(value);
        }

        for (var key in neededTree) {
            var value = neededTree[key];
            if (has(tertiaryMenuEntriesOpened, value) === false)
                tertiaryMenuOpen(value);
        }

        tertiaryMenuEntriesOpened = neededTree;
        var tmp;
        tertiarynMenuChangeTimeout = setTimeout(tmp = function () {
            if (tertiaryMenuInnerAcitve != 0) tertiarynMenuChangeTimeout = setTimeout(tmp, 520);
            else tertiaryMenuLock = false;
        }, 300);
    }
}

function tertiaryMenuClose(entryId, ms) {
    tertiaryMenuInnerAcitve++;

    var elementToChange = tertiaryMenuEntriesList[entryId];

    var old = $(elementToChange).height();
    var elementListToChange = elementToChange.lastChild;
    if (ms == null) ms = 200;

    elementListToChange.style.display = "none";
    $(elementToChange).stop().animate({ height: "31px" }, ms, function () {
        if (has(tertiaryMenuEntriesOpened, parseInt($(elementToChange).attr("pos"))) === false)
            $(elementListToChange).css({ display: "none" });
        defaultSubnavHeightCurrent += ($(elementToChange).height() - old);
        $(".subnav").height(defaultSubnavHeightCurrent);
        tertiaryMenuInnerAcitve--;
    });
};

function tertiaryMenuOpen(entryId, ms) {
    tertiaryMenuInnerAcitve++;

    var elementToChange = tertiaryMenuEntriesList[entryId];
    var old = $(elementToChange).height();
    var elementListToChange = elementToChange.lastChild;
    if (ms == null) ms = 250;

    $(elementToChange).stop().animate({ height: (parseInt($(elementListToChange).height()) + 31) + "px" }, ms, function () {
        $(elementListToChange).css("display", "block");
        $(elementListToChange).css("left", 0);
        $(elementListToChange).css("top", 32 + ((tertiaryMenuEntriesIndexInParentNode[entryId] & 63) * 32));
        defaultSubnavHeightCurrent += ($(elementToChange).height() - old);
        $(".subnav").height(defaultSubnavHeightCurrent);
        tertiaryMenuInnerAcitve--;
    });
};

function DisablePostback() {
    return false;
}

function FormatBreadcrumb() {
    if ($(".productnav").length <= 0) {
        return false;
    }
    
    //Rechte äußere Position des Such-Feldes bestimmen
    var maxwidth = $(".productnav").width();
    var maxPos = $(".productnav").offset().left + maxwidth;

    var elements = new Array();
    $(".breadcrumbs").contents("div").children().each(function (index, value) {
        elements.push($(this));
    });

    var nextElements = MoveBreadcrumbItems(maxPos, elements, ".breadcrumbs2");
    if (nextElements.length > 0)
        var result = MoveBreadcrumbItems(maxPos, nextElements, ".breadcrumbs3");
}

function MoveBreadcrumbItems(maxPos, elements, controlIdentifierToMove) {
    //Alle Breadcrumbs in ein array verschieben
    var breadcrumbLinks = new Array();
    
    //Bestimmen der Position des aktuellen Breadcrumb und ggf. verschieben in das nächste div
    $(elements).each(function (index, value) {
        var tempPosRight = Math.round($(this).offset().left + $(this).width());
        if (tempPosRight >= maxPos) {
            for (i = index; i < elements.length; i++) {
                $(elements[i]).appendTo(controlIdentifierToMove);
                breadcrumbLinks.push(elements[i]);
            }
            return false;
        }
    });
    return breadcrumbLinks;
}

function SelectDropdown(element) {
    var text = $(element).text();
    var container = $(element).parents('.dropdownMenu');
    $(container).children('input').first().attr('value', text);
    $(container).children('a').first().text(text);
    $(element).parents("ul.dropdownSubmenu").hide();
}

function SetUsedSubmitButton(value) {
    $(".usedSubmitButton").attr('value', value);
    alert($(".usedSubmitButton").attr('value'));
    alert(value);
}

