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