/* Get Elements Javascript Functions
Copyright 2007 Andrew Beaumont (andrew.beaumont@essentialit.com)

As free software, this program may be redistributed and/or
modified with the intention of having some use for web
development, but comes with no warranty of any sort. */

function getElements(path)
{

var p = new Array();
var d = new Array(new Array(document.body));
var e = new Array();
var dd;
var i, j;
var o;
if (path.indexOf(' ') > 0)
	p = path.split(' ');
else
	p = new Array(path);
for (i=0;i<p.length;i++) {
	if (p[i].indexOf('#') > -1)
		p[i] = new Array('#',p[i].substr(1));
	else if (p[i].indexOf('.') > -1) {
		p[i] = p[i].split('.');
		p[i].unshift('.');
	} else
		p[i] = new Array('',p[i]);
}
while (p.length > 0) {
	for (i=0;i<d[0].length;i++) {
  		if (p[0][0] != '#') {
  			switch (p[0][1]) {
  				case '': dd = d[0][i].childNodes; break;
  				default: dd = d[0][i].getElementsByTagName(p[0][1]);
			}
			if (dd.length < 1) {
				d[0].splice(i,1);
				i--;
			} else {
				d[0][i] = new Array();
				for (j=0;j<dd.length;j++) {
					o = true;
					if (p[0][0] == '.') {
						if (dd[j].className != p[0][2])
							o = false;
					}
					if (o)
						d[0][i].push(dd[j]);
				}
			}
		} else if (i < 1) {
			dd = d[0][0].getElementById(p[0][1]);
			d[0][0] = new Array(dd);
		}
	}
	d = d[0];
	p.shift();
}
for (i=0;i<d.length;i++) {
	for (j=0;j<d[i].length;j++) {
		e.push(d[i][j]);
	}
}
return e;

}