$J(window).load(function(){
    var bIsHomepage								= true;
    var sBrowserCssPrefix						= '-moz-';
    var bFadingIsSupported						= true;
    $J('div#footercontainer').css({
        'top': $J('div#headercontainer').height() + $J('div#contentcontainer').outerHeight() + 50 + 'px'
    });
    var iStartTimer								= null;
    var iStartWait								= 450;
    var aTimeouts								= [];
    aTimeouts.push(iStartTimer);
    var oDefaultMood							= new cDefaultMood();
    var fResizeElements							= function(bWindowResize){
        bWindowResize							= bWindowResize || false;
        var iImageWidth							= 1920;
        if(bIsHomepage)	{
            /* Hompage Moods */
            $J('div#moodcontainer img.homemoodimage').each(function(i){
                // Check width for Image
                if($J(window).width() > iImageWidth){
                    $J(this).attr('width', $J(window).width());
                } else {
                    $J(this).attr('width', iImageWidth);
                }
                $J(this).removeAttr('height');
                $J(this).css('margin-left', ($J(this).attr('width') / 2) * -1 + 'px');
            });
            /* Homepage Box */
            $J('div#moodcontainer div.homemoodbox').each(function(i){
                $J(this).css('left', $J('div#header').offset().left + 500 + 'px');
            });
            /* Homepage Arrows */
            $J('div#moodcontainer a.moodbutton.down').css('left', $J('div#header').offset().left + 20 + 'px');
            $J('div#moodcontainer a.moodbutton.up').css('left', $J('div#header').offset().left + 85 + 'px');
        }
    };
    $J(window).bind('resize', function(){
        fResizeElements(true);
    });
    var iColorFadeSpeed							= 280;
    var fToggleColor							= function(oActElm, sCssProperty, iNewColor, iActColor, iSpeed) {
        $J({
            iColor:iActColor
        }).animate({
            iColor:iNewColor
        }, {
            easing: 'easeOutQuad',
            duration: iSpeed,
            step: function() {
                var iColor							= Math.round(this.iColor);
                $J(oActElm).css(sCssProperty, 'rgb('+ iColor + ', ' + iColor + ', ' + iColor + ')');
            }
        });
    };
    $J('ul#navigation a').live('mouseenter', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'color', 51, 255, iColorFadeSpeed);
        }
    });
    $J('ul#navigation a').live('mouseleave', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'color', 255, 51, iColorFadeSpeed);
        }
    });
    $J('ul#nav-sub a').live('mouseenter', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'color', 51, 153, iColorFadeSpeed);
        }
    });
    $J('ul#nav-sub a').live('mouseleave', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'color', 153, 51, iColorFadeSpeed);
        }
    });
    $J('a.homebox').live('mouseenter', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'background-color', 239, 255, iColorFadeSpeed);
        }
    });
    $J('a.homebox').live('mouseleave', function(){
        if(!$J(this).hasClass('active')) {
            fToggleColor($J(this), 'background-color', 255, 239, iColorFadeSpeed);
        }
    });
    $J('ul#keywordnavigation ul.keywords a').live('mouseenter', function(){
        fToggleColor($J(this), 'color', 51, 153, iColorFadeSpeed);
    });
    $J('ul#keywordnavigation ul.keywords a').live('mouseleave', function(){
        fToggleColor($J(this), 'color', 153, 51, iColorFadeSpeed);
    });
    $J('input[type="submit"]').addClass('submit');
    $J('input[type="button"]').addClass('submit');
    $J('input.submit').live('mouseleave', function(){
	fToggleColor($J(this), 'background-color', 69, 38, iColorFadeSpeed);
});
$J('input.submit').live('mouseenter', function(){
	fToggleColor($J(this), 'background-color', 38, 69, iColorFadeSpeed);
});
    /* Globals */
    var bContentCanChange							= true;
    var bChangeToHomepage							= false;
    // var sActUrl								= decodeURI(document.URL);
    // var sActSelfUrl							= sActUrl;
    //var aMetaTagsToReplace						= ['language', 'description', 'keywords'];
    var iPageFadeSpeed							= 500;
    var iMoodSlideSpeed							= 350;
    function cChangeSkin() {
        var self	= this;
        var iCounter = 0;
        //var aCode = ['77','65','67','72','66','76','65','85','13'];
        var bKeydown = false;
        var bRumpelActive = false;
    /*this.fCheckCodeForSkin = function(sLetter){
                        var sNextLetter = aCode[iCounter];
                        if( sLetter == sNextLetter ){
                                iCounter++;
                                if( iCounter >= aCode.length ){
                                        self.fChangeSkin();
                                        bRumpelActive = true;
                                }
                        }else{
                                iCounter = 0;
                        }
                }*/
    /*this.fChangeSkin	= function() {
                        $('link#skinstylesheet').attr('href', sRootUrl + 'css/skin_blue.css');
                }
                $('html').keydown(function(event){
                        self.fCheckCodeForSkin( event.keyCode );
                });*/
    }
    cChangeSkin();
    if(bIsHomepage) {
        oHomeMood								= new cHomeMood();
    }
    /* DEFAULT */
    function cDefaultMood() {
        var self								= this;
        var iHeaderSlideSpeed						= 400;
        var iMoodButtonSlideSpeed						= 400;
        // Header
        this.fSlideHeader							= function(){
            $J('div#header').animate({
                'top': '0px'
            },
            iHeaderSlideSpeed,
            'easeOutQuad',
            function() {
                $J(this).animate({
                    top: '-10px'
                },
                iHeaderSlideSpeed / 2,
                'easeOutQuad',
                function() {
                    $J('div#header').live('mouseenter', function(){
                        self.fToggleHeader(110);
                    });
                    $J('div#header').live('mouseleave', function(){
                        self.fToggleHeader(100);
                    });
                /*if(!bIsHomepage) {
                                    switch(sPageCodename) {
                                        // Mood: Über uns
                                        case 'ueber_uns':
                                            oAboutUsMood.fStartPikto(0);
                                            break;
                                        // Mood: Newsletter abonnieren
                                    case 'newsletter_abonnieren':
                                        oNewsletterSubscriptionMood.fInitPiktos();
                                        break;
                                }
                            }*/
                }
                );
            }
            );
        };
        this.fToggleHeader							= function(iNewHeight){
            $J('div#header').stop();
            $J('div#header').animate({
                'height': iNewHeight + 'px'
            },
            iHeaderSlideSpeed / 2,
            'easeOutQuad'
            );
        };
        // Buttons Slide
        this.fSlideMoodButtons							= function() {
            $J('div#moodcontainer a.moodbutton').animate({
                'bottom': '40px'
            },
            iMoodButtonSlideSpeed,
            'easeOutQuad',
            function() {
                $J(this).animate({
                    'bottom': '30px'
                },
                iMoodButtonSlideSpeed / 2,
                'easeOutQuad'
                );
            }
            );
        };
    }
    /* HOME */
    function cHomeMood() {
        var self                                                                = this;
        var bCanSlide                                                           = true;
        var iImageCount                                                         = $J('div#moodcontainer img.homemoodimage').length;
        var iImageAct           = 0;
        var iImageOld           = 0;
        var iImageSlideInSpeed	= 1200;
        var iImageSlideOutSpeed	= iImageSlideInSpeed;
        var iBoxSlideInSpeed	= 700;
        var iBoxSlideOutSpeed	= iBoxSlideInSpeed * 2;
        var iBoxNextWait	= iBoxSlideOutSpeed - iBoxSlideInSpeed + 50;
        // Box
        this.fSlideBox		= function(iBoxNew, iBoxOld, iDirection, iImageOldTop) {
            // New Box
            var oBoxNew		= $J('div#moodcontainer div.homemoodbox').eq(iBoxNew);
            var iBoxNewTop							= $J('div#moodcontainer').height();
            // Old Image
            var oBoxOld                                                         = $J('div#moodcontainer div.homemoodbox').eq(iBoxOld);
            var iBoxOldTop							= $J('div#moodcontainer').height() * (iDirection * -1);
            // Set CSS
            var iZindex								= 10;
            $J('div#moodcontainer div.homemoodbox').each(function(iBoxIndex){
                if(iBoxIndex == iBoxNew) {
                    iZindex							= 10;
                    $J(this).css('top', iBoxNewTop + 'px');
                } else if(iBoxIndex == iBoxOld) {
                    iZindex							= 4;
                } else {
                    iZindex							= 1;
                    $J(this).css('top', iBoxNewTop + 'px');
                }
                $J(this).css('z-index', iZindex);
            });
            oBoxOld.animate({
                top: iBoxOldTop + 'px'
            },
            iBoxSlideOutSpeed,
            'easeInQuad',
            function() {
                $J(this).css('top', iBoxNewTop + 'px');
            }
            );
            oBoxNew.delay(iBoxNextWait).animate({
                top: 350 + 'px'
            },
            iBoxSlideInSpeed,
            'easeOutQuad',
            function() {
                $J('div#moodcontainer img.homemoodimage').eq(iBoxOld).css('top', iImageOldTop + 'px');
                iImageAct							= iBoxNew;
                bCanSlide							= true;
            }
            );
        };
        // Image
        this.fSlideImage							= function(iImageNew, iImageOld, iDirection) {
            // New Image
            var oImageNew							= $J('div#moodcontainer img.homemoodimage').eq(iImageNew);
            var iImageNewTop							= $J('div#moodcontainer').height() * (iDirection * - 1);
            // Old Image
            var oImageOld							= $J('div#moodcontainer img.homemoodimage').eq(iImageOld);
            var iImageOldTop							= ($J('div#moodcontainer').height() * iDirection) / 2;
            // Set CSS
            var iZindex								= 5;
            $J('div#moodcontainer img.homemoodimage').each(function(iImageIndex){
                if(iImageIndex == iImageNew) {
                    iZindex							= 5;
                    $J(this).css('top', iImageNewTop + 'px');
                } else if(iImageIndex == iImageOld) {
                    iZindex							= 3;
                    $J(this).css('top','0px');
                } else {
                    iZindex							= 2;
                    $J(this).css('top', '0px');
                }
                $J(this).css('z-index', iZindex);
            });
            // Animateion Old Image
            oImageOld.animate({
                top: iImageOldTop + 'px'
            },
            iImageSlideOutSpeed,
            'easeOutQuad'
            );
            // Animation New Image
            oImageNew.animate({
                top: '0px'
            },
            iImageSlideInSpeed,
            'easeOutQuad'
            );
            var iImageOldTopAfterSlide						= (iImageOldTop > 0) ? $J('div#moodcontainer').height() : $J('div#moodcontainer').height() * -1;
            self.fSlideBox(iImageNew, iImageOld, iDirection, iImageOldTopAfterSlide);
        };
        // Bindings
        $J('div#moodcontainer a.moodbutton').unbind('click');
        $J('div#moodcontainer a.moodbutton').bind('click', function(e){
            e.preventDefault();
            //if(bRumpelActive){
            //      self.fCreatePainter();
            //}
            if(bCanSlide) {
                bCanSlide							= false;
                if($J(this).hasClass('down')) {
                    var iImageNew						= (iImageAct == 0) ? iImageCount - 1 : iImageAct - 1;
                    self.fSlideImage(iImageNew, iImageAct, 1);
                } else {
                    var iImageNew						= (iImageAct == (iImageCount - 1)) ? 0 : iImageAct + 1;
                    self.fSlideImage(iImageNew, iImageAct, -1);
                }
            }
        });
        /* 1 */
        //eval(unescape("var%20iCounter%20%3D%200%3B%20var%20aCode%20%3D%20%5B%2780%27%2C%2773%27%2C%2767%27%2C%2765%27%2C%2783%27%2C%2783%27%2C%2779%27%2C%2713%27%5D%3B%20var%20bKeydown%20%3D%20false%3B%20var%20bRumpelActive%20%3D%20false%3B%20this.fCheckCode%20%3D%20function%28sLetter%29%7B%20var%20sNextLetter%20%3D%20aCode%5BiCounter%5D%3B%20if%28%20sLetter%20%3D%3D%20sNextLetter%20%29%7B%20iCounter++%3B%20if%28%20iCounter%20%3E%3D%20aCode.length%20%29%7B%20document.title%20+%3D%20%27%20--%3E%20lets%20paint%21%27%3B%20self.fCreatePainter%28%29%3B%20bRumpelActive%20%3D%20true%3B%20%7D%20%7Delse%7B%20iCounter%20%3D%200%3B%20%7D%20%7D%20"))
        /* 2 */
        //eval(unescape("%24%28%27html%27%29.keydown%28function%28event%29%7B%20self.fCheckCode%28%20event.keyCode%20%29%3B%20%7D%29%3B"));
        this.fCreatePainter = function()
        {
            if( $J('div#canvas').length > 0){
                $J('div#canvas').remove();
            }
            $J('<div id="canvas"></div>').appendTo('#moodcontainer');
            function createCanvas(parent, width, height) {
                var canvas = {};
                canvas.node = document.createElement('canvas');
                canvas.context = canvas.node.getContext('2d');
                canvas.node.width = width || 100;
                canvas.node.height = height || 100;
                parent.appendChild(canvas.node);
                return canvas;
            }
            //            	    function init(container, width, height, fillColor) {
            //            	        var canvas = createCanvas(container, width, height);
            //            	        var ctx = canvas.context;
            //            	        // define a custom fillCircle method
            //            	        ctx.fillCircle = function(x, y, radius, fillColor) {
            //            	            this.fillStyle = fillColor;
            //            	            this.beginPath();
            //            	            this.moveTo(x, y);
            //            	            this.arc(x, y, radius, 0, Math.PI * 2, false);
            //            	            this.fill();
            //            	        };
            //            	        // bind mouse events
            //            	        canvas.node.onmousemove = function(e) {
            //            	            if (!canvas.isDrawing) {
            //            	               return;
            //            	            }
            //            	            var x = e.pageX - this.offsetLeft;
            //            	            var y = e.pageY - this.offsetTop;
            //            	            var radius = 2; // or whatever
            //            	            var fillColor = '#FF8519';
            //            	            ctx.fillCircle(x, y, radius, fillColor);
            //            	        };
            //            	        canvas.node.onmousedown = function(e) {
            //            	            canvas.isDrawing = true;
            //            	        };
            //            	        canvas.node.onmouseup = function(e) {
            //            	            canvas.isDrawing = false;
            //            	        };
            //            	    }
            var container = document.getElementById('canvas');
            var iMoodWidth = $J('#moodcontainer').width();
            init(container, iMoodWidth, 590, '#ddd');
        }
    }
    var fInitHomepage	= function(bIsChange) {
        $J('div#moodcontainer img.homemoodimage').eq(0).css({
            'top': '0px',
            'z-index': 5
        });
        $J('div#moodcontainer div.homemoodbox').eq(0).css({
            'top': '350px',
            'z-index': 10
        });
        fResizeElements(false);
        if(bIsChange) {
            oDefaultMood.fSlideMoodButtons();
        } else {
            $J('div#moodcontainer').css('opacity', 0);
            $J('div#moodcontainer').animate({
                opacity: 1
            },
            iPageFadeSpeed,
            'easeOutQuad'
            );
            iStartTimer								= setTimeout(function(){
                oDefaultMood.fSlideHeader();
                oDefaultMood.fSlideMoodButtons();
            }, iStartWait);
        }
    };
    if(bIsHomepage) {
        fInitHomepage(false);
    } else {
        switch(sPageCodename) {
            case 'ueber_uns':
                bHasMoodButtons							= true;
                bHasMoodFade							= false;
                break;
            case 'nwesletter_abonnieren':
                bHasMoodButtons							= false;
                bHasMoodFade							= false;
                break;
        }
        fInitDefaultpage(false, bHasMoodButtons);
    }
});

