? GR0V Shell

GR0V shell

Linux www.koreapackagetour.com 2.6.32-042stab145.3 #1 SMP Thu Jun 11 14:05:04 MSK 2020 x86_64

Path : /home/admin/public_html/old/modules/mod_responsivegallery/js/
File Upload :
Current File : /home/admin/public_html/old/modules/mod_responsivegallery/js/jquery.fancybox.js

/*!


 * fancyBox - jQuery Plugin


 * version: 2.1.4 (Thu, 10 Jan 2013)


 * @requires jQuery v1.6 or later


 *


 * Examples at http://fancyapps.com/fancybox/


 * License: www.fancyapps.com/fancybox/#license


 *


 * Copyright 2012 Janis Skarnelis - janis@fancyapps.com


 *


 */





(function (window, document, $, undefined) {


	"use strict";





	var W = $(window),


		D = $(document),


		F = $.fancybox = function () {


			F.open.apply( this, arguments );


		},


		IE =  navigator.userAgent.match(/msie/),


		didUpdate = null,


		isTouch	  = document.createTouch !== undefined,





		isQuery	= function(obj) {


			return obj && obj.hasOwnProperty && obj instanceof $;


		},


		isString = function(str) {


			return str && $.type(str) === "string";


		},


		isPercentage = function(str) {


			return isString(str) && str.indexOf('%') > 0;


		},


		isScrollable = function(el) {


			return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));


		},


		getScalar = function(orig, dim) {


			var value = parseInt(orig, 10) || 0;





			if (dim && isPercentage(orig)) {


				value = F.getViewport()[ dim ] / 100 * value;


			}





			return Math.ceil(value);


		},


		getValue = function(value, dim) {


			return getScalar(value, dim) + 'px';


		};





	$.extend(F, {


		// The current version of fancyBox


		version: '2.1.4',





		defaults: {


			padding : 15,


			margin  : 20,





			width     : 800,


			height    : 600,


			minWidth  : 100,


			minHeight : 100,


			maxWidth  : 9999,


			maxHeight : 9999,





			autoSize   : true,


			autoHeight : false,


			autoWidth  : false,





			autoResize  : true,


			autoCenter  : !isTouch,


			fitToView   : true,


			aspectRatio : false,


			topRatio    : 0.5,


			leftRatio   : 0.5,





			scrolling : 'auto', // 'auto', 'yes' or 'no'


			wrapCSS   : '',





			arrows     : true,


			closeBtn   : true,


			closeClick : false,


			nextClick  : false,


			mouseWheel : true,


			autoPlay   : false,


			playSpeed  : 3000,


			preload    : 3,


			modal      : false,


			loop       : true,





			ajax  : {


				dataType : 'html',


				headers  : { 'X-fancyBox': true }


			},


			iframe : {


				scrolling : 'auto',


				preload   : true


			},


			swf : {


				wmode: 'transparent',


				allowfullscreen   : 'true',


				allowscriptaccess : 'always'


			},





			keys  : {


				next : {


					13 : 'left', // enter


					34 : 'up',   // page down


					39 : 'left', // right arrow


					40 : 'up'    // down arrow


				},


				prev : {


					8  : 'right',  // backspace


					33 : 'down',   // page up


					37 : 'right',  // left arrow


					38 : 'down'    // up arrow


				},


				close  : [27], // escape key


				play   : [32], // space - start/stop slideshow


				toggle : [70]  // letter "f" - toggle fullscreen


			},





			direction : {


				next : 'left',


				prev : 'right'


			},





			scrollOutside  : true,





			// Override some properties


			index   : 0,


			type    : null,


			href    : null,


			content : null,


			title   : null,





			// HTML templates


			tpl: {


				wrap     : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',


				image    : '<img class="fancybox-image" src="{href}" alt="" />',


				iframe   : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',


				error    : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',


				closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',


				next     : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',


				prev     : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'


			},





			// Properties for each animation type


			// Opening fancyBox


			openEffect  : 'fade', // 'elastic', 'fade' or 'none'


			openSpeed   : 250,


			openEasing  : 'swing',


			openOpacity : true,


			openMethod  : 'zoomIn',





			// Closing fancyBox


			closeEffect  : 'fade', // 'elastic', 'fade' or 'none'


			closeSpeed   : 250,


			closeEasing  : 'swing',


			closeOpacity : true,


			closeMethod  : 'zoomOut',





			// Changing next gallery item


			nextEffect : 'elastic', // 'elastic', 'fade' or 'none'


			nextSpeed  : 250,


			nextEasing : 'swing',


			nextMethod : 'changeIn',





			// Changing previous gallery item


			prevEffect : 'elastic', // 'elastic', 'fade' or 'none'


			prevSpeed  : 250,


			prevEasing : 'swing',


			prevMethod : 'changeOut',





			// Enable default helpers


			helpers : {


				overlay : true,


				title   : true


			},





			// Callbacks


			onCancel     : $.noop, // If canceling


			beforeLoad   : $.noop, // Before loading


			afterLoad    : $.noop, // After loading


			beforeShow   : $.noop, // Before changing in current item


			afterShow    : $.noop, // After opening


			beforeChange : $.noop, // Before changing gallery item


			beforeClose  : $.noop, // Before closing


			afterClose   : $.noop  // After closing


		},





		//Current state


		group    : {}, // Selected group


		opts     : {}, // Group options


		previous : null,  // Previous element


		coming   : null,  // Element being loaded


		current  : null,  // Currently loaded element


		isActive : false, // Is activated


		isOpen   : false, // Is currently open


		isOpened : false, // Have been fully opened at least once





		wrap  : null,


		skin  : null,


		outer : null,


		inner : null,





		player : {


			timer    : null,


			isActive : false


		},





		// Loaders


		ajaxLoad   : null,


		imgPreload : null,





		// Some collections


		transitions : {},


		helpers     : {},





		/*


		 *	Static methods


		 */





		open: function (group, opts) {


			if (!group) {


				return;


			}





			if (!$.isPlainObject(opts)) {


				opts = {};


			}





			// Close if already active


			if (false === F.close(true)) {


				return;


			}





			// Normalize group


			if (!$.isArray(group)) {


				group = isQuery(group) ? $(group).get() : [group];


			}





			// Recheck if the type of each element is `object` and set content type (image, ajax, etc)


			$.each(group, function(i, element) {


				var obj = {},


					href,


					title,


					content,


					type,


					rez,


					hrefParts,


					selector;





				if ($.type(element) === "object") {


					// Check if is DOM element


					if (element.nodeType) {


						element = $(element);


					}





					if (isQuery(element)) {


						obj = {


							href    : element.data('fancybox-href') || element.attr('href'),


							title   : element.data('fancybox-title') || element.attr('title'),


							isDom   : true,


							element : element


						};





						if ($.metadata) {


							$.extend(true, obj, element.metadata());


						}





					} else {


						obj = element;


					}


				}





				href  = opts.href  || obj.href || (isString(element) ? element : null);


				title = opts.title !== undefined ? opts.title : obj.title || '';





				content = opts.content || obj.content;


				type    = content ? 'html' : (opts.type  || obj.type);





				if (!type && obj.isDom) {


					type = element.data('fancybox-type');





					if (!type) {


						rez  = element.prop('class').match(/fancybox\.(\w+)/);


						type = rez ? rez[1] : null;


					}


				}





				if (isString(href)) {


					// Try to guess the content type


					if (!type) {


						if (F.isImage(href)) {


							type = 'image';





						} else if (F.isSWF(href)) {


							type = 'swf';





						} else if (href.charAt(0) === '#') {


							type = 'inline';





						} else if (isString(element)) {


							type    = 'html';


							content = element;


						}


					}





					// Split url into two pieces with source url and content selector, e.g,


					// "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"


					if (type === 'ajax') {


						hrefParts = href.split(/\s+/, 2);


						href      = hrefParts.shift();


						selector  = hrefParts.shift();


					}


				}





				if (!content) {


					if (type === 'inline') {


						if (href) {


							content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7





						} else if (obj.isDom) {


							content = element;


						}





					} else if (type === 'html') {


						content = href;





					} else if (!type && !href && obj.isDom) {


						type    = 'inline';


						content = element;


					}


				}





				$.extend(obj, {


					href     : href,


					type     : type,


					content  : content,


					title    : title,


					selector : selector


				});





				group[ i ] = obj;


			});





			// Extend the defaults


			F.opts = $.extend(true, {}, F.defaults, opts);





			// All options are merged recursive except keys


			if (opts.keys !== undefined) {


				F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;


			}





			F.group = group;





			return F._start(F.opts.index);


		},





		// Cancel image loading or abort ajax request


		cancel: function () {


			var coming = F.coming;





			if (!coming || false === F.trigger('onCancel')) {


				return;


			}





			F.hideLoading();





			if (F.ajaxLoad) {


				F.ajaxLoad.abort();


			}





			F.ajaxLoad = null;





			if (F.imgPreload) {


				F.imgPreload.onload = F.imgPreload.onerror = null;


			}





			if (coming.wrap) {


				coming.wrap.stop(true, true).trigger('onReset').remove();


			}





			F.coming = null;





			// If the first item has been canceled, then clear everything


			if (!F.current) {


				F._afterZoomOut( coming );


			}


		},





		// Start closing animation if is open; remove immediately if opening/closing


		close: function (event) {


			F.cancel();





			if (false === F.trigger('beforeClose')) {


				return;


			}





			F.unbindEvents();





			if (!F.isActive) {


				return;


			}





			if (!F.isOpen || event === true) {


				$('.fancybox-wrap').stop(true).trigger('onReset').remove();





				F._afterZoomOut();





			} else {


				F.isOpen = F.isOpened = false;


				F.isClosing = true;





				$('.fancybox-item, .fancybox-nav').remove();





				F.wrap.stop(true, true).removeClass('fancybox-opened');





				F.transitions[ F.current.closeMethod ]();


			}


		},





		// Manage slideshow:


		//   $.fancybox.play(); - toggle slideshow


		//   $.fancybox.play( true ); - start


		//   $.fancybox.play( false ); - stop


		play: function ( action ) {


			var clear = function () {


					clearTimeout(F.player.timer);


				},


				set = function () {


					clear();





					if (F.current && F.player.isActive) {


						F.player.timer = setTimeout(F.next, F.current.playSpeed);


					}


				},


				stop = function () {


					clear();





					$('body').unbind('.player');





					F.player.isActive = false;





					F.trigger('onPlayEnd');


				},


				start = function () {


					if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {


						F.player.isActive = true;





						$('body').bind({


							'afterShow.player onUpdate.player'   : set,


							'onCancel.player beforeClose.player' : stop,


							'beforeLoad.player' : clear


						});





						set();





						F.trigger('onPlayStart');


					}


				};





			if (action === true || (!F.player.isActive && action !== false)) {


				start();


			} else {


				stop();


			}


		},





		// Navigate to next gallery item


		next: function ( direction ) {


			var current = F.current;





			if (current) {


				if (!isString(direction)) {


					direction = current.direction.next;


				}





				F.jumpto(current.index + 1, direction, 'next');


			}


		},





		// Navigate to previous gallery item


		prev: function ( direction ) {


			var current = F.current;





			if (current) {


				if (!isString(direction)) {


					direction = current.direction.prev;


				}





				F.jumpto(current.index - 1, direction, 'prev');


			}


		},





		// Navigate to gallery item by index


		jumpto: function ( index, direction, router ) {


			var current = F.current;





			if (!current) {


				return;


			}





			index = getScalar(index);





			F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];


			F.router    = router || 'jumpto';





			if (current.loop) {


				if (index < 0) {


					index = current.group.length + (index % current.group.length);


				}





				index = index % current.group.length;


			}





			if (current.group[ index ] !== undefined) {


				F.cancel();





				F._start(index);


			}


		},





		// Center inside viewport and toggle position type to fixed or absolute if needed


		reposition: function (e, onlyAbsolute) {


			var current = F.current,


				wrap    = current ? current.wrap : null,


				pos;





			if (wrap) {


				pos = F._getPosition(onlyAbsolute);





				if (e && e.type === 'scroll') {


					delete pos.position;





					wrap.stop(true, true).animate(pos, 200);





				} else {


					wrap.css(pos);





					current.pos = $.extend({}, current.dim, pos);


				}


			}


		},





		update: function (e) {


			var type = (e && e.type),


				anyway = !type || type === 'orientationchange';





			if (anyway) {


				clearTimeout(didUpdate);





				didUpdate = null;


			}





			if (!F.isOpen || didUpdate) {


				return;


			}





			didUpdate = setTimeout(function() {


				var current = F.current;





				if (!current || F.isClosing) {


					return;


				}





				F.wrap.removeClass('fancybox-tmp');





				if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {


					F._setDimension();


				}





				if (!(type === 'scroll' && current.canShrink)) {


					F.reposition(e);


				}





				F.trigger('onUpdate');





				didUpdate = null;





			}, (anyway && !isTouch ? 0 : 300));


		},





		// Shrink content to fit inside viewport or restore if resized


		toggle: function ( action ) {


			if (F.isOpen) {


				F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;





				// Help browser to restore document dimensions


				if (isTouch) {


					F.wrap.removeAttr('style').addClass('fancybox-tmp');





					F.trigger('onUpdate');


				}





				F.update();


			}


		},





		hideLoading: function () {


			D.unbind('.loading');





			$('#fancybox-loading').remove();


		},





		showLoading: function () {


			var el, viewport;





			F.hideLoading();





			el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');





			// If user will press the escape-button, the request will be canceled


			D.bind('keydown.loading', function(e) {


				if ((e.which || e.keyCode) === 27) {


					e.preventDefault();





					F.cancel();


				}


			});





			if (!F.defaults.fixed) {


				viewport = F.getViewport();





				el.css({


					position : 'absolute',


					top  : (viewport.h * 0.5) + viewport.y,


					left : (viewport.w * 0.5) + viewport.x


				});


			}


		},





		getViewport: function () {


			var locked = (F.current && F.current.locked) || false,


				rez    = {


					x: W.scrollLeft(),


					y: W.scrollTop()


				};





			if (locked) {


				rez.w = locked[0].clientWidth;


				rez.h = locked[0].clientHeight;





			} else {


				// See http://bugs.jquery.com/ticket/6724


				rez.w = isTouch && window.innerWidth  ? window.innerWidth  : W.width();


				rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();


			}





			return rez;


		},





		// Unbind the keyboard / clicking actions


		unbindEvents: function () {


			if (F.wrap && isQuery(F.wrap)) {


				F.wrap.unbind('.fb');


			}





			D.unbind('.fb');


			W.unbind('.fb');


		},





		bindEvents: function () {


			var current = F.current,


				keys;





			if (!current) {


				return;


			}





			// Changing document height on iOS devices triggers a 'resize' event,


			// that can change document height... repeating infinitely


			W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);





			keys = current.keys;





			if (keys) {


				D.bind('keydown.fb', function (e) {


					var code   = e.which || e.keyCode,


						target = e.target || e.srcElement;





					// Skip esc key if loading, because showLoading will cancel preloading


					if (code === 27 && F.coming) {


						return false;


					}





					// Ignore key combinations and key events within form elements


					if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {


						$.each(keys, function(i, val) {


							if (current.group.length > 1 && val[ code ] !== undefined) {


								F[ i ]( val[ code ] );





								e.preventDefault();


								return false;


							}





							if ($.inArray(code, val) > -1) {


								F[ i ] ();





								e.preventDefault();


								return false;


							}


						});


					}


				});


			}





			if ($.fn.mousewheel && current.mouseWheel) {


				F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {


					var target = e.target || null,


						parent = $(target),


						canScroll = false;





					while (parent.length) {


						if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {


							break;


						}





						canScroll = isScrollable( parent[0] );


						parent    = $(parent).parent();


					}





					if (delta !== 0 && !canScroll) {


						if (F.group.length > 1 && !current.canShrink) {


							if (deltaY > 0 || deltaX > 0) {


								F.prev( deltaY > 0 ? 'down' : 'left' );





							} else if (deltaY < 0 || deltaX < 0) {


								F.next( deltaY < 0 ? 'up' : 'right' );


							}





							e.preventDefault();


						}


					}


				});


			}


		},





		trigger: function (event, o) {


			var ret, obj = o || F.coming || F.current;





			if (!obj) {


				return;


			}





			if ($.isFunction( obj[event] )) {


				ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));


			}





			if (ret === false) {


				return false;


			}





			if (obj.helpers) {


				$.each(obj.helpers, function (helper, opts) {


					if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {


						opts = $.extend(true, {}, F.helpers[helper].defaults, opts);





						F.helpers[helper][event](opts, obj);


					}


				});


			}





			$.event.trigger(event + '.fb');


		},





		isImage: function (str) {


			return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$)/i);


		},





		isSWF: function (str) {


			return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);


		},





		_start: function (index) {


			var coming = {},


				obj,


				href,


				type,


				margin,


				padding;





			index = getScalar( index );


			obj   = F.group[ index ] || null;





			if (!obj) {


				return false;


			}





			coming = $.extend(true, {}, F.opts, obj);





			// Convert margin and padding properties to array - top, right, bottom, left


			margin  = coming.margin;


			padding = coming.padding;





			if ($.type(margin) === 'number') {


				coming.margin = [margin, margin, margin, margin];


			}





			if ($.type(padding) === 'number') {


				coming.padding = [padding, padding, padding, padding];


			}





			// 'modal' propery is just a shortcut


			if (coming.modal) {


				$.extend(true, coming, {


					closeBtn   : false,


					closeClick : false,


					nextClick  : false,


					arrows     : false,


					mouseWheel : false,


					keys       : null,


					helpers: {


						overlay : {


							closeClick : false


						}


					}


				});


			}





			// 'autoSize' property is a shortcut, too


			if (coming.autoSize) {


				coming.autoWidth = coming.autoHeight = true;


			}





			if (coming.width === 'auto') {


				coming.autoWidth = true;


			}





			if (coming.height === 'auto') {


				coming.autoHeight = true;


			}





			/*


			 * Add reference to the group, so it`s possible to access from callbacks, example:


			 * afterLoad : function() {


			 *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');


			 * }


			 */





			coming.group  = F.group;


			coming.index  = index;





			// Give a chance for callback or helpers to update coming item (type, title, etc)


			F.coming = coming;





			if (false === F.trigger('beforeLoad')) {


				F.coming = null;





				return;


			}





			type = coming.type;


			href = coming.href;





			if (!type) {


				F.coming = null;





				//If we can not determine content type then drop silently or display next/prev item if looping through gallery


				if (F.current && F.router && F.router !== 'jumpto') {


					F.current.index = index;





					return F[ F.router ]( F.direction );


				}





				return false;


			}





			F.isActive = true;





			if (type === 'image' || type === 'swf') {


				coming.autoHeight = coming.autoWidth = false;


				coming.scrolling  = 'visible';


			}





			if (type === 'image') {


				coming.aspectRatio = true;


			}





			if (type === 'iframe' && isTouch) {


				coming.scrolling = 'scroll';


			}





			// Build the neccessary markup


			coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );





			$.extend(coming, {


				skin  : $('.fancybox-skin',  coming.wrap),


				outer : $('.fancybox-outer', coming.wrap),


				inner : $('.fancybox-inner', coming.wrap)


			});





			$.each(["Top", "Right", "Bottom", "Left"], function(i, v) {


				coming.skin.css('padding' + v, getValue(coming.padding[ i ]));


			});





			F.trigger('onReady');





			// Check before try to load; 'inline' and 'html' types need content, others - href


			if (type === 'inline' || type === 'html') {


				if (!coming.content || !coming.content.length) {


					return F._error( 'content' );


				}





			} else if (!href) {


				return F._error( 'href' );


			}





			if (type === 'image') {


				F._loadImage();





			} else if (type === 'ajax') {


				F._loadAjax();





			} else if (type === 'iframe') {


				F._loadIframe();





			} else {


				F._afterLoad();


			}


		},





		_error: function ( type ) {


			$.extend(F.coming, {


				type       : 'html',


				autoWidth  : true,


				autoHeight : true,


				minWidth   : 0,


				minHeight  : 0,


				scrolling  : 'no',


				hasError   : type,


				content    : F.coming.tpl.error


			});





			F._afterLoad();


		},





		_loadImage: function () {


			// Reset preload image so it is later possible to check "complete" property


			var img = F.imgPreload = new Image();





			img.onload = function () {


				this.onload = this.onerror = null;





				F.coming.width  = this.width;


				F.coming.height = this.height;





				F._afterLoad();


			};





			img.onerror = function () {


				this.onload = this.onerror = null;





				F._error( 'image' );


			};





			img.src = F.coming.href;





			if (img.complete !== true) {


				F.showLoading();


			}


		},





		_loadAjax: function () {


			var coming = F.coming;





			F.showLoading();





			F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {


				url: coming.href,


				error: function (jqXHR, textStatus) {


					if (F.coming && textStatus !== 'abort') {


						F._error( 'ajax', jqXHR );





					} else {


						F.hideLoading();


					}


				},


				success: function (data, textStatus) {


					if (textStatus === 'success') {


						coming.content = data;





						F._afterLoad();


					}


				}


			}));


		},





		_loadIframe: function() {


			var coming = F.coming,


				iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))


					.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)


					.attr('src', coming.href);





			// This helps IE


			$(coming.wrap).bind('onReset', function () {


				try {


					$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();


				} catch (e) {}


			});





			if (coming.iframe.preload) {


				F.showLoading();





				iframe.one('load', function() {


					$(this).data('ready', 1);





					// iOS will lose scrolling if we resize


					if (!isTouch) {


						$(this).bind('load.fb', F.update);


					}





					// Without this trick:


					//   - iframe won't scroll on iOS devices


					//   - IE7 sometimes displays empty iframe


					$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();





					F._afterLoad();


				});


			}





			coming.content = iframe.appendTo( coming.inner );





			if (!coming.iframe.preload) {


				F._afterLoad();


			}


		},





		_preloadImages: function() {


			var group   = F.group,


				current = F.current,


				len     = group.length,


				cnt     = current.preload ? Math.min(current.preload, len - 1) : 0,


				item,


				i;





			for (i = 1; i <= cnt; i += 1) {


				item = group[ (current.index + i ) % len ];





				if (item.type === 'image' && item.href) {


					new Image().src = item.href;


				}


			}


		},





		_afterLoad: function () {


			var coming   = F.coming,


				previous = F.current,


				placeholder = 'fancybox-placeholder',


				current,


				content,


				type,


				scrolling,


				href,


				embed;





			F.hideLoading();





			if (!coming || F.isActive === false) {


				return;


			}





			if (false === F.trigger('afterLoad', coming, previous)) {


				coming.wrap.stop(true).trigger('onReset').remove();





				F.coming = null;





				return;


			}





			if (previous) {


				F.trigger('beforeChange', previous);





				previous.wrap.stop(true).removeClass('fancybox-opened')


					.find('.fancybox-item, .fancybox-nav')


					.remove();


			}





			F.unbindEvents();





			current   = coming;


			content   = coming.content;


			type      = coming.type;


			scrolling = coming.scrolling;





			$.extend(F, {


				wrap  : current.wrap,


				skin  : current.skin,


				outer : current.outer,


				inner : current.inner,


				current  : current,


				previous : previous


			});





			href = current.href;





			switch (type) {


				case 'inline':


				case 'ajax':


				case 'html':


					if (current.selector) {


						content = $('<div>').html(content).find(current.selector);





					} else if (isQuery(content)) {


						if (!content.data(placeholder)) {


							content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() );


						}





						content = content.show().detach();





						current.wrap.bind('onReset', function () {


							if ($(this).find(content).length) {


								content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);


							}


						});


					}


				break;





				case 'image':


					content = current.tpl.image.replace('{href}', href);


				break;





				case 'swf':


					content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';


					embed   = '';





					$.each(current.swf, function(name, val) {


						content += '<param name="' + name + '" value="' + val + '"></param>';


						embed   += ' ' + name + '="' + val + '"';


					});





					content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>';


				break;


			}





			if (!(isQuery(content) && content.parent().is(current.inner))) {


				current.inner.append( content );


			}





			// Give a chance for helpers or callbacks to update elements


			F.trigger('beforeShow');





			// Set scrolling before calculating dimensions


			current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));





			// Set initial dimensions and start position


			F._setDimension();





			F.reposition();





			F.isOpen = false;


			F.coming = null;





			F.bindEvents();





			if (!F.isOpened) {


				$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();





			} else if (previous.prevMethod) {


				F.transitions[ previous.prevMethod ]();


			}





			F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();





			F._preloadImages();


		},





		_setDimension: function () {


			var viewport   = F.getViewport(),


				steps      = 0,


				canShrink  = false,


				canExpand  = false,


				wrap       = F.wrap,


				skin       = F.skin,


				inner      = F.inner,


				current    = F.current,


				width      = current.width,


				height     = current.height,


				minWidth   = current.minWidth,


				minHeight  = current.minHeight,


				maxWidth   = current.maxWidth,


				maxHeight  = current.maxHeight,


				scrolling  = current.scrolling,


				scrollOut  = current.scrollOutside ? current.scrollbarWidth : 0,


				margin     = current.margin,


				wMargin    = getScalar(margin[1] + margin[3]),


				hMargin    = getScalar(margin[0] + margin[2]),


				wPadding,


				hPadding,


				wSpace,


				hSpace,


				origWidth,


				origHeight,


				origMaxWidth,


				origMaxHeight,


				ratio,


				width_,


				height_,


				maxWidth_,


				maxHeight_,


				iframe,


				body;





			// Reset dimensions so we could re-check actual size


			wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');





			wPadding = getScalar(skin.outerWidth(true)  - skin.width());


			hPadding = getScalar(skin.outerHeight(true) - skin.height());





			// Any space between content and viewport (margin, padding, border, title)


			wSpace = wMargin + wPadding;


			hSpace = hMargin + hPadding;





			origWidth  = isPercentage(width)  ? (viewport.w - wSpace) * getScalar(width)  / 100 : width;


			origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;





			if (current.type === 'iframe') {


				iframe = current.content;





				if (current.autoHeight && iframe.data('ready') === 1) {


					try {


						if (iframe[0].contentWindow.document.location) {


							inner.width( origWidth ).height(9999);





							body = iframe.contents().find('body');





							if (scrollOut) {


								body.css('overflow-x', 'hidden');


							}





							origHeight = body.height();


						}





					} catch (e) {}


				}





			} else if (current.autoWidth || current.autoHeight) {


				inner.addClass( 'fancybox-tmp' );





				// Set width or height in case we need to calculate only one dimension


				if (!current.autoWidth) {


					inner.width( origWidth );


				}





				if (!current.autoHeight) {


					inner.height( origHeight );


				}





				if (current.autoWidth) {


					origWidth = inner.width();


				}





				if (current.autoHeight) {


					origHeight = inner.height();


				}





				inner.removeClass( 'fancybox-tmp' );


			}





			width  = getScalar( origWidth );


			height = getScalar( origHeight );





			ratio  = origWidth / origHeight;





			// Calculations for the content


			minWidth  = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);


			maxWidth  = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);





			minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);


			maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);





			// These will be used to determine if wrap can fit in the viewport


			origMaxWidth  = maxWidth;


			origMaxHeight = maxHeight;





			if (current.fitToView) {


				maxWidth  = Math.min(viewport.w - wSpace, maxWidth);


				maxHeight = Math.min(viewport.h - hSpace, maxHeight);


			}





			maxWidth_  = viewport.w - wMargin;


			maxHeight_ = viewport.h - hMargin;





			if (current.aspectRatio) {


				if (width > maxWidth) {


					width  = maxWidth;


					height = getScalar(width / ratio);


				}





				if (height > maxHeight) {


					height = maxHeight;


					width  = getScalar(height * ratio);


				}





				if (width < minWidth) {


					width  = minWidth;


					height = getScalar(width / ratio);


				}





				if (height < minHeight) {


					height = minHeight;


					width  = getScalar(height * ratio);


				}





			} else {


				width = Math.max(minWidth, Math.min(width, maxWidth));





				if (current.autoHeight && current.type !== 'iframe') {


					inner.width( width );





					height = inner.height();


				}





				height = Math.max(minHeight, Math.min(height, maxHeight));


			}





			// Try to fit inside viewport (including the title)


			if (current.fitToView) {


				inner.width( width ).height( height );





				wrap.width( width + wPadding );





				// Real wrap dimensions


				width_  = wrap.width();


				height_ = wrap.height();





				if (current.aspectRatio) {


					while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {


						if (steps++ > 19) {


							break;


						}





						height = Math.max(minHeight, Math.min(maxHeight, height - 10));


						width  = getScalar(height * ratio);





						if (width < minWidth) {


							width  = minWidth;


							height = getScalar(width / ratio);


						}





						if (width > maxWidth) {


							width  = maxWidth;


							height = getScalar(width / ratio);


						}





						inner.width( width ).height( height );





						wrap.width( width + wPadding );





						width_  = wrap.width();


						height_ = wrap.height();


					}





				} else {


					width  = Math.max(minWidth,  Math.min(width,  width  - (width_  - maxWidth_)));


					height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));


				}


			}





			if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {


				width += scrollOut;


			}





			inner.width( width ).height( height );





			wrap.width( width + wPadding );





			width_  = wrap.width();


			height_ = wrap.height();





			canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;


			canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));





			$.extend(current, {


				dim : {


					width	: getValue( width_ ),


					height	: getValue( height_ )


				},


				origWidth  : origWidth,


				origHeight : origHeight,


				canShrink  : canShrink,


				canExpand  : canExpand,


				wPadding   : wPadding,


				hPadding   : hPadding,


				wrapSpace  : height_ - skin.outerHeight(true),


				skinSpace  : skin.height() - height


			});





			if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {


				inner.height('auto');


			}


		},





		_getPosition: function (onlyAbsolute) {


			var current  = F.current,


				viewport = F.getViewport(),


				margin   = current.margin,


				width    = F.wrap.width()  + margin[1] + margin[3],


				height   = F.wrap.height() + margin[0] + margin[2],


				rez      = {


					position: 'absolute',


					top  : margin[0],


					left : margin[3]


				};





			if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {


				rez.position = 'fixed';





			} else if (!current.locked) {


				rez.top  += viewport.y;


				rez.left += viewport.x;


			}





			rez.top  = getValue(Math.max(rez.top,  rez.top  + ((viewport.h - height) * current.topRatio)));


			rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width)  * current.leftRatio)));





			return rez;


		},





		_afterZoomIn: function () {


			var current = F.current;





			if (!current) {


				return;


			}





			F.isOpen = F.isOpened = true;





			F.wrap.css('overflow', 'visible').addClass('fancybox-opened');





			F.update();





			// Assign a click event


			if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {


				F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {


					if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {


						e.preventDefault();





						F[ current.closeClick ? 'close' : 'next' ]();


					}


				});


			}





			// Create a close button


			if (current.closeBtn) {


				$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {


					e.preventDefault();





					F.close();


				});


			}





			// Create navigation arrows


			if (current.arrows && F.group.length > 1) {


				if (current.loop || current.index > 0) {


					$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);


				}





				if (current.loop || current.index < F.group.length - 1) {


					$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);


				}


			}





			F.trigger('afterShow');





			// Stop the slideshow if this is the last item


			if (!current.loop && current.index === current.group.length - 1) {


				F.play( false );





			} else if (F.opts.autoPlay && !F.player.isActive) {


				F.opts.autoPlay = false;





				F.play();


			}


		},





		_afterZoomOut: function ( obj ) {


			obj = obj || F.current;





			$('.fancybox-wrap').trigger('onReset').remove();





			$.extend(F, {


				group  : {},


				opts   : {},


				router : false,


				current   : null,


				isActive  : false,


				isOpened  : false,


				isOpen    : false,


				isClosing : false,


				wrap   : null,


				skin   : null,


				outer  : null,


				inner  : null


			});





			F.trigger('afterClose', obj);


		}


	});





	/*


	 *	Default transitions


	 */





	F.transitions = {


		getOrigPosition: function () {


			var current  = F.current,


				element  = current.element,


				orig     = current.orig,


				pos      = {},


				width    = 50,


				height   = 50,


				hPadding = current.hPadding,


				wPadding = current.wPadding,


				viewport = F.getViewport();





			if (!orig && current.isDom && element.is(':visible')) {


				orig = element.find('img:first');





				if (!orig.length) {


					orig = element;


				}


			}





			if (isQuery(orig)) {


				pos = orig.offset();





				if (orig.is('img')) {


					width  = orig.outerWidth();


					height = orig.outerHeight();


				}





			} else {


				pos.top  = viewport.y + (viewport.h - height) * current.topRatio;


				pos.left = viewport.x + (viewport.w - width)  * current.leftRatio;


			}





			if (F.wrap.css('position') === 'fixed' || current.locked) {


				pos.top  -= viewport.y;


				pos.left -= viewport.x;


			}





			pos = {


				top     : getValue(pos.top  - hPadding * current.topRatio),


				left    : getValue(pos.left - wPadding * current.leftRatio),


				width   : getValue(width  + wPadding),


				height  : getValue(height + hPadding)


			};





			return pos;


		},





		step: function (now, fx) {


			var ratio,


				padding,


				value,


				prop       = fx.prop,


				current    = F.current,


				wrapSpace  = current.wrapSpace,


				skinSpace  = current.skinSpace;





			if (prop === 'width' || prop === 'height') {


				ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);





				if (F.isClosing) {


					ratio = 1 - ratio;


				}





				padding = prop === 'width' ? current.wPadding : current.hPadding;


				value   = now - padding;





				F.skin[ prop ](  getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) ) );


				F.inner[ prop ]( getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );


			}


		},





		zoomIn: function () {


			var current  = F.current,


				startPos = current.pos,


				effect   = current.openEffect,


				elastic  = effect === 'elastic',


				endPos   = $.extend({opacity : 1}, startPos);





			// Remove "position" property that breaks older IE


			delete endPos.position;





			if (elastic) {


				startPos = this.getOrigPosition();





				if (current.openOpacity) {


					startPos.opacity = 0.1;


				}





			} else if (effect === 'fade') {


				startPos.opacity = 0.1;


			}





			F.wrap.css(startPos).animate(endPos, {


				duration : effect === 'none' ? 0 : current.openSpeed,


				easing   : current.openEasing,


				step     : elastic ? this.step : null,


				complete : F._afterZoomIn


			});


		},





		zoomOut: function () {


			var current  = F.current,


				effect   = current.closeEffect,


				elastic  = effect === 'elastic',


				endPos   = {opacity : 0.1};





			if (elastic) {


				endPos = this.getOrigPosition();





				if (current.closeOpacity) {


					endPos.opacity = 0.1;


				}


			}





			F.wrap.animate(endPos, {


				duration : effect === 'none' ? 0 : current.closeSpeed,


				easing   : current.closeEasing,


				step     : elastic ? this.step : null,


				complete : F._afterZoomOut


			});


		},





		changeIn: function () {


			var current   = F.current,


				effect    = current.nextEffect,


				startPos  = current.pos,


				endPos    = { opacity : 1 },


				direction = F.direction,


				distance  = 200,


				field;





			startPos.opacity = 0.1;





			if (effect === 'elastic') {


				field = direction === 'down' || direction === 'up' ? 'top' : 'left';





				if (direction === 'down' || direction === 'right') {


					startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);


					endPos[ field ]   = '+=' + distance + 'px';





				} else {


					startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);


					endPos[ field ]   = '-=' + distance + 'px';


				}


			}





			// Workaround for http://bugs.jquery.com/ticket/12273


			if (effect === 'none') {


				F._afterZoomIn();





			} else {


				F.wrap.css(startPos).animate(endPos, {


					duration : current.nextSpeed,


					easing   : current.nextEasing,


					complete : F._afterZoomIn


				});


			}


		},





		changeOut: function () {


			var previous  = F.previous,


				effect    = previous.prevEffect,


				endPos    = { opacity : 0.1 },


				direction = F.direction,


				distance  = 200;





			if (effect === 'elastic') {


				endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';


			}





			previous.wrap.animate(endPos, {


				duration : effect === 'none' ? 0 : previous.prevSpeed,


				easing   : previous.prevEasing,


				complete : function () {


					$(this).trigger('onReset').remove();


				}


			});


		}


	};





	/*


	 *	Overlay helper


	 */





	F.helpers.overlay = {


		defaults : {


			closeClick : true,  // if true, fancyBox will be closed when user clicks on the overlay


			speedOut   : 200,   // duration of fadeOut animation


			showEarly  : true,  // indicates if should be opened immediately or wait until the content is ready


			css        : {},    // custom CSS properties


			locked     : !isTouch,  // if true, the content will be locked into overlay


			fixed      : true   // if false, the overlay CSS position property will not be set to "fixed"


		},





		overlay : null,   // current handle


		fixed   : false,  // indicates if the overlay has position "fixed"





		// Public methods


		create : function(opts) {


			opts = $.extend({}, this.defaults, opts);





			if (this.overlay) {


				this.close();


			}





			this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );


			this.fixed   = false;





			if (opts.fixed && F.defaults.fixed) {


				this.overlay.addClass('fancybox-overlay-fixed');





				this.fixed = true;


			}


		},





		open : function(opts) {


			var that = this;





			opts = $.extend({}, this.defaults, opts);





			if (this.overlay) {


				this.overlay.unbind('.overlay').width('auto').height('auto');





			} else {


				this.create(opts);


			}





			if (!this.fixed) {


				W.bind('resize.overlay', $.proxy( this.update, this) );





				this.update();


			}





			if (opts.closeClick) {


				this.overlay.bind('click.overlay', function(e) {


					if ($(e.target).hasClass('fancybox-overlay')) {


						if (F.isActive) {


							F.close();


						} else {


							that.close();


						}


					}


				});


			}





			this.overlay.css( opts.css ).show();


		},





		close : function() {


			$('.fancybox-overlay').remove();





			W.unbind('resize.overlay');





			this.overlay = null;





			if (this.margin !== false) {


				$('body').css('margin-right', this.margin);





				this.margin = false;


			}





			if (this.el) {


				this.el.removeClass('fancybox-lock');


			}


		},





		// Private, callbacks





		update : function () {


			var width = '100%', offsetWidth;





			// Reset width/height so it will not mess


			this.overlay.width(width).height('100%');





			// jQuery does not return reliable result for IE


			if (IE) {


				offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);





				if (D.width() > offsetWidth) {


					width = D.width();


				}





			} else if (D.width() > W.width()) {


				width = D.width();


			}





			this.overlay.width(width).height(D.height());


		},





		// This is where we can manipulate DOM, because later it would cause iframes to reload


		onReady : function (opts, obj) {


			$('.fancybox-overlay').stop(true, true);





			if (!this.overlay) {


				this.margin = D.height() > W.height() || $('body').css('overflow-y') === 'scroll' ? $('body').css('margin-right') : false;


				this.el     = document.all && !document.querySelector ? $('html') : $('body');





				this.create(opts);


			}





			if (opts.locked && this.fixed) {


				obj.locked = this.overlay.append( obj.wrap );


				obj.fixed  = false;


			}





			if (opts.showEarly === true) {


				this.beforeShow.apply(this, arguments);


			}


		},





		beforeShow : function(opts, obj) {


			if (obj.locked) {


				this.el.addClass('fancybox-lock');





				if (this.margin !== false) {


					$('body').css('margin-right', getScalar( this.margin ) + obj.scrollbarWidth);


				}


			}





			this.open(opts);


		},





		onUpdate : function() {


			if (!this.fixed) {


				this.update();


			}


		},





		afterClose: function (opts) {


			// Remove overlay if exists and fancyBox is not opening


			// (e.g., it is not being open using afterClose callback)


			if (this.overlay && !F.isActive) {


				this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));


			}


		}


	};





	/*


	 *	Title helper


	 */





	F.helpers.title = {


		defaults : {


			type     : 'float', // 'float', 'inside', 'outside' or 'over',


			position : 'bottom' // 'top' or 'bottom'


		},





		beforeShow: function (opts) {


			var current = F.current,


				text    = current.title,


				type    = opts.type,


				title,


				target;





			if ($.isFunction(text)) {


				text = text.call(current.element, current);


			}





			if (!isString(text) || $.trim(text) === '') {


				return;


			}





			title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>');





			switch (type) {


				case 'inside':


					target = F.skin;


				break;





				case 'outside':


					target = F.wrap;


				break;





				case 'over':


					target = F.inner;


				break;





				default: // 'float'


					target = F.skin;





					title.appendTo('body');





					if (IE) {


						title.width( title.width() );


					}





					title.wrapInner('<span class="child"></span>');





					//Increase bottom margin so this title will also fit into viewport


					F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );


				break;


			}





			title[ (opts.position === 'top' ? 'prependTo'  : 'appendTo') ](target);


		}


	};





	// jQuery plugin initialization


	$.fn.fancybox = function (options) {


		var index,


			that     = $(this),


			selector = this.selector || '',


			run      = function(e) {


				var what = $(this).blur(), idx = index, relType, relVal;





				if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {


					relType = options.groupAttr || 'data-fancybox-group';


					relVal  = what.attr(relType);





					if (!relVal) {


						relType = 'rel';


						relVal  = what.get(0)[ relType ];


					}





					if (relVal && relVal !== '' && relVal !== 'nofollow') {


						what = selector.length ? $(selector) : that;


						what = what.filter('[' + relType + '="' + relVal + '"]');


						idx  = what.index(this);


					}





					options.index = idx;





					// Stop an event from bubbling if everything is fine


					if (F.open(what, options) !== false) {


						e.preventDefault();


					}


				}


			};





		options = options || {};


		index   = options.index || 0;





		if (!selector || options.live === false) {


			that.unbind('click.fb-start').bind('click.fb-start', run);





		} else {


			D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);


		}





		this.filter('[data-fancybox-start=1]').trigger('click');





		return this;


	};





	// Tests that need a body at doc ready


	D.ready(function() {


		if ( $.scrollbarWidth === undefined ) {


			// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth


			$.scrollbarWidth = function() {


				var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'),


					child  = parent.children(),


					width  = child.innerWidth() - child.height( 99 ).innerWidth();





				parent.remove();





				return width;


			};


		}





		if ( $.support.fixedPosition === undefined ) {


			$.support.fixedPosition = (function() {


				var elem  = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'),


					fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );





				elem.remove();





				return fixed;


			}());


		}





		$.extend(F.defaults, {


			scrollbarWidth : $.scrollbarWidth(),


			fixed  : $.support.fixedPosition,


			parent : $('body')


		});


	});





}(window, document, jQuery));

T1KUS90T
  root-grov@210.1.60.28:~$