(function(b){if(!b.fn.jqDock){var a=function(){return{version:1.2,defaults:{size:36,distance:54,coefficient:1.5,duration:500,align:"bottom",labels:false,source:false,loader:null},useJqLoader:b.browser.opera||b.browser.safari,shrinkInterval:100,docks:[],X:0,Y:0,verthorz:{v:{wh:"height",xy:"Y",tl:"top",lead:"Top",trail:"Bottom",act:"ActualInv"},h:{wh:"width",xy:"X",tl:"left",lead:"Left",trail:"Right",act:"Actual"}},elementCss:{},vanillaDiv:'<div style="position:relative;margin:0;padding:0;border:0 none;background-color:transparent;">',initDock:function(e){var h=this,l=this.docks[e],p=l.Opts,g=0,k=b("a, img",l.Menu),o=0,n,f,c,m,q;this.removeText(l.Menu);if(p.orient.vh=="h"){k.css(this.elementCss);if(!b.boxModel){k.filter("a").css({lineHeight:0,fontSize:0})}else{}}while(o<l.Elem.length){f=l.Elem[o++];c=this.keepProportion(f,p.size,{vh:p.orient.inv,inv:p.orient.vh});f.Actual=f.Final=f.Initial=c[p.vh.wh];f.SizeDiff=f[p.vh.wh]-f.Initial;f.Img.css(c);f.Img.removeAttr("title").attr({alt:""}).parent("a").removeAttr("title");f.ShrinkStep=Math.floor(f.SizeDiff*this.shrinkInterval/p.duration);l[p.vh.inv.wh]=Math.max(l[p.vh.inv.wh],p.size+f.Pad[p.vh.inv.lead]+f.Pad[p.vh.inv.trail]);f.Offset=g;f.Centre=f.Offset+f.Pad[p.vh.lead]+(f.Initial/2);g+=f.Initial+f.Pad[p.vh.lead]+f.Pad[p.vh.trail]}o=0;while(o<l.Elem.length){f=l.Elem[o++];m=0;q=f.Pad[p.vh.lead]+f.Pad[p.vh.trail];l.Spread+=f.Initial+q;this.setSizes(e,f.Centre);n=l.Elem.length;while(n){m+=l.Elem[--n].Final+q}l[p.vh.wh]=Math.max(l[p.vh.wh],m)}while(o){f=l.Elem[--o];f.Final=f.Initial}var d=[this.vanillaDiv,'<div class="jqDock" style="position:absolute;top:0;left:0;padding:0;',"margin:0;overflow:visible;height:",l.height,"px;width:",l.width,'px;"></div></div>'].join("");l.Yard=b(l.Menu).wrapInner(d).find("div.jqDock");b.each([p.vh.lead,p.vh.trail],function(j,i){l.Borders[i]=h.asNumber(l.Yard.css("border"+i+"Width"))});if(l.Borders[p.vh.lead]){l.Yard.css(p.vh.tl,Math.ceil(l.Borders[p.vh.lead]/2))}while(o<l.Elem.length){f=l.Elem[o];this.changeSize(e,o,f.Final,true);f.Img.addClass("jqDockMouse"+e+"_"+(o++))}b(l.Menu).show();if(l.Opts.labels){b.each(l.Elem,function(j){h.setLabel(e,this.Label)});l.Label.hide()}l.Yard.bind("mouseover mouseout mousemove",function(i){h.mouseHandler(i)})},altImage:function(){var c=b(this).attr("alt");return(c&&c.match(/\.(gif|jpg|jpeg|png)$/i))?c:false},removeText:function(e){var d=e.childNodes.length,c;while(d){c=e.childNodes[--d];if(c.childNodes&&c.childNodes.length){this.removeText(c)}else{if(c.nodeType==3){e.removeChild(c)}}}},asNumber:function(c){var d=parseInt(c,10);return isNaN(d)?0:d},keepProportion:function(e,g,d){var f={},h=this.verthorz[d.vh],c=this.verthorz[d.inv];f[h.wh]=g;f[c.wh]=Math.round(g*e[c.wh]/e[h.wh]);return f},deltaXY:function(h){var c=this.docks[h];if(c.Current!==false){var g=c.Opts,d=c.Elem[c.Current],e=d.Pad[g.vh.lead]+d.Pad[g.vh.trail],f=d.Img.offset();c.Delta=Math.floor((this[g.vh.xy]-f[g.vh.tl])*(e+d.Initial)/(e+d.Actual))+d.Offset;this.doLabel(h,f)}},setLabel:function(g,d){var c=this.docks[g],e=this,f={};if(!c.Label){c.Label=b('<div class="jqDockLabel jqDockMouse'+g+'_00 jqDockLabelImage" style="position:absolute;margin:0;"></div>').hide().bind("click",function(){c.Elem[c.Current].Img.trigger("click")}).appendTo(c.Yard)}if(d.txt){c.Label.text(d.txt);b.each(["Top","Right","Bottom","Left"],function(i,h){f[h]=e.asNumber(c.Label.css("padding"+h))});b.each(this.verthorz,function(i,h){d[h.wh]=c.Label[h.wh]();d[h.wh+"Pad"]=f[h.lead]+f[h.trail]})}},doLabel:function(c,f){var g=this.docks[c];if(g.Opts.labels&&g.Current!==false){var e=g.Elem[g.Current],j=e.Label,i=g.Opts,l=typeof f=="string"?f:"move";switch(l){case"show":case"hide":g.Label[j.txt?l:"hide"]();break;case"change":g.Label[0].className=g.Label[0].className.replace(/(jqDockLabel)(Link|Image)/,"$1"+(e.Linked?"Link":"Image"));g.Label.text(j.txt).css({width:j.width,height:j.height}).hide();break;default:var d=g.Yard.offset(),h={top:f.top-d.top,left:f.left-d.left},k=i.labels.split("");if(k[0]=="m"){h.top+=Math.floor((e[i.vh.inv.act]-j.height-j.heightPad)/2)}else{if(k[0]=="b"){h.top+=e[i.vh.inv.act]+e.Pad.Top+e.Pad.Bottom-j.height-j.heightPad}}if(k[1]=="c"){h.left+=Math.floor((e[i.vh.act]-j.width-j.widthPad)/2)}else{if(k[1]=="r"){h.left+=e[i.vh.act]+e.Pad.Left+e.Pad.Right-j.width-j.widthPad}}g.Label.css(h)}}},mouseHandler:function(j){var c=null,l=j.target.className.match(/jqDockMouse(\d+)_(\d+)/),g=!!(j.relatedTarget)&&j.relatedTarget.tagName!==undefined;if(l){c=false;var d=1*l[1],f=this.docks[d],k=l[2]=="00"?f.Current:1*l[2];this.X=j.pageX;this.Y=j.pageY;if(j.type=="mousemove"){if(k==f.Current){this.deltaXY(d);if(f.OnDock&&f.Expanded){this.setSizes(d);this.factorSizes(d)}}}else{var m=g&&j.relatedTarget.className.match(/jqDockMouse(\d+)_(\d+)/);if(j.type=="mouseover"&&(!f.OnDock||k!==f.Current)){f.Current=k;this.doLabel(d,"change");this.deltaXY(d);if(f.Expanded){this.doLabel(d,"show")}if(g&&(!m||m[1]!=d)){f.Timestamp=(new Date()).getTime();this.setSizes(d);f.OnDock=true;this.overDock(d)}}else{if(g&&j.type=="mouseout"){if(!m||m[1]!=d){f.OnDock=false;this.doLabel(d,"hide");var h=f.Elem.length;while((h--)){f.Elem[h].Final=f.Elem[h].Intial}this.offDock(d)}}}}}return c},overDock:function(g){var c=this.docks[g];if(c.OnDock){var f=this,e=c.Elem,d=e.length;while((d--)&&!(e[d].Actual<e[d].Final)){}if(d<0){c.Expanded=true;this.deltaXY(g);this.doLabel(g,"show")}else{this.setSizes(g);this.factorSizes(g);setTimeout(function(){f.overDock(g)},60)}}},offDock:function(j){var d=this.docks[j];if(!d.OnDock){var g=this,c=true,e=d.Elem.length,f,h;while(e){f=d.Elem[--e];if(f.Actual>f.Initial){h=f.Actual-f.ShrinkStep;if(h>f.Initial){c=false}else{h=f.Initial}this.changeSize(j,e,h)}}this.deltaXY(j);if(c){while(e<d.Elem.length){f=d.Elem[e++];f.Actual=f.Final=f.Initial}d.Current=d.Expanded=false}else{setTimeout(function(){g.offDock(j)},this.shrinkInterval)}}},setSizes:function(j,c){var d=this.docks[j],h=d.Opts,e=d.Elem.length,f,g;c=c||d.Delta;while(e){f=d.Elem[--e];g=Math.floor(f.SizeDiff*Math.pow(Math.abs(c-f.Centre),h.coefficient)/h.attenuation);f.Final=(g<f.SizeDiff?f[h.vh.wh]-g:f.Initial)}},factorSizes:function(k){var c=this.docks[k],j=c.Opts,e=j.duration+60;if(c.Timestamp){e=(new Date()).getTime()-c.Timestamp;if(e>=j.duration){c.Timestamp=0}}if(e>60){var h=e<j.duration?e/j.duration:0,d=0,g;while(d<c.Elem.length){g=c.Elem[d];this.changeSize(k,d++,(h?Math.floor(g.Initial+((g.Final-g.Initial)*h)):g.Final))}}},changeSize:function(c,o,h,d){var g=this.docks[c],e=g.Elem[o];if(d||e.Actual!=h){var j=g.Opts,k=(b.boxModel||j.orient.vh=="v")?0:g.Borders[j.vh.lead]+g.Borders[j.vh.trail];if(e.Source[2]&&!d&&e.Actual==e.Initial){e.Img[0].src=e.Source[1]}if(g.OnDock){this.deltaXY(c)}g.Spread+=h-e.Actual;var i=this.keepProportion(e,h,j.orient),n=j.size-i[j.vh.inv.wh],f="margin",l=j.vh.inv;switch(j.align){case"bottom":case"right":i[f+l.lead]=n;break;case"middle":case"center":i[f+l.lead]=(n+n%2)/2;i[f+l.trail]=(n-n%2)/2;break;case"top":case"left":i[f+l.trail]=n;break;default:}g.Yard[j.vh.wh](g.Spread+k);e.Img.css(i);g.Yard.css("margin"+j.vh.lead,Math.floor(Math.max(0,(g[j.vh.wh]-g.Spread)/2)));e.Actual=h;e.ActualInv=i[j.vh.inv.wh];if(e.Source[2]&&!d&&e.Actual==e.Initial){e.Img[0].src=e.Source[0]}}}}}();b.fn.jqDock=function(c){return this.filter(function(){var d=a.docks.length;while((d--)&&this!=a.docks[d].Menu){}return(d<0)&&(b("img",this).length)}).hide().each(function(){var g=a.docks.length;a.docks[g]={Elem:[],Menu:this,OnDock:false,Expanded:false,Timestamp:0,width:0,height:0,Spread:0,Borders:{},Yard:false,Opts:b.extend({},a.defaults,c||{}),Current:false,Delta:0,Loaded:0,Label:false};var d=a.docks[g],f=d.Opts;f.attenuation=Math.pow(f.distance,f.coefficient);f.orient=({left:1,center:1,right:1}[f.align])?{vh:"v",inv:"h"}:{vh:"h",inv:"v"};f.vh=b.extend({},a.verthorz[f.orient.vh],{inv:a.verthorz[f.orient.inv]});f.loader=(f.loader)&&typeof f.loader=="string"&&/^image|jquery$/i.test(f.loader)?f.loader.toLowerCase():"";f.labels=f.labels===true?{top:"bc",left:"tr",right:"tl"}[f.align]||"tc":(typeof f.labels=="string"&&{tl:1,tc:1,tr:1,ml:1,mc:1,mr:1,bl:1,bc:1,br:1}[f.labels]?f.labels:false);b("img",this).each(function(l){var k=b(this),j=k.attr("src"),i=(f.source?f.source.call(k[0],l):false)||a.altImage.call(this)||j,h=f.labels?k.attr("title")||k.parent("a").attr("title")||"":"";d.Elem[l]={Img:k,Source:[j,i,!(j==i)],Label:{txt:h,width:0,height:0,widthPad:0,heightPad:0},Initial:0,Actual:0,ActualInv:0,Final:0,Offset:0,Centre:0,Pad:{},Linked:!!k.parent("a").length,width:0,height:0};b.each(["Top","Right","Bottom","Left"],function(n,m){d.Elem[l].Pad[m]=a.asNumber(k.css("padding"+m))})});var e=(!f.loader&&a.useJqLoader)||f.loader=="jquery";b.each(d.Elem,function(j){var k=this,h=function(){k.height=this.height;k.width=this.width;if(++d.Loaded>=d.Elem.length){setTimeout(function(){a.initDock(g)},0)}};if(e){b("<img />").bind("load",h).attr({src:this.Source[1]})}else{var l=new Image();l.onload=function(){h.call(this);l.onload=function(){}};l.src=this.Source[1]}})}).end()};b.jqDock=function(c){return a[c]?a[c]:null}}})(jQuery);