var stopAnim = false;


jQuery(document).ready(function() {

    /************************************ 
    Global Style settings */
    $(".rsrclink a[@href$=pdf]").addClass("iconr pdf");
    $(".rsrclink a[@href$=zip]").addClass("iconr zip");


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


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


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


    /************************************ 
    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").click( function() { stopAnim = true; });
    $("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 
    $("#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");
    });


    /************************************ 
    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.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();
    });
    
    
    /************************************ 
    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");        
    });
    
});

function runHomePgAnim(i) {
    // Cancel animation if user clicked
    if (stopAnim) { return; }
    
    // Run animation through all panels then reset to main
    if (i < 4) {
        highlightButton(i)
        scrollBanner(i);
        i++;
        setTimeout(function() { runHomePgAnim(i); }, 11000);
    }
    else {
        runHomePgAnim(0);
        //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');
                };
            });
        };
    });
};