
/* - nodeutilities.js - */
// http://www.aktion.com/portal_javascripts/nodeutilities.js?original=1
function wrapNode(node,wrappertype,wrapperclass){jQuery(node).wrap('<'+wrappertype+'>').parent().addClass(wrapperclass)};
function nodeContained(innernode,outernode){return jQuery(innernode).parents().filter(function(){return this==outernode}).length>0};
function findContainer(node,func){p=jQuery(node).parents().filter(func);return p.length?p.get(0):false};
function hasClassName(node,class_name){return jQuery(node).hasClass(class_name)};
function addClassName(node,class_name){jQuery(node).addClass(class_name)};
function removeClassName(node,class_name){jQuery(node).removeClass(class_name)};
function replaceClassName(node,old_class,new_class,ignore_missing){if(ignore_missing||jQuery(node).hasClass(old_class))
jQuery(node).removeClass(old_class).addClass(new_class)};
function walkTextNodes(node,func,data){jQuery(node).find('*').andSelf().contents().each(function(){if(this.nodeType==3) func(this,data)})};
function getInnerTextCompatible(node){return jQuery(node).text()};
function getInnerTextFast(node){return jQuery(node).text()};
function sortNodes(nodes,fetch_func,cmp_func){var SortNodeWrapper=function(node){this.value=fetch_func(node);this.cloned_node=node.cloneNode(true)}
SortNodeWrapper.prototype.toString=function(){return this.value.toString?this.value.toString():this.value}
var items=jQuery(nodes).map(function(){return new SortNodeWrapper(this)});if(cmp_func) items.sort(cmp_func);else items.sort();jQuery.each(items, function(i){jQuery(nodes[i]).replace(this.cloned_node)})};
function copyChildNodes(srcNode,dstNode){jQuery(srcNode).children().clone().appendTo(jQuery(dstNode))}


