/*
* jQuery Mobile Framework : common functionality for the custom and native
* select menus
* Copyright (c) jQuery Project
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*/
(function( $, undefined ) {
$.mobile.selectShared = function(){
var widget = this,
select = this.element.wrap( "
" );
// if not, try to find closest theme container
// TODO move to core as findCurrentTheme
if ( !widget.options.theme ) {
var themedParent = select.closest( "[class*='ui-bar-'],[class*='ui-body-']" );
widget.options.theme = themedParent.length ?
/ui-(bar|body)-([a-z])/.exec( themedParent.attr( "class" ) )[2] :
"c";
}
var selectID = select.attr( "id" ),
label = $( "label[for='"+ selectID +"']" ).addClass( "ui-select" ),
thisPage = select.closest( ".ui-page" ),
screen = $( "
", {"class": "ui-selectmenu-screen ui-screen-hidden"} ).appendTo( thisPage ),
selectOptions = select.find("option"),
isMultiple = widget.isMultiple = select[ 0 ].multiple,
buttonId = selectID + "-button",
menuId = selectID + "-menu",
menuPage = $( "
" +
"
" +
"
" + label.text() + "
"+
"
"+
"
"+
"
" ).appendTo( $.mobile.pageContainer ).page(),
listbox = $("
", { "class": "ui-selectmenu ui-selectmenu-hidden ui-overlay-shadow ui-corner-all ui-body-" + widget.options.overlayTheme + " " + $.mobile.defaultDialogTransition } ).insertAfter(screen),
list = $( "