Roo.lib.Selection = function() { };
Roo.lib.Selection.wrap = function(r, doc) {
Roo.apply(r, Roo.lib.Selection.prototype);
r.ownerDocument = doc; return r;
};
Roo.apply(Roo.lib.Selection.prototype,
{
ownerDocument : false,
getRangeAt : function(n)
{
return Roo.lib.Range.wrap(Selection.prototype.getRangeAt.call(this,n));
},
insertNode: function(node, cursor)
{
if (typeof(node) == 'string') {
node = this.ownerDocument.createElement(node);
if (cursor == 'in') {
node.innerHTML = ' ';
}
}
var range = this.getRangeAt(0);
if (this.type != 'Caret') {
range.deleteContents();
}
var sn = node.childNodes[0]; range.insertNode(node);
if (cursor == 'after') {
node.insertAdjacentHTML('afterend', ' ');
sn = node.nextSibling;
}
if (cursor == 'none') {
return;
}
this.cursorText(sn);
},
cursorText : function(n)
{
range = Roo.lib.Range.wrap(new Range());
var ix = Array.from(n.parentNode.childNodes).indexOf(n);
range.setStart(n.parentNode,ix);
range.setEnd(n.parentNode,ix+1);
this.removeAllRanges();
this.addRange(range);
Roo.log([n, range, this,this.baseOffset,this.extentOffset, this.type]);
},
cursorAfter : function(n)
{
if (!n.nextSibling || n.nextSibling.nodeValue != ' ') {
n.insertAdjacentHTML('afterend', ' ');
}
this.cursorText (n.nextSibling);
}
});