2783. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 1/2/2018 11:58:42 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.

2783.1 Files compared

# Location File Last Modified
1 Tue Jan 2 16:58:42 2018 UTC
2 HTRE_P2.zip\src.zip\output\IHTA OLH Files.zip\ihta_admin.zip\qir.zip whutils_nc.js Tue Apr 12 20:15:08 2016 UTC

2783.2 Comparison summary

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

2783.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

2783.4 Active regular expressions

No regular expressions were active.

2783.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   function _ getRelativ ePath(strP arentPath, strCurrent Path)
        30   {
        31           if (_isAbsPat h(strCurre ntPath)) r eturn _get Path(strCu rrentPath) ;
        32           st rParentPat h=_replace Slash(strP arentPath) ;
        33           st rParentPat h=_getPath (strParent Path);
        34           st rCurrentPa th=_replac eSlash(str CurrentPat h);
        35           st rCurrentPa th=_getPat h(strCurre ntPath);
        36           fo r(var i=0; i<strParen tPath.leng th&&i<strC urrentPath .length;i+ +)
        37           {
        38                    if(s trParentPa th.charAt( i)!=strCur rentPath.c harAt(i))
        39                             break;
        40           }
        41           
        42           st rParentPat h=strParen tPath.subs tring(i);
        43           st rCurrentPa th=strCurr entPath.su bstring(i) ;     
        44           
        45           va r nPathPos =0;
        46           wh ile(nPathP os!=-1)
        47           {
        48                    nPat hPos=strPa rentPath.i ndexOf("/" );
        49                    if(n PathPos!=- 1)
        50                    {
        51                             strPar entPath=st rParentPat h.substrin g(nPathPos +1);
        52                             strCur rentPath=" ../"+strCu rrentPath;
        53                    }
        54           }
        55           re turn strCu rrentPath;
        56   }
        57  
        58   function _ getRelativ eFileName( strParentP ath,strCur rentPath)
        59   {
        60           st rParentPat h=_replace Slash(strP arentPath) ;
        61           st rParentPat h=_getPath (strParent Path);
        62           st rCurrentPa th=_replac eSlash(str CurrentPat h);
        63           fo r(var i=0; i<strParen tPath.leng th&&i<strC urrentPath .length;i+ +)
        64           {
        65                    if(s trParentPa th.charAt( i)!=strCur rentPath.c harAt(i))
        66                             break;
        67           }
        68           
        69           st rParentPat h=strParen tPath.subs tring(i);
        70           st rCurrentPa th=strCurr entPath.su bstring(i) ;     
        71           
        72           va r nPathPos =0;
        73           wh ile(nPathP os!=-1)
        74           {
        75                    nPat hPos=strPa rentPath.i ndexOf("/" );
        76                    if(n PathPos!=- 1)
        77                    {
        78                             strPar entPath=st rParentPat h.substrin g(nPathPos +1);
        79                             strCur rentPath=" ../"+strCu rrentPath;
        80                    }
        81           }
        82           re turn strCu rrentPath;
        83   }
        84  
        85   function _ isAbsPathT oHost(sPat h)
        86   {
        87           re turn (sPat h.indexOf( "/")==0);
        88   }
        89  
        90   function _ getHost(sP ath)
        91   {
        92           va r nPos=sPa th.indexOf ("//");
        93           if (nPos>0)
        94           {
        95                    var  nPosx=sPat h.indexOf( "/",nPos+2 );
        96                    if(n Posx>0)
        97                             return  sPath.sub string(0,n Posx);
        98                    else
        99                             return  sPath;
        100           }
        101           re turn sPath ;
        102   }
        103  
        104   function _ getFullPat h(sPath,sR elPath)
        105   {
        106           if (_isAbsPat h(sRelPath ))
        107                    retu rn sRelPat h;
        108           el se if(_isA bsPathToHo st(sRelPat h))
        109                    retu rn _getHos t(sPath)+s RelPath;
        110           el se
        111           {
        112                    var  sFullPath= sPath;
        113                    var  nPathPos=0 ;
        114                    whil e(nPathPos !=-1)
        115                    {
        116                             var nP athPos=sRe lPath.inde xOf("../") ;
        117                             if(nPa thPos!=-1)
        118                             {
        119                                      sRelPath =sRelPath. substring( nPathPos+3 );
        120                                      sFullPat h=sFullPat h.substrin g(0,sFullP ath.length -1);
        121                                      var nPos 2=sFullPat h.lastInde xOf("/");
        122                                      if(nPos2 !=-1)
        123                                               sFullPath= sFullPath. substring( 0,nPos2+1) ;
        124                                      else
        125                                               break;
        126                             }
        127                    }
        128                    sFul lPath+=sRe lPath;
        129                    retu rn sFullPa th;
        130           }        
        131   }
        132  
        133   function _ getFullPat hInAIR( sS wfPath, sR elPath)
        134   {
        135           va r retPath  = _getFull Path(_getP ath(sSwfPa th) , sRel Path);
        136           va r retFile  = new wind ow.runtime .flash.fil esystem.Fi le(retPath );
        137           re turn retFi le.nativeP ath;                        
        138   }
        139  
        140   function _ isAbsPath( strPath)
        141   {
        142           va r strUpper =strPath.t oUpperCase ();
        143           re turn (strU pper.index Of(":")!=- 1||strUppe r.indexOf( "\\\\")==0 );
        144   }
        145  
        146   function _ replaceSla sh(strURL)
        147   {       
        148           va r re=new R egExp("\\\ \","g");
        149           va r strRepla cedURL=str URL.replac e(re,"/");
        150           re turn strRe placedURL;
        151   }
        152  
        153   function _ getPath(st rURL)
        154   {
        155           //  remove th e search a nd hash st ring
        156           va r n=0;
        157           va r n1=strUR L.indexOf( '#');
        158           va r n2=strUR L.indexOf( '?');
        159           if ( n1>=0 )
        160           {
        161                    if(  n2>=0 )
        162                                      n=(n1>n2 )?n2:n1;
        163                    else     n=n1;
        164           }e lse
        165           {
        166                    if(  n2>=0 )
        167                                      n=n2;
        168                    else     n=strU RL.length;
        169           };
        170           st rURL=strUR L.substrin g(0, n);
        171  
        172           pa thpos=strU RL.lastInd exOf("/");
        173           if (pathpos>0 )
        174                    retu rn strURL. substring( 0,pathpos+ 1);
        175           el se
        176                    retu rn "";
        177   }
        178  
        179   function r emoveItemF romArray(o Array,i)
        180   {
        181           if (oArray.le ngth&&i>=0 &&i<oArray .length)
        182           {
        183                    var  len=oArray .length;
        184                    for( var s=i;s< len-1;s++)
        185                             oArray [s]=oArray [s+1];
        186                    oArr ay.length= len-1;
        187           }
        188   }
        189  
        190   function i nsertItemI ntoArray(o Array,i,ob j)
        191   {
        192           if (oArray.le ngth&&i>=0 &&i<=oArra y.length)
        193           {
        194                    var  len=oArray .length;
        195                    for( var s=len; s>i;s--)
        196                             oArray [s]=oArray [s-1];
        197                    oArr ay[i]=obj;           
        198           }
        199   }
        200  
        201   function l oadData(sF ileName)
        202   {
        203           va r i=gnLoad DivNum;
        204           va r sName=gs DivName+gn LoadDivNum ++;
        205           lo adData_2(s FileName,s Name);
        206   }
        207  
        208   function l oadData_2( sFileName, sDivName)
        209   {
        210           if (!getEleme nt(sDivNam e))
        211           {
        212                    if(! insertData Div(sDivNa me))
        213                    {
        214                             gsFile Name=sFile Name;
        215                             gsDivN ame=sDivNa me;
        216                             return ;
        217                    }
        218           }
        219           va r sHTML="" ;
        220           if (gbMac)
        221                    sHTM L+="<ifram e src=\""+ sFileName+ "\"></ifra me>";
        222           el se
        223                    sHTM L+="<ifram e style=\" visibility :hidden;wi dth:0;heig ht:0\" src =\""+sFile Name+"\">< /iframe>";
        224           
        225           va r oDivCon= getElement (sDivName) ;
        226           if (oDivCon)
        227           {
        228                    if(g bNav6)
        229                    {
        230                             if(oDi vCon.getEl ementsByTa gName&&oDi vCon.getEl ementsByTa gName("iFr ame").leng th>0)
        231                             {
        232                                      oDivCon. getElement sByTagName ("iFrame") [0].src=sF ileName;
        233                             }
        234                             else
        235                                      oDivCon. innerHTML= sHTML;
        236                    }
        237                    else
        238                             oDivCo n.innerHTM L=sHTML;
        239           }
        240   }
        241  
        242   function I sHTTPURL(s docPath)
        243   {
        244       var bR etVal = tr ue;
        245       switch (window.lo cation.pro tocol)
        246       {
        247           ca se "file:" :
        248                bRetVal  = false;
        249                break;
        250       }
        251       return  bRetVal;
        252   }
        253  
        254   function l oadDataXML (sFileName ,bAsync)
        255   {
        256   try
        257   {
        258           va r sCurrent DocPath=_g etPath(doc ument.loca tion.href) ;
        259           va r bAsyncRe q = true ;
        260           if  (bAsync ! ='undefine d' )
        261                    bAsy ncReq = bA sync ;
        262           sd ocPath=_ge tFullPath( sCurrentDo cPath,sFil eName);
        263           if (gbIE5)
        264           {
        265                    // u se xmlhttp  for 304 s upport, xm ldom doesn 't support  it, IE5 o r later
        266                    var  bIsHTTPURL  = false;
        267                    if(g bAIRSSL)
        268                    {
        269                         bIsHTTPURL  = IsHTTPU RL(sdocPat h);
        270                    }
        271                    else
        272                         bIsHTTPURL  = mrIsOnE ngine();
        273  
        274                if( bIsH TTPURL )
        275                {
        276                         xmlDoc=new  ActiveXOb ject("Micr osoft.XMLH TTP");
        277                         xmlDoc.onr eadystatec hange=chec kState;
        278                         if(documen t.body!=nu ll)
        279                         {
        280                                 xm lDoc.Open( "get", sdo cPath, bAs yncReq);
        281                                 xm lDoc.Send( "");
        282                         };
        283                }else
        284                {
        285                         xmlDoc=new  ActiveXOb ject("Micr osoft.XMLD OM");
        286                         xmlDoc.onr eadystatec hange=chec kState;
        287                         xmlDoc.asy nc=bAsyncR eq;
        288                         if(documen t.body!=nu ll)
        289                                 xm lDoc.load( sdocPath);
        290                };
        291           }
        292           el se if(gbNa v6 && !gbA IR)
        293           {
        294                    /*xm lDoc=docum ent.implem entation.c reateDocum ent("","", null);
        295                    xmlD oc.addEven tListener( "load",ini tializeDat a,false);
        296                    xmlD oc.load(sd ocPath,"te xt/xml");* /
        297  
        298                    var  req=new XM LHttpReque st();
        299                    req. open("GET" , sdocPath , false);    
        300                    req. send(null) ;   
        301                    xmlD oc = req.r esponseXML ;
        302                    init ializeData ();
        303           }
        304           el se if(gbSa fari || gb AIR)
        305           {
        306                    if(w indow.XMLH ttpRequest  && !(wind ow.ActiveX Object)) 
        307                    {
        308                             xmlHtt p = new XM LHttpReque st();
        309                             if(xml Http)
        310                             {
        311                                      xmlHttp. onreadysta techange=o nXMLRespon se;
        312                                      xmlHttp. open("GET" , sdocPath , false);
        313                                      xmlHttp. send(null) ;
        314                             }
        315                    }
        316           }
        317   }catch(e)
        318   {
        319       onLoad XMLError() ;
        320   }
        321   }
        322  
        323   function o nXMLRespon se()
        324   {
        325       if(xml Http)
        326       {
        327         if(x mlHttp.rea dyState ==  4)
        328         {
        329           xm lDoc = xml Http.respo nseXML;
        330           if (xmlDoc!=n ull)
        331           {
        332                    putD ataXML(xml Doc,sdocPa th);
        333                }
        334                else
        335                {
        336                    onLo adXMLError ();
        337                }
        338         }
        339       }
        340   }
        341  
        342   function i nitializeD ata()
        343   {
        344           if (xmlDoc!=n ull)
        345                    putD ataXML(xml Doc,sdocPa th);
        346   }
        347  
        348   function c heckState( )
        349   {
        350           if (xmlDoc!=n ull)
        351           {
        352                    var  state=xmlD oc.readySt ate;
        353                    if(s tate==4)
        354                    {
        355                             // eng ine versio n uses xml http, xml  data in th e response XML
        356                             if( xm lDoc.respo nseXML!=nu ll )
        357                                      xmlDoc=x mlDoc.resp onseXML;
        358  
        359                             var er r=xmlDoc.p arseError;
        360                             if(err .errorCode ==0)
        361                                      putDataX ML(xmlDoc, sdocPath);
        362                             else
        363                                      onLoadXM LError();
        364                    }
        365           }
        366   }
        367  
        368   function i nsertDataD iv(sName)
        369   {
        370           va r sHTML="" ;
        371           if (gbMac)
        372                    sHTM L+="<div i d="+sName+ " style=\" display:no ne;\"></di v>";
        373           el se
        374                    sHTM L+="<div i d="+sName+ " style=\" visibility :hidden\"> </div>";
        375           if ((gbIE5||g bNav6||gbS afari3)&&d ocument.bo dy)
        376                    docu ment.body. insertAdja centHTML(" beforeEnd" ,sHTML);
        377           el se
        378           {
        379                    gsIn sertBefore EndHTML=sH TML;
        380                    setT imeout("in sertWhenBo dyReady(); ",100);
        381                    retu rn false;
        382           }
        383           re turn true;
        384   }
        385  
        386   function i nsertWhenB odyReady()
        387   {
        388           if (gsInsertB eforeEndHT ML=="") re turn;
        389           if (document. body)
        390           {
        391                    docu ment.body. insertAdja centHTML(" beforeEnd" ,gsInsertB eforeEndHT ML);
        392                    gsIn sertBefore EndHTML="" ;
        393                    load Data_2(gsF ileName,gs DivName);
        394           }
        395           el se
        396           {
        397                    setT imeout("in sertWhenBo dyReady(); ",100);
        398           }
        399   }
        400  
        401   function w indow_BUnl oad()
        402   {
        403           fo r(var i=0; i<gnLoadDi vNum;i++)
        404           {
        405                    var  oDivCon=ge tElement(g sDivName+i );
        406                    if(o DivCon)
        407                             oDivCo n.innerHTM L="";
        408           }
        409   }
        410  
        411   function r emoveThis( obj)
        412   {
        413           if (obj.paren tNode)
        414                    obj. parentNode .removeChi ld(obj);
        415           el se
        416                    obj. outerHTML= "";
        417   }
        418  
        419   function g etParentNo de(obj)
        420   {
        421           if (obj.paren tNode)
        422                    retu rn obj.par entNode;
        423           el se if(obj. parentElem ent)
        424                    retu rn obj.par entElement ;
        425           re turn null;
        426   }
        427  
        428   function g etElement( sID)
        429   {
        430           if (document. getElement ById)
        431                    retu rn documen t.getEleme ntById(sID );
        432           el se if(docu ment.all)
        433                    retu rn documen t.all(sID) ;
        434           re turn null;
        435   }
        436  
        437   function g etChildren ByTag(obj, sTagName)
        438   {
        439           if (obj.getEl ementsByTa gName)
        440           {
        441                    var  aChildren= new Array( );
        442                    var  aElements= getElement sByTag(obj ,sTagName) ;
        443                    if(a Elements!= null)
        444                    {
        445                             for(va r i=0;i<aE lements.le ngth;i++)
        446                             {
        447                                      if(aElem ents[i].pa rentNode== obj)
        448                                               aChildren[ aChildren. length]=aE lements[i] ;
        449                             }
        450                             return  aChildren ;
        451                    }
        452                    else
        453                             return  new Array ();
        454           }
        455           el se if(obj. children)
        456                    retu rn obj.chi ldren.tags (sTagName) ;
        457   }
        458  
        459   function g etElements ByTag(obj, sTagName)
        460   {
        461           if (obj.getEl ementsByTa gName)
        462                    retu rn obj.get ElementsBy TagName(sT agName);
        463           el se if(obj. all)
        464                    retu rn obj.all .tags(sTag Name);
        465           re turn null;
        466   }
        467  
        468   function _ htmlToText (sHTML)
        469   {
        470           if (sHTML==nu ll) return  null;
        471           va r sText=sH TML;
        472           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        473           {
        474                    var  re=new Reg Exp(sRepla ceStringsS rc[i],"g") ;
        475                    sTex t=sText.re place(re,s ReplaceStr ingsDst[i] );
        476           }        
        477           re turn sText ;
        478   }
        479  
        480   function _ textToHtml _nonbsp(sT ext)
        481   {
        482           if (sText==nu ll) return  null;
        483           va r sHTML=sT ext;
        484           fo r(var i=0; i<sReplace StringsSrc .length-1; i++)
        485           {
        486                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        487                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        488           }        
        489           re turn sHTML ;
        490   }
        491  
        492   function _ textToHtml (sText)
        493   {
        494           if (sText==nu ll) return  null;
        495           va r sHTML=sT ext;
        496           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        497           {
        498                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        499                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        500           }        
        501           re turn sHTML ;
        502   }
        503  
        504  
        505   function g etInnerTex t(obj)
        506   {
        507           va r renbsp2s p=new RegE xp("\xa0", "g");
        508           if (obj.inner Text)
        509           {
        510                    var  sText=obj. innerText;
        511                    sTex t=sText.re place(renb sp2sp," ") ;
        512                    retu rn sText;
        513           }
        514           el se
        515           {
        516                    if(o bj.nodeVal ue)
        517                    {
        518                             var sV alue=obj.n odeValue;
        519                             sValue =sValue.re place(renb sp2sp," ") ;
        520                             return  sValue;
        521                    }
        522                    else
        523                    {
        524                             var sT ext="";
        525                             var oC hild=obj.f irstChild;
        526                             while( oChild!=nu ll)
        527                             {
        528                                      sText+=g etInnerTex t(oChild);
        529                                      oChild=o Child.next Sibling;
        530                             }
        531                             return  sText;
        532                    }
        533           }
        534                    
        535   }
        536  
        537   function H ighLightEl ement(obj, sHighLight Color,sNor malColor)
        538   {
        539           if (obj!=null )
        540           {
        541                    rese tHighLight (sNormalCo lor);
        542                    if ( obj.style)
        543                             obj.st yle.backgr oundColor= sHighLight Color;
        544                    goHi ghLighted= obj;
        545           }
        546   }
        547  
        548   function r esetHighLi ght(sNorma lColor)
        549   {
        550           if (goHighLig hted!=null )
        551           {
        552                    if ( goHighLigh ted.style)
        553                             goHigh Lighted.st yle.backgr oundColor= sNormalCol or;
        554                    goHi ghLighted= null;
        555           }
        556   }
        557  
        558   function w hFont(sNam e,sSize,sC olor,sStyl e,sWeight, sDecoratio n)
        559   {
        560           th is.sName=s Name;
        561           th is.sSize=s Size;
        562           th is.sColor= sColor;
        563           th is.sStyle= sStyle;
        564           th is.sWeight =sWeight;
        565           th is.sDecora tion=sDeco ration;
        566   }
        567  
        568   function g etFontStyl e(oFont)
        569   {
        570           va r sStyle=" ";
        571           if (oFont)
        572           {
        573                    sSty le+="font- family:"+o Font.sName +";";
        574                    sSty le+="font- size:"+oFo nt.sSize+" ;";
        575                             
        576                    sSty le+="font- style:"+oF ont.sStyle +";";
        577                    sSty le+="font- weight:"+o Font.sWeig ht+";";
        578                    sSty le+="text- decoration :"+oFont.s Decoration +";";
        579                    sSty le+="color :"+oFont.s Color+";";
        580           }
        581           re turn sStyl e;
        582   }
        583  
        584   function _ browserStr ingToText( sBStr)
        585   {
        586           va r sText="" ;
        587           //  change %x xx back to  the real  char.
        588           va r nPos=sBS tr.indexOf ('%');
        589           wh ile(nPos!= -1)
        590           {
        591                    sTex t+=sBStr.s ubstring(0 ,nPos);
        592                    sBSt r=sBStr.su bstring(nP os+1);
        593                    var  sNum="";
        594                    var  i=0;
        595                    whil e(sBStr.ch arAt(i)>=' 0'&&sBStr. charAt(i)< ='9')
        596                    {
        597                             sNum+= sBStr.char At(i++);         
        598                    }
        599                    if(s Num!=""){
        600                             var nN um=parseIn t(sNum,16) ;
        601                             sText+ =String.fr omCharCode (nNum);
        602                             sBStr= sBStr.subs tring(i);
        603                    }
        604                    nPos =sBStr.ind exOf('%');
        605           }
        606           sT ext+=sBStr ;
        607           re turn sText ;
        608   }
        609  
        610   function I sInternal( urlName)
        611   {
        612           if (urlName.i ndexOf(":" ) == -1 &&  urlName.i ndexOf("&# 58;")== -1  && urlNam e.indexOf( "//") != 0  && 
        613                             urlNam e.indexOf( "/&#47;")  != 0 && ur lName.inde xOf("&#47; /") != 0 & & urlName. indexOf("& #47;&#47;" ) != 0)
        614                    retu rn true;
        615           el se
        616                    retu rn false;
        617   }
        618  
        619   function I sNonAscii( szWord)
        620   {
        621       var te mp;
        622       for(va r iCount=0 ; iCount<s zWord.leng th;iCount+ +)
        623       {
        624           te mp = szWor d.charCode At(iCount) ;
        625           if (temp>128)
        626                return t rue;
        627       }
        628       return  false;
        629  
        630   }
        631  
        632   function e xcapeSingl eQuotandSl ash(str)
        633   {
        634           if (str==null ) return n ull;
        635           va r nPos=0;
        636           va r sRes="";
        637           va r nPosNew= str.indexO f("\\",nPo s);
        638           wh ile(nPosNe w!=-1){
        639                    sRes +=str.subs tring(nPos ,nPosNew+1 )+"\\";
        640                    nPos =nPosNew+1 ;
        641                    nPos New=str.in dexOf("\\" ,nPos);
        642           }
        643           if (nPos<str. length)
        644                    sRes +=str.subs tring(nPos );
        645           va r re=new R egExp("'", "g");
        646           sR es=sRes.re place(re," \\'");
        647           re turn sRes;
        648   }
        649  
        650   // used by  roboengin e
        651   function m rGetRootWi ndow()
        652   {
        653           va r cWnd=win dow;
        654  
        655           wh ile(cWnd!= null)
        656           {
        657                    if(  cWnd.cMRSe rver!=null  && String (cWnd.cMRS erver)!='u ndefined'  )
        658                    {
        659                             return  cWnd;
        660                    };
        661  
        662                    cWnd =cWnd.pare nt;
        663           };
        664  
        665           re turn null;
        666   };
        667  
        668   function m rGetProjNa me()
        669   {
        670           va r cRoot=mr GetRootWin dow();
        671           if ( cRoot==n ull ) retu rn '';
        672  
        673           va r sTags=un escape(cRo ot.locatio n.search);
        674           if ( sTags==' ' )
        675                    sTag s=unescape (cRoot.loc ation.hash );
        676  
        677           va r nStart,  nEnd1, nEn d2;
        678           va r sName='' ;
        679  
        680           if ( (nStart= sTags.inde xOf('prj=' ))>=0 )
        681           {
        682                    if(  (nEnd=sTag s.indexOf( '&', nStar t))<0 ) nE nd=sTags.l ength;
        683                    if(  (nEnd1=sTa gs.indexOf ('>', nSta rt))<0 ) n End1=sTags .length;
        684                    if(  nEnd>nEnd1  ) nEnd=nE nd1;
        685                    sNam e=sTags.su bstring(nS tart+4, nE nd);
        686           };
        687  
        688           re turn sName ;
        689   };
        690  
        691   function m rInitializ e()
        692   {
        693           va r sProjNam e=mrGetPro jName();
        694           va r cRoot=mr GetRootWin dow();
        695  
        696           if ( sProjNam e!='' && c Root!=null  )
        697           {
        698                    cRoo t.cMRServe r.m_bEngin e=true;
        699                    cRoo t.cMRServe r.m_sProjN ame=sProjN ame;
        700           };
        701   };
        702  
        703   function m rIsOnEngin e()
        704   {
        705           va r cRoot=mr GetRootWin dow();
        706  
        707           re turn cRoot  && cRoot. cMRServer  && cRoot.c MRServer.m _bEngine== true;
        708   };
        709  
        710   function m rGetEngine Url()
        711   {
        712           re turn c_sEn ginePath;
        713   };
        714  
        715   function     getClien tHeight()
        716   {
        717       if(gbS afari3)
        718       {
        719           re turn inner Height;    //this is  for safari
        720       }
        721       return  document. body.clien tHeight;
        722       
        723   }
        724  
        725   function P atchParame tersForEsc apeChar(sP aram)
        726   {
        727           va r sresult  = sParam;
        728           if (gbSafari)
        729           {
        730                    sres ult = sres ult.replac e(/%3c/gi, "<");
        731                    sres ult = sres ult.replac e(/%3e/gi, ">");
        732           }
        733           re turn sresu lt;
        734   }
        735   function S eeForSearc h(strProje ctDir)
        736   {
        737  
        738           if (gbAIRSSL  && gbSearc hPage)
        739           {
        740                    load Fts_contex t(strProje ctDir);
        741                    goOd inHunter.s trQuery =  GetSearchT extFromURL ();
        742                    Quer y();
        743           }
        744   }
        745   var RH_Bre adCrumbDat aStringVar iable="";
        746   function R H_Document _Write(szT ext)
        747   {
        748           RH _BreadCrum bDataStrin gVariable+ =szText;
        749   }
        750  
        751   function R H_AddMaste rBreadcrum bs(relHome Page,style Info, sepa rator, str Home, strH omePath)
        752   {
        753           de lete gaBre adcrumbsTr ail;
        754           ga Breadcrumb sTrail = n ew Array() ;
        755           va r sTopicFu llPath = _ getPath(do cument.loc ation.href );
        756           va r sXmlFull Path = _ge tFullPath( sTopicFull Path, relH omePage);
        757           va r sXmlFold erPath = _ getPath(sX mlFullPath );
        758           va r sdocPath  = _getFul lPath(sXml FolderPath , "MasterD ata.xml");
        759  
        760           tr y
        761           {
        762                             GetMas terBreadcr umbs(sdocP ath, style Info, sepa rator);
        763           }
        764           ca tch(err)
        765           {
        766                    //so me error o ccurred wh ile readin g masterda ta.xml
        767           }
        768           va r i = gaBr eadcrumbsT rail.lengt h;
        769           if (i == 0)
        770           {
        771                var strT rail = "<a  style=\"" + styleInf o + "\"" +  " href=\" " + strHom ePath + "\ ">" + strH ome + "</a > " + sepa rator + "  ";
        772                RH_Docum ent_Write( strTrail);
        773           }
        774           el se
        775           {
        776                    whil e(i > 0)
        777                    {
        778                             RH_Doc ument_Writ e(gaBreadc rumbsTrail [i-1]);
        779                             i--;
        780                    }
        781           }
        782           re turn;
        783   }
        784           
        785  
        786   var gbWhUt il=true;