/*
*   Start xp24 
*/

(function($){
    $(document).ready(function() {
        
        //$('a.checkout, a.login, a.account').checkout({'viewport': $.controller.ajax_login,'register':$.controller.register,'checkout':$.controller.checkout});
        
        /*if ($.browser.webkit) {
            //alert("this is webkit!"); //Safari, Chrome, Mac Safari
        } 
        if ($.browser.msie) {
            //alert("ich bin ein IE!");
                                    
        }
        if ($.browser.msie && parseInt($.browser.version) == 7){                                       
            $(function() {
                var zIndexNumber = 1000;
                $('div').each(function() {
                    $(this).css('zIndex', zIndexNumber);
                    zIndexNumber -= 10;
                });
            });    
        } 
        if ($.browser.mozilla) {
            //alert("ich bin ein Mozilla!");           
        }*/
        // footer menu language color
        
        // indexierung IE7 xp24
        if ($.browser.msie && parseInt($.browser.version) == 7){                                       
            $(function() {
                var zIndexNumber = 1000;
                $('div').each(function() {
                    $(this).css('zIndex', zIndexNumber);
                    zIndexNumber -= 1;
                });
            });    
        }; 
        
        //AJAX basket        
        $('div.ajax_basket').live('click',function() {
            if($('.ajax_basket_result').hasClass('active')) {
                $('.ajax_basket_result').removeClass('active').slideToggle('fast');
            } else {
                $.basket.getBasket();
            }
        }); 
        
        //Register Validation
            $('.register .required:input').validate();
            
            if($("#register_personal_customer_type").val()=="private") {
                $('.register .company_informations').hide();
            }
            
            if($("#register_personal_skipLogin").is(':checked')) {
                $('.register .fade_password, .register p.description, #birthdate').hide();
            }
            
            $("#register_personal_customer_type").change(function() {
                if($(this).val() == 'buisness') {
                    $('.register .company_informations').slideDown();
                } else {
                    $('.register .company_informations').slideUp();
                }
            });
            
            if(!$("#register_billing_shippingAddress").is(':checked')) {
                if(!$('.register').hasClass('change_shipping')) {
                    $('.register .alternative_shipping').hide();
                }
            }
            
            $('#register_billing_shippingAddress').click(function() {
                if(!$(this).is(':checked')) {
                    $('.register .alternative_shipping').slideUp();
                } else {
                    $('.register .alternative_shipping').slideDown();
                }
            });
            
            $('#register_personal_skipLogin').click(function() {
                if($(this).is(':checked')) {
                    $('.register .fade_password, .register p.description, #birthdate').slideUp();
                } else {
                    $('.register .fade_password, .register p.description, #birthdate').slideDown();
                }
            });
        
        // Tooltip xp24
        $("#artattr .tipp").tooltip({ position: "top right", opacity: 1});
        // Uniform checkboxes, radiobuttons, input
        $("input, textarea, select").uniform();
        // Tabs Login Seite
        $.tabNavi = $('#login_tabs').tabs();
        // Reflektion
        $("img.reflect").reflect({/* Put custom options here */});
        // Rating Stars
        $("#stars-wrapper").stars({
            inputType: "select",
            /*captionEl: $("#stars-wrapper-cap"),*/
            split: 2,
            cancelShow: false
        });
        // Rating Stars ENDE
        
        $("#buybox .thumb_box a").click(function(e){
            $(this).parent().parent().find("span").removeClass("active");                        
            $(this).parent().addClass("active");                        
        });
        
        //Use a lightbox instead of a zoom
        if(typeof(useZoom) != 'undefined' && useZoom == '0') {
            $("[rel^='lightbox']").slimbox();
            $('div.thumb_box a').bind('click', function(event) {
                event.preventDefault();
                $('a#zoom1').hide().attr('href', $(this).attr('href')).children().attr('src', $(this).attr('rev'));
                $('a#zoom1').fadeIn('slow');
                return false;
            });
        } 
        
        $('#searchfield').css({ 'text-align':'center','text-transform':'uppercase' }).val('Produktfinder');

        
        /* ausblenden ajaxbasket bei bg click */
        $('.ajax_basket_result').live('mouseenter', function(e) {
            $('.ajax_basket_background').die("click");                    
        });

        $('.ajax_basket_result').live('mouseleave', function(e) {
            $('.ajax_basket_background').live( "click", function(event){
                if($('.ajax_basket_result').hasClass('active')){
                    $('.ajax_basket_result').removeClass('active').slideUp('fast',function(){
                        $('.ajax_basket_background').fadeOut('fast');
                    });
                }   
            });             
        });

        $('.ajax_basket_middle a.button-right').live( "click", function(event){
            $('.ajax_basket_result').removeClass('active').slideUp('fast',function(){
                $('.ajax_basket_background').fadeOut('fast');
            });
        });
 
        // Cat Text
        $('.slideText').catTextSlide();
        
        // detail buyboy dropdown 
        $(".dropdownbox .clickhaendler:first").click(function() {
                if ($(".dropdownbox div.container:last").is(":hidden")){
                    if ($(".dropdownbox .clickhaendler:first").hasClass('active') == true){
                        $(".dropdownbox div.container:first").slideToggle("slow", function() {
                            $(".dropdownbox .clickhaendler").removeClass('active');
                        });
                        
                    }else{
                        $(".dropdownbox .clickhaendler").removeClass('active');
                        $(".dropdownbox .clickhaendler:first").addClass('active');
                        $(".dropdownbox div.container:first").slideToggle("slow");    
                    }                   
                }else{
                    $(".dropdownbox div.container:last").slideToggle("slow", function() {
                        $(".dropdownbox .clickhaendler").removeClass('active');
                        $(".dropdownbox .clickhaendler:first").addClass('active');
                        $(".dropdownbox div.container:first").slideToggle("slow");                        
                    });    
                };
            });
            
            $(".dropdownbox .clickhaendler:last").click(function () {
                if ($(".dropdownbox div.container:first").is(":hidden")){
                    if ($(".dropdownbox .clickhaendler:last").hasClass('active') == true){
                        $(".dropdownbox div.container:last").slideToggle("slow", function() {
                            $(".dropdownbox .clickhaendler").removeClass('active');
                        });
                        
                    }else{
                        $(".dropdownbox .clickhaendler").removeClass('active');
                        $(".dropdownbox .clickhaendler:last").addClass('active');
                        $(".dropdownbox div.container:last").slideToggle("slow");    
                    }                                       
                }else{
                    $(".dropdownbox div.container:first").slideToggle("slow", function() {
                        $(".dropdownbox .clickhaendler").removeClass('active');
                        $(".dropdownbox .clickhaendler:last").addClass('active');
                        $(".dropdownbox div.container:last").slideToggle("slow");                        
                    });    
                };
            });
            
            $(".dropdownbox div.container").click(function () {
                $(".dropdownbox div.container").slideUp("slow", function(){
                    $(".dropdownbox .clickhaendler").removeClass('active');
                });    
            });
            
        $.ajax({
            'dataType': 'jsonp',
            'beforeSend': function() {
                $.loadingIndicatorXP24aktion.open();
                $('#actionImage').fadeOut('slow').hide();
            },
            'url': 'https://www.smoothy.de/FrontActions/ajaxActionsSlideItem',
            'success': function (result) {
                $.loadingIndicatorXP24aktion.close();
                $('.item_cont').append(result);                       
            }
        });
        
        $.ajax({
            'dataType': 'jsonp',
            'beforeSend': function() {
                //$.loadingIndicatorXP24aktion.open();
                $('#actionImage').fadeOut('slow').hide();
            },
            'url': 'https://www.smoothy.de/FrontActions/ajaxActionsWelten',
            'success': function (result) {
                //$.loadingIndicatorXP24aktion.close();
                $('.promotion').append(result);                       
            }
        });
        
    });
})(jQuery);
/*
*   ToggleMenue 
*   @ xp24 2011 - www.xp24.biz 
*/
(function($){
    $.fn.toggleMenue=function(){
        var obj = $(this);
        if(!obj.length) return;
        $(obj).find('ul ul').hide();
        $(obj).find('ul ul ul').hide();
        $(this).find('span.level0').each(function(index){
           /* $(this).find('.schein').removeClass('active');*/
            $(this).bind({
                click: function(){
                    var button = $(this);
                    if($(button).hasClass('current') != true){
                        var level_2=$('.level_2:visible').length;
                        var level_1=$('.level_1:visible').length;
                        if(level_2 >= 1){
                            var block=$('.level_2:visible');
                            $(block).slideUp(300,function(){
                                if(level_1 >= 1){ 
                                    var block=$('.level_1:visible');
                                    $(block).slideUp(300,function(){
                                        $(block).parent().find('.current').removeClass('current');
                                        $(block).parent().find('.active').removeClass('active');
                                        $(button).parent().find('ul.level_1').slideDown(500).show(); /* .css({'z-index':'30000'}) */
                                        $(button).addClass("current").addClass("active");
                                    });                        
                                }else{
                                    $(block).parent().find('.current').removeClass('current');
                                    $(button).parent().find('ul.level_1').slideDown(500).show();
                                }
                            });
                        }else if(level_1 >= 1){ 
                            var block=$('.level_1:visible');
                            $(block).slideUp(300,function(){
                                $(block).parent().find('.current').removeClass('current');
                                $(block).parent().find('.active').removeClass('active');
                                $(button).parent().find('ul.level_1').slideDown(500).show();
                                $(button).addClass("current").addClass("active");
                                
                            });                        
                        }else{
                            $(button).addClass("current");
                            $(button).addClass("active");
                            $(button).parent().find('ul.level_1').slideDown(400).show();                        
                        }
                    }else{
                        var level_2=$('.level_2:visible').length;
                        var level_1=$('.level_1:visible').length;
                        if(level_2 >= 1){
                            var block=$('.level_2:visible');
                            if($(button).hasClass('current') == true){
                                $(block).slideUp(300,function(){
                                    $(block).parent().find('.current').removeClass('current');
                                    $(block).parent().find('.active').removeClass('active');
                                });
                            }
                        }else if(level_1 >= 1){ 
                            var block=$('.level_1:visible');
                            $(block).slideUp(300,function(){
                                $(block).parent().find('.current').removeClass('current');
                                $(block).parent().find('.active').removeClass('active');
                            });                        
                        }
                    }
                    if(!button.parent().hasClass('active')){
                        $(button).addClass("current").addClass("active");        
                    }                  
                }
            })
        });
        $(this).find('span.imagebox').each(function(index){
            $(this).bind({
                click: function(){
                    var button = $(this);
                    if($(button).hasClass('current') != true){
                        var level_2=$('.level_2:visible').length;
                        if(level_2 >= 1){
                            var block=$('.level_2:visible');
                            $(block).slideUp(300,function(){
                                $(block).parent().parent().find('.current').removeClass('current');
                                $(block).parent().parent().find('.active').removeClass('active');
                                $(button).parent().parent().find('ul.level_2').slideDown(500).show();
                                $(button).parent().addClass("current");
                                $(button).parent().addClass("active");
                                $(button).addClass("current");
                                $(button).addClass("active");
                            });
                        }else{
                            $(button).addClass("current");
                            $(button).addClass("active");
                            $(button).parent().addClass("current");
                            $(button).parent().addClass("active");
                            //$(button).addClass("current");
                            $(button).parent().parent().find('ul.level_2').slideDown(400).show();                        
                        }
                    }else{
                        var level_2=$('.level_2:visible').length;
                        if(level_2 >= 1){
                            var block=$('.level_2:visible');
                            $(block).slideUp(300,function(){
                                $(block).parent().find('.current').removeClass('current');
                                $(block).parent().find('.active').removeClass('active');
                            });                        
                        }
                    }                  
                }
            })
        });
        $(this).find('.level_2 .artimagelink').each(function(index){
            $(this).bind({
                click: function(){
                    var button = $(this);
                    var block=$('.level_2:visible');
                    $(block).slideUp(300,function(){
                        var block=$('.level_1:visible');
                        $(block).slideUp(300,function(){
                            $(block).parent().find('.current').removeClass('current');
                            $(block).parent().find('.active').removeClass('active');
                            $(button).parent().find('ul.level_1').slideDown(500).show();
                        });
                    });
                }
            })
        });
        $('#header,#content,#footer').click(function(){
            $(obj).toggleFadeOut();                                  
        });          
    };
    $.fn.toggleFadeOut=function(){
        $(this).find('ul ul ul').each(function(index){
            $(this).slideUp(300).hide();                
        });
        $(this).find('ul ul').each(function(index){
            $(this).slideUp(300).hide();                            
        });
        $(this).find('ul span.level0').each(function(index){
            $(this).removeClass('current');    
            if(!$(this).parent().hasClass('active')){
                $(this).removeClass('active');
            }    
        });
        $(this).find('ul.level1').each(function(index){
            $(this).removeClass('active');
        });
        $(this).find('ul span.level2').each(function(index){
            $(this).removeClass('active');
        });
    }    
})(jQuery);

/*
*   xp24 - Marco Thrum 2011
*   automatisches background image nach attr rel in subnav
*   $('.catuebersicht').backgroundImage('catbox','boximage','catboxen');
*   $('.catuebersicht').backgroundImage(urlpath,elternelement,container für image,ordner der images); 
*/
(function($){
    $.fn.subnavImage=function(urlpath,container,imagecontainer,imageordner){
        $(document).ready(function() {
            $(this).find('span.'+imagecontainer).each(function(index){
                thisimageid=$(this).attr('rel');
                $(this).css({'background':'url('+urlpath+'/images/'+imageordner+'/'+thisimageid+'.png)','background-repeat':'no-repeat'});
            });
        });
    }
})(jQuery);

/**
 * Loading Indicator Plugin
 * for Shopware
 *
 * Shopware AG (c) 2010
 */
(function($) {
    
    $.loadingIndicatorXP24 = {
    
        config: {
            'overlay': '#lbOverlay',
            'overlayOpacity': 0.6,
            'hideOverlayAfterClose': false,
            'loadingClass': 'loadingXP',
            'loadingText': 'Ihr Warenkorb wird aktualisiert ... ',
            'animationSpeed': 500,
            'additionalCSS': {},
            'bindEvent': false,
            '_loader': null
        },
        
        open: function(settings) {
            
            // settings
            if (settings) { $.extend($.loadingIndicatorXP24.config, settings); }
        
            // Create loader
            $.loadingIndicatorXP24.config._loader = $('<div>', {
                'class': 'loadingXPSliderBasket'
            }).hide().appendTo($(document.body));
            
            var height = $.loadingIndicatorXP24.config._loader.height(), width = $.loadingIndicatorXP24.config._loader.width();
            
            $.loadingIndicatorXP24.config._loader.css({
                'marginTop':  -(height/2) +'px',
                'marginLeft': -(width/2) + 'px'
            });
            
            // Add additional css if passed
            if(!$.isEmptyObject($.loadingIndicatorXP24.config.additionalCSS)) {
                $.loadingIndicatorXP24.config._loader.css($.loadingIndicatorXP24.config.additionalCSS);
            }
            
            // Overlay handling
            if($.loadingIndicatorXP24.config.hideOverlayAfterClose === true) {
                $($.loadingIndicatorXP24.config.overlay).fadeTo($.loadingIndicatorXP24.config.animationSpeed, $.loadingIndicatorXP24.config.overlayOpacity);
            }
            if($.loadingIndicatorXP24.config.bindEvent === true) {
                $($.loadingIndicatorXP24.config.overlay).css({'cursor': 'pointer'}).bind('click', function() {
                    $.loadingIndicatorXP24.close();
                });
            } else {
                $($.loadingIndicatorXP24.config.overlay).css({'cursor': 'default'});
            }
            if($.browser.msie && parseInt($.browser.version, 10) == 6) {
                $.ie6fix.open($.loadingIndicatorXP24.config._loader);
            } else {
                $.loadingIndicatorXP24.config._loader.fadeIn($.loadingIndicatorXP24.config.animationSpeed);
            }
            
        },
        
        close: function() {
            if($.loadingIndicatorXP24.config._loader) {
                $($.loadingIndicatorXP24.config.overlay).fadeOut($.loadingIndicatorXP24.config.animationSpeed);
                if($.browser.msie && parseInt($.browser.version, 10) == 6) {
                    $.ie6fix.close($.loadingIndicatorXP24.config._loader);
                } else {
                    $.loadingIndicatorXP24.config._loader.animate({
                        'opacity': 0
                    }, $.loadingIndicatorXP24.config.animationSpeed, function() {
                        $.loadingIndicatorXP24.config._loader.remove();
                    });
                }
            }
        }
    };
    
})(jQuery);

(function($) {
    
    $.loadingIndicatorXP24aktion = {
    
        config: {
            'overlay': '#lbOverlay',
            'overlayOpacity': 0.6,
            'hideOverlayAfterClose': false,
            'loadingClass': 'loadingXPSlider',
            'loadingText': 'Daten werden aktualisiert ... ',
            'animationSpeed': 500,
            'additionalCSS': {},
            'bindEvent': false,
            '_loader': null
        },
        
        open: function(settings) {
            
            // settings
            if (settings) { $.extend($.loadingIndicatorXP24aktion.config, settings); }
        
            // Create loader
            $.loadingIndicatorXP24.config._loader = $('<div>', {
                //'class': $.loadingIndicatorXP24.config.loadingClass
                'class': 'loadingXPSlider'
            }).hide().prependTo($('#aktionen_home'));
            
            var height = $.loadingIndicatorXP24.config._loader.height(), width = $.loadingIndicatorXP24.config._loader.width();

            // Add additional css if passed
            if(!$.isEmptyObject($.loadingIndicatorXP24.config.additionalCSS)) {
                $.loadingIndicatorXP24.config._loader.css($.loadingIndicatorXP24.config.additionalCSS);
            }
            
            // Overlay handling
            if($.loadingIndicatorXP24.config.hideOverlayAfterClose === true) {
                $($.loadingIndicatorXP24.config.overlay).fadeTo($.loadingIndicatorXP24.config.animationSpeed, $.loadingIndicatorXP24.config.overlayOpacity);
            }
            if($.loadingIndicatorXP24.config.bindEvent === true) {
                $($.loadingIndicatorXP24.config.overlay).css({'cursor': 'pointer'}).bind('click', function() {
                    $.loadingIndicatorXP24.close();
                });
            } else {
                $($.loadingIndicatorXP24.config.overlay).css({'cursor': 'default'});
            }
            if($.browser.msie && parseInt($.browser.version, 10) == 6) {
                $.ie6fix.open($.loadingIndicatorXP24.config._loader);
            } else {
                $.loadingIndicatorXP24.config._loader.fadeIn($.loadingIndicatorXP24.config.animationSpeed);
            }
            
        },
        
        close: function() {
            if($.loadingIndicatorXP24.config._loader) {
                $($.loadingIndicatorXP24.config.overlay).fadeOut($.loadingIndicatorXP24.config.animationSpeed);
                if($.browser.msie && parseInt($.browser.version, 10) == 6) {
                    $.ie6fix.close($.loadingIndicatorXP24.config._loader);
                } else {
                    $.loadingIndicatorXP24.config._loader.animate({
                        'opacity': 0
                    }, $.loadingIndicatorXP24.config.animationSpeed, function() {
                        $.loadingIndicatorXP24.config._loader.remove();
                    });
                }
            }
        }
    };
    
})(jQuery);

/**
 * AJAX Basket Plugin
 * for Shopware
 *
 * Shopware AG (c) 2010
 */
(function ($) {
    

    //Extends jQuery's namespace
    $.basket = {};
    
    //Default settings
    $.basket.options = {
        viewport            : '',
        //ajax_cart_url       : 'http://smoothy.bestitcon.de',
        ajax_cart_url       : $.controller.ajax_cart_url,
        basketLoader        : '.ajax_refresh .ajax_loader',
        basketResult        : '.ajax_basket_result',
        basketDisplay       : '.shopnavi div.ajax_refresh',
        basketParent        : '.ajax_basket_container',
        basketBackground    : '.ajax_basket_background',
        basketTop           : '.ajax_basket_top',
        basketMiddle        : '.ajax_basket_middle',
        basketBottom        : '.ajax_basket_bottom'
    };
    
    //Initialize the basket module
    //and binds the needed events
    $.basket.init = function () {
        
        /*var width = 660;
        var position = 'fixed';*/
        
        if($.browser.msie && parseInt($.browser.version) == 6) {
            var width = width - 10;
            var position = 'absolute';
        }
        
        $('a.buynow').live('click', function (event) {
            event.preventDefault();
            //alert('hallo');
            $.ajax({
                'dataType': 'jsonp',
                'url': $(this).attr('href'),
                'beforeSend': function() {
                    $.loadingIndicatorXP24.open();                    
                },
                'success': function(result) {
                    $.basket.getBasket();
                    $.basket.refreshDisplay();
                    $.loadingIndicatorXP24.close();
                }
            });
        });
        $('.basketform').bind('submit', function (event) {
            event.preventDefault();
            $.ajax({
                'data': $(this).serialize(),
                'dataType': 'jsonp',
                'url': $(this).attr('action'),
                'beforeSend': function() {
                    $.loadingIndicatorXP24.open();
                },
                'success': function(result) {
                    $.basket.getBasket();
                    $.basket.refreshDisplay();
                    $.loadingIndicatorXP24.close();
                }
            });
        });
    };
    
    //Refreshs the basket display
    $.basket.refreshDisplay = function () {
        $.ajax({
            'dataType': 'jsonp',
            'url': $.basket.options.viewport,
            'data': {
                'sAction': 'ajaxAmount'
            },
            'success': function (result) {
                $($.basket.options.basketDisplay).html(result);
            }
        })
    };
    
    //Refreshs the article
    $.basket.refreshArticle = function (cartUrl,value,artID,id) {
        $.ajax({
            'dataType': 'jsonp',
            'url': cartUrl,
            //'url': 'http://smoothy.bestitcon.de/shopware.php/sViewport,AjaxMiniBasket/sAction,ajaxChangeQuantity',
            //'url': 'http://smoothy.bestitcon.de/shopware.php/sViewport,RefreshMiniBasket/',
            //'url': 'http://smoothy.bestitcon.de/shopware.php/',
            'beforeSend': function() {
                $.loadingIndicatorXP24.open();
            },
            'data': {
                'controller' : 'RefreshMiniBasket',
                'sAction'   : 'ajaxChangeQuantity',
                'sQuantity' : value,
                'sArticle'  : artID
            },
            'success': function (result) {
                $.basket.getBasket();
                $($.basket.options.basketDisplay).fadeOut("fast", function(){
                    $.basket.refreshDisplay();
                }).delay(2300).fadeIn("fast",function(){
                    $.loadingIndicatorXP24.close();
                });
            }
        })
    };
    
    //Delete the article
    $.basket.deleteArticle = function (delUrl,delID) {
        $.ajax({
            'dataType': 'jsonp',
            'beforeSend': function() {
                $.loadingIndicatorXP24.open();
            },
            //'url': $.basket.options.ajax_cart_url,
            'url': delUrl,
            'data': {
                'controller': 'RefreshMiniBasket',
                'sAction'   : 'ajaxDeleteArticle',
                'sDelete' : delID
            },
            'success': function (result) {
                $.basket.getBasket();
                $($.basket.options.basketDisplay).fadeOut("fast", function(){
                    $.basket.refreshDisplay();
                }).delay(2300).fadeIn("fast",function(){
                    $.loadingIndicatorXP24.close();
                });
                /*if(result ){
                    $('.box_quantity').addClass('inactive');    
                }*/
                
            }
        })
    };
    
    //AddPremium the article
    $.basket.addPremium = function (addUrl,value) {
        $.ajax({
            'dataType': 'jsonp',
            'beforeSend': function() {
                $.loadingIndicatorXP24.open();
            },
            //'url': $.basket.options.ajax_cart_url,
            'url': addUrl,
            'data': {
                'controller'    : 'RefreshMiniBasket',
                'sAction'       : 'ajaxAddPremium',
                'sAddPremium'   : value
            },
            'success': function (result) {
                $.basket.getBasket();
                $($.basket.options.basketDisplay).fadeOut("fast", function(){
                    $.basket.refreshDisplay();
                }).delay(2300).fadeIn("fast",function(){
                    $.loadingIndicatorXP24.close();
                });
            }
        })
    };
    
    $.basket.addVoucher = function (addUrl,value) {
        $.ajax({
            'dataType': 'jsonp',
            'beforeSend': function() {
                $.loadingIndicatorXP24.open();
            },
            //'url': $.basket.options.ajax_cart_url,
            'url': addUrl,
            'data': {
                'controller'    : 'RefreshMiniBasket',
                'sAction'       : 'ajaxAddVoucher',
                'sVoucher'      : value,
                'BASKET'        : ''
            },
            'success': function (result) {
                $.basket.getBasket();
                $($.basket.options.basketDisplay).fadeOut("fast", function(){
                    $.basket.refreshDisplay();
                }).delay(2300).fadeIn("fast",function(){
                    $.loadingIndicatorXP24.close();
                });
            }
        })
    };
    
    //Requests the basket content
    $.basket.getBasket = function () {
        
        if(!$($.basket.options.basketMiddle).length) {
            $('<div>', {
                'class': 'ajax_basket_background'                
            }).appendTo(document.body);
            $('<div>', {
                'class': 'ajax_basket_result'
            }).appendTo('.ajax_basket_background');
            $('<div>', {
                'class': 'ajax_basket_top'
            }).appendTo('.ajax_basket_result');
            $('<div>', {
                'class': 'ajax_basket_middle'
            }).appendTo('.ajax_basket_result');
            $('<div>', {
                'class': 'ajax_basket_bottom'
            }).appendTo('.ajax_basket_result');
        }
        $($.basket.options.basketLoader).show();
        $.ajax({
            'data': {
                'sAction': 'ajaxCart'
            },
            'dataType': 'jsonp',
            'url': $.basket.options.viewport,
            'success': function (result) {
                var offset = $($.basket.options.basketParent).offset();
                $($.basket.options.basketResult).css({
                    'top': offset.top + 31,
                    'left': offset.left -($($.basket.options.basketResult).width() - $($.basket.options.basketParent).width() + 20)
                });
                $($.basket.options.basketLoader).hide();
                if (result.length) {
                    $($.basket.options.basketMiddle).empty().html(result);
                } else {
                    $($.basket.options.basketMiddle).empty().html($.basket.options.emptyText);
                }
                // autosubmit der select tags im dropdown basket
                /*$('.ajax_auto_submit').bind('change', function() {
                    quantity = $(this).val(); 
                    artID = $(this).attr('rel');
                    cartUrl = $(this).parent().attr('action');
                    $.basket.refreshArticle(cartUrl,quantity,artID);  
                });*/ 
                $('.btn_quantity').bind('click', function(event) {
                    event.preventDefault();
                    var __thisId = $(this).attr('rel');
                    quantity = $('.num_'+__thisId).val()+','+$(this).attr('rel'); // 1,11026
                    artID = $(this).attr('id'); 
                    cartUrl = $(this).parent().attr('action'); 
                    //cartUrl = 'http://www.smoothy.de/shopware.php/RefreshMiniBasket/ajaxChangeQuantity'; 
                    $.basket.refreshArticle(cartUrl,quantity,artID);
                    //console.log(cartUrl);  
                });
                $('.ajaxQuantity').focus(function(){
                    $(this).keydown(function(e) {                   
                        if( e.keyCode === 13) {
                            e.preventDefault();
                            e.stopPropagation();
                            e.stopImmediatePropagation();
                            //return;
                            quantity = $(this).val()+','+$(this).attr('rel');
                            artID = $(this).attr('id'); 
                            cartUrl = $(this).parent().attr('action');
                            //cartUrl = 'http://www.smoothy.de/shopware.php/sViewport,RefreshMiniBasket/sAction,ajaxChangeQuantity'; 
                            $.basket.refreshArticle(cartUrl,quantity,artID);
                            //console.log(cartUrl);
                        };
                    });
                })
                // delete Button
                $('.AjaxCartRow .del').bind('click', function(){
                    var delID = $(this).attr('rel');
                    var delUrl = $(this).attr('attr')+"/shopware.php/";
                    $.basket.deleteArticle(delUrl,delID);                    
                });
                // addPremium Button
                $('.AjaxCartRow .addPremium').bind('click', function(){
                    //event.preventDefault();
                    premium = $(this).attr('rel');
                    var addUrl = $(this).attr('attr')+"/RefreshMiniBasket/ajaxAddPremium";
                    $.basket.addPremium(addUrl,premium);                    
                });
                $('.AjaxCartRow .addVoucher').bind('click', function(){
                    voucher = $(this).parent().find('#basket_add_voucher').val();
                    var addUrl = $(this).attr('attr')+"/RefreshMiniBasket/ajaxAddVoucher";
                    $.basket.addVoucher(addUrl,voucher);                    
                });                
                $($.basket.options.basketBackground).fadeIn('fast', function(){
                    $($.basket.options.basketResult).addClass('active').slideDown('fast',function(){
                        $($.basket.options.basketMiddle).addClass('active').slideDown('fast');
                    });
                });
                $('#ausblenden').click(function(){
                    $($.basket.options.basketResult).removeClass('active').slideUp('fast',function(){
                        $($.basket.options.basketBackground).fadeOut('fast');
                    });
                });
            }
        })
    }
})(jQuery);
/*
* basket Artikel tauschen
*/
(function($) {
 
})(jQuery);

/**
 * cat_text Slide
 * xp24 2011
 */
(function($) {
    
    $.fn.catTextSlide = function() {
        this.each(function() {
        
            $(this).hide();
            $(this).children('div').children('p').last().css('margin-bottom','0');

            $('p.expandcollapse').bind('click', function() {
                if ( $('.slideText').is(':hidden') ) {
                  $('.slideText').slideDown('fast');
                  $('p.expandcollapse').html('reduzieren');
                  $('p.expandcollapse').css({'background-position': 'left -12px'});
                } else if ( $('.slideText').is(':visible') ) {
                  $('.slideText').slideUp('fast');
                  $('p.expandcollapse').html('hier lesen Sie weiter');
                  $('p.expandcollapse').css({'background-position': 'left 3px'});
                }
            });
        });
        
    return this;
    };

})(jQuery);
/*
 * jQuery UI Effects Slide 1.8.1
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *    jquery.effects.core.js
 */
(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","left"],e=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(e=="show")a.css(f,b=="pos"?-g:g);var i={};i[f]=(e=="show"?b=="pos"?
"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
/*
 * jQuery Cycle Plugin (core engine)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version: 2.88 (08-JUN-2010)
 * Dual licensed under the MIT and GPL licenses.
 * http://jquery.malsup.com/license.html
 * Requires: jQuery v1.2.6 or later
 */
(function($){var ver="2.88";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){if($.fn.cycle.debug){log(s);}}function log(){if(window.console&&window.console.log){window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));}}$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.rev);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,(!opts2.rev&&!opts.backwards));},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,(!opts.rev&&!opts.backwards));}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];opts.after.unshift(function(){opts.busy=0;});if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);if(opts.cssFirst){$($slides[first]).css(opts.cssFirst);}if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length>1){opts.after[1].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=false;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing; currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));},ms);}}$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while((t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,opts.rev?-1:1);};$.fn.cycle.prev=function(opts){advance(opts,opts.rev?1:-1);};function advance(opts,val){var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,val>=0);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();opts.cssBefore.opacity=1;opts.cssBefore.display="block";if(w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,cb);};$l.animate(opts.animOut,speedOut,easeOut,function(){if(opts.cssAfter){$l.css(opts.cssAfter);}if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0};opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={fx:"fade",timeout:4000,timeoutFn:null,continuous:0,speed:1000,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!$.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",updateActivePagerLink:null,backwards:false};})(jQuery);


/*

Uniform v1.7.5
http://pixelmatrixdesign.com

Requires jQuery 1.4 or newer

License:
MIT License - http://www.opensource.org/licenses/mit-license.php

*/
(function($) {
  $.uniform = {
    options: {
      selectClass   : 'selector',
      radioClass    : 'radio',
      checkboxClass : 'checker',
      fileClass     : 'uploader',
      filenameClass : 'filename',
      fileBtnClass  : 'action',
      fileDefaultText: 'No file selected',
      fileBtnText   : 'Choose File',
      checkedClass  : 'checked',
      focusClass    : 'focus',
      disabledClass : 'disabled',
      buttonClass   : 'button',
      activeClass   : 'active',
      hoverClass    : 'hover',
      useID         : true,
      idPrefix      : 'uniform',
      resetSelector : false,
      autoHide      : true,
      selectAutoWidth: false
    },
    elements: []
  };

  if($.browser.msie && $.browser.version < 7){
    $.support.selectOpacity = false;
  }else{
    $.support.selectOpacity = true;
  }

  $.fn.uniform = function(options) {

    options = $.extend($.uniform.options, options);

    var el = this;
    //code for specifying a reset button
    if(options.resetSelector != false){
      $(options.resetSelector).mouseup(function(){
        function resetThis(){
          $.uniform.update(el);
        }
        setTimeout(resetThis, 10);
      });
    }
    
    function doInput(elem){
      $el = $(elem);
      $el.addClass($el.attr("type"));
      storeElement(elem);
    }
    
    function doTextarea(elem){
      $(elem).addClass("uniform");
      storeElement(elem);
    }
    
    function doButton(elem){
      var $el = $(elem);
      
      var divTag = $("<div>"),
          spanTag = $("<span>");
      
      divTag.addClass(options.buttonClass);
      
      if(options.useID && $el.attr("id") != "") divTag.attr("id", options.idPrefix+"-"+$el.attr("id"));
      
      var btnText;
      
      if($el.is("a") || $el.is("button")){
        btnText = $el.text();
      }else if($el.is(":submit") || $el.is(":reset") || $el.is("input[type=button]")){
        btnText = $el.attr("value");
      }
      
      btnText = btnText == "" ? $el.is(":reset") ? "Reset" : "Submit" : btnText;
      
      spanTag.html(btnText);
      
      $el.css("opacity", 0);
      $el.wrap(divTag);
      $el.wrap(spanTag);
      
      //redefine variables
      divTag = $el.closest("div");
      spanTag = $el.closest("span");
      
      if($el.is(":disabled")) divTag.addClass(options.disabledClass);
      
      divTag.bind({
        "mouseenter.uniform": function(){
          divTag.addClass(options.hoverClass);
        },
        "mouseleave.uniform": function(){
          divTag.removeClass(options.hoverClass);
          divTag.removeClass(options.activeClass);
        },
        "mousedown.uniform touchbegin.uniform": function(){
          divTag.addClass(options.activeClass);
        },
        "mouseup.uniform touchend.uniform": function(){
          divTag.removeClass(options.activeClass);
        },
        "click.uniform touchend.uniform": function(e){
          if($(e.target).is("span") || $(e.target).is("div")){    
            if(elem[0].dispatchEvent){
              var ev = document.createEvent('MouseEvents');
              ev.initEvent( 'click', true, true );
              elem[0].dispatchEvent(ev);
            }else{
              elem[0].click();
            }
          }
        }
      });
      
      elem.bind({
        "focus.uniform": function(){
          divTag.addClass(options.focusClass);
        },
        "blur.uniform": function(){
          divTag.removeClass(options.focusClass);
        }
      });
      
      $.uniform.noSelect(divTag);
      storeElement(elem);
      
    }

    function doSelect(elem){
        var $el = $(elem);
        if($el.attr("id") != "sVoteStars"){

        var divTag = $('<div />'),
          spanTag = $('<span />');
        
        if(!$el.css("display") == "none" && options.autoHide){
        divTag.hide();
        }

        origElemWidth = $el.width();

        divTag.addClass(options.selectClass);

        if(options.useID && elem.attr("id") != ""){
        divTag.attr("id", options.idPrefix+"-"+elem.attr("id"));
        }

        var selected = elem.find(":selected:first");
        if(selected.length == 0){
        selected = elem.find("option:first");
        }
        spanTag.html(selected.html());

        elem.css('opacity', 0);
        elem.wrap(divTag);
        elem.before(spanTag);

        //redefine variables
        if(options.selectAutoWidth){
          var origDivWidth = divTag.width(),
          origSpanWidth = spanTag.width(),
          adjustDiff = origSpanWidth-origElemWidth;

          divTag.css('width',(origDivWidth-adjustDiff)+'px');
          elem.css('width',(origElemWidth+32)+'px');
          elem.css('left','2px');
          spanTag.css('width',origElemWidth+'px');
        }       

        divTag = elem.parent("div");
        spanTag = elem.siblings("span");
        
        elem.bind({
        "change.uniform": function() {
          spanTag.text(elem.find(":selected").html());
          divTag.removeClass(options.activeClass);
        },
        "focus.uniform": function() {
          divTag.addClass(options.focusClass);
        },
        "blur.uniform": function() {
          divTag.removeClass(options.focusClass);
          divTag.removeClass(options.activeClass);
        },
        "mousedown.uniform touchbegin.uniform": function() {
          divTag.addClass(options.activeClass);
        },
        "mouseup.uniform touchend.uniform": function() {
          divTag.removeClass(options.activeClass);
        },
        "click.uniform touchend.uniform": function(){
          divTag.removeClass(options.activeClass);
        },
        "mouseenter.uniform": function() {
          divTag.addClass(options.hoverClass);
        },
        "mouseleave.uniform": function() {
          divTag.removeClass(options.hoverClass);
          divTag.removeClass(options.activeClass);
        },
        "keyup.uniform": function(){
          spanTag.text(elem.find(":selected").html());
        }
        });

        //handle disabled state
        if($(elem).attr("disabled")){
        //box is checked by default, check our box
        divTag.addClass(options.disabledClass);
        }
        $.uniform.noSelect(spanTag);

        // Doppelte div.selektor
        /*if(elem.parent("div.selector").parent("div.selector")){
            var inhalt = elem.parent("div.selector");
            elem.parent("div.selector").parent("div.selector").replaceWith(inhalt);   
        }*/
        
        storeElement(elem);
        }

    }

    function doCheckbox(elem){
      var $el = $(elem);
      
      var divTag = $('<div />'),
          spanTag = $('<span />');
      
      if(!$el.css("display") == "none" && options.autoHide){
        divTag.hide();
      }
      
      divTag.addClass(options.checkboxClass);

      //assign the id of the element
      if(options.useID && elem.attr("id") != ""){
        divTag.attr("id", options.idPrefix+"-"+elem.attr("id"));
      }

      //wrap with the proper elements
      $(elem).wrap(divTag);
      $(elem).wrap(spanTag);

      //redefine variables
      spanTag = elem.parent();
      divTag = spanTag.parent();

      //hide normal input and add focus classes
      $(elem)
      .css("opacity", 0)
      .bind({
        "focus.uniform": function(){
          divTag.addClass(options.focusClass);
        },
        "blur.uniform": function(){
          divTag.removeClass(options.focusClass);
        },
        "click.uniform touchend.uniform": function(){
          if(!$(elem).attr("checked")){
            //box was just unchecked, uncheck span
            spanTag.removeClass(options.checkedClass);
          }else{
            //box was just checked, check span.
            spanTag.addClass(options.checkedClass);
          }
        },
        "mousedown.uniform touchbegin.uniform": function() {
          divTag.addClass(options.activeClass);
        },
        "mouseup.uniform touchend.uniform": function() {
          divTag.removeClass(options.activeClass);
        },
        "mouseenter.uniform": function() {
          divTag.addClass(options.hoverClass);
        },
        "mouseleave.uniform": function() {
          divTag.removeClass(options.hoverClass);
          divTag.removeClass(options.activeClass);
        }
      });
      
      //handle defaults
      if($(elem).attr("checked")){
        //box is checked by default, check our box
        spanTag.addClass(options.checkedClass);
      }

      //handle disabled state
      if($(elem).attr("disabled")){
        //box is checked by default, check our box
        divTag.addClass(options.disabledClass);
      }

      storeElement(elem);
    }

    function doRadio(elem){
      var $el = $(elem);
      
      var divTag = $('<div />'),
          spanTag = $('<span />');
          
      if(!$el.css("display") == "none" && options.autoHide){
        divTag.hide();
      }

      divTag.addClass(options.radioClass);

      if(options.useID && elem.attr("id") != ""){
        divTag.attr("id", options.idPrefix+"-"+elem.attr("id"));
      }

      //wrap with the proper elements
      $(elem).wrap(divTag);
      $(elem).wrap(spanTag);

      //redefine variables
      spanTag = elem.parent();
      divTag = spanTag.parent();
      
      //hide normal input and add focus classes
      $(elem)
      .css("opacity", 0)
      .bind({
        "focus.uniform": function(){
          divTag.addClass(options.focusClass);
        },
        "blur.uniform": function(){
          divTag.removeClass(options.focusClass);
        },
        "click.uniform touchend.uniform": function(){
          if(!$(elem).attr("checked")){
            //box was just unchecked, uncheck span
            spanTag.removeClass(options.checkedClass);
          }else{
            //box was just checked, check span
            var classes = options.radioClass.split(" ")[0];
            $("." + classes + " span." + options.checkedClass + ":has([name='" + $(elem).attr('name') + "'])").removeClass(options.checkedClass);
            spanTag.addClass(options.checkedClass);
          }
        },
        "mousedown.uniform touchend.uniform": function() {
          if(!$(elem).is(":disabled")){
            divTag.addClass(options.activeClass);
          }
        },
        "mouseup.uniform touchbegin.uniform": function() {
          divTag.removeClass(options.activeClass);
        },
        "mouseenter.uniform touchend.uniform": function() {
          divTag.addClass(options.hoverClass);
        },
        "mouseleave.uniform": function() {
          divTag.removeClass(options.hoverClass);
          divTag.removeClass(options.activeClass);
        }
      });

      //handle defaults
      if($(elem).attr("checked")){
        //box is checked by default, check span
        spanTag.addClass(options.checkedClass);
      }
      //handle disabled state
      if($(elem).attr("disabled")){
        //box is checked by default, check our box
        divTag.addClass(options.disabledClass);
      }

      // Doppelte div.radio
       /* if(elem.parent('span.checked').parent("div.radio").parent('span.checked').parent("div.radio")){
            var inhalt = elem.parent('span.checked').parent("div.radio");
            //elem.parent('span.checked').parent("div.radio").parent('span.checked').parent("div.radio").replaceWidth(inhalt);
            inhalt.unwrap();               
            inhalt.unwrap();               
        }*/
      
      storeElement(elem);

    }

    function doFile(elem){
      //sanitize input
      var $el = $(elem);

      var divTag = $('<div />'),
          filenameTag = $('<span>'+options.fileDefaultText+'</span>'),
          btnTag = $('<span>'+options.fileBtnText+'</span>');
      
      if(!$el.css("display") == "none" && options.autoHide){
        divTag.hide();
      }

      divTag.addClass(options.fileClass);
      filenameTag.addClass(options.filenameClass);
      btnTag.addClass(options.fileBtnClass);

      if(options.useID && $el.attr("id") != ""){
        divTag.attr("id", options.idPrefix+"-"+$el.attr("id"));
      }

      //wrap with the proper elements
      $el.wrap(divTag);
      $el.after(btnTag);
      $el.after(filenameTag);

      //redefine variables
      divTag = $el.closest("div");
      filenameTag = $el.siblings("."+options.filenameClass);
      btnTag = $el.siblings("."+options.fileBtnClass);

      //set the size
      if(!$el.attr("size")){
        var divWidth = divTag.width();
        //$el.css("width", divWidth);
        $el.attr("size", divWidth/10);
      }

      //actions
      var setFilename = function()
      {
        var filename = $el.val();
        if (filename === '')
        {
          filename = options.fileDefaultText;
        }
        else
        {
          filename = filename.split(/[\/\\]+/);
          filename = filename[(filename.length-1)];
        }
        filenameTag.text(filename);
      };

      // Account for input saved across refreshes
      setFilename();

      $el
      .css("opacity", 0)
      .bind({
        "focus.uniform": function(){
          divTag.addClass(options.focusClass);
        },
        "blur.uniform": function(){
          divTag.removeClass(options.focusClass);
        },
        "mousedown.uniform": function() {
          if(!$(elem).is(":disabled")){
            divTag.addClass(options.activeClass);
          }
        },
        "mouseup.uniform": function() {
          divTag.removeClass(options.activeClass);
        },
        "mouseenter.uniform": function() {
          divTag.addClass(options.hoverClass);
        },
        "mouseleave.uniform": function() {
          divTag.removeClass(options.hoverClass);
          divTag.removeClass(options.activeClass);
        }
      });

      // IE7 doesn't fire onChange until blur or second fire.
      if ($.browser.msie){
        // IE considers browser chrome blocking I/O, so it
        // suspends tiemouts until after the file has been selected.
        $el.bind('click.uniform.ie7', function() {
          setTimeout(setFilename, 0);
        });
      }else{
        // All other browsers behave properly
        $el.bind('change.uniform', setFilename);
      }

      //handle defaults
      if($el.attr("disabled")){
        //box is checked by default, check our box
        divTag.addClass(options.disabledClass);
      }
      
      $.uniform.noSelect(filenameTag);
      $.uniform.noSelect(btnTag);
      
      storeElement(elem);

    }
    
    $.uniform.restore = function(elem){
      if(elem == undefined){
        elem = $($.uniform.elements);
      }
      
      $(elem).each(function(){
        if($(this).is(":checkbox")){
          //unwrap from span and div
          $(this).unwrap().unwrap();
        }else if($(this).is("select")){
          //remove sibling span
          $(this).siblings("span").remove();
          //unwrap parent div
          $(this).unwrap();
        }else if($(this).is(":radio")){
          //unwrap from span and div
          $(this).unwrap().unwrap();
        }else if($(this).is(":file")){
          //remove sibling spans
          $(this).siblings("span").remove();
          //unwrap parent div
          $(this).unwrap();
        }else if($(this).is("button, :submit, :reset, a, input[type='button']")){
          //unwrap from span and div
          $(this).unwrap().unwrap();
        }
        
        //unbind events
        $(this).unbind(".uniform");
        
        //reset inline style
        $(this).css("opacity", "1");
        
        //remove item from list of uniformed elements
        var index = $.inArray($(elem), $.uniform.elements);
        $.uniform.elements.splice(index, 1);
      });
    };

    function storeElement(elem){
      //store this element in our global array
      elem = $(elem).get();
      if(elem.length > 1){
        $.each(elem, function(i, val){
          $.uniform.elements.push(val);
        });
      }else{
        $.uniform.elements.push(elem);
      }
    }
    
    //noSelect v1.0
    $.uniform.noSelect = function(elem) {
      function f() {
       return false;
      };
      $(elem).each(function() {
       this.onselectstart = this.ondragstart = f; // Webkit & IE
       $(this)
        .mousedown(f) // Webkit & Opera
        .css({ MozUserSelect: 'none' }); // Firefox
      });
     };

    $.uniform.update = function(elem){
      if(elem == undefined){
        elem = $($.uniform.elements);
      }
      //sanitize input
      elem = $(elem);

      elem.each(function(){
        //do to each item in the selector
        //function to reset all classes
        var $e = $(this);

        if($e.is("select")){
          //element is a select
          var spanTag = $e.siblings("span");
          var divTag = $e.parent("div");

          divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);

          //reset current selected text
          spanTag.html($e.find(":selected").html());

          if($e.is(":disabled")){
            divTag.addClass(options.disabledClass);
          }else{
            divTag.removeClass(options.disabledClass);
          }

        }else if($e.is(":checkbox")){
          //element is a checkbox
          var spanTag = $e.closest("span");
          var divTag = $e.closest("div");

          divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);
          spanTag.removeClass(options.checkedClass);

          if($e.is(":checked")){
            spanTag.addClass(options.checkedClass);
          }
          if($e.is(":disabled")){
            divTag.addClass(options.disabledClass);
          }else{
            divTag.removeClass(options.disabledClass);
          }

        }else if($e.is(":radio")){
          //element is a radio
          var spanTag = $e.closest("span");
          var divTag = $e.closest("div");

          divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);
          spanTag.removeClass(options.checkedClass);

          if($e.is(":checked")){
            spanTag.addClass(options.checkedClass);
          }

          if($e.is(":disabled")){
            divTag.addClass(options.disabledClass);
          }else{
            divTag.removeClass(options.disabledClass);
          }
        }else if($e.is(":file")){
          var divTag = $e.parent("div");
          var filenameTag = $e.siblings(options.filenameClass);
          btnTag = $e.siblings(options.fileBtnClass);

          divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);

          filenameTag.text($e.val());

          if($e.is(":disabled")){
            divTag.addClass(options.disabledClass);
          }else{
            divTag.removeClass(options.disabledClass);
          }
        }else if($e.is(":submit") || $e.is(":reset") || $e.is("button") || $e.is("a") || elem.is("input[type=button]")){
          var divTag = $e.closest("div");
          divTag.removeClass(options.hoverClass+" "+options.focusClass+" "+options.activeClass);
          
          if($e.is(":disabled")){
            divTag.addClass(options.disabledClass);
          }else{
            divTag.removeClass(options.disabledClass);
          }
          
        }
        
      });
    };

    return this.each(function() {
      if($.support.selectOpacity){
        var elem = $(this);

        if(elem.is("select")){
          //element is a select
          if(elem.attr("multiple") != true){
            //element is not a multi-select
            if(elem.attr("size") == undefined || elem.attr("size") <= 1){
              doSelect(elem);
            }
          }
        }else if(elem.is(":checkbox")){
          //element is a checkbox
          doCheckbox(elem);
        }else if(elem.is(":radio")){
          //element is a radio
          doRadio(elem);
        }else if(elem.is(":file")){
          //element is a file upload
          doFile(elem);
        }else if(elem.is(":text, :password, input[type='email']")){
          doInput(elem);
        }else if(elem.is("textarea")){
          doTextarea(elem);
        }else if(elem.is("a") || elem.is(":submit") || elem.is(":reset") || elem.is("button") || elem.is("input[type=button]")){
          //doButton(elem);
        }
          
      }
    });
  };
})(jQuery);
 
/*
 * jQuery Tools 1.2.5 - The missing UI library for the Web
 * 
 * [tooltip, tooltip.dynamic]
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 * File generated: Tue Jan 25 15:08:48 GMT 2011
 */
(function(f){function p(a,b,c){var h=c.relative?a.position().top:a.offset().top,d=c.relative?a.position().left:a.offset().left,i=c.position[0];h-=b.outerHeight()-c.offset[0];d+=a.outerWidth()+c.offset[1];if(/iPad/i.test(navigator.userAgent))h-=f(window).scrollTop();var j=b.outerHeight()+a.outerHeight();if(i=="center")h+=j/2;if(i=="bottom")h+=j;i=c.position[1];a=b.outerWidth()+a.outerWidth();if(i=="center")d-=a/2;if(i=="left")d-=a;return{top:h,left:d}}function u(a,b){var c=this,h=a.add(c),d,i=0,j=
0,m=a.attr("title"),q=a.attr("data-tooltip"),r=o[b.effect],l,s=a.is(":input"),v=s&&a.is(":checkbox, :radio, select, :button, :submit"),t=a.attr("type"),k=b.events[t]||b.events[s?v?"widget":"input":"def"];if(!r)throw'Nonexistent effect "'+b.effect+'"';k=k.split(/,\s*/);if(k.length!=2)throw"Tooltip: bad events configuration for "+t;a.bind(k[0],function(e){clearTimeout(i);if(b.predelay)j=setTimeout(function(){c.show(e)},b.predelay);else c.show(e)}).bind(k[1],function(e){clearTimeout(j);if(b.delay)i=
setTimeout(function(){c.hide(e)},b.delay);else c.hide(e)});if(m&&b.cancelDefault){a.removeAttr("title");a.data("title",m)}f.extend(c,{show:function(e){if(!d){if(q)d=f(q);else if(b.tip)d=f(b.tip).eq(0);else if(m)d=f(b.layout).addClass(b.tipClass).appendTo(document.body).hide().append(m);else{d=a.next();d.length||(d=a.parent().next())}if(!d.length)throw"Cannot find tooltip for "+a;}if(c.isShown())return c;d.stop(true,true);var g=p(a,d,b);b.tip&&d.html(a.data("title"));e=e||f.Event();e.type="onBeforeShow";
h.trigger(e,[g]);if(e.isDefaultPrevented())return c;g=p(a,d,b);d.css({position:"absolute",top:g.top,left:g.left});l=true;r[0].call(c,function(){e.type="onShow";l="full";h.trigger(e)});g=b.events.tooltip.split(/,\s*/);if(!d.data("__set")){d.bind(g[0],function(){clearTimeout(i);clearTimeout(j)});g[1]&&!a.is("input:not(:checkbox, :radio), textarea")&&d.bind(g[1],function(n){n.relatedTarget!=a[0]&&a.trigger(k[1].split(" ")[0])});d.data("__set",true)}return c},hide:function(e){if(!d||!c.isShown())return c;
e=e||f.Event();e.type="onBeforeHide";h.trigger(e);if(!e.isDefaultPrevented()){l=false;o[b.effect][1].call(c,function(){e.type="onHide";h.trigger(e)});return c}},isShown:function(e){return e?l=="full":l},getConf:function(){return b},getTip:function(){return d},getTrigger:function(){return a}});f.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(e,g){f.isFunction(b[g])&&f(c).bind(g,b[g]);c[g]=function(n){n&&f(c).bind(g,n);return c}})}f.tools=f.tools||{version:"1.2.5"};f.tools.tooltip=
{conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,b,c){o[a]=[b,c]}};var o={toggle:[function(a){var b=this.getConf(),c=this.getTip();b=b.opacity;b<1&&c.css({opacity:b});c.show();a.call()},function(a){this.getTip().hide();
a.call()}],fade:[function(a){var b=this.getConf();this.getTip().fadeTo(b.fadeInSpeed,b.opacity,a)},function(a){this.getTip().fadeOut(this.getConf().fadeOutSpeed,a)}]};f.fn.tooltip=function(a){var b=this.data("tooltip");if(b)return b;a=f.extend(true,{},f.tools.tooltip.conf,a);if(typeof a.position=="string")a.position=a.position.split(/,?\s/);this.each(function(){b=new u(f(this),a);f(this).data("tooltip",b)});return a.api?b:this}})(jQuery);
(function(g){function j(a){var c=g(window),d=c.width()+c.scrollLeft(),h=c.height()+c.scrollTop();return[a.offset().top<=c.scrollTop(),d<=a.offset().left+a.width(),h<=a.offset().top+a.height(),c.scrollLeft()>=a.offset().left]}function k(a){for(var c=a.length;c--;)if(a[c])return false;return true}var i=g.tools.tooltip;i.dynamic={conf:{classNames:"top right bottom left"}};g.fn.dynamic=function(a){if(typeof a=="number")a={speed:a};a=g.extend({},i.dynamic.conf,a);var c=a.classNames.split(/\s/),d;this.each(function(){var h=
g(this).tooltip().onBeforeShow(function(e,f){e=this.getTip();var b=this.getConf();d||(d=[b.position[0],b.position[1],b.offset[0],b.offset[1],g.extend({},b)]);g.extend(b,d[4]);b.position=[d[0],d[1]];b.offset=[d[2],d[3]];e.css({visibility:"hidden",position:"absolute",top:f.top,left:f.left}).show();f=j(e);if(!k(f)){if(f[2]){g.extend(b,a.top);b.position[0]="top";e.addClass(c[0])}if(f[3]){g.extend(b,a.right);b.position[1]="right";e.addClass(c[1])}if(f[0]){g.extend(b,a.bottom);b.position[0]="bottom";e.addClass(c[2])}if(f[1]){g.extend(b,
a.left);b.position[1]="left";e.addClass(c[3])}if(f[0]||f[2])b.offset[0]*=-1;if(f[1]||f[3])b.offset[1]*=-1}e.css({visibility:"visible"}).hide()});h.onBeforeShow(function(){var e=this.getConf();this.getTip();setTimeout(function(){e.position=[d[0],d[1]];e.offset=[d[2],d[3]]},0)});h.onHide(function(){var e=this.getTip();e.removeClass(a.classNames)});ret=h});return a.api?ret:this}})(jQuery);
/*
    reflection.js for jQuery v1.03
    (c) 2006-2009 Christophe Beyls <http://www.digitalia.be>
    MIT-style license.
*/
(function(a){a.fn.extend({reflect:function(b){b=a.extend({height:1/3,opacity:0.5},b);return this.unreflect().each(function(){var c=this;if(/^img$/i.test(c.tagName)){function d(){var g=c.width,f=c.height,l,i,m,h,k;i=Math.floor((b.height>1)?Math.min(f,b.height):f*b.height);if(a.browser.msie){l=a("<img />").attr("src",c.src).css({width:g,height:f,marginBottom:i-f,filter:"flipv progid:DXImageTransform.Microsoft.Alpha(opacity="+(b.opacity*100)+", style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy="+(i/f*100)+")"})[0]}else{l=a("<canvas />")[0];if(!l.getContext){return}h=l.getContext("2d");try{a(l).attr({width:g,height:i});h.save();h.translate(0,f-1);h.scale(1,-1);h.drawImage(c,0,0,g,f);h.restore();h.globalCompositeOperation="destination-out";k=h.createLinearGradient(0,0,0,i);k.addColorStop(0,"rgba(255, 255, 255, "+(1-b.opacity)+")");k.addColorStop(1,"rgba(255, 255, 255, 1.0)");h.fillStyle=k;h.rect(0,0,g,i);h.fill()}catch(j){return}}a(l).css({display:"block",border:0});m=a(/^a$/i.test(c.parentNode.tagName)?"<span />":"<div />").insertAfter(c).append([c,l])[0];m.className=c.className;a.data(c,"reflected",m.style.cssText=c.style.cssText);a(m).css({width:g,height:f+i,overflow:"hidden"});c.style.cssText="display: block; border: 0px";c.className="reflected"}if(c.complete){d()}else{a(c).load(d)}}})},unreflect:function(){return this.unbind("load").each(function(){var c=this,b=a.data(this,"reflected"),d;if(b!==undefined){d=c.parentNode;c.className=d.className;c.style.cssText=b;a.removeData(c,"reflected");d.parentNode.replaceChild(c,d)}})}})})(jQuery);

/*!
 * jQuery UI Stars v3.0.1
 * http://plugins.jquery.com/project/Star_Rating_widget
 *
 * Copyright (c) 2010 Marek "Orkan" Zajac (orkans@gmail.com)
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * $Rev: 164 $
 * $Date:: 2010-05-01 #$
 * $Build: 35 (2010-05-01)
 *
 * Depends:
 *    jquery.ui.core.js
 *    jquery.ui.widget.js
 *
 */
(function($) {

$.widget('ui.stars', {
    options: {
        inputType: 'radio', // [radio|select]
        split: 0, // decrease number of stars by splitting each star into pieces [2|3|4|...]
        disabled: false, // set to [true] to make the stars initially disabled
        cancelTitle: 'Cancel Rating',
        cancelValue: 0, // default value of Cancel btn.
        cancelShow: true,
        disableValue: true, // set to [false] to not disable the hidden input when Cancel btn is clicked, so the value will present in POST data.
        oneVoteOnly: false,
        showTitles: false,
        captionEl: null, // jQuery object - target for text captions 
        callback: null, // function(ui, type, value, event)

        /*
         * CSS classes
         */
        starWidth: 16, // width of the star image
        cancelClass: 'ui-stars-cancel',
        starClass: 'ui-stars-star',
        starOnClass: 'ui-stars-star-on',
        starHoverClass: 'ui-stars-star-hover',
        starDisabledClass: 'ui-stars-star-disabled',
        cancelHoverClass: 'ui-stars-cancel-hover',
        cancelDisabledClass: 'ui-stars-cancel-disabled'
    },
    
    _create: function() {
        var self = this, o = this.options, starId = 0;
        this.element.data('former.stars', this.element.html());

        o.isSelect = o.inputType == 'select';
        this.$form = $(this.element).closest('form');
        this.$selec = o.isSelect ? $('select', this.element)  : null;
        this.$rboxs = o.isSelect ? $('option', this.$selec)   : $(':radio', this.element);

        /*
         * Map all inputs from $rboxs array to Stars elements
         */
        this.$stars = this.$rboxs.map(function(i)
        {
            var el = {
                value:      this.value,
                title:      (o.isSelect ? this.text : this.title) || this.value,
                isDefault:  (o.isSelect && this.defaultSelected) || this.defaultChecked
            };

            if(i==0) {
                o.split = typeof o.split != 'number' ? 0 : o.split;
                o.val2id = [];
                o.id2val = [];
                o.id2title = [];
                o.name = o.isSelect ? self.$selec.get(0).name : this.name;
                o.disabled = o.disabled || (o.isSelect ? $(self.$selec).attr('disabled') : $(this).attr('disabled'));
            }

            /*
             * Consider it as a Cancel button?
             */
            if(el.value == o.cancelValue) {
                o.cancelTitle = el.title;
                return null;
            }

            o.val2id[el.value] = starId;
            o.id2val[starId] = el.value;
            o.id2title[starId] = el.title;

            if(el.isDefault) {
                o.checked = starId;
                o.value = o.defaultValue = el.value;
                o.title = el.title;
            }

            var $s = $('<div/>').addClass(o.starClass);
            var $a = $('<a/>').attr('title', o.showTitles ? el.title : '').text(el.value);

            /*
             * Prepare division settings
             */
            if(o.split) {
                var oddeven = (starId % o.split);
                var stwidth = Math.floor(o.starWidth / o.split);
                $s.width(stwidth);
                $a.css('margin-left', '-' + (oddeven * stwidth) + 'px');
                if((oddeven * stwidth) != 0){
                    $s.addClass('right_cont');                    
                }
            }

            starId++;
            return $s.append($a).get(0);
        });

        /*
         * How many Stars?
         */
        o.items = starId;

        /*
         * Remove old content
         */
        o.isSelect ? this.$selec.remove() : this.$rboxs.remove();

        /*
         * Append Stars interface
         */
        this.$cancel = $('<div/>').addClass(o.cancelClass).append( $('<a/>').attr('title', o.showTitles ? o.cancelTitle : '').text(o.cancelValue) );
        o.cancelShow &= !o.disabled && !o.oneVoteOnly;
        o.cancelShow && this.element.append(this.$cancel);
        this.element.append(this.$stars);

        /*
         * Initial selection
         */
        if(o.checked === undefined) {
            o.checked = -1;
            o.value = o.defaultValue = o.cancelValue;
            o.title = '';
        }
        
        /*
         * The only FORM element, that has been linked to the stars control. The value field is updated on each Star click event
         */
        this.$value = $("<input type='hidden' name='"+o.name+"' value='"+o.value+"' />");
        this.element.append(this.$value);


        /*
         * Attach stars event handler
         */
        this.$stars.bind('click.stars', function(e) {
            if(!o.forceSelect && o.disabled) return false;

            var i = self.$stars.index(this);
            o.checked = i;
            o.value = o.id2val[i];
            o.title = o.id2title[i];
            self.$value.attr({disabled: o.disabled ? 'disabled' : '', value: o.value});

            fillTo(i, false);
            self._disableCancel();

            !o.forceSelect && self.callback(e, 'star');
        })
        .bind('mouseover.stars', function() {
            if(o.disabled) return false;
            var i = self.$stars.index(this);
            fillTo(i, true);
        })
        .bind('mouseout.stars', function() {
            if(o.disabled) return false;
            fillTo(self.options.checked, false);
        });


        /*
         * Attach cancel event handler
         */
        this.$cancel.bind('click.stars', function(e) {
            if(!o.forceSelect && (o.disabled || o.value == o.cancelValue)) return false;

            o.checked = -1;
            o.value = o.cancelValue;
            o.title = '';
            
            self.$value.val(o.value);
            o.disableValue && self.$value.attr({disabled: 'disabled'});

            fillNone();
            self._disableCancel();

            !o.forceSelect && self.callback(e, 'cancel');
        })
        .bind('mouseover.stars', function() {
            if(self._disableCancel()) return false;
            self.$cancel.addClass(o.cancelHoverClass);
            fillNone();
            self._showCap(o.cancelTitle);
        })
        .bind('mouseout.stars', function() {
            if(self._disableCancel()) return false;
            self.$cancel.removeClass(o.cancelHoverClass);
            self.$stars.triggerHandler('mouseout.stars');
        });


        /*
         * Attach onReset event handler to the parent FORM
         */
        this.$form.bind('reset.stars', function(){
            !o.disabled && self.select(o.defaultValue);
        });


        /*
         * Clean up to avoid memory leaks in certain versions of IE 6
         */
        $(window).unload(function(){
            self.$cancel.unbind('.stars');
            self.$stars.unbind('.stars');
            self.$form.unbind('.stars');
            self.$selec = self.$rboxs = self.$stars = self.$value = self.$cancel = self.$form = null;
        });


        /*
         * Star selection helpers
         */
        function fillTo(index, hover) {
            if(index != -1) {
                var addClass = hover ? o.starHoverClass : o.starOnClass;
                var remClass = hover ? o.starOnClass    : o.starHoverClass;
                self.$stars.eq(index).prevAll('.' + o.starClass).andSelf().removeClass(remClass).addClass(addClass);
                self.$stars.eq(index).nextAll('.' + o.starClass).removeClass(o.starHoverClass + ' ' + o.starOnClass);
                self._showCap(o.id2title[index]);
            }
            else fillNone();
        };
        function fillNone() {
            self.$stars.removeClass(o.starOnClass + ' ' + o.starHoverClass);
            self._showCap('');
        };


        /*
         * Finally, set up the Stars
         */
        this.select(o.value);
        o.disabled && this.disable();

    },

    /*
     * Private functions
     */
    _disableCancel: function() {
        var o = this.options, disabled = o.disabled || o.oneVoteOnly || (o.value == o.cancelValue);
        if(disabled)  this.$cancel.removeClass(o.cancelHoverClass).addClass(o.cancelDisabledClass);
        else          this.$cancel.removeClass(o.cancelDisabledClass);
        this.$cancel.css('opacity', disabled ? 0.5 : 1);
        return disabled;
    },
    _disableAll: function() {
        var o = this.options;
        this._disableCancel();
        if(o.disabled)  this.$stars.filter('div').addClass(o.starDisabledClass);
        else            this.$stars.filter('div').removeClass(o.starDisabledClass);
    },
    _showCap: function(s) {
        var o = this.options;
        if(o.captionEl) o.captionEl.text(s);
    },

    /*
     * Public functions
     */
    value: function() {
        return this.options.value;
    },
    select: function(val) {
        var o = this.options, e = (val == o.cancelValue) ? this.$cancel : this.$stars.eq(o.val2id[val]);
        o.forceSelect = true;
        e.triggerHandler('click.stars');
        o.forceSelect = false;
    },
    selectID: function(id) {
        var o = this.options, e = (id == -1) ? this.$cancel : this.$stars.eq(id);
        o.forceSelect = true;
        e.triggerHandler('click.stars');
        o.forceSelect = false;
    },
    enable: function() {
        this.options.disabled = false;
        this._disableAll();
    },
    disable: function() {
        this.options.disabled = true;
        this._disableAll();
    },
    destroy: function() {
        this.$form.unbind('.stars');
        this.$cancel.unbind('.stars').remove();
        this.$stars.unbind('.stars').remove();
        this.$value.remove();
        this.element.unbind('.stars').html(this.element.data('former.stars')).removeData('stars');
        return this;
    },
    callback: function(e, type) {
        var o = this.options;
        o.callback && o.callback(this, type, o.value, e);
        o.oneVoteOnly && !o.disabled && this.disable();
    }
});

$.extend($.ui.stars, {
    version: '3.0.1'
});

})(jQuery); 
 
 /*
 * jQuery outside events - v1.1 - 3/16/2010
 * http://benalman.com/projects/jquery-outside-events-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 * By default, these “outside” events are supported: clickoutside, dblclickoutside, focusoutside, bluroutside, mousemoveoutside, mousedownoutside, mouseupoutside, mouseoveroutside, mouseoutoutside, keydownoutside, keypressoutside, keyupoutside, changeoutside, selectoutside, submitoutside.
 */
(function($,c,b){$.map("click dblclick mousemove mousedown mouseup mouseover mouseout change select submit keydown keypress keyup".split(" "),function(d){a(d)});a("focusin","focus"+b);a("focusout","blur"+b);$.addOutsideEvent=a;function a(g,e){e=e||g+b;var d=$(),h=g+"."+e+"-special-event";$.event.special[e]={setup:function(){d=d.add(this);if(d.length===1){$(c).bind(h,f)}},teardown:function(){d=d.not(this);if(d.length===0){$(c).unbind(h)}},add:function(i){var j=i.handler;i.handler=function(l,k){l.target=k;j.apply(this,arguments)}}};function f(i){$(d).each(function(){var j=$(this);if(this!==i.target&&!j.has(i.target).length){j.triggerHandler(e,[i.target])}})}}})(jQuery,document,"outside");
  
/*!
 * jQuery Tools v1.2.5 - The missing UI library for the Web
 * 
 * scrollable/scrollable.js
 * scrollable/scrollable.autoscroll.js
 * scrollable/scrollable.navigator.js
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 */
(function(a){a.tools=a.tools||{version:"v1.2.5"},a.tools.scrollable={conf:{activeClass:"active",circular:!1,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:!0,mousewheel:!1,next:".next",prev:".prev",speed:400,vertical:!1,touch:!0,wheelSpeed:0}};function b(a,b){var c=parseInt(a.css(b),10);if(c)return c;var d=a[0].currentStyle;return d&&d.width&&parseInt(d.width,10)}function c(b,c){var d=a(c);return d.length<2?d:b.parent().find(c)}var d;function e(b,e){var f=this,g=b.add(f),h=b.children(),i=0,j=e.vertical;d||(d=f),h.length>1&&(h=a(e.items,b)),a.extend(f,{getConf:function(){return e},getIndex:function(){return i},getSize:function(){return f.getItems().size()},getNaviButtons:function(){return m.add(n)},getRoot:function(){return b},getItemWrap:function(){return h},getItems:function(){return h.children(e.item).not("."+e.clonedClass)},move:function(a,b){return f.seekTo(i+a,b)},next:function(a){return f.move(1,a)},prev:function(a){return f.move(-1,a)},begin:function(a){return f.seekTo(0,a)},end:function(a){return f.seekTo(f.getSize()-1,a)},focus:function(){d=f;return f},addItem:function(b){b=a(b),e.circular?(h.children("."+e.clonedClass+":last").before(b),h.children("."+e.clonedClass+":first").replaceWith(b.clone().addClass(e.clonedClass))):h.append(b),g.trigger("onAddItem",[b]);return f},seekTo:function(b,c,k){b.jquery||(b*=1);if(e.circular&&b===0&&i==-1&&c!==0)return f;if(!e.circular&&b<0||b>f.getSize()||b<-1)return f;var l=b;b.jquery?b=f.getItems().index(b):l=f.getItems().eq(b);var m=a.Event("onBeforeSeek");if(!k){g.trigger(m,[b,c]);if(m.isDefaultPrevented()||!l.length)return f}var n=j?{top:-l.position().top}:{left:-l.position().left};i=b,d=f,c===undefined&&(c=e.speed),h.animate(n,c,e.easing,k||function(){g.trigger("onSeek",[b])});return f}}),a.each(["onBeforeSeek","onSeek","onAddItem"],function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]),f[c]=function(b){b&&a(f).bind(c,b);return f}});if(e.circular){var k=f.getItems().slice(-1).clone().prependTo(h),l=f.getItems().eq(1).clone().appendTo(h);k.add(l).addClass(e.clonedClass),f.onBeforeSeek(function(a,b,c){if(!a.isDefaultPrevented()){if(b==-1){f.seekTo(k,c,function(){f.end(0)});return a.preventDefault()}b==f.getSize()&&f.seekTo(l,c,function(){f.begin(0)})}}),f.seekTo(0,0,function(){})}var m=c(b,e.prev).click(function(){f.prev()}),n=c(b,e.next).click(function(){f.next()});!e.circular&&f.getSize()>1&&(f.onBeforeSeek(function(a,b){setTimeout(function(){a.isDefaultPrevented()||(m.toggleClass(e.disabledClass,b<=0),n.toggleClass(e.disabledClass,b>=f.getSize()-1))},1)}),e.initialIndex||m.addClass(e.disabledClass)),e.mousewheel&&a.fn.mousewheel&&b.mousewheel(function(a,b){if(e.mousewheel){f.move(b<0?1:-1,e.wheelSpeed||50);return!1}});if(e.touch){var o={};h[0].ontouchstart=function(a){var b=a.touches[0];o.x=b.clientX,o.y=b.clientY},h[0].ontouchmove=function(a){if(a.touches.length==1&&!h.is(":animated")){var b=a.touches[0],c=o.x-b.clientX,d=o.y-b.clientY;f[j&&d>0||!j&&c>0?"next":"prev"](),a.preventDefault()}}}e.keyboard&&a(document).bind("keydown.scrollable",function(b){if(e.keyboard&&!b.altKey&&!b.ctrlKey&&!a(b.target).is(":input")){if(e.keyboard!="static"&&d!=f)return;var c=b.keyCode;if(j&&(c==38||c==40)){f.move(c==38?-1:1);return b.preventDefault()}if(!j&&(c==37||c==39)){f.move(c==37?-1:1);return b.preventDefault()}}}),e.initialIndex&&f.seekTo(e.initialIndex,0,function(){})}a.fn.scrollable=function(b){var c=this.data("scrollable");if(c)return c;b=a.extend({},a.tools.scrollable.conf,b),this.each(function(){c=new e(a(this),b),a(this).data("scrollable",c)});return b.api?c:this}})(jQuery);
(function(a){var b=a.tools.scrollable;b.autoscroll={conf:{autoplay:!0,interval:3e3,autopause:!0}},a.fn.autoscroll=function(c){typeof c=="number"&&(c={interval:c});var d=a.extend({},b.autoscroll.conf,c),e;this.each(function(){var b=a(this).data("scrollable");b&&(e=b);var c,f=!0;b.play=function(){c||(f=!1,c=setInterval(function(){b.next()},d.interval))},b.pause=function(){c=clearInterval(c)},b.stop=function(){b.pause(),f=!0},d.autopause&&b.getRoot().add(b.getNaviButtons()).hover(b.pause,b.play),d.autoplay&&b.play()});return d.api?e:this}})(jQuery);
(function(a){var b=a.tools.scrollable;b.navigator={conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:!1,idPrefix:null,history:!1}};function c(b,c){var d=a(c);return d.length<2?d:b.parent().find(c)}a.fn.navigator=function(d){typeof d=="string"&&(d={navi:d}),d=a.extend({},b.navigator.conf,d);var e;this.each(function(){var b=a(this).data("scrollable"),f=d.navi.jquery?d.navi:c(b.getRoot(),d.navi),g=b.getNaviButtons(),h=d.activeClass,i=d.history&&a.fn.history;b&&(e=b),b.getNaviButtons=function(){return g.add(f)};function j(a,c,d){b.seekTo(c);if(i)location.hash&&(location.hash=a.attr("href").replace("#",""));else return d.preventDefault()}function k(){return f.find(d.naviItem||"> *")}function l(b){var c=a("<"+(d.naviItem||"a")+"/>").click(function(c){j(a(this),b,c)}).attr("href","#"+b);b===0&&c.addClass(h),d.indexed&&c.text(b+1),d.idPrefix&&c.attr("id",d.idPrefix+b);return c.appendTo(f)}k().length?k().each(function(b){a(this).click(function(c){j(a(this),b,c)})}):a.each(b.getItems(),function(a){l(a)}),b.onBeforeSeek(function(a,b){setTimeout(function(){if(!a.isDefaultPrevented()){var c=k().eq(b);!a.isDefaultPrevented()&&c.length&&k().removeClass(h).eq(b).addClass(h)}},1)});function m(a,b){var c=k().eq(b.replace("#",""));c.length||(c=k().filter("[href="+b+"]")),c.click()}b.onAddItem(function(a,c){c=l(b.getItems().index(c)),i&&c.history(m)}),i&&k().history(m)});return d.api?e:this}})(jQuery);

/*
* jQuery Slider
* 
* xp24 - Marco Thrum 
*/
(function($) {
    $.fn.xpSlider = function(mode, settings) {
        var config = {
            
            // Public
            'slideCont'         : '.scrollable',
            'itemCont'          : '.item_cont',
            'activebox'         : '.activebox div',
            'leftarrow'         : 'a.left',
            'rightarrow'        : 'a.right',
            'transpBorder'      : '.transpBoarder',
            // scrollable
            'autoscroll'        : true,
            'autopause'         : true,
            'scrollspeed'       : 4000,
            'circular'          : true,
            
            '_this'             : null,
            '_slideContainer'   : null,
            '_currentSlide'     : null,
            '_countSlides'      : null,
            '_slides'           : null,
            '_itemContainer'    : null,
            '_items'            : null,
            '_activeBox'        : null,
            '_left'             : null,
            '_leftArrow'        : null,
            '_rightArrow'       : null,
            '_lastItem'         : null,
            '_aktionen'         : null,
            '_transpBorder'         : null
        };
        if (settings) { $.extend(config, settings); }
        config._this = $(this);
        
        this.each(function() {
            
            // container festlegen
            config._slideContainer = $(config.slideCont);
            config._activeBox = $(config.activebox);
            config._itemContainer = $(config.itemCont);
            config._leftArrow = $(config.leftarrow);
            config._rightArrow = $(config.rightarrow);
            config._transpBorder = $(config.transpBorder);
            config._aktionen = $('.actionboxes').find('.actionbox a');
            
            config._slides = $(config._slideContainer).find('.slide');
            config._currentSlide = 1;
            config._countSlides = config._slides.length;
            config._lastItem = config._slides.length;            
            
            config._items = $(config._itemContainer).find('.items');
            $('#item1').fadeIn();
            
            config._aktionen.bind('click', function(event) {
                event.preventDefault();
                $.xpSlider.stopAll(config);
                $('#white').animate({opacity: 1});                
                
                var ref = $(this).attr('ref');
                var id = $(this).attr('id');
                
                $('#aktionen_home').find('.actionbox').removeClass('active');
                $(this).parent().addClass('active');

                $.ajax({
                    'dataType': 'jsonp',
                    'data': {title:ref,parentID:id},
                    'beforeSend': function() {
                        $.loadingIndicatorXP24aktion.open();
                        $('#white').css({
                            'display':'block',
                            'background-color':'white'
                        });
                        $('#actionImage').fadeOut('slow').hide();
                    },
                    //'url': $(this).attr('href'),
                    'url': '/FrontActions/ajaxActionsDetail',
                    'success': function (result) {
                        // Aktionencontainer ausblenden
                        $.loadingIndicatorXP24aktion.close();
                        $('#actionImage').html(result).fadeIn('slow');
                        $.xpSlider.activeHref(config,$('#actionImage').find('a').attr('href'),'_parent');                        
                    }
                });                
            });
            
            var rightDblClick = false;
            
            $(window).load(function () {
                $.xpSlider.loop(config);
            });
            
        });
        
        return this;
    };
    $.xpSlider = {
        loop: function(config){
            //alert(config._slideContainer.text());
            config._slideContainer.scrollable().autoscroll({ 
                autoplay    : config.autoscroll,
                //autopause   : config.autopause,
                interval    : config.scrollspeed   
            });
            
            // get access to the API
            var api = config._slideContainer.data("scrollable");
            //console.dir(api);
            //config._currentSlide = 1; 
            
            config._rightArrow.dblclick(function(){
                rightDblClick = true;
                api.stop();
                return;
            });
            
            config._rightArrow.live('dblclick',function(e){
                api.stop();
                return;                
            });
            
            config._slides.live('click',function(config){
                
                $.xpSlider.stopAll(config);
                
                var anzahl = $(this).parent().find('.slide').length;                
                var currentSlide = api.getIndex() + 1;
                var slideId = $(this).attr('id').replace('slideNavigation','');
                ziffer = (parseInt(slideId)) - currentSlide;
                
                api.move(ziffer,1500);
                
                for (var i = 0; i < (ziffer-1); i++){                    
                    var currentId = currentSlide+i;
                    var cloneId = (anzahl + i)+1;
                    config._currentSlide = cloneId;
                    $.xpSlider.cloneSlide(config,currentId,cloneId);                   
                    //console.info((currentSlide+i)+'/'+currentId+'/'+cloneId);                    
                }                   
            });
            
            $('#aktionen_home').live('mouseenter mouseover mousedown', function(config){
                api.stop();
            });
            
            $('#aktionen_home').live('mouseleave', function(config){
                // hier muss noch ein Event rein der abfragt ob andere Aktionen aktiv sind
                setTimeout(function(){
                    api.play();
                },2000);
            });
 
            config._leftArrow.live('click', function(){
                                
                config._left = true;
                $.xpSlider.stopAll(config);
                api.stop();
                
                config._currentSlide = config._currentSlide - 1;
                
                var lastItem = $('.slide').last().index();
                if(lastItem >= config._countSlides){
                    //$('.slide').last().remove();    
                }
                if(lastItem == (config._countSlides)){
                    config._leftArrow.hide();
                }

            });
            config._leftArrow.live('mouseout mouseleave', function(){
                config._left = false;            
            });
            
            api.onBeforeSeek(function() {
            
                //$.xpSlider.hideAktionen(config);
                
                if(api.getIndex() >= config._countSlides){
                    //$('#slideNavigation'+(currentSlide-config._countSlides)).remove();
                    // löscht unnötige Items 
                    //$('#item'+(config._currentSlide - config._countSlides)).remove();    
                }
                if(config._slideContainer.position().left == 0){
                    config._leftArrow.hide();                   
                }else{
                    config._leftArrow.show();
                }
                // Maske zum maskieren der Klickelemente
                $('div.actions').prepend('<div class="maske" style="width:980px;height:110px;position:absolute;left:0;top:0;background-color:white;z-index:10000;opacity: .0;filter: alpha(opacity=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></div>');
                
            });
            // do something upon scroll
            api.onSeek(function() {
                
                $.xpSlider.hideAktionen(config);                           
                config._currentSlide = this.getIndex()+1;
                config._slideContainer.find('.active').removeClass('active');
                $('#slideNavigation' + config._currentSlide).addClass('active');
                $.xpSlider.activeHref(config,$('#item' + config._currentSlide).find('a').attr('href'),$('#item' + config._currentSlide).find('a').attr('target'));
                
                $.xpSlider.cloneSlide(config);
                $.xpSlider.activeBox(config);
                $.xpSlider.itemsTop(config);

                //Maske entfernen
                $('div.actions .maske').remove();
                
                // inside callbacks the "this" variable is a reference to the API
                //console.info("current position is: " + config._currentSlide)
            });
                    
        },
        cloneSlide: function(config,currentId,cloneId){
            var result = $.xpSlider.searchDuplikate(config,'slideNavigation'+(config._currentSlide-1)+config._countSlides);
            if(!result){
                if(currentId && cloneId){
                    $.xpSlider.stopAll(config);                
                    var currentId = parseInt(currentId);
                    var cloneId = parseInt(cloneId);
                    
                    $('#slideNavigation' + currentId).clone().attr({'id':'slideNavigation' + cloneId}).appendTo('.slides');
                    $('#item' + currentId).clone().attr({'id':'item' + cloneId}).appendTo('.item_cont');    
                }else{
                    if(!config._left){
                        $('#slideNavigation'+(config._currentSlide-1)).clone().attr({'id':'slideNavigation'+((config._currentSlide-1)+config._countSlides)}).appendTo('.slides');
                        $('#item'+(config._currentSlide-1)).clone().attr({'id':'item'+((config._currentSlide-1)+config._countSlides)}).appendTo('.item_cont');
                    }
                }    
            }    
        },
        activeBox: function(config){
            // current Slide in active Box
            var inhalt = $('#slideNavigation' + config._currentSlide).html();                
            //config._activeBox.fadeOut("fast", function(){config._activeBox.html(inhalt)}).fadeIn();
            config._activeBox.html(inhalt);            
        },
        itemsTop: function(config){
            // items top
            $('.item_cont').find('.items').fadeOut();
            $('#item' + config._currentSlide).fadeIn();    
        },
        stopAll: function(config){
            $('#aktionen_home').stop();
            $('a.browse').stop();                                
        },
        searchDuplikate: function(config,idText){
            // suche nach Duplikaten durch häufiges Durcheinanderklicken
            var result = $('.slides').find('#'+idText);   
        },
        hideAktionen: function(config){
            // aktionen rechts
            $('#actionImage').fadeOut('fast',function(){
                $('#white').animate({opacity: 0.1});
                $('#aktionen_home').find('.actionbox').removeClass('active');
                $('#white').hide();
            });    
        },
        activeHref: function(config,link,target){
            $('#aktionen_home').find('a.link').remove();
            $('<a>', {
                'href'  : link,
                'class' : 'link',
                'target': target
            }).prependTo($('#aktionen_home'));            
        }
    }
})(jQuery);
