/*******************************************************************************
 jquery.mb.components
 Copyright (c) 2001-2009. Matteo Bicocchi (Pupunzi); Open lab srl, Firenze - Italy
 email: info@pupunzi.com
 site: http://pupunzi.com
 Licences: MIT, GPL
 ******************************************************************************/

(function($){document.extruderLeft=0;document.extruderTop=0;var g=$.browser.msie;$.mbExtruder={author:"Matteo Bicocchi",version:"1.5",defaults:{width:350,positionFixed:true,sensibility:800,position:"top",extruderOpacity:1,flapDim:100,flapMargin:25,textOrientation:"bt",onExtOpen:function(){},onExtContentLoad:function(){},onExtClose:function(){},slideTimer:300},buildMbExtruder:function(f){return this.each(function(){this.options={};$.extend(this.options,$.mbExtruder.defaults);$.extend(this.options,f);var a,wrapper,extruderStyle,wrapperStyle,txt,timer;a=$(this);a.css("zIndex",100);var b=this.options.positionFixed?"fixed":"absolute";if(this.options.position=="top"){document.extruderTop++;if(document.extruderTop>1){alert("more than 1 mb.extruder on top is not supported jet... hope soon!");return}}a.addClass("extruder");a.addClass(this.options.position);extruderStyle=this.options.position=="top"?{position:b,top:0,left:"50%",marginLeft:-this.options.width/2,width:this.options.width}:{position:b,top:0,left:-(this.options.width)};a.css(extruderStyle);if(!g)a.css({opacity:this.options.extruderOpacity});a.wrapInner("<div class='ext_wrapper'></div>");wrapper=a.find(".ext_wrapper");wrapperStyle={width:this.options.width,position:"absolute"};wrapper.css(wrapperStyle);if($.metadata){$.metadata.setType("class");if(a.metadata().title)a.attr("extTitle",a.metadata().title);if(a.metadata().url)a.attr("extUrl",a.metadata().url);if(a.metadata().data)a.attr("extData",a.metadata().data)}wrapper.append("<div class='footer'></div><div class='flap'><span class='flapLabel'/></div>");a.find('.content').prepend("<div class='header'></div>");txt=a.attr("extTitle")?a.attr("extTitle"):"";a.find(".flapLabel").text(txt);if(this.options.position=="left"){a.find(".header").html(txt);a.find(".flapLabel").html(txt).css({whiteSpace:"noWrap"});var c=this.options.textOrientation=="tb";var d=a.find('.flapLabel').getFlipTextDim()[1];a.find('.flapLabel').mbFlipText(c)}else{a.find(".flapLabel").html(txt).css({whiteSpace:"noWrap",width:this.options.flapDim})}if(a.attr("extUrl")){a.setMbExtruderContent({url:a.attr("extUrl"),data:a.attr("extData"),callback:function(){if(a.get(0).options.onExtContentLoad)a.get(0).options.onExtContentLoad()}})}else{a.setExtruderVoicesAction()}a.find('.flap .flapLabel').hoverIntent({over:function(){a.mb_bringToFront();a.openMbExtruder()},out:function(){},sensitivity:2,interval:this.options.sensibility});a.find('.flap').bind("click",function(){a.openMbExtruder()});a.find('.content').bind("mouseleave",function(){timer=setTimeout(function(){a.closeMbExtruder()},1000)}).bind("mouseenter",function(){clearTimeout(timer)});if(this.options.position=="left"){a.find('.content').css({width:this.options.width,height:"100%"});a.find('.flap').css({marginRight:-40,top:100+document.extruderLeft});document.extruderLeft+=d+this.options.flapMargin;var e=$("<div/>").css({position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"transparent"});a.find('.flap').append(e)}})},setMbExtruderContent:function(b){this.options={url:false,data:"",callback:function(){}};$.extend(this.options,b);if(!this.options.url||this.options.url.length==0){alert("internal error: no URL to call");return}var c=this.options.url;var d=this.options.data;var e=$(this),voice;var f=this.options.callback;$.ajax({type:"POST",url:c,data:d,success:function(a){e.find(".header").after(a);voice=e.find(".voice");voice.hover(function(){$(this).addClass("hover")},function(){$(this).removeClass("hover")});e.setExtruderVoicesAction();if(f){setTimeout(function(){f()},100)}}})},openMbExtruder:function(){var a=$(this);a.addClass("open");if(!g)a.css("opacity",1);var b=a.get(0).options.position;a.mb_bringToFront();if(b=="top"){a.find('.content').slideDown(a.get(0).options.slideTimer);if(a.get(0).options.onExtOpen)a.get(0).options.onExtOpen()}else{if(!g)$(this).css("opacity",1);a.animate({left:0},a.get(0).options.slideTimer);if(a.get(0).options.onExtOpen)a.get(0).options.onExtOpen()}},closeMbExtruder:function(){var a=$(this);a.removeClass("open");if(!g)a.css("opacity",a.get(0).options.extruderOpacity);a.closeAllPanel();if(a.get(0).options.position=="top"){a.find('.content').slideUp(a.get(0).options.slideTimer);if(a.get(0).options.onExtClose)a.get(0).options.onExtClose()}else if(a.get(0).options.position=="left"){a.animate({left:-a.get(0).options.width},a.get(0).options.slideTimer,function(){if(a.get(0).options.onExtClose)a.get(0).options.onExtClose()})}}};jQuery.fn.mb_bringToFront=function(){var b=10;$('*').each(function(){if($(this).css("position")=="absolute"||$(this).css("position")=="fixed"){var a=parseInt($(this).css('zIndex'));b=a>b?parseInt($(this).css('zIndex')):b}});$(this).css('zIndex',b+=1);return b};$.fn.setExtruderVoicesAction=function(){var e=$(this);var f=$(this).find(".voice");f.each(function(){var d=$(this);if($.metadata){$.metadata.setType("class");if(d.metadata().panel)d.attr("panel",d.metadata().panel);if(d.metadata().data)d.attr("data",d.metadata().data);if(d.metadata().disabled)d.attr("disabled",d.metadata().disabled)}if(d.attr("disabled")){d.disableExtruderVoice()}if(d.attr("panel")&&d.attr("panel")!="false"){d.append("<span class='settingsBtn'/>");d.find(".settingsBtn").css({opacity:.5});d.find(".settingsBtn").hover(function(){$(this).css({opacity:1})},function(){$(this).not(".sel").css({opacity:.5})}).click(function(){if($(this).parents().hasClass("sel")){e.closeAllPanel();return}e.find(".optionsPanel").slideUp(400,function(){$(this).remove()});f.removeClass("sel");f.find(".settingsBtn").removeClass("sel").css({opacity:.5});var b=$("<div class='optionsPanel'></div>");$.ajax({type:"POST",url:d.attr("panel"),data:d.attr("data"),success:function(a){var c=$(a);b.html(c);b.children().addClass("panelVoice").click(function(){e.closeAllPanel();e.closeMbExtruder()});b.slideDown(400)}});d.after(b);d.addClass("sel");d.find(".settingsBtn").addClass("sel").css({opacity:1})})}if(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("disabled")||d.attr("disabled")!="true")){d.find(".label").click(function(){e.closeAllPanel();e.closeMbExtruder()})}})};$.fn.disableExtruderVoice=function(){var b=$(this);b.attr("disabled",true);b.find(".label").css("opacity",.4);b.hover(function(){$(this).removeClass("hover")},function(){$(this).removeClass("hover")});b.find(".label").addClass("disabled").css("cursor","default");b.find(".settingsBtn").hide();b.bind("click",function(a){a.stopPropagation();return false})};$.fn.enableExtruderVoice=function(){var a=$(this);a.attr("disabled",false);a.find(".label").css("opacity",1);a.find(".label").removeClass("disabled").css("cursor","pointer");a.find(".settingsBtn").show();a.unbind("click")};$.fn.closeAllPanel=function(){var a=$(this).find(".voice");$(this).find(".optionsPanel").slideUp(400,function(){$(this).remove()});a.removeClass("sel");a.find(".settingsBtn").removeClass("sel").css("opacity",.5)};$.fn.buildMbExtruder=$.mbExtruder.buildMbExtruder;$.fn.setMbExtruderContent=$.mbExtruder.setMbExtruderContent;$.fn.closeMbExtruder=$.mbExtruder.closeMbExtruder;$.fn.openMbExtruder=$.mbExtruder.openMbExtruder})(jQuery);