var WebthitethSelectors = function() {};;
WebthitethSelectors.innerAttr = function () {
var attr = arguments[0];
var val = false;
if (arguments[1] !== undefined)
{val = arguments[1];
} else {
val = ":unused";
}

 return function (node) {
 return function() {if ((! (val !== false)) !== false) {
 return (WebthitethJs.definedP (node.hasAttribute) !== false && node.hasAttribute (attr) !== false);;
}  else if (true !== false) {
 return (val === function() {if (WebthitethJs.definedP (node.getAttribute) !== false) {
 return node.getAttribute (attr);;
}  else { return false; }}());;
}  else { return false; }}();
};
};
;
WebthitethSelectors.id = function (id) {
 return function (node) {
 return (id === node.id);
};
};
;
WebthitethSelectors.critAnd = function () {
var parts = arguments.length > 0 &&  Array.prototype.slice.call(arguments).slice(0);

 return function (node) {
 return function (func, lsts) {
  lengths=[];
  for(var idx = 0 ; idx < lsts.length ; idx++) {
    lengths[idx] = lsts[idx].length;
  }
  var min = Math.min.apply(window, lengths);
  for(var idx = 0 ; idx < min ; idx++) {
    var args = [];
    for(var lidx = 0 ; lidx < lsts.length ; lidx++) {
      args[lidx] = lsts[lidx][idx];
    }
    if(func.apply(window, args) === false) {
      return false;
    }
  }
  return true; }(function (part) {
 return part (node);
}, [parts]);
};
};
;
WebthitethSelectors.critOr = function () {
var parts = arguments.length > 0 &&  Array.prototype.slice.call(arguments).slice(0);

 return function (node) {
 return CommonLisp.findIf (function (part) {
 return part (node);
},parts);
};
};
;
WebthitethSelectors.critNot = function (part) {
 return function (node) {
 return (! (part (node) !== false));
};
};
;
WebthitethSelectors.cname = function (cname) {
 return function (node) {
 return (cname === node.className);
};
};
;
WebthitethSelectors.fname = function (fname) {
 return function (node) {
 return (fname === node.name);
};
};
;
WebthitethSelectors.innerElemType = function (elemType) {
 return function (node) {
 return (node.nodeName.toLowerCase() === elemType.toLowerCase());
};
};
;
WebthitethSelectors.innerSearch = function () {
var node = arguments[0];
var criteria = arguments[1];
var dontIncludeNode = false;
if (arguments[2] !== undefined)
{dontIncludeNode = arguments[2];
} else {
dontIncludeNode = false;
}

 return function() {if (criteria !== false) {
 return function() {if (((! (dontIncludeNode !== false)) !== false && function(lst){return lst && lst.length > 0 && lst[0];}(criteria) (node) !== false) !== false) {
 return function() {if ((1 === (criteria || []).length) !== false) {
 return [node];;
}  else if (true !== false) {
 return CommonLisp.append.apply(window, function() {var __WEBTHITETH_SAFE__G515 = new Array();
var __WEBTHITETH_SAFE__G514 = function (child) {
 return WebthitethSelectors.innerSearch (child,function(lst){ return lst && lst.length > 1 && lst.slice(1); }(criteria));
};
var __WEBTHITETH_SAFE__G516 = node.childNodes;
for (var __WEBTHITETH_SAFE__G517 = 0 ; __WEBTHITETH_SAFE__G517 < __WEBTHITETH_SAFE__G516.length  ; __WEBTHITETH_SAFE__G517++ ) {
 __WEBTHITETH_SAFE__G515[__WEBTHITETH_SAFE__G517] = __WEBTHITETH_SAFE__G514(__WEBTHITETH_SAFE__G516[__WEBTHITETH_SAFE__G517]);
}
return __WEBTHITETH_SAFE__G515;}());;
}  else { return false; }}();;
}  else if (true !== false) {
 return CommonLisp.append.apply(window, function() {var __WEBTHITETH_SAFE__G519 = new Array();
var __WEBTHITETH_SAFE__G518 = function (child) {
 return WebthitethSelectors.innerSearch (child,criteria);
};
var __WEBTHITETH_SAFE__G520 = node.childNodes;
for (var __WEBTHITETH_SAFE__G521 = 0 ; __WEBTHITETH_SAFE__G521 < __WEBTHITETH_SAFE__G520.length  ; __WEBTHITETH_SAFE__G521++ ) {
 __WEBTHITETH_SAFE__G519[__WEBTHITETH_SAFE__G521] = __WEBTHITETH_SAFE__G518(__WEBTHITETH_SAFE__G520[__WEBTHITETH_SAFE__G521]);
}
return __WEBTHITETH_SAFE__G519;}());;
}  else { return false; }}();;
}  else { return false; }}();
};
;
WebthitethSelectors.innerSelect = function (node,criteria) {
 return function() {
var allMatches = WebthitethSelectors.innerSearch (node,criteria,true);
 return function() {if ((1 === (allMatches || []).length) !== false) {
 return function(lst){return lst && lst.length > 0 && lst[0];}(allMatches);;
}  else if (true !== false) {
 return allMatches;;
}  else { return false; }}();}();
};
;
WebthitethSelectors.select = function () {
var node = arguments[0];
var criteria = arguments.length > 1 &&  Array.prototype.slice.call(arguments).slice(1);

 return WebthitethSelectors.innerSelect (node,criteria);
};
;
WebthitethSelectors.selectAsList = function () {
var node = arguments[0];
var criteria = arguments.length > 1 &&  Array.prototype.slice.call(arguments).slice(1);

 return WebthitethSelectors.innerSearch (node,criteria,true);
};
;
WebthitethSelectors.domSelect = function () {
var criteria = arguments.length > 0 &&  Array.prototype.slice.call(arguments).slice(0);

 return WebthitethSelectors.innerSelect (document.body,criteria);
};
;
WebthitethSelectors.domSelectAsList = function () {
var criteria = arguments.length > 0 &&  Array.prototype.slice.call(arguments).slice(0);

 return WebthitethSelectors.innerSearch (document.body,criteria,true);
};
;
