Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MDL-30601, update MyMobile theme to use latest release of Jquery Mobile

  • Loading branch information...
commit fa5ddf668513b3131038eba2a1ceca0d5bb702e1 1 parent 42f6b3f
stabijoh authored
View
4 theme/mymobile/config.php
@@ -34,7 +34,7 @@
// Set the stylesheets that we want to include for this theme
$THEME->sheets = array(
- 'jmobilerc2',
+ 'jmobile1',
'core',
'media'
);
@@ -157,7 +157,7 @@
$THEME->javascripts = array(
'jquery-1.6.4.min',
'custom',
- 'jquery.mobile-1.0rc2',
+ 'jquery.mobile-1.0',
'scrollview',
'easing'
);
View
781 ...mobile/javascript/jquery.mobile-1.0rc2.js → .../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 = $( "<body>" ).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 = $( "<div></div>" ),
@@ -2791,6 +2804,9 @@ $.widget( "mobile.page", $.mobile.widget, {
}
if ( newPageTitle && !page.jqmData( "title" ) ) {
+ if ( ~newPageTitle.indexOf( "&" ) ) {
+ newPageTitle = $( "<div>" + newPageTitle + "</div>" ).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 = $( "<a href='#' data-" + $.mobile.ns + "icon='delete' data-" + $.mobile.ns + "iconpos='notext'>"+ this.options.closeBtnText + "</a>" );
- 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( "<div class='ui-collapsible-content'></div>" ).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( "<span class='ui-collapsible-heading-status'></span>" )
.wrapInner( "<a href='#' class='ui-collapsible-heading-toggle'></a>" )
- .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(
- $( "<span />" ).buttonMarkup({
+ $( document.createElement( "span" ) ).buttonMarkup({
shadow: true,
corners: true,
theme: splittheme,
@@ -4311,11 +4363,59 @@ $.widget( "mobile.listview", $.mobile.widget, {
.prepend( "<span class='ui-li-dec'>" + (counter++) + ". </span>" );
}
- 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 = $( "<input>", {
- 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( "<div class='ui-slider-inneroffset'></div>" );
+
+ // 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 = $( "<div data-" + $.mobile.ns + "role='dialog' data-" +$.mobile.ns + "theme='"+ widget.options.menuPageTheme +"'>" +
+ menuPage = $( "<div data-" + $.mobile.ns + "role='dialog' data-" +$.mobile.ns + "theme='"+ widget.options.theme +"' data-" +$.mobile.ns + "overlay-theme='"+ widget.options.overlayTheme +"'>" +
"<div data-" + $.mobile.ns + "role='header'>" +
"<div class='ui-title'>" + label.getEncodedText() + "</div>"+
"</div>"+
@@ -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 = ( "<D class='" + innerClass + "' aria-hidden='true'><D class='ui-btn-text'></D>" +
- ( o.icon ? "<span class='" + iconClass + "'></span>" : "" ) +
- "</D>" ).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" ),
View
772 theme/mymobile/style/jmobilerc2.css → 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}*/);
-}
-.ui-bar-a,
-.ui-bar-a input,
-.ui-bar-a select,
-.ui-bar-a textarea,
+ 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 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-backgr