var parchment_indent=new Class({initialize:function(b,a){this.parch=b;this.placement=a;this.outdentBtn=new Element("a",{"class":"parchment_btn_outdent disabled",href:"#"}).addEvent("click",function(d){var c=new Event(d).stop();if(this.outdentBtn.hasClass("disabled")){return false}this.createOutdent();this.outdentBtn.addClass("disabled")}.bind(this)).inject(this.placement,"after").setProperty("title","Outdent");this.indentBtn=new Element("a",{"class":"parchment_btn_indent disabled",href:"#"}).addEvent("click",function(d){var c=new Event(d).stop();if(this.indentBtn.hasClass("disabled")){return false}this.createIndent();this.indentBtn.addClass("disabled")}.bind(this)).inject(this.outdentBtn,"after").setProperty("title","Indent");this.parch.addEvent("parchmentToolbarButtonsStatuts",function(d,f,e,c){this.toolbarButtonStatus(d,f,e,c)}.bind(this))},getIndent:function(b){var a=false;while(b){if(b.getTag()=="div"&&b.getStyle("margin-left").toInt()==40){a=b;break}b=b.getParent()}return a},nestedList:function(b){var a=b.getParent().getParent();if(a&&["ol","ul"].contains(a.getTag())){return true}return false},toolbarButtonStatus:function(c,e,d,b){if(c.getTag()=="li"){if(this.nestedList(c)){this.outdentBtn.removeClass("disabled");this.indentBtn.removeClass("disabled")}else{this.outdentBtn.addClass("disabled");this.indentBtn.removeClass("disabled")}}else{if(!["html","body"].contains(c.getTag())){var a=this.getIndent(c);if(a){this.outdentBtn.removeClass("disabled");this.indentBtn.addClass("disabled")}else{this.outdentBtn.addClass("disabled");this.indentBtn.removeClass("disabled")}}else{this.outdentBtn.addClass("disabled");this.indentBtn.removeClass("disabled")}}},createOutdent:function(){var d=false;if(Browser.Engine.trident){var a=this.parch.getRange();var c=this.parch.getCommonAncestor(a)}else{var f=this.parch.getSelectionObject();var a=this.parch.getRangeObject(f);a.startContainer.nodeType==3?node=a.startContainer.parentNode:node=a.startContainer;var c=$(node)}var b=$(c).getParents();var e=false;b.each(function(h){if(e){return}if(h.getTag()=="ol"||h.getTag()=="ul"){this.outdentList(c,h);e=true}else{if(h.getStyle("margin-left").toInt()==40){var g=h.innerHTML;this.parch.selectNode(h,true);this.parch.insertHTML(g);e=true}}}.bind(this))},createIndent:function(){if(Browser.Engine.trident){var b=this.parch.getSelectionObject();var h=this.parch.getRange();var d=this.parch.getCommonAncestor(h);if(d.getTag()=="li"){var l=this.getWrapTag(d);this.indentList(d,l)}else{var g='<div class="js-item-cage" style="margin-left:40px">'+b.htmlText+"</div>";this.parch.insertHTML(g);return}}else{var b=this.parch.getSelectionObject();var h=this.parch.getRangeObject(b);var d=$(h.startContainer);var i=$(h.endContainer);var l=this.getWrapTag(d);if(l=="div"){var e=d.previousSibling;while(e){var k=e.nodeType;if(k==1&&["a","span"].contains($(e).getTag())||k==3&&e.nodeValue!=""){d=e;e=e.previousSibling}else{break}}var f=i.nextSibling;while(f){var k=f.nodeType;if(k==1&&["a","span"].contains($(f).getTag())||k==3&&f.nodeValue!=""){i=f;f=f.nextSibling}else{break}}if(Browser.Engine.webkit){var c=this.parch.getSelection();c.setBaseAndExtent(d,0,i,i.length)}h.setStart(d,0);h.setEnd(i,i.length);var a=this.parch.doc.createElement("span");a.appendChild(h.cloneContents());var j='<div  class="js-item-cage" style="margin-left:40px">'+a.innerHTML+"</div>";this.parch.insertHTML(j)}else{this.indentList(d,l)}}},getWrapTag:function(b){var c="div",d=false;var a=b.nodeType==1?$(b).getParents():$(b.parentNode).getParents();a.each(function(e){if(d){return}if(e.getTag()=="ul"){c="ul";d=true}else{if(e.getTag()=="ol"){c="ol";d=true}}}.bind(this));return c},outdentList:function(b,a){a.getTag()=="ul"?wrapTag="ul":wrapTag="ol";var i=b.nodeType==1?$(b).getParents():$(b.parentNode).getParents();var j=this.getLi(b);j.addClass("parchment-list");var d=false;i.each(function(l){if(l.getTag()=="ol"||l.getTag()=="ul"){d=l}});var g=this.parch.doc.createElement("span");g.innerHTML="<"+d.getTag()+">"+d.innerHTML+"</"+d.getTag()+">";var j=$(g).getElement(".parchment-list");if(j.getParent().getFirst()==j){j.getParent().parentNode.insertBefore(j,j.getParent())}else{if(j.getParent().getLast()==j){var e=j.getParent();e.parentNode.insertBefore(j,e);e.parentNode.insertBefore(e,j)}else{var h=j.getParent();var f=this.parch.doc.createElement(wrapTag);var k=false;j.getParent().getChildren().each(function(l){if(k){f.appendChild(l)}if(j==l){k=true}});h.parentNode.insertBefore(j,h);h.parentNode.insertBefore(h,j);j.parentNode.insertBefore(f,j);f.parentNode.insertBefore(j,f)}}if(wrapTag=="ul"){g.getElements("ul").each(function(l){l.addClass("plain-list")})}this.parch.selectNode(d,true);this.parch.insertHTML(g.innerHTML);var c=this.parch.body.getElement(".parchment-list").removeClass("parchment-list");this.parch.setCaret(c,"bottom");this.parch.body.getElements("li").each(function(l){l.removeClass("parchment-list")})},indentList:function(a,k){var i=a.nodeType==1?$(a).getParents():$(a.parentNode).getParents();var l=this.getLi(a);l.addClass("parchment-list");var f=false;i.each(function(m){if(m.getTag()=="ol"||m.getTag()=="ul"){f=m}});var h=this.parch.doc.createElement("span");h.innerHTML="<"+f.getTag()+">"+f.innerHTML+"</"+f.getTag()+">";var l=$(h).getElement(".parchment-list");var g=l.getParent();var b=["ul","ol"];var j=this.parch.doc.createElement(k);l.parentNode.insertBefore(j,l);j.appendChild(l);var d=$(j).getPrevious();if(d&&d.getTag()==j.getTag()){j.getChildren().each(function(m){d.appendChild(m)});j.parentNode.removeChild(j);j=d}var e=$(j).getNext();if(e&&e.getTag()==j.getTag()){e.getChildren().each(function(m){j.appendChild(m)});e.parentNode.removeChild(e)}if(k=="ul"){h.getElements("ul").each(function(m){m.addClass("plain-list")})}this.parch.selectNode(f,true);this.parch.insertHTML(h.innerHTML);var c=this.parch.body.getElement(".parchment-list").removeClass("parchment-list");this.parch.setCaret(c,"bottom");this.parch.body.getElements("li").each(function(m){m.removeClass("parchment-list")})},getLi:function(b){var a=false;if(b.nodeType==1&&b.getTag()=="li"){a=$(b)}else{if($(b.parentNode).getTag()=="li"){a=$(b.parentNode)}else{var c=false;parents.each(function(d){if(c){return}if(d.getTag()=="li"){a=d;c=true}}.bind(this))}}return a}});