///////////////////////////////////////////////////////////////////
// Signer Harris Projects page
///////////////////////////////////////////////////////////////////
//
// This page displays a thumbnail for each project, the project name,
// and a list of project categories. A project may be in more than
// one category.
//
// Initially, no category is selected. In this state:
// - when you hover over a thumbnail or a project name:
//     the thumbnail is highlighted;
//     the project name is highlighted;
//     all categories to which the project belongs are highlighted
// - when you hover over a category:
//     thumbnails and names of all projects in that category are highlighted
//
// If you click on a category, that category becomes selected. All thumbnails
// and project names in that category become selected, and they stay selected
// even after mouseout. In this state:
// - when you hover over a different category, the category name highlights,
//   but no projects are highlighted
// - when you hover over a project name or thumbnail, nothing happens
// - if you click on the same category again, or click on "All Projects",
//   the projects become unselected and you go back to the "no category selected" state
// - if you click on a different category, that category become selected
//
//

// currently selected category (0 = no category)
var currentcat = 0;

//
// associations between projects and categories
//
// (these just make the table a little easier to read)
var YYY = 1;
var nnn = 0;
// maximum category index
var maxcat = 4;
// the columns below:
//   url: the URL of the project page  // NOT USED
//   cats: which categories is the project in
//      0=unused, 1=Commercial, 2=Institutional, 3=Life Sciences, 4=Residential
var catdata = Array();  //                C    I   LS    R
catdata["billiards-room"] =  { cats:[ 0, nnn, nnn, nnn, YYY ] };
catdata["broad-320"] =       { cats:[ 0, YYY, nnn, YYY, nnn ] };
catdata["broad-7cc"] =       { cats:[ 0, YYY, YYY, YYY, nnn ] };
catdata["camp-micah"] =      { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["brown-davol"] =     { cats:[ 0, YYY, YYY, nnn, nnn ] };
catdata["endeca"] =          { cats:[ 0, YYY, nnn, nnn, nnn ] };
catdata["brown-haff"] =      { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["hastings"] =        { cats:[ 0, nnn, nnn, nnn, YYY ] };
catdata["hphc-offices"] =    { cats:[ 0, YYY, nnn, nnn, nnn ] };
catdata["westbasin"] =       { cats:[ 0, nnn, nnn, nnn, YYY ] };
catdata["mit-w20"] =         { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["pool-house"] =      { cats:[ 0, nnn, nnn, nnn, YYY ] };
catdata["lknife"] =          { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["brown-rock"] =      { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["st-anns"] =         { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["55-camb-park"] =    { cats:[ 0, YYY, nnn, nnn, nnn ] };
catdata["brown-cit"] =       { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["wibr-5cc"] =        { cats:[ 0, YYY, YYY, YYY, nnn ] };
// added 10/14/08
catdata["visen"] =           { cats:[ 0, nnn, nnn, YYY, nnn ] };
catdata["wibr-aud"] =        { cats:[ 0, YYY, YYY, YYY, nnn ] };
// added 12/23/09
catdata["mit-barker"] =      { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["meei-chen"] =       { cats:[ 0, nnn, YYY, YYY, nnn ] };
catdata["brown-lyman"] =     { cats:[ 0, nnn, YYY, nnn, nnn ] };
catdata["novartis"] =        { cats:[ 0, YYY, nnn, YYY, nnn ] };

//catdata["bay-colony"] =      { cats:[ 0, YYY, nnn, nnn, nnn ] };


//
// projover
// function called when user mouses over a thumbnail or project name
//
function projover(projid) {
  if (currentcat == 0) {
    // select thumbnail
    var thumbobj = MM_findObj('thumb-'+projid);
    thumbobj.className = 'hovering';
    // select project name
    var nameobj = MM_findObj('proj-'+projid);
    nameobj.className = 'hovering';

    // select related categories
    var cats = catdata[projid].cats;
    for (var i = 1; i < cats.length; i++) {
      var catobj = MM_findObj('category'+i);
      catobj.className = (cats[i] > 0 ? 'hovering' : '');
    }

  }
  else {
    // don't do anything if a category is selected
  }
}

//
// projout
// function called when user mouses out of a thumbnail or project name
//
function projout(projid) {
  if (currentcat == 0) {
    // deselect thumbnail
    var thumbobj = MM_findObj('thumb-'+projid);
    thumbobj.className = '';
    // deselect project name
    var nameobj = MM_findObj('proj-'+projid);
    nameobj.className = '';

    // deselect all categories
    for (var i = 1; i <= maxcat; i++) {
      var catobj = MM_findObj('category'+i);
      catobj.className = '';
    }
  }
  else {
    // don't do anything if a category is selected
  }
}


//
// catover
// function called when user mouses over a category
//
function catover(catid) {
  if (currentcat == 0) {
    for (var projid in catdata) {
      if (catdata[projid].cats[catid] > 0) {
        // select thumbnail
        var thumbobj = MM_findObj('thumb-'+projid);
        thumbobj.className = 'hovering';
        // select project name
        var nameobj = MM_findObj('proj-'+projid);
        nameobj.className = 'hovering';
      }
    }
    // the category hover is taken care of by the CSS styles
  }
  else {
    // don't do anything if a category is selected
  }
}

//
// catout
// function called when user mouses out of a category
//
function catout(catid) {
  if (currentcat == 0) {
    for (var projid in catdata) {
      // deselect thumbnail
      var thumbobj = MM_findObj('thumb-'+projid);
      thumbobj.className = '';
      // deselect project name
      var nameobj = MM_findObj('proj-'+projid);
      nameobj.className = '';
    }
    // the category hover is taken care of by the CSS styles
  }
  else {
    // don't do anything if a category is selected
  }
}

//
// catclick
// function called when user clicks a category
//
function catclick(catid) {

  // clicking selected category deselects it
  if (currentcat != 0 && catid == currentcat)
    catid = 0;

  // turn off/on all thumbnails and project names
  for (var projid in catdata) {
    // select/deselect thumbnail
    var thumbobj = MM_findObj('thumb-'+projid);
    thumbobj.className = (catdata[projid].cats[catid] > 0 ? 'selected' : '');
    // select/deselect project name
    var nameobj = MM_findObj('proj-'+projid);
    nameobj.className = (catdata[projid].cats[catid] > 0 ? 'selected' : '');
  }

  // deselect all categories except catid
  for (var i = 1; i <= maxcat; i++) {
    var catobj = MM_findObj('category'+i);
    catobj.className = (i == catid ? 'selected' : '');
  }

  // save category
  currentcat = catid;

  return false;
}
