Вход Регистрация
Файл: css/5grid/init.js
Строк: 835
<?php
/*****************************************************************/
/* 5grid 0.4.3 by n33.co | MIT+GPLv2 license licensed            */
/* init.js: Init script                                          */
/*****************************************************************/

/*********************/
/* Settings          */
/*********************/

    
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);
                    });
        });

/*********************/
/* Head Queue        */
/*********************/

    
headQueue.process_5grid();
    
_5grid.isReady = true;

    
jQuery(function() {
        if (
_5grid.readyWait)
            
jQuery(window).load(function() { _5grid.readyCheck(); });
        else
            
_5grid.readyCheck();
    });

})();
?>
Онлайн: 2
Реклама