/**************************************************************

    Script          : toolbox
    Version         : Alpha 1
    Authors         : Umut Ahmet
    Licence         : Attribution-Noncommercial-No Derivative Works 3.0 Unported (http://creativecommons.org/licenses/by-nc-nd/3.0/)
    Usage           : window.addEvent('domready', function(){
                          // new toolbox
                          var tool_ini = new toolbox({
                              unit: '.unit', // class you need to add links that you want to trigger toolbox with
                              container: document.body // where to inject toolbox
                          });
                      });

**************************************************************/

var toolbox=new Class({Implements:[Options,Chain],options:{offset:{x:-1,y:0},enhanced_images:true,onOpen:new Class(),onClose:new Class()},initialize:function(a){this.setOptions(a);this.focus=[];this.focus_but=[];this.focus_pos={};this.opened=false;this.opened_count=0;this.chosen=null;this.chosen_pos={};this.modal_opened=false;this.modal_pos={};this.image_opened=false;this.load()},load:function(){var b=this;$$(b.options.unit).each(function(e){var d=e.getElement(".options");e.addEvents({mouseenter:function(){if(!b.opened){$$(".unit_selected").each(function(f){f.removeClass("unit_selected")});$$(".show_opt").each(function(f){f.removeClass("show_opt")});this.addClass("unit_selected");d.addClass("show_opt")}},mouseleave:function(){if(!b.opened&&!Browser.Engine.trident){this.removeClass("unit_selected");d.removeClass("show_opt")}}});d.addEvents({click:function(f){f.stop()},mousedown:function(){if(b.opened){this.setStyle("background-position","left -135px");b.close()}else{this.setStyle("background-position","left -54px");b.focus=e;b.focus_but=this;b.open()}},mouseup:function(){(b.opened)?this.setStyle("background-position","left -81px"):this.setStyle("background-position","left -27px")},mouseenter:function(){(b.opened)?this.setStyle("background-position","left -108px"):this.setStyle("background-position","left -27px")},mouseleave:function(){(b.opened)?this.setStyle("background-position","left -81px"):this.setStyle("background-position","left 0px")}})});b.toolbox=new Element("div",{id:"toolbox","class":"tb_hidden"});var c=Cookie.read("tb_icons");if(c=="icons"){b.toolbox.set("styles",{width:36})}b.toolbox_options=new Element("ul",{"class":"tb_buttons"}).inject(b.toolbox);b.option_browse=new Element("li",{"class":"underline"}).inject(b.toolbox_options);b.o_browse_a=new Element("a",{html:(c=="icons")?"&nbsp;":"iBrowse",href:"browse",title:"Browse all units"}).inject(b.option_browse);b.o_browse_icon=new Element("span",{"class":"tb_icon browse"}).inject(b.o_browse_a,"top");b.option_related=new Element("li",{"class":"underline"}).inject(b.toolbox_options);b.o_related_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Related",href:"related",title:"View content related to this unit"}).inject(b.option_related);b.o_related_icon=new Element("span",{"class":"tb_icon related"}).inject(b.o_related_a,"top");b.option_comment=new Element("li",{"class":"underline"}).inject(b.toolbox_options);b.o_comment_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Comment",href:"comment",title:"Make a comment on this unit"}).inject(b.option_comment);b.o_comment_icon=new Element("span",{"class":"tb_icon comment"}).inject(b.o_comment_a,"top");b.option_search=new Element("li",{"class":"underline"}).inject(b.toolbox_options);b.o_search_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Search",href:"search",title:"Search all content"}).inject(b.option_search);b.o_search_icon=new Element("span",{"class":"tb_icon search"}).inject(b.o_search_a,"top");b.option_share=new Element("li",{"class":"underline"}).inject(b.toolbox_options);b.o_share_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Share",href:"share",title:"Share this unit"}).inject(b.option_share);b.o_share_icon=new Element("span",{"class":"tb_icon share"}).inject(b.o_share_a,"top");b.toolbox_less=new Element("div",{id:"toolbox_less"}).inject(b.toolbox_options);b.option_print=new Element("li",{"class":"underline"}).inject(b.toolbox_less);b.o_print_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Print",href:"print",title:"Print this unit"}).inject(b.option_print);b.o_print_icon=new Element("span",{"class":"tb_icon print"}).inject(b.o_print_a,"top");b.option_help=new Element("li",{"class":"underline"}).inject(b.toolbox_less);b.o_help_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Help",href:"help",title:"View help"}).inject(b.option_help);b.o_help_icon=new Element("span",{"class":"tb_icon help"}).inject(b.o_help_a,"top");if(!Browser.Engine.trident4){b.option_icons=new Element("li",{"class":"underline"}).inject(b.toolbox_less);b.o_icons_a=new Element("a",{html:(c=="icons")?"&nbsp;":"Icons only",href:"text",title:"Choose how you would like the toolbox to be displayed"}).inject(b.option_icons);b.o_icons_icon=new Element("span",{"class":"tb_icon icons"}).inject(b.o_icons_a,"top")}b.option_more=new Element("li").inject(b.toolbox_options);b.o_more_a=new Element("a",{html:"Less",href:"less_more",title:"Click for less or more options"}).inject(b.option_more);b.toolbox_options.getElements("a").each(function(d){d.addEvent("click",function(f){f.stop();b.chosen=d;b.chosen_pos=d.getCoordinates();b.option_switch()})});b.toolbox.inject(b.options.container,"inside");b.toolbox_fx=b.site_morph(b.toolbox,null,null);b.toolbox_less_fx=new Fx.Slide(b.toolbox_less,{duration:200,transition:"expo:in:out"});b.modal_wrapper=new Element("div",{id:"tb_modal_wrapper","class":"tb_hidden",opacity:0}).inject(b.options.container,"inside");b.modal_top=new Element("div",{id:"tb_modal_top"}).inject(b.modal_wrapper,"inside");b.modal=new Element("div",{id:"tb_modal"}).inject(b.modal_top,"inside");b.modal_content=new Element("div",{id:"tb_modal_content",opacity:0}).inject(b.modal,"inside");b.modal_loading=new Element("div",{id:"tb_modal_loading"}).inject(b.modal,"inside");b.modal_close=new Element("div",{id:"tb_modal_close",events:{click:function(){b.close_modal()}}}).inject(b.modal,"inside");b.modal_bottom=new Element("div",{id:"tb_modal_bottom"}).inject(b.modal_wrapper,"inside");b.modal_fx=b.site_morph(b.modal_wrapper,null,null);b.modal_content_fx=b.site_morph(b.modal_content,null,null);b.overlay=new Overlay({container:b.options.container});$(window.document).addEvent("keydown",function(d){if(d.key=="esc"){(b.modal_opened)?b.close_modal():b.close();if(b.image_opened){b.close_image()}}}.bind(this));window.addEvent("resize",function(d){if(b.opened){(Browser.Engine.trident4)?b.place():b.place("fx")}if(b.modal_opened){(Browser.Engine.trident4)?b.place_modal():b.place_modal("fx")}}.bind(this));if(b.options.enhanced_images){b.lightbox=new Element("div",{id:"lightbox","class":"tb_hidden",opacity:0}).inject(b.options.container,"inside");b.image_container=new Element("div",{id:"image_container","class":"tb_hidden",opacity:0}).inject(b.lightbox,"inside");b.img_close=new Element("div",{id:"img_close",events:{click:function(){b.close_image()}}}).inject(b.image_container,"inside");b.lightbox_fx=b.site_morph(b.lightbox,null,null);b.image_fx=b.site_morph(b.image_container,null,null);var a=["gif","jpg","jpeg","png"];$$("a").each(function(d){var e=d.getProperty("href");if(e!=null){a.each(function(f){if(e.contains("."+f)){var g=new Asset.image(e);d.addEvent("click",function(h){h.stop();b.open_image(e)})}})}})}},site_morph:function(a,c,b){if(c==null){c="normal"}if(b==null){b="chain"}return new Fx.Morph(a,{duration:c,transition:"expo:in:out",link:b})},open_image:function(b){var a=this;a.image_container.setStyles({"margin-top":window.getScrollTop()+100});new Element("img",{src:b}).inject(a.image_container,"inside");a.lightbox.toggleClass("tb_hidden");a.image_container.toggleClass("tb_hidden");a.lightbox_fx.start({opacity:1}).chain(function(){a.image_fx.start({opacity:1})});if(Browser.Engine.trident4){$$("select").setStyle("visibility","hidden")}a.overlay.show();a.image_opened=true},close_image:function(){var a=this;a.lightbox_fx.start({opacity:0}).chain(function(){a.image_fx.start({opacity:0});a.lightbox.toggleClass("tb_hidden");a.image_container.toggleClass("tb_hidden");a.image_container.getElement("img").dispose();a.overlay.hide();if(Browser.Engine.trident4){$$("select").setStyle("visibility","visible")}})},open:function(){var a=this;a.toolbox.removeClass("tb_hidden");a.focus_but.setStyle("background-position","left 0px");(a.opened_count>0)?a.place("fx"):a.place();a.opened_count++;a.opened=true},close:function(){var a=this;a.toolbox.addClass("tb_hidden");a.focus_but.setStyle("background-position","left -81px");a.opened=false;a.options.onClose()},place:function(d){var b=this;b.focus_pos=b.focus.getCoordinates();var a=b.options.offset;var c=Cookie.read("tb_icons");if(window.getWidth()<1160&&c!="icons"){a={x:-108,y:34}}if(window.getWidth()<1040&&c=="icons"){a={x:-44,y:34}}if(d=="fx"){b.toolbox_fx.start.delay("normal",b.toolbox_fx,{top:(b.focus_pos.top+a.y),left:(b.focus_pos.right+a.x)})}else{b.toolbox.setStyles({top:(b.focus_pos.top+a.y),left:(b.focus_pos.right+a.x)})}},toggle_less:function(){var a=this;a.toolbox_less_fx.toggle();a.chosen.set("html",(a.opened_more)?"Less":"More");a.chosen.toggleClass("selected");a.opened_more=(a.opened_more)?false:true},open_modal:function(){var a=this;if(Browser.Engine.trident4){$$("select").setStyle("visibility","hidden")}a.overlay.show();a.place_modal();a.modal_opened=true},close_modal:function(){var a=this;a.modal_fx.start({opacity:0}).chain(function(){a.overlay.hide();a.modal_content.empty();a.modal_wrapper.setStyles({opacity:0});a.modal_content.setStyles({opacity:0});a.modal_loading.setStyles({opacity:1});if(Browser.Engine.trident4){$$("select").setStyle("visibility","visible")}});a.overlay.position();a.modal_opened=false;a.chosen=null},place_modal:function(e){var a=this;var c=a.modal.getStyle("padding").toInt()*2;var b=(window.getHeight()/2)+window.getScrollTop();if($defined(a.chosen)){if(!a.modal_opened){if(a.modal_wrapper.hasClass("tb_hidden")){a.modal_wrapper.erase("class")}a.modal_fx.start({top:b,left:(window.getWidth()/2)-355,width:710}).chain(function(){a.modal_pos=a.modal.getCoordinates();var f=b-((a.modal_pos.height/2)+40);if(f<=window.getScrollTop()+40){f=window.getScrollTop()+40}if(f<=0){f=40}a.modal_fx.start({top:f,height:a.modal_pos.height})}).chain(function(){a.modal_fx.start({opacity:1});a.modal_content_fx.start.delay("normal",a.modal_content_fx,{opacity:1});a.modal_loading.fade(0)})}else{a.modal_pos=a.modal.getCoordinates();var d=b-((a.modal_pos.height/2)+40);if(d<=window.getScrollTop()+40){d=window.getScrollTop()+40}if(d<=0){d=40}if(e=="fx"){a.modal_fx.start({top:d,left:(window.getWidth()/2)-355,height:a.modal_pos.height})}else{a.modal_wrapper.setStyles({top:d,left:(window.getWidth()/2)-355,height:a.modal_pos.height})}}a.overlay.position()}},option_switch:function(){var c=this;var b=c.chosen.getProperty("href");var a=c.focus_but.getProperty("href");switch(b){case"less_more":c.toggle_less();break;case"text":if(Cookie.read("tb_icons")){var g=(Cookie.read("tb_icons")=="text")?"icons":"text"}else{var g="icons"}Cookie.write("tb_icons",g,{path:"/",duration:365});window.location.reload();break;default:var f;var d=new Element("div").addClass("response_status");var e=new Request.HTML({url:"/toolbox/"+b+"/"+a,method:"post",onSuccess:function(m){c.modal_content.adopt(m);if($("modal_frm")){var l=$("modal_frm");d.inject(l,"after");l.set("send",{onSuccess:function(i){f=i.split("|");d.removeClass("loader_sml");new Element("p",{html:f[1],"class":(f[0]!=1)?"notice n_bad":"notice n_good"}).inject(d,"inside");if(f[0]==1){(function(){if(b=="comment"){c.comment_form=new Fx.Slide($("comment_form"),{duration:"short",transition:"expo:in:out"}).hide();c.comment_form.slideOut().chain(function(){c.place_modal("fx")})}else{if(b=="related"){c.suggest_link=new Fx.Slide($("suggest_link_form"),{duration:"short",transition:"expo:in:out"}).hide();c.suggest_link.slideOut().chain(function(){c.place_modal("fx")})}}l.getElements("input").each(function(z){var y=z.getProperty("name");if((y!="submit")){z.setProperty("value",null)}});l.getElement("textarea").setProperty("value",null);d.empty()}).delay(3500)}}})}if($("modal_help_body")){c.modal_help=new Fx.Slide($("modal_help_body"),{duration:"short",transition:"expo:in:out"}).hide();$("help_handle").addEvent("click",function(i){i.stop();c.modal_help.toggle().chain(function(){c.place_modal("fx")})})}switch(b){case"browse":var q=new Element("div",{id:"browse_results"});var t=new Element("h3",{id:"browse_results_head",html:"Displaying units that match the tag(s) selected"}).inject(q);var j=new Element("div",{"class":"inner"}).inject(q);var v=new Element("div",{id:"tag_selected"}).inject(j);var w=new Element("div",{id:"tag_results"}).inject(j);var n=0;var k=$H({});var p=new Request.HTML({url:"/toolbox/browse_results",onRequest:function(i){if(!$("browse_results")){q.inject($("unit_tags"),"after")}c.modal_loading.setStyle("opacity",1);c.place_modal("fx")},onSuccess:function(i){if((v.getChildren().length)==0){q.dispose()}else{w.empty();w.adopt(i)}c.modal_loading.fade(0);c.place_modal("fx")}});$$(".add_browse_tag").each(function(i){i.addEvent("click",function(A){A.stop();var C=this.getProperty("id");var B=this.getProperty("html");if(k.keyOf(C)==null){k.include(n,C);n++;var y=new Element("span",{id:"st_"+C,"class":"browse_tag",html:B}).inject(v,"bottom");var z=new Element("a",{html:((Browser.Engine.trident4)?"x":""),href:"#","class":"browse_tag_del",title:"Remove tag",events:{click:function(D){D.stop();$("st_"+C).dispose();$(C).getParent("tr").fade(1);k.erase(k.keyOf(C));p.post({selected:k.getValues(),unit:a})}}}).inject(y);this.getParent("tr").fade(0);p.post({selected:k.getValues(),unit:a})}})});break;case"related":$$(".link_handle").addEvent("click",function(i){i.stop()});var o=new Accordion($$(".link_handle"),$$(".link_desc"),{opacity:true,alwaysHide:true,display:-1,duration:"short",transition:"expo:in:out"});c.suggest_link=new Fx.Slide($("suggest_link_form"),{duration:"short",transition:"expo:in:out"}).hide();$("suggest_link_handle").addEvent("click",function(i){i.stop();c.suggest_link.toggle()});l.addEvent("submit",function(i){i.stop();d.empty().addClass("loader_sml").highlight();c.suggest_link.slideIn().chain(function(){c.place_modal("fx")});this.send()});break;case"comment":c.comment_form=new Fx.Slide($("comment_form"),{duration:"short",transition:"expo:in:out"}).hide();$("comment_handle").addEvent("click",function(i){i.stop();c.comment_form.toggle().chain(function(){c.place_modal("fx")})});l.addEvent("submit",function(i){i.stop();d.empty().addClass("loader_sml").highlight();c.comment_form.slideIn().chain(function(){c.place_modal("fx")});this.send()});break;case"search":var u=new Element("div",{id:"search_results"});var x=new Element("h3",{id:"search_results_head",html:"Displaying search results"}).inject(u);var s=new Element("div",{"class":"inner"}).inject(u);var h=new Element("div",{id:"search_results"}).inject(s);var r=new Request.HTML({url:"/toolbox/search/submit/"+a,onRequest:function(i){if(!$("search_results")){u.inject($("modal_main"))}c.modal_loading.setStyle("opacity",1);c.place_modal("fx")},onSuccess:function(i){h.empty();h.adopt(i);c.modal_loading.fade(0);c.place_modal("fx")}});$("search").addEvent("click",function(i){i.stop();r.post({query:$("query").getProperty("value")})});break;case"share":c.email_form=new Fx.Slide($("email_form"),{duration:"short",transition:"expo:in:out"}).hide();$("email_handle").addEvent("click",function(i){i.stop();c.email_form.toggle().chain(function(){c.place_modal("fx")})});l.addEvent("submit",function(i){i.stop();d.empty().addClass("loader_sml").highlight();c.email_form.slideIn().chain(function(){c.place_modal("fx")});this.send()});break;case"print":break}}}).send();c.open_modal();break}}});