$(function(){ $('.homepage-news.fluid-list font').attr('color',''); }); function menuClose(animate) {
    if ($('body').hasClass('home'))
        return;

    var $menu = $('ul.menu');
    var $nav = $menu.closest('div');

    var w = $menu.outerWidth();

    if (!animate) {
        $menu.css('margin-left', -w + 'px');
        $nav.find('a.left,a.right').stop(true).animate({'margin-bottom' : '75px'}, 250);
        return;
    }

    $menu.stop(true).animate({'margin-left' : -w + 'px'}, 500, function() {
        $nav.find('a.left,a.right').stop(true).animate({'margin-bottom' : '75px'}, 250);
    });
}

function menuOpen(animate) {

    var $menu = $('ul.menu');
    var $nav = $menu.closest('div');

    if (!animate) {
        $menu.css('margin-left', '0px');
        $menu.stop(true).animate({'margin-left' : '0px'}, 500);
        return;
    }

    $nav.find('a.left,a.right').stop(true).animate({'margin-bottom' : '-32px'}, 100);
    $menu.stop(true).animate({'margin-left' : '0px'}, 500);
}



$('ul.menu').each(function() {
    var $menu = $(this);
    var h = $menu.outerHeight();
    var $nav = $menu.closest('div');
    var hoverTimeout;

    //hide menu and show tab on all pages except homepage;
    if (!$('body').hasClass('home')) {
        $menu.addClass('hidden');
        menuClose(false);

        if (typeof headerTitle == 'undefined')
            headerTitle = '';

        var $tab = $('<li class="tab"><span></span>' + headerTitle + '</li>').appendTo($menu).find('span').click(function(e) {
            e.preventDefault();
            menuOpen(true);
        });

        $menu.hover(
            function() {
                clearTimeout(hoverTimeout);
            },
            function() {
                hoverTimeout = setTimeout(function() {
                    menuClose(true);
                }, 1000)
            }
        );
    }

    //check for mobile devices;
    if (navigator.userAgent.indexOf('Mobi') > 0 || navigator.userAgent.indexOf('mobi') > 0) {
        if (navigator.platform != 'iPad') {
            $('body').addClass('mobile');
            menuClose(true);
            return;
        } else {
            $('body').addClass('ipad');
            menuClose(true);
        }
    }

    //check if there are any slider images to display;
    if (typeof sliderImages != 'undefined' && sliderImages.length > 0) {

        var $slider = $('<ul class="nav-slider"></ul>').css({'height' : h + 'px', 'margin-bottom' : -h + 'px'}).insertBefore($menu);
		
		//console.log(sliderImages);
		//load last image first
    	var image = $('<img alt="" src="' + sliderImages[sliderImages.length - 1].url + '">');
    	image.load(function() {
    		//console.log(this);
    		for(var i = sliderImages.length - 2; 0 <= i; i--) {
    			$('<li><img alt="" src="' + sliderImages[i].url + '"></li>').prependTo($slider);
    		}
    	});
    	
    	var li = $('<li></li>');
    	li.append(image);
    	li.prependTo($slider);
    	
        if (!$('body').hasClass('home') && sliderImages.length > 1) {

            var timeout = 0;

            var $left = $('<a href="#" class="left">left</a>').appendTo($nav).click(function(e) {
                e.preventDefault();
                clearTimeout(timeout);
                timeout = setTimeout(function() { $(this).click(); }, 4500);
                var $last = $slider.find('li:not(.animate-left):last');
                $last.clone().prependTo($slider);
                $last.addClass('animate-left').stop(true).animate({'width' : 0}, 500, function() { $last.remove(); });
            });

            var $right = $('<a href="#" class="right">right</a>').appendTo($nav).click(function(e) {
                e.preventDefault();
                clearTimeout(timeout);
                timeout = setTimeout(function() { $(this).click(); }, 4500);
                var $first = $slider.find('li:not(.animate-right):first');
                var $clone = $first.clone().stop(true).css('width', '0px').appendTo($slider);
                $first.addClass('animate-right');
                $clone.animate({'width' : '100%'}, 500, function() { $first.remove(); });
            });

            timeout = setTimeout(function() { $left.click(); }, 20000);
        }
    }

    //add fullscreen image if needed
    if (typeof fullScreenImage != 'undefined') {
        var $mask = $('<ul class="fullscreen-mask"></ul>').css({'height' : h + 'px', 'margin-bottom' : -h + 'px'}).insertBefore($menu);

    }
});


//show menu hover image on homepage
$('body.home ul.menu>li').hover(
    function(e) {
        e.stopPropagation();
        var i = $(e.target).closest('li').prevAll().length;
        var $active = $('ul.nav-slider>li:eq(' + i + ')').addClass('active').fadeIn(0);
        $active.siblings().removeClass('active').fadeOut(500);
    },
    function(e) {
        e.stopPropagation();
    }
);


//fullscreen image handling;
$('ul.fullscreen-mask').each(function() {
    var $mask = $(this);
    var f = fullScreenImage;
    var $image = $('<li class="fullscreen-image"><span class="cursor">Click to close</span></li>').appendTo($mask).click(function() {
        $mask.find('a.active').click();
    });

    $('<img src="' + f.url  + '" alt="">').load(function() {
        $('p.thumbnail span').drag();
    }).appendTo($image);

    var $cursor = $image.find('span');

    var $nav = $('<li class="fullscreen-nav"></li>').appendTo($mask);

    $nav.append('<h2><span>' + f.navFirstLine + '</span>' + f.navSecondLine + '<span>' + f.navThirdLine + '</span></h2>');

    var $a = $('<a href="#">' + f.navButtonLabel[0] + '</a>').click(function(e) {
        e.preventDefault();
        var $a = $(this);

        if ($a.hasClass("active")) {
            fullScreenClose();
            $(this).text(f.navButtonLabel[0]);
        } else {
            fullScreenOpen();
            $(this).text(f.navButtonLabel[1]);
        }

        $a.toggleClass('active');
        $image.find('span').toggleClass('active');

    }).appendTo($nav);

    $nav.append('<p class="thumbnail"><span></span><img src="' + f.thumbnailUrl + '" alt=""></p>');

    $nav.find('p.thumbnail span').each(function() {
        var $span = $(this);
        var $p = $span.closest('p');
        var mask = $mask.offset();

        $span.drag(function(ev, dd) {

            var pHeight = $p.outerHeight();
            var pWidth = $p.outerWidth();

            if (typeof dd == 'undefined') {
                var s = $span.offset();
                dd = {offsetX: s.left, offsetY: s.top }
            }

            //change size of span based on window size and image size;
            var spanWidth = Math.round($p.outerWidth() * $mask.outerWidth() / $image.outerWidth());
            var spanHeight = Math.round($p.outerHeight() * $mask.outerHeight() / $image.outerHeight());


            $span.css({
                'width': spanWidth + 'px',
                'height': spanHeight + 'px'
            });

            var p = $p.offset();
            var h = pHeight - spanHeight;
            var w = pWidth - spanWidth;
            var y = Math.max(0, Math.min(dd.offsetY - p.top, h));
            var x = Math.max(0, Math.min(dd.offsetX - p.left, w));

            $span.css({
                'top': y + 'px',
                'left': x + 'px'
            });

            var dy = y / (h + spanHeight);
            var dx = x / (w + spanWidth);

            //console.log($mask.outerHeight() * dy, $mask.outerWidth() * dx);

            $image.css({
                'top':  - ($image.outerHeight() * dy) + 'px',
                'left':  - ($image.outerWidth() * dx) + 'px'
            });
            return

            $image.css({
                'top':  - 100 * dy + '%',
                'left':  - 100 * dx + '%'
            });
        });
    });

    $(document).mousemove(function(e) {
        if ($a.hasClass('active')) {
            $cursor.css({'left': e.pageX - 48, 'top': e.pageY - 23});
        }
    });

});


function fullScreenOpen() {
    var $menu = $('ul.menu');
    var $mask = $('ul.fullscreen-mask');
    var $content = $('div.content');
    var $footer = $('div.footer');
    var $header = $('form.header');
    var $image = $mask.find('img');

    $('ul.submenu').slideUp(500);
    $('div.page-title').slideUp(500);
    $('div.related-products').slideUp(500);
    $('div.content').slideUp(500);

    //if (!$content.attr('height'))
    //    $content.attr('height', $content.height());

    $menu.insertBefore($mask);
    //$mask.css({'margin' : -$menu.outerHeight() + 'px 25px 0'}).stop(true).animate({'height' : ($(window).height() - $header.outerHeight() - $footer.outerHeight()) + 'px'}, 500, function() {
    $mask.css({'margin' : -$menu.outerHeight() + 'px 25px 0'}).stop(true).animate({'height' : $image.outerHeight() + 'px'}, 500, function() {
        /*var scrollTimeout = setInterval(function() {
            var top = $(window).scrollTop();

            if (top == 0) {
                clearTimeout(scrollTimeout);
                return;
            }

            if (top <= 1) {
                $(window).scrollTop(0);
                return;
            }

            $(window).scrollTop(Math.round(top / 2));
        }, 30);*/
        $('p.thumbnail span').drag();
    });

    //$content.stop(true).animate({'height': '0px', 'margin-top': '-52px'}, 500);
}


function fullScreenClose() {
    var $menu = $('ul.menu');
    var $mask = $('ul.fullscreen-mask');
    var $content = $('div.content');

    $('ul.submenu').slideDown(500);
    $('div.page-title').slideDown(500);
    $('div.related-products').slideDown(500);
    $('div.content').slideDown(500);

    $mask.closest('div').animate({'height': $menu.outerHeight() + 'px'}, 500, function() {
        $(this).css('height', 'auto');
    });

    $mask.stop(true).animate({'height' : $menu.outerHeight() + 'px'}, 500, function() {
        $menu.insertAfter($mask);
        $mask.css({'margin' : '0 25px ' + -$menu.outerHeight() + 'px'});
        $('p.thumbnail span').drag();
    });

    //$content.stop(true).animate({'height': $content.attr('height') + 'px', 'margin-top': '0'}, 500);
}


$(window).resize(function() {
    menuClose(false);
    $('p.thumbnail span').drag();
});


//Toggle classes for IE6;
if ($.browser.msie && $.browser.version <= 6) {
    $('ul.menu').hover(
        function() { $(this).addClass('hover'); },
        function() { $(this).removeClass('hover'); }
    );
    $('ul.menu>li:not(".tab")').hover(
        function() { $(this).addClass('hover'); },
        function() { $(this).removeClass('hover'); }
    );
}

//language selection
$('#language').change(function(e) {
    $(this).closest('form').find(':submit').click();
});

//language selection
$('form.store-locator select').change(function(e) {
    $(this).closest('form').find(':submit').click();
});


//add blue corner for fluid list images;
$('ul.fluid-list:not(.stores) p.image, div.related-products ul p.image').each(function() {
    var $image = $(this);
    var link = $image.closest('li').find('p.links a').attr('href');

    if (!link)
        return;

    var $span = $('<a class="corner">+</a>').attr('href', link);

    $image.hover(
        function() { $span.appendTo($image) },
        function() { $image.find('a.corner').remove(); }
    );
});

