/*
 jquery.jqDock.js v1.5
*/
(function(k,s){if(!k.jqDock){var r=["Top","Right","Bottom","Left"],E=["Major","Minor"],y=["mouseenter","mousemove","mouseleave"],z=['<div style="position:relative;padding:0;',"margin:0;border:0 none;background-color:transparent;",'">'],p={v:{wh:"height",xy:1,tl:"top",lead:0,trail:2,inv:"h"},h:{wh:"width",xy:0,tl:"left",lead:3,trail:1,inv:"v"}},n=[],F=[0,0],S=function(){},w=function(a){a=parseInt(a,10);return isNaN(a)?0:a},t=function(a,d){if(a[d]){s.clearTimeout(a[d]);a[d]=null}},G=function(a){var d=
p[a.Opts.vh],b=0;if(a=a.Elem[a.Current]){b=a.Pad[d.lead]+a.Pad[d.trail];b=Math.floor((F[d.xy]-a.Wrap.parent().offset()[d.tl])*(b+a.Initial)/(b+a.Major))+a.Offset}return b},H=function(a){return a?1*((a.id||"").match(/^jqDock(\d+)$/)||[0,-1])[1]:-1},I=function(a){for(var d=true,b=n.length,e;d&&b--;)for(e=n[b].Elem.length;d&&e--;)d=n[b].Elem[e].Img[0]!==a;return d?!d:n[b].Elem[e]},J=function(a){var d=n[a.data.id],b=d.Elem[a.data.idx];b.height=this.height;b.width=this.width;++d.Loaded>=d.Elem.length&&
s.setTimeout(function(){k.jqDock.initDock(a.data.id)},0)},T=function(a,d){for(var b;a&&a.ownerDocument&&a!==d;){if(b=a.className.toString().match(/jqDockMouse(\d+)/))return 1*b[1];a=a.parentNode}return-1},K=function(a,d,b){var e={},c=p[b].wh;b=p[p[b].inv].wh;e[c]=d;e[b]=Math.round(d*a[b]/a[c]);return e},U=function(){k(this).prev("img").trigger("click");return false},u=function(a,d){var b=a.Elem[a.Current];if(b&&a.Opts.labels)b.Label.el[b.Label.txt&&d?"show":"hide"]()},A=function(a,d){var b=a.Opts.labels,
e=p[a.Opts.vh],c=a.Elem[a.Current],f,j,h,i;if(c&&b){h=c.Label;i=h.el;if(h.mc){h.mc=0;for(f in p){h[f]=i[p[f].wh]();for(j in{lead:1,trail:1})h[f]+=w(i.css("padding"+r[p[f][j]]))}}b.charAt(0)=="m"&&i.css({top:Math.floor((c[E[p[e.inv].xy]]-h.v)/2)});b.charAt(1)=="c"&&i.css({left:Math.floor((c[E[e.xy]]-h.h)/2)})}d&&u(a,1)},L=function(a){for(var d=a.childNodes.length,b;d;){b=a.childNodes[--d];if(b.childNodes&&b.childNodes.length)L(b);else b.nodeType==3&&a.removeChild(b)}},M=function(a){a.Menu.css({visibility:"visible"}).show()},
B=function(a){var d=a.Opts.idle;if(d){t(a,"Idler");a.Idler=s.setTimeout(function(){a.Menu.trigger("dockidle")},d)}},V=function(a,d,b){var e=a.Opts,c=e.labels,f=d.Label;f.txt=e.setLabel.call(a.Menu[0],d.Title,b);f.mc=f.mc&&!!f.txt;f.el=k('<div class="jqDockLabel jqDockLabel'+d.Link+'" style="position:absolute;margin:0;"><div class="jqDockLabelText">'+f.txt+"</div></div>").hide().insertAfter(d.Img);if(c&&f.txt){a=c.charAt(0)=="b";c=c.charAt(1)=="r";f.el.css({top:a?"auto":0,left:c?"auto":0,bottom:a?
0:"auto",right:c?0:"auto"}).click(U)}},x=function(a,d){var b=n[a],e=b.Opts,c=p[e.vh].wh,f=b.Elem.length,j,h;for(d=d||G(b);f;){j=b.Elem[--f];h=Math.abs(d-j.Centre);j.Final=h<e.distance?j[c]-Math.floor((j[c]-j.Initial)*Math.pow(h,e.coefficient)/e.attenuation):j.Initial}},W=function(a){return a},N=function(a,d,b,e){a=n[a];var c=a.Elem[d],f=a.Opts,j=a.Yard,h=p[f.vh],i=p[h.inv],l=c.src!=c.altsrc,o,g,m;if(e||c.Major!=b){o=k.boxModel||f.vh=="v"?0:a.Border[h.lead]+a.Border[h.trail];if(l&&!e&&c.Major==c.Initial)c.Img[0].src=
c.altsrc;a.Spread+=b-c.Major;g=K(c,b,f.vh);m=f.size-g[i.wh];switch(f.align){case "top":case "left":g["margin"+r[i.trail]]=m;break;case "middle":case "center":g["margin"+r[i.lead]]=(m+m%2)/2;g["margin"+r[i.trail]]=(m-m%2)/2;break;default:g["margin"+r[i.lead]]=m}if(b!=c.Major||e&&!d){f.flow&&j.parent()[h.wh](a.Spread+a.Border[h.lead]+a.Border[h.trail]);j[h.wh](a.Spread+o)}c.Wrap.css(g);f.flow||j.css(h.tl,Math.floor(Math.max(0,(a[h.wh]-a.Spread)/2)));a.OnDock&&A(a);c.Major=b;c.Minor=g[i.wh];if(l&&!e&&
b==c.Initial)c.Img[0].src=c.src}},C=function(a,d){var b=n[a],e=b.Opts,c=p[e.vh],f=e.duration+e.step,j=0,h;if(b.Stamp){f=(new Date).getTime()-b.Stamp;if(f>=e.duration)b.Stamp=0}if(f>e.step){for(e=f<e.duration?f/e.duration:0;j<b.Elem.length;){f=b.Elem[j];h=(f.Final-f.Initial)*e;h=d?e?Math.floor(f.Final-h):f.Initial:e?Math.floor(f.Initial+h):f.Final;N(a,j++,h)}if(b.Spread>b[c.wh]){b.Yard.parent()[c.wh](b.Spread+b.Border[c.lead]+b.Border[c.trail]);b[c.wh]=b.Spread}}},O=function(a,d){var b=n[a],e=b.Elem,
c=e.length;if(!b.OnDock){for(;c--&&e[c].Major<=e[c].Initial;);G(b);if(c<0){for(c=e.length;c--;)e[c].Major=e[c].Final=e[c].Initial;b.Current=-1;d||B(b)}else{C(a,true);s.setTimeout(function(){O(a,d)},b.Opts.step)}}},P=function(a){var d=n[a],b=d.Elem,e=b.length;if(d.OnDock){for(;e--&&b[e].Major>=b[e].Final;);if(e<0){d.Xpand=1;u(d,1)}else{x(a);C(a);s.setTimeout(function(){P(a)},d.Opts.step)}}},D=function(a,d,b,e){var c=n[d],f=c.Elem,j=f.length;switch(a){case 0:c.OnDock=1;c.Current>=0&&c.Current!==b&&
u(c);c.Current=b;A(c,c.Xpand);c.Stamp=(new Date).getTime();x(d);P(d);break;case 1:if(b!==c.Current){u(c);c.Current=b}A(c,c.Xpand);if(c.OnDock&&c.Xpand){x(d);C(d)}break;case 2:t(c,"Inactive");c.OnDock=c.Xpand=0;u(c);for(c.Stamp=(new Date).getTime();j--;)f[j].Final=f[j].Major;O(d,!!e);break;default:}},Q=function(a){var d=H(this),b=n[d],e=b?T(a.target,this):-1,c=-1,f;if(b)if(b.Asleep)b.Sleeper={target:a.target,type:a.type,pageX:a.pageX,pageY:a.pageY};else{f=b.OnDock;t(b,"Idler");F=[a.pageX,a.pageY];
if(a.type==y[2])if(f)c=2;else B(b);else{if(b.Opts.inactivity){t(b,"Inactive");b.Inactive=s.setTimeout(function(){D(2,d,e,true)},b.Opts.inactivity)}if(a.type==y[1])if(e<0){if(f&&b.Current>=0)c=2}else c=!f||b.Current<0?0:1;else if(e>=0&&!f)c=0}b.Sleeper=null;c>=0&&D(c,d,e)}},R=function(a){var d=k(".jqDock",this).get(0),b=H(d),e=n[b];if(e)if(a.type=="docknudge"){if(e.Asleep&&!(e.Asleep=e.Opts.onWake.call(this)===false))k(this).trigger("dockwake");if(!e.Asleep){B(e);e.Sleeper&&Q.call(d,e.Sleeper)}}else if(!e.Asleep){t(e,
"Idler");if(e.Asleep=e.Opts.onSleep.call(e.Menu[0])!==false){e.Menu.trigger("docksleep");D(2,b,0,true)}}};k.jqDock=function(){return{version:1.5,defaults:{size:48,distance:72,coefficient:1.5,duration:300,align:"bottom",labels:0,source:0,loader:0,inactivity:0,fadeIn:0,fadeLayer:"",step:50,setLabel:0,flow:0,idle:0,onReady:0,onSleep:0,onWake:0},useJqLoader:k.browser.opera||k.browser.safari,initDock:function(a){var d=n[a],b=d.Opts,e=p[b.vh],c=p[e.inv],f=d.Border,j=d.Elem.length,h=z.join(""),i=0,l=0,o,
g,m,v=b.fadeLayer;L(d.Menu[0]);for(d.Menu.children().each(function(q,X){var Y=d.Elem[q].Wrap=k(X).wrap(h+h+"</div></div>").parent();b.vh=="h"&&Y.parent().css("float","left")}).find("img").andSelf().css({position:"relative",padding:0,margin:0,borderWidth:0,borderStyle:"none",verticalAlign:"top",display:"block",width:"100%",height:"100%"});l<j;){g=d.Elem[l++];m=K(g,b.size,e.inv);g.Major=g.Final=g.Initial=m[e.wh];g.Wrap.css(m);g.Img.attr({alt:""}).parent("a").andSelf().removeAttr("title");d[c.wh]=Math.max(d[c.wh],
b.size+g.Pad[c.lead]+g.Pad[c.trail]);g.Offset=i;g.Centre=i+g.Pad[e.lead]+g.Initial/2;i+=g.Initial+g.Pad[e.lead]+g.Pad[e.trail]}for(l=0;l<j;){g=d.Elem[l++];m=g.Pad[e.lead]+g.Pad[e.trail];d.Spread+=g.Initial+m;for(o in{Centre:1,Offset:1}){x(a,g[o]);i=0;for(c=j;c--;)i+=d.Elem[c].Final+m;if(i>d[e.wh])d[e.wh]=i}}for(;l;){g=d.Elem[--l];g.Final=g.Initial}g=[z[0],z[2],'<div id="jqDock',a,'" class="jqDock" style="position:absolute;top:0;left:0;padding:0;margin:0;overflow:visible;height:',d.height,"px;width:",
d.width,'px;"></div></div>'].join("");d.Yard=k("div.jqDock",d.Menu.wrapInner(g));for(c=4;c--;)f[c]=w(d.Yard.css("border"+r[c]+"Width"));for(d.Yard.parent().addClass("jqDockWrap").width(d.width+f[1]+f[3]).height(d.height+f[0]+f[2]);l<j;l++){g=d.Elem[l];m=g.Wrap.parent();for(c=4;c--;)g.Pad[c]&&m.css("padding"+r[c],g.Pad[c]);N(a,l,g.Final,true);m.add(g.Img).addClass("jqDockMouse"+l);V(d,g,l)}g=d.Menu.bind("docknudge dockidle",R);d.Yard.bind(y.join(" "),Q).find("*").css({filter:"inherit"});if(!(d.Asleep=
b.onReady.call(d.Menu[0])===false)){a=function(q){q||k(".jqDockFilter",this).add(this).css({filter:""}).removeClass("jqDockFilter");d.Sleep=false;d.Menu.trigger("dockshow").trigger("docknudge")};if(v){if(v!="menu"){g=d.Yard;if(v=="wrap")g=g.parent()}d.Asleep=!!k(".jqDock,.jqDockWrap",g).addClass("jqDockFilter").css({filter:"inherit"});g.css({opacity:0});M(d);g.animate({opacity:1},b.fadeIn,a)}else{M(d);a(1)}}}}}();k.fn.jqDock=function(a){if(this.length&&!this.not("img").length){if(a==="get"){var d=
I(this.get(0));return d?k.extend(true,{},d,{Img:null}):null}this.each(function(b,e){var c=I(e),f=0,j,h,i;a=a||{};if(c){j=c.Major==c.Initial;for(i in{src:1,altsrc:1})if(a[i]){h=(k.isFunction(a[i])?a[i].call(e,c[i],i):a[i]).toString();if(c[i]!==h){c[i]=h;f=(i=="src"?j:!j)?i:f}}f&&k(e).attr("src",c[f])}})}else a==="nudge"||a==="idle"?this.filter(".jqDocked").each(function(){R.call(this,{type:"dock"+a})}):this.not(".jqDocked").filter(function(){return!k(this).parents(".jqDocked").length&&!k(this).children().not("img").filter(function(){return k(this).filter("a").children("img").parent().children().length!==
1}).length}).addClass("jqDocked").each(function(){var b=k(this),e=n.length,c,f,j,h;n[e]={Elem:[],Menu:b,OnDock:0,Xpand:0,Stamp:0,width:0,height:0,Spread:0,Border:[],Opts:k.extend({},k.jqDock.defaults,a||{},k.metadata?b.metadata():{}),Current:-1,Loaded:0};c=n[e];f=c.Opts;j=!f.loader&&k.jqDock.useJqLoader||f.loader==="jquery";for(h in{size:1,distance:1,duration:1,inactivity:1,fadeIn:1,step:1,idle:1})f[h]=w(f[h]);h=f.coefficient*1;f.coefficient=isNaN(h)?1.5:h;f.labels=/^[tmb][lcr]$/.test(f.labels.toString())?
f.labels:f.labels?{top:"br",left:"tr"}[f.align]||"tl":"";f.setLabel=f.setLabel?f.setLabel:W;f.fadeLayer=f.fadeIn?{dock:1,wrap:1}[f.fadeLayer]?f.fadeLayer:"menu":"";for(h in{onSleep:1,onWake:1,onReady:1})f[h]||(f[h]=S);f.attenuation=Math.pow(f.distance,f.coefficient);f.vh={left:1,center:1,right:1}[f.align]?"v":"h";k("img",b).each(function(i,l){var o=k(l),g=o.attr("src"),m=o.parent("a"),v=c.Elem,q;if(!(q=f.source?f.source.call(l,i):""))q=((q=k(l).attr("alt"))&&/\.(gif|jpg|jpeg|png)$/i.test(q)?q:false)||
g;v[i]={Img:o,src:g,altsrc:q,Title:o.attr("title")||m.attr("title")||"",Label:{mc:/[mc]/.test(f.labels)},Pad:[],Link:m.length?"Link":"Image"};for(g=4;g--;)c.Elem[i].Pad[g]=w(o.css("padding"+r[g]))});k.each(c.Elem,function(i,l){var o,g=l.altsrc;if(j)k("<img ></j>").bind("load",{id:e,idx:i},J).attr({src:g});else{o=new Image;o.onload=function(){J.call(this,{data:{id:e,idx:i}});o.onload="";o=null};o.src=g}})});return this}}})(jQuery,window);
