var stopAnim = false;


jQuery(document).ready(function() {

    /************************************ 
    Global Style settings */
    $(".RsrcLink a[@href$=pdf]").addClass("IconR Pdf");
    $(".RsrcLink a[@href$=zip]").addClass("IconR Zip");
    $("#subnav a:first").addClass("First");
    $("#subnav a:last").addClass("Last");


    /************************************ 
    Lanuages drop-down */
    $("#togglelang").click( function() {    
        var p = $(this).position();
        $("#languages").css("left", p.left+"px").show();                                                                   
    });
    
    $("#togglelang").hover( function () {
        // Do nothing
    }, function () {
        setTimeout(function() { $("#languages").hide(); }, 4000);
    });


    /************************************ 
    Home Page Banner scroll */    
    $("#banner-scroll a").click( function() {
        var i = $(this).attr("id").split("btn")[1];
        stopAnim = true;

        highlightButton(i);
        scrollBanner(i);
        return false;
    });

    $("banner-content").css("margin-left", "0px");
    runHomePgAnim(0);
    

    /************************************ 
    Solution/Product picker */  
    $(".mainlink").click( function() {
        // Set styles
        $(".mainlink").removeClass("expanded").addClass("collapsed");                                    
        $(this).removeClass("collapsed").addClass("expanded");
        // Toggle sub links
        $(".sublinks:visible").slideUp();
        $(this).next().slideDown();
        setSelected($(this).next().find("a:first"));
        return false;
    });
    
    $(".sublinks a").click( function(event) {
        setSelected($(this));
        return false;
    });

    showRandomSolutionPicker();    


    /************************************ 
    Important Pull Down Message 
    $("#PullDownTab a").click(function() {
        $("#ImpMsgPanel").slideToggle("slow");
        $(this).toggleClass("Active");
        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");
    });


    /************************************ 
    Download Box, hover */
    $("div.DownloadBox").hover(function() {
        $(this).addClass("DownloadBoxOver");
    }, function() {
        $(this).removeClass("DownloadBoxOver");
    });
    

    /************************************ 
    Download Box, click */
    $("div.DownloadBox ul.Core li a").click(function(event) {
        /* Re-set CSS */
        $("div.SubLinks").hide();
        $("div.SubLinks").css("top", "10px");
        $("div.DownloadBox a").removeClass("A").removeClass("Minus");
        
        /* Toggle to minus if already plus */
        if ($(this).hasClass("Plus")) { 
            $(this).addClass("Minus"); 
            $(this).addClass("A"); 
        }
        
        /* Show sub nav links */
        var elemID = "div#" + $(this).attr("id") + "_Data";
        var pos = $(this).position();
        
        $(elemID).css("left", $(this).parent().parent().position().left);
        $(elemID).css("top", pos.top + 23);
        $(elemID).animate({opacity: "show", top: "-=10"}, 400);
    });

    /************************************ 
    Default first tab show */
    $("div#SubTabs ul li a:first").addClass("A");
    $("div.PgTabInner").hide();
    $("div.PgTabInner: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 */
        $(".PgTabInner").hide();
        var elemID = $(this).attr("id");
        $("div#" + elemID + "_Data").show();
    });
    
    
    /************************************ 
    Features hide/show all bar */
    $("div.FeatShowAll 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");        
    });
    
});

function runHomePgAnim(i) {
    // Cancel animation if user clicked
    if (stopAnim) { return; }
    
    // Run animation through all panels then reset to main
    if (i < 5) {
        highlightButton(i)
        scrollBanner(i);
        i++;
        setTimeout(function() { runHomePgAnim(i); }, 3500);
    }
    else {
        highlightButton(0);
        scrollBanner(0);
    }
}

function showRandomSolutionPicker() {
    // Get picker count
    var i = Math.floor(Math.random() * ($("#home-solutions-picker .links").length));
    
    // Set random group visible 
    $(".mainlink:eq(" + i + ")").removeClass("collapsed").addClass("expanded");
    $(".sublinks:eq(" + i + ")").show();
    
    // Set random sub item and it's content visible
    var j = Math.floor(Math.random() * ($(".sublinks:eq(" + i + ")").children().length));
    setSelected($(".sublinks:eq(" + i + ") li a:eq(" + j + ")"));
}

function highlightButton(i) {
    $("#banner-scroll a").removeClass("selected");
    $("#banner-scroll a:eq(" + i + ")").addClass("selected");
}

function scrollBanner(i) {
    var pos = -960 * i;
    $("#banner-content").animate( {marginLeft: "" + pos + "px"}, 800, 'easeInOutExpo');    
}

function getHrefName(obj) {
    if ($(obj).attr("href") != undefined)
        return $(obj).attr("href").split("#")[1];
}

function setSelected(obj) {
    // Clear selected on links, set current
    $(".sublinks a").removeClass("selected");    
    $(obj).addClass("selected");
    
    // Hide all info boxes, show current
    var ref = getHrefName($(obj));
    $(".solution-info:not(#" + ref + ")").hide();
    $(".solution-info#" + ref).show();
}

/* PNG Fix for landing pages */
jQuery(document).ready(function() {
    $(".SidebarInner").supersleight({shim: '/webdocuments/transparent.gif'});
    $("#banner-content div.group").supersleight({shim: '/webdocuments/transparent.gif'});
});

/* PNG Fix */
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');
                };
            });
        };
    });
};