addEvent(window, "load", prepareFunctionButtons);
addEvent(window, "load", prepareLinkedData);

function prepareFunctionButtons(startElement) {
  var inputs;
  var thisInput;
  var loop;

  if (!startElement) {
  } else {
    startElement = document;
  }

  if (!startElement.getElementsByTagName) return;
  inputs = startElement.getElementsByTagName("button");
  //Go through all the inputs
  for (loop=0;loop<inputs.length;loop++) {
    thisInput = inputs[loop];
    //For all inputs that have a class of claimQty
    if ((' '+thisInput.className+' ').indexOf("functionExec") != -1) {
      if(!thisInput.initialized) {
        if (thisInput.addEventListener) {
          thisInput.addEventListener("click", processFunctionExec, 0);
        } else if (thisInput.attachEvent) {
          thisInput.attachEvent("onclick", processFunctionExec);
        } else {
          alert("Can't add event in prepareFunctionButtons");
        }
        thisInput.initialized = true;
      }
    }
  }
}

function prepareLinkedData(startElement) {
  var inputs;
  var thisInput;
  var loop;

  if (!startElement) {
  } else {
    startElement = document;
  }

  if (!startElement.getElementsByTagName) return;
  inputs = startElement.getElementsByTagName("a");
  //Go through all the inputs
  for (loop=0;loop<inputs.length;loop++) {
    thisInput = inputs[loop];
    //For all inputs that have a class of claimQty
    if ((' '+thisInput.className+' ').indexOf("linkedData") != -1) {
      if (thisInput.addEventListener) {
        thisInput.addEventListener("click", processLinkedData, 0);
      } else if (thisInput.attachEvent) {
        thisInput.attachEvent("onclick", processLinkedData);
      } else {
        alert("Can't add event in prepareLinkedData");
      }
    }
  }
}

function processLinkedData(e) {
  var theEvent = e || event;
  var theLink = theEvent.srcElement || theEvent.target;
  var loop;
  var count = 0;
  var paramString = "";

  if (theEvent.type == "click") {
    if (theLink.id == '') {
      theLink = getParent(theLink, "a");
    }
    var idArray = theLink.id.split(";");
    var paramCount = idArray.length - 2;

    var span = document.getElementById(idArray[0]);
    for(loop = 1; loop <= paramCount;loop++) {
      count++;
      if (idArray[(count) +1].substring(0, 1) == "@") {
        var theFieldID = idArray[(count) +1].substring(1);
        var theField = document.getElementById(theFieldID);

        var value = theField.value;

        value = value.replace("#", "%23");
        value = value.replace("&", "%26");

        paramString = paramString + "&param" + (count) + "=" + value;
        theField.value = "";
      } else {
        paramString = paramString + "&param" + (count) + "=" + idArray[(count) + 1];
      }
    }

    span.innerHTML = "Updating...";

    xmlString = getpathtoxml() + "?action=xmlFunctionExec&function=" + idArray[1] + "&parameters=" + paramCount + "&linkToSpan=" + idArray[0] + paramString;
    //debug(xmlString,2);
    loadXMLDoc2(xmlString, updateScreen);
  }

  if (theEvent.preventDefault) {
    theEvent.preventDefault();
  } else {
    theEvent.returnValue = false;
    //alert("Warning.  Can't stop default in ie.  use alternate browser if this is bugging you.");
  }
}

function processFunctionExec(e) {
  var theEvent = e || event;
  var theButton = theEvent.srcElement || theEvent.target;
  var loop;
  var count = 0;
  var paramString = "";

  if (theEvent.type == "click") {
    var idArray = theButton.id.split(";");

    if (idArray[0] != 0) {
      if (confirm("Are you sure you want to continue?")) {
      } else {
        debug("Procedure Cancelled");
        return(0);
      }
    }

    var paramCount = idArray.length - 2

    for(loop = 1; loop <= paramCount;loop++) {
      count++;
      paramString = paramString + "&param" + (count) + "=" + idArray[(count) + 1];
    }

    if ((' '+theButton.className+' ').indexOf("refresh") != -1) {
      xmlString = getpathtoxml() + "?action=xmlFunctionExec&refresh=1&function=" + idArray[1] + "&parameters=" + paramCount + paramString;
    } else {
      xmlString = getpathtoxml() + "?action=xmlFunctionExec&function=" + idArray[1] + "&parameters=" + paramCount + paramString;
    }

    //debug(xmlString);

    loadXMLDoc2(xmlString, updateScreen);
  }
}