//For Moody's Analytics Marketing

var $j = jQuery.noConflict();
$j(document).ready(function() {
    //header
    ClickSearchBox();
    EnterSearchBox();
    DropDownMenu();
    SwitchAoeTabs();       //aoe switch in homepage and about-us page

    FeatureSectionTree();

    AdjustNewsAndInsightHight(); //adjuct the heights of news and insight when they are not equal
    LinkToAnchor();        // Who we serve page
    RemoveImageSpace();    //when no image remove the place in product page and whom we serve page
    AdjuctContactForm();   //adjuct conatact form style
    setIframeHeight();     //for lightbox custom the iframe height

    //for overview page(product overview and whom we serve)
    AdjustTwoColums(".list-body", ".list-body:odd");
    AdjustTwoColums(".two-column-cell", ".two-column-cell:odd");
    RegisterEvents();
    RemoveTeaserIfNoText();

    //for switchtab (product page and insight page)
    SwitchProductTabs();
    AdjustTwoColums(".shown>div>.sub-body", ".shown>div>.sub-body:odd");

    //search result page
    SearchResultDisplay();

    //a-z product list page
    TipForAZPage();


    //2011-1-18
    SimpleOperation();  //some simple operation
    SearchResultDisplay();
    AdjustCallToActionStyle();

    //2011-4-2
    AdjustSideMenuStyle();
    SwichContactUsTabs();
    AdjustTwoColums("#contact-us-info>.contact-us-info", "#contact-us-info>.contact-us-info:odd");

    //Js for Slide show section in home page
    StartSlideShow();
});

/******* begin common sections for multiply pages *******/

function OnClickSearchBtn(nameButton) {
    document.getElementById(nameButton).value = nameButton;
    document.forms[0].submit();
    return false;
}

function ClickSearchBox() {
    $j(".maSearchKeyWords").click(function() {
        if ($j(this).val() == "Search Site" || $j(this).val() == "Search within the results") {
            $j(this).val("");
        }
    });
}

function EnterSearchBox() {
    $j(".maSearchKeyWords").keydown(function(event) {
        if ($j.browser.mozilla) {
            if (event.which == 13) {
                $j(".maSearchButton", $j(this).parent()).focus();
                $j(".maSearchButton", $j(this).parent()).click();
            }
        }
        else {
            if (event.keyCode == 13) {
                $j(".maSearchButton", $j(this).parent()).focus();
                $j(".maSearchButton", $j(this).parent()).click();
            }
        }
    });
}

function DropDownMenu() {
    $j("#maGlobalNav ul").each(function(i) {
        if ($j(this).children("li").length == 0) {
            $j(this).parent().children("a").children("span").eq(1).hide();
        }
    });

    $j("#maGlobalNav>ul>li").hover(function() {
        $j(this).children("a").addClass("active");
        $j(this).children("ul").show();
    }, function() {
        $j(this).children("ul").hide();
        $j(this).children("a").removeClass("active");
    });
    $j("#maGlobalNav>ul>li li").hover(function() {
        $j(this).addClass("active");
        $j(this).children("ul").show();
    }, function() {
        $j(this).removeClass("active");
        $j(this).children("ul").hide();
    });
    $j("#maGlobalNav>ul>li>ul>li li").hover(function() {
        $j(this).addClass("active");
        $j(this).children("ul").show();
    }, function() {
        $j(this).removeClass("active");
        $j(this).children("ul").hide();
    });
    $j("#maGlobalNav>ul>li>ul>li>ul>li li").hover(function() {
        $j(this).addClass("active");
    }, function() {
        $j(this).removeClass("active");
    });

}

/******* end common sections for multiply pages *******/

/******* begin home page *******/

function SwitchAoeTabs() {
    $j("#aoe-left>ul>li>a").eq(0).addClass("first_topborder");
    var indexSelected = parseInt(Math.random() * 5);
    TabSelectChange(indexSelected);
    $j("#aoe-left>ul>li>a").hover(function() {
        indexSelected = $j("#aoe-left>ul>li>a").index(this);
        TabSelectChange(indexSelected);
    });
}

function TabSelectChange(indexSelectd) {
    var colors = new Array("#008998", "#be0f34", "#66bc29", "#009bff", "#580f8b");
    $j(".next-selected").removeClass("next-selected");
    $j(".selected").css("color", "#0028ac");
    $j(".selected").removeClass("selected");
    $j(".shown").addClass("hidden");
    $j(".shown").removeClass("shown");
    if (indexSelectd != 0) {
        $j("#aoe-left>ul>li>a").eq(indexSelectd - 1).addClass("next-selected");
    }
    $j("#aoe-left>ul>li>a").eq(indexSelectd).addClass("selected");
    $j(".selected").css("color", colors[indexSelectd]);
    $j(".aoe-desc").eq(indexSelectd).removeClass("hidden");
    $j(".aoe-desc").eq(indexSelectd).addClass("shown");
    $j(".shown>a").css("color", colors[indexSelectd]);
}

function AdjustNewsAndInsightHight() {
    if ($j("#news>.nai-content").height() < $j("#insight>.nai-content").height()) {
        $j("#news>.nai-content").height($j("#insight>.nai-content").height());
    }
    else {
        $j("#insight>.nai-content").height($j("#news>.nai-content").height());
    }
}

/******* end home page *******/

/******* begin product overview page *******/

function RegisterEvents() {
    $j(".collapse").click(function() {
        $j(this).addClass("hidden");
        $j(".spread", $j(this).parent()).removeClass("hidden");
    });

    $j(".collapse-cyan").click(function() {

        $j(".spread", $j(this).parent().parent()).addClass("hidden");
        $j(".collapse", $j(this).parent().parent()).removeClass("hidden");
    });
}

function RemoveTeaserIfNoText() {
    if ($j.trim($j("#teaser").text()) == "") {
        $j("#teaser").css("border-bottom", "0");
    }
}

/******* end product overview page *******/

/******* begin product page *******/

function SwitchProductTabs() {
    $j("#product-tab>#tabs>li").eq(0).addClass("current");
    $j(".tab-body").eq(0).removeClass("hidden");
    $j(".tab-body").eq(0).addClass("shown");
    $j("#product-tab>#tabs>li").click(function() {
        var indexSelected = $j("#tabs>li").index(this);
        $j(".current").removeClass("current");
        $j(this).addClass("current");
        $j(".shown").addClass("hidden");
        $j(".shown").removeClass("shown");
        $j(".tab-body").eq(indexSelected).removeClass("hidden");
        $j(".tab-body").eq(indexSelected).addClass("shown");

        AdjustTwoColums(".shown>div>.sub-body", ".shown>div>.sub-body:odd");
    });
}

function RemoveImageSpace()   //If no image,remove the image space
{
    if ($j("#banner-image img").length == 0) {
        $j("#banner-image").remove();
        $j(".banner-text").addClass("banner-text-noimage");
        $j(".banner-text").removeClass("banner-text");
    }
}

/******* end product page *******/

/******* begin search result page *******/

function SearchResultDisplay() {
    var current_page_number = parseInt($j(".page-number").val(), 10);
    var avage_number = Number($j("*[id$=LabelEachPageNumber]").text());
    var total_number = Number($j("*[id$=LabelSearchReslutNum]").text());
    var total_page_number = Math.ceil(total_number / avage_number);
    var last_page_number = total_number % avage_number;
    DisplayPointStyle(current_page_number, total_page_number, total_number);
    DisplayResultInfo(current_page_number, total_page_number, last_page_number, total_number, avage_number);
    $j(".total-page-number").text(String(total_page_number));

    $j(".page-number").keydown(function(event) {
        if ($j.browser.mozilla) {
            if (event.which == 13 && !isNaN(parseInt($j(this).val(), 10)) && parseInt($j(this).val(), 10) > 0 && parseInt($j(this).val(), 10) <= total_page_number) {
                BegainAjaxRefresh();
                $j(".page-number").val($j(this).val());
                var pageNum = $j(this).val();
                $j("#searchResultContainers").load(location.href + " #searchResultSource", { number: pageNum },
                function next() { EndAjaxRefresh(current_page_number, total_page_number, last_page_number, total_number, avage_number); });
                current_page_number = parseInt(pageNum, 10);
                DisplayPointStyle(current_page_number, total_page_number, total_number);
            }
        }
        else {
            if (event.keyCode == 13 && !isNaN(parseInt($j(this).val(), 10)) && parseInt($j(this).val(), 10) > 0 && parseInt($j(this).val(), 10) <= total_page_number) {
                BegainAjaxRefresh();
                $j(".page-number").val($j(this).val());
                var pageNum = $j(this).val();
                $j("#searchResultContainers").load(location.href + " #searchResultSource", { number: pageNum },
                function next() { EndAjaxRefresh(current_page_number, total_page_number, last_page_number, total_number, avage_number); });
                current_page_number = parseInt(pageNum, 10);
            }
        }
    });

    $j(".previous-point").click(function() {
        if (current_page_number == 1) {
        }
        else {
            BegainAjaxRefresh();
            current_page_number = current_page_number - 1;
            var pageNum = String(current_page_number);
            $j("#searchResultContainers").load(location.href + " #searchResultSource", { number: pageNum },
              function next() { EndAjaxRefresh(current_page_number, total_page_number, last_page_number, total_number, avage_number); });
        }
    });
    $j(".next-point").click(function() {
        if (parseInt($j(".page-number").val(), 10) == total_page_number) {
        }
        else {
            BegainAjaxRefresh();
            current_page_number = current_page_number + 1;
            var pageNum = String(current_page_number);
            $j("#searchResultContainers").load(location.href + " #searchResultSource", { number: pageNum },
              function next() { EndAjaxRefresh(current_page_number, total_page_number, last_page_number, total_number, avage_number); });
        }
    });
}

function BegainAjaxRefresh() {
    $j(".ajax-loading").show();
}

function EndAjaxRefresh(current_page_number, total_page_number, last_page_number, total_number, avage_number) {
    $j(".ajax-loading").hide();
    $j(".page-number").val(String(current_page_number));
    DisplayResultInfo(current_page_number, total_page_number, last_page_number, total_number, avage_number);
    DisplayPointStyle(current_page_number, total_page_number, total_number);
}

function DisplayResultInfo(current_page_number, total_page_number, last_page_number, total_number, avage_number) {
    if (total_number == 0) {
        $j(".results-num").text("Results 0 - 0 of 0");
    }
    else if (current_page_number == 1) {
        if (total_page_number == 1 && last_page_number != 0) {
            $j(".results-num").text("Results 1 - " + last_page_number + " of " + total_number);
        }
        else {
            $j(".results-num").text("Results 1 - " + avage_number + " of " + total_number);
        }
    }
    else if (current_page_number == total_page_number && last_page_number != 0) {
        $j(".results-num").text("Results " + (total_number - last_page_number + 1) + " - " + (total_number) + " of " + total_number);
    }
    else {
        $j(".results-num").text("Results " + ((current_page_number - 1) * avage_number + 1) + " - " + (current_page_number * avage_number) + " of " + total_number);
    }
}

function DisplayPointStyle(current_page_number, total_page_number, total_number) {
    if (total_number == 0) {
        $j(".previous-point").removeClass("right_bullet-blue");
        $j(".previous-point").addClass("right_bullet-gray");
        $j(".next-point").removeClass("left_bullet-blue");
        $j(".next-point").addClass("left_bullet-gray");
    }
    else {
        if (current_page_number == 1) {
            $j(".previous-point").removeClass("right_bullet-blue");
            $j(".previous-point").addClass("right_bullet-gray");
        }
        else {
            $j(".previous-point").removeClass("right_bullet-gray");
            $j(".previous-point").addClass("right_bullet-blue");
        }

        if (current_page_number == total_page_number) {
            $j(".next-point").removeClass("left_bullet-blue");
            $j(".next-point").addClass("left_bullet-gray");
        }
        else {
            $j(".next-point").removeClass("left_bullet-gray");
            $j(".next-point").addClass("left_bullet-blue");
        }
    }
}

/******* end search result page *******/

/******* begin a-z product list page *******/

function TipForAZPage() {
    var activeLetters = $j("*[id$=ActiveLetters]").text();
    $j(".alpha-beta").each(function() {
        if (activeLetters.indexOf($j.trim($j(this).children().text())) > -1) {
            var letter = $j.trim($j(this).text());
            var classname = "word" + letter + "-active";
            var oldclassname = "word" + letter;
            $j(this).removeClass(oldclassname);
            $j(this).addClass(classname);
        }
    });
    $j(".top-page").eq(0).hide();
    $j(".maProduct").hover(function() {
        $j(this).next().css("display", "block");
        $j(this).parent().css("z-index", "1000");
    },
    function() {
        $j(this).next().css("display", "none");
        $j(this).parent().css("z-index", "0");
    });
}

/******* end a-z prodcut list page *******/

/******* begin common functions *******/

function AdjustTwoColums(selector, odd_selector) {
    $j(odd_selector).addClass("left-margin");
    $j(odd_selector).after("<div class='column-align'></div>");
    if ($j(selector).length % 2 == 1) {
        $j(selector).last().addClass("last");
    }

}

/******* end common functions *******/
function LinkToAnchor() {
    $j(".am_solution>.solution-title>a").each(function(i) {
        var anchor = $j(this).text();
        var href = $j(this).attr("href");
        var newLink = "<a class='right-bullet' name='" + anchor + "' href='" + href + "' ";
        if ($j(this).attr('target') !== undefined) {
            newLink += "target='" + $j(this).attr('target') + "' ";
        }
        newLink += ">" + anchor + "</a>";
        $j(this).replaceWith(newLink);
    });
}

function AdjuctContactForm() {
    $j(".scfRequired").each(function(i) {
        $j(this).parent().children("label").append("<span style='color:red'>*</span>");
    });
    $j(".scfValidatorRequired").each(function(i) {
        $j(this).parent().children("label").append("<span style='color:red'>*</span>");
    });

    if ($j.browser.mozilla) {
        $j(".scfSubmitButtonBorder>input").addClass("margin-submit");
        $j(".scfSubmitButtonBorder>input").addClass("style-submit");
    }
    else {
        $j(".scfSubmitButtonBorder>input").wrap("<div class='wrap-submit'></div>");
        $j(".scfSubmitButtonBorder").addClass("margin-submit");
    }

    /*  $j(".scfSubmitButtonBorder>input").addClass("margin-submit");
    $j(".scfSubmitButtonBorder>input").addClass("style-submit");*/

}

function setIframeHeight() {
    $j(window.parent.document).find("#lbIframe").load(function() {
        var main = $j(window.parent.document).find("#lbIframe");
        var thisheight = $j(document).height() + 10;
        main.height(thisheight);
    });
    $j(window.parent.document).find("#lbOuterContainer").css("height", "auto");
}

//2011-1-18
function SimpleOperation() {
    $j("#history-timeline + #main-text").addClass("history-maintext"); //add a new css class for maintext in history page

    AjustHalfLandingStyle();

    if ($j("#maOverview-banner a").children().length == 0) {
        $j("#maOverview-banner").hide();
    }

}

function AjustHalfLandingStyle() {
    $j(".half-size-insert").each(function() {                                  // adjust the width the image and below text
        if ($j(this).children(".insert-header").children(".header-text").text() == "" && $j(".scLooseFrameZone").length == 0) {
            $j(this).addClass("hidden");
        }
        else {
            if ($j(this).children(".insert-section").width() < 50) {
                $j(this).width(100);
                $j(this).children(".insert-header").width(50);
            }
            else {
                $j(this).width($j(this).children(".insert-section").width() + 2);
                $j(this).children(".insert-header").width($j(this).children(".insert-section").width() + 2);
                $j(this).children(".insert-header").children(".header-text").width($j(this).children(".insert-section").width() - 8);
            }
        }
    });

    $j(".key-speakers").each(function() {
        var leftHeight = $j(this).children(".half-size-insert").offset().top + $j(this).children(".half-size-insert").height();
        var leftWidth = $j(this).children(".half-size-insert").width() + 20;
        $j(this).find(".InsideBullet").each(function() {
            if ($j(this).offset().top < leftHeight) {
                $j(this).css("margin-left", leftWidth + "px");
            }
        });
    });
}

function FeatureSectionTree() {
    if ($j(".scLooseFrameZone").length > 0) {
        TreeEditMode();
    }
    else {
        TreeNormalMode();
    }
}

function TreeNormalMode() {
    $j(".navigation ul").hide();

    $j(".navigation>li").each(function() {
        if ($j(this).children("ul").length > 0) {
            $j(this).children(".treeview-icon").addClass("collapse");
        }
        else {
            $j(this).children(".treeview-icon").addClass("bullet-large");
        }
    });

    $j(".navigation>li>ul>li").each(function() {
        if ($j(this).children("ul").length > 0) {
            $j(this).children(".treeview-icon").addClass("collapse");
        }
        else {
            $j(this).children(".treeview-icon").addClass("bullet-large");
        }
    });

    $j(".navigation>li>ul>li>ul li").each(function() {
        if ($j(this).children("ul").length > 0) {
            $j(this).children(".treeview-icon").addClass("collapse");
        }
        else {
            $j(this).children(".treeview-icon").addClass("bullet-small");
        }
    });


    $j(".navigation .treeview-icon").click(function() {
        DoCollapseAndSpread($j(this));
    });
}

function DoCollapseAndSpread(jObject) {
    if (jObject.hasClass("collapse")) {
        jObject.addClass("spread");
        jObject.removeClass("collapse");
        jObject.parent("li").children("ul").show();
    }
    else if (jObject.hasClass("spread")) {
        jObject.addClass("collapse");
        jObject.removeClass("spread");
        jObject.parent("li").children("ul").hide();
    }
}

function TreeEditMode() {
    $j(".navigation ul").each(function() {
        $j(this).css("padding-left", "18px");
    });
    $j(".navigation .treeview-icon").each(function() {
        $j(this).addClass("bullet-large");
    });
}

function AdjustCallToActionStyle() {
    if ($j("#landingpage-banner").height() < 250) {
        $j(".call-to-action-text").addClass("small");
    }
    else {
        $j(".call-to-action-text").addClass("large");
    }

    if ($j(".call-to-action-text a").children().length == 0) {
        $j(".call-to-action-text").hide();
    }
}

function AdjustSideMenuStyle() {
    /* $j(".side-menu>ul>li").each(function(){
    if($j(this).children("ul").length==0)
    {
    $j(this).addClass("bullet-large");
    }
    });
    
    $j(".side-menu>ul>li>ul>li").each(function(){
    if($j(this).children("ul").length==0)
    {
    $j(this).addClass("bullet-large");
    }
    });
    
    $j(".side-menu>ul>li>ul>li>ul li").each(function(){
    if($j(this).children("ul").length==0)
    {
    $j(this).addClass("bullet-small");
    }
    });*/
}

function SwichContactUsTabs() {
    $j("#contact-us-info").hide();
    $j("#contactus-tabs>#tabs>li").click(function() {
        var indexSelected = $j("#tabs>li").index(this);
        $j(".current").removeClass("current");
        $j(this).addClass("current");
        if (indexSelected == 0) {
            $j("#contact-us-info").hide();
            $j("#overview-black-text").show();
            $j(".scfForm").show();

        }
        else {
            $j("#contact-us-info").show();
            $j("#overview-black-text").hide();
            $j(".scfForm").hide();
        }
    });
}

//Js for Slide Show section in Home Page
function StartSlideShow() {
    if (jQuery("#promotion-section").length === 0)
        return;
    if (jQuery("span.scWebEditFrame:eq(0)").length > 0)
        return;
    var currentIndex = 0;
    var isStop = false;
    var slideDatas = jQuery("#promotion-section > div.featured-section");
    var slideButtons = jQuery("#promotion-section div.featured-slide-button >span");
    var slideShow = function(i) {
        var I = parseInt(i);
        if (isNaN(I) || I > slideDatas.length - 1 || I < 0) I = 0;
        if (isStop || currentIndex === I || slideDatas.length === 0) return;

        slideDatas.eq(I).fadeIn(1500);
        slideDatas.eq(currentIndex).fadeOut(1200);
        slideButtons.eq(currentIndex).removeClass("featured-slide-button-" + (currentIndex + 1) + "-hover");
        slideButtons.eq(I).addClass("featured-slide-button-" + (I + 1) + "-hover");
        currentIndex = I;
    };

    jQuery("#promotion-section div.featured-slide-button").bind("click", null, function(e) {
        if (e.target.nodeName === "SPAN") { isStop = false; slideShow(jQuery(e.target).index()); isStop = true; }
    });
    jQuery("#promotion-section").bind("mouseover", null, function(e) { isStop = true; });
    jQuery("#promotion-section").bind("mouseout", null, function(e) { isStop = false; });
    slideShow(0);
    var slideTimer = setInterval(function() { slideShow(currentIndex + 1 > slideDatas.length ? 0 : currentIndex + 1); }, 8000);
}

function setTab(position, cursor, n) {
    var i;
    for (i = 1; i <= n; i++) {
        var tab = document.getElementById(position + "-tab" + i);
        var tabbody = document.getElementById(position + "-tabbody" + i);
        if (i == cursor) {
            tab.className = "current";
            tabbody.style.display = "block";
        }
        else {
            tab.className = "";
            tabbody.style.display = "none";
        }
    }
}


function setTab(position, cursor, n) {
    var i;
    for (i = 1; i <= n; i++) {
        var tab = document.getElementById(position + "-tab" + i);
        var tabbody = document.getElementById(position + "-tabbody" + i);
        var tabbodyImg = document.getElementById(position + "-tabbodyImage" + i);
        if (i == cursor) {
            tab.className = "current";
            tabbody.style.display = "block";
            tabbody.style.position = "absolute";
            tabbody.style.top = "0px";
            tabbody.style.left = "0px";
            tabbodyImg.style.display = "block";
            tabbodyImg.style.height = "245px";
            tabbodyImg.style.width = "340px";
        }
        else {
            tab.className = "";
            tabbody.style.display = "none";
            tabbodyImg.style.display = "none";
        }
    }
}
