(function($){

    $(function()
    {
        // Carousel

        // Knobs

        // The opacity of the image shadow.
        //var shadowOp = 0.5;
        
        // The speed the image shadow slides up and down.
        var shadowSpeed = 500;

        // The speed at which the caption fades in and out.
        var fadeSpeed = 800;

        // The easing function for sliding between images.
        var slideEasing = "easeInOutQuad";

        // The speed at which the carousel slides.
        var slideSpeed  = 500;
                
       
        // Create the carousel buttons.
        var carousel = $("div.carousel");
        var items = carousel.find("li");
        var nav = $("div.carousel-bar div.nav-bar");
        items.each(function(i)
        {
            var el = $("<span>");
            if (i == 0) el.addClass("selected");
            nav.append(el);
        });

        // Opacitize the shadows.
        //$("div.shadow").css("opacity", shadowOp);

        // Make the non-showing items have full shadow
        $("div.shadow").each(function(i)
        {
            if (i != 1) $(this).css("top", "-300px");
        });

        $("div.caption").each(function(i)
        {
            if (i != 1) $(this).hide();
        });                

        var lastDotNum = 0;
        var dotNum = 0;

        var dots = $("div.carousel-bar div.nav-bar span");
        var dotSelectors = [];
        dots
            .each(function(i) {

                dotSelectors.push(dots.selector + ":eq(" + i + ")");

            })
            .click(function() {

                if (locked) return;

                var el = $(this);

                // Figure out what number it is.
                lastDotNum = dotNum;
                dotNum = el.prevAll().length;

                dots.removeClass("selected");
                el.addClass("selected");

            });

        var locked = false;
        carousel.jCarouselLite({
            btnGo: dotSelectors,
            easing: slideEasing,
            speed: slideSpeed,            
            beforeStart: function()
            {
                locked = true;
                if (lastDotNum == dotNum) return;
                
                var item = items.eq((lastDotNum + 1) % items.length);
                carousel
                    .find("li:has(img[src=" + item.find("img").attr("src") + "])")
                    .find("div.shadow").animate({ top: "-300px" }, shadowSpeed).end()
                    .find("div.caption").fadeOut(fadeSpeed);
            },
            afterEnd: function() 
            {
                locked = false;
                if (lastDotNum == dotNum) return;

                var item = items.eq((dotNum + 1) % items.length);
                carousel
                    .find("li:has(img[src=" + item.find("img").attr("src") + "])")
                    .find("div.shadow").animate({ top: "-40px" }, shadowSpeed).end()
                    .find("div.caption").fadeIn(fadeSpeed);                
            },
            auto: 4800
        });

        // Tweet

        $("div.tweet").tweet({
            username: "theJUNOAwards",
            join_text: "auto",
            avatar_size: 0,
            count: 3,
            auto_join_text_default: "",
            auto_join_text_ed: "",
            auto_join_text_ing: "",
            auto_join_text_reply: "",
            auto_join_text_url: "",
            loading_text: "Loading Twitter..."
        });

        // Sponsor Rotator

        $("div.sponsors ul").innerfade({
            animationtype: 'fade',
            speed: 1500,
            timeout: 4000,
            type: 'sequence',
            containerheight: '100px'
        });

        // Embedded Pages

        $("div.embeddable").each(function()
        {
            var el = $(this);
            var arr = el.attr("id").split("-");
            var id = arr[1];

            if (id)
            {                
                el.load(wp.site_url, "page_id=" + id);
            }
        });


        // Archive Expander

        $("div.archive-line div.excerpt").hide();
        $("div.archive-line div.header")
        .css("cursor", "pointer")
        .click(function() {

            var el = $(this);
            el.siblings("div.excerpt").slideToggle();

        });

        // Tooltip
        $("a.tooltip").tooltip('#tool-tip');
		
		// Pad Mozilla tables.
        if ($.browser.mozilla)
        {
            $('div.firefox-tables-suck').css("padding-left", "1px");
        }
        
        // Nominees

        $("#jump-menu").change(function(){
            location.href = $("#jump-menu").val();
        });

        $("div.nominee-Category:even").addClass('category-bg-even');
        $("div.nomTitle")
        .hover(
            function(){
                $(this).addClass("nominee-hover");
            },
            function(){
                $(this).removeClass("nominee-hover");
            }
            )
        .click(function(){

            var el = $(this);
            var nameClass = el.parent().attr("class");
            var awardId = el.parent().parent().parent().attr("id");
            
            var bioUrl = wp.site_url
                + "/2010-nominees/"
                + awardId.toLowerCase() + '-'
                + nameClass.toLowerCase();
            
            var resourceBase = wp.site_url + "/wp-content/2010nominees";
            
            el.siblings('.nominee-Content').load(resourceBase +"/" + awardId + "/" + nameClass + ".html", function(){

                AudioPlayer.embed(awardId + "-" + nameClass, {
                    soundFile: resourceBase + '/' + awardId + "/" + awardId + "-" + nameClass + ".mp3"
                });

                $(this).children().children(".pic").attr({
                    src: resourceBase + '/' + awardId + '/' + nameClass + '.jpg'
                });

                $(this).slideToggle();
                    
            });
        });

        $('<a href="#top" class="anchor">Back to Top</a>')
            .insertBefore('div.nominee-Category > div > h3:gt(1)');
        $('<em>Winner</em><br />')
  			.insertBefore('div.winner > strong:gt(0)');
            
        // JunoCup Scroller
        //$('div.junoCup-ticket-info-button').click(function(){
        //	$.scrollTo('.junoCup-bar3', 1000, {easing:'easeInQuad'});
        //});
        
		// JunoFest Scroller
		$('div.junoFest-ticket-info-button').click(function(){
        	$.scrollTo('.junoFest-tickets-block-1', 1000, {easing:'easeInQuad'});
        });
        
        // Juno Week Photo Bar
        $("div.photobar ul").innerfade({
            animationtype: 'fade',
            speed: 1500,
            timeout: 4000,
            type: 'random',
            containerheight: '270px'
        });

        //Shadowbox
		$('.attachment-thumbnail')
			.parent()
			.addClass('thickbox')
			.attr('rel','gallery');
		
    });
    
})(jQuery);

// Audio Player

AudioPlayer.setup("http://www.junoawards.ca/wp-content/themes/junoz/flash/player.swf", {  
    width: 500,
    transparentpagebg: "yes"
});
