﻿/* Global */
var imgPath="/china/sbs/graphics/homepage/shared/";
var IE7 = false;
var IE6 = false;
var MOZ = false;
var OPR = false;
var SAF = false;


onPageLoad=function(){
    browserSniff();
    setTopLevelButtonState();
    ieHover();
}
onPageUnload=function(){
    imgPath=IE7=IE6=MOZ=OPR=SAF=menuCount=topLevelWaitTime=subLevelWaitTime=navTimer=navTimerOn=false;
    showMenu=hideMenu=hideMenus=startMenuTimer=stopMenuTimer=parseURLGetSiteSection=setTopLevelButtonState=false;
    imgRoll=browserSniff=ieHoverWireEvents=ieHover=ie7CssFix=false;
}

/* Topnav Menu */
var menuCount=6;
var topLevelWaitTime=500; //in milliseconds
var subLevelWaitTime=500; //in milliseconds
var navTimer=null;
var navTimerOn=false;
var selectedMenu=0;

topTabRoll=function(id,on){
    if(document.getElementById){
        if(on){
            document.getElementById("menuButton"+id+"Left").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/nav_list_l0.gif)";
            document.getElementById("menuButton"+id+"Right").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/nav_list_r0.gif)";
        }else if(id!=selectedMenu){
            document.getElementById("menuButton"+id+"Left").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/nav_list_l.gif)";
            document.getElementById("menuButton"+id+"Right").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/nav_list_r.gif)";
        }
    }
}

subTabRoll=function(id,on){
    if(document.getElementById){
        if(on){
            document.getElementById("tab"+id+"Left").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/2nav_list3_1.gif)";
            document.getElementById("tab"+id+"Right").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/2nav_list3_1.gif)";
        }else if(id!=selectedMenu){
            document.getElementById("tab"+id+"Left").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/m2.jpg)";
            document.getElementById("tab"+id+"Right").style.backgroundImage="url(/china/sbs/graphics/homepage/shared/m2.jpg)";
        }
    }
}

leftNavRoll=function(id,on){
    if(document.getElementById){
        var navItem = document.getElementById("navItem"+id);
        if(navItem&&navItem.style)navItem.style.backgroundColor=(on)?"#ffffff":"#efefef";
    }
}

getElementsByClassName = function(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}




showMenu=function(menuid){
    if(IE7)ie7CssFix(menuid,true);
    if(document.getElementById&&document.getElementById('menu'+menuid)){        
        navTimerOn=true;
        hideMenus();        
        document.getElementById('menu'+menuid).style.visibility="visible";
    }
}
hideMenu=function(menuid){
    if(IE7)ie7CssFix(menuid,false);
    if(document.getElementById&&document.getElementById('menu'+menuid)){
        document.getElementById('menu'+menuid).style.visibility="hidden";
        navTimer=null;
    }
}
hideMenus=function(){    
    if(navTimerOn){
        stopMenuTimer();
        for(var m=1;m<menuCount+1;m++){hideMenu(m);}
    }
}
startMenuTimer=function(level){
    if(document.getElementById&&navTimerOn==false&&navTimer==null){
        if(level!=null&&level!='undefined'&&level>0){
            navTimerOn=true;
            switch(level){
                case 1:navTimer=window.setInterval('hideMenus()',topLevelWaitTime);break;
                default:navTimer=window.setInterval('hideMenus()',subLevelWaitTime);break;
            }
        }     
    }
}       
stopMenuTimer=function(){
    if(navTimer)window.clearInterval(navTimer);
    navTimer=null;
    navTimerOn=false;
}
parseURLGetSiteSection=function(){
    var s=0;
    if(top.location){
        var url=top.location.href;
        var section=[];
        section.push('/productinfo/');
        section.push('/capabilities/');
        section.push('/howtobuy/');        
        section.push('/resources/');
        section.push('/support/');
        section.push('/partners/');
        for(var m=0;m<menuCount-1+1;m++){if(url.indexOf(section[m])>-1){s=m+1;break;}}
    }
    return s;
}
setTopLevelButtonState=function(){
    if(document&&document.body){
        selectedMenu=parseURLGetSiteSection();
        topTabRoll(selectedMenu,true);
    }
}
imgRoll=function(obj,img,flag){var b=true;if(flag!=null&&flag!="undefined"){if(document&&document.body){var s=document.location+"";if(s.indexOf(flag)>-1)b=false;}}if(b)obj.src=imgPath+img;}
linkRoll=function(obj,s){obj.className=s;}
browserSniff=function(){if(document.images){if(navigator.userAgent.indexOf("Opera")!= -1){OPR=true;}else{if(document.all!=null&&document.getElementById!=null){if(navigator.appVersion.indexOf('MSIE 7')>0)IE7=true;else IE6=true;}else{MOZ=true;}}}if(navigator.userAgent.indexOf("Mac")!=-1){SAF=true;}}
ieHoverWireEvents = function(node){
   if (node.nodeName=="LI"){
        node.onmouseover=function(){this.className+=" over";}
        node.onmouseout=function(){this.className=this.className.replace(" over", "");}              
        for (r=0; r<node.childNodes.length; r++){
            node2 = node.childNodes[r];   
            if (node2.nodeName=="UL"){
                for (c=0; c<node2.childNodes.length; c++){
                    node3 = node2.childNodes[c]; 
                    if (node3.nodeName=="LI"){
                        node3.onmouseover=function(){this.className+=" over";}
                        node3.onmouseout=function(){this.className=this.className.replace(" over", "");}
                    }
                    node3=null;
                }
            }
            node2=null;
        }
    }
    node=null;
}
ieHover=function(){
    if (IE6||IE7){         
        var ulArr = new Array();
        ulArr = document.getElementsByTagName("UL");
        for (var a=0; a<ulArr.length; a++){
            if(ulArr[a].className =="navmenu1"){
                navRoot = ulArr[a];
                for (var i=0; i<navRoot.childNodes.length; i++){            
                    node = navRoot.childNodes[i];        
                    ieHoverWireEvents(node);
                    node=null;
                }
                navRoot=null;
            }
        } 
        ulArr=null;       
    }
}
ie7CssFix=function(menuid,over){
    var ulArr = new Array();
    ulArr = document.getElementsByTagName("UL");
    for (var a=0; a<ulArr.length; a++){
        if(ulArr[a].className =="navmenu2"){
            for (var s=0; s<ulArr[a].childNodes.length; s++){
                //ulArr[a].style.borderBottom=(over)?"none":"1px solid #E6DFBD";
                node = ulArr[a].childNodes[s];
                if (node.nodeName=="LI"){
                    if(over){
                        node.style.display="none";                        
                        //node.style.border="1px solid #E6DFBD";
                    }
                    else{
                        node.style.display="block";
                        node.style.border="none";                        
                    }                    
                }
                node=null;
            }
        } 
    }
    ulArr=null;
}

//Added by Sam on May 13th,It's for SBS silverlight
function onSilverlightError(sender, args) {

    var appSource = "";
    if (sender != null && sender != 0) {
        appSource = sender.getHost().Source;
    }
    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;

    var errMsg = "Unhandled Error in Silverlight 2 Application " + appSource + "\n";

    errMsg += "Code: " + iErrorCode + "    \n";
    errMsg += "Category: " + errorType + "       \n";
    errMsg += "Message: " + args.ErrorMessage + "     \n";

    if (errorType == "ParserError") {
        errMsg += "File: " + args.xamlFile + "     \n";
        errMsg += "Line: " + args.lineNumber + "     \n";
        errMsg += "Position: " + args.charPosition + "     \n";
    }
    else if (errorType == "RuntimeError") {
        if (args.lineNumber != 0) {
            errMsg += "Line: " + args.lineNumber + "     \n";
            errMsg += "Position: " + args.charPosition + "     \n";
        }
        errMsg += "MethodName: " + args.methodName + "     \n";
    }

    throw new Error(errMsg);
}

