var parchment_image=new Class({initialize:function(b,a){this.parch=b;this.container=this.getEditMenu();this.possibleCageRels=["image","images","galleries"];this.cage=false;this.mouseoverContainer=false;this.sizes=false;this.initComplete=false;this.image_panel=false;if(a.hasClass("parchment_dropdown_choices")){this.btn=this.parch.addDropOption("image",MEDIA_URL+"editor/img/parchment/img.png",a)}else{this.btn=new Element("a",{"class":"parchment_btn_img",href:"//img"}).inject(a,"after")}this.btn.addEvent("click",function(d){var c=new Event(d).stop();this.imagePanel()}.bind(this));this.parch.addEvent("parchmentCleanComplete",function(){if(!this.initComplete){this.getSizes()}else{this.hijack()}this.initComplete=true}.bind(this));this.parch.addEvent("parchmentToolbarClick",this.hideEditMenu.bind(this));this.parch.addEvent("parchmentMousedown",this.hideEditMenu.bind(this));window.addEvent("scroll",this.showEditMenu.bind(this));window.addEvent("resize",this.showEditMenu.bind(this));this.parch.addEvent("parchmentKeyDown",function(f){if(["left","right","up","down"].contains(f.key)){return}var h=this.parch.getSelectedElement();var d=h.getParents();var g=false;if($(h)&&(h.hasClass("item-caption")||h.hasClass("side-title"))){return}d.each(function(i){if(g){return}if($(i)&&(i.hasClass("item-caption")||i.hasClass("side-title"))){g=true}});if(g){return}var c=this.parch.getCage(h);if(c&&this.possibleCageRels.contains(c.getProperty("rel"))){clog("WHOA: moving cursor to caption area.");var e=c.getElement(".item-cage");this.parch.selectNode(e);f.stop()}}.bind(this))},getSizes:function(){var a=[];$(this.parch.body).getElements(".js-item-cage").each(function(b){if(b.getProperty("rel")=="image"){a.include(b.getProperty("id"))}});data={ids:a};data.section=this.parch.sizepicker;new Request.JSON({url:"/image/get-sizes/",method:"post",onSuccess:function(b){this.sizes=b;this.small=b.small;this.medium=b.medium;this.large=b.large;this.fixBrokenImages();this.hijack()}.bind(this)}).send(data)},fixBrokenImages:function(){},hijack:function(){clog("HIJACK IMAGES");this.cages=[];this.parch.addEvent("parchmentMousedown",function(c){var b=c.target;if(b&&b.getTag()=="img"){if(Browser.Engine.gecko){this.parch.doc.execCommand("enableObjectResizing",false,"false");var a=this.parch.getCage(b);this.parch.selectNode(a)}else{if(Browser.Engine.trident){var c=new Event(this.currentEvent).stop()}else{c.stop()}}}}.bind(this));$(this.parch.body).getElements(".js-item-cage").each(function(a){if(!this.possibleCageRels.contains(a.getProperty("rel"))){return}var b=a.getParent("div.js-item-cage");if(b&&this.possibleCageRels.contains(b.getProperty("rel"))){a.inject(b,"after")}}.bind(this));$(this.parch.body).getElements(".js-item-cage").each(function(b){if(!this.possibleCageRels.contains(b.getProperty("rel"))){return}var a=b.getElement("img");if(!a){return}this.cages.include(b);b.removeClass("parchment-item-cage-hover");this.captionFix(b);this.cagePositionHack(b);b.getElements("a").each(function(c){});b.addEvent("mouseover",function(d){var c=new Event(d).stop();this.cage=b;this.img=this.cage.getElement("img");this.showEditMenu()}.bind(this))}.bind(this))},imagePanel:function(){var a=this.parch.sizepicker;if(this.parch.toolbar=="wikid"){var b={rte:true,destroy_on_hide:false,title:"Add ONE Image to the wiki",image_limit:1,sizes:["small","medium"],sizepicker:a}}else{var b={rte:true,destroy_on_hide:false,title:"Add an Image(s) to this Post",sizepicker:a}}if(this.image_panel){this.image_panel.show()}else{this.image_panel=new ImagePanel(["browse","flickr","myimages","mygalleries","search"],b);this.image_panel.addEvent("return_html",function(c){if(!this.sizes){this.getSizes()}this.parch.insertHTML(c);this.hijack()}.bind(this))}},hideEditMenu:function(){if(this.mouseoverContainer){return}this.parch.hideElement(this.container);if(!$(this.cage)){return}this.cageOnHover(false,this.cage);this.cage=false},hideEditMenuForce:function(){this.parch.hideElement(this.container)},showEditMenu:function(){if(!$(this.cage)){return}if(!this.cage.getElement("img")){return}this.cages.each(function(h){this.cageOnHover(false,h)}.bind(this));this.parch.hideElement(this.container);this.setEditMenuOptions();var e=this.container.getCoordinates();var c=$(this.parch.IF).getCoordinates();var b=$(this.parch.TB).getCoordinates();var d=this.cage.getElement("img").getCoordinates();var g=0;var a="absolute";var f=d.left+c.left;if(this.cage.getProperty("rel")=="image"){if(f>c.width/2&&d.width<e.width){f=f-(e.width-d.width)}}if(window.getScroll().y>c.top+d.bottom){g="-1000px";a="absolute"}else{if(window.getScroll().y>c.top+d.top){g=b.height;a="fixed"}else{g=d.top+c.top;a="absolute"}}this.container.setStyles({visibility:"visible",position:a,top:g,left:f});this.cageOnHover(true,this.cage)},cageOnHover:function(b,a){if(!$(a)){return}var e="parchment-item-cage-hover";if(a.getProperty("rel")=="images"||a.getProperty("rel")=="galleries"){}else{if(b){var d=a.getElement(".wiki-img-center");d?d.addClass(e):a.addClass(e)}else{var d=a.getElement(".wiki-img-center");d?d.removeClass(e):a.removeClass(e)}}},getEditMenu:function(){var b='<span class="jsAlignment">Align: <a class="jsLeftImage">Left</a><span class="jsLeftImage dn"><strong>Left</strong></span> ';b+='<a class="jsRightImage">Right</a><span class="jsRightImage dn"><strong>Right</strong></span>&nbsp;&nbsp;-&nbsp;&nbsp;</span>';b+='<span class="jsSize"> Size: <a class="jsSmallImage">Small</a><span class="jsSmallImage dn"><strong>Small</strong></span> ';b+='<a class="jsMediumImage">Medium</a><span class="jsMediumImage dn"><strong>Medium</strong></span> ';b+='<a class="jsLargeImage">Large</a><span class="jsLargeImage dn"><strong>Large</strong></span>&nbsp;&nbsp;-&nbsp;&nbsp;</span>';b+='<span class="jsCaptioning"><a class="jsTitleImages">Add Title</a><a class="jsCaptionImage">Add Caption</a>&nbsp;&nbsp;-&nbsp;&nbsp;</span>';b+='<a class="jsRemoveImage">Remove</a>';var a=new Element("div").addClass("parchment_edit_menu").setHTML(b).inject(document.body).addEvent("mouseover",function(){this.mouseoverContainer=true;this.showEditMenu()}.bind(this)).addEvent("mouseout",function(){this.mouseoverContainer=false}.bind(this));this.parch.setMenuZindex(a);this.parch.hideElement(a);a.getElement("a.jsLeftImage").addEvent("click",function(c){this.reposition("left")}.bind(this));a.getElement("a.jsRightImage").addEvent("click",function(c){this.reposition("right")}.bind(this));a.getElement("a.jsSmallImage").addEvent("click",function(c){this.resize(this.small)}.bind(this));a.getElement("a.jsMediumImage").addEvent("click",function(c){this.resize(this.medium)}.bind(this));a.getElement("a.jsLargeImage").addEvent("click",function(c){this.resize(this.large)}.bind(this));a.getElement(".jsCaptionImage").addEvent("click",function(){this.editCaption()}.bind(this));a.getElement(".jsTitleImages").addEvent("click",function(){this.editTitle()}.bind(this));a.getElement(".jsRemoveImage").addEvent("click",function(){this.removeImage()}.bind(this));return a},setEditMenuOptions:function(){var d=this.getPosition(this.cage);if(d=="left"){this.container.getElement("a.jsLeftImage").addClass("dn");this.container.getElement("span.jsLeftImage").removeClass("dn");this.container.getElement("a.jsRightImage").removeClass("dn");this.container.getElement("span.jsRightImage").addClass("dn")}else{if(d=="right"){this.container.getElement("a.jsLeftImage").removeClass("dn");this.container.getElement("span.jsLeftImage").addClass("dn");this.container.getElement("a.jsRightImage").addClass("dn");this.container.getElement("span.jsRightImage").removeClass("dn")}}var c=this.getSize(this.img);if(c==this.small){this.container.getElement("a.jsSmallImage").addClass("dn");this.container.getElement("span.jsSmallImage").removeClass("dn");this.container.getElement("a.jsMediumImage").removeClass("dn");this.container.getElement("span.jsMediumImage").addClass("dn");this.container.getElement("a.jsLargeImage").removeClass("dn");this.container.getElement("span.jsLargeImage").addClass("dn")}else{if(c==this.medium){this.container.getElement("a.jsSmallImage").removeClass("dn");this.container.getElement("span.jsSmallImage").addClass("dn");this.container.getElement("a.jsMediumImage").addClass("dn");this.container.getElement("span.jsMediumImage").removeClass("dn");this.container.getElement("a.jsLargeImage").removeClass("dn");this.container.getElement("span.jsLargeImage").addClass("dn")}else{if(c==this.large){this.container.getElement("a.jsSmallImage").removeClass("dn");this.container.getElement("span.jsSmallImage").addClass("dn");this.container.getElement("a.jsMediumImage").removeClass("dn");this.container.getElement("span.jsMediumImage").addClass("dn");this.container.getElement("a.jsLargeImage").addClass("dn");this.container.getElement("span.jsLargeImage").removeClass("dn")}}}this.container.getElement(".jsCaptioning").addClass("dn");if(this.cage.getProperty("rel")=="image"){var b=this.cage.getElement(".item-caption");var a=this.container.getElement(".jsCaptionImage");if(b&&b.get("text").trim()!=""){a.set("text","Edit Caption")}else{a.set("text","Add Caption")}this.container.getElement(".jsCaptionImage").removeClass("dn");this.container.getElement(".jsTitleImages").addClass("dn");this.container.getElement(".jsCaptioning").removeClass("dn")}else{var b=this.cage.getElement(".side-title");var a=this.container.getElement(".jsTitleImages");if(b&&b.get("text").trim()!=""){a.set("text","Edit Title")}else{a.set("text","Add Title")}this.container.getElement(".jsCaptionImage").addClass("dn");this.container.getElement(".jsTitleImages").removeClass("dn");this.container.getElement(".jsCaptioning").removeClass("dn")}var c=this.getSize(this.img);if(c=="super"){this.container.getElement(".jsAlignment").addClass("dn")}else{if(this.cage.getProperty("rel")!="image"){this.container.getElement(".jsAlignment").addClass("dn")}else{this.container.getElement(".jsAlignment").removeClass("dn")}}if(this.cage.getProperty("rel")!="image"){this.container.getElement(".jsSize").addClass("dn")}else{this.container.getElement(".jsSize").removeClass("dn")}if(this.parch.toolbar=="wikid"){this.container.getElement("a.jsLargeImage").setStyle("display","none");this.container.getElement("span.jsLargeImage").setStyle("display","none")}},reposition:function(a){this.cage.getFirst().className="";this.cage.getFirst().addClass("wiki-img-"+a);if(a=="center"){this.cage.getFirst().getFirst().className="wiki-img-super"}else{this.cage.getFirst().getFirst().className="wiki-img-"+this.getSize(this.img)}this.cagePositionHack(this.cage);this.hideEditMenuForce()},cagePositionHack:function(a){if(a.hasClass("gallery-insert")){return}var b=this.getPosition(a);if(b=="left"){a.setStyle("float","left")}else{if(b=="right"){a.setStyle("float","right")}else{a.setStyle("float","none")}}if(Browser.Engine.trident){a.setStyle("width","1%")}else{a.setStyle("width","auto")}},getPosition:function(a){var b=a.getFirst();if(b.hasClass("wiki-img-left")){return"left"}else{if(b.hasClass("wiki-img-right")){return"right"}else{if(b.hasClass("wiki-img-super")){return"center"}else{return false}}}},getSize:function(a){var c=a.getProperty("src");var b=false;if(c.contains("_"+this.small+".")){b=this.small}else{if(c.contains("_"+this.medium+".")){b=this.medium}else{if(c.contains("_"+this.large+".")){b=this.large}}}return b},resize:function(b){var a=this.getSize(this.img).toString().trim();if(b==this.large){this.reposition("center",this.img,this.cage)}else{if(a==this.large){this.reposition("right",this.img,this.cage)}}var c="_"+a.trim()+".";var e=this.img.src;e=e.replace(c,"_"+b.trim()+".");var d=new Asset.image(e,{onload:function(){var g=this.parch.doc.createElement("img");g.src=e;this.img.parentNode.replaceChild(g,this.img);var f=this.cage.getFirst().getFirst();f.className="";f.addClass("wiki-img-"+b);this.hijack();this.hideEditMenuForce();this.parch.resize()}.bind(this)})},editTitle:function(){var a=this.cage.getElement(".side-title");if(!a){a=this.parch.doc.createElement("div");a.className="side-title mb-10";a.innerHTML="&nbsp;";if(this.cage.firstChild){this.cage.insertBefore(a,this.cage.firstChild)}else{this.cage.appendChild(a)}}this.parch.selectNode(a);this.parch.IF.contentWindow.window.focus();this.parch.resize();this.hideEditMenuForce()},editCaption:function(){var c=this.cage.getElement(".item-caption");if(!c){c=this.parch.doc.createElement("div");c.className="item-caption";c.innerHTML="&nbsp;";var b=this.cage.getElement("a");if(b){b.parentNode.insertBefore(c,b);c.parentNode.insertBefore(b,c)}else{this.img.parentNode.insertBefore(c,this.img);c.parentNode.insertBefore(this.img,c)}}this.parch.setFocus();this.parch.setCaret(c,"bottom");this.parch.resize();this.hideEditMenuForce()},captionFix:function(b){var c=b.getElement(".item-caption");if(!c){var d=this.parch.doc.createElement("div");d.className="item-caption";d.innerHTML="&nbsp;";var a=b.getElement("img");a.parentNode.injectBefore(d,a)}else{if(c.get("html").trim()==""&&!Browser.Engine.trident){$(c).innerHTML="&nbsp;"}}},removeImage:function(){this.hideEditMenuForce();this.parch.removeCage(this.cage);this.cage=false}});