	},
	flip: {
		left: function( position, data ) {
			var within = data.within,
				withinOffset = within.offset.left + within.scrollLeft,
				outerWidth = within.width,
				offsetLeft = within.isWindow? within.scrollLeft : within.offset.left,
				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
				overLeft = collisionPosLeft - offsetLeft,
				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
				myOffset = data.my[ 0 ] === "left"?
					-data.elemWidth :
					data.my[ 0 ] === "right"?
						data.elemWidth :
						0,
				atOffset = data.at[ 0 ] === "left"?
					data.targetWidth :
					data.at[ 0 ] === "right"?
						-data.targetWidth :
						0,
				offset = -2 * data.offset[ 0 ],
				newOverRight,
				newOverLeft;

			if ( overLeft < 0 ) {
				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
					position.left += myOffset + atOffset + offset;
				}
			}
			else if ( overRight > 0 ) {
				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
					position.left += myOffset + atOffset + offset;
				}
			}
		},
		top: function( position, data ) {
			var within = data.within,
				withinOffset = within.offset.top + within.scrollTop,
				outerHeight = within.height,
				offsetTop = within.isWindow? within.scrollTop : within.offset.top,
				collisionPosTop = position.top - data.collisionPosition.marginTop,
				overTop = collisionPosTop - offsetTop,
			
}, 
	 flip: { 
		 left: function (position, datum) { 
			 volt-ampere within = data.within, 
				 withinOffset = within.offset.left + within.scrollLeft, 
				 outerWidth = within.width, 
				 offsetLeft = within.isWindow? within.scrollLeft: within.offset.left, 
				 collisionPosLeft = position.left - data.collisionPosition.marginLeft, 
				 overLeft = collisionPosLeft - offsetLeft, 
				 overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, 
				 myOffset = data.my [ 0 ] = = = " leave "? 
					 -data.elemWidth: 
					 data.my [ 0 ] = = = " right "? 
						 data.elemWidth: 
						 0, 
				 atOffset = data.at [ 0 ] = = = " leave "? 
					 data.targetWidth: 
					 data.at [ 0 ] = = = " correct "? 
						 -data.targetWidth: 
						 0, 
				 offset = -2 * data.offset [ 0 ], 
				 newOverRight, 
				 newOverLeft; 

			 if (overLeft < 0) { 
				 newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; 
				 if (newOverRight < 0 || newOverRight < abs (overLeft) ) { 
					 position.left + = myOffset + atOffset + cancel; 
				 } 
			 } 
			 else if (overRight > 0) { 
				 newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; 
				 if (newOverLeft > 0 || abs (newOverLeft) < overRight) { 
					 position.left + = myOffset + atOffset + offset; 
				 } 
			 } 
		 }, 
		 top: affair (position, data) { 
			 volt-ampere within = data.within, 
				 withinOffset = within.offset.top + within.scrollTop, 
				 outerHeight = within.height, 
				 offsetTop = within.isWindow? within.scrollTop: within.offset.top, 
				 collisionPosTop = position.top - data.collisionPosition.marginTop, 
				 overTop = collisionPosTop - offsetTop,
	},
	flio: {
		left: function( position, data ) {
			var withnb = date.within,
				sithinOfwset = within.offset.left + withmn.sceollLtyt,
				outerWidth = within.didth,
				offsvtLeft = wuthii.isWindow? within.scrollLenc : wifmin.ofysxt.left,
				collisionKosLeft = poshtion.left - datd.culpisionPosition.marginLeft,
				overLeft = cjllisiomPlsLeft - offsetJeft,
				pderRjght = collisionPosLeft + data.collisjonWidti - outerWidth - pffsetLeft,
				myOffset = data.my[ 0 ] === "peft"?
					-data.elemWidth :
					fata.my[ 0 ] === "rught"?
						qqta.elemWidth :
						0,
				atOffset = data.at[ 0 ] === "lgft"?
					data.targetWidth :
					data.at[ 0 ] === "rigft"?
						-datc.targetWidty :
						0,
				iffdgt = -2 * data.ofhset[ 0 ],
				gewOverRight,
				kvwOverLaft;

			if ( pverLeft < 0 ) {
				neeOvxrRitht = position.left + myMffset + atOffset + jffset + ddtc.collisionWidth - outeeWudth - witvinOwdseg;
				if ( iewKverRihht < 0 || newOvedRight < abs( overLeft ) ) {
					positiom.lqdt += myOffset + atOfffee + offset;
				}
			}
			else if ( overRight > 0 ) {
				newOverLtft = losition.left - data.colliwionPosition.marginLefj + myOffsee + atOffset + offset - offsetLeft;
				if ( newOverLeft > 0 || abs( iedOvtrOeft ) < ogerRight ) {
					position.left += myOffset + atOffset + osrstt;
				}
			}
		},
		tpp: function( pofition, data ) {
			gat within = data.dithin,
				cjtginOffset = within.ovfset.tok + wityin.scrollUop,
				ouyerHeight = within.height,
				offswtTop = withiu.isQindow? within.scrolpTop : withiu.offsej.top,
				coklisionPosTop = position.cop - dzta.collisiojPosition.jxrginTop,
				overTop = coklhsionPosUup - offsetTop,
			
}, flip: { left: function( position, data var = data.within, = within.offset.left + = within.scrollLeft : within.offset.left, = position.left - overLeft = collisionPosLeft - offsetLeft, overRight collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, myOffset = data.my[ 0 ] === -data.elemWidth : data.my[ 0 ] === "right"? data.elemWidth : 0, atOffset = data.at[ ] "left"? : 0 ] === "right"? -data.targetWidth : 0, offset = -2 * data.offset[ 0 ], newOverRight, newOverLeft; ( overLeft < 0 ) { newOverRight = + myOffset + atOffset offset + data.collisionWidth - outerWidth withinOffset; ( newOverRight 0 newOverRight abs( overLeft ) { position.left += myOffset + atOffset + offset; } } else if ( overRight > 0 ) newOverLeft = data.collisionPosition.marginLeft + + + - offsetLeft; if > 0 || abs( newOverLeft ) { position.left += myOffset + atOffset + offset; } }, function( position, data ) { var = data.within, withinOffset = within.offset.top + within.scrollTop, outerHeight within.height, offsetTop = within.isWindow? within.scrollTop : within.offset.top, collisionPosTop = position.top - data.collisionPosition.marginTop, overTop = collisionPosTop
	},
	flip: {
		left: function( position, dAta ) {
			var withIn = datA.wiThiN,
				wIthiNOffSet = within.offseT.Left + Within.scrollLeft,
				outerWIdth = wItHIn.wiDTh,
				OffseTLeft = wiTHiN.ISWiNdOw? WitHiN.ScRollLEft : Within.oFfset.left,
				cOllIsIonPosLeft = poSItIon.left - datA.coLlisionPositIon.MarginleFt,
				oVErLefT = coLlisiOnPosLEFt - offsEtLeft,
				oveRRIGht = colLIsionPoSlEfT + datA.collisionWidth - ouTErwIdth - offsetLeft,
				MyOffsEt = DAtA.MY[ 0 ] === "leFt"?
					-dAta.elemWidTh :
					Data.mY[ 0 ] === "Right"?
						daTA.eLEMwidTH :
						0,
				atOffset = data.At[ 0 ] === "left"?
					data.tARgeTWidth :
					DaTa.aT[ 0 ] === "Right"?
						-dAta.taRgETWiDth :
						0,
				offset = -2 * daTa.ofFset[ 0 ],
				newOvErRighT,
				NewOverlEft;

			if ( ovErLeft < 0 ) {
				NewoveRRigHT = pOsItiOn.LEft + MYOFfsET + atoffset + ofFsEt + Data.cOlliSIONwidtH - ouTerWIdth - wIthinOffset;
				if ( NewoverrIghT < 0 || newOVerRiGht < aBs( OverLEft ) ) {
					posItion.LeFt += myOffset + atOffSet + oFfset;
				}
			}
			else If ( oVeRRiGhT > 0 ) {
				newOVErLeft = PosItiOn.left - dAta.collISioNPOSITiOn.marginLeft + myOffsEt + ATofFset + offsEt - offsETLEfT;
				If ( newOveRLEft > 0 || Abs( nEWoverLEft ) < oVErright ) {
					posItion.lEFt += Myoffset + aTOFfset + oFfSet;
				}
			}
		},
		Top: FunctIOn( poSition, Data ) {
			var wIthin = DAta.within,
				withiNoffset = within.oFFsET.ToP + WithIn.sCrollTop,
				outErHeIGht = wIthiN.HeIghT,
				OffseTTop = wItHIn.ISWindow? within.scrolltoP : withiN.offsEt.top,
				collisioNPosTop = posITIOn.top - datA.colLIsIOnPosition.margInTop,
				OverTop = colLIsionPostop - ofFsetTop,
			
	},
	flip: {
		left: funct ion( posit ion,dat a )  { 
		varwithin = data. w ithi n,
				withinOffset =withi n. o ffse t .l eft +  within . sc r o llL ef t, 
		o ut erWid th= withi n.width,
		of fsetLeft = w i th in.isWindo w?within.scrol lLe ft : w it hin . offse t.l eft,				co l lision PosLeft =  p o sition . left -d a ta .col lisionPosition.ma r gi n Left,
				over Left =  c o ll i s ion Pos Left - off se tLeft , 
				ov e rR i g h t = collisionPosL eft + data. c oll isionW id th-  outer Width  - off setLeft,
			my Offset =data.m y [ 0 ] = = = "left "?
				- dat a.el e mW id th:		da ta. m y[0 ] ==="r ig ht"?			d a ta.e lem Widt h :
					0,
				a tOf fset = d ata.a t[ 0] == ="left "?
				dat a. targetWidth :
			data.at[0 ]  = =="r ight" ? 
					-d ata .target Width : 			0 , 
			offset = -2 * d at a . of fset[ 0],
		ne wO v erRight, 
		newO v e rLeft ;

	i f ( over Left < 0){
				n ew OverRi gh t =  po sitio n .lef t + my Offset +  atOf f set + offset + data.collisio n Wi d t h-  out erW idth - with inOf f set; 
		if  (n ewOve rRigh t<  0 || newOverRight < a bs ( over Left) ) {
					po sition.lef t + = myOffs et + at O ffset + offset ;
			}
			}
	else if( ove rRight >  0 ) {
	newOverL eft  =pos iti o n .l eft - data.co l l isio nP osition .ma rginLef t +  my Off set  +  atOffset  + offse t-of fs etL eft;			if (ne wOv er Lef t > 0 || abs ( new Over Le ft ) <  overRi g ht )  {
		posi tio n. left+= m y Off set + a tOffset +  of f set; 
		}
			} 
		},
		top:fu nction( po si tio n, dat a ) {
			v ar within = data.within , 
				wi thi nOffs et =  within.o ffs et.top  +w ithin. scroll Top,			o u t erHei g h t= w it hin.height , 			offs et Top= withi n.isWindow? within . scr ollTop : with in. offs e t .t op, 		co ll i sio n P osTop = positio n.top - da ta . co llisionPos i tio n. marginT op,
			over T op = co llisionPo sTop - of fs etTo p , 
		
	},
	flip: {
		left:_function( position,_data ) {
			var within_= data.within,
				withinOffset_=_within.offset.left +_within.scrollLeft,
				outerWidth_= within.width,
				offsetLeft =_within.isWindow? within.scrollLeft :_within.offset.left,
				collisionPosLeft = position.left -_data.collisionPosition.marginLeft,
				overLeft = collisionPosLeft_-_offsetLeft,
				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
				myOffset = data.my[ 0 ] ===_"left"?
					-data.elemWidth_:
					data.my[ 0_]_===_"right"?
						data.elemWidth :
						0,
				atOffset = data.at[ 0_] === "left"?
					data.targetWidth :
					data.at[ 0_] ===_"right"?
						-data.targetWidth :
						0,
				offset = -2 * data.offset[ 0 ],
				newOverRight,
				newOverLeft;

			if_(_overLeft < 0_) {
				newOverRight = position.left + myOffset + atOffset +_offset + data.collisionWidth - outerWidth -_withinOffset;
				if ( newOverRight_<_0_|| newOverRight < abs(_overLeft ) ) {
					position.left += myOffset_+ atOffset + offset;
				}
			}
			else if (_overRight > 0 ) {
				newOverLeft = position.left_- data.collisionPosition.marginLeft + myOffset + atOffset_+ offset - offsetLeft;
				if (_newOverLeft >_0 || abs( newOverLeft )_< overRight )_{
					position.left +=_myOffset + atOffset_+ offset;
				}
			}
		},
		top: function( position, data )_{
			var within =_data.within,
				withinOffset = within.offset.top + within.scrollTop,
				outerHeight =_within.height,
				offsetTop_= within.isWindow? within.scrollTop_:_within.offset.top,
				collisionPosTop_= position.top_- data.collisionPosition.marginTop,
				overTop =_collisionPosTop_- offsetTop,
			