433. EPMO Open Source Coordination Office Redaction File Detail Report

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

433.1 Files compared

# Location File Last Modified
1 Tue Jan 2 16:56:30 2018 UTC
2 HTRE_P2.zip\src.zip\output\admin.zip\admin whutils.js Wed May 31 16:59:38 2017 UTC

433.2 Comparison summary

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

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

433.4 Active regular expressions

No regular expressions were active.

433.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                    navi gator.user Agent.inde xOf('Tride nt') === - 1 &&
        435           wi ndow.locat ion.protoc ol === 'fi le:') {
        436                             var re q = new XM LHttpReque st();
        437                var sCur rentPath =  _getPath( document.l ocation.hr ef);
        438                var scri ptURL = _g etFullPath (sCurrentP ath, sScri ptSrc);
        439                req.open ('GET', sc riptURL, t rue);
        440                req.onre adystatech ange = fun ction () {
        441                    if ( req.readyS tate === 4 ) {
        442                         if (req.st atus === 0  || req.st atus === 2 00) {
        443                             // Scr ipt exists . For loca l files:
        444                                                       //  Firefox <  35 return s 0 on eve ry AJAX ca ll.
        445                                                       //  Firefox > = 35 retur ns 200 on  success.
        446                                                       //  We don't  want to tr igger the  callback o n success  as it's
        447                                                       //  triggered  automatic ally by th e onload h andler.
        448                         }
        449                         else
        450                             onScri ptLoadedCB ();
        451                    }
        452                };
        453                try {
        454                    req. send(null) ;
        455                }
        456                catch (e ) {
        457                    onSc riptLoaded CB();
        458                    retu rn;
        459                }
        460                oScript. onload = o nScriptLoa dedCB;
        461           }
        462           el se {
        463                oScript. onload = o nScriptLoa dedCB;
        464                oScript. onerror =  onScriptLo adedCB;
        465           }
        466  
        467           oH ead.append Child(oScr ipt);
        468       }
        469   }
        470  
        471   function l oadDataXML (sFileName , bAsync)
        472   {
        473   try
        474   {
        475       var bA syncReq =  true;
        476       if (bA sync != 'u ndefined')
        477           bA syncReq =  bAsync;
        478  
        479       var sC urrentDocP ath = _get Path(docum ent.locati on.href);
        480       sdocPa th = _getF ullPath(sC urrentDocP ath, sFile Name);
        481  
        482       var fi leName = _ getRelativ eFileName( sCurrentDo cPath, sdo cPath);
        483       xmlJsR eader.load File(fileN ame, funct ion (a_xml Doc, args)  {
        484           if  (a_xmlDoc  != null)
        485                putDataX ML(a_xmlDo c, sdocPat h);
        486           el se
        487                onLoadXM LError();
        488       });
        489       
        490       //xmlD oc = xmlRe ader.xmlDo c;
        491       //aler t(xmlDoc);
        492       //init ializeData ();
        493           
        494   //      if (gbIE5)
        495   //      {
        496   //               // u se xmlhttp  for 304 s upport, xm ldom doesn 't support  it, IE5 o r later
        497   //               var  bIsHTTPURL  = false;
        498   //               if(g bAIRSSL)
        499   //               {
        500   //                    bIsHTTPURL  = IsHTTPU RL(sdocPat h);
        501   //               }
        502   //               else
        503   //                    bIsHTTPURL  = mrIsOnE ngine();
        504  
        505   //           if( bIsH TTPURL )
        506   //           {
        507   //                    xmlDoc=new  ActiveXOb ject("Micr osoft.XMLH TTP");
        508   //                    xmlDoc.onr eadystatec hange=chec kState;
        509   //                    if(documen t.body!=nu ll)
        510   //                    {
        511   //                            xm lDoc.Open( "get", sdo cPath, bAs yncReq);
        512   //                            xm lDoc.Send( "");
        513   //                    };
        514   //           }else
        515   //           {
        516   //                    xmlDoc=new  ActiveXOb ject("Micr osoft.XMLD OM");
        517   //                    xmlDoc.onr eadystatec hange=chec kState;
        518   //                    xmlDoc.asy nc=bAsyncR eq;
        519   //                    if(documen t.body!=nu ll)
        520   //                            xm lDoc.load( sdocPath);
        521   //           };
        522   //      }
        523   //      el se if(gbNa v6 && !gbA IR)
        524   //      {
        525   //               /*xm lDoc=docum ent.implem entation.c reateDocum ent("","", null);
        526   //               xmlD oc.addEven tListener( "load",ini tializeDat a,false);
        527   //               xmlD oc.load(sd ocPath,"te xt/xml");* /
        528  
        529   //               var  req=new XM LHttpReque st();
        530   //               req. open("GET" , sdocPath , false);    
        531   //               req. send(null) ;   
        532   //               xmlD oc = req.r esponseXML ;
        533   //               init ializeData ();
        534   //      }
        535   //      el se if(gbSa fari || gb AIR)
        536   //      {
        537   //               if(w indow.XMLH ttpRequest  && !(wind ow.ActiveX Object)) 
        538   //               {
        539   //                        xmlHtt p = new XM LHttpReque st();
        540   //                        if(xml Http)
        541   //                        {
        542   //                                 xmlHttp. onreadysta techange=o nXMLRespon se;
        543   //                                 xmlHttp. open("GET" , sdocPath , false);
        544   //                                 xmlHttp. send(null) ;
        545   //                        }
        546   //               }
        547   //      }
        548   }catch(e)
        549   {
        550       //Do n othing
        551   }
        552   }
        553  
        554   function o nXMLRespon se()
        555   {
        556       if(xml Http)
        557       {
        558         if(x mlHttp.rea dyState ==  4)
        559         {
        560           xm lDoc = xml Http.respo nseXML;
        561           if (xmlDoc!=n ull)
        562           {
        563                    putD ataXML(xml Doc,sdocPa th);
        564                }
        565                else
        566                {
        567                    onLo adXMLError ();
        568                }
        569         }
        570       }
        571   }
        572  
        573   function i nitializeD ata()
        574   {
        575           if (xmlDoc!=n ull)
        576                    putD ataXML(xml Doc,sdocPa th);
        577   }
        578  
        579   function c heckState( )
        580   {
        581           if (xmlDoc!=n ull)
        582           {
        583                    var  state=xmlD oc.readySt ate;
        584                    if(s tate==4)
        585                    {
        586                             // eng ine versio n uses xml http, xml  data in th e response XML
        587                             if( xm lDoc.respo nseXML!=nu ll )
        588                                      xmlDoc=x mlDoc.resp onseXML;
        589  
        590                             var er r=xmlDoc.p arseError;
        591                             if(err .errorCode ==0)
        592                                      putDataX ML(xmlDoc, sdocPath);
        593                             else
        594                                      onLoadXM LError();
        595                    }
        596           }
        597   }
        598  
        599   function i nsertDataD iv(sName)
        600   {
        601           va r sHTML="" ;
        602           if (gbMac)
        603                    sHTM L+="<div i d="+sName+ " style=\" display:no ne;\"></di v>";
        604           el se
        605                    sHTM L+="<div i d="+sName+ " style=\" visibility :hidden\"> </div>";
        606           if ((gbIE5||g bNav6||gbS afari3)&&d ocument.bo dy)
        607                    docu ment.body. insertAdja centHTML(" beforeEnd" ,sHTML);
        608           el se
        609           {
        610                    gsIn sertBefore EndHTML=sH TML;
        611                    setT imeout("in sertWhenBo dyReady(); ",100);
        612                    retu rn false;
        613           }
        614           re turn true;
        615   }
        616  
        617   function i nsertWhenB odyReady()
        618   {
        619           if (gsInsertB eforeEndHT ML=="") re turn;
        620           if (document. body)
        621           {
        622                    docu ment.body. insertAdja centHTML(" beforeEnd" ,gsInsertB eforeEndHT ML);
        623                    gsIn sertBefore EndHTML="" ;
        624                    load Data_2(gsF ileName,gs DivName);
        625           }
        626           el se
        627           {
        628                    setT imeout("in sertWhenBo dyReady(); ",100);
        629           }
        630   }
        631  
        632   function w indow_BUnl oad()
        633   {
        634           fo r(var i=0; i<gnLoadDi vNum;i++)
        635           {
        636                    var  oDivCon=ge tElement(g sDivName+i );
        637                    if(o DivCon)
        638                             oDivCo n.innerHTM L="";
        639           }
        640   }
        641  
        642   function r emoveThis( obj)
        643   {
        644           if (obj.paren tNode)
        645                    obj. parentNode .removeChi ld(obj);
        646           el se
        647                    obj. outerHTML= "";
        648   }
        649  
        650   function g etParentNo de(obj)
        651   {
        652           if (obj.paren tNode)
        653                    retu rn obj.par entNode;
        654           el se if(obj. parentElem ent)
        655                    retu rn obj.par entElement ;
        656           re turn null;
        657   }
        658  
        659   function g etElement( sID)
        660   {
        661           if (document. getElement ById)
        662                    retu rn documen t.getEleme ntById(sID );
        663           el se if(docu ment.all)
        664                    retu rn documen t.all(sID) ;
        665           re turn null;
        666   }
        667  
        668   function g etChildren ByTag(obj, sTagName)
        669   {
        670           if (obj.getEl ementsByTa gName)
        671           {
        672                    var  aChildren= new Array( );
        673                    var  aElements= getElement sByTag(obj ,sTagName) ;
        674                    if(a Elements!= null)
        675                    {
        676                             for(va r i=0;i<aE lements.le ngth;i++)
        677                             {
        678                                      if(aElem ents[i].pa rentNode== obj)
        679                                               aChildren[ aChildren. length]=aE lements[i] ;
        680                             }
        681                             return  aChildren ;
        682                    }
        683                    else
        684                             return  new Array ();
        685           }
        686           el se if(obj. children)
        687                    retu rn obj.chi ldren.tags (sTagName) ;
        688   }
        689  
        690   function g etElements ByTag(obj, sTagName)
        691   {
        692           if (obj.getEl ementsByTa gName)
        693                    retu rn obj.get ElementsBy TagName(sT agName);
        694           el se if(obj. all)
        695                    retu rn obj.all .tags(sTag Name);
        696           re turn null;
        697   }
        698  
        699   function _ htmlToText (sHTML)
        700   {
        701           if (sHTML==nu ll) return  null;
        702           va r sText=sH TML;
        703           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        704           {
        705                    var  re=new Reg Exp(sRepla ceStringsS rc[i],"g") ;
        706                    sTex t=sText.re place(re,s ReplaceStr ingsDst[i] );
        707           }        
        708           re turn sText ;
        709   }
        710  
        711   function _ textToHtml _nonbsp(sT ext)
        712   {
        713           if (sText==nu ll) return  null;
        714           va r sHTML=sT ext;
        715           fo r(var i=0; i<sReplace StringsSrc .length-1; i++)
        716           {
        717                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        718                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        719           }        
        720           re turn sHTML ;
        721   }
        722  
        723   function _ textToHtml (sText)
        724   {
        725           if (sText==nu ll) return  null;
        726           va r sHTML=sT ext;
        727           fo r(var i=0; i<sReplace StringsSrc .length;i+ +)
        728           {
        729                    var  re=new Reg Exp(sRepla ceStringsD st[i],"g") ;
        730                    sHTM L=sHTML.re place(re,s ReplaceStr ingsSrc[i] );
        731           }        
        732           re turn sHTML ;
        733   }
        734  
        735  
        736   function g etInnerTex t(obj)
        737   {
        738           va r renbsp2s p=new RegE xp("\xa0", "g");
        739           if (obj.inner Text)
        740           {
        741                    var  sText=obj. innerText;
        742                    sTex t=sText.re place(renb sp2sp," ") ;
        743                    retu rn sText;
        744           }
        745           el se
        746           {
        747                    if(o bj.nodeVal ue)
        748                    {
        749                             var sV alue=obj.n odeValue;
        750                             sValue =sValue.re place(renb sp2sp," ") ;
        751                             return  sValue;
        752                    }
        753                    else
        754                    {
        755                             var sT ext="";
        756                             var oC hild=obj.f irstChild;
        757                             while( oChild!=nu ll)
        758                             {
        759                                      sText+=g etInnerTex t(oChild);
        760                                      oChild=o Child.next Sibling;
        761                             }
        762                             return  sText;
        763                    }
        764           }
        765                    
        766   }
        767  
        768   function H ighLightEl ement(obj, sHighLight Color,sNor malColor)
        769   {
        770           if (obj!=null )
        771           {
        772                    rese tHighLight (sNormalCo lor);
        773                    if ( obj.style)
        774                             obj.st yle.backgr oundColor= sHighLight Color;
        775                    goHi ghLighted= obj;
        776           }
        777   }
        778  
        779   function r esetHighLi ght(sNorma lColor)
        780   {
        781           if (goHighLig hted!=null )
        782           {
        783                    if ( goHighLigh ted.style)
        784                             goHigh Lighted.st yle.backgr oundColor= sNormalCol or;
        785                    goHi ghLighted= null;
        786           }
        787   }
        788  
        789   function w hFont(sNam e,sSize,sC olor,sStyl e,sWeight, sDecoratio n)
        790   {
        791           th is.sName=s Name;
        792           th is.sSize=s Size;
        793           th is.sColor= sColor;
        794           th is.sStyle= sStyle;
        795           th is.sWeight =sWeight;
        796           th is.sDecora tion=sDeco ration;
        797   }
        798  
        799   function g etFontStyl e(oFont)
        800   {
        801           va r sStyle=" ";
        802           if (oFont)
        803           {
        804                    sSty le+="font- family:"+o Font.sName +";";
        805                    sSty le+="font- size:"+oFo nt.sSize+" ;";
        806                             
        807                    sSty le+="font- style:"+oF ont.sStyle +";";
        808                    sSty le+="font- weight:"+o Font.sWeig ht+";";
        809                    sSty le+="text- decoration :"+oFont.s Decoration +";";
        810                    sSty le+="color :"+oFont.s Color+";";
        811           }
        812           re turn sStyl e;
        813   }
        814  
        815   function _ browserStr ingToText( sBStr)
        816   {
        817           va r sText="" ;
        818           //  change %x xx back to  the real  char.
        819           va r nPos=sBS tr.indexOf ('%');
        820           wh ile(nPos!= -1)
        821           {
        822                    sTex t+=sBStr.s ubstring(0 ,nPos);
        823                    sBSt r=sBStr.su bstring(nP os+1);
        824                    var  sNum="";
        825                    var  i=0;
        826                    whil e(sBStr.ch arAt(i)>=' 0'&&sBStr. charAt(i)< ='9')
        827                    {
        828                             sNum+= sBStr.char At(i++);         
        829                    }
        830                    if(s Num!=""){
        831                             var nN um=parseIn t(sNum,16) ;
        832                             sText+ =String.fr omCharCode (nNum);
        833                             sBStr= sBStr.subs tring(i);
        834                    }
        835                    nPos =sBStr.ind exOf('%');
        836           }
        837           sT ext+=sBStr ;
        838           re turn sText ;
        839   }
        840  
        841   function I sInternal( urlName)
        842   {
        843           //  first pas s: check r aw urlName
        844           if (!IsValidI nternalTop icURL(urlN ame))
        845                    retu rn false;
        846           //  second pa ss: check  unescape'd  urlName
        847           va r unescape dUrlName =  unescape( urlName);
        848           if (!IsValidI nternalTop icURL(unes capedUrlNa me))
        849                    retu rn false;
        850           //  third pas s: check d ecodeUri'd  urlName
        851           va r decodedU rlName = d ecodeURI(u rlName);
        852           if (!IsValidI nternalTop icURL(deco dedUrlName ))
        853                    retu rn false;
        854  
        855           //  looks goo d
        856           re turn true;
        857  
        858   }
        859  
        860   function I sValidInte rnalTopicU RL(urlName )
        861   {
        862           if (urlName.i ndexOf(":" ) != -1 ||  urlName.i ndexOf("// ")  != -1  || urlName .indexOf(" &#")  != - 1 || (!IsV alidTopicU RL(urlName )))
        863                    retu rn false;
        864                    
        865           re turn true;     
        866                    
        867   }
        868  
        869   function I sValidTopi cURL(topic URL)
        870   {
        871           fo r (var i =  0 ; i < g IllegalTop icNameChar s.length ;  i++)
        872           {
        873                    if ( topicURL.i ndexOf(gIl legalTopic NameChars. charAt(i))  != -1 )
        874                             return  false ;
        875           }
        876           re turn true  ;
        877   }
        878  
        879   function I sNonAscii( szWord)
        880   {
        881       var te mp;
        882       for(va r iCount=0 ; iCount<s zWord.leng th;iCount+ +)
        883       {
        884           te mp = szWor d.charCode At(iCount) ;
        885           if (temp>128)
        886                return t rue;
        887       }
        888       return  false;
        889  
        890   }
        891  
        892   function e xcapeSingl eQuotandSl ash(str)
        893   {
        894           if (str==null ) return n ull;
        895           va r nPos=0;
        896           va r sRes="";
        897           va r nPosNew= str.indexO f("\\",nPo s);
        898           wh ile(nPosNe w!=-1){
        899                    sRes +=str.subs tring(nPos ,nPosNew+1 )+"\\";
        900                    nPos =nPosNew+1 ;
        901                    nPos New=str.in dexOf("\\" ,nPos);
        902           }
        903           if (nPos<str. length)
        904                    sRes +=str.subs tring(nPos );
        905           va r re=new R egExp("'", "g");
        906           sR es=sRes.re place(re," \\'");
        907           re turn sRes;
        908   }
        909  
        910   // used by  roboengin e
        911   function m rGetRootWi ndow() {
        912       if (is ChromeLoca l())
        913           re turn null;
        914           
        915           va r cWnd=win dow;
        916           wh ile(cWnd!= null)
        917           {
        918                    if(  cWnd.cMRSe rver!=null  && String (cWnd.cMRS erver)!='u ndefined'  )
        919                    {
        920                             return  cWnd;
        921                    };
        922                    cWnd =cWnd.pare nt;
        923           };
        924           re turn null;
        925   };
        926  
        927   function m rGetProjNa me()
        928   {
        929           va r cRoot=mr GetRootWin dow();
        930           if ( cRoot==n ull ) retu rn '';
        931  
        932           va r sTags=un escape(cRo ot.locatio n.search);
        933           if ( sTags==' ' )
        934                    sTag s=unescape (cRoot.loc ation.hash );
        935  
        936           va r nStart,  nEnd1, nEn d2;
        937           va r sName='' ;
        938  
        939           if ( (nStart= sTags.inde xOf('prj=' ))>=0 )
        940           {
        941                    if(  (nEnd=sTag s.indexOf( '&', nStar t))<0 ) nE nd=sTags.l ength;
        942                    if(  (nEnd1=sTa gs.indexOf ('>', nSta rt))<0 ) n End1=sTags .length;
        943                    if(  nEnd>nEnd1  ) nEnd=nE nd1;
        944                    sNam e=sTags.su bstring(nS tart+4, nE nd);
        945           };
        946  
        947           re turn sName ;
        948   };
        949  
        950   function m rInitializ e() {
        951       if (is ChromeLoca l())
        952           re turn;
        953           va r sProjNam e=mrGetPro jName();
        954           va r cRoot=mr GetRootWin dow();
        955  
        956           if ( sProjNam e!='' && c Root!=null  )
        957           {
        958                    cRoo t.cMRServe r.m_bEngin e=true;
        959                    cRoo t.cMRServe r.m_sProjN ame=sProjN ame;
        960           };
        961   };
        962  
        963   function m rIsOnEngin e() {
        964       if (is ChromeLoca l()) 
        965           re turn false ;
        966       else{
        967           va r cRoot =  mrGetRootW indow();
        968           re turn cRoot  && cRoot. cMRServer  && cRoot.c MRServer.m _bEngine = = true;
        969       }
        970   };
        971  
        972   function m rGetEngine Url()
        973   {
        974           re turn c_sEn ginePath;
        975   };
        976  
        977   function     getClien tHeight()
        978   {
        979       if(gbS afari3)
        980       {
        981           re turn inner Height;    //this is  for safari
        982       }
        983       return  document. body.clien tHeight;
        984       
        985   }
        986  
        987   function P atchParame tersForEsc apeChar(sP aram)
        988   {
        989           va r sresult  = sParam;
        990           if (gbSafari)
        991           {
        992                    sres ult = sres ult.replac e(/%3c/gi, "<");
        993                    sres ult = sres ult.replac e(/%3e/gi, ">");
        994           }
        995           re turn sresu lt;
        996   }
        997   function S eeForSearc h(strProje ctDir) 
        998   {
        999           if (gbAIRSSL  && gbSearc hPage)
        1000           {
        1001                loadFts_ context(st rProjectDi r);
        1002           }
        1003   }
        1004   var RH_Bre adCrumbDat aStringVar iable="";
        1005   function R H_Document _Write(szT ext)
        1006   {
        1007           RH _BreadCrum bDataStrin gVariable+ =szText;
        1008   }
        1009  
        1010   function R H_AddMaste rBreadcrum bs(relHome Page,style Info, sepa rator, str Home, strH omePath) {
        1011       if (ty peof (gBre adCrumbInf o) != 'und efined') {
        1012           RH _Document_ Write("__b rseq__");
        1013           gB readCrumbI nfo[gBCId]  = new Bre adCrumbInf o(relHomeP age, style Info, sepa rator, str Home, strH omePath);
        1014           gB CId++;
        1015       }
        1016   }
        1017  
        1018   function i sChromeLoc al() {
        1019       if (wi ndow.chrom e)
        1020           if  (document .location. protocol.s ubstring(0 , 4) == "f ile")
        1021           re turn true;
        1022       return  false;
        1023   }
        1024  
        1025  
        1026   var gbWhUt il=true;