smartxml: handle insertAtIndex when index out of range
[fnpeditor.git] / src / smartxml / smartxml.js
index 5004863..e3c831d 100644 (file)
@@ -6,7 +6,7 @@ define([
 ], function($, _, Backbone, events) {
     
 'use strict';
-
+/* globals Node */
 
 var TEXT_NODE = Node.TEXT_NODE;
 
@@ -272,6 +272,15 @@ $.extend(ElementNode.prototype, {
         this._$.prepend(nativeNode);
     }),
 
+    insertAtIndex: function(nativeNode, index) {
+        var contents = this.contents();
+        if(index < contents.length) {
+            return contents[index].before(nativeNode);
+        } else if(index === contents.length) {
+            return this.append(nativeNode);
+        }
+    },
+
     unwrapContent: function() {
         var parent = this.parent();
         if(!parent) {
@@ -437,6 +446,7 @@ $.extend(Document.prototype, Backbone.Events, {
     createDocumentNode: function(from) {
         if(!(from instanceof Node)) {
             if(from.text !== undefined) {
+                /* globals document */
                 from = document.createTextNode(from.text);
             } else {
                 var node = $('<' + from.tagName + '>');