var tabs = null; // jQuery object pointing at $("#home-banner-container li")
var heroTimeoutId = -1; // setTimeout id for tab auto-advance
var currentTabIndex = -1; // current tab's index in 'tabs'
var heroAutoTime = 12000; // time in milliseconds to switch to the next tab
var tickerAutoTime = 7000; // time in milliseconds to switch to the next ticker headline
var watermark = "Search this site..."; // search box default text
var isTickerRunning = true; // ticker pause flag
jQuery(document).ready(function() {
    /************************************ 
    Global Style settings */
    $(".rsrclink a[@href$=pdf]").addClass("iconr pdf");
    $(".rsrclink a[@href$=zip]").addClass("iconr zip");
    /************************************ 
    Nav */
    var hideMenu;
    var menu;
    $("a.drop-link").hover( function() {
        // Hide other menus
        $(".navcurrent").removeClass("navcurrent")
        $(this).addClass("navcurrent");
        
        $(".drop").hide();
        if (hideMenu) clearTimeout(hideMenu);
        // Configure menu position    
        var listItems = $(this).parent().parent().children();
        var i = $(listItems).index($(this).parent()) + 1;
        var count = $(listItems).length;
        var left = $(this).position().left;
        var top = $(this).position().top + $(this).height();        
        var offset = 30;
        menu = $(this).next();
        
        switch(true) 
        {
        case (i == 1):
            break;
        case ((i > 1) && (i <= (count / 2))):
            left += (-offset); 
            break;
        case ((i > (count / 2)) && (i <= (count - 1))):
            left += (-$(menu).width() + $(this).width() + offset);
            break;
        case (i == count):
            left += (-$(menu).width() + $(this).width());
            break;
        default:
            //alert("default");
        }
        
        // Show link's menu    
        $(menu).css("left", left +"px");
        $(menu).css("top", top + "px");
        $(menu).show();
        
        // special treatment for the stay connected menu
       // $('div#stay-connected').css("left", left-150 +"px").css("background-image", "none");

    }, function () {
        hideMenu = setTimeout( function() { $(menu).hide(); $(menu).prev().removeClass("navcurrent");}, 500);
    });
    
    $(".drop").hover( function() {
        if (hideMenu) clearTimeout(hideMenu);
        $(menu).show();
    }, function () {
        hideMenu = setTimeout( function() { $(menu).hide(); $(menu).prev().removeClass("navcurrent");}, 500);
    });              
    /************************************ 
    Homepage Hero */
    tabs = $("#home-banner-nav li");
    tabs.bind("mouseenter", function() {heroSelectTab($(this)); clearTimeout(heroTimeoutId)});
    tabs.bind("mouseleave", function() {heroSetTimeout()});
    heroSelectTab(tabs.get(0));
    heroSetTimeout();
    /************************************ 
    Learn More tabs */
    $(".home-resources-group:first").show();
    $(".rsrctabs a").click( function() {
        var hash = $(this).attr("href");
        $(".home-resources-group").hide();
        $(".rsrctabs a").removeClass("a");
        $(this).addClass("a");
        $(hash).fadeIn("slow");
        return false;
    });
    // first 3 items per blog list
    $( ".blog-posts .feedburnerFeedBlock[ @id ^= 'EnterpriseLicenseOptimization' ] li:gt(2)" ).hide();
    $( ".blog-posts .feedburnerFeedBlock[ @id ^= 'EntitlementComplianceManagement' ] li:gt(2)" ).hide();
    $( ".blog-posts .feedburnerFeedBlock[ @id ^= 'InstallTalk' ] li:gt(2)" ).hide();

    /************************************ 
    Featured Topic */
    randomFeaturedTopic();
    /************************************ 
    Spotlight ticker */
    runTickerAnimation(0);
    $("#home-ticker .prev").click(function() {moveTicker(-1); return false;}).hover(function() {pauseTicker();}, function() {resumeTicker();});
    $("#home-ticker .next").click(function() {moveTicker(1); return false;}).hover(function() {pauseTicker();}, function() {resumeTicker();});
    $("#home-ticker .headlines p").bind("mouseenter", function() {pauseTicker()});
    $("#home-ticker .headlines p").bind("mouseleave", function() {resumeTicker()});
    /************************************ 
    FancyBox wireup */
//    $("a.fancybox-youtube").fancybox({
//         'frameWidth': 425,
//         'frameHeight': 344,
//         'overlayOpacity': 0.4,
//         'overlayColor': '#000000'
//     });
//    $("a.fancybox-img").fancybox({
//        'overlayOpacity': 0.4,
//        'overlayColor': '#000000',
//        'zoomSpeedIn': 600,
//        'zoomSpeedOut': 300
//    });
    /************************************ 
    Search box */
    var strWatermark = "Search this site...";
    $("#nav-search input").focus( function() {
        if($(this).val() == strWatermark) {
            $(this).val("");
        }
    }).blur( function() {
        if($(this).val() == "") {
            $(this).val(strWatermark);
        }
    });
    /************************************ 
     graphical list cleanup, initiated within Partner Section */
    $('.subtabs:not(:has(ul))').hide();    

    /************************************ 
    Resources */
    $(".rsrc-group a.details-link").toggle( function() {
        $(this).removeClass("plus").addClass("minus");
        $(this).next().show();
        return false;
    }, function () {
        $(this).removeClass("minus").addClass("plus");
        $(this).next().hide();
        return false;
    });
    $(".linkhdr #jumpto").change( function() {
        var hash = "#" + $(this).val();
        $.scrollTo(hash, 700, { easing:'easeOutExpo' }); 
        /* insert top anchor and "top" links if we haven't already */
        if($('#topanchor').length == 0)
            $('body').prepend("<a id='topanchor' name='top'></a>");
        if($('.toplink').length == 0)
            $('.rsrc-toppicks .icon').prepend("<div class='toplink'><a href='#top'>top</a></div>");
    });
    /* display description, remove expand link with .expandAll */
    $(".rsrc-group a.details-link").next().show();
    $(".rsrc-group a.details-link").hide();
    //     $(".expandAll div.rsrc-group a.details-link").hide();
    // $(".expandAll div.rsrc-group div.details p").show();
    /* if we're in the resources section, expand all */
    if (window.location.href.indexOf("resources")!=-1) {
        $("div.rsrc-group a.details-link").hide();
        $("div.rsrc-group div.details p").show();
    }
    /* if no items, hide section & heading */
    $(".noitems").hide();
    $(".noitems").prev().hide();

    /* restrict table to 5 rows.  Initially for events page: ".top5rows" applied to the H2 of that section */
    $(".top5rows").parent().next("table").find("tr:gt(4)").hide();


    /************************************ 
    Stay Connected drop-down */
    var hideMenu = false;
    $("#togglestaycon, #stay-connected").hover( function () {
        if (hideMenu) clearTimeout(hideMenu);
        var p = $("#togglestaycon").position();
        $("#stay-connected").css("left", (p.left - 251) +"px").css("top", (p.top + 23) + "px").show();  
    }, function() {
        hideMenu = setTimeout( function() { $("#stay-connected").hide(); }, 350);
    });
    var stubLI = '<LI class="iconl twitter" style="position:absolute;left:-3000px;top:-3000px;"><A href="/"></A></li>';
    $(".drop-colr ul:first").prepend(stubLI);
    $(".multipopup ul:first").prepend(stubLI);

    /************************************ 
    training floating regbox */
    $(".regbox-link").hover( function() {
        $(this).addClass("hover")
    }, function () {
        $(this).removeClass("hover")
    });
    $(".regbox-link").hover( function() {
        $(this).addClass("hover")
    }, function () {
        $(this).removeClass("hover")
    });
    $(".regbox-link").click(function() { 
        window.open($(this).find("a:first").attr("href"));
    });
    
    /************************************ 
    Footer twitter menu */
    $(".twittermenuTrigger, .twittermenu").hover(function() { 
        $('.twittermenuTrigger a').addClass('hover'); 
        $(".twittermenu").show();
        $(".twittermenu").addClass("showMenu");
    } , function() { 
        $('.twittermenuTrigger a').removeClass('hover'); 
        $(".twittermenu").hide();
        $(".twittermenu").removeClass("showMenu");
    });
    $(".twittermenuTrigger a").click(function() { 
        return(false);
    });    

    /************************************ 
    Important Pull Down Message 
    $("#pulldown-tab a").click(function() {
        $("#impsg-panel").slideToggle("slow");
        $(this).toggleClass("a");
        return false;
    });
    */

    /************************************ 
    Site Map styling */
    var $div = $("div.grp p");
    var j = 0;
    for(i = 0; i < $div.length; i++) {
        /* Apply appropriate style to each div group and paragraph link since we 
        overrode table-based output for the sitemap */
        switch (j) {
            case 0: $div.eq(i).addClass("home"); break;
            case 1: $div.eq(i).addClass("lvl1"); break;
            case 2: $div.eq(i).addClass("lvl2"); break;
            case 3: $div.eq(i).addClass("lvl3"); break;
            case 4: $div.eq(i).addClass("lvl4"); break;
        }
        
        /* Reset counter, max depth is 5 */
        j++;
        if (j == 5) { j = 0; }
    }
    
    /************************************ 
    Banner navigation */
    var cssBnr = $("div#bnrnav").attr("class");
    if (cssBnr != undefined) { cssBnr = cssBnr.substr(0, cssBnr.length - 1); }
    $("div#bnrnav a").hover(function() {
        var i = parseInt($(this).attr("id"));        
        $("div#bnrnav").removeClass(cssBnr + "0").addClass(cssBnr + i);
    }, function() {
        $("div#bnrnav").removeClass(cssBnr + "1").removeClass(cssBnr + "2").removeClass(cssBnr + "3").removeClass(cssBnr + "4");
        $("div#bnrnav").addClass(cssBnr + "0");
    });
    /************************************ 
    Default first tab show */
    $("div#subtabs ul li a:first").addClass("a");
    $("div.pgtab-inner").hide();
    $("div.pgtab-inner:first").show();
    /************************************ 
    Tab toggling */
    $("div#subtabs ul li").click(function(event) {
        /* Set CSS for click */
        event.preventDefault();
        $("div#subtabs ul li").find("a").removeClass("a");
        $(this).find("a").addClass("a");
        
        /* Toggle tab data */
        $(".pgtab-inner").hide();
        var elemID = $(this).attr("id");
        $("div#" + elemID + "_Data").show();
    });
    /************************************ 
    reverse tab order: for tabs that navigate pages, not toggle divs */
    $("div.subtabs ul").attr("id","reversetab");
    $("div#subtabs ul").attr("id","");
    reverse(document.getElementById('reversetab'));


   
    
    /************************************ 
    Features hide/show all bar */
    $("div.feat-showall a").toggle(function(event) {
        event.preventDefault();
        $("table.featlist div.full").show();
        $("table.featlist a.iconr").text("Less").removeClass("plus").addClass("minus");
        $(this).text("Hide All").removeClass("plus").addClass("minus");
        $("span.overview").removeClass("overview").addClass("overviewlt");
    }, function(event) {
        event.preventDefault();
        $("table.featlist div.full").hide();
        $("table.featlist a.iconr").text("More").removeClass("minus").addClass("plus");
        $(this).text("Show All").removeClass("minus").addClass("plus");
        $("span.overviewlt").removeClass("overviewlt").addClass("overview");
    });
    /************************************ 
    Features hide/show */
    $("table.featlist div.full").hide();
    $("table.featlist a.iconr").click(function(event) {
        event.preventDefault();
        $(this).next().slideToggle("slow");        
    });
    $("table.featlist a.iconr").toggle(function(event) {
        $(this).text("Less").removeClass("plus").addClass("minus");
        $(this).prev().removeClass("overview").addClass("overviewlt");
    }, function(event) {
        $(this).text("More").removeClass("minus").addClass("plus");
        $(this).prev().removeClass("overviewlt").addClass("overview");        
    });
    /************************************ 
    Select navigation menu */
    $("#select-nav select").change(function() {
        window.location = $("#select-nav select:not(.placeholder) option:selected").val();
    });
    // $("#select-nav").hide();

    /************************************ 
    jQuery GA Event Tracker 
    blog.rebeccamurphey.com/2008/12/04/update-tracking-outbound-clicks-with-google-analytics-and-jquery */
    // downloads
    var fileTypes = ['doc','xls','pdf','ppt'];
    $('a').click(function() {
      var $a = $(this);
      var href = $a.attr('href');
      var hrefArray = href.split('.');
      var extension = hrefArray[hrefArray.length - 1];
      if ($.inArray(extension,fileTypes) != -1) {
        pageTracker._trackEvent('download', extension, href);
      }
    });
    // external links
    $('a').click(function() {
      var $a = $(this);
      var href = $a.attr('href');
      // see if the link is external
      if ( (href.match(/^http/)) && (! href.match(document.domain)) ) {
        // if so, register an event
        var category = 'outgoing'; // set this to whatever you want
        var event = 'click'; // set this to whatever you want
        var label = href; // set this to whatever you want
        pageTracker._trackEvent(category, event, href);
      }
    });    
    
});
function heroSelectTab(tab) 
{
    if (tabs.index(tab) != currentTabIndex)
    {
        var currentTab = tabs.get(currentTabIndex);
        if (currentTab)
            $(currentTab).stop(true).animate({backgroundColor: "#444444", opacity: 0.75}, 300);
        
        $(tab).stop(true).animate({ backgroundColor: "#CC9900", opacity: 0.99}, 300);
        currentTabIndex = tabs.index($(tab));
        if (currentTab) 
        {
            $("#home-banner-img")
                .stop(true)
                .queue(function() {
                    $(this).css('background-position', "0 " + -($(this).height() * currentTabIndex) + "px");
                    $(this).dequeue();
                    })
        }
        $("#home-banner-copy").aspx($(tab).children(".copy").aspx());
        $("#home-banner-contact p").aspx($(tab).children(".action").aspx());
        $("#home-banner-contact a").attr("href", $(tab).children("a").attr("href"));
        return true;
    }
    else { return false; }
}
function heroSetTimeout()
{
    function onTimeout() {
        heroSelectTab(tabs.get((currentTabIndex + 1) % tabs.length));
        heroSetTimeout();    
    };
    heroTimeoutId = setTimeout(onTimeout, heroAutoTime);
};
function randomFeaturedTopic() {
    var items = $("#home-featured .group");
    var count = items.length;
    $(items).hide();
    $(items).eq(Math.floor(Math.random()*count)).show();
}
    // [randomly selects from 1st two items] 
    // $(items).eq(Math.floor(Math.random()*2)).show();
    //   [ show just the first one ]
    //   $("#home-featured .group").hide();    
    //   $("#home-featured .group:first").show();    
    // [weight the first one to display 50% of the time]
    // function randomFeaturedTopic() {
    //     var items = $("#home-featured .group");
    //     var count = items.length;
    //     var showWeighted = Math.floor(Math.random()*2);
    //     $(items).hide();
    //     if (showWeighted == 0) {
    //         $(items).eq(0).show();
    //     } else {
    //        $(items).eq(Math.floor(Math.random()*count)).show();
    //     }
    // }
    
function moveTicker(amt) 
{
    var items = $("#home-ticker .headlines p");
    var i = $(items).index($(items).filter(":visible")); // current index
    var j = (i + amt); // new index
    
    // Adjust the new index that goes beyond bounds so it's a carousel effect
    if (j == -1) 
        j = items.length - 1; 
    else if (j == (items.length))
        j = 0;
    // Hide current item, show next/prev item
    $(items).eq(i).hide();
    $(items).eq(j).fadeIn("fast");
}
function pauseTicker() {isTickerRunning = false;}
function resumeTicker() {isTickerRunning = true;}
function runTickerAnimation(i) {
    // Exit if not on home page
    var total = $("#home-ticker .headlines p").length;
    if (total == 0) { return; }
    
    // If pause flag is active, just keep looping on the same index
    if (!isTickerRunning) {
        setTimeout(function() {runTickerAnimation(i);}, tickerAutoTime);
        return 
    }
    
    // Run animation through all panels then reset to main
    $("#home-ticker .headlines p:visible").hide();
    if (i < total) {
        $("#home-ticker .headlines p").eq(i).fadeIn("fast");
        i++;
        setTimeout(function() {runTickerAnimation(i);}, tickerAutoTime);
    }
    else {
        runTickerAnimation(0);
    }
}
function getHrefName(obj) {
    if ($(obj).attr("href") != undefined)
        return $(obj).attr("href").split("#")[1];
}
function reverse(n) {       
    if (n){
        var kids = n.childNodes; 
        var numkids = kids.length;
        for(var i = numkids-1; i >= 0; i--) {  
            var c = n.removeChild(kids[i]);    
            n.appendChild(c);                 
        }
    }
}
/* PNG Fix for IE6 */
jQuery(document).ready(function() {
    $(".SidebarInner").supersleight({shim: '/webdocuments/transparent.gif'});
    $("#banner-content div.group").supersleight({shim: '/webdocuments/transparent.gif'});
});
/* PNG Fix Class */
jQuery.fn.supersleight = function(settings) {
    settings = jQuery.extend({
        imgs: true,
        backgrounds: true,
        shim: 'x.gif',
        apply_positioning: true
    }, settings);
    
    return this.each(function(){
        if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 7 && parseInt(jQuery.browser.version) > 4) {
            jQuery(this).find('*').each(function(i,obj) {
                var self = jQuery(obj);
                // background pngs
                if (settings.backgrounds && self.css('background-image').match(/\.png/i) !== null) {
                    var bg = self.css('background-image');
                    var src = bg.substring(5,bg.length-2);
                    var mode = (self.css('background-repeat') == 'no-repeat' ? 'crop' : 'scale');
                    var styles = {
                        'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
                        'background-image': 'url('+settings.shim+')'
                    };
                    self.css(styles);
                };
                // image elements
                if (settings.imgs && self.is('img[src$=png]')){
                    var styles = {
                        'width': self.width() + 'px',
                        'height': self.height() + 'px',
                        'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + self.attr('src') + "', sizingMethod='scale')"
                    };
                    self.css(styles).attr('src', settings.shim);
                };
                // apply position to 'active' elements
                if (settings.applyPositioning && self.is('a, input') && self.css('position') === ''){
                    self.css('position', 'relative');
                };
            });
        };
    });
};
