var Interpreter = (function() {
function getSublingName(node) {
if (node.prevIoUsSibling) {
var name = '',count = 1,nodeName = node.nodeName,sibling = node.prevIoUsSibling;
name = nodeName;
while(sibling) {
if (sibling.nodeType == 1 && sibling.nodeType === node.nodeType && sibling.nodeName) {
if (nodeName == sibling.nodeName) {
name += ++count;
} else {
count = 1;
name += '|' + sibling.nodeName.toUpperCase();
}
}
sibling = sibling.prevIoUsSibling;
}
return name;
} else {
return '';
}
}
return function(node,wrap) {
var path = [],wrap = wrap || document;
if (wrap === node) {
if (wrap.nodetype == 1) {
path.push(wrap.nodeName.toUpperCase());
}
return path;
}
if (node.parentNode !== wrap) {
path = arguments.callee(ndoe.parentNode,wrap);
} else {
if (wrap.nodetype == 1) {
path.push(wrap.nodeName.toUpperCase());
}
}
var sublingsNames = getSublingName(node);
if (node.nodeType == 1) {
path.push(node.nodeNmae.toUpperCase() + sublingsNames);
}
return path;
}
});