/* Copyright © 2011-2012 by Neil Jenkins. Licensed under the MIT license. */(function(a){Array.prototype.indexOf=function(a,b){var c=this.length;for(var d=b<0?Math.max(0,c+b):b||0;d>>0;if(typeof a!="function")throw new TypeError;for(var d=0;dj?1:0;k=g;while(l=k.parentNode){if(l===i)return a.call(l.childNodes,k)i.sourceIndex?1:0}},document.createRange=function(){return new Range};var h=function(a,b){return a===b||f(a,b)},i=function(a){var b=a.nodeType;return b===3||b===4||b===8},j=function(a,b){this.node=a,this.offset=b},k=function(a){var b=a.parentElement(),c,d,e,f;return c=a.duplicate(),c.collapse(!0),d=c.parentElement(),c=a.duplicate(),c.collapse(!1),e=c.parentElement(),f=d===e?d:g(d,e),f===b?f:g(b,f)},l=function(b,c,d,e){var f=b.duplicate();f.collapse(d);var g=f.parentElement();h(c,g)||(g=c);if(!g.canHaveHTML)return new j(g.parentNode,a.call(g.parentNode.childNodes,g));var k=document.createElement("span"),l=d?"StartToStart":"StartToEnd",m,n,o,p,q;do g.insertBefore(k,k.previousSibling),f.moveToElementText(k),m=f.compareEndPoints(l,b);while(m>0&&k.previousSibling);q=k.nextSibling;if(m===-1&&q&&i(q)){f.setEndPoint(d?"EndToStart":"EndToEnd",b);var r;if(/[\r\n]/.test(q.data)||/[\r\n]/.test(f.text)){var s=f.duplicate(),t=s.text.replace(/\r\n/g,"\r").length;r=s.moveStart("character",t);while((m=s.compareEndPoints("StartToEnd",s))===-1)r+=1,s.moveStart("character",1)}else r=f.text.length;p=new j(q,r)}else n=(e||!d)&&k.previousSibling,o=(e||d)&&k.nextSibling,o&&i(o)?p=new j(o,0):n&&i(n)?(n.data,p=new j(n,n.length)):p=new j(g,a.call(g.childNodes,k));return k.parentNode.removeChild(k),p},m=function(a,b){var c,d,e=a.offset,f=document,g,h,j=f.body.createTextRange(),k=i(a.node);return k?(c=a.node,d=c.parentNode):(h=a.node.childNodes,c=e