function _callback(obj, fn) 
{ 
  var callbackArgs = [];
  if (arguments.length > 2) {
    for (i = 2; i < arguments.length; i++) callbackArgs[i-2] = arguments[i];
  }

  return function() { 
    var args = []; 
    if (arguments.length > 0) {
      for (i = 0; i < arguments.length; i++) args[i] = arguments[i];
    }
    fn.apply(obj, callbackArgs.concat(args)); 
  }; 
}

function lz(number)
{
  return (number < 10?"0"+number:number);
}

function switchFieldset ( id )
{
  /*
  var invisible = ($(id).hasClass('invisible'));
  var legend = $(id).getElement('legend'); 
  var img = legend.getElement('img');
  var div = $(id).getElement('div');

  img.src = (invisible?img.src.replace("plus","min"):img.src.replace("min","plus"));
  if (invisible) {
    $(id).removeClass('invisible');
    div.style.display = "";
  } else {
    $(id).addClass('invisible');
    div.style.display = "none";
  }
  */
  var invisible = ($(id).hasClass('invisible'));
  var legend = $(id).getElement('legend'); 
  var img = legend.getElement('img');
  var content = $(id).getElement('div');

  img.removeClass( !invisible?"min":"plus" );
  img.addClass( !invisible?"plus":"min" );
  
  if (invisible) {
    $(id).removeClass('invisible');
    content.style.display = "";
  } else {
    $(id).addClass('invisible');
    content.style.display = "none";
  } 
   
}


function attachEvent(el, ev, hl) 
{
  if (el.addEventListener) {
    el.addEventListener(ev, hl, false);
  } else if (el.attachEvent) {
    el.attachEvent('on' + ev, hl);
  } else {
    if (typeof el[ev = 'on' + ev] == 'function') {
      var origFunc = el[ev]; el[ev] = function(e) {
        origFunc(e); hl(e);
      };
    } else el[ev] = hl;
  }
}

