
userAgent = window.navigator.userAgent;
browserVers = parseInt(userAgent.charAt(userAgent.indexOf("/")+1),10);

function newImage(arg) {
    if (document.images) {
        rslt = new Image();
        rslt.src = arg;
        return rslt;
    }
}


function newWin(name, url, width, height, args) {

    var popupurl = url;
    var newWin = new Object();

    newWin.args = args;
    newWin.url = url;
    newWin.name = name;
    newWin.width = width;
    newWin.height = height;

    if (document.layers) { // browser is NN
        newWin.left = window.screenX + ((window.outerWidth - newWin.width) / 2);
        newWin.top = window.screenY + ((window.outerHeight - newWin.height) / 2);
        var attr = 'screenX=' + newWin.left + ',screenY=' + newWin.top + ',resizable=yes,width=' + newWin.width + ',height=' + newWin.height + ',' + newWin.args;
    } else { // browser is MSIE
        newWin.left = (screen.width - newWin.width) / 2;
        newWin.top = (screen.height - newWin.height) / 2;
        var attr = 'left=' + newWin.left + ',top=' + newWin.top + ',resizable=yes,width=' + newWin.width + ',height=' + newWin.height + ',' + newWin.args;
    }
    newWin.win = window.open(newWin.url, newWin.name, attr);
    if ((!newWin.win) || (newWin.win.closed)) { // probably popup-blocker active
        popupblocker_alert();
        return;
    }
    newWin.win.opener = self;
    newWin.win.focus();
}

function changeBg(object, color) {
    object.style.backgroundColor = color;
}



/* Einfach mal warten - in milli sekunden */
function sleep(delay) {
    var start = new Date().getTime();
    while (new Date().getTime() < start + delay);
}



/* Dropdownmenu Shopnavigation, jquery */
var shopnav_hide_timeout;
var shopnav_show_timeout;
var active_object;

function show_shopnav() {

    $(".shopnav_layer").hide();
    if (typeof active_object == "object") {
        var layername = "#" + active_object.id + "_layer";
        var offset = $(active_object).position();
        var left = offset.left;
        var tablewidth = $(active_object).parent("ul").children("li:last").position().left + $(active_object).parent("ul").children("li:last").outerWidth();
        var layerwidth = $(layername).outerWidth();

        if (left + layerwidth > tablewidth) {
            $(layername).css({
                'right': -1
            });
        }else{
            $(layername).css({
                'left': -1
            });
        }

        $(layername).css({
            'top': 25 // = hoehe des li's
        });

        $(layername).show();
    }
}

function hide_shopnav() {
    if (typeof active_object == "object") {
        var layername = "#" + active_object.id + "_layer";
        $(layername).hide();

        active_object=undefined;
    }
}


$(document).ready(function() {

    /* Dropdownmenu Shopnavigation */
    if ($('ul#shopnav_row1 > li, ul#shopnav_row2 > li')) {
        $('ul#shopnav_row1 > li, ul#shopnav_row2 > li').mouseenter(function() {

            active_object = this;

            //Inaktiver Tab
            if ($(active_object).hasClass('tab_not_active')) {

                $(active_object).css('background-image', 'none');
                $(active_object).css('z-index', '999');

            }

            $(active_object).css('background-color', '#fff');

            //shadow_buster anzeigen (versteckt den Schatten unterhalb des Buttons)
            if($(".shopnav_layer", active_object).length > 0){
                    $("._shadow_buster", active_object).css('display', 'block');
            }

            //Flyout anzeigen
            show_shopnav();

        }).mouseleave(function() {

            //Inaktiver Tab
            if ($(active_object).hasClass('tab_not_active')) {
                bg_name = "row_grey_center.jpg";

                $(active_object).css('background-image', 'url(' + dtimg + bg_name + ')');
                $(active_object).css('z-index', '1');
            }else{
                //Aktiver Tab
                $(active_object).css('background-color', '#E6E5E7');
            }

            //shadow_buster verstecken
            $("._shadow_buster", active_object).css('display', 'none');

            //Flyout verstecken
            hide_shopnav();
        });
    }

    if ($('.shopnav_layer')) {
        //Bei verlassen des Flyouts
        $('.shopnav_layer').mouseleave(function() {

            //Inaktiver Tab
            if ($(active_object).hasClass('tab_not_active')) {
                bg_name = "row_grey_center.jpg";

                $(active_object).css('background-image', 'url(' + dtimg + bg_name + ')');
                $(active_object).css('z-index', '1');
            }else{
                $(active_object).css('background-color', '#E6E5E7');
            }

            //shadow_buster verstecken
            $("._shadow_buster", active_object).css('display', 'none');

            //Flyout verstecken
            hide_shopnav();

        }).mouseenter(function() {

        });
    }

    /* Produkt-Karussell */

        $('.jcarousel-skin-v1').jcarousel({
            scroll: 4,
            animation: 1000
        });

        $('.jcarousel-skin-v1wide').jcarousel({
            scroll: 5,
            animation: 1000
        });

        //zueltzt gesehen, ganze breite
        $('.jcarousel-skin-v1extra-wide').jcarousel({
            scroll: 15,
            animation: 1000
        });
        
        //zuletzt gesehen mit linker navigation
        $('.jcarousel-skin-v3-wide').jcarousel({
            scroll: 12,
            animation: 1000
        });
        
        //zuletzt gesehen mit linker und rechter navigation
        $('.jcarousel-skin-v3-small').jcarousel({
            scroll: 8,
            animation: 1000
        });

        $('.jcarousel-skin-v1full').jcarousel({
            scroll: 6,
            animation: 1000
        });

        $('.jcarousel-skin-v1-marke').jcarousel({
            scroll: 5,
            animation: 0,
            auto: 5,
            wrap: "both"
        });

        $('.jcarousel-skin-v1full-marke').jcarousel({
            scroll: 7,
            animation: 0,
            auto: 6,
            wrap: "both"
        });

        //Neue Produktwelten 2011
        //Mit dynamischem Laden der Bilder, Daten kommen aus Tag Attr. data-carousel-items
        jQuery('._jcarousel-skin-v2full-marke').each(function(index, element) {
            var list = jQuery(element);

            var json_carousel_items = list.attr('data-carousel-items');
            if (json_carousel_items) {
                var carousel_itemList = eval(json_carousel_items);

                list.jcarousel({
                    scroll: 5,
                    auto: 5,
                    animation : "slow",
                    size: carousel_itemList.length,
                    itemLoadCallback: {onBeforeAnimation: function(carousel, state) {
                        for (var i = carousel.first; i <= carousel.last; i++) {
                            // Auslassen schon im DOM bestehender Items
                            if (carousel.has(i)) {
                                continue;
                            }

                            if (i > carousel_itemList.length) {
                                break;
                            }

                            carousel.add(i, carousel_itemList[i-1]);
                        }
                    }},
                    itemVisibleInCallback: {onAfterAnimation: function(carousel, state) {
                        // load hover on new dom items
                        list.find('.jcarousel-item')
                            .mouseover(function(){ $(this).children('.produkt').show(); })
                            .mouseout( function(){ $(this).children('.produkt').hide(); })
                        ;
                    }}
                });
            }

        });

        $('.produktCarousel').show();

        //Eingeklappte Navigation in der linken Spalte
        //Gib mir alle leftnav_sections, die abgeschnitten werden sollen
        var leftNav = jQuery("._activate_leftnav_folding[data-hide-entries]");

        jQuery.each(leftNav, function(index, value){

            //wieviele Elemente sollen angezeigt werden?
            var numer_of_elements = jQuery(value).attr("data-hide-entries");

            //Übersetzung der Buttons als JSON Object
            var translation = jQuery.parseJSON(jQuery(this).attr("data-hide-entries-translation"));

            //Wieviele Elemente gibt es insgesamt
            var item_count = jQuery(value).children(".leftnav_item").size();
            if(item_count > numer_of_elements){
                var items = jQuery(value).children(".leftnav_item");
                jQuery.each(items, function(item_index, item){
                    if(item_index > numer_of_elements){
                        jQuery(item).css("display", "none");
                    }
                });
                //Das zweite Element ist sicher ein Link mit CSS Auszeichnung...
                var cssclass = jQuery("a", items[2]).attr("class");
                //erweitern des DOM-Objects leftnav_section um den mehr/weniger-Link
                jQuery(value).append("<div class='hpad3'><a href='javascript:void(0)' class='"+cssclass+" _showall'>"+translation.more+" ("+(item_count-numer_of_elements-1)+")<span style='display:none'>&nbsp;>></span></a></div>");
                jQuery(value).append("<div class='hpad3'><a href='javascript:void(0)'  style='display:none' class='"+cssclass+" _hideall'>"+translation.less+" <span style='display:none'>&nbsp;>></span></a></div>");

            }
        });

        jQuery("._activate_leftnav_folding ._showall").click(function(){
           //Alle Elemente anzeigen
           jQuery(this).parents("._activate_leftnav_folding").children(".leftnav_item").show(100);
           //Button toggle
           jQuery(this).hide().parents("._activate_leftnav_folding").children("div").children("._hideall").show();
        });

        jQuery("._activate_leftnav_folding ._hideall,._activate_leftnav_folding ._showall,").mouseenter(function(){
            jQuery(this).children("span").show();
        });

        jQuery("._activate_leftnav_folding ._hideall,._activate_leftnav_folding ._showall,").mouseout(function(){
            jQuery(this).children("span").hide();
        });

        jQuery("._activate_leftnav_folding ._hideall").click(function(){
           //Button toggle
           jQuery(this).hide().parents("._activate_leftnav_folding").children("div").children("._showall").show();

           var items = jQuery(this).parents("._activate_leftnav_folding").children(".leftnav_item");
           var numer_of_elements = jQuery(this).parents("._activate_leftnav_folding").attr("data-hide-entries");
           jQuery.each(items, function(item_index, item){
                //Elemnte ausblenden, ab Index = numer_of_elements
                if(item_index > numer_of_elements){
                    jQuery(item).hide(100);
                }
            });
        });

        // Hauptteaser Produktwelten 2011
        jQuery('._image_slideshow').easySlider({
            controlsShow: true,
            auto: true,
            continuous: true,
            numeric: true,
            speed: 1800,
            pause: 5000,
            numericId: "numcontrol"
        });


        // Produktdetail switchen des MainImage nach Klick auf Thumbnail
        jQuery('._detail-bildansichten a').click(function(){
            var detailImg = new Image();
            detailImg.src = jQuery(this).attr("data-image");
            jQuery("._detail-bild #main-image").attr("src", detailImg.src);

            var detailLink = jQuery(this).attr("data-link");
            var detailImgA = jQuery("._detail-bild a");

            detailImgA.attr({ href : detailLink });
            detailImgA.click(function(){

                newWin('detailpopup', detailLink, 755, 660);
                return false;

            });
            jQuery("._detail-bildansichten").removeClass('aktiv').addClass('inaktiv');
            jQuery(this).parent("._detail-bildansichten").removeClass('inaktiv').addClass('aktiv');

            return false;
        });

});



/*
    SelectorLayer
        der Komplette Layer
    SelectorMask
        Hintergrund
    SelectorHeadline
        Kopfzeile oder Schliessen-Bereich (SelectorLayer, wenn nicht angegeben)
*/
function NwsShowLayer(params) {

     if ( !params.headline ) {
        params.headline = params.layer;
    }

    var maskW  = $(window).width();
    var maskH  = $(document).height();
    var winW   = $(window).width();
    var winH   = $(window).height();
    var layerW = $(params.layer).width();
    var layerH = $(params.layer).height();

    $(params.mask).css({'width':maskW,'height':maskH});
    $(params.mask).fadeIn(1000);
    $(params.mask).fadeTo('slow', 0.8);

    if ( params.left ) {
        $(params.layer).css('left', params.left );
    }
    else if ( params.right ) {
        $(params.layer).css('left', winW - layerW - params.right );
    }
    else {
        $(params.layer).css('left', winW / 2 - layerW / 2);
    }

    if ( params.top ) {
        $(params.layer).css('top', params.top);
    }
    else if ( params.bottom ) {
        $(params.layer).css('top',  winH - layerH - params.bottom );
    }
    else {
        $(params.layer).css('top',  winH / 2 - layerH / 2);
    }

    $(params.layer).fadeIn(2000);

    $(params.headline).click(function(){
        $(params.mask).hide();
        $(params.layer).hide();
    });

    $(params.mask).click(function(){
        $(params.mask).hide();
        $(params.layer).hide();
    });

}


/* Autocomplete */

$.widget("custom.catcomplete", $.ui.autocomplete, {
    _renderMenu: function(ul, items) {
        var self = this;

        /* Kommentar... */
        var input = $(this.element[0]);
        if (input.hasClass('_on_autocomplete_set_width')) {
            ul.addClass('_ul_on_autocomplete_set_width');
        }

        var currentCategory = "";
        $.each(items, function(index, item) {
            if (item.category != currentCategory) {
                ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
                currentCategory = item.category;
            }
            self._renderItem(ul, item);
        });
    },
    _renderItem: function(ul, item) {
        if (item.mainkat) {
            return $("<li></li>").data("item.autocomplete", item).append("<a class='clearfix'><span class='ui-autocomplete-label'>" + item.label + "</span><span class='ui-autocomplete-mainkat'>" + item.mainkat + "</span></a>").appendTo(ul);
        } else {
            return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
        }
    }
});

