var BrowserStyle;

if(navigator.userAgent.toLowerCase().indexOf('opera') >=0) {
  browserStyle = 'opera';
} else if(navigator.userAgent.toLowerCase().indexOf('msie') >=0) {
  browserStyle = 'msie';
} else {
  browserStyle = 'mozilla';
}

var KHTML = false;
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
  KHTML = true;
}

function getElement(id, d) {
  if (!d) d = document;
  if (d.getElementById) {
      return d.getElementById(id);
  }
  if (d.layers && d.layers[id]) {
    return d.layers[id];
  }
  if (d.all && d.all[id]) {
      return d.all[id];
  }
}

var onloadFunctions = new Array();

function registerOnload(theFunc) {
  onloadFunctions.reverse();
  onloadFunctions.unshift(theFunc);
  onloadFunctions.reverse();
}

function executeOnload() {
  var i;
  for (i in onloadFunctions) {
    onloadFunctions[i]();
  }
}


function make_popover(x, y, text) {
  var pop = document.createElement("div");
  pop.className = "popover";
  pop.style.top = y+"px";
  pop.style.left = x+"px";
  pop.innerHTML = text;
  document.body.appendChild(pop);
  return pop;
}


function eventElement(event) {
  return event.target || event.srcElement;
}

function eventIsLeftClick(event) {
  return ((event.which && event.which == 1) || (event.button && event.button == 1));
}

function eventPointerX(event) {
  return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
}

function eventPointerY(event) {
  return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
}

function getElementOffset(el) {
  var top = 0;
  var left = 0;
  do {
      top += el.offsetTop  || 0;
      left += el.offsetLeft || 0;
      el = el.offsetParent;
      if (KHTML && el == document.body && element.style.position == 'absolute') break;
     } while (el);
  return [left, top];
}

/*
Array.grep = Array.prototype.grep = function(f) {
   if(!f.apply) { var propname = f; f = function(_) { return _[propname] } }
   var out = [];
   for(var i = 0; i < this.length; i++) {
     if( f( this[i], this, i)) out.push(this[i]);
   }
   return out;  
 };

Array.from = Array.prototype.from = function(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) {
    return iterable.toArray();
  } else {
    var results = [];
    for (var i = 0; i < iterable.length; i++)
      results.push(iterable[i]);
    return results;
  }
};

*/
