www.pudn.com > restrant.zip > init.js, change:2013-12-31,size:24574b


 
	var _5grid_settings = { 
		breakpoint_1000px:				1200, 
		breakpoint_mobile:				480, 
		prefix:							'style', 
		use:							'mobile,desktop', 
		viewport_is1000px:				1040, 
		viewport_is1200px:				1280, 
		//////////////////////////////////////////////////////// 
		mobileUI:						0, 
		mobileUI_hideAddressBar:		0, 
		mobileUI_openerText:			'=', 
		mobileUI_openerWidth:			60, 
		mobileUI_slideSpeed:			200, 
		mobileUI_theme:					'modern', 
		mobileUI_themeNavColor:			'#1f1f1f', 
		mobileUI_themeTitleBarColor:	'#444444', 
		mobileUI_titleBarFixed:			1, 
		mobileUI_titleBarHeight:		44, 
		mobileUI_titleBarOverlaid:		0, 
		//////////////////////////////////////////////////////// 
		mobileUI_navInnerPad:			0, 
		mobileUI_force:					0, 
		mobileUI_tapDelay:				200, 
		mobileUI_orientationDelay:		0, 
		debug_noExtLoad:				0 
	}; 
 
/*********************/ 
/* Helper plugins    */ 
/*********************/ 
 
	/* jQuery resize event - v1.1 - 3/14/2010 http://benalman.com/projects/jquery-resize-plugin/ | Copyright (c) 2010 "Cowboy" Ben Alman | Dual licensed under the MIT and GPL licenses. | http://benalman.com/about/license/ */ 
	(function(jQuery,h,c){var a=jQuery([]),e=jQuery.resize=jQuery.extend(jQuery.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;jQuery.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=jQuery(this);a=a.add(l);jQuery.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=jQuery(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=jQuery(this),r=jQuery.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if(jQuery.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=jQuery(this),m=n.width(),l=n.height(),o=jQuery.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); 
 
/*********************/ 
/* Object Setup      */ 
/*********************/ 
 
	var _5gridC = function() 
	{ 
		this.events = new Array(); 
		this.readyWait = false; 
 
		this.isReady = false; 
		this.isMobile = false; 
		this.isDesktop = false; 
		this.isFluid = false; 
		this.is1000px = false; 
		this.is1200px = false; 
	} 
 
	_5gridC.prototype.bind = function(name, f) 
	{ 
		if (!this.events[name]) 
			this.events[name] = new Array(); 
		 
		this.events[name].push(f); 
	} 
 
	_5gridC.prototype.trigger = function(name) 
	{ 
		if (!this.isReady || !this.events[name] || this.events[name].length < 1) 
			return; 
			 
		for (i in this.events[name]) 
			(this.events[name][i])(); 
	} 
 
	_5gridC.prototype.ready = function(f, wait) { 
		if (wait) 
			this.readyWait = true; 
 
		this.bind('ready', f); 
	} 
	 
	// Custom events 
		_5gridC.prototype.orientationChange = function(f) { this.bind('orientationChange', f); } 
		_5gridC.prototype.mobileUINavOpen = function(f) { this.bind('mobileUINavOpen', f); } 
		_5gridC.prototype.mobileUINavClose = function(f) { this.bind('mobileUINavClose', f); } 
 
	_5gridC.prototype.readyCheck = function() 
	{ 
		var x = this; 
		 
		window.setTimeout(function() { 
			if (x.isReady) 
				x.trigger('ready'); 
			else 
				x.readyCheck(); 
		}, 50); 
	} 
 
	var _5grid = new _5gridC; 
 
 
(function() { 
 
/*********************/ 
/* Initialize        */ 
/*********************/ 
 
	// Vars 
		var	_settings	= _5grid_settings, 
			_window		= jQuery(window), 
			_head		= jQuery('head'), 
			_document	= jQuery(document); 
		var	baseURL, 
			doFluid, do1000px, do1200px, doMobile, doDesktop, doMobileOnly, 
			isLocked = false, 
			isTapLocked = false, tapId, 
			isTouch = !!('ontouchstart' in window), 
			headQueue = new Array(); 
		var v, w, wk, wv, x, y; 
 
	// Tap handling 
		jQuery.fn.tap_5grid = function(f, suffix, noMove) { 
			var target = jQuery(this); 
 
			if (isTouch) 
			{ 
				target 
					.bind('touchstart' + (suffix ? '.' + suffix : ''), function() { 
						if (!isTapLocked) 
						{ 
							isTapLocked = true; 
							if (_settings.mobileUI_tapDelay > -1) 
								tapId = window.setTimeout(function() { window.clearTimeout(tapId); isTapLocked = false; }, _settings.mobileUI_tapDelay); 
						} 
					}) 
					.bind('touchend' + (suffix ? '.' + suffix : ''), function(e) { 
						if (isTapLocked) 
						{ 
							isTapLocked = false; 
							window.clearTimeout(tapId); 
							(f)(e); 
						} 
					}); 
					 
				if (noMove) 
					target 
						.bind('touchmove' + (suffix ? '.' + suffix : ''), function(e) { 
							isTapLocked = false; 
							window.clearTimeout(tapId); 
						}); 
					 
			} 
			else 
				target.bind('click' + (suffix ? '.' + suffix : ''), f); 
 
			return target; 
		}; 
 
		jQuery.fn.untap_5grid = function(suffix) { 
			var target = jQuery(this); 
			 
			if (isTouch) 
			{ 
				target 
					.unbind('touchstart' + (suffix ? '.' + suffix : '')) 
					.unbind('touchend' + (suffix ? '.' + suffix : '')) 
					.unbind('touchmove' + (suffix ? '.' + suffix : '')); 
			} 
			else 
				target.unbind('click' + (suffix ? '.' + suffix : '')); 
				 
			return target; 
		}; 
		 
	// Shortcut methods 
		headQueue.pushI_5grid = function(s) { headQueue.push({ type: 'i', value: s }); }; 
		headQueue.pushE_5grid = function(s) { headQueue.push({ type: 'e', value: s }); };  
		headQueue.process_5grid = function() { 
			var doE; 
			if (document.createStyleSheet) 
				doE = function(s) { document.createStyleSheet(s); }; 
			else 
				doE = function(s) { _head.append('<link rel="stylesheet" href="' + s + '" />'); }; 
 
			for (x in headQueue) 
			{ 
				if (headQueue[x].type == 'i') 
					_head.append('<style>' + headQueue[x].value + '</style>'); 
				else if (headQueue[x].type == 'e') 
					(doE)(headQueue[x].value); 
			} 
		}; 
		jQuery.fn.disableSelection_5grid = function() { return jQuery(this).css('user-select', 'none').css('-khtml-user-select', 'none').css('-moz-user-select', 'none').css('-o-user-select', 'none').css('-webkit-user-select', 'none'); } 
		jQuery.fn.enableSelection_5grid = function() { return jQuery(this).css('user-select', 'auto').css('-khtml-user-select', 'auto').css('-moz-user-select', 'auto').css('-o-user-select', 'auto').css('-webkit-user-select', 'auto'); } 
		jQuery.fn.accelerate_5grid = function() { return jQuery(this).css('-webkit-transform', 'translateZ(0)').css('-webkit-backface-visibility', 'hidden').css('-webkit-perspective', '500'); } 
 
	// Determine settings 
		// DOM fix 
			document.getElementsByTagName('script'); 
 
		// Get base URL, query string 
			x = jQuery('script').filter(function() { return this.src.match(/5grid\/init\.js/); }).first(); 
			y = x.attr('src').split('?'); 
			baseURL = y[0].replace(/5grid\/init\.js/, ''); 
 
		// Override settings 
			if (y.length > 1) 
			{ 
				x = y[1].split('&'); 
				for (v in x) 
				{ 
					w = x[v].split('='); 
					wk = w[0].replace(/\./, '_'); 
					wv = w[1]; 
					 
					// Thanks, @cmsalvado! :) 
					if (!isNaN(parseFloat(wv)) && isFinite(wv)) 
						wv = parseInt(wv); 
					 
					_settings[wk] = wv; 
				} 
			} 
	 
	// Debug settings 
		if (_settings.debug_noExtLoad == 1) 
			headQueue.pushE_5grid = function(s) { }; 
	 
	// Determine viewing modes 
		doDesktop = doMobile = doFluid = do1000px = do1200px = doMobileOnly = false; 
		v = _settings.use.split(','); 
		 
		if (jQuery.inArray('fluid', v) > -1) 
			doFluid = true; 
		if (jQuery.inArray('desktop', v) > -1) 
			doDesktop = true; 
		if (jQuery.inArray('1000px', v) > -1) 
			do1000px = true; 
		if (jQuery.inArray('1200px', v) > -1) 
			do1200px = true; 
		if (jQuery.inArray('mobile', v) > -1) 
			doMobile = true; 
 
		if (doMobile && !doFluid && !do1000px && !do1200px && !doDesktop) 
			doMobileOnly = true; 
 
	// Apply workarounds for broken/old browsers 
 
		// Android, Webkit <= 534 
			if (navigator.userAgent.match(/Android.+AppleWebKit\/534/)) 
			{ 
				_settings.mobileUI_titleBarFixed = 0; 
				_settings.mobileUI_orientationDelay = 750; 
			} 
 
		// iOS <= 5 
			if (navigator.userAgent.match(/([0-9]+)_([0-9\.\_]+) like Mac OS X/)) 
			{ 
				var version = RegExp.$1; 
 
				if (version <= 5) 
					_settings.mobileUI_titleBarFixed = 0; 
			} 
 
		// IE <= 8 
			if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) 
			{ 
				var version = RegExp.$1; 
 
				// HTML5 Shiv 
					if (version < 9) 
						_head.append('<script type="text/javascript" src="' + baseURL + '5grid/html5shiv.js" />'); 
 
				// Versions that don't support CSS3 pseudo classes 
					if (version < 8) 
					{ 
						jQuery(function() { 
							jQuery('.5grid, .5grid-layout, .do-5grid').after('<div style="clear: both;"></div>'); 
							jQuery('.5grid-layout').css('position', 'relative'); 
							jQuery('.5grid, .do-5grid').css('position', 'relative'); 
							jQuery('.5grid > .row > :first-child, .5grid-layout > .row > :first-child, .do-5grid > .row > :first-child').css('margin-left', '0'); 
							jQuery('.5grid > .row:first-child, .5grid-layout > .row:first-child, .do-5grid > .row:first-child').css('margin-top', '0'); 
							jQuery('.5grid > .row:last-child, .5grid-layout > .row:last-child, .do-5grid > .row:last-child').css('margin-bottom', '0'); 
						}); 
					} 
			} 
 
	// Insert stylesheets 
		headQueue.pushE_5grid(baseURL + '5grid/core.css') 
		headQueue.pushE_5grid(baseURL + _settings.prefix + '.css'); 
 
/*********************/ 
/* Responsive        */ 
/*********************/ 
 
	(function() { 
		var	ww = _window.width(), 
			sw = screen.width, 
			orientation = window.orientation, 
			devicePixelRatio = (window.devicePixelRatio ? window.devicePixelRatio : 1); 
 
		// Adjustments 
			// Scale breakpoints using device pixel ratio 
				_settings.breakpoint_1000px = _settings.breakpoint_1000px * devicePixelRatio; 
				_settings.breakpoint_mobile = _settings.breakpoint_mobile * devicePixelRatio; 
 
			// Always use device's width regardless of orientation 
				if (screen.width > screen.height 
				&&	Math.abs(orientation) == 90) 
					sw = screen.height; 
 
			// Get real screen width on iOS devices 
				if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) 
					sw = sw * devicePixelRatio; 
 
		// Mobile (exclusive) 
			if ((doMobile && (ww <= _settings.breakpoint_mobile || sw <= _settings.breakpoint_mobile)) || doMobileOnly) 
			{ 
				_5grid.isMobile = true; 
				_head.prepend('<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />'); 
				headQueue.pushE_5grid(baseURL + '5grid/core-mobile.css'); 
				 
				if (_settings.mobileUI == 1) 
				{ 
					_settings.mobileUI_force = 1; 
 
					if (_settings.mobileUI_theme != 'none') 
					{ 
						headQueue.pushE_5grid(baseURL + '5grid/mobileUI-' + _settings.mobileUI_theme + '.css'); 
 
						if (_settings.mobileUI_themeTitleBarColor) 
							headQueue.pushI_5grid('#mobileUI-site-titlebar { background-color: ' + _settings.mobileUI_themeTitleBarColor + '; }'); 
 
						if (_settings.mobileUI_themeNavColor) 
							headQueue.pushI_5grid('#mobileUI-site-nav { background-color: ' + _settings.mobileUI_themeNavColor + '; }'); 
					} 
				} 
 
				headQueue.pushE_5grid(baseURL + _settings.prefix + '-mobile.css'); 
			} 
		// Other 
			else 
			{ 
				// Fluid (exclusive) 
					if (doFluid) 
					{ 
						_5grid.isFluid = true; 
						_head.prepend('<meta name="viewport" content="width=' + _settings.viewport_is1200px + '" />'); 
						headQueue.pushE_5grid(baseURL + '5grid/core-desktop.css'); 
						headQueue.pushE_5grid(baseURL + '5grid/core-fluid.css'); 
						headQueue.pushE_5grid(baseURL + _settings.prefix + '-fluid.css'); 
					} 
				// Desktop 
					else if (doDesktop) 
					{ 
						_5grid.isDesktop = true; 
						headQueue.pushE_5grid(baseURL + '5grid/core-desktop.css'); 
						headQueue.pushE_5grid(baseURL + _settings.prefix + '-desktop.css'); 
					 
						// 1200px 
							if (ww >= _settings.breakpoint_1000px) 
							{ 
								_5grid.is1200px = true; 
								_head.prepend('<meta name="viewport" content="width=' + _settings.viewport_is1200px + '" />'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-1200px.css'); 
								 
								// Load 1200px stylesheet if 1200px was explicitly enabled 
									if (do1200px) 
										headQueue.pushE_5grid(baseURL + _settings.prefix + '-1200px.css'); 
							} 
						// 1000px 
							else 
							{ 
								_5grid.is1000px = true; 
								_head.prepend('<meta name="viewport" content="width=' + _settings.viewport_is1000px + '" />'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-1000px.css'); 
 
								// Load 1000px stylesheet if 1000px was explicitly enabled 
									if (do1000px) 
										headQueue.pushE_5grid(baseURL + _settings.prefix + '-1000px.css'); 
							} 
					} 
				// Other 
					else 
					{ 
						// 1000px (exclusive) 
							if (do1000px && (ww < _settings.breakpoint_1000px || !do1200px)) 
							{ 
								_5grid.isDesktop = true; 
								_5grid.is1000px = true; 
								_head.prepend('<meta name="viewport" content="width=' + _settings.viewport_is1000px + '" />'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-desktop.css'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-1000px.css'); 
								headQueue.pushE_5grid(baseURL + _settings.prefix + '-1000px.css'); 
							} 
						// 1200px (exclusive) 
							else if (do1200px && (ww >= _settings.breakpoint_1000px || !do1000px)) 
							{ 
								_5grid.isDesktop = true; 
								_5grid.is1200px = true; 
								_head.prepend('<meta name="viewport" content="width=' + _settings.viewport_is1200px + '" />'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-desktop.css'); 
								headQueue.pushE_5grid(baseURL + '5grid/core-1200px.css'); 
								headQueue.pushE_5grid(baseURL + _settings.prefix + '-1200px.css'); 
							} 
					} 
			} 
 
		jQuery(function() { 
			var _body = jQuery('body'); 
 
			if (_5grid.isFluid) 
				_body.addClass('is-fluid'); 
			if (_5grid.isDesktop) 
				_body.addClass('is-desktop'); 
			if (_5grid.is1000px) 
				_body.addClass('is-1000px'); 
			if (_5grid.is1200px) 
				_body.addClass('is-1200px'); 
			if (_5grid.isMobile) 
				_body.addClass('is-mobile'); 
			 
			jQuery('.5grid-layout').addClass('5grid');  
		}); 
	})(); 
 
/*********************/ 
/* MobileUI          */ 
/*********************/ 
 
	if (_settings.mobileUI_force == 1) 
		jQuery(function() { 
			var	_body = jQuery('body'), 
				_viewer, 
				_wrapper, 
				_nav, 
				_nav_inner, 
				_opener, 
				_titlebar, 
				_content; 
			var	speed = _settings.mobileUI_slideSpeed, 
				easing = 'swing', 
				ww = _window.width(), 
				wh = _window.height(), 
				_nav_isActing = false, 
				_nav_isOpen = false; 
		 
			_body.wrapInner('<div id="mobileUI-site-content" />'); 
			_body.wrapInner('<div id="mobileUI-site-wrapper" />'); 
			_body.wrapInner('<div id="mobileUI-site-viewer" />'); 
		 
			// Move primary content 
				var	_main_content = jQuery('.mobileUI-main-content'), 
					_main_content_target = jQuery('.mobileUI-main-content-target'); 
				 
				if (_main_content.length > 0) 
					if (_main_content_target.length > 0) 
						_main_content.prependTo(_main_content_target); 
					else 
						_main_content.prependTo(_main_content.parent()); 
		 
			// Get site name, nav options 
				var	x = jQuery('.mobileUI-site-name'), site_name = (x.length > 0 ? x.html() : ''), 
					site_nav_options = new Array(); 
				 
				jQuery('.mobileUI-site-nav a').each(function() { 
					var t = jQuery(this), indent; 
					indent = Math.max(0,t.parents('li').length - 1); 
					site_nav_options.push( 
						'<div class="mobileUI-site-nav-link mobileUI-site-nav-link-depth-' + indent + '" xhref="' + t.attr('href') + '"><span class="indent-' + indent + '"></span>' + t.text() + '</div>' 
					); 
				}); 
 
			// Configure elements 
				if (site_nav_options.length > 0) 
				{ 
					_nav_inner = jQuery('<div id="mobileUI-site-nav-inner"><nav>' + site_nav_options.join('') + '</nav></div>'); 
					_nav = jQuery('<div id="mobileUI-site-nav"></div>'); 
					_nav_inner.appendTo(_nav); 
					_opener = jQuery('<div id="mobileUI-site-nav-opener">' + _settings.mobileUI_openerText + '</div>'); 
				} 
				else 
				{ 
					_nav_inner = jQuery(); 
					_nav = jQuery(); 
					_opener = jQuery(); 
				} 
 
				_content = jQuery('#mobileUI-site-content'); 
				_titlebar = jQuery('<div id="mobileUI-site-titlebar"><div id="mobileUI-site-title">' + site_name + '</div></div>'); 
				_wrapper = jQuery('#mobileUI-site-wrapper'); 
				_viewer = jQuery('#mobileUI-site-viewer'); 
 
				var	_nav_width = ww - _settings.mobileUI_openerWidth, 
					_nav_inner_pos, 
					_content_width = ww, 
					_wrapper_width = _nav_width + _content_width; 
 
				// Wrapper 
					_wrapper 
						.accelerate_5grid() 
						.css('position', 'absolute') 
						.width(_wrapper_width); 
 
				// Nav 
					_nav 
						.accelerate_5grid() 
						.width(_nav_width) 
						.prependTo(_wrapper) 
						.css('position', 'absolute') 
						.css('left', (-1 * _nav_width)) 
						.prepend('<div style="position: absolute; top: 0px; right: -1px; width: 1px; height: 1px;"></div>'); 
 
					// Inner 
						_nav_inner 
							.css('overflow', (isTouch ? 'hidden' : 'auto')) 
							.bind('touchstart', function(e) { 
								_nav_inner_pos = _nav_inner.scrollTop() + e.originalEvent.touches[0].pageY; 
							}) 
							.bind('touchmove', function(e) { 
								e.preventDefault(); 
								e.stopPropagation(); 
								_nav_inner.scrollTop(_nav_inner_pos - e.originalEvent.touches[0].pageY); 
							}); 
 
					// Links 
						_nav.find('.mobileUI-site-nav-link') 
							.disableSelection_5grid() 
							.css('cursor', 'pointer') 
							.each(function() { 
								var t = jQuery(this); 
								t.tap_5grid(function(e) { 
									e.preventDefault(); 
									e.stopPropagation(); 
								 
									if (_nav_isOpen) 
									{ 
										var href = t.attr('xhref'); 
										if (href && href.length > 0) 
											_body.trigger('5grid_closeNav', [href]); 
									} 
								}); 
							}); 
 
				// Opener 
					_opener 
						.accelerate_5grid() 
						.css('position', 'absolute') 
						.css('z-index', 10001) 
						.css('cursor', 'pointer') 
						.disableSelection_5grid() 
						.appendTo(_titlebar) 
						.tap_5grid(function(e) { 
							e.stopPropagation(); 
							e.preventDefault(); 
							_body.trigger('5grid_toggleNav'); 
						}, '', true); 
 
				// Titlebar 
					_titlebar 
						.accelerate_5grid() 
						.width(_content_width) 
						.height(_settings.mobileUI_titleBarHeight) 
						.css('z-index', 10000) 
						.prependTo(_viewer); 
						 
					if (_settings.mobileUI_titleBarFixed) 
					{ 
						_titlebar 
							.bind('goActive_5grid', function() { 
								_titlebar 
									.css('position', 'fixed') 
									.css('top', 0) 
									.css('left', 0); 
							}) 
							.bind('goInactive_5grid', function() { 
								_titlebar 
									.css('position', 'absolute') 
									.css('top', _window.scrollTop()) 
									.css('left', _nav.width); 
							}) 
							.trigger('goActive_5grid'); 
					} 
					else 
					{ 
						_titlebar 
							.css('position', 'absolute') 
							.css('top', _window.scrollTop()) 
							.css('left', _nav.width); 
					} 
 
				// Content 
					_content 
						.width(_content_width) 
						.css('position', 'relative'); 
						 
					if (_settings.mobileUI_titleBarOverlaid) 
						_content 
							.bind('resize', function() { _viewer.height(_content.height()); }); 
					else 
						_content 
							.css('padding-top', _settings.mobileUI_titleBarHeight) 
							.bind('resize', function() { _viewer.height(_content.height() + _settings.mobileUI_titleBarHeight); }); 
 
				// Viewer 
					_viewer 
						.css('position', 'absolute') 
						.css('overflow', 'hidden') 
						.width(_content_width) 
						.height(_content.height() + _settings.mobileUI_titleBarHeight); 
 
				// Body 
					_body 
						.bind('5grid_toggleNav', function() { 
							if (_nav_isOpen) 
								_body.trigger('5grid_closeNav'); 
							else 
								_body.trigger('5grid_openNav'); 
						}) 
						.bind('5grid_openNav', function() { 
							 
							// Check locking 
								if (isLocked) 
									return true; 
								 
								isLocked = true; 
 
							// Mark nav as acting 
								_nav_isActing = true; 
 
							// Disable scrolling 
								_body 
									.bind('touchstart.5grid_nav_block', function(e) { 
										e.stopPropagation(); 
										e.preventDefault(); 
									}); 
									 
								_window 
									.bind('scroll.5grid_nav_block', function(e) { 
										e.preventDefault(); 
										e.stopPropagation(); 
										 
										if (_nav_isOpen) 
											_body.trigger('5grid_closeNav', [null, true]); 
									}); 
 
							// Reposition nav 
								_nav 
									.css('top', _window.scrollTop()); 
 
								_nav_inner 
									.height(window.innerHeight - _settings.mobileUI_navInnerPad) 
									.scrollTop(0); 
 
							// Deactivate titlebar 
								_titlebar 
									.trigger('goInactive_5grid'); 
 
							// Animate 
								_wrapper.add(_titlebar) 
									.animate({ left: _nav_width }, speed, easing, function() { 
										// Unlock 
											isLocked = false; 
										 
										// Correct body position (in case it was still scrolling when the nav opened) 
											var x = parseInt(_nav.css('top')); 
											if (x > 0) 
												_window.scrollTop(parseInt(_nav.css('top'))); 
										 
										// Mark nav as open, unmark as acting 
											window.setTimeout(function() { 
												_nav_isOpen = true; 
												_nav_isActing = false; 
											}, 300); 
										 
										// Add close event to content 
											_content 
												.tap_5grid(function(e) { 
													e.preventDefault(); 
													e.stopPropagation(); 
													_body.trigger('5grid_closeNav'); 
												}, '5grid_nav_cclose'); 
						 
										// Trigger event 
											_5grid.trigger('mobileUINavOpen'); 
									}); 
						}) 
						.bind('5grid_closeNav', function(e, url, fast) { 
							 
							// Check locking 
								if (isLocked) 
									return true; 
 
								isLocked = true; 
 
							// Mark nav as acting 
								_nav_isActing = true; 
 
							// Remove close event from content 
								_content.untap_5grid('5grid_nav_cclose'); 
 
							// Animate 
								_wrapper.add(_titlebar) 
									.animate({ left: 0 }, (fast ? 0 : speed), easing, function() { 
										 
										// Reactivate titlebar 
											_titlebar 
												.trigger('goActive_5grid'); 
 
										// Trigger event 
											_5grid.trigger('mobileUINavclose'); 
 
										// Unlock 
											isLocked = false; 
										 
										// Re-enable scrolling 
											_body.unbind('touchstart.5grid_nav_block'); 
											_window.unbind('touchmove.5grid_nav_block'); 
 
										// Mark nav as closed, unmark as acting 
											_nav_isOpen = false; 
											_nav_isActing = false; 
										 
										// If a URL was passed, go to it 
											if (url) 
												window.setTimeout(function() { 
													window.location.href = url; 
												}, 150); 
									}); 
						}); 
 
					// Window 
						_window 
							.bind('orientationchange', function(e) { 
								window.setTimeout(function() { 
									ww = _window.width(); 
									 
									// Recalculate widths 
										_nav_width = ww - _settings.mobileUI_openerWidth; 
										_content_width = ww; 
										_wrapper_width = _nav_width + _content_width; 
 
									// Resize 
										_wrapper.width(_wrapper_width); 
										_content.width(_content_width); 
										_nav 
											.css('left', (-1 * _nav_width)) 
											.width(_nav_width); 
 
										_titlebar.width(ww); 
										_viewer.width(ww); 
 
									// Trigger event 
										_5grid.trigger('orientationChange'); 
								 
								}, _settings.mobileUI_orientationDelay); 
							}); 
 
			// Remove mobileUI-hide elements 
				jQuery('.mobileUI-hide').remove(); 
				 
			// Remove address bar 
				if (_settings.mobileUI_hideAddressBar == 1) 
					_window.load(function() { 
						if (_window.scrollTop() == 0) 
							window.scrollTo(0, 1); 
					}); 
		}); 
 
	headQueue.process_5grid(); 
	_5grid.isReady = true; 
 
	jQuery(function() { 
		if (_5grid.readyWait) 
			jQuery(window).load(function() { _5grid.readyCheck(); }); 
		else 
			_5grid.readyCheck(); 
	}); 
 
})();