// JavaScript Document

/**
* Get arrays matching a CSS-Style search query
* @param string e The CSS search query
* @param element elem A specific element to search within (defaults to document.body)
* @return array The found elements matching the query
*/
document.getElements = function(e, elem) {
if (!e || !e.length || e.length == 0)
return [];
var store = [elem||document.body];
var store_t = [];
e = e.split(" ");
for (var i=0; i<e.length; i++) {
var r = {
id: "",
tag: "*",
clas:[]
};
var c, s, t=e[i];
while (t.length > 0) {
s = t.search(/.[#\.]/) + 1 || t.length;
c = t.substr(0, s);

if (c.substr(0, 1) == "#") r.id = c.substr(1);
else if (c.substr(0, 1) == ".") r.clas.push(c.substr(1));
else r.tag = c;

t = t.substr(s);
}
while (store.length > 0) {
var curr = [], temp = store.shift().getElementsByTagName(r.tag);
for (var j=0; j<temp.length; j++) {
curr.push(temp[j]);
}
while (curr.length > 0) {
var ok = true, ce = curr.shift();
if (r.id && ce.id!=r.id) ok = false;
for (j=0; j<r.clas.length; j++) {
if ((" "+ce.className+" ").indexOf(" "+r.clas[j]+" ") == -1) {
ok = false;
break;
}
}
if (ok) store_t.push(ce);
}
}
store = store_t;
store_t = [];
}
return store;
};
