title: Modifying main Activities grid view in CRM 4.0 using JavaScript
body: <p>I have a task to change envelope icons on the main Activities view page (Work Place, My Work -> Activities) for every row in the grid, depending on the custom status of the row in crm 4.0. I need to do it using JavaScript. Does anybody know if there is a way to do that and where should the JavaScript code be placed?  I am assuming that I need to intercept grid onLoad event, go through the grid, check the condition and flip the url of the icon. But I cannot figure out how to hook into that event... </p>
  
  <p>Thanks very much!</p>
  
  <p>I got several very useful advices and here is what I got so far.<br>
  1. I added SiteMap to load a custom page, instead of default one (/workplace/home_activities.aspx)<br>
  2. Here is the code of the custom page, placing onreadystatechange in the html was the only way I could get this function to run. Do not know why.   </p>
  
  <pre> 
  HTML>
  HEAD>
  TITLE>
  script language="javascript" type="text/javascript">
  function Run()
  {
   var objIframe = getIframe();
  
     if(objIframe.readyState == "complete")
     {
      var docFrame = objIframe.contentWindow.document;
      var grid = docFrame.getElementById("crmGrid");
  
      var allRecords = grid.InnerGrid.AllRecords;
  
      for(var i=0; i 
  
  <pre>
  function getIframe()
  {
     return document.getElementById("wraperActivitiesFrame");
  }
  </pre>
  
  
  /script>
  /HEAD>
  body >
  
    iframe id="wraperActivitiesFrame" src="/workplace/home_activities.aspx" WIDTH="100%" HEIGHT="100%" onreadystatechange="Run()">
  /HTML> 
  </pre>         
  
  <p>The issue I am having now is that the function does not run again when I try to page the grid. I have 2 pages of Activities; when the page loads for the first time - I have my alert boxes, but when I click on "page 2" arrow - nothing happens. Why??? What I am doing wrong? </p>