if(dojo.isIE && key == "href"){ value = value.replace(/%20/g, " ").replace(/%7B/g, "{").replace(/%7D/g, "}").replace(/%25/g, "%"); } 
	tokenize: function(/*Node*/ node, /*Array?*/ tokens, /*Array?*/ preNodes, /*Array?*/ postNodes){		tokens = tokens || [];		var first = !tokens.length;		var types = this.types;		var children = [];		for(var i = 0, child; child = node.childNodes[i]; i++){			children.push(child);		}		if(preNodes){			for(var i = 0, child; child = preNodes[i]; i++){				this._tokenize(node, child, tokens);			}		}		tokens.push([types.elem, node]);		tokens.push([types.change, node]);		for(var key in this._attributes){			var value = "";			if(key == "class"){				value = node.className || value;			}else if(key == "for"){				value = node.htmlFor || value;			}else if(node.getAttribute){;				value = node.getAttribute(key, 2) || value;			}			if(typeof value == "function"){				value = value.toString().replace(this._re4, "$1");			}			if(typeof value == "string" && (value.indexOf("{%") != -1 || value.indexOf("{{") != -1 || (value && dojox.dtl.text.getTag("attr:" + key, true)))){				tokens.push([types.attr, node, key, value]);			}		}		if(!children.length){			tokens.push([types.change, node.parentNode, true]);			if(postNodes){				for(var i = 0, child; child = postNodes[i]; i++){					this._tokenize(node, child, tokens);				}			}			return tokens;		}		for(var i = 0, child; child = children[i]; i++){			this._tokenize(node, child, tokens);		}		if(node.parentNode && node.parentNode.tagName){			tokens.push([types.change, node.parentNode, true]);			node.parentNode.removeChild(node);		}				if(postNodes){			for(var i = 0, child; child = postNodes[i]; i++){				this._tokenize(node, child, tokens);			}		}		if(first){			tokens.push([types.change, node, true]);		}		return tokens;	},
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/2d427979aeb12f05675b5efbdf75cbb1a360b94a/html.js/buggy/dtl/html.js