3771. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 1/2/2018 11:59:33 AM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

3771.1 Files compared

# Location File Last Modified
1 Tue Jan 2 16:59:33 2018 UTC
2 HTRE_P2.zip\src.zip\output\IHTA OLH Files.zip\reports.zip whutils.js Tue Jan 19 13:58:38 2016 UTC

3771.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 0 0
Changed 0 0
Inserted 1 1022
Removed 0 0

3771.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

3771.4 Active regular expressions

No regular expressions were active.

3771.5 Comparison detail

        1   //      We bHelp 5.10 .004
        2   var gsFile Name="";
        3   var gsDivN ame="";
        4   var xmlDoc =null;
        5   var sdocPa th=null;
        6   var gsInse rtBeforeEn dHTML="";
        7   var sRepla ceStringsS rc=new Arr ay();
        8   var gsDivN ame="dataD iv";
        9   var gnLoad DivNum=0;
        10   var xmlHtt p=null;
        11   sReplaceSt ringsSrc[0 ]="&";
        12   sReplaceSt ringsSrc[1 ]=">";
        13   sReplaceSt ringsSrc[2 ]="<";
        14   sReplaceSt ringsSrc[3 ]=""" ;
        15   sReplaceSt ringsSrc[4 ]=String.f romCharCod e(8364);
        16   sReplaceSt ringsSrc[5 ]=" " ;
        17  
        18   var sRepla ceStringsD st=new Arr ay();
        19   sReplaceSt ringsDst[0 ]="&";
        20   sReplaceSt ringsDst[1 ]=">";
        21   sReplaceSt ringsDst[2 ]="<";
        22   sReplaceSt ringsDst[3 ]="\"";
        23   sReplaceSt ringsDst[4 ]=String.f romCharCod e(128);
        24   sReplaceSt ringsDst[5 ]=" ";
        25   var goHigh Lighted=nu ll;
        26   var c_sEng inePath='/ robo/bin/r obo.dll';  // roboeng ine path
        27   var gbSear chPage=fal se;
        28  
        29   var gIlleg alTopicNam eChars = " *?\'\"<>|[ ];" ;
        30  
        31   function _ getRelativ ePath(strP arentPath, strCurrent Path)
        32   {
        33           if (_isAbsPat h(strCurre ntPath)) r eturn _get Path(strCu rrentPath) ;
        34           st rParentPat h=_replace Slash(strP arentPath) ;
        35           st rParentPat h=_getPath (strParent Path);
        36           st rCurrentPa th=_replac eSlash(str CurrentPat h);
        37           st rCurrentPa th=_getPat h(strCurre ntPath);
        38           fo r(var i=0; i<strParen tPath.leng th&&i<strC urrentPath .length;i+ +)
        39           {
        40                    if(s trParentPa th.charAt( i)!=strCur rentPath.c harAt(i))
        41                             break;
        42           }
        43           
        44           st rParentPat h=strParen tPath.subs tring(i);
        45           st rCurrentPa th=strCurr entPath.su bstring(i) ;     
        46           
        47           va r nPathPos =0;
        48           wh ile(nPathP os!=-1)
        49           {
        50                    nPat hPos=strPa rentPath.i ndexOf("/" );
        51                    if(n PathPos!=- 1)
        52                    {
        53                             strPar entPath=st rParentPat h.substrin g(nPathPos +1);
        54                             strCur rentPath=" ../"+strCu rrentPath;
        55                    }
        56           }
        57           re turn strCu rrentPath;
        58   }
        59  
        60   function _ getRelativ eFileName( strParentP ath,strCur rentPath)
        61   {
        62           st rParentPat h=_replace Slash(strP arentPath) ;
        63           st rParentPat h=_getPath (strParent Path);
        64           st rCurrentPa th = _repl aceSlash(s trCurrentP ath);
        65           va r lastSlas hIdx = 0;
        66           fo r(var i=0; i<strParen tPath.leng th&&i<strC urrentPath .length;i+ +) {
        67                if (strP arentPath. charAt(i)  != strCurr entPath.ch arAt(i)) {
        68                    brea k;
        69                }
        70                else {
        71                    if ( strParentP ath.charAt (i) == '/' )
        72                         lastSlashI dx = i;
        73                }
        74           }
        75  
        76           st rParentPat h = strPar entPath.su bstring(la stSlashIdx +1);
        77           st rCurrentPa th = strCu rrentPath. substring( lastSlashI dx+1);       
        78           
        79           va r nPathPos =0;
        80           wh ile(nPathP os!=-1)
        81           {
        82                    nPat hPos=strPa rentPath.i ndexOf("/" );
        83                    if(n PathPos!=- 1)
        84                    {
        85                             strPar entPath=st rParentPat h.substrin g(nPathPos +1);
        86                             strCur rentPath=" ../"+strCu rrentPath;
        87                    }
        88           }
        89           re turn strCu rrentPath;
        90   }
        91  
        92   function _ isAbsPathT oHost(sPat h)
        93   {
        94           re turn (sPat h.indexOf( "/")==0);
        95   }
        96  
        97   function _ getHost(sP ath)
        98   {
        99           va r nPos=sPa th.indexOf ("//");
        100           if (nPos>0)
        101           {
        102                    var  nPosx=sPat h.indexOf( "/",nPos+2 );
        103                    if(n Posx>0)
        104                             return  sPath.sub string(0,n Posx);
        105                    else
        106                             return  sPath;
        107           }
        108           re turn sPath ;
        109   }
        110  
        111   function _ getFullPat h(sPath,sR elPath)
        112   {
        113           if (_isAbsPat h(sRelPath ))
        114                    retu rn sRelPat h;
        115           el se if(_isA bsPathToHo st(sRelPat h))
        116                    retu rn _getHos t(sPath)+s RelPath;
        117           el se
        118           {
        119                    var  sFullPath= sPath;
        120                    var  nPathPos=0 ;
        121                    whil e(nPathPos !=-1)
        122                    {
        123                             var nP athPos=sRe lPath.inde xOf("../") ;
        124                             if(nPa thPos!=-1)
        125                             {
        126                                      sRelPath =sRelPath. substring( nPathPos+3 );
        127                                      sFullPat h=sFullPat h.substrin g(0,sFullP ath.length -1);
        128                                      var nPos 2=sFullPat h.lastInde xOf("/");
        129                                      if(nPos2 !=-1)
        130                                               sFullPath= sFullPath. substring( 0,nPos2+1) ;
        131                                      else
        132                                               break;
        133                             }
        134                    }
        135                    sFul lPath+=sRe lPath;
        136                    retu rn sFullPa th;
        137           }        
        138   }
        139  
        140   function _ getFullPat hInAIR( sS wfPath, sR elPath)
        141   {
        142           va r retPath  = _getFull Path(_getP ath(sSwfPa th) , sRel Path);
        143           va r retFile  = new wind ow.runtime .flash.fil esystem.Fi le(retPath );
        144           re turn retFi le.nativeP ath;                        
        145   }
        146  
        147   function _ isAbsPath( strPath)
        148   {
        149           va r strUpper =strPath.t oUpperCase ();
        150           re turn (strU pper.index Of(":")!=- 1||strUppe r.indexOf( "\\\\")==0 );
        151   }
        152  
        153   function _ replaceSla sh(strURL)
        154   {       
        155           va r re=new R egExp("\\\ \","g");
        156           va r strRepla cedURL=str URL.replac e(re,"/");
        157           re turn strRe placedURL;
        158   }
        159  
        160   function _ getPath(st rURL)
        161   {
        162           //  remove th e search a nd hash st ring
        163           va r n=0;
        164           va r n1=strUR L.indexOf( '#');
        165           va r n2=strUR L.indexOf( '?');
        166           if ( n1>=0 )
        167           {
        168                    if(  n2>=0 )
        169                                      n=(n1>n2 )?n2:n1;
        170                    else     n=n1;
        171           }e lse
        172           {
        173                    if(  n2>=0 )
        174                                      n=n2;
        175                    else     n=strU RL.length;
        176           };
        177           st rURL=strUR L.substrin g(0, n);
        178  
        179           pa thpos=strU RL.lastInd exOf("/");
        180           if (pathpos>0 )
        181                    retu rn strURL. substring( 0,pathpos+ 1);
        182           el se
        183                    retu rn "";
        184   }
        185  
        186   function _ isHTTPUrl( strUrl)
        187   {
        188       strUrl  = strUrl. toUpperCas e();
        189       str1 =  strUrl.su bstring(0,  7);
        190       str2 =  strUrl.su bstring(0,  8);
        191       if(str 1 == "HTTP ://" || st r1 == "HTT P:\\\\" ||
        192       str2 = = "HTTPS:/ /" || str2  == "HTTPS :\\\\")
        193           re turn true;
        194           el se 
        195           {
        196                str3 = s trUrl.subs tring(0, 4 );
        197                if(str3  == "WWW.")
        198                    retu rn true;
        199           }
        200           re turn false ;
        201   }
        202  
        203   function _ isRemoteUr l(strUrl)
        204   {
        205       strUrl .toUpperCa se();
        206       if(_is HTTPUrl(st rUrl)) ret urn true;
        207  
        208       str1 =  strUrl.su bstring(0,  7);
        209       if (st r1 == "MAI LTO:")       return t rue;
        210       if (st r1 == "TEL NET:")       return t rue;
        211       if (st r1 == "GOP HER:")       return t rue;
        212       str1 =  strUrl.su bstring(0,  5);
        213       if (st r1 == "FTP ://")        return t rue;
        214       if (st r1 == "NEW S:")         return t rue;
        215       if (st r1 == "FIL E:")         return t rue;
        216       if (st r1 == "FTP :\\\\") re turn true;
        217  
        218       return  false;
        219   }
        220  
        221   function r emoveItemF romArray(o Array,i)
        222   {
        223           if (oArray.le ngth&&i>=0 &&i<oArray .length)
        224           {
        225                    var  len=oArray .length;
        226                    for( var s=i;s< len-1;s++)
        227                             oArray [s]=oArray [s+1];
        228                    oArr ay.length= len-1;
        229           }
        230   }
        231  
        232   function i nsertItemI ntoArray(o Array,i,ob j)
        233   {
        234           if (oArray.le ngth&&i>=0 &&i<=oArra y.length)
        235           {
        236                    var  len=oArray .length;
        237                    for( var s=len; s>i;s--)
        238                             oArray [s]=oArray [s-1];
        239                    oArr ay[i]=obj;           
        240           }
        241   }
        242  
        243   function l oadData(sF ileName)
        244   {
        245           va r i=gnLoad DivNum;
        246           va r sName=gs DivName+gn LoadDivNum ++;
        247           lo adData_2(s FileName,s Name);
        248   }
        249  
        250   function l oadData_2( sFileName, sDivName)
        251   {
        252           if (!getEleme nt(sDivNam e))
        253           {
        254                    if(! insertData Div(sDivNa me))
        255                    {
        256                             gsFile Name=sFile Name;
        257                             gsDivN ame=sDivNa me;
        258                             return ;
        259                    }
        260           }
        261           va r sHTML="" ;
        262           if (gbMac)
        263                    sHTM L+="<ifram e src=\""+ sFileName+ "\"></ifra me>";
        264           el se
        265                    sHTM L+="<ifram e style=\" visibility :hidden;wi dth:0;heig ht:0\" src =\""+sFile Name+"\">< /iframe>";
        266           
        267           va r oDivCon= getElement (sDivName) ;
        268           if (oDivCon)
        269           {
        270                    if(g bNav6)
        271                    {
        272                             if(oDi vCon.getEl ementsByTa gName&&oDi vCon.getEl ementsByTa gName("iFr ame").leng th>0)
        273                             {
        274                                      oDivCon. getElement sByTagName ("iFrame") [0].src=sF ileName;
        275                             }
        276                             else
        277                                      oDivCon. innerHTML= sHTML;
        278                    }
        279                    else
        280                             oDivCo n.innerHTM L=sHTML;
        281           }
        282   }
        283  
        284   function I sHTTPURL(s docPath)
        285   {
        286       var bR etVal = tr ue;
        287       switch (window.lo cation.pro tocol)
        288       {
        289           ca se "file:" :
        290                bRetVal  = false;
        291                break;
        292       }
        293       return  bRetVal;
        294   }
        295  
        296  
        297  
        298   function W hQueue() {
        299       var co ntainer =  new Array;
        300       var fr ontOffset  = 0;
        301       this.g etLength =  function  () {
        302           re turn (cont ainer.leng th - front Offset);
        303       }
        304       this.i sEmpty = f unction ()  {
        305           re turn (cont ainer.leng th == 0);
        306       }
        307       this.e nqueue = f unction (e lem) {
        308           co ntainer.pu sh(elem);
        309       }
        310       this.d equeue = f unction ()  {
        311           if  (this.isE mpty()) re turn undef ined;
        312           va r elem = c ontainer[f rontOffset ];
        313           fr ontOffset+ +;
        314           if  (frontOff set * 2 >=  container .length) {
        315                containe r = contai ner.slice( frontOffse t);
        316                frontOff set = 0;
        317           }
        318           re turn elem;
        319       }
        320       this.p eek = func tion () {
        321           if  (containe r.length >  0)
        322                return c ontainer[f rontOffset ];
        323           re turn undef ined;
        324       }
        325   }
        326  
        327  
        328   var gXMLBu ffer = nul l;
        329   var gFileN ameToXMLMa p = new Ob ject();
        330   var xmlJsR eader = ne w XmlJsRea der();
        331  
        332   function X mlInfo(xml Path, oFun Callback,  args) {
        333       this.s XmlPath =  xmlPath;
        334       this.c allback =  oFunCallba ck;
        335       this.c bargs = ar gs;
        336   }
        337  
        338   function X mlJsReader () {
        339       this.q ueue = new  WhQueue() ;
        340       this.b Loading =  false;
        341  
        342       this.g etJsNameFr omXmlName  = function  (xmlPath)  {
        343           va r indx = x mlPath.las tIndexOf(" .xml");
        344           if  (indx !=  -1) {
        345                var jsPa th = xmlPa th.substri ng(0, indx );
        346                jsPath + = "_xml.js ";
        347                return j sPath;
        348           }
        349       }
        350       /*use  relative p ath for xm lPath*/
        351       this.l oadFile =  function ( xmlPath, o FunCallbac k, args) {
        352           th is.queue.e nqueue(new  XmlInfo(x mlPath, oF unCallback , args));
        353           th is.loadFro mQueue();
        354       }
        355  
        356       this.l oadFromQue ue = funct ion () {
        357           if  (this.que ue.isEmpty () || this .bLoading)  {
        358                return;
        359           }
        360           el se {
        361                var xmlI nfo = this .queue.pee k();
        362                if (type of (gFileN ameToXMLMa p[xmlInfo. sXmlPath])  == 'undef ined') {
        363                    var  jsPath = t his.getJsN ameFromXml Name(xmlIn fo.sXmlPat h);
        364                    this .loadScrip t(jsPath,  this.onScr iptLoaded) ;
        365                }
        366                else {
        367                    this .onScriptL oaded();
        368                }
        369           }
        370       }
        371  
        372       this.t rim = func tion(strin gToTrim) {
        373           re turn strin gToTrim.re place(/^\s +|\s+$/g," ");
        374       }
        375  
        376       this.o nScriptLoa ded = func tion () {
        377           va r xmlInfo  = xmlJsRea der.queue. dequeue();
        378           if  (typeof(g FileNameTo XMLMap[xml Info.sXmlP ath]) == ' undefined'  && gXMLBu ffer != nu ll) {
        379                xmlJsRea der.trim(g XMLBuffer) ;   
        380                gFileNam eToXMLMap[ xmlInfo.sX mlPath] =  gXMLBuffer ;
        381           }
        382           va r xmlDoc =  null;
        383           if  (typeof ( gFileNameT oXMLMap[xm lInfo.sXml Path]) !=  'undefined ') {
        384                if (wind ow.DOMPars er) {
        385                    var  parser = n ew DOMPars er();
        386                    xmlD oc = parse r.parseFro mString(gF ileNameToX MLMap[xmlI nfo.sXmlPa th], "text /xml");
        387                }
        388                else {
        389                    xmlD oc = new A ctiveXObje ct("Micros oft.XMLDOM ");
        390                    xmlD oc.async =  false;
        391                    var  indx = gFi leNameToXM LMap[xmlIn fo.sXmlPat h].indexOf ("<?xml");
        392                    if ( indx != -1 ) {
        393                         indx = gFi leNameToXM LMap[xmlIn fo.sXmlPat h].indexOf ("?>", ind x);
        394                         if (indx ! = -1) {
        395                             var st rXML = gFi leNameToXM LMap[xmlIn fo.sXmlPat h].substr( indx + 2);
        396                             xmlDoc .loadXML(s trXML);
        397                         }
        398                    }
        399                    else  {
        400                         xmlDoc.loa dXML(gFile NameToXMLM ap[xmlInfo .sXmlPath] );
        401                    }
        402                }
        403           }
        404           gX MLBuffer =  null;
        405           xm lJsReader. bLoading =  false;
        406  
        407           if  (xmlInfo. callback)
        408                xmlInfo. callback(x mlDoc, xml Info.cbarg s);
        409  
        410           xm lJsReader. loadFromQu eue();
        411       }
        412  
        413       this.l oadScript  = function  (sScriptS rc, onScri ptLoadedCB ) {
        414           th is.bLoadin g = true;
        415           va r oHead =  document.g etElements ByTagName( 'head')[0] ;
        416           va r oScript  = document .createEle ment('scri pt');
        417           oS cript.type  = 'text/j avascript' ;
        418           oS cript.char set = "utf -8";
        419                    oScr ipt.src =  sScriptSrc ;
        420  
        421           //  IE 6 & 7
        422           if  (oScript. readyState ) {
        423                oScript. onreadysta techange =  function  () {
        424                    if ( oScript.re adyState = = 'loaded'  ||
        425                         oScript.re adyState = = 'complet e') {
        426                         onScriptLo adedCB();
        427                    }
        428                }
        429           }
        430           // for firefo x detectin g script x ml exist o r not
        431           // as firefox  does not  support on error for  script loa ding for f ile://
        432           el se if (nav igator.pro duct === ' Gecko' &&
        433           na vigator.us erAgent.in dexOf('KHT ML') === - 1 &&
        434           wi ndow.locat ion.protoc ol === 'fi le:') {
        435                var req  = new XMLH ttpRequest ();
        436                var sCur rentPath =  _getPath( document.l ocation.hr ef);
        437                var scri ptURL = _g etFullPath (sCurrentP ath, sScri ptSrc);
        438                req.open ('GET', sc riptURL, t rue);
        439                req.onre adystatech ange = fun ction () {
        440                    if ( req.readyS tate === 4 ) {
        441                         if (req.st atus === 0 ) {
        442                             //scri pt exist
        443                             //scri pt.textCon tent = req .responseT ext;
        444                         }
        445                         else
        446                             onScri ptLoadedCB ();
        447                    }
        448                };
        449                try {
        450                    req. send(null) ;
        451                }
        452                catch (e ) {
        453                    onSc riptLoaded CB();
        454                    retu rn;
        455                }
        456                oScript. onload = o nScriptLoa dedCB;
        457           }
        458           el se {
        459                oScript. onload = o nScriptLoa dedCB;
        460                oScript. onerror =  onScriptLo adedCB;
        461           }
        462  
        463           oH ead.append Child(oScr ipt);
        464       }
        465   }
        466  
        467   function l oadDataXML (sFileName , bAsync)
        468   {
        469   try
        470   {
        471       var bA syncReq =  true;
        472       if (bA sync != 'u ndefined')
        473           bA syncReq =  bAsync;
        474  
        475       var sC urrentDocP ath = _get Path(docum ent.locati on.href);
        476       sdocPa th = _getF ullPath(sC urrentDocP ath, sFile Name);
        477  
        478       var fi leName = _ getRelativ eFileName( sCurrentDo cPath, sdo cPath);
        479       xmlJsR eader.load File(fileN ame, funct ion (a_xml Doc, args)  {
        480           if  (a_xmlDoc  != null)
        481                putDataX ML(a_xmlDo c, sdocPat h);
        482           el se
        483                onLoadXM LError();
        484       });
        485       
        486       //xmlD oc = xmlRe ader.xmlDo c;
        487       //aler t(xmlDoc);
        488       //init ializeData ();
        489           
        490   //      if (gbIE5)
        491   //      {
        492   //               // u se xmlhttp  for 304 s upport, xm ldom doesn 't support  it, IE5 o r later
        493   //               var  bIsHTTPURL  = false;
        494   //               if(g bAIRSSL)
        495   //               {
        496   //                    bIsHTTPURL  = IsHTTPU RL(sdocPat h);
        497   //               }
        498   //               else
        499   //                    bIsHTTPURL  = mrIsOnE ngine();
        500  
        501   //           if( bIsH TTPURL )
        502   //           {
        503   //                    xmlDoc=new  ActiveXOb ject("Micr osoft.XMLH TTP");
        504   //                    xmlDoc.onr eadystatec hange=chec kState;
        505   //                    if(documen t.body!=nu ll)
        506   //                    {
        507   //                            xm lDoc.Open( "get", sdo cPath, bAs yncReq);
        508   //                            xm lDoc.Send( "");
        509   //                    };
        510   //           }else
        511   //           {
        512   //                    xmlDoc=new  ActiveXOb ject("Micr osoft.XMLD OM");
        513   //                    xmlDoc.onr eadystatec hange=chec kState;
        514   //                    xmlDoc.asy nc=bAsyncR eq;
        515   //                    if(documen t.body!=nu ll)
        516   //                            xm lDoc.load( sdocPath);
        517   //           };
        518   //      }
        519   //      el se if(gbNa v6 && !gbA IR)
        520   //      {
        521   //               /*xm lDoc=docum ent.implem entation.c reateDocum ent("","", null);
        522   //               xmlD oc.addEven tListener( "load",ini tializeDat a,false);
        523   //               xmlD oc.load(sd ocPath,"te xt/xml");* /
        524  
        525   //               var  req=new XM LHttpReque st();
        526   //               req. open("GET" , sdocPath , false);    
        527   //               req. send(null) ;   
        528   //               xmlD oc = req.r esponseXML ;
        529   //               init ializeData ();
        530   //      }
        531   //      el se if(gbSa fari || gb AIR)
        532   //      {
        533   //               if(w indow.XMLH ttpRequest  && !(wind ow.ActiveX Object)) 
        534   //               {
        535   //                        xmlHtt p = new XM LHttpReque st();
        536   //                        if(xml Http)
        537   //                        {
        538   //                                 xmlHttp. onreadysta techange=o nXMLRespon se;
        539   //                                 xmlHttp. open("GET" , sdocPath , false);
        540   //                                 xmlHttp. send(null) ;
        541   //                        }
        542   //               }
        543   //      }
        544   }catch(e)
        545   {
        546       //Do n othing
        547   }
        548   }
        549  
        550   function o nXMLRespon se()
        551   {
        552       if(xml Http)
        553       {
        554         if(x mlHttp.rea dyState ==  4)
        555         {
        556           xm lDoc = xml Http.respo nseXML;
        557           if (xmlDoc!=n ull)
        558           {
        559                    putD ataXML(xml Doc,sdocPa th);
        560                }
        561                else
        562                {
        563                    onLo adXMLError ();
        564                }
        565         }
        566       }
        567   }
        568  
        569   function i nitializeD ata()
        570   {
        571           if (xmlDoc!=n ull)
        572                    putD ataXML(xml Doc,sdocPa th);
        573   }
        574  
        575   function c heckState( )
        576   {
        577           if (xmlDoc!=n ull)
        578           {
        579                    var  state=xmlD oc.readySt ate;
        580                    if(s tate==4)
        581                    {
        582                             // eng ine versio n uses xml http, xml  data in th e response XML
        583                             if( xm lDoc.respo nseXML!=nu ll )
        584                                      xmlDoc=x mlDoc.resp onseXML;
        585  
        586                             var er r=xmlDoc.p arseError;
        587                             if(err .errorCode ==0)
        588                                      putDataX ML(xmlDoc, sdocPath);
        589                             else
        590                                      onLoadXM LError();
        591                    }
        592           }
        593   }
        594  
        595   function i nsertDataD iv(sName)
        596   {
        597           va r sHTML="" ;
        598           if (gbMac)
        599                    sHTM L+="<div i d="+sName+ " style=\" display:no ne;\"></di v>";
        600           el se
        601                    sHTM L+="<div i d="+sName+ " style=\" visibility :hidden\"> </div>";
        602           if ((gbIE5||g bNav6||gbS afari3)&&d ocument.bo dy)
        603                    docu ment.body. insertAdja centHTML(" beforeEnd" ,sHTML);
        604           el se
        605           {
        606                    gsIn sertBefore EndHTML=sH TML;
        607                    setT imeout("in sertWhenBo dyReady(); ",100);
        608                    retu rn false;
        609           }
        610           re turn true;
        611   }
        612  
        613   function i nsertWhenB odyReady()
        614   {
        615           if (gsInsertB eforeEndHT ML=="") re turn;
        616           if (document. body)
        617           {
        618                    docu ment.body. insertAdja centHTML(" beforeEnd" ,gsInsertB eforeEndHT ML);
        619                    gsIn sertBefore EndHTML="" ;
        620                    load Data_2(gsF ileName,gs DivName);
        621           }
        622           el se
        623           {
        624                    setT imeout("in sertWhenBo dyReady(); ",100);
        625           }
        626   }
        627  
        628   function w indow_BUnl oad()
        629   {
        630           fo r(var i=0; i<gnLoadDi vNum;i++)
        631           {
        632                    var  oDivCon=ge tElement(g sDivName+i );
        633                    if(o DivCon)
        634                             oDivCo n.innerHTM L="";
        635           }
        636   }
        637  
        638   function r emoveThis( obj)
        639   {
        640           if (obj.paren tNode)
        641                    obj. parentNode .removeChi ld(obj);
        642           el se
        643                    obj. outerHTML= "";
        644   }
        645  
        646   function g etParentNo de(obj)
        647   {
        648           if (obj.paren tNode)
        649                    retu rn obj.par entNode;
        650           el se if(obj. parentElem ent)
        651                    retu rn obj.par entElement ;
        652           re turn null;
        653   }
        654  
        655   function g etElement( sID)
        656   {
        657           if (document. getElement ById)
        658                    retu rn documen t.getEleme ntById(sID );
        659           el se if(docu ment.all)
        660                    retu rn documen t.all(sID) ;
        661           re turn null;
        662   }
        663  
        664   function g etChildren ByTag(obj, sTagName)
        665   {
        666           if (obj.getEl ementsByTa gName)
        667           {
        668                    var  aChildren= new Array( );
        669                    var  aElements= getElement sByTag(obj ,sTagName) ;
        670                    if(a Elements!= null)
        671                    {
        672                             for(va r i=0;i<aE lements.le ngth;i++)
        673                             {
        674                                      if(aElem ents[i].pa rentNode== obj)
        675                                               aChildren[ aChildren. length]=aE lements[i] ;
        676                             }
        677                             return  aChildren ;
        678                    }
        679                    else
        680                             return  new Array ();
        681           }
        682           el se if(obj. children)
        683                    retu rn obj.chi ldren.tags (sTagName) ;
        684   }
        685  
        686   function g etElements ByTag(obj, sTagName)
        687   {
        688           if (obj.getEl ementsByTa gName)
        689                    retu rn obj.get ElementsBy TagName(sT agName);
        690           el se if(obj. all)
        691                    retu rn obj.all .tags(sTag Name);
        692           re turn null;
        693   }
        694  
        695   function _ htmlToText (sHTML)
        696   {
        697           if (sHTML==nu ll) return  null;
        698           va r sText=sH TML;
        699           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        700           {
        701                    var  re=new Reg Exp(sRepla ceStringsS rc[i],"g") ;
        702                    sTex t=sText.re place(re,s ReplaceStr ingsDst[i] );
        703           }        
        704           re turn sText ;
        705   }
        706  
        707   function _ textToHtml _nonbsp(sT ext)
        708   {
        709           if (sText==nu ll) return  null;
        710           va r sHTML=sT ext;
        711           fo r(var i=0; i<sReplace StringsSrc .length-1; i++)
        712           {
        713                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        714                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        715           }        
        716           re turn sHTML ;
        717   }
        718  
        719   function _ textToHtml (sText)
        720   {
        721           if (sText==nu ll) return  null;
        722           va r sHTML=sT ext;
        723           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        724           {
        725                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        726                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        727           }        
        728           re turn sHTML ;
        729   }
        730  
        731  
        732   function g etInnerTex t(obj)
        733   {
        734           va r renbsp2s p=new RegE xp("\xa0", "g");
        735           if (obj.inner Text)
        736           {
        737                    var  sText=obj. innerText;
        738                    sTex t=sText.re place(renb sp2sp," ") ;
        739                    retu rn sText;
        740           }
        741           el se
        742           {
        743                    if(o bj.nodeVal ue)
        744                    {
        745                             var sV alue=obj.n odeValue;
        746                             sValue =sValue.re place(renb sp2sp," ") ;
        747                             return  sValue;
        748                    }
        749                    else
        750                    {
        751                             var sT ext="";
        752                             var oC hild=obj.f irstChild;
        753                             while( oChild!=nu ll)
        754                             {
        755                                      sText+=g etInnerTex t(oChild);
        756                                      oChild=o Child.next Sibling;
        757                             }
        758                             return  sText;
        759                    }
        760           }
        761                    
        762   }
        763  
        764   function H ighLightEl ement(obj, sHighLight Color,sNor malColor)
        765   {
        766           if (obj!=null )
        767           {
        768                    rese tHighLight (sNormalCo lor);
        769                    if ( obj.style)
        770                             obj.st yle.backgr oundColor= sHighLight Color;
        771                    goHi ghLighted= obj;
        772           }
        773   }
        774  
        775   function r esetHighLi ght(sNorma lColor)
        776   {
        777           if (goHighLig hted!=null )
        778           {
        779                    if ( goHighLigh ted.style)
        780                             goHigh Lighted.st yle.backgr oundColor= sNormalCol or;
        781                    goHi ghLighted= null;
        782           }
        783   }
        784  
        785   function w hFont(sNam e,sSize,sC olor,sStyl e,sWeight, sDecoratio n)
        786   {
        787           th is.sName=s Name;
        788           th is.sSize=s Size;
        789           th is.sColor= sColor;
        790           th is.sStyle= sStyle;
        791           th is.sWeight =sWeight;
        792           th is.sDecora tion=sDeco ration;
        793   }
        794  
        795   function g etFontStyl e(oFont)
        796   {
        797           va r sStyle=" ";
        798           if (oFont)
        799           {
        800                    sSty le+="font- family:"+o Font.sName +";";
        801                    sSty le+="font- size:"+oFo nt.sSize+" ;";
        802                             
        803                    sSty le+="font- style:"+oF ont.sStyle +";";
        804                    sSty le+="font- weight:"+o Font.sWeig ht+";";
        805                    sSty le+="text- decoration :"+oFont.s Decoration +";";
        806                    sSty le+="color :"+oFont.s Color+";";
        807           }
        808           re turn sStyl e;
        809   }
        810  
        811   function _ browserStr ingToText( sBStr)
        812   {
        813           va r sText="" ;
        814           //  change %x xx back to  the real  char.
        815           va r nPos=sBS tr.indexOf ('%');
        816           wh ile(nPos!= -1)
        817           {
        818                    sTex t+=sBStr.s ubstring(0 ,nPos);
        819                    sBSt r=sBStr.su bstring(nP os+1);
        820                    var  sNum="";
        821                    var  i=0;
        822                    whil e(sBStr.ch arAt(i)>=' 0'&&sBStr. charAt(i)< ='9')
        823                    {
        824                             sNum+= sBStr.char At(i++);         
        825                    }
        826                    if(s Num!=""){
        827                             var nN um=parseIn t(sNum,16) ;
        828                             sText+ =String.fr omCharCode (nNum);
        829                             sBStr= sBStr.subs tring(i);
        830                    }
        831                    nPos =sBStr.ind exOf('%');
        832           }
        833           sT ext+=sBStr ;
        834           re turn sText ;
        835   }
        836  
        837   function I sInternal( urlName)
        838   {
        839           //  first pas s: check r aw urlName
        840           if (!IsValidI nternalTop icURL(urlN ame))
        841                    retu rn false;
        842           //  second pa ss: check  unescape'd  urlName
        843           va r unescape dUrlName =  unescape( urlName);
        844           if (!IsValidI nternalTop icURL(unes capedUrlNa me))
        845                    retu rn false;
        846           //  third pas s: check d ecodeUri'd  urlName
        847           va r decodedU rlName = d ecodeURI(u rlName);
        848           if (!IsValidI nternalTop icURL(deco dedUrlName ))
        849                    retu rn false;
        850  
        851           //  looks goo d
        852           re turn true;
        853  
        854   }
        855  
        856   function I sValidInte rnalTopicU RL(urlName )
        857   {
        858           if (urlName.i ndexOf(":" ) != -1 ||  urlName.i ndexOf("// ")  != -1  || urlName .indexOf(" &#")  != - 1 || (!IsV alidTopicU RL(urlName )))
        859                    retu rn false;
        860                    
        861           re turn true;     
        862                    
        863   }
        864  
        865   function I sValidTopi cURL(topic URL)
        866   {
        867           fo r (var i =  0 ; i < g IllegalTop icNameChar s.length ;  i++)
        868           {
        869                    if ( topicURL.i ndexOf(gIl legalTopic NameChars. charAt(i))  != -1 )
        870                             return  false ;
        871           }
        872           re turn true  ;
        873   }
        874  
        875   function I sNonAscii( szWord)
        876   {
        877       var te mp;
        878       for(va r iCount=0 ; iCount<s zWord.leng th;iCount+ +)
        879       {
        880           te mp = szWor d.charCode At(iCount) ;
        881           if (temp>128)
        882                return t rue;
        883       }
        884       return  false;
        885  
        886   }
        887  
        888   function e xcapeSingl eQuotandSl ash(str)
        889   {
        890           if (str==null ) return n ull;
        891           va r nPos=0;
        892           va r sRes="";
        893           va r nPosNew= str.indexO f("\\",nPo s);
        894           wh ile(nPosNe w!=-1){
        895                    sRes +=str.subs tring(nPos ,nPosNew+1 )+"\\";
        896                    nPos =nPosNew+1 ;
        897                    nPos New=str.in dexOf("\\" ,nPos);
        898           }
        899           if (nPos<str. length)
        900                    sRes +=str.subs tring(nPos );
        901           va r re=new R egExp("'", "g");
        902           sR es=sRes.re place(re," \\'");
        903           re turn sRes;
        904   }
        905  
        906   // used by  roboengin e
        907   function m rGetRootWi ndow() {
        908       if (is ChromeLoca l())
        909           re turn null;
        910           
        911           va r cWnd=win dow;
        912           wh ile(cWnd!= null)
        913           {
        914                    if(  cWnd.cMRSe rver!=null  && String (cWnd.cMRS erver)!='u ndefined'  )
        915                    {
        916                             return  cWnd;
        917                    };
        918                    cWnd =cWnd.pare nt;
        919           };
        920           re turn null;
        921   };
        922  
        923   function m rGetProjNa me()
        924   {
        925           va r cRoot=mr GetRootWin dow();
        926           if ( cRoot==n ull ) retu rn '';
        927  
        928           va r sTags=un escape(cRo ot.locatio n.search);
        929           if ( sTags==' ' )
        930                    sTag s=unescape (cRoot.loc ation.hash );
        931  
        932           va r nStart,  nEnd1, nEn d2;
        933           va r sName='' ;
        934  
        935           if ( (nStart= sTags.inde xOf('prj=' ))>=0 )
        936           {
        937                    if(  (nEnd=sTag s.indexOf( '&', nStar t))<0 ) nE nd=sTags.l ength;
        938                    if(  (nEnd1=sTa gs.indexOf ('>', nSta rt))<0 ) n End1=sTags .length;
        939                    if(  nEnd>nEnd1  ) nEnd=nE nd1;
        940                    sNam e=sTags.su bstring(nS tart+4, nE nd);
        941           };
        942  
        943           re turn sName ;
        944   };
        945  
        946   function m rInitializ e() {
        947       if (is ChromeLoca l())
        948           re turn;
        949           va r sProjNam e=mrGetPro jName();
        950           va r cRoot=mr GetRootWin dow();
        951  
        952           if ( sProjNam e!='' && c Root!=null  )
        953           {
        954                    cRoo t.cMRServe r.m_bEngin e=true;
        955                    cRoo t.cMRServe r.m_sProjN ame=sProjN ame;
        956           };
        957   };
        958  
        959   function m rIsOnEngin e() {
        960       if (is ChromeLoca l()) 
        961           re turn false ;
        962       else{
        963           va r cRoot =  mrGetRootW indow();
        964           re turn cRoot  && cRoot. cMRServer  && cRoot.c MRServer.m _bEngine = = true;
        965       }
        966   };
        967  
        968   function m rGetEngine Url()
        969   {
        970           re turn c_sEn ginePath;
        971   };
        972  
        973   function     getClien tHeight()
        974   {
        975       if(gbS afari3)
        976       {
        977           re turn inner Height;    //this is  for safari
        978       }
        979       return  document. body.clien tHeight;
        980       
        981   }
        982  
        983   function P atchParame tersForEsc apeChar(sP aram)
        984   {
        985           va r sresult  = sParam;
        986           if (gbSafari)
        987           {
        988                    sres ult = sres ult.replac e(/%3c/gi, "<");
        989                    sres ult = sres ult.replac e(/%3e/gi, ">");
        990           }
        991           re turn sresu lt;
        992   }
        993   function S eeForSearc h(strProje ctDir) 
        994   {
        995           if (gbAIRSSL  && gbSearc hPage)
        996           {
        997                loadFts_ context(st rProjectDi r);
        998           }
        999   }
        1000   var RH_Bre adCrumbDat aStringVar iable="";
        1001   function R H_Document _Write(szT ext)
        1002   {
        1003           RH _BreadCrum bDataStrin gVariable+ =szText;
        1004   }
        1005  
        1006   function R H_AddMaste rBreadcrum bs(relHome Page,style Info, sepa rator, str Home, strH omePath) {
        1007       if (ty peof (gBre adCrumbInf o) != 'und efined') {
        1008           RH _Document_ Write("__b rseq__");
        1009           gB readCrumbI nfo[gBCId]  = new Bre adCrumbInf o(relHomeP age, style Info, sepa rator, str Home, strH omePath);
        1010           gB CId++;
        1011       }
        1012   }
        1013  
        1014   function i sChromeLoc al() {
        1015       if (wi ndow.chrom e)
        1016           if  (document .location. protocol.s ubstring(0 , 4) == "f ile")
        1017           re turn true;
        1018       return  false;
        1019   }
        1020  
        1021  
        1022   var gbWhUt il=true;