var minDelay = 300 * 1000; var ssFile = "/scripts/" + "ss-xml.xml";
var sizeURL = "/szz/";
var monitorURL = "/pcs/";
var visited = "";
var actions = "";
var myImage;
var mySizeImage;
var freshCheck = 0;
var MAXREP=30
var PROMOTE_PM  = "promote-PM";
var PROMOTE_PPM = "promote-PPM";
var PROMOTE_UP  = "promote-UP";
var PROMOTE_GM  = "promote-GM";
var PROMOTE_LM  = "promote-LM";
var PROMOTE_AC  = "promote-AC";
var PROMOTE_PCI = "promote-PCI";
var PROMOTE_SOX = "promote-SOX";
var psynchURL = "http://Password-Manager.Hitachi-ID.com/";
var psynchImage = "psynch-sidebar.png";
var psynchTitle = "Hitachi ID Password Manager";
var psynchAdText = "Free white paper: password management best practices.";
var psynchAdURL = "http://Password-Manager.Hitachi-ID.com/docs/password-management-best-practices.pdf";
var idarchiveURL = "http://Privileged-Password-Manager.Hitachi-ID.com/";
var idarchiveImage =  "idarchive-sidebar.png";
var idarchiveTitle = "Hitachi ID Privileged Password Manager";
var idarchiveAdText = "Free white paper: privileged password management best practices.";
var idarchiveAdURL = "http://Privileged-Password-Manager.Hitachi-ID.com/docs/privileged-password-management-best-practices.pdf";
var idsynchURL = "http://Identity-Manager.Hitachi-ID.com/";
var idsynchImage = "idsynch-sidebar.png";
var idsynchTitle = "Hitachi ID Identity Manager";
var idsynchAdText = "Free white paper: user provisioning best practices.";
var idsynchAdURL = "http://Identity-Manager.Hitachi-ID.com/docs/user-provisioning-best-practices.pdf";
var idaccessURL = "http://Group-Manager.Hitachi-ID.com/";
var idaccessImage = "idaccess-sidebar.png";
var idacessTitle = "Hitachi ID Group Manager";
var idaccessAdText = "Free white paper: Self-service AD group management.";
var idaccessAdURL = "http://Group-Manager.Hitachi-ID.com/docs/self-service-ad-group-management.pdf";
var idcertURL = "http://Access-Certifier.Hitachi-ID.com/";
var idcertImage = "idcert-sidebar.png";
var idcertTitle = "Hitachi ID Access Certifier";
var idcertAdText = "Free white paper: Addressing Excess Privileges using Hitachi ID Access Certifier.";
var idcertAdURL = "http://Access-Certifier.Hitachi-ID.com/docs/addressing-excess-privileges-using-hiac.pdf";
var psssoURL = "http://Login-Manager.Hitachi-ID.com/";
var psssoImage = "pssso-sidebar.png";
var psssoTitle = "Hitachi ID Login Manager";
var psssoAdText = "Free white paper: Problems with Traditional E-SSO.";
var psssoAdURL = "http://Login-Manager.Hitachi-ID.com/docs/problems-with-traditional-sso.pdf";
var pciURL = "http://Hitachi-ID.com/products/";
var pciImage = "suite-sidebar.png";
var pciTitle = "Hitachi ID Management Suite";
var pciAdText = "Free white paper: PCI-DSS Compliance Using the Hitachi ID Management Suite.";
var pciAdURL = "http://Hitachi-ID.com/cgi-bin/emaildoc?document=pci-dss-compliance-using-the-hitachi-id-management-suite.pdf";
var soxURL = "http://Hitachi-ID.com/products/";
var soxImage = "suite-sidebar.png";
var soxTitle = "Hitachi ID Management Suite";
var soxAdText = "Free white paper: SOX Compliance Using the Hitachi ID Management Suite.";
var soxAdURL = "http://Hitachi-ID.com/cgi-bin/emaildoc?document=hitachi-id-sox.pdf";
function showVisited()
  {
  var repList="";
  var nRep = 0;
  var nAct = 0;
  actions="";
  for(var site in visited)
    {
    ++ nRep;
    repList = repList + visited[site].tag + ":";
    if( visited[site].action != null && visited[site].action != "")
      {
      var act = visited[site].action;
      var pat = act + ":";
      if( actions.indexOf(pat)>-1 )
        {
                }
      else
        {
        actions = actions + act + ":";
        ++ nAct;
        }
      }
    }
  if( freshCheck && nRep>0 && nRep<MAXREP )
    {
    var myURL = monitorURL + repList + ".txt";
    myImage = document.createElement("img");
    myImage.src = myURL;
    var mysURL = "";
    if( window )
      {
      var size;
      size = window.getSize();
      if( size )
        {
        mysURL = sizeURL + size.x + "-" + size.y + ".txt";
        mySizeImage = document.createElement("img");
        mySizeImage.src = mysURL;
        }
      }
    }
  else
    {
            }
  if( nAct > 0 )
    {
    if(actions.search(PROMOTE_PM) != -1)
      {
      setSideBar(psynchURL, psynchImage, psynchTitle, psynchAdText, psynchAdURL);
      }
    else if(actions.search(PROMOTE_PPM) != -1)
      {
      setSideBar(idarchiveURL, idarchiveImage, idarchiveTitle, idarchiveAdText, idarchiveAdURL);
      }
    else if(actions.search(PROMOTE_UP) != -1)
      {
      setSideBar(idsynchURL, idsynchImage, idsynchTitle, idsynchAdText, idsynchAdURL);
      }
    else if(actions.search(PROMOTE_GM) != -1)
      {
      setSideBar(idaccessURL, idaccessImage, idaccessTitle, idaccessAdText, idaccessAdURL);
      }
    else if(actions.search(PROMOTE_AC) != -1)
      {
      setSideBar(idcertURL, idcertImage, idcertTitle, idcertAdText, idcertAdURL);
      }
    else if(actions.search(PROMOTE_LM) != -1)
      {
      setSideBar(psssoURL, psssoImage, psssoTitle, psssoAdText, psssoAdURL);
      }
    else if(actions.search(PROMOTE_PCI) != -1)
      {
      setSideBar(pciURL, pciImage, pciTitle, pciAdText, pciAdURL);
      }
    else if(actions.search(PROMOTE_SOX) != -1)
      {
      setSideBar(soxURL, soxImage, soxTitle, soxAdText, soxAdURL);
      }
    else
      {
            }
    }
  else
    {
        }
  }
function addSlideEvent()
  {
  var hiddenDiv = $('hiddenDiv');
  if( !hiddenDiv.slideSideBar )
    {
    hiddenDiv.slideSideBar = new Fx.Slide( hiddenDiv );
    hiddenDiv.setStyles(
      { 'margin-left': '2px',
        'width': '200px',
        'height': '150px',
        'border': '1px solid #ccc',
        'z-index': '20' }
      );
    }
  hiddenDiv.slideSideBar.hide();
  hiddenDiv.setStyle( 'display', 'block' );
  hiddenDiv.slideSideBar.slideIn();
  }
function setSideBar(topurl, image, title, text, bottomurl)
  {
  var sideBarHiddenDiv = $("hiddenDiv");
  if( ! sideBarHiddenDiv )
    {
        return;
    }
  var sideBarDiv = $("sidebarTop");
  if( ! sideBarDiv )
    {
        return;
    }
  var sideBarLink = sideBarDiv.getFirst();
  if( ! sideBarLink )
    {
        return;
    }
  var sideBarImage = sideBarLink.getFirst();
  if( ! sideBarImage )
    {
        return;
    }
  var sideBarBestLink = $("adLink");
  if( ! sideBarBestLink )
    {
        return;
    }
  sideBarLink.setProperty("href", topurl);
  sideBarImage.setProperty("src", "/pics/mtech-logos/" + image);
  sideBarBestLink.setProperty("href", bottomurl);
  sideBarBestLink.set("text", text);
  addSlideEvent();
  }
function checkIfTimeToRun()
  {
  var lastCheck = Cookie.read("lastCheck");
  var currentDate = new Date();
  var tNow = currentDate.getTime();
  if( lastCheck != null && lastCheck != "" )
    {
        if( tNow - lastCheck > minDelay )
      {             visited = getVisited();
      freshCheck = 1;
      Cookie.write("lastCheck",tNow);
      Cookie.write("cachedList",JSON.encode(visited));
      showVisited();
      }
    else
      {
            visited = JSON.decode(Cookie.read("cachedList"));
      showVisited();
      }
    }
  else     {
        visited = getVisited();
    freshCheck = 1;
    Cookie.write("lastCheck",tNow);
    Cookie.write("cachedList",JSON.encode(visited));
    showVisited();
    }
  }
function getVisited()
  {
  var sites = readList();
  function getStyle( element, scopeDoc, styleProp )
    {
    var style = "none";
    if( element.currentStyle )
      {
      style = element.currentStyle[styleProp];
      }
    else if( window.getComputedStyle )
      {
      style = scopeDoc.defaultView.getComputedStyle(element,null).getPropertyValue(styleProp);
      }
    return style;
    }
  function remove(element)
    {
    element.parentNode.removeChild(element);
    }
  function createIframe()
    {
    var iframe = document.createElement("iframe");
    iframe.style.visibility = "hidden";
    iframe.style.height = "0px";
    document.body.appendChild(iframe);
    if( iframe.contentDocument )
      iframe.doc = iframe.contentDocument;
    else if( iframe.contentWindow )
      iframe.doc = iframe.contentWindow.document;
    iframe.doc.open();
    iframe.doc.write('<style>');
    iframe.doc.write("a{color: #000000; display: none;}");
    iframe.doc.write("a:visited {color: #FF0000; display: inline;}");
    iframe.doc.write('</style>');
    iframe.doc.close();
    return iframe;
    }
  var iframe = createIframe();
  function createLinkInIframe(link, action, tags)
    {
    var a = iframe.doc.createElement("a");
    a.href = link;
    a.action = action;
    a.tag = tags;
    iframe.doc.body.appendChild( a );
    }
  for(var i=0; i < sites.length; i++ )
    {
    for(var j=0; j < sites[i].addresses.length; j++ )
      {
      var url = sites[i].addresses[j];
      var action = sites[i].action;
      var tag = sites[i].tag;
            createLinkInIframe(url, action, tag);
      if( url.match(/www\./) )
        {
        var sansWWW = url.replace(/www\./,"");
        createLinkInIframe(sansWWW, action, tag);
        }
      else
        {
        var httpLen = url.indexOf("//") + 2;
        var withWWW = url.substring(0, httpLen) + "www."
                    + url.substring(httpLen);
        createLinkInIframe(withWWW, action, tag);
        }
      }
    }
  var links = iframe.doc.body.childNodes;
  var visited = {};
    var j = 0;
  var hits="";
  for(var i = 0; i < links.length; i++)
    {
    var displayValue = getStyle(links[i], iframe.doc, "display");
    var linkVisited = (displayValue != "none");
    if(linkVisited)
      {
      var returnObj = new Object();
      returnObj.tag = links[i].tag;
      returnObj.action = links[i].action;
            visited[j] = returnObj;
            ++ j;
      hits = hits + "+";
      }
    else
      {
      hits = hits + ".";
      }
    }
  return visited;
  }
function readList()
  {
  if( window.XMLHttpRequest )
    {
    xhttp=new XMLHttpRequest();
    }
  else     {
    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  xhttp.open("GET", ssFile, false);
  xhttp.send("");
  xmlDoc=xhttp.responseXML;
  var numSites = xmlDoc.getElementsByTagName("grp").length;
  var sites = new Array();
  for( var i=0; i < numSites; i++ )
    {
    var siteObj = new Object();
    var myGrp = xmlDoc.getElementsByTagName("grp")[i];
    if( myGrp )
      {
      var myAct = myGrp.getElementsByTagName("act")[0];
      if( myAct )
        {
        myToDo = myAct.childNodes[0].nodeValue;
        if( myToDo )
          {
          siteObj.action = myToDo;
          }
        else
          {
                    siteObj.action = "none";
          }
        }
      else
        {
                }
      }
    else
      {
            }
        siteObj.tag = xmlDoc.getElementsByTagName("grp")[i].getElementsByTagName("tag")[0].childNodes[0].nodeValue;
    var addresses = new Array();
    var numAddresses = xmlDoc.getElementsByTagName("grp")[i].getElementsByTagName("ad").length;
    for(var j = 0; j < numAddresses; j++)
      {
      addresses[j] = xmlDoc.getElementsByTagName("grp")[i].getElementsByTagName("ad")[j].childNodes[0].nodeValue;
      }
    siteObj.addresses = addresses;
    sites[i] = siteObj;
    }
  return sites;
  }
