From fa5ddf668513b3131038eba2a1ceca0d5bb702e1 Mon Sep 17 00:00:00 2001 From: stabijoh Date: Tue, 6 Dec 2011 08:04:48 -0500 Subject: [PATCH 1/2] MDL-30601, update MyMobile theme to use latest release of Jquery Mobile --- theme/mymobile/config.php | 4 +- ....mobile-1.0rc2.js => jquery.mobile-1.0.js} | 781 ++++++++++-------- .../style/{jmobilerc2.css => jmobile1.css} | 766 ++++++++++------- 3 files changed, 915 insertions(+), 636 deletions(-) rename theme/mymobile/javascript/{jquery.mobile-1.0rc2.js => jquery.mobile-1.0.js} (91%) rename theme/mymobile/style/{jmobilerc2.css => jmobile1.css} (69%) diff --git a/theme/mymobile/config.php b/theme/mymobile/config.php index b0f838ff051..f6bd2307219 100644 --- a/theme/mymobile/config.php +++ b/theme/mymobile/config.php @@ -34,7 +34,7 @@ $THEME->parents = array( // Set the stylesheets that we want to include for this theme $THEME->sheets = array( - 'jmobilerc2', + 'jmobile1', 'core', 'media' ); @@ -157,7 +157,7 @@ if ($thisdevice == "default" || $thisdevice == "tablet" || optional_param('mymob $THEME->javascripts = array( 'jquery-1.6.4.min', 'custom', - 'jquery.mobile-1.0rc2', + 'jquery.mobile-1.0', 'scrollview', 'easing' ); diff --git a/theme/mymobile/javascript/jquery.mobile-1.0rc2.js b/theme/mymobile/javascript/jquery.mobile-1.0.js similarity index 91% rename from theme/mymobile/javascript/jquery.mobile-1.0rc2.js rename to theme/mymobile/javascript/jquery.mobile-1.0.js index e5e0f73a5e3..81fb63660e8 100644 --- a/theme/mymobile/javascript/jquery.mobile-1.0rc2.js +++ b/theme/mymobile/javascript/jquery.mobile-1.0.js @@ -1,11 +1,12 @@ -/*! - * jQuery Mobile v1.0rc2 - * http://jquerymobile.com/ - * - * Copyright 2010, jQuery Project - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ +/* +* jQuery Mobile Framework 1.0 +* http://jquerymobile.com +* +* Copyright 2011 (c) jQuery Project +* Dual licensed under the MIT or GPL Version 2 licenses. +* http://jquery.org/license +* +*/ /*! * jQuery UI Widget @VERSION * @@ -15,6 +16,7 @@ * * http://docs.jquery.com/UI/Widget */ + (function( $, undefined ) { // jQuery 1.4+ @@ -269,10 +271,7 @@ $.Widget.prototype = { })( jQuery ); /* -* jQuery Mobile Framework : widget factory extentions for mobile -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* widget factory extentions for mobile */ (function( $, undefined ) { @@ -312,20 +311,18 @@ $.widget( "mobile.widget", { // TODO remove dependency on the page widget for the keepNative. // Currently the keepNative value is defined on the page prototype so // the method is as well - var page = $(target).data( "page" ), - keepNative = page && page.keepNativeSelector(); + var page = $(target).closest(":jqmData(role='page')").data( "page" ), + keepNative = (page && page.keepNativeSelector()) || ""; - $( this.options.initSelector, target ).not( keepNative || "" )[ this.widgetName ](); + $( this.options.initSelector, target ).not( keepNative )[ this.widgetName ](); } }); })( jQuery ); /* -* jQuery Mobile Framework : a workaround for window.matchMedia -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* a workaround for window.matchMedia */ + (function( $, undefined ) { var $window = $( window ), @@ -366,10 +363,9 @@ $.mobile.media = (function() { }; })(); -})(jQuery);/* -* jQuery Mobile Framework : support tests -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +})(jQuery); +/* +* support tests */ (function( $, undefined ) { @@ -378,6 +374,7 @@ var fakeBody = $( "" ).prependTo( "html" ), fbCSS = fakeBody[ 0 ].style, vendors = [ "Webkit", "Moz", "O" ], webos = "palmGetResource" in window, //only used to rule out scrollTop + operamini = window.operamini && ({}).toString.call( window.operamini ) === "[object OperaMini]", bb = window.blackberry; //only used to rule out box shadow, as it's filled opaque on BB // thx Modernizr @@ -440,7 +437,7 @@ $.extend( $.support, { cssPseudoElement: !!propExists( "content" ), touchOverflow: !!propExists( "overflowScrolling" ), boxShadow: !!propExists( "boxShadow" ) && !bb, - scrollTop: ( "pageXOffset" in window || "scrollTop" in document.documentElement || "scrollTop" in fakeBody[ 0 ] ) && !webos, + scrollTop: ( "pageXOffset" in window || "scrollTop" in document.documentElement || "scrollTop" in fakeBody[ 0 ] ) && !webos && !operamini, dynamicBaseTag: baseTagTest() }); @@ -466,7 +463,7 @@ $.mobile.ajaxBlacklist = // BlackBerry browsers, pre-webkit window.blackberry && !window.WebKitPoint || // Opera Mini - window.operamini && Object.prototype.toString.call( window.operamini ) === "[object OperaMini]" || + operamini || // Symbian webkits pre 7.3 nokiaLTE7_3; @@ -486,10 +483,7 @@ if ( !$.support.boxShadow ) { })( jQuery ); /* -* jQuery Mobile Framework : "mouse" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "mouse" plugin */ // This plugin is an experiment for abstracting away the touch and mouse @@ -983,12 +977,10 @@ if ( eventCaptureSupported ) { }, true); } })( jQuery, window, document ); -/* -* jQuery Mobile Framework : events -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +/* +* "events" plugin - Handles events */ + (function( $, window, undefined ) { // add new event shortcuts @@ -1223,7 +1215,7 @@ $.event.special.swipe = { last_orientation = orientation; win.trigger( "orientationchange" ); } - }; + } // Get the current page orientation. This method is exposed publicly, should it // be needed, as jQuery.event.special.orientationchange.orientation() @@ -1303,17 +1295,8 @@ $.each({ }); })( jQuery, this ); -/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - // Script: jQuery hashchange event -// +// // *Version: 1.3, Last updated: 7/21/2010* // // Project Home - http://benalman.com/projects/jquery-hashchange-plugin/ @@ -1694,10 +1677,7 @@ $.each({ })(jQuery,this); /* -* jQuery Mobile Framework : "page" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "page" plugin */ (function( $, undefined ) { @@ -1730,17 +1710,14 @@ $.widget( "mobile.page", $.mobile.widget, { } }); })( jQuery ); -/*! - * jQuery Mobile v@VERSION - * http://jquerymobile.com/ - * - * Copyright 2010, jQuery Project - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ +/* +* "core" - The base file for jQm +*/ (function( $, window, undefined ) { + var nsNormalizeDict = {}; + // jQuery.mobile configurable options $.extend( $.mobile, { @@ -1764,6 +1741,9 @@ $.widget( "mobile.page", $.mobile.widget, { // Automatically load and show pages based on location.hash hashListeningEnabled: true, + // disable to prevent jquery from bothering with links + linkBindingEnabled: true, + // Set default page transition - 'none' for no transitions defaultPageTransition: "slide", @@ -1849,24 +1829,42 @@ $.widget( "mobile.page", $.mobile.widget, { }, 150 ); }, + // Expose our cache for testing purposes. + nsNormalizeDict: nsNormalizeDict, + // Take a data attribute property, prepend the namespace - // and then camel case the attribute string + // and then camel case the attribute string. Add the result + // to our nsNormalizeDict so we don't have to do this again. nsNormalize: function( prop ) { if ( !prop ) { return; } - return $.camelCase( $.mobile.ns + prop ); + return nsNormalizeDict[ prop ] || ( nsNormalizeDict[ prop ] = $.camelCase( $.mobile.ns + prop ) ); }, getInheritedTheme: function( el, defaultTheme ) { - // Find the closest parent with a theme class on it. - var themedParent = el.closest( "[class*='ui-bar-'],[class*='ui-body-']" ), - - // If there's a themed parent, extract the theme letter - // from the theme class . - ltr = ( themedParent.length && /ui-(bar|body)-([a-z])\b/.exec( themedParent.attr( "class" ) )[ 2 ] || "" ) || ""; + // Find the closest parent with a theme class on it. Note that + // we are not using $.fn.closest() on purpose here because this + // method gets called quite a bit and we need it to be as fast + // as possible. + + var e = el[ 0 ], + ltr = "", + re = /ui-(bar|body)-([a-z])\b/, + c, m; + + while ( e ) { + var c = e.className || ""; + if ( ( m = re.exec( c ) ) && ( ltr = m[ 2 ] ) ) { + // We found a parent with a theme class + // on it so bail from this loop. + break; + } + e = e.parentNode; + } + // Return the theme letter we found, if none, return the // specified default. @@ -1929,10 +1927,11 @@ $.widget( "mobile.page", $.mobile.widget, { }; // Monkey-patching Sizzle to filter the :jqmData selector - var oldFind = $.find; + var oldFind = $.find, + jqmDataRE = /:jqmData\(([^)]*)\)/g; $.find = function( selector, context, ret, extra ) { - selector = selector.replace(/:jqmData\(([^)]*)\)/g, "[data-" + ( $.mobile.ns || "" ) + "$1]"); + selector = selector.replace( jqmDataRE, "[data-" + ( $.mobile.ns || "" ) + "$1]" ); return oldFind.call( this, selector, context, ret, extra ); }; @@ -1949,11 +1948,9 @@ $.widget( "mobile.page", $.mobile.widget, { })( jQuery, this ); /* -* jQuery Mobile Framework : core utilities for auto ajax navigation, base tag mgmt, -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* core utilities for auto ajax navigation, base tag mgmt, */ + ( function( $, undefined ) { //define vars for interal use @@ -2515,7 +2512,7 @@ $.widget( "mobile.page", $.mobile.widget, { //simply set the active page's minimum height to screen height, depending on orientation function getScreenHeight(){ - var orientation = jQuery.event.special.orientationchange.orientation(), + var orientation = $.event.special.orientationchange.orientation(), port = orientation === "portrait", winMin = port ? 480 : 320, screenHeight = port ? screen.availHeight : screen.availWidth, @@ -2689,13 +2686,29 @@ $.widget( "mobile.page", $.mobile.widget, { // attribute and in need of enhancement. if ( page.length === 0 && dataUrl && !path.isPath( dataUrl ) ) { page = settings.pageContainer.children( "#" + dataUrl ) - .attr( "data-" + $.mobile.ns + "url", dataUrl ) + .attr( "data-" + $.mobile.ns + "url", dataUrl ); } // If we failed to find a page in the DOM, check the URL to see if it - // refers to the first page in the application. - if ( page.length === 0 && $.mobile.firstPage && path.isFirstPageUrl( fileUrl ) ) { - page = $( $.mobile.firstPage ); + // refers to the first page in the application. If it isn't a reference + // to the first page and refers to non-existent embedded page, error out. + if ( page.length === 0 ) { + if ( $.mobile.firstPage && path.isFirstPageUrl( fileUrl ) ) { + // Check to make sure our cached-first-page is actually + // in the DOM. Some user deployed apps are pruning the first + // page from the DOM for various reasons, we check for this + // case here because we don't want a first-page with an id + // falling through to the non-existent embedded page error + // case. If the first-page is not in the DOM, then we let + // things fall through to the ajax loading code below so + // that it gets reloaded. + if ( $.mobile.firstPage.parent().length ) { + page = $( $.mobile.firstPage ); + } + } else if ( path.isEmbeddedPage( fileUrl ) ) { + deferred.reject( absUrl, options ); + return deferred.promise(); + } } // Reset base to the default document base. @@ -2755,7 +2768,7 @@ $.widget( "mobile.page", $.mobile.widget, { type: settings.type, data: settings.data, dataType: "html", - success: function( html ) { + success: function( html, textStatus, xhr ) { //pre-parse html to check for a data-url, //use it as the new fileUrl, base path, etc var all = $( "
" ), @@ -2791,6 +2804,9 @@ $.widget( "mobile.page", $.mobile.widget, { } if ( newPageTitle && !page.jqmData( "title" ) ) { + if ( ~newPageTitle.indexOf( "&" ) ) { + newPageTitle = $( "
" + newPageTitle + "
" ).text(); + } page.jqmData( "title", newPageTitle ); } @@ -2841,7 +2857,9 @@ $.widget( "mobile.page", $.mobile.widget, { hideMsg(); } - // Add the page reference to our triggerData. + // Add the page reference and xhr to our triggerData. + triggerData.xhr = xhr; + triggerData.textStatus = textStatus; triggerData.page = page; // Let listeners know the page loaded successfully. @@ -2849,12 +2867,17 @@ $.widget( "mobile.page", $.mobile.widget, { deferred.resolve( absUrl, options, page, dupCachedPage ); }, - error: function() { + error: function( xhr, textStatus, errorThrown ) { //set base back to current path if( base ) { base.set( path.get() ); } + // Add error info to our triggerData. + triggerData.xhr = xhr; + triggerData.textStatus = textStatus; + triggerData.errorThrown = errorThrown; + var plfEvent = new $.Event( "pageloadfailed" ); // Let listeners know the page load failed. @@ -3025,7 +3048,11 @@ $.widget( "mobile.page", $.mobile.widget, { // Wrap this in a try/catch block since IE9 throw "Unspecified error" if document.activeElement // is undefined when we are in an IFrame. try { - $( document.activeElement || "" ).add( "input:focus, textarea:focus, select:focus" ).blur(); + if(document.activeElement && document.activeElement.nodeName.toLowerCase() != 'body') { + $(document.activeElement).blur(); + } else { + $( "input:focus, textarea:focus, select:focus" ).blur(); + } } catch(e) {} // If we're displaying the page as a dialog, we don't want the url @@ -3047,11 +3074,15 @@ $.widget( "mobile.page", $.mobile.widget, { path.set( url ); } - //if title element wasn't found, try the page div data attr too - var newPageTitle = toPage.jqmData( "title" ) || toPage.children(":jqmData(role='header')").find(".ui-title" ).getEncodedText(); + // if title element wasn't found, try the page div data attr too + // If this is a deep-link or a reload ( active === undefined ) then just use pageTitle + var newPageTitle = ( !active )? pageTitle : toPage.jqmData( "title" ) || toPage.children(":jqmData(role='header')").find(".ui-title" ).getEncodedText(); if( !!newPageTitle && pageTitle == document.title ) { pageTitle = newPageTitle; } + if ( !toPage.jqmData( "title" ) ) { + toPage.jqmData( "title", pageTitle ); + } // Make sure we have a transition defined. settings.transition = settings.transition @@ -3109,7 +3140,14 @@ $.widget( "mobile.page", $.mobile.widget, { function findClosestLink( ele ) { while ( ele ) { - if ( ele.nodeName.toLowerCase() == "a" ) { + // Look for the closest element with a nodeName of "a". + // Note that we are checking if we have a valid nodeName + // before attempting to access it. This is because the + // node we get called with could have originated from within + // an embedded SVG document where some symbol instance elements + // don't have nodeName defined on them, or strings are of type + // SVGAnimatedString. + if ( ( typeof ele.nodeName === "string" ) && ele.nodeName.toLowerCase() == "a" ) { break; } ele = ele.parentNode; @@ -3189,7 +3227,7 @@ $.widget( "mobile.page", $.mobile.widget, { $( document ).bind( "vclick", function( event ) { // if this isn't a left click we don't care. Its important to note // that when the virtual event is generated it will create - if ( event.which > 1 ){ + if ( event.which > 1 || !$.mobile.linkBindingEnabled ){ return; } @@ -3206,6 +3244,10 @@ $.widget( "mobile.page", $.mobile.widget, { // click routing - direct to HTTP or Ajax, accordingly $( document ).bind( "click", function( event ) { + if( !$.mobile.linkBindingEnabled ){ + return; + } + var link = findClosestLink( event.target ); // If there is no link associated with the click or its not a left @@ -3403,11 +3445,9 @@ $.widget( "mobile.page", $.mobile.widget, { })( jQuery ); /* -* jQuery Mobile Framework : history.pushState support, layered on top of hashchange -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* history.pushState support, layered on top of hashchange */ + ( function( $, window ) { // For now, let's Monkeypatch this onto the end of $.mobile._registerInternalEvents // Scope self to pushStateHandler so we can reference it sanely within the @@ -3537,14 +3577,10 @@ $.widget( "mobile.page", $.mobile.widget, { pushStateHandler.init(); } }); -})( jQuery, this );/*! - * jQuery Mobile v@VERSION - * http://jquerymobile.com/ - * - * Copyright 2010, jQuery Project - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ +})( jQuery, this ); +/* +* "transitions" plugin - Page change tranistions +*/ (function( $, window, undefined ) { @@ -3588,10 +3624,7 @@ if ( $.mobile.defaultTransitionHandler === $.mobile.noneTransitionHandler ) { })( jQuery, this ); /* -* jQuery Mobile Framework : "degradeInputs" plugin - degrades inputs to another type after custom enhancements are made. -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "degradeInputs" plugin - degrades inputs to another type after custom enhancements are made. */ (function( $, undefined ) { @@ -3644,9 +3677,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery );/* -* jQuery Mobile Framework : "dialog" plugin. -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* "dialog" plugin. */ (function( $, window, undefined ) { @@ -3654,20 +3685,15 @@ $( document ).bind( "pagecreate create", function( e ){ $.widget( "mobile.dialog", $.mobile.widget, { options: { closeBtnText : "Close", - theme : "a", + overlayTheme : "a", initSelector : ":jqmData(role='dialog')" }, _create: function() { var self = this, $el = this.element, - pageTheme = $el.attr( "class" ).match( /ui-body-[a-z]/ ), headerCloseButton = $( ""+ this.options.closeBtnText + "" ); - if( pageTheme.length ){ - $el.removeClass( pageTheme[ 0 ] ); - } - - $el.addClass( "ui-body-" + this.options.theme ); + $el.addClass( "ui-overlay-" + this.options.overlayTheme ); // Class the markup for dialog styling // Set aria role @@ -3678,8 +3704,9 @@ $.widget( "mobile.dialog", $.mobile.widget, { .prepend( headerCloseButton ) .end() .find( ":jqmData(role='content'),:jqmData(role='footer')" ) + .addClass( "ui-overlay-shadow" ) .last() - .addClass( "ui-corner-bottom ui-overlay-shadow" ); + .addClass( "ui-corner-bottom" ); // this must be an anonymous function so that select menu dialogs can replace // the close method. This is a change from previously just defining data-rel=back @@ -3723,10 +3750,7 @@ $( $.mobile.dialog.prototype.options.initSelector ).live( "pagecreate", function })( jQuery, this ); /* -* jQuery Mobile Framework : This plugin handles theming and layout of headers, footers, and content areas -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* This plugin handles theming and layout of headers, footers, and content areas */ (function( $, undefined ) { @@ -3742,12 +3766,14 @@ $( ":jqmData(role='page'), :jqmData(role='dialog')" ).live( "pagecreate", functi var $page = $( this ), o = $page.data( "page" ).options, + pageRole = $page.jqmData( "role" ), pageTheme = o.theme; $( ":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')", this ).each(function() { var $this = $( this ), role = $this.jqmData( "role" ), theme = $this.jqmData( "theme" ), + contentTheme = theme || o.contentTheme || ( pageRole === "dialog" && pageTheme ), $headeranchors, leftbtn, rightbtn, @@ -3799,8 +3825,8 @@ $( ":jqmData(role='page'), :jqmData(role='dialog')" ).live( "pagecreate", functi }); } else if ( role === "content" ) { - if (theme || o.contentTheme) { - $this.addClass( "ui-body-" + ( theme || o.contentTheme ) ); + if ( contentTheme ) { + $this.addClass( "ui-body-" + ( contentTheme ) ); } // Add ARIA role @@ -3810,11 +3836,9 @@ $( ":jqmData(role='page'), :jqmData(role='dialog')" ).live( "pagecreate", functi }); })( jQuery );/* -* jQuery Mobile Framework : "collapsible" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "collapsible" plugin */ + (function( $, undefined ) { $.widget( "mobile.collapsible", $.mobile.widget, { @@ -3822,7 +3846,7 @@ $.widget( "mobile.collapsible", $.mobile.widget, { expandCueText: " click to expand contents", collapseCueText: " click to collapse contents", collapsed: true, - heading: ">:header,>legend", + heading: "h1,h2,h3,h4,h5,h6,legend", theme: null, contentTheme: null, iconTheme: "d", @@ -3833,10 +3857,10 @@ $.widget( "mobile.collapsible", $.mobile.widget, { var $el = this.element, o = this.options, collapsible = $el.addClass( "ui-collapsible" ), - collapsibleHeading = $el.find( o.heading ).eq( 0 ), + collapsibleHeading = $el.children( o.heading ).first(), collapsibleContent = collapsible.wrapInner( "
" ).find( ".ui-collapsible-content" ), collapsibleSet = $el.closest( ":jqmData(role='collapsible-set')" ).addClass( "ui-collapsible-set" ), - colllapsiblesInSet = collapsibleSet.children( ":jqmData(role='collapsible')" ); + collapsiblesInSet = collapsibleSet.children( ":jqmData(role='collapsible')" ); // Replace collapsibleHeading if it's a legend if ( collapsibleHeading.is( "legend" ) ) { @@ -3865,7 +3889,8 @@ $.widget( "mobile.collapsible", $.mobile.widget, { .addClass( "ui-collapsible-heading" ) .append( "" ) .wrapInner( "" ) - .find( "a:eq(0)" ) + .find( "a" ) + .first() .buttonMarkup({ shadow: false, corners: false, @@ -3876,7 +3901,7 @@ $.widget( "mobile.collapsible", $.mobile.widget, { if ( !collapsibleSet.length ) { collapsibleHeading - .find( "a:eq(0), .ui-btn-inner" ) + .find( "a" ).first().add( collapsibleHeading.find( ".ui-btn-inner" ) ) .addClass( "ui-corner-top ui-corner-bottom" ); } else { // If we are in a collapsible set @@ -3896,15 +3921,17 @@ $.widget( "mobile.collapsible", $.mobile.widget, { }); } - colllapsiblesInSet.first() - .find( "a:eq(0)" ) + collapsiblesInSet.first() + .find( "a" ) + .first() .addClass( "ui-corner-top" ) .find( ".ui-btn-inner" ) .addClass( "ui-corner-top" ); - colllapsiblesInSet.last() + collapsiblesInSet.last() .jqmData( "collapsible-last", true ) - .find( "a:eq(0)" ) + .find( "a" ) + .first() .addClass( "ui-corner-bottom" ) .find( ".ui-btn-inner" ) .addClass( "ui-corner-bottom" ); @@ -3912,7 +3939,7 @@ $.widget( "mobile.collapsible", $.mobile.widget, { if ( collapsible.jqmData( "collapsible-last" ) ) { collapsibleHeading - .find( "a:eq(0), .ui-btn-inner" ) + .find( "a" ).first().add ( collapsibleHeading.find( ".ui-btn-inner" ) ) .addClass( "ui-corner-bottom" ); } } @@ -3942,7 +3969,7 @@ $.widget( "mobile.collapsible", $.mobile.widget, { if ( contentTheme && ( !collapsibleSet.length || collapsible.jqmData( "collapsible-last" ) ) ) { collapsibleHeading - .find( "a:eq(0), .ui-btn-inner" ) + .find( "a" ).first().add( collapsibleHeading.find( ".ui-btn-inner" ) ) .toggleClass( "ui-corner-bottom", isCollapse ); collapsibleContent.toggleClass( "ui-corner-bottom", !isCollapse ); } @@ -3971,10 +3998,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : "fieldcontain" plugin - simple class additions to make form row separators -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "fieldcontain" plugin - simple class additions to make form row separators */ (function( $, undefined ) { @@ -3989,10 +4013,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery );/* -* jQuery Mobile Framework : plugin for creating CSS grids -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* plugin for creating CSS grids */ (function( $, undefined ) { @@ -4041,10 +4062,7 @@ $.fn.grid = function( options ) { }); }; })( jQuery );/* -* jQuery Mobile Framework : "navbar" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "navbar" plugin */ (function( $, undefined ) { @@ -4092,10 +4110,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : "listview" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "listview" plugin */ (function( $, undefined ) { @@ -4107,7 +4122,7 @@ var listCountPerPage = {}; $.widget( "mobile.listview", $.mobile.widget, { options: { - theme: "c", + theme: null, countTheme: "c", headerTheme: "b", dividerTheme: "b", @@ -4128,25 +4143,6 @@ $.widget( "mobile.listview", $.mobile.widget, { t.refresh( true ); }, - _itemApply: function( $list, item ) { - var $countli = item.find( ".ui-li-count" ); - if ( $countli.length ) { - item.addClass( "ui-li-has-count" ); - } - $countli.addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme ) + " ui-btn-corner-all" ); - - // TODO class has to be defined in markup - item.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ).end() - .find( "p, dl" ).addClass( "ui-li-desc" ).end() - .find( ">img:eq(0), .ui-link-inherit>img:eq(0)" ).addClass( "ui-li-thumb" ).each(function() { - item.addClass( $(this).is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" ); - }).end() - .find( ".ui-li-aside" ).each(function() { - var $this = $(this); - $this.prependTo( $this.parent() ); //shift aside to front for css float - }); - }, - _removeCorners: function( li, which ) { var top = "ui-corner-top ui-corner-tr ui-corner-tl", bot = "ui-corner-bottom ui-corner-br ui-corner-bl"; @@ -4179,8 +4175,11 @@ $.widget( "mobile.listview", $.mobile.widget, { $topli = $visibleli.first() .addClass( "ui-corner-top" ); - $topli.add( $topli.find( ".ui-btn-inner" ) ) - .find( ".ui-li-link-alt" ) + $topli.add( $topli.find( ".ui-btn-inner" ) + .not( ".ui-li-link-alt span:first-child" ) ) + .addClass( "ui-corner-top" ) + .end() + .find( ".ui-li-link-alt, .ui-li-link-alt span:first-child" ) .addClass( "ui-corner-tr" ) .end() .find( ".ui-li-thumb" ) @@ -4204,6 +4203,56 @@ $.widget( "mobile.listview", $.mobile.widget, { } }, + // This is a generic utility method for finding the first + // node with a given nodeName. It uses basic DOM traversal + // to be fast and is meant to be a substitute for simple + // $.fn.closest() and $.fn.children() calls on a single + // element. Note that callers must pass both the lowerCase + // and upperCase version of the nodeName they are looking for. + // The main reason for this is that this function will be + // called many times and we want to avoid having to lowercase + // the nodeName from the element every time to ensure we have + // a match. Note that this function lives here for now, but may + // be moved into $.mobile if other components need a similar method. + _findFirstElementByTagName: function( ele, nextProp, lcName, ucName ) + { + var dict = {}; + dict[ lcName ] = dict[ ucName ] = true; + while ( ele ) { + if ( dict[ ele.nodeName ] ) { + return ele; + } + ele = ele[ nextProp ]; + } + return null; + }, + _getChildrenByTagName: function( ele, lcName, ucName ) + { + var results = [], + dict = {}; + dict[ lcName ] = dict[ ucName ] = true; + ele = ele.firstChild; + while ( ele ) { + if ( dict[ ele.nodeName ] ) { + results.push( ele ); + } + ele = ele.nextSibling; + } + return $( results ); + }, + + _addThumbClasses: function( containers ) + { + var i, img, len = containers.length; + for ( i = 0; i < len; i++ ) { + img = $( this._findFirstElementByTagName( containers[ i ].firstChild, "nextSibling", "img", "IMG" ) ); + if ( img.length ) { + img.addClass( "ui-li-thumb" ); + $( this._findFirstElementByTagName( img[ 0 ].parentNode, "parentNode", "li", "LI" ) ).addClass( img.is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" ); + } + } + }, + refresh: function( create ) { this.parentPage = this.element.closest( ".ui-page" ); this._createSubPages(); @@ -4214,14 +4263,19 @@ $.widget( "mobile.listview", $.mobile.widget, { dividertheme = $list.jqmData( "dividertheme" ) || o.dividerTheme, listsplittheme = $list.jqmData( "splittheme" ), listspliticon = $list.jqmData( "spliticon" ), - li = $list.children( "li" ), + li = this._getChildrenByTagName( $list[ 0 ], "li", "LI" ), counter = $.support.cssPseudoElement || !$.nodeName( $list[ 0 ], "ol" ) ? 0 : 1, + itemClassDict = {}, item, itemClass, itemTheme, - a, last, splittheme, countParent, icon; + a, last, splittheme, countParent, icon, imgParents, img; if ( counter ) { $list.find( ".ui-li-dec" ).remove(); } + + if ( !o.theme ) { + o.theme = $.mobile.getInheritedTheme( this.element, "c" ); + } for ( var pos = 0, numli = li.length; pos < numli; pos++ ) { item = li.eq( pos ); @@ -4230,17 +4284,15 @@ $.widget( "mobile.listview", $.mobile.widget, { // If we're creating the element, we update it regardless if ( create || !item.hasClass( "ui-li" ) ) { itemTheme = item.jqmData("theme") || o.theme; - //a = item.children( "a" ); john + //a = this._getChildrenByTagName( item[ 0 ], "a", "A" ); john if(item.hasClass( "label" )) { - var a = item.children( "a" ); - + var a = this._getChildrenByTagName( item[ 0 ], "a", "A" ); } else if(item.hasClass( "activity" )) { var a = item.find( "a" ); - //var a = item.children( "a" ); } else { - var a = item.children( "a" ); + var a = this._getChildrenByTagName( item[ 0 ], "a", "A" ); } if ( a.length ) { @@ -4280,7 +4332,7 @@ $.widget( "mobile.listview", $.mobile.widget, { }) .find( ".ui-btn-inner" ) .append( - $( "" ).buttonMarkup({ + $( document.createElement( "span" ) ).buttonMarkup({ shadow: true, corners: true, theme: splittheme, @@ -4311,11 +4363,59 @@ $.widget( "mobile.listview", $.mobile.widget, { .prepend( "" + (counter++) + ". " ); } - item.add( item.children( ".ui-btn-inner" ) ).addClass( itemClass ); + // Instead of setting item class directly on the list item and its + // btn-inner at this point in time, push the item into a dictionary + // that tells us what class to set on it so we can do this after this + // processing loop is finished. - self._itemApply( $list, item ); + if ( !itemClassDict[ itemClass ] ) { + itemClassDict[ itemClass ] = []; + } + + itemClassDict[ itemClass ].push( item[ 0 ] ); } + // Set the appropriate listview item classes on each list item + // and their btn-inner elements. The main reason we didn't do this + // in the for-loop above is because we can eliminate per-item function overhead + // by calling addClass() and children() once or twice afterwards. This + // can give us a significant boost on platforms like WP7.5. + + for ( itemClass in itemClassDict ) { + $( itemClassDict[ itemClass ] ).addClass( itemClass ).children( ".ui-btn-inner" ).addClass( itemClass ); + } + + $list.find( "h1, h2, h3, h4, h5, h6" ).addClass( "ui-li-heading" ) + .end() + + .find( "p, dl" ).addClass( "ui-li-desc" ) + .end() + + .find( ".ui-li-aside" ).each(function() { + var $this = $(this); + $this.prependTo( $this.parent() ); //shift aside to front for css float + }) + .end() + + .find( ".ui-li-count" ).each( function() { + $( this ).closest( "li" ).addClass( "ui-li-has-count" ); + }).addClass( "ui-btn-up-" + ( $list.jqmData( "counttheme" ) || this.options.countTheme) + " ui-btn-corner-all" ); + + // The idea here is to look at the first image in the list item + // itself, and any .ui-link-inherit element it may contain, so we + // can place the appropriate classes on the image and list item. + // Note that we used to use something like: + // + // li.find(">img:eq(0), .ui-link-inherit>img:eq(0)").each( ... ); + // + // But executing a find() like that on Windows Phone 7.5 took a + // really long time. Walking things manually with the code below + // allows the 400 listview item page to load in about 3 seconds as + // opposed to 30 seconds. + + this._addThumbClasses( li ); + this._addThumbClasses( $list.find( ".ui-link-inherit" ) ); + this._refreshCorners( create ); }, @@ -4418,10 +4518,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : "listview" filter extension -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "listview" filter extension */ (function( $, undefined ) { @@ -4463,12 +4560,11 @@ $( ":jqmData(role='listview')" ).live( "listviewcreate", function() { // Change val as lastval for next execution $this.jqmData( "lastval" , val ); - - change = val.replace( new RegExp( "^" + lastval ) , "" ); + change = val.substr( 0 , lastval.length - 1 ).replace( lastval , "" ); if ( val.length < lastval.length || change.length != ( val.length - lastval.length ) ) { - // Removed chars or pasted something totaly different, check all items + // Removed chars or pasted something totally different, check all items listItems = list.children(); } else { @@ -4498,7 +4594,7 @@ $( ":jqmData(role='listview')" ).live( "listviewcreate", function() { item.toggleClass( "ui-filter-hidequeue" , true ); } else { - // There"s a shown item in the bucket + // There's a shown item in the bucket childItems = true; } } @@ -4535,10 +4631,7 @@ $( ":jqmData(role='listview')" ).live( "listviewcreate", function() { }); })( jQuery );/* -* jQuery Mobile Framework : "nojs" plugin - class to make elements hidden to A grade browsers -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "nojs" plugin - class to make elements hidden to A grade browsers */ (function( $, undefined ) { @@ -4549,10 +4642,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery );/* -* jQuery Mobile Framework : "checkboxradio" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "checkboxradio" plugin */ (function( $, undefined ) { @@ -4567,7 +4657,7 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { input = this.element, // NOTE: Windows Phone could not find the label through a selector // filter works though. - label = input.closest( "form,fieldset,:jqmData(role='page')" ).find( "label" ).filter( "[for='" + input[ 0 ].id + "']"), + label = input.closest( "form,fieldset,:jqmData(role='page')" ).find( "label[for='" + input[ 0 ].id + "']"), inputtype = input.attr( "type" ), checkedState = inputtype + "-on", uncheckedState = inputtype + "-off", @@ -4624,6 +4714,13 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { input.prop( "checked", inputtype === "radio" && true || !input.prop( "checked" ) ); + // trigger click handler's bound directly to the input as a substitute for + // how label clicks behave normally in the browsers + // TODO: it would be nice to let the browser's handle the clicks and pass them + // through to the associate input. we can swallow that click at the parent + // wrapper element level + input.triggerHandler( 'click' ); + // Input set for common radio buttons will contain all the radio // buttons, but will not for checkboxes. clearing the checked status // of other radios ensures the active button state is applied properly @@ -4638,11 +4735,10 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { input .bind({ vmousedown: function() { - this._cacheVals(); + self._cacheVals(); }, vclick: function() { - var $this = $(this); // Adds checked attribute to checked input when keyboard is used @@ -4742,10 +4838,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : "button" plugin - links that proxy to native input/buttons -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "button" plugin - links that proxy to native input/buttons */ (function( $, undefined ) { @@ -4792,15 +4885,18 @@ $.widget( "mobile.button", $.mobile.widget, { // Add hidden input if it doesn’t already exist. if( $buttonPlaceholder === undefined ) { $buttonPlaceholder = $( "", { - type: "hidden", - name: $el.attr( "name" ), - value: $el.attr( "value" ) - }) - .insertBefore( $el ); + type: "hidden", + name: $el.attr( "name" ), + value: $el.attr( "value" ) + }).insertBefore( $el ); // Bind to doc to remove after submit handling - $( document ).submit(function(){ - $buttonPlaceholder.remove(); + $( document ).one("submit", function(){ + $buttonPlaceholder.remove(); + + // reset the local var so that the hidden input + // will be re-added on subsequent clicks + $buttonPlaceholder = undefined; }); } }); @@ -4822,11 +4918,17 @@ $.widget( "mobile.button", $.mobile.widget, { }, refresh: function() { - if ( this.element.attr( "disabled" ) ) { + var $el = this.element; + + if ( $el.prop("disabled") ) { this.disable(); } else { this.enable(); } + + // the textWrapper is stored as a data element on the button object + // to prevent referencing by it's implementation details (eg 'class') + this.button.data( 'textWrapper' ).text( $el.text() || $el.val() ); } }); @@ -4836,10 +4938,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery );/* -* jQuery Mobile Framework : "slider" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "slider" plugin */ ( function( $, undefined ) { @@ -4907,12 +5006,16 @@ $.widget( "mobile.slider", $.mobile.widget, { handle: handle, dragging: false, beforeStart: null, - userModified: false + userModified: false, + mouseMoved: false }); if ( cType == "select" ) { slider.wrapInner( "
" ); + + // make the handle move with a smooth transition + handle.addClass( "ui-slider-handle-snapping" ); options = control.find( "option" ); @@ -4936,7 +5039,10 @@ $.widget( "mobile.slider", $.mobile.widget, { // monitor the input for updated values control.addClass( cType === "input" ? "ui-slider-input" : "ui-slider-switch" ) .change( function() { - self.refresh( val(), true ); + // if the user dragged the handle, the "change" event was triggered from inside refresh(); don't call refresh() again + if (!self.mouseMoved) { + self.refresh( val(), true ); + } }) .keyup( function() { // necessary? self.refresh( val(), true, true ); @@ -4948,8 +5054,18 @@ $.widget( "mobile.slider", $.mobile.widget, { // prevent screen drag when slider activated $( document ).bind( "vmousemove", function( event ) { if ( self.dragging ) { + // self.mouseMoved must be updated before refresh() because it will be used in the control "change" event + self.mouseMoved = true; + + if ( cType === "select" ) { + // make the handle move in sync with the mouse + handle.removeClass( "ui-slider-handle-snapping" ); + } + self.refresh( event ); - self.userModified = self.userModified || self.beforeStart !== control[0].selectedIndex; + + // only after refresh() you can calculate self.userModified + self.userModified = self.beforeStart !== control[0].selectedIndex; return false; } }); @@ -4957,10 +5073,12 @@ $.widget( "mobile.slider", $.mobile.widget, { slider.bind( "vmousedown", function( event ) { self.dragging = true; self.userModified = false; + self.mouseMoved = false; if ( cType === "select" ) { self.beforeStart = control[0].selectedIndex; } + self.refresh( event ); return false; }); @@ -4971,14 +5089,31 @@ $.widget( "mobile.slider", $.mobile.widget, { self.dragging = false; - if ( cType === "select" ) { - - if ( !self.userModified ) { - //tap occurred, but value didn't change. flip it! - handle.addClass( "ui-slider-handle-snapping" ); - self.refresh( !self.beforeStart ? 1 : 0 ); + if ( cType === "select") { + + // make the handle move with a smooth transition + handle.addClass( "ui-slider-handle-snapping" ); + + if ( self.mouseMoved ) { + + // this is a drag, change the value only if user dragged enough + if ( self.userModified ) { + self.refresh( self.beforeStart == 0 ? 1 : 0 ); + } + else { + self.refresh( self.beforeStart ); + } + } + else { + // this is just a click, change the value + self.refresh( self.beforeStart == 0 ? 1 : 0 ); + } + } + + self.mouseMoved = false; + return false; } }); @@ -5052,8 +5187,7 @@ $.widget( "mobile.slider", $.mobile.widget, { refresh: function( val, isfromControl, preventInputUpdate ) { if ( this.options.disabled || this.element.attr('disabled')) { - this.slider.addClass('ui-disabled'); - return; + this.disable(); } var control = this.element, percent, @@ -5160,10 +5294,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : "textinput" plugin for text inputs, textareas -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "textinput" plugin for text inputs, textareas */ (function( $, undefined ) { @@ -5178,20 +5309,13 @@ $.widget( "mobile.textinput", $.mobile.widget, { var input = this.element, o = this.options, - theme = o.theme, - themeclass, focusedEl, clearbtn; - - if ( !theme ) { - theme = $.mobile.getInheritedTheme( this.element, "c" ); - } - - themeclass = " ui-body-" + theme; + theme = o.theme || $.mobile.getInheritedTheme( this.element, "c" ), + themeclass = " ui-body-" + theme, + focusedEl, clearbtn; $( "label[for='" + input.attr( "id" ) + "']" ).addClass( "ui-input-text" ); - input.addClass("ui-input-text ui-body-"+ theme ); - - focusedEl = input; + focusedEl = input.addClass("ui-input-text ui-body-"+ theme ); // XXX: Temporary workaround for issue 785 (Apple bug 8910589). // Turn off autocorrect and autocomplete on non-iOS 5 devices @@ -5228,17 +5352,14 @@ $.widget( "mobile.textinput", $.mobile.widget, { }); function toggleClear() { - if ( !input.val() ) { - clearbtn.addClass( "ui-input-clear-hidden" ); - } else { - clearbtn.removeClass( "ui-input-clear-hidden" ); - } + setTimeout(function() { + clearbtn.toggleClass( "ui-input-clear-hidden", !input.val() ); + }, 0); } toggleClear(); - input.keyup( toggleClear ) - .focus( toggleClear ); + input.bind('paste cut keyup focus change blur', toggleClear); } else { input.addClass( "ui-corner-all ui-shadow-inset" + themeclass ); @@ -5260,9 +5381,7 @@ $.widget( "mobile.textinput", $.mobile.widget, { clientHeight = input[ 0 ].clientHeight; if ( clientHeight < scrollHeight ) { - input.css({ - height: (scrollHeight + extraLineHeight) - }); + input.height(scrollHeight + extraLineHeight); } }, keyupTimeout; @@ -5272,10 +5391,15 @@ $.widget( "mobile.textinput", $.mobile.widget, { keyupTimeout = setTimeout( keyup, keyupTimeoutBuffer ); }); - // Issue 509: the browser is not giving scrollHeight properly until after the document - // is ready. - if ($.trim(input.text())) { - $(keyup); + // Issue 509: the browser is not providing scrollHeight properly until the styles load + if ( $.trim( input.val() ) ) { + // bind to the window load to make sure the height is calculated based on BOTH + // the DOM and CSS + $( window ).load( keyup ); + + // binding to pagechange here ensures that for pages loaded via + // ajax the height is recalculated without user input + $( document ).one( "pagechange", keyup ); } } }, @@ -5298,10 +5422,7 @@ $( document ).bind( "pagecreate create", function( e ){ })( jQuery ); /* -* jQuery Mobile Framework : custom "selectmenu" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* custom "selectmenu" plugin */ (function( $, undefined ) { @@ -5316,7 +5437,7 @@ $( document ).bind( "pagecreate create", function( e ){ isMultiple = widget.isMultiple = widget.select[ 0 ].multiple, buttonId = selectID + "-button", menuId = selectID + "-menu", - menuPage = $( "
" + + menuPage = $( "
" + "
" + "
" + label.getEncodedText() + "
"+ "
"+ @@ -5623,7 +5744,7 @@ $( document ).bind( "pagecreate create", function( e ){ // fall into a black hole self.thisPage.unbind( "pagehide.remove" ); - //for webos (set lastscroll using button offset) + //for WebOS/Opera Mini (set lastscroll using button offset) if ( scrollTop == 0 && btnOffset > screenHeight ) { self.thisPage.one( "pagehide", function() { $( this ).jqmData( "lastScroll", btnOffset ); @@ -5794,10 +5915,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery ); /* -* jQuery Mobile Framework : "selectmenu" plugin -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "selectmenu" plugin */ (function( $, undefined ) { @@ -6002,30 +6120,36 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery ); /* -* jQuery Mobile Framework : plugin for making button-like links -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "buttons" plugin - for making button-like links */ + ( function( $, undefined ) { $.fn.buttonMarkup = function( options ) { - return this.each( function() { - var el = $( this ), + options = options || {}; + + for ( var i = 0; i < this.length; i++ ) { + var el = this.eq( i ), + e = el[ 0 ], o = $.extend( {}, $.fn.buttonMarkup.defaults, { - icon: el.jqmData( "icon" ), - iconpos: el.jqmData( "iconpos" ), - theme: el.jqmData( "theme" ), - inline: el.jqmData( "inline" ), - shadow: el.jqmData( "shadow" ), - corners: el.jqmData( "corners" ), - iconshadow: el.jqmData( "iconshadow" ) + icon: options.icon !== undefined ? options.icon : el.jqmData( "icon" ), + iconpos: options.iconpos !== undefined ? options.iconpos : el.jqmData( "iconpos" ), + theme: options.theme !== undefined ? options.theme : el.jqmData( "theme" ), + inline: options.inline !== undefined ? options.inline : el.jqmData( "inline" ), + shadow: options.shadow !== undefined ? options.shadow : el.jqmData( "shadow" ), + corners: options.corners !== undefined ? options.corners : el.jqmData( "corners" ), + iconshadow: options.iconshadow !== undefined ? options.iconshadow : el.jqmData( "iconshadow" ) }, options ), // Classes Defined innerClass = "ui-btn-inner", + textClass = "ui-btn-text", buttonClass, iconClass, - wrap; + + // Button inner markup + buttonInner = document.createElement( o.wrapperEls ), + buttonText = document.createElement( o.wrapperEls ), + buttonIcon = o.icon ? document.createElement( "span" ) : null; if ( attachEvents ) { attachEvents(); @@ -6070,15 +6194,33 @@ $.fn.buttonMarkup = function( options ) { buttonClass += " ui-shadow"; } - el.attr( "data-" + $.mobile.ns + "theme", o.theme ) - .addClass( buttonClass ); + e.setAttribute( "data-" + $.mobile.ns + "theme", o.theme ); + el.addClass( buttonClass ); - wrap = ( "" ).replace( /D/g, o.wrapperEls ); + buttonInner.className = innerClass; + buttonInner.setAttribute("aria-hidden", "true"); - el.wrapInner( wrap ); - }); + buttonText.className = textClass; + buttonInner.appendChild( buttonText ); + + if ( buttonIcon ) { + buttonIcon.className = iconClass; + buttonInner.appendChild( buttonIcon ); + } + + while ( e.firstChild ) { + buttonText.appendChild( e.firstChild ); + } + + e.appendChild( buttonInner ); + + // TODO obviously it would be nice to pull this element out instead of + // retrieving it from the DOM again, but this change is much less obtrusive + // and 1.0 draws nigh + $.data( e, 'textWrapper', $( buttonText ) ); + } + + return this; }; $.fn.buttonMarkup.defaults = { @@ -6090,14 +6232,23 @@ $.fn.buttonMarkup.defaults = { }; function closestEnabledButton( element ) { - while ( element ) { - var $ele = $( element ); - if ( $ele.hasClass( "ui-btn" ) && !$ele.hasClass( "ui-disabled" ) ) { - break; - } - element = element.parentNode; - } - return element; + var cname; + + while ( element ) { + // Note that we check for typeof className below because the element we + // handed could be in an SVG DOM where className on SVG elements is defined to + // be of a different type (SVGAnimatedString). We only operate on HTML DOM + // elements, so we look for plain "string". + + cname = ( typeof element.className === 'string' ) && element.className.split(' '); + + if ( cname && $.inArray( "ui-btn", cname ) > -1 && $.inArray( "ui-disabled", cname ) < 0 ) { + break; + } + element = element.parentNode; + } + + return element; } var attachEvents = function() { @@ -6139,7 +6290,7 @@ var attachEvents = function() { if ( btn ) { $btn = $( btn ); theme = $btn.attr( "data-" + $.mobile.ns + "theme" ); - $btn.removeClass( "ui-btn-hover-" + theme ).addClass( "ui-btn-up-" + theme ); + $btn.removeClass( "ui-btn-hover-" + theme + " ui-btn-down-" + theme ).addClass( "ui-btn-up-" + theme ); } } }); @@ -6157,12 +6308,10 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery ); -/* -* jQuery Mobile Framework: "controlgroup" plugin - corner-rounding for groups of buttons, checks, radios, etc -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +/* +* "controlgroup" plugin - corner-rounding for groups of buttons, checks, radios, etc */ + (function( $, undefined ) { $.fn.controlgroup = function( options ) { @@ -6175,9 +6324,9 @@ $.fn.controlgroup = function( options ) { shadow: false, excludeInvisible: true }, options ), - groupheading = $el.find( ">legend" ), + groupheading = $el.children( "legend" ), flCorners = o.direction == "horizontal" ? [ "ui-corner-left", "ui-corner-right" ] : [ "ui-corner-top", "ui-corner-bottom" ], - type = $el.find( "input:eq(0)" ).attr( "type" ); + type = $el.find( "input" ).first().attr( "type" ); // Replace legend with more stylable replacement div if ( groupheading.length ) { @@ -6194,7 +6343,7 @@ $.fn.controlgroup = function( options ) { els.removeClass( "ui-btn-corner-all ui-shadow" ) .eq( 0 ).addClass( flCorners[ 0 ] ) .end() - .filter( ":last" ).addClass( flCorners[ 1 ] ).addClass( "ui-controlgroup-last" ); + .last().addClass( flCorners[ 1 ] ).addClass( "ui-controlgroup-last" ); } flipClasses( $el.find( ".ui-btn" + ( o.excludeInvisible ? ":visible" : "" ) ) ); @@ -6212,10 +6361,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })(jQuery);/* -* jQuery Mobile Framework : "links" plugin - simple class additions for links -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "links" plugin - simple class additions for links */ (function( $, undefined ) { @@ -6231,10 +6377,7 @@ $( document ).bind( "pagecreate create", function( e ){ }); })( jQuery );/* -* jQuery Mobile Framework : "fixHeaderFooter" plugin - on-demand positioning for headers,footers -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "fixHeaderFooter" plugin - on-demand positioning for headers,footers */ (function( $, undefined ) { @@ -6613,10 +6756,7 @@ $( document ).bind( "pagecreate create", function( event ) { })( jQuery ); /* -* jQuery Mobile Framework : "fixHeaderFooter" native plugin - Behavior for "fixed" headers,footers, and scrolling inner content -* Copyright (c) jQuery Project -* Dual licensed under the MIT or GPL Version 2 licenses. -* http://jquery.org/license +* "fixHeaderFooter" native plugin - Behavior for "fixed" headers,footers, and scrolling inner content */ (function( $, undefined ) { @@ -6675,14 +6815,9 @@ $( document ).bind( "pagecreate", function( event ) { }); })( jQuery ); -/*! - * jQuery Mobile v@VERSION - * http://jquerymobile.com/ - * - * Copyright 2010, jQuery Project - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ +/* +* "init" - Initialize the framework +*/ (function( $, window, undefined ) { var $html = $( "html" ), diff --git a/theme/mymobile/style/jmobilerc2.css b/theme/mymobile/style/jmobile1.css similarity index 69% rename from theme/mymobile/style/jmobilerc2.css rename to theme/mymobile/style/jmobile1.css index cfd94b10176..f9f765fce4d 100644 --- a/theme/mymobile/style/jmobilerc2.css +++ b/theme/mymobile/style/jmobile1.css @@ -1,109 +1,111 @@ -/*! - * jQuery Mobile v1.0rc2 - * http://jquerymobile.com/ - * - * Copyright 2010, jQuery Project - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ -/*! -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +/* +* jQuery Mobile Framework Git Build: SHA1: ed6a08489708b68de614ddd5bf2f6f4bfd1cb36a <> Date: Thu Nov 17 11:25:15 2011 -0500 +* http://jquerymobile.com +* +* Copyright 2011 (c) jQuery Project +* Dual licensed under the MIT or GPL Version 2 licenses. +* http://jquery.org/license +* */ /* Swatches */ + /* A -----------------------------------------------------------------------------------------------------------*/ + .ui-bar-a { border: 1px solid #2A2A2A /*{a-bar-border}*/; background: #111111 /*{a-bar-background-color}*/; color: #ffffff /*{a-bar-color}*/; font-weight: bold; text-shadow: 0 /*{a-bar-shadow-x}*/ -1px /*{a-bar-shadow-y}*/ 1px /*{a-bar-shadow-radius}*/ #000000 /*{a-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c /*{a-bar-background-start}*/), to(#111 /*{a-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #3c3c3c /*{a-bar-background-start}*/), to( #111 /*{a-bar-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); } -.ui-bar-a, -.ui-bar-a input, -.ui-bar-a select, -.ui-bar-a textarea, +.ui-bar-a, +.ui-bar-a input, +.ui-bar-a select, +.ui-bar-a textarea, .ui-bar-a button { - font-family: Helvetica, Arial, sans-serif /*{a-bar-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-bar-a .ui-link-inherit { color: #fff /*{a-bar-color}*/; } + .ui-bar-a .ui-link { color: #7cc4e7 /*{a-bar-link-color}*/; font-weight: bold; } + .ui-bar-a .ui-link:hover { color: #2489CE /*{a-bar-link-hover}*/; } + .ui-bar-a .ui-link:active { color: #2489CE /*{a-bar-link-active}*/; } + .ui-bar-a .ui-link:visited { color: #2489CE /*{a-bar-link-visited}*/; } -.ui-body-a { +.ui-body-a, +.ui-dialog.ui-overlay-a { border: 1px solid #2A2A2A /*{a-body-border}*/; background: #222222 /*{a-body-background-color}*/; color: #fff /*{a-body-color}*/; text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ #000 /*{a-body-shadow-color}*/; font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from(#666 /*{a-body-background-start}*/), to(#222 /*{a-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #666 /*{a-body-background-start}*/), to( #222 /*{a-body-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#666 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); } .ui-body-a, .ui-body-a input, .ui-body-a select, .ui-body-a textarea, .ui-body-a button { - font-family: Helvetica, Arial, sans-serif /*{a-body-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-body-a .ui-link-inherit { color: #fff /*{a-body-color}*/; } + .ui-body-a .ui-link { color: #2489CE /*{a-body-link-color}*/; font-weight: bold; } + .ui-body-a .ui-link:hover { color: #2489CE /*{a-body-link-hover}*/; } + .ui-body-a .ui-link:active { color: #2489CE /*{a-body-link-active}*/; } + .ui-body-a .ui-link:visited { color: #2489CE /*{a-body-link-visited}*/; } -.ui-br { - border-bottom: rgb(130,130,130); - border-bottom: rgba(130,130,130,.3); - border-bottom-width: 1px; - border-bottom-style: solid; -} + .ui-btn-up-a { border: 1px solid #222 /*{a-bup-border}*/; background: #333333 /*{a-bup-background-color}*/; font-weight: bold; color: #fff /*{a-bup-color}*/; text-shadow: 0 /*{a-bup-shadow-x}*/ -1px /*{a-bup-shadow-y}*/ 1px /*{a-bup-shadow-radius}*/ #000 /*{a-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#555 /*{a-bup-background-start}*/), to(#333 /*{a-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #555 /*{a-bup-background-start}*/), to( #333 /*{a-bup-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#555 /*{a-bup-background-start}*/, #333 /*{a-bup-background-end}*/); } .ui-btn-up-a a.ui-link-inherit { color: #fff /*{a-bup-color}*/; @@ -114,12 +116,12 @@ font-weight: bold; color: #fff /*{a-bhover-color}*/; text-shadow: 0 /*{a-bhover-shadow-x}*/ -1px /*{a-bhover-shadow-y}*/ 1px /*{a-bhover-shadow-radius}*/ #000 /*{a-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#666 /*{a-bhover-background-start}*/), to(#444 /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #666 /*{a-bhover-background-start}*/), to( #444 /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#666 /*{a-bhover-background-start}*/, #444 /*{a-bhover-background-end}*/); } .ui-btn-hover-a a.ui-link-inherit { color: #fff /*{a-bhover-color}*/; @@ -130,12 +132,12 @@ font-weight: bold; color: #fff /*{a-bdown-color}*/; text-shadow: 0 /*{a-bdown-shadow-x}*/ -1px /*{a-bdown-shadow-y}*/ 1px /*{a-bdown-shadow-radius}*/ #000 /*{a-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#333 /*{a-bdown-background-start}*/), to(#5a5a5a /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #333 /*{a-bdown-background-start}*/), to( #5a5a5a /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#333 /*{a-bdown-background-start}*/, #5a5a5a /*{a-bdown-background-end}*/); } .ui-btn-down-a a.ui-link-inherit { color: #fff /*{a-bdown-color}*/; @@ -143,30 +145,33 @@ .ui-btn-up-a, .ui-btn-hover-a, .ui-btn-down-a { - font-family: Helvetica, Arial, sans-serif /*{a-button-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; text-decoration: none; } + + /* B -----------------------------------------------------------------------------------------------------------*/ + .ui-bar-b { border: 1px solid #456f9a /*{b-bar-border}*/; background: #5e87b0 /*{b-bar-background-color}*/; color: #fff /*{b-bar-color}*/; font-weight: bold; text-shadow: 0 /*{b-bar-shadow-x}*/ -1px /*{b-bar-shadow-y}*/ 1px /*{b-bar-shadow-radius}*/ #254f7a /*{b-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#81a8ce /*{b-bar-background-start}*/), to(#5e87b0 /*{b-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #81a8ce /*{b-bar-background-start}*/), to( #5e87b0 /*{b-bar-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#81a8ce /*{b-bar-background-start}*/, #5e87b0 /*{b-bar-background-end}*/); } .ui-bar-b, .ui-bar-b input, .ui-bar-b select, .ui-bar-b textarea, .ui-bar-b button { - font-family: Helvetica, Arial, sans-serif /*{b-bar-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-bar-b .ui-link-inherit { color: #fff /*{b-bar-color}*/; @@ -175,63 +180,72 @@ color: #ddf0f8 /*{b-bar-link-color}*/; font-weight: bold; } + .ui-bar-b .ui-link:hover { color: #ddf0f8 /*{b-bar-link-hover}*/; } + .ui-bar-b .ui-link:active { color: #ddf0f8 /*{b-bar-link-active}*/; } + .ui-bar-b .ui-link:visited { color: #ddf0f8 /*{b-bar-link-visited}*/; } -.ui-body-b { +.ui-body-b, +.ui-dialog.ui-overlay-b { border: 1px solid #C6C6C6 /*{b-body-border}*/; background: #cccccc /*{b-body-background-color}*/; color: #333333 /*{b-body-color}*/; text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ #fff /*{b-body-shadow-color}*/; font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e6e6e6 /*{b-body-background-start}*/), to(#ccc /*{b-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #e6e6e6 /*{b-body-background-start}*/), to( #ccc /*{b-body-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#e6e6e6 /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); } .ui-body-b, .ui-body-b input, .ui-body-b select, .ui-body-b textarea, .ui-body-b button { - font-family: Helvetica, Arial, sans-serif /*{b-body-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-body-b .ui-link-inherit { color: #333333 /*{b-body-color}*/; } + .ui-body-b .ui-link { color: #2489CE /*{b-body-link-color}*/; font-weight: bold; } + .ui-body-b .ui-link:hover { color: #2489CE /*{b-body-link-hover}*/; } + .ui-body-b .ui-link:active { color: #2489CE /*{b-body-link-active}*/; } + .ui-body-b .ui-link:visited { color: #2489CE /*{b-body-link-visited}*/; } + .ui-btn-up-b { border: 1px solid #145072 /*{b-bup-border}*/; background: #2567ab /*{b-bup-background-color}*/; font-weight: bold; color: #fff /*{b-bup-color}*/; text-shadow: 0 /*{b-bup-shadow-x}*/ -1px /*{b-bup-shadow-y}*/ 1px /*{b-bup-shadow-radius}*/ #145072 /*{b-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#5f9cc5 /*{b-bup-background-start}*/), to(#396b9e /*{b-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #5f9cc5 /*{b-bup-background-start}*/), to( #396b9e /*{b-bup-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); } .ui-btn-up-b a.ui-link-inherit { color: #fff /*{b-bup-color}*/; @@ -242,12 +256,12 @@ font-weight: bold; color: #fff /*{b-bhover-color}*/; text-shadow: 0 /*{b-bhover-shadow-x}*/ -1px /*{b-bhover-shadow-y}*/ 1px /*{b-bhover-shadow-radius}*/ #014D68 /*{b-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#72b0d4 /*{b-bhover-background-start}*/), to(#4b88b6 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #72b0d4 /*{b-bhover-background-start}*/), to( #4b88b6 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#72b0d4 /*{b-bhover-background-start}*/, #4b88b6 /*{b-bhover-background-end}*/); } .ui-btn-hover-b a.ui-link-inherit { color: #fff /*{b-bhover-color}*/; @@ -258,12 +272,12 @@ font-weight: bold; color: #fff /*{b-bdown-color}*/; text-shadow: 0 /*{b-bdown-shadow-x}*/ -1px /*{b-bdown-shadow-y}*/ 1px /*{b-bdown-shadow-radius}*/ #225377 /*{b-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#396b9e /*{b-bdown-background-start}*/), to(#4e89c5 /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #396b9e /*{b-bdown-background-start}*/), to( #4e89c5 /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#396b9e /*{b-bdown-background-start}*/, #4e89c5 /*{b-bdown-background-end}*/); } .ui-btn-down-b a.ui-link-inherit { color: #fff /*{b-bdown-color}*/; @@ -271,24 +285,28 @@ .ui-btn-up-b, .ui-btn-hover-b, .ui-btn-down-b { - font-family: Helvetica, Arial, sans-serif /*{b-button-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; text-decoration: none; } + + /* C -----------------------------------------------------------------------------------------------------------*/ + .ui-bar-c { border: 1px solid #B3B3B3 /*{c-bar-border}*/; background: #e9eaeb /*{c-bar-background-color}*/; color: #3E3E3E /*{c-bar-color}*/; font-weight: bold; text-shadow: 0 /*{c-bar-shadow-x}*/ 1px /*{c-bar-shadow-y}*/ 1px /*{c-bar-shadow-radius}*/ #fff /*{c-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0f0 /*{c-bar-background-start}*/), to(#e9eaeb /*{c-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{c-bar-background-start}*/), to( #e9eaeb /*{c-bar-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#f0f0f0 /*{c-bar-background-start}*/, #e9eaeb /*{c-bar-background-end}*/); } + .ui-bar-c .ui-link-inherit { color: #3E3E3E /*{c-bar-color}*/; } @@ -296,85 +314,97 @@ color: #7cc4e7 /*{c-bar-link-color}*/; font-weight: bold; } + .ui-bar-c .ui-link:hover { color: #2489CE /*{c-bar-link-hover}*/; } + .ui-bar-c .ui-link:active { color: #2489CE /*{c-bar-link-active}*/; } + .ui-bar-c .ui-link:visited { color: #2489CE /*{c-bar-link-visited}*/; } + .ui-bar-c, .ui-bar-c input, .ui-bar-c select, .ui-bar-c textarea, .ui-bar-c button { - font-family: Helvetica, Arial, sans-serif /*{c-bar-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } -.ui-body-c { +.ui-body-c, +.ui-dialog.ui-overlay-c { border: 1px solid #B3B3B3 /*{c-body-border}*/; color: #333333 /*{c-body-color}*/; text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #fff /*{c-body-shadow-color}*/; background: #f0f0f0 /*{c-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee /*{c-body-background-start}*/), to(#ddd /*{c-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{c-body-background-start}*/), to( #ddd /*{c-body-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#eee /*{c-body-background-start}*/, #ddd /*{c-body-background-end}*/); } .ui-body-c, .ui-body-c input, .ui-body-c select, .ui-body-c textarea, .ui-body-c button { - font-family: Helvetica, Arial, sans-serif /*{c-body-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } + .ui-body-c .ui-link-inherit { color: #333333 /*{c-body-color}*/; } + .ui-body-c .ui-link { color: #2489CE /*{c-body-link-color}*/; font-weight: bold; } + .ui-body-c .ui-link:hover { color: #2489CE /*{c-body-link-hover}*/; } + .ui-body-c .ui-link:active { color: #2489CE /*{c-body-link-active}*/; } + .ui-body-c .ui-link:visited { color: #2489CE /*{c-body-link-visited}*/; } + .ui-btn-up-c { border: 1px solid #ccc /*{c-bup-border}*/; background: #eee /*{c-bup-background-color}*/; font-weight: bold; color: #444 /*{c-bup-color}*/; text-shadow: 0 /*{c-bup-shadow-x}*/ 1px /*{c-bup-shadow-y}*/ 1px /*{c-bup-shadow-radius}*/ #f6f6f6 /*{c-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fdfdfd /*{c-bup-background-start}*/), to(#eee /*{c-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fdfdfd /*{c-bup-background-start}*/), to( #eee /*{c-bup-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fdfdfd /*{c-bup-background-start}*/, #eee /*{c-bup-background-end}*/); } .ui-btn-up-c a.ui-link-inherit { color: #2F3E46 /*{c-bup-color}*/; } + .ui-btn-hover-c { border: 1px solid #bbbbbb /*{c-bhover-border}*/; background: #dadada /*{c-bhover-background-color}*/; font-weight: bold; color: #101010 /*{c-bhover-color}*/; text-shadow: 0 /*{c-bhover-shadow-x}*/ 1px /*{c-bhover-shadow-y}*/ 1px /*{c-bhover-shadow-radius}*/ #fff /*{c-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ededed /*{c-bhover-background-start}*/), to(#dadada /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #ededed /*{c-bhover-background-start}*/), to( #dadada /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#ededed /*{c-bhover-background-start}*/, #dadada /*{c-bhover-background-end}*/); } .ui-btn-hover-c a.ui-link-inherit { color: #2F3E46 /*{c-bhover-color}*/; @@ -385,12 +415,12 @@ font-weight: bold; color: #111111 /*{c-bdown-color}*/; text-shadow: 0 /*{c-bdown-shadow-x}*/ 1px /*{c-bdown-shadow-y}*/ 1px /*{c-bdown-shadow-radius}*/ #ffffff /*{c-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee /*{c-bdown-background-start}*/), to(#fdfdfd /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{c-bdown-background-start}*/), to( #fdfdfd /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#eee /*{c-bdown-background-start}*/, #fdfdfd /*{c-bdown-background-end}*/); } .ui-btn-down-c a.ui-link-inherit { color: #2F3E46 /*{c-bdown-color}*/; @@ -398,30 +428,34 @@ .ui-btn-up-c, .ui-btn-hover-c, .ui-btn-down-c { - font-family: Helvetica, Arial, sans-serif /*{c-button-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; text-decoration: none; } + + /* D -----------------------------------------------------------------------------------------------------------*/ + .ui-bar-d { border: 1px solid #ccc /*{d-bar-border}*/; background: #bbb /*{d-bar-background-color}*/; color: #333 /*{d-bar-color}*/; text-shadow: 0 /*{d-bar-shadow-x}*/ 1px /*{d-bar-shadow-y}*/ 0 /*{d-bar-shadow-radius}*/ #eee /*{d-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ddd /*{d-bar-background-start}*/), to(#bbb /*{d-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{d-bar-background-start}*/), to( #bbb /*{d-bar-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); } .ui-bar-d, .ui-bar-d input, .ui-bar-d select, .ui-bar-d textarea, .ui-bar-d button { - font-family: Helvetica, Arial, sans-serif /*{d-bar-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } + .ui-bar-d .ui-link-inherit { color: #333333 /*{d-bar-color}*/; } @@ -429,62 +463,73 @@ color: #2489CE /*{d-bar-link-color}*/; font-weight: bold; } + .ui-bar-d .ui-link:hover { color: #2489CE /*{d-bar-link-hover}*/; } + .ui-bar-d .ui-link:active { color: #2489CE /*{d-bar-link-active}*/; } + .ui-bar-d .ui-link:visited { color: #2489CE /*{d-bar-link-visited}*/; } -.ui-body-d { + +.ui-body-d, +.ui-dialog.ui-overlay-d { border: 1px solid #ccc /*{d-body-border}*/; color: #333333 /*{d-body-color}*/; text-shadow: 0 /*{d-body-shadow-x}*/ 1px /*{d-body-shadow-y}*/ 0 /*{d-body-shadow-radius}*/ #fff /*{d-body-shadow-color}*/; background: #ffffff /*{d-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff /*{d-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fff), to( #fff /*{d-body-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); } .ui-body-d, .ui-body-d input, .ui-body-d select, .ui-body-d textarea, .ui-body-d button { - font-family: Helvetica, Arial, sans-serif /*{d-body-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } + .ui-body-d .ui-link-inherit { color: #333333 /*{d-body-color}*/; } + .ui-body-d .ui-link { color: #2489CE /*{d-body-link-color}*/; font-weight: bold; } + .ui-body-d .ui-link:hover { color: #2489CE /*{d-body-link-hover}*/; } + .ui-body-d .ui-link:active { color: #2489CE /*{d-body-link-active}*/; } + .ui-body-d .ui-link:visited { color: #2489CE /*{d-body-link-visited}*/; } + .ui-btn-up-d { border: 1px solid #ccc /*{d-bup-border}*/; background: #fff /*{d-bup-background-color}*/; font-weight: bold; color: #444 /*{d-bup-color}*/; text-shadow: 0 /*{d-bup-shadow-x}*/ 1px /*{d-bup-shadow-y}*/ 1px /*{d-bup-shadow-radius}*/ #fff /*{d-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff /*{d-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fff), to( #fff /*{d-bup-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fff /*{d-bup-background-start}*/, #fff /*{d-bup-background-end}*/); } .ui-btn-up-d a.ui-link-inherit { color: #333 /*{d-bup-color}*/; @@ -496,12 +541,12 @@ color: #222 /*{d-bhover-color}*/; cursor: pointer; text-shadow: 0 /*{d-bhover-shadow-x}*/ 1px /*{d-bhover-shadow-y}*/ 1px /*{d-bhover-shadow-radius}*/ #fff /*{d-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#eee /*{d-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fdfdfd), to( #eee /*{d-bhover-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fdfdfd /*{d-bhover-background-start}*/, #eee /*{d-bhover-background-end}*/); } .ui-btn-hover-d a.ui-link-inherit { color: #222 /*{d-bhover-color}*/; @@ -512,12 +557,12 @@ font-weight: bold; color: #111 /*{d-bdown-color}*/; text-shadow: 0 /*{d-bdown-shadow-x}*/ 1px /*{d-bdown-shadow-y}*/ 1px /*{d-bdown-shadow-radius}*/ #ffffff /*{d-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee /*{d-bdown-background-start}*/), to(#fff /*{d-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{d-bdown-background-start}*/), to( #fff /*{d-bdown-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#eee /*{d-bdown-background-start}*/, #fff /*{d-bdown-background-end}*/); } .ui-btn-down-d a.ui-link-inherit { color: #111 /*{d-bdown-color}*/; @@ -525,29 +570,32 @@ .ui-btn-up-d, .ui-btn-hover-d, .ui-btn-down-d { - font-family: Helvetica, Arial, sans-serif /*{d-button-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; text-decoration: none; } + + /* E -----------------------------------------------------------------------------------------------------------*/ + .ui-bar-e { border: 1px solid #F7C942 /*{e-bar-border}*/; background: #fadb4e /*{e-bar-background-color}*/; color: #333 /*{e-bar-color}*/; text-shadow: 0 /*{e-bar-shadow-x}*/ 1px /*{e-bar-shadow-y}*/ 0 /*{e-bar-shadow-radius}*/ #fff /*{e-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fceda7 /*{e-bar-background-start}*/), to(#fadb4e /*{e-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fceda7 /*{e-bar-background-start}*/), to( #fadb4e /*{e-bar-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fceda7 /*{e-bar-background-start}*/, #fadb4e /*{e-bar-background-end}*/); } .ui-bar-e, .ui-bar-e input, .ui-bar-e select, .ui-bar-e textarea, .ui-bar-e button { - font-family: Helvetica, Arial, sans-serif /*{e-bar-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-bar-e .ui-link-inherit { color: #333333 /*{e-bar-color}*/; @@ -556,62 +604,72 @@ color: #2489CE /*{e-bar-link-color}*/; font-weight: bold; } + .ui-bar-e .ui-link:hover { color: #2489CE /*{e-bar-link-hover}*/; } + .ui-bar-e .ui-link:active { color: #2489CE /*{e-bar-link-active}*/; } + .ui-bar-e .ui-link:visited { color: #2489CE /*{e-bar-link-visited}*/; } -.ui-body-e { + +.ui-body-e, +.ui-dialog.ui-overlay-e { border: 1px solid #F7C942 /*{e-body-border}*/; color: #333333 /*{e-body-color}*/; text-shadow: 0 /*{e-body-shadow-x}*/ 1px /*{e-body-shadow-y}*/ 0 /*{e-body-shadow-radius}*/ #fff /*{e-body-shadow-color}*/; background: #faeb9e /*{e-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff /*{e-body-background-start}*/), to(#faeb9e /*{e-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{e-body-background-start}*/), to( #faeb9e /*{e-body-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fff /*{e-body-background-start}*/, #faeb9e /*{e-body-background-end}*/); } .ui-body-e, .ui-body-e input, .ui-body-e select, .ui-body-e textarea, .ui-body-e button { - font-family: Helvetica, Arial, sans-serif /*{e-body-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-body-e .ui-link-inherit { color: #333333 /*{e-body-color}*/; } + .ui-body-e .ui-link { color: #2489CE /*{e-body-link-color}*/; font-weight: bold; } + .ui-body-e .ui-link:hover { color: #2489CE /*{e-body-link-hover}*/; } + .ui-body-e .ui-link:active { color: #2489CE /*{e-body-link-active}*/; } + .ui-body-e .ui-link:visited { color: #2489CE /*{e-body-link-visited}*/; } + .ui-btn-up-e { border: 1px solid #F7C942 /*{e-bup-border}*/; background: #fadb4e /*{e-bup-background-color}*/; font-weight: bold; color: #333 /*{e-bup-color}*/; text-shadow: 0 /*{e-bup-shadow-x}*/ 1px /*{e-bup-shadow-y}*/ 0 /*{e-bup-shadow-radius}*/ #fff /*{e-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fceda7 /*{e-bup-background-start}*/), to(#fadb4e /*{e-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fceda7 /*{e-bup-background-start}*/), to( #fadb4e /*{e-bup-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fceda7 /*{e-bup-background-start}*/, #fadb4e /*{e-bup-background-end}*/); } .ui-btn-up-e a.ui-link-inherit { color: #333 /*{e-bup-color}*/; @@ -622,13 +680,14 @@ font-weight: bold; color: #111 /*{e-bhover-color}*/; text-shadow: 0 /*{e-bhover-shadow-x}*/ 1px /*{e-bhover-shadow-y}*/ 1px /*{e-bhover-shadow-radius}*/ #fff /*{e-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf0b5 /*{e-bhover-background-start}*/), to(#fbe26f /*{e-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fcf0b5 /*{e-bhover-background-start}*/), to( #fbe26f /*{e-bhover-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fcf0b5 /*{e-bhover-background-start}*/, #fbe26f /*{e-bhover-background-end}*/); } + .ui-btn-hover-e a.ui-link-inherit { color: #333 /*{e-bhover-color}*/; } @@ -638,12 +697,12 @@ font-weight: bold; color: #111 /*{e-bdown-color}*/; text-shadow: 0 /*{e-bdown-shadow-x}*/ 1px /*{e-bdown-shadow-y}*/ 1px /*{e-bdown-shadow-radius}*/ #ffffff /*{e-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fadb4e /*{e-bdown-background-start}*/), to(#fceda7 /*{e-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); + background-image: -webkit-gradient(linear, left top, left bottom, from( #fadb4e /*{e-bdown-background-start}*/), to( #fceda7 /*{e-bdown-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#fadb4e /*{e-bdown-background-start}*/, #fceda7 /*{e-bdown-background-end}*/); } .ui-btn-down-e a.ui-link-inherit { color: #333 /*{e-bdown-color}*/; @@ -651,17 +710,23 @@ .ui-btn-up-e, .ui-btn-hover-e, .ui-btn-down-e { - font-family: Helvetica, Arial, sans-serif /*{e-button-font}*/; + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; text-decoration: none; } + /* Structure */ -/* links within "buttons" + +/* links within "buttons" -----------------------------------------------------------------------------------------------------------*/ + a.ui-link-inherit { text-decoration: none !important; } + + /* Active class used as the "on" state across all themes -----------------------------------------------------------------------------------------------------------*/ + .ui-btn-active { border: 1px solid #155678 /*{global-active-border}*/; background: #4596ce /*{global-active-background-color}*/; @@ -670,25 +735,31 @@ a.ui-link-inherit { cursor: pointer; text-shadow: 0 /*{global-active-shadow-x}*/ -1px /*{global-active-shadow-y}*/ 1px /*{global-active-shadow-radius}*/ #145072 /*{global-active-shadow-color}*/; text-decoration: none; - background-image: -webkit-gradient(linear, left top, left bottom, from(#85bae4 /*{global-active-background-start}*/), to(#5393c5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient(top, #85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient(top, #85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient(top, #85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient(top, #85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient(top, #85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); - font-family: Helvetica, Arial, sans-serif /*{global-active-font}*/; + background-image: -webkit-gradient(linear, left top, left bottom, from( #85bae4 /*{global-active-background-start}*/), to( #5393c5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ + background-image: -webkit-linear-gradient(#85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ + background-image: -moz-linear-gradient(#85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* FF3.6 */ + background-image: -ms-linear-gradient(#85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* IE10 */ + background-image: -o-linear-gradient(#85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); /* Opera 11.10+ */ + background-image: linear-gradient(#85bae4 /*{global-active-background-start}*/, #5393c5 /*{global-active-background-end}*/); + font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; } .ui-btn-active a.ui-link-inherit { color: #fff /*{global-active-color}*/; } + + /* button inner top highlight -----------------------------------------------------------------------------------------------------------*/ + .ui-btn-inner { border-top: 1px solid #fff; border-color: rgba(255,255,255,.3); } + + /* corner rounding classes -----------------------------------------------------------------------------------------------------------*/ + .ui-corner-tl { -moz-border-radius-topleft: .6em /*{global-radii-blocks}*/; -webkit-border-top-left-radius: .6em /*{global-radii-blocks}*/; @@ -751,6 +822,16 @@ a.ui-link-inherit { -webkit-border-radius: 0; border-radius: 0; } + +/* Form field separator +-----------------------------------------------------------------------------------------------------------*/ +.ui-br { + border-bottom: rgb(130,130,130); + border-bottom: rgba(130,130,130,.3); + border-bottom-width: 1px; + border-bottom-style: solid; +} + /* Interaction cues -----------------------------------------------------------------------------------------------------------*/ .ui-disabled { @@ -761,8 +842,10 @@ a.ui-link-inherit { pointer-events: none; cursor: default; } + /* Icons -----------------------------------------------------------------------------------------------------------*/ + .ui-icon, .ui-icon-searchfield:after { background: #666 /*{global-icon-color}*/; @@ -773,16 +856,21 @@ a.ui-link-inherit { -webkit-border-radius: 9px; border-radius: 9px; } + + /* Alt icon color -----------------------------------------------------------------------------------------------------------*/ + .ui-icon-alt { background: #fff; background: rgba(255,255,255,.3); background-image: url([[pix:theme|icons-18-black]]); background-repeat: no-repeat; } + /* HD/"retina" sprite -----------------------------------------------------------------------------------------------------------*/ + @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-resolution: 240dpi) { @@ -790,7 +878,7 @@ a.ui-link-inherit { .ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r, .ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check, .ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back, - .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-search, .ui-icon-searchfield:after, + .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-search, .ui-icon-searchfield:after, .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on { background-image: url([[pix:theme|icons-36-white]]); -moz-background-size: 776px 18px; @@ -802,6 +890,7 @@ a.ui-link-inherit { background-image: url([[pix:theme|icons-36-black]]); } } + /* plus minus */ .ui-icon-plus { background-position: -0 50%; @@ -809,10 +898,12 @@ a.ui-link-inherit { .ui-icon-minus { background-position: -36px 50%; } + /* delete/close */ .ui-icon-delete { background-position: -72px 50%; } + /* arrows */ .ui-icon-arrow-r { background-position: -108px 50%; @@ -826,6 +917,7 @@ a.ui-link-inherit { .ui-icon-arrow-d { background-position: -216px 50%; } + /* misc */ .ui-icon-check { background-position: -252px 50%; @@ -873,6 +965,8 @@ a.ui-link-inherit { .ui-icon-radio-on { background-position: -720px 50%; } + + /* checks,radios */ .ui-checkbox .ui-icon { -moz-border-radius: 3px; @@ -887,6 +981,7 @@ a.ui-link-inherit { .ui-radio-on .ui-icon { background-color: #4596ce /*{global-active-background-color}*/; /* NOTE: this hex should match the active state color. It's repeated here for cascade */ } + /* loading icon */ .ui-icon-loading { background-image: url([[pix:theme|ajax-loader]]); @@ -897,8 +992,11 @@ a.ui-link-inherit { border-radius: 20px; background-size: 35px 35px; } + + /* Button corner classes -----------------------------------------------------------------------------------------------------------*/ + .ui-btn-corner-tl { -moz-border-radius-topleft: 1em /*{global-radii-buttons}*/; -webkit-border-top-left-radius: 1em /*{global-radii-buttons}*/; @@ -956,22 +1054,23 @@ a.ui-link-inherit { -webkit-border-radius: 1em /*{global-radii-buttons}*/; border-radius: 1em /*{global-radii-buttons}*/; } + /* radius clip workaround for cleaning up corner trapping */ .ui-corner-tl, .ui-corner-tr, -.ui-corner-bl, +.ui-corner-bl, .ui-corner-br, .ui-corner-top, -.ui-corner-bottom, +.ui-corner-bottom, .ui-corner-right, .ui-corner-left, .ui-corner-all, .ui-btn-corner-tl, .ui-btn-corner-tr, -.ui-btn-corner-bl, +.ui-btn-corner-bl, .ui-btn-corner-br, .ui-btn-corner-top, -.ui-btn-corner-bottom, +.ui-btn-corner-bottom, .ui-btn-corner-right, .ui-btn-corner-left, .ui-btn-corner-all { @@ -979,8 +1078,10 @@ a.ui-link-inherit { -moz-background-clip: padding; background-clip: padding-box; } + /* Overlay / modal -----------------------------------------------------------------------------------------------------------*/ + .ui-overlay { background: #666; opacity: .5; @@ -1016,39 +1117,47 @@ a.ui-link-inherit { -webkit-box-shadow: 0px 1px 0 rgba(255,255,255,.4); box-shadow: 0px 1px 0 rgba(255,255,255,.4); } + /* Focus state - set here for specificity -----------------------------------------------------------------------------------------------------------*/ + .ui-focus { -moz-box-shadow: 0px 0px 12px #387bbe /*{global-active-background-color}*/; -webkit-box-shadow: 0px 0px 12px #387bbe /*{global-active-background-color}*/; box-shadow: 0px 0px 12px #387bbe /*{global-active-background-color}*/; } + /* unset box shadow in browsers that don't do it right -----------------------------------------------------------------------------------------------------------*/ + .ui-mobile-nosupport-boxshadow * { -moz-box-shadow: none !important; -webkit-box-shadow: none !important; box-shadow: none !important; } + /* ...and bring back focus */ .ui-mobile-nosupport-boxshadow .ui-focus { outline-width: 2px; -}/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. -*/ +} /* some unsets - more probably needed */ .ui-mobile, .ui-mobile body { height: 100%; } .ui-mobile fieldset, .ui-page { padding: 0; margin: 0; } .ui-mobile a img, .ui-mobile fieldset { border: 0; } + /* responsive page widths */ -.ui-mobile-viewport { margin: 0; overflow-x: hidden; -webkit-text-size-adjust: none; -ms-text-size-adjust:none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } +.ui-mobile-viewport { margin: 0; overflow-x: visible; -webkit-text-size-adjust: none; -ms-text-size-adjust:none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } +/* Issue #2066 */ +body.ui-mobile-viewport, +div.ui-mobile-viewport { overflow-x: hidden; } + /* "page" containers - full-screen views, one should always be in view post-pageload */ .ui-mobile [data-role=page], .ui-mobile [data-role=dialog], .ui-page { top: 0; left: 0; width: 100%; min-height: 100%; position: absolute; display: none; border: 0; } .ui-mobile .ui-page-active { display: block; overflow: visible; } + /* on ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */ .ui-page { outline: none; } + /*orientations from js are available */ @media screen and (orientation: portrait){ .ui-mobile, .ui-mobile .ui-page { min-height: 420px; } @@ -1056,6 +1165,7 @@ a.ui-link-inherit { @media screen and (orientation: landscape){ .ui-mobile, .ui-mobile .ui-page { min-height: 300px; } } + /* native overflow scrolling */ .ui-page.ui-mobile-touch-overflow, .ui-mobile-touch-overflow.ui-native-fixed .ui-content { @@ -1075,6 +1185,7 @@ a.ui-link-inherit { .ui-page.ui-mobile-pre-transition { display: block; } + /* loading screen */ .ui-loading .ui-mobile-viewport { overflow: hidden !important; } .ui-loading .ui-loader { display: block; } @@ -1082,21 +1193,26 @@ a.ui-link-inherit { .ui-loader { display: none; position: absolute; opacity: .85; z-index: 100; left: 50%; width: 200px; margin-left: -130px; margin-top: -35px; padding: 10px 30px; } .ui-loader h1 { font-size: 15px; text-align: center; } .ui-loader .ui-icon { position: static; display: block; opacity: .9; margin: 0 auto; width: 35px; height: 35px; background-color: transparent; } + /*fouc*/ .ui-mobile-rendering > * { visibility: hidden; } + /*headers, content panels*/ .ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; } .ui-bar { font-size: 16px; margin: 0; } .ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } + .ui-header, .ui-footer { display: block; } .ui-page .ui-header, .ui-page .ui-footer { position: relative; } .ui-header .ui-btn-left { position: absolute; left: 10px; top: .4em; } .ui-header .ui-btn-right { position: absolute; right: 10px; top: .4em; } .ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 90px .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } .ui-footer .ui-title { margin: .6em 15px .8em; } + /*content area*/ .ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; } .ui-page-fullscreen .ui-content { padding:0; } + /* native fixed headers and footers */ .ui-mobile-touch-overflow.ui-page.ui-native-fixed, .ui-mobile-touch-overflow.ui-page.ui-native-fullscreen { @@ -1133,21 +1249,20 @@ a.ui-link-inherit { .ui-native-bars-hidden { display: none; } + /* icons sizing */ .ui-icon { width: 18px; height: 18px; } + /* fullscreen class on ui-content div */ .ui-fullscreen { } .ui-fullscreen img { max-width: 100%; } + /* non-js content hiding */ .ui-nojs { position: absolute; left: -9999px; } + /* accessible content hiding */ .ui-hide-label label, .ui-hidden-accessible { position: absolute !important; left: -9999px; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ .spin { -webkit-transform: rotate(360deg); -webkit-animation-name: spin; @@ -1159,6 +1274,7 @@ a.ui-link-inherit { from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } + /* Transitions from jQtouch (with small modifications): http://www.jqtouch.com/ Built by David Kaneda and maintained by Jonathan Stark. */ @@ -1166,86 +1282,107 @@ Built by David Kaneda and maintained by Jonathan Stark. -webkit-animation-timing-function: ease-in-out; -webkit-animation-duration: 350ms; } + + .slide.out { -webkit-transform: translateX(-100%); -webkit-animation-name: slideouttoleft; } + .slide.in { -webkit-transform: translateX(0); -webkit-animation-name: slideinfromright; } + .slide.out.reverse { -webkit-transform: translateX(100%); -webkit-animation-name: slideouttoright; } + .slide.in.reverse { -webkit-transform: translateX(0); -webkit-animation-name: slideinfromleft; } + .slideup.out { -webkit-animation-name: dontmove; z-index: 0; } + .slideup.in { -webkit-transform: translateY(0); -webkit-animation-name: slideinfrombottom; z-index: 10; } + .slideup.in.reverse { z-index: 0; -webkit-animation-name: dontmove; } + .slideup.out.reverse { -webkit-transform: translateY(100%); z-index: 10; -webkit-animation-name: slideouttobottom; } + .slidedown.out { -webkit-animation-name: dontmove; z-index: 0; } + .slidedown.in { -webkit-transform: translateY(0); -webkit-animation-name: slideinfromtop; z-index: 10; } + .slidedown.in.reverse { z-index: 0; -webkit-animation-name: dontmove; } + .slidedown.out.reverse { -webkit-transform: translateY(-100%); z-index: 10; -webkit-animation-name: slideouttotop; } + @-webkit-keyframes slideinfromright { from { -webkit-transform: translateX(100%); } to { -webkit-transform: translateX(0); } } + @-webkit-keyframes slideinfromleft { from { -webkit-transform: translateX(-100%); } to { -webkit-transform: translateX(0); } } + @-webkit-keyframes slideouttoleft { from { -webkit-transform: translateX(0); } to { -webkit-transform: translateX(-100%); } } + @-webkit-keyframes slideouttoright { from { -webkit-transform: translateX(0); } to { -webkit-transform: translateX(100%); } } + @-webkit-keyframes slideinfromtop { from { -webkit-transform: translateY(-100%); } to { -webkit-transform: translateY(0); } } + @-webkit-keyframes slideinfrombottom { from { -webkit-transform: translateY(100%); } to { -webkit-transform: translateY(0); } } + @-webkit-keyframes slideouttobottom { from { -webkit-transform: translateY(0); } to { -webkit-transform: translateY(100%); } } + @-webkit-keyframes slideouttotop { from { -webkit-transform: translateY(0); } to { -webkit-transform: translateY(-100%); } @@ -1254,19 +1391,23 @@ Built by David Kaneda and maintained by Jonathan Stark. from { opacity: 0; } to { opacity: 1; } } + @-webkit-keyframes fadeout { from { opacity: 1; } to { opacity: 0; } } + .fade.out { z-index: 0; -webkit-animation-name: fadeout; } + .fade.in { opacity: 1; z-index: 10; -webkit-animation-name: fadein; } + /* The properties in this rule are only necessary for the 'flip' transition. * We need specify the perspective to create a projection matrix. This will add * some depth as the element flips. The depth number represents the distance of @@ -1277,74 +1418,93 @@ Built by David Kaneda and maintained by Jonathan Stark. -webkit-perspective: 1000; position: absolute; } + .ui-mobile-viewport-transitioning, .ui-mobile-viewport-transitioning .ui-page { width: 100%; height: 100%; overflow: hidden; } + .flip { -webkit-animation-duration: .65s; -webkit-backface-visibility:hidden; -webkit-transform:translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ } + .flip.out { -webkit-transform: rotateY(-180deg) scale(.8); -webkit-animation-name: flipouttoleft; } + .flip.in { -webkit-transform: rotateY(0) scale(1); -webkit-animation-name: flipinfromleft; } + /* Shake it all about */ + .flip.out.reverse { -webkit-transform: rotateY(180deg) scale(.8); -webkit-animation-name: flipouttoright; } + .flip.in.reverse { -webkit-transform: rotateY(0) scale(1); -webkit-animation-name: flipinfromright; } + @-webkit-keyframes flipinfromright { from { -webkit-transform: rotateY(-180deg) scale(.8); } to { -webkit-transform: rotateY(0) scale(1); } } + @-webkit-keyframes flipinfromleft { from { -webkit-transform: rotateY(180deg) scale(.8); } to { -webkit-transform: rotateY(0) scale(1); } } + @-webkit-keyframes flipouttoleft { from { -webkit-transform: rotateY(0) scale(1); } to { -webkit-transform: rotateY(-180deg) scale(.8); } } + @-webkit-keyframes flipouttoright { from { -webkit-transform: rotateY(0) scale(1); } to { -webkit-transform: rotateY(180deg) scale(.8); } } + + /* Hackish, but reliable. */ + @-webkit-keyframes dontmove { from { opacity: 1; } to { opacity: 1; } } + .pop { -webkit-transform-origin: 50% 50%; } + .pop.in { -webkit-transform: scale(1); opacity: 1; -webkit-animation-name: popin; z-index: 10; } + .pop.in.reverse { z-index: 0; -webkit-animation-name: dontmove; } + .pop.out.reverse { -webkit-transform: scale(.2); opacity: 0; -webkit-animation-name: popout; z-index: 10; } + @-webkit-keyframes popin { from { -webkit-transform: scale(.2); @@ -1355,6 +1515,7 @@ Built by David Kaneda and maintained by Jonathan Stark. opacity: 1; } } + @-webkit-keyframes popout { from { -webkit-transform: scale(1); @@ -1364,33 +1525,28 @@ Built by David Kaneda and maintained by Jonathan Stark. -webkit-transform: scale(.2); opacity: 0; } -}/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -/* content configurations. */ +}/* content configurations. */ .ui-grid-a, .ui-grid-b, .ui-grid-c, .ui-grid-d { overflow: hidden; } .ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d, .ui-block-e { margin: 0; padding: 0; border: 0; float: left; min-height:1px;} + /* grid solo: 100 - single item fallback */ .ui-grid-solo .ui-block-a { width: 100%; float: none; } + /* grid a: 50/50 */ .ui-grid-a .ui-block-a, .ui-grid-a .ui-block-b { width: 50%; } .ui-grid-a .ui-block-a { clear: left; } + /* grid b: 33/33/33 */ .ui-grid-b .ui-block-a, .ui-grid-b .ui-block-b, .ui-grid-b .ui-block-c { width: 33.333%; } .ui-grid-b .ui-block-a { clear: left; } + /* grid c: 25/25/25/25 */ .ui-grid-c .ui-block-a, .ui-grid-c .ui-block-b, .ui-grid-c .ui-block-c, .ui-grid-c .ui-block-d { width: 25%; } .ui-grid-c .ui-block-a { clear: left; } + /* grid d: 20/20/20/20/20 */ .ui-grid-d .ui-block-a, .ui-grid-d .ui-block-b, .ui-grid-d .ui-block-c, .ui-grid-d .ui-block-d, .ui-grid-d .ui-block-e { width: 20%; } .ui-grid-d .ui-block-a { clear: left; } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ /* fixed page header & footer configuration */ .ui-header, .ui-footer, .ui-page-fullscreen .ui-header, .ui-page-fullscreen .ui-footer { position: absolute; overflow: hidden; width: 100%; border-left-width: 0; border-right-width: 0; } .ui-header-fixed, .ui-footer-fixed { @@ -1399,11 +1555,6 @@ Built by David Kaneda and maintained by Jonathan Stark. } .ui-footer-duplicate, .ui-page-fullscreen .ui-fixed-inline { display: none; } .ui-page-fullscreen .ui-header, .ui-page-fullscreen .ui-footer { opacity: .9; } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ .ui-navbar { overflow: hidden; } .ui-navbar ul, .ui-navbar-expanded ul { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0;} .ui-navbar-collapsed ul { float: left; width: 75%; margin-right: -2px; } @@ -1425,11 +1576,6 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-navbar-expanded .ui-btn-icon-bottom .ui-icon { bottom: 15px; } .ui-navbar-expanded li .ui-btn .ui-btn-inner { min-height: 2.5em; } .ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner { padding-top: 1.8em; padding-bottom: 1.9em; } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ .ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 5px; padding: 0; } .ui-header .ui-btn, .ui-footer .ui-btn, .ui-bar .ui-btn { display: inline-block; font-size: 13px; margin: 0; } .ui-btn-inline { display: inline-block; } @@ -1456,6 +1602,7 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-header .ui-btn-icon-bottom .ui-btn-inner, .ui-footer .ui-btn-icon-bottom .ui-btn-inner, .ui-bar .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 27px; } + /*btn icon positioning*/ .ui-btn-icon-notext .ui-icon { display: block; z-index: 0;} .ui-btn-icon-left .ui-icon, .ui-btn-icon-right .ui-icon { position: absolute; top: 50%; margin-top: -9px; } @@ -1476,13 +1623,9 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-header .ui-btn-icon-bottom .ui-icon, .ui-footer .ui-btn-icon-bottom .ui-icon, .ui-bar .ui-btn-icon-bottom .ui-icon { bottom: 4px; } + /*hiding native button,inputs */ -.ui-btn-hidden { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: button; opacity: .1; cursor: pointer; background: transparent; font-size: 1px; border: none; line-height: 999px; } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ +.ui-btn-hidden { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: button; opacity: .1; cursor: pointer; background: #fff; background: rgba(255,255,255,0); filter: Alpha(Opacity=.0001); font-size: 1px; border: none; line-height: 999px; } .ui-collapsible { margin: .5em 0; } .ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -8px; padding: 0; border-width: 0 0 1px 0; position: relative; } .ui-collapsible-heading a { text-align: left; margin: 0; } @@ -1490,7 +1633,7 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-collapsible-heading a span.ui-btn { position: absolute; left: 6px; top: 50%; margin: -12px 0 0 0; width: 20px; height: 20px; padding: 1px 0px 1px 2px; text-indent: -9999px; } .ui-collapsible-heading a span.ui-btn .ui-btn-inner { padding: 10px 0; } .ui-collapsible-heading a span.ui-btn .ui-icon { left: 0; margin-top: -10px; } -.ui-collapsible-heading-status { position:fixed; left:-9999px; } +.ui-collapsible-heading-status { position: absolute; top: -9999px; left:0px; } .ui-collapsible-content { display: block; margin: 0 -8px; @@ -1500,13 +1643,9 @@ Built by David Kaneda and maintained by Jonathan Stark. font-weight: normal; /* Overrides ui-btn-up-* */ } .ui-collapsible-content-collapsed { display: none; } + .ui-collapsible-set { margin: .5em 0; } .ui-collapsible-set .ui-collapsible { margin: -1px 0 0; } -/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ .ui-controlgroup, fieldset.ui-controlgroup { padding: 0; margin: .5em 0 1em; } .ui-bar .ui-controlgroup { margin: 0 .3em; } .ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; } @@ -1515,6 +1654,7 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-controlgroup-vertical .ui-btn, .ui-controlgroup-vertical .ui-checkbox, .ui-controlgroup-vertical .ui-radio { margin: 0; border-bottom-width: 0; } .ui-controlgroup-controls label.ui-select { position: absolute; left: -9999px; } + .ui-controlgroup-vertical .ui-controlgroup-last { border-bottom-width: 1px; } .ui-controlgroup-horizontal { padding: 0; } .ui-controlgroup-horizontal .ui-btn, .ui-controlgroup-horizontal .ui-select { display: inline-block; margin: 0 -5px 0 0; } @@ -1527,25 +1667,33 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-controlgroup .ui-btn-icon-notext { width: 30px; height: 30px; text-indent: -9999px; } .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { padding: 5px 6px 5px 5px; } */ + @media all and (min-width: 450px){ .ui-field-contain .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } .ui-field-contain .ui-controlgroup-controls { width: 60%; display: inline-block; } - .ui-field-contain .ui-controlgroup .ui-select { width: 100%; } + .ui-field-contain .ui-controlgroup .ui-select { width: 100%; } .ui-field-contain .ui-controlgroup-horizontal .ui-select { width: auto; } -} /* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -.ui-dialog { min-height: 480px; } -.ui-dialog .ui-header, .ui-dialog .ui-content, .ui-dialog .ui-footer { max-width: 500px; margin: 10% auto 0 auto; padding: 15px; width: 85%; position: relative; } -.ui-dialog .ui-header { padding: 0 15px; } -.ui-dialog .ui-header, .ui-dialog .ui-footer { z-index: 10; } -.ui-dialog .ui-content, .ui-dialog .ui-footer { margin-top: -15px; }/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ +} .ui-dialog { min-height: 480px; } +.ui-dialog .ui-header, +.ui-dialog .ui-content, +.ui-dialog .ui-footer { + max-width: 500px; + margin: 10% auto 15px auto; + width: 85%; + position: relative; +} +.ui-dialog .ui-header, +.ui-dialog .ui-footer { + padding: 0 15px; + z-index: 10; +} +.ui-dialog .ui-content { + padding: 15px; +} +.ui-dialog .ui-content, +.ui-dialog .ui-footer { + margin-top: -15px; +} .ui-checkbox, .ui-radio { position:relative; margin: .2em 0 .5em; z-index: 1; } .ui-checkbox .ui-btn, .ui-radio .ui-btn { margin: 0; text-align: left; z-index: 2; } .ui-checkbox .ui-btn-inner, .ui-radio .ui-btn-inner { white-space: normal; } @@ -1555,34 +1703,36 @@ Built by David Kaneda and maintained by Jonathan Stark. .ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon {left: 15px; } .ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon {right: 15px; } /* input, label positioning */ -.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; z-index: 1; }/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -.ui-field-contain { padding: 1.5em 0; margin: 0; border-bottom-width: 1px; overflow: visible; } +.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; z-index: 1; }.ui-field-contain { padding: 1.5em 0; margin: 0; border-bottom-width: 1px; overflow: visible; } .ui-field-contain:first-child { border-top-width: 0; } @media all and (min-width: 450px){ .ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; } -} /* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -.ui-select { display: block; position: relative; } +} .ui-select { display: block; position: relative; } .ui-select select { position: absolute; left: -9999px; top: -9999px; } .ui-select .ui-btn { overflow: hidden; } + + +.ui-select .ui-btn { opacity: 1; } + +/* Fixes #2588 — When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select—including “inherit”—without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */ .ui-select .ui-btn select { cursor: pointer; -webkit-appearance: button; left: 0; top:0; width: 100%; min-height: 1.5em; min-height: 100%; height: 3em; max-height: 100%; opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); z-index: 2; } + +.ui-select .ui-disabled { opacity: .3; } + @-moz-document url-prefix() {.ui-select .ui-btn select { opacity: 0.0001; }} .ui-select .ui-btn select.ui-select-nativeonly { opacity: 1; text-indent: 0; } -.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } + +.ui-select .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } .ui-select .ui-btn-icon-right .ui-icon { right: 15px; } + /* labels */ label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } + /*listbox*/ .ui-select .ui-btn-text, .ui-selectmenu .ui-btn-text { display: block; min-height: 1em; overflow: hidden; } .ui-select .ui-btn-text { text-overflow: ellipsis; } -.ui-selectmenu { position: absolute; padding: 0; z-index: 100 !important; width: 80%; max-width: 350px; padding: 6px; } + +.ui-selectmenu { position: absolute; padding: 0; z-index: 1100 !important; width: 80%; max-width: 350px; padding: 6px; } .ui-selectmenu .ui-listview { margin: 0; } .ui-selectmenu .ui-btn.ui-li-divider { cursor: default; } .ui-selectmenu-hidden { top: -9999px; left: -9999px; } @@ -1591,18 +1741,15 @@ label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margi .ui-selectmenu-list .ui-li .ui-icon { display: block; } .ui-li.ui-selectmenu-placeholder { display: none; } .ui-selectmenu .ui-header .ui-title { margin: 0.6em 46px 0.8em; } + @media all and (min-width: 450px){ .ui-field-contain label.ui-select { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } .ui-field-contain .ui-select { width: 60%; display: inline-block; } -} +} + /* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button. this shim's content in there */ -.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; }/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } -input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em 1.5%; line-height: 1.4; font-size: 16px; display: block; width: 97%; } +.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; }label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } +input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em; line-height: 1.4; font-size: 16px; display: block; width: 97%; } input.ui-input-text { -webkit-appearance: none; } textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; -moz-transition: height 200ms linear; -o-transition: height 200ms linear; transition: height 200ms linear; } .ui-input-search { padding: 0 30px; background-image: none; position: relative; } @@ -1610,23 +1757,19 @@ textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; .ui-input-search input.ui-input-text { border: none; width: 98%; padding: .4em 0; margin: 0; display: block; background: transparent none; outline: 0 !important; } .ui-input-search .ui-input-clear { position: absolute; right: 0; top: 50%; margin-top: -13px; } .ui-input-search .ui-input-clear-hidden { display: none; } + /* orientation adjustments - incomplete!*/ @media all and (min-width: 450px){ .ui-field-contain label.ui-input-text { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0 } - .ui-field-contain input.ui-input-text, - .ui-field-contain textarea.ui-input-text, - .ui-field-contain .ui-input-search { width: 60%; display: inline-block; } + .ui-field-contain input.ui-input-text, + .ui-field-contain textarea.ui-input-text, + .ui-field-contain .ui-input-search { width: 60%; display: inline-block; } .ui-field-contain .ui-input-search { width: 50%; } - .ui-hide-label input.ui-input-text, - .ui-hide-label textarea.ui-input-text, - .ui-hide-label .ui-input-search { padding: .4em 1.5%; width: 97%; } + .ui-hide-label input.ui-input-text, + .ui-hide-label textarea.ui-input-text, + .ui-hide-label .ui-input-search { padding: .4em; width: 97%; } .ui-input-search input.ui-input-text { width: 98%; /*echos rule from above*/ } -}/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -.ui-listview { margin: 0; counter-reset: listnumbering; } +}.ui-listview { margin: 0; counter-reset: listnumbering; } .ui-content .ui-listview { margin: -15px; } .ui-content .ui-listview-inset { margin: 1em 0; } .ui-listview, .ui-li { list-style:none; padding:0; } @@ -1648,13 +1791,14 @@ ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid .ui-li-has-count .ui-btn-text { padding-right: 15px; } .ui-li-heading { font-size: 16px; font-weight: bold; display: block; margin: .6em 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .ui-li-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 0 .6em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-thumb, .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } -.ui-li-icon { max-height: 40px; max-width: 40px; left: 10px; top: .9em; } -.ui-li-thumb, .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } +.ui-li-thumb, .ui-listview .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } +.ui-listview .ui-li-icon { max-height: 40px; max-width: 40px; left: 10px; top: .9em; } +.ui-li-thumb, .ui-listview .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } + .ui-li-aside { float: right; width: 50%; text-align: right; margin: .3em 0; } @media all and (min-width: 480px){ .ui-li-aside { width: 45%; } -} +} .ui-li-divider { cursor: default; } .ui-li-has-alt .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt { padding-right: 95px; } .ui-li-has-count .ui-li-count { position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.9em; right: 38px; } @@ -1664,39 +1808,39 @@ ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid .ui-li-link-alt .ui-btn { overflow: hidden; position: absolute; right: 8px; top: 50%; margin: -11px 0 0 0; border-bottom-width: 1px; z-index: -1;} .ui-li-link-alt .ui-btn-inner { padding: 0; height: 100%; position: absolute; width: 100%; top: 0; left: 0;} .ui-li-link-alt .ui-btn .ui-icon { right: 50%; margin-right: -9px; } + .ui-listview * .ui-btn-inner > .ui-btn > .ui-btn-inner { border-top: 0px; } + .ui-listview-filter { border-width: 0; overflow: hidden; margin: -15px -15px 15px -15px } .ui-listview-filter .ui-input-search { margin: 5px; width: auto; display: block; } + .ui-listview-filter-inset { margin: -15px -5px -15px -5px; background: transparent; } .ui-li.ui-screen-hidden{display:none;} /* Odd iPad positioning issue. */ @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { .ui-li .ui-btn-text { overflow: visible; } -}/* -* jQuery Mobile Framework -* Copyright (c) jQuery Project -* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses. -*/ -label.ui-slider { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } +}label.ui-slider { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } input.ui-slider-input, .ui-field-contain input.ui-slider-input { display: inline-block; width: 50px; } select.ui-slider-switch { display: none; } -div.ui-slider { position: relative; display: inline-block; overflow: visible; height: 15px; padding: 0; margin: 0 2% 0 20px; top: 4px; width: 66%; } +div.ui-slider { position: relative; display: inline-block; overflow: visible; height: 15px; padding: 0; margin: 0 2% 0 20px; top: 4px; width: 60%; } div.ui-slider-switch { width: 99.8%; } a.ui-slider-handle { position: absolute; z-index: 10; top: 50%; width: 28px; height: 28px; margin-top: -15px; margin-left: -15px; } a.ui-slider-handle .ui-btn-inner { padding-left: 0; padding-right: 0; } @media all and (min-width: 480px){ .ui-field-contain label.ui-slider { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } .ui-field-contain div.ui-slider { width: 43%; } -} +} + div.ui-slider-switch { height: 32px; overflow: hidden; margin-left: 0; } div.ui-slider-inneroffset { margin-left: 50%; position: absolute; top: 1px; height: 100%; width: 50%; } -a.ui-slider-handle-snapping { -webkit-transition: left 100ms linear; } +a.ui-slider-handle-snapping { -webkit-transition: left 70ms linear; } div.ui-slider-labelbg { position: absolute; top:0; margin: 0; border-width: 0; } div.ui-slider-switch div.ui-slider-labelbg-a { width: 60%; height: 100%; left: 0; } div.ui-slider-switch div.ui-slider-labelbg-b { width: 60%; height: 100%; right: 0; } .ui-slider-switch-a div.ui-slider-labelbg-a, .ui-slider-switch-b div.ui-slider-labelbg-b { z-index: -1; } .ui-slider-switch-a div.ui-slider-labelbg-b, .ui-slider-switch-b div.ui-slider-labelbg-a { z-index: 0; } + div.ui-slider-switch a.ui-slider-handle { z-index: 20; width: 101%; height: 32px; margin-top: -18px; margin-left: -101%; } span.ui-slider-label { width: 100%; position: absolute;height: 32px; font-size: 16px; text-align: center; line-height: 2; background: none; border-color: transparent; } span.ui-slider-label-a { left: -100%; margin-right: -1px } From e09c5a59a9e6754303e77cbb33a7b35279facb56 Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Tue, 20 Dec 2011 15:13:47 +0800 Subject: [PATCH 2/2] MDL-30601: mymobile theme: remove trailing whitespaces --- .../mymobile/javascript/jquery.mobile-1.0.js | 188 +++++++++--------- theme/mymobile/style/jmobile1.css | 70 +++---- 2 files changed, 129 insertions(+), 129 deletions(-) diff --git a/theme/mymobile/javascript/jquery.mobile-1.0.js b/theme/mymobile/javascript/jquery.mobile-1.0.js index 81fb63660e8..44f645ca1e3 100644 --- a/theme/mymobile/javascript/jquery.mobile-1.0.js +++ b/theme/mymobile/javascript/jquery.mobile-1.0.js @@ -977,7 +977,7 @@ if ( eventCaptureSupported ) { }, true); } })( jQuery, window, document ); -/* +/* * "events" plugin - Handles events */ @@ -1298,59 +1298,59 @@ $.each({ // Script: jQuery hashchange event // // *Version: 1.3, Last updated: 7/21/2010* -// +// // Project Home - http://benalman.com/projects/jquery-hashchange-plugin/ // GitHub - http://github.com/cowboy/jquery-hashchange/ // Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js // (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped) -// +// // About: License -// +// // Copyright (c) 2010 "Cowboy" Ben Alman, // Dual licensed under the MIT and GPL licenses. // http://benalman.com/about/license/ -// +// // About: Examples -// +// // These working examples, complete with fully commented code, illustrate a few // ways in which this plugin can be used. -// +// // hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/ // document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/ -// +// // About: Support and Testing -// +// // Information about what version or versions of jQuery this plugin has been // tested with, what browsers it has been tested in, and where the unit tests // reside (so you can test it yourself). -// +// // jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2 // Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, // Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5. // Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/ -// +// // About: Known issues -// +// // While this jQuery hashchange event implementation is quite stable and // robust, there are a few unfortunate browser bugs surrounding expected // hashchange event-based behaviors, independent of any JavaScript // window.onhashchange abstraction. See the following examples for more // information: -// +// // Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/ // Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/ // WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/ // Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/ -// -// Also note that should a browser natively support the window.onhashchange +// +// Also note that should a browser natively support the window.onhashchange // event, but not report that it does, the fallback polling loop will be used. -// +// // About: Release History -// +// // 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more // "removable" for mobile-only development. Added IE6/7 document.title // support. Attempted to make Iframe as hidden as possible by using -// techniques from http://www.paciellogroup.com/blog/?p=604. Added +// techniques from http://www.paciellogroup.com/blog/?p=604. Added // support for the "shortcut" format $(window).hashchange( fn ) and // $(window).hashchange() like jQuery provides for built-in events. // Renamed jQuery.hashchangeDelay to and @@ -1375,40 +1375,40 @@ $.each({ (function($,window,undefined){ '$:nomunge'; // Used by YUI compressor. - + // Reused string. var str_hashchange = 'hashchange', - + // Method / object references. doc = document, fake_onhashchange, special = $.event.special, - + // Does the browser support window.onhashchange? Note that IE8 running in // IE7 compatibility mode reports true for 'onhashchange' in window, even // though the event isn't supported, so also test document.documentMode. doc_mode = doc.documentMode, supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 ); - + // Get location.hash (or what you'd expect location.hash to be) sans any // leading #. Thanks for making this necessary, Firefox! function get_fragment( url ) { url = url || location.href; return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' ); }; - + // Method: jQuery.fn.hashchange - // + // // Bind a handler to the window.onhashchange event or trigger all bound // window.onhashchange event handlers. This behavior is consistent with // jQuery's built-in event handlers. - // + // // Usage: - // + // // > jQuery(window).hashchange( [ handler ] ); - // + // // Arguments: - // + // // handler - (Function) Optional handler to be bound to the hashchange // event. This is a "shortcut" for the more verbose form: // jQuery(window).bind( 'hashchange', handler ). If handler is omitted, @@ -1416,127 +1416,127 @@ $.each({ // is a shortcut for the more verbose // jQuery(window).trigger( 'hashchange' ). These forms are described in // the section. - // + // // Returns: - // + // // (jQuery) The initial jQuery collection of elements. - + // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and // $(elem).hashchange() for triggering, like jQuery does for built-in events. $.fn[ str_hashchange ] = function( fn ) { return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange ); }; - + // Property: jQuery.fn.hashchange.delay - // + // // The numeric interval (in milliseconds) at which the // polling loop executes. Defaults to 50. - + // Property: jQuery.fn.hashchange.domain - // + // // If you're setting document.domain in your JavaScript, and you want hash // history to work in IE6/7, not only must this property be set, but you must // also set document.domain BEFORE jQuery is loaded into the page. This // property is only applicable if you are supporting IE6/7 (or IE8 operating // in "IE7 compatibility" mode). - // + // // In addition, the property must be set to the // path of the included "document-domain.html" file, which can be renamed or // modified if necessary (note that the document.domain specified must be the // same in both your main JavaScript as well as in this file). - // + // // Usage: - // + // // jQuery.fn.hashchange.domain = document.domain; - + // Property: jQuery.fn.hashchange.src - // + // // If, for some reason, you need to specify an Iframe src file (for example, // when setting document.domain as in ), you can // do so using this property. Note that when using this property, history // won't be recorded in IE6/7 until the Iframe src file loads. This property // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7 // compatibility" mode). - // + // // Usage: - // + // // jQuery.fn.hashchange.src = 'path/to/file.html'; - + $.fn[ str_hashchange ].delay = 50; /* $.fn[ str_hashchange ].domain = null; $.fn[ str_hashchange ].src = null; */ - + // Event: hashchange event - // + // // Fired when location.hash changes. In browsers that support it, the native // HTML5 window.onhashchange event is used, otherwise a polling loop is // initialized, running every milliseconds to // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7 // compatibility" mode), a hidden Iframe is created to allow the back button // and hash-based history to work. - // + // // Usage as described in : - // + // // > // Bind an event handler. // > jQuery(window).hashchange( function(e) { // > var hash = location.hash; // > ... // > }); - // > + // > // > // Manually trigger the event handler. // > jQuery(window).hashchange(); - // + // // A more verbose usage that allows for event namespacing: - // + // // > // Bind an event handler. // > jQuery(window).bind( 'hashchange', function(e) { // > var hash = location.hash; // > ... // > }); - // > + // > // > // Manually trigger the event handler. // > jQuery(window).trigger( 'hashchange' ); - // + // // Additional Notes: - // + // // * The polling loop and Iframe are not created until at least one handler // is actually bound to the 'hashchange' event. // * If you need the bound handler(s) to execute immediately, in cases where // a location.hash exists on page load, via bookmark or page refresh for - // example, use jQuery(window).hashchange() or the more verbose + // example, use jQuery(window).hashchange() or the more verbose // jQuery(window).trigger( 'hashchange' ). // * The event can be bound before DOM ready, but since it won't be usable // before then in IE6/7 (due to the necessary Iframe), recommended usage is // to bind it inside a DOM ready handler. - + // Override existing $.event.special.hashchange methods (allowing this plugin // to be defined after jQuery BBQ in BBQ's source code). special[ str_hashchange ] = $.extend( special[ str_hashchange ], { - + // Called only when the first 'hashchange' event is bound to window. setup: function() { // If window.onhashchange is supported natively, there's nothing to do.. if ( supports_onhashchange ) { return false; } - + // Otherwise, we need to create our own. And we don't want to call this // until the user binds to the event, just in case they never do, since it // will create a polling loop and possibly even a hidden Iframe. $( fake_onhashchange.start ); }, - + // Called only when the last 'hashchange' event is unbound from window. teardown: function() { // If window.onhashchange is supported natively, there's nothing to do.. if ( supports_onhashchange ) { return false; } - + // Otherwise, we need to stop ours (if possible). $( fake_onhashchange.stop ); } - + }); - + // fake_onhashchange does all the work of triggering the window.onhashchange // event for browsers that don't natively support it, including creating a // polling loop to watch for hash changes and in IE 6/7 creating a hidden @@ -1544,79 +1544,79 @@ $.each({ fake_onhashchange = (function(){ var self = {}, timeout_id, - + // Remember the initial hash so it doesn't get triggered immediately. last_hash = get_fragment(), - + fn_retval = function(val){ return val; }, history_set = fn_retval, history_get = fn_retval; - + // Start the polling loop. self.start = function() { timeout_id || poll(); }; - + // Stop the polling loop. self.stop = function() { timeout_id && clearTimeout( timeout_id ); timeout_id = undefined; }; - + // This polling loop checks every $.fn.hashchange.delay milliseconds to see // if location.hash has changed, and triggers the 'hashchange' event on // window when necessary. function poll() { var hash = get_fragment(), history_hash = history_get( last_hash ); - + if ( hash !== last_hash ) { history_set( last_hash = hash, history_hash ); - + $(window).trigger( str_hashchange ); - + } else if ( history_hash !== last_hash ) { location.href = location.href.replace( /#.*/, '' ) + history_hash; } - + timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay ); }; - + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv $.browser.msie && !supports_onhashchange && (function(){ // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8 // when running in "IE7 compatibility" mode. - + var iframe, iframe_src; - + // When the event is bound and polling starts in IE 6/7, create a hidden // Iframe for history handling. self.start = function(){ if ( !iframe ) { iframe_src = $.fn[ str_hashchange ].src; iframe_src = iframe_src && iframe_src + get_fragment(); - + // Create hidden Iframe. Attempt to make Iframe as hidden as possible // by using techniques from http://www.paciellogroup.com/blog/?p=604. iframe = $('