﻿// JScript File

function walk(o,fn) {
	for(var n=o.firstChild;n;n=n.nextSibling)
		fn(n);
}

function domWalk(o,fn,sel) {
	if (!sel||sel(o))
		fn(o);				
	if(o.hasChildNodes()) {
		for(var n=o.firstChild;n;n=n.nextSibling)
			domWalk(n,fn,sel);
	}
}


//domWalk(document,function(o) {alert(o.nodeName);},function(o) {return o.className&&o.className.indexOf("myclass")!=-1;});

function domTrace(o,fn) {//walk parent nodes
	return fn(o) && o.parentNode && domTrace(o.parentNode,fn,sel);
}

//Object.prototype.walk=function(fn) {walk(this,fn);}
//Element.prototype.trace=function(fn) {return domTrace(this,fn);}
