/* Author : <a href="mailto:alcmene.gs@gmail.com">Matti Schneider-Ghibaudo</a>
*LICENSE : Not determined yet. This code is pre-release and SHOULDN'T BE USED, MODIFIED OR DISCLOSED ANYWHERE WITHOUT PRIOR REQUEST TO THE AUTHOR.
*/
var LinkMenu=new Class({Implements:Options,elements:{},generators:[],options:{selector:"a",deactivate:false,fade:true,className:"linkMenu"},setup:{supported:{trident:5,gecko:19}},initialize:function init(B,A){this.setOptions(A);if(!this.engineSupported()){return false}this.generators=$splat(B);this.elements=new Array();$$(this.options.selector).each(this.addLinks,this)},engineSupported:function engineSupported(){var A=true;$H(this.setup.supported).each(function(B,C){if(Browser.Engine[C]&&Browser.Engine.version<B){A=false}});return A},getElements:function getElements(){return this.elements},addElements:function addElements(A){var B=$splat(A);B.each(this.addLinks,this)},generateLinks:function generateLinks(B){var A=new Array();this.generators.each(function(C){A.push(C.generate(B.get("href"),B.get("title")))},this);return A},addLinks:function addLinks(C){if(this.elements.contains(C)){return }var B=new Element("ol",{"class":this.options.className,styles:{opacity:this.options.fade?0:1}});this.generateLinks(C).each(function(D){D.inject(new Element("li",{"class":this.options.className}).inject(B))},this);var A=new Element("div",{"class":this.options.className}).wraps(C).grab(B);if(this.options.fade){C.addEvent("mouseover",B.fade.pass(1,B));A.addEvent("mouseleave",B.fade.pass(0,B))}if(this.options.deactivate){C.set("href","#")}this.elements.push(C)}});Element.implement({addLinkMenu:function addLinkMenu(A){A.addElements(this)}});