/*******************************************************************************
 jquery.mb.components
 Copyright (c) 2001-2010. Matteo Bicocchi (Pupunzi); Open lab srl, Firenze - Italy
 email: mbicocchi@open-lab.com
 site: http://pupunzi.com

 Licences: MIT, GPL
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html
 ******************************************************************************/
/*
 * Name:jquery.mb.extruder
 * Version: 2.1
 * dependencies: jquery.metadata.js, jquery.mb.flipText.js, jquery.hoverintent.js
 */
/* Mods by Max Díaz www.maxdiaz.com */
(function(b){b.fn.hoverIntent=function(g,c){var a={sensitivity:7,interval:100,timeout:0};a=b.extend(a,c?{over:g,out:c}:g);var e,d,h,f,l=function(k){e=k.pageX;d=k.pageY},m=function(k,i){i.hoverIntent_t=clearTimeout(i.hoverIntent_t);if(Math.abs(h-e)+Math.abs(f-d)<a.sensitivity){b(i).unbind("mousemove",l);i.hoverIntent_s=1;return a.over.apply(i,[k])}else{h=e;f=d;i.hoverIntent_t=setTimeout(function(){m(k,i)},a.interval)}},o=function(k){for(var i=(k.type=="mouseover"?k.fromElement:k.toElement)||k.relatedTarget;i&&
i!=this;)try{i=i.parentNode}catch(p){i=this}if(i==this)return false;var n=jQuery.extend({},k),j=this;if(j.hoverIntent_t)j.hoverIntent_t=clearTimeout(j.hoverIntent_t);if(k.type=="mouseover"){h=n.pageX;f=n.pageY;b(j).bind("mousemove",l);if(j.hoverIntent_s!=1)j.hoverIntent_t=setTimeout(function(){m(n,j)},a.interval)}else{b(j).unbind("mousemove",l);if(j.hoverIntent_s==1)j.hoverIntent_t=setTimeout(function(){j.hoverIntent_t=clearTimeout(j.hoverIntent_t);j.hoverIntent_s=0;a.out.apply(j,[n])},a.timeout)}};
return this.mouseover(o).mouseout(o)}})(jQuery);(function(b){b.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/({.*})/,single:"metadata"},setType:function(g,c){this.defaults.type=g;this.defaults.name=c},get:function(g,c){var a=b.extend({},this.defaults,c);if(!a.single.length)a.single="metadata";var e=b.data(g,a.single);if(e)return e;e="{}";if(a.type=="class"){var d=a.cre.exec(g.className);if(d)e=d[1]}else if(a.type=="elem"){if(!g.getElementsByTagName)return;d=g.getElementsByTagName(a.name);if(d.length)e=b.trim(d[0].innerHTML)}else if(g.getAttribute!=
undefined)if(d=g.getAttribute(a.name))e=d;if(e.indexOf("{")<0)e="{"+e+"}";e=eval("("+e+")");b.data(g,a.single,e);return e}}});b.fn.metadata=function(g){return b.metadata.get(this[0],g)}})(jQuery);(function(b){var g=b.browser.msie;jQuery.fn.encHTML=function(){return this.each(function(){var c=b(this),a=c.text();c.text(a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,escape("'")).replace(/"/g,escape('"')))})};b.mbflipText={author:"Matteo Bicocchi",version:"1.1",flipText:function(c){b("meta[http-equiv=Content-Type]").attr("content")&&b("meta[http-equiv=Content-Type]").attr("content").indexOf("utf-8");return this.each(function(){var a=b(this),e="",d="",h="";h=a.css("background-color")&&
a.css("background-color")!="rgba(0, 0, 0, 0)"?a.css("background-color"):"#fff";var f=parseInt(a.css("font-size"))>0?parseInt(a.css("font-size")):14,l=a.css("font-family")?a.css("font-family").replace(/\'/g,"").replace(/"/g,""):"Arial",m=a.css("color")?a.css("color"):"#000";if(b.browser.msie){c||a.css({"writing-mode":"tb-rl",height:e,filter:'fliph() flipv("") ',whiteSpace:"nowrap",lineHeight:f+2+"px"}).css("font-weight","normal");h=b("<span style='writing-mode: tb-rl; whiteSpace:nowrap; height:"+e+
"; width:"+d+"; line-height:"+(f+2)+"px'>"+a.html()+"</span>")}else{d=a.getFlipTextDim(false);e=d[1];d=d[0];g||a.encHTML();var o=a.text(),k="-90",i="end",p=0,n=b.browser.opera?parseInt(d)-parseInt(d)/4:b.browser.safari?5:0;if(c){n=b.browser.opera?20:0;p=b.browser.safari?f/4:0;k="90, "+(parseInt(d)/2-p)+", "+parseInt(d)/2;i="start"}var j=a.attr("onclick")||a.attr("href");h=b("<object class='flip_label' style='height:"+e+"px; width:"+d+'px;\' type=\'image/svg+xml\' data=\'data:image/svg+xml; charset=utf-8 ,<svg xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="'+
d+'px" height="'+e+'px" fill="'+h+'" stroke="none"/><text  x="-'+p+'" y="'+n+'" font-family="'+l+'"  fill="'+m+'" font-size="'+f+'"  style="text-anchor: '+i+'; dominant-baseline: hanging" transform="rotate('+k+')" text-rendering="optimizeSpeed">'+o+"</text></svg>'></object>"+(j?"<div class='pointer' style='position:absolute;top:0;left:0;width:100%;height:100%;background:transparent'/>":"")+"")}e=j?b("<div/>").css("position","relative"):b("");e=a.wrap(e).css("position")!="absolute"||a.css("position")!=
"fixed"?"relative":a.css("position");a.html(h).css({position:e,width:d})})},getFlipTextDim:function(){var c=b(this),a=c.html(),e=parseInt(c.css("font-size"));c=c.css("font-family").replace(/'/g,"").replace(/"/g,"");if(c==undefined)c="Arial";c=b("<span/>").css({position:"absolute",top:-100,whiteSpace:"noWrap",fontSize:e,fontFamily:c});c.text(a);b("body").append(c);a=c.outerWidth()!=0?c.outerWidth():16+a.length*e*0.6;e=c.outerHeight()!=0?c.outerHeight()+5:50;c.remove();return[e,a]}};b.fn.mbFlipText=
b.mbflipText.flipText;b.fn.getFlipTextDim=b.mbflipText.getFlipTextDim})(jQuery);(function(b){document.extruder={};document.extruder.left=0;document.extruder.top=0;document.extruder.bottom=0;document.extruder.right=0;document.extruder.idx=0;var g=b.browser.msie;b.mbExtruder={author:"Matteo Bicocchi",version:"2.1",defaults:{width:350,positionFixed:true,sensibility:800,position:"top",accordionPanels:true,top:"auto",extruderOpacity:1,flapMargin:35,textOrientation:"bt",onExtOpen:function(){},onExtContentLoad:function(){},onExtClose:function(){},hidePanelsOnClose:true,autoCloseTime:0,
slideTimer:300},buildMbExtruder:function(c){return this.each(function(){this.options={};b.extend(this.options,b.mbExtruder.defaults);b.extend(this.options,c);this.idx=document.extruder.idx;document.extruder.idx++;var a,e,d,h;a=b(this);e=a.html();a.css("zIndex",100);var f=this.options.position=="left"||this.options.position=="right",l=f?1:this.options.width;l=b("<div/>").addClass("content").css({overflow:"hidden",width:l});l.append(e);a.html(l);d=this.options.positionFixed?"fixed":"absolute";a.addClass("extruder");
a.addClass(this.options.position);e=this.options.position=="top"||this.options.position=="bottom";a.css(this.options.position=="top"?{position:d,top:0,left:"50%",marginLeft:-this.options.width/2,width:this.options.width}:this.options.position=="bottom"?{position:d,bottom:0,left:"50%",marginLeft:-this.options.width/2,width:this.options.width}:this.options.position=="left"?{position:d,top:0,left:0,width:1}:{position:d,top:0,right:0,width:1});g||a.css({opacity:this.options.extruderOpacity});a.wrapInner("<div class='ext_wrapper'></div>");
d=a.find(".ext_wrapper");d.css({position:"absolute",width:f?1:this.options.width});if(e)this.options.position=="top"?document.extruder.top++:document.extruder.bottom++;if(b.metadata){b.metadata.setType("class");a.metadata().title&&a.attr("extTitle",a.metadata().title);a.metadata().url&&a.attr("extUrl",a.metadata().url);a.metadata().data&&a.attr("extData",a.metadata().data)}var m=b("<div class='footer'/>");e=b("<div class='flap'><span class='flapLabel'/></div>");if(document.extruder.bottom){d.prepend(m);
d.prepend(e)}else{d.append(m);d.append(e)}d=a.attr("extTitle")?a.attr("extTitle"):"";m=a.find(".flapLabel");m.text(d);if(f){m.html(d).css({whiteSpace:"noWrap"});d=this.options.textOrientation=="tb";var o=a.find(".flapLabel").getFlipTextDim()[1];a.find(".flapLabel").mbFlipText(d)}else m.html(d).css({whiteSpace:"noWrap"});if(a.attr("extUrl"))a.setMbExtruderContent({url:a.attr("extUrl"),data:a.attr("extData"),callback:function(){a.get(0).options.onExtContentLoad&&a.get(0).options.onExtContentLoad()}});
else{d=b("<div>").addClass("text").css({width:a.get(0).options.width-20,height:a.height()-20,overflowY:"auto"});l.wrapInner(d);a.setExtruderVoicesAction()}e.bind("click",function(){a.attr("open")?a.closeMbExtruder():a.openMbExtruder()});l.bind("mouseleave",function(){b(document).one("click.extruder"+a.get(0).idx,function(){a.closeMbExtruder()});h=setTimeout(function(){a.get(0).options.autoCloseTime>0&&a.closeMbExtruder()},a.get(0).options.autoCloseTime)}).bind("mouseenter",function(){clearTimeout(h);
b(document).unbind("click.extruder"+a.get(0).idx)});if(f){l.css({height:"100%"});if(this.options.top=="auto"){e.css({top:100+(this.options.position=="left"?document.extruder.left:document.extruder.right)});this.options.position=="left"?document.extruder.left+=o+this.options.flapMargin:document.extruder.right+=o+this.options.flapMargin}else e.css({top:this.options.top});f=b("<div/>").css({position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"transparent"});e.append(f)}})},setMbExtruderContent:function(c){this.options=
{url:false,data:"",callback:function(){}};b.extend(this.options,c);if(!this.options.url||this.options.url.length==0)alert("internal error: no URL to call");else{c=this.options.url;var a=this.options.data,e=b(this),d,h=this.options.callback,f=b("<div>").addClass("container");b.browser.msie&&b.browser.version<=7||f.css({width:b(this).get(0).options.width});e.find(".content").wrapInner(f);b.ajax({type:"GET",url:c,data:a,success:function(l){e.find(".container").append(l);d=e.find(".voice");d.hover(function(){b(this).addClass("hover")},
function(){b(this).removeClass("hover")});e.setExtruderVoicesAction();h&&setTimeout(function(){h()},100)}})}},openMbExtruder:function(c){var a=b(this);a.attr("open",true);b(document).unbind("click.extruder"+a.get(0).idx);var e=a.get(0).options;a.addClass("open");g||a.css("opacity",1);var d=e.position;a.mb_bringToFront();if(d=="top"||d=="bottom")a.find(".content").slideDown(e.slideTimer);else{g||b(this).css("opacity",1);a.find(".ext_wrapper").css({width:""});a.find(".content").css({overflowX:"hidden",
display:"block"});a.find(".content").animate({width:e.width},e.slideTimer)}e.onExtOpen&&e.onExtOpen();c&&setTimeout(function(){b(document).one("click.extruder"+a.get(0).idx,function(){a.closeMbExtruder()})},100)},closeMbExtruder:function(){var c=b(this);c.removeAttr("open");var a=c.get(0).options;c.removeClass("open");b(document).unbind("click.extruder"+c.get(0).idx);g||c.css("opacity",a.extruderOpacity);a.hidePanelsOnClose&&c.hidePanelsOnClose();if(a.position=="top"||a.position=="bottom"){c.find(".content").slideUp(a.slideTimer);
a.onExtClose&&a.onExtClose()}else if(a.position=="left"||a.position=="right"){c.find(".content").css({overflow:"hidden"});c.find(".content").animate({width:1},a.slideTimer,function(){c.find(".ext_wrapper").css({width:1});c.find(".content").css({overflow:"hidden",display:"none"});a.onExtClose&&a.onExtClose()})}}};jQuery.fn.mb_bringToFront=function(){var c=10;b("*").each(function(){if(b(this).css("position")=="absolute"||b(this).css("position")=="fixed")c=parseInt(b(this).css("zIndex"))>c?parseInt(b(this).css("zIndex")):
c});b(this).css("zIndex",c+=1);return c};b.fn.setExtruderVoicesAction=function(){var c=b(this),a=c.get(0).options,e=b(this).find(".voice");e.each(function(){var d=b(this);if(b.metadata){b.metadata.setType("class");d.metadata().panel&&d.attr("panel",d.metadata().panel);d.metadata().data&&d.attr("data",d.metadata().data);d.metadata().disabled&&d.attr("setDisabled",d.metadata().disabled)}d.attr("setDisabled")&&d.disableExtruderVoice();if(d.attr("panel")&&d.attr("panel")!="false"){d.append("<span class='settingsBtn'/>");
d.find(".settingsBtn").css({opacity:0.5});d.find(".settingsBtn").hover(function(){b(this).css({opacity:1})},function(){b(this).not(".sel").css({opacity:0.5})}).click(function(){if(b(this).parents().hasClass("sel"))a.accordionPanels?c.hidePanelsOnClose():b(this).closePanel();else{if(a.accordionPanels){c.find(".optionsPanel").slideUp(400,function(){b(this).remove()});e.removeClass("sel");e.find(".settingsBtn").removeClass("sel").css({opacity:0.5})}var h=b("<div class='optionsPanel'></div>");d.after(h);
b.ajax({type:"GET",url:d.attr("panel"),data:d.attr("data"),success:function(f){f=b(f);h.html(f);h.children().not(".text").addClass("panelVoice").click(function(){c.closeMbExtruder()});h.slideDown(400)}});d.addClass("sel");d.find(".settingsBtn").addClass("sel").css({opacity:1})}})}d.find("a").length==0&&d.attr("panel")&&d.find(".label").not(".disabled").css("cursor","pointer").click(function(){d.find(".settingsBtn").click()});if((!d.attr("panel")||d.attr("panel")=="false")&&(!d.attr("setDisabled")||
d.attr("setDisabled")!="true"))d.find(".label").click(function(){c.hidePanelsOnClose();c.closeMbExtruder()})})};b.fn.disableExtruderVoice=function(){var c=b(this),a=c.find(".label");c.removeClass("sel");c.next(".optionsPanel").slideUp(400,function(){b(this).remove()});c.attr("setDisabled",true);a.css("opacity",0.4);c.hover(function(){b(this).removeClass("hover")},function(){b(this).removeClass("hover")});a.addClass("disabled").css("cursor","default");c.find(".settingsBtn").hide();c.bind("click",function(e){e.stopPropagation();
return false})};b.fn.enableExtruderVoice=function(){var c=b(this);c.attr("setDisabled",false);c.find(".label").css("opacity",1);c.find(".label").removeClass("disabled").css("cursor","pointer");c.unbind("click");c.find(".settingsBtn").show()};b.fn.hidePanelsOnClose=function(){var c=b(this).find(".voice");b(this).find(".optionsPanel").slideUp(400,function(){b(this).remove()});c.removeClass("sel");c.find(".settingsBtn").removeClass("sel").css("opacity",0.5)};b.fn.openPanel=function(){(b(this).hasClass("voice")?
b(this):b(this).find(".voice")).each(function(){b(this).hasClass("sel")||b(this).find(".settingsBtn").click()})};b.fn.closePanel=function(){var c=b(this).hasClass("voice")?b(this):b(this).parent(".voice");c.next(".optionsPanel").slideUp(400,function(){b(this).remove()});c.removeClass("sel");b(this).removeClass("sel").css("opacity",0.5)};b.fn.buildMbExtruder=b.mbExtruder.buildMbExtruder;b.fn.setMbExtruderContent=b.mbExtruder.setMbExtruderContent;b.fn.closeMbExtruder=b.mbExtruder.closeMbExtruder;b.fn.openMbExtruder=
b.mbExtruder.openMbExtruder})(jQuery);

