// http://home.earthlink.net/~bhami/rosetta.js
// Copyright (c) 2001-2003 Bruce A. Hamilton <bhami@pobox.com>.
// All rights reserved. Non-commercial use only.
// Includes enhancements by Mårten Svantesson <msv@kth.se>
//
var osBox;
var osHowMany;
var taskHowMany;
var mytable;

// ----------------------------------------
// init
// ----------------------------------------
function init() {
  mytable = document.getElementById("Rosetta");
  osBox = document.getElementById("OSSystemBox");
  taskHowMany = mytable.rows.length - 1;
  initOSBox();
} // init

// ----------------------------------------
// initOSBox
// ----------------------------------------
function initOSBox() {
  osHowMany = mytable.rows[0].cells.length-2;
  for (var i = 0; i < osHowMany; i++) {
    var rowHeader = mytable.rows[0].cells[i+1].childNodes[0].childNodes[0].nodeValue;
    addOption(rowHeader, i);
  }
} // initOSBox

// ----------------------------------------
// addOption
// ----------------------------------------
function addOption(optText, itemNum) {
  osBox.options[itemNum] = new Option(optText, optText, false, false);
// make the OS appear selected, since the page starts with all
// selected (until we implement a cookie scheme)
  osBox.options[itemNum].selected = true;
}

// ----------------------------------------
// setOS
// ----------------------------------------
function setOS() {
  for (var i = 0; i < osHowMany; i++) {
    osBox.options[i].selected = true;
  }
} // setOS

// ----------------------------------------
// clearOS
// ----------------------------------------
function clearOS() {
  for (var i = 0; i < osHowMany; i++) {
    osBox.options[i].selected = false;
  }
} // clearOS

// ----------------------------------------
// SCANOS
// ----------------------------------------
function scanTable() {
 var j,i;

 if (osBox.selectedIndex == -1) {
   alert ("Select at least one Operating System.");
   return;
 }

 // loop on each task and set visibility

 for (i = 0; i < taskHowMany+1; i++) {
     for (j = 0; j < osHowMany; j++) {
	 mytable.rows[i].cells[j+1].style.display = 
	     (osBox.options[j].selected?"":"none");
     }
 }
} // scanTable

