Parchment.Plugins.Image={type:"button",attributes_whitelist:{div:{"class":/js-item-cage|wiki-img-(super|screen|medium|small|middle|thumb|right|left|center)|side-title|gallery-insert|item-caption/,rel:/image|galleries|images/,id:/\d+/},img:{id:/\d+/,src:/\.*/,alt:/\.*/}},init:function(){document.addEvent("parchmentready",this.parchmentready.bind(this));this.parchment.editor.addEvents({beforeclean:this.beforeclean.bind(this),'click:relay(.js-item-cage[rel="image"] img)':function(f,e){var a=this.parchment.getSelectionObject(),d=this.parchment.getRangeObject(a),c=e.getParents(".js-item-cage")[0],b=c.getElement(".item-caption")||new Element("div",{"class":"item-caption"}).inject(c.getElement("> div > div"));d.selectNode(b);a.removeAllRanges();a.addRange(d)}.bind(this),'click:relay(.js-item-cage[rel="galleries"] img)':function(f,e){var a=this.parchment.getSelectionObject(),d=this.parchment.getRangeObject(a),c=e.getParents(".js-item-cage")[0],b=c.getElement(".side-title")||new Element("div",{"class":"side-title"}).inject(c,"top");d.selectNode(b);a.removeAllRanges();a.addRange(d)}.bind(this),keypress:function(f){var b=this.parchment.getSelectionObject(),d=this.parchment.getRangeObject(b),a=d.commonAncestorContainer,e,c;a=a.nodeType==Node.TEXT_NODE?a.parentNode:a;cage=a.hasClass("js-item-cage")?a:a.getParents(".js-item-cage");if(typeOf(cage)=="elements"){if(cage.length===0){return}else{cage=cage[0]}}switch(cage.get("rel")){case"image":e="item-caption";break;case"galleries":e="side-title";break;default:return}if(a.hasClass(e)){return}c=cage.getElement("."+e);if(!c){c=new Element("div",{"class":e,html:"&nbsp;"});if(cage.get("rel")=="image"){c.inject(cage.getElement("> div > div"))}else{c.inject(cage,"top")}}d.setStart(c,0);d.setEnd(c,0);b.removeAllRanges();b.addRange(d)}.bind(this)});this.buildGalleryToolbar()},buildImageToolbar:function(){var d,c=[],a=[],b=["left","center","right","up","down"];if(this.parchment.options.toolbar=="wikid"){delete this.sizes.large}Object.each(this.sizes,function(f,e){c.push({text:e.charAt(0).toUpperCase(),command:e})});if(this.parchment.options.toolbar=="wikid"){b.erase("center")}b.each(function(e){a.push({text:e.charAt(0).toUpperCase(),command:e})});d={size:c,position:a,change:[{text:"caption",command:"caption"},{text:"remove",command:"remove"}]};this.toolbar=new Parchment.Utils.Toolbar(this.parchment.editor,{"class":"image",relay:'.js-item-cage[rel="image"]',display:d});this.toolbar.addEvents({showtoolbar:function(e){this.setImageToolbarPosition(e);this.setImageToolbarButtons(e)}.bind(this),command:this.imageCommand.bind(this)})},buildGalleryToolbar:function(){var c,a=[],b=["up","down"];if(this.parchment.options.toolbar=="wikid"){b.erase("center")}b.each(function(d){a.push({text:d.charAt(0).toUpperCase(),command:d})});c={position:a,change:[{text:"caption",command:"caption"},{text:"remove",command:"remove"}]};this.gallery_toolbar=new Parchment.Utils.Toolbar(this.parchment.editor,{"class":"gallery",relay:'.js-item-cage[rel="galleries"], .js-item-cage[rel="images"]',display:c});this.gallery_toolbar.addEvents({command:this.galleryCommand.bind(this)})},setImageToolbarPosition:function(b){var c=this.parchment.editor.getCoordinates(),a=b.getElement(".wiki-img-left")?"left":b.getElement(".wiki-img-right")?"right":"center",d=false;switch(a){case"left":d=c.left;break;case"right":d=c.left+c.width-this.toolbar.toolbar.getCoordinates().width;break;default:break}if(d){this.toolbar.toolbar.setStyle("left",d)}},setImageToolbarButtons:function(b){var d=b.getFirst().getCoordinates(),a=b.getElement(".wiki-img-left")?"left":b.getElement(".wiki-img-right")?"right":"center",c=false;Object.each(this.sizes,function(f,e){if(b.getElement(".wiki-img-"+f)){c=e}});this.toolbar.toolbar.getElements("button").removeClass("on");this.toolbar.toolbar.getElements("button."+c+", button."+a).addClass("on")},imageCommand:function(d){var c=this.toolbar.toolbar.retrieve("cage");switch(d){case"left":case"center":case"right":case"up":case"down":this.reposition(c,d);break;case"small":case"medium":case"large":this.resize(c,d);break;case"caption":this.toolbar.toolbar.removeClass("on");var a=this.parchment.getSelectionObject(),b=this.parchment.getRangeObject(a);caption=c.getElement(".item-caption")||new Element("div",{"class":"item-caption",text:"caption"}).inject(c.getElement("> div > div"));b.selectNode(caption);a.removeAllRanges();a.addRange(b);break;case"remove":c.destroy();this.toolbar.toolbar.removeClass("on");break;default:break}this.setImageToolbarButtons(c);this.toolbar.setPosition(c);this.setImageToolbarPosition(c)},galleryCommand:function(d){var c=this.gallery_toolbar.toolbar.retrieve("cage");switch(d){case"up":case"down":this.reposition(c,d);break;case"caption":this.gallery_toolbar.toolbar.removeClass("on");var a=this.parchment.getSelectionObject(),b=this.parchment.getRangeObject(a);caption=c.getElement(".side-title")||new Element("div",{"class":"side-title",text:"caption"}).inject(c,"top");b.selectNode(caption);a.removeAllRanges();a.addRange(b);break;case"remove":c.destroy();this.gallery_toolbar.toolbar.removeClass("on");break;default:break}this.gallery_toolbar.setPosition(c)},callback:function(b){if(this.image_panel){this.image_panel.show()}else{var a={rte:true,destroy_on_hide:false,sizepicker:this.parchment.options.toolbar=="news"?"news":"wiki",title:"Where do the image(s) exist?"};if(this.parchment.options.toolbar=="wikid"){Object.append(a,{title:"Add ONE image to the wiki",image_limit:1,sizes:["small","medium"]})}this.image_panel=new ImagePanel(false,a);this.image_panel.addEvent("return_html",function(c){if(c.test(/gallery-insert/)){c+="<br/>"}this.parchment.insertCage(c)}.bind(this))}},resize:function(f,g){var e=f.getFirst(),b=e.getFirst(),d=f.getElement("img"),h=d.get("src"),c;Object.each(this.sizes,function(a){b.removeClass("wiki-img-"+a);h=h.replace("_"+a+".","_"+this.sizes[g]+".")}.bind(this));b.addClass("wiki-img-"+this.sizes[g]);d.set("src",h);if(g=="large"&&f.getElement("a")){d.replaces(f.getElement("a"))}else{if(g!="large"&&!f.getElement("a")){c=new Element("a",{href:h.replace("_"+this.sizes[g]+".","_"+this.sizes.large+".")}).wraps(d)}}if(g=="large"&&!e.hasClass("wiki-img-center")){this.reposition(f,"center")}else{if(g!="large"&&e.hasClass("wiki-img-center")){this.reposition(f,"left")}}},reposition:function(d,b){var c=d.getFirst(),a=c.getFirst(),e;if(b=="up"){e=d.getPrevious();if(!e){return}if(c.hasClass("wiki-img-left")||c.hasClass("wiki-img-right")){while(e.tagName.test(/^h\d$/i)&&e.getPrevious()){e=e.getPrevious()}if(e.tagName.test(/^h\d$/i)){while(e.tagName.test(/^h\d$/i)&&e.getNext()){e=e.getNext()}}}d.inject(e,"before")}else{if(b=="down"){e=d.getNext();if(!e){return}if(c.hasClass("wiki-img-left")||c.hasClass("wiki-img-right")){while(e.getNext()&&e.getNext().tagName.test(/^h\d$/i)){e=e.getNext()}}d.inject(e,"after")}else{["left","center","right","up","down"].each(function(f){c.removeClass("wiki-img-"+f)});c.addClass("wiki-img-"+b);if(b=="center"&&!a.hasClass("wiki-img-super")){this.resize(d,"large")}else{if(b!="center"&&a.hasClass("wiki-img-super")){this.resize(d,"small")}}}}},getSizes:function(){var a=[];this.parchment.editor.getElements('.js-item-cage[rel="image"]').each(function(c){a.include(c.getProperty("id"))}.bind(this));var b=new Request.JSON({url:"/image/get-sizes/",onSuccess:function(c){this.sizes=c;this.buildImageToolbar()}.bind(this)}).post({json:JSON.encode({section:this.parchment.options.toolbar=="news"?"news":"wiki",ids:a})})},parchmentready:function(){this.parchment.editor.getElements('.js-item-cage[rel="image"]').each(function(a){while(a.parentNode!=this.parchment.editor&&!a.parentNode.nodeName.test(/td/i)){a.inject(a.parentNode,a.parentNode.tagName.test(/^h\d$/i)?"after":"before")}while(a.getNext()&&a.getNext().tagName.test(/^h\d$/i)){a.inject(a.getNext(),"after")}}.bind(this));this.getSizes()},beforeclean:function(){this.parchment.editor.getElements('.js-item-cage[rel="image"] .item-caption').each(function(e){var d=e.getParents(".js-item-cage")[0],c=d.getElement("img"),b=d.getElement("a");c.set("alt",e.get("text"));if(b){b.set("title",e.get("text"))}})}};
