/protocols/smpp/docs/UML/html-docs/js/displayToc.js

http://mobicents.googlecode.com/ · JavaScript · 656 lines · 531 code · 117 blank · 8 comment · 169 complexity · 492611618ef33392494c3f3aaf91d32d MD5 · raw file

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