/*
	Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.NodeList-traverse"]){
dojo._hasResource["dojo.NodeList-traverse"]=true;
dojo.provide("dojo.NodeList-traverse");
dojo.extend(dojo.NodeList,{_buildArrayFromCallback:function(_1){
var _2=[];
for(var i=0;i<this.length;i++){
var _3=_1.call(this[i],this[i],_2);
if(_3){
_2=_2.concat(_3);
}
}
return _2;
},_filterQueryResult:function(_4,_5){
var _6=dojo.filter(_4,function(_7){
return dojo.query(_5,_7.parentNode).indexOf(_7)!=-1;
});
var _8=this._wrap(_6);
return _8;
},_getUniqueAsNodeList:function(_9){
var _a=[];
for(var i=0,_b;_b=_9[i];i++){
if(_b.nodeType==1&&dojo.indexOf(_a,_b)==-1){
_a.push(_b);
}
}
return this._wrap(_a,null,this._NodeListCtor);
},_getUniqueNodeListWithParent:function(_c,_d){
var _e=this._getUniqueAsNodeList(_c);
_e=(_d?this._filterQueryResult(_e,_d):_e);
return _e._stash(this);
},_getRelatedUniqueNodes:function(_f,_10){
return this._getUniqueNodeListWithParent(this._buildArrayFromCallback(_10),_f);
},children:function(_11){
return this._getRelatedUniqueNodes(_11,function(_12,ary){
return dojo._toArray(_12.childNodes);
});
},closest:function(_13){
var _14=this;
return this._getRelatedUniqueNodes(_13,function(_15,ary){
do{
if(_14._filterQueryResult([_15],_13).length){
return _15;
}
}while((_15=_15.parentNode)&&_15.nodeType==1);
return null;
});
},parent:function(_16){
return this._getRelatedUniqueNodes(_16,function(_17,ary){
return _17.parentNode;
});
},parents:function(_18){
return this._getRelatedUniqueNodes(_18,function(_19,ary){
var _1a=[];
while(_19.parentNode){
_19=_19.parentNode;
_1a.push(_19);
}
return _1a;
});
},siblings:function(_1b){
return this._getRelatedUniqueNodes(_1b,function(_1c,ary){
var _1d=[];
var _1e=(_1c.parentNode&&_1c.parentNode.childNodes);
for(var i=0;i<_1e.length;i++){
if(_1e[i]!=_1c){
_1d.push(_1e[i]);
}
}
return _1d;
});
},next:function(_1f){
return this._getRelatedUniqueNodes(_1f,function(_20,ary){
var _21=_20.nextSibling;
while(_21&&_21.nodeType!=1){
_21=_21.nextSibling;
}
return _21;
});
},nextAll:function(_22){
return this._getRelatedUniqueNodes(_22,function(_23,ary){
var _24=[];
var _25=_23;
while((_25=_25.nextSibling)){
if(_25.nodeType==1){
_24.push(_25);
}
}
return _24;
});
},prev:function(_26){
return this._getRelatedUniqueNodes(_26,function(_27,ary){
var _28=_27.previousSibling;
while(_28&&_28.nodeType!=1){
_28=_28.previousSibling;
}
return _28;
});
},prevAll:function(_29){
return this._getRelatedUniqueNodes(_29,function(_2a,ary){
var _2b=[];
var _2c=_2a;
while((_2c=_2c.previousSibling)){
if(_2c.nodeType==1){
_2b.push(_2c);
}
}
return _2b;
});
},andSelf:function(){
return this.concat(this._parent);
},first:function(){
return this._wrap(((this[0]&&[this[0]])||[]),this);
},last:function(){
return this._wrap((this.length?[this[this.length-1]]:[]),this);
},even:function(){
return this.filter(function(_2d,i){
return i%2!=0;
});
},odd:function(){
return this.filter(function(_2e,i){
return i%2==0;
});
}});
}
