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

