function getUrlVars()
{
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
	for(var i = 0; i < hashes.length; i++)
	{
	hash = hashes[i].split('=');
	vars.push(hash[0]);
	vars[hash[0]] = hash[1];
	}
 
	return vars;
}

function getRealChildren(element)
{
  var children = new Array();
  var count = 0;

//commented section doesn't work in Safari
/*  for(var child in element.childNodes)
  {
    if(typeof(element.childNodes[child].tagName)!='undefined')
    {
      children[count] = element.childNodes[child];
      count++;
    }
  }*/

  var clength = element.childNodes.length;

  for(var i=0;i<clength;i++)
  {
    if(typeof(element.childNodes[i].tagName)!='undefined')
    {
      children[count] = element.childNodes[i];
      count++;
    }
  }      

  return children;
}

function findPosition(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function getElementsByClassName(class_name)
{
  var all_elements = document.getElementsByTagName('*');
  var els = new Array();

  for(var i=0; i<all_elements.length; i++)
  {
    el = all_elements[i];
    classes = el.className.split(' ');
    for(var j=0;j<classes.length && classes[j]!='';j++)
    {
        if(classes[j]==class_name)
        {
            els.push(el);
            break;
        }
    }
  }
  return els;
}

