6 var gsInsertBeforeEndHTML="";
7 var sReplaceStringsSrc=new Array();
8 var gsDivName="dataDiv";
10 sReplaceStringsSrc[0]="&";
11 sReplaceStringsSrc[1]=">";
12 sReplaceStringsSrc[2]="<";
13 sReplaceStringsSrc[3]=""";
14 sReplaceStringsSrc[4]=String.fromCharCode(8364);
15 sReplaceStringsSrc[5]=" ";
17 var sReplaceStringsDst=new Array();
18 sReplaceStringsDst[0]="&";
19 sReplaceStringsDst[1]=">";
20 sReplaceStringsDst[2]="<";
21 sReplaceStringsDst[3]="\"";
22 sReplaceStringsDst[4]=String.fromCharCode(128);
23 sReplaceStringsDst[5]=" ";
24 var goHighLighted=null;
26 function _getRelativePath(strParentPath,strCurrentPath)
28 if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);
29 strParentPath=_replaceSlash(strParentPath);
30 strParentPath=_getPath(strParentPath);
31 strCurrentPath=_replaceSlash(strCurrentPath);
32 strCurrentPath=_getPath(strCurrentPath);
33 for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
35 if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
39 strParentPath=strParentPath.substring(i);
40 strCurrentPath=strCurrentPath.substring(i);
45 nPathPos=strParentPath.indexOf("/");
48 strParentPath=strParentPath.substring(nPathPos+1);
49 strCurrentPath="../"+strCurrentPath;
52 return strCurrentPath;
55 function _getRelativeFileName(strParentPath,strCurrentPath)
57 strParentPath=_replaceSlash(strParentPath);
58 strParentPath=_getPath(strParentPath);
59 strCurrentPath=_replaceSlash(strCurrentPath);
60 for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
62 if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
66 strParentPath=strParentPath.substring(i);
67 strCurrentPath=strCurrentPath.substring(i);
72 nPathPos=strParentPath.indexOf("/");
75 strParentPath=strParentPath.substring(nPathPos+1);
76 strCurrentPath="../"+strCurrentPath;
79 return strCurrentPath;
82 function _isAbsPathToHost(sPath)
84 return (sPath.indexOf("/")==0);
87 function _getHost(sPath)
89 var nPos=sPath.indexOf("//");
92 var nPosx=sPath.indexOf("/",nPos+2);
94 return sPath.substring(0,nPosx);
101 function _getFullPath(sPath,sRelPath)
103 if(_isAbsPath(sRelPath))
105 else if(_isAbsPathToHost(sRelPath))
106 return _getHost(sPath)+sRelPath;
113 var nPathPos=sRelPath.indexOf("../");
116 sRelPath=sRelPath.substring(nPathPos+3);
117 sFullPath=sFullPath.substring(0,sFullPath.length-1);
118 var nPos2=sFullPath.lastIndexOf("/");
120 sFullPath=sFullPath.substring(0,nPos2+1);
130 function _isAbsPath(strPath)
132 var strUpper=strPath.toUpperCase();
133 return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);
136 function _replaceSlash(strURL)
138 var re=new RegExp("\\\\","g");
139 var strReplacedURL=strURL.replace(re,"/");
140 return strReplacedURL;
143 function _getPath(strURL)
145 pathpos=strURL.lastIndexOf("/");
147 return strURL.substring(0,pathpos+1);
152 function removeItemFromArray(oArray,i)
154 if(oArray.length&&i>=0&&i<oArray.length)
156 var len=oArray.length;
157 for(var s=i;s<len-1;s++)
158 oArray[s]=oArray[s+1];
163 function insertItemIntoArray(oArray,i,obj)
165 if(oArray.length&&i>=0&&i<=oArray.length)
167 var len=oArray.length;
168 for(var s=len;s>i;s--)
169 oArray[s]=oArray[s-1];
174 function loadData(sFileName)
177 var sName=gsDivName+gnLoadDivNum++;
178 loadData_2(sFileName,sName);
181 function loadData_2(sFileName,sDivName)
183 if(!getElement(sDivName))
185 if(!insertDataDiv(sDivName))
187 gsFileName=sFileName;
194 sHTML+="<iframe src=\""+sFileName+"\"></iframe>";
196 sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";
198 var oDivCon=getElement(sDivName);
203 if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)
205 oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;
208 oDivCon.innerHTML=sHTML;
211 oDivCon.innerHTML=sHTML;
215 function loadDataXML(sFileName)
217 var sCurrentDocPath=_getPath(document.location.href);
218 sdocPath=_getFullPath(sCurrentDocPath,sFileName);
221 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
223 xmlDoc.onreadystatechange=checkState;
224 if(document.body!=null)
225 xmlDoc.load(sdocPath);
229 xmlDoc=document.implementation.createDocument("","",null);
230 xmlDoc.addEventListener("load",initializeData,false);
231 xmlDoc.load(sdocPath,"text/xml");
235 function initializeData()
238 putDataXML(xmlDoc,sdocPath);
241 function checkState()
245 var state=xmlDoc.readyState;
248 var err=xmlDoc.parseError;
250 putDataXML(xmlDoc,sdocPath);
257 function insertDataDiv(sName)
261 sHTML+="<div id="+sName+" style=\"display:none;\"></div>";
263 sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";
264 if((gbIE5||gbNav6)&&document.body)
265 document.body.insertAdjacentHTML("beforeEnd",sHTML);
268 gsInsertBeforeEndHTML=sHTML;
269 setTimeout("insertWhenBodyReady();",100);
275 function insertWhenBodyReady()
277 if(gsInsertBeforeEndHTML=="") return;
280 document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);
281 gsInsertBeforeEndHTML="";
282 loadData_2(gsFileName,gsDivName);
286 setTimeout("insertWhenBodyReady();",100);
290 function window_BUnload()
292 for(var i=0;i<gnLoadDivNum;i++)
294 var oDivCon=getElement(gsDivName+i);
296 oDivCon.innerHTML="";
300 function removeThis(obj)
303 obj.parentNode.removeChild(obj);
308 function getParentNode(obj)
311 return obj.parentNode;
312 else if(obj.parentElement)
313 return obj.parentElement;
317 function getElement(sID)
319 if(document.getElementById)
320 return document.getElementById(sID);
321 else if(document.all)
322 return document.all(sID);
326 function getChildrenByTag(obj,sTagName)
328 if(obj.getElementsByTagName)
330 var aChildren=new Array();
331 var aElements=getElementsByTag(obj,sTagName);
334 for(var i=0;i<aElements.length;i++)
336 if(aElements[i].parentNode==obj)
337 aChildren[aChildren.length]=aElements[i];
344 else if(obj.children)
345 return obj.children.tags(sTagName);
348 function getElementsByTag(obj,sTagName)
350 if(obj.getElementsByTagName)
351 return obj.getElementsByTagName(sTagName);
353 return obj.all.tags(sTagName);
357 function _htmlToText(sHTML)
359 if(sHTML==null) return null;
361 for(var i=0;i<sReplaceStringsSrc.length;i++)
363 var re=new RegExp(sReplaceStringsSrc[i],"g");
364 sText=sText.replace(re,sReplaceStringsDst[i]);
369 function _textToHtml_nonbsp(sText)
371 if(sText==null) return null;
373 for(var i=0;i<sReplaceStringsSrc.length-1;i++)
375 var re=new RegExp(sReplaceStringsDst[i],"g");
376 sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
381 function _textToHtml(sText)
383 if(sText==null) return null;
385 for(var i=0;i<sReplaceStringsSrc.length;i++)
387 var re=new RegExp(sReplaceStringsDst[i],"g");
388 sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
394 function getInnerText(obj)
396 var renbsp2sp=new RegExp("\xa0","g");
399 var sText=obj.innerText;
400 sText=sText.replace(renbsp2sp," ");
407 var sValue=obj.nodeValue;
408 sValue=sValue.replace(renbsp2sp," ");
414 var oChild=obj.firstChild;
417 sText+=getInnerText(oChild);
418 oChild=oChild.nextSibling;
426 function HighLightElement(obj,sHighLightColor,sNormalColor)
430 resetHighLight(sNormalColor);
432 obj.style.backgroundColor=sHighLightColor;
437 function resetHighLight(sNormalColor)
439 if(goHighLighted!=null)
441 if (goHighLighted.style)
442 goHighLighted.style.backgroundColor=sNormalColor;
447 function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)
453 this.sWeight=sWeight;
454 this.sDecoration=sDecoration;
457 function getFontStyle(oFont)
462 sStyle+="font-family:"+oFont.sName+";";
465 var nSize=parseInt(oFont.sSize);
470 sStyle+="font-size:"+nSize+"pt;";
473 sStyle+="font-size:"+oFont.sSize+";";
475 sStyle+="font-style:"+oFont.sStyle+";";
476 sStyle+="font-weight:"+oFont.sWeight+";";
477 sStyle+="text-decoration:"+oFont.sDecoration+";";
478 sStyle+="color:"+oFont.sColor+";";
483 function _browserStringToText(sBStr)
486 // change %xxx back to the real char.
487 var nPos=sBStr.indexOf('%');
490 sText+=sBStr.substring(0,nPos);
491 sBStr=sBStr.substring(nPos+1);
494 while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')
496 sNum+=sBStr.charAt(i++);
499 var nNum=parseInt(sNum,16);
500 sText+=String.fromCharCode(nNum);
501 sBStr=sBStr.substring(i);
503 nPos=sBStr.indexOf('%');
509 function excapeSingleQuotandSlash(str)
511 if(str==null) return null;
514 var nPosNew=str.indexOf("\\",nPos);
516 sRes+=str.substring(nPos,nPosNew+1)+"\\";
518 nPosNew=str.indexOf("\\",nPos);
521 sRes+=str.substring(nPos);
522 var re=new RegExp("'","g");
523 sRes=sRes.replace(re,"\\'");