  /*
   * toolbar.js
   * (c) 2009 Bear Peak Software LLC.
   */
  
  /* global vars */
  
  var toolbar, tbarPrevBtn, tbarNextBtn, tbarFilmSelect, tbarProgSelect;
  var tbarSchBtn, ticketInfo, tbarTickets, ticketsCloseBtn;
  var tbarImgPages, tbarProgImg, tbarPgmID = 1;
  
  // register onload listener
  registerEvent(window, "load", initToolbar);

  /* init */
  
  function initToolbar() {
    //log("initToolbar");
    
    tbarImgPages = {
      "A": "A",
      "B": "B",
      "1": "1",
      "2": "2_3",
      "3": "2_3",
      "4": "4_5",
      "5": "4_5",
      "6": "6_7",
      "7": "6_7",
      "8": "8_9",
      "9": "8_9",
      "10": "10",
      "11": "11_13",
      "12": "11_13",
      "13": "11_13",
      "14": "14",
      "15": "15",
      "16": "16",
      "17": "17",
      "18": "18_19",
      "19": "18_19",
      "20": "20_21",
      "21": "20_21",
      "22": "22_25",
      "23": "22_25",
      "24": "22_25",
      "25": "22_25",
      "26": "26",
      "27": "27_28",
      "28": "27_28",
      "29": "29",
      "30": "30_31",
      "31": "30_31",
      "32": "32_33",
      "33": "32_33",
      "34": "34_37",
      "35": "34_37",
      "36": "34_37",
      "37": "34_37",
      "38": "38"
    };
    
    // get the important toolbar elements
    toolbar = document.getElementById("toolbar");
    tbarPrevBtn = document.getElementById("tbarPrevBtn");
    tbarNextBtn = document.getElementById("tbarNextBtn");
    tbarFilmSelect = document.getElementById("tbarFilmSelect");
    tbarProgSelect = document.getElementById("tbarProgSelect");
    tbarSchBtn = document.getElementById("tbarSchBtn");
    tbarProgImg = document.getElementById("tbarProgImg");
    tbarTickets = document.getElementById("tbarTickets");
    ticketsCloseBtn = document.getElementById("ticketsCloseBtn");
    ticketInfo = document.getElementById("ticketInfo");
    
    // init toolbar behavior
    registerEvent(tbarPrevBtn, "click", doTbarPrev);
    registerEvent(tbarNextBtn, "click", doTbarNext);
    registerEvent(tbarFilmSelect, "change", doTbarFilmSelect);
    registerEvent(tbarProgSelect, "change", doTbarProgSelect);
    registerEvent(tbarSchBtn, "click", doSchBtn);
    registerEvent(tbarTickets, "click", showTicketsInfo);
    registerEvent(ticketsCloseBtn, "click", hideTicketsInfo);
    
    // load first program image
    var hash = location.hash;
    if (hash) {
      tbarPgmID = hash.substring(1, hash.length);
    } 
    gotoProgram(tbarPgmID);
  }
  
  /* utility functions */
  
  function showTicketsInfo(e) {
    ticketInfo.style.display = "block";
  }
  
  function hideTicketsInfo(e) {
    ticketInfo.style.display = "none";
  }
  
  function eid(element) {
    var result = "null element";
    if (element)
      result = element.id ? element.id : "no id";
    return result;
  }
  
  function gotoProgram(id) {
    //log("gotoProgram: id=" + id);
    if (id == "0")
      return;
    var imgsrc = "images/biff09_programs/pgm_" + tbarImgPages[id] + ".jpg";
    //log("  imgsrc=" + imgsrc);
    tbarProgImg.src = imgsrc;
    tbarProgImg.useMap = "#map" + tbarImgPages[tbarPgmID];
  }    
  
  /* event listeners */
  
  function doTbarPrev(e) {
    var target = e.target || e.srcElement;
    //log("doTbarPrev: tbarPgmID=" + tbarPgmID);
    if (tbarPgmID == "B") tbarPgmID = "A";
    else if (tbarPgmID == "1") tbarPgmID = "B";
    else if (tbarPgmID > 1 && tbarPgmID <= 38) {
      var curImgPage = tbarImgPages[tbarPgmID];
      do {
        tbarPgmID--;
      } while (curImgPage == tbarImgPages[tbarPgmID]);
    }
    gotoProgram(tbarPgmID);
  }

  function doTbarNext(e) {
    //log("doTbarNext: tbarPgmID=" + tbarPgmID);
    if (tbarPgmID == "A") tbarPgmID = "B";
    else if (tbarPgmID == "B") tbarPgmID = "1";
    else if (tbarPgmID >= 1 && tbarPgmID < 38) {
      var curImgPage = tbarImgPages[tbarPgmID];
      do {
        //log ("  loop: curImgPage=" + curImgPage + 
        // " tbarImgPages[tbarPgmID]=" + tbarImgPages[tbarPgmID]);
        tbarPgmID++;
      } while (curImgPage == tbarImgPages[tbarPgmID]);
    }
    gotoProgram(tbarPgmID);
  }
  
  function doTbarFilmSelect(e) {
    //var target = e.target || e.srcElement;
    //log("doTbarFilmSelect: value=" + tbarFilmSelect.value);
    tbarPgmID = tbarFilmSelect.value;
    gotoProgram(tbarPgmID);
    tbarFilmSelect.selectedIndex = 0;
  }
  
  function doTbarProgSelect(e) {
    var target = e.target || e.srcElement;
    //log("doTbarProgSelect: value=" + tbarProgSelect.value);
    tbarPgmID = tbarProgSelect.value;
    gotoProgram(tbarPgmID);
    tbarProgSelect.selectedIndex = 0;
  }
    
  function doSchBtn(e) {
    window.location = "biff09_schedule.html";
  }
