2011-08-10 17:49:27 +00:00
/ * !
2011-09-04 11:03:57 +00:00
* jQuery blockUI plugin
* Version 2.39 ( 23 - MAY - 2011 )
* @ requires jQuery v1 . 2.3 or later
*
* Examples at : http : //malsup.com/jquery/block/
* Copyright ( c ) 2007 - 2010 M . Alsup
* Dual licensed under the MIT and GPL licenses :
* http : //www.opensource.org/licenses/mit-license.php
* http : //www.gnu.org/licenses/gpl.html
*
* Thanks to Amir - Hossein Sobhi for some excellent contributions !
* /
; ( function ( $ ) {
if ( /1\.(0|1|2)\.(0|1|2)/ . test ( $ . fn . jquery ) || /^1.1/ . test ( $ . fn . jquery ) ) {
alert ( 'blockUI requires jQuery v1.2.3 or later! You are using v' + $ . fn . jquery ) ;
return ;
}
$ . fn . _fadeIn = $ . fn . fadeIn ;
var noOp = function ( ) { } ;
// this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
// retarded userAgent strings on Vista)
var mode = document . documentMode || 0 ;
var setExpr = $ . browser . msie && ( ( $ . browser . version < 8 && ! mode ) || mode < 8 ) ;
var ie6 = $ . browser . msie && /MSIE 6.0/ . test ( navigator . userAgent ) && ! mode ;
// global $ methods for blocking/unblocking the entire page
$ . blockUI = function ( opts ) { install ( window , opts ) ; } ;
$ . unblockUI = function ( opts ) { remove ( window , opts ) ; } ;
// convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
$ . growlUI = function ( title , message , timeout , onClose ) {
var $m = $ ( '<div class="growlUI"></div>' ) ;
if ( title ) $m . append ( '<h1>' + title + '</h1>' ) ;
if ( message ) $m . append ( '<h2>' + message + '</h2>' ) ;
if ( timeout == undefined ) timeout = 3000 ;
$ . blockUI ( {
message : $m , fadeIn : 700 , fadeOut : 1000 , centerY : false ,
timeout : timeout , showOverlay : false ,
onUnblock : onClose ,
css : $ . blockUI . defaults . growlCSS
} ) ;
} ;
// plugin method for blocking element content
$ . fn . block = function ( opts ) {
return this . unblock ( { fadeOut : 0 } ) . each ( function ( ) {
if ( $ . css ( this , 'position' ) == 'static' )
this . style . position = 'relative' ;
if ( $ . browser . msie )
this . style . zoom = 1 ; // force 'hasLayout'
install ( this , opts ) ;
} ) ;
} ;
// plugin method for unblocking element content
$ . fn . unblock = function ( opts ) {
return this . each ( function ( ) {
remove ( this , opts ) ;
} ) ;
} ;
$ . blockUI . version = 2.39 ; // 2nd generation blocking at no extra cost!
// override these in your code to change the default behavior and style
$ . blockUI . defaults = {
// message displayed when blocking (use null for no message)
message : '<h1>Please wait...</h1>' ,
title : null , // title string; only used when theme == true
draggable : true , // only used when theme == true (requires jquery-ui.js to be loaded)
theme : false , // set to true to use with jQuery UI themes
// styles for the message when blocking; if you wish to disable
// these and use an external stylesheet then do this in your code:
// $.blockUI.defaults.css = {};
css : {
padding : 0 ,
margin : 0 ,
width : '30%' ,
top : '40%' ,
left : '35%' ,
textAlign : 'center' ,
color : '#000' ,
border : '3px solid #aaa' ,
backgroundColor : '#fff' ,
cursor : 'wait'
} ,
// minimal style set used when themes are used
themedCSS : {
width : '30%' ,
top : '40%' ,
left : '35%'
} ,
// styles for the overlay
overlayCSS : {
backgroundColor : '#000' ,
opacity : 0.6 ,
cursor : 'wait'
} ,
// styles applied when using $.growlUI
growlCSS : {
width : '350px' ,
top : '10px' ,
left : '' ,
right : '10px' ,
border : 'none' ,
padding : '5px' ,
opacity : 0.6 ,
cursor : 'default' ,
color : '#fff' ,
backgroundColor : '#000' ,
'-webkit-border-radius' : '10px' ,
'-moz-border-radius' : '10px' ,
'border-radius' : '10px'
} ,
// IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
// (hat tip to Jorge H. N. de Vasconcelos)
iframeSrc : /^https/i . test ( window . location . href || '' ) ? 'javascript:false' : 'about:blank' ,
// force usage of iframe in non-IE browsers (handy for blocking applets)
forceIframe : false ,
// z-index for the blocking overlay
baseZ : 1000 ,
// set these to true to have the message automatically centered
centerX : true , // <-- only effects element blocking (page block controlled via css above)
centerY : true ,
// allow body element to be stetched in ie6; this makes blocking look better
// on "short" pages. disable if you wish to prevent changes to the body height
allowBodyStretch : true ,
// enable if you want key and mouse events to be disabled for content that is blocked
bindEvents : true ,
// be default blockUI will supress tab navigation from leaving blocking content
// (if bindEvents is true)
constrainTabKey : true ,
// fadeIn time in millis; set to 0 to disable fadeIn on block
fadeIn : 200 ,
// fadeOut time in millis; set to 0 to disable fadeOut on unblock
fadeOut : 400 ,
// time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
timeout : 0 ,
// disable if you don't want to show the overlay
showOverlay : true ,
// if true, focus will be placed in the first available input field when
// page blocking
focusInput : true ,
// suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
applyPlatformOpacityRules : true ,
// callback method invoked when fadeIn has completed and blocking message is visible
onBlock : null ,
// callback method invoked when unblocking has completed; the callback is
// passed the element that has been unblocked (which is the window object for page
// blocks) and the options that were passed to the unblock call:
// onUnblock(element, options)
onUnblock : null ,
// don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
quirksmodeOffsetHack : 4 ,
// class name of the message block
blockMsgClass : 'blockMsg'
} ;
// private data and functions follow...
var pageBlock = null ;
var pageBlockEls = [ ] ;
function install ( el , opts ) {
var full = ( el == window ) ;
var msg = opts && opts . message !== undefined ? opts . message : undefined ;
opts = $ . extend ( { } , $ . blockUI . defaults , opts || { } ) ;
opts . overlayCSS = $ . extend ( { } , $ . blockUI . defaults . overlayCSS , opts . overlayCSS || { } ) ;
var css = $ . extend ( { } , $ . blockUI . defaults . css , opts . css || { } ) ;
var themedCSS = $ . extend ( { } , $ . blockUI . defaults . themedCSS , opts . themedCSS || { } ) ;
msg = msg === undefined ? opts . message : msg ;
// remove the current block (if there is one)
if ( full && pageBlock )
remove ( window , { fadeOut : 0 } ) ;
// if an existing element is being used as the blocking content then we capture
// its current place in the DOM (and current display style) so we can restore
// it when we unblock
if ( msg && typeof msg != 'string' && ( msg . parentNode || msg . jquery ) ) {
var node = msg . jquery ? msg [ 0 ] : msg ;
var data = { } ;
$ ( el ) . data ( 'blockUI.history' , data ) ;
data . el = node ;
data . parent = node . parentNode ;
data . display = node . style . display ;
data . position = node . style . position ;
if ( data . parent )
data . parent . removeChild ( node ) ;
}
$ ( el ) . data ( 'blockUI.onUnblock' , opts . onUnblock ) ;
var z = opts . baseZ ;
// blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
// layer1 is the iframe layer which is used to supress bleed through of underlying content
// layer2 is the overlay layer which has opacity and a wait cursor (by default)
// layer3 is the message content that is displayed while blocking
var lyr1 = ( $ . browser . msie || opts . forceIframe )
? $ ( '<iframe class="blockUI" style="z-index:' + ( z ++ ) + ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' + opts . iframeSrc + '"></iframe>' )
: $ ( '<div class="blockUI" style="display:none"></div>' ) ;
var lyr2 = opts . theme
? $ ( '<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:' + ( z ++ ) + ';display:none"></div>' )
: $ ( '<div class="blockUI blockOverlay" style="z-index:' + ( z ++ ) + ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>' ) ;
var lyr3 , s ;
if ( opts . theme && full ) {
s = '<div class="blockUI ' + opts . blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' + ( z + 10 ) + ';display:none;position:fixed">' +
'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' + ( opts . title || ' ' ) + '</div>' +
'<div class="ui-widget-content ui-dialog-content"></div>' +
'</div>' ;
}
else if ( opts . theme ) {
s = '<div class="blockUI ' + opts . blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:' + ( z + 10 ) + ';display:none;position:absolute">' +
'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' + ( opts . title || ' ' ) + '</div>' +
'<div class="ui-widget-content ui-dialog-content"></div>' +
'</div>' ;
}
else if ( full ) {
s = '<div class="blockUI ' + opts . blockMsgClass + ' blockPage" style="z-index:' + ( z + 10 ) + ';display:none;position:fixed"></div>' ;
}
else {
s = '<div class="blockUI ' + opts . blockMsgClass + ' blockElement" style="z-index:' + ( z + 10 ) + ';display:none;position:absolute"></div>' ;
}
lyr3 = $ ( s ) ;
// if we have a message, style it
if ( msg ) {
if ( opts . theme ) {
lyr3 . css ( themedCSS ) ;
lyr3 . addClass ( 'ui-widget-content' ) ;
}
else
lyr3 . css ( css ) ;
}
// style the overlay
if ( ! opts . theme && ( ! opts . applyPlatformOpacityRules || ! ( $ . browser . mozilla && /Linux/ . test ( navigator . platform ) ) ) )
lyr2 . css ( opts . overlayCSS ) ;
lyr2 . css ( 'position' , full ? 'fixed' : 'absolute' ) ;
// make iframe layer transparent in IE
if ( $ . browser . msie || opts . forceIframe )
lyr1 . css ( 'opacity' , 0.0 ) ;
//$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
var layers = [ lyr1 , lyr2 , lyr3 ] , $par = full ? $ ( 'body' ) : $ ( el ) ;
$ . each ( layers , function ( ) {
this . appendTo ( $par ) ;
} ) ;
if ( opts . theme && opts . draggable && $ . fn . draggable ) {
lyr3 . draggable ( {
handle : '.ui-dialog-titlebar' ,
cancel : 'li'
} ) ;
}
// ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
var expr = setExpr && ( ! $ . boxModel || $ ( 'object,embed' , full ? null : el ) . length > 0 ) ;
if ( ie6 || expr ) {
// give body 100% height
if ( full && opts . allowBodyStretch && $ . boxModel )
$ ( 'html,body' ) . css ( 'height' , '100%' ) ;
// fix ie6 issue when blocked element has a border width
if ( ( ie6 || ! $ . boxModel ) && ! full ) {
var t = sz ( el , 'borderTopWidth' ) , l = sz ( el , 'borderLeftWidth' ) ;
var fixT = t ? '(0 - ' + t + ')' : 0 ;
var fixL = l ? '(0 - ' + l + ')' : 0 ;
}
// simulate fixed position
$ . each ( [ lyr1 , lyr2 , lyr3 ] , function ( i , o ) {
var s = o [ 0 ] . style ;
s . position = 'absolute' ;
if ( i < 2 ) {
full ? s . setExpression ( 'height' , 'Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:' + opts . quirksmodeOffsetHack + ') + "px"' )
: s . setExpression ( 'height' , 'this.parentNode.offsetHeight + "px"' ) ;
full ? s . setExpression ( 'width' , 'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"' )
: s . setExpression ( 'width' , 'this.parentNode.offsetWidth + "px"' ) ;
if ( fixL ) s . setExpression ( 'left' , fixL ) ;
if ( fixT ) s . setExpression ( 'top' , fixT ) ;
}
else if ( opts . centerY ) {
if ( full ) s . setExpression ( 'top' , '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"' ) ;
s . marginTop = 0 ;
}
else if ( ! opts . centerY && full ) {
var top = ( opts . css && opts . css . top ) ? parseInt ( opts . css . top ) : 0 ;
var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ' + top + ') + "px"' ;
s . setExpression ( 'top' , expression ) ;
}
} ) ;
}
// show the message
if ( msg ) {
if ( opts . theme )
lyr3 . find ( '.ui-widget-content' ) . append ( msg ) ;
else
lyr3 . append ( msg ) ;
if ( msg . jquery || msg . nodeType )
$ ( msg ) . show ( ) ;
}
if ( ( $ . browser . msie || opts . forceIframe ) && opts . showOverlay )
lyr1 . show ( ) ; // opacity is zero
if ( opts . fadeIn ) {
var cb = opts . onBlock ? opts . onBlock : noOp ;
var cb1 = ( opts . showOverlay && ! msg ) ? cb : noOp ;
var cb2 = msg ? cb : noOp ;
if ( opts . showOverlay )
lyr2 . _fadeIn ( opts . fadeIn , cb1 ) ;
if ( msg )
lyr3 . _fadeIn ( opts . fadeIn , cb2 ) ;
}
else {
if ( opts . showOverlay )
lyr2 . show ( ) ;
if ( msg )
lyr3 . show ( ) ;
if ( opts . onBlock )
opts . onBlock ( ) ;
}
// bind key and mouse events
bind ( 1 , el , opts ) ;
if ( full ) {
pageBlock = lyr3 [ 0 ] ;
pageBlockEls = $ ( ':input:enabled:visible' , pageBlock ) ;
if ( opts . focusInput )
setTimeout ( focus , 20 ) ;
}
else
center ( lyr3 [ 0 ] , opts . centerX , opts . centerY ) ;
if ( opts . timeout ) {
// auto-unblock
var to = setTimeout ( function ( ) {
full ? $ . unblockUI ( opts ) : $ ( el ) . unblock ( opts ) ;
} , opts . timeout ) ;
$ ( el ) . data ( 'blockUI.timeout' , to ) ;
}
} ;
// remove the block
function remove ( el , opts ) {
var full = ( el == window ) ;
var $el = $ ( el ) ;
var data = $el . data ( 'blockUI.history' ) ;
var to = $el . data ( 'blockUI.timeout' ) ;
if ( to ) {
clearTimeout ( to ) ;
$el . removeData ( 'blockUI.timeout' ) ;
}
opts = $ . extend ( { } , $ . blockUI . defaults , opts || { } ) ;
bind ( 0 , el , opts ) ; // unbind events
if ( opts . onUnblock === null ) {
opts . onUnblock = $el . data ( 'blockUI.onUnblock' ) ;
$el . removeData ( 'blockUI.onUnblock' ) ;
}
var els ;
if ( full ) // crazy selector to handle odd field errors in ie6/7
els = $ ( 'body' ) . children ( ) . filter ( '.blockUI' ) . add ( 'body > .blockUI' ) ;
else
els = $ ( '.blockUI' , el ) ;
if ( full )
pageBlock = pageBlockEls = null ;
if ( opts . fadeOut ) {
els . fadeOut ( opts . fadeOut ) ;
setTimeout ( function ( ) { reset ( els , data , opts , el ) ; } , opts . fadeOut ) ;
}
else
reset ( els , data , opts , el ) ;
} ;
// move blocking element back into the DOM where it started
function reset ( els , data , opts , el ) {
els . each ( function ( i , o ) {
// remove via DOM calls so we don't lose event handlers
if ( this . parentNode )
this . parentNode . removeChild ( this ) ;
} ) ;
if ( data && data . el ) {
data . el . style . display = data . display ;
data . el . style . position = data . position ;
if ( data . parent )
data . parent . appendChild ( data . el ) ;
$ ( el ) . removeData ( 'blockUI.history' ) ;
}
if ( typeof opts . onUnblock == 'function' )
opts . onUnblock ( el , opts ) ;
} ;
// bind/unbind the handler
function bind ( b , el , opts ) {
var full = el == window , $el = $ ( el ) ;
// don't bother unbinding if there is nothing to unbind
if ( ! b && ( full && ! pageBlock || ! full && ! $el . data ( 'blockUI.isBlocked' ) ) )
return ;
if ( ! full )
$el . data ( 'blockUI.isBlocked' , b ) ;
// don't bind events when overlay is not in use or if bindEvents is false
if ( ! opts . bindEvents || ( b && ! opts . showOverlay ) )
return ;
// bind anchors and inputs for mouse and key events
var events = 'mousedown mouseup keydown keypress' ;
b ? $ ( document ) . bind ( events , opts , handler ) : $ ( document ) . unbind ( events , handler ) ;
// former impl...
// var $e = $('a,:input');
// b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
} ;
// event handler to suppress keyboard/mouse events when blocking
function handler ( e ) {
// allow tab navigation (conditionally)
if ( e . keyCode && e . keyCode == 9 ) {
if ( pageBlock && e . data . constrainTabKey ) {
var els = pageBlockEls ;
var fwd = ! e . shiftKey && e . target === els [ els . length - 1 ] ;
var back = e . shiftKey && e . target === els [ 0 ] ;
if ( fwd || back ) {
setTimeout ( function ( ) { focus ( back ) } , 10 ) ;
return false ;
}
}
}
var opts = e . data ;
// allow events within the message content
if ( $ ( e . target ) . parents ( 'div.' + opts . blockMsgClass ) . length > 0 )
return true ;
// allow events for content that is not being blocked
return $ ( e . target ) . parents ( ) . children ( ) . filter ( 'div.blockUI' ) . length == 0 ;
} ;
function focus ( back ) {
if ( ! pageBlockEls )
return ;
var e = pageBlockEls [ back === true ? pageBlockEls . length - 1 : 0 ] ;
if ( e )
e . focus ( ) ;
} ;
function center ( el , x , y ) {
var p = el . parentNode , s = el . style ;
var l = ( ( p . offsetWidth - el . offsetWidth ) / 2 ) - sz ( p , 'borderLeftWidth' ) ;
var t = ( ( p . offsetHeight - el . offsetHeight ) / 2 ) - sz ( p , 'borderTopWidth' ) ;
if ( x ) s . left = l > 0 ? ( l + 'px' ) : '0' ;
if ( y ) s . top = t > 0 ? ( t + 'px' ) : '0' ;
} ;
function sz ( el , p ) {
return parseInt ( $ . css ( el , p ) ) || 0 ;
} ;
} ) ( jQuery ) ;
/ * *
* jQuery Cookie plugin
*
* Copyright ( c ) 2010 Klaus Hartl ( stilbuero . de )
* Dual licensed under the MIT and GPL licenses :
* http : //www.opensource.org/licenses/mit-license.php
* http : //www.gnu.org/licenses/gpl.html
*
* /
jQuery . cookie = function ( key , value , options ) { if ( arguments . length > 1 && String ( value ) !== "[object Object]" ) { options = jQuery . extend ( { } , options ) ; if ( value === null || value === undefined ) { options . expires = - 1 ; }
if ( typeof options . expires === 'number' ) { var days = options . expires , t = options . expires = new Date ( ) ; t . setDate ( t . getDate ( ) + days ) ; }
value = String ( value ) ; return ( document . cookie = [ encodeURIComponent ( key ) , '=' , options . raw ? value : encodeURIComponent ( value ) , options . expires ? '; expires=' + options . expires . toUTCString ( ) : '' , options . path ? '; path=' + options . path : '' , options . domain ? '; domain=' + options . domain : '' , options . secure ? '; secure' : '' ] . join ( '' ) ) ; }
options = value || { } ; var result , decode = options . raw ? function ( s ) { return s ; } : decodeURIComponent ; return ( result = new RegExp ( '(?:^|; )' + encodeURIComponent ( key ) + '=([^;]*)' ) . exec ( document . cookie ) ) ? decode ( result [ 1 ] ) : null ; } ;
/ * *
* Spoofs placeholders in browsers that don ' t support them ( eg Firefox 3 )
*
* Copyright 2011 Dan Bentley
* Licensed under the Apache License 2.0
*
* Author : Dan Bentley [ github . com / danbentley ]
* /
( function ( $ ) { if ( "placeholder" in document . createElement ( "input" ) ) return ; $ ( document ) . ready ( function ( ) { $ ( ':input[placeholder]' ) . each ( function ( ) { setupPlaceholder ( $ ( this ) ) ; } ) ; $ ( 'form' ) . submit ( function ( e ) { clearPlaceholdersBeforeSubmit ( $ ( this ) ) ; } ) ; } ) ; function setupPlaceholder ( input ) { var placeholderText = input . attr ( 'placeholder' ) ; if ( input . val ( ) === '' ) input . val ( placeholderText ) ; input . bind ( { focus : function ( e ) { if ( input . val ( ) === placeholderText ) input . val ( '' ) ; } , blur : function ( e ) { if ( input . val ( ) === '' ) input . val ( placeholderText ) ; } } ) ; }
function clearPlaceholdersBeforeSubmit ( form ) { form . find ( ':input[placeholder]' ) . each ( function ( ) { var el = $ ( this ) ; if ( el . val ( ) === el . attr ( 'placeholder' ) ) el . val ( '' ) ; } ) ; } } ) ( jQuery ) ;
/ * !
* jQuery UI 1.8 . 16
2011-08-10 17:49:27 +00:00
*
* Copyright 2011 , AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* http : //docs.jquery.com/UI
* /
2011-09-04 11:03:57 +00:00
( function ( c , j ) { function k ( a , b ) { var d = a . nodeName . toLowerCase ( ) ; if ( "area" === d ) { b = a . parentNode ; d = b . name ; if ( ! a . href || ! d || b . nodeName . toLowerCase ( ) !== "map" ) return false ; a = c ( "img[usemap=#" + d + "]" ) [ 0 ] ; return ! ! a && l ( a ) } return ( /input|select|textarea|button|object/ . test ( d ) ? ! a . disabled : "a" == d ? a . href || b : b ) && l ( a ) } function l ( a ) { return ! c ( a ) . parents ( ) . andSelf ( ) . filter ( function ( ) { return c . curCSS ( this , "visibility" ) === "hidden" || c . expr . filters . hidden ( this ) } ) . length } c . ui = c . ui || { } ; if ( ! c . ui . version ) { c . extend ( c . ui , { version : "1.8.16" ,
2011-08-10 17:49:27 +00:00
keyCode : { ALT : 18 , BACKSPACE : 8 , CAPS _LOCK : 20 , COMMA : 188 , COMMAND : 91 , COMMAND _LEFT : 91 , COMMAND _RIGHT : 93 , CONTROL : 17 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , INSERT : 45 , LEFT : 37 , MENU : 93 , NUMPAD _ADD : 107 , NUMPAD _DECIMAL : 110 , NUMPAD _DIVIDE : 111 , NUMPAD _ENTER : 108 , NUMPAD _MULTIPLY : 106 , NUMPAD _SUBTRACT : 109 , PAGE _DOWN : 34 , PAGE _UP : 33 , PERIOD : 190 , RIGHT : 39 , SHIFT : 16 , SPACE : 32 , TAB : 9 , UP : 38 , WINDOWS : 91 } } ) ; c . fn . extend ( { propAttr : c . fn . prop || c . fn . attr , _focus : c . fn . focus , focus : function ( a , b ) { return typeof a === "number" ? this . each ( function ( ) { var d =
this ; setTimeout ( function ( ) { c ( d ) . focus ( ) ; b && b . call ( d ) } , a ) } ) : this . _focus . apply ( this , arguments ) } , scrollParent : function ( ) { var a ; a = c . browser . msie && /(static|relative)/ . test ( this . css ( "position" ) ) || /absolute/ . test ( this . css ( "position" ) ) ? this . parents ( ) . filter ( function ( ) { return /(relative|absolute|fixed)/ . test ( c . curCSS ( this , "position" , 1 ) ) && /(auto|scroll)/ . test ( c . curCSS ( this , "overflow" , 1 ) + c . curCSS ( this , "overflow-y" , 1 ) + c . curCSS ( this , "overflow-x" , 1 ) ) } ) . eq ( 0 ) : this . parents ( ) . filter ( function ( ) { return /(auto|scroll)/ . test ( c . curCSS ( this ,
"overflow" , 1 ) + c . curCSS ( this , "overflow-y" , 1 ) + c . curCSS ( this , "overflow-x" , 1 ) ) } ) . eq ( 0 ) ; return /fixed/ . test ( this . css ( "position" ) ) || ! a . length ? c ( document ) : a } , zIndex : function ( a ) { if ( a !== j ) return this . css ( "zIndex" , a ) ; if ( this . length ) { a = c ( this [ 0 ] ) ; for ( var b ; a . length && a [ 0 ] !== document ; ) { b = a . css ( "position" ) ; if ( b === "absolute" || b === "relative" || b === "fixed" ) { b = parseInt ( a . css ( "zIndex" ) , 10 ) ; if ( ! isNaN ( b ) && b !== 0 ) return b } a = a . parent ( ) } } return 0 } , disableSelection : function ( ) { return this . bind ( ( c . support . selectstart ? "selectstart" :
"mousedown" ) + ".ui-disableSelection" , function ( a ) { a . preventDefault ( ) } ) } , enableSelection : function ( ) { return this . unbind ( ".ui-disableSelection" ) } } ) ; c . each ( [ "Width" , "Height" ] , function ( a , b ) { function d ( f , g , m , n ) { c . each ( e , function ( ) { g -= parseFloat ( c . curCSS ( f , "padding" + this , true ) ) || 0 ; if ( m ) g -= parseFloat ( c . curCSS ( f , "border" + this + "Width" , true ) ) || 0 ; if ( n ) g -= parseFloat ( c . curCSS ( f , "margin" + this , true ) ) || 0 } ) ; return g } var e = b === "Width" ? [ "Left" , "Right" ] : [ "Top" , "Bottom" ] , h = b . toLowerCase ( ) , i = { innerWidth : c . fn . innerWidth , innerHeight : c . fn . innerHeight ,
outerWidth : c . fn . outerWidth , outerHeight : c . fn . outerHeight } ; c . fn [ "inner" + b ] = function ( f ) { if ( f === j ) return i [ "inner" + b ] . call ( this ) ; return this . each ( function ( ) { c ( this ) . css ( h , d ( this , f ) + "px" ) } ) } ; c . fn [ "outer" + b ] = function ( f , g ) { if ( typeof f !== "number" ) return i [ "outer" + b ] . call ( this , f ) ; return this . each ( function ( ) { c ( this ) . css ( h , d ( this , f , true , g ) + "px" ) } ) } } ) ; c . extend ( c . expr [ ":" ] , { data : function ( a , b , d ) { return ! ! c . data ( a , d [ 3 ] ) } , focusable : function ( a ) { return k ( a , ! isNaN ( c . attr ( a , "tabindex" ) ) ) } , tabbable : function ( a ) { var b = c . attr ( a ,
"tabindex" ) , d = isNaN ( b ) ; return ( d || b >= 0 ) && k ( a , ! d ) } } ) ; c ( function ( ) { var a = document . body , b = a . appendChild ( b = document . createElement ( "div" ) ) ; c . extend ( b . style , { minHeight : "100px" , height : "auto" , padding : 0 , borderWidth : 0 } ) ; c . support . minHeight = b . offsetHeight === 100 ; c . support . selectstart = "onselectstart" in b ; a . removeChild ( b ) . style . display = "none" } ) ; c . extend ( c . ui , { plugin : { add : function ( a , b , d ) { a = c . ui [ a ] . prototype ; for ( var e in d ) { a . plugins [ e ] = a . plugins [ e ] || [ ] ; a . plugins [ e ] . push ( [ b , d [ e ] ] ) } } , call : function ( a , b , d ) { if ( ( b = a . plugins [ b ] ) &&
a . element [ 0 ] . parentNode ) for ( var e = 0 ; e < b . length ; e ++ ) a . options [ b [ e ] [ 0 ] ] && b [ e ] [ 1 ] . apply ( a . element , d ) } } , contains : function ( a , b ) { return document . compareDocumentPosition ? a . compareDocumentPosition ( b ) & 16 : a !== b && a . contains ( b ) } , hasScroll : function ( a , b ) { if ( c ( a ) . css ( "overflow" ) === "hidden" ) return false ; b = b && b === "left" ? "scrollLeft" : "scrollTop" ; var d = false ; if ( a [ b ] > 0 ) return true ; a [ b ] = 1 ; d = a [ b ] > 0 ; a [ b ] = 0 ; return d } , isOverAxis : function ( a , b , d ) { return a > b && a < b + d } , isOver : function ( a , b , d , e , h , i ) { return c . ui . isOverAxis ( a , d , h ) &&
c . ui . isOverAxis ( b , e , i ) } } ) } } ) ( jQuery ) ;
; / * !
2011-09-04 11:03:57 +00:00
* jQuery UI Widget 1.8 . 16
2011-08-10 17:49:27 +00:00
*
* Copyright 2011 , AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* http : //docs.jquery.com/UI/Widget
* /
2011-09-04 11:03:57 +00:00
( function ( b , j ) { if ( b . cleanData ) { var k = b . cleanData ; b . cleanData = function ( a ) { for ( var c = 0 , d ; ( d = a [ c ] ) != null ; c ++ ) try { b ( d ) . triggerHandler ( "remove" ) } catch ( e ) { } k ( a ) } } else { var l = b . fn . remove ; b . fn . remove = function ( a , c ) { return this . each ( function ( ) { if ( ! c ) if ( ! a || b . filter ( a , [ this ] ) . length ) b ( "*" , this ) . add ( [ this ] ) . each ( function ( ) { try { b ( this ) . triggerHandler ( "remove" ) } catch ( d ) { } } ) ; return l . call ( b ( this ) , a , c ) } ) } } b . widget = function ( a , c , d ) { var e = a . split ( "." ) [ 0 ] , f ; a = a . split ( "." ) [ 1 ] ; f = e + "-" + a ; if ( ! d ) { d = c ; c = b . Widget } b . expr [ ":" ] [ f ] =
function ( h ) { return ! ! b . data ( h , a ) } ; b [ e ] = b [ e ] || { } ; b [ e ] [ a ] = function ( h , g ) { arguments . length && this . _createWidget ( h , g ) } ; c = new c ; c . options = b . extend ( true , { } , c . options ) ; b [ e ] [ a ] . prototype = b . extend ( true , c , { namespace : e , widgetName : a , widgetEventPrefix : b [ e ] [ a ] . prototype . widgetEventPrefix || a , widgetBaseClass : f } , d ) ; b . widget . bridge ( a , b [ e ] [ a ] ) } ; b . widget . bridge = function ( a , c ) { b . fn [ a ] = function ( d ) { var e = typeof d === "string" , f = Array . prototype . slice . call ( arguments , 1 ) , h = this ; d = ! e && f . length ? b . extend . apply ( null , [ true , d ] . concat ( f ) ) :
d ; if ( e && d . charAt ( 0 ) === "_" ) return h ; e ? this . each ( function ( ) { var g = b . data ( this , a ) , i = g && b . isFunction ( g [ d ] ) ? g [ d ] . apply ( g , f ) : g ; if ( i !== g && i !== j ) { h = i ; return false } } ) : this . each ( function ( ) { var g = b . data ( this , a ) ; g ? g . option ( d || { } ) . _init ( ) : b . data ( this , a , new c ( d , this ) ) } ) ; return h } } ; b . Widget = function ( a , c ) { arguments . length && this . _createWidget ( a , c ) } ; b . Widget . prototype = { widgetName : "widget" , widgetEventPrefix : "" , options : { disabled : false } , _createWidget : function ( a , c ) { b . data ( c , this . widgetName , this ) ; this . element = b ( c ) ; this . options =
b . extend ( true , { } , this . options , this . _getCreateOptions ( ) , a ) ; var d = this ; this . element . bind ( "remove." + this . widgetName , function ( ) { d . destroy ( ) } ) ; this . _create ( ) ; this . _trigger ( "create" ) ; this . _init ( ) } , _getCreateOptions : function ( ) { return b . metadata && b . metadata . get ( this . element [ 0 ] ) [ this . widgetName ] } , _create : function ( ) { } , _init : function ( ) { } , destroy : function ( ) { this . element . unbind ( "." + this . widgetName ) . removeData ( this . widgetName ) ; this . widget ( ) . unbind ( "." + this . widgetName ) . removeAttr ( "aria-disabled" ) . removeClass ( this . widgetBaseClass +
"-disabled ui-state-disabled" ) } , widget : function ( ) { return this . element } , option : function ( a , c ) { var d = a ; if ( arguments . length === 0 ) return b . extend ( { } , this . options ) ; if ( typeof a === "string" ) { if ( c === j ) return this . options [ a ] ; d = { } ; d [ a ] = c } this . _setOptions ( d ) ; return this } , _setOptions : function ( a ) { var c = this ; b . each ( a , function ( d , e ) { c . _setOption ( d , e ) } ) ; return this } , _setOption : function ( a , c ) { this . options [ a ] = c ; if ( a === "disabled" ) this . widget ( ) [ c ? "addClass" : "removeClass" ] ( this . widgetBaseClass + "-disabled ui-state-disabled" ) . attr ( "aria-disabled" ,
c ) ; return this } , enable : function ( ) { return this . _setOption ( "disabled" , false ) } , disable : function ( ) { return this . _setOption ( "disabled" , true ) } , _trigger : function ( a , c , d ) { var e = this . options [ a ] ; c = b . Event ( c ) ; c . type = ( a === this . widgetEventPrefix ? a : this . widgetEventPrefix + a ) . toLowerCase ( ) ; d = d || { } ; if ( c . originalEvent ) { a = b . event . props . length ; for ( var f ; a ; ) { f = b . event . props [ -- a ] ; c [ f ] = c . originalEvent [ f ] } } this . element . trigger ( c , d ) ; return ! ( b . isFunction ( e ) && e . call ( this . element [ 0 ] , c , d ) === false || c . isDefaultPrevented ( ) ) } } } ) ( jQuery ) ;
2011-08-10 17:49:27 +00:00
; / * !
2011-09-04 11:03:57 +00:00
* jQuery UI Mouse 1.8 . 16
2011-08-10 17:49:27 +00:00
*
* Copyright 2011 , AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* http : //docs.jquery.com/UI/Mouse
*
* Depends :
* jquery . ui . widget . js
* /
2011-09-04 11:03:57 +00:00
( function ( b ) { var d = false ; b ( document ) . mouseup ( function ( ) { d = false } ) ; b . widget ( "ui.mouse" , { options : { cancel : ":input,option" , distance : 1 , delay : 0 } , _mouseInit : function ( ) { var a = this ; this . element . bind ( "mousedown." + this . widgetName , function ( c ) { return a . _mouseDown ( c ) } ) . bind ( "click." + this . widgetName , function ( c ) { if ( true === b . data ( c . target , a . widgetName + ".preventClickEvent" ) ) { b . removeData ( c . target , a . widgetName + ".preventClickEvent" ) ; c . stopImmediatePropagation ( ) ; return false } } ) ; this . started = false } , _mouseDestroy : function ( ) { this . element . unbind ( "." +
this . widgetName ) } , _mouseDown : function ( a ) { if ( ! d ) { this . _mouseStarted && this . _mouseUp ( a ) ; this . _mouseDownEvent = a ; var c = this , f = a . which == 1 , g = typeof this . options . cancel == "string" && a . target . nodeName ? b ( a . target ) . closest ( this . options . cancel ) . length : false ; if ( ! f || g || ! this . _mouseCapture ( a ) ) return true ; this . mouseDelayMet = ! this . options . delay ; if ( ! this . mouseDelayMet ) this . _mouseDelayTimer = setTimeout ( function ( ) { c . mouseDelayMet = true } , this . options . delay ) ; if ( this . _mouseDistanceMet ( a ) && this . _mouseDelayMet ( a ) ) { this . _mouseStarted =
this . _mouseStart ( a ) !== false ; if ( ! this . _mouseStarted ) { a . preventDefault ( ) ; return true } } true === b . data ( a . target , this . widgetName + ".preventClickEvent" ) && b . removeData ( a . target , this . widgetName + ".preventClickEvent" ) ; this . _mouseMoveDelegate = function ( e ) { return c . _mouseMove ( e ) } ; this . _mouseUpDelegate = function ( e ) { return c . _mouseUp ( e ) } ; b ( document ) . bind ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . bind ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) ; a . preventDefault ( ) ; return d = true } } , _mouseMove : function ( a ) { if ( b . browser . msie &&
2011-08-10 17:49:27 +00:00
! ( document . documentMode >= 9 ) && ! a . button ) return this . _mouseUp ( a ) ; if ( this . _mouseStarted ) { this . _mouseDrag ( a ) ; return a . preventDefault ( ) } if ( this . _mouseDistanceMet ( a ) && this . _mouseDelayMet ( a ) ) ( this . _mouseStarted = this . _mouseStart ( this . _mouseDownEvent , a ) !== false ) ? this . _mouseDrag ( a ) : this . _mouseUp ( a ) ; return ! this . _mouseStarted } , _mouseUp : function ( a ) { b ( document ) . unbind ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . unbind ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) ; if ( this . _mouseStarted ) { this . _mouseStarted =
false ; a . target == this . _mouseDownEvent . target && b . data ( a . target , this . widgetName + ".preventClickEvent" , true ) ; this . _mouseStop ( a ) } return false } , _mouseDistanceMet : function ( a ) { return Math . max ( Math . abs ( this . _mouseDownEvent . pageX - a . pageX ) , Math . abs ( this . _mouseDownEvent . pageY - a . pageY ) ) >= this . options . distance } , _mouseDelayMet : function ( ) { return this . mouseDelayMet } , _mouseStart : function ( ) { } , _mouseDrag : function ( ) { } , _mouseStop : function ( ) { } , _mouseCapture : function ( ) { return true } } ) } ) ( jQuery ) ;
; / *
2011-09-04 11:03:57 +00:00
* jQuery UI Slider 1.8 . 16
2011-08-10 17:49:27 +00:00
*
* Copyright 2011 , AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* http : //docs.jquery.com/UI/Slider
*
* Depends :
* jquery . ui . core . js
* jquery . ui . mouse . js
* jquery . ui . widget . js
* /
( function ( d ) { d . widget ( "ui.slider" , d . ui . mouse , { widgetEventPrefix : "slide" , options : { animate : false , distance : 0 , max : 100 , min : 0 , orientation : "horizontal" , range : false , step : 1 , value : 0 , values : null } , _create : function ( ) { var a = this , b = this . options , c = this . element . find ( ".ui-slider-handle" ) . addClass ( "ui-state-default ui-corner-all" ) , f = b . values && b . values . length || 1 , e = [ ] ; this . _mouseSliding = this . _keySliding = false ; this . _animateOff = true ; this . _handleIndex = null ; this . _detectOrientation ( ) ; this . _mouseInit ( ) ; this . element . addClass ( "ui-slider ui-slider-" +
this . orientation + " ui-widget ui-widget-content ui-corner-all" + ( b . disabled ? " ui-slider-disabled ui-disabled" : "" ) ) ; this . range = d ( [ ] ) ; if ( b . range ) { if ( b . range === true ) { if ( ! b . values ) b . values = [ this . _valueMin ( ) , this . _valueMin ( ) ] ; if ( b . values . length && b . values . length !== 2 ) b . values = [ b . values [ 0 ] , b . values [ 0 ] ] } this . range = d ( "<div></div>" ) . appendTo ( this . element ) . addClass ( "ui-slider-range ui-widget-header" + ( b . range === "min" || b . range === "max" ? " ui-slider-range-" + b . range : "" ) ) } for ( var j = c . length ; j < f ; j += 1 ) e . push ( "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>" ) ;
this . handles = c . add ( d ( e . join ( "" ) ) . appendTo ( a . element ) ) ; this . handle = this . handles . eq ( 0 ) ; this . handles . add ( this . range ) . filter ( "a" ) . click ( function ( g ) { g . preventDefault ( ) } ) . hover ( function ( ) { b . disabled || d ( this ) . addClass ( "ui-state-hover" ) } , function ( ) { d ( this ) . removeClass ( "ui-state-hover" ) } ) . focus ( function ( ) { if ( b . disabled ) d ( this ) . blur ( ) ; else { d ( ".ui-slider .ui-state-focus" ) . removeClass ( "ui-state-focus" ) ; d ( this ) . addClass ( "ui-state-focus" ) } } ) . blur ( function ( ) { d ( this ) . removeClass ( "ui-state-focus" ) } ) ; this . handles . each ( function ( g ) { d ( this ) . data ( "index.ui-slider-handle" ,
g ) } ) ; this . handles . keydown ( function ( g ) { var k = true , l = d ( this ) . data ( "index.ui-slider-handle" ) , i , h , m ; if ( ! a . options . disabled ) { switch ( g . keyCode ) { case d . ui . keyCode . HOME : case d . ui . keyCode . END : case d . ui . keyCode . PAGE _UP : case d . ui . keyCode . PAGE _DOWN : case d . ui . keyCode . UP : case d . ui . keyCode . RIGHT : case d . ui . keyCode . DOWN : case d . ui . keyCode . LEFT : k = false ; if ( ! a . _keySliding ) { a . _keySliding = true ; d ( this ) . addClass ( "ui-state-active" ) ; i = a . _start ( g , l ) ; if ( i === false ) return } break } m = a . options . step ; i = a . options . values && a . options . values . length ?
( h = a . values ( l ) ) : ( h = a . value ( ) ) ; switch ( g . keyCode ) { case d . ui . keyCode . HOME : h = a . _valueMin ( ) ; break ; case d . ui . keyCode . END : h = a . _valueMax ( ) ; break ; case d . ui . keyCode . PAGE _UP : h = a . _trimAlignValue ( i + ( a . _valueMax ( ) - a . _valueMin ( ) ) / 5 ) ; break ; case d . ui . keyCode . PAGE _DOWN : h = a . _trimAlignValue ( i - ( a . _valueMax ( ) - a . _valueMin ( ) ) / 5 ) ; break ; case d . ui . keyCode . UP : case d . ui . keyCode . RIGHT : if ( i === a . _valueMax ( ) ) return ; h = a . _trimAlignValue ( i + m ) ; break ; case d . ui . keyCode . DOWN : case d . ui . keyCode . LEFT : if ( i === a . _valueMin ( ) ) return ; h = a . _trimAlignValue ( i -
m ) ; break } a . _slide ( g , l , h ) ; return k } } ) . keyup ( function ( g ) { var k = d ( this ) . data ( "index.ui-slider-handle" ) ; if ( a . _keySliding ) { a . _keySliding = false ; a . _stop ( g , k ) ; a . _change ( g , k ) ; d ( this ) . removeClass ( "ui-state-active" ) } } ) ; this . _refreshValue ( ) ; this . _animateOff = false } , destroy : function ( ) { this . handles . remove ( ) ; this . range . remove ( ) ; this . element . removeClass ( "ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all" ) . removeData ( "slider" ) . unbind ( ".slider" ) ; this . _mouseDestroy ( ) ;
return this } , _mouseCapture : function ( a ) { var b = this . options , c , f , e , j , g ; if ( b . disabled ) return false ; this . elementSize = { width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) } ; this . elementOffset = this . element . offset ( ) ; c = this . _normValueFromMouse ( { x : a . pageX , y : a . pageY } ) ; f = this . _valueMax ( ) - this . _valueMin ( ) + 1 ; j = this ; this . handles . each ( function ( k ) { var l = Math . abs ( c - j . values ( k ) ) ; if ( f > l ) { f = l ; e = d ( this ) ; g = k } } ) ; if ( b . range === true && this . values ( 1 ) === b . min ) { g += 1 ; e = d ( this . handles [ g ] ) } if ( this . _start ( a , g ) === false ) return false ;
this . _mouseSliding = true ; j . _handleIndex = g ; e . addClass ( "ui-state-active" ) . focus ( ) ; b = e . offset ( ) ; this . _clickOffset = ! d ( a . target ) . parents ( ) . andSelf ( ) . is ( ".ui-slider-handle" ) ? { left : 0 , top : 0 } : { left : a . pageX - b . left - e . width ( ) / 2 , top : a . pageY - b . top - e . height ( ) / 2 - ( parseInt ( e . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( e . css ( "borderBottomWidth" ) , 10 ) || 0 ) + ( parseInt ( e . css ( "marginTop" ) , 10 ) || 0 ) } ; this . handles . hasClass ( "ui-state-hover" ) || this . _slide ( a , g , c ) ; return this . _animateOff = true } , _mouseStart : function ( ) { return true } , _mouseDrag : function ( a ) { var b =
this . _normValueFromMouse ( { x : a . pageX , y : a . pageY } ) ; this . _slide ( a , this . _handleIndex , b ) ; return false } , _mouseStop : function ( a ) { this . handles . removeClass ( "ui-state-active" ) ; this . _mouseSliding = false ; this . _stop ( a , this . _handleIndex ) ; this . _change ( a , this . _handleIndex ) ; this . _clickOffset = this . _handleIndex = null ; return this . _animateOff = false } , _detectOrientation : function ( ) { this . orientation = this . options . orientation === "vertical" ? "vertical" : "horizontal" } , _normValueFromMouse : function ( a ) { var b ; if ( this . orientation === "horizontal" ) { b =
this . elementSize . width ; a = a . x - this . elementOffset . left - ( this . _clickOffset ? this . _clickOffset . left : 0 ) } else { b = this . elementSize . height ; a = a . y - this . elementOffset . top - ( this . _clickOffset ? this . _clickOffset . top : 0 ) } b = a / b ; if ( b > 1 ) b = 1 ; if ( b < 0 ) b = 0 ; if ( this . orientation === "vertical" ) b = 1 - b ; a = this . _valueMax ( ) - this . _valueMin ( ) ; return this . _trimAlignValue ( this . _valueMin ( ) + b * a ) } , _start : function ( a , b ) { var c = { handle : this . handles [ b ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { c . value = this . values ( b ) ;
c . values = this . values ( ) } return this . _trigger ( "start" , a , c ) } , _slide : function ( a , b , c ) { var f ; if ( this . options . values && this . options . values . length ) { f = this . values ( b ? 0 : 1 ) ; if ( this . options . values . length === 2 && this . options . range === true && ( b === 0 && c > f || b === 1 && c < f ) ) c = f ; if ( c !== this . values ( b ) ) { f = this . values ( ) ; f [ b ] = c ; a = this . _trigger ( "slide" , a , { handle : this . handles [ b ] , value : c , values : f } ) ; this . values ( b ? 0 : 1 ) ; a !== false && this . values ( b , c , true ) } } else if ( c !== this . value ( ) ) { a = this . _trigger ( "slide" , a , { handle : this . handles [ b ] , value : c } ) ;
a !== false && this . value ( c ) } } , _stop : function ( a , b ) { var c = { handle : this . handles [ b ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { c . value = this . values ( b ) ; c . values = this . values ( ) } this . _trigger ( "stop" , a , c ) } , _change : function ( a , b ) { if ( ! this . _keySliding && ! this . _mouseSliding ) { var c = { handle : this . handles [ b ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { c . value = this . values ( b ) ; c . values = this . values ( ) } this . _trigger ( "change" , a , c ) } } , value : function ( a ) { if ( arguments . length ) { this . options . value =
this . _trimAlignValue ( a ) ; this . _refreshValue ( ) ; this . _change ( null , 0 ) } else return this . _value ( ) } , values : function ( a , b ) { var c , f , e ; if ( arguments . length > 1 ) { this . options . values [ a ] = this . _trimAlignValue ( b ) ; this . _refreshValue ( ) ; this . _change ( null , a ) } else if ( arguments . length ) if ( d . isArray ( arguments [ 0 ] ) ) { c = this . options . values ; f = arguments [ 0 ] ; for ( e = 0 ; e < c . length ; e += 1 ) { c [ e ] = this . _trimAlignValue ( f [ e ] ) ; this . _change ( null , e ) } this . _refreshValue ( ) } else return this . options . values && this . options . values . length ? this . _values ( a ) :
this . value ( ) ; else return this . _values ( ) } , _setOption : function ( a , b ) { var c , f = 0 ; if ( d . isArray ( this . options . values ) ) f = this . options . values . length ; d . Widget . prototype . _setOption . apply ( this , arguments ) ; switch ( a ) { case "disabled" : if ( b ) { this . handles . filter ( ".ui-state-focus" ) . blur ( ) ; this . handles . removeClass ( "ui-state-hover" ) ; this . handles . propAttr ( "disabled" , true ) ; this . element . addClass ( "ui-disabled" ) } else { this . handles . propAttr ( "disabled" , false ) ; this . element . removeClass ( "ui-disabled" ) } break ; case "orientation" : this . _detectOrientation ( ) ;
this . element . removeClass ( "ui-slider-horizontal ui-slider-vertical" ) . addClass ( "ui-slider-" + this . orientation ) ; this . _refreshValue ( ) ; break ; case "value" : this . _animateOff = true ; this . _refreshValue ( ) ; this . _change ( null , 0 ) ; this . _animateOff = false ; break ; case "values" : this . _animateOff = true ; this . _refreshValue ( ) ; for ( c = 0 ; c < f ; c += 1 ) this . _change ( null , c ) ; this . _animateOff = false ; break } } , _value : function ( ) { var a = this . options . value ; return a = this . _trimAlignValue ( a ) } , _values : function ( a ) { var b , c ; if ( arguments . length ) { b = this . options . values [ a ] ;
return b = this . _trimAlignValue ( b ) } else { b = this . options . values . slice ( ) ; for ( c = 0 ; c < b . length ; c += 1 ) b [ c ] = this . _trimAlignValue ( b [ c ] ) ; return b } } , _trimAlignValue : function ( a ) { if ( a <= this . _valueMin ( ) ) return this . _valueMin ( ) ; if ( a >= this . _valueMax ( ) ) return this . _valueMax ( ) ; var b = this . options . step > 0 ? this . options . step : 1 , c = ( a - this . _valueMin ( ) ) % b ; a = a - c ; if ( Math . abs ( c ) * 2 >= b ) a += c > 0 ? b : - b ; return parseFloat ( a . toFixed ( 5 ) ) } , _valueMin : function ( ) { return this . options . min } , _valueMax : function ( ) { return this . options . max } , _refreshValue : function ( ) { var a =
this . options . range , b = this . options , c = this , f = ! this . _animateOff ? b . animate : false , e , j = { } , g , k , l , i ; if ( this . options . values && this . options . values . length ) this . handles . each ( function ( h ) { e = ( c . values ( h ) - c . _valueMin ( ) ) / ( c . _valueMax ( ) - c . _valueMin ( ) ) * 100 ; j [ c . orientation === "horizontal" ? "left" : "bottom" ] = e + "%" ; d ( this ) . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( j , b . animate ) ; if ( c . options . range === true ) if ( c . orientation === "horizontal" ) { if ( h === 0 ) c . range . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( { left : e + "%" } , b . animate ) ; if ( h === 1 ) c . range [ f ? "animate" : "css" ] ( { width : e -
g + "%" } , { queue : false , duration : b . animate } ) } else { if ( h === 0 ) c . range . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( { bottom : e + "%" } , b . animate ) ; if ( h === 1 ) c . range [ f ? "animate" : "css" ] ( { height : e - g + "%" } , { queue : false , duration : b . animate } ) } g = e } ) ; else { k = this . value ( ) ; l = this . _valueMin ( ) ; i = this . _valueMax ( ) ; e = i !== l ? ( k - l ) / ( i - l ) * 100 : 0 ; j [ c . orientation === "horizontal" ? "left" : "bottom" ] = e + "%" ; this . handle . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( j , b . animate ) ; if ( a === "min" && this . orientation === "horizontal" ) this . range . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( { width : e + "%" } ,
2011-09-04 11:03:57 +00:00
b . animate ) ; if ( a === "max" && this . orientation === "horizontal" ) this . range [ f ? "animate" : "css" ] ( { width : 100 - e + "%" } , { queue : false , duration : b . animate } ) ; if ( a === "min" && this . orientation === "vertical" ) this . range . stop ( 1 , 1 ) [ f ? "animate" : "css" ] ( { height : e + "%" } , b . animate ) ; if ( a === "max" && this . orientation === "vertical" ) this . range [ f ? "animate" : "css" ] ( { height : 100 - e + "%" } , { queue : false , duration : b . animate } ) } } } ) ; d . extend ( d . ui . slider , { version : "1.8.16" } ) } ) ( jQuery ) ;