// COPYRIGHT 2006, OfficeGenius
// PURPOSE : Basic Javascript functions
// AUTHOR  : Steve Neumann
// CREATED : 13-Apr-2006
// MODIFIED: 07-Oct-2006

// CALLING SEQUENCE: var x = new makeObj('id');
function makeObj(name)
{
  if (document.getElementById) {
    this.obj = document.getElementById(name);
    if (this.obj != null) { this.style = this.obj.style; }
  } else if (document.all) {
    this.obj = document.all[name];
    if (this.obj != null) { this.style = this.obj.style; }
  } else if (document.layers) {
    this.obj = document.layers[name];
    this.style = document.layers[name];
  }
}

// RETURN ARRAY OF ALL ELEMENTS WITH A GIVEN CLASSNAME
//    from http://www.dustindiaz.com/top-ten-javascript
function getElementsByClass(searchClass,node,tag)
{
  var classElements = new Array();
  if (node == null) {
    node = document;
  }
  if (tag == null) {
    tag = '*';
  }
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className)) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

// SUBSTITUTE FOR getElementById
// BUT WILL ALSO TAKE MULTIPLE INPUTS AND RETURN AN ARRAY
//    from http://www.dustindiaz.com/top-ten-javascript
function ELM()
{
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string') {
      element = document.getElementById(element);
    }
    if (arguments.length == 1) {
      return element;
    }
    elements[elements.length] = element;
  }
  return elements;
}

// MAKE AN AJAX REQUEST
function xmlhttpPost(url, params, state_change_function) {
  var xmlHttpReq = false;
  var self = this;
  // Mozilla/Safari
  if (window.XMLHttpRequest) {
    self.xmlHttpReq = new XMLHttpRequest();
    //self.xmlHttpReq.overrideMimeType("text/xml");
  }
  // IE
  else if (window.ActiveXObject) {
    self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  self.xmlHttpReq.open('POST', url, true);
  self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  self.xmlHttpReq.onreadystatechange = state_change_function;
  self.xmlHttpReq.send(params);
}

