$(document).ready(function() {
    $.initFixBreadcrumbs();
    $.initLeftNav(); // must occur prior to main nav
    $.initMainNav();
    $.initFontReplacement();
    $.initFrmUtilitySearch();
    $.initJfontsizer();
    $.initHomeSlideshow();
    $.initHomeInfoTabs();
    $.initEdArticleTabs();
    $.initTabbedWidgetTabs();
    $.initHomeRecentBlog();
    //$.initCss3Effects(); // check to see if this is a memory/cpu hog on the client...
    $.initFullCalendar();
    $.initLeftSlideout();
});

jQuery.initFullCalendar = function()
{
    if ($("#boxFullCalendar").length > 0) {
        $('#boxFullCalendar').fullCalendar({
            //theme: true,
            timeFormat: 'h(:mm)t{ - h(:mm)t}\n',
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            eventRender: function(event, element) {
                element.after('<div class="fc-event-tooltip">' + element.clone().html() + '<div>' + event.summary + '</div></div>');
                element.tooltip({ 
                    position: "top left", 
                    offset: [0,130], 
                    relative: true,
                    effect: 'toggle'
                });
            },
            editable: false,
            events: "/events-json/"/*,
            loading: function(bool) {
                if (bool) $('#fullCalendarLoading').show();
                else $('#fullCalendarLoading').hide();
            }*/
        });
    }
}

jQuery.initLeftSlideout = function()
{
    if ($("#boxLeftSlideout").length > 0) {
        $('#boxLeftSlideout').css('display','block').tabSlideOut({
            tabHandle: '#leftSlideoutTrigger',
            tabLocation: 'left', 
            speed: 300,
            action: 'click',
            topPos: '240px',
            leftPos: '20px',
            fixedPosition: false
        });
        $('#boxLeftSlideout a:not(#leftSlideoutTrigger)').click(function() {
            $('#leftSlideoutTrigger').click();
        });
    }
}

jQuery.initHomeSlideshow = function()
{
    $('ul#homeMultiMediaSlides').cycle({
        fx: 'fade',
        pause: 1, // enable pause on hover
        timeout: 8000, // 8 seconds between transitions
        prev: 'li#homeMultiMediaNavPrev',
        next: 'li#homeMultiMediaNavNext'
    });
    $('#boxHomeMultiMedia').hover(
        function() {
            $('ul#homeMultiMediaNav').fadeIn();
        },
        function() {
            $('ul#homeMultiMediaNav').fadeOut();
        }
    );
}

jQuery.initFixBreadcrumbs = function()
{
    // Need to set proper class for nav items that don't work well with Pods content pages
    var sPageUrl = location.pathname;
    var oUrls = ['/can-do-ms-media-room/','/multiple-sclerosis-stories/'];
    for (iUrlNum in oUrls) {
        if (sPageUrl.indexOf(oUrls[iUrlNum]) != -1) {
            $('#boxNav li > a[href*='+oUrls[iUrlNum]+']').parent().addClass('current-menu-item');
        }
    }
}

jQuery.initLeftNav = function()
{
    if ($("#boxLeftNav").length > 0) {
        // Track down the data we need from the man nav and append to left nav ul
        var oTree;
        $('#boxNav ul.menu > li').each(function(idxLi, itemLi) {
            if ($(itemLi).hasClass('current-menu-item') || $(itemLi).find('li.current-menu-item').length > 0) {
                oTree = $(itemLi).clone();
                $(oTree).addClass('navLeftTopLevel');
                $(oTree).find('li.current-menu-item').addClass('navLeftActive');
                $(oTree).find('li.navLeftActive').parents('li:not(.navLeftTopLevel)').addClass('navLeftActive');
                $(oTree).find('li:not(.current-menu-item) > ul.sub-menu').each(function(idxUl, itemUl) {
                    if ($(itemUl).find('li.current-menu-item').length == 0) {
                        $(itemUl).remove();
                    }
                });
                return; 
            }
        });
        $('#boxLeftNav ul.leftNavContainer').append(oTree);

        $('ul.leftNavContainer li:not(.navLeftTopLevel):not(.navLeftActive)').click(
        function() {
            var sHref = $(this).find("a").attr("href");
            if (sHref != null && sHref != "") {
                location.href = sHref;
            }
        }).hover(function() {$(this).css('cursor','pointer')}, function() {$(this).css('cursor','')});
        $('ul.leftNavContainer li:not(.navLeftTopLevel):not(.navLeftActive)').hover(
        function() {   
            $(this).addClass("navLeftOver");
        },    
        function() {   
            $(this).removeClass("navLeftOver");
        }); 
    }
}

jQuery.initCss3Effects = function()
{
    if (!Modernizr.boxshadow) {
        $('#boxPageLayoutEffects').dropShadow({blur:5,opacity:0.65,left:0,top:0});
        //$('ul.leftNavContainer').dropShadow({blur:5,opacity:0.65,left:0,top:0});
        //$('li.widget-container').dropShadow({blur:5,opacity:0.65,left:0,top:0});
    }
}

jQuery.initJfontsizer = function()
{
    $('#btnFontSizer').jfontsizer({
        applyTo: '.contentMain',
        changesmall: '2',
        changelarge: '2',
        expire: 30
    });            
}

jQuery.initHomeRecentBlog = function()
{
    if ($("#boxHomeRecentBlog").length > 0) {
        $('#boxHomeRecentBlog').rssfeed('http://twitter.com/statuses/user_timeline/12803822.rss', {
            limit: 1
        });
    }
}

jQuery.initHomeInfoTabs = function()
{
    if ($("ul.tabsHomeInfo").length > 0) {
        $("ul.tabsHomeInfo").tabs("div.panesHomeInfo > div.pane");
    }
}

jQuery.initEdArticleTabs = function()
{
    if ($("ul.tabsEdArticle").length > 0) {
        $("ul.tabsEdArticle").tabs("div.panesEdArticle > div.pane");
    }
}

jQuery.initTabbedWidgetTabs = function()
{
    if ($("ul.tabsTabbedWidget").length > 0) {
        $("ul.tabsTabbedWidget").tabs("div.panesTabbedWidget > div.pane");
    }
}

jQuery.initMainNav = function()
{
    $('#boxNav ul.menu > li').each(function(index, item) {
        // Shim up nav buttons
        if (index == 0) {
            $(item).before('<li><a href="#" class="navLeftShim"></a></li>');
        }
        // Append fake element to give some height so tooltip effect fires
        if ($(item).find('ul.sub-menu').length == 0) {
            $(item).append('<ul class="sub-menu-spacer"></ul>');
        }
        // Assign class associated with proper bg images for nav and hide textual nav names
        $(item).children('a').addClass('navItem_' + index);
        $(item).children('a').css('white-space','nowrap').css('text-indent','-10000px');
        // Grab width from css to add to our effect and wire up the events
        var iWidth = $('.navItem_'+index).css('width');
        iWidth = iWidth.replace('px','');
        iWidth = 0 - parseInt(iWidth);
        // Determine if we need to breadcrumb this item
        if ($(item).hasClass('current-menu-item') || $(item).find('li.current-menu-item').length > 0) {
            $(item).children('a').addClass('navOver_' + index);
            $('.navItem_' + index).tooltip({
                relative: true,
                position: 'bottom right',
                offset: [0, iWidth]
            });
        } else {
            $('.navItem_' + index).tooltip({
                relative: true,
                position: 'bottom right',
                offset: [0, iWidth],
                onBeforeShow: function() {
                    $('.navItem_' + index).addClass('navOver_' + index);
                },
                onHide: function() {
                    $('.navItem_' + index).removeClass('navOver_' + index);
                }
            });
        }
    });
    $('#boxNav').css('visibility','visible');
}

jQuery.initFrmUtilitySearch = function()
{
    var sDefaultText = "Search this Site";
    $("#txtUtilitySearch").val(sDefaultText);
    $("#txtUtilitySearch").focus(
        function() {
            if (this.value == sDefaultText) {
                this.value = '';
            }
        }).blur(
        function() {
            if (this.value == "") {
                this.value = sDefaultText;
            }
        });
    $("#frmUtilitySearch").submit(
    function() {
        if (this.txtUtilitySearch.value == sDefaultText) {
            this.txtUtilitySearch.value = "";
        }
    });
}

jQuery.initFontReplacement = function()
{
    Cufon.replace('h1');
    Cufon.replace('span.homeMultiMediaSlideMessageTeaser');
    Cufon.replace('div.homeMultiMediaSlideMessage > a');
    Cufon.replace('span.txtDoubleRightArrow');
}


