/*______________
|       ______  |   U I Z E     J A V A S C R I P T     A P I
|     /      /  |   -----------------------------------------
|    /    O /   |    MODULE : Uize.Widget.Drag Class (version 1.0.0)
|   /    / /    |    AUTHOR : Chris van Rensburg (http://www.tomkidding.com)
|  /    / /  /| |    ONLINE : http://www.tomkidding.com/uize/uize-js-api
| /____/ /__/_| | COPYRIGHT : (c)2005-2006 Chris van Rensburg
|           |__ |   LICENSE : Distributed under the terms of the GNU General Public License
|_______________|             http://www.gnu.org/licenses/gpl.txt
*/
(function(){var c_a=true,c_b=false,c_c=null,c_d=document,c_e=Uize.Element,c_f=navigator.appName=='Microsoft Internet Explorer';var c_g;var c_h=Uize.Widget,c_i=c_h.Drag=c_h.subclass(function(){var c_j=this;c_j.eventStartPos=c_j.c_k=[0,0];c_j.eventPos=c_j.c_l=[0,0];c_j.eventDeltaPos=c_j.c_m=[0,0];}),c_n=c_i.prototype;c_n.c_o=function(){this.c_p=null;this.fireEvent('Drag Rest');};c_n.c_q=function(){if(this.c_p)clearTimeout(this.c_p);
this.c_p=null;};c_n.mousedown=function(c_r){var c_j=this;if(!c_j.c_s){var c_t=c_j.getNode();c_j.c_s=c_a;c_e.setStyle(c_g,{cursor:c_e.getStyleAttribute(c_t,'cursor'),display:'block'});if(!c_r)c_r=event;c_r.cancelBubble=c_a;c_j.c_u=c_r.shiftKey?'one':'both';c_j.fireEvent({name:'Before Drag Start',clientEvent:c_r});c_j.c_k[0]=c_r.clientX;c_j.c_k[1]=c_r.clientY;var c_v=c_b,c_w=c_d.onkeyup,c_x=c_d.onmousemove,c_y=c_d.onmouseup;function c_z(c_r){if(c_j.c_s){c_v=c_a;if(c_j.c_p){c_j.c_q();c_j.c_o();}c_j.c_s=c_b;c_j.fireEvent({name:'Drag Done',clientEvent:c_r,dragStarted:c_j.c_A});c_j.c_A=c_b;}}function c_B(c_r){c_z(c_r);c_d.onmousemove=c_x;c_d.onmouseup=c_y;c_d.onkeyup=c_w;c_g.style.display='none';}function c_C(c_D,c_E){c_j.c_l[0]=c_D;c_j.c_l[1]=c_E;var c_m=[c_j.c_l[0]-c_j.c_k[0],c_j.c_l[1]-c_j.c_k[1]],c_F=[Math.abs(c_m[0]),Math.abs(c_m[1])];function c_G(c_H){var c_I=(c_j.c_u=='both'||c_F[c_H]>c_F[1-c_H]||(c_F[c_H]==c_F[1-c_H]&&c_H==1))?c_m[c_H]:0;return c_I;}c_j.c_m[0]=c_G(0);c_j.c_m[1]=c_G(1);
c_j.fireEvent('Drag Update');c_j.c_q();c_j.c_p=setTimeout(function(){c_j.c_o()},c_j.c_J);}c_d.onmousemove=function(c_r){if(!c_r)c_r=event;if(c_f&&c_r.button==0){if(c_j.c_s)c_B(c_r);}else{if(!c_v){if(!c_j.c_A){c_j.c_A=c_a;c_j.fireEvent({name:'Drag Start',clientEvent:c_r});}c_C(c_r.clientX,c_r.clientY);}}return c_b;};c_d.onmouseup=function(c_r){if(!c_r)c_r=event;c_B(c_r);return c_b;};c_d.onkeyup=function(c_r){if(!c_r)c_r=event;var c_K=typeof c_r.which!='undefined'?c_r.which:c_r.keyCode;if(c_K==27&&c_j.c_s){if(c_j.c_L){var c_M=c_j.fade;function c_N(){var c_O=c_j.fade.get('value');c_C(c_O[0],c_O[1]);}function c_P(){c_z(c_r)}c_M.removeEventHandler('Advance',c_N);c_M.removeEventHandler('Done',c_P);c_M.addEventHandlers({Advance:c_N,Done:c_P});c_M.set({startValue:c_j.c_l,endValue:c_j.c_k});c_M.start();}else{c_C(c_j.c_k[0],c_j.c_k[1]);c_z(c_r);}}};}return c_b;};c_n.wireUi=function(){var c_j=this;if(!c_j.wired()){c_j.wireNodeEvent('','onmousedown',function(c_r){return c_j.mousedown(c_r)});if(!c_g)
c_g=c_i.insertShield({zIndex:50000});c_h.prototype.wireUi.call(c_j);}};c_i.insertShield=function(c_Q){var c_R={display:'none',position:'absolute'};if(c_f)c_R.background='url('+Uize.getBlankImageUrl()+')';var c_S=c_d.createElement('div');c_e.setStyle(c_S,c_i.addPropertiesToObject(c_R,c_Q));c_S.Uize_Widget_Drag_shield=c_a;c_d.body.appendChild(c_S);c_i.resizeShield(c_S);return c_S;};c_i.resizeShield=function(c_S){var c_T=c_e.getStyleAttribute(c_S,'display');c_e.display(c_S,c_b);c_e.setStyle(c_S,{left:'0px',top:'0px',width:c_d.documentElement.scrollWidth+'px',height:Math.max(typeof window.innerHeight=='number'?window.innerHeight:(c_d.documentElement&&c_d.documentElement.clientHeight?c_d.documentElement.clientHeight:(c_d.body&&c_d.body.clientHeight?c_d.body.clientHeight:0)),c_d.documentElement.scrollHeight)+'px',display:c_T});};c_i.registerProperties({c_L:{name:'animation',onChange:function(){if(this.c_L&& !this.fade)this.fade=new Uize.Fade({duration:500});}},c_J:'dragRestTime',c_A:'dragStarted',c_s:'inDrag'});
c_i.set({c_L:c_b,c_J:250,c_A:c_b,c_s:c_b,useNewIdSyntax:c_a});c_h.addEventHandler('Window Resized',function(){c_i.resizeShield(c_g)});})();