
function filter(func, array)
{
  var res = new Array(0);
  for (var i=0; i<array.length; i++) {
    if (func(array[i])) res[res.length] = array[i];
  }
  return res;
}

function findNext(func, item)
{
  do {
    item = item.nextSibling;
    if (func(item)) return item;
  } while (item);
  return null; 
}

function hasClass(item, cl) {
  var c = item.className.split(' ');
  for (var i=0; i<c.length; i++)
    if (c[i] == cl) return true;
  return false; 
}



function setClass(item, cl)
{
  if (!item.className) 
    item.className = cl;
  else if (!hasClass(item, cl)) 
    item.className += ' ' + cl;
}

function removeClass(item, cl)
{
  var c = item.className.split(' ');
  var d = new Array(0);
  for (var i=0; i<c.length; i++)
    if (c[i] != cl) d[d.length] = c[i]; 
  item.className = d.join(' ');
}

