desenvolvedores

DisplayToc.js

Jun 6th, 2011
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var tocRoot, tocBranch, tocSel, tocLoading, tocLastID, tableSel, tabHead, data, tocTab, tocInitRoot, tocMemToc, rFStatus, oldData, tableSelTable;
  2. var initI;
  3. var icon=new Array();
  4. var preloadIcons=new Array(1,10,101,102,103,104,106,107,108,11,113,116,118,16,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,19,20,21,24,25,26,28,29,31,34,4,5,52,53,56,57,6,60,68,69,7,8,82,9,99);
  5.  
  6. var browser=browserCheck();
  7.  
  8. function browserCheck() {
  9.     browser=navigator.userAgent.toLowerCase();
  10.     if (browser.indexOf('msie')!=-1) {
  11.         if(browser.substring(browser.indexOf('msie')+5,browser.indexOf('.',browser.indexOf('msie')))>6) return("ie7");
  12.         if(browser.substring(browser.indexOf('msie')+5,browser.indexOf('.',browser.indexOf('msie')))>5) return("ie6");
  13.         else return("ie_old");
  14.     }
  15.     else if (browser.indexOf('firefox')!=-1) return("ff");
  16.     else if (browser.indexOf('opera')!=-1) return("op");
  17.     else if (browser.indexOf('gecko')!=-1) return("ff");
  18. }
  19.  
  20. function changeCSS(theClass,element,value,target) {
  21.     var cssRules;
  22.     target = eval(target+'.document.styleSheets');
  23.     if (browser=='ie6'||browser=='ie7') {
  24.         cssRules = 'rules';
  25.     } else if (browser=='ff'||browser=='op') {
  26.         cssRules = 'cssRules';
  27.     }
  28.     for (var S = 0; S < target.length; S++){
  29.         for (var R = 0; R < target[S][cssRules].length; R++) {
  30.             if (target[S][cssRules][R].selectorText == theClass) {
  31.                 try {
  32.                     target[S][cssRules][R].style[element] = value;
  33.                 } catch(e) {}
  34.             }
  35.         }
  36.     }
  37. }
  38.  
  39. function initItem(item) {
  40.     tableSel=null;
  41.     if (cont.document.getElementById('TableGroup')!=null) {
  42.         toggleItem(cont.document.getElementById('TableGroup').getElementsByTagName('li')[0].id.replace("Title",""));
  43.     }
  44. }
  45.  
  46. function initLoad(src,toc,home) {
  47.  
  48.     qs=document.location.search.substring(1);
  49.  
  50.     if (qs.substring(0,qs.indexOf('='))=='goto') {
  51.         var gotoPage = qs.substring(qs.indexOf('=')+1).split(':');
  52.         var fExt = home.substring(home.lastIndexOf('.'));
  53.         var home = "./EARoot/";
  54.         for (var i=0; i<gotoPage.length; i++) {
  55.             home += "EA"+gotoPage[i];
  56.             if (i!=gotoPage.length-1)
  57.                 home += "/";
  58.             else
  59.                 home += fExt;
  60.         }
  61.     }
  62.  
  63.     src=src.document.location+"";
  64.  
  65.     src=src.substring(src.lastIndexOf('/')+1);
  66.     if(src.indexOf('index')==-1&&src!="") return;
  67.  
  68.     var content = document.createElement('div');
  69.     content.className = "IndexBody";
  70.     content.innerHTML=" <iframe src='"+toc+"' name='toc' id='tocIFrame' frameborder='0'></iframe>\n";
  71.     content.innerHTML+="    <iframe src='"+home+"' name='cont' id='contentIFrame' frameborder='0'></iframe>";
  72.     content.innerHTML+="    <div id=\"resizeFrames\"></div>";
  73.  
  74.     initPreLoad(content);
  75.  
  76. }
  77.  
  78. function initPage(src) {
  79.  
  80.     if (browser=="ie_old") return;
  81.  
  82.     if (toc.document==null) toc=top.frames[0];
  83.     if (cont.document==null) cont=top.frames[1];
  84.     if (cont.document==null) {
  85.         setTimeout("initPage('"+src+"')","1000");
  86.         return;
  87.     }
  88.  
  89.     var curPage = cont.document.location+"";
  90.     if (curPage.indexOf('EARoot')!=-1) curPage = curPage.substring(curPage.indexOf('EARoot'));
  91.     else curPage = curPage.substring(curPage.lastIndexOf('/')+1);
  92.  
  93.     for (var j=0; j<cont.document.getElementsByTagName('div').length; j++) {
  94.         if (cont.document.getElementsByTagName('div')[j].className=="ObjectDetailsNotes") {
  95.             var tmpStr = cont.document.getElementsByTagName('div')[j].innerHTML;
  96.             //tmpStr=tmpStr.replace(/&nbsp;<WBR>/g," "); //GAS 810 - removed as it adversely affect PreserveWS
  97.             tmpStr=tmpStr.replace(/&gt;/g,">");
  98.             tmpStr=tmpStr.replace(/&lt;/g,"<");
  99.             cont.document.getElementsByTagName('div')[j].innerHTML=tmpStr;
  100.         }
  101.     }
  102.  
  103.     if (src!=null) initItem();
  104.  
  105.     if(curPage.substr(0,curPage.indexOf('.'))=="blank")
  106.         return;
  107.  
  108.     //Check ToC is loaded
  109.     if (toc.document.body==null) {
  110.         setTimeout("initPage('"+src+"')","1");
  111.         return;
  112.     } else if (toc.document.documentElement.childNodes.length==1) {
  113.         setTimeout("initPage('"+src+"')","1");
  114.         return;
  115.     } else if (toc.document.documentElement.lastChild.childNodes.length==0) {
  116.         setTimeout("initPage('"+src+"')","1");
  117.         return;
  118.     } else {
  119.         var parTree = curPage.substr(0,curPage.lastIndexOf('/')).substr(curPage.indexOf('/')+1).replace(/EA/g,"").replace(/\//g,".");
  120.  
  121.         if (parTree) {
  122.             if (parTree.indexOf('0')!=0) parTree = "0."+parTree;
  123.             parTree=parTree.split('.');
  124.             var tocTmp;
  125.  
  126.             for (var j=0; parTree.length>j; j++) {
  127.  
  128.                 if (j>=2) tocTmp += "."+parTree[j];
  129.                 else tocTmp = parTree[j];
  130.  
  131.                 if (toc.document.getElementById('toc'+tocTmp)==null) {
  132.                     setTimeout("initPage('"+src+"')","1");
  133.                     return;
  134.                 }
  135.  
  136.                 var tmpCurToc = toc.document.getElementById('toc'+tocTmp).parentNode.childNodes;
  137.  
  138.                 toc.tocMemToc = parTree.length-j;
  139.  
  140.                 if (tmpCurToc.length>3&&tmpCurToc[tmpCurToc.length-4].src.substring(tmpCurToc[tmpCurToc.length-4].src.lastIndexOf('images')).indexOf('plus')!=-1) {
  141.                     toc.tocClick(tmpCurToc[tmpCurToc.length-4]);
  142.                 }
  143.             }
  144.         }
  145.  
  146.         if (toc.document.getElementById(curPage)==null) {
  147.             setTimeout("initPage('"+src+"')","1");
  148.             return;
  149.         }
  150.  
  151.         if (toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode&&toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode.childNodes.length>3) {
  152.             if (toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode.childNodes[toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode.childNodes.length-4].src.indexOf('plus')!=-1) {
  153.                 toc.tocClick(toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode.childNodes[toc.document.getElementById(curPage).parentNode.parentNode.parentNode.parentNode.childNodes.length-4]);
  154.             }
  155.         }
  156.  
  157.         if (toc.document.getElementById(curPage).parentNode.parentNode.childNodes[toc.document.getElementById(curPage).parentNode.parentNode.childNodes.length-4].src.indexOf('plus')!=-1) {
  158.                 toc.tocClick(toc.document.getElementById(curPage).parentNode.parentNode.childNodes[toc.document.getElementById(curPage).parentNode.parentNode.childNodes.length-4]);
  159.         }
  160.  
  161.         if (tocSel) tocSel.parentNode.childNodes[tocSel.parentNode.childNodes.length-2].style.backgroundColor = "";
  162.  
  163.         //Highlight selected ToC item and store in memory
  164.         if (toc.document.getElementById(curPage)) {
  165.             tocSel = toc.document.getElementById(curPage).parentNode;
  166.             tocSel.parentNode.childNodes[tocSel.parentNode.childNodes.length-2].style.backgroundColor = "#B2B4BF";
  167.             if (tocSel.offsetTop<toc.document.body.scrollTop||tocSel.offsetTop>toc.document.body.offsetHeight+toc.document.body.scrollTop) {
  168.                 toc.scrollTo(0, tocSel.offsetTop-20);
  169.             }
  170.         }
  171.     }
  172. }
  173.  
  174. function initPreLoad(content) {
  175.  
  176.     var preload=document.getElementById('IndexHeader').parentNode.insertBefore(document.createElement('div'), document.getElementById('IndexHeader').nextSibling);
  177.    
  178.     if(preload == undefined)
  179.         preload = document.getElementById('IndexHeader').parentNode;
  180.  
  181.    
  182.     preload.id="Preload";
  183.     preload.appendChild(document.createElement('p'));
  184.     preload.firstChild.appendChild(document.createTextNode("Loading..."));
  185.    
  186.    
  187.     if (browser=="ie_old") return;
  188.  
  189.     if (browser=="ie6"||browser=="ie7")
  190.         changeCSS('#Preload','height',top.document.body.clientHeight+'px','this');
  191.     else
  192.         changeCSS('#Preload','height',top.innerHeight+'px','this');
  193.  
  194.     for (var i=0; i<preloadIcons.length; i++) {
  195.         icon[preloadIcons[i]]=new Image();
  196.         icon[preloadIcons[i]].src="images/"+preloadIcons[i]+".png";
  197.     }
  198.  
  199.     var preloader = document.body.appendChild(document.createElement('div'));
  200.    
  201.     if(preloader == undefined)
  202.         preloader = document.documentElement.appendChild(document.createElement('div'));
  203.     preloader.style.display="none";
  204.     preloader.id="preloader";
  205.     preloader.appendChild(content);
  206.    
  207.     resizeFrames('init');
  208.    
  209. }
  210.  
  211. function initPreLoaded() {
  212.  
  213.     if (browser=="op")
  214.         setCSS();
  215.  
  216.     var preloader = document.getElementById('preloader');
  217.  
  218.     document.getElementById('Preload').parentNode.replaceChild(preloader.firstChild, document.getElementById('Preload'));
  219.     preloader.parentNode.removeChild(preloader);
  220.  
  221.     if (browser!="op")
  222.         setTimeout('setCSS();','1000');
  223.    
  224. }
  225.  
  226. function resizeFrames(str) {
  227.  
  228.     var resizeFrames = document.getElementById('resizeFrames');
  229.  
  230.     if (str=="init") {
  231.         resizeFrames.onmousedown = resizeFramesOn;
  232.         resizeFrames.onmouseup = resizeFramesOff;
  233.         resizeFrames.onmouseout = resizeFramesOff;
  234.         resizeFrames.onmousemove = resizeFramesMove;
  235.     }
  236.        
  237. }
  238.  
  239. function resizeFramesOn(e) {
  240.     rFStatus=1;
  241.  
  242.     var resizeFrames = document.getElementById('resizeFrames');
  243.     tmpRF = resizeFrames.parentNode.appendChild(document.createElement('div'));
  244.  
  245.     tmpRF.style.left=(document.getElementById('tocIFrame').clientWidth+1)+"px";
  246.     tmpRF.id="tmpRF";
  247.     resizeFrames.style.width="100%"
  248.     resizeFrames.style.left="0px";
  249. }
  250.  
  251. function resizeFramesOff(e) {
  252.     rFStatus=0;
  253.  
  254.     var resizeFrames = document.getElementById('resizeFrames');
  255.  
  256.     if (document.getElementById('tmpRF')!=null)
  257.         document.getElementById('tmpRF').parentNode.removeChild(document.getElementById('tmpRF'));
  258.  
  259.     resizeFrames.style.width="5px";
  260.     resizeFrames.style.left=(document.getElementById('tocIFrame').clientWidth+1)+"px";
  261. }
  262.  
  263. function resizeFramesMove(e) {
  264.     if (rFStatus!=0) {
  265.         if (rFStatus==2)
  266.             var posX = e+2;
  267.         else if (browser=="ff")
  268.             var posX = e.pageX;
  269.         else
  270.             var posX = event.x;
  271.  
  272.         if (posX<=150)
  273.             posX=150;
  274.         else if (posX>=top.document.documentElement.clientWidth / 2)
  275.             posX=top.document.documentElement.clientWidth / 2;
  276.  
  277.         document.getElementById('contentIFrame').style.left=(posX+3)+"px";
  278.         document.getElementById('contentIFrame').style.width=(top.document.documentElement.clientWidth-posX-4)+"px";
  279.         if (document.getElementById('tmpRF')!=null)
  280.             document.getElementById('tmpRF').style.left=(posX-2)+"px";
  281.         if (browser=="ie6")
  282.             document.getElementById('tocIFrame').style.width=(posX-4)+"px";
  283.         else
  284.             document.getElementById('tocIFrame').style.width=(posX-3)+"px";
  285.  
  286.         if(tableSelTable!=null) {
  287.             if(tableSelTable.childNodes.length>1&&document.getElementById('tmpRF')!=null) {
  288.                 tableSelTable.style.width=(document.body.clientWidth-(document.getElementById('tmpRF').offsetLeft+6)-20)+"px";
  289.                 tableSelTable.childNodes[0].style.width=(tableSelTable.offsetWidth-19)+"px";
  290.                 tableSelTable.childNodes[1].style.width=(tableSelTable.offsetWidth-19)+"px";
  291.             }
  292.         }
  293.     }
  294. }
  295.  
  296. function resizePage() {
  297.     if(rFStatus==1) return;
  298.     rFStatus=2;
  299.  
  300.     if(document.getElementById('resizeFrames')==null)
  301.         return;
  302.    
  303.     if (browser=="ie6") {
  304.         pHeight=top.document.body.clientHeight;
  305.     } else {
  306.         pHeight=top.document.documentElement.clientHeight;
  307.     }
  308.  
  309.     resizeFramesMove(document.getElementById('resizeFrames').offsetLeft);
  310.     document.getElementById('contentIFrame').style.height=pHeight-74+'px';
  311.     if (browser=="ie7") {
  312.         document.getElementById('resizeFrames').style.height=pHeight-72+'px';
  313.         changeCSS('#tmpRF','height',pHeight-72+'px','this');
  314.     } else {
  315.         document.getElementById('resizeFrames').style.height=pHeight-70+'px';
  316.         changeCSS('#tmpRF','height',pHeight-70+'px','this');       
  317.     }
  318.     document.getElementById('tocIFrame').style.height=pHeight-74+'px';
  319.     rFStatus=0;
  320. }
  321.  
  322. function setCSS() {
  323.     if (browser=="ie6") {
  324.         pHeight=top.document.body.clientHeight;
  325.     } else {
  326.         pHeight=top.document.documentElement.clientHeight+67;
  327.     }
  328.  
  329.     if (browser=="ie6"||browser=="ie7") {
  330.         changeCSS('.IndexBody','width','','this');
  331.         changeCSS('.IndexBody','top','0px','this');
  332.         changeCSS('.IndexBody','position','relative','this');
  333.         changeCSS('#contentIFrame','height',pHeight-74+'px','this');
  334.         changeCSS('#contentIFrame','left','257px','this');
  335.         changeCSS('#resizeFrames','background','#000000','this');
  336.         changeCSS('#resizeFrames','filter','progid:DXImageTransform.Microsoft.Alpha(opacity=0)','this');
  337.         changeCSS('#resizeFrames','height',pHeight-72+'px','this');
  338.         changeCSS('#tmpRF','border','0px','this');
  339.         changeCSS('#tmpRF','height',pHeight-70+'px','this');
  340.         changeCSS('#tocIFrame','height',pHeight-74+'px','this');
  341.     }
  342.  
  343.     if (browser=="op"||browser=="ie6"||browser=="ie7")
  344.         changeCSS('#contentIFrame','width',top.document.documentElement.clientWidth-258+'px','this');
  345. }
  346.  
  347.  
  348. function tocBuild(data) {
  349.  
  350.     var tocType = new Array();
  351.     var tocTypes = new Array();
  352.     var tocErrs = new Array();
  353.  
  354.     for (var i=0; i<tocTab.length; i++) {
  355.         if (!tocTab[i][8]) tocTab[i][8] = 'misc';
  356.         if (tocTab[i][8].toLowerCase().indexOf('diagram')!=-1) tocTab[i][8] = "0Diagram";
  357.         if (tocTab[i][8].toLowerCase().indexOf('package')!=-1) tocTab[i][8] = "1Package";
  358.         if (!tocType[tocTab[i][8]]) {
  359.             tocType[tocTab[i][8]] = new Array();
  360.             tocTypes[tocTypes.length]=tocTab[i][8];
  361.         }
  362.         tocType[tocTab[i][8]][tocType[tocTab[i][8]].length] = i;
  363.     }
  364.  
  365.     tocTypes.sort();
  366.  
  367.     for (var i=0; i<tocTypes.length; i++) {
  368.         for (var j=0; j<tocType[tocTypes[i]].length; j++) {
  369.             var build = tocBuildItem(tocType[tocTypes[i]][j]);
  370.             if (build!=true)
  371.                 tocErrs[tocErrs.length]=build;
  372.         }
  373.     }
  374.    
  375.     var errRuns=0;
  376.     var errTotal=tocErrs.length;
  377.  
  378.     while(tocErrs.length!=0) {
  379.         if (errNums==tocErrs.length) {
  380.             errRuns++;
  381.             if (errRuns>errTotal) {
  382.                 break;
  383.             }
  384.         }
  385.         var errNums=tocErrs.length;
  386.         var tmp=tocBuildItem(tocErrs.shift());
  387.         if(tmp!=true)
  388.             tocErrs[tocErrs.length]=tmp;
  389.     }
  390.  
  391.     while(tocErrs.length!=0) {
  392.         tocTab[tocErrs[0]][6]="0";
  393.         tocBuildItem(tocErrs.shift());
  394.     }
  395.  
  396.     if (tocLastID!=0) {
  397.         var tocLastSrc = document.getElementById("toc"+tocLastID).parentNode.childNodes[document.getElementById("toc"+tocLastID).parentNode.childNodes.length-4];
  398.         tocLastSrc.src = tocLastSrc.src.substring(tocLastSrc.src.lastIndexOf('images')).replace("01","02");
  399.     }
  400. }
  401.  
  402. function tocBuildItem(i) {
  403.  
  404.     var childItem = false;
  405.  
  406.     if (tocTab[i][0].indexOf(':')!=-1) tocBranch = document.getElementById("toc"+tocTab[i][0].substring(0, tocTab[i][0].lastIndexOf(':')));
  407.     else if (tocTab[i][0].indexOf('.')!=-1) tocBranch = document.getElementById("toc"+tocTab[i][0].substring(0, tocTab[i][0].lastIndexOf('.')));
  408.     else if (tocTab[i][0]!="0") tocBranch = document.getElementById("toc0");
  409.     else if (tocTab[i][1]==3) tocBranch = document.getElementById("System").parentNode.lastChild;
  410.     else tocBranch = tocRoot;
  411.    
  412.     //Check if item is child
  413.     if (tocTab[i][5]&&tocTab[i][6]&&tocTab[i][6]!="0") {
  414.         if (document.getElementById(tocTab[i][6])==null) return i;
  415.         tocBranch = document.getElementById(tocTab[i][6]).parentNode.lastChild;
  416.         childItem = true;
  417.     }
  418.  
  419.     tocBranch = tocBranch.appendChild(document.createElement('li'));
  420.  
  421.     if (tocTab[i][0]!=0||tocTab[i][1]==3) {
  422.         tocImage = tocBranch.appendChild(document.createElement('img'));
  423.  
  424.         if (tocTab[i][0].indexOf('.')==-1&&(tocTab[i][0].indexOf(':')==-1||tocTab[i][0].indexOf('0')==0)) tocImage.src = "images/join01.gif";
  425.         else if (tocTab[i][0].indexOf('.')!=-1||tocTab[i][0].indexOf(':')!=-1) {
  426.             var tocTmp=tocTab[i][0].replace(':','.');
  427.             for (var m=0; tocTmp.split('.').length>m+1; m++) {
  428.                 if (document.getElementById("toc"+tocTmp.substring(0,tocTmp.lastIndexOf('.'))).parentNode.childNodes[m].src.substring(document.getElementById("toc"+tocTmp.substring(0,tocTmp.lastIndexOf('.'))).parentNode.childNodes[m].src.lastIndexOf('images')).indexOf('02')!=-1||document.getElementById("toc"+tocTmp.substring(0,tocTmp.lastIndexOf('.'))).parentNode.childNodes[m].src.substring(document.getElementById("toc"+tocTmp.substring(0,tocTmp.lastIndexOf('.'))).parentNode.childNodes[m].src.lastIndexOf('images')).indexOf('04')!=-1) tocImage.src = "images/join04.gif";
  429.                 else tocImage.src = "images/join03.gif";
  430.                 tocImage = tocBranch.appendChild(document.createElement('img'));
  431.             }
  432.             tocImage.src = "images/join01.gif";
  433.         }
  434.         tocImage.onclick = function() { tocClick(this); }
  435.  
  436.         if (tocTab[i][1]==3) {
  437.             tocImage.src=tocImage.src.substring(tocImage.src.lastIndexOf('images')).replace("01","02");
  438.             if (tocImage.parentNode.parentNode.childNodes.length>1) {
  439.                 tocTmp = tocImage.parentNode.previousSibling.childNodes[tocImage.parentNode.previousSibling.childNodes.length-4];
  440.                 tocTmp.src=tocTmp.src.substring(tocTmp.src.lastIndexOf('images')).replace("02","01");
  441.             }
  442.         }
  443.  
  444.         //Check if item has children data
  445.         if (tocTab[i][1]&&tocTab[i][1]!=3) {
  446.             tocImage.id=tocTab[i][7];
  447.             tocImage.alt=tocTab[i][7];
  448.         } else if (childItem==true) {
  449.             while (tocImage.parentNode.childNodes.length<document.getElementById(tocTab[i][6]).parentNode.childNodes.length-2) {
  450.                 tocImage.parentNode.insertBefore(document.createElement('img'), tocImage).src="images/join03.gif";
  451.             }
  452.             tocImage.src=tocImage.src.substring(tocImage.src.lastIndexOf("images")).replace('01','02');
  453.             if (document.getElementById(tocTab[i][6]).parentNode.lastChild.childNodes.length>1) {
  454.                 tocTmpSrc=document.getElementById(tocTab[i][6]).parentNode.lastChild.lastChild.previousSibling.childNodes[document.getElementById(tocTab[i][6]).parentNode.lastChild.lastChild.previousSibling.childNodes.length-4];
  455.                 tocTmpSrc.src=tocTmpSrc.src.substring(tocTmpSrc.src.lastIndexOf('images')).replace('02','01');
  456.             }
  457.             tocImage = document.getElementById(tocTab[i][6]).parentNode.childNodes[document.getElementById(tocTab[i][6]).parentNode.childNodes.length-4];
  458.             tocImage.parentNode.lastChild.style.display = "none";
  459.         }
  460.  
  461.         if ((tocTab[i][1]&&tocTab[i][1]!=3)||childItem==true) {
  462.             tocImage.id=tocImage.id.substr(1,tocImage.id.length-2);
  463.             tocImage.src=tocImage.src.substring(tocImage.src.lastIndexOf('images')).replace('join','plus');
  464.         }
  465.     }
  466.  
  467.     //Set Icon
  468.     if (tocTab[i][3]) {
  469.         tocImg = tocBranch.appendChild(document.createElement('a'));
  470.         tocImg.href = tocTab[i][3];
  471.         tocImg.target = top.frames[1].name;
  472.     } else tocImg = tocBranch;
  473.     tocTab[i][4]=tocTab[i][4].substring(0,tocTab[i][4].indexOf('.'))
  474.  
  475.     tocImg = tocImg.appendChild(document.createElement('img'));
  476.     if(top.icon[tocTab[i][4]])
  477.         tocImg.src = top.icon[tocTab[i][4]].src;
  478.     else
  479.         tocImg.src = "images/"+tocTab[i][4]+".png";
  480.  
  481.     if (tocTab[i][3])
  482.         tocImg.id=tocTab[i][3];
  483.  
  484.     //Set Text/Link
  485.     if (tocTab[i][5]&&tocTab[i][8]!="0Diagram") tocBranch.lastChild.id=tocTab[i][5];
  486.     else tocBranch.lastChild.id="0";
  487.     tocBranch.lastChild.style.marginRight="4px";
  488.     if (tocTab[i][3]) {
  489.         tocText = tocBranch.appendChild(document.createElement('a'));
  490.         tocText.href = tocTab[i][3];
  491.         tocText.target = top.frames[1].name;
  492.     }
  493.     else tocText = tocBranch;
  494.     var j=0;
  495.  
  496.     //Replace values
  497.     while (tocTab[i][2].indexOf('&quot;')!=-1) tocTab[i][2] = tocTab[i][2].replace('&quot;','\"');
  498.     while (tocTab[i][2].indexOf('<br />')!=-1) tocTab[i][2] = tocTab[i][2].replace('<br />','\n');
  499.     while (tocTab[i][2].indexOf('&#39;')!=-1) tocTab[i][2] = tocTab[i][2].replace('&#39;','\'');
  500.     if (tocTab[i][2]=="") tocTab[i][2]="               ";
  501.  
  502.     tocText.appendChild(document.createTextNode(tocTab[i][2]));
  503.     tocBranch.appendChild(document.createElement('ul')).id = "toc"+tocTab[i][0];
  504.  
  505.     tocLastID = tocTab[i][0];
  506.  
  507.     return true;
  508.  
  509. }
  510.  
  511. function tocClick(tocSrc) {
  512.  
  513.     if (tocSrc.src.substring(tocSrc.src.lastIndexOf('images')).indexOf('minus')!=-1) {
  514.  
  515.         tocSrc.parentNode.childNodes[tocSrc.parentNode.childNodes.length-1].style.display = "none";
  516.         tocSrc.src=tocSrc.src.substring(tocSrc.src.lastIndexOf('images')).replace('minus','plus');
  517.  
  518.     } else if (tocSrc.src.substring(tocSrc.src.lastIndexOf('images')).indexOf('plus')!=-1) {
  519.  
  520.         tocSrc.parentNode.childNodes[tocSrc.parentNode.childNodes.length-1].style.display = "block";
  521.         tocSrc.src=tocSrc.src.substring(tocSrc.src.lastIndexOf('images')).replace('plus','minus');
  522.  
  523.         //Check if children data built
  524.         if (tocSrc.parentNode.childNodes[tocSrc.parentNode.childNodes.length-1].childNodes.length==0) {
  525.             tocLoadData(tocSrc.id+".xml");
  526.         }
  527.  
  528.     }
  529.  
  530. }
  531.  
  532. function tocInit() {
  533.     if (browser=="ie_old") {
  534.                 top.document.getElementById('Preload').childNodes[0].innerHTML="<strong>It appears you are using an outdated version of Internet Explorer, please download a later version from <a href=\"http://www.microsoft.com/windows/ie/default.mspx\">Microsoft</a></strong>";
  535.                 return;
  536.     }
  537.     tocLoading = document.body.appendChild(document.createElement('div'));
  538.     tocRoot = document.body.appendChild(document.createElement('ul'));
  539.     tocRoot.id = "tocRoot";
  540.     tocInitRoot = 1;
  541.     tocLoadData('root.xml');
  542. }
  543.  
  544. function tocLoadData(src) {
  545.  
  546.     var tmp=document.location+"";
  547.     tmp=tmp.substring(0,tmp.indexOf('toc.'));
  548.  
  549.     src = tmp+"js/data/"+src;
  550.     tocTab = new Array();
  551.  
  552.     try {
  553.         data = new XMLHttpRequest();
  554.         data.onreadystatechange = tocLoadDataProcess;
  555.         data.open("GET", src, true);
  556.         data.send(null);
  557.     } catch(e) {
  558.         if (browser=="ie6"||browser=="ie7") {
  559.             data = new ActiveXObject("Microsoft.XMLHTTP");
  560.             if (data) {
  561.                 data.onreadystatechange = tocLoadDataProcess;
  562.                 data.open("GET", src, true);
  563.                 data.send();
  564.             }
  565.         } else {
  566.             alert(e);
  567.         }
  568.     }
  569. }
  570.  
  571. function tocLoadDataProcess() {
  572.     if (data.readyState == 4) {
  573.         if (oldData==data)
  574.             return;
  575.         oldData=data;
  576.         try {
  577.             eval(data.responseText);
  578.             tocBuild();
  579.             tocInitRoot++;
  580.             if (tocInitRoot==2) {
  581.                 tocLoadData(tocTab[0][7].substring(1,tocTab[0][7].length-1)+".xml");
  582.             } else if (tocInitRoot==3&&top.document.getElementById('Preload')!=null) {
  583.                 tocInitRoot=0;
  584.                 top.initPreLoaded();
  585.             }
  586.         } catch(e) {
  587.             if(top.document.getElementById('Preload')!=null)
  588.                 top.document.getElementById('Preload').childNodes[0].innerHTML="<strong>An error occured while loading data files, please confirm that all files have been generated and are intact.</strong>";
  589.             return;
  590.         }
  591.     }
  592. }
  593.  
  594. function toggleData(src) {
  595.     var dataRoot = cont.document.getElementById(src).parentNode.parentNode.parentNode;
  596.     if (cont.document.getElementById(src).src.substring(cont.document.getElementById(src).src.lastIndexOf('images')).indexOf('plus')!=-1) cont.document.getElementById(src).src=cont.document.getElementById(src).src.substring(0,cont.document.getElementById(src).src.lastIndexOf('images'))+cont.document.getElementById(src).src.substring(cont.document.getElementById(src).src.lastIndexOf('images')).replace('plus','minus');
  597.     else cont.document.getElementById(src).src=cont.document.getElementById(src).src.substring(0,cont.document.getElementById(src).src.lastIndexOf('images'))+cont.document.getElementById(src).src.substring(cont.document.getElementById(src).src.lastIndexOf('images')).replace('minus','plus');
  598.     for (var i=0; i<dataRoot.getElementsByTagName('tr').length; i++) {
  599.         if (dataRoot.getElementsByTagName('tr')[i].id.indexOf(src)!=-1&&cont.document.getElementById(src).src.substring(cont.document.getElementById(src).src.lastIndexOf('images')).indexOf('minus')!=-1&&dataRoot.getElementsByTagName('tr')[i].getElementsByTagName('td')[1].firstChild!=null) dataRoot.getElementsByTagName('tr')[i].style.display="";
  600.         else if (dataRoot.getElementsByTagName('tr')[i].id.indexOf(src)!=-1) dataRoot.getElementsByTagName('tr')[i].style.display="none";
  601.     }
  602.     if (cont.document.getElementById('TableGroup')!=null) {
  603.         toggleItem(tableSel,2);
  604.     }
  605. }
  606.  
  607. function toggleItem(item,type) {
  608.  
  609.     if (tableSel!=null) {
  610.         cont.document.getElementById(tableSel+"Title").style.background="#FFFFFF";
  611.         cont.document.getElementById(tableSel+"Title").style.color="#000000";
  612.         cont.document.getElementById(tableSel+"Table").style.display="none";   
  613.     }
  614.     tableSel=item;
  615.     tableSelTable = cont.document.getElementById(item+"Table");
  616.     tableSelTitle = cont.document.getElementById(item+"Title");
  617.  
  618.     tableSelTitle.style.background="#DDDDDD";
  619.     tableSelTitle.style.color="#666666";
  620.     tableSelTable.style.display="block";
  621.    
  622.     if (browser=="ff"||browser=="op"||browser=="ie7") {
  623.         var contWHeight = document.documentElement.clientHeight-78;
  624.         var contWWidth = cont.document.documentElement.clientWidth;
  625.     } else {
  626.         var contWHeight = document.body.clientHeight-74;
  627.         var contWWidth = document.body.clientWidth-(top.document.getElementById('resizeFrames').offsetLeft+6);
  628.     }
  629.  
  630.     if (tableSelTable.id=="LinkedDocumentTable")
  631.         tableSelTable.style.overflow="scroll";
  632.            
  633.     if (cont.document.body.offsetHeight-contWHeight>0) {
  634.         if (tableSelTable.id!="LinkedDocumentTable")
  635.             tableSelTable.style.overflow="scroll";
  636.         if (browser=="ff"||browser=="op") {
  637.             tableSelTable.style.height=tableSelTable.offsetHeight-(cont.document.body.offsetHeight-cont.innerHeight)-12+"px";
  638.         } else {
  639.        
  640.             tableSelTable.style.height=tableSelTable.offsetHeight-(cont.document.body.offsetHeight-contWHeight)-3+"px";
  641.             if (cont.document.body.offsetWidth>contWWidth||type==null) {
  642.                 tableSelTable.style.width=contWWidth-20+"px";
  643.                 if(tableSelTable.getElementsByTagName('table').length!=0)
  644.                     tableSelTable.getElementsByTagName('table')[0].style.width=tableSelTable.getElementsByTagName('table')[0].offsetWidth-18+"px";
  645.             }
  646.         }
  647.         if(tableSelTable.getElementsByTagName('table').length!=0) {
  648.             tabHead = tableSelTable.appendChild(tableSelTable.getElementsByTagName('table')[0].cloneNode(true));
  649.             tabHead.style.position="absolute";
  650.             if (browser=="ff"||browser=="op")
  651.                 tabHead.style.width=tableSelTable.offsetWidth+"px";
  652.             tabHead.style.top=tableSelTable.offsetTop+1+"px";
  653.             for (var i=0; i<tabHead.getElementsByTagName('tr').length; i++) {
  654.                 if (i!=0) tabHead.getElementsByTagName('tr')[i].style.display="none";
  655.             }
  656.         }
  657.     } else if (cont.document.getElementById('TableGroup').offsetHeight+cont.document.getElementById('TableGroup').offsetTop<(contWHeight-6)&&tableSelTable.style.overflow=="scroll") {
  658.         if (browser=="ff"||browser=="op") {
  659.             tableSelTable.style.height=tableSelTable.offsetHeight-(cont.document.body.offsetHeight-cont.innerHeight)-12+"px";
  660.         } else {
  661.             tableSelTable.style.height=tableSelTable.offsetHeight+((contWHeight-8)-(cont.document.getElementById('TableGroup').offsetHeight+cont.document.getElementById('TableGroup').offsetTop))+"px";
  662.         }
  663.     }
  664.     if(tableSelTable.childNodes.length>1) {
  665.         tableSelTable.style.width=(document.body.clientWidth-(top.document.getElementById('resizeFrames').offsetLeft+6)-20)+"px";
  666.         tableSelTable.childNodes[0].style.width=(tableSelTable.offsetWidth-19)+"px";
  667.         tableSelTable.childNodes[1].style.width=(tableSelTable.offsetWidth-19)+"px";
  668.     }
  669. }
Advertisement
Add Comment
Please, Sign In to add comment