function toggle(obj) {
    var el = this.$(obj);
    if ( el.style.display != 'none' ) {
        el.style.display = 'none';
    }
    else {
        el.style.display = '';
    }
}

function $() {
    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.push(element);
    }
    return elements;
}

///////////////////////////////////////////////////////////

var ElementUtil = new Object();
var moz = ((document.all)? false : true);
var ie = ((document.all)? true : false);

ElementUtil.getElementPosition = function(elt){
  var position = new Object();    
  if(elt.style.position == "absolute") {
    position.left = parseInt(elt.style.left);
    position.top = parseInt(elt.style.top);
  }
  else {
    position.left = ElementUtil.calcPosition(elt, "Left");      
    position.top = ElementUtil.calcPosition(elt, "Top");      
  }  
  return position;
}

ElementUtil.calcPosition = function(elt, dir){
    var tmpElt = elt;
    var pos = parseInt(tmpElt["offset" + dir]);
    while(tmpElt.tagName != "BODY") {
        tmpElt = tmpElt.offsetParent;
        pos += parseInt(tmpElt["offset" + dir]);
    }
    return pos;
}

ElementUtil.getElementDimension = function(elt) {
  var dim = new Object();
  dim.width = elt.offsetWidth;
  dim.height = elt.offsetHeight;
  return dim;
}    

ElementUtil.addEventListener = function(o, type, handler) {
  if(ie) {
    o.attachEvent("on" + type, handler);
  }
  else if(moz) {
    o.addEventListener(type, handler, false);
  }
}

ElementUtil.removeEventListener = function(o, type, handler) {
  if(ie) {
    o.detachEvent("on" + type, handler);
  }
  else if(moz) {
    o.removeEventListener(type, handler, false);
  }
}

///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}



