//
// dakbutton package
//

function dakbutton (bid) {
   var evalstr;

   this.bnum = dakbutton_pr_numButtons;
   dakbutton_pr_buttons [dakbutton_pr_numButtons] = this;
   dakbutton_pr_numButtons++;
   //
   this.bid = "document.all." + bid;
   this.enabled = false;
   this.suspended = false;
   this.enabledimage = "";
   this.disabledimage = "";
   this.handler = "";
   this.handlerargs = "";
   //
   this.setEnabled = dakbutton_pr_setEnabled;
   this.setSuspended = dakbutton_pr_setSuspended;
   this.setEnabledImage = dakbutton_pr_setEnabledImage;
   this.setDisabledImage = dakbutton_pr_setDisabledImage;
   this.setHandler = dakbutton_pr_setHandler;
   //
   evalstr = this.bid +
             ".onclick = function (event) { dakbutton_pr_click " +
             "(" + this.bnum + ") }";
   eval (evalstr);
}

function dakbutton_set_iroot (iroot) {
   dakbutton_pr_iroot = iroot;
}

function dakbutton_simple (btag) {
   var evalstr;
   var ipath;
   var b;

   evalstr = "b = new dakbutton (\"" + btag + "Button\")";
   eval (evalstr);

   evalstr = "b.setHandler (\"clickButton\", \"'" + btag + "'\")";
   eval (evalstr);

   ipath = dakbutton_pr_iroot + "/button-" + btag + ".gif";
   evalstr = "b.setEnabledImage (\"" + ipath + "\")";
   eval (evalstr);
   ipath = dakbutton_pr_iroot + "/button-" + btag + "-gray.gif";
   evalstr = "b.setDisabledImage (\"" + ipath + "\")";
   eval (evalstr);

   evalstr = "b.setEnabled (false)";
   eval (evalstr);

   return b;
}

function dakbutton_setAllSuspended (s) {
   var i;
   var button;

   for (i = 1;  i <= dakbutton_pr_numButtons;  i++) {
      button = dakbutton_pr_buttons [i - 1];
      button.setSuspended (s);
   }
}

//
// globals
//

var dakbutton_pr_buttons = new Array();
var dakbutton_pr_numButtons = 0;
var dakbutton_pr_iroot = "";

//
// dakbutton object methods
//

function dakbutton_pr_setEnabled (e) {
   var evalstr;

   if (e) {
      evalstr = this.bid + ".src = \"" + this.enabledimage + "\"";
   } else {
      evalstr = this.bid + ".src = \"" + this.disabledimage + "\"";
   }
   eval (evalstr);
   this.enabled = e;
}

function dakbutton_pr_setSuspended (s) {
   var evalstr

   if (s) {
      evalstr = this.bid + ".src = \"" + this.disabledimage + "\"";
   } else if (this.enabled) {
      evalstr = this.bid + ".src = \"" + this.enabledimage + "\"";
   } else {
      evalstr = this.bid + ".src = \"" + this.disabledimage + "\"";
   }
   eval (evalstr);
   this.suspended = s;
}

function dakbutton_pr_setEnabledImage (img) {
   this.enabledimage = img;
}

function dakbutton_pr_setDisabledImage (img) {
   this.disabledimage = img;
}

function dakbutton_pr_setHandler (h, a) {
   this.handler = h;
   this.handlerargs = a;
}

//
// dakbutton object click handler
//

function dakbutton_pr_click (bnum) {
   var evalstr;
   var button;

   button = dakbutton_pr_buttons [bnum];
   if (button.suspended) return;
   if (!button.enabled) return;
   if (button.handler == "") return;
   if (button.handlerargs == "") {
      evalstr = button.handler + "()";
   } else {
      evalstr = button.handler + " (" + button.handlerargs + ")";
   }
   eval (evalstr);
}

