/home/arranoyd/magicraft/wp-content/plugins/p3-profiler/js/jquery.flot.navigate.js
/*
Javascript plotting library for jQuery ~ v0.8 beta ~ Copyright (c) 2007-2011 IOLA and Ole Laursen
http://code.google.com/p/flot/issues/detail?id=643
Licensed under the MIT License ~ https://raw.github.com/flot/flot/master/LICENSE.txt
*/
(function(a){a.fn.drag=function(b,c,d){var e=typeof b=="string"?b:"",g=a.isFunction(b)?b:a.isFunction(c)?c:null;if(e.indexOf("drag")!==0)e="drag"+e;d=(b==g?c:d)||{};return g?this.bind(e,d,g):this.trigger(e)};var b=a.event,c=b.special,d=c.drag={defaults:{which:1,distance:0,not:":input",handle:null,relative:false,drop:true,click:false},datakey:"dragdata",livekey:"livedrag",add:function(c){var e=a.data(this,d.datakey),g=c.data||{};e.related+=1;if(!e.live&&c.selector){e.live=true;b.add(this,"draginit."+d.livekey,d.delegate)}a.each(d.defaults,function(a){if(g[a]!==undefined)e[a]=g[a]})},remove:function(){a.data(this,d.datakey).related-=1},setup:function(){if(!a.data(this,d.datakey)){var c=a.extend({related:0},d.defaults);a.data(this,d.datakey,c);b.add(this,"mousedown",d.init,c);this.attachEvent&&this.attachEvent("ondragstart",d.dontstart)}},teardown:function(){if(!a.data(this,d.datakey).related){a.removeData(this,d.datakey);b.remove(this,"mousedown",d.init);b.remove(this,"draginit",d.delegate);d.textselect(true);this.detachEvent&&this.detachEvent("ondragstart",d.dontstart)}},init:function(e){var g=e.data,j;if(!(g.which>0&&e.which!=g.which))if(!a(e.target).is(g.not))if(!(g.handle&&!a(e.target).closest(g.handle,e.currentTarget).length)){g.propagates=1;g.interactions=[d.interaction(this,g)];g.target=e.target;g.pageX=e.pageX;g.pageY=e.pageY;g.dragging=null;j=d.hijack(e,"draginit",g);if(g.propagates){if((j=d.flatten(j))&&j.length){g.interactions=[];a.each(j,function(){g.interactions.push(d.interaction(this,g))})}g.propagates=g.interactions.length;g.drop!==false&&c.drop&&c.drop.handler(e,g);d.textselect(false);b.add(document,"mousemove mouseup",d.handler,g);return false}}},interaction:function(b,c){return{drag:b,callback:new d.callback,droppable:[],offset:a(b)[c.relative?"position":"offset"]()||{top:0,left:0}}},handler:function(a){var e=a.data;switch(a.type){case!e.dragging&&"mousemove":if(Math.pow(a.pageX-e.pageX,2)+Math.pow(a.pageY-e.pageY,2)<Math.pow(e.distance,2))break;a.target=e.target;d.hijack(a,"dragstart",e);if(e.propagates)e.dragging=true;case"mousemove":if(e.dragging){d.hijack(a,"drag",e);if(e.propagates){e.drop!==false&&c.drop&&c.drop.handler(a,e);break}a.type="mouseup"};case"mouseup":b.remove(document,"mousemove mouseup",d.handler);if(e.dragging){e.drop!==false&&c.drop&&c.drop.handler(a,e);d.hijack(a,"dragend",e)}d.textselect(true);if(e.click===false&&e.dragging){jQuery.event.triggered=true;setTimeout(function(){jQuery.event.triggered=false},20);e.dragging=false}break}},delegate:function(c){var e=[],g,h=a.data(this,"events")||{};a.each(h.live||[],function(h,j){if(j.preType.indexOf("drag")===0)if(g=a(c.target).closest(j.selector,c.currentTarget)[0]){b.add(g,j.origType+"."+d.livekey,j.origHandler,j.data);a.inArray(g,e)<0&&e.push(g)}});if(!e.length)return false;return a(e).bind("dragend."+d.livekey,function(){b.remove(this,"."+d.livekey)})},hijack:function(c,e,g,h,j){if(g){var k={event:c.originalEvent,type:c.type},l=e.indexOf("drop")?"drag":"drop",m,n=h||0,o,p;h=!isNaN(h)?h:g.interactions.length;c.type=e;c.originalEvent=null;g.results=[];do if(o=g.interactions[n])if(!(e!=="dragend"&&o.cancelled)){p=d.properties(c,g,o);o.results=[];a(j||o[l]||g.droppable).each(function(h,j){m=(p.target=j)?b.handle.call(j,c,p):null;if(m===false){if(l=="drag"){o.cancelled=true;g.propagates-=1}if(e=="drop")o[l][h]=null}else if(e=="dropinit")o.droppable.push(d.element(m)||j);if(e=="dragstart")o.proxy=a(d.element(m)||o.drag)[0];o.results.push(m);delete c.result;if(e!=="dropinit")return m});g.results[n]=d.flatten(o.results);if(e=="dropinit")o.droppable=d.flatten(o.droppable);e=="dragstart"&&!o.cancelled&&p.update()}while(++n<h);c.type=k.type;c.originalEvent=k.event;return d.flatten(g.results)}},properties:function(a,b,c){var e=c.callback;e.drag=c.drag;e.proxy=c.proxy||c.drag;e.startX=b.pageX;e.startY=b.pageY;e.deltaX=a.pageX-b.pageX;e.deltaY=a.pageY-b.pageY;e.originalX=c.offset.left;e.originalY=c.offset.top;e.offsetX=a.pageX-(b.pageX-e.originalX);e.offsetY=a.pageY-(b.pageY-e.originalY);e.drop=d.flatten((c.drop||[]).slice());e.available=d.flatten((c.droppable||[]).slice());return e},element:function(a){if(a&&(a.jquery||a.nodeType==1))return a},flatten:function(b){return a.map(b,function(b){return b&&b.jquery?a.makeArray(b):b&&b.length?d.flatten(b):b})},textselect:function(b){a(document)[b?"unbind":"bind"]("selectstart",d.dontstart).attr("unselectable",b?"off":"on").css("MozUserSelect",b?"":"none")},dontstart:function(){return false},callback:function(){}};d.callback.prototype={update:function(){c.drop&&this.available.length&&a.each(this.available,function(a){c.drop.locate(this,a)})}};c.draginit=c.dragstart=c.dragend=d})(jQuery);(function(a){function b(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var c=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var d=c.length;d;)a.event.fixHooks[c[--d]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],b,!1);else this.onmousewheel=b},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],b,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);(function(a){function c(b){function m(a,b){b.unbind(a.getOptions().zoom.trigger,c);b.unbind("mousewheel",d);b.unbind("dragstart",i);b.unbind("drag",j);b.unbind("dragend",k);if(h)clearTimeout(h)}function l(a,b){var e=a.getOptions();if(e.zoom.interactive){b[e.zoom.trigger](c);b.mousewheel(d)}if(e.pan.interactive){b.bind("dragstart",{distance:10},i);b.bind("drag",j);b.bind("dragend",k)}}function k(a){if(h){clearTimeout(h);h=null}b.getPlaceholder().css("cursor",e);b.pan({left:f-a.pageX,top:g-a.pageY})}function j(a){var c=b.getOptions().pan.frameRate;if(h||!c)return;h=setTimeout(function(){b.pan({left:f-a.pageX,top:g-a.pageY});f=a.pageX;g=a.pageY;h=null},1/c*1e3)}function i(a){if(a.which!=1)return false;var c=b.getPlaceholder().css("cursor");if(c)e=c;b.getPlaceholder().css("cursor",b.getOptions().pan.cursor);f=a.pageX;g=a.pageY}function d(a,b){c(a,b<0);return false}function c(a,c){var d=b.offset();d.left=a.pageX-d.left;d.top=a.pageY-d.top;if(c)b.zoomOut({center:d});else b.zoom({center:d})}var e="default",f=0,g=0,h=null;b.zoomOut=function(a){if(!a)a={};if(!a.amount)a.amount=b.getOptions().zoom.amount;a.amount=1/a.amount;b.zoom(a)};b.zoom=function(c){if(!c)c={};var d=c.center,e=c.amount||b.getOptions().zoom.amount,f=b.width(),g=b.height();if(!d)d={left:f/2,top:g/2};var h=d.left/f,i=d.top/g,j={x:{min:d.left-h*f/e,max:d.left+(1-h)*f/e},y:{min:d.top-i*g/e,max:d.top+(1-i)*g/e}};a.each(b.getAxes(),function(a,b){var c=b.options,d=j[b.direction].min,e=j[b.direction].max,f=c.zoomRange;if(f===false)return;d=b.c2p(d);e=b.c2p(e);if(d>e){var g=d;d=e;e=g}var h=e-d;if(f&&(f[0]!=null&&h<f[0]||f[1]!=null&&h>f[1]))return;c.min=d;c.max=e});b.setupGrid();b.draw();if(!c.preventEvent)b.getPlaceholder().trigger("plotzoom",[b])};b.pan=function(c){var d={x:+c.left,y:+c.top};if(isNaN(d.x))d.x=0;if(isNaN(d.y))d.y=0;a.each(b.getAxes(),function(a,b){var c=b.options,e,f,g=d[b.direction];e=b.c2p(b.p2c(b.min)+g),f=b.c2p(b.p2c(b.max)+g);var h=c.panRange;if(h===false)return;if(h){if(h[0]!=null&&h[0]>e){g=h[0]-e;e+=g;f+=g}if(h[1]!=null&&h[1]<f){g=h[1]-f;e+=g;f+=g}}c.min=e;c.max=f});b.setupGrid();b.draw();if(!c.preventEvent)b.getPlaceholder().trigger("plotpan",[b])};b.hooks.bindEvents.push(l);b.hooks.shutdown.push(m)}var b={xaxis:{zoomRange:null,panRange:null},zoom:{interactive:false,trigger:"dblclick",amount:1.5},pan:{interactive:false,cursor:"move",frameRate:20}};a.plot.plugins.push({init:c,options:b,name:"navigate",version:"1.3"})})(jQuery)