2010-05-19 15:43:12 +00:00
/ *
* jQuery JavaScript Library v1 . 4.2
* http : //jquery.com/
*
* Copyright 2010 , John Resig
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* Includes Sizzle . js
* http : //sizzlejs.com/
* Copyright 2010 , The Dojo Foundation
* Released under the MIT , BSD , and GPL Licenses .
*
* Date : Sat Feb 13 22 : 33 : 48 2010 - 0500
* /
( function ( window , undefined ) { var jQuery = function ( selector , context ) { return new jQuery . fn . init ( selector , context ) ; } , _jQuery = window . jQuery , _$ = window . $ , document = window . document , rootjQuery , quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/ , isSimple = /^.[^:#\[\.,]*$/ , rnotwhite = /\S/ , rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g , rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/ , userAgent = navigator . userAgent , browserMatch , readyBound = false , readyList = [ ] , DOMContentLoaded , toString = Object . prototype . toString , hasOwnProperty = Object . prototype . hasOwnProperty , push = Array . prototype . push , slice = Array . prototype . slice , indexOf = Array . prototype . indexOf ; jQuery . fn = jQuery . prototype = { init : function ( selector , context ) { var match , elem , ret , doc ; if ( ! selector ) { return this ; }
if ( selector . nodeType ) { this . context = this [ 0 ] = selector ; this . length = 1 ; return this ; }
if ( selector === "body" && ! context ) { this . context = document ; this [ 0 ] = document . body ; this . selector = "body" ; this . length = 1 ; return this ; }
if ( typeof selector === "string" ) { match = quickExpr . exec ( selector ) ; if ( match && ( match [ 1 ] || ! context ) ) { if ( match [ 1 ] ) { doc = ( context ? context . ownerDocument || context : document ) ; ret = rsingleTag . exec ( selector ) ; if ( ret ) { if ( jQuery . isPlainObject ( context ) ) { selector = [ document . createElement ( ret [ 1 ] ) ] ; jQuery . fn . attr . call ( selector , context , true ) ; } else { selector = [ doc . createElement ( ret [ 1 ] ) ] ; } } else { ret = buildFragment ( [ match [ 1 ] ] , [ doc ] ) ; selector = ( ret . cacheable ? ret . fragment . cloneNode ( true ) : ret . fragment ) . childNodes ; }
return jQuery . merge ( this , selector ) ; } else { elem = document . getElementById ( match [ 2 ] ) ; if ( elem ) { if ( elem . id !== match [ 2 ] ) { return rootjQuery . find ( selector ) ; }
this . length = 1 ; this [ 0 ] = elem ; }
this . context = document ; this . selector = selector ; return this ; } } else if ( ! context && /^\w+$/ . test ( selector ) ) { this . selector = selector ; this . context = document ; selector = document . getElementsByTagName ( selector ) ; return jQuery . merge ( this , selector ) ; } else if ( ! context || context . jquery ) { return ( context || rootjQuery ) . find ( selector ) ; } else { return jQuery ( context ) . find ( selector ) ; } } else if ( jQuery . isFunction ( selector ) ) { return rootjQuery . ready ( selector ) ; }
if ( selector . selector !== undefined ) { this . selector = selector . selector ; this . context = selector . context ; }
return jQuery . makeArray ( selector , this ) ; } , selector : "" , jquery : "1.4.2" , length : 0 , size : function ( ) { return this . length ; } , toArray : function ( ) { return slice . call ( this , 0 ) ; } , get : function ( num ) { return num == null ? this . toArray ( ) : ( num < 0 ? this . slice ( num ) [ 0 ] : this [ num ] ) ; } , pushStack : function ( elems , name , selector ) { var ret = jQuery ( ) ; if ( jQuery . isArray ( elems ) ) { push . apply ( ret , elems ) ; } else { jQuery . merge ( ret , elems ) ; }
ret . prevObject = this ; ret . context = this . context ; if ( name === "find" ) { ret . selector = this . selector + ( this . selector ? " " : "" ) + selector ; } else if ( name ) { ret . selector = this . selector + "." + name + "(" + selector + ")" ; }
return ret ; } , each : function ( callback , args ) { return jQuery . each ( this , callback , args ) ; } , ready : function ( fn ) { jQuery . bindReady ( ) ; if ( jQuery . isReady ) { fn . call ( document , jQuery ) ; } else if ( readyList ) { readyList . push ( fn ) ; }
return this ; } , eq : function ( i ) { return i === - 1 ? this . slice ( i ) : this . slice ( i , + i + 1 ) ; } , first : function ( ) { return this . eq ( 0 ) ; } , last : function ( ) { return this . eq ( - 1 ) ; } , slice : function ( ) { return this . pushStack ( slice . apply ( this , arguments ) , "slice" , slice . call ( arguments ) . join ( "," ) ) ; } , map : function ( callback ) { return this . pushStack ( jQuery . map ( this , function ( elem , i ) { return callback . call ( elem , i , elem ) ; } ) ) ; } , end : function ( ) { return this . prevObject || jQuery ( null ) ; } , push : push , sort : [ ] . sort , splice : [ ] . splice } ; jQuery . fn . init . prototype = jQuery . fn ; jQuery . extend = jQuery . fn . extend = function ( ) { var target = arguments [ 0 ] || { } , i = 1 , length = arguments . length , deep = false , options , name , src , copy ; if ( typeof target === "boolean" ) { deep = target ; target = arguments [ 1 ] || { } ; i = 2 ; }
if ( typeof target !== "object" && ! jQuery . isFunction ( target ) ) { target = { } ; }
if ( length === i ) { target = this ; -- i ; }
for ( ; i < length ; i ++ ) { if ( ( options = arguments [ i ] ) != null ) { for ( name in options ) { src = target [ name ] ; copy = options [ name ] ; if ( target === copy ) { continue ; }
if ( deep && copy && ( jQuery . isPlainObject ( copy ) || jQuery . isArray ( copy ) ) ) { var clone = src && ( jQuery . isPlainObject ( src ) || jQuery . isArray ( src ) ) ? src : jQuery . isArray ( copy ) ? [ ] : { } ; target [ name ] = jQuery . extend ( deep , clone , copy ) ; } else if ( copy !== undefined ) { target [ name ] = copy ; } } } }
return target ; } ; jQuery . extend ( { noConflict : function ( deep ) { window . $ = _$ ; if ( deep ) { window . jQuery = _jQuery ; }
return jQuery ; } , isReady : false , ready : function ( ) { if ( ! jQuery . isReady ) { if ( ! document . body ) { return setTimeout ( jQuery . ready , 13 ) ; }
jQuery . isReady = true ; if ( readyList ) { var fn , i = 0 ; while ( ( fn = readyList [ i ++ ] ) ) { fn . call ( document , jQuery ) ; }
readyList = null ; }
if ( jQuery . fn . triggerHandler ) { jQuery ( document ) . triggerHandler ( "ready" ) ; } } } , bindReady : function ( ) { if ( readyBound ) { return ; }
readyBound = true ; if ( document . readyState === "complete" ) { return jQuery . ready ( ) ; }
if ( document . addEventListener ) { document . addEventListener ( "DOMContentLoaded" , DOMContentLoaded , false ) ; window . addEventListener ( "load" , jQuery . ready , false ) ; } else if ( document . attachEvent ) { document . attachEvent ( "onreadystatechange" , DOMContentLoaded ) ; window . attachEvent ( "onload" , jQuery . ready ) ; var toplevel = false ; try { toplevel = window . frameElement == null ; } catch ( e ) { }
if ( document . documentElement . doScroll && toplevel ) { doScrollCheck ( ) ; } } } , isFunction : function ( obj ) { return toString . call ( obj ) === "[object Function]" ; } , isArray : function ( obj ) { return toString . call ( obj ) === "[object Array]" ; } , isPlainObject : function ( obj ) { if ( ! obj || toString . call ( obj ) !== "[object Object]" || obj . nodeType || obj . setInterval ) { return false ; }
if ( obj . constructor && ! hasOwnProperty . call ( obj , "constructor" ) && ! hasOwnProperty . call ( obj . constructor . prototype , "isPrototypeOf" ) ) { return false ; }
var key ; for ( key in obj ) { }
return key === undefined || hasOwnProperty . call ( obj , key ) ; } , isEmptyObject : function ( obj ) { for ( var name in obj ) { return false ; }
return true ; } , error : function ( msg ) { throw msg ; } , parseJSON : function ( data ) { if ( typeof data !== "string" || ! data ) { return null ; }
data = jQuery . trim ( data ) ; if ( /^[\],:{}\s]*$/ . test ( data . replace ( /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g , "@" ) . replace ( /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g , "]" ) . replace ( /(?:^|:|,)(?:\s*\[)+/g , "" ) ) ) { return window . JSON && window . JSON . parse ? window . JSON . parse ( data ) : ( new Function ( "return " + data ) ) ( ) ; } else { jQuery . error ( "Invalid JSON: " + data ) ; } } , noop : function ( ) { } , globalEval : function ( data ) { if ( data && rnotwhite . test ( data ) ) { var head = document . getElementsByTagName ( "head" ) [ 0 ] || document . documentElement , script = document . createElement ( "script" ) ; script . type = "text/javascript" ; if ( jQuery . support . scriptEval ) { script . appendChild ( document . createTextNode ( data ) ) ; } else { script . text = data ; }
head . insertBefore ( script , head . firstChild ) ; head . removeChild ( script ) ; } } , nodeName : function ( elem , name ) { return elem . nodeName && elem . nodeName . toUpperCase ( ) === name . toUpperCase ( ) ; } , each : function ( object , callback , args ) { var name , i = 0 , length = object . length , isObj = length === undefined || jQuery . isFunction ( object ) ; if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback . apply ( object [ name ] , args ) === false ) { break ; } } } else { for ( ; i < length ; ) { if ( callback . apply ( object [ i ++ ] , args ) === false ) { break ; } } } } else { if ( isObj ) { for ( name in object ) { if ( callback . call ( object [ name ] , name , object [ name ] ) === false ) { break ; } } } else { for ( var value = object [ 0 ] ; i < length && callback . call ( value , i , value ) !== false ; value = object [ ++ i ] ) { } } }
return object ; } , trim : function ( text ) { return ( text || "" ) . replace ( rtrim , "" ) ; } , makeArray : function ( array , results ) { var ret = results || [ ] ; if ( array != null ) { if ( array . length == null || typeof array === "string" || jQuery . isFunction ( array ) || ( typeof array !== "function" && array . setInterval ) ) { push . call ( ret , array ) ; } else { jQuery . merge ( ret , array ) ; } }
return ret ; } , inArray : function ( elem , array ) { if ( array . indexOf ) { return array . indexOf ( elem ) ; }
for ( var i = 0 , length = array . length ; i < length ; i ++ ) { if ( array [ i ] === elem ) { return i ; } }
return - 1 ; } , merge : function ( first , second ) { var i = first . length , j = 0 ; if ( typeof second . length === "number" ) { for ( var l = second . length ; j < l ; j ++ ) { first [ i ++ ] = second [ j ] ; } } else { while ( second [ j ] !== undefined ) { first [ i ++ ] = second [ j ++ ] ; } }
first . length = i ; return first ; } , grep : function ( elems , callback , inv ) { var ret = [ ] ; for ( var i = 0 , length = elems . length ; i < length ; i ++ ) { if ( ! inv !== ! callback ( elems [ i ] , i ) ) { ret . push ( elems [ i ] ) ; } }
return ret ; } , map : function ( elems , callback , arg ) { var ret = [ ] , value ; for ( var i = 0 , length = elems . length ; i < length ; i ++ ) { value = callback ( elems [ i ] , i , arg ) ; if ( value != null ) { ret [ ret . length ] = value ; } }
return ret . concat . apply ( [ ] , ret ) ; } , guid : 1 , proxy : function ( fn , proxy , thisObject ) { if ( arguments . length === 2 ) { if ( typeof proxy === "string" ) { thisObject = fn ; fn = thisObject [ proxy ] ; proxy = undefined ; } else if ( proxy && ! jQuery . isFunction ( proxy ) ) { thisObject = proxy ; proxy = undefined ; } }
if ( ! proxy && fn ) { proxy = function ( ) { return fn . apply ( thisObject || this , arguments ) ; } ; }
if ( fn ) { proxy . guid = fn . guid = fn . guid || proxy . guid || jQuery . guid ++ ; }
return proxy ; } , uaMatch : function ( ua ) { ua = ua . toLowerCase ( ) ; var match = /(webkit)[ \/]([\w.]+)/ . exec ( ua ) || /(opera)(?:.*version)?[ \/]([\w.]+)/ . exec ( ua ) || /(msie) ([\w.]+)/ . exec ( ua ) || ! /compatible/ . test ( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/ . exec ( ua ) || [ ] ; return { browser : match [ 1 ] || "" , version : match [ 2 ] || "0" } ; } , browser : { } } ) ; browserMatch = jQuery . uaMatch ( userAgent ) ; if ( browserMatch . browser ) { jQuery . browser [ browserMatch . browser ] = true ; jQuery . browser . version = browserMatch . version ; }
if ( jQuery . browser . webkit ) { jQuery . browser . safari = true ; }
if ( indexOf ) { jQuery . inArray = function ( elem , array ) { return indexOf . call ( array , elem ) ; } ; }
rootjQuery = jQuery ( document ) ; if ( document . addEventListener ) { DOMContentLoaded = function ( ) { document . removeEventListener ( "DOMContentLoaded" , DOMContentLoaded , false ) ; jQuery . ready ( ) ; } ; } else if ( document . attachEvent ) { DOMContentLoaded = function ( ) { if ( document . readyState === "complete" ) { document . detachEvent ( "onreadystatechange" , DOMContentLoaded ) ; jQuery . ready ( ) ; } } ; }
function doScrollCheck ( ) { if ( jQuery . isReady ) { return ; }
try { document . documentElement . doScroll ( "left" ) ; } catch ( error ) { setTimeout ( doScrollCheck , 1 ) ; return ; }
jQuery . ready ( ) ; }
function evalScript ( i , elem ) { if ( elem . src ) { jQuery . ajax ( { url : elem . src , async : false , dataType : "script" } ) ; } else { jQuery . globalEval ( elem . text || elem . textContent || elem . innerHTML || "" ) ; }
if ( elem . parentNode ) { elem . parentNode . removeChild ( elem ) ; } }
function access ( elems , key , value , exec , fn , pass ) { var length = elems . length ; if ( typeof key === "object" ) { for ( var k in key ) { access ( elems , k , key [ k ] , exec , fn , value ) ; }
return elems ; }
if ( value !== undefined ) { exec = ! pass && exec && jQuery . isFunction ( value ) ; for ( var i = 0 ; i < length ; i ++ ) { fn ( elems [ i ] , key , exec ? value . call ( elems [ i ] , i , fn ( elems [ i ] , key ) ) : value , pass ) ; }
return elems ; }
return length ? fn ( elems [ 0 ] , key ) : undefined ; }
function now ( ) { return ( new Date ) . getTime ( ) ; }
( function ( ) { jQuery . support = { } ; var root = document . documentElement , script = document . createElement ( "script" ) , div = document . createElement ( "div" ) , id = "script" + now ( ) ; div . style . display = "none" ; div . innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>" ; var all = div . getElementsByTagName ( "*" ) , a = div . getElementsByTagName ( "a" ) [ 0 ] ; if ( ! all || ! all . length || ! a ) { return ; }
jQuery . support = { leadingWhitespace : div . firstChild . nodeType === 3 , tbody : ! div . getElementsByTagName ( "tbody" ) . length , htmlSerialize : ! ! div . getElementsByTagName ( "link" ) . length , style : /red/ . test ( a . getAttribute ( "style" ) ) , hrefNormalized : a . getAttribute ( "href" ) === "/a" , opacity : /^0.55$/ . test ( a . style . opacity ) , cssFloat : ! ! a . style . cssFloat , checkOn : div . getElementsByTagName ( "input" ) [ 0 ] . value === "on" , optSelected : document . createElement ( "select" ) . appendChild ( document . createElement ( "option" ) ) . selected , parentNode : div . removeChild ( div . appendChild ( document . createElement ( "div" ) ) ) . parentNode === null , deleteExpando : true , checkClone : false , scriptEval : false , noCloneEvent : true , boxModel : null } ; script . type = "text/javascript" ; try { script . appendChild ( document . createTextNode ( "window." + id + "=1;" ) ) ; } catch ( e ) { }
root . insertBefore ( script , root . firstChild ) ; if ( window [ id ] ) { jQuery . support . scriptEval = true ; delete window [ id ] ; }
try { delete script . test ; } catch ( e ) { jQuery . support . deleteExpando = false ; }
root . removeChild ( script ) ; if ( div . attachEvent && div . fireEvent ) { div . attachEvent ( "onclick" , function click ( ) { jQuery . support . noCloneEvent = false ; div . detachEvent ( "onclick" , click ) ; } ) ; div . cloneNode ( true ) . fireEvent ( "onclick" ) ; }
div = document . createElement ( "div" ) ; div . innerHTML = "<input type='radio' name='radiotest' checked='checked'/>" ; var fragment = document . createDocumentFragment ( ) ; fragment . appendChild ( div . firstChild ) ; jQuery . support . checkClone = fragment . cloneNode ( true ) . cloneNode ( true ) . lastChild . checked ; jQuery ( function ( ) { var div = document . createElement ( "div" ) ; div . style . width = div . style . paddingLeft = "1px" ; document . body . appendChild ( div ) ; jQuery . boxModel = jQuery . support . boxModel = div . offsetWidth === 2 ; document . body . removeChild ( div ) . style . display = 'none' ; div = null ; } ) ; var eventSupported = function ( eventName ) { var el = document . createElement ( "div" ) ; eventName = "on" + eventName ; var isSupported = ( eventName in el ) ; if ( ! isSupported ) { el . setAttribute ( eventName , "return;" ) ; isSupported = typeof el [ eventName ] === "function" ; }
el = null ; return isSupported ; } ; jQuery . support . submitBubbles = eventSupported ( "submit" ) ; jQuery . support . changeBubbles = eventSupported ( "change" ) ; root = script = div = all = a = null ; } ) ( ) ; jQuery . props = { "for" : "htmlFor" , "class" : "className" , readonly : "readOnly" , maxlength : "maxLength" , cellspacing : "cellSpacing" , rowspan : "rowSpan" , colspan : "colSpan" , tabindex : "tabIndex" , usemap : "useMap" , frameborder : "frameBorder" } ; var expando = "jQuery" + now ( ) , uuid = 0 , windowData = { } ; jQuery . extend ( { cache : { } , expando : expando , noData : { "embed" : true , "object" : true , "applet" : true } , data : function ( elem , name , data ) { if ( elem . nodeName && jQuery . noData [ elem . nodeName . toLowerCase ( ) ] ) { return ; }
elem = elem == window ? windowData : elem ; var id = elem [ expando ] , cache = jQuery . cache , thisCache ; if ( ! id && typeof name === "string" && data === undefined ) { return null ; }
if ( ! id ) { id = ++ uuid ; }
if ( typeof name === "object" ) { elem [ expando ] = id ; thisCache = cache [ id ] = jQuery . extend ( true , { } , name ) ; } else if ( ! cache [ id ] ) { elem [ expando ] = id ; cache [ id ] = { } ; }
thisCache = cache [ id ] ; if ( data !== undefined ) { thisCache [ name ] = data ; }
return typeof name === "string" ? thisCache [ name ] : thisCache ; } , removeData : function ( elem , name ) { if ( elem . nodeName && jQuery . noData [ elem . nodeName . toLowerCase ( ) ] ) { return ; }
elem = elem == window ? windowData : elem ; var id = elem [ expando ] , cache = jQuery . cache , thisCache = cache [ id ] ; if ( name ) { if ( thisCache ) { delete thisCache [ name ] ; if ( jQuery . isEmptyObject ( thisCache ) ) { jQuery . removeData ( elem ) ; } } } else { if ( jQuery . support . deleteExpando ) { delete elem [ jQuery . expando ] ; } else if ( elem . removeAttribute ) { elem . removeAttribute ( jQuery . expando ) ; }
delete cache [ id ] ; } } } ) ; jQuery . fn . extend ( { data : function ( key , value ) { if ( typeof key === "undefined" && this . length ) { return jQuery . data ( this [ 0 ] ) ; } else if ( typeof key === "object" ) { return this . each ( function ( ) { jQuery . data ( this , key ) ; } ) ; }
var parts = key . split ( "." ) ; parts [ 1 ] = parts [ 1 ] ? "." + parts [ 1 ] : "" ; if ( value === undefined ) { var data = this . triggerHandler ( "getData" + parts [ 1 ] + "!" , [ parts [ 0 ] ] ) ; if ( data === undefined && this . length ) { data = jQuery . data ( this [ 0 ] , key ) ; }
return data === undefined && parts [ 1 ] ? this . data ( parts [ 0 ] ) : data ; } else { return this . trigger ( "setData" + parts [ 1 ] + "!" , [ parts [ 0 ] , value ] ) . each ( function ( ) { jQuery . data ( this , key , value ) ; } ) ; } } , removeData : function ( key ) { return this . each ( function ( ) { jQuery . removeData ( this , key ) ; } ) ; } } ) ; jQuery . extend ( { queue : function ( elem , type , data ) { if ( ! elem ) { return ; }
type = ( type || "fx" ) + "queue" ; var q = jQuery . data ( elem , type ) ; if ( ! data ) { return q || [ ] ; }
if ( ! q || jQuery . isArray ( data ) ) { q = jQuery . data ( elem , type , jQuery . makeArray ( data ) ) ; } else { q . push ( data ) ; }
return q ; } , dequeue : function ( elem , type ) { type = type || "fx" ; var queue = jQuery . queue ( elem , type ) , fn = queue . shift ( ) ; if ( fn === "inprogress" ) { fn = queue . shift ( ) ; }
if ( fn ) { if ( type === "fx" ) { queue . unshift ( "inprogress" ) ; }
fn . call ( elem , function ( ) { jQuery . dequeue ( elem , type ) ; } ) ; } } } ) ; jQuery . fn . extend ( { queue : function ( type , data ) { if ( typeof type !== "string" ) { data = type ; type = "fx" ; }
if ( data === undefined ) { return jQuery . queue ( this [ 0 ] , type ) ; }
return this . each ( function ( i , elem ) { var queue = jQuery . queue ( this , type , data ) ; if ( type === "fx" && queue [ 0 ] !== "inprogress" ) { jQuery . dequeue ( this , type ) ; } } ) ; } , dequeue : function ( type ) { return this . each ( function ( ) { jQuery . dequeue ( this , type ) ; } ) ; } , delay : function ( time , type ) { time = jQuery . fx ? jQuery . fx . speeds [ time ] || time : time ; type = type || "fx" ; return this . queue ( type , function ( ) { var elem = this ; setTimeout ( function ( ) { jQuery . dequeue ( elem , type ) ; } , time ) ; } ) ; } , clearQueue : function ( type ) { return this . queue ( type || "fx" , [ ] ) ; } } ) ; var rclass = /[\n\t]/g , rspace = /\s+/ , rreturn = /\r/g , rspecialurl = /href|src|style/ , rtype = /(button|input)/i , rfocusable = /(button|input|object|select|textarea)/i , rclickable = /^(a|area)$/i , rradiocheck = /radio|checkbox/ ; jQuery . fn . extend ( { attr : function ( name , value ) { return access ( this , name , value , true , jQuery . attr ) ; } , removeAttr : function ( name , fn ) { return this . each ( function ( ) { jQuery . attr ( this , name , "" ) ; if ( this . nodeType === 1 ) { this . removeAttribute ( name ) ; } } ) ; } , addClass : function ( value ) { if ( jQuery . isFunction ( value ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; self . addClass ( value . call ( this , i , self . attr ( "class" ) ) ) ; } ) ; }
if ( value && typeof value === "string" ) { var classNames = ( value || "" ) . split ( rspace ) ; for ( var i = 0 , l = this . length ; i < l ; i ++ ) { var elem = this [ i ] ; if ( elem . nodeType === 1 ) { if ( ! elem . className ) { elem . className = value ; } else { var className = " " + elem . className + " " , setClass = elem . className ; for ( var c = 0 , cl = classNames . length ; c < cl ; c ++ ) { if ( className . indexOf ( " " + classNames [ c ] + " " ) < 0 ) { setClass += " " + classNames [ c ] ; } }
elem . className = jQuery . trim ( setClass ) ; } } } }
return this ; } , removeClass : function ( value ) { if ( jQuery . isFunction ( value ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; self . removeClass ( value . call ( this , i , self . attr ( "class" ) ) ) ; } ) ; }
if ( ( value && typeof value === "string" ) || value === undefined ) { var classNames = ( value || "" ) . split ( rspace ) ; for ( var i = 0 , l = this . length ; i < l ; i ++ ) { var elem = this [ i ] ; if ( elem . nodeType === 1 && elem . className ) { if ( value ) { var className = ( " " + elem . className + " " ) . replace ( rclass , " " ) ; for ( var c = 0 , cl = classNames . length ; c < cl ; c ++ ) { className = className . replace ( " " + classNames [ c ] + " " , " " ) ; }
elem . className = jQuery . trim ( className ) ; } else { elem . className = "" ; } } } }
return this ; } , toggleClass : function ( value , stateVal ) { var type = typeof value , isBool = typeof stateVal === "boolean" ; if ( jQuery . isFunction ( value ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; self . toggleClass ( value . call ( this , i , self . attr ( "class" ) , stateVal ) , stateVal ) ; } ) ; }
return this . each ( function ( ) { if ( type === "string" ) { var className , i = 0 , self = jQuery ( this ) , state = stateVal , classNames = value . split ( rspace ) ; while ( ( className = classNames [ i ++ ] ) ) { state = isBool ? state : ! self . hasClass ( className ) ; self [ state ? "addClass" : "removeClass" ] ( className ) ; } } else if ( type === "undefined" || type === "boolean" ) { if ( this . className ) { jQuery . data ( this , "__className__" , this . className ) ; }
this . className = this . className || value === false ? "" : jQuery . data ( this , "__className__" ) || "" ; } } ) ; } , hasClass : function ( selector ) { var className = " " + selector + " " ; for ( var i = 0 , l = this . length ; i < l ; i ++ ) { if ( ( " " + this [ i ] . className + " " ) . replace ( rclass , " " ) . indexOf ( className ) > - 1 ) { return true ; } }
return false ; } , val : function ( value ) { if ( value === undefined ) { var elem = this [ 0 ] ; if ( elem ) { if ( jQuery . nodeName ( elem , "option" ) ) { return ( elem . attributes . value || { } ) . specified ? elem . value : elem . text ; }
if ( jQuery . nodeName ( elem , "select" ) ) { var index = elem . selectedIndex , values = [ ] , options = elem . options , one = elem . type === "select-one" ; if ( index < 0 ) { return null ; }
for ( var i = one ? index : 0 , max = one ? index + 1 : options . length ; i < max ; i ++ ) { var option = options [ i ] ; if ( option . selected ) { value = jQuery ( option ) . val ( ) ; if ( one ) { return value ; }
values . push ( value ) ; } }
return values ; }
if ( rradiocheck . test ( elem . type ) && ! jQuery . support . checkOn ) { return elem . getAttribute ( "value" ) === null ? "on" : elem . value ; }
return ( elem . value || "" ) . replace ( rreturn , "" ) ; }
return undefined ; }
var isFunction = jQuery . isFunction ( value ) ; return this . each ( function ( i ) { var self = jQuery ( this ) , val = value ; if ( this . nodeType !== 1 ) { return ; }
if ( isFunction ) { val = value . call ( this , i , self . val ( ) ) ; }
if ( typeof val === "number" ) { val += "" ; }
if ( jQuery . isArray ( val ) && rradiocheck . test ( this . type ) ) { this . checked = jQuery . inArray ( self . val ( ) , val ) >= 0 ; } else if ( jQuery . nodeName ( this , "select" ) ) { var values = jQuery . makeArray ( val ) ; jQuery ( "option" , this ) . each ( function ( ) { this . selected = jQuery . inArray ( jQuery ( this ) . val ( ) , values ) >= 0 ; } ) ; if ( ! values . length ) { this . selectedIndex = - 1 ; } } else { this . value = val ; } } ) ; } } ) ; jQuery . extend ( { attrFn : { val : true , css : true , html : true , text : true , data : true , width : true , height : true , offset : true } , attr : function ( elem , name , value , pass ) { if ( ! elem || elem . nodeType === 3 || elem . nodeType === 8 ) { return undefined ; }
if ( pass && name in jQuery . attrFn ) { return jQuery ( elem ) [ name ] ( value ) ; }
var notxml = elem . nodeType !== 1 || ! jQuery . isXMLDoc ( elem ) , set = value !== undefined ; name = notxml && jQuery . props [ name ] || name ; if ( elem . nodeType === 1 ) { var special = rspecialurl . test ( name ) ; if ( name === "selected" && ! jQuery . support . optSelected ) { var parent = elem . parentNode ; if ( parent ) { parent . selectedIndex ; if ( parent . parentNode ) { parent . parentNode . selectedIndex ; } } }
if ( name in elem && notxml && ! special ) { if ( set ) { if ( name === "type" && rtype . test ( elem . nodeName ) && elem . parentNode ) { jQuery . error ( "type property can't be changed" ) ; }
elem [ name ] = value ; }
if ( jQuery . nodeName ( elem , "form" ) && elem . getAttributeNode ( name ) ) { return elem . getAttributeNode ( name ) . nodeValue ; }
if ( name === "tabIndex" ) { var attributeNode = elem . getAttributeNode ( "tabIndex" ) ; return attributeNode && attributeNode . specified ? attributeNode . value : rfocusable . test ( elem . nodeName ) || rclickable . test ( elem . nodeName ) && elem . href ? 0 : undefined ; }
return elem [ name ] ; }
if ( ! jQuery . support . style && notxml && name === "style" ) { if ( set ) { elem . style . cssText = "" + value ; }
return elem . style . cssText ; }
if ( set ) { elem . setAttribute ( name , "" + value ) ; }
var attr = ! jQuery . support . hrefNormalized && notxml && special ? elem . getAttribute ( name , 2 ) : elem . getAttribute ( name ) ; return attr === null ? undefined : attr ; }
return jQuery . style ( elem , name , value ) ; } } ) ; var rnamespaces = /\.(.*)$/ , fcleanup = function ( nm ) { return nm . replace ( /[^\w\s\.\|`]/g , function ( ch ) { return "\\" + ch ; } ) ; } ; jQuery . event = { add : function ( elem , types , handler , data ) { if ( elem . nodeType === 3 || elem . nodeType === 8 ) { return ; }
if ( elem . setInterval && ( elem !== window && ! elem . frameElement ) ) { elem = window ; }
var handleObjIn , handleObj ; if ( handler . handler ) { handleObjIn = handler ; handler = handleObjIn . handler ; }
if ( ! handler . guid ) { handler . guid = jQuery . guid ++ ; }
var elemData = jQuery . data ( elem ) ; if ( ! elemData ) { return ; }
var events = elemData . events = elemData . events || { } , eventHandle = elemData . handle , eventHandle ; if ( ! eventHandle ) { elemData . handle = eventHandle = function ( ) { return typeof jQuery !== "undefined" && ! jQuery . event . triggered ? jQuery . event . handle . apply ( eventHandle . elem , arguments ) : undefined ; } ; }
eventHandle . elem = elem ; types = types . split ( " " ) ; var type , i = 0 , namespaces ; while ( ( type = types [ i ++ ] ) ) { handleObj = handleObjIn ? jQuery . extend ( { } , handleObjIn ) : { handler : handler , data : data } ; if ( type . indexOf ( "." ) > - 1 ) { namespaces = type . split ( "." ) ; type = namespaces . shift ( ) ; handleObj . namespace = namespaces . slice ( 0 ) . sort ( ) . join ( "." ) ; } else { namespaces = [ ] ; handleObj . namespace = "" ; }
handleObj . type = type ; handleObj . guid = handler . guid ; var handlers = events [ type ] , special = jQuery . event . special [ type ] || { } ; if ( ! handlers ) { handlers = events [ type ] = [ ] ; if ( ! special . setup || special . setup . call ( elem , data , namespaces , eventHandle ) === false ) { if ( elem . addEventListener ) { elem . addEventListener ( type , eventHandle , false ) ; } else if ( elem . attachEvent ) { elem . attachEvent ( "on" + type , eventHandle ) ; } } }
if ( special . add ) { special . add . call ( elem , handleObj ) ; if ( ! handleObj . handler . guid ) { handleObj . handler . guid = handler . guid ; } }
handlers . push ( handleObj ) ; jQuery . event . global [ type ] = true ; }
elem = null ; } , global : { } , remove : function ( elem , types , handler , pos ) { if ( elem . nodeType === 3 || elem . nodeType === 8 ) { return ; }
var ret , type , fn , i = 0 , all , namespaces , namespace , special , eventType , handleObj , origType , elemData = jQuery . data ( elem ) , events = elemData && elemData . events ; if ( ! elemData || ! events ) { return ; }
if ( types && types . type ) { handler = types . handler ; types = types . type ; }
if ( ! types || typeof types === "string" && types . charAt ( 0 ) === "." ) { types = types || "" ; for ( type in events ) { jQuery . event . remove ( elem , type + types ) ; }
return ; }
types = types . split ( " " ) ; while ( ( type = types [ i ++ ] ) ) { origType = type ; handleObj = null ; all = type . indexOf ( "." ) < 0 ; namespaces = [ ] ; if ( ! all ) { namespaces = type . split ( "." ) ; type = namespaces . shift ( ) ; namespace = new RegExp ( "(^|\\.)" +
jQuery . map ( namespaces . slice ( 0 ) . sort ( ) , fcleanup ) . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) }
eventType = events [ type ] ; if ( ! eventType ) { continue ; }
if ( ! handler ) { for ( var j = 0 ; j < eventType . length ; j ++ ) { handleObj = eventType [ j ] ; if ( all || namespace . test ( handleObj . namespace ) ) { jQuery . event . remove ( elem , origType , handleObj . handler , j ) ; eventType . splice ( j -- , 1 ) ; } }
continue ; }
special = jQuery . event . special [ type ] || { } ; for ( var j = pos || 0 ; j < eventType . length ; j ++ ) { handleObj = eventType [ j ] ; if ( handler . guid === handleObj . guid ) { if ( all || namespace . test ( handleObj . namespace ) ) { if ( pos == null ) { eventType . splice ( j -- , 1 ) ; }
if ( special . remove ) { special . remove . call ( elem , handleObj ) ; } }
if ( pos != null ) { break ; } } }
if ( eventType . length === 0 || pos != null && eventType . length === 1 ) { if ( ! special . teardown || special . teardown . call ( elem , namespaces ) === false ) { removeEvent ( elem , type , elemData . handle ) ; }
ret = null ; delete events [ type ] ; } }
if ( jQuery . isEmptyObject ( events ) ) { var handle = elemData . handle ; if ( handle ) { handle . elem = null ; }
delete elemData . events ; delete elemData . handle ; if ( jQuery . isEmptyObject ( elemData ) ) { jQuery . removeData ( elem ) ; } } } , trigger : function ( event , data , elem ) { var type = event . type || event , bubbling = arguments [ 3 ] ; if ( ! bubbling ) { event = typeof event === "object" ? event [ expando ] ? event : jQuery . extend ( jQuery . Event ( type ) , event ) : jQuery . Event ( type ) ; if ( type . indexOf ( "!" ) >= 0 ) { event . type = type = type . slice ( 0 , - 1 ) ; event . exclusive = true ; }
if ( ! elem ) { event . stopPropagation ( ) ; if ( jQuery . event . global [ type ] ) { jQuery . each ( jQuery . cache , function ( ) { if ( this . events && this . events [ type ] ) { jQuery . event . trigger ( event , data , this . handle . elem ) ; } } ) ; } }
if ( ! elem || elem . nodeType === 3 || elem . nodeType === 8 ) { return undefined ; }
event . result = undefined ; event . target = elem ; data = jQuery . makeArray ( data ) ; data . unshift ( event ) ; }
event . currentTarget = elem ; var handle = jQuery . data ( elem , "handle" ) ; if ( handle ) { handle . apply ( elem , data ) ; }
var parent = elem . parentNode || elem . ownerDocument ; try { if ( ! ( elem && elem . nodeName && jQuery . noData [ elem . nodeName . toLowerCase ( ) ] ) ) { if ( elem [ "on" + type ] && elem [ "on" + type ] . apply ( elem , data ) === false ) { event . result = false ; } } } catch ( e ) { }
if ( ! event . isPropagationStopped ( ) && parent ) { jQuery . event . trigger ( event , data , parent , true ) ; } else if ( ! event . isDefaultPrevented ( ) ) { var target = event . target , old , isClick = jQuery . nodeName ( target , "a" ) && type === "click" , special = jQuery . event . special [ type ] || { } ; if ( ( ! special . _default || special . _default . call ( elem , event ) === false ) && ! isClick && ! ( target && target . nodeName && jQuery . noData [ target . nodeName . toLowerCase ( ) ] ) ) { try { if ( target [ type ] ) { old = target [ "on" + type ] ; if ( old ) { target [ "on" + type ] = null ; }
jQuery . event . triggered = true ; target [ type ] ( ) ; } } catch ( e ) { }
if ( old ) { target [ "on" + type ] = old ; }
jQuery . event . triggered = false ; } } } , handle : function ( event ) { var all , handlers , namespaces , namespace , events ; event = arguments [ 0 ] = jQuery . event . fix ( event || window . event ) ; event . currentTarget = this ; all = event . type . indexOf ( "." ) < 0 && ! event . exclusive ; if ( ! all ) { namespaces = event . type . split ( "." ) ; event . type = namespaces . shift ( ) ; namespace = new RegExp ( "(^|\\.)" + namespaces . slice ( 0 ) . sort ( ) . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) ; }
var events = jQuery . data ( this , "events" ) , handlers = events [ event . type ] ; if ( events && handlers ) { handlers = handlers . slice ( 0 ) ; for ( var j = 0 , l = handlers . length ; j < l ; j ++ ) { var handleObj = handlers [ j ] ; if ( all || namespace . test ( handleObj . namespace ) ) { event . handler = handleObj . handler ; event . data = handleObj . data ; event . handleObj = handleObj ; var ret = handleObj . handler . apply ( this , arguments ) ; if ( ret !== undefined ) { event . result = ret ; if ( ret === false ) { event . preventDefault ( ) ; event . stopPropagation ( ) ; } }
if ( event . isImmediatePropagationStopped ( ) ) { break ; } } } }
return event . result ; } , props : "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which" . split ( " " ) , fix : function ( event ) { if ( event [ expando ] ) { return event ; }
var originalEvent = event ; event = jQuery . Event ( originalEvent ) ; for ( var i = this . props . length , prop ; i ; ) { prop = this . props [ -- i ] ; event [ prop ] = originalEvent [ prop ] ; }
if ( ! event . target ) { event . target = event . srcElement || document ; }
if ( event . target . nodeType === 3 ) { event . target = event . target . parentNode ; }
if ( ! event . relatedTarget && event . fromElement ) { event . relatedTarget = event . fromElement === event . target ? event . toElement : event . fromElement ; }
if ( event . pageX == null && event . clientX != null ) { var doc = document . documentElement , body = document . body ; event . pageX = event . clientX + ( doc && doc . scrollLeft || body && body . scrollLeft || 0 ) - ( doc && doc . clientLeft || body && body . clientLeft || 0 ) ; event . pageY = event . clientY + ( doc && doc . scrollTop || body && body . scrollTop || 0 ) - ( doc && doc . clientTop || body && body . clientTop || 0 ) ; }
if ( ! event . which && ( ( event . charCode || event . charCode === 0 ) ? event . charCode : event . keyCode ) ) { event . which = event . charCode || event . keyCode ; }
if ( ! event . metaKey && event . ctrlKey ) { event . metaKey = event . ctrlKey ; }
if ( ! event . which && event . button !== undefined ) { event . which = ( event . button & 1 ? 1 : ( event . button & 2 ? 3 : ( event . button & 4 ? 2 : 0 ) ) ) ; }
return event ; } , guid : 1E8 , proxy : jQuery . proxy , special : { ready : { setup : jQuery . bindReady , teardown : jQuery . noop } , live : { add : function ( handleObj ) { jQuery . event . add ( this , handleObj . origType , jQuery . extend ( { } , handleObj , { handler : liveHandler } ) ) ; } , remove : function ( handleObj ) { var remove = true , type = handleObj . origType . replace ( rnamespaces , "" ) ; jQuery . each ( jQuery . data ( this , "events" ) . live || [ ] , function ( ) { if ( type === this . origType . replace ( rnamespaces , "" ) ) { remove = false ; return false ; } } ) ; if ( remove ) { jQuery . event . remove ( this , handleObj . origType , liveHandler ) ; } } } , beforeunload : { setup : function ( data , namespaces , eventHandle ) { if ( this . setInterval ) { this . onbeforeunload = eventHandle ; }
return false ; } , teardown : function ( namespaces , eventHandle ) { if ( this . onbeforeunload === eventHandle ) { this . onbeforeunload = null ; } } } } } ; var removeEvent = document . removeEventListener ? function ( elem , type , handle ) { elem . removeEventListener ( type , handle , false ) ; } : function ( elem , type , handle ) { elem . detachEvent ( "on" + type , handle ) ; } ; jQuery . Event = function ( src ) { if ( ! this . preventDefault ) { return new jQuery . Event ( src ) ; }
if ( src && src . type ) { this . originalEvent = src ; this . type = src . type ; } else { this . type = src ; }
this . timeStamp = now ( ) ; this [ expando ] = true ; } ; function returnFalse ( ) { return false ; }
function returnTrue ( ) { return true ; }
jQuery . Event . prototype = { preventDefault : function ( ) { this . isDefaultPrevented = returnTrue ; var e = this . originalEvent ; if ( ! e ) { return ; }
if ( e . preventDefault ) { e . preventDefault ( ) ; }
e . returnValue = false ; } , stopPropagation : function ( ) { this . isPropagationStopped = returnTrue ; var e = this . originalEvent ; if ( ! e ) { return ; }
if ( e . stopPropagation ) { e . stopPropagation ( ) ; }
e . cancelBubble = true ; } , stopImmediatePropagation : function ( ) { this . isImmediatePropagationStopped = returnTrue ; this . stopPropagation ( ) ; } , isDefaultPrevented : returnFalse , isPropagationStopped : returnFalse , isImmediatePropagationStopped : returnFalse } ; var withinElement = function ( event ) { var parent = event . relatedTarget ; try { while ( parent && parent !== this ) { parent = parent . parentNode ; }
if ( parent !== this ) { event . type = event . data ; jQuery . event . handle . apply ( this , arguments ) ; } } catch ( e ) { } } , delegate = function ( event ) { event . type = event . data ; jQuery . event . handle . apply ( this , arguments ) ; } ; jQuery . each ( { mouseenter : "mouseover" , mouseleave : "mouseout" } , function ( orig , fix ) { jQuery . event . special [ orig ] = { setup : function ( data ) { jQuery . event . add ( this , fix , data && data . selector ? delegate : withinElement , orig ) ; } , teardown : function ( data ) { jQuery . event . remove ( this , fix , data && data . selector ? delegate : withinElement ) ; } } ; } ) ; if ( ! jQuery . support . submitBubbles ) { jQuery . event . special . submit = { setup : function ( data , namespaces ) { if ( this . nodeName . toLowerCase ( ) !== "form" ) { jQuery . event . add ( this , "click.specialSubmit" , function ( e ) { var elem = e . target , type = elem . type ; if ( ( type === "submit" || type === "image" ) && jQuery ( elem ) . closest ( "form" ) . length ) { return trigger ( "submit" , this , arguments ) ; } } ) ; jQuery . event . add ( this , "keypress.specialSubmit" , function ( e ) { var elem = e . target , type = elem . type ; if ( ( type === "text" || type === "password" ) && jQuery ( elem ) . closest ( "form" ) . length && e . keyCode === 13 ) { return trigger ( "submit" , this , arguments ) ; } } ) ; } else { return false ; } } , teardown : function ( namespaces ) { jQuery . event . remove ( this , ".specialSubmit" ) ; } } ; }
if ( ! jQuery . support . changeBubbles ) { var formElems = /textarea|input|select/i , changeFilters , getVal = function ( elem ) { var type = elem . type , val = elem . value ; if ( type === "radio" || type === "checkbox" ) { val = elem . checked ; } else if ( type === "select-multiple" ) { val = elem . selectedIndex > - 1 ? jQuery . map ( elem . options , function ( elem ) { return elem . selected ; } ) . join ( "-" ) : "" ; } else if ( elem . nodeName . toLowerCase ( ) === "select" ) { val = elem . selectedIndex ; }
return val ; } , testChange = function testChange ( e ) { var elem = e . target , data , val ; if ( ! formElems . test ( elem . nodeName ) || elem . readOnly ) { return ; }
data = jQuery . data ( elem , "_change_data" ) ; val = getVal ( elem ) ; if ( e . type !== "focusout" || elem . type !== "radio" ) { jQuery . data ( elem , "_change_data" , val ) ; }
if ( data === undefined || val === data ) { return ; }
if ( data != null || val ) { e . type = "change" ; return jQuery . event . trigger ( e , arguments [ 1 ] , elem ) ; } } ; jQuery . event . special . change = { filters : { focusout : testChange , click : function ( e ) { var elem = e . target , type = elem . type ; if ( type === "radio" || type === "checkbox" || elem . nodeName . toLowerCase ( ) === "select" ) { return testChange . call ( this , e ) ; } } , keydown : function ( e ) { var elem = e . target , type = elem . type ; if ( ( e . keyCode === 13 && elem . nodeName . toLowerCase ( ) !== "textarea" ) || ( e . keyCode === 32 && ( type === "checkbox" || type === "radio" ) ) || type === "select-multiple" ) { return testChange . call ( this , e ) ; } } , beforeactivate : function ( e ) { var elem = e . target ; jQuery . data ( elem , "_change_data" , getVal ( elem ) ) ; } } , setup : function ( data , namespaces ) { if ( this . type === "file" ) { return false ; }
for ( var type in changeFilters ) { jQuery . event . add ( this , type + ".specialChange" , changeFilters [ type ] ) ; }
return formElems . test ( this . nodeName ) ; } , teardown : function ( namespaces ) { jQuery . event . remove ( this , ".specialChange" ) ; return formElems . test ( this . nodeName ) ; } } ; changeFilters = jQuery . event . special . change . filters ; }
function trigger ( type , elem , args ) { args [ 0 ] . type = type ; return jQuery . event . handle . apply ( elem , args ) ; }
if ( document . addEventListener ) { jQuery . each ( { focus : "focusin" , blur : "focusout" } , function ( orig , fix ) { jQuery . event . special [ fix ] = { setup : function ( ) { this . addEventListener ( orig , handler , true ) ; } , teardown : function ( ) { this . removeEventListener ( orig , handler , true ) ; } } ; function handler ( e ) { e = jQuery . event . fix ( e ) ; e . type = fix ; return jQuery . event . handle . call ( this , e ) ; } } ) ; }
jQuery . each ( [ "bind" , "one" ] , function ( i , name ) { jQuery . fn [ name ] = function ( type , data , fn ) { if ( typeof type === "object" ) { for ( var key in type ) { this [ name ] ( key , data , type [ key ] , fn ) ; }
return this ; }
if ( jQuery . isFunction ( data ) ) { fn = data ; data = undefined ; }
var handler = name === "one" ? jQuery . proxy ( fn , function ( event ) { jQuery ( this ) . unbind ( event , handler ) ; return fn . apply ( this , arguments ) ; } ) : fn ; if ( type === "unload" && name !== "one" ) { this . one ( type , data , fn ) ; } else { for ( var i = 0 , l = this . length ; i < l ; i ++ ) { jQuery . event . add ( this [ i ] , type , handler , data ) ; } }
return this ; } ; } ) ; jQuery . fn . extend ( { unbind : function ( type , fn ) { if ( typeof type === "object" && ! type . preventDefault ) { for ( var key in type ) { this . unbind ( key , type [ key ] ) ; } } else { for ( var i = 0 , l = this . length ; i < l ; i ++ ) { jQuery . event . remove ( this [ i ] , type , fn ) ; } }
return this ; } , delegate : function ( selector , types , data , fn ) { return this . live ( types , data , fn , selector ) ; } , undelegate : function ( selector , types , fn ) { if ( arguments . length === 0 ) { return this . unbind ( "live" ) ; } else { return this . die ( types , null , fn , selector ) ; } } , trigger : function ( type , data ) { return this . each ( function ( ) { jQuery . event . trigger ( type , data , this ) ; } ) ; } , triggerHandler : function ( type , data ) { if ( this [ 0 ] ) { var event = jQuery . Event ( type ) ; event . preventDefault ( ) ; event . stopPropagation ( ) ; jQuery . event . trigger ( event , data , this [ 0 ] ) ; return event . result ; } } , toggle : function ( fn ) { var args = arguments , i = 1 ; while ( i < args . length ) { jQuery . proxy ( fn , args [ i ++ ] ) ; }
return this . click ( jQuery . proxy ( fn , function ( event ) { var lastToggle = ( jQuery . data ( this , "lastToggle" + fn . guid ) || 0 ) % i ; jQuery . data ( this , "lastToggle" + fn . guid , lastToggle + 1 ) ; event . preventDefault ( ) ; return args [ lastToggle ] . apply ( this , arguments ) || false ; } ) ) ; } , hover : function ( fnOver , fnOut ) { return this . mouseenter ( fnOver ) . mouseleave ( fnOut || fnOver ) ; } } ) ; var liveMap = { focus : "focusin" , blur : "focusout" , mouseenter : "mouseover" , mouseleave : "mouseout" } ; jQuery . each ( [ "live" , "die" ] , function ( i , name ) { jQuery . fn [ name ] = function ( types , data , fn , origSelector ) { var type , i = 0 , match , namespaces , preType , selector = origSelector || this . selector , context = origSelector ? this : jQuery ( this . context ) ; if ( jQuery . isFunction ( data ) ) { fn = data ; data = undefined ; }
types = ( types || "" ) . split ( " " ) ; while ( ( type = types [ i ++ ] ) != null ) { match = rnamespaces . exec ( type ) ; namespaces = "" ; if ( match ) { namespaces = match [ 0 ] ; type = type . replace ( rnamespaces , "" ) ; }
if ( type === "hover" ) { types . push ( "mouseenter" + namespaces , "mouseleave" + namespaces ) ; continue ; }
preType = type ; if ( type === "focus" || type === "blur" ) { types . push ( liveMap [ type ] + namespaces ) ; type = type + namespaces ; } else { type = ( liveMap [ type ] || type ) + namespaces ; }
if ( name === "live" ) { context . each ( function ( ) { jQuery . event . add ( this , liveConvert ( type , selector ) , { data : data , selector : selector , handler : fn , origType : type , origHandler : fn , preType : preType } ) ; } ) ; } else { context . unbind ( liveConvert ( type , selector ) , fn ) ; } }
return this ; } } ) ; function liveHandler ( event ) { var stop , elems = [ ] , selectors = [ ] , args = arguments , related , match , handleObj , elem , j , i , l , data , events = jQuery . data ( this , "events" ) ; if ( event . liveFired === this || ! events || ! events . live || event . button && event . type === "click" ) { return ; }
event . liveFired = this ; var live = events . live . slice ( 0 ) ; for ( j = 0 ; j < live . length ; j ++ ) { handleObj = live [ j ] ; if ( handleObj . origType . replace ( rnamespaces , "" ) === event . type ) { selectors . push ( handleObj . selector ) ; } else { live . splice ( j -- , 1 ) ; } }
match = jQuery ( event . target ) . closest ( selectors , event . currentTarget ) ; for ( i = 0 , l = match . length ; i < l ; i ++ ) { for ( j = 0 ; j < live . length ; j ++ ) { handleObj = live [ j ] ; if ( match [ i ] . selector === handleObj . selector ) { elem = match [ i ] . elem ; related = null ; if ( handleObj . preType === "mouseenter" || handleObj . preType === "mouseleave" ) { related = jQuery ( event . relatedTarget ) . closest ( handleObj . selector ) [ 0 ] ; }
if ( ! related || related !== elem ) { elems . push ( { elem : elem , handleObj : handleObj } ) ; } } } }
for ( i = 0 , l = elems . length ; i < l ; i ++ ) { match = elems [ i ] ; event . currentTarget = match . elem ; event . data = match . handleObj . data ; event . handleObj = match . handleObj ; if ( match . handleObj . origHandler . apply ( match . elem , args ) === false ) { stop = false ; break ; } }
return stop ; }
function liveConvert ( type , selector ) { return "live." + ( type && type !== "*" ? type + "." : "" ) + selector . replace ( /\./g , "`" ) . replace ( / /g , "&" ) ; }
jQuery . each ( ( "blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error" ) . split ( " " ) , function ( i , name ) { jQuery . fn [ name ] = function ( fn ) { return fn ? this . bind ( name , fn ) : this . trigger ( name ) ; } ; if ( jQuery . attrFn ) { jQuery . attrFn [ name ] = true ; } } ) ; if ( window . attachEvent && ! window . addEventListener ) { window . attachEvent ( "onunload" , function ( ) { for ( var id in jQuery . cache ) { if ( jQuery . cache [ id ] . handle ) { try { jQuery . event . remove ( jQuery . cache [ id ] . handle . elem ) ; } catch ( e ) { } } } } ) ; }
/ *
* Sizzle CSS Selector Engine - v1 . 0
* Copyright 2009 , The Dojo Foundation
* Released under the MIT , BSD , and GPL Licenses .
* More information : http : //sizzlejs.com/
* /
( function ( ) { var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g , done = 0 , toString = Object . prototype . toString , hasDuplicate = false , baseHasDuplicate = true ; [ 0 , 0 ] . sort ( function ( ) { baseHasDuplicate = false ; return 0 ; } ) ; var Sizzle = function ( selector , context , results , seed ) { results = results || [ ] ; var origContext = context = context || document ; if ( context . nodeType !== 1 && context . nodeType !== 9 ) { return [ ] ; }
if ( ! selector || typeof selector !== "string" ) { return results ; }
var parts = [ ] , m , set , checkSet , extra , prune = true , contextXML = isXML ( context ) , soFar = selector ; while ( ( chunker . exec ( "" ) , m = chunker . exec ( soFar ) ) !== null ) { soFar = m [ 3 ] ; parts . push ( m [ 1 ] ) ; if ( m [ 2 ] ) { extra = m [ 3 ] ; break ; } }
if ( parts . length > 1 && origPOS . exec ( selector ) ) { if ( parts . length === 2 && Expr . relative [ parts [ 0 ] ] ) { set = posProcess ( parts [ 0 ] + parts [ 1 ] , context ) ; } else { set = Expr . relative [ parts [ 0 ] ] ? [ context ] : Sizzle ( parts . shift ( ) , context ) ; while ( parts . length ) { selector = parts . shift ( ) ; if ( Expr . relative [ selector ] ) { selector += parts . shift ( ) ; }
set = posProcess ( selector , set ) ; } } } else { if ( ! seed && parts . length > 1 && context . nodeType === 9 && ! contextXML && Expr . match . ID . test ( parts [ 0 ] ) && ! Expr . match . ID . test ( parts [ parts . length - 1 ] ) ) { var ret = Sizzle . find ( parts . shift ( ) , context , contextXML ) ; context = ret . expr ? Sizzle . filter ( ret . expr , ret . set ) [ 0 ] : ret . set [ 0 ] ; }
if ( context ) { var ret = seed ? { expr : parts . pop ( ) , set : makeArray ( seed ) } : Sizzle . find ( parts . pop ( ) , parts . length === 1 && ( parts [ 0 ] === "~" || parts [ 0 ] === "+" ) && context . parentNode ? context . parentNode : context , contextXML ) ; set = ret . expr ? Sizzle . filter ( ret . expr , ret . set ) : ret . set ; if ( parts . length > 0 ) { checkSet = makeArray ( set ) ; } else { prune = false ; }
while ( parts . length ) { var cur = parts . pop ( ) , pop = cur ; if ( ! Expr . relative [ cur ] ) { cur = "" ; } else { pop = parts . pop ( ) ; }
if ( pop == null ) { pop = context ; }
Expr . relative [ cur ] ( checkSet , pop , contextXML ) ; } } else { checkSet = parts = [ ] ; } }
if ( ! checkSet ) { checkSet = set ; }
if ( ! checkSet ) { Sizzle . error ( cur || selector ) ; }
if ( toString . call ( checkSet ) === "[object Array]" ) { if ( ! prune ) { results . push . apply ( results , checkSet ) ; } else if ( context && context . nodeType === 1 ) { for ( var i = 0 ; checkSet [ i ] != null ; i ++ ) { if ( checkSet [ i ] && ( checkSet [ i ] === true || checkSet [ i ] . nodeType === 1 && contains ( context , checkSet [ i ] ) ) ) { results . push ( set [ i ] ) ; } } } else { for ( var i = 0 ; checkSet [ i ] != null ; i ++ ) { if ( checkSet [ i ] && checkSet [ i ] . nodeType === 1 ) { results . push ( set [ i ] ) ; } } } } else { makeArray ( checkSet , results ) ; }
if ( extra ) { Sizzle ( extra , origContext , results , seed ) ; Sizzle . uniqueSort ( results ) ; }
return results ; } ; Sizzle . uniqueSort = function ( results ) { if ( sortOrder ) { hasDuplicate = baseHasDuplicate ; results . sort ( sortOrder ) ; if ( hasDuplicate ) { for ( var i = 1 ; i < results . length ; i ++ ) { if ( results [ i ] === results [ i - 1 ] ) { results . splice ( i -- , 1 ) ; } } } }
return results ; } ; Sizzle . matches = function ( expr , set ) { return Sizzle ( expr , null , null , set ) ; } ; Sizzle . find = function ( expr , context , isXML ) { var set , match ; if ( ! expr ) { return [ ] ; }
for ( var i = 0 , l = Expr . order . length ; i < l ; i ++ ) { var type = Expr . order [ i ] , match ; if ( ( match = Expr . leftMatch [ type ] . exec ( expr ) ) ) { var left = match [ 1 ] ; match . splice ( 1 , 1 ) ; if ( left . substr ( left . length - 1 ) !== "\\" ) { match [ 1 ] = ( match [ 1 ] || "" ) . replace ( /\\/g , "" ) ; set = Expr . find [ type ] ( match , context , isXML ) ; if ( set != null ) { expr = expr . replace ( Expr . match [ type ] , "" ) ; break ; } } } }
if ( ! set ) { set = context . getElementsByTagName ( "*" ) ; }
return { set : set , expr : expr } ; } ; Sizzle . filter = function ( expr , set , inplace , not ) { var old = expr , result = [ ] , curLoop = set , match , anyFound , isXMLFilter = set && set [ 0 ] && isXML ( set [ 0 ] ) ; while ( expr && set . length ) { for ( var type in Expr . filter ) { if ( ( match = Expr . leftMatch [ type ] . exec ( expr ) ) != null && match [ 2 ] ) { var filter = Expr . filter [ type ] , found , item , left = match [ 1 ] ; anyFound = false ; match . splice ( 1 , 1 ) ; if ( left . substr ( left . length - 1 ) === "\\" ) { continue ; }
if ( curLoop === result ) { result = [ ] ; }
if ( Expr . preFilter [ type ] ) { match = Expr . preFilter [ type ] ( match , curLoop , inplace , result , not , isXMLFilter ) ; if ( ! match ) { anyFound = found = true ; } else if ( match === true ) { continue ; } }
if ( match ) { for ( var i = 0 ; ( item = curLoop [ i ] ) != null ; i ++ ) { if ( item ) { found = filter ( item , match , i , curLoop ) ; var pass = not ^ ! ! found ; if ( inplace && found != null ) { if ( pass ) { anyFound = true ; } else { curLoop [ i ] = false ; } } else if ( pass ) { result . push ( item ) ; anyFound = true ; } } } }
if ( found !== undefined ) { if ( ! inplace ) { curLoop = result ; }
expr = expr . replace ( Expr . match [ type ] , "" ) ; if ( ! anyFound ) { return [ ] ; }
break ; } } }
if ( expr === old ) { if ( anyFound == null ) { Sizzle . error ( expr ) ; } else { break ; } }
old = expr ; }
return curLoop ; } ; Sizzle . error = function ( msg ) { throw "Syntax error, unrecognized expression: " + msg ; } ; var Expr = Sizzle . selectors = { order : [ "ID" , "NAME" , "TAG" ] , match : { ID : /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/ , CLASS : /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/ , NAME : /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/ , ATTR : /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/ , TAG : /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/ , CHILD : /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/ , POS : /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/ , PSEUDO : /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ } , leftMatch : { } , attrMap : { "class" : "className" , "for" : "htmlFor" } , attrHandle : { href : function ( elem ) { return elem . getAttribute ( "href" ) ; } } , relative : { "+" : function ( checkSet , part ) { var isPartStr = typeof part === "string" , isTag = isPartStr && ! /\W/ . test ( part ) , isPartStrNotTag = isPartStr && ! isTag ; if ( isTag ) { part = part . toLowerCase ( ) ; }
for ( var i = 0 , l = checkSet . length , elem ; i < l ; i ++ ) { if ( ( elem = checkSet [ i ] ) ) { while ( ( elem = elem . previousSibling ) && elem . nodeType !== 1 ) { }
checkSet [ i ] = isPartStrNotTag || elem && elem . nodeName . toLowerCase ( ) === part ? elem || false : elem === part ; } }
if ( isPartStrNotTag ) { Sizzle . filter ( part , checkSet , true ) ; } } , ">" : function ( checkSet , part ) { var isPartStr = typeof part === "string" ; if ( isPartStr && ! /\W/ . test ( part ) ) { part = part . toLowerCase ( ) ; for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) { var elem = checkSet [ i ] ; if ( elem ) { var parent = elem . parentNode ; checkSet [ i ] = parent . nodeName . toLowerCase ( ) === part ? parent : false ; } } } else { for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) { var elem = checkSet [ i ] ; if ( elem ) { checkSet [ i ] = isPartStr ? elem . parentNode : elem . parentNode === part ; } }
if ( isPartStr ) { Sizzle . filter ( part , checkSet , true ) ; } } } , "" : function ( checkSet , part , isXML ) { var doneName = done ++ , checkFn = dirCheck ; if ( typeof part === "string" && ! /\W/ . test ( part ) ) { var nodeCheck = part = part . toLowerCase ( ) ; checkFn = dirNodeCheck ; }
checkFn ( "parentNode" , part , doneName , checkSet , nodeCheck , isXML ) ; } , "~" : function ( checkSet , part , isXML ) { var doneName = done ++ , checkFn = dirCheck ; if ( typeof part === "string" && ! /\W/ . test ( part ) ) { var nodeCheck = part = part . toLowerCase ( ) ; checkFn = dirNodeCheck ; }
checkFn ( "previousSibling" , part , doneName , checkSet , nodeCheck , isXML ) ; } } , find : { ID : function ( match , context , isXML ) { if ( typeof context . getElementById !== "undefined" && ! isXML ) { var m = context . getElementById ( match [ 1 ] ) ; return m ? [ m ] : [ ] ; } } , NAME : function ( match , context ) { if ( typeof context . getElementsByName !== "undefined" ) { var ret = [ ] , results = context . getElementsByName ( match [ 1 ] ) ; for ( var i = 0 , l = results . length ; i < l ; i ++ ) { if ( results [ i ] . getAttribute ( "name" ) === match [ 1 ] ) { ret . push ( results [ i ] ) ; } }
return ret . length === 0 ? null : ret ; } } , TAG : function ( match , context ) { return context . getElementsByTagName ( match [ 1 ] ) ; } } , preFilter : { CLASS : function ( match , curLoop , inplace , result , not , isXML ) { match = " " + match [ 1 ] . replace ( /\\/g , "" ) + " " ; if ( isXML ) { return match ; }
for ( var i = 0 , elem ; ( elem = curLoop [ i ] ) != null ; i ++ ) { if ( elem ) { if ( not ^ ( elem . className && ( " " + elem . className + " " ) . replace ( /[\t\n]/g , " " ) . indexOf ( match ) >= 0 ) ) { if ( ! inplace ) { result . push ( elem ) ; } } else if ( inplace ) { curLoop [ i ] = false ; } } }
return false ; } , ID : function ( match ) { return match [ 1 ] . replace ( /\\/g , "" ) ; } , TAG : function ( match , curLoop ) { return match [ 1 ] . toLowerCase ( ) ; } , CHILD : function ( match ) { if ( match [ 1 ] === "nth" ) { var test = /(-?)(\d*)n((?:\+|-)?\d*)/ . exec ( match [ 2 ] === "even" && "2n" || match [ 2 ] === "odd" && "2n+1" || ! /\D/ . test ( match [ 2 ] ) && "0n+" + match [ 2 ] || match [ 2 ] ) ; match [ 2 ] = ( test [ 1 ] + ( test [ 2 ] || 1 ) ) - 0 ; match [ 3 ] = test [ 3 ] - 0 ; }
match [ 0 ] = done ++ ; return match ; } , ATTR : function ( match , curLoop , inplace , result , not , isXML ) { var name = match [ 1 ] . replace ( /\\/g , "" ) ; if ( ! isXML && Expr . attrMap [ name ] ) { match [ 1 ] = Expr . attrMap [ name ] ; }
if ( match [ 2 ] === "~=" ) { match [ 4 ] = " " + match [ 4 ] + " " ; }
return match ; } , PSEUDO : function ( match , curLoop , inplace , result , not ) { if ( match [ 1 ] === "not" ) { if ( ( chunker . exec ( match [ 3 ] ) || "" ) . length > 1 || /^\w/ . test ( match [ 3 ] ) ) { match [ 3 ] = Sizzle ( match [ 3 ] , null , null , curLoop ) ; } else { var ret = Sizzle . filter ( match [ 3 ] , curLoop , inplace , true ^ not ) ; if ( ! inplace ) { result . push . apply ( result , ret ) ; }
return false ; } } else if ( Expr . match . POS . test ( match [ 0 ] ) || Expr . match . CHILD . test ( match [ 0 ] ) ) { return true ; }
return match ; } , POS : function ( match ) { match . unshift ( true ) ; return match ; } } , filters : { enabled : function ( elem ) { return elem . disabled === false && elem . type !== "hidden" ; } , disabled : function ( elem ) { return elem . disabled === true ; } , checked : function ( elem ) { return elem . checked === true ; } , selected : function ( elem ) { elem . parentNode . selectedIndex ; return elem . selected === true ; } , parent : function ( elem ) { return ! ! elem . firstChild ; } , empty : function ( elem ) { return ! elem . firstChild ; } , has : function ( elem , i , match ) { return ! ! Sizzle ( match [ 3 ] , elem ) . length ; } , header : function ( elem ) { return /h\d/i . test ( elem . nodeName ) ; } , text : function ( elem ) { return "text" === elem . type ; } , radio : function ( elem ) { return "radio" === elem . type ; } , checkbox : function ( elem ) { return "checkbox" === elem . type ; } , file : function ( elem ) { return "file" === elem . type ; } , password : function ( elem ) { return "password" === elem . type ; } , submit : function ( elem ) { return "submit" === elem . type ; } , image : function ( elem ) { return "image" === elem . type ; } , reset : function ( elem ) { return "reset" === elem . type ; } , button : function ( elem ) { return "button" === elem . type || elem . nodeName . toLowerCase ( ) === "button" ; } , input : function ( elem ) { return /input|select|textarea|button/i . test ( elem . nodeName ) ; } } , setFilters : { first : function ( elem , i ) { return i === 0 ; } , last : function ( elem , i , match , array ) { return i === array . length - 1 ; } , even : function ( elem , i ) { return i % 2 === 0 ; } , odd : function ( elem , i ) { return i % 2 === 1 ; } , lt : function ( elem , i , match ) { return i < match [ 3 ] - 0 ; } , gt : function ( elem , i , match ) { return i > match [ 3 ] - 0 ; } , nth : function ( elem , i , match ) { return match [ 3 ] - 0 === i ; } , eq : function ( elem , i , match ) { return match [ 3 ] - 0 === i ; } } , filter : { PSEUDO : function ( elem , match , i , array ) { var name = match [ 1 ] , filter = Expr . filters [ name ] ; if ( filter ) { return filter ( elem , i , match , array ) ; } else if ( name === "contains" ) { return ( elem . textContent || elem . innerText || getText ( [ elem ] ) || "" ) . indexOf ( match [ 3 ] ) >= 0 ; } else if ( name === "not" ) { var not = match [ 3 ] ; for ( var i = 0 , l = not . length ; i < l ; i ++ ) { if ( not [ i ] === elem ) { return false ; } }
return true ; } else { Sizzle . error ( "Syntax error, unrecognized expression: " + name ) ; } } , CHILD : function ( elem , match ) { var type = match [ 1 ] , node = elem ; switch ( type ) { case 'only' : case 'first' : while ( ( node = node . previousSibling ) ) { if ( node . nodeType === 1 ) { return false ; } }
if ( type === "first" ) { return true ; }
node = elem ; case 'last' : while ( ( node = node . nextSibling ) ) { if ( node . nodeType === 1 ) { return false ; } }
return true ; case 'nth' : var first = match [ 2 ] , last = match [ 3 ] ; if ( first === 1 && last === 0 ) { return true ; }
var doneName = match [ 0 ] , parent = elem . parentNode ; if ( parent && ( parent . sizcache !== doneName || ! elem . nodeIndex ) ) { var count = 0 ; for ( node = parent . firstChild ; node ; node = node . nextSibling ) { if ( node . nodeType === 1 ) { node . nodeIndex = ++ count ; } }
parent . sizcache = doneName ; }
var diff = elem . nodeIndex - last ; if ( first === 0 ) { return diff === 0 ; } else { return ( diff % first === 0 && diff / first >= 0 ) ; } } } , ID : function ( elem , match ) { return elem . nodeType === 1 && elem . getAttribute ( "id" ) === match ; } , TAG : function ( elem , match ) { return ( match === "*" && elem . nodeType === 1 ) || elem . nodeName . toLowerCase ( ) === match ; } , CLASS : function ( elem , match ) { return ( " " + ( elem . className || elem . getAttribute ( "class" ) ) + " " ) . indexOf ( match ) > - 1 ; } , ATTR : function ( elem , match ) { var name = match [ 1 ] , result = Expr . attrHandle [ name ] ? Expr . attrHandle [ name ] ( elem ) : elem [ name ] != null ? elem [ name ] : elem . getAttribute ( name ) , value = result + "" , type = match [ 2 ] , check = match [ 4 ] ; return result == null ? type === "!=" : type === "=" ? value === check : type === "*=" ? value . indexOf ( check ) >= 0 : type === "~=" ? ( " " + value + " " ) . indexOf ( check ) >= 0 : ! check ? value && result !== false : type === "!=" ? value !== check : type === "^=" ? value . indexOf ( check ) === 0 : type === "$=" ? value . substr ( value . length - check . length ) === check : type === "|=" ? value === check || value . substr ( 0 , check . length + 1 ) === check + "-" : false ; } , POS : function ( elem , match , i , array ) { var name = match [ 2 ] , filter = Expr . setFilters [ name ] ; if ( filter ) { return filter ( elem , i , match , array ) ; } } } } ; var origPOS = Expr . match . POS ; for ( var type in Expr . match ) { Expr . match [ type ] = new RegExp ( Expr . match [ type ] . source + /(?![^\[]*\])(?![^\(]*\))/ . source ) ; Expr . leftMatch [ type ] = new RegExp ( /(^(?:.|\r|\n)*?)/ . source + Expr . match [ type ] . source . replace ( /\\(\d+)/g , function ( all , num ) { return "\\" + ( num - 0 + 1 ) ; } ) ) ; }
var makeArray = function ( array , results ) { array = Array . prototype . slice . call ( array , 0 ) ; if ( results ) { results . push . apply ( results , array ) ; return results ; }
return array ; } ; try { Array . prototype . slice . call ( document . documentElement . childNodes , 0 ) [ 0 ] . nodeType ; } catch ( e ) { makeArray = function ( array , results ) { var ret = results || [ ] ; if ( toString . call ( array ) === "[object Array]" ) { Array . prototype . push . apply ( ret , array ) ; } else { if ( typeof array . length === "number" ) { for ( var i = 0 , l = array . length ; i < l ; i ++ ) { ret . push ( array [ i ] ) ; } } else { for ( var i = 0 ; array [ i ] ; i ++ ) { ret . push ( array [ i ] ) ; } } }
return ret ; } ; }
var sortOrder ; if ( document . documentElement . compareDocumentPosition ) { sortOrder = function ( a , b ) { if ( ! a . compareDocumentPosition || ! b . compareDocumentPosition ) { if ( a == b ) { hasDuplicate = true ; }
return a . compareDocumentPosition ? - 1 : 1 ; }
var ret = a . compareDocumentPosition ( b ) & 4 ? - 1 : a === b ? 0 : 1 ; if ( ret === 0 ) { hasDuplicate = true ; }
return ret ; } ; } else if ( "sourceIndex" in document . documentElement ) { sortOrder = function ( a , b ) { if ( ! a . sourceIndex || ! b . sourceIndex ) { if ( a == b ) { hasDuplicate = true ; }
return a . sourceIndex ? - 1 : 1 ; }
var ret = a . sourceIndex - b . sourceIndex ; if ( ret === 0 ) { hasDuplicate = true ; }
return ret ; } ; } else if ( document . createRange ) { sortOrder = function ( a , b ) { if ( ! a . ownerDocument || ! b . ownerDocument ) { if ( a == b ) { hasDuplicate = true ; }
return a . ownerDocument ? - 1 : 1 ; }
var aRange = a . ownerDocument . createRange ( ) , bRange = b . ownerDocument . createRange ( ) ; aRange . setStart ( a , 0 ) ; aRange . setEnd ( a , 0 ) ; bRange . setStart ( b , 0 ) ; bRange . setEnd ( b , 0 ) ; var ret = aRange . compareBoundaryPoints ( Range . START _TO _END , bRange ) ; if ( ret === 0 ) { hasDuplicate = true ; }
return ret ; } ; }
function getText ( elems ) { var ret = "" , elem ; for ( var i = 0 ; elems [ i ] ; i ++ ) { elem = elems [ i ] ; if ( elem . nodeType === 3 || elem . nodeType === 4 ) { ret += elem . nodeValue ; } else if ( elem . nodeType !== 8 ) { ret += getText ( elem . childNodes ) ; } }
return ret ; }
( function ( ) { var form = document . createElement ( "div" ) , id = "script" + ( new Date ) . getTime ( ) ; form . innerHTML = "<a name='" + id + "'/>" ; var root = document . documentElement ; root . insertBefore ( form , root . firstChild ) ; if ( document . getElementById ( id ) ) { Expr . find . ID = function ( match , context , isXML ) { if ( typeof context . getElementById !== "undefined" && ! isXML ) { var m = context . getElementById ( match [ 1 ] ) ; return m ? m . id === match [ 1 ] || typeof m . getAttributeNode !== "undefined" && m . getAttributeNode ( "id" ) . nodeValue === match [ 1 ] ? [ m ] : undefined : [ ] ; } } ; Expr . filter . ID = function ( elem , match ) { var node = typeof elem . getAttributeNode !== "undefined" && elem . getAttributeNode ( "id" ) ; return elem . nodeType === 1 && node && node . nodeValue === match ; } ; }
root . removeChild ( form ) ; root = form = null ; } ) ( ) ; ( function ( ) { var div = document . createElement ( "div" ) ; div . appendChild ( document . createComment ( "" ) ) ; if ( div . getElementsByTagName ( "*" ) . length > 0 ) { Expr . find . TAG = function ( match , context ) { var results = context . getElementsByTagName ( match [ 1 ] ) ; if ( match [ 1 ] === "*" ) { var tmp = [ ] ; for ( var i = 0 ; results [ i ] ; i ++ ) { if ( results [ i ] . nodeType === 1 ) { tmp . push ( results [ i ] ) ; } }
results = tmp ; }
return results ; } ; }
div . innerHTML = "<a href='#'></a>" ; if ( div . firstChild && typeof div . firstChild . getAttribute !== "undefined" && div . firstChild . getAttribute ( "href" ) !== "#" ) { Expr . attrHandle . href = function ( elem ) { return elem . getAttribute ( "href" , 2 ) ; } ; }
div = null ; } ) ( ) ; if ( document . querySelectorAll ) { ( function ( ) { var oldSizzle = Sizzle , div = document . createElement ( "div" ) ; div . innerHTML = "<p class='TEST'></p>" ; if ( div . querySelectorAll && div . querySelectorAll ( ".TEST" ) . length === 0 ) { return ; }
Sizzle = function ( query , context , extra , seed ) { context = context || document ; if ( ! seed && context . nodeType === 9 && ! isXML ( context ) ) { try { return makeArray ( context . querySelectorAll ( query ) , extra ) ; } catch ( e ) { } }
return oldSizzle ( query , context , extra , seed ) ; } ; for ( var prop in oldSizzle ) { Sizzle [ prop ] = oldSizzle [ prop ] ; }
div = null ; } ) ( ) ; }
( function ( ) { var div = document . createElement ( "div" ) ; div . innerHTML = "<div class='test e'></div><div class='test'></div>" ; if ( ! div . getElementsByClassName || div . getElementsByClassName ( "e" ) . length === 0 ) { return ; }
div . lastChild . className = "e" ; if ( div . getElementsByClassName ( "e" ) . length === 1 ) { return ; }
Expr . order . splice ( 1 , 0 , "CLASS" ) ; Expr . find . CLASS = function ( match , context , isXML ) { if ( typeof context . getElementsByClassName !== "undefined" && ! isXML ) { return context . getElementsByClassName ( match [ 1 ] ) ; } } ; div = null ; } ) ( ) ; function dirNodeCheck ( dir , cur , doneName , checkSet , nodeCheck , isXML ) { for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) { var elem = checkSet [ i ] ; if ( elem ) { elem = elem [ dir ] ; var match = false ; while ( elem ) { if ( elem . sizcache === doneName ) { match = checkSet [ elem . sizset ] ; break ; }
if ( elem . nodeType === 1 && ! isXML ) { elem . sizcache = doneName ; elem . sizset = i ; }
if ( elem . nodeName . toLowerCase ( ) === cur ) { match = elem ; break ; }
elem = elem [ dir ] ; }
checkSet [ i ] = match ; } } }
function dirCheck ( dir , cur , doneName , checkSet , nodeCheck , isXML ) { for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) { var elem = checkSet [ i ] ; if ( elem ) { elem = elem [ dir ] ; var match = false ; while ( elem ) { if ( elem . sizcache === doneName ) { match = checkSet [ elem . sizset ] ; break ; }
if ( elem . nodeType === 1 ) { if ( ! isXML ) { elem . sizcache = doneName ; elem . sizset = i ; }
if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true ; break ; } } else if ( Sizzle . filter ( cur , [ elem ] ) . length > 0 ) { match = elem ; break ; } }
elem = elem [ dir ] ; }
checkSet [ i ] = match ; } } }
var contains = document . compareDocumentPosition ? function ( a , b ) { return ! ! ( a . compareDocumentPosition ( b ) & 16 ) ; } : function ( a , b ) { return a !== b && ( a . contains ? a . contains ( b ) : true ) ; } ; var isXML = function ( elem ) { var documentElement = ( elem ? elem . ownerDocument || elem : 0 ) . documentElement ; return documentElement ? documentElement . nodeName !== "HTML" : false ; } ; var posProcess = function ( selector , context ) { var tmpSet = [ ] , later = "" , match , root = context . nodeType ? [ context ] : context ; while ( ( match = Expr . match . PSEUDO . exec ( selector ) ) ) { later += match [ 0 ] ; selector = selector . replace ( Expr . match . PSEUDO , "" ) ; }
selector = Expr . relative [ selector ] ? selector + "*" : selector ; for ( var i = 0 , l = root . length ; i < l ; i ++ ) { Sizzle ( selector , root [ i ] , tmpSet ) ; }
return Sizzle . filter ( later , tmpSet ) ; } ; jQuery . find = Sizzle ; jQuery . expr = Sizzle . selectors ; jQuery . expr [ ":" ] = jQuery . expr . filters ; jQuery . unique = Sizzle . uniqueSort ; jQuery . text = getText ; jQuery . isXMLDoc = isXML ; jQuery . contains = contains ; return ; window . Sizzle = Sizzle ; } ) ( ) ; var runtil = /Until$/ , rparentsprev = /^(?:parents|prevUntil|prevAll)/ , rmultiselector = /,/ , slice = Array . prototype . slice ; var winnow = function ( elements , qualifier , keep ) { if ( jQuery . isFunction ( qualifier ) ) { return jQuery . grep ( elements , function ( elem , i ) { return ! ! qualifier . call ( elem , i , elem ) === keep ; } ) ; } else if ( qualifier . nodeType ) { return jQuery . grep ( elements , function ( elem , i ) { return ( elem === qualifier ) === keep ; } ) ; } else if ( typeof qualifier === "string" ) { var filtered = jQuery . grep ( elements , function ( elem ) { return elem . nodeType === 1 ; } ) ; if ( isSimple . test ( qualifier ) ) { return jQuery . filter ( qualifier , filtered , ! keep ) ; } else { qualifier = jQuery . filter ( qualifier , filtered ) ; } }
return jQuery . grep ( elements , function ( elem , i ) { return ( jQuery . inArray ( elem , qualifier ) >= 0 ) === keep ; } ) ; } ; jQuery . fn . extend ( { find : function ( selector ) { var ret = this . pushStack ( "" , "find" , selector ) , length = 0 ; for ( var i = 0 , l = this . length ; i < l ; i ++ ) { length = ret . length ; jQuery . find ( selector , this [ i ] , ret ) ; if ( i > 0 ) { for ( var n = length ; n < ret . length ; n ++ ) { for ( var r = 0 ; r < length ; r ++ ) { if ( ret [ r ] === ret [ n ] ) { ret . splice ( n -- , 1 ) ; break ; } } } } }
return ret ; } , has : function ( target ) { var targets = jQuery ( target ) ; return this . filter ( function ( ) { for ( var i = 0 , l = targets . length ; i < l ; i ++ ) { if ( jQuery . contains ( this , targets [ i ] ) ) { return true ; } } } ) ; } , not : function ( selector ) { return this . pushStack ( winnow ( this , selector , false ) , "not" , selector ) ; } , filter : function ( selector ) { return this . pushStack ( winnow ( this , selector , true ) , "filter" , selector ) ; } , is : function ( selector ) { return ! ! selector && jQuery . filter ( selector , this ) . length > 0 ; } , closest : function ( selectors , context ) { if ( jQuery . isArray ( selectors ) ) { var ret = [ ] , cur = this [ 0 ] , match , matches = { } , selector ; if ( cur && selectors . length ) { for ( var i = 0 , l = selectors . length ; i < l ; i ++ ) { selector = selectors [ i ] ; if ( ! matches [ selector ] ) { matches [ selector ] = jQuery . expr . match . POS . test ( selector ) ? jQuery ( selector , context || this . context ) : selector ; } }
while ( cur && cur . ownerDocument && cur !== context ) { for ( selector in matches ) { match = matches [ selector ] ; if ( match . jquery ? match . index ( cur ) > - 1 : jQuery ( cur ) . is ( match ) ) { ret . push ( { selector : selector , elem : cur } ) ; delete matches [ selector ] ; } }
cur = cur . parentNode ; } }
return ret ; }
var pos = jQuery . expr . match . POS . test ( selectors ) ? jQuery ( selectors , context || this . context ) : null ; return this . map ( function ( i , cur ) { while ( cur && cur . ownerDocument && cur !== context ) { if ( pos ? pos . index ( cur ) > - 1 : jQuery ( cur ) . is ( selectors ) ) { return cur ; }
cur = cur . parentNode ; }
return null ; } ) ; } , index : function ( elem ) { if ( ! elem || typeof elem === "string" ) { return jQuery . inArray ( this [ 0 ] , elem ? jQuery ( elem ) : this . parent ( ) . children ( ) ) ; }
return jQuery . inArray ( elem . jquery ? elem [ 0 ] : elem , this ) ; } , add : function ( selector , context ) { var set = typeof selector === "string" ? jQuery ( selector , context || this . context ) : jQuery . makeArray ( selector ) , all = jQuery . merge ( this . get ( ) , set ) ; return this . pushStack ( isDisconnected ( set [ 0 ] ) || isDisconnected ( all [ 0 ] ) ? all : jQuery . unique ( all ) ) ; } , andSelf : function ( ) { return this . add ( this . prevObject ) ; } } ) ; function isDisconnected ( node ) { return ! node || ! node . parentNode || node . parentNode . nodeType === 11 ; }
jQuery . each ( { parent : function ( elem ) { var parent = elem . parentNode ; return parent && parent . nodeType !== 11 ? parent : null ; } , parents : function ( elem ) { return jQuery . dir ( elem , "parentNode" ) ; } , parentsUntil : function ( elem , i , until ) { return jQuery . dir ( elem , "parentNode" , until ) ; } , next : function ( elem ) { return jQuery . nth ( elem , 2 , "nextSibling" ) ; } , prev : function ( elem ) { return jQuery . nth ( elem , 2 , "previousSibling" ) ; } , nextAll : function ( elem ) { return jQuery . dir ( elem , "nextSibling" ) ; } , prevAll : function ( elem ) { return jQuery . dir ( elem , "previousSibling" ) ; } , nextUntil : function ( elem , i , until ) { return jQuery . dir ( elem , "nextSibling" , until ) ; } , prevUntil : function ( elem , i , until ) { return jQuery . dir ( elem , "previousSibling" , until ) ; } , siblings : function ( elem ) { return jQuery . sibling ( elem . parentNode . firstChild , elem ) ; } , children : function ( elem ) { return jQuery . sibling ( elem . firstChild ) ; } , contents : function ( elem ) { return jQuery . nodeName ( elem , "iframe" ) ? elem . contentDocument || elem . contentWindow . document : jQuery . makeArray ( elem . childNodes ) ; } } , function ( name , fn ) { jQuery . fn [ name ] = function ( until , selector ) { var ret = jQuery . map ( this , fn , until ) ; if ( ! runtil . test ( name ) ) { selector = until ; }
if ( selector && typeof selector === "string" ) { ret = jQuery . filter ( selector , ret ) ; }
ret = this . length > 1 ? jQuery . unique ( ret ) : ret ; if ( ( this . length > 1 || rmultiselector . test ( selector ) ) && rparentsprev . test ( name ) ) { ret = ret . reverse ( ) ; }
return this . pushStack ( ret , name , slice . call ( arguments ) . join ( "," ) ) ; } ; } ) ; jQuery . extend ( { filter : function ( expr , elems , not ) { if ( not ) { expr = ":not(" + expr + ")" ; }
return jQuery . find . matches ( expr , elems ) ; } , dir : function ( elem , dir , until ) { var matched = [ ] , cur = elem [ dir ] ; while ( cur && cur . nodeType !== 9 && ( until === undefined || cur . nodeType !== 1 || ! jQuery ( cur ) . is ( until ) ) ) { if ( cur . nodeType === 1 ) { matched . push ( cur ) ; }
cur = cur [ dir ] ; }
return matched ; } , nth : function ( cur , result , dir , elem ) { result = result || 1 ; var num = 0 ; for ( ; cur ; cur = cur [ dir ] ) { if ( cur . nodeType === 1 && ++ num === result ) { break ; } }
return cur ; } , sibling : function ( n , elem ) { var r = [ ] ; for ( ; n ; n = n . nextSibling ) { if ( n . nodeType === 1 && n !== elem ) { r . push ( n ) ; } }
return r ; } } ) ; var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g , rleadingWhitespace = /^\s+/ , rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g , rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i , rtagName = /<([\w:]+)/ , rtbody = /<tbody/i , rhtml = /<|&#?\w+;/ , rnocache = /<script|<object|<embed|<option|<style/i , rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i , fcloseTag = function ( all , front , tag ) { return rselfClosing . test ( tag ) ? all : front + "></" + tag + ">" ; } , wrapMap = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , legend : [ 1 , "<fieldset>" , "</fieldset>" ] , thead : [ 1 , "<table>" , "</table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , col : [ 2 , "<table><tbody></tbody><colgroup>" , "</colgroup></table>" ] , area : [ 1 , "<map>" , "</map>" ] , _default : [ 0 , "" , "" ] } ; wrapMap . optgroup = wrapMap . option ; wrapMap . tbody = wrapMap . tfoot = wrapMap . colgroup = wrapMap . caption = wrapMap . thead ; wrapMap . th = wrapMap . td ; if ( ! jQuery . support . htmlSerialize ) { wrapMap . _default = [ 1 , "div<div>" , "</div>" ] ; }
jQuery . fn . extend ( { text : function ( text ) { if ( jQuery . isFunction ( text ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; self . text ( text . call ( this , i , self . text ( ) ) ) ; } ) ; }
if ( typeof text !== "object" && text !== undefined ) { return this . empty ( ) . append ( ( this [ 0 ] && this [ 0 ] . ownerDocument || document ) . createTextNode ( text ) ) ; }
return jQuery . text ( this ) ; } , wrapAll : function ( html ) { if ( jQuery . isFunction ( html ) ) { return this . each ( function ( i ) { jQuery ( this ) . wrapAll ( html . call ( this , i ) ) ; } ) ; }
if ( this [ 0 ] ) { var wrap = jQuery ( html , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( true ) ; if ( this [ 0 ] . parentNode ) { wrap . insertBefore ( this [ 0 ] ) ; }
wrap . map ( function ( ) { var elem = this ; while ( elem . firstChild && elem . firstChild . nodeType === 1 ) { elem = elem . firstChild ; }
return elem ; } ) . append ( this ) ; }
return this ; } , wrapInner : function ( html ) { if ( jQuery . isFunction ( html ) ) { return this . each ( function ( i ) { jQuery ( this ) . wrapInner ( html . call ( this , i ) ) ; } ) ; }
return this . each ( function ( ) { var self = jQuery ( this ) , contents = self . contents ( ) ; if ( contents . length ) { contents . wrapAll ( html ) ; } else { self . append ( html ) ; } } ) ; } , wrap : function ( html ) { return this . each ( function ( ) { jQuery ( this ) . wrapAll ( html ) ; } ) ; } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { if ( ! jQuery . nodeName ( this , "body" ) ) { jQuery ( this ) . replaceWith ( this . childNodes ) ; } } ) . end ( ) ; } , append : function ( ) { return this . domManip ( arguments , true , function ( elem ) { if ( this . nodeType === 1 ) { this . appendChild ( elem ) ; } } ) ; } , prepend : function ( ) { return this . domManip ( arguments , true , function ( elem ) { if ( this . nodeType === 1 ) { this . insertBefore ( elem , this . firstChild ) ; } } ) ; } , before : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { return this . domManip ( arguments , false , function ( elem ) { this . parentNode . insertBefore ( elem , this ) ; } ) ; } else if ( arguments . length ) { var set = jQuery ( arguments [ 0 ] ) ; set . push . apply ( set , this . toArray ( ) ) ; return this . pushStack ( set , "before" , arguments ) ; } } , after : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { return this . domManip ( arguments , false , function ( elem ) { this . parentNode . insertBefore ( elem , this . nextSibling ) ; } ) ; } else if ( arguments . length ) { var set = this . pushStack ( this , "after" , arguments ) ; set . push . apply ( set , jQuery ( arguments [ 0 ] ) . toArray ( ) ) ; return set ; } } , remove : function ( selector , keepData ) { for ( var i = 0 , elem ; ( elem = this [ i ] ) != null ; i ++ ) { if ( ! selector || jQuery . filter ( selector , [ elem ] ) . length ) { if ( ! keepData && elem . nodeType === 1 ) { jQuery . cleanData ( elem . getElementsByTagName ( "*" ) ) ; jQuery . cleanData ( [ elem ] ) ; }
if ( elem . parentNode ) { elem . parentNode . removeChild ( elem ) ; } } }
return this ; } , empty : function ( ) { for ( var i = 0 , elem ; ( elem = this [ i ] ) != null ; i ++ ) { if ( elem . nodeType === 1 ) { jQuery . cleanData ( elem . getElementsByTagName ( "*" ) ) ; }
while ( elem . firstChild ) { elem . removeChild ( elem . firstChild ) ; } }
return this ; } , clone : function ( events ) { var ret = this . map ( function ( ) { if ( ! jQuery . support . noCloneEvent && ! jQuery . isXMLDoc ( this ) ) { var html = this . outerHTML , ownerDocument = this . ownerDocument ; if ( ! html ) { var div = ownerDocument . createElement ( "div" ) ; div . appendChild ( this . cloneNode ( true ) ) ; html = div . innerHTML ; }
return jQuery . clean ( [ html . replace ( rinlinejQuery , "" ) . replace ( /=([^="'>\s]+\/)>/g , '="$1">' ) . replace ( rleadingWhitespace , "" ) ] , ownerDocument ) [ 0 ] ; } else { return this . cloneNode ( true ) ; } } ) ; if ( events === true ) { cloneCopyEvent ( this , ret ) ; cloneCopyEvent ( this . find ( "*" ) , ret . find ( "*" ) ) ; }
return ret ; } , html : function ( value ) { if ( value === undefined ) { return this [ 0 ] && this [ 0 ] . nodeType === 1 ? this [ 0 ] . innerHTML . replace ( rinlinejQuery , "" ) : null ; } else if ( typeof value === "string" && ! rnocache . test ( value ) && ( jQuery . support . leadingWhitespace || ! rleadingWhitespace . test ( value ) ) && ! wrapMap [ ( rtagName . exec ( value ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { value = value . replace ( rxhtmlTag , fcloseTag ) ; try { for ( var i = 0 , l = this . length ; i < l ; i ++ ) { if ( this [ i ] . nodeType === 1 ) { jQuery . cleanData ( this [ i ] . getElementsByTagName ( "*" ) ) ; this [ i ] . innerHTML = value ; } } } catch ( e ) { this . empty ( ) . append ( value ) ; } } else if ( jQuery . isFunction ( value ) ) { this . each ( function ( i ) { var self = jQuery ( this ) , old = self . html ( ) ; self . empty ( ) . append ( function ( ) { return value . call ( this , i , old ) ; } ) ; } ) ; } else { this . empty ( ) . append ( value ) ; }
return this ; } , replaceWith : function ( value ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { if ( jQuery . isFunction ( value ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) , old = self . html ( ) ; self . replaceWith ( value . call ( this , i , old ) ) ; } ) ; }
if ( typeof value !== "string" ) { value = jQuery ( value ) . detach ( ) ; }
return this . each ( function ( ) { var next = this . nextSibling , parent = this . parentNode ; jQuery ( this ) . remove ( ) ; if ( next ) { jQuery ( next ) . before ( value ) ; } else { jQuery ( parent ) . append ( value ) ; } } ) ; } else { return this . pushStack ( jQuery ( jQuery . isFunction ( value ) ? value ( ) : value ) , "replaceWith" , value ) ; } } , detach : function ( selector ) { return this . remove ( selector , true ) ; } , domManip : function ( args , table , callback ) { var results , first , value = args [ 0 ] , scripts = [ ] , fragment , parent ; if ( ! jQuery . support . checkClone && arguments . length === 3 && typeof value === "string" && rchecked . test ( value ) ) { return this . each ( function ( ) { jQuery ( this ) . domManip ( args , table , callback , true ) ; } ) ; }
if ( jQuery . isFunction ( value ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; args [ 0 ] = value . call ( this , i , table ? self . html ( ) : undefined ) ; self . domManip ( args , table , callback ) ; } ) ; }
if ( this [ 0 ] ) { parent = value && value . parentNode ; if ( jQuery . support . parentNode && parent && parent . nodeType === 11 && parent . childNodes . length === this . length ) { results = { fragment : parent } ; } else { results = buildFragment ( args , this , scripts ) ; }
fragment = results . fragment ; if ( fragment . childNodes . length === 1 ) { first = fragment = fragment . firstChild ; } else { first = fragment . firstChild ; }
if ( first ) { table = table && jQuery . nodeName ( first , "tr" ) ; for ( var i = 0 , l = this . length ; i < l ; i ++ ) { callback . call ( table ? root ( this [ i ] , first ) : this [ i ] , i > 0 || results . cacheable || this . length > 1 ? fragment . cloneNode ( true ) : fragment ) ; } }
if ( scripts . length ) { jQuery . each ( scripts , evalScript ) ; } }
return this ; function root ( elem , cur ) { return jQuery . nodeName ( elem , "table" ) ? ( elem . getElementsByTagName ( "tbody" ) [ 0 ] || elem . appendChild ( elem . ownerDocument . createElement ( "tbody" ) ) ) : elem ; } } } ) ; function cloneCopyEvent ( orig , ret ) { var i = 0 ; ret . each ( function ( ) { if ( this . nodeName !== ( orig [ i ] && orig [ i ] . nodeName ) ) { return ; }
var oldData = jQuery . data ( orig [ i ++ ] ) , curData = jQuery . data ( this , oldData ) , events = oldData && oldData . events ; if ( events ) { delete curData . handle ; curData . events = { } ; for ( var type in events ) { for ( var handler in events [ type ] ) { jQuery . event . add ( this , type , events [ type ] [ handler ] , events [ type ] [ handler ] . data ) ; } } } } ) ; }
function buildFragment ( args , nodes , scripts ) { var fragment , cacheable , cacheresults , doc = ( nodes && nodes [ 0 ] ? nodes [ 0 ] . ownerDocument || nodes [ 0 ] : document ) ; if ( args . length === 1 && typeof args [ 0 ] === "string" && args [ 0 ] . length < 512 && doc === document && ! rnocache . test ( args [ 0 ] ) && ( jQuery . support . checkClone || ! rchecked . test ( args [ 0 ] ) ) ) { cacheable = true ; cacheresults = jQuery . fragments [ args [ 0 ] ] ; if ( cacheresults ) { if ( cacheresults !== 1 ) { fragment = cacheresults ; } } }
if ( ! fragment ) { fragment = doc . createDocumentFragment ( ) ; jQuery . clean ( args , doc , fragment , scripts ) ; }
if ( cacheable ) { jQuery . fragments [ args [ 0 ] ] = cacheresults ? fragment : 1 ; }
return { fragment : fragment , cacheable : cacheable } ; }
jQuery . fragments = { } ; jQuery . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( name , original ) { jQuery . fn [ name ] = function ( selector ) { var ret = [ ] , insert = jQuery ( selector ) , parent = this . length === 1 && this [ 0 ] . parentNode ; if ( parent && parent . nodeType === 11 && parent . childNodes . length === 1 && insert . length === 1 ) { insert [ original ] ( this [ 0 ] ) ; return this ; } else { for ( var i = 0 , l = insert . length ; i < l ; i ++ ) { var elems = ( i > 0 ? this . clone ( true ) : this ) . get ( ) ; jQuery . fn [ original ] . apply ( jQuery ( insert [ i ] ) , elems ) ; ret = ret . concat ( elems ) ; }
return this . pushStack ( ret , name , insert . selector ) ; } } ; } ) ; jQuery . extend ( { clean : function ( elems , context , fragment , scripts ) { context = context || document ; if ( typeof context . createElement === "undefined" ) { context = context . ownerDocument || context [ 0 ] && context [ 0 ] . ownerDocument || document ; }
var ret = [ ] ; for ( var i = 0 , elem ; ( elem = elems [ i ] ) != null ; i ++ ) { if ( typeof elem === "number" ) { elem += "" ; }
if ( ! elem ) { continue ; }
if ( typeof elem === "string" && ! rhtml . test ( elem ) ) { elem = context . createTextNode ( elem ) ; } else if ( typeof elem === "string" ) { elem = elem . replace ( rxhtmlTag , fcloseTag ) ; var tag = ( rtagName . exec ( elem ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , wrap = wrapMap [ tag ] || wrapMap . _default , depth = wrap [ 0 ] , div = context . createElement ( "div" ) ; div . innerHTML = wrap [ 1 ] + elem + wrap [ 2 ] ; while ( depth -- ) { div = div . lastChild ; }
if ( ! jQuery . support . tbody ) { var hasBody = rtbody . test ( elem ) , tbody = tag === "table" && ! hasBody ? div . firstChild && div . firstChild . childNodes : wrap [ 1 ] === "<table>" && ! hasBody ? div . childNodes : [ ] ; for ( var j = tbody . length - 1 ; j >= 0 ; -- j ) { if ( jQuery . nodeName ( tbody [ j ] , "tbody" ) && ! tbody [ j ] . childNodes . length ) { tbody [ j ] . parentNode . removeChild ( tbody [ j ] ) ; } } }
if ( ! jQuery . support . leadingWhitespace && rleadingWhitespace . test ( elem ) ) { div . insertBefore ( context . createTextNode ( rleadingWhitespace . exec ( elem ) [ 0 ] ) , div . firstChild ) ; }
elem = div . childNodes ; }
if ( elem . nodeType ) { ret . push ( elem ) ; } else { ret = jQuery . merge ( ret , elem ) ; } }
if ( fragment ) { for ( var i = 0 ; ret [ i ] ; i ++ ) { if ( scripts && jQuery . nodeName ( ret [ i ] , "script" ) && ( ! ret [ i ] . type || ret [ i ] . type . toLowerCase ( ) === "text/javascript" ) ) { scripts . push ( ret [ i ] . parentNode ? ret [ i ] . parentNode . removeChild ( ret [ i ] ) : ret [ i ] ) ; } else { if ( ret [ i ] . nodeType === 1 ) { ret . splice . apply ( ret , [ i + 1 , 0 ] . concat ( jQuery . makeArray ( ret [ i ] . getElementsByTagName ( "script" ) ) ) ) ; }
fragment . appendChild ( ret [ i ] ) ; } } }
return ret ; } , cleanData : function ( elems ) { var data , id , cache = jQuery . cache , special = jQuery . event . special , deleteExpando = jQuery . support . deleteExpando ; for ( var i = 0 , elem ; ( elem = elems [ i ] ) != null ; i ++ ) { id = elem [ jQuery . expando ] ; if ( id ) { data = cache [ id ] ; if ( data . events ) { for ( var type in data . events ) { if ( special [ type ] ) { jQuery . event . remove ( elem , type ) ; } else { removeEvent ( elem , type , data . handle ) ; } } }
if ( deleteExpando ) { delete elem [ jQuery . expando ] ; } else if ( elem . removeAttribute ) { elem . removeAttribute ( jQuery . expando ) ; }
delete cache [ id ] ; } } } } ) ; var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i , ralpha = /alpha\([^)]*\)/ , ropacity = /opacity=([^)]*)/ , rfloat = /float/i , rdashAlpha = /-([a-z])/ig , rupper = /([A-Z])/g , rnumpx = /^-?\d+(?:px)?$/i , rnum = /^-?\d/ , cssShow = { position : "absolute" , visibility : "hidden" , display : "block" } , cssWidth = [ "Left" , "Right" ] , cssHeight = [ "Top" , "Bottom" ] , getComputedStyle = document . defaultView && document . defaultView . getComputedStyle , styleFloat = jQuery . support . cssFloat ? "cssFloat" : "styleFloat" , fcamelCase = function ( all , letter ) { return letter . toUpperCase ( ) ; } ; jQuery . fn . css = function ( name , value ) { return access ( this , name , value , true , function ( elem , name , value ) { if ( value === undefined ) { return jQuery . curCSS ( elem , name ) ; }
if ( typeof value === "number" && ! rexclude . test ( name ) ) { value += "px" ; }
jQuery . style ( elem , name , value ) ; } ) ; } ; jQuery . extend ( { style : function ( elem , name , value ) { if ( ! elem || elem . nodeType === 3 || elem . nodeType === 8 ) { return undefined ; }
if ( ( name === "width" || name === "height" ) && parseFloat ( value ) < 0 ) { value = undefined ; }
var style = elem . style || elem , set = value !== undefined ; if ( ! jQuery . support . opacity && name === "opacity" ) { if ( set ) { style . zoom = 1 ; var opacity = parseInt ( value , 10 ) + "" === "NaN" ? "" : "alpha(opacity=" + value * 100 + ")" ; var filter = style . filter || jQuery . curCSS ( elem , "filter" ) || "" ; style . filter = ralpha . test ( filter ) ? filter . replace ( ralpha , opacity ) : opacity ; }
return style . filter && style . filter . indexOf ( "opacity=" ) >= 0 ? ( parseFloat ( ropacity . exec ( style . filter ) [ 1 ] ) / 100 ) + "" : "" ; }
if ( rfloat . test ( name ) ) { name = styleFloat ; }
name = name . replace ( rdashAlpha , fcamelCase ) ; if ( set ) { style [ name ] = value ; }
return style [ name ] ; } , css : function ( elem , name , force , extra ) { if ( name === "width" || name === "height" ) { var val , props = cssShow , which = name === "width" ? cssWidth : cssHeight ; function getWH ( ) { val = name === "width" ? elem . offsetWidth : elem . offsetHeight ; if ( extra === "border" ) { return ; }
jQuery . each ( which , function ( ) { if ( ! extra ) { val -= parseFloat ( jQuery . curCSS ( elem , "padding" + this , true ) ) || 0 ; }
if ( extra === "margin" ) { val += parseFloat ( jQuery . curCSS ( elem , "margin" + this , true ) ) || 0 ; } else { val -= parseFloat ( jQuery . curCSS ( elem , "border" + this + "Width" , true ) ) || 0 ; } } ) ; }
if ( elem . offsetWidth !== 0 ) { getWH ( ) ; } else { jQuery . swap ( elem , props , getWH ) ; }
return Math . max ( 0 , Math . round ( val ) ) ; }
return jQuery . curCSS ( elem , name , force ) ; } , curCSS : function ( elem , name , force ) { var ret , style = elem . style , filter ; if ( ! jQuery . support . opacity && name === "opacity" && elem . currentStyle ) { ret = ropacity . test ( elem . currentStyle . filter || "" ) ? ( parseFloat ( RegExp . $1 ) / 100 ) + "" : "" ; return ret === "" ? "1" : ret ; }
if ( rfloat . test ( name ) ) { name = styleFloat ; }
if ( ! force && style && style [ name ] ) { ret = style [ name ] ; } else if ( getComputedStyle ) { if ( rfloat . test ( name ) ) { name = "float" ; }
name = name . replace ( rupper , "-$1" ) . toLowerCase ( ) ; var defaultView = elem . ownerDocument . defaultView ; if ( ! defaultView ) { return null ; }
var computedStyle = defaultView . getComputedStyle ( elem , null ) ; if ( computedStyle ) { ret = computedStyle . getPropertyValue ( name ) ; }
if ( name === "opacity" && ret === "" ) { ret = "1" ; } } else if ( elem . currentStyle ) { var camelCase = name . replace ( rdashAlpha , fcamelCase ) ; ret = elem . currentStyle [ name ] || elem . currentStyle [ camelCase ] ; if ( ! rnumpx . test ( ret ) && rnum . test ( ret ) ) { var left = style . left , rsLeft = elem . runtimeStyle . left ; elem . runtimeStyle . left = elem . currentStyle . left ; style . left = camelCase === "fontSize" ? "1em" : ( ret || 0 ) ; ret = style . pixelLeft + "px" ; style . left = left ; elem . runtimeStyle . left = rsLeft ; } }
return ret ; } , swap : function ( elem , options , callback ) { var old = { } ; for ( var name in options ) { old [ name ] = elem . style [ name ] ; elem . style [ name ] = options [ name ] ; }
callback . call ( elem ) ; for ( var name in options ) { elem . style [ name ] = old [ name ] ; } } } ) ; if ( jQuery . expr && jQuery . expr . filters ) { jQuery . expr . filters . hidden = function ( elem ) { var width = elem . offsetWidth , height = elem . offsetHeight , skip = elem . nodeName . toLowerCase ( ) === "tr" ; return width === 0 && height === 0 && ! skip ? true : width > 0 && height > 0 && ! skip ? false : jQuery . curCSS ( elem , "display" ) === "none" ; } ; jQuery . expr . filters . visible = function ( elem ) { return ! jQuery . expr . filters . hidden ( elem ) ; } ; }
var jsc = now ( ) , rscript = /<script(.|\s)*?\/script>/gi , rselectTextarea = /select|textarea/i , rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i , jsre = /=\?(&|$)/ , rquery = /\?/ , rts = /(\?|&)_=.*?(&|$)/ , rurl = /^(\w+:)?\/\/([^\/?#]+)/ , r20 = /%20/g , _load = jQuery . fn . load ; jQuery . fn . extend ( { load : function ( url , params , callback ) { if ( typeof url !== "string" ) { return _load . call ( this , url ) ; } else if ( ! this . length ) { return this ; }
var off = url . indexOf ( " " ) ; if ( off >= 0 ) { var selector = url . slice ( off , url . length ) ; url = url . slice ( 0 , off ) ; }
var type = "GET" ; if ( params ) { if ( jQuery . isFunction ( params ) ) { callback = params ; params = null ; } else if ( typeof params === "object" ) { params = jQuery . param ( params , jQuery . ajaxSettings . traditional ) ; type = "POST" ; } }
var self = this ; jQuery . ajax ( { url : url , type : type , dataType : "html" , data : params , complete : function ( res , status ) { if ( status === "success" || status === "notmodified" ) { self . html ( selector ? jQuery ( "<div />" ) . append ( res . responseText . replace ( rscript , "" ) ) . find ( selector ) : res . responseText ) ; }
if ( callback ) { self . each ( callback , [ res . responseText , status , res ] ) ; } } } ) ; return this ; } , serialize : function ( ) { return jQuery . param ( this . serializeArray ( ) ) ; } , serializeArray : function ( ) { return this . map ( function ( ) { return this . elements ? jQuery . makeArray ( this . elements ) : this ; } ) . filter ( function ( ) { return this . name && ! this . disabled && ( this . checked || rselectTextarea . test ( this . nodeName ) || rinput . test ( this . type ) ) ; } ) . map ( function ( i , elem ) { var val = jQuery ( this ) . val ( ) ; return val == null ? null : jQuery . isArray ( val ) ? jQuery . map ( val , function ( val , i ) { return { name : elem . name , value : val } ; } ) : { name : elem . name , value : val } ; } ) . get ( ) ; } } ) ; jQuery . each ( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend" . split ( " " ) , function ( i , o ) { jQuery . fn [ o ] = function ( f ) { return this . bind ( o , f ) ; } ; } ) ; jQuery . extend ( { get : function ( url , data , callback , type ) { if ( jQuery . isFunction ( data ) ) { type = type || callback ; callback = data ; data = null ; }
return jQuery . ajax ( { type : "GET" , url : url , data : data , success : callback , dataType : type } ) ; } , getScript : function ( url , callback ) { return jQuery . get ( url , null , callback , "script" ) ; } , getJSON : function ( url , data , callback ) { return jQuery . get ( url , data , callback , "json" ) ; } , post : function ( url , data , callback , type ) { if ( jQuery . isFunction ( data ) ) { type = type || callback ; callback = data ; data = { } ; }
return jQuery . ajax ( { type : "POST" , url : url , data : data , success : callback , dataType : type } ) ; } , ajaxSetup : function ( settings ) { jQuery . extend ( jQuery . ajaxSettings , settings ) ; } , ajaxSettings : { url : location . href , global : true , type : "GET" , contentType : "application/x-www-form-urlencoded" , processData : true , async : true , xhr : window . XMLHttpRequest && ( window . location . protocol !== "file:" || ! window . ActiveXObject ) ? function ( ) { return new window . XMLHttpRequest ( ) ; } : function ( ) { try { return new window . ActiveXObject ( "Microsoft.XMLHTTP" ) ; } catch ( e ) { } } , accepts : { xml : "application/xml, text/xml" , html : "text/html" , script : "text/javascript, application/javascript" , json : "application/json, text/javascript" , text : "text/plain" , _default : "*/*" } } , lastModified : { } , etag : { } , ajax : function ( origSettings ) { var s = jQuery . extend ( true , { } , jQuery . ajaxSettings , origSettings ) ; var jsonp , status , data , callbackContext = origSettings && origSettings . context || s , type = s . type . toUpperCase ( ) ; if ( s . data && s . processData && typeof s . data !== "string" ) { s . data = jQuery . param ( s . data , s . traditional ) ; }
if ( s . dataType === "jsonp" ) { if ( type === "GET" ) { if ( ! jsre . test ( s . url ) ) { s . url += ( rquery . test ( s . url ) ? "&" : "?" ) + ( s . jsonp || "callback" ) + "=?" ; } } else if ( ! s . data || ! jsre . test ( s . data ) ) { s . data = ( s . data ? s . data + "&" : "" ) + ( s . jsonp || "callback" ) + "=?" ; }
s . dataType = "json" ; }
if ( s . dataType === "json" && ( s . data && jsre . test ( s . data ) || jsre . test ( s . url ) ) ) { jsonp = s . jsonpCallback || ( "jsonp" + jsc ++ ) ; if ( s . data ) { s . data = ( s . data + "" ) . replace ( jsre , "=" + jsonp + "$1" ) ; }
s . url = s . url . replace ( jsre , "=" + jsonp + "$1" ) ; s . dataType = "script" ; window [ jsonp ] = window [ jsonp ] || function ( tmp ) { data = tmp ; success ( ) ; complete ( ) ; window [ jsonp ] = undefined ; try { delete window [ jsonp ] ; } catch ( e ) { }
if ( head ) { head . removeChild ( script ) ; } } ; }
if ( s . dataType === "script" && s . cache === null ) { s . cache = false ; }
if ( s . cache === false && type === "GET" ) { var ts = now ( ) ; var ret = s . url . replace ( rts , "$1_=" + ts + "$2" ) ; s . url = ret + ( ( ret === s . url ) ? ( rquery . test ( s . url ) ? "&" : "?" ) + "_=" + ts : "" ) ; }
if ( s . data && type === "GET" ) { s . url += ( rquery . test ( s . url ) ? "&" : "?" ) + s . data ; }
if ( s . global && ! jQuery . active ++ ) { jQuery . event . trigger ( "ajaxStart" ) ; }
var parts = rurl . exec ( s . url ) , remote = parts && ( parts [ 1 ] && parts [ 1 ] !== location . protocol || parts [ 2 ] !== location . host ) ; if ( s . dataType === "script" && type === "GET" && remote ) { var head = document . getElementsByTagName ( "head" ) [ 0 ] || document . documentElement ; var script = document . createElement ( "script" ) ; script . src = s . url ; if ( s . scriptCharset ) { script . charset = s . scriptCharset ; }
if ( ! jsonp ) { var done = false ; script . onload = script . onreadystatechange = function ( ) { if ( ! done && ( ! this . readyState || this . readyState === "loaded" || this . readyState === "complete" ) ) { done = true ; success ( ) ; complete ( ) ; script . onload = script . onreadystatechange = null ; if ( head && script . parentNode ) { head . removeChild ( script ) ; } } } ; }
head . insertBefore ( script , head . firstChild ) ; return undefined ; }
var requestDone = false ; var xhr = s . xhr ( ) ; if ( ! xhr ) { return ; }
if ( s . username ) { xhr . open ( type , s . url , s . async , s . username , s . password ) ; } else { xhr . open ( type , s . url , s . async ) ; }
try { if ( s . data || origSettings && origSettings . contentType ) { xhr . setRequestHeader ( "Content-Type" , s . contentType ) ; }
if ( s . ifModified ) { if ( jQuery . lastModified [ s . url ] ) { xhr . setRequestHeader ( "If-Modified-Since" , jQuery . lastModified [ s . url ] ) ; }
if ( jQuery . etag [ s . url ] ) { xhr . setRequestHeader ( "If-None-Match" , jQuery . etag [ s . url ] ) ; } }
if ( ! remote ) { xhr . setRequestHeader ( "X-Requested-With" , "XMLHttpRequest" ) ; }
xhr . setRequestHeader ( "Accept" , s . dataType && s . accepts [ s . dataType ] ? s . accepts [ s . dataType ] + ", */*" : s . accepts . _default ) ; } catch ( e ) { }
if ( s . beforeSend && s . beforeSend . call ( callbackContext , xhr , s ) === false ) { if ( s . global && ! -- jQuery . active ) { jQuery . event . trigger ( "ajaxStop" ) ; }
xhr . abort ( ) ; return false ; }
if ( s . global ) { trigger ( "ajaxSend" , [ xhr , s ] ) ; }
var onreadystatechange = xhr . onreadystatechange = function ( isTimeout ) { if ( ! xhr || xhr . readyState === 0 || isTimeout === "abort" ) { if ( ! requestDone ) { complete ( ) ; }
requestDone = true ; if ( xhr ) { xhr . onreadystatechange = jQuery . noop ; } } else if ( ! requestDone && xhr && ( xhr . readyState === 4 || isTimeout === "timeout" ) ) { requestDone = true ; xhr . onreadystatechange = jQuery . noop ; status = isTimeout === "timeout" ? "timeout" : ! jQuery . httpSuccess ( xhr ) ? "error" : s . ifModified && jQuery . httpNotModified ( xhr , s . url ) ? "notmodified" : "success" ; var errMsg ; if ( status === "success" ) { try { data = jQuery . httpData ( xhr , s . dataType , s ) ; } catch ( err ) { status = "parsererror" ; errMsg = err ; } }
if ( status === "success" || status === "notmodified" ) { if ( ! jsonp ) { success ( ) ; } } else { jQuery . handleError ( s , xhr , status , errMsg ) ; }
complete ( ) ; if ( isTimeout === "timeout" ) { xhr . abort ( ) ; }
if ( s . async ) { xhr = null ; } } } ; try { var oldAbort = xhr . abort ; xhr . abort = function ( ) { if ( xhr ) { oldAbort . call ( xhr ) ; }
onreadystatechange ( "abort" ) ; } ; } catch ( e ) { }
if ( s . async && s . timeout > 0 ) { setTimeout ( function ( ) { if ( xhr && ! requestDone ) { onreadystatechange ( "timeout" ) ; } } , s . timeout ) ; }
try { xhr . send ( type === "POST" || type === "PUT" || type === "DELETE" ? s . data : null ) ; } catch ( e ) { jQuery . handleError ( s , xhr , null , e ) ; complete ( ) ; }
if ( ! s . async ) { onreadystatechange ( ) ; }
function success ( ) { if ( s . success ) { s . success . call ( callbackContext , data , status , xhr ) ; }
if ( s . global ) { trigger ( "ajaxSuccess" , [ xhr , s ] ) ; } }
function complete ( ) { if ( s . complete ) { s . complete . call ( callbackContext , xhr , status ) ; }
if ( s . global ) { trigger ( "ajaxComplete" , [ xhr , s ] ) ; }
if ( s . global && ! -- jQuery . active ) { jQuery . event . trigger ( "ajaxStop" ) ; } }
function trigger ( type , args ) { ( s . context ? jQuery ( s . context ) : jQuery . event ) . trigger ( type , args ) ; }
return xhr ; } , handleError : function ( s , xhr , status , e ) { if ( s . error ) { s . error . call ( s . context || s , xhr , status , e ) ; }
if ( s . global ) { ( s . context ? jQuery ( s . context ) : jQuery . event ) . trigger ( "ajaxError" , [ xhr , s , e ] ) ; } } , active : 0 , httpSuccess : function ( xhr ) { try { return ! xhr . status && location . protocol === "file:" || ( xhr . status >= 200 && xhr . status < 300 ) || xhr . status === 304 || xhr . status === 1223 || xhr . status === 0 ; } catch ( e ) { }
return false ; } , httpNotModified : function ( xhr , url ) { var lastModified = xhr . getResponseHeader ( "Last-Modified" ) , etag = xhr . getResponseHeader ( "Etag" ) ; if ( lastModified ) { jQuery . lastModified [ url ] = lastModified ; }
if ( etag ) { jQuery . etag [ url ] = etag ; }
return xhr . status === 304 || xhr . status === 0 ; } , httpData : function ( xhr , type , s ) { var ct = xhr . getResponseHeader ( "content-type" ) || "" , xml = type === "xml" || ! type && ct . indexOf ( "xml" ) >= 0 , data = xml ? xhr . responseXML : xhr . responseText ; if ( xml && data . documentElement . nodeName === "parsererror" ) { jQuery . error ( "parsererror" ) ; }
if ( s && s . dataFilter ) { data = s . dataFilter ( data , type ) ; }
if ( typeof data === "string" ) { if ( type === "json" || ! type && ct . indexOf ( "json" ) >= 0 ) { data = jQuery . parseJSON ( data ) ; } else if ( type === "script" || ! type && ct . indexOf ( "javascript" ) >= 0 ) { jQuery . globalEval ( data ) ; } }
return data ; } , param : function ( a , traditional ) { var s = [ ] ; if ( traditional === undefined ) { traditional = jQuery . ajaxSettings . traditional ; }
if ( jQuery . isArray ( a ) || a . jquery ) { jQuery . each ( a , function ( ) { add ( this . name , this . value ) ; } ) ; } else { for ( var prefix in a ) { buildParams ( prefix , a [ prefix ] ) ; } }
return s . join ( "&" ) . replace ( r20 , "+" ) ; function buildParams ( prefix , obj ) { if ( jQuery . isArray ( obj ) ) { jQuery . each ( obj , function ( i , v ) { if ( traditional || /\[\]$/ . test ( prefix ) ) { add ( prefix , v ) ; } else { buildParams ( prefix + "[" + ( typeof v === "object" || jQuery . isArray ( v ) ? i : "" ) + "]" , v ) ; } } ) ; } else if ( ! traditional && obj != null && typeof obj === "object" ) { jQuery . each ( obj , function ( k , v ) { buildParams ( prefix + "[" + k + "]" , v ) ; } ) ; } else { add ( prefix , obj ) ; } }
function add ( key , value ) { value = jQuery . isFunction ( value ) ? value ( ) : value ; s [ s . length ] = encodeURIComponent ( key ) + "=" + encodeURIComponent ( value ) ; } } } ) ; var elemdisplay = { } , rfxtypes = /toggle|show|hide/ , rfxnum = /^([+-]=)?([\d+-.]+)(.*)$/ , timerId , fxAttrs = [ [ "height" , "marginTop" , "marginBottom" , "paddingTop" , "paddingBottom" ] , [ "width" , "marginLeft" , "marginRight" , "paddingLeft" , "paddingRight" ] , [ "opacity" ] ] ; jQuery . fn . extend ( { show : function ( speed , callback ) { if ( speed || speed === 0 ) { return this . animate ( genFx ( "show" , 3 ) , speed , callback ) ; } else { for ( var i = 0 , l = this . length ; i < l ; i ++ ) { var old = jQuery . data ( this [ i ] , "olddisplay" ) ; this [ i ] . style . display = old || "" ; if ( jQuery . css ( this [ i ] , "display" ) === "none" ) { var nodeName = this [ i ] . nodeName , display ; if ( elemdisplay [ nodeName ] ) { display = elemdisplay [ nodeName ] ; } else { var elem = jQuery ( "<" + nodeName + " />" ) . appendTo ( "body" ) ; display = elem . css ( "display" ) ; if ( display === "none" ) { display = "block" ; }
elem . remove ( ) ; elemdisplay [ nodeName ] = display ; }
jQuery . data ( this [ i ] , "olddisplay" , display ) ; } }
for ( var j = 0 , k = this . length ; j < k ; j ++ ) { this [ j ] . style . display = jQuery . data ( this [ j ] , "olddisplay" ) || "" ; }
return this ; } } , hide : function ( speed , callback ) { if ( speed || speed === 0 ) { return this . animate ( genFx ( "hide" , 3 ) , speed , callback ) ; } else { for ( var i = 0 , l = this . length ; i < l ; i ++ ) { var old = jQuery . data ( this [ i ] , "olddisplay" ) ; if ( ! old && old !== "none" ) { jQuery . data ( this [ i ] , "olddisplay" , jQuery . css ( this [ i ] , "display" ) ) ; } }
for ( var j = 0 , k = this . length ; j < k ; j ++ ) { this [ j ] . style . display = "none" ; }
return this ; } } , _toggle : jQuery . fn . toggle , toggle : function ( fn , fn2 ) { var bool = typeof fn === "boolean" ; if ( jQuery . isFunction ( fn ) && jQuery . isFunction ( fn2 ) ) { this . _toggle . apply ( this , arguments ) ; } else if ( fn == null || bool ) { this . each ( function ( ) { var state = bool ? fn : jQuery ( this ) . is ( ":hidden" ) ; jQuery ( this ) [ state ? "show" : "hide" ] ( ) ; } ) ; } else { this . animate ( genFx ( "toggle" , 3 ) , fn , fn2 ) ; }
return this ; } , fadeTo : function ( speed , to , callback ) { return this . filter ( ":hidden" ) . css ( "opacity" , 0 ) . show ( ) . end ( ) . animate ( { opacity : to } , speed , callback ) ; } , animate : function ( prop , speed , easing , callback ) { var optall = jQuery . speed ( speed , easing , callback ) ; if ( jQuery . isEmptyObject ( prop ) ) { return this . each ( optall . complete ) ; }
return this [ optall . queue === false ? "each" : "queue" ] ( function ( ) { var opt = jQuery . extend ( { } , optall ) , p , hidden = this . nodeType === 1 && jQuery ( this ) . is ( ":hidden" ) , self = this ; for ( p in prop ) { var name = p . replace ( rdashAlpha , fcamelCase ) ; if ( p !== name ) { prop [ name ] = prop [ p ] ; delete prop [ p ] ; p = name ; }
if ( prop [ p ] === "hide" && hidden || prop [ p ] === "show" && ! hidden ) { return opt . complete . call ( this ) ; }
if ( ( p === "height" || p === "width" ) && this . style ) { opt . display = jQuery . css ( this , "display" ) ; opt . overflow = this . style . overflow ; }
if ( jQuery . isArray ( prop [ p ] ) ) { ( opt . specialEasing = opt . specialEasing || { } ) [ p ] = prop [ p ] [ 1 ] ; prop [ p ] = prop [ p ] [ 0 ] ; } }
if ( opt . overflow != null ) { this . style . overflow = "hidden" ; }
opt . curAnim = jQuery . extend ( { } , prop ) ; jQuery . each ( prop , function ( name , val ) { var e = new jQuery . fx ( self , opt , name ) ; if ( rfxtypes . test ( val ) ) { e [ val === "toggle" ? hidden ? "show" : "hide" : val ] ( prop ) ; } else { var parts = rfxnum . exec ( val ) , start = e . cur ( true ) || 0 ; if ( parts ) { var end = parseFloat ( parts [ 2 ] ) , unit = parts [ 3 ] || "px" ; if ( unit !== "px" ) { self . style [ name ] = ( end || 1 ) + unit ; start = ( ( end || 1 ) / e . cur ( true ) ) * start ; self . style [ name ] = start + unit ; }
if ( parts [ 1 ] ) { end = ( ( parts [ 1 ] === "-=" ? - 1 : 1 ) * end ) + start ; }
e . custom ( start , end , unit ) ; } else { e . custom ( start , val , "" ) ; } } } ) ; return true ; } ) ; } , stop : function ( clearQueue , gotoEnd ) { var timers = jQuery . timers ; if ( clearQueue ) { this . queue ( [ ] ) ; }
this . each ( function ( ) { for ( var i = timers . length - 1 ; i >= 0 ; i -- ) { if ( timers [ i ] . elem === this ) { if ( gotoEnd ) { timers [ i ] ( true ) ; }
timers . splice ( i , 1 ) ; } } } ) ; if ( ! gotoEnd ) { this . dequeue ( ) ; }
return this ; } } ) ; jQuery . each ( { slideDown : genFx ( "show" , 1 ) , slideUp : genFx ( "hide" , 1 ) , slideToggle : genFx ( "toggle" , 1 ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } } , function ( name , props ) { jQuery . fn [ name ] = function ( speed , callback ) { return this . animate ( props , speed , callback ) ; } ; } ) ; jQuery . extend ( { speed : function ( speed , easing , fn ) { var opt = speed && typeof speed === "object" ? speed : { complete : fn || ! fn && easing || jQuery . isFunction ( speed ) && speed , duration : speed , easing : fn && easing || easing && ! jQuery . isFunction ( easing ) && easing } ; opt . duration = jQuery . fx . off ? 0 : typeof opt . duration === "number" ? opt . duration : jQuery . fx . speeds [ opt . duration ] || jQuery . fx . speeds . _default ; opt . old = opt . complete ; opt . complete = function ( ) { if ( opt . queue !== false ) { jQuery ( this ) . dequeue ( ) ; }
if ( jQuery . isFunction ( opt . old ) ) { opt . old . call ( this ) ; } } ; return opt ; } , easing : { linear : function ( p , n , firstNum , diff ) { return firstNum + diff * p ; } , swing : function ( p , n , firstNum , diff ) { return ( ( - Math . cos ( p * Math . PI ) / 2 ) + 0.5 ) * diff + firstNum ; } } , timers : [ ] , fx : function ( elem , options , prop ) { this . options = options ; this . elem = elem ; this . prop = prop ; if ( ! options . orig ) { options . orig = { } ; } } } ) ; jQuery . fx . prototype = { update : function ( ) { if ( this . options . step ) { this . options . step . call ( this . elem , this . now , this ) ; }
( jQuery . fx . step [ this . prop ] || jQuery . fx . step . _default ) ( this ) ; if ( ( this . prop === "height" || this . prop === "width" ) && this . elem . style ) { this . elem . style . display = "block" ; } } , cur : function ( force ) { if ( this . elem [ this . prop ] != null && ( ! this . elem . style || this . elem . style [ this . prop ] == null ) ) { return this . elem [ this . prop ] ; }
var r = parseFloat ( jQuery . css ( this . elem , this . prop , force ) ) ; return r && r > - 10000 ? r : parseFloat ( jQuery . curCSS ( this . elem , this . prop ) ) || 0 ; } , custom : function ( from , to , unit ) { this . startTime = now ( ) ; this . start = from ; this . end = to ; this . unit = unit || this . unit || "px" ; this . now = this . start ; this . pos = this . state = 0 ; var self = this ; function t ( gotoEnd ) { return self . step ( gotoEnd ) ; }
t . elem = this . elem ; if ( t ( ) && jQuery . timers . push ( t ) && ! timerId ) { timerId = setInterval ( jQuery . fx . tick , 13 ) ; } } , show : function ( ) { this . options . orig [ this . prop ] = jQuery . style ( this . elem , this . prop ) ; this . options . show = true ; this . custom ( this . prop === "width" || this . prop === "height" ? 1 : 0 , this . cur ( ) ) ; jQuery ( this . elem ) . show ( ) ; } , hide : function ( ) { this . options . orig [ this . prop ] = jQuery . style ( this . elem , this . prop ) ; this . options . hide = true ; this . custom ( this . cur ( ) , 0 ) ; } , step : function ( gotoEnd ) { var t = now ( ) , done = true ; if ( gotoEnd || t >= this . options . duration + this . startTime ) { this . now = this . end ; this . pos = this . state = 1 ; this . update ( ) ; this . options . curAnim [ this . prop ] = true ; for ( var i in this . options . curAnim ) { if ( this . options . curAnim [ i ] !== true ) { done = false ; } }
if ( done ) { if ( this . options . display != null ) { this . elem . style . overflow = this . options . overflow ; var old = jQuery . data ( this . elem , "olddisplay" ) ; this . elem . style . display = old ? old : this . options . display ; if ( jQuery . css ( this . elem , "display" ) === "none" ) { this . elem . style . display = "block" ; } }
if ( this . options . hide ) { jQuery ( this . elem ) . hide ( ) ; }
if ( this . options . hide || this . options . show ) { for ( var p in this . options . curAnim ) { jQuery . style ( this . elem , p , this . options . orig [ p ] ) ; } }
this . options . complete . call ( this . elem ) ; }
return false ; } else { var n = t - this . startTime ; this . state = n / this . options . duration ; var specialEasing = this . options . specialEasing && this . options . specialEasing [ this . prop ] ; var defaultEasing = this . options . easing || ( jQuery . easing . swing ? "swing" : "linear" ) ; this . pos = jQuery . easing [ specialEasing || defaultEasing ] ( this . state , n , 0 , 1 , this . options . duration ) ; this . now = this . start + ( ( this . end - this . start ) * this . pos ) ; this . update ( ) ; }
return true ; } } ; jQuery . extend ( jQuery . fx , { tick : function ( ) { var timers = jQuery . timers ; for ( var i = 0 ; i < timers . length ; i ++ ) { if ( ! timers [ i ] ( ) ) { timers . splice ( i -- , 1 ) ; } }
if ( ! timers . length ) { jQuery . fx . stop ( ) ; } } , stop : function ( ) { clearInterval ( timerId ) ; timerId = null ; } , speeds : { slow : 600 , fast : 200 , _default : 400 } , step : { opacity : function ( fx ) { jQuery . style ( fx . elem , "opacity" , fx . now ) ; } , _default : function ( fx ) { if ( fx . elem . style && fx . elem . style [ fx . prop ] != null ) { fx . elem . style [ fx . prop ] = ( fx . prop === "width" || fx . prop === "height" ? Math . max ( 0 , fx . now ) : fx . now ) + fx . unit ; } else { fx . elem [ fx . prop ] = fx . now ; } } } } ) ; if ( jQuery . expr && jQuery . expr . filters ) { jQuery . expr . filters . animated = function ( elem ) { return jQuery . grep ( jQuery . timers , function ( fn ) { return elem === fn . elem ; } ) . length ; } ; }
function genFx ( type , num ) { var obj = { } ; jQuery . each ( fxAttrs . concat . apply ( [ ] , fxAttrs . slice ( 0 , num ) ) , function ( ) { obj [ this ] = type ; } ) ; return obj ; }
if ( "getBoundingClientRect" in document . documentElement ) { jQuery . fn . offset = function ( options ) { var elem = this [ 0 ] ; if ( options ) { return this . each ( function ( i ) { jQuery . offset . setOffset ( this , options , i ) ; } ) ; }
if ( ! elem || ! elem . ownerDocument ) { return null ; }
if ( elem === elem . ownerDocument . body ) { return jQuery . offset . bodyOffset ( elem ) ; }
var box = elem . getBoundingClientRect ( ) , doc = elem . ownerDocument , body = doc . body , docElem = doc . documentElement , clientTop = docElem . clientTop || body . clientTop || 0 , clientLeft = docElem . clientLeft || body . clientLeft || 0 , top = box . top + ( self . pageYOffset || jQuery . support . boxModel && docElem . scrollTop || body . scrollTop ) - clientTop , left = box . left + ( self . pageXOffset || jQuery . support . boxModel && docElem . scrollLeft || body . scrollLeft ) - clientLeft ; return { top : top , left : left } ; } ; } else { jQuery . fn . offset = function ( options ) { var elem = this [ 0 ] ; if ( options ) { return this . each ( function ( i ) { jQuery . offset . setOffset ( this , options , i ) ; } ) ; }
if ( ! elem || ! elem . ownerDocument ) { return null ; }
if ( elem === elem . ownerDocument . body ) { return jQuery . offset . bodyOffset ( elem ) ; }
jQuery . offset . initialize ( ) ; var offsetParent = elem . offsetParent , prevOffsetParent = elem , doc = elem . ownerDocument , computedStyle , docElem = doc . documentElement , body = doc . body , defaultView = doc . defaultView , prevComputedStyle = defaultView ? defaultView . getComputedStyle ( elem , null ) : elem . currentStyle , top = elem . offsetTop , left = elem . offsetLeft ; while ( ( elem = elem . parentNode ) && elem !== body && elem !== docElem ) { if ( jQuery . offset . supportsFixedPosition && prevComputedStyle . position === "fixed" ) { break ; }
computedStyle = defaultView ? defaultView . getComputedStyle ( elem , null ) : elem . currentStyle ; top -= elem . scrollTop ; left -= elem . scrollLeft ; if ( elem === offsetParent ) { top += elem . offsetTop ; left += elem . offsetLeft ; if ( jQuery . offset . doesNotAddBorder && ! ( jQuery . offset . doesAddBorderForTableAndCells && /^t(able|d|h)$/i . test ( elem . nodeName ) ) ) { top += parseFloat ( computedStyle . borderTopWidth ) || 0 ; left += parseFloat ( computedStyle . borderLeftWidth ) || 0 ; }
prevOffsetParent = offsetParent , offsetParent = elem . offsetParent ; }
if ( jQuery . offset . subtractsBorderForOverflowNotVisible && computedStyle . overflow !== "visible" ) { top += parseFloat ( computedStyle . borderTopWidth ) || 0 ; left += parseFloat ( computedStyle . borderLeftWidth ) || 0 ; }
prevComputedStyle = computedStyle ; }
if ( prevComputedStyle . position === "relative" || prevComputedStyle . position === "static" ) { top += body . offsetTop ; left += body . offsetLeft ; }
if ( jQuery . offset . supportsFixedPosition && prevComputedStyle . position === "fixed" ) { top += Math . max ( docElem . scrollTop , body . scrollTop ) ; left += Math . max ( docElem . scrollLeft , body . scrollLeft ) ; }
return { top : top , left : left } ; } ; }
jQuery . offset = { initialize : function ( ) { var body = document . body , container = document . createElement ( "div" ) , innerDiv , checkDiv , table , td , bodyMarginTop = parseFloat ( jQuery . curCSS ( body , "marginTop" , true ) ) || 0 , html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>" ; jQuery . extend ( container . style , { position : "absolute" , top : 0 , left : 0 , margin : 0 , border : 0 , width : "1px" , height : "1px" , visibility : "hidden" } ) ; container . innerHTML = html ; body . insertBefore ( container , body . firstChild ) ; innerDiv = container . firstChild ; checkDiv = innerDiv . firstChild ; td = innerDiv . nextSibling . firstChild . firstChild ; this . doesNotAddBorder = ( checkDiv . offsetTop !== 5 ) ; this . doesAddBorderForTableAndCells = ( td . offsetTop === 5 ) ; checkDiv . style . position = "fixed" , checkDiv . style . top = "20px" ; this . supportsFixedPosition = ( checkDiv . offsetTop === 20 || checkDiv . offsetTop === 15 ) ; checkDiv . style . position = checkDiv . style . top = "" ; innerDiv . style . overflow = "hidden" , innerDiv . style . position = "relative" ; this . subtractsBorderForOverflowNotVisible = ( checkDiv . offsetTop === - 5 ) ; this . doesNotIncludeMarginInBodyOffset = ( body . offsetTop !== bodyMarginTop ) ; body . removeChild ( container ) ; body = container = innerDiv = checkDiv = table = td = null ; jQuery . offset . initialize = jQuery . noop ; } , bodyOffset : function ( body ) { var top = body . offsetTop , left = body . offsetLeft ; jQuery . offset . initialize ( ) ; if ( jQuery . offset . doesNotIncludeMarginInBodyOffset ) { top += parseFloat ( jQuery . curCSS ( body , "marginTop" , true ) ) || 0 ; left += parseFloat ( jQuery . curCSS ( body , "marginLeft" , true ) ) || 0 ; }
return { top : top , left : left } ; } , setOffset : function ( elem , options , i ) { if ( /static/ . test ( jQuery . curCSS ( elem , "position" ) ) ) { elem . style . position = "relative" ; }
var curElem = jQuery ( elem ) , curOffset = curElem . offset ( ) , curTop = parseInt ( jQuery . curCSS ( elem , "top" , true ) , 10 ) || 0 , curLeft = parseInt ( jQuery . curCSS ( elem , "left" , true ) , 10 ) || 0 ; if ( jQuery . isFunction ( options ) ) { options = options . call ( elem , i , curOffset ) ; }
var props = { top : ( options . top - curOffset . top ) + curTop , left : ( options . left - curOffset . left ) + curLeft } ; if ( "using" in options ) { options . using . call ( elem , props ) ; } else { curElem . css ( props ) ; } } } ; jQuery . fn . extend ( { position : function ( ) { if ( ! this [ 0 ] ) { return null ; }
var elem = this [ 0 ] , offsetParent = this . offsetParent ( ) , offset = this . offset ( ) , parentOffset = /^body|html$/i . test ( offsetParent [ 0 ] . nodeName ) ? { top : 0 , left : 0 } : offsetParent . offset ( ) ; offset . top -= parseFloat ( jQuery . curCSS ( elem , "marginTop" , true ) ) || 0 ; offset . left -= parseFloat ( jQuery . curCSS ( elem , "marginLeft" , true ) ) || 0 ; parentOffset . top += parseFloat ( jQuery . curCSS ( offsetParent [ 0 ] , "borderTopWidth" , true ) ) || 0 ; parentOffset . left += parseFloat ( jQuery . curCSS ( offsetParent [ 0 ] , "borderLeftWidth" , true ) ) || 0 ; return { top : offset . top - parentOffset . top , left : offset . left - parentOffset . left } ; } , offsetParent : function ( ) { return this . map ( function ( ) { var offsetParent = this . offsetParent || document . body ; while ( offsetParent && ( ! /^body|html$/i . test ( offsetParent . nodeName ) && jQuery . css ( offsetParent , "position" ) === "static" ) ) { offsetParent = offsetParent . offsetParent ; }
return offsetParent ; } ) ; } } ) ; jQuery . each ( [ "Left" , "Top" ] , function ( i , name ) { var method = "scroll" + name ; jQuery . fn [ method ] = function ( val ) { var elem = this [ 0 ] , win ; if ( ! elem ) { return null ; }
if ( val !== undefined ) { return this . each ( function ( ) { win = getWindow ( this ) ; if ( win ) { win . scrollTo ( ! i ? val : jQuery ( win ) . scrollLeft ( ) , i ? val : jQuery ( win ) . scrollTop ( ) ) ; } else { this [ method ] = val ; } } ) ; } else { win = getWindow ( elem ) ; return win ? ( "pageXOffset" in win ) ? win [ i ? "pageYOffset" : "pageXOffset" ] : jQuery . support . boxModel && win . document . documentElement [ method ] || win . document . body [ method ] : elem [ method ] ; } } ; } ) ; function getWindow ( elem ) { return ( "scrollTo" in elem && elem . document ) ? elem : elem . nodeType === 9 ? elem . defaultView || elem . parentWindow : false ; }
jQuery . each ( [ "Height" , "Width" ] , function ( i , name ) { var type = name . toLowerCase ( ) ; jQuery . fn [ "inner" + name ] = function ( ) { return this [ 0 ] ? jQuery . css ( this [ 0 ] , type , false , "padding" ) : null ; } ; jQuery . fn [ "outer" + name ] = function ( margin ) { return this [ 0 ] ? jQuery . css ( this [ 0 ] , type , false , margin ? "margin" : "border" ) : null ; } ; jQuery . fn [ type ] = function ( size ) { var elem = this [ 0 ] ; if ( ! elem ) { return size == null ? null : this ; }
if ( jQuery . isFunction ( size ) ) { return this . each ( function ( i ) { var self = jQuery ( this ) ; self [ type ] ( size . call ( this , i , self [ type ] ( ) ) ) ; } ) ; }
return ( "scrollTo" in elem && elem . document ) ? elem . document . compatMode === "CSS1Compat" && elem . document . documentElement [ "client" + name ] || elem . document . body [ "client" + name ] : ( elem . nodeType === 9 ) ? Math . max ( elem . documentElement [ "client" + name ] , elem . body [ "scroll" + name ] , elem . documentElement [ "scroll" + name ] , elem . body [ "offset" + name ] , elem . documentElement [ "offset" + name ] ) : size === undefined ? jQuery . css ( elem , type ) : this . css ( type , typeof size === "string" ? size : size + "px" ) ; } ; } ) ; window . jQuery = window . $ = jQuery ; } ) ( window ) ; ( function ( $ ) { $ . fn . bgIframe = $ . fn . bgiframe = function ( s ) { if ( $ . browser . msie && /6.0/ . test ( navigator . userAgent ) ) { s = $ . extend ( { top : 'auto' , left : 'auto' , width : 'auto' , height : 'auto' , opacity : true , src : 'javascript:false;' } , s || { } ) ; var prop = function ( n ) { return n && n . constructor == Number ? n + 'px' : n ; } , html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="' + s . src + '"' + 'style="display:block;position:absolute;z-index:-1;' +
( s . opacity !== false ? 'filter:Alpha(Opacity=\'0\');' : '' ) + 'top:' + ( s . top == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')' : prop ( s . top ) ) + ';' + 'left:' + ( s . left == 'auto' ? 'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')' : prop ( s . left ) ) + ';' + 'width:' + ( s . width == 'auto' ? 'expression(this.parentNode.offsetWidth+\'px\')' : prop ( s . width ) ) + ';' + 'height:' + ( s . height == 'auto' ? 'expression(this.parentNode.offsetHeight+\'px\')' : prop ( s . height ) ) + ';' + '"/>' ; return this . each ( function ( ) { if ( $ ( '> iframe.bgiframe' , this ) . length == 0 )
this . insertBefore ( document . createElement ( html ) , this . firstChild ) ; } ) ; }
return this ; } ; } ) ( jQuery ) ; / *
2010-06-08 16:15:48 +00:00
* jQuery UI 1.8 . 2
2010-05-19 15:43:12 +00:00
*
* Copyright ( c ) 2010 AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT ( MIT - LICENSE . txt )
* and GPL ( GPL - LICENSE . txt ) licenses .
*
* http : //docs.jquery.com/UI
* /
2010-06-08 16:15:48 +00:00
( function ( $ ) { $ . ui = $ . ui || { } ; if ( $ . ui . version ) { return ; }
$ . extend ( $ . ui , { version : "1.8.2" , plugin : { add : function ( module , option , set ) { var proto = $ . ui [ module ] . prototype ; for ( var i in set ) { proto . plugins [ i ] = proto . plugins [ i ] || [ ] ; proto . plugins [ i ] . push ( [ option , set [ i ] ] ) ; } } , call : function ( instance , name , args ) { var set = instance . plugins [ name ] ; if ( ! set || ! instance . element [ 0 ] . parentNode ) { return ; }
2010-05-19 15:43:12 +00:00
for ( var i = 0 ; i < set . length ; i ++ ) { if ( instance . options [ set [ i ] [ 0 ] ] ) { set [ i ] [ 1 ] . apply ( instance . element , args ) ; } } } } , contains : function ( a , b ) { return document . compareDocumentPosition ? a . compareDocumentPosition ( b ) & 16 : a !== b && a . contains ( b ) ; } , hasScroll : function ( el , a ) { if ( $ ( el ) . css ( 'overflow' ) == 'hidden' ) { return false ; }
var scroll = ( a && a == 'left' ) ? 'scrollLeft' : 'scrollTop' , has = false ; if ( el [ scroll ] > 0 ) { return true ; }
2010-06-08 16:15:48 +00:00
el [ scroll ] = 1 ; has = ( el [ scroll ] > 0 ) ; el [ scroll ] = 0 ; return has ; } , isOverAxis : function ( x , reference , size ) { return ( x > reference ) && ( x < ( reference + size ) ) ; } , isOver : function ( y , x , top , left , height , width ) { return $ . ui . isOverAxis ( y , top , height ) && $ . ui . isOverAxis ( x , left , width ) ; } , 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 } } ) ; $ . fn . extend ( { _focus : $ . fn . focus , focus : function ( delay , fn ) { return typeof delay === 'number' ? this . each ( function ( ) { var elem = this ; setTimeout ( function ( ) { $ ( elem ) . focus ( ) ; ( fn && fn . call ( elem ) ) ; } , delay ) ; } ) : this . _focus . apply ( this , arguments ) ; } , enableSelection : function ( ) { return this . attr ( 'unselectable' , 'off' ) . css ( 'MozUserSelect' , '' ) ; } , disableSelection : function ( ) { return this . attr ( 'unselectable' , 'on' ) . css ( 'MozUserSelect' , 'none' ) ; } , scrollParent : function ( ) { var scrollParent ; if ( ( $ . browser . msie && ( /(static|relative)/ ) . test ( this . css ( 'position' ) ) ) || ( /absolute/ ) . test ( this . css ( 'position' ) ) ) { scrollParent = this . parents ( ) . filter ( function ( ) { return ( /(relative|absolute|fixed)/ ) . test ( $ . curCSS ( this , 'position' , 1 ) ) && ( /(auto|scroll)/ ) . test ( $ . curCSS ( this , 'overflow' , 1 ) + $ . curCSS ( this , 'overflow-y' , 1 ) + $ . curCSS ( this , 'overflow-x' , 1 ) ) ; } ) . eq ( 0 ) ; } else { scrollParent = this . parents ( ) . filter ( function ( ) { return ( /(auto|scroll)/ ) . test ( $ . curCSS ( this , 'overflow' , 1 ) + $ . curCSS ( this , 'overflow-y' , 1 ) + $ . curCSS ( this , 'overflow-x' , 1 ) ) ; } ) . eq ( 0 ) ; }
2010-05-19 15:43:12 +00:00
return ( /fixed/ ) . test ( this . css ( 'position' ) ) || ! scrollParent . length ? $ ( document ) : scrollParent ; } , zIndex : function ( zIndex ) { if ( zIndex !== undefined ) { return this . css ( 'zIndex' , zIndex ) ; }
if ( this . length ) { var elem = $ ( this [ 0 ] ) , position , value ; while ( elem . length && elem [ 0 ] !== document ) { position = elem . css ( 'position' ) ; if ( position == 'absolute' || position == 'relative' || position == 'fixed' )
{ value = parseInt ( elem . css ( 'zIndex' ) ) ; if ( ! isNaN ( value ) && value != 0 ) { return value ; } }
elem = elem . parent ( ) ; } }
return 0 ; } } ) ; $ . extend ( $ . expr [ ':' ] , { data : function ( elem , i , match ) { return ! ! $ . data ( elem , match [ 3 ] ) ; } , focusable : function ( element ) { var nodeName = element . nodeName . toLowerCase ( ) , tabIndex = $ . attr ( element , 'tabindex' ) ; return ( /input|select|textarea|button|object/ . test ( nodeName ) ? ! element . disabled : 'a' == nodeName || 'area' == nodeName ? element . href || ! isNaN ( tabIndex ) : ! isNaN ( tabIndex ) ) && ! $ ( element ) [ 'area' == nodeName ? 'parents' : 'closest' ] ( ':hidden' ) . length ; } , tabbable : function ( element ) { var tabIndex = $ . attr ( element , 'tabindex' ) ; return ( isNaN ( tabIndex ) || tabIndex >= 0 ) && $ ( element ) . is ( ':focusable' ) ; } } ) ; } ) ( jQuery ) ;
/ *
2010-06-08 16:15:48 +00:00
* jQuery UI Widget 1.8 . 2
2010-05-19 15:43:12 +00:00
*
* Copyright ( c ) 2010 AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT ( MIT - LICENSE . txt )
* and GPL ( GPL - LICENSE . txt ) licenses .
*
* http : //docs.jquery.com/UI/Widget
* /
( function ( $ ) { var _remove = $ . fn . remove ; $ . fn . remove = function ( selector , keepData ) { return this . each ( function ( ) { if ( ! keepData ) { if ( ! selector || $ . filter ( selector , [ this ] ) . length ) { $ ( "*" , this ) . add ( this ) . each ( function ( ) { $ ( this ) . triggerHandler ( "remove" ) ; } ) ; } }
return _remove . call ( $ ( this ) , selector , keepData ) ; } ) ; } ; $ . widget = function ( name , base , prototype ) { var namespace = name . split ( "." ) [ 0 ] , fullName ; name = name . split ( "." ) [ 1 ] ; fullName = namespace + "-" + name ; if ( ! prototype ) { prototype = base ; base = $ . Widget ; }
$ . expr [ ":" ] [ fullName ] = function ( elem ) { return ! ! $ . data ( elem , name ) ; } ; $ [ namespace ] = $ [ namespace ] || { } ; $ [ namespace ] [ name ] = function ( options , element ) { if ( arguments . length ) { this . _createWidget ( options , element ) ; } } ; var basePrototype = new base ( ) ; basePrototype . options = $ . extend ( { } , basePrototype . options ) ; $ [ namespace ] [ name ] . prototype = $ . extend ( true , basePrototype , { namespace : namespace , widgetName : name , widgetEventPrefix : $ [ namespace ] [ name ] . prototype . widgetEventPrefix || name , widgetBaseClass : fullName } , prototype ) ; $ . widget . bridge ( name , $ [ namespace ] [ name ] ) ; } ; $ . widget . bridge = function ( name , object ) { $ . fn [ name ] = function ( options ) { var isMethodCall = typeof options === "string" , args = Array . prototype . slice . call ( arguments , 1 ) , returnValue = this ; options = ! isMethodCall && args . length ? $ . extend . apply ( null , [ true , options ] . concat ( args ) ) : options ; if ( isMethodCall && options . substring ( 0 , 1 ) === "_" ) { return returnValue ; }
if ( isMethodCall ) { this . each ( function ( ) { var instance = $ . data ( this , name ) , methodValue = instance && $ . isFunction ( instance [ options ] ) ? instance [ options ] . apply ( instance , args ) : instance ; if ( methodValue !== instance && methodValue !== undefined ) { returnValue = methodValue ; return false ; } } ) ; } else { this . each ( function ( ) { var instance = $ . data ( this , name ) ; if ( instance ) { if ( options ) { instance . option ( options ) ; }
instance . _init ( ) ; } else { $ . data ( this , name , new object ( options , this ) ) ; } } ) ; }
return returnValue ; } ; } ; $ . Widget = function ( options , element ) { if ( arguments . length ) { this . _createWidget ( options , element ) ; } } ; $ . Widget . prototype = { widgetName : "widget" , widgetEventPrefix : "" , options : { disabled : false } , _createWidget : function ( options , element ) { this . element = $ ( element ) . data ( this . widgetName , this ) ; this . options = $ . extend ( true , { } , this . options , $ . metadata && $ . metadata . get ( element ) [ this . widgetName ] , options ) ; var self = this ; this . element . bind ( "remove." + this . widgetName , function ( ) { self . destroy ( ) ; } ) ; this . _create ( ) ; this . _init ( ) ; } , _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 ( key , value ) { var options = key , self = this ; if ( arguments . length === 0 ) { return $ . extend ( { } , self . options ) ; }
if ( typeof key === "string" ) { if ( value === undefined ) { return this . options [ key ] ; }
options = { } ; options [ key ] = value ; }
$ . each ( options , function ( key , value ) { self . _setOption ( key , value ) ; } ) ; return self ; } , _setOption : function ( key , value ) { this . options [ key ] = value ; if ( key === "disabled" ) { this . widget ( )
[ value ? "addClass" : "removeClass" ] ( this . widgetBaseClass + "-disabled" + " " + "ui-state-disabled" ) . attr ( "aria-disabled" , value ) ; }
return this ; } , enable : function ( ) { return this . _setOption ( "disabled" , false ) ; } , disable : function ( ) { return this . _setOption ( "disabled" , true ) ; } , _trigger : function ( type , event , data ) { var callback = this . options [ type ] ; event = $ . Event ( event ) ; event . type = ( type === this . widgetEventPrefix ? type : this . widgetEventPrefix + type ) . toLowerCase ( ) ; data = data || { } ; if ( event . originalEvent ) { for ( var i = $ . event . props . length , prop ; i ; ) { prop = $ . event . props [ -- i ] ; event [ prop ] = event . originalEvent [ prop ] ; } }
this . element . trigger ( event , data ) ; return ! ( $ . isFunction ( callback ) && callback . call ( this . element [ 0 ] , event , data ) === false || event . isDefaultPrevented ( ) ) ; } } ; } ) ( jQuery ) ;
/ *
2010-06-08 16:15:48 +00:00
* jQuery UI Mouse 1.8 . 2
2010-05-19 15:43:12 +00:00
*
* Copyright ( c ) 2010 AUTHORS . txt ( http : //jqueryui.com/about)
* Dual licensed under the MIT ( MIT - LICENSE . txt )
* and GPL ( GPL - LICENSE . txt ) licenses .
*
* http : //docs.jquery.com/UI/Mouse
*
* Depends :
* jquery . ui . widget . js
* /
( function ( $ ) { $ . widget ( "ui.mouse" , { options : { cancel : ':input,option' , distance : 1 , delay : 0 } , _mouseInit : function ( ) { var self = this ; this . element . bind ( 'mousedown.' + this . widgetName , function ( event ) { return self . _mouseDown ( event ) ; } ) . bind ( 'click.' + this . widgetName , function ( event ) { if ( self . _preventClickEvent ) { self . _preventClickEvent = false ; event . stopImmediatePropagation ( ) ; return false ; } } ) ; this . started = false ; } , _mouseDestroy : function ( ) { this . element . unbind ( '.' + this . widgetName ) ; } , _mouseDown : function ( event ) { event . originalEvent = event . originalEvent || { } ; if ( event . originalEvent . mouseHandled ) { return ; }
( this . _mouseStarted && this . _mouseUp ( event ) ) ; this . _mouseDownEvent = event ; var self = this , btnIsLeft = ( event . which == 1 ) , elIsCancel = ( typeof this . options . cancel == "string" ? $ ( event . target ) . parents ( ) . add ( event . target ) . filter ( this . options . cancel ) . length : false ) ; if ( ! btnIsLeft || elIsCancel || ! this . _mouseCapture ( event ) ) { return true ; }
this . mouseDelayMet = ! this . options . delay ; if ( ! this . mouseDelayMet ) { this . _mouseDelayTimer = setTimeout ( function ( ) { self . mouseDelayMet = true ; } , this . options . delay ) ; }
if ( this . _mouseDistanceMet ( event ) && this . _mouseDelayMet ( event ) ) { this . _mouseStarted = ( this . _mouseStart ( event ) !== false ) ; if ( ! this . _mouseStarted ) { event . preventDefault ( ) ; return true ; } }
this . _mouseMoveDelegate = function ( event ) { return self . _mouseMove ( event ) ; } ; this . _mouseUpDelegate = function ( event ) { return self . _mouseUp ( event ) ; } ; $ ( document ) . bind ( 'mousemove.' + this . widgetName , this . _mouseMoveDelegate ) . bind ( 'mouseup.' + this . widgetName , this . _mouseUpDelegate ) ; ( $ . browser . safari || event . preventDefault ( ) ) ; event . originalEvent . mouseHandled = true ; return true ; } , _mouseMove : function ( event ) { if ( $ . browser . msie && ! event . button ) { return this . _mouseUp ( event ) ; }
if ( this . _mouseStarted ) { this . _mouseDrag ( event ) ; return event . preventDefault ( ) ; }
if ( this . _mouseDistanceMet ( event ) && this . _mouseDelayMet ( event ) ) { this . _mouseStarted = ( this . _mouseStart ( this . _mouseDownEvent , event ) !== false ) ; ( this . _mouseStarted ? this . _mouseDrag ( event ) : this . _mouseUp ( event ) ) ; }
return ! this . _mouseStarted ; } , _mouseUp : function ( event ) { $ ( document ) . unbind ( 'mousemove.' + this . widgetName , this . _mouseMoveDelegate ) . unbind ( 'mouseup.' + this . widgetName , this . _mouseUpDelegate ) ; if ( this . _mouseStarted ) { this . _mouseStarted = false ; this . _preventClickEvent = ( event . target == this . _mouseDownEvent . target ) ; this . _mouseStop ( event ) ; }
return false ; } , _mouseDistanceMet : function ( event ) { return ( Math . max ( Math . abs ( this . _mouseDownEvent . pageX - event . pageX ) , Math . abs ( this . _mouseDownEvent . pageY - event . pageY ) ) >= this . options . distance ) ; } , _mouseDelayMet : function ( event ) { return this . mouseDelayMet ; } , _mouseStart : function ( event ) { } , _mouseDrag : function ( event ) { } , _mouseStop : function ( event ) { } , _mouseCapture : function ( event ) { return true ; } } ) ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.draggable" , $ . ui . mouse , { widgetEventPrefix : "drag" , options : { addClasses : true , appendTo : "parent" , axis : false , connectToSortable : false , containment : false , cursor : "auto" , cursorAt : false , grid : false , handle : false , helper : "original" , iframeFix : false , opacity : false , refreshPositions : false , revert : false , revertDuration : 500 , scope : "default" , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , snap : false , snapMode : "both" , snapTolerance : 20 , stack : false , zIndex : false } , _create : function ( ) { if ( this . options . helper == 'original' && ! ( /^(?:r|a|f)/ ) . test ( this . element . css ( "position" ) ) )
this . element [ 0 ] . style . position = 'relative' ; ( this . options . addClasses && this . element . addClass ( "ui-draggable" ) ) ; ( this . options . disabled && this . element . addClass ( "ui-draggable-disabled" ) ) ; this . _mouseInit ( ) ; } , destroy : function ( ) { if ( ! this . element . data ( 'draggable' ) ) return ; this . element . removeData ( "draggable" ) . unbind ( ".draggable" ) . removeClass ( "ui-draggable"
+ " ui-draggable-dragging"
+ " ui-draggable-disabled" ) ; this . _mouseDestroy ( ) ; return this ; } , _mouseCapture : function ( event ) { var o = this . options ; if ( this . helper || o . disabled || $ ( event . target ) . is ( '.ui-resizable-handle' ) )
return false ; this . handle = this . _getHandle ( event ) ; if ( ! this . handle )
return false ; return true ; } , _mouseStart : function ( event ) { var o = this . options ; this . helper = this . _createHelper ( event ) ; this . _cacheHelperProportions ( ) ; if ( $ . ui . ddmanager )
$ . ui . ddmanager . current = this ; this . _cacheMargins ( ) ; this . cssPosition = this . helper . css ( "position" ) ; this . scrollParent = this . helper . scrollParent ( ) ; this . offset = this . positionAbs = this . element . offset ( ) ; this . offset = { top : this . offset . top - this . margins . top , left : this . offset . left - this . margins . left } ; $ . extend ( this . offset , { click : { left : event . pageX - this . offset . left , top : event . pageY - this . offset . top } , parent : this . _getParentOffset ( ) , relative : this . _getRelativeOffset ( ) } ) ; this . originalPosition = this . position = this . _generatePosition ( event ) ; this . originalPageX = event . pageX ; this . originalPageY = event . pageY ; ( o . cursorAt && this . _adjustOffsetFromHelper ( o . cursorAt ) ) ; if ( o . containment )
this . _setContainment ( ) ; if ( this . _trigger ( "start" , event ) === false ) { this . _clear ( ) ; return false ; }
this . _cacheHelperProportions ( ) ; if ( $ . ui . ddmanager && ! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event ) ; this . helper . addClass ( "ui-draggable-dragging" ) ; this . _mouseDrag ( event , true ) ; return true ; } , _mouseDrag : function ( event , noPropagation ) { this . position = this . _generatePosition ( event ) ; this . positionAbs = this . _convertPositionTo ( "absolute" ) ; if ( ! noPropagation ) { var ui = this . _uiHash ( ) ; if ( this . _trigger ( 'drag' , event , ui ) === false ) { this . _mouseUp ( { } ) ; return false ; }
this . position = ui . position ; }
if ( ! this . options . axis || this . options . axis != "y" ) this . helper [ 0 ] . style . left = this . position . left + 'px' ; if ( ! this . options . axis || this . options . axis != "x" ) this . helper [ 0 ] . style . top = this . position . top + 'px' ; if ( $ . ui . ddmanager ) $ . ui . ddmanager . drag ( this , event ) ; return false ; } , _mouseStop : function ( event ) { var dropped = false ; if ( $ . ui . ddmanager && ! this . options . dropBehaviour )
dropped = $ . ui . ddmanager . drop ( this , event ) ; if ( this . dropped ) { dropped = this . dropped ; this . dropped = false ; }
if ( ! this . element [ 0 ] || ! this . element [ 0 ] . parentNode )
return false ; if ( ( this . options . revert == "invalid" && ! dropped ) || ( this . options . revert == "valid" && dropped ) || this . options . revert === true || ( $ . isFunction ( this . options . revert ) && this . options . revert . call ( this . element , dropped ) ) ) { var self = this ; $ ( this . helper ) . animate ( this . originalPosition , parseInt ( this . options . revertDuration , 10 ) , function ( ) { if ( self . _trigger ( "stop" , event ) !== false ) { self . _clear ( ) ; } } ) ; } else { if ( this . _trigger ( "stop" , event ) !== false ) { this . _clear ( ) ; } }
return false ; } , cancel : function ( ) { if ( this . helper . is ( ".ui-draggable-dragging" ) ) { this . _mouseUp ( { } ) ; } else { this . _clear ( ) ; }
return this ; } , _getHandle : function ( event ) { var handle = ! this . options . handle || ! $ ( this . options . handle , this . element ) . length ? true : false ; $ ( this . options . handle , this . element ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { if ( this == event . target ) handle = true ; } ) ; return handle ; } , _createHelper : function ( event ) { var o = this . options ; var helper = $ . isFunction ( o . helper ) ? $ ( o . helper . apply ( this . element [ 0 ] , [ event ] ) ) : ( o . helper == 'clone' ? this . element . clone ( ) : this . element ) ; if ( ! helper . parents ( 'body' ) . length )
helper . appendTo ( ( o . appendTo == 'parent' ? this . element [ 0 ] . parentNode : o . appendTo ) ) ; if ( helper [ 0 ] != this . element [ 0 ] && ! ( /(fixed|absolute)/ ) . test ( helper . css ( "position" ) ) )
helper . css ( "position" , "absolute" ) ; return helper ; } , _adjustOffsetFromHelper : function ( obj ) { if ( typeof obj == 'string' ) { obj = obj . split ( ' ' ) ; }
if ( $ . isArray ( obj ) ) { obj = { left : + obj [ 0 ] , top : + obj [ 1 ] || 0 } ; }
if ( 'left' in obj ) { this . offset . click . left = obj . left + this . margins . left ; }
if ( 'right' in obj ) { this . offset . click . left = this . helperProportions . width - obj . right + this . margins . left ; }
if ( 'top' in obj ) { this . offset . click . top = obj . top + this . margins . top ; }
if ( 'bottom' in obj ) { this . offset . click . top = this . helperProportions . height - obj . bottom + this . margins . top ; } } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var po = this . offsetParent . offset ( ) ; if ( this . cssPosition == 'absolute' && this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) { po . left += this . scrollParent . scrollLeft ( ) ; po . top += this . scrollParent . scrollTop ( ) ; }
if ( ( this . offsetParent [ 0 ] == document . body ) || ( this . offsetParent [ 0 ] . tagName && this . offsetParent [ 0 ] . tagName . toLowerCase ( ) == 'html' && $ . browser . msie ) )
po = { top : 0 , left : 0 } ; return { top : po . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : po . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } ; } , _getRelativeOffset : function ( ) { if ( this . cssPosition == "relative" ) { var p = this . element . position ( ) ; return { top : p . top - ( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : p . left - ( parseInt ( this . helper . css ( "left" ) , 10 ) || 0 ) + this . scrollParent . scrollLeft ( ) } ; } else { return { top : 0 , left : 0 } ; } } , _cacheMargins : function ( ) { this . margins = { left : ( parseInt ( this . element . css ( "marginLeft" ) , 10 ) || 0 ) , top : ( parseInt ( this . element . css ( "marginTop" ) , 10 ) || 0 ) } ; } , _cacheHelperProportions : function ( ) { this . helperProportions = { width : this . helper . outerWidth ( ) , height : this . helper . outerHeight ( ) } ; } , _setContainment : function ( ) { var o = this . options ; if ( o . containment == 'parent' ) o . containment = this . helper [ 0 ] . parentNode ; if ( o . containment == 'document' || o . containment == 'window' ) this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , $ ( o . containment == 'document' ? document : window ) . width ( ) - this . helperProportions . width - this . margins . left , ( $ ( o . containment == 'document' ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ] ; if ( ! ( /^(document|window|parent)$/ ) . test ( o . containment ) && o . containment . constructor != Array ) { var ce = $ ( o . containment ) [ 0 ] ; if ( ! ce ) return ; var co = $ ( o . containment ) . offset ( ) ; var over = ( $ ( ce ) . css ( "overflow" ) != 'hidden' ) ; this . containment = [ co . left + ( parseInt ( $ ( ce ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( $ ( ce ) . css ( "paddingLeft" ) , 10 ) || 0 ) - this . margins . left , co . top + ( parseInt ( $ ( ce ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( $ ( ce ) . css ( "paddingTop" ) , 10 ) || 0 ) - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( $ ( ce ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions . width - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ) . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( $ ( ce ) . css ( "paddingBottom" ) , 10 ) || 0 ) - this . helperProportions . height - this . margins . top ] ; } else if ( o . containment . constructor == Array ) { this . containment = o . containment ; } } , _convertPositionTo : function ( d , pos ) { if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 : - 1 ; var o = this . options , scroll = this . cssPosition == 'absolute' && ! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ) . test ( scroll [ 0 ] . tagName ) ; return { top : ( pos . top
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
- ( $ . browser . safari && $ . browser . version < 526 && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollTop ( ) : ( scrollIsRootNode ? 0 : scroll . scrollTop ( ) ) ) * mod ) ) , left : ( pos . left
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
- ( $ . browser . safari && $ . browser . version < 526 && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollLeft ( ) : scrollIsRootNode ? 0 : scroll . scrollLeft ( ) ) * mod ) ) } ; } , _generatePosition : function ( event ) { var o = this . options , scroll = this . cssPosition == 'absolute' && ! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ) . test ( scroll [ 0 ] . tagName ) ; var pageX = event . pageX ; var pageY = event . pageY ; if ( this . originalPosition ) { if ( this . containment ) { if ( event . pageX - this . offset . click . left < this . containment [ 0 ] ) pageX = this . containment [ 0 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top < this . containment [ 1 ] ) pageY = this . containment [ 1 ] + this . offset . click . top ; if ( event . pageX - this . offset . click . left > this . containment [ 2 ] ) pageX = this . containment [ 2 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top > this . containment [ 3 ] ) pageY = this . containment [ 3 ] + this . offset . click . top ; }
if ( o . grid ) { var top = this . originalPageY + Math . round ( ( pageY - this . originalPageY ) / o . grid [ 1 ] ) * o . grid [ 1 ] ; pageY = this . containment ? ( ! ( top - this . offset . click . top < this . containment [ 1 ] || top - this . offset . click . top > this . containment [ 3 ] ) ? top : ( ! ( top - this . offset . click . top < this . containment [ 1 ] ) ? top - o . grid [ 1 ] : top + o . grid [ 1 ] ) ) : top ; var left = this . originalPageX + Math . round ( ( pageX - this . originalPageX ) / o . grid [ 0 ] ) * o . grid [ 0 ] ; pageX = this . containment ? ( ! ( left - this . offset . click . left < this . containment [ 0 ] || left - this . offset . click . left > this . containment [ 2 ] ) ? left : ( ! ( left - this . offset . click . left < this . containment [ 0 ] ) ? left - o . grid [ 0 ] : left + o . grid [ 0 ] ) ) : left ; } }
return { top : ( pageY
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
+ ( $ . browser . safari && $ . browser . version < 526 && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollTop ( ) : ( scrollIsRootNode ? 0 : scroll . scrollTop ( ) ) ) ) ) , left : ( pageX
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
2010-06-08 16:15:48 +00:00
+ ( $ . browser . safari && $ . browser . version < 526 && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollLeft ( ) : scrollIsRootNode ? 0 : scroll . scrollLeft ( ) ) ) ) } ; } , _clear : function ( ) { this . helper . removeClass ( "ui-draggable-dragging" ) ; if ( this . helper [ 0 ] != this . element [ 0 ] && ! this . cancelHelperRemoval ) this . helper . remove ( ) ; this . helper = null ; this . cancelHelperRemoval = false ; } , _trigger : function ( type , event , ui ) { ui = ui || this . _uiHash ( ) ; $ . ui . plugin . call ( this , type , [ event , ui ] ) ; if ( type == "drag" ) this . positionAbs = this . _convertPositionTo ( "absolute" ) ; return $ . Widget . prototype . _trigger . call ( this , type , event , ui ) ; } , plugins : { } , _uiHash : function ( event ) { return { helper : this . helper , position : this . position , originalPosition : this . originalPosition , offset : this . positionAbs } ; } } ) ; $ . extend ( $ . ui . draggable , { version : "1.8.2" } ) ; $ . ui . plugin . add ( "draggable" , "connectToSortable" , { start : function ( event , ui ) { var inst = $ ( this ) . data ( "draggable" ) , o = inst . options , uiSortable = $ . extend ( { } , ui , { item : inst . element } ) ; inst . sortables = [ ] ; $ ( o . connectToSortable ) . each ( function ( ) { var sortable = $ . data ( this , 'sortable' ) ; if ( sortable && ! sortable . options . disabled ) { inst . sortables . push ( { instance : sortable , shouldRevert : sortable . options . revert } ) ; sortable . _refreshItems ( ) ; sortable . _trigger ( "activate" , event , uiSortable ) ; } } ) ; } , stop : function ( event , ui ) { var inst = $ ( this ) . data ( "draggable" ) , uiSortable = $ . extend ( { } , ui , { item : inst . element } ) ; $ . each ( inst . sortables , function ( ) { if ( this . instance . isOver ) { this . instance . isOver = 0 ; inst . cancelHelperRemoval = true ; this . instance . cancelHelperRemoval = false ; if ( this . shouldRevert ) this . instance . options . revert = true ; this . instance . _mouseStop ( event ) ; this . instance . options . helper = this . instance . options . _helper ; if ( inst . options . helper == 'original' )
2010-05-19 15:43:12 +00:00
this . instance . currentItem . css ( { top : 'auto' , left : 'auto' } ) ; } else { this . instance . cancelHelperRemoval = false ; this . instance . _trigger ( "deactivate" , event , uiSortable ) ; } } ) ; } , drag : function ( event , ui ) { var inst = $ ( this ) . data ( "draggable" ) , self = this ; var checkPos = function ( o ) { var dyClick = this . offset . click . top , dxClick = this . offset . click . left ; var helperTop = this . positionAbs . top , helperLeft = this . positionAbs . left ; var itemHeight = o . height , itemWidth = o . width ; var itemTop = o . top , itemLeft = o . left ; return $ . ui . isOver ( helperTop + dyClick , helperLeft + dxClick , itemTop , itemLeft , itemHeight , itemWidth ) ; } ; $ . each ( inst . sortables , function ( i ) { this . instance . positionAbs = inst . positionAbs ; this . instance . helperProportions = inst . helperProportions ; this . instance . offset . click = inst . offset . click ; if ( this . instance . _intersectsWith ( this . instance . containerCache ) ) { if ( ! this . instance . isOver ) { this . instance . isOver = 1 ; this . instance . currentItem = $ ( self ) . clone ( ) . appendTo ( this . instance . element ) . data ( "sortable-item" , true ) ; this . instance . options . _helper = this . instance . options . helper ; this . instance . options . helper = function ( ) { return ui . helper [ 0 ] ; } ; event . target = this . instance . currentItem [ 0 ] ; this . instance . _mouseCapture ( event , true ) ; this . instance . _mouseStart ( event , true , true ) ; this . instance . offset . click . top = inst . offset . click . top ; this . instance . offset . click . left = inst . offset . click . left ; this . instance . offset . parent . left -= inst . offset . parent . left - this . instance . offset . parent . left ; this . instance . offset . parent . top -= inst . offset . parent . top - this . instance . offset . parent . top ; inst . _trigger ( "toSortable" , event ) ; inst . dropped = this . instance . element ; inst . currentItem = inst . element ; this . instance . fromOutside = inst ; }
if ( this . instance . currentItem ) this . instance . _mouseDrag ( event ) ; } else { if ( this . instance . isOver ) { this . instance . isOver = 0 ; this . instance . cancelHelperRemoval = true ; this . instance . options . revert = false ; this . instance . _trigger ( 'out' , event , this . instance . _uiHash ( this . instance ) ) ; this . instance . _mouseStop ( event , true ) ; this . instance . options . helper = this . instance . options . _helper ; this . instance . currentItem . remove ( ) ; if ( this . instance . placeholder ) this . instance . placeholder . remove ( ) ; inst . _trigger ( "fromSortable" , event ) ; inst . dropped = false ; } } ; } ) ; } } ) ; $ . ui . plugin . add ( "draggable" , "cursor" , { start : function ( event , ui ) { var t = $ ( 'body' ) , o = $ ( this ) . data ( 'draggable' ) . options ; if ( t . css ( "cursor" ) ) o . _cursor = t . css ( "cursor" ) ; t . css ( "cursor" , o . cursor ) ; } , stop : function ( event , ui ) { var o = $ ( this ) . data ( 'draggable' ) . options ; if ( o . _cursor ) $ ( 'body' ) . css ( "cursor" , o . _cursor ) ; } } ) ; $ . ui . plugin . add ( "draggable" , "iframeFix" , { start : function ( event , ui ) { var o = $ ( this ) . data ( 'draggable' ) . options ; $ ( o . iframeFix === true ? "iframe" : o . iframeFix ) . each ( function ( ) { $ ( '<div class="ui-draggable-iframeFix" style="background: #fff;"></div>' ) . css ( { width : this . offsetWidth + "px" , height : this . offsetHeight + "px" , position : "absolute" , opacity : "0.001" , zIndex : 1000 } ) . css ( $ ( this ) . offset ( ) ) . appendTo ( "body" ) ; } ) ; } , stop : function ( event , ui ) { $ ( "div.ui-draggable-iframeFix" ) . each ( function ( ) { this . parentNode . removeChild ( this ) ; } ) ; } } ) ; $ . ui . plugin . add ( "draggable" , "opacity" , { start : function ( event , ui ) { var t = $ ( ui . helper ) , o = $ ( this ) . data ( 'draggable' ) . options ; if ( t . css ( "opacity" ) ) o . _opacity = t . css ( "opacity" ) ; t . css ( 'opacity' , o . opacity ) ; } , stop : function ( event , ui ) { var o = $ ( this ) . data ( 'draggable' ) . options ; if ( o . _opacity ) $ ( ui . helper ) . css ( 'opacity' , o . _opacity ) ; } } ) ; $ . ui . plugin . add ( "draggable" , "scroll" , { start : function ( event , ui ) { var i = $ ( this ) . data ( "draggable" ) ; if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ] . tagName != 'HTML' ) i . overflowOffset = i . scrollParent . offset ( ) ; } , drag : function ( event , ui ) { var i = $ ( this ) . data ( "draggable" ) , o = i . options , scrolled = false ; if ( i . scrollParent [ 0 ] != document && i . scrollParent [ 0 ] . tagName != 'HTML' ) { if ( ! o . axis || o . axis != 'x' ) { if ( ( i . overflowOffset . top + i . scrollParent [ 0 ] . offsetHeight ) - event . pageY < o . scrollSensitivity )
i . scrollParent [ 0 ] . scrollTop = scrolled = i . scrollParent [ 0 ] . scrollTop + o . scrollSpeed ; else if ( event . pageY - i . overflowOffset . top < o . scrollSensitivity )
i . scrollParent [ 0 ] . scrollTop = scrolled = i . scrollParent [ 0 ] . scrollTop - o . scrollSpeed ; }
if ( ! o . axis || o . axis != 'y' ) { if ( ( i . overflowOffset . left + i . scrollParent [ 0 ] . offsetWidth ) - event . pageX < o . scrollSensitivity )
i . scrollParent [ 0 ] . scrollLeft = scrolled = i . scrollParent [ 0 ] . scrollLeft + o . scrollSpeed ; else if ( event . pageX - i . overflowOffset . left < o . scrollSensitivity )
i . scrollParent [ 0 ] . scrollLeft = scrolled = i . scrollParent [ 0 ] . scrollLeft - o . scrollSpeed ; } } else { if ( ! o . axis || o . axis != 'x' ) { if ( event . pageY - $ ( document ) . scrollTop ( ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollTop ( $ ( document ) . scrollTop ( ) - o . scrollSpeed ) ; else if ( $ ( window ) . height ( ) - ( event . pageY - $ ( document ) . scrollTop ( ) ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollTop ( $ ( document ) . scrollTop ( ) + o . scrollSpeed ) ; }
if ( ! o . axis || o . axis != 'y' ) { if ( event . pageX - $ ( document ) . scrollLeft ( ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollLeft ( $ ( document ) . scrollLeft ( ) - o . scrollSpeed ) ; else if ( $ ( window ) . width ( ) - ( event . pageX - $ ( document ) . scrollLeft ( ) ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollLeft ( $ ( document ) . scrollLeft ( ) + o . scrollSpeed ) ; } }
if ( scrolled !== false && $ . ui . ddmanager && ! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( i , event ) ; } } ) ; $ . ui . plugin . add ( "draggable" , "snap" , { start : function ( event , ui ) { var i = $ ( this ) . data ( "draggable" ) , o = i . options ; i . snapElements = [ ] ; $ ( o . snap . constructor != String ? ( o . snap . items || ':data(draggable)' ) : o . snap ) . each ( function ( ) { var $t = $ ( this ) ; var $o = $t . offset ( ) ; if ( this != i . element [ 0 ] ) i . snapElements . push ( { item : this , width : $t . outerWidth ( ) , height : $t . outerHeight ( ) , top : $o . top , left : $o . left } ) ; } ) ; } , drag : function ( event , ui ) { var inst = $ ( this ) . data ( "draggable" ) , o = inst . options ; var d = o . snapTolerance ; var x1 = ui . offset . left , x2 = x1 + inst . helperProportions . width , y1 = ui . offset . top , y2 = y1 + inst . helperProportions . height ; for ( var i = inst . snapElements . length - 1 ; i >= 0 ; i -- ) { var l = inst . snapElements [ i ] . left , r = l + inst . snapElements [ i ] . width , t = inst . snapElements [ i ] . top , b = t + inst . snapElements [ i ] . height ; if ( ! ( ( l - d < x1 && x1 < r + d && t - d < y1 && y1 < b + d ) || ( l - d < x1 && x1 < r + d && t - d < y2 && y2 < b + d ) || ( l - d < x2 && x2 < r + d && t - d < y1 && y1 < b + d ) || ( l - d < x2 && x2 < r + d && t - d < y2 && y2 < b + d ) ) ) { if ( inst . snapElements [ i ] . snapping ) ( inst . options . snap . release && inst . options . snap . release . call ( inst . element , event , $ . extend ( inst . _uiHash ( ) , { snapItem : inst . snapElements [ i ] . item } ) ) ) ; inst . snapElements [ i ] . snapping = false ; continue ; }
if ( o . snapMode != 'inner' ) { var ts = Math . abs ( t - y2 ) <= d ; var bs = Math . abs ( b - y1 ) <= d ; var ls = Math . abs ( l - x2 ) <= d ; var rs = Math . abs ( r - x1 ) <= d ; if ( ts ) ui . position . top = inst . _convertPositionTo ( "relative" , { top : t - inst . helperProportions . height , left : 0 } ) . top - inst . margins . top ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" , { top : b , left : 0 } ) . top - inst . margins . top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" , { top : 0 , left : l - inst . helperProportions . width } ) . left - inst . margins . left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" , { top : 0 , left : r } ) . left - inst . margins . left ; }
var first = ( ts || bs || ls || rs ) ; if ( o . snapMode != 'outer' ) { var ts = Math . abs ( t - y1 ) <= d ; var bs = Math . abs ( b - y2 ) <= d ; var ls = Math . abs ( l - x1 ) <= d ; var rs = Math . abs ( r - x2 ) <= d ; if ( ts ) ui . position . top = inst . _convertPositionTo ( "relative" , { top : t , left : 0 } ) . top - inst . margins . top ; if ( bs ) ui . position . top = inst . _convertPositionTo ( "relative" , { top : b - inst . helperProportions . height , left : 0 } ) . top - inst . margins . top ; if ( ls ) ui . position . left = inst . _convertPositionTo ( "relative" , { top : 0 , left : l } ) . left - inst . margins . left ; if ( rs ) ui . position . left = inst . _convertPositionTo ( "relative" , { top : 0 , left : r - inst . helperProportions . width } ) . left - inst . margins . left ; }
if ( ! inst . snapElements [ i ] . snapping && ( ts || bs || ls || rs || first ) )
( inst . options . snap . snap && inst . options . snap . snap . call ( inst . element , event , $ . extend ( inst . _uiHash ( ) , { snapItem : inst . snapElements [ i ] . item } ) ) ) ; inst . snapElements [ i ] . snapping = ( ts || bs || ls || rs || first ) ; } ; } } ) ; $ . ui . plugin . add ( "draggable" , "stack" , { start : function ( event , ui ) { var o = $ ( this ) . data ( "draggable" ) . options ; var group = $ . makeArray ( $ ( o . stack ) ) . sort ( function ( a , b ) { return ( parseInt ( $ ( a ) . css ( "zIndex" ) , 10 ) || 0 ) - ( parseInt ( $ ( b ) . css ( "zIndex" ) , 10 ) || 0 ) ; } ) ; if ( ! group . length ) { return ; }
var min = parseInt ( group [ 0 ] . style . zIndex ) || 0 ; $ ( group ) . each ( function ( i ) { this . style . zIndex = min + i ; } ) ; this [ 0 ] . style . zIndex = min + group . length ; } } ) ; $ . ui . plugin . add ( "draggable" , "zIndex" , { start : function ( event , ui ) { var t = $ ( ui . helper ) , o = $ ( this ) . data ( "draggable" ) . options ; if ( t . css ( "zIndex" ) ) o . _zIndex = t . css ( "zIndex" ) ; t . css ( 'zIndex' , o . zIndex ) ; } , stop : function ( event , ui ) { var o = $ ( this ) . data ( "draggable" ) . options ; if ( o . _zIndex ) $ ( ui . helper ) . css ( 'zIndex' , o . _zIndex ) ; } } ) ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.droppable" , { widgetEventPrefix : "drop" , options : { accept : '*' , activeClass : false , addClasses : true , greedy : false , hoverClass : false , scope : 'default' , tolerance : 'intersect' } , _create : function ( ) { var o = this . options , accept = o . accept ; this . isover = 0 ; this . isout = 1 ; this . accept = $ . isFunction ( accept ) ? accept : function ( d ) { return d . is ( accept ) ; } ; this . proportions = { width : this . element [ 0 ] . offsetWidth , height : this . element [ 0 ] . offsetHeight } ; $ . ui . ddmanager . droppables [ o . scope ] = $ . ui . ddmanager . droppables [ o . scope ] || [ ] ; $ . ui . ddmanager . droppables [ o . scope ] . push ( this ) ; ( o . addClasses && this . element . addClass ( "ui-droppable" ) ) ; } , destroy : function ( ) { var drop = $ . ui . ddmanager . droppables [ this . options . scope ] ; for ( var i = 0 ; i < drop . length ; i ++ )
if ( drop [ i ] == this )
drop . splice ( i , 1 ) ; this . element . removeClass ( "ui-droppable ui-droppable-disabled" ) . removeData ( "droppable" ) . unbind ( ".droppable" ) ; return this ; } , _setOption : function ( key , value ) { if ( key == 'accept' ) { this . accept = $ . isFunction ( value ) ? value : function ( d ) { return d . is ( value ) ; } ; }
$ . Widget . prototype . _setOption . apply ( this , arguments ) ; } , _activate : function ( event ) { var draggable = $ . ui . ddmanager . current ; if ( this . options . activeClass ) this . element . addClass ( this . options . activeClass ) ; ( draggable && this . _trigger ( 'activate' , event , this . ui ( draggable ) ) ) ; } , _deactivate : function ( event ) { var draggable = $ . ui . ddmanager . current ; if ( this . options . activeClass ) this . element . removeClass ( this . options . activeClass ) ; ( draggable && this . _trigger ( 'deactivate' , event , this . ui ( draggable ) ) ) ; } , _over : function ( event ) { var draggable = $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element ) [ 0 ] == this . element [ 0 ] ) return ; if ( this . accept . call ( this . element [ 0 ] , ( draggable . currentItem || draggable . element ) ) ) { if ( this . options . hoverClass ) this . element . addClass ( this . options . hoverClass ) ; this . _trigger ( 'over' , event , this . ui ( draggable ) ) ; } } , _out : function ( event ) { var draggable = $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element ) [ 0 ] == this . element [ 0 ] ) return ; if ( this . accept . call ( this . element [ 0 ] , ( draggable . currentItem || draggable . element ) ) ) { if ( this . options . hoverClass ) this . element . removeClass ( this . options . hoverClass ) ; this . _trigger ( 'out' , event , this . ui ( draggable ) ) ; } } , _drop : function ( event , custom ) { var draggable = custom || $ . ui . ddmanager . current ; if ( ! draggable || ( draggable . currentItem || draggable . element ) [ 0 ] == this . element [ 0 ] ) return false ; var childrenIntersection = false ; this . element . find ( ":data(droppable)" ) . not ( ".ui-draggable-dragging" ) . each ( function ( ) { var inst = $ . data ( this , 'droppable' ) ; if ( inst . options . greedy && ! inst . options . disabled && inst . options . scope == draggable . options . scope && inst . accept . call ( inst . element [ 0 ] , ( draggable . currentItem || draggable . element ) ) && $ . ui . intersect ( draggable , $ . extend ( inst , { offset : inst . element . offset ( ) } ) , inst . options . tolerance ) ) { childrenIntersection = true ; return false ; } } ) ; if ( childrenIntersection ) return false ; if ( this . accept . call ( this . element [ 0 ] , ( draggable . currentItem || draggable . element ) ) ) { if ( this . options . activeClass ) this . element . removeClass ( this . options . activeClass ) ; if ( this . options . hoverClass ) this . element . removeClass ( this . options . hoverClass ) ; this . _trigger ( 'drop' , event , this . ui ( draggable ) ) ; return this . element ; }
2010-06-08 16:15:48 +00:00
return false ; } , ui : function ( c ) { return { draggable : ( c . currentItem || c . element ) , helper : c . helper , position : c . position , offset : c . positionAbs } ; } } ) ; $ . extend ( $ . ui . droppable , { version : "1.8.2" } ) ; $ . ui . intersect = function ( draggable , droppable , toleranceMode ) { if ( ! droppable . offset ) return false ; var x1 = ( draggable . positionAbs || draggable . position . absolute ) . left , x2 = x1 + draggable . helperProportions . width , y1 = ( draggable . positionAbs || draggable . position . absolute ) . top , y2 = y1 + draggable . helperProportions . height ; var l = droppable . offset . left , r = l + droppable . proportions . width , t = droppable . offset . top , b = t + droppable . proportions . height ; switch ( toleranceMode ) { case 'fit' : return ( l < x1 && x2 < r && t < y1 && y2 < b ) ; break ; case 'intersect' : return ( l < x1 + ( draggable . helperProportions . width / 2 ) && x2 - ( draggable . helperProportions . width / 2 ) < r && t < y1 + ( draggable . helperProportions . height / 2 ) && y2 - ( draggable . helperProportions . height / 2 ) < b ) ; break ; case 'pointer' : var draggableLeft = ( ( draggable . positionAbs || draggable . position . absolute ) . left + ( draggable . clickOffset || draggable . offset . click ) . left ) , draggableTop = ( ( draggable . positionAbs || draggable . position . absolute ) . top + ( draggable . clickOffset || draggable . offset . click ) . top ) , isOver = $ . ui . isOver ( draggableTop , draggableLeft , t , l , droppable . proportions . height , droppable . proportions . width ) ; return isOver ; break ; case 'touch' : return ( ( y1 >= t && y1 <= b ) || ( y2 >= t && y2 <= b ) || ( y1 < t && y2 > b ) ) && ( ( x1 >= l && x1 <= r ) || ( x2 >= l && x2 <= r ) || ( x1 < l && x2 > r ) ) ; break ; default : return false ; break ; } } ; $ . ui . ddmanager = { current : null , droppables : { 'default' : [ ] } , prepareOffsets : function ( t , event ) { var m = $ . ui . ddmanager . droppables [ t . options . scope ] || [ ] ; var type = event ? event . type : null ; var list = ( t . currentItem || t . element ) . find ( ":data(droppable)" ) . andSelf ( ) ; droppablesLoop : for ( var i = 0 ; i < m . length ; i ++ ) { if ( m [ i ] . options . disabled || ( t && ! m [ i ] . accept . call ( m [ i ] . element [ 0 ] , ( t . currentItem || t . element ) ) ) ) continue ; for ( var j = 0 ; j < list . length ; j ++ ) { if ( list [ j ] == m [ i ] . element [ 0 ] ) { m [ i ] . proportions . height = 0 ; continue droppablesLoop ; } } ; m [ i ] . visible = m [ i ] . element . css ( "display" ) != "none" ; if ( ! m [ i ] . visible ) continue ; m [ i ] . offset = m [ i ] . element . offset ( ) ; m [ i ] . proportions = { width : m [ i ] . element [ 0 ] . offsetWidth , height : m [ i ] . element [ 0 ] . offsetHeight } ; if ( type == "mousedown" ) m [ i ] . _activate . call ( m [ i ] , event ) ; } } , drop : function ( draggable , event ) { var dropped = false ; $ . each ( $ . ui . ddmanager . droppables [ draggable . options . scope ] || [ ] , function ( ) { if ( ! this . options ) return ; if ( ! this . options . disabled && this . visible && $ . ui . intersect ( draggable , this , this . options . tolerance ) )
2010-05-19 15:43:12 +00:00
dropped = dropped || this . _drop . call ( this , event ) ; if ( ! this . options . disabled && this . visible && this . accept . call ( this . element [ 0 ] , ( draggable . currentItem || draggable . element ) ) ) { this . isout = 1 ; this . isover = 0 ; this . _deactivate . call ( this , event ) ; } } ) ; return dropped ; } , drag : function ( draggable , event ) { if ( draggable . options . refreshPositions ) $ . ui . ddmanager . prepareOffsets ( draggable , event ) ; $ . each ( $ . ui . ddmanager . droppables [ draggable . options . scope ] || [ ] , function ( ) { if ( this . options . disabled || this . greedyChild || ! this . visible ) return ; var intersects = $ . ui . intersect ( draggable , this , this . options . tolerance ) ; var c = ! intersects && this . isover == 1 ? 'isout' : ( intersects && this . isover == 0 ? 'isover' : null ) ; if ( ! c ) return ; var parentInstance ; if ( this . options . greedy ) { var parent = this . element . parents ( ':data(droppable):eq(0)' ) ; if ( parent . length ) { parentInstance = $ . data ( parent [ 0 ] , 'droppable' ) ; parentInstance . greedyChild = ( c == 'isover' ? 1 : 0 ) ; } }
if ( parentInstance && c == 'isover' ) { parentInstance [ 'isover' ] = 0 ; parentInstance [ 'isout' ] = 1 ; parentInstance . _out . call ( parentInstance , event ) ; }
this [ c ] = 1 ; this [ c == 'isout' ? 'isover' : 'isout' ] = 0 ; this [ c == "isover" ? "_over" : "_out" ] . call ( this , event ) ; if ( parentInstance && c == 'isout' ) { parentInstance [ 'isout' ] = 0 ; parentInstance [ 'isover' ] = 1 ; parentInstance . _over . call ( parentInstance , event ) ; } } ) ; } } ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.resizable" , $ . ui . mouse , { widgetEventPrefix : "resize" , options : { alsoResize : false , animate : false , animateDuration : "slow" , animateEasing : "swing" , aspectRatio : false , autoHide : false , containment : false , ghost : false , grid : false , handles : "e,s,se" , helper : false , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , zIndex : 1000 } , _create : function ( ) { var self = this , o = this . options ; this . element . addClass ( "ui-resizable" ) ; $ . extend ( this , { _aspectRatio : ! ! ( o . aspectRatio ) , aspectRatio : o . aspectRatio , originalElement : this . element , _proportionallyResizeElements : [ ] , _helper : o . helper || o . ghost || o . animate ? o . helper || 'ui-resizable-helper' : null } ) ; if ( this . element [ 0 ] . nodeName . match ( /canvas|textarea|input|select|button|img/i ) ) { if ( /relative/ . test ( this . element . css ( 'position' ) ) && $ . browser . opera )
this . element . css ( { position : 'relative' , top : 'auto' , left : 'auto' } ) ; this . element . wrap ( $ ( '<div class="ui-wrapper" style="overflow: hidden;"></div>' ) . css ( { position : this . element . css ( 'position' ) , width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) , top : this . element . css ( 'top' ) , left : this . element . css ( 'left' ) } ) ) ; this . element = this . element . parent ( ) . data ( "resizable" , this . element . data ( 'resizable' ) ) ; this . elementIsWrapper = true ; this . element . css ( { marginLeft : this . originalElement . css ( "marginLeft" ) , marginTop : this . originalElement . css ( "marginTop" ) , marginRight : this . originalElement . css ( "marginRight" ) , marginBottom : this . originalElement . css ( "marginBottom" ) } ) ; this . originalElement . css ( { marginLeft : 0 , marginTop : 0 , marginRight : 0 , marginBottom : 0 } ) ; this . originalResizeStyle = this . originalElement . css ( 'resize' ) ; this . originalElement . css ( 'resize' , 'none' ) ; this . _proportionallyResizeElements . push ( this . originalElement . css ( { position : 'static' , zoom : 1 , display : 'block' } ) ) ; this . originalElement . css ( { margin : this . originalElement . css ( 'margin' ) } ) ; this . _proportionallyResize ( ) ; }
this . handles = o . handles || ( ! $ ( '.ui-resizable-handle' , this . element ) . length ? "e,s,se" : { n : '.ui-resizable-n' , e : '.ui-resizable-e' , s : '.ui-resizable-s' , w : '.ui-resizable-w' , se : '.ui-resizable-se' , sw : '.ui-resizable-sw' , ne : '.ui-resizable-ne' , nw : '.ui-resizable-nw' } ) ; if ( this . handles . constructor == String ) { if ( this . handles == 'all' ) this . handles = 'n,e,s,w,se,sw,ne,nw' ; var n = this . handles . split ( "," ) ; this . handles = { } ; for ( var i = 0 ; i < n . length ; i ++ ) { var handle = $ . trim ( n [ i ] ) , hname = 'ui-resizable-' + handle ; var axis = $ ( '<div class="ui-resizable-handle ' + hname + '"></div>' ) ; if ( /sw|se|ne|nw/ . test ( handle ) ) axis . css ( { zIndex : ++ o . zIndex } ) ; if ( 'se' == handle ) { axis . addClass ( 'ui-icon ui-icon-gripsmall-diagonal-se' ) ; } ; this . handles [ handle ] = '.ui-resizable-' + handle ; this . element . append ( axis ) ; } }
this . _renderAxis = function ( target ) { target = target || this . element ; for ( var i in this . handles ) { if ( this . handles [ i ] . constructor == String )
this . handles [ i ] = $ ( this . handles [ i ] , this . element ) . show ( ) ; if ( this . elementIsWrapper && this . originalElement [ 0 ] . nodeName . match ( /textarea|input|select|button/i ) ) { var axis = $ ( this . handles [ i ] , this . element ) , padWrapper = 0 ; padWrapper = /sw|ne|nw|se|n|s/ . test ( i ) ? axis . outerHeight ( ) : axis . outerWidth ( ) ; var padPos = [ 'padding' , /ne|nw|n/ . test ( i ) ? 'Top' : /se|sw|s/ . test ( i ) ? 'Bottom' : /^e$/ . test ( i ) ? 'Right' : 'Left' ] . join ( "" ) ; target . css ( padPos , padWrapper ) ; this . _proportionallyResize ( ) ; }
if ( ! $ ( this . handles [ i ] ) . length )
continue ; } } ; this . _renderAxis ( this . element ) ; this . _handles = $ ( '.ui-resizable-handle' , this . element ) . disableSelection ( ) ; this . _handles . mouseover ( function ( ) { if ( ! self . resizing ) { if ( this . className )
var axis = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ) ; self . axis = axis && axis [ 1 ] ? axis [ 1 ] : 'se' ; } } ) ; if ( o . autoHide ) { this . _handles . hide ( ) ; $ ( this . element ) . addClass ( "ui-resizable-autohide" ) . hover ( function ( ) { $ ( this ) . removeClass ( "ui-resizable-autohide" ) ; self . _handles . show ( ) ; } , function ( ) { if ( ! self . resizing ) { $ ( this ) . addClass ( "ui-resizable-autohide" ) ; self . _handles . hide ( ) ; } } ) ; }
this . _mouseInit ( ) ; } , destroy : function ( ) { this . _mouseDestroy ( ) ; var _destroy = function ( exp ) { $ ( exp ) . removeClass ( "ui-resizable ui-resizable-disabled ui-resizable-resizing" ) . removeData ( "resizable" ) . unbind ( ".resizable" ) . find ( '.ui-resizable-handle' ) . remove ( ) ; } ; if ( this . elementIsWrapper ) { _destroy ( this . element ) ; var wrapper = this . element ; wrapper . after ( this . originalElement . css ( { position : wrapper . css ( 'position' ) , width : wrapper . outerWidth ( ) , height : wrapper . outerHeight ( ) , top : wrapper . css ( 'top' ) , left : wrapper . css ( 'left' ) } ) ) . remove ( ) ; }
this . originalElement . css ( 'resize' , this . originalResizeStyle ) ; _destroy ( this . originalElement ) ; return this ; } , _mouseCapture : function ( event ) { var handle = false ; for ( var i in this . handles ) { if ( $ ( this . handles [ i ] ) [ 0 ] == event . target ) { handle = true ; } }
return ! this . options . disabled && handle ; } , _mouseStart : function ( event ) { var o = this . options , iniPos = this . element . position ( ) , el = this . element ; this . resizing = true ; this . documentScroll = { top : $ ( document ) . scrollTop ( ) , left : $ ( document ) . scrollLeft ( ) } ; if ( el . is ( '.ui-draggable' ) || ( /absolute/ ) . test ( el . css ( 'position' ) ) ) { el . css ( { position : 'absolute' , top : iniPos . top , left : iniPos . left } ) ; }
if ( $ . browser . opera && ( /relative/ ) . test ( el . css ( 'position' ) ) )
el . css ( { position : 'relative' , top : 'auto' , left : 'auto' } ) ; this . _renderProxy ( ) ; var curleft = num ( this . helper . css ( 'left' ) ) , curtop = num ( this . helper . css ( 'top' ) ) ; if ( o . containment ) { curleft += $ ( o . containment ) . scrollLeft ( ) || 0 ; curtop += $ ( o . containment ) . scrollTop ( ) || 0 ; }
this . offset = this . helper . offset ( ) ; this . position = { left : curleft , top : curtop } ; this . size = this . _helper ? { width : el . outerWidth ( ) , height : el . outerHeight ( ) } : { width : el . width ( ) , height : el . height ( ) } ; this . originalSize = this . _helper ? { width : el . outerWidth ( ) , height : el . outerHeight ( ) } : { width : el . width ( ) , height : el . height ( ) } ; this . originalPosition = { left : curleft , top : curtop } ; this . sizeDiff = { width : el . outerWidth ( ) - el . width ( ) , height : el . outerHeight ( ) - el . height ( ) } ; this . originalMousePosition = { left : event . pageX , top : event . pageY } ; this . aspectRatio = ( typeof o . aspectRatio == 'number' ) ? o . aspectRatio : ( ( this . originalSize . width / this . originalSize . height ) || 1 ) ; var cursor = $ ( '.ui-resizable-' + this . axis ) . css ( 'cursor' ) ; $ ( 'body' ) . css ( 'cursor' , cursor == 'auto' ? this . axis + '-resize' : cursor ) ; el . addClass ( "ui-resizable-resizing" ) ; this . _propagate ( "start" , event ) ; return true ; } , _mouseDrag : function ( event ) { var el = this . helper , o = this . options , props = { } , self = this , smp = this . originalMousePosition , a = this . axis ; var dx = ( event . pageX - smp . left ) || 0 , dy = ( event . pageY - smp . top ) || 0 ; var trigger = this . _change [ a ] ; if ( ! trigger ) return false ; var data = trigger . apply ( this , [ event , dx , dy ] ) , ie6 = $ . browser . msie && $ . browser . version < 7 , csdif = this . sizeDiff ; if ( this . _aspectRatio || event . shiftKey )
data = this . _updateRatio ( data , event ) ; data = this . _respectSize ( data , event ) ; this . _propagate ( "resize" , event ) ; el . css ( { top : this . position . top + "px" , left : this . position . left + "px" , width : this . size . width + "px" , height : this . size . height + "px" } ) ; if ( ! this . _helper && this . _proportionallyResizeElements . length )
this . _proportionallyResize ( ) ; this . _updateCache ( data ) ; this . _trigger ( 'resize' , event , this . ui ( ) ) ; return false ; } , _mouseStop : function ( event ) { this . resizing = false ; var o = this . options , self = this ; if ( this . _helper ) { var pr = this . _proportionallyResizeElements , ista = pr . length && ( /textarea/i ) . test ( pr [ 0 ] . nodeName ) , soffseth = ista && $ . ui . hasScroll ( pr [ 0 ] , 'left' ) ? 0 : self . sizeDiff . height , soffsetw = ista ? 0 : self . sizeDiff . width ; var s = { width : ( self . size . width - soffsetw ) , height : ( self . size . height - soffseth ) } , left = ( parseInt ( self . element . css ( 'left' ) , 10 ) + ( self . position . left - self . originalPosition . left ) ) || null , top = ( parseInt ( self . element . css ( 'top' ) , 10 ) + ( self . position . top - self . originalPosition . top ) ) || null ; if ( ! o . animate )
this . element . css ( $ . extend ( s , { top : top , left : left } ) ) ; self . helper . height ( self . size . height ) ; self . helper . width ( self . size . width ) ; if ( this . _helper && ! o . animate ) this . _proportionallyResize ( ) ; }
$ ( 'body' ) . css ( 'cursor' , 'auto' ) ; this . element . removeClass ( "ui-resizable-resizing" ) ; this . _propagate ( "stop" , event ) ; if ( this . _helper ) this . helper . remove ( ) ; return false ; } , _updateCache : function ( data ) { var o = this . options ; this . offset = this . helper . offset ( ) ; if ( isNumber ( data . left ) ) this . position . left = data . left ; if ( isNumber ( data . top ) ) this . position . top = data . top ; if ( isNumber ( data . height ) ) this . size . height = data . height ; if ( isNumber ( data . width ) ) this . size . width = data . width ; } , _updateRatio : function ( data , event ) { var o = this . options , cpos = this . position , csize = this . size , a = this . axis ; if ( data . height ) data . width = ( csize . height * this . aspectRatio ) ; else if ( data . width ) data . height = ( csize . width / this . aspectRatio ) ; if ( a == 'sw' ) { data . left = cpos . left + ( csize . width - data . width ) ; data . top = null ; }
if ( a == 'nw' ) { data . top = cpos . top + ( csize . height - data . height ) ; data . left = cpos . left + ( csize . width - data . width ) ; }
return data ; } , _respectSize : function ( data , event ) { var el = this . helper , o = this . options , pRatio = this . _aspectRatio || event . shiftKey , a = this . axis , ismaxw = isNumber ( data . width ) && o . maxWidth && ( o . maxWidth < data . width ) , ismaxh = isNumber ( data . height ) && o . maxHeight && ( o . maxHeight < data . height ) , isminw = isNumber ( data . width ) && o . minWidth && ( o . minWidth > data . width ) , isminh = isNumber ( data . height ) && o . minHeight && ( o . minHeight > data . height ) ; if ( isminw ) data . width = o . minWidth ; if ( isminh ) data . height = o . minHeight ; if ( ismaxw ) data . width = o . maxWidth ; if ( ismaxh ) data . height = o . maxHeight ; var dw = this . originalPosition . left + this . originalSize . width , dh = this . position . top + this . size . height ; var cw = /sw|nw|w/ . test ( a ) , ch = /nw|ne|n/ . test ( a ) ; if ( isminw && cw ) data . left = dw - o . minWidth ; if ( ismaxw && cw ) data . left = dw - o . maxWidth ; if ( isminh && ch ) data . top = dh - o . minHeight ; if ( ismaxh && ch ) data . top = dh - o . maxHeight ; var isNotwh = ! data . width && ! data . height ; if ( isNotwh && ! data . left && data . top ) data . top = null ; else if ( isNotwh && ! data . top && data . left ) data . left = null ; return data ; } , _proportionallyResize : function ( ) { var o = this . options ; if ( ! this . _proportionallyResizeElements . length ) return ; var element = this . helper || this . element ; for ( var i = 0 ; i < this . _proportionallyResizeElements . length ; i ++ ) { var prel = this . _proportionallyResizeElements [ i ] ; if ( ! this . borderDif ) { var b = [ prel . css ( 'borderTopWidth' ) , prel . css ( 'borderRightWidth' ) , prel . css ( 'borderBottomWidth' ) , prel . css ( 'borderLeftWidth' ) ] , p = [ prel . css ( 'paddingTop' ) , prel . css ( 'paddingRight' ) , prel . css ( 'paddingBottom' ) , prel . css ( 'paddingLeft' ) ] ; this . borderDif = $ . map ( b , function ( v , i ) { var border = parseInt ( v , 10 ) || 0 , padding = parseInt ( p [ i ] , 10 ) || 0 ; return border + padding ; } ) ; }
if ( $ . browser . msie && ! ( ! ( $ ( element ) . is ( ':hidden' ) || $ ( element ) . parents ( ':hidden' ) . length ) ) )
2010-06-08 16:15:48 +00:00
continue ; prel . css ( { height : ( element . height ( ) - this . borderDif [ 0 ] - this . borderDif [ 2 ] ) || 0 , width : ( element . width ( ) - this . borderDif [ 1 ] - this . borderDif [ 3 ] ) || 0 } ) ; } ; } , _renderProxy : function ( ) { var el = this . element , o = this . options ; this . elementOffset = el . offset ( ) ; if ( this . _helper ) { this . helper = this . helper || $ ( '<div style="overflow:hidden;"></div>' ) ; var ie6 = $ . browser . msie && $ . browser . version < 7 , ie6offset = ( ie6 ? 1 : 0 ) , pxyoffset = ( ie6 ? 2 : - 1 ) ; this . helper . addClass ( this . _helper ) . css ( { width : this . element . outerWidth ( ) + pxyoffset , height : this . element . outerHeight ( ) + pxyoffset , position : 'absolute' , left : this . elementOffset . left - ie6offset + 'px' , top : this . elementOffset . top - ie6offset + 'px' , zIndex : ++ o . zIndex } ) ; this . helper . appendTo ( "body" ) . disableSelection ( ) ; } else { this . helper = this . element ; } } , _change : { e : function ( event , dx , dy ) { return { width : this . originalSize . width + dx } ; } , w : function ( event , dx , dy ) { var o = this . options , cs = this . originalSize , sp = this . originalPosition ; return { left : sp . left + dx , width : cs . width - dx } ; } , n : function ( event , dx , dy ) { var o = this . options , cs = this . originalSize , sp = this . originalPosition ; return { top : sp . top + dy , height : cs . height - dy } ; } , s : function ( event , dx , dy ) { return { height : this . originalSize . height + dy } ; } , se : function ( event , dx , dy ) { return $ . extend ( this . _change . s . apply ( this , arguments ) , this . _change . e . apply ( this , [ event , dx , dy ] ) ) ; } , sw : function ( event , dx , dy ) { return $ . extend ( this . _change . s . apply ( this , arguments ) , this . _change . w . apply ( this , [ event , dx , dy ] ) ) ; } , ne : function ( event , dx , dy ) { return $ . extend ( this . _change . n . apply ( this , arguments ) , this . _change . e . apply ( this , [ event , dx , dy ] ) ) ; } , nw : function ( event , dx , dy ) { return $ . extend ( this . _change . n . apply ( this , arguments ) , this . _change . w . apply ( this , [ event , dx , dy ] ) ) ; } } , _propagate : function ( n , event ) { $ . ui . plugin . call ( this , n , [ event , this . ui ( ) ] ) ; ( n != "resize" && this . _trigger ( n , event , this . ui ( ) ) ) ; } , plugins : { } , ui : function ( ) { return { originalElement : this . originalElement , element : this . element , helper : this . helper , position : this . position , size : this . size , originalSize : this . originalSize , originalPosition : this . originalPosition } ; } } ) ; $ . extend ( $ . ui . resizable , { version : "1.8.2" } ) ; $ . ui . plugin . add ( "resizable" , "alsoResize" , { start : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options ; var _store = function ( exp ) { $ ( exp ) . each ( function ( ) { $ ( this ) . data ( "resizable-alsoresize" , { width : parseInt ( $ ( this ) . width ( ) , 10 ) , height : parseInt ( $ ( this ) . height ( ) , 10 ) , left : parseInt ( $ ( this ) . css ( 'left' ) , 10 ) , top : parseInt ( $ ( this ) . css ( 'top' ) , 10 ) } ) ; } ) ; } ; if ( typeof ( o . alsoResize ) == 'object' && ! o . alsoResize . parentNode ) { if ( o . alsoResize . length ) { o . alsoResize = o . alsoResize [ 0 ] ; _store ( o . alsoResize ) ; }
2010-05-19 15:43:12 +00:00
else { $ . each ( o . alsoResize , function ( exp , c ) { _store ( exp ) ; } ) ; } } else { _store ( o . alsoResize ) ; } } , resize : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , os = self . originalSize , op = self . originalPosition ; var delta = { height : ( self . size . height - os . height ) || 0 , width : ( self . size . width - os . width ) || 0 , top : ( self . position . top - op . top ) || 0 , left : ( self . position . left - op . left ) || 0 } , _alsoResize = function ( exp , c ) { $ ( exp ) . each ( function ( ) { var el = $ ( this ) , start = $ ( this ) . data ( "resizable-alsoresize" ) , style = { } , css = c && c . length ? c : [ 'width' , 'height' , 'top' , 'left' ] ; $ . each ( css || [ 'width' , 'height' , 'top' , 'left' ] , function ( i , prop ) { var sum = ( start [ prop ] || 0 ) + ( delta [ prop ] || 0 ) ; if ( sum && sum >= 0 )
style [ prop ] = sum || null ; } ) ; if ( /relative/ . test ( el . css ( 'position' ) ) && $ . browser . opera ) { self . _revertToRelativePosition = true ; el . css ( { position : 'absolute' , top : 'auto' , left : 'auto' } ) ; }
el . css ( style ) ; } ) ; } ; if ( typeof ( o . alsoResize ) == 'object' && ! o . alsoResize . nodeType ) { $ . each ( o . alsoResize , function ( exp , c ) { _alsoResize ( exp , c ) ; } ) ; } else { _alsoResize ( o . alsoResize ) ; } } , stop : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) ; if ( self . _revertToRelativePosition && $ . browser . opera ) { self . _revertToRelativePosition = false ; el . css ( { position : 'relative' } ) ; }
$ ( this ) . removeData ( "resizable-alsoresize-start" ) ; } } ) ; $ . ui . plugin . add ( "resizable" , "animate" , { stop : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options ; var pr = self . _proportionallyResizeElements , ista = pr . length && ( /textarea/i ) . test ( pr [ 0 ] . nodeName ) , soffseth = ista && $ . ui . hasScroll ( pr [ 0 ] , 'left' ) ? 0 : self . sizeDiff . height , soffsetw = ista ? 0 : self . sizeDiff . width ; var style = { width : ( self . size . width - soffsetw ) , height : ( self . size . height - soffseth ) } , left = ( parseInt ( self . element . css ( 'left' ) , 10 ) + ( self . position . left - self . originalPosition . left ) ) || null , top = ( parseInt ( self . element . css ( 'top' ) , 10 ) + ( self . position . top - self . originalPosition . top ) ) || null ; self . element . animate ( $ . extend ( style , top && left ? { top : top , left : left } : { } ) , { duration : o . animateDuration , easing : o . animateEasing , step : function ( ) { var data = { width : parseInt ( self . element . css ( 'width' ) , 10 ) , height : parseInt ( self . element . css ( 'height' ) , 10 ) , top : parseInt ( self . element . css ( 'top' ) , 10 ) , left : parseInt ( self . element . css ( 'left' ) , 10 ) } ; if ( pr && pr . length ) $ ( pr [ 0 ] ) . css ( { width : data . width , height : data . height } ) ; self . _updateCache ( data ) ; self . _propagate ( "resize" , event ) ; } } ) ; } } ) ; $ . ui . plugin . add ( "resizable" , "containment" , { start : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , el = self . element ; var oc = o . containment , ce = ( oc instanceof $ ) ? oc . get ( 0 ) : ( /parent/ . test ( oc ) ) ? el . parent ( ) . get ( 0 ) : oc ; if ( ! ce ) return ; self . containerElement = $ ( ce ) ; if ( /document/ . test ( oc ) || oc == document ) { self . containerOffset = { left : 0 , top : 0 } ; self . containerPosition = { left : 0 , top : 0 } ; self . parentData = { element : $ ( document ) , left : 0 , top : 0 , width : $ ( document ) . width ( ) , height : $ ( document ) . height ( ) || document . body . parentNode . scrollHeight } ; }
else { var element = $ ( ce ) , p = [ ] ; $ ( [ "Top" , "Right" , "Left" , "Bottom" ] ) . each ( function ( i , name ) { p [ i ] = num ( element . css ( "padding" + name ) ) ; } ) ; self . containerOffset = element . offset ( ) ; self . containerPosition = element . position ( ) ; self . containerSize = { height : ( element . innerHeight ( ) - p [ 3 ] ) , width : ( element . innerWidth ( ) - p [ 1 ] ) } ; var co = self . containerOffset , ch = self . containerSize . height , cw = self . containerSize . width , width = ( $ . ui . hasScroll ( ce , "left" ) ? ce . scrollWidth : cw ) , height = ( $ . ui . hasScroll ( ce ) ? ce . scrollHeight : ch ) ; self . parentData = { element : ce , left : co . left , top : co . top , width : width , height : height } ; } } , resize : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , ps = self . containerSize , co = self . containerOffset , cs = self . size , cp = self . position , pRatio = self . _aspectRatio || event . shiftKey , cop = { top : 0 , left : 0 } , ce = self . containerElement ; if ( ce [ 0 ] != document && ( /static/ ) . test ( ce . css ( 'position' ) ) ) cop = co ; if ( cp . left < ( self . _helper ? co . left : 0 ) ) { self . size . width = self . size . width + ( self . _helper ? ( self . position . left - co . left ) : ( self . position . left - cop . left ) ) ; if ( pRatio ) self . size . height = self . size . width / o . aspectRatio ; self . position . left = o . helper ? co . left : 0 ; }
if ( cp . top < ( self . _helper ? co . top : 0 ) ) { self . size . height = self . size . height + ( self . _helper ? ( self . position . top - co . top ) : self . position . top ) ; if ( pRatio ) self . size . width = self . size . height * o . aspectRatio ; self . position . top = self . _helper ? co . top : 0 ; }
self . offset . left = self . parentData . left + self . position . left ; self . offset . top = self . parentData . top + self . position . top ; var woset = Math . abs ( ( self . _helper ? self . offset . left - cop . left : ( self . offset . left - cop . left ) ) + self . sizeDiff . width ) , hoset = Math . abs ( ( self . _helper ? self . offset . top - cop . top : ( self . offset . top - co . top ) ) + self . sizeDiff . height ) ; var isParent = self . containerElement . get ( 0 ) == self . element . parent ( ) . get ( 0 ) , isOffsetRelative = /relative|absolute/ . test ( self . containerElement . css ( 'position' ) ) ; if ( isParent && isOffsetRelative ) woset -= self . parentData . left ; if ( woset + self . size . width >= self . parentData . width ) { self . size . width = self . parentData . width - woset ; if ( pRatio ) self . size . height = self . size . width / self . aspectRatio ; }
if ( hoset + self . size . height >= self . parentData . height ) { self . size . height = self . parentData . height - hoset ; if ( pRatio ) self . size . width = self . size . height * self . aspectRatio ; } } , stop : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , cp = self . position , co = self . containerOffset , cop = self . containerPosition , ce = self . containerElement ; var helper = $ ( self . helper ) , ho = helper . offset ( ) , w = helper . outerWidth ( ) - self . sizeDiff . width , h = helper . outerHeight ( ) - self . sizeDiff . height ; if ( self . _helper && ! o . animate && ( /relative/ ) . test ( ce . css ( 'position' ) ) )
$ ( this ) . css ( { left : ho . left - cop . left - co . left , width : w , height : h } ) ; if ( self . _helper && ! o . animate && ( /static/ ) . test ( ce . css ( 'position' ) ) )
$ ( this ) . css ( { left : ho . left - cop . left - co . left , width : w , height : h } ) ; } } ) ; $ . ui . plugin . add ( "resizable" , "ghost" , { start : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , cs = self . size ; self . ghost = self . originalElement . clone ( ) ; self . ghost . css ( { opacity : . 25 , display : 'block' , position : 'relative' , height : cs . height , width : cs . width , margin : 0 , left : 0 , top : 0 } ) . addClass ( 'ui-resizable-ghost' ) . addClass ( typeof o . ghost == 'string' ? o . ghost : '' ) ; self . ghost . appendTo ( self . helper ) ; } , resize : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options ; if ( self . ghost ) self . ghost . css ( { position : 'relative' , height : self . size . height , width : self . size . width } ) ; } , stop : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options ; if ( self . ghost && self . helper ) self . helper . get ( 0 ) . removeChild ( self . ghost . get ( 0 ) ) ; } } ) ; $ . ui . plugin . add ( "resizable" , "grid" , { resize : function ( event , ui ) { var self = $ ( this ) . data ( "resizable" ) , o = self . options , cs = self . size , os = self . originalSize , op = self . originalPosition , a = self . axis , ratio = o . _aspectRatio || event . shiftKey ; o . grid = typeof o . grid == "number" ? [ o . grid , o . grid ] : o . grid ; var ox = Math . round ( ( cs . width - os . width ) / ( o . grid [ 0 ] || 1 ) ) * ( o . grid [ 0 ] || 1 ) , oy = Math . round ( ( cs . height - os . height ) / ( o . grid [ 1 ] || 1 ) ) * ( o . grid [ 1 ] || 1 ) ; if ( /^(se|s|e)$/ . test ( a ) ) { self . size . width = os . width + ox ; self . size . height = os . height + oy ; }
else if ( /^(ne)$/ . test ( a ) ) { self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ; }
else if ( /^(sw)$/ . test ( a ) ) { self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . left = op . left - ox ; }
2010-06-08 16:15:48 +00:00
else { self . size . width = os . width + ox ; self . size . height = os . height + oy ; self . position . top = op . top - oy ; self . position . left = op . left - ox ; } } } ) ; var num = function ( v ) { return parseInt ( v , 10 ) || 0 ; } ; var isNumber = function ( value ) { return ! isNaN ( parseInt ( value , 10 ) ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.selectable" , $ . ui . mouse , { options : { appendTo : 'body' , autoRefresh : true , distance : 0 , filter : '*' , tolerance : 'touch' } , _create : function ( ) { var self = this ; this . element . addClass ( "ui-selectable" ) ; this . dragged = false ; var selectees ; this . refresh = function ( ) { selectees = $ ( self . options . filter , self . element [ 0 ] ) ; selectees . each ( function ( ) { var $this = $ ( this ) ; var pos = $this . offset ( ) ; $ . data ( this , "selectable-item" , { element : this , $element : $this , left : pos . left , top : pos . top , right : pos . left + $this . outerWidth ( ) , bottom : pos . top + $this . outerHeight ( ) , startselected : false , selected : $this . hasClass ( 'ui-selected' ) , selecting : $this . hasClass ( 'ui-selecting' ) , unselecting : $this . hasClass ( 'ui-unselecting' ) } ) ; } ) ; } ; this . refresh ( ) ; this . selectees = selectees . addClass ( "ui-selectee" ) ; this . _mouseInit ( ) ; this . helper = $ ( "<div class='ui-selectable-helper'></div>" ) ; } , destroy : function ( ) { this . selectees . removeClass ( "ui-selectee" ) . removeData ( "selectable-item" ) ; this . element . removeClass ( "ui-selectable ui-selectable-disabled" ) . removeData ( "selectable" ) . unbind ( ".selectable" ) ; this . _mouseDestroy ( ) ; return this ; } , _mouseStart : function ( event ) { var self = this ; this . opos = [ event . pageX , event . pageY ] ; if ( this . options . disabled )
2010-05-19 15:43:12 +00:00
return ; var options = this . options ; this . selectees = $ ( options . filter , this . element [ 0 ] ) ; this . _trigger ( "start" , event ) ; $ ( options . appendTo ) . append ( this . helper ) ; this . helper . css ( { "z-index" : 100 , "position" : "absolute" , "left" : event . clientX , "top" : event . clientY , "width" : 0 , "height" : 0 } ) ; if ( options . autoRefresh ) { this . refresh ( ) ; }
2010-06-08 16:15:48 +00:00
this . selectees . filter ( '.ui-selected' ) . each ( function ( ) { var selectee = $ . data ( this , "selectable-item" ) ; selectee . startselected = true ; if ( ! event . metaKey ) { selectee . $element . removeClass ( 'ui-selected' ) ; selectee . selected = false ; selectee . $element . addClass ( 'ui-unselecting' ) ; selectee . unselecting = true ; self . _trigger ( "unselecting" , event , { unselecting : selectee . element } ) ; } } ) ; $ ( event . target ) . parents ( ) . andSelf ( ) . each ( function ( ) { var selectee = $ . data ( this , "selectable-item" ) ; if ( selectee ) { var doSelect = ! event . metaKey || ! selectee . $element . hasClass ( 'ui-selected' ) ; selectee . $element . removeClass ( doSelect ? "ui-unselecting" : "ui-selected" ) . addClass ( doSelect ? "ui-selecting" : "ui-unselecting" ) ; selectee . unselecting = ! doSelect ; selectee . selecting = doSelect ; selectee . selected = doSelect ; if ( doSelect ) { self . _trigger ( "selecting" , event , { selecting : selectee . element } ) ; } else { self . _trigger ( "unselecting" , event , { unselecting : selectee . element } ) ; }
return false ; } } ) ; } , _mouseDrag : function ( event ) { var self = this ; this . dragged = true ; if ( this . options . disabled )
2010-05-19 15:43:12 +00:00
return ; var options = this . options ; var x1 = this . opos [ 0 ] , y1 = this . opos [ 1 ] , x2 = event . pageX , y2 = event . pageY ; if ( x1 > x2 ) { var tmp = x2 ; x2 = x1 ; x1 = tmp ; }
if ( y1 > y2 ) { var tmp = y2 ; y2 = y1 ; y1 = tmp ; }
this . helper . css ( { left : x1 , top : y1 , width : x2 - x1 , height : y2 - y1 } ) ; this . selectees . each ( function ( ) { var selectee = $ . data ( this , "selectable-item" ) ; if ( ! selectee || selectee . element == self . element [ 0 ] )
return ; var hit = false ; if ( options . tolerance == 'touch' ) { hit = ( ! ( selectee . left > x2 || selectee . right < x1 || selectee . top > y2 || selectee . bottom < y1 ) ) ; } else if ( options . tolerance == 'fit' ) { hit = ( selectee . left > x1 && selectee . right < x2 && selectee . top > y1 && selectee . bottom < y2 ) ; }
if ( hit ) { if ( selectee . selected ) { selectee . $element . removeClass ( 'ui-selected' ) ; selectee . selected = false ; }
if ( selectee . unselecting ) { selectee . $element . removeClass ( 'ui-unselecting' ) ; selectee . unselecting = false ; }
if ( ! selectee . selecting ) { selectee . $element . addClass ( 'ui-selecting' ) ; selectee . selecting = true ; self . _trigger ( "selecting" , event , { selecting : selectee . element } ) ; } } else { if ( selectee . selecting ) { if ( event . metaKey && selectee . startselected ) { selectee . $element . removeClass ( 'ui-selecting' ) ; selectee . selecting = false ; selectee . $element . addClass ( 'ui-selected' ) ; selectee . selected = true ; } else { selectee . $element . removeClass ( 'ui-selecting' ) ; selectee . selecting = false ; if ( selectee . startselected ) { selectee . $element . addClass ( 'ui-unselecting' ) ; selectee . unselecting = true ; }
self . _trigger ( "unselecting" , event , { unselecting : selectee . element } ) ; } }
2010-06-08 16:15:48 +00:00
if ( selectee . selected ) { if ( ! event . metaKey && ! selectee . startselected ) { selectee . $element . removeClass ( 'ui-selected' ) ; selectee . selected = false ; selectee . $element . addClass ( 'ui-unselecting' ) ; selectee . unselecting = true ; self . _trigger ( "unselecting" , event , { unselecting : selectee . element } ) ; } } } } ) ; return false ; } , _mouseStop : function ( event ) { var self = this ; this . dragged = false ; var options = this . options ; $ ( '.ui-unselecting' , this . element [ 0 ] ) . each ( function ( ) { var selectee = $ . data ( this , "selectable-item" ) ; selectee . $element . removeClass ( 'ui-unselecting' ) ; selectee . unselecting = false ; selectee . startselected = false ; self . _trigger ( "unselected" , event , { unselected : selectee . element } ) ; } ) ; $ ( '.ui-selecting' , this . element [ 0 ] ) . each ( function ( ) { var selectee = $ . data ( this , "selectable-item" ) ; selectee . $element . removeClass ( 'ui-selecting' ) . addClass ( 'ui-selected' ) ; selectee . selecting = false ; selectee . selected = true ; selectee . startselected = true ; self . _trigger ( "selected" , event , { selected : selectee . element } ) ; } ) ; this . _trigger ( "stop" , event ) ; this . helper . remove ( ) ; return false ; } } ) ; $ . extend ( $ . ui . selectable , { version : "1.8.2" } ) ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.sortable" , $ . ui . mouse , { widgetEventPrefix : "sort" , options : { appendTo : "parent" , axis : false , connectWith : false , containment : false , cursor : 'auto' , cursorAt : false , dropOnEmpty : true , forcePlaceholderSize : false , forceHelperSize : false , grid : false , handle : false , helper : "original" , items : '> *' , opacity : false , placeholder : false , revert : false , scroll : true , scrollSensitivity : 20 , scrollSpeed : 20 , scope : "default" , tolerance : "intersect" , zIndex : 1000 } , _create : function ( ) { var o = this . options ; this . containerCache = { } ; this . element . addClass ( "ui-sortable" ) ; this . refresh ( ) ; this . floating = this . items . length ? ( /left|right/ ) . test ( this . items [ 0 ] . item . css ( 'float' ) ) : false ; this . offset = this . element . offset ( ) ; this . _mouseInit ( ) ; } , destroy : function ( ) { this . element . removeClass ( "ui-sortable ui-sortable-disabled" ) . removeData ( "sortable" ) . unbind ( ".sortable" ) ; this . _mouseDestroy ( ) ; for ( var i = this . items . length - 1 ; i >= 0 ; i -- )
2010-05-19 15:43:12 +00:00
this . items [ i ] . item . removeData ( "sortable-item" ) ; return this ; } , _setOption : function ( key , value ) { if ( key === "disabled" ) { this . options [ key ] = value ; this . widget ( )
2010-06-08 16:15:48 +00:00
[ value ? "addClass" : "removeClass" ] ( "ui-sortable-disabled" ) ; } else { $ . Widget . prototype . _setOption . apply ( this , arguments ) ; } } , _mouseCapture : function ( event , overrideHandle ) { if ( this . reverting ) { return false ; }
2010-05-19 15:43:12 +00:00
if ( this . options . disabled || this . options . type == 'static' ) return false ; this . _refreshItems ( event ) ; var currentItem = null , self = this , nodes = $ ( event . target ) . parents ( ) . each ( function ( ) { if ( $ . data ( this , 'sortable-item' ) == self ) { currentItem = $ ( this ) ; return false ; } } ) ; if ( $ . data ( event . target , 'sortable-item' ) == self ) currentItem = $ ( event . target ) ; if ( ! currentItem ) return false ; if ( this . options . handle && ! overrideHandle ) { var validHandle = false ; $ ( this . options . handle , currentItem ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { if ( this == event . target ) validHandle = true ; } ) ; if ( ! validHandle ) return false ; }
this . currentItem = currentItem ; this . _removeCurrentsFromItems ( ) ; return true ; } , _mouseStart : function ( event , overrideHandle , noActivation ) { var o = this . options , self = this ; this . currentContainer = this ; this . refreshPositions ( ) ; this . helper = this . _createHelper ( event ) ; this . _cacheHelperProportions ( ) ; this . _cacheMargins ( ) ; this . scrollParent = this . helper . scrollParent ( ) ; this . offset = this . currentItem . offset ( ) ; this . offset = { top : this . offset . top - this . margins . top , left : this . offset . left - this . margins . left } ; this . helper . css ( "position" , "absolute" ) ; this . cssPosition = this . helper . css ( "position" ) ; $ . extend ( this . offset , { click : { left : event . pageX - this . offset . left , top : event . pageY - this . offset . top } , parent : this . _getParentOffset ( ) , relative : this . _getRelativeOffset ( ) } ) ; this . originalPosition = this . _generatePosition ( event ) ; this . originalPageX = event . pageX ; this . originalPageY = event . pageY ; ( o . cursorAt && this . _adjustOffsetFromHelper ( o . cursorAt ) ) ; this . domPosition = { prev : this . currentItem . prev ( ) [ 0 ] , parent : this . currentItem . parent ( ) [ 0 ] } ; if ( this . helper [ 0 ] != this . currentItem [ 0 ] ) { this . currentItem . hide ( ) ; }
this . _createPlaceholder ( ) ; if ( o . containment )
this . _setContainment ( ) ; if ( o . cursor ) { if ( $ ( 'body' ) . css ( "cursor" ) ) this . _storedCursor = $ ( 'body' ) . css ( "cursor" ) ; $ ( 'body' ) . css ( "cursor" , o . cursor ) ; }
if ( o . opacity ) { if ( this . helper . css ( "opacity" ) ) this . _storedOpacity = this . helper . css ( "opacity" ) ; this . helper . css ( "opacity" , o . opacity ) ; }
if ( o . zIndex ) { if ( this . helper . css ( "zIndex" ) ) this . _storedZIndex = this . helper . css ( "zIndex" ) ; this . helper . css ( "zIndex" , o . zIndex ) ; }
if ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] . tagName != 'HTML' )
this . overflowOffset = this . scrollParent . offset ( ) ; this . _trigger ( "start" , event , this . _uiHash ( ) ) ; if ( ! this . _preserveHelperProportions )
this . _cacheHelperProportions ( ) ; if ( ! noActivation ) { for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { this . containers [ i ] . _trigger ( "activate" , event , self . _uiHash ( this ) ) ; } }
if ( $ . ui . ddmanager )
$ . ui . ddmanager . current = this ; if ( $ . ui . ddmanager && ! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event ) ; this . dragging = true ; this . helper . addClass ( "ui-sortable-helper" ) ; this . _mouseDrag ( event ) ; return true ; } , _mouseDrag : function ( event ) { this . position = this . _generatePosition ( event ) ; this . positionAbs = this . _convertPositionTo ( "absolute" ) ; if ( ! this . lastPositionAbs ) { this . lastPositionAbs = this . positionAbs ; }
if ( this . options . scroll ) { var o = this . options , scrolled = false ; if ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] . tagName != 'HTML' ) { if ( ( this . overflowOffset . top + this . scrollParent [ 0 ] . offsetHeight ) - event . pageY < o . scrollSensitivity )
this . scrollParent [ 0 ] . scrollTop = scrolled = this . scrollParent [ 0 ] . scrollTop + o . scrollSpeed ; else if ( event . pageY - this . overflowOffset . top < o . scrollSensitivity )
this . scrollParent [ 0 ] . scrollTop = scrolled = this . scrollParent [ 0 ] . scrollTop - o . scrollSpeed ; if ( ( this . overflowOffset . left + this . scrollParent [ 0 ] . offsetWidth ) - event . pageX < o . scrollSensitivity )
this . scrollParent [ 0 ] . scrollLeft = scrolled = this . scrollParent [ 0 ] . scrollLeft + o . scrollSpeed ; else if ( event . pageX - this . overflowOffset . left < o . scrollSensitivity )
this . scrollParent [ 0 ] . scrollLeft = scrolled = this . scrollParent [ 0 ] . scrollLeft - o . scrollSpeed ; } else { if ( event . pageY - $ ( document ) . scrollTop ( ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollTop ( $ ( document ) . scrollTop ( ) - o . scrollSpeed ) ; else if ( $ ( window ) . height ( ) - ( event . pageY - $ ( document ) . scrollTop ( ) ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollTop ( $ ( document ) . scrollTop ( ) + o . scrollSpeed ) ; if ( event . pageX - $ ( document ) . scrollLeft ( ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollLeft ( $ ( document ) . scrollLeft ( ) - o . scrollSpeed ) ; else if ( $ ( window ) . width ( ) - ( event . pageX - $ ( document ) . scrollLeft ( ) ) < o . scrollSensitivity )
scrolled = $ ( document ) . scrollLeft ( $ ( document ) . scrollLeft ( ) + o . scrollSpeed ) ; }
if ( scrolled !== false && $ . ui . ddmanager && ! o . dropBehaviour )
$ . ui . ddmanager . prepareOffsets ( this , event ) ; }
this . positionAbs = this . _convertPositionTo ( "absolute" ) ; if ( ! this . options . axis || this . options . axis != "y" ) this . helper [ 0 ] . style . left = this . position . left + 'px' ; if ( ! this . options . axis || this . options . axis != "x" ) this . helper [ 0 ] . style . top = this . position . top + 'px' ; for ( var i = this . items . length - 1 ; i >= 0 ; i -- ) { var item = this . items [ i ] , itemElement = item . item [ 0 ] , intersection = this . _intersectsWithPointer ( item ) ; if ( ! intersection ) continue ; if ( itemElement != this . currentItem [ 0 ] && this . placeholder [ intersection == 1 ? "next" : "prev" ] ( ) [ 0 ] != itemElement && ! $ . ui . contains ( this . placeholder [ 0 ] , itemElement ) && ( this . options . type == 'semi-dynamic' ? ! $ . ui . contains ( this . element [ 0 ] , itemElement ) : true ) ) { this . direction = intersection == 1 ? "down" : "up" ; if ( this . options . tolerance == "pointer" || this . _intersectsWithSides ( item ) ) { this . _rearrange ( event , item ) ; } else { break ; }
this . _trigger ( "change" , event , this . _uiHash ( ) ) ; break ; } }
this . _contactContainers ( event ) ; if ( $ . ui . ddmanager ) $ . ui . ddmanager . drag ( this , event ) ; this . _trigger ( 'sort' , event , this . _uiHash ( ) ) ; this . lastPositionAbs = this . positionAbs ; return false ; } , _mouseStop : function ( event , noPropagation ) { if ( ! event ) return ; if ( $ . ui . ddmanager && ! this . options . dropBehaviour )
$ . ui . ddmanager . drop ( this , event ) ; if ( this . options . revert ) { var self = this ; var cur = self . placeholder . offset ( ) ; self . reverting = true ; $ ( this . helper ) . animate ( { left : cur . left - this . offset . parent . left - self . margins . left + ( this . offsetParent [ 0 ] == document . body ? 0 : this . offsetParent [ 0 ] . scrollLeft ) , top : cur . top - this . offset . parent . top - self . margins . top + ( this . offsetParent [ 0 ] == document . body ? 0 : this . offsetParent [ 0 ] . scrollTop ) } , parseInt ( this . options . revert , 10 ) || 500 , function ( ) { self . _clear ( event ) ; } ) ; } else { this . _clear ( event , noPropagation ) ; }
return false ; } , cancel : function ( ) { var self = this ; if ( this . dragging ) { this . _mouseUp ( ) ; if ( this . options . helper == "original" )
this . currentItem . css ( this . _storedCSS ) . removeClass ( "ui-sortable-helper" ) ; else
this . currentItem . show ( ) ; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { this . containers [ i ] . _trigger ( "deactivate" , null , self . _uiHash ( this ) ) ; if ( this . containers [ i ] . containerCache . over ) { this . containers [ i ] . _trigger ( "out" , null , self . _uiHash ( this ) ) ; this . containers [ i ] . containerCache . over = 0 ; } } }
if ( this . placeholder [ 0 ] . parentNode ) this . placeholder [ 0 ] . parentNode . removeChild ( this . placeholder [ 0 ] ) ; if ( this . options . helper != "original" && this . helper && this . helper [ 0 ] . parentNode ) this . helper . remove ( ) ; $ . extend ( this , { helper : null , dragging : false , reverting : false , _noFinalSort : null } ) ; if ( this . domPosition . prev ) { $ ( this . domPosition . prev ) . after ( this . currentItem ) ; } else { $ ( this . domPosition . parent ) . prepend ( this . currentItem ) ; }
return this ; } , serialize : function ( o ) { var items = this . _getItemsAsjQuery ( o && o . connected ) ; var str = [ ] ; o = o || { } ; $ ( items ) . each ( function ( ) { var res = ( $ ( o . item || this ) . attr ( o . attribute || 'id' ) || '' ) . match ( o . expression || ( /(.+)[-=_](.+)/ ) ) ; if ( res ) str . push ( ( o . key || res [ 1 ] + '[]' ) + '=' + ( o . key && o . expression ? res [ 1 ] : res [ 2 ] ) ) ; } ) ; return str . join ( '&' ) ; } , toArray : function ( o ) { var items = this . _getItemsAsjQuery ( o && o . connected ) ; var ret = [ ] ; o = o || { } ; items . each ( function ( ) { ret . push ( $ ( o . item || this ) . attr ( o . attribute || 'id' ) || '' ) ; } ) ; return ret ; } , _intersectsWith : function ( item ) { var x1 = this . positionAbs . left , x2 = x1 + this . helperProportions . width , y1 = this . positionAbs . top , y2 = y1 + this . helperProportions . height ; var l = item . left , r = l + item . width , t = item . top , b = t + item . height ; var dyClick = this . offset . click . top , dxClick = this . offset . click . left ; var isOverElement = ( y1 + dyClick ) > t && ( y1 + dyClick ) < b && ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ; if ( this . options . tolerance == "pointer" || this . options . forcePointerForContainers || ( this . options . tolerance != "pointer" && this . helperProportions [ this . floating ? 'width' : 'height' ] > item [ this . floating ? 'width' : 'height' ] ) ) { return isOverElement ; } else { return ( l < x1 + ( this . helperProportions . width / 2 ) && x2 - ( this . helperProportions . width / 2 ) < r && t < y1 + ( this . helperProportions . height / 2 ) && y2 - ( this . helperProportions . height / 2 ) < b ) ; } } , _intersectsWithPointer : function ( item ) { var isOverElementHeight = $ . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , item . top , item . height ) , isOverElementWidth = $ . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , item . left , item . width ) , isOverElement = isOverElementHeight && isOverElementWidth , verticalDirection = this . _getDragVerticalDirection ( ) , horizontalDirection = this . _getDragHorizontalDirection ( ) ; if ( ! isOverElement )
return false ; return this . floating ? ( ( ( horizontalDirection && horizontalDirection == "right" ) || verticalDirection == "down" ) ? 2 : 1 ) : ( verticalDirection && ( verticalDirection == "down" ? 2 : 1 ) ) ; } , _intersectsWithSides : function ( item ) { var isOverBottomHalf = $ . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , item . top + ( item . height / 2 ) , item . height ) , isOverRightHalf = $ . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , item . left + ( item . width / 2 ) , item . width ) , verticalDirection = this . _getDragVerticalDirection ( ) , horizontalDirection = this . _getDragHorizontalDirection ( ) ; if ( this . floating && horizontalDirection ) { return ( ( horizontalDirection == "right" && isOverRightHalf ) || ( horizontalDirection == "left" && ! isOverRightHalf ) ) ; } else { return verticalDirection && ( ( verticalDirection == "down" && isOverBottomHalf ) || ( verticalDirection == "up" && ! isOverBottomHalf ) ) ; } } , _getDragVerticalDirection : function ( ) { var delta = this . positionAbs . top - this . lastPositionAbs . top ; return delta != 0 && ( delta > 0 ? "down" : "up" ) ; } , _getDragHorizontalDirection : function ( ) { var delta = this . positionAbs . left - this . lastPositionAbs . left ; return delta != 0 && ( delta > 0 ? "right" : "left" ) ; } , refresh : function ( event ) { this . _refreshItems ( event ) ; this . refreshPositions ( ) ; return this ; } , _connectWith : function ( ) { var options = this . options ; return options . connectWith . constructor == String ? [ options . connectWith ] : options . connectWith ; } , _getItemsAsjQuery : function ( connected ) { var self = this ; var items = [ ] ; var queries = [ ] ; var connectWith = this . _connectWith ( ) ; if ( connectWith && connected ) { for ( var i = connectWith . length - 1 ; i >= 0 ; i -- ) { var cur = $ ( connectWith [ i ] ) ; for ( var j = cur . length - 1 ; j >= 0 ; j -- ) { var inst = $ . data ( cur [ j ] , 'sortable' ) ; if ( inst && inst != this && ! inst . options . disabled ) { queries . push ( [ $ . isFunction ( inst . options . items ) ? inst . options . items . call ( inst . element ) : $ ( inst . options . items , inst . element ) . not ( ".ui-sortable-helper" ) . not ( '.ui-sortable-placeholder' ) , inst ] ) ; } } ; } ; }
queries . push ( [ $ . isFunction ( this . options . items ) ? this . options . items . call ( this . element , null , { options : this . options , item : this . currentItem } ) : $ ( this . options . items , this . element ) . not ( ".ui-sortable-helper" ) . not ( '.ui-sortable-placeholder' ) , this ] ) ; for ( var i = queries . length - 1 ; i >= 0 ; i -- ) { queries [ i ] [ 0 ] . each ( function ( ) { items . push ( this ) ; } ) ; } ; return $ ( items ) ; } , _removeCurrentsFromItems : function ( ) { var list = this . currentItem . find ( ":data(sortable-item)" ) ; for ( var i = 0 ; i < this . items . length ; i ++ ) { for ( var j = 0 ; j < list . length ; j ++ ) { if ( list [ j ] == this . items [ i ] . item [ 0 ] )
this . items . splice ( i , 1 ) ; } ; } ; } , _refreshItems : function ( event ) { this . items = [ ] ; this . containers = [ this ] ; var items = this . items ; var self = this ; var queries = [ [ $ . isFunction ( this . options . items ) ? this . options . items . call ( this . element [ 0 ] , event , { item : this . currentItem } ) : $ ( this . options . items , this . element ) , this ] ] ; var connectWith = this . _connectWith ( ) ; if ( connectWith ) { for ( var i = connectWith . length - 1 ; i >= 0 ; i -- ) { var cur = $ ( connectWith [ i ] ) ; for ( var j = cur . length - 1 ; j >= 0 ; j -- ) { var inst = $ . data ( cur [ j ] , 'sortable' ) ; if ( inst && inst != this && ! inst . options . disabled ) { queries . push ( [ $ . isFunction ( inst . options . items ) ? inst . options . items . call ( inst . element [ 0 ] , event , { item : this . currentItem } ) : $ ( inst . options . items , inst . element ) , inst ] ) ; this . containers . push ( inst ) ; } } ; } ; }
for ( var i = queries . length - 1 ; i >= 0 ; i -- ) { var targetData = queries [ i ] [ 1 ] ; var _queries = queries [ i ] [ 0 ] ; for ( var j = 0 , queriesLength = _queries . length ; j < queriesLength ; j ++ ) { var item = $ ( _queries [ j ] ) ; item . data ( 'sortable-item' , targetData ) ; items . push ( { item : item , instance : targetData , width : 0 , height : 0 , left : 0 , top : 0 } ) ; } ; } ; } , refreshPositions : function ( fast ) { if ( this . offsetParent && this . helper ) { this . offset . parent = this . _getParentOffset ( ) ; }
for ( var i = this . items . length - 1 ; i >= 0 ; i -- ) { var item = this . items [ i ] ; var t = this . options . toleranceElement ? $ ( this . options . toleranceElement , item . item ) : item . item ; if ( ! fast ) { item . width = t . outerWidth ( ) ; item . height = t . outerHeight ( ) ; }
var p = t . offset ( ) ; item . left = p . left ; item . top = p . top ; } ; if ( this . options . custom && this . options . custom . refreshContainers ) { this . options . custom . refreshContainers . call ( this ) ; } else { for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { var p = this . containers [ i ] . element . offset ( ) ; this . containers [ i ] . containerCache . left = p . left ; this . containers [ i ] . containerCache . top = p . top ; this . containers [ i ] . containerCache . width = this . containers [ i ] . element . outerWidth ( ) ; this . containers [ i ] . containerCache . height = this . containers [ i ] . element . outerHeight ( ) ; } ; }
return this ; } , _createPlaceholder : function ( that ) { var self = that || this , o = self . options ; if ( ! o . placeholder || o . placeholder . constructor == String ) { var className = o . placeholder ; o . placeholder = { element : function ( ) { var el = $ ( document . createElement ( self . currentItem [ 0 ] . nodeName ) ) . addClass ( className || self . currentItem [ 0 ] . className + " ui-sortable-placeholder" ) . removeClass ( "ui-sortable-helper" ) [ 0 ] ; if ( ! className )
el . style . visibility = "hidden" ; return el ; } , update : function ( container , p ) { if ( className && ! o . forcePlaceholderSize ) return ; if ( ! p . height ( ) ) { p . height ( self . currentItem . innerHeight ( ) - parseInt ( self . currentItem . css ( 'paddingTop' ) || 0 , 10 ) - parseInt ( self . currentItem . css ( 'paddingBottom' ) || 0 , 10 ) ) ; } ; if ( ! p . width ( ) ) { p . width ( self . currentItem . innerWidth ( ) - parseInt ( self . currentItem . css ( 'paddingLeft' ) || 0 , 10 ) - parseInt ( self . currentItem . css ( 'paddingRight' ) || 0 , 10 ) ) ; } ; } } ; }
self . placeholder = $ ( o . placeholder . element . call ( self . element , self . currentItem ) ) ; self . currentItem . after ( self . placeholder ) ; o . placeholder . update ( self , self . placeholder ) ; } , _contactContainers : function ( event ) { var innermostContainer = null , innermostIndex = null ; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { if ( $ . ui . contains ( this . currentItem [ 0 ] , this . containers [ i ] . element [ 0 ] ) )
continue ; if ( this . _intersectsWith ( this . containers [ i ] . containerCache ) ) { if ( innermostContainer && $ . ui . contains ( this . containers [ i ] . element [ 0 ] , innermostContainer . element [ 0 ] ) )
continue ; innermostContainer = this . containers [ i ] ; innermostIndex = i ; } else { if ( this . containers [ i ] . containerCache . over ) { this . containers [ i ] . _trigger ( "out" , event , this . _uiHash ( this ) ) ; this . containers [ i ] . containerCache . over = 0 ; } } }
if ( ! innermostContainer ) return ; if ( this . containers . length === 1 ) { this . containers [ innermostIndex ] . _trigger ( "over" , event , this . _uiHash ( this ) ) ; this . containers [ innermostIndex ] . containerCache . over = 1 ; } else if ( this . currentContainer != this . containers [ innermostIndex ] ) { var dist = 10000 ; var itemWithLeastDistance = null ; var base = this . positionAbs [ this . containers [ innermostIndex ] . floating ? 'left' : 'top' ] ; for ( var j = this . items . length - 1 ; j >= 0 ; j -- ) { if ( ! $ . ui . contains ( this . containers [ innermostIndex ] . element [ 0 ] , this . items [ j ] . item [ 0 ] ) ) continue ; var cur = this . items [ j ] [ this . containers [ innermostIndex ] . floating ? 'left' : 'top' ] ; if ( Math . abs ( cur - base ) < dist ) { dist = Math . abs ( cur - base ) ; itemWithLeastDistance = this . items [ j ] ; } }
if ( ! itemWithLeastDistance && ! this . options . dropOnEmpty )
return ; this . currentContainer = this . containers [ innermostIndex ] ; itemWithLeastDistance ? this . _rearrange ( event , itemWithLeastDistance , null , true ) : this . _rearrange ( event , null , this . containers [ innermostIndex ] . element , true ) ; this . _trigger ( "change" , event , this . _uiHash ( ) ) ; this . containers [ innermostIndex ] . _trigger ( "change" , event , this . _uiHash ( this ) ) ; this . options . placeholder . update ( this . currentContainer , this . placeholder ) ; this . containers [ innermostIndex ] . _trigger ( "over" , event , this . _uiHash ( this ) ) ; this . containers [ innermostIndex ] . containerCache . over = 1 ; } } , _createHelper : function ( event ) { var o = this . options ; var helper = $ . isFunction ( o . helper ) ? $ ( o . helper . apply ( this . element [ 0 ] , [ event , this . currentItem ] ) ) : ( o . helper == 'clone' ? this . currentItem . clone ( ) : this . currentItem ) ; if ( ! helper . parents ( 'body' ) . length )
$ ( o . appendTo != 'parent' ? o . appendTo : this . currentItem [ 0 ] . parentNode ) [ 0 ] . appendChild ( helper [ 0 ] ) ; if ( helper [ 0 ] == this . currentItem [ 0 ] )
this . _storedCSS = { width : this . currentItem [ 0 ] . style . width , height : this . currentItem [ 0 ] . style . height , position : this . currentItem . css ( "position" ) , top : this . currentItem . css ( "top" ) , left : this . currentItem . css ( "left" ) } ; if ( helper [ 0 ] . style . width == '' || o . forceHelperSize ) helper . width ( this . currentItem . width ( ) ) ; if ( helper [ 0 ] . style . height == '' || o . forceHelperSize ) helper . height ( this . currentItem . height ( ) ) ; return helper ; } , _adjustOffsetFromHelper : function ( obj ) { if ( typeof obj == 'string' ) { obj = obj . split ( ' ' ) ; }
if ( $ . isArray ( obj ) ) { obj = { left : + obj [ 0 ] , top : + obj [ 1 ] || 0 } ; }
if ( 'left' in obj ) { this . offset . click . left = obj . left + this . margins . left ; }
if ( 'right' in obj ) { this . offset . click . left = this . helperProportions . width - obj . right + this . margins . left ; }
if ( 'top' in obj ) { this . offset . click . top = obj . top + this . margins . top ; }
if ( 'bottom' in obj ) { this . offset . click . top = this . helperProportions . height - obj . bottom + this . margins . top ; } } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var po = this . offsetParent . offset ( ) ; if ( this . cssPosition == 'absolute' && this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) { po . left += this . scrollParent . scrollLeft ( ) ; po . top += this . scrollParent . scrollTop ( ) ; }
if ( ( this . offsetParent [ 0 ] == document . body ) || ( this . offsetParent [ 0 ] . tagName && this . offsetParent [ 0 ] . tagName . toLowerCase ( ) == 'html' && $ . browser . msie ) )
po = { top : 0 , left : 0 } ; return { top : po . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : po . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } ; } , _getRelativeOffset : function ( ) { if ( this . cssPosition == "relative" ) { var p = this . currentItem . position ( ) ; return { top : p . top - ( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : p . left - ( parseInt ( this . helper . css ( "left" ) , 10 ) || 0 ) + this . scrollParent . scrollLeft ( ) } ; } else { return { top : 0 , left : 0 } ; } } , _cacheMargins : function ( ) { this . margins = { left : ( parseInt ( this . currentItem . css ( "marginLeft" ) , 10 ) || 0 ) , top : ( parseInt ( this . currentItem . css ( "marginTop" ) , 10 ) || 0 ) } ; } , _cacheHelperProportions : function ( ) { this . helperProportions = { width : this . helper . outerWidth ( ) , height : this . helper . outerHeight ( ) } ; } , _setContainment : function ( ) { var o = this . options ; if ( o . containment == 'parent' ) o . containment = this . helper [ 0 ] . parentNode ; if ( o . containment == 'document' || o . containment == 'window' ) this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , $ ( o . containment == 'document' ? document : window ) . width ( ) - this . helperProportions . width - this . margins . left , ( $ ( o . containment == 'document' ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ] ; if ( ! ( /^(document|window|parent)$/ ) . test ( o . containment ) ) { var ce = $ ( o . containment ) [ 0 ] ; var co = $ ( o . containment ) . offset ( ) ; var over = ( $ ( ce ) . css ( "overflow" ) != 'hidden' ) ; this . containment = [ co . left + ( parseInt ( $ ( ce ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( $ ( ce ) . css ( "paddingLeft" ) , 10 ) || 0 ) - this . margins . left , co . top + ( parseInt ( $ ( ce ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( $ ( ce ) . css ( "paddingTop" ) , 10 ) || 0 ) - this . margins . top , co . left + ( over ? Math . max ( ce . scrollWidth , ce . offsetWidth ) : ce . offsetWidth ) - ( parseInt ( $ ( ce ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( $ ( ce ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions . width - this . margins . left , co . top + ( over ? Math . max ( ce . scrollHeight , ce . offsetHeight ) : ce . offsetHeight ) - ( parseInt ( $ ( ce ) . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( $ ( ce ) . css ( "paddingBottom" ) , 10 ) || 0 ) - this . helperProportions . height - this . margins . top ] ; } } , _convertPositionTo : function ( d , pos ) { if ( ! pos ) pos = this . position ; var mod = d == "absolute" ? 1 : - 1 ; var o = this . options , scroll = this . cssPosition == 'absolute' && ! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ) . test ( scroll [ 0 ] . tagName ) ; return { top : ( pos . top
+ this . offset . relative . top * mod
+ this . offset . parent . top * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollTop ( ) : ( scrollIsRootNode ? 0 : scroll . scrollTop ( ) ) ) * mod ) ) , left : ( pos . left
+ this . offset . relative . left * mod
+ this . offset . parent . left * mod
- ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollLeft ( ) : scrollIsRootNode ? 0 : scroll . scrollLeft ( ) ) * mod ) ) } ; } , _generatePosition : function ( event ) { var o = this . options , scroll = this . cssPosition == 'absolute' && ! ( this . scrollParent [ 0 ] != document && $ . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ) ? this . offsetParent : this . scrollParent , scrollIsRootNode = ( /(html|body)/i ) . test ( scroll [ 0 ] . tagName ) ; if ( this . cssPosition == 'relative' && ! ( this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] != this . offsetParent [ 0 ] ) ) { this . offset . relative = this . _getRelativeOffset ( ) ; }
var pageX = event . pageX ; var pageY = event . pageY ; if ( this . originalPosition ) { if ( this . containment ) { if ( event . pageX - this . offset . click . left < this . containment [ 0 ] ) pageX = this . containment [ 0 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top < this . containment [ 1 ] ) pageY = this . containment [ 1 ] + this . offset . click . top ; if ( event . pageX - this . offset . click . left > this . containment [ 2 ] ) pageX = this . containment [ 2 ] + this . offset . click . left ; if ( event . pageY - this . offset . click . top > this . containment [ 3 ] ) pageY = this . containment [ 3 ] + this . offset . click . top ; }
if ( o . grid ) { var top = this . originalPageY + Math . round ( ( pageY - this . originalPageY ) / o . grid [ 1 ] ) * o . grid [ 1 ] ; pageY = this . containment ? ( ! ( top - this . offset . click . top < this . containment [ 1 ] || top - this . offset . click . top > this . containment [ 3 ] ) ? top : ( ! ( top - this . offset . click . top < this . containment [ 1 ] ) ? top - o . grid [ 1 ] : top + o . grid [ 1 ] ) ) : top ; var left = this . originalPageX + Math . round ( ( pageX - this . originalPageX ) / o . grid [ 0 ] ) * o . grid [ 0 ] ; pageX = this . containment ? ( ! ( left - this . offset . click . left < this . containment [ 0 ] || left - this . offset . click . left > this . containment [ 2 ] ) ? left : ( ! ( left - this . offset . click . left < this . containment [ 0 ] ) ? left - o . grid [ 0 ] : left + o . grid [ 0 ] ) ) : left ; } }
return { top : ( pageY
- this . offset . click . top
- this . offset . relative . top
- this . offset . parent . top
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollTop ( ) : ( scrollIsRootNode ? 0 : scroll . scrollTop ( ) ) ) ) ) , left : ( pageX
- this . offset . click . left
- this . offset . relative . left
- this . offset . parent . left
+ ( $ . browser . safari && this . cssPosition == 'fixed' ? 0 : ( this . cssPosition == 'fixed' ? - this . scrollParent . scrollLeft ( ) : scrollIsRootNode ? 0 : scroll . scrollLeft ( ) ) ) ) } ; } , _rearrange : function ( event , i , a , hardRefresh ) { a ? a [ 0 ] . appendChild ( this . placeholder [ 0 ] ) : i . item [ 0 ] . parentNode . insertBefore ( this . placeholder [ 0 ] , ( this . direction == 'down' ? i . item [ 0 ] : i . item [ 0 ] . nextSibling ) ) ; this . counter = this . counter ? ++ this . counter : 1 ; var self = this , counter = this . counter ; window . setTimeout ( function ( ) { if ( counter == self . counter ) self . refreshPositions ( ! hardRefresh ) ; } , 0 ) ; } , _clear : function ( event , noPropagation ) { this . reverting = false ; var delayedTriggers = [ ] , self = this ; if ( ! this . _noFinalSort && this . currentItem [ 0 ] . parentNode ) this . placeholder . before ( this . currentItem ) ; this . _noFinalSort = null ; if ( this . helper [ 0 ] == this . currentItem [ 0 ] ) { for ( var i in this . _storedCSS ) { if ( this . _storedCSS [ i ] == 'auto' || this . _storedCSS [ i ] == 'static' ) this . _storedCSS [ i ] = '' ; }
this . currentItem . css ( this . _storedCSS ) . removeClass ( "ui-sortable-helper" ) ; } else { this . currentItem . show ( ) ; }
if ( this . fromOutside && ! noPropagation ) delayedTriggers . push ( function ( event ) { this . _trigger ( "receive" , event , this . _uiHash ( this . fromOutside ) ) ; } ) ; if ( ( this . fromOutside || this . domPosition . prev != this . currentItem . prev ( ) . not ( ".ui-sortable-helper" ) [ 0 ] || this . domPosition . parent != this . currentItem . parent ( ) [ 0 ] ) && ! noPropagation ) delayedTriggers . push ( function ( event ) { this . _trigger ( "update" , event , this . _uiHash ( ) ) ; } ) ; if ( ! $ . ui . contains ( this . element [ 0 ] , this . currentItem [ 0 ] ) ) { if ( ! noPropagation ) delayedTriggers . push ( function ( event ) { this . _trigger ( "remove" , event , this . _uiHash ( ) ) ; } ) ; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { if ( $ . ui . contains ( this . containers [ i ] . element [ 0 ] , this . currentItem [ 0 ] ) && ! noPropagation ) { delayedTriggers . push ( ( function ( c ) { return function ( event ) { c . _trigger ( "receive" , event , this . _uiHash ( this ) ) ; } ; } ) . call ( this , this . containers [ i ] ) ) ; delayedTriggers . push ( ( function ( c ) { return function ( event ) { c . _trigger ( "update" , event , this . _uiHash ( this ) ) ; } ; } ) . call ( this , this . containers [ i ] ) ) ; } } ; } ; for ( var i = this . containers . length - 1 ; i >= 0 ; i -- ) { if ( ! noPropagation ) delayedTriggers . push ( ( function ( c ) { return function ( event ) { c . _trigger ( "deactivate" , event , this . _uiHash ( this ) ) ; } ; } ) . call ( this , this . containers [ i ] ) ) ; if ( this . containers [ i ] . containerCache . over ) { delayedTriggers . push ( ( function ( c ) { return function ( event ) { c . _trigger ( "out" , event , this . _uiHash ( this ) ) ; } ; } ) . call ( this , this . containers [ i ] ) ) ; this . containers [ i ] . containerCache . over = 0 ; } }
if ( this . _storedCursor ) $ ( 'body' ) . css ( "cursor" , this . _storedCursor ) ; if ( this . _storedOpacity ) this . helper . css ( "opacity" , this . _storedOpacity ) ; if ( this . _storedZIndex ) this . helper . css ( "zIndex" , this . _storedZIndex == 'auto' ? '' : this . _storedZIndex ) ; this . dragging = false ; if ( this . cancelHelperRemoval ) { if ( ! noPropagation ) { this . _trigger ( "beforeStop" , event , this . _uiHash ( ) ) ; for ( var i = 0 ; i < delayedTriggers . length ; i ++ ) { delayedTriggers [ i ] . call ( this , event ) ; } ; this . _trigger ( "stop" , event , this . _uiHash ( ) ) ; }
return false ; }
if ( ! noPropagation ) this . _trigger ( "beforeStop" , event , this . _uiHash ( ) ) ; this . placeholder [ 0 ] . parentNode . removeChild ( this . placeholder [ 0 ] ) ; if ( this . helper [ 0 ] != this . currentItem [ 0 ] ) this . helper . remove ( ) ; this . helper = null ; if ( ! noPropagation ) { for ( var i = 0 ; i < delayedTriggers . length ; i ++ ) { delayedTriggers [ i ] . call ( this , event ) ; } ; this . _trigger ( "stop" , event , this . _uiHash ( ) ) ; }
2010-06-08 16:15:48 +00:00
this . fromOutside = false ; return true ; } , _trigger : function ( ) { if ( $ . Widget . prototype . _trigger . apply ( this , arguments ) === false ) { this . cancel ( ) ; } } , _uiHash : function ( inst ) { var self = inst || this ; return { helper : self . helper , placeholder : self . placeholder || $ ( [ ] ) , position : self . position , originalPosition : self . originalPosition , offset : self . positionAbs , item : self . currentItem , sender : inst ? inst . element : null } ; } } ) ; $ . extend ( $ . ui . sortable , { version : "1.8.2" } ) ; } ) ( jQuery ) ; ; jQuery . effects || ( function ( $ ) { $ . effects = { } ; $ . each ( [ 'backgroundColor' , 'borderBottomColor' , 'borderLeftColor' , 'borderRightColor' , 'borderTopColor' , 'color' , 'outlineColor' ] , function ( i , attr ) { $ . fx . step [ attr ] = function ( fx ) { if ( ! fx . colorInit ) { fx . start = getColor ( fx . elem , attr ) ; fx . end = getRGB ( fx . end ) ; fx . colorInit = true ; }
2010-05-19 15:43:12 +00:00
fx . elem . style [ attr ] = 'rgb(' +
Math . max ( Math . min ( parseInt ( ( fx . pos * ( fx . end [ 0 ] - fx . start [ 0 ] ) ) + fx . start [ 0 ] , 10 ) , 255 ) , 0 ) + ',' +
Math . max ( Math . min ( parseInt ( ( fx . pos * ( fx . end [ 1 ] - fx . start [ 1 ] ) ) + fx . start [ 1 ] , 10 ) , 255 ) , 0 ) + ',' +
Math . max ( Math . min ( parseInt ( ( fx . pos * ( fx . end [ 2 ] - fx . start [ 2 ] ) ) + fx . start [ 2 ] , 10 ) , 255 ) , 0 ) + ')' ; } ; } ) ; function getRGB ( color ) { var result ; if ( color && color . constructor == Array && color . length == 3 )
return color ; if ( result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/ . exec ( color ) )
return [ parseInt ( result [ 1 ] , 10 ) , parseInt ( result [ 2 ] , 10 ) , parseInt ( result [ 3 ] , 10 ) ] ; if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( color ) )
return [ parseFloat ( result [ 1 ] ) * 2.55 , parseFloat ( result [ 2 ] ) * 2.55 , parseFloat ( result [ 3 ] ) * 2.55 ] ; if ( result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/ . exec ( color ) )
return [ parseInt ( result [ 1 ] , 16 ) , parseInt ( result [ 2 ] , 16 ) , parseInt ( result [ 3 ] , 16 ) ] ; if ( result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/ . exec ( color ) )
return [ parseInt ( result [ 1 ] + result [ 1 ] , 16 ) , parseInt ( result [ 2 ] + result [ 2 ] , 16 ) , parseInt ( result [ 3 ] + result [ 3 ] , 16 ) ] ; if ( result = /rgba\(0, 0, 0, 0\)/ . exec ( color ) )
return colors [ 'transparent' ] ; return colors [ $ . trim ( color ) . toLowerCase ( ) ] ; }
function getColor ( elem , attr ) { var color ; do { color = $ . curCSS ( elem , attr ) ; if ( color != '' && color != 'transparent' || $ . nodeName ( elem , "body" ) )
break ; attr = "backgroundColor" ; } while ( elem = elem . parentNode ) ; return getRGB ( color ) ; } ; var colors = { aqua : [ 0 , 255 , 255 ] , azure : [ 240 , 255 , 255 ] , beige : [ 245 , 245 , 220 ] , black : [ 0 , 0 , 0 ] , blue : [ 0 , 0 , 255 ] , brown : [ 165 , 42 , 42 ] , cyan : [ 0 , 255 , 255 ] , darkblue : [ 0 , 0 , 139 ] , darkcyan : [ 0 , 139 , 139 ] , darkgrey : [ 169 , 169 , 169 ] , darkgreen : [ 0 , 100 , 0 ] , darkkhaki : [ 189 , 183 , 107 ] , darkmagenta : [ 139 , 0 , 139 ] , darkolivegreen : [ 85 , 107 , 47 ] , darkorange : [ 255 , 140 , 0 ] , darkorchid : [ 153 , 50 , 204 ] , darkred : [ 139 , 0 , 0 ] , darksalmon : [ 233 , 150 , 122 ] , darkviolet : [ 148 , 0 , 211 ] , fuchsia : [ 255 , 0 , 255 ] , gold : [ 255 , 215 , 0 ] , green : [ 0 , 128 , 0 ] , indigo : [ 75 , 0 , 130 ] , khaki : [ 240 , 230 , 140 ] , lightblue : [ 173 , 216 , 230 ] , lightcyan : [ 224 , 255 , 255 ] , lightgreen : [ 144 , 238 , 144 ] , lightgrey : [ 211 , 211 , 211 ] , lightpink : [ 255 , 182 , 193 ] , lightyellow : [ 255 , 255 , 224 ] , lime : [ 0 , 255 , 0 ] , magenta : [ 255 , 0 , 255 ] , maroon : [ 128 , 0 , 0 ] , navy : [ 0 , 0 , 128 ] , olive : [ 128 , 128 , 0 ] , orange : [ 255 , 165 , 0 ] , pink : [ 255 , 192 , 203 ] , purple : [ 128 , 0 , 128 ] , violet : [ 128 , 0 , 128 ] , red : [ 255 , 0 , 0 ] , silver : [ 192 , 192 , 192 ] , white : [ 255 , 255 , 255 ] , yellow : [ 255 , 255 , 0 ] , transparent : [ 255 , 255 , 255 ] } ; var classAnimationActions = [ 'add' , 'remove' , 'toggle' ] , shorthandStyles = { border : 1 , borderBottom : 1 , borderColor : 1 , borderLeft : 1 , borderRight : 1 , borderTop : 1 , borderWidth : 1 , margin : 1 , padding : 1 } ; function getElementStyles ( ) { var style = document . defaultView ? document . defaultView . getComputedStyle ( this , null ) : this . currentStyle , newStyle = { } , key , camelCase ; if ( style && style . length && style [ 0 ] && style [ style [ 0 ] ] ) { var len = style . length ; while ( len -- ) { key = style [ len ] ; if ( typeof style [ key ] == 'string' ) { camelCase = key . replace ( /\-(\w)/g , function ( all , letter ) { return letter . toUpperCase ( ) ; } ) ; newStyle [ camelCase ] = style [ key ] ; } } } else { for ( key in style ) { if ( typeof style [ key ] === 'string' ) { newStyle [ key ] = style [ key ] ; } } }
return newStyle ; }
function filterStyles ( styles ) { var name , value ; for ( name in styles ) { value = styles [ name ] ; if ( value == null || $ . isFunction ( value ) || name in shorthandStyles || ( /scrollbar/ ) . test ( name ) || ( ! ( /color/i ) . test ( name ) && isNaN ( parseFloat ( value ) ) ) ) { delete styles [ name ] ; } }
return styles ; }
function styleDifference ( oldStyle , newStyle ) { var diff = { _ : 0 } , name ; for ( name in newStyle ) { if ( oldStyle [ name ] != newStyle [ name ] ) { diff [ name ] = newStyle [ name ] ; } }
return diff ; }
$ . effects . animateClass = function ( value , duration , easing , callback ) { if ( $ . isFunction ( easing ) ) { callback = easing ; easing = null ; }
return this . each ( function ( ) { var that = $ ( this ) , originalStyleAttr = that . attr ( 'style' ) || ' ' , originalStyle = filterStyles ( getElementStyles . call ( this ) ) , newStyle , className = that . attr ( 'className' ) ; $ . each ( classAnimationActions , function ( i , action ) { if ( value [ action ] ) { that [ action + 'Class' ] ( value [ action ] ) ; } } ) ; newStyle = filterStyles ( getElementStyles . call ( this ) ) ; that . attr ( 'className' , className ) ; that . animate ( styleDifference ( originalStyle , newStyle ) , duration , easing , function ( ) { $ . each ( classAnimationActions , function ( i , action ) { if ( value [ action ] ) { that [ action + 'Class' ] ( value [ action ] ) ; } } ) ; if ( typeof that . attr ( 'style' ) == 'object' ) { that . attr ( 'style' ) . cssText = '' ; that . attr ( 'style' ) . cssText = originalStyleAttr ; } else { that . attr ( 'style' , originalStyleAttr ) ; }
2010-06-08 16:15:48 +00:00
if ( callback ) { callback . apply ( this , arguments ) ; } } ) ; } ) ; } ; $ . fn . extend ( { _addClass : $ . fn . addClass , addClass : function ( classNames , speed , easing , callback ) { return speed ? $ . effects . animateClass . apply ( this , [ { add : classNames } , speed , easing , callback ] ) : this . _addClass ( classNames ) ; } , _removeClass : $ . fn . removeClass , removeClass : function ( classNames , speed , easing , callback ) { return speed ? $ . effects . animateClass . apply ( this , [ { remove : classNames } , speed , easing , callback ] ) : this . _removeClass ( classNames ) ; } , _toggleClass : $ . fn . toggleClass , toggleClass : function ( classNames , force , speed , easing , callback ) { if ( typeof force == "boolean" || force === undefined ) { if ( ! speed ) { return this . _toggleClass ( classNames , force ) ; } else { return $ . effects . animateClass . apply ( this , [ ( force ? { add : classNames } : { remove : classNames } ) , speed , easing , callback ] ) ; } } else { return $ . effects . animateClass . apply ( this , [ { toggle : classNames } , force , speed , easing ] ) ; } } , switchClass : function ( remove , add , speed , easing , callback ) { return $ . effects . animateClass . apply ( this , [ { add : add , remove : remove } , speed , easing , callback ] ) ; } } ) ; $ . extend ( $ . effects , { version : "1.8.2" , save : function ( element , set ) { for ( var i = 0 ; i < set . length ; i ++ ) { if ( set [ i ] !== null ) element . data ( "ec.storage." + set [ i ] , element [ 0 ] . style [ set [ i ] ] ) ; } } , restore : function ( element , set ) { for ( var i = 0 ; i < set . length ; i ++ ) { if ( set [ i ] !== null ) element . css ( set [ i ] , element . data ( "ec.storage." + set [ i ] ) ) ; } } , setMode : function ( el , mode ) { if ( mode == 'toggle' ) mode = el . is ( ':hidden' ) ? 'show' : 'hide' ; return mode ; } , getBaseline : function ( origin , original ) { var y , x ; switch ( origin [ 0 ] ) { case 'top' : y = 0 ; break ; case 'middle' : y = 0.5 ; break ; case 'bottom' : y = 1 ; break ; default : y = origin [ 0 ] / original . height ; } ; switch ( origin [ 1 ] ) { case 'left' : x = 0 ; break ; case 'center' : x = 0.5 ; break ; case 'right' : x = 1 ; break ; default : x = origin [ 1 ] / original . width ; } ; return { x : x , y : y } ; } , createWrapper : function ( element ) { if ( element . parent ( ) . is ( '.ui-effects-wrapper' ) ) { return element . parent ( ) ; }
2010-05-19 15:43:12 +00:00
var props = { width : element . outerWidth ( true ) , height : element . outerHeight ( true ) , 'float' : element . css ( 'float' ) } , wrapper = $ ( '<div></div>' ) . addClass ( 'ui-effects-wrapper' ) . css ( { fontSize : '100%' , background : 'transparent' , border : 'none' , margin : 0 , padding : 0 } ) ; element . wrap ( wrapper ) ; wrapper = element . parent ( ) ; if ( element . css ( 'position' ) == 'static' ) { wrapper . css ( { position : 'relative' } ) ; element . css ( { position : 'relative' } ) ; } else { $ . extend ( props , { position : element . css ( 'position' ) , zIndex : element . css ( 'z-index' ) } ) ; $ . each ( [ 'top' , 'left' , 'bottom' , 'right' ] , function ( i , pos ) { props [ pos ] = element . css ( pos ) ; if ( isNaN ( parseInt ( props [ pos ] , 10 ) ) ) { props [ pos ] = 'auto' ; } } ) ; element . css ( { position : 'relative' , top : 0 , left : 0 } ) ; }
return wrapper . css ( props ) . show ( ) ; } , removeWrapper : function ( element ) { if ( element . parent ( ) . is ( '.ui-effects-wrapper' ) )
return element . parent ( ) . replaceWith ( element ) ; return element ; } , setTransition : function ( element , list , factor , value ) { value = value || { } ; $ . each ( list , function ( i , x ) { unit = element . cssUnit ( x ) ; if ( unit [ 0 ] > 0 ) value [ x ] = unit [ 0 ] * factor + unit [ 1 ] ; } ) ; return value ; } } ) ; function _normalizeArguments ( effect , options , speed , callback ) { if ( typeof effect == 'object' ) { callback = options ; speed = null ; options = effect ; effect = options . effect ; }
if ( $ . isFunction ( options ) ) { callback = options ; speed = null ; options = { } ; }
if ( $ . isFunction ( speed ) ) { callback = speed ; speed = null ; }
if ( typeof options == 'number' || $ . fx . speeds [ options ] ) { callback = speed ; speed = options ; options = { } ; }
options = options || { } ; speed = speed || options . duration ; speed = $ . fx . off ? 0 : typeof speed == 'number' ? speed : $ . fx . speeds [ speed ] || $ . fx . speeds . _default ; callback = callback || options . complete ; return [ effect , options , speed , callback ] ; }
$ . fn . extend ( { effect : function ( effect , options , speed , callback ) { var args = _normalizeArguments . apply ( this , arguments ) , args2 = { options : args [ 1 ] , duration : args [ 2 ] , callback : args [ 3 ] } , effectMethod = $ . effects [ effect ] ; return effectMethod && ! $ . fx . off ? effectMethod . call ( this , args2 ) : this ; } , _show : $ . fn . show , show : function ( speed ) { if ( ! speed || typeof speed == 'number' || $ . fx . speeds [ speed ] ) { return this . _show . apply ( this , arguments ) ; } else { var args = _normalizeArguments . apply ( this , arguments ) ; args [ 1 ] . mode = 'show' ; return this . effect . apply ( this , args ) ; } } , _hide : $ . fn . hide , hide : function ( speed ) { if ( ! speed || typeof speed == 'number' || $ . fx . speeds [ speed ] ) { return this . _hide . apply ( this , arguments ) ; } else { var args = _normalizeArguments . apply ( this , arguments ) ; args [ 1 ] . mode = 'hide' ; return this . effect . apply ( this , args ) ; } } , _ _toggle : $ . fn . toggle , toggle : function ( speed ) { if ( ! speed || typeof speed == 'number' || $ . fx . speeds [ speed ] || typeof speed == 'boolean' || $ . isFunction ( speed ) ) { return this . _ _toggle . apply ( this , arguments ) ; } else { var args = _normalizeArguments . apply ( this , arguments ) ; args [ 1 ] . mode = 'toggle' ; return this . effect . apply ( this , args ) ; } } , cssUnit : function ( key ) { var style = this . css ( key ) , val = [ ] ; $ . each ( [ 'em' , 'px' , '%' , 'pt' ] , function ( i , unit ) { if ( style . indexOf ( unit ) > 0 )
val = [ parseFloat ( style ) , unit ] ; } ) ; return val ; } } ) ; $ . easing . jswing = $ . easing . swing ; $ . extend ( $ . easing , { def : 'easeOutQuad' , swing : function ( x , t , b , c , d ) { return $ . easing [ $ . easing . def ] ( x , t , b , c , d ) ; } , easeInQuad : function ( x , t , b , c , d ) { return c * ( t /= d ) * t + b ; } , easeOutQuad : function ( x , t , b , c , d ) { return - c * ( t /= d ) * ( t - 2 ) + b ; } , easeInOutQuad : function ( x , t , b , c , d ) { if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b ; return - c / 2 * ( ( -- t ) * ( t - 2 ) - 1 ) + b ; } , easeInCubic : function ( x , t , b , c , d ) { return c * ( t /= d ) * t * t + b ; } , easeOutCubic : function ( x , t , b , c , d ) { return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b ; } , easeInOutCubic : function ( x , t , b , c , d ) { if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b ; return c / 2 * ( ( t -= 2 ) * t * t + 2 ) + b ; } , easeInQuart : function ( x , t , b , c , d ) { return c * ( t /= d ) * t * t * t + b ; } , easeOutQuart : function ( x , t , b , c , d ) { return - c * ( ( t = t / d - 1 ) * t * t * t - 1 ) + b ; } , easeInOutQuart : function ( x , t , b , c , d ) { if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b ; return - c / 2 * ( ( t -= 2 ) * t * t * t - 2 ) + b ; } , easeInQuint : function ( x , t , b , c , d ) { return c * ( t /= d ) * t * t * t * t + b ; } , easeOutQuint : function ( x , t , b , c , d ) { return c * ( ( t = t / d - 1 ) * t * t * t * t + 1 ) + b ; } , easeInOutQuint : function ( x , t , b , c , d ) { if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b ; return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2 ) + b ; } , easeInSine : function ( x , t , b , c , d ) { return - c * Math . cos ( t / d * ( Math . PI / 2 ) ) + c + b ; } , easeOutSine : function ( x , t , b , c , d ) { return c * Math . sin ( t / d * ( Math . PI / 2 ) ) + b ; } , easeInOutSine : function ( x , t , b , c , d ) { return - c / 2 * ( Math . cos ( Math . PI * t / d ) - 1 ) + b ; } , easeInExpo : function ( x , t , b , c , d ) { return ( t == 0 ) ? b : c * Math . pow ( 2 , 10 * ( t / d - 1 ) ) + b ; } , easeOutExpo : function ( x , t , b , c , d ) { return ( t == d ) ? b + c : c * ( - Math . pow ( 2 , - 10 * t / d ) + 1 ) + b ; } , easeInOutExpo : function ( x , t , b , c , d ) { if ( t == 0 ) return b ; if ( t == d ) return b + c ; if ( ( t /= d / 2 ) < 1 ) return c / 2 * Math . pow ( 2 , 10 * ( t - 1 ) ) + b ; return c / 2 * ( - Math . pow ( 2 , - 10 * -- t ) + 2 ) + b ; } , easeInCirc : function ( x , t , b , c , d ) { return - c * ( Math . sqrt ( 1 - ( t /= d ) * t ) - 1 ) + b ; } , easeOutCirc : function ( x , t , b , c , d ) { return c * Math . sqrt ( 1 - ( t = t / d - 1 ) * t ) + b ; } , easeInOutCirc : function ( x , t , b , c , d ) { if ( ( t /= d / 2 ) < 1 ) return - c / 2 * ( Math . sqrt ( 1 - t * t ) - 1 ) + b ; return c / 2 * ( Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) + b ; } , easeInElastic : function ( x , t , b , c , d ) { var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if ( ( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ; if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ; return - ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ; } , easeOutElastic : function ( x , t , b , c , d ) { var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if ( ( t /= d ) == 1 ) return b + c ; if ( ! p ) p = d * . 3 ; if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ; return a * Math . pow ( 2 , - 10 * t ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) + c + b ; } , easeInOutElastic : function ( x , t , b , c , d ) { var s = 1.70158 ; var p = 0 ; var a = c ; if ( t == 0 ) return b ; if ( ( t /= d / 2 ) == 2 ) return b + c ; if ( ! p ) p = d * ( . 3 * 1.5 ) ; if ( a < Math . abs ( c ) ) { a = c ; var s = p / 4 ; }
else var s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ; if ( t < 1 ) return - . 5 * ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ; return a * Math . pow ( 2 , - 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) * . 5 + c + b ; } , easeInBack : function ( x , t , b , c , d , s ) { if ( s == undefined ) s = 1.70158 ; return c * ( t /= d ) * t * ( ( s + 1 ) * t - s ) + b ; } , easeOutBack : function ( x , t , b , c , d , s ) { if ( s == undefined ) s = 1.70158 ; return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s ) + 1 ) + b ; } , easeInOutBack : function ( x , t , b , c , d , s ) { if ( s == undefined ) s = 1.70158 ; if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= ( 1.525 ) ) + 1 ) * t - s ) ) + b ; return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= ( 1.525 ) ) + 1 ) * t + s ) + 2 ) + b ; } , easeInBounce : function ( x , t , b , c , d ) { return c - $ . easing . easeOutBounce ( x , d - t , 0 , c , d ) + b ; } , easeOutBounce : function ( x , t , b , c , d ) { if ( ( t /= d ) < ( 1 / 2.75 ) ) { return c * ( 7.5625 * t * t ) + b ; } else if ( t < ( 2 / 2.75 ) ) { return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + . 75 ) + b ; } else if ( t < ( 2.5 / 2.75 ) ) { return c * ( 7.5625 * ( t -= ( 2.25 / 2.75 ) ) * t + . 9375 ) + b ; } else { return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + . 984375 ) + b ; } } , easeInOutBounce : function ( x , t , b , c , d ) { if ( t < d / 2 ) return $ . easing . easeInBounce ( x , t * 2 , 0 , c , d ) * . 5 + b ; return $ . easing . easeOutBounce ( x , t * 2 - d , 0 , c , d ) * . 5 + c * . 5 + b ; } } ) ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . blind = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'hide' ) ; var direction = o . options . direction || 'vertical' ; $ . effects . save ( el , props ) ; el . show ( ) ; var wrapper = $ . effects . createWrapper ( el ) . css ( { overflow : 'hidden' } ) ; var ref = ( direction == 'vertical' ) ? 'height' : 'width' ; var distance = ( direction == 'vertical' ) ? wrapper . height ( ) : wrapper . width ( ) ; if ( mode == 'show' ) wrapper . css ( ref , 0 ) ; var animation = { } ; animation [ ref ] = mode == 'show' ? distance : 0 ; wrapper . animate ( animation , o . duration , o . options . easing , function ( ) { if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( el [ 0 ] , arguments ) ; el . dequeue ( ) ; } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . bounce = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'effect' ) ; var direction = o . options . direction || 'up' ; var distance = o . options . distance || 20 ; var times = o . options . times || 5 ; var speed = o . duration || 250 ; if ( /show|hide/ . test ( mode ) ) props . push ( 'opacity' ) ; $ . effects . save ( el , props ) ; el . show ( ) ; $ . effects . createWrapper ( el ) ; var ref = ( direction == 'up' || direction == 'down' ) ? 'top' : 'left' ; var motion = ( direction == 'up' || direction == 'left' ) ? 'pos' : 'neg' ; var distance = o . options . distance || ( ref == 'top' ? el . outerHeight ( { margin : true } ) / 3 : el . outerWidth ( { margin : true } ) / 3 ) ; if ( mode == 'show' ) el . css ( 'opacity' , 0 ) . css ( ref , motion == 'pos' ? - distance : distance ) ; if ( mode == 'hide' ) distance = distance / ( times * 2 ) ; if ( mode != 'hide' ) times -- ; if ( mode == 'show' ) { var animation = { opacity : 1 } ; animation [ ref ] = ( motion == 'pos' ? '+=' : '-=' ) + distance ; el . animate ( animation , speed / 2 , o . options . easing ) ; distance = distance / 2 ; times -- ; } ; for ( var i = 0 ; i < times ; i ++ ) { var animation1 = { } , animation2 = { } ; animation1 [ ref ] = ( motion == 'pos' ? '-=' : '+=' ) + distance ; animation2 [ ref ] = ( motion == 'pos' ? '+=' : '-=' ) + distance ; el . animate ( animation1 , speed / 2 , o . options . easing ) . animate ( animation2 , speed / 2 , o . options . easing ) ; distance = ( mode == 'hide' ) ? distance * 2 : distance / 2 ; } ; if ( mode == 'hide' ) { var animation = { opacity : 0 } ; animation [ ref ] = ( motion == 'pos' ? '-=' : '+=' ) + distance ; el . animate ( animation , speed / 2 , o . options . easing , function ( ) { el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; } ) ; } else { var animation1 = { } , animation2 = { } ; animation1 [ ref ] = ( motion == 'pos' ? '-=' : '+=' ) + distance ; animation2 [ ref ] = ( motion == 'pos' ? '+=' : '-=' ) + distance ; el . animate ( animation1 , speed / 2 , o . options . easing ) . animate ( animation2 , speed / 2 , o . options . easing , function ( ) { $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; } ) ; } ; el . queue ( 'fx' , function ( ) { el . dequeue ( ) ; } ) ; el . dequeue ( ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . clip = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' , 'height' , 'width' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'hide' ) ; var direction = o . options . direction || 'vertical' ; $ . effects . save ( el , props ) ; el . show ( ) ; var wrapper = $ . effects . createWrapper ( el ) . css ( { overflow : 'hidden' } )
var animation = { } ; animation [ ref . size ] = mode == 'show' ? distance : 0 ; animation [ ref . position ] = mode == 'show' ? 0 : distance / 2 ; animate . animate ( animation , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( el [ 0 ] , arguments ) ; el . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . drop = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' , 'opacity' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'hide' ) ; var direction = o . options . direction || 'left' ; $ . effects . save ( el , props ) ; el . show ( ) ; $ . effects . createWrapper ( el ) ; var ref = ( direction == 'up' || direction == 'down' ) ? 'top' : 'left' ; var motion = ( direction == 'up' || direction == 'left' ) ? 'pos' : 'neg' ; var distance = o . options . distance || ( ref == 'top' ? el . outerHeight ( { margin : true } ) / 2 : el . outerWidth ( { margin : true } ) / 2 ) ; if ( mode == 'show' ) el . css ( 'opacity' , 0 ) . css ( ref , motion == 'pos' ? - distance : distance ) ; var animation = { opacity : mode == 'show' ? 1 : 0 } ; animation [ ref ] = ( mode == 'show' ? ( motion == 'pos' ? '+=' : '-=' ) : ( motion == 'pos' ? '-=' : '+=' ) ) + distance ; el . animate ( animation , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; el . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . explode = function ( o ) { return this . queue ( function ( ) { var rows = o . options . pieces ? Math . round ( Math . sqrt ( o . options . pieces ) ) : 3 ; var cells = o . options . pieces ? Math . round ( Math . sqrt ( o . options . pieces ) ) : 3 ; o . options . mode = o . options . mode == 'toggle' ? ( $ ( this ) . is ( ':visible' ) ? 'hide' : 'show' ) : o . options . mode ; var el = $ ( this ) . show ( ) . css ( 'visibility' , 'hidden' ) ; var offset = el . offset ( ) ; offset . top -= parseInt ( el . css ( "marginTop" ) , 10 ) || 0 ; offset . left -= parseInt ( el . css ( "marginLeft" ) , 10 ) || 0 ; var width = el . outerWidth ( true ) ; var height = el . outerHeight ( true ) ; for ( var i = 0 ; i < rows ; i ++ ) { for ( var j = 0 ; j < cells ; j ++ ) { el . clone ( ) . appendTo ( 'body' ) . wrap ( '<div></div>' ) . css ( { position : 'absolute' , visibility : 'visible' , left : - j * ( width / cells ) , top : - i * ( height / rows ) } ) . parent ( ) . addClass ( 'ui-effects-explode' ) . css ( { position : 'absolute' , overflow : 'hidden' , width : width / cells , height : height / rows , left : offset . left + j * ( width / cells ) + ( o . options . mode == 'show' ? ( j - Math . floor ( cells / 2 ) ) * ( width / cells ) : 0 ) , top : offset . top + i * ( height / rows ) + ( o . options . mode == 'show' ? ( i - Math . floor ( rows / 2 ) ) * ( height / rows ) : 0 ) , opacity : o . options . mode == 'show' ? 0 : 1 } ) . animate ( { left : offset . left + j * ( width / cells ) + ( o . options . mode == 'show' ? 0 : ( j - Math . floor ( cells / 2 ) ) * ( width / cells ) ) , top : offset . top + i * ( height / rows ) + ( o . options . mode == 'show' ? 0 : ( i - Math . floor ( rows / 2 ) ) * ( height / rows ) ) , opacity : o . options . mode == 'show' ? 1 : 0 } , o . duration || 500 ) ; } }
setTimeout ( function ( ) { o . options . mode == 'show' ? el . css ( { visibility : 'visible' } ) : el . css ( { visibility : 'visible' } ) . hide ( ) ; if ( o . callback ) o . callback . apply ( el [ 0 ] ) ; el . dequeue ( ) ; $ ( 'div.ui-effects-explode' ) . remove ( ) ; } , o . duration || 500 ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . fade = function ( o ) { return this . queue ( function ( ) { var elem = $ ( this ) , mode = $ . effects . setMode ( elem , o . options . mode || 'hide' ) ; elem . animate ( { opacity : mode } , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { ( o . callback && o . callback . apply ( this , arguments ) ) ; elem . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . fold = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'hide' ) ; var size = o . options . size || 15 ; var horizFirst = ! ( ! o . options . horizFirst ) ; var duration = o . duration ? o . duration / 2 : $ . fx . speeds . _default / 2 ; $ . effects . save ( el , props ) ; el . show ( ) ; var wrapper = $ . effects . createWrapper ( el ) . css ( { overflow : 'hidden' } ) ; var widthFirst = ( ( mode == 'show' ) != horizFirst ) ; var ref = widthFirst ? [ 'width' , 'height' ] : [ 'height' , 'width' ] ; var distance = widthFirst ? [ wrapper . width ( ) , wrapper . height ( ) ] : [ wrapper . height ( ) , wrapper . width ( ) ] ; var percent = /([0-9]+)%/ . exec ( size ) ; if ( percent ) size = parseInt ( percent [ 1 ] , 10 ) / 100 * distance [ mode == 'hide' ? 0 : 1 ] ; if ( mode == 'show' ) wrapper . css ( horizFirst ? { height : 0 , width : size } : { height : size , width : 0 } ) ; var animation1 = { } , animation2 = { } ; animation1 [ ref [ 0 ] ] = mode == 'show' ? distance [ 0 ] : size ; animation2 [ ref [ 1 ] ] = mode == 'show' ? distance [ 1 ] : 0 ; wrapper . animate ( animation1 , duration , o . options . easing ) . animate ( animation2 , duration , o . options . easing , function ( ) { if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( el [ 0 ] , arguments ) ; el . dequeue ( ) ; } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . highlight = function ( o ) { return this . queue ( function ( ) { var elem = $ ( this ) , props = [ 'backgroundImage' , 'backgroundColor' , 'opacity' ] , mode = $ . effects . setMode ( elem , o . options . mode || 'show' ) , animation = { backgroundColor : elem . css ( 'backgroundColor' ) } ; if ( mode == 'hide' ) { animation . opacity = 0 ; }
$ . effects . save ( elem , props ) ; elem . show ( ) . css ( { backgroundImage : 'none' , backgroundColor : o . options . color || '#ffff99' } ) . animate ( animation , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { ( mode == 'hide' && elem . hide ( ) ) ; $ . effects . restore ( elem , props ) ; ( mode == 'show' && ! $ . support . opacity && this . style . removeAttribute ( 'filter' ) ) ; ( o . callback && o . callback . apply ( this , arguments ) ) ; elem . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . pulsate = function ( o ) { return this . queue ( function ( ) { var elem = $ ( this ) , mode = $ . effects . setMode ( elem , o . options . mode || 'show' ) ; times = ( ( o . options . times || 5 ) * 2 ) - 1 ; duration = o . duration ? o . duration / 2 : $ . fx . speeds . _default / 2 , isVisible = elem . is ( ':visible' ) , animateTo = 0 ; if ( ! isVisible ) { elem . css ( 'opacity' , 0 ) . show ( ) ; animateTo = 1 ; }
if ( ( mode == 'hide' && isVisible ) || ( mode == 'show' && ! isVisible ) ) { times -- ; }
for ( var i = 0 ; i < times ; i ++ ) { elem . animate ( { opacity : animateTo } , duration , o . options . easing ) ; animateTo = ( animateTo + 1 ) % 2 ; }
elem . animate ( { opacity : animateTo } , duration , o . options . easing , function ( ) { if ( animateTo == 0 ) { elem . hide ( ) ; }
( o . callback && o . callback . apply ( this , arguments ) ) ; } ) ; elem . queue ( 'fx' , function ( ) { elem . dequeue ( ) ; } ) . dequeue ( ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . puff = function ( o ) { return this . queue ( function ( ) { var elem = $ ( this ) , mode = $ . effects . setMode ( elem , o . options . mode || 'hide' ) , percent = parseInt ( o . options . percent , 10 ) || 150 , factor = percent / 100 , original = { height : elem . height ( ) , width : elem . width ( ) } ; $ . extend ( o . options , { fade : true , mode : mode , percent : mode == 'hide' ? percent : 100 , from : mode == 'hide' ? original : { height : original . height * factor , width : original . width * factor } } ) ; elem . effect ( 'scale' , o . options , o . duration , o . callback ) ; elem . dequeue ( ) ; } ) ; } ; $ . effects . scale = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) ; var options = $ . extend ( true , { } , o . options ) ; var mode = $ . effects . setMode ( el , o . options . mode || 'effect' ) ; var percent = parseInt ( o . options . percent , 10 ) || ( parseInt ( o . options . percent , 10 ) == 0 ? 0 : ( mode == 'hide' ? 0 : 100 ) ) ; var direction = o . options . direction || 'both' ; var origin = o . options . origin ; if ( mode != 'effect' ) { options . origin = origin || [ 'middle' , 'center' ] ; options . restore = true ; }
var original = { height : el . height ( ) , width : el . width ( ) } ; el . from = o . options . from || ( mode == 'show' ? { height : 0 , width : 0 } : original ) ; var factor = { y : direction != 'horizontal' ? ( percent / 100 ) : 1 , x : direction != 'vertical' ? ( percent / 100 ) : 1 } ; el . to = { height : original . height * factor . y , width : original . width * factor . x } ; if ( o . options . fade ) { if ( mode == 'show' ) { el . from . opacity = 0 ; el . to . opacity = 1 ; } ; if ( mode == 'hide' ) { el . from . opacity = 1 ; el . to . opacity = 0 ; } ; } ; options . from = el . from ; options . to = el . to ; options . mode = mode ; el . effect ( 'size' , options , o . duration , o . callback ) ; el . dequeue ( ) ; } ) ; } ; $ . effects . size = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' , 'width' , 'height' , 'overflow' , 'opacity' ] ; var props1 = [ 'position' , 'top' , 'left' , 'overflow' , 'opacity' ] ; var props2 = [ 'width' , 'height' , 'overflow' ] ; var cProps = [ 'fontSize' ] ; var vProps = [ 'borderTopWidth' , 'borderBottomWidth' , 'paddingTop' , 'paddingBottom' ] ; var hProps = [ 'borderLeftWidth' , 'borderRightWidth' , 'paddingLeft' , 'paddingRight' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'effect' ) ; var restore = o . options . restore || false ; var scale = o . options . scale || 'both' ; var origin = o . options . origin ; var original = { height : el . height ( ) , width : el . width ( ) } ; el . from = o . options . from || original ; el . to = o . options . to || original ; if ( origin ) { var baseline = $ . effects . getBaseline ( origin , original ) ; el . from . top = ( original . height - el . from . height ) * baseline . y ; el . from . left = ( original . width - el . from . width ) * baseline . x ; el . to . top = ( original . height - el . to . height ) * baseline . y ; el . to . left = ( original . width - el . to . width ) * baseline . x ; } ; var factor = { from : { y : el . from . height / original . height , x : el . from . width / original . width } , to : { y : el . to . height / original . height , x : el . to . width / original . width } } ; if ( scale == 'box' || scale == 'both' ) { if ( factor . from . y != factor . to . y ) { props = props . concat ( vProps ) ; el . from = $ . effects . setTransition ( el , vProps , factor . from . y , el . from ) ; el . to = $ . effects . setTransition ( el , vProps , factor . to . y , el . to ) ; } ; if ( factor . from . x != factor . to . x ) { props = props . concat ( hProps ) ; el . from = $ . effects . setTransition ( el , hProps , factor . from . x , el . from ) ; el . to = $ . effects . setTransition ( el , hProps , factor . to . x , el . to ) ; } ; } ; if ( scale == 'content' || scale == 'both' ) { if ( factor . from . y != factor . to . y ) { props = props . concat ( cProps ) ; el . from = $ . effects . setTransition ( el , cProps , factor . from . y , el . from ) ; el . to = $ . effects . setTransition ( el , cProps , factor . to . y , el . to ) ; } ; } ; $ . effects . save ( el , restore ? props : props1 ) ; el . show ( ) ; $ . effects . createWrapper ( el ) ; el . css ( 'overflow' , 'hidden' ) . css ( el . from ) ; if ( scale == 'content' || scale == 'both' ) { vProps = vProps . concat ( [ 'marginTop' , 'marginBottom' ] ) . concat ( cProps ) ; hProps = hProps . concat ( [ 'marginLeft' , 'marginRight' ] ) ; props2 = props . concat ( vProps ) . concat ( hProps ) ; el . find ( "*[width]" ) . each ( function ( ) { child = $ ( this ) ; if ( restore ) $ . effects . save ( child , props2 ) ; var c _original = { height : child . height ( ) , width : child . width ( ) } ; child . from = { height : c _original . height * factor . from . y , width : c _original . width * factor . from . x } ; child . to = { height : c _original . height * factor . to . y , width : c _original . width * factor . to . x } ; if ( factor . from . y != factor . to . y ) { child . from = $ . effects . setTransition ( child , vProps , factor . from . y , child . from ) ; child . to = $ . effects . setTransition ( child , vProps , factor . to . y , child . to ) ; } ; if ( factor . from . x != factor . to . x ) { child . from = $ . effects . setTransition ( child , hProps , factor . from . x , child . from ) ; child . to = $ . effects . setTransition ( child , hProps , factor . to . x , child . to ) ; } ; child . css ( child . from ) ; child . animate ( child . to , o . duration , o . options . easing , function ( ) { if ( restore ) $ . effects . restore ( child , props2 ) ; } ) ; } ) ; } ; el . animate ( el . to , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { if ( el . to . opacity === 0 ) { el . css ( 'opacity' , el . from . opacity ) ; }
2010-06-08 16:15:48 +00:00
if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , restore ? props : props1 ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; el . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . shake = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'effect' ) ; var direction = o . options . direction || 'left' ; var distance = o . options . distance || 20 ; var times = o . options . times || 3 ; var speed = o . duration || o . options . duration || 140 ; $ . effects . save ( el , props ) ; el . show ( ) ; $ . effects . createWrapper ( el ) ; var ref = ( direction == 'up' || direction == 'down' ) ? 'top' : 'left' ; var motion = ( direction == 'up' || direction == 'left' ) ? 'pos' : 'neg' ; var animation = { } , animation1 = { } , animation2 = { } ; animation [ ref ] = ( motion == 'pos' ? '-=' : '+=' ) + distance ; animation1 [ ref ] = ( motion == 'pos' ? '+=' : '-=' ) + distance * 2 ; animation2 [ ref ] = ( motion == 'pos' ? '-=' : '+=' ) + distance * 2 ; el . animate ( animation , speed , o . options . easing ) ; for ( var i = 1 ; i < times ; i ++ ) { el . animate ( animation1 , speed , o . options . easing ) . animate ( animation2 , speed , o . options . easing ) ; } ; el . animate ( animation1 , speed , o . options . easing ) . animate ( animation , speed / 2 , o . options . easing , function ( ) { $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; } ) ; el . queue ( 'fx' , function ( ) { el . dequeue ( ) ; } ) ; el . dequeue ( ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . slide = function ( o ) { return this . queue ( function ( ) { var el = $ ( this ) , props = [ 'position' , 'top' , 'left' ] ; var mode = $ . effects . setMode ( el , o . options . mode || 'show' ) ; var direction = o . options . direction || 'left' ; $ . effects . save ( el , props ) ; el . show ( ) ; $ . effects . createWrapper ( el ) . css ( { overflow : 'hidden' } ) ; var ref = ( direction == 'up' || direction == 'down' ) ? 'top' : 'left' ; var motion = ( direction == 'up' || direction == 'left' ) ? 'pos' : 'neg' ; var distance = o . options . distance || ( ref == 'top' ? el . outerHeight ( { margin : true } ) : el . outerWidth ( { margin : true } ) ) ; if ( mode == 'show' ) el . css ( ref , motion == 'pos' ? - distance : distance ) ; var animation = { } ; animation [ ref ] = ( mode == 'show' ? ( motion == 'pos' ? '+=' : '-=' ) : ( motion == 'pos' ? '-=' : '+=' ) ) + distance ; el . animate ( animation , { queue : false , duration : o . duration , easing : o . options . easing , complete : function ( ) { if ( mode == 'hide' ) el . hide ( ) ; $ . effects . restore ( el , props ) ; $ . effects . removeWrapper ( el ) ; if ( o . callback ) o . callback . apply ( this , arguments ) ; el . dequeue ( ) ; } } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . effects . transfer = function ( o ) { return this . queue ( function ( ) { var elem = $ ( this ) , target = $ ( o . options . to ) , endPosition = target . offset ( ) , animation = { top : endPosition . top , left : endPosition . left , height : target . innerHeight ( ) , width : target . innerWidth ( ) } , startPosition = elem . offset ( ) , transfer = $ ( '<div class="ui-effects-transfer"></div>' ) . appendTo ( document . body ) . addClass ( o . options . className ) . css ( { top : startPosition . top , left : startPosition . left , height : elem . innerHeight ( ) , width : elem . innerWidth ( ) , position : 'absolute' } ) . animate ( animation , o . duration , o . options . easing , function ( ) { transfer . remove ( ) ; ( o . callback && o . callback . apply ( elem [ 0 ] , arguments ) ) ; elem . dequeue ( ) ; } ) ; } ) ; } ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.accordion" , { options : { active : 0 , animated : 'slide' , autoHeight : true , clearStyle : false , collapsible : false , event : "click" , fillSpace : false , header : "> li > :first-child,> :not(li):even" , icons : { header : "ui-icon-triangle-1-e" , headerSelected : "ui-icon-triangle-1-s" } , navigation : false , navigationFilter : function ( ) { return this . href . toLowerCase ( ) == location . href . toLowerCase ( ) ; } } , _create : function ( ) { var o = this . options , self = this ; this . running = 0 ; this . element . addClass ( "ui-accordion ui-widget ui-helper-reset" ) ; this . element . children ( "li" ) . addClass ( "ui-accordion-li-fix" ) ; this . headers = this . element . find ( o . header ) . addClass ( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ) . bind ( "mouseenter.accordion" , function ( ) { $ ( this ) . addClass ( 'ui-state-hover' ) ; } ) . bind ( "mouseleave.accordion" , function ( ) { $ ( this ) . removeClass ( 'ui-state-hover' ) ; } ) . bind ( "focus.accordion" , function ( ) { $ ( this ) . addClass ( 'ui-state-focus' ) ; } ) . bind ( "blur.accordion" , function ( ) { $ ( this ) . removeClass ( 'ui-state-focus' ) ; } ) ; this . headers . next ( ) . addClass ( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) ; if ( o . navigation ) { var current = this . element . find ( "a" ) . filt
2010-05-19 15:43:12 +00:00
this . active = this . _findActive ( this . active || o . active ) . toggleClass ( "ui-state-default" ) . toggleClass ( "ui-state-active" ) . toggleClass ( "ui-corner-all" ) . toggleClass ( "ui-corner-top" ) ; this . active . next ( ) . addClass ( 'ui-accordion-content-active' ) ; this . _createIcons ( ) ; this . resize ( ) ; this . element . attr ( 'role' , 'tablist' ) ; this . headers . attr ( 'role' , 'tab' ) . bind ( 'keydown' , function ( event ) { return self . _keydown ( event ) ; } ) . next ( ) . attr ( 'role' , 'tabpanel' ) ; this . headers . not ( this . active || "" ) . attr ( 'aria-expanded' , 'false' ) . attr ( "tabIndex" , "-1" ) . next ( ) . hide ( ) ; if ( ! this . active . length ) { this . headers . eq ( 0 ) . attr ( 'tabIndex' , '0' ) ; } else { this . active . attr ( 'aria-expanded' , 'true' ) . attr ( 'tabIndex' , '0' ) ; }
if ( ! $ . browser . safari )
this . headers . find ( 'a' ) . attr ( 'tabIndex' , '-1' ) ; if ( o . event ) { this . headers . bind ( ( o . event ) + ".accordion" , function ( event ) { self . _clickHandler . call ( self , event , this ) ; event . preventDefault ( ) ; } ) ; } } , _createIcons : function ( ) { var o = this . options ; if ( o . icons ) { $ ( "<span/>" ) . addClass ( "ui-icon " + o . icons . header ) . prependTo ( this . headers ) ; this . active . find ( ".ui-icon" ) . toggleClass ( o . icons . header ) . toggleClass ( o . icons . headerSelected ) ; this . element . addClass ( "ui-accordion-icons" ) ; } } , _destroyIcons : function ( ) { this . headers . children ( ".ui-icon" ) . remove ( ) ; this . element . removeClass ( "ui-accordion-icons" ) ; } , destroy : function ( ) { var o = this . options ; this . element . removeClass ( "ui-accordion ui-widget ui-helper-reset" ) . removeAttr ( "role" ) . unbind ( '.accordion' ) . removeData ( 'accordion' ) ; this . headers . unbind ( ".accordion" ) . removeClass ( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top" ) . removeAttr ( "role" ) . removeAttr ( "aria-expanded" ) . removeAttr ( "tabIndex" ) ; this . headers . find ( "a" ) . removeAttr ( "tabIndex" ) ; this . _destroyIcons ( ) ; var contents = this . headers . next ( ) . css ( "display" , "" ) . removeAttr ( "role" ) . removeClass ( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active" ) ; if ( o . autoHeight || o . fillHeight ) { contents . css ( "height" , "" ) ; }
return this ; } , _setOption : function ( key , value ) { $ . Widget . prototype . _setOption . apply ( this , arguments ) ; if ( key == "active" ) { this . activate ( value ) ; }
if ( key == "icons" ) { this . _destroyIcons ( ) ; if ( value ) { this . _createIcons ( ) ; } } } , _keydown : function ( event ) { var o = this . options , keyCode = $ . ui . keyCode ; if ( o . disabled || event . altKey || event . ctrlKey )
return ; var length = this . headers . length ; var currentIndex = this . headers . index ( event . target ) ; var toFocus = false ; switch ( event . keyCode ) { case keyCode . RIGHT : case keyCode . DOWN : toFocus = this . headers [ ( currentIndex + 1 ) % length ] ; break ; case keyCode . LEFT : case keyCode . UP : toFocus = this . headers [ ( currentIndex - 1 + length ) % length ] ; break ; case keyCode . SPACE : case keyCode . ENTER : this . _clickHandler ( { target : event . target } , event . target ) ; event . preventDefault ( ) ; }
if ( toFocus ) { $ ( event . target ) . attr ( 'tabIndex' , '-1' ) ; $ ( toFocus ) . attr ( 'tabIndex' , '0' ) ; toFocus . focus ( ) ; return false ; }
return true ; } , resize : function ( ) { var o = this . options , maxHeight ; if ( o . fillSpace ) { if ( $ . browser . msie ) { var defOverflow = this . element . parent ( ) . css ( 'overflow' ) ; this . element . parent ( ) . css ( 'overflow' , 'hidden' ) ; }
maxHeight = this . element . parent ( ) . height ( ) ; if ( $ . browser . msie ) { this . element . parent ( ) . css ( 'overflow' , defOverflow ) ; }
this . headers . each ( function ( ) { maxHeight -= $ ( this ) . outerHeight ( true ) ; } ) ; this . headers . next ( ) . each ( function ( ) { $ ( this ) . height ( Math . max ( 0 , maxHeight - $ ( this ) . innerHeight ( ) + $ ( this ) . height ( ) ) ) ; } ) . css ( 'overflow' , 'auto' ) ; } else if ( o . autoHeight ) { maxHeight = 0 ; this . headers . next ( ) . each ( function ( ) { maxHeight = Math . max ( maxHeight , $ ( this ) . height ( ) ) ; } ) . height ( maxHeight ) ; }
return this ; } , activate : function ( index ) { this . options . active = index ; var active = this . _findActive ( index ) [ 0 ] ; this . _clickHandler ( { target : active } , active ) ; return this ; } , _findActive : function ( selector ) { return selector ? typeof selector == "number" ? this . headers . filter ( ":eq(" + selector + ")" ) : this . headers . not ( this . headers . not ( selector ) ) : selector === false ? $ ( [ ] ) : this . headers . filter ( ":eq(0)" ) ; } , _clickHandler : function ( event , target ) { var o = this . options ; if ( o . disabled )
return ; if ( ! event . target ) { if ( ! o . collapsible )
return ; this . active . removeClass ( "ui-state-active ui-corner-top" ) . addClass ( "ui-state-default ui-corner-all" ) . find ( ".ui-icon" ) . removeClass ( o . icons . headerSelected ) . addClass ( o . icons . header ) ; this . active . next ( ) . addClass ( 'ui-accordion-content-active' ) ; var toHide = this . active . next ( ) , data = { options : o , newHeader : $ ( [ ] ) , oldHeader : o . active , newContent : $ ( [ ] ) , oldContent : toHide } , toShow = ( this . active = $ ( [ ] ) ) ; this . _toggle ( toShow , toHide , data ) ; return ; }
var clicked = $ ( event . currentTarget || target ) ; var clickedIsActive = clicked [ 0 ] == this . active [ 0 ] ; o . active = o . collapsible && clickedIsActive ? false : $ ( '.ui-accordion-header' , this . element ) . index ( clicked ) ; if ( this . running || ( ! o . collapsible && clickedIsActive ) ) { return ; }
this . active . removeClass ( "ui-state-active ui-corner-top" ) . addClass ( "ui-state-default ui-corner-all" ) . find ( ".ui-icon" ) . removeClass ( o . icons . headerSelected ) . addClass ( o . icons . header ) ; if ( ! clickedIsActive ) { clicked . removeClass ( "ui-state-default ui-corner-all" ) . addClass ( "ui-state-active ui-corner-top" ) . find ( ".ui-icon" ) . removeClass ( o . icons . header ) . addClass ( o . icons . headerSelected ) ; clicked . next ( ) . addClass ( 'ui-accordion-content-active' ) ; }
var toShow = clicked . next ( ) , toHide = this . active . next ( ) , data = { options : o , newHeader : clickedIsActive && o . collapsible ? $ ( [ ] ) : clicked , oldHeader : this . active , newContent : clickedIsActive && o . collapsible ? $ ( [ ] ) : toShow , oldContent : toHide } , down = this . headers . index ( this . active [ 0 ] ) > this . headers . index ( clicked [ 0 ] ) ; this . active = clickedIsActive ? $ ( [ ] ) : clicked ; this . _toggle ( toShow , toHide , data , clickedIsActive , down ) ; return ; } , _toggle : function ( toShow , toHide , data , clickedIsActive , down ) { var o = this . options , self = this ; this . toShow = toShow ; this . toHide = toHide ; this . data = data ; var complete = function ( ) { if ( ! self ) return ; return self . _completed . apply ( self , arguments ) ; } ; this . _trigger ( "changestart" , null , this . data ) ; this . running = toHide . size ( ) === 0 ? toShow . size ( ) : toHide . size ( ) ; if ( o . animated ) { var animOptions = { } ; if ( o . collapsible && clickedIsActive ) { animOptions = { toShow : $ ( [ ] ) , toHide : toHide , complete : complete , down : down , autoHeight : o . autoHeight || o . fillSpace } ; } else { animOptions = { toShow : toShow , toHide : toHide , complete : complete , down : down , autoHeight : o . autoHeight || o . fillSpace } ; }
if ( ! o . proxied ) { o . proxied = o . animated ; }
if ( ! o . proxiedDuration ) { o . proxiedDuration = o . duration ; }
o . animated = $ . isFunction ( o . proxied ) ? o . proxied ( animOptions ) : o . proxied ; o . duration = $ . isFunction ( o . proxiedDuration ) ? o . proxiedDuration ( animOptions ) : o . proxiedDuration ; var animations = $ . ui . accordion . animations , duration = o . duration , easing = o . animated ; if ( easing && ! animations [ easing ] && ! $ . easing [ easing ] ) { easing = 'slide' ; }
if ( ! animations [ easing ] ) { animations [ easing ] = function ( options ) { this . slide ( options , { easing : easing , duration : duration || 700 } ) ; } ; }
animations [ easing ] ( animOptions ) ; } else { if ( o . collapsible && clickedIsActive ) { toShow . toggle ( ) ; } else { toHide . hide ( ) ; toShow . show ( ) ; }
complete ( true ) ; }
toHide . prev ( ) . attr ( 'aria-expanded' , 'false' ) . attr ( "tabIndex" , "-1" ) . blur ( ) ; toShow . prev ( ) . attr ( 'aria-expanded' , 'true' ) . attr ( "tabIndex" , "0" ) . focus ( ) ; } , _completed : function ( cancel ) { var o = this . options ; this . running = cancel ? 0 : -- this . running ; if ( this . running ) return ; if ( o . clearStyle ) { this . toShow . add ( this . toHide ) . css ( { height : "" , overflow : "" } ) ; }
2010-06-08 16:15:48 +00:00
this . toHide . removeClass ( "ui-accordion-content-active" ) ; this . _trigger ( 'change' , null , this . data ) ; } } ) ; $ . extend ( $ . ui . accordion , { version : "1.8.2" , animations : { slide : function ( options , additions ) { options = $ . extend ( { easing : "swing" , duration : 300 } , options , additions ) ; if ( ! options . toHide . size ( ) ) { options . toShow . animate ( { height : "show" } , options ) ; return ; }
2010-05-19 15:43:12 +00:00
if ( ! options . toShow . size ( ) ) { options . toHide . animate ( { height : "hide" } , options ) ; return ; }
var overflow = options . toShow . css ( 'overflow' ) , percentDone = 0 , showProps = { } , hideProps = { } , fxAttrs = [ "height" , "paddingTop" , "paddingBottom" ] , originalWidth ; var s = options . toShow ; originalWidth = s [ 0 ] . style . width ; s . width ( parseInt ( s . parent ( ) . width ( ) , 10 ) - parseInt ( s . css ( "paddingLeft" ) , 10 ) - parseInt ( s . css ( "paddingRight" ) , 10 ) - ( parseInt ( s . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( s . css ( "borderRightWidth" ) , 10 ) || 0 ) ) ; $ . each ( fxAttrs , function ( i , prop ) { hideProps [ prop ] = 'hide' ; var parts = ( '' + $ . css ( options . toShow [ 0 ] , prop ) ) . match ( /^([\d+-.]+)(.*)$/ ) ; showProps [ prop ] = { value : parts [ 1 ] , unit : parts [ 2 ] || 'px' } ; } ) ; options . toShow . css ( { height : 0 , overflow : 'hidden' } ) . show ( ) ; options . toHide . filter ( ":hidden" ) . each ( options . complete ) . end ( ) . filter ( ":visible" ) . animate ( hideProps , { step : function ( now , settings ) { if ( settings . prop == 'height' ) { percentDone = ( settings . end - settings . start === 0 ) ? 0 : ( settings . now - settings . start ) / ( settings . end - settings . start ) ; }
options . toShow [ 0 ] . style [ settings . prop ] = ( percentDone * showProps [ settings . prop ] . value ) + showProps [ settings . prop ] . unit ; } , duration : options . duration , easing : options . easing , complete : function ( ) { if ( ! options . autoHeight ) { options . toShow . css ( "height" , "" ) ; }
2010-06-08 16:15:48 +00:00
options . toShow . css ( "width" , originalWidth ) ; options . toShow . css ( { overflow : overflow } ) ; options . complete ( ) ; } } ) ; } , bounceslide : function ( options ) { this . slide ( options , { easing : options . down ? "easeOutBounce" : "swing" , duration : options . down ? 1000 : 200 } ) ; } } } ) ; } ) ( jQuery ) ; ( function ( $ ) { $ . widget ( "ui.autocomplete" , { options : { minLength : 1 , delay : 300 } , _create : function ( ) { var self = this , doc = this . element [ 0 ] . ownerDocument ; this . element . addClass ( "ui-autocomplete-input" ) . attr ( "autocomplete" , "off" ) . attr ( { role : "textbox" , "aria-autocomplete" : "list" , "aria-haspopup" : "true" } ) . bind ( "keydown.autocomplete" , function ( event ) { var keyCode = $ . ui . keyCode ; switch ( event . keyCode ) { case keyCode . PAGE _UP : self . _move ( "previousPage" , event ) ; break ; case keyCode . PAGE _DOWN : self . _move ( "nextPage" , event ) ; break ; case keyCode . UP : self . _move ( "previous" , event ) ; event . preventDefault ( ) ; break ; case keyCode . DOWN : self . _move ( "next" , event ) ; event . preventDefault ( ) ; break ; case keyCode . ENTER : case keyCode . NUMPAD _ENTER : if ( self . menu . active ) { event . preventDefault ( ) ; }
2010-05-19 15:43:12 +00:00
case keyCode . TAB : if ( ! self . menu . active ) { return ; }
2010-06-08 16:15:48 +00:00
self . menu . select ( event ) ; break ; case keyCode . ESCAPE : self . element . val ( self . term ) ; self . close ( event ) ; break ; case keyCode . LEFT : case keyCode . RIGHT : case keyCode . SHIFT : case keyCode . CONTROL : case keyCode . ALT : case keyCode . COMMAND : case keyCode . COMMAND _RIGHT : case keyCode . INSERT : case keyCode . CAPS _LOCK : case keyCode . END : case keyCode . HOME : break ; default : clearTimeout ( self . searching ) ; self . searching = setTimeout ( function ( ) { self . search ( null , event ) ; } , self . options . delay ) ; break ; } } ) . bind ( "focus.autocomplete" , function ( ) { self . selectedItem = null ; self . previous = self . element . val ( ) ; } ) . bind ( "blur.autocomplete" , function ( event ) { clearTimeout ( self . searching ) ; self . closing = setTimeout ( function ( ) { self . close ( event ) ; self . _change ( event ) ; } , 150 ) ; } ) ; this . _initSource ( ) ; this . response = function ( ) { return self . _response . apply ( self , arguments ) ; } ; this . menu = $ ( "<ul></ul>" ) . addClass ( "ui-autocomplete" ) . appendTo ( "body" , doc ) . mousedown ( function ( ) { setTimeout ( function ( ) { clearTimeout ( self . closing ) ; } , 13 ) ; } ) . menu ( { focus : function ( event , ui ) { var item = ui . item . data ( "item.autocomplete" ) ; if ( false !== self . _trigger ( "focus" , null , { item : item } ) ) { if ( /^key/ . test ( event . originalEvent . type ) ) { self . element . val ( item . value ) ; } } } , selected : function ( event , ui ) { var item = ui . item . data ( "item.autocomplete" ) ; if ( false !== self . _trigger ( "select" , event , { item : item } ) ) { self . element . val ( item . value ) ; }
2010-05-19 15:43:12 +00:00
self . close ( event ) ; var previous = self . previous ; if ( self . element [ 0 ] !== doc . activeElement ) { self . element . focus ( ) ; self . previous = previous ; }
self . selectedItem = item ; } , blur : function ( event , ui ) { if ( self . menu . element . is ( ":visible" ) ) { self . element . val ( self . term ) ; } } } ) . zIndex ( this . element . zIndex ( ) + 1 ) . css ( { top : 0 , left : 0 } ) . hide ( ) . data ( "menu" ) ; if ( $ . fn . bgiframe ) { this . menu . element . bgiframe ( ) ; } } , destroy : function ( ) { this . element . removeClass ( "ui-autocomplete-input" ) . removeAttr ( "autocomplete" ) . removeAttr ( "role" ) . removeAttr ( "aria-autocomplete" ) . removeAttr ( "aria-haspopup" ) ; this . menu . element . remove ( ) ; $ . Widget . prototype . destroy . call ( this ) ; } , _setOption : function ( key ) { $ . Widget . prototype . _setOption . apply ( this , arguments ) ; if ( key === "source" ) { this . _initSource ( ) ; } } , _initSource : function ( ) { var array , url ; if ( $ . isArray ( this . options . source ) ) { array = this . options . source ; this . source = function ( request , response ) { response ( $ . ui . autocomplete . filter ( array , request . term ) ) ; } ; } else if ( typeof this . options . source === "string" ) { url = this . options . source ; this . source = function ( request , response ) { $ . getJSON ( url , request , response ) ; } ; } else { this . source = this . options . source ; } } , search : function ( value , event ) { value = value != null ? value : this . element . val ( ) ; if ( value . length < this . options . minLength ) { return this . close ( event ) ; }
clearTimeout ( this . closing ) ; if ( this . _trigger ( "search" ) === false ) { return ; }
return this . _search ( value ) ; } , _search : function ( value ) { this . term = this . element . addClass ( "ui-autocomplete-loading" ) . val ( ) ; this . source ( { term : value } , this . response ) ; } , _response : function ( content ) { if ( content . length ) { content = this . _normalize ( content ) ; this . _suggest ( content ) ; this . _trigger ( "open" ) ; } else { this . close ( ) ; }
this . element . removeClass ( "ui-autocomplete-loading" ) ; } , close : function ( event ) { clearTimeout ( this . closing ) ; if ( this . menu . element . is ( ":visible" ) ) { this . _trigger ( "close" , event ) ; this . menu . element . hide ( ) ; this . menu . deactivate ( ) ; } } , _change : function ( event ) { if ( this . previous !== this . element . val ( ) ) { this . _trigger ( "change" , event , { item : this . selectedItem } ) ; } } , _normalize : function ( items ) { if ( items . length && items [ 0 ] . label && items [ 0 ] . value ) { return items ; }
return $ . map ( items , function ( item ) { if ( typeof item === "string" ) { return { label : item , value : item } ; }
return $ . extend ( { label : item . label || item . value , value : item . value || item . label } , item ) ; } ) ; } , _suggest : function ( items ) { var ul = this . menu . element . empty ( ) . zIndex ( this . element . zIndex ( ) + 1 ) , menuWidth , textWidth ; this . _renderMenu ( ul , items ) ; this . menu . deactivate ( ) ; this . menu . refresh ( ) ; this . menu . element . show ( ) . position ( { my : "left top" , at : "left bottom" , of : this . element , collision : "none" } ) ; menuWidth = ul . width ( "" ) . width ( ) ; textWidth = this . element . width ( ) ; ul . width ( Math . max ( menuWidth , textWidth ) ) ; } , _renderMenu : function ( ul , items ) { var self = this ; $ . each ( items , function ( index , item ) { self . _renderItem ( ul , item ) ; } ) ; } , _renderItem : function ( ul , item ) { return $ ( "<li></li>" ) . data ( "item.autocomplete" , item ) . append ( "<a>" + item . label + "</a>" ) . appendTo ( ul ) ; } , _move : function ( direction , event ) { if ( ! this . menu . element . is ( ":visible" ) ) { this . search ( null , event ) ; return ; }
if ( this . menu . first ( ) && /^previous/ . test ( direction ) || this . menu . last ( ) && /^next/ . test ( direction ) ) { this . element . val ( this . term ) ; this . menu . deactivate ( ) ; return ; }
this . menu [ direction ] ( event ) ; } , widget : function ( ) { return this . menu . element ; } } ) ; $ . extend ( $ . ui . autocomplete , { escapeRegex : function ( value ) { return value . replace ( /([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi , "\\$1" ) ; } , filter : function ( array , term ) { var matcher = new RegExp ( $ . ui . autocomplete . escapeRegex ( term ) , "i" ) ; return $ . grep ( array , function ( value ) { return matcher . test ( value . label || value . value || value ) ; } ) ; } } ) ; } ( jQuery ) ) ; ( function ( $ ) { $ . widget ( "ui.menu" , { _create : function ( ) { var self = this ; this . element . addClass ( "ui-menu ui-widget ui-widget-content ui-corner-all" ) . attr ( { role : "listbox" , "aria-activedescendant" : "ui-active-menuitem" } ) . click ( function ( event ) { if ( ! $ ( event . target ) . closest ( ".ui-menu-item a" ) . length ) { return ; }
event . preventDefault ( ) ; self . select ( event ) ; } ) ; this . refresh ( ) ; } , refresh : function ( ) { var self = this ; var items = this . element . children ( "li:not(.ui-menu-item):has(a)" ) . addClass ( "ui-menu-item" ) . attr ( "role" , "menuitem" ) ; items . children ( "a" ) . addClass ( "ui-corner-all" ) . attr ( "tabindex" , - 1 ) . mouseenter ( function ( event ) { self . activate ( event , $ ( this ) . parent ( ) ) ; } ) . mouseleave ( function ( ) { self . deactivate ( ) ; } ) ; } , activate : function ( event , item ) { this . deactivate ( ) ; if ( this . hasScroll ( ) ) { var offset = item . offset ( ) . top - this . element . offset ( ) . top , scroll = this . element . attr ( "scrollTop" ) , elementHeight = this . element . height ( ) ; if ( offset < 0 ) { this . element . attr ( "scrollTop" , scroll + offset ) ; } else if ( offset > elementHeight ) { this . element . attr ( "scrollTop" , scroll + offset - elementHeight + item . height ( ) ) ; } }
this . active = item . eq ( 0 ) . children ( "a" ) . addClass ( "ui-state-hover" ) . attr ( "id" , "ui-active-menuitem" ) . end ( ) ; this . _trigger ( "focus" , event , { item : item } ) ; } , deactivate : function ( ) { if ( ! this . active ) { return ; }
this . active . children ( "a" ) . removeClass ( "ui-state-hover" ) . removeAttr ( "id" ) ; this . _trigger ( "blur" ) ; this . active = null ; } , next : function ( event ) { this . move ( "next" , ".ui-menu-item:first" , event ) ; } , previous : function ( event ) { this . move ( "prev" , ".ui-menu-item:last" , event ) ; } , first : function ( ) { return this . active && ! this . active . prev ( ) . length ; } , last : function ( ) { return this . active && ! this . active . next ( ) . length ; } , move : function ( direction , edge , event ) { if ( ! this . active ) { this . activate ( event , this . element . children ( edge ) ) ; return ; }
var next = this . active [ direction + "All" ] ( ".ui-menu-item" ) . eq ( 0 ) ; if ( next . length ) { this . activate ( event , next ) ; } else { this . activate ( event , this . element . children ( edge ) ) ; } } , nextPage : function ( event ) { if ( this . hasScroll ( ) ) { if ( ! this . active || this . last ( ) ) { this . activate ( event , this . element . children ( ":first" ) ) ; return ; }
var base = this . active . offset ( ) . top , height = this . element . height ( ) , result = this . element . children ( "li" ) . filter ( function ( ) { var close = $ ( this ) . offset ( ) . top - base - height + $ ( this ) . height ( ) ; return close < 10 && close > - 10 ; } ) ; if ( ! result . length ) { result = this . element . children ( ":last" ) ; }
this . activate ( event , result ) ; } else { this . activate ( event , this . element . children ( ! this . active || this . last ( ) ? ":first" : ":last" ) ) ; } } , previousPage : function ( event ) { if ( this . hasScroll ( ) ) { if ( ! this . active || this . first ( ) ) { this . activate ( event , this . element . children ( ":last" ) ) ; return ; }
var base = this . active . offset ( ) . top , height = this . element . height ( ) ; result = this . element . children ( "li" ) . filter ( function ( ) { var close = $ ( this ) . offset ( ) . top - base + height - $ ( this ) . height ( ) ; return close < 10 && close > - 10 ; } ) ; if ( ! result . length ) { result = this . element . children ( ":first" ) ; }
2010-06-08 16:15:48 +00:00
this . activate ( event , result ) ; } else { this . activate ( event , this . element . children ( ! this . active || this . first ( ) ? ":last" : ":first" ) ) ; } } , hasScroll : function ( ) { return this . element . height ( ) < this . element . attr ( "scrollHeight" ) ; } , select : function ( event ) { this . _trigger ( "selected" , event , { item : this . active } ) ; } } ) ; } ( jQuery ) ) ; ( function ( $ ) { var lastActive , baseClasses = "ui-button ui-widget ui-state-default ui-corner-all" , stateClasses = "ui-state-hover ui-state-active " , typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only" , formResetHandler = function ( event ) { $ ( ":ui-button" , event . target . form ) . each ( function ( ) { var inst = $ ( this ) . data ( "button" ) ; setTimeout ( function ( ) { inst . refresh ( ) ; } , 1 ) ; } ) ; } , radioGroup = function ( radio ) { var name = radio . name , form = radio . form , radios = $ ( [ ] ) ; if ( name ) { if ( form ) { radios = $ ( form ) . find ( "[name='" + name + "']" ) ; } else { radios = $ ( "[name='" + name + "']" , radio . ownerDocument ) . filter ( function ( ) { return ! this . form ; } ) ; } }
2010-05-19 15:43:12 +00:00
return radios ; } ; $ . widget ( "ui.button" , { options : { text : true , label : null , icons : { primary : null , secondary : null } } , _create : function ( ) { this . element . closest ( "form" ) . unbind ( "reset.button" ) . bind ( "reset.button" , formResetHandler ) ; this . _determineButtonType ( ) ; this . hasTitle = ! ! this . buttonElement . attr ( "title" ) ; var self = this , options = this . options , toggleButton = this . type === "checkbox" || this . type === "radio" , hoverClass = "ui-state-hover" + ( ! toggleButton ? " ui-state-active" : "" ) , focusClass = "ui-state-focus" ; if ( options . label === null ) { options . label = this . buttonElement . html ( ) ; }
if ( this . element . is ( ":disabled" ) ) { options . disabled = true ; }
this . buttonElement . addClass ( baseClasses ) . attr ( "role" , "button" ) . bind ( "mouseenter.button" , function ( ) { if ( options . disabled ) { return ; }
$ ( this ) . addClass ( "ui-state-hover" ) ; if ( this === lastActive ) { $ ( this ) . addClass ( "ui-state-active" ) ; } } ) . bind ( "mouseleave.button" , function ( ) { if ( options . disabled ) { return ; }
$ ( this ) . removeClass ( hoverClass ) ; } ) . bind ( "focus.button" , function ( ) { $ ( this ) . addClass ( focusClass ) ; } ) . bind ( "blur.button" , function ( ) { $ ( this ) . removeClass ( focusClass ) ; } ) ; if ( toggleButton ) { this . element . bind ( "change.button" , function ( ) { self . refresh ( ) ; } ) ; }
if ( this . type === "checkbox" ) { this . buttonElement . bind ( "click.button" , function ( ) { if ( options . disabled ) { return false ; }
$ ( this ) . toggleClass ( "ui-state-active" ) ; self . buttonElement . attr ( "aria-pressed" , self . element [ 0 ] . checked ) ; } ) ; } else if ( this . type === "radio" ) { this . buttonElement . bind ( "click.button" , function ( ) { if ( options . disabled ) { return false ; }
$ ( this ) . addClass ( "ui-state-active" ) ; self . buttonElement . attr ( "aria-pressed" , true ) ; var radio = self . element [ 0 ] ; radioGroup ( radio ) . not ( radio ) . map ( function ( ) { return $ ( this ) . button ( "widget" ) [ 0 ] ; } ) . removeClass ( "ui-state-active" ) . attr ( "aria-pressed" , false ) ; } ) ; } else { this . buttonElement . bind ( "mousedown.button" , function ( ) { if ( options . disabled ) { return false ; }
$ ( this ) . addClass ( "ui-state-active" ) ; lastActive = this ; $ ( document ) . one ( "mouseup" , function ( ) { lastActive = null ; } ) ; } ) . bind ( "mouseup.button" , function ( ) { if ( options . disabled ) { return false ; }
$ ( this ) . removeClass ( "ui-state-active" ) ; } ) . bind ( "keydown.button" , function ( event ) { if ( options . disabled ) { return false ; }
if ( event . keyCode == $ . ui . keyCode . SPACE || event . keyCode == $ . ui . keyCode . ENTER ) { $ ( this ) . addClass ( "ui-state-active" ) ; } } ) . bind ( "keyup.button" , function ( ) { $ ( this ) . removeClass ( "ui-state-active" ) ; } ) ; if ( this . buttonElement . is ( "a" ) ) { this . buttonElement . keyup ( function ( event ) { if ( event . keyCode === $ . ui . keyCode . SPACE ) { $ ( this ) . click ( ) ; } } ) ; } }
this . _setOption ( "disabled" , options . disabled ) ; } , _determineButtonType : function ( ) { if ( this . element . is ( ":checkbox" ) ) { this . type = "checkbox" ; } else { if ( this . element . is ( ":radio" ) ) { this . type = "radio" ; } else { if ( this . element . is ( "input" ) ) { this . type = "input" ; } else { this . type = "button" ; } } }
if ( this . type === "checkbox" || this . type === "radio" ) { this . buttonElement = this . element . parents ( ) . last ( ) . find ( "[for=" + this . element . attr ( "id" ) + "]" ) ; this . element . addClass ( "ui-helper-hidden-accessible" ) ; var checked = this . element . is ( ":checked" ) ; if ( checked ) { this . buttonElement . addClass ( "ui-state-active" ) ; }
2010-06-08 16:15:48 +00:00
this . buttonElement . attr ( "aria-pressed" , checked ) ; } else { this . buttonElement = this . element ; } } , widget : function ( ) { return this . buttonElement ; } , destroy : function ( ) { this . element . removeClass ( "ui-helper-hidden-accessible" ) ; this . buttonElement . removeClass ( baseClasses + " " + stateClasses + " " + typeClasses ) . removeAttr ( "role" ) . removeAttr ( "aria-pressed" ) . html ( this . buttonElement . find ( ".ui-button-text" ) . html ( ) ) ; if ( ! this . hasTitle ) { this . buttonElement . removeAttr ( "title" ) ; }
2010-05-19 15:43:12 +00:00
$ . Widget . prototype . destroy . call ( this ) ; } , _setOption : function ( key , value ) { $ . Widget . prototype . _setOption . apply ( this , arguments ) ; if ( key === "disabled" ) { if ( value ) { this . element . attr ( "disabled" , true ) ; } else { this . element . removeAttr ( "disabled" ) ; } }
this . _resetButton ( ) ; } , refresh : function ( ) { var isDisabled = this . element . is ( ":disabled" ) ; if ( isDisabled !== this . options . disabled ) { this . _setOption ( "disabled" , isDisabled ) ; }
if ( this . type === "radio" ) { radioGroup ( this . element [ 0 ] ) . each ( function ( ) { if ( $ ( this ) . is ( ":checked" ) ) { $ ( this ) . button ( "widget" ) . addClass ( "ui-state-active" ) . attr ( "aria-pressed" , true ) ; } else { $ ( this ) . button ( "widget" ) . removeClass ( "ui-state-active" ) . attr ( "aria-pressed" , false ) ; } } ) ; } else if ( this . type === "checkbox" ) { if ( this . element . is ( ":checked" ) ) { this . buttonElement . addClass ( "ui-state-active" ) . attr ( "aria-pressed" , true ) ; } else { this . buttonElement . removeClass ( "ui-state-active" ) . attr ( "aria-pressed" , false ) ; } } } , _resetButton : function ( ) { if ( this . type === "input" ) { if ( this . options . label ) { this . element . val ( this . options . label ) ; }
return ; }
2010-06-08 16:15:48 +00:00
var buttonElement = this . buttonElement . removeClass ( typeClasses ) , buttonText = $ ( "<span></span>" ) . addClass ( "ui-button-text" ) . html ( this . options . label ) . appendTo ( buttonElement . empty ( ) ) . text ( ) , icons = this . options . icons , multipleIcons = icons . primary && icons . secondary ; if ( icons . primary || icons . secondary ) { buttonElement . addClass ( "ui-button-text-icon" +
2010-05-19 15:43:12 +00:00
( multipleIcons ? "s" : "" ) ) ; if ( icons . primary ) { buttonElement . prepend ( "<span class='ui-button-icon-primary ui-icon " + icons . primary + "'></span>" ) ; }
if ( icons . secondary ) { buttonElement . append ( "<span class='ui-button-icon-secondary ui-icon " + icons . secondary + "'></span>" ) ; }
if ( ! this . options . text ) { buttonElement . addClass ( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ) . removeClass ( "ui-button-text-icons ui-button-text-icon" ) ; if ( ! this . hasTitle ) { buttonElement . attr ( "title" , buttonText ) ; } } } else { buttonElement . addClass ( "ui-button-text-only" ) ; } } } ) ; $ . widget ( "ui.buttonset" , { _create : function ( ) { this . element . addClass ( "ui-buttonset" ) ; this . _init ( ) ; } , _init : function ( ) { this . refresh ( ) ; } , _setOption : function ( key , value ) { if ( key === "disabled" ) { this . buttons . button ( "option" , key , value ) ; }
2010-06-08 16:15:48 +00:00
$ . Widget . prototype . _setOption . apply ( this , arguments ) ; } , refresh : function ( ) { this . buttons = this . element . find ( ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" ) . filter ( ":ui-button" ) . button ( "refresh" ) . end ( ) . not ( ":ui-button" ) . button ( ) . end ( ) . map ( function ( ) { return $ ( this ) . button ( "widget" ) [ 0 ] ; } ) . removeClass ( "ui-corner-all ui-corner-left ui-corner-right" ) . filter ( ":first" ) . addClass ( "ui-corner-left" ) . end ( ) . filter ( ":last" ) . addClass ( "ui-corner-right" ) . end ( ) . end ( ) ; } , destroy : function ( ) { this . element . removeClass ( "ui-buttonset" ) ; this . buttons . map ( function ( ) { return $ ( this ) . button ( "widget" ) [ 0 ] ; } ) . removeClass ( "ui-corner-left ui-corner-right" ) . end ( ) . button ( "destroy" ) ; $ . Widget . prototype . destroy . call ( this ) ; } } ) ; } ( jQuery ) ) ; ( function ( $ ) { $ . extend ( $ . ui , { datepicker : { version : "1.8.2" } } ) ; var PROP _NAME = 'datepicker' ; var dpuuid = new Date ( ) . getTime ( ) ; function Datepicker ( ) { this . debug = false ; this . _curInst = null ; this . _keyEvent = false ; this . _disabledInputs = [ ] ; this . _datepickerShowing = false ; this . _inDialog = false ; this . _mainDivId = 'ui-datepicker-div' ; this . _inlineClass = 'ui-datepicker-inline' ; this . _appendClass = 'ui-datepicker-append' ; this . _triggerClass = 'ui-datepicker-trigger' ; this . _dialogClass = 'ui-datepicker-dialog' ; this . _disableClass = 'ui-datepicker-disabled' ; this . _unselectableClass = 'ui-datepicker-unselectable' ; this . _currentClass = 'ui-datepicker-current-day' ; this . _dayOverClass = 'ui-datepicker-days-cell-over' ; this . regional = [ ] ; this . regional [ '' ] = { closeText : 'Done' , prevText : 'Prev' , nextText : 'Next' , currentText : 'Today' , monthNames : [ 'January' , 'February' , 'March' , 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , 'October' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec' ] , dayNames : [ 'Sunday' , 'Monday' , 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday' ] , dayNamesShort : [ 'Sun' , 'Mon' , 'Tue' , 'Wed' , 'Thu' , 'Fri' , 'Sat' ] , dayNamesMin : [ 'Su' , 'Mo' , 'Tu' , 'We' , 'Th' , 'Fr' , 'Sa' ] , weekHeader : 'Wk' , dateFormat : 'mm/dd/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; this . _defaults = { showOn : 'focus' , showAnim : 'fadeIn' , showOptions : { } , defaultDate : null , appendText : '' , buttonText : '...' , buttonImage : '' , buttonImageOnly : false , hideIfNoPrevNext : false , navigationAsDateFormat : false , gotoCurrent : false , changeMonth : false , changeYear : false , yearRange : 'c-10:c+10' , showOtherMonths : false , selectOtherMonths : false , showWeek : false , calculateWeek : this . iso8601Week , shortYearCutoff : '+10' , minDate : null , maxDate : null , duration : 'fast' , beforeShowDay : null , beforeShow : null , onSelect : null , onChangeMonthYear : null , onClose : null , numberOfMonths : 1 , showCurrentAtPos : 0 , stepMonths : 1 , stepBigMonths : 12 , altField : '' , altFormat : '' , constrainInput : true , showButtonPanel : false , autoSize : false } ; $ . extend ( this . _defaults , this . regional [ '' ] ) ; this . dpDiv = $ ( '<div id="' + this . _mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>' ) ; }
2010-05-19 15:43:12 +00:00
$ . extend ( Datepicker . prototype , { markerClassName : 'hasDatepicker' , log : function ( ) { if ( this . debug )
console . log . apply ( '' , arguments ) ; } , _widgetDatepicker : function ( ) { return this . dpDiv ; } , setDefaults : function ( settings ) { extendRemove ( this . _defaults , settings || { } ) ; return this ; } , _attachDatepicker : function ( target , settings ) { var inlineSettings = null ; for ( var attrName in this . _defaults ) { var attrValue = target . getAttribute ( 'date:' + attrName ) ; if ( attrValue ) { inlineSettings = inlineSettings || { } ; try { inlineSettings [ attrName ] = eval ( attrValue ) ; } catch ( err ) { inlineSettings [ attrName ] = attrValue ; } } }
2010-06-08 16:15:48 +00:00
var nodeName = target . nodeName . toLowerCase ( ) ; var inline = ( nodeName == 'div' || nodeName == 'span' ) ; if ( ! target . id ) { this . uuid += 1 ; target . id = 'dp' + this . uuid ; }
var inst = this . _newInst ( $ ( target ) , inline ) ; inst . settings = $ . extend ( { } , settings || { } , inlineSettings || { } ) ; if ( nodeName == 'input' ) { this . _connectDatepicker ( target , inst ) ; } else if ( inline ) { this . _inlineDatepicker ( target , inst ) ; } } , _newInst : function ( target , inline ) { var id = target [ 0 ] . id . replace ( /([^A-Za-z0-9_])/g , '\\\\$1' ) ; return { id : id , input : target , selectedDay : 0 , selectedMonth : 0 , selectedYear : 0 , drawMonth : 0 , drawYear : 0 , inline : inline , dpDiv : ( ! inline ? this . dpDiv : $ ( '<div class="' + this . _inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>' ) ) } ; } , _connectDatepicker : function ( target , inst ) { var input = $ ( target ) ; inst . append = $ ( [ ] ) ; inst . trigger = $ ( [ ] ) ; if ( input . hasClass ( this . markerClassName ) )
2010-05-19 15:43:12 +00:00
return ; this . _attachments ( input , inst ) ; input . addClass ( this . markerClassName ) . keydown ( this . _doKeyDown ) . keypress ( this . _doKeyPress ) . keyup ( this . _doKeyUp ) . bind ( "setData.datepicker" , function ( event , key , value ) { inst . settings [ key ] = value ; } ) . bind ( "getData.datepicker" , function ( event , key ) { return this . _get ( inst , key ) ; } ) ; this . _autoSize ( inst ) ; $ . data ( target , PROP _NAME , inst ) ; } , _attachments : function ( input , inst ) { var appendText = this . _get ( inst , 'appendText' ) ; var isRTL = this . _get ( inst , 'isRTL' ) ; if ( inst . append )
inst . append . remove ( ) ; if ( appendText ) { inst . append = $ ( '<span class="' + this . _appendClass + '">' + appendText + '</span>' ) ; input [ isRTL ? 'before' : 'after' ] ( inst . append ) ; }
input . unbind ( 'focus' , this . _showDatepicker ) ; if ( inst . trigger )
inst . trigger . remove ( ) ; var showOn = this . _get ( inst , 'showOn' ) ; if ( showOn == 'focus' || showOn == 'both' )
input . focus ( this . _showDatepicker ) ; if ( showOn == 'button' || showOn == 'both' ) { var buttonText = this . _get ( inst , 'buttonText' ) ; var buttonImage = this . _get ( inst , 'buttonImage' ) ; inst . trigger = $ ( this . _get ( inst , 'buttonImageOnly' ) ? $ ( '<img/>' ) . addClass ( this . _triggerClass ) . attr ( { src : buttonImage , alt : buttonText , title : buttonText } ) : $ ( '<button type="button"></button>' ) . addClass ( this . _triggerClass ) . html ( buttonImage == '' ? buttonText : $ ( '<img/>' ) . attr ( { src : buttonImage , alt : buttonText , title : buttonText } ) ) ) ; input [ isRTL ? 'before' : 'after' ] ( inst . trigger ) ; inst . trigger . click ( function ( ) { if ( $ . datepicker . _datepickerShowing && $ . datepicker . _lastInput == input [ 0 ] )
$ . datepicker . _hideDatepicker ( ) ; else
$ . datepicker . _showDatepicker ( input [ 0 ] ) ; return false ; } ) ; } } , _autoSize : function ( inst ) { if ( this . _get ( inst , 'autoSize' ) && ! inst . inline ) { var date = new Date ( 2009 , 12 - 1 , 20 ) ; var dateFormat = this . _get ( inst , 'dateFormat' ) ; if ( dateFormat . match ( /[DM]/ ) ) { var findMax = function ( names ) { var max = 0 ; var maxI = 0 ; for ( var i = 0 ; i < names . length ; i ++ ) { if ( names [ i ] . length > max ) { max = names [ i ] . length ; maxI = i ; } }
return maxI ; } ; date . setMonth ( findMax ( this . _get ( inst , ( dateFormat . match ( /MM/ ) ? 'monthNames' : 'monthNamesShort' ) ) ) ) ; date . setDate ( findMax ( this . _get ( inst , ( dateFormat . match ( /DD/ ) ? 'dayNames' : 'dayNamesShort' ) ) ) + 20 - date . getDay ( ) ) ; }
inst . input . attr ( 'size' , this . _formatDate ( inst , date ) . length ) ; } } , _inlineDatepicker : function ( target , inst ) { var divSpan = $ ( target ) ; if ( divSpan . hasClass ( this . markerClassName ) )
2010-06-08 16:15:48 +00:00
return ; divSpan . addClass ( this . markerClassName ) . append ( inst . dpDiv ) . bind ( "setData.datepicker" , function ( event , key , value ) { inst . settings [ key ] = value ; } ) . bind ( "getData.datepicker" , function ( event , key ) { return this . _get ( inst , key ) ; } ) ; $ . data ( target , PROP _NAME , inst ) ; this . _setDate ( inst , this . _getDefaultDate ( inst ) , true ) ; this . _updateDatepicker ( inst ) ; this . _updateAlternate ( inst ) ; } , _dialogDatepicker : function ( input , date , onSelect , settings , pos ) { var inst = this . _dialogInst ; if ( ! inst ) { this . uuid += 1 ; var id = 'dp' + this . uuid ; this . _dialogInput = $ ( '<input type="text" id="' + id + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>' ) ; this . _dialogInput . keydown ( this . _doKeyDown ) ; $ ( 'body' ) . append ( this . _dialogInput ) ; inst = this . _dialogInst = this . _newInst ( this . _dialogInput , false ) ; inst . settings = { } ; $ . data ( this . _dialogInput [ 0 ] , PROP _NAME , inst ) ; }
2010-05-19 15:43:12 +00:00
extendRemove ( inst . settings , settings || { } ) ; date = ( date && date . constructor == Date ? this . _formatDate ( inst , date ) : date ) ; this . _dialogInput . val ( date ) ; this . _pos = ( pos ? ( pos . length ? pos : [ pos . pageX , pos . pageY ] ) : null ) ; if ( ! this . _pos ) { var browserWidth = document . documentElement . clientWidth ; var browserHeight = document . documentElement . clientHeight ; var scrollX = document . documentElement . scrollLeft || document . body . scrollLeft ; var scrollY = document . documentElement . scrollTop || document . body . scrollTop ; this . _pos = [ ( browserWidth / 2 ) - 100 + scrollX , ( browserHeight / 2 ) - 150 + scrollY ] ; }
this . _dialogInput . css ( 'left' , ( this . _pos [ 0 ] + 20 ) + 'px' ) . css ( 'top' , this . _pos [ 1 ] + 'px' ) ; inst . settings . onSelect = onSelect ; this . _inDialog = true ; this . dpDiv . addClass ( this . _dialogClass ) ; this . _showDatepicker ( this . _dialogInput [ 0 ] ) ; if ( $ . blockUI )
$ . blockUI ( this . dpDiv ) ; $ . data ( this . _dialogInput [ 0 ] , PROP _NAME , inst ) ; return this ; } , _destroyDatepicker : function ( target ) { var $target = $ ( target ) ; var inst = $ . data ( target , PROP _NAME ) ; if ( ! $target . hasClass ( this . markerClassName ) ) { return ; }
var nodeName = target . nodeName . toLowerCase ( ) ; $ . removeData ( target , PROP _NAME ) ; if ( nodeName == 'input' ) { inst . append . remove ( ) ; inst . trigger . remove ( ) ; $target . removeClass ( this . markerClassName ) . unbind ( 'focus' , this . _showDatepicker ) . unbind ( 'keydown' , this . _doKeyDown ) . unbind ( 'keypress' , this . _doKeyPress ) . unbind ( 'keyup' , this . _doKeyUp ) ; } else if ( nodeName == 'div' || nodeName == 'span' )
$target . removeClass ( this . markerClassName ) . empty ( ) ; } , _enableDatepicker : function ( target ) { var $target = $ ( target ) ; var inst = $ . data ( target , PROP _NAME ) ; if ( ! $target . hasClass ( this . markerClassName ) ) { return ; }
var nodeName = target . nodeName . toLowerCase ( ) ; if ( nodeName == 'input' ) { target . disabled = false ; inst . trigger . filter ( 'button' ) . each ( function ( ) { this . disabled = false ; } ) . end ( ) . filter ( 'img' ) . css ( { opacity : '1.0' , cursor : '' } ) ; }
else if ( nodeName == 'div' || nodeName == 'span' ) { var inline = $target . children ( '.' + this . _inlineClass ) ; inline . children ( ) . removeClass ( 'ui-state-disabled' ) ; }
this . _disabledInputs = $ . map ( this . _disabledInputs , function ( value ) { return ( value == target ? null : value ) ; } ) ; } , _disableDatepicker : function ( target ) { var $target = $ ( target ) ; var inst = $ . data ( target , PROP _NAME ) ; if ( ! $target . hasClass ( this . markerClassName ) ) { return ; }
var nodeName = target . nodeName . toLowerCase ( ) ; if ( nodeName == 'input' ) { target . disabled = true ; inst . trigger . filter ( 'button' ) . each ( function ( ) { this . disabled = true ; } ) . end ( ) . filter ( 'img' ) . css ( { opacity : '0.5' , cursor : 'default' } ) ; }
else if ( nodeName == 'div' || nodeName == 'span' ) { var inline = $target . children ( '.' + this . _inlineClass ) ; inline . children ( ) . addClass ( 'ui-state-disabled' ) ; }
this . _disabledInputs = $ . map ( this . _disabledInputs , function ( value ) { return ( value == target ? null : value ) ; } ) ; this . _disabledInputs [ this . _disabledInputs . length ] = target ; } , _isDisabledDatepicker : function ( target ) { if ( ! target ) { return false ; }
for ( var i = 0 ; i < this . _disabledInputs . length ; i ++ ) { if ( this . _disabledInputs [ i ] == target )
return true ; }
return false ; } , _getInst : function ( target ) { try { return $ . data ( target , PROP _NAME ) ; }
catch ( err ) { throw 'Missing instance data for this datepicker' ; } } , _optionDatepicker : function ( target , name , value ) { var inst = this . _getInst ( target ) ; if ( arguments . length == 2 && typeof name == 'string' ) { return ( name == 'defaults' ? $ . extend ( { } , $ . datepicker . _defaults ) : ( inst ? ( name == 'all' ? $ . extend ( { } , inst . settings ) : this . _get ( inst , name ) ) : null ) ) ; }
var settings = name || { } ; if ( typeof name == 'string' ) { settings = { } ; settings [ name ] = value ; }
if ( inst ) { if ( this . _curInst == inst ) { this . _hideDatepicker ( ) ; }
var date = this . _getDateDatepicker ( target , true ) ; extendRemove ( inst . settings , settings ) ; this . _attachments ( $ ( target ) , inst ) ; this . _autoSize ( inst ) ; this . _setDateDatepicker ( target , date ) ; this . _updateDatepicker ( inst ) ; } } , _changeDatepicker : function ( target , name , value ) { this . _optionDatepicker ( target , name , value ) ; } , _refreshDatepicker : function ( target ) { var inst = this . _getInst ( target ) ; if ( inst ) { this . _updateDatepicker ( inst ) ; } } , _setDateDatepicker : function ( target , date ) { var inst = this . _getInst ( target ) ; if ( inst ) { this . _setDate ( inst , date ) ; this . _updateDatepicker ( inst ) ; this . _updateAlternate ( inst ) ; } } , _getDateDatepicker : function ( target , noDefault ) { var inst = this . _getInst ( target ) ; if ( inst && ! inst . inline )
this . _setDateFromField ( inst , noDefault ) ; return ( inst ? this . _getDate ( inst ) : null ) ; } , _doKeyDown : function ( event ) { var inst = $ . datepicker . _getInst ( event . target ) ; var handled = true ; var isRTL = inst . dpDiv . is ( '.ui-datepicker-rtl' ) ; inst . _keyEvent = true ; if ( $ . datepicker . _datepickerShowing )
switch ( event . keyCode ) { case 9 : $ . datepicker . _hideDatepicker ( ) ; handled = false ; break ; case 13 : var sel = $ ( 'td.' + $ . datepicker . _dayOverClass , inst . dpDiv ) . add ( $ ( 'td.' + $ . datepicker . _currentClass , inst . dpDiv ) ) ; if ( sel [ 0 ] )
$ . datepicker . _selectDay ( event . target , inst . selectedMonth , inst . selectedYear , sel [ 0 ] ) ; else
$ . datepicker . _hideDatepicker ( ) ; return false ; break ; case 27 : $ . datepicker . _hideDatepicker ( ) ; break ; case 33 : $ . datepicker . _adjustDate ( event . target , ( event . ctrlKey ? - $ . datepicker . _get ( inst , 'stepBigMonths' ) : - $ . datepicker . _get ( inst , 'stepMonths' ) ) , 'M' ) ; break ; case 34 : $ . datepicker . _adjustDate ( event . target , ( event . ctrlKey ? + $ . datepicker . _get ( inst , 'stepBigMonths' ) : + $ . datepicker . _get ( inst , 'stepMonths' ) ) , 'M' ) ; break ; case 35 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _clearDate ( event . target ) ; handled = event . ctrlKey || event . metaKey ; break ; case 36 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _gotoToday ( event . target ) ; handled = event . ctrlKey || event . metaKey ; break ; case 37 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , ( isRTL ? + 1 : - 1 ) , 'D' ) ; handled = event . ctrlKey || event . metaKey ; if ( event . originalEvent . altKey ) $ . datepicker . _adjustDate ( event . target , ( event . ctrlKey ? - $ . datepicker . _get ( inst , 'stepBigMonths' ) : - $ . datepicker . _get ( inst , 'stepMonths' ) ) , 'M' ) ; break ; case 38 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , - 7 , 'D' ) ; handled = event . ctrlKey || event . metaKey ; break ; case 39 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , ( isRTL ? - 1 : + 1 ) , 'D' ) ; handled = event . ctrlKey || event . metaKey ; if ( event . originalEvent . altKey ) $ . datepicker . _adjustDate ( event . target , ( event . ctrlKey ? + $ . datepicker . _get ( inst , 'stepBigMonths' ) : + $ . datepicker . _get ( inst , 'stepMonths' ) ) , 'M' ) ; break ; case 40 : if ( event . ctrlKey || event . metaKey ) $ . datepicker . _adjustDate ( event . target , + 7 , 'D' ) ; handled = event . ctrlKey || event . metaKey ; break ; default : handled = false ; }
else if ( event . keyCode == 36 && event . ctrlKey )
$ . datepicker . _showDatepicker ( this ) ; else { handled = false ; }
if ( handled ) { event . preventDefault ( ) ; event . stopPropagation ( ) ; } } , _doKeyPress : function ( event ) { var inst = $ . datepicker . _getInst ( event . target ) ; if ( $ . datepicker . _get ( inst , 'constrainInput' ) ) { var chars = $ . datepicker . _possibleChars ( $ . datepicker . _get ( inst , 'dateFormat' ) ) ; var chr = String . fromCharCode ( event . charCode == undefined ? event . keyCode : event . charCode ) ; return event . ctrlKey || ( chr < ' ' || ! chars || chars . indexOf ( chr ) > - 1 ) ; } } , _doKeyUp : function ( event ) { var inst = $ . datepicker . _getInst ( event . target ) ; if ( inst . input . val ( ) != inst . lastVal ) { try { var date = $ . datepicker . parseDate ( $ . datepicker . _get ( inst , 'dateFormat' ) , ( inst . input ? inst . input . val ( ) : null ) , $ . datepicker . _getFormatConfig ( inst ) ) ; if ( date ) { $ . datepicker . _setDateFromField ( inst ) ; $ . datepicker . _updateAlternate ( inst ) ; $ . datepicker . _updateDatepicker ( inst ) ; } }
catch ( event ) { $ . datepicker . log ( event ) ; } }
return true ; } , _showDatepicker : function ( input ) { input = input . target || input ; if ( input . nodeName . toLowerCase ( ) != 'input' )
input = $ ( 'input' , input . parentNode ) [ 0 ] ; if ( $ . datepicker . _isDisabledDatepicker ( input ) || $ . datepicker . _lastInput == input )
return ; var inst = $ . datepicker . _getInst ( input ) ; if ( $ . datepicker . _curInst && $ . datepicker . _curInst != inst ) { $ . datepicker . _curInst . dpDiv . stop ( true , true ) ; }
var beforeShow = $ . datepicker . _get ( inst , 'beforeShow' ) ; extendRemove ( inst . settings , ( beforeShow ? beforeShow . apply ( input , [ input , inst ] ) : { } ) ) ; inst . lastVal = null ; $ . datepicker . _lastInput = input ; $ . datepicker . _setDateFromField ( inst ) ; if ( $ . datepicker . _inDialog )
input . value = '' ; if ( ! $ . datepicker . _pos ) { $ . datepicker . _pos = $ . datepicker . _findPos ( input ) ; $ . datepicker . _pos [ 1 ] += input . offsetHeight ; }
var isFixed = false ; $ ( input ) . parents ( ) . each ( function ( ) { isFixed |= $ ( this ) . css ( 'position' ) == 'fixed' ; return ! isFixed ; } ) ; if ( isFixed && $ . browser . opera ) { $ . datepicker . _pos [ 0 ] -= document . documentElement . scrollLeft ; $ . datepicker . _pos [ 1 ] -= document . documentElement . scrollTop ; }
var offset = { left : $ . datepicker . _pos [ 0 ] , top : $ . datepicker . _pos [ 1 ] } ; $ . datepicker . _pos = null ; inst . dpDiv . css ( { position : 'absolute' , display : 'block' , top : '-1000px' } ) ; $ . datepicker . _updateDatepicker ( inst ) ; offset = $ . datepicker . _checkOffset ( inst , offset , isFixed ) ; inst . dpDiv . css ( { position : ( $ . datepicker . _inDialog && $ . blockUI ? 'static' : ( isFixed ? 'fixed' : 'absolute' ) ) , display : 'none' , left : offset . left + 'px' , top : offset . top + 'px' } ) ; if ( ! inst . inline ) { var showAnim = $ . datepicker . _get ( inst , 'showAnim' ) ; var duration = $ . datepicker . _get ( inst , 'duration' ) ; var postProcess = function ( ) { $ . datepicker . _datepickerShowing = true ; var borders = $ . datepicker . _getBorders ( inst . dpDiv ) ; inst . dpDiv . find ( 'iframe.ui-datepicker-cover' ) . css ( { left : - borders [ 0 ] , top : - borders [ 1 ] , width : inst . dpDiv . outerWidth ( ) , height : inst . dpDiv . outerHeight ( ) } ) ; } ; inst . dpDiv . zIndex ( $ ( input ) . zIndex ( ) + 1 ) ; if ( $ . effects && $ . effects [ showAnim ] )
inst . dpDiv . show ( showAnim , $ . datepicker . _get ( inst , 'showOptions' ) , duration , postProcess ) ; else
inst . dpDiv [ showAnim || 'show' ] ( ( showAnim ? duration : null ) , postProcess ) ; if ( ! showAnim || ! duration )
postProcess ( ) ; if ( inst . input . is ( ':visible' ) && ! inst . input . is ( ':disabled' ) )
inst . input . focus ( ) ; $ . datepicker . _curInst = inst ; } } , _updateDatepicker : function ( inst ) { var self = this ; var borders = $ . datepicker . _getBorders ( inst . dpDiv ) ; inst . dpDiv . empty ( ) . append ( this . _generateHTML ( inst ) ) . find ( 'iframe.ui-datepicker-cover' ) . css ( { left : - borders [ 0 ] , top : - borders [ 1 ] , width : inst . dpDiv . outerWidth ( ) , height : inst . dpDiv . outerHeight ( ) } ) . end ( ) . find ( 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a' ) . bind ( 'mouseout' , function ( ) { $ ( this ) . removeClass ( 'ui-state-hover' ) ; if ( this . className . indexOf ( 'ui-datepicker-prev' ) != - 1 ) $ ( this ) . removeClass ( 'ui-datepicker-prev-hover' ) ; if ( this . className . indexOf ( 'ui-datepicker-next' ) != - 1 ) $ ( this ) . removeClass ( 'ui-datepicker-next-hover' ) ; } ) . bind ( 'mouseover' , function ( ) { if ( ! self . _isDisabledDatepicker ( inst . inline ? inst . dpDiv . parent ( ) [ 0 ] : inst . input [ 0 ] ) ) { $ ( this ) . parents ( '.ui-datepicker-calendar' ) . find ( 'a' ) . removeClass ( 'ui-state-hover' ) ; $ ( this ) . addClass ( 'ui-state-hover' ) ; if ( this . className . indexOf ( 'ui-datepicker-prev' ) != - 1 ) $ ( this ) . addClass ( 'ui-datepicker-prev-hover' ) ; if ( this . className . indexOf ( 'ui-datepicker-next' ) != - 1 ) $ ( this ) . addClass ( 'ui-datepicker-next-hover' ) ; } } ) . end ( ) . find ( '.' + this . _dayOverClass + ' a' ) . trigger ( 'mouseover' ) . end ( ) ; var numMonths = this . _getNumberOfMonths ( inst ) ; var cols = numMonths [ 1 ] ; var width = 17 ; if ( cols > 1 )
inst . dpDiv . addClass ( 'ui-datepicker-multi-' + cols ) . css ( 'width' , ( width * cols ) + 'em' ) ; else
inst . dpDiv . removeClass ( 'ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4' ) . width ( '' ) ; inst . dpDiv [ ( numMonths [ 0 ] != 1 || numMonths [ 1 ] != 1 ? 'add' : 'remove' ) + 'Class' ] ( 'ui-datepicker-multi' ) ; inst . dpDiv [ ( this . _get ( inst , 'isRTL' ) ? 'add' : 'remove' ) + 'Class' ] ( 'ui-datepicker-rtl' ) ; if ( inst == $ . datepicker . _curInst && $ . datepicker . _datepickerShowing && inst . input && inst . input . is ( ':visible' ) && ! inst . input . is ( ':disabled' ) )
inst . input . focus ( ) ; } , _getBorders : function ( elem ) { var convert = function ( value ) { return { thin : 1 , medium : 2 , thick : 3 } [ value ] || value ; } ; return [ parseFloat ( convert ( elem . css ( 'border-left-width' ) ) ) , parseFloat ( convert ( elem . css ( 'border-top-width' ) ) ) ] ; } , _checkOffset : function ( inst , offset , isFixed ) { var dpWidth = inst . dpDiv . outerWidth ( ) ; var dpHeight = inst . dpDiv . outerHeight ( ) ; var inputWidth = inst . input ? inst . input . outerWidth ( ) : 0 ; var inputHeight = inst . input ? inst . input . outerHeight ( ) : 0 ; var viewWidth = document . documentElement . clientWidth + $ ( document ) . scrollLeft ( ) ; var viewHeight = document . documentElement . clientHeight + $ ( document ) . scrollTop ( ) ; offset . left -= ( this . _get ( inst , 'isRTL' ) ? ( dpWidth - inputWidth ) : 0 ) ; offset . left -= ( isFixed && offset . left == inst . input . offset ( ) . left ) ? $ ( document ) . scrollLeft ( ) : 0 ; offset . top -= ( isFixed && offset . top == ( inst . input . offset ( ) . top + inputHeight ) ) ? $ ( document ) . scrollTop ( ) : 0 ; offset . left -= Math . min ( offset . left , ( offset . left + dpWidth > viewWidth && viewWidth > dpWidth ) ? Math . abs ( offset . left + dpWidth - viewWidth ) : 0 ) ; offset . top -= Math . min ( offset . top , ( offset . top + dpHeight > viewHeight && viewHeight > dpHeight ) ? Math . abs ( dpHeight + inputHeight ) : 0 ) ; return offset ; } , _findPos : function ( obj ) { var inst = this . _getInst ( obj ) ; var isRTL = this . _get ( inst , 'isRTL' ) ; while ( obj && ( obj . type == 'hidden' || obj . nodeType != 1 ) ) { obj = obj [ isRTL ? 'previousSibling' : 'nextSibling' ] ; }
var position = $ ( obj ) . offset ( ) ; return [ position . left , position . top ] ; } , _hideDatepicker : function ( input ) { var inst = this . _curInst ; if ( ! inst || ( input && inst != $ . data ( input , PROP _NAME ) ) )
return ; if ( this . _datepickerShowing ) { var showAnim = this . _get ( inst , 'showAnim' ) ; var duration = this . _get ( inst , 'duration' ) ; var postProcess = function ( ) { $ . datepicker . _tidyDialog ( inst ) ; this . _curInst = null ; } ; if ( $ . effects && $ . effects [ showAnim ] )
inst . dpDiv . hide ( showAnim , $ . datepicker . _get ( inst , 'showOptions' ) , duration , postProcess ) ; else
inst . dpDiv [ ( showAnim == 'slideDown' ? 'slideUp' : ( showAnim == 'fadeIn' ? 'fadeOut' : 'hide' ) ) ] ( ( showAnim ? duration : null ) , postProcess ) ; if ( ! showAnim )
postProcess ( ) ; var onClose = this . _get ( inst , 'onClose' ) ; if ( onClose )
onClose . apply ( ( inst . input ? inst . input [ 0 ] : null ) , [ ( inst . input ? inst . input . val ( ) : '' ) , inst ] ) ; this . _datepickerShowing = false ; this . _lastInput = null ; if ( this . _inDialog ) { this . _dialogInput . css ( { position : 'absolute' , left : '0' , top : '-100px' } ) ; if ( $ . blockUI ) { $ . unblockUI ( ) ; $ ( 'body' ) . append ( this . dpDiv ) ; } }
this . _inDialog = false ; } } , _tidyDialog : function ( inst ) { inst . dpDiv . removeClass ( this . _dialogClass ) . unbind ( '.ui-datepicker-calendar' ) ; } , _checkExternalClick : function ( event ) { if ( ! $ . datepicker . _curInst )
return ; var $target = $ ( event . target ) ; if ( $target [ 0 ] . id != $ . datepicker . _mainDivId && $target . parents ( '#' + $ . datepicker . _mainDivId ) . length == 0 && ! $target . hasClass ( $ . datepicker . markerClassName ) && ! $target . hasClass ( $ . datepicker . _triggerClass ) && $ . datepicker . _datepickerShowing && ! ( $ . datepicker . _inDialog && $ . blockUI ) )
$ . datepicker . _hideDatepicker ( ) ; } , _adjustDate : function ( id , offset , period ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; if ( this . _isDisabledDatepicker ( target [ 0 ] ) ) { return ; }
this . _adjustInstDate ( inst , offset +
( period == 'M' ? this . _get ( inst , 'showCurrentAtPos' ) : 0 ) , period ) ; this . _updateDatepicker ( inst ) ; } , _gotoToday : function ( id ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; if ( this . _get ( inst , 'gotoCurrent' ) && inst . currentDay ) { inst . selectedDay = inst . currentDay ; inst . drawMonth = inst . selectedMonth = inst . currentMonth ; inst . drawYear = inst . selectedYear = inst . currentYear ; }
else { var date = new Date ( ) ; inst . selectedDay = date . getDate ( ) ; inst . drawMonth = inst . selectedMonth = date . getMonth ( ) ; inst . drawYear = inst . selectedYear = date . getFullYear ( ) ; }
this . _notifyChange ( inst ) ; this . _adjustDate ( target ) ; } , _selectMonthYear : function ( id , select , period ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; inst . _selectingMonthYear = false ; inst [ 'selected' + ( period == 'M' ? 'Month' : 'Year' ) ] = inst [ 'draw' + ( period == 'M' ? 'Month' : 'Year' ) ] = parseInt ( select . options [ select . selectedIndex ] . value , 10 ) ; this . _notifyChange ( inst ) ; this . _adjustDate ( target ) ; } , _clickMonthYear : function ( id ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; if ( inst . input && inst . _selectingMonthYear && ! $ . browser . msie )
inst . input . focus ( ) ; inst . _selectingMonthYear = ! inst . _selectingMonthYear ; } , _selectDay : function ( id , month , year , td ) { var target = $ ( id ) ; if ( $ ( td ) . hasClass ( this . _unselectableClass ) || this . _isDisabledDatepicker ( target [ 0 ] ) ) { return ; }
var inst = this . _getInst ( target [ 0 ] ) ; inst . selectedDay = inst . currentDay = $ ( 'a' , td ) . html ( ) ; inst . selectedMonth = inst . currentMonth = month ; inst . selectedYear = inst . currentYear = year ; this . _selectDate ( id , this . _formatDate ( inst , inst . currentDay , inst . currentMonth , inst . currentYear ) ) ; } , _clearDate : function ( id ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; this . _selectDate ( target , '' ) ; } , _selectDate : function ( id , dateStr ) { var target = $ ( id ) ; var inst = this . _getInst ( target [ 0 ] ) ; dateStr = ( dateStr != null ? dateStr : this . _formatDate ( inst ) ) ; if ( inst . input )
inst . input . val ( dateStr ) ; this . _updateAlternate ( inst ) ; var onSelect = this . _get ( inst , 'onSelect' ) ; if ( onSelect )
onSelect . apply ( ( inst . input ? inst . input [ 0 ] : null ) , [ dateStr , inst ] ) ; else if ( inst . input )
inst . input . trigger ( 'change' ) ; if ( inst . inline )
this . _updateDatepicker ( inst ) ; else { this . _hideDatepicker ( ) ; this . _lastInput = inst . input [ 0 ] ; if ( typeof ( inst . input [ 0 ] ) != 'object' )
inst . input . focus ( ) ; this . _lastInput = null ; } } , _updateAlternate : function ( inst ) { var altField = this . _get ( inst , 'altField' ) ; if ( altField ) { var altFormat = this . _get ( inst , 'altFormat' ) || this . _get ( inst , 'dateFormat' ) ; var date = this . _getDate ( inst ) ; var dateStr = this . formatDate ( altFormat , date , this . _getFormatConfig ( inst ) ) ; $ ( altField ) . each ( function ( ) { $ ( this ) . val ( dateStr ) ; } ) ; } } , noWeekends : function ( date ) { var day = date . getDay ( ) ; return [ ( day > 0 && day < 6 ) , '' ] ; } , iso8601Week : function ( date ) { var checkDate = new Date ( date . getTime ( ) ) ; checkDate . setDate ( checkDate . getDate ( ) + 4 - ( checkDate . getDay ( ) || 7 ) ) ; var time = checkDate . getTime ( ) ; checkDate . setMonth ( 0 ) ; checkDate . setDate ( 1 ) ; return Math . floor ( Math . round ( ( time - checkDate ) / 86400000 ) / 7 ) + 1 ; } , parseDate : function ( format , value , settings ) { if ( format == null || value == null )
throw 'Invalid arguments' ; value = ( typeof value == 'object' ? value . toString ( ) : value + '' ) ; if ( value == '' )
return null ; var shortYearCutoff = ( settings ? settings . shortYearCutoff : null ) || this . _defaults . shortYearCutoff ; var dayNamesShort = ( settings ? settings . dayNamesShort : null ) || this . _defaults . dayNamesShort ; var dayNames = ( settings ? settings . dayNames : null ) || this . _defaults . dayNames ; var monthNamesShort = ( settings ? settings . monthNamesShort : null ) || this . _defaults . monthNamesShort ; var monthNames = ( settings ? settings . monthNames : null ) || this . _defaults . monthNames ; var year = - 1 ; var month = - 1 ; var day = - 1 ; var doy = - 1 ; var literal = false ; var lookAhead = function ( match ) { var matches = ( iFormat + 1 < format . length && format . charAt ( iFormat + 1 ) == match ) ; if ( matches )
iFormat ++ ; return matches ; } ; var getNumber = function ( match ) { lookAhead ( match ) ; var size = ( match == '@' ? 14 : ( match == '!' ? 20 : ( match == 'y' ? 4 : ( match == 'o' ? 3 : 2 ) ) ) ) ; var digits = new RegExp ( '^\\d{1,' + size + '}' ) ; var num = value . substring ( iValue ) . match ( digits ) ; if ( ! num )
throw 'Missing number at position ' + iValue ; iValue += num [ 0 ] . length ; return parseInt ( num [ 0 ] , 10 ) ; } ; var getName = function ( match , shortNames , longNames ) { var names = ( lookAhead ( match ) ? longNames : shortNames ) ; for ( var i = 0 ; i < names . length ; i ++ ) { if ( value . substr ( iValue , names [ i ] . length ) == names [ i ] ) { iValue += names [ i ] . length ; return i + 1 ; } }
throw 'Unknown name at position ' + iValue ; } ; var checkLiteral = function ( ) { if ( value . charAt ( iValue ) != format . charAt ( iFormat ) )
throw 'Unexpected literal at position ' + iValue ; iValue ++ ; } ; var iValue = 0 ; for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ ) { if ( literal )
if ( format . charAt ( iFormat ) == "'" && ! lookAhead ( "'" ) )
literal = false ; else
checkLiteral ( ) ; else
switch ( format . charAt ( iFormat ) ) { case 'd' : day = getNumber ( 'd' ) ; break ; case 'D' : getName ( 'D' , dayNamesShort , dayNames ) ; break ; case 'o' : doy = getNumber ( 'o' ) ; break ; case 'm' : month = getNumber ( 'm' ) ; break ; case 'M' : month = getName ( 'M' , monthNamesShort , monthNames ) ; break ; case 'y' : year = getNumber ( 'y' ) ; break ; case '@' : var date = new Date ( getNumber ( '@' ) ) ; year = date . getFullYear ( ) ; month = date . getMonth ( ) + 1 ; day = date . getDate ( ) ; break ; case '!' : var date = new Date ( ( getNumber ( '!' ) - this . _ticksTo1970 ) / 10000 ) ; year = date . getFullYear ( ) ; month = date . getMonth ( ) + 1 ; day = date . getDate ( ) ; break ; case "'" : if ( lookAhead ( "'" ) )
checkLiteral ( ) ; else
literal = true ; break ; default : checkLiteral ( ) ; } }
if ( year == - 1 )
year = new Date ( ) . getFullYear ( ) ; else if ( year < 100 )
year += new Date ( ) . getFullYear ( ) - new Date ( ) . getFullYear ( ) % 100 +
( year <= shortYearCutoff ? 0 : - 100 ) ; if ( doy > - 1 ) { month = 1 ; day = doy ; do { var dim = this . _getDaysInMonth ( year , month - 1 ) ; if ( day <= dim )
break ; month ++ ; day -= dim ; } while ( true ) ; }
var date = this . _daylightSavingAdjust ( new Date ( year , month - 1 , day ) ) ; if ( date . getFullYear ( ) != year || date . getMonth ( ) + 1 != month || date . getDate ( ) != day )
throw 'Invalid date' ; return date ; } , ATOM : 'yy-mm-dd' , COOKIE : 'D, dd M yy' , ISO _8601 : 'yy-mm-dd' , RFC _822 : 'D, d M y' , RFC _850 : 'DD, dd-M-y' , RFC _1036 : 'D, d M y' , RFC _1123 : 'D, d M yy' , RFC _2822 : 'D, d M yy' , RSS : 'D, d M y' , TICKS : '!' , TIMESTAMP : '@' , W3C : 'yy-mm-dd' , _ticksTo1970 : ( ( ( 1970 - 1 ) * 365 + Math . floor ( 1970 / 4 ) - Math . floor ( 1970 / 100 ) +
Math . floor ( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ) , formatDate : function ( format , date , settings ) { if ( ! date )
return '' ; var dayNamesShort = ( settings ? settings . dayNamesShort : null ) || this . _defaults . dayNamesShort ; var dayNames = ( settings ? settings . dayNames : null ) || this . _defaults . dayNames ; var monthNamesShort = ( settings ? settings . monthNamesShort : null ) || this . _defaults . monthNamesShort ; var monthNames = ( settings ? settings . monthNames : null ) || this . _defaults . monthNames ; var lookAhead = function ( match ) { var matches = ( iFormat + 1 < format . length && format . charAt ( iFormat + 1 ) == match ) ; if ( matches )
iFormat ++ ; return matches ; } ; var formatNumber = function ( match , value , len ) { var num = '' + value ; if ( lookAhead ( match ) )
while ( num . length < len )
num = '0' + num ; return num ; } ; var formatName = function ( match , value , shortNames , longNames ) { return ( lookAhead ( match ) ? longNames [ value ] : shortNames [ value ] ) ; } ; var output = '' ; var literal = false ; if ( date )
for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ ) { if ( literal )
if ( format . charAt ( iFormat ) == "'" && ! lookAhead ( "'" ) )
literal = false ; else
output += format . charAt ( iFormat ) ; else
switch ( format . charAt ( iFormat ) ) { case 'd' : output += formatNumber ( 'd' , date . getDate ( ) , 2 ) ; break ; case 'D' : output += formatName ( 'D' , date . getDay ( ) , dayNamesShort , dayNames ) ; break ; case 'o' : output += formatNumber ( 'o' , ( date . getTime ( ) - new Date ( date . getFullYear ( ) , 0 , 0 ) . getTime ( ) ) / 86400000 , 3 ) ; break ; case 'm' : output += formatNumber ( 'm' , date . getMonth ( ) + 1 , 2 ) ; break ; case 'M' : output += formatName ( 'M' , date . getMonth ( ) , monthNamesShort , monthNames ) ; break ; case 'y' : output += ( lookAhead ( 'y' ) ? date . getFullYear ( ) : ( date . getYear ( ) % 100 < 10 ? '0' : '' ) + date . getYear ( ) % 100 ) ; break ; case '@' : output += date . getTime ( ) ; break ; case '!' : output += date . getTime ( ) * 10000 + this . _ticksTo1970 ; break ; case "'" : if ( lookAhead ( "'" ) )
output += "'" ; else
literal = true ; break ; default : output += format . charAt ( iFormat ) ; } }
return output ; } , _possibleChars : function ( format ) { var chars = '' ; var literal = false ; var lookAhead = function ( match ) { var matches = ( iFormat + 1 < format . length && format . charAt ( iFormat + 1 ) == match ) ; if ( matches )
iFormat ++ ; return matches ; } ; for ( var iFormat = 0 ; iFormat < format . length ; iFormat ++ )
if ( literal )
if ( format . charAt ( iFormat ) == "'" && ! lookAhead ( "'" ) )
literal = false ; else
chars += format . charAt ( iFormat ) ; else
switch ( format . charAt ( iFormat ) ) { case 'd' : case 'm' : case 'y' : case '@' : chars += '0123456789' ; break ; case 'D' : case 'M' : return null ; case "'" : if ( lookAhead ( "'" ) )
chars += "'" ; else
literal = true ; break ; default : chars += format . charAt ( iFormat ) ; }
return chars ; } , _get : function ( inst , name ) { return inst . settings [ name ] !== undefined ? inst . settings [ name ] : this . _defaults [ name ] ; } , _setDateFromField : function ( inst , noDefault ) { if ( inst . input . val ( ) == inst . lastVal ) { return ; }
var dateFormat = this . _get ( inst , 'dateFormat' ) ; var dates = inst . lastVal = inst . input ? inst . input . val ( ) : null ; var date , defaultDate ; date = defaultDate = this . _getDefaultDate ( inst ) ; var settings = this . _getFormatConfig ( inst ) ; try { date = this . parseDate ( dateFormat , dates , settings ) || defaultDate ; } catch ( event ) { this . log ( event ) ; dates = ( noDefault ? '' : dates ) ; }
inst . selectedDay = date . getDate ( ) ; inst . drawMonth = inst . selectedMonth = date . getMonth ( ) ; inst . drawYear = inst . selectedYear = date . getFullYear ( ) ; inst . currentDay = ( dates ? date . getDate ( ) : 0 ) ; inst . currentMonth = ( dates ? date . getMonth ( ) : 0 ) ; inst . currentYear = ( dates ? date . getFullYear ( ) : 0 ) ; this . _adjustInstDate ( inst ) ; } , _getDefaultDate : function ( inst ) { return this . _restrictMinMax ( inst , this . _determineDate ( inst , this . _get ( inst , 'defaultDate' ) , new Date ( ) ) ) ; } , _determineDate : function ( inst , date , defaultDate ) { var offsetNumeric = function ( offset ) { var date = new Date ( ) ; date . setDate ( date . getDate ( ) + offset ) ; return date ; } ; var offsetString = function ( offset ) { try { return $ . datepicker . parseDate ( $ . datepicker . _get ( inst , 'dateFormat' ) , offset , $ . datepicker . _getFormatConfig ( inst ) ) ; }
catch ( e ) { }
var date = ( offset . toLowerCase ( ) . match ( /^c/ ) ? $ . datepicker . _getDate ( inst ) : null ) || new Date ( ) ; var year = date . getFullYear ( ) ; var month = date . getMonth ( ) ; var day = date . getDate ( ) ; var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g ; var matches = pattern . exec ( offset ) ; while ( matches ) { switch ( matches [ 2 ] || 'd' ) { case 'd' : case 'D' : day += parseInt ( matches [ 1 ] , 10 ) ; break ; case 'w' : case 'W' : day += parseInt ( matches [ 1 ] , 10 ) * 7 ; break ; case 'm' : case 'M' : month += parseInt ( matches [ 1 ] , 10 ) ; day = Math . min ( day , $ . datepicker . _getDaysInMonth ( year , month ) ) ; break ; case 'y' : case 'Y' : year += parseInt ( matches [ 1 ] , 10 ) ; day = Math . min ( day , $ . datepicker . _getDaysInMonth ( year , month ) ) ; break ; }
matches = pattern . exec ( offset ) ; }
return new Date ( year , month , day ) ; } ; date = ( date == null ? defaultDate : ( typeof date == 'string' ? offsetString ( date ) : ( typeof date == 'number' ? ( isNaN ( date ) ? defaultDate : offsetNumeric ( date ) ) : date ) ) ) ; date = ( date && date . toString ( ) == 'Invalid Date' ? defaultDate : date ) ; if ( date ) { date . setHours ( 0 ) ; date . setMinutes ( 0 ) ; date . setSeconds ( 0 ) ; date . setMilliseconds ( 0 ) ; }
return this . _daylightSavingAdjust ( date ) ; } , _daylightSavingAdjust : function ( date ) { if ( ! date ) return null ; date . setHours ( date . getHours ( ) > 12 ? date . getHours ( ) + 2 : 0 ) ; return date ; } , _setDate : function ( inst , date , noChange ) { var clear = ! ( date ) ; var origMonth = inst . selectedMonth ; var origYear = inst . selectedYear ; date = this . _restrictMinMax ( inst , this . _determineDate ( inst , date , new Date ( ) ) ) ; inst . selectedDay = inst . currentDay = date . getDate ( ) ; inst . drawMonth = inst . selectedMonth = inst . currentMonth = date . getMonth ( ) ; inst . drawYear = inst . selectedYear = inst . currentYear = date . getFullYear ( ) ; if ( ( origMonth != inst . selectedMonth || origYear != inst . selectedYear ) && ! noChange )
this . _notifyChange ( inst ) ; this . _adjustInstDate ( inst ) ; if ( inst . input ) { inst . input . val ( clear ? '' : this . _formatDate ( inst ) ) ; } } , _getDate : function ( inst ) { var startDate = ( ! inst . currentYear || ( inst . input && inst . input . val ( ) == '' ) ? null : this . _daylightSavingAdjust ( new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ) ) ) ; return startDate ; } , _generateHTML : function ( inst ) { var today = new Date ( ) ; today = this . _daylightSavingAdjust ( new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) ) ) ; var isRTL = this . _get ( inst , 'isRTL' ) ; var showButtonPanel = this . _get ( inst , 'showButtonPanel' ) ; var hideIfNoPrevNext = this . _get ( inst , 'hideIfNoPrevNext' ) ; var navigationAsDateFormat = this . _get ( inst , 'navigationAsDateFormat' ) ; var numMonths = this . _getNumberOfMonths ( inst ) ; var showCurrentAtPos = this . _get ( inst , 'showCurrentAtPos' ) ; var stepMonths = this . _get ( inst , 'stepMonths' ) ; var isMultiMonth = ( numMonths [ 0 ] != 1 || numMonths [ 1 ] != 1 ) ; var currentDate = this . _daylightSavingAdjust ( ( ! inst . currentDay ? new Date ( 9999 , 9 , 9 ) : new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ) ) ) ; var minDate = this . _getMinMaxDate ( inst , 'min' ) ; var maxDate = this . _getMinMaxDate ( inst , 'max' ) ; var drawMonth = inst . drawMonth - showCurrentAtPos ; var drawYear = inst . drawYear ; if ( drawMonth < 0 ) { drawMonth += 12 ; drawYear -- ; }
if ( maxDate ) { var maxDraw = this . _daylightSavingAdjust ( new Date ( maxDate . getFullYear ( ) , maxDate . getMonth ( ) - ( numMonths [ 0 ] * numMonths [ 1 ] ) + 1 , maxDate . getDate ( ) ) ) ; maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw ) ; while ( this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , 1 ) ) > maxDraw ) { drawMonth -- ; if ( drawMonth < 0 ) { drawMonth = 11 ; drawYear -- ; } } }
inst . drawMonth = drawMonth ; inst . drawYear = drawYear ; var prevText = this . _get ( inst , 'prevText' ) ; prevText = ( ! navigationAsDateFormat ? prevText : this . formatDate ( prevText , this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth - stepMonths , 1 ) ) , this . _getFormatConfig ( inst ) ) ) ; var prev = ( this . _canAdjustMonth ( inst , - 1 , drawYear , drawMonth ) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid + '.datepicker._adjustDate(\'#' + inst . id + '\', -' + stepMonths + ', \'M\');"' + ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w' ) + '">' + prevText + '</span></a>' : ( hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w' ) + '">' + prevText + '</span></a>' ) ) ; var nextText = this . _get ( inst , 'nextText' ) ; nextText = ( ! navigationAsDateFormat ? nextText : this . formatDate ( nextText , this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth + stepMonths , 1 ) ) , this . _getFormatConfig ( inst ) ) ) ; var next = ( this . _canAdjustMonth ( inst , + 1 , drawYear , drawMonth ) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid + '.datepicker._adjustDate(\'#' + inst . id + '\', +' + stepMonths + ', \'M\');"' + ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e' ) + '">' + nextText + '</span></a>' : ( hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e' ) + '">' + nextText + '</span></a>' ) ) ; var currentText = this . _get ( inst , 'currentText' ) ; var gotoDate = ( this . _get ( inst , 'gotoCurrent' ) && inst . currentDay ? currentDate : today ) ; currentText = ( ! navigationAsDateFormat ? currentText : this . formatDate ( currentText , gotoDate , this . _getFormatConfig ( inst ) ) ) ; var controls = ( ! inst . inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid + '.datepicker._hideDatepicker();">' + this . _get ( inst , 'closeText' ) + '</button>' : '' ) ; var buttonPanel = ( showButtonPanel ) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + ( isRTL ? controls : '' ) +
( this . _isInRange ( inst , gotoDate ) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid + '.datepicker._gotoToday(\'#' + inst . id + '\');"' + '>' + currentText + '</button>' : '' ) + ( isRTL ? '' : controls ) + '</div>' : '' ; var firstDay = parseInt ( this . _get ( inst , 'firstDay' ) , 10 ) ; firstDay = ( isNaN ( firstDay ) ? 0 : firstDay ) ; var showWeek = this . _get ( inst , 'showWeek' ) ; var dayNames = this . _get ( inst , 'dayNames' ) ; var dayNamesShort = this . _get ( inst , 'dayNamesShort' ) ; var dayNamesMin = this . _get ( inst , 'dayNamesMin' ) ; var monthNames = this . _get ( inst , 'monthNames' ) ; var monthNamesShort = this . _get ( inst , 'monthNamesShort' ) ; var beforeShowDay = this . _get ( inst , 'beforeShowDay' ) ; var showOtherMonths = this . _get ( inst , 'showOtherMonths' ) ; var selectOtherMonths = this . _get ( inst , 'selectOtherMonths' ) ; var calculateWeek = this . _get ( inst , 'calculateWeek' ) || this . iso8601Week ; var defaultDate = this . _getDefaultDate ( inst ) ; var html = '' ; for ( var row = 0 ; row < numMonths [ 0 ] ; row ++ ) { var group = '' ; for ( var col = 0 ; col < numMonths [ 1 ] ; col ++ ) { var selectedDate = this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , inst . selectedDay ) ) ; var cornerClass = ' ui-corner-all' ; var calender = '' ; if ( isMultiMonth ) { calender += '<div class="ui-datepicker-group' ; if ( numMonths [ 1 ] > 1 )
switch ( col ) { case 0 : calender += ' ui-datepicker-group-first' ; cornerClass = ' ui-corner-' + ( isRTL ? 'right' : 'left' ) ; break ; case numMonths [ 1 ] - 1 : calender += ' ui-datepicker-group-last' ; cornerClass = ' ui-corner-' + ( isRTL ? 'left' : 'right' ) ; break ; default : calender += ' ui-datepicker-group-middle' ; cornerClass = '' ; break ; }
calender += '">' ; }
calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
( /all|left/ . test ( cornerClass ) && row == 0 ? ( isRTL ? next : prev ) : '' ) +
( /all|right/ . test ( cornerClass ) && row == 0 ? ( isRTL ? prev : next ) : '' ) +
this . _generateMonthYearHeader ( inst , drawMonth , drawYear , minDate , maxDate , row > 0 || col > 0 , monthNames , monthNamesShort ) + '</div><table class="ui-datepicker-calendar"><thead>' + '<tr>' ; var thead = ( showWeek ? '<th class="ui-datepicker-week-col">' + this . _get ( inst , 'weekHeader' ) + '</th>' : '' ) ; for ( var dow = 0 ; dow < 7 ; dow ++ ) { var day = ( dow + firstDay ) % 7 ; thead += '<th' + ( ( dow + firstDay + 6 ) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '' ) + '>' + '<span title="' + dayNames [ day ] + '">' + dayNamesMin [ day ] + '</span></th>' ; }
calender += thead + '</tr></thead><tbody>' ; var daysInMonth = this . _getDaysInMonth ( drawYear , drawMonth ) ; if ( drawYear == inst . selectedYear && drawMonth == inst . selectedMonth )
inst . selectedDay = Math . min ( inst . selectedDay , daysInMonth ) ; var leadDays = ( this . _getFirstDayOfMonth ( drawYear , drawMonth ) - firstDay + 7 ) % 7 ; var numRows = ( isMultiMonth ? 6 : Math . ceil ( ( leadDays + daysInMonth ) / 7 ) ) ; var printDate = this . _daylightSavingAdjust ( new Date ( drawYear , drawMonth , 1 - leadDays ) ) ; for ( var dRow = 0 ; dRow < numRows ; dRow ++ ) { calender += '<tr>' ; var tbody = ( ! showWeek ? '' : '<td class="ui-datepicker-week-col">' +
this . _get ( inst , 'calculateWeek' ) ( printDate ) + '</td>' ) ; for ( var dow = 0 ; dow < 7 ; dow ++ ) { var daySettings = ( beforeShowDay ? beforeShowDay . apply ( ( inst . input ? inst . input [ 0 ] : null ) , [ printDate ] ) : [ true , '' ] ) ; var otherMonth = ( printDate . getMonth ( ) != drawMonth ) ; var unselectable = ( otherMonth && ! selectOtherMonths ) || ! daySettings [ 0 ] || ( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate ) ; tbody += '<td class="' +
( ( dow + firstDay + 6 ) % 7 >= 5 ? ' ui-datepicker-week-end' : '' ) +
( otherMonth ? ' ui-datepicker-other-month' : '' ) +
( ( printDate . getTime ( ) == selectedDate . getTime ( ) && drawMonth == inst . selectedMonth && inst . _keyEvent ) || ( defaultDate . getTime ( ) == printDate . getTime ( ) && defaultDate . getTime ( ) == selectedDate . getTime ( ) ) ? ' ' + this . _dayOverClass : '' ) +
( unselectable ? ' ' + this . _unselectableClass + ' ui-state-disabled' : '' ) +
( otherMonth && ! showOtherMonths ? '' : ' ' + daySettings [ 1 ] +
( printDate . getTime ( ) == currentDate . getTime ( ) ? ' ' + this . _currentClass : '' ) +
( printDate . getTime ( ) == today . getTime ( ) ? ' ui-datepicker-today' : '' ) ) + '"' +
( ( ! otherMonth || showOtherMonths ) && daySettings [ 2 ] ? ' title="' + daySettings [ 2 ] + '"' : '' ) +
( unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
inst . id + '\',' + printDate . getMonth ( ) + ',' + printDate . getFullYear ( ) + ', this);return false;"' ) + '>' +
( otherMonth && ! showOtherMonths ? ' ' : ( unselectable ? '<span class="ui-state-default">' + printDate . getDate ( ) + '</span>' : '<a class="ui-state-default' +
( printDate . getTime ( ) == today . getTime ( ) ? ' ui-state-highlight' : '' ) +
( printDate . getTime ( ) == currentDate . getTime ( ) ? ' ui-state-active' : '' ) +
( otherMonth ? ' ui-priority-secondary' : '' ) + '" href="#">' + printDate . getDate ( ) + '</a>' ) ) + '</td>' ; printDate . setDate ( printDate . getDate ( ) + 1 ) ; printDate = this . _daylightSavingAdjust ( printDate ) ; }
calender += tbody + '</tr>' ; }
drawMonth ++ ; if ( drawMonth > 11 ) { drawMonth = 0 ; drawYear ++ ; }
calender += '</tbody></table>' + ( isMultiMonth ? '</div>' +
( ( numMonths [ 0 ] > 0 && col == numMonths [ 1 ] - 1 ) ? '<div class="ui-datepicker-row-break"></div>' : '' ) : '' ) ; group += calender ; }
html += group ; }
html += buttonPanel + ( $ . browser . msie && parseInt ( $ . browser . version , 10 ) < 7 && ! inst . inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '' ) ; inst . _keyEvent = false ; return html ; } , _generateMonthYearHeader : function ( inst , drawMonth , drawYear , minDate , maxDate , secondary , monthNames , monthNamesShort ) { var changeMonth = this . _get ( inst , 'changeMonth' ) ; var changeYear = this . _get ( inst , 'changeYear' ) ; var showMonthAfterYear = this . _get ( inst , 'showMonthAfterYear' ) ; var html = '<div class="ui-datepicker-title">' ; var monthHtml = '' ; if ( secondary || ! changeMonth )
monthHtml += '<span class="ui-datepicker-month">' + monthNames [ drawMonth ] + '</span>' ; else { var inMinYear = ( minDate && minDate . getFullYear ( ) == drawYear ) ; var inMaxYear = ( maxDate && maxDate . getFullYear ( ) == drawYear ) ; monthHtml += '<select class="ui-datepicker-month" ' + 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst . id + '\', this, \'M\');" ' + 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst . id + '\');"' + '>' ; for ( var month = 0 ; month < 12 ; month ++ ) { if ( ( ! inMinYear || month >= minDate . getMonth ( ) ) && ( ! inMaxYear || month <= maxDate . getMonth ( ) ) )
monthHtml += '<option value="' + month + '"' +
( month == drawMonth ? ' selected="selected"' : '' ) + '>' + monthNamesShort [ month ] + '</option>' ; }
monthHtml += '</select>' ; }
if ( ! showMonthAfterYear )
html += monthHtml + ( secondary || ! ( changeMonth && changeYear ) ? ' ' : '' ) ; if ( secondary || ! changeYear )
html += '<span class="ui-datepicker-year">' + drawYear + '</span>' ; else { var years = this . _get ( inst , 'yearRange' ) . split ( ':' ) ; var thisYear = new Date ( ) . getFullYear ( ) ; var determineYear = function ( value ) { var year = ( value . match ( /c[+-].*/ ) ? drawYear + parseInt ( value . substring ( 1 ) , 10 ) : ( value . match ( /[+-].*/ ) ? thisYear + parseInt ( value , 10 ) : parseInt ( value , 10 ) ) ) ; return ( isNaN ( year ) ? thisYear : year ) ; } ; var year = determineYear ( years [ 0 ] ) ; var endYear = Math . max ( year , determineYear ( years [ 1 ] || '' ) ) ; year = ( minDate ? Math . max ( year , minDate . getFullYear ( ) ) : year ) ; endYear = ( maxDate ? Math . min ( endYear , maxDate . getFullYear ( ) ) : endYear ) ; html += '<select class="ui-datepicker-year" ' + 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst . id + '\', this, \'Y\');" ' + 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst . id + '\');"' + '>' ; for ( ; year <= endYear ; year ++ ) { html += '<option value="' + year + '"' +
( year == drawYear ? ' selected="selected"' : '' ) + '>' + year + '</option>' ; }
html += '</select>' ; }
html += this . _get ( inst , 'yearSuffix' ) ; if ( showMonthAfterYear )
html += ( secondary || ! ( changeMonth && changeYear ) ? ' ' : '' ) + monthHtml ; html += '</div>' ; return html ; } , _adjustInstDate : function ( inst , offset , period ) { var year = inst . drawYear + ( period == 'Y' ? offset : 0 ) ; var month = inst . drawMonth + ( period == 'M' ? offset : 0 ) ; var day = Math . min ( inst . selectedDay , this . _getDaysInMonth ( year , month ) ) +
( period == 'D' ? offset : 0 ) ; var date = this . _restrictMinMax ( inst , this . _daylightSavingAdjust ( new Date ( year , month , day ) ) ) ; inst . selectedDay = date . getDate ( ) ; inst . drawMonth = inst . selectedMonth = date . getMonth ( ) ; inst . drawYear = inst . selectedYear = date . getFullYear ( ) ; if ( period == 'M' || period == 'Y' )
this . _notifyChange ( inst ) ; } , _restrictMinMax : function ( inst , date ) { var minDate = this . _getMinMaxDate ( inst , 'min' ) ; var maxDate = this . _getMinMaxDate ( inst , 'max' ) ; date = ( minDate && date < minDate ? minDate : date ) ; date = ( maxDate && date > maxDate ? maxDate : date ) ; return date ; } , _notifyChange : function ( inst ) { var onChange = this . _get ( inst , 'onChangeMonthYear' ) ; if ( onChange )
onChange . apply ( ( inst . input ? inst . input [ 0 ] : null ) , [ inst . selectedYear , inst . selectedMonth + 1 , inst ] ) ; } , _getNumberOfMonths : function ( inst ) { var numMonths = this . _get ( inst , 'numberOfMonths' ) ; return ( numMonths == null ? [ 1 , 1 ] : ( typeof numMonths == 'number' ? [ 1 , numMonths ] : numMonths ) ) ; } , _getMinMaxDate : function ( inst , minMax ) { return this . _determineDate ( inst , this . _get ( inst , minMax + 'Date' ) , null ) ; } , _getDaysInMonth : function ( year , month ) { return 32 - new Date ( year , month , 32 ) . getDate ( ) ; } , _getFirstDayOfMonth : function ( year , month ) { return new Date ( year , month , 1 ) . getDay ( ) ; } , _canAdjustMonth : function ( inst , offset , curYear , curMonth ) { var numMonths = this . _getNumberOfMonths ( inst ) ; var date = this . _daylightSavingAdjust ( new Date ( curYear , curMonth + ( offset < 0 ? offset : numMonths [ 0 ] * numMonths [ 1 ] ) , 1 ) ) ; if ( offset < 0 )
date . setDate ( this . _getDaysInMonth ( date . getFullYear ( ) , date . getMonth ( ) ) ) ; return this . _isInRange ( inst , date ) ; } , _isInRange : function ( inst , date ) { var minDate = this . _getMinMaxDate ( inst , 'min' ) ; var maxDate = this . _getMinMaxDate ( inst , 'max' ) ; return ( ( ! minDate || date . getTime ( ) >= minDate . getTime ( ) ) && ( ! maxDate || date . getTime ( ) <= maxDate . getTime ( ) ) ) ; } , _getFormatConfig : function ( inst ) { var shortYearCutoff = this . _get ( inst , 'shortYearCutoff' ) ; shortYearCutoff = ( typeof shortYearCutoff != 'string' ? shortYearCutoff : new Date ( ) . getFullYear ( ) % 100 + parseInt ( shortYearCutoff , 10 ) ) ; return { shortYearCutoff : shortYearCutoff , dayNamesShort : this . _get ( inst , 'dayNamesShort' ) , dayNames : this . _get ( inst , 'dayNames' ) , monthNamesShort : this . _get ( inst , 'monthNamesShort' ) , monthNames : this . _get ( inst , 'monthNames' ) } ; } , _formatDate : function ( inst , day , month , year ) { if ( ! day ) { inst . currentDay = inst . selectedDay ; inst . currentMonth = inst . selectedMonth ; inst . currentYear = inst . selectedYear ; }
var date = ( day ? ( typeof day == 'object' ? day : this . _daylightSavingAdjust ( new Date ( year , month , day ) ) ) : this . _daylightSavingAdjust ( new Date ( inst . currentYear , inst . currentMonth , inst . currentDay ) ) ) ; return this . formatDate ( this . _get ( inst , 'dateFormat' ) , date , this . _getFormatConfig ( inst ) ) ; } } ) ; function extendRemove ( target , props ) { $ . extend ( target , props ) ; for ( var name in props )
if ( props [ name ] == null || props [ name ] == undefined )
target [ name ] = props [ name ] ; return target ; } ; function isArray ( a ) { return ( a && ( ( $ . browser . safari && typeof a == 'object' && a . length ) || ( a . constructor && a . constructor . toString ( ) . match ( /\Array\(\)/ ) ) ) ) ; } ; $ . fn . datepicker = function ( options ) { if ( ! $ . datepicker . initialized ) { $ ( document ) . mousedown ( $ . datepicker . _checkExternalClick ) . find ( 'body' ) . append ( $ . datepicker . dpDiv ) ; $ . datepicker . initialized = true ; }
var otherArgs = Array . prototype . slice . call ( arguments , 1 ) ; if ( typeof options == 'string' && ( options == 'isDisabled' || options == 'getDate' || options == 'widget' ) )
return $ . datepicker [ '_' + options + 'Datepicker' ] . apply ( $ . datepicker , [ this [ 0 ] ] . concat ( otherArgs ) ) ; if ( options == 'option' && arguments . length == 2 && typeof arguments [ 1 ] == 'string' )
2010-06-08 16:15:48 +00:00
return $ . datepicker [ '_' + options + 'Datepicker' ] . apply ( $ . datepicker , [ this [ 0 ] ] . concat ( otherArgs ) ) ; return this . each ( function ( ) { typeof options == 'string' ? $ . datepicker [ '_' + options + 'Datepicker' ] . apply ( $ . datepicker , [ this ] . concat ( otherArgs ) ) : $ . datepicker . _attachDatepicker ( this , options ) ; } ) ; } ; $ . datepicker = new Datepicker ( ) ; $ . datepicker . initialized = false ; $ . datepicker . uuid = new Date ( ) . getTime ( ) ; $ . datepicker . version = "1.8.2" ; window [ 'DP_jQuery_' + dpuuid ] = $ ; } ) ( jQuery ) ; ( function ( $ ) { var uiDialogClasses = 'ui-dialog ' + 'ui-widget ' + 'ui-widget-content ' + 'ui-corner-all ' ; $ . widget ( "ui.dialog" , { options : { autoOpen : true , buttons : { } , closeOnEscape : true , closeText : 'close' , dialogClass : '' , draggable : true , hide : null , height : 'auto' , maxHeight : false , maxWidth : false , minHeight : 150 , minWidth : 150 , modal : false , position : 'center' , resizable : true , show : null , stack : true , title : '' , width : 300 , zIndex : 1000 } , _create : function ( ) { this . originalTitle = this . element . attr ( 'title' ) ; var self = this , options = self . options , title = options . title || self . originalTitle || ' ' , titleId = $ . ui . dialog . getTitleId ( self . element ) , uiDialog = ( self . uiDialog = $ ( '<div></div>' ) ) . appendTo ( document . body ) . hide ( ) . addClass ( uiDialogClasses + options . dialogClass ) . css ( { zIndex : options . zIndex } ) . attr ( 'tabIndex' , - 1 ) . css ( 'outline' , 0 ) . keydown ( function ( event ) { if ( options . closeOnEscape && event . keyCode && event . keyCode === $ . ui . keyCode . ESCAPE ) { self . close ( event ) ; event . preventDefault ( ) ; } } ) . attr ( { role : 'dialog' , 'aria-labelledby' : titleId } ) . mousedown ( function ( event ) { self . moveToTop ( false , event ) ; } ) , uiDialogContent = self . element . show ( ) . removeAttr ( 'title' ) . addClass ( 'ui-dialog-content ' + 'ui-widget-content' ) . appendTo ( uiDialog ) , uiDialogTitlebar = ( self . uiDialogTitlebar = $ ( '<div></div>' ) ) . addClass ( 'ui-dialog-titlebar ' + 'ui-widget-header ' + 'ui-corner-all ' + 'ui-helper-clearfix' ) . prependTo ( uiDialog ) , uiDialogTitlebarClose = $ ( '<a href="#"></a>' ) . addClass ( 'ui-dialog-titlebar-close ' + 'ui-corner-all' ) . attr ( 'role' , 'button' ) . hover ( function ( ) { uiDialogTitlebarClose . addClass ( 'ui-state-hover' ) ; } , function ( ) { uiDialogTitlebarClose . removeClass ( 'ui-state-hover' ) ; } ) . focus ( function ( ) { uiDialogTitlebarClose . addClass ( 'ui-state-focus' ) ; } ) . blur ( function ( ) { uiDialogTitlebarClose . removeClass ( 'ui-state-focus' ) ; } ) . click ( function ( event ) { self . close ( event ) ; return false ; } ) . appendTo ( uiDialogTitlebar ) , uiDialogTitlebarCloseText = ( self . uiDialogTitlebarCloseText = $ ( '<span></span>' ) ) . addClass ( 'ui-icon ' + 'ui-icon-closethick' ) . text ( options . closeText ) . appendTo ( uiDialogTitlebarClose ) , uiDialogTitle = $ ( '<span></span>' ) . addClass ( 'ui-dialog-title' ) . attr ( 'id' , titleId ) . html ( title ) . prependTo ( uiDialogTitlebar ) ; if ( $ . isFunction ( options . beforeclose ) && ! $ . isFunction ( options . beforeClose ) ) { options . beforeClose = options . beforeclose ; }
2010-05-19 15:43:12 +00:00
uiDialogTitlebar . find ( "*" ) . add ( uiDialogTitlebar ) . disableSelection ( ) ; if ( options . draggable && $ . fn . draggable ) { self . _makeDraggable ( ) ; }
if ( options . resizable && $ . fn . resizable ) { self . _makeResizable ( ) ; }
self . _createButtons ( options . buttons ) ; self . _isOpen = false ; if ( $ . fn . bgiframe ) { uiDialog . bgiframe ( ) ; } } , _init : function ( ) { if ( this . options . autoOpen ) { this . open ( ) ; } } , destroy : function ( ) { var self = this ; if ( self . overlay ) { self . overlay . destroy ( ) ; }
self . uiDialog . hide ( ) ; self . element . unbind ( '.dialog' ) . removeData ( 'dialog' ) . removeClass ( 'ui-dialog-content ui-widget-content' ) . hide ( ) . appendTo ( 'body' ) ; self . uiDialog . remove ( ) ; if ( self . originalTitle ) { self . element . attr ( 'title' , self . originalTitle ) ; }
return self ; } , widget : function ( ) { return this . uiDialog ; } , close : function ( event ) { var self = this , maxZ ; if ( false === self . _trigger ( 'beforeClose' , event ) ) { return ; }
if ( self . overlay ) { self . overlay . destroy ( ) ; }
self . uiDialog . unbind ( 'keypress.ui-dialog' ) ; self . _isOpen = false ; if ( self . options . hide ) { self . uiDialog . hide ( self . options . hide , function ( ) { self . _trigger ( 'close' , event ) ; } ) ; } else { self . uiDialog . hide ( ) ; self . _trigger ( 'close' , event ) ; }
$ . ui . dialog . overlay . resize ( ) ; if ( self . options . modal ) { maxZ = 0 ; $ ( '.ui-dialog' ) . each ( function ( ) { if ( this !== self . uiDialog [ 0 ] ) { maxZ = Math . max ( maxZ , $ ( this ) . css ( 'z-index' ) ) ; } } ) ; $ . ui . dialog . maxZ = maxZ ; }
return self ; } , isOpen : function ( ) { return this . _isOpen ; } , moveToTop : function ( force , event ) { var self = this , options = self . options , saveScroll ; if ( ( options . modal && ! force ) || ( ! options . stack && ! options . modal ) ) { return self . _trigger ( 'focus' , event ) ; }
if ( options . zIndex > $ . ui . dialog . maxZ ) { $ . ui . dialog . maxZ = options . zIndex ; }
if ( self . overlay ) { $ . ui . dialog . maxZ += 1 ; self . overlay . $el . css ( 'z-index' , $ . ui . dialog . overlay . maxZ = $ . ui . dialog . maxZ ) ; }
saveScroll = { scrollTop : self . element . attr ( 'scrollTop' ) , scrollLeft : self . element . attr ( 'scrollLeft' ) } ; $ . ui . dialog . maxZ += 1 ; self . uiDialog . css ( 'z-index' , $ . ui . dialog . maxZ ) ; self . element . attr ( saveScroll ) ; self . _trigger ( 'focus' , event ) ; return self ; } , open : function ( ) { if ( this . _isOpen ) { return ; }
var self = this , options = self . options , uiDialog = self . uiDialog ; self . overlay = options . modal ? new $ . ui . dialog . overlay ( self ) : null ; if ( uiDialog . next ( ) . length ) { uiDialog . appendTo ( 'body' ) ; }
self . _size ( ) ; self . _position ( options . position ) ; uiDialog . show ( options . show ) ; self . moveToTop ( true ) ; if ( options . modal ) { uiDialog . bind ( 'keypress.ui-dialog' , function ( event ) { if ( event . keyCode !== $ . ui . keyCode . TAB ) { return ; }
var tabbables = $ ( ':tabbable' , this ) , first = tabbables . filter ( ':first' ) , last = tabbables . filter ( ':last' ) ; if ( event . target === last [ 0 ] && ! event . shiftKey ) { first . focus ( 1 ) ; return false ; } else if ( event . target === first [ 0 ] && event . shiftKey ) { last . focus ( 1 ) ; return false ; } } ) ; }
$ ( [ ] ) . add ( uiDialog . find ( '.ui-dialog-content :tabbable:first' ) ) . add ( uiDialog . find ( '.ui-dialog-buttonpane :tabbable:first' ) ) . add ( uiDialog ) . filter ( ':first' ) . focus ( ) ; self . _trigger ( 'open' ) ; self . _isOpen = true ; return self ; } , _createButtons : function ( buttons ) { var self = this , hasButtons = false , uiDialogButtonPane = $ ( '<div></div>' ) . addClass ( 'ui-dialog-buttonpane ' + 'ui-widget-content ' + 'ui-helper-clearfix' ) ; self . uiDialog . find ( '.ui-dialog-buttonpane' ) . remove ( ) ; if ( typeof buttons === 'object' && buttons !== null ) { $ . each ( buttons , function ( ) { return ! ( hasButtons = true ) ; } ) ; }
if ( hasButtons ) { $ . each ( buttons , function ( name , fn ) { var button = $ ( '<button type="button"></button>' ) . text ( name ) . click ( function ( ) { fn . apply ( self . element [ 0 ] , arguments ) ; } ) . appendTo ( uiDialogButtonPane ) ; if ( $ . fn . button ) { button . button ( ) ; } } ) ; uiDialogButtonPane . appendTo ( self . uiDialog ) ; } } , _makeDraggable : function ( ) { var self = this , options = self . options , doc = $ ( document ) , heightBeforeDrag ; function filteredUi ( ui ) { return { position : ui . position , offset : ui . offset } ; }
self . uiDialog . draggable ( { cancel : '.ui-dialog-content, .ui-dialog-titlebar-close' , handle : '.ui-dialog-titlebar' , containment : 'document' , start : function ( event , ui ) { heightBeforeDrag = options . height === "auto" ? "auto" : $ ( this ) . height ( ) ; $ ( this ) . height ( $ ( this ) . height ( ) ) . addClass ( "ui-dialog-dragging" ) ; self . _trigger ( 'dragStart' , event , filteredUi ( ui ) ) ; } , drag : function ( event , ui ) { self . _trigger ( 'drag' , event , filteredUi ( ui ) ) ; } , stop : function ( event , ui ) { options . position = [ ui . position . left - doc . scrollLeft ( ) , ui . position . top - doc . scrollTop ( ) ] ; $ ( this ) . removeClass ( "ui-dialog-dragging" ) . height ( heightBeforeDrag ) ; self . _trigger ( 'dragStop' , event , filteredUi ( ui ) ) ; $ . ui . dialog . overlay . resize ( ) ; } } ) ; } , _makeResizable : function ( handles ) { handles = ( handles === undefined ? this . options . resizable : handles ) ; var self = this , options = self . options , position = self . uiDialog . css ( 'position' ) , resizeHandles = ( typeof handles === 'string' ? handles : 'n,e,s,w,se,sw,ne,nw' ) ; function filteredUi ( ui ) { return { originalPosition : ui . originalPosition , originalSize : ui . originalSize , position : ui . position , size : ui . size } ; }
self . uiDialog . resizable ( { cancel : '.ui-dialog-content' , containment : 'document' , alsoResize : self . element , maxWidth : options . maxWidth , maxHeight : options . maxHeight , minWidth : options . minWidth , minHeight : self . _minHeight ( ) , handles : resizeHandles , start : function ( event , ui ) { $ ( this ) . addClass ( "ui-dialog-resizing" ) ; self . _trigger ( 'resizeStart' , event , filteredUi ( ui ) ) ; } , resize : function ( event , ui ) { self . _trigger ( 'resize' , event , filteredUi ( ui ) ) ; } , stop : function ( event , ui ) { $ ( this ) . removeClass ( "ui-dialog-resizing" ) ; options . height = $ ( this ) . height ( ) ; options . width = $ ( this ) . width ( ) ; self . _trigger ( 'resizeStop' , event , filteredUi ( ui ) ) ; $ . ui . dialog . overlay . resize ( ) ; } } ) . css ( 'position' , position ) . find ( '.ui-resizable-se' ) . addClass ( 'ui-icon ui-icon-grip-diagonal-se' ) ; } , _minHeight : function ( ) { var options = this . options ; if ( options . height === 'auto' ) { return options . minHeight ; } else { return Math . min ( options . minHeight , options . height ) ; } } , _position : function ( position ) { var myAt = [ ] , offset = [ 0 , 0 ] , isVisible ; position = position || $ . ui . dialog . prototype . options . position ; if ( typeof position === 'string' || ( typeof position === 'object' && '0' in position ) ) { myAt = position . split ? position . split ( ' ' ) : [ position [ 0 ] , position [ 1 ] ] ; if ( myAt . length === 1 ) { myAt [ 1 ] = myAt [ 0 ] ; }
$ . each ( [ 'left' , 'top' ] , function ( i , offsetPosition ) { if ( + myAt [ i ] === myAt [ i ] ) { offset [ i ] = myAt [ i ] ; myAt [ i ] = offsetPosition ; } } ) ; } else if ( typeof position === 'object' ) { if ( 'left' in position ) { myAt [ 0 ] = 'left' ; offset [ 0 ] = position . left ; } else if ( 'right' in position ) { myAt [ 0 ] = 'right' ; offset [ 0 ] = - position . right ; }
if ( 'top' in position ) { myAt [ 1 ] = 'top' ; offset [ 1 ] = position . top ; } else if ( 'bottom' in position ) { myAt [ 1 ] = 'bottom' ; offset [ 1 ] = - position . bottom ; } }
isVisible = this . uiDialog . is ( ':visible' ) ; if ( ! isVisible ) { this . uiDialog . show ( ) ; }
this . uiDialog . css ( { top : 0 , left : 0 } ) . position ( { my : myAt . join ( ' ' ) , at : myAt . join ( ' ' ) , offset : offset . join ( ' ' ) , of : window , collision : 'fit' , using : function ( pos ) { var topOffset = $ ( this ) . css ( pos ) . offset ( ) . top ; if ( topOffset < 0 ) { $ ( this ) . css ( 'top' , pos . top - topOffset ) ; } } } ) ; if ( ! isVisible ) { this . uiDialog . hide ( ) ; } } , _setOption : function ( key , value ) { var self = this , uiDialog = self . uiDialog , isResizable = uiDialog . is ( ':data(resizable)' ) , resize = false ; switch ( key ) { case "beforeclose" : key = "beforeClose" ; break ; case "buttons" : self . _createButtons ( value ) ; break ; case "closeText" : self . uiDialogTitlebarCloseText . text ( "" + value ) ; break ; case "dialogClass" : uiDialog . removeClass ( self . options . dialogClass ) . addClass ( uiDialogClasses + value ) ; break ; case "disabled" : if ( value ) { uiDialog . addClass ( 'ui-dialog-disabled' ) ; } else { uiDialog . removeClass ( 'ui-dialog-disabled' ) ; }
break ; case "draggable" : if ( value ) { self . _makeDraggable ( ) ; } else { uiDialog . draggable ( 'destroy' ) ; }
break ; case "height" : resize = true ; break ; case "maxHeight" : if ( isResizable ) { uiDialog . resizable ( 'option' , 'maxHeight' , value ) ; }
resize = true ; break ; case "maxWidth" : if ( isResizable ) { uiDialog . resizable ( 'option' , 'maxWidth' , value ) ; }
resize = true ; break ; case "minHeight" : if ( isResizable ) { uiDialog . resizable ( 'option' , 'minHeight' , value ) ; }
resize = true ; break ; case "minWidth" : if ( isResizable ) { uiDialog . resizable ( 'option' , 'minWidth' , value ) ; }
resize = true ; break ; case "position" : self . _position ( value ) ; break ; case "resizable" : if ( isResizable && ! value ) { uiDialog . resizable ( 'destroy' ) ; }
if ( isResizable && typeof value === 'string' ) { uiDialog . resizable ( 'option' , 'handles' , value ) ; }
if ( ! isResizable && value !== false ) { self . _makeResizable ( value ) ; }
break ; case "title" : $ ( ".ui-dialog-title" , self . uiDialogTitlebar ) . html ( "" + ( value || ' ' ) ) ; break ; case "width" : resize = true ; break ; }
2010-06-08 16:15:48 +00:00
$ . Widget . prototype . _setOption . apply ( self , arguments ) ; if ( resize ) { self . _size ( ) ; } } , _size : function ( ) { var options = this . options , nonContentHeight ; this . element . css ( { width : 'auto' , minHeight : 0 , height : 0 } ) ; nonContentHeight = this . uiDialog . css ( { height : 'auto' , width : options . width } ) . height ( ) ; this . element . css ( options . height === 'auto' ? { minHeight : Math . max ( options . minHeight - nonContentHeight , 0 ) , height : 'auto' } : { minHeight : 0 , height : Math . max ( options . height - nonContentHeight , 0 ) } ) . show ( ) ; if ( this . uiDialog . is ( ':data(resizable)' ) ) { this . uiDialog . resizable ( 'option' , 'minHeight' , this . _minHeight ( ) ) ; } } } ) ; $ . extend ( $ . ui . dialog , { version : "1.8.2" , uuid : 0 , maxZ : 0 , getTitleId : function ( $el ) { var id = $el . attr ( 'id' ) ; if ( ! id ) { this . uuid += 1 ; id = this . uuid ; }
2010-05-19 15:43:12 +00:00
return 'ui-dialog-title-' + id ; } , overlay : function ( dialog ) { this . $el = $ . ui . dialog . overlay . create ( dialog ) ; } } ) ; $ . extend ( $ . ui . dialog . overlay , { instances : [ ] , oldInstances : [ ] , maxZ : 0 , events : $ . map ( 'focus,mousedown,mouseup,keydown,keypress,click' . split ( ',' ) , function ( event ) { return event + '.dialog-overlay' ; } ) . join ( ' ' ) , create : function ( dialog ) { if ( this . instances . length === 0 ) { setTimeout ( function ( ) { if ( $ . ui . dialog . overlay . instances . length ) { $ ( document ) . bind ( $ . ui . dialog . overlay . events , function ( event ) { return ( $ ( event . target ) . zIndex ( ) >= $ . ui . dialog . overlay . maxZ ) ; } ) ; } } , 1 ) ; $ ( document ) . bind ( 'keydown.dialog-overlay' , function ( event ) { if ( dialog . options . closeOnEscape && event . keyCode && event . keyCode === $ . ui . keyCode . ESCAPE ) { dialog . close ( event ) ; event . preventDefault ( ) ; } } ) ; $ ( window ) . bind ( 'resize.dialog-overlay' , $ . ui . dialog . overlay . resize ) ; }
var $el = ( this . oldInstances . pop ( ) || $ ( '<div></div>' ) . addClass ( 'ui-widget-overlay' ) ) . appendTo ( document . body ) . css ( { width : this . width ( ) , height : this . height ( ) } ) ; if ( $ . fn . bgiframe ) { $el . bgiframe ( ) ; }
this . instances . push ( $el ) ; return $el ; } , destroy : function ( $el ) { this . oldInstances . push ( this . instances . splice ( $ . inArray ( $el , this . instances ) , 1 ) [ 0 ] ) ; if ( this . instances . length === 0 ) { $ ( [ document , window ] ) . unbind ( '.dialog-overlay' ) ; }
$el . remove ( ) ; var maxZ = 0 ; $ . each ( this . instances , function ( ) { maxZ = Math . max ( maxZ , this . css ( 'z-index' ) ) ; } ) ; this . maxZ = maxZ ; } , height : function ( ) { var scrollHeight , offsetHeight ; if ( $ . browser . msie && $ . browser . version < 7 ) { scrollHeight = Math . max ( document . documentElement . scrollHeight , document . body . scrollHeight ) ; offsetHeight = Math . max ( document . documentElement . offsetHeight , document . body . offsetHeight ) ; if ( scrollHeight < offsetHeight ) { return $ ( window ) . height ( ) + 'px' ; } else { return scrollHeight + 'px' ; } } else { return $ ( document ) . height ( ) + 'px' ; } } , width : function ( ) { var scrollWidth , offsetWidth ; if ( $ . browser . msie && $ . browser . version < 7 ) { scrollWidth = Math . max ( document . documentElement . scrollWidth , document . body . scrollWidth ) ; offsetWidth = Math . max ( document . documentElement . offsetWidth , document . body . offsetWidth ) ; if ( scrollWidth < offsetWidth ) { return $ ( window ) . width ( ) + 'px' ; } else { return scrollWidth + 'px' ; } } else { return $ ( document ) . width ( ) + 'px' ; } } , resize : function ( ) { var $overlays = $ ( [ ] ) ; $ . each ( $ . ui . dialog . overlay . instances , function ( ) { $overlays = $overlays . add ( this ) ; } ) ; $overlays . css ( { width : 0 , height : 0 } ) . css ( { width : $ . ui . dialog . overlay . width ( ) , height : $ . ui . dialog . overlay . height ( ) } ) ; } } ) ; $ . extend ( $ . ui . dialog . overlay . prototype , { destroy : function ( ) { $ . ui . dialog . overlay . destroy ( this . $el ) ; } } ) ; } ( jQuery ) ) ; ( function ( $ ) { $ . ui = $ . ui || { } ; var horizontalPositions = /left|center|right/ , horizontalDefault = "center" , verticalPositions = /top|center|bottom/ , verticalDefault = "center" , _position = $ . fn . position , _offset = $ . fn . offset ; $ . fn . position = function ( options ) { if ( ! options || ! options . of ) { return _position . apply ( this , arguments ) ; }
options = $ . extend ( { } , options ) ; var target = $ ( options . of ) , collision = ( options . collision || "flip" ) . split ( " " ) , offset = options . offset ? options . offset . split ( " " ) : [ 0 , 0 ] , targetWidth , targetHeight , basePosition ; if ( options . of . nodeType === 9 ) { targetWidth = target . width ( ) ; targetHeight = target . height ( ) ; basePosition = { top : 0 , left : 0 } ; } else if ( options . of . scrollTo && options . of . document ) { targetWidth = target . width ( ) ; targetHeight = target . height ( ) ; basePosition = { top : target . scrollTop ( ) , left : target . scrollLeft ( ) } ; } else if ( options . of . preventDefault ) { options . at = "left top" ; targetWidth = targetHeight = 0 ; basePosition = { top : options . of . pageY , left : options . of . pageX } ; } else { targetWidth = target . outerWidth ( ) ; targetHeight = target . outerHeight ( ) ; basePosition = target . offset ( ) ; }
$ . each ( [ "my" , "at" ] , function ( ) { var pos = ( options [ this ] || "" ) . split ( " " ) ; if ( pos . length === 1 ) { pos = horizontalPositions . test ( pos [ 0 ] ) ? pos . concat ( [ verticalDefault ] ) : verticalPositions . test ( pos [ 0 ] ) ? [ horizontalDefault ] . concat ( pos ) : [ horizontalDefault , verticalDefault ] ; }
pos [ 0 ] = horizontalPositions . test ( pos [ 0 ] ) ? pos [ 0 ] : horizontalDefault ; pos [ 1 ] = verticalPositions . test ( pos [ 1 ] ) ? pos [ 1 ] : verticalDefault ; options [ this ] = pos ; } ) ; if ( collision . length === 1 ) { collision [ 1 ] = collision [ 0 ] ; }
offset [ 0 ] = parseInt ( offset [ 0 ] , 10 ) || 0 ; if ( offset . length === 1 ) { offset [ 1 ] = offset [ 0 ] ; }
offset [ 1 ] = parseInt ( offset [ 1 ] , 10 ) || 0 ; if ( options . at [ 0 ] === "right" ) { basePosition . left += targetWidth ; } else if ( options . at [ 0 ] === horizontalDefault ) { basePosition . left += targetWidth / 2 ; }
if ( options . at [ 1 ] === "bottom" ) { basePosition . top += targetHeight ; } else if ( options . at [ 1 ] === verticalDefault ) { basePosition . top += targetHeight / 2 ; }
basePosition . left += offset [ 0 ] ; basePosition . top += offset [ 1 ] ; return this . each ( function ( ) { var elem = $ ( this ) , elemWidth = elem . outerWidth ( ) , elemHeight = elem . outerHeight ( ) , position = $ . extend ( { } , basePosition ) ; if ( options . my [ 0 ] === "right" ) { position . left -= elemWidth ; } else if ( options . my [ 0 ] === horizontalDefault ) { position . left -= elemWidth / 2 ; }
if ( options . my [ 1 ] === "bottom" ) { position . top -= elemHeight ; } else if ( options . my [ 1 ] === verticalDefault ) { position . top -= elemHeight / 2 ; }
position . left = parseInt ( position . left ) ; position . top = parseInt ( position . top ) ; $ . each ( [ "left" , "top" ] , function ( i , dir ) { if ( $ . ui . position [ collision [ i ] ] ) { $ . ui . position [ collision [ i ] ] [ dir ] ( position , { targetWidth : targetWidth , targetHeight : targetHeight , elemWidth : elemWidth , elemHeight : elemHeight , offset : offset , my : options . my , at : options . at } ) ; } } ) ; if ( $ . fn . bgiframe ) { elem . bgiframe ( ) ; }
elem . offset ( $ . extend ( position , { using : options . using } ) ) ; } ) ; } ; $ . ui . position = { fit : { left : function ( position , data ) { var win = $ ( window ) , over = position . left + data . elemWidth - win . width ( ) - win . scrollLeft ( ) ; position . left = over > 0 ? position . left - over : Math . max ( 0 , position . left ) ; } , top : function ( position , data ) { var win = $ ( window ) , over = position . top + data . elemHeight - win . height ( ) - win . scrollTop ( ) ; position . top = over > 0 ? position . top - over : Math . max ( 0 , position . top ) ; } } , flip : { left : function ( position , data ) { if ( data . at [ 0 ] === "center" ) { return ; }
var win = $ ( window ) , over = position . left + data . elemWidth - win . width ( ) - win . scrollLeft ( ) , myOffset = data . my [ 0 ] === "left" ? - data . elemWidth : data . my [ 0 ] === "right" ? data . elemWidth : 0 , offset = - 2 * data . offset [ 0 ] ; position . left += position . left < 0 ? myOffset + data . targetWidth + offset : over > 0 ? myOffset - data . targetWidth + offset : 0 ; } , top : function ( position , data ) { if ( data . at [ 1 ] === "center" ) { return ; }
var win = $ ( window ) , over = position . top + data . elemHeight - win . height ( ) - win . scrollTop ( ) , myOffset = data . my [ 1 ] === "top" ? - data . elemHeight : data . my [ 1 ] === "bottom" ? data . elemHeight : 0 , atOffset = data . at [ 1 ] === "top" ? data . targetHeight : - data . targetHeight , offset = - 2 * data . offset [ 1 ] ; position . top += position . top < 0 ? myOffset + data . targetHeight + offset : over > 0 ? myOffset + atOffset + offset : 0 ; } } } ; if ( ! $ . offset . setOffset ) { $ . offset . setOffset = function ( elem , options ) { if ( /static/ . test ( $ . curCSS ( elem , "position" ) ) ) { elem . style . position = "relative" ; }
var curElem = $ ( elem ) , curOffset = curElem . offset ( ) , curTop = parseInt ( $ . curCSS ( elem , "top" , true ) , 10 ) || 0 , curLeft = parseInt ( $ . curCSS ( elem , "left" , true ) , 10 ) || 0 , props = { top : ( options . top - curOffset . top ) + curTop , left : ( options . left - curOffset . left ) + curLeft } ; if ( 'using' in options ) { options . using . call ( elem , props ) ; } else { curElem . css ( props ) ; } } ; $ . fn . offset = function ( options ) { var elem = this [ 0 ] ; if ( ! elem || ! elem . ownerDocument ) { return null ; }
if ( options ) { return this . each ( function ( ) { $ . offset . setOffset ( this , options ) ; } ) ; }
return _offset . call ( this ) ; } ; } } ( jQuery ) ) ; ( function ( $ ) { $ . widget ( "ui.progressbar" , { options : { value : 0 } , _create : function ( ) { this . element . addClass ( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) . attr ( { role : "progressbar" , "aria-valuemin" : this . _valueMin ( ) , "aria-valuemax" : this . _valueMax ( ) , "aria-valuenow" : this . _value ( ) } ) ; this . valueDiv = $ ( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) . appendTo ( this . element ) ; this . _refreshValue ( ) ; } , destroy : function ( ) { this . element . removeClass ( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) . removeAttr ( "role" ) . removeAttr ( "aria-valuemin" ) . removeAttr ( "aria-valuemax" ) . removeAttr ( "aria-valuenow" ) ; this . valueDiv . remove ( ) ; $ . Widget . prototype . destroy . apply ( this , arguments ) ; } , value : function ( newValue ) { if ( newValue === undefined ) { return this . _value ( ) ; }
this . _setOption ( "value" , newValue ) ; return this ; } , _setOption : function ( key , value ) { switch ( key ) { case "value" : this . options . value = value ; this . _refreshValue ( ) ; this . _trigger ( "change" ) ; break ; }
$ . Widget . prototype . _setOption . apply ( this , arguments ) ; } , _value : function ( ) { var val = this . options . value ; if ( typeof val !== "number" ) { val = 0 ; }
if ( val < this . _valueMin ( ) ) { val = this . _valueMin ( ) ; }
if ( val > this . _valueMax ( ) ) { val = this . _valueMax ( ) ; }
return val ; } , _valueMin : function ( ) { return 0 ; } , _valueMax : function ( ) { return 100 ; } , _refreshValue : function ( ) { var value = this . value ( ) ; this . valueDiv
2010-06-08 16:15:48 +00:00
[ value === this . _valueMax ( ) ? "addClass" : "removeClass" ] ( "ui-corner-right" ) . width ( value + "%" ) ; this . element . attr ( "aria-valuenow" , value ) ; } } ) ; $ . extend ( $ . ui . progressbar , { version : "1.8.2" } ) ; } ) ( jQuery ) ; ( function ( $ ) { var numPages = 5 ; $ . widget ( "ui.slider" , $ . 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 self = this , o = this . options ; this . _keySliding = false ; this . _mouseSliding = 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" ) ; if ( o . disabled ) { this . element . addClass ( "ui-slider-disabled ui-disabled" ) ; }
2010-05-19 15:43:12 +00:00
this . range = $ ( [ ] ) ; if ( o . range ) { if ( o . range === true ) { this . range = $ ( "<div></div>" ) ; if ( ! o . values ) { o . values = [ this . _valueMin ( ) , this . _valueMin ( ) ] ; }
if ( o . values . length && o . values . length !== 2 ) { o . values = [ o . values [ 0 ] , o . values [ 0 ] ] ; } } else { this . range = $ ( "<div></div>" ) ; }
this . range . appendTo ( this . element ) . addClass ( "ui-slider-range" ) ; if ( o . range === "min" || o . range === "max" ) { this . range . addClass ( "ui-slider-range-" + o . range ) ; }
this . range . addClass ( "ui-widget-header" ) ; }
if ( $ ( ".ui-slider-handle" , this . element ) . length === 0 ) { $ ( "<a href='#'></a>" ) . appendTo ( this . element ) . addClass ( "ui-slider-handle" ) ; }
if ( o . values && o . values . length ) { while ( $ ( ".ui-slider-handle" , this . element ) . length < o . values . length ) { $ ( "<a href='#'></a>" ) . appendTo ( this . element ) . addClass ( "ui-slider-handle" ) ; } }
this . handles = $ ( ".ui-slider-handle" , this . element ) . addClass ( "ui-state-default" + " ui-corner-all" ) ; this . handle = this . handles . eq ( 0 ) ; this . handles . add ( this . range ) . filter ( "a" ) . click ( function ( event ) { event . preventDefault ( ) ; } ) . hover ( function ( ) { if ( ! o . disabled ) { $ ( this ) . addClass ( "ui-state-hover" ) ; } } , function ( ) { $ ( this ) . removeClass ( "ui-state-hover" ) ; } ) . focus ( function ( ) { if ( ! o . disabled ) { $ ( ".ui-slider .ui-state-focus" ) . removeClass ( "ui-state-focus" ) ; $ ( this ) . addClass ( "ui-state-focus" ) ; } else { $ ( this ) . blur ( ) ; } } ) . blur ( function ( ) { $ ( this ) . removeClass ( "ui-state-focus" ) ; } ) ; this . handles . each ( function ( i ) { $ ( this ) . data ( "index.ui-slider-handle" , i ) ; } ) ; this . handles . keydown ( function ( event ) { var ret = true , index = $ ( this ) . data ( "index.ui-slider-handle" ) , allowed , curVal , newVal , step ; if ( self . options . disabled ) { return ; }
switch ( event . keyCode ) { case $ . ui . keyCode . HOME : case $ . ui . keyCode . END : case $ . ui . keyCode . PAGE _UP : case $ . ui . keyCode . PAGE _DOWN : case $ . ui . keyCode . UP : case $ . ui . keyCode . RIGHT : case $ . ui . keyCode . DOWN : case $ . ui . keyCode . LEFT : ret = false ; if ( ! self . _keySliding ) { self . _keySliding = true ; $ ( this ) . addClass ( "ui-state-active" ) ; allowed = self . _start ( event , index ) ; if ( allowed === false ) { return ; } }
break ; }
step = self . options . step ; if ( self . options . values && self . options . values . length ) { curVal = newVal = self . values ( index ) ; } else { curVal = newVal = self . value ( ) ; }
2010-06-08 16:15:48 +00:00
switch ( event . keyCode ) { case $ . ui . keyCode . HOME : newVal = self . _valueMin ( ) ; break ; case $ . ui . keyCode . END : newVal = self . _valueMax ( ) ; break ; case $ . ui . keyCode . PAGE _UP : newVal = self . _trimAlignValue ( curVal + ( ( self . _valueMax ( ) - self . _valueMin ( ) ) / numPages ) ) ; break ; case $ . ui . keyCode . PAGE _DOWN : newVal = self . _trimAlignValue ( curVal - ( ( self . _valueMax ( ) - self . _valueMin ( ) ) / numPages ) ) ; break ; case $ . ui . keyCode . UP : case $ . ui . keyCode . RIGHT : if ( curVal === self . _valueMax ( ) ) { return ; }
newVal = self . _trimAlignValue ( curVal + step ) ; break ; case $ . ui . keyCode . DOWN : case $ . ui . keyCode . LEFT : if ( curVal === self . _valueMin ( ) ) { return ; }
newVal = self . _trimAlignValue ( curVal - step ) ; break ; }
2010-05-19 15:43:12 +00:00
self . _slide ( event , index , newVal ) ; return ret ; } ) . keyup ( function ( event ) { var index = $ ( this ) . data ( "index.ui-slider-handle" ) ; if ( self . _keySliding ) { self . _keySliding = false ; self . _stop ( event , index ) ; self . _change ( event , index ) ; $ ( 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 ( event ) { var o = this . options , position , normValue , distance , closestHandle , self , index , allowed , offset , mouseOverHandle ; if ( o . disabled ) { return false ; }
this . elementSize = { width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) } ; this . elementOffset = this . element . offset ( ) ; position = { x : event . pageX , y : event . pageY } ; normValue = this . _normValueFromMouse ( position ) ; distance = this . _valueMax ( ) - this . _valueMin ( ) + 1 ; self = this ; this . handles . each ( function ( i ) { var thisDistance = Math . abs ( normValue - self . values ( i ) ) ; if ( distance > thisDistance ) { distance = thisDistance ; closestHandle = $ ( this ) ; index = i ; } } ) ; if ( o . range === true && this . values ( 1 ) === o . min ) { index += 1 ; closestHandle = $ ( this . handles [ index ] ) ; }
allowed = this . _start ( event , index ) ; if ( allowed === false ) { return false ; }
this . _mouseSliding = true ; self . _handleIndex = index ; closestHandle . addClass ( "ui-state-active" ) . focus ( ) ; offset = closestHandle . offset ( ) ; mouseOverHandle = ! $ ( event . target ) . parents ( ) . andSelf ( ) . is ( ".ui-slider-handle" ) ; this . _clickOffset = mouseOverHandle ? { left : 0 , top : 0 } : { left : event . pageX - offset . left - ( closestHandle . width ( ) / 2 ) , top : event . pageY - offset . top -
( closestHandle . height ( ) / 2 ) -
( parseInt ( closestHandle . css ( "borderTopWidth" ) , 10 ) || 0 ) -
( parseInt ( closestHandle . css ( "borderBottomWidth" ) , 10 ) || 0 ) +
( parseInt ( closestHandle . css ( "marginTop" ) , 10 ) || 0 ) } ; normValue = this . _normValueFromMouse ( position ) ; this . _slide ( event , index , normValue ) ; this . _animateOff = true ; return true ; } , _mouseStart : function ( event ) { return true ; } , _mouseDrag : function ( event ) { var position = { x : event . pageX , y : event . pageY } , normValue = this . _normValueFromMouse ( position ) ; this . _slide ( event , this . _handleIndex , normValue ) ; return false ; } , _mouseStop : function ( event ) { this . handles . removeClass ( "ui-state-active" ) ; this . _mouseSliding = false ; this . _stop ( event , this . _handleIndex ) ; this . _change ( event , this . _handleIndex ) ; this . _handleIndex = null ; this . _clickOffset = null ; this . _animateOff = false ; return false ; } , _detectOrientation : function ( ) { this . orientation = ( this . options . orientation === "vertical" ) ? "vertical" : "horizontal" ; } , _normValueFromMouse : function ( position ) { var pixelTotal , pixelMouse , percentMouse , valueTotal , valueMouse ; if ( this . orientation === "horizontal" ) { pixelTotal = this . elementSize . width ; pixelMouse = position . x - this . elementOffset . left - ( this . _clickOffset ? this . _clickOffset . left : 0 ) ; } else { pixelTotal = this . elementSize . height ; pixelMouse = position . y - this . elementOffset . top - ( this . _clickOffset ? this . _clickOffset . top : 0 ) ; }
percentMouse = ( pixelMouse / pixelTotal ) ; if ( percentMouse > 1 ) { percentMouse = 1 ; }
if ( percentMouse < 0 ) { percentMouse = 0 ; }
if ( this . orientation === "vertical" ) { percentMouse = 1 - percentMouse ; }
valueTotal = this . _valueMax ( ) - this . _valueMin ( ) ; valueMouse = this . _valueMin ( ) + percentMouse * valueTotal ; return this . _trimAlignValue ( valueMouse ) ; } , _start : function ( event , index ) { var uiHash = { handle : this . handles [ index ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { uiHash . value = this . values ( index ) ; uiHash . values = this . values ( ) ; }
return this . _trigger ( "start" , event , uiHash ) ; } , _slide : function ( event , index , newVal ) { var otherVal , newValues , allowed ; if ( this . options . values && this . options . values . length ) { otherVal = this . values ( index ? 0 : 1 ) ; if ( ( this . options . values . length === 2 && this . options . range === true ) && ( ( index === 0 && newVal > otherVal ) || ( index === 1 && newVal < otherVal ) ) ) { newVal = otherVal ; }
if ( newVal !== this . values ( index ) ) { newValues = this . values ( ) ; newValues [ index ] = newVal ; allowed = this . _trigger ( "slide" , event , { handle : this . handles [ index ] , value : newVal , values : newValues } ) ; otherVal = this . values ( index ? 0 : 1 ) ; if ( allowed !== false ) { this . values ( index , newVal , true ) ; } } } else { if ( newVal !== this . value ( ) ) { allowed = this . _trigger ( "slide" , event , { handle : this . handles [ index ] , value : newVal } ) ; if ( allowed !== false ) { this . value ( newVal ) ; } } } } , _stop : function ( event , index ) { var uiHash = { handle : this . handles [ index ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { uiHash . value = this . values ( index ) ; uiHash . values = this . values ( ) ; }
this . _trigger ( "stop" , event , uiHash ) ; } , _change : function ( event , index ) { if ( ! this . _keySliding && ! this . _mouseSliding ) { var uiHash = { handle : this . handles [ index ] , value : this . value ( ) } ; if ( this . options . values && this . options . values . length ) { uiHash . value = this . values ( index ) ; uiHash . values = this . values ( ) ; }
this . _trigger ( "change" , event , uiHash ) ; } } , value : function ( newValue ) { if ( arguments . length ) { this . options . value = this . _trimAlignValue ( newValue ) ; this . _refreshValue ( ) ; this . _change ( null , 0 ) ; }
return this . _value ( ) ; } , values : function ( index , newValue ) { var vals , newValues , i ; if ( arguments . length > 1 ) { this . options . values [ index ] = this . _trimAlignValue ( newValue ) ; this . _refreshValue ( ) ; this . _change ( null , index ) ; }
if ( arguments . length ) { if ( $ . isArray ( arguments [ 0 ] ) ) { vals = this . options . values ; newValues = arguments [ 0 ] ; for ( i = 0 ; i < vals . length ; i += 1 ) { vals [ i ] = this . _trimAlignValue ( newValues [ i ] ) ; this . _change ( null , i ) ; }
this . _refreshValue ( ) ; } else { if ( this . options . values && this . options . values . length ) { return this . _values ( index ) ; } else { return this . value ( ) ; } } } else { return this . _values ( ) ; } } , _setOption : function ( key , value ) { var i , valsLength = 0 ; if ( $ . isArray ( this . options . values ) ) { valsLength = this . options . values . length ; }
$ . Widget . prototype . _setOption . apply ( this , arguments ) ; switch ( key ) { case "disabled" : if ( value ) { this . handles . filter ( ".ui-state-focus" ) . blur ( ) ; this . handles . removeClass ( "ui-state-hover" ) ; this . handles . attr ( "disabled" , "disabled" ) ; this . element . addClass ( "ui-disabled" ) ; } else { this . handles . removeAttr ( "disabled" ) ; 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 ( i = 0 ; i < valsLength ; i += 1 ) { this . _change ( null , i ) ; }
this . _animateOff = false ; break ; } } , _value : function ( ) { var val = this . options . value ; val = this . _trimAlignValue ( val ) ; return val ; } , _values : function ( index ) { var val , vals , i ; if ( arguments . length ) { val = this . options . values [ index ] ; val = this . _trimAlignValue ( val ) ; return val ; } else { vals = this . options . values . slice ( ) ; for ( i = 0 ; i < vals . length ; i += 1 ) { vals [ i ] = this . _trimAlignValue ( vals [ i ] ) ; }
return vals ; } } , _trimAlignValue : function ( val ) { if ( val < this . _valueMin ( ) ) { return this . _valueMin ( ) ; }
if ( val > this . _valueMax ( ) ) { return this . _valueMax ( ) ; }
2010-06-08 16:15:48 +00:00
var step = ( this . options . step > 0 ) ? this . options . step : 1 , valModStep = val % step , alignValue = val - valModStep ; if ( Math . abs ( valModStep ) * 2 >= step ) { alignValue += ( valModStep > 0 ) ? step : ( - step ) ; }
2010-05-19 15:43:12 +00:00
return parseFloat ( alignValue . toFixed ( 5 ) ) ; } , _valueMin : function ( ) { return this . options . min ; } , _valueMax : function ( ) { return this . options . max ; } , _refreshValue : function ( ) { var oRange = this . options . range , o = this . options , self = this , animate = ( ! this . _animateOff ) ? o . animate : false , valPercent , _set = { } , lastValPercent , value , valueMin , valueMax ; if ( this . options . values && this . options . values . length ) { this . handles . each ( function ( i , j ) { valPercent = ( self . values ( i ) - self . _valueMin ( ) ) / ( self . _valueMax ( ) - self . _valueMin ( ) ) * 100 ; _set [ self . orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%" ; $ ( this ) . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( _set , o . animate ) ; if ( self . options . range === true ) { if ( self . orientation === "horizontal" ) { if ( i === 0 ) { self . range . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( { left : valPercent + "%" } , o . animate ) ; }
if ( i === 1 ) { self . range [ animate ? "animate" : "css" ] ( { width : ( valPercent - lastValPercent ) + "%" } , { queue : false , duration : o . animate } ) ; } } else { if ( i === 0 ) { self . range . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( { bottom : ( valPercent ) + "%" } , o . animate ) ; }
if ( i === 1 ) { self . range [ animate ? "animate" : "css" ] ( { height : ( valPercent - lastValPercent ) + "%" } , { queue : false , duration : o . animate } ) ; } } }
lastValPercent = valPercent ; } ) ; } else { value = this . value ( ) ; valueMin = this . _valueMin ( ) ; valueMax = this . _valueMax ( ) ; valPercent = ( valueMax !== valueMin ) ? ( value - valueMin ) / ( valueMax - valueMin ) * 100 : 0 ; _set [ self . orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%" ; this . handle . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( _set , o . animate ) ; if ( oRange === "min" && this . orientation === "horizontal" ) { this . range . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( { width : valPercent + "%" } , o . animate ) ; }
if ( oRange === "max" && this . orientation === "horizontal" ) { this . range [ animate ? "animate" : "css" ] ( { width : ( 100 - valPercent ) + "%" } , { queue : false , duration : o . animate } ) ; }
if ( oRange === "min" && this . orientation === "vertical" ) { this . range . stop ( 1 , 1 ) [ animate ? "animate" : "css" ] ( { height : valPercent + "%" } , o . animate ) ; }
2010-06-08 16:15:48 +00:00
if ( oRange === "max" && this . orientation === "vertical" ) { this . range [ animate ? "animate" : "css" ] ( { height : ( 100 - valPercent ) + "%" } , { queue : false , duration : o . animate } ) ; } } } } ) ; $ . extend ( $ . ui . slider , { version : "1.8.2" } ) ; } ( jQuery ) ) ; ( function ( $ ) { var tabId = 0 , listId = 0 ; function getNextTabId ( ) { return ++ tabId ; }
function getNextListId ( ) { return ++ listId ; }
$ . widget ( "ui.tabs" , { options : { add : null , ajaxOptions : null , cache : false , cookie : null , collapsible : false , disable : null , disabled : [ ] , enable : null , event : 'click' , fx : null , idPrefix : 'ui-tabs-' , load : null , panelTemplate : '<div></div>' , remove : null , select : null , show : null , spinner : '<em>Loading…</em>' , tabTemplate : '<li><a href="#{href}"><span>#{label}</span></a></li>' } , _create : function ( ) { this . _tabify ( true ) ; } , _setOption : function ( key , value ) { if ( key == 'selected' ) { if ( this . options . collapsible && value == this . options . selected ) { return ; }
2010-05-19 15:43:12 +00:00
this . select ( value ) ; }
2010-06-08 16:15:48 +00:00
else { this . options [ key ] = value ; this . _tabify ( ) ; } } , _tabId : function ( a ) { return a . title && a . title . replace ( /\s/g , '_' ) . replace ( /[^A-Za-z0-9\-_:\.]/g , '' ) || this . options . idPrefix + getNextTabId ( ) ; } , _sanitizeSelector : function ( hash ) { return hash . replace ( /:/g , '\\:' ) ; } , _cookie : function ( ) { var cookie = this . cookie || ( this . cookie = this . options . cookie . name || 'ui-tabs-' + getNextListId ( ) ) ; return $ . cookie . apply ( null , [ cookie ] . concat ( $ . makeArray ( arguments ) ) ) ; } , _ui : function ( tab , panel ) { return { tab : tab , panel : panel , index : this . anchors . index ( tab ) } ; } , _cleanup : function ( ) { this . lis . filter ( '.ui-state-processing' ) . removeClass ( 'ui-state-processing' ) . find ( 'span:data(label.tabs)' ) . each ( function ( ) { var el = $ ( this ) ; el . html ( el . data ( 'label.tabs' ) ) . removeData ( 'label.tabs' ) ; } ) ; } , _tabify : function ( init ) { this . list = this . element . find ( 'ol,ul' ) . eq ( 0 ) ; this . lis = $ ( 'li:has(a[href])' , this . list ) ; this . anchors = this . lis . map ( function ( ) { return $ ( 'a' , this ) [ 0 ] ; } ) ; this . panels = $ ( [ ] ) ; var self = this , o = this . options ; var fragmentId = /^#.+/ ; this . anchors . each ( function ( i , a ) { var href = $ ( a ) . attr ( 'href' ) ; var hrefBase = href . split ( '#' ) [ 0 ] , baseEl ; if ( hrefBase && ( hrefBase === location . toString ( ) . split ( '#' ) [ 0 ] || ( baseEl = $ ( 'base' ) [ 0 ] ) && hrefBase === baseEl . href ) ) { href = a . hash ; a . href = href ; }
2010-05-19 15:43:12 +00:00
if ( fragmentId . test ( href ) ) { self . panels = self . panels . add ( self . _sanitizeSelector ( href ) ) ; }
else if ( href != '#' ) { $ . data ( a , 'href.tabs' , href ) ; $ . data ( a , 'load.tabs' , href . replace ( /#.*$/ , '' ) ) ; var id = self . _tabId ( a ) ; a . href = '#' + id ; var $panel = $ ( '#' + id ) ; if ( ! $panel . length ) { $panel = $ ( o . panelTemplate ) . attr ( 'id' , id ) . addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom' ) . insertAfter ( self . panels [ i - 1 ] || self . list ) ; $panel . data ( 'destroy.tabs' , true ) ; }
self . panels = self . panels . add ( $panel ) ; }
else { o . disabled . push ( i ) ; } } ) ; if ( init ) { this . element . addClass ( 'ui-tabs ui-widget ui-widget-content ui-corner-all' ) ; this . list . addClass ( 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all' ) ; this . lis . addClass ( 'ui-state-default ui-corner-top' ) ; this . panels . addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom' ) ; if ( o . selected === undefined ) { if ( location . hash ) { this . anchors . each ( function ( i , a ) { if ( a . hash == location . hash ) { o . selected = i ; return false ; } } ) ; }
if ( typeof o . selected != 'number' && o . cookie ) { o . selected = parseInt ( self . _cookie ( ) , 10 ) ; }
if ( typeof o . selected != 'number' && this . lis . filter ( '.ui-tabs-selected' ) . length ) { o . selected = this . lis . index ( this . lis . filter ( '.ui-tabs-selected' ) ) ; }
o . selected = o . selected || ( this . lis . length ? 0 : - 1 ) ; }
else if ( o . selected === null ) { o . selected = - 1 ; }
o . selected = ( ( o . selected >= 0 && this . anchors [ o . selected ] ) || o . selected < 0 ) ? o . selected : 0 ; o . disabled = $ . unique ( o . disabled . concat ( $ . map ( this . lis . filter ( '.ui-state-disabled' ) , function ( n , i ) { return self . lis . index ( n ) ; } ) ) ) . sort ( ) ; if ( $ . inArray ( o . selected , o . disabled ) != - 1 ) { o . disabled . splice ( $ . inArray ( o . selected , o . disabled ) , 1 ) ; }
this . panels . addClass ( 'ui-tabs-hide' ) ; this . lis . removeClass ( 'ui-tabs-selected ui-state-active' ) ; if ( o . selected >= 0 && this . anchors . length ) { this . panels . eq ( o . selected ) . removeClass ( 'ui-tabs-hide' ) ; this . lis . eq ( o . selected ) . addClass ( 'ui-tabs-selected ui-state-active' ) ; self . element . queue ( "tabs" , function ( ) { self . _trigger ( 'show' , null , self . _ui ( self . anchors [ o . selected ] , self . panels [ o . selected ] ) ) ; } ) ; this . load ( o . selected ) ; }
$ ( window ) . bind ( 'unload' , function ( ) { self . lis . add ( self . anchors ) . unbind ( '.tabs' ) ; self . lis = self . anchors = self . panels = null ; } ) ; }
else { o . selected = this . lis . index ( this . lis . filter ( '.ui-tabs-selected' ) ) ; }
this . element [ o . collapsible ? 'addClass' : 'removeClass' ] ( 'ui-tabs-collapsible' ) ; if ( o . cookie ) { this . _cookie ( o . selected , o . cookie ) ; }
for ( var i = 0 , li ; ( li = this . lis [ i ] ) ; i ++ ) { $ ( li ) [ $ . inArray ( i , o . disabled ) != - 1 && ! $ ( li ) . hasClass ( 'ui-tabs-selected' ) ? 'addClass' : 'removeClass' ] ( 'ui-state-disabled' ) ; }
if ( o . cache === false ) { this . anchors . removeData ( 'cache.tabs' ) ; }
this . lis . add ( this . anchors ) . unbind ( '.tabs' ) ; if ( o . event != 'mouseover' ) { var addState = function ( state , el ) { if ( el . is ( ':not(.ui-state-disabled)' ) ) { el . addClass ( 'ui-state-' + state ) ; } } ; var removeState = function ( state , el ) { el . removeClass ( 'ui-state-' + state ) ; } ; this . lis . bind ( 'mouseover.tabs' , function ( ) { addState ( 'hover' , $ ( this ) ) ; } ) ; this . lis . bind ( 'mouseout.tabs' , function ( ) { removeState ( 'hover' , $ ( this ) ) ; } ) ; this . anchors . bind ( 'focus.tabs' , function ( ) { addState ( 'focus' , $ ( this ) . closest ( 'li' ) ) ; } ) ; this . anchors . bind ( 'blur.tabs' , function ( ) { removeState ( 'focus' , $ ( this ) . closest ( 'li' ) ) ; } ) ; }
var hideFx , showFx ; if ( o . fx ) { if ( $ . isArray ( o . fx ) ) { hideFx = o . fx [ 0 ] ; showFx = o . fx [ 1 ] ; }
else { hideFx = showFx = o . fx ; } }
function resetStyle ( $el , fx ) { $el . css ( { display : '' } ) ; if ( ! $ . support . opacity && fx . opacity ) { $el [ 0 ] . style . removeAttribute ( 'filter' ) ; } }
var showTab = showFx ? function ( clicked , $show ) { $ ( clicked ) . closest ( 'li' ) . addClass ( 'ui-tabs-selected ui-state-active' ) ; $show . hide ( ) . removeClass ( 'ui-tabs-hide' ) . animate ( showFx , showFx . duration || 'normal' , function ( ) { resetStyle ( $show , showFx ) ; self . _trigger ( 'show' , null , self . _ui ( clicked , $show [ 0 ] ) ) ; } ) ; } : function ( clicked , $show ) { $ ( clicked ) . closest ( 'li' ) . addClass ( 'ui-tabs-selected ui-state-active' ) ; $show . removeClass ( 'ui-tabs-hide' ) ; self . _trigger ( 'show' , null , self . _ui ( clicked , $show [ 0 ] ) ) ; } ; var hideTab = hideFx ? function ( clicked , $hide ) { $hide . animate ( hideFx , hideFx . duration || 'normal' , function ( ) { self . lis . removeClass ( 'ui-tabs-selected ui-state-active' ) ; $hide . addClass ( 'ui-tabs-hide' ) ; resetStyle ( $hide , hideFx ) ; self . element . dequeue ( "tabs" ) ; } ) ; } : function ( clicked , $hide , $show ) { self . lis . removeClass ( 'ui-tabs-selected ui-state-active' ) ; $hide . addClass ( 'ui-tabs-hide' ) ; self . element . dequeue ( "tabs" ) ; } ; this . anchors . bind ( o . event + '.tabs' , function ( ) { var el = this , $li = $ ( this ) . closest ( 'li' ) , $hide = self . panels . filter ( ':not(.ui-tabs-hide)' ) , $show = $ ( self . _sanitizeSelector ( this . hash ) ) ; if ( ( $li . hasClass ( 'ui-tabs-selected' ) && ! o . collapsible ) || $li . hasClass ( 'ui-state-disabled' ) || $li . hasClass ( 'ui-state-processing' ) || self . _trigger ( 'select' , null , self . _ui ( this , $show [ 0 ] ) ) === false ) { this . blur ( ) ; return false ; }
o . selected = self . anchors . index ( this ) ; self . abort ( ) ; if ( o . collapsible ) { if ( $li . hasClass ( 'ui-tabs-selected' ) ) { o . selected = - 1 ; if ( o . cookie ) { self . _cookie ( o . selected , o . cookie ) ; }
self . element . queue ( "tabs" , function ( ) { hideTab ( el , $hide ) ; } ) . dequeue ( "tabs" ) ; this . blur ( ) ; return false ; }
else if ( ! $hide . length ) { if ( o . cookie ) { self . _cookie ( o . selected , o . cookie ) ; }
self . element . queue ( "tabs" , function ( ) { showTab ( el , $show ) ; } ) ; self . load ( self . anchors . index ( this ) ) ; this . blur ( ) ; return false ; } }
if ( o . cookie ) { self . _cookie ( o . selected , o . cookie ) ; }
if ( $show . length ) { if ( $hide . length ) { self . element . queue ( "tabs" , function ( ) { hideTab ( el , $hide ) ; } ) ; }
self . element . queue ( "tabs" , function ( ) { showTab ( el , $show ) ; } ) ; self . load ( self . anchors . index ( this ) ) ; }
else { throw 'jQuery UI Tabs: Mismatching fragment identifier.' ; }
if ( $ . browser . msie ) { this . blur ( ) ; } } ) ; this . anchors . bind ( 'click.tabs' , function ( ) { return false ; } ) ; } , destroy : function ( ) { var o = this . options ; this . abort ( ) ; this . element . unbind ( '.tabs' ) . removeClass ( 'ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible' ) . removeData ( 'tabs' ) ; this . list . removeClass ( 'ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all' ) ; this . anchors . each ( function ( ) { var href = $ . data ( this , 'href.tabs' ) ; if ( href ) { this . href = href ; }
var $this = $ ( this ) . unbind ( '.tabs' ) ; $ . each ( [ 'href' , 'load' , 'cache' ] , function ( i , prefix ) { $this . removeData ( prefix + '.tabs' ) ; } ) ; } ) ; this . lis . unbind ( '.tabs' ) . add ( this . panels ) . each ( function ( ) { if ( $ . data ( this , 'destroy.tabs' ) ) { $ ( this ) . remove ( ) ; }
else { $ ( this ) . removeClass ( [ 'ui-state-default' , 'ui-corner-top' , 'ui-tabs-selected' , 'ui-state-active' , 'ui-state-hover' , 'ui-state-focus' , 'ui-state-disabled' , 'ui-tabs-panel' , 'ui-widget-content' , 'ui-corner-bottom' , 'ui-tabs-hide' ] . join ( ' ' ) ) ; } } ) ; if ( o . cookie ) { this . _cookie ( null , o . cookie ) ; }
return this ; } , add : function ( url , label , index ) { if ( index === undefined ) { index = this . anchors . length ; }
var self = this , o = this . options , $li = $ ( o . tabTemplate . replace ( /#\{href\}/g , url ) . replace ( /#\{label\}/g , label ) ) , id = ! url . indexOf ( '#' ) ? url . replace ( '#' , '' ) : this . _tabId ( $ ( 'a' , $li ) [ 0 ] ) ; $li . addClass ( 'ui-state-default ui-corner-top' ) . data ( 'destroy.tabs' , true ) ; var $panel = $ ( '#' + id ) ; if ( ! $panel . length ) { $panel = $ ( o . panelTemplate ) . attr ( 'id' , id ) . data ( 'destroy.tabs' , true ) ; }
$panel . addClass ( 'ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide' ) ; if ( index >= this . lis . length ) { $li . appendTo ( this . list ) ; $panel . appendTo ( this . list [ 0 ] . parentNode ) ; }
else { $li . insertBefore ( this . lis [ index ] ) ; $panel . insertBefore ( this . panels [ index ] ) ; }
o . disabled = $ . map ( o . disabled , function ( n , i ) { return n >= index ? ++ n : n ; } ) ; this . _tabify ( ) ; if ( this . anchors . length == 1 ) { o . selected = 0 ; $li . addClass ( 'ui-tabs-selected ui-state-active' ) ; $panel . removeClass ( 'ui-tabs-hide' ) ; this . element . queue ( "tabs" , function ( ) { self . _trigger ( 'show' , null , self . _ui ( self . anchors [ 0 ] , self . panels [ 0 ] ) ) ; } ) ; this . load ( 0 ) ; }
this . _trigger ( 'add' , null , this . _ui ( this . anchors [ index ] , this . panels [ index ] ) ) ; return this ; } , remove : function ( index ) { var o = this . options , $li = this . lis . eq ( index ) . remove ( ) , $panel = this . panels . eq ( index ) . remove ( ) ; if ( $li . hasClass ( 'ui-tabs-selected' ) && this . anchors . length > 1 ) { this . select ( index + ( index + 1 < this . anchors . length ? 1 : - 1 ) ) ; }
o . disabled = $ . map ( $ . grep ( o . disabled , function ( n , i ) { return n != index ; } ) , function ( n , i ) { return n >= index ? -- n : n ; } ) ; this . _tabify ( ) ; this . _trigger ( 'remove' , null , this . _ui ( $li . find ( 'a' ) [ 0 ] , $panel [ 0 ] ) ) ; return this ; } , enable : function ( index ) { var o = this . options ; if ( $ . inArray ( index , o . disabled ) == - 1 ) { return ; }
this . lis . eq ( index ) . removeClass ( 'ui-state-disabled' ) ; o . disabled = $ . grep ( o . disabled , function ( n , i ) { return n != index ; } ) ; this . _trigger ( 'enable' , null , this . _ui ( this . anchors [ index ] , this . panels [ index ] ) ) ; return this ; } , disable : function ( index ) { var self = this , o = this . options ; if ( index != o . selected ) { this . lis . eq ( index ) . addClass ( 'ui-state-disabled' ) ; o . disabled . push ( index ) ; o . disabled . sort ( ) ; this . _trigger ( 'disable' , null , this . _ui ( this . anchors [ index ] , this . panels [ index ] ) ) ; }
return this ; } , select : function ( index ) { if ( typeof index == 'string' ) { index = this . anchors . index ( this . anchors . filter ( '[href$=' + index + ']' ) ) ; }
else if ( index === null ) { index = - 1 ; }
if ( index == - 1 && this . options . collapsible ) { index = this . options . selected ; }
this . anchors . eq ( index ) . trigger ( this . options . event + '.tabs' ) ; return this ; } , load : function ( index ) { var self = this , o = this . options , a = this . anchors . eq ( index ) [ 0 ] , url = $ . data ( a , 'load.tabs' ) ; this . abort ( ) ; if ( ! url || this . element . queue ( "tabs" ) . length !== 0 && $ . data ( a , 'cache.tabs' ) ) { this . element . dequeue ( "tabs" ) ; return ; }
this . lis . eq ( index ) . addClass ( 'ui-state-processing' ) ; if ( o . spinner ) { var span = $ ( 'span' , a ) ; span . data ( 'label.tabs' , span . html ( ) ) . html ( o . spinner ) ; }
this . xhr = $ . ajax ( $ . extend ( { } , o . ajaxOptions , { url : url , success : function ( r , s ) { $ ( self . _sanitizeSelector ( a . hash ) ) . html ( r ) ; self . _cleanup ( ) ; if ( o . cache ) { $ . data ( a , 'cache.tabs' , true ) ; }
self . _trigger ( 'load' , null , self . _ui ( self . anchors [ index ] , self . panels [ index ] ) ) ; try { o . ajaxOptions . success ( r , s ) ; }
catch ( e ) { } } , error : function ( xhr , s , e ) { self . _cleanup ( ) ; self . _trigger ( 'load' , null , self . _ui ( self . anchors [ index ] , self . panels [ index ] ) ) ; try { o . ajaxOptions . error ( xhr , s , index , a ) ; }
catch ( e ) { } } } ) ) ; self . element . dequeue ( "tabs" ) ; return this ; } , abort : function ( ) { this . element . queue ( [ ] ) ; this . panels . stop ( false , true ) ; this . element . queue ( "tabs" , this . element . queue ( "tabs" ) . splice ( - 2 , 2 ) ) ; if ( this . xhr ) { this . xhr . abort ( ) ; delete this . xhr ; }
2010-06-08 16:15:48 +00:00
this . _cleanup ( ) ; return this ; } , url : function ( index , url ) { this . anchors . eq ( index ) . removeData ( 'cache.tabs' ) . data ( 'load.tabs' , url ) ; return this ; } , length : function ( ) { return this . anchors . length ; } } ) ; $ . extend ( $ . ui . tabs , { version : '1.8.2' } ) ; $ . extend ( $ . ui . tabs . prototype , { rotation : null , rotate : function ( ms , continuing ) { var self = this , o = this . options ; var rotate = self . _rotate || ( self . _rotate = function ( e ) { clearTimeout ( self . rotation ) ; self . rotation = setTimeout ( function ( ) { var t = o . selected ; self . select ( ++ t < self . anchors . length ? t : 0 ) ; } , ms ) ; if ( e ) { e . stopPropagation ( ) ; } } ) ; var stop = self . _unrotate || ( self . _unrotate = ! continuing ? function ( e ) { if ( e . clientX ) { self . rotate ( null ) ; } } : function ( e ) { t = o . selected ; rotate ( ) ; } ) ; if ( ms ) { this . element . bind ( 'tabsshow' , rotate ) ; this . anchors . bind ( o . event + '.tabs' , stop ) ; rotate ( ) ; }
2010-05-19 15:43:12 +00:00
else { clearTimeout ( self . rotation ) ; this . element . unbind ( 'tabsshow' , rotate ) ; this . anchors . unbind ( o . event + '.tabs' , stop ) ; delete this . _rotate ; delete this . _unrotate ; }
2010-06-08 16:15:48 +00:00
return this ; } } ) ; } ) ( jQuery ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'af' ] = { closeText : 'Selekteer' , prevText : 'Vorige' , nextText : 'Volgende' , currentText : 'Vandag' , monthNames : [ 'Januarie' , 'Februarie' , 'Maart' , 'April' , 'Mei' , 'Junie' , 'Julie' , 'Augustus' , 'September' , 'Oktober' , 'November' , 'Desember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mrt' , 'Apr' , 'Mei' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Des' ] , dayNames : [ 'Sondag' , 'Maandag' , 'Dinsdag' , 'Woensdag' , 'Donderdag' , 'Vrydag' , 'Saterdag' ] , dayNamesShort : [ 'Son' , 'Maa' , 'Din' , 'Woe' , 'Don' , 'Vry' , 'Sat' ] , dayNamesMin : [ 'So' , 'Ma' , 'Di' , 'Wo' , 'Do' , 'Vr' , 'Sa' ] , weekHeader : 'Wk' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'af' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'ar' ] = { closeText : 'إغلاق' , prevText : '<السابق' , nextText : 'التالي>' , currentText : 'اليوم' , monthNames : [ 'كانون الثاني' , 'شباط' , 'آذار' , 'نيسان' , 'آذار' , 'حزيران' , 'تموز' , 'آب' , 'أيلول' , 'تشرين الأول' , 'تشرين الثاني' , 'كانون الأول' ] , monthNamesShort : [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' ] , dayNames : [ 'السبت' , 'الأحد' , 'الاثنين' , 'الثلاثاء' , 'الأربعاء' , 'الخميس' , 'الجمعة' ] , dayNamesShort : [ 'سبت' , 'أحد' , 'اثنين' , 'ثلاثاء' , 'أربعاء' , 'خميس' , 'جمعة' ] , dayNamesMin : [ 'سبت' , 'أحد' , 'اثنين' , 'ثلاثاء' , 'أربعاء' , 'خميس' , 'جمعة' ] , weekHeader : 'أسبوع' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : true , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ar' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'az' ] = { closeText : 'Bağla' , prevText : '<Geri' , nextText : 'İrəli>' , currentText : 'Bugün' , monthNames : [ 'Yanvar' , 'Fevral' , 'Mart' , 'Aprel' , 'May' , 'İyun' , 'İyul' , 'Avqust' , 'Sentyabr' , 'Oktyabr' , 'Noyabr' , 'Dekabr' ] , monthNamesShort : [ 'Yan' , 'Fev' , 'Mar' , 'Apr' , 'May' , 'İyun' , 'İyul' , 'Avq' , 'Sen' , 'Okt' , 'Noy' , 'Dek' ] , dayNames : [ 'Bazar' , 'Bazar ertəsi' , 'Çərşənbə axşamı ' , 'Çərşənbə' , 'Cümə axşamı ' , 'Cümə' , 'Şənbə' ] , dayNamesShort : [ 'B' , 'Be' , 'Ça' , 'Ç' , 'Ca' , 'C' , 'Ş' ] , dayNamesMin : [ 'B' , 'B' , 'Ç' , 'С ' , 'Ç' , 'C' , 'Ş' ] , weekHeader : 'Hf' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'az' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'bg' ] = { closeText : 'затвори' , prevText : '<назад' , nextText : 'напред>' , nextBigText : '>>' , currentText : 'днес' , monthNames : [ 'Януари' , 'Февруари' , 'Март' , 'Април' , 'Май' , 'Юни' , 'Юли' , 'Август' , 'Септември' , 'Октомври' , 'Ноември' , 'Декември' ] , monthNamesShort : [ 'Яну' , 'Фев' , 'М а р ' , 'Апр' , 'Май' , 'Юни' , 'Юли' , 'Авг' , 'Сеп' , 'Окт' , 'Нов' , 'Дек' ] , dayNames : [ 'Неделя' , 'Понеделник' , 'Вторник' , 'Сряда' , 'Четвъртък' , 'Петък' , 'Събота' ] , dayNamesShort : [ 'Нед' , 'Пон' , 'Вто' , 'Сря' , 'Чет' , 'Пет' , 'Съб' ] , dayNamesMin : [ 'Н е ' , 'По' , 'Вт' , 'С р ' , 'Че' , 'Пе' , 'Съ' ] , weekHeader : 'Wk' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'bg' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'bs' ] = { closeText : 'Zatvori' , prevText : '<' , nextText : '>' , currentText : 'Danas' , monthNames : [ 'Januar' , 'Februar' , 'Mart' , 'April' , 'Maj' , 'Juni' , 'Juli' , 'August' , 'Septembar' , 'Oktobar' , 'Novembar' , 'Decembar' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Nedelja' , 'Ponedeljak' , 'Utorak' , 'Srijeda' , 'Četvrtak' , 'Petak' , 'Subota' ] , dayNamesShort : [ 'Ned' , 'Pon' , 'Uto' , 'Sri' , 'Čet' , 'Pet' , 'Sub' ] , dayNamesMin : [ 'Ne' , 'Po' , 'Ut' , 'Sr' , 'Če' , 'Pe' , 'Su' ] , weekHeader : 'Wk' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'bs' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'ca' ] = { closeText : 'Tancar' , prevText : '<Ant' , nextText : 'Seg>' , currentText : 'Avui' , monthNames : [ 'Gener' , 'Febrer' , 'Març' , 'Abril' , 'Maig' , 'Juny' , 'Juliol' , 'Agost' , 'Setembre' , 'Octubre' , 'Novembre' , 'Desembre' ] , monthNamesShort : [ 'Gen' , 'Feb' , 'Mar' , 'Abr' , 'Mai' , 'Jun' , 'Jul' , 'Ago' , 'Set' , 'Oct' , 'Nov' , 'Des' ] , dayNames : [ 'Diumenge' , 'Dilluns' , 'Dimarts' , 'Dimecres' , 'Dijous' , 'Divendres' , 'Dissabte' ] , dayNamesShort : [ 'Dug' , 'Dln' , 'Dmt' , 'Dmc' , 'Djs' , 'Dvn' , 'Dsb' ] , dayNamesMin : [ 'Dg' , 'Dl' , 'Dt' , 'Dc' , 'Dj' , 'Dv' , 'Ds' ] , weekHeader : 'Sm' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ca' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'cs' ] = { closeText : 'Zavřít' , prevText : '<Dříve' , nextText : 'Později>' , currentText : 'Nyní' , monthNames : [ 'leden' , 'únor' , 'březen' , 'duben' , 'květen' , 'červen' , 'červenec' , 'srpen' , 'září' , 'říjen' , 'listopad' , 'prosinec' ] , monthNamesShort : [ 'led' , 'úno' , 'bře' , 'dub' , 'kvě' , 'čer' , 'čvc' , 'srp' , 'zář' , 'říj' , 'lis' , 'pro' ] , dayNames : [ 'neděle' , 'pondělí' , 'úterý' , 'středa' , 'čtvrtek' , 'pátek' , 'sobota' ] , dayNamesShort : [ 'ne' , 'po' , 'út' , 'st' , 'čt' , 'pá' , 'so' ] , dayNamesMin : [ 'ne' , 'po' , 'út' , 'st' , 'čt' , 'pá' , 'so' ] , weekHeader : 'Týd' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'cs' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'da' ] = { closeText : 'Luk' , prevText : '<Forrige' , nextText : 'Næste>' , currentText : 'Idag' , monthNames : [ 'Januar' , 'Februar' , 'Marts' , 'April' , 'Maj' , 'Juni' , 'Juli' , 'August' , 'September' , 'Oktober' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Søndag' , 'Mandag' , 'Tirsdag' , 'Onsdag' , 'Torsdag' , 'Fredag' , 'Lørdag' ] , dayNamesShort : [ 'Søn' , 'Man' , 'Tir' , 'Ons' , 'Tor' , 'Fre' , 'Lør' ] , dayNamesMin : [ 'Sø' , 'Ma' , 'Ti' , 'On' , 'To' , 'Fr' , 'Lø' ] , weekHeader : 'Uge' , dateFormat : 'dd-mm-yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'da' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'de' ] = { closeText : 'schließen' , prevText : '<zurück' , nextText : 'Vor>' , currentText : 'heute' , monthNames : [ 'Januar' , 'Februar' , 'März' , 'April' , 'Mai' , 'Juni' , 'Juli' , 'August' , 'September' , 'Oktober' , 'November' , 'Dezember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mär' , 'Apr' , 'Mai' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dez' ] , dayNames : [ 'Sonntag' , 'Montag' , 'Dienstag' , 'Mittwoch' , 'Donnerstag' , 'Freitag' , 'Samstag' ] , dayNamesShort : [ 'So' , 'Mo' , 'Di' , 'Mi' , 'Do' , 'Fr' , 'Sa' ] , dayNamesMin : [ 'So' , 'Mo' , 'Di' , 'Mi' , 'Do' , 'Fr' , 'Sa' ] , weekHeader : 'Wo' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'de' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'el' ] = { closeText : 'Κλείσιμο' , prevText : 'Προηγούμενος' , nextText : 'Επόμενος' , currentText : 'Τρέχων Μήνας' , monthNames : [ 'Ιανουάριος' , 'Φεβρουάριος' , 'Μάρτιος' , 'Απρίλιος' , 'Μάιος' , 'Ιούνιος' , 'Ιούλιος' , 'Αύγουστος' , 'Σεπτέμβριος' , 'Οκτώβριος' , 'Νοέμβριος' , 'Δεκέμβριος' ] , monthNamesShort : [ 'Ι α ν ' , 'Φεβ' , 'Μ α ρ ' , 'Απρ' , 'Μ α ι ' , 'Ι ο υ ν ' , 'Ιουλ' , 'Α υ γ ' , 'Σεπ' , 'Οκτ' , 'Νοε' , 'Δεκ' ] , dayNames : [ 'Κυριακή' , 'Δευτέρα' , 'Τρίτη' , 'Τετάρτη' , 'Πέμπτη' , 'Παρασκευή' , 'Σάββατο' ] , dayNamesShort : [ 'Κ υ ρ ' , 'Δευ' , 'Τ ρ ι ' , 'Τετ' , 'Πεμ' , 'Παρ' , 'Σαβ' ] , dayNamesMin : [ 'Κ υ ' , 'Δε' , 'Τ ρ ' , 'Τε' , 'Πε' , 'Πα' , 'Σα' ] , weekHeader : 'Εβδ' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'el' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'en-GB' ] = { closeText : 'Done' , prevText : 'Prev' , nextText : 'Next' , currentText : 'Today' , monthNames : [ 'January' , 'February' , 'March' , 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , 'October' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec' ] , dayNames : [ 'Sunday' , 'Monday' , 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday' ] , dayNamesShort : [ 'Sun' , 'Mon' , 'Tue' , 'Wed' , 'Thu' , 'Fri' , 'Sat' ] , dayNamesMin : [ 'Su' , 'Mo' , 'Tu' , 'We' , 'Th' , 'Fr' , 'Sa' ] , weekHeader : 'Wk' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'en-GB' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'eo' ] = { closeText : 'Fermi' , prevText : '<Anta' , nextText : 'Sekv>' , currentText : 'Nuna' , monthNames : [ 'Januaro' , 'Februaro' , 'Marto' , 'Aprilo' , 'Majo' , 'Junio' , 'Julio' , 'Aŭgusto' , 'Septembro' , 'Oktobro' , 'Novembro' , 'Decembro' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Aŭg' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Dimanĉo' , 'Lundo' , 'Mardo' , 'Merkredo' , 'Ĵaŭdo' , 'Vendredo' , 'Sabato' ] , dayNamesShort : [ 'Dim' , 'Lun' , 'Mar' , 'Mer' , 'Ĵaŭ' , 'Ven' , 'Sab' ] , dayNamesMin : [ 'Di' , 'Lu' , 'Ma' , 'Me' , 'Ĵa' , 'Ve' , 'Sa' ] , weekHeader : 'Sb' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'eo' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'es' ] = { closeText : 'Cerrar' , prevText : '<Ant' , nextText : 'Sig>' , currentText : 'Hoy' , monthNames : [ 'Enero' , 'Febrero' , 'Marzo' , 'Abril' , 'Mayo' , 'Junio' , 'Julio' , 'Agosto' , 'Septiembre' , 'Octubre' , 'Noviembre' , 'Diciembre' ] , monthNamesShort : [ 'Ene' , 'Feb' , 'Mar' , 'Abr' , 'May' , 'Jun' , 'Jul' , 'Ago' , 'Sep' , 'Oct' , 'Nov' , 'Dic' ] , dayNames : [ 'Domingo' , 'Lunes' , 'Martes' , 'Miércoles' , 'Jueves' , 'Viernes' , 'Sábado' ] , dayNamesShort : [ 'Dom' , 'Lun' , 'Mar' , 'Mié' , 'Juv' , 'Vie' , 'Sáb' ] , dayNamesMin : [ 'Do' , 'Lu' , 'Ma' , 'Mi' , 'Ju' , 'Vi' , 'Sá' ] , weekHeader : 'Sm' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'es' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'et' ] = { closeText : 'Sulge' , prevText : 'Eelnev' , nextText : 'Järgnev' , currentText : 'Täna' , monthNames : [ 'Jaanuar' , 'Veebruar' , 'Märts' , 'Aprill' , 'Mai' , 'Juuni' , 'Juuli' , 'August' , 'September' , 'Oktoober' , 'November' , 'Detsember' ] , monthNamesShort : [ 'Jaan' , 'Veebr' , 'Märts' , 'Apr' , 'Mai' , 'Juuni' , 'Juuli' , 'Aug' , 'Sept' , 'Okt' , 'Nov' , 'Dets' ] , dayNames : [ 'Pühapäev' , 'Esmaspäev' , 'Teisipäev' , 'Kolmapäev' , 'Neljapäev' , 'Reede' , 'Laupäev' ] , dayNamesShort : [ 'Pühap' , 'Esmasp' , 'Teisip' , 'Kolmap' , 'Neljap' , 'Reede' , 'Laup' ] , dayNamesMin : [ 'P' , 'E' , 'T' , 'K' , 'N' , 'R' , 'L' ] , weekHeader : 'Sm' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'et' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'eu' ] = { closeText : 'Egina' , prevText : '<Aur' , nextText : 'Hur>' , currentText : 'Gaur' , monthNames : [ 'Urtarrila' , 'Otsaila' , 'Martxoa' , 'Apirila' , 'Maiatza' , 'Ekaina' , 'Uztaila' , 'Abuztua' , 'Iraila' , 'Urria' , 'Azaroa' , 'Abendua' ] , monthNamesShort : [ 'Urt' , 'Ots' , 'Mar' , 'Api' , 'Mai' , 'Eka' , 'Uzt' , 'Abu' , 'Ira' , 'Urr' , 'Aza' , 'Abe' ] , dayNames : [ 'Igandea' , 'Astelehena' , 'Asteartea' , 'Asteazkena' , 'Osteguna' , 'Ostirala' , 'Larunbata' ] , dayNamesShort : [ 'Iga' , 'Ast' , 'Ast' , 'Ast' , 'Ost' , 'Ost' , 'Lar' ] , dayNamesMin : [ 'Ig' , 'As' , 'As' , 'As' , 'Os' , 'Os' , 'La' ] , weekHeader : 'Wk' , dateFormat : 'yy/mm/dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'eu' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'fa' ] = { closeText : 'بستن' , prevText : '<قبلي' , nextText : 'بعدي>' , currentText : 'امروز' , monthNames : [ 'فروردين' , 'ارديبهشت' , 'خرداد' , 'تير' , 'مرداد' , 'شهريور' , 'مهر' , 'آبان' , 'آذر' , 'دي' , 'بهمن' , 'اسفند' ] , monthNamesShort : [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' ] , dayNames : [ 'يکشنبه' , 'دوشنبه' , 'سهشنبه' , 'چهارشنبه' , 'پنجشنبه' , 'جمعه' , 'شنبه' ] , dayNamesShort : [ 'ي' , 'د' , 'س' , 'چ' , 'پ' , 'ج' , 'ش' ] , dayNamesMin : [ 'ي' , 'د' , 'س' , 'چ' , 'پ' , 'ج' , 'ش' ] , weekHeader : 'هف' , dateFormat : 'yy/mm/dd' , firstDay : 6 , isRTL : true , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'fa' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'fi' ] = { closeText : 'Sulje' , prevText : '«Edellinen' , nextText : 'Seuraava»' , currentText : 'Tänään' , monthNames : [ 'Tammikuu' , 'Helmikuu' , 'Maaliskuu' , 'Huhtikuu' , 'Toukokuu' , 'Kesäkuu' , 'Heinäkuu' , 'Elokuu' , 'Syyskuu' , 'Lokakuu' , 'Marraskuu' , 'Joulukuu' ] , monthNamesShort : [ 'Tammi' , 'Helmi' , 'Maalis' , 'Huhti' , 'Touko' , 'Kesä' , 'Heinä' , 'Elo' , 'Syys' , 'Loka' , 'Marras' , 'Joulu' ] , dayNamesShort : [ 'Su' , 'Ma' , 'Ti' , 'Ke' , 'To' , 'Pe' , 'Su' ] , dayNames : [ 'Sunnuntai' , 'Maanantai' , 'Tiistai' , 'Keskiviikko' , 'Torstai' , 'Perjantai' , 'Lauantai' ] , dayNamesMin : [ 'Su' , 'Ma' , 'Ti' , 'Ke' , 'To' , 'Pe' , 'La' ] , weekHeader : 'Vk' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'fi' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'fo' ] = { closeText : 'Lat aftur' , prevText : '<Fyrra' , nextText : 'Næsta>' , currentText : 'Í dag' , monthNames : [ 'Januar' , 'Februar' , 'Mars' , 'Apríl' , 'Mei' , 'Juni' , 'Juli' , 'August' , 'September' , 'Oktober' , 'November' , 'Desember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Mei' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Des' ] , dayNames : [ 'Sunnudagur' , 'Mánadagur' , 'Týsdagur' , 'Mikudagur' , 'Hósdagur' , 'Fríggjadagur' , 'Leyardagur' ] , dayNamesShort : [ 'Sun' , 'Mán' , 'Týs' , 'Mik' , 'Hós' , 'Frí' , 'Ley' ] , dayNamesMin : [ 'Su' , 'Má' , 'Tý' , 'Mi' , 'Hó' , 'Fr' , 'Le' ] , weekHeader : 'Vk' , dateFormat : 'dd-mm-yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'fo' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'fr-CH' ] = { closeText : 'Fermer' , prevText : '<Préc' , nextText : 'Suiv>' , currentText : 'Courant' , monthNames : [ 'Janvier' , 'Février' , 'Mars' , 'Avril' , 'Mai' , 'Juin' , 'Juillet' , 'Août' , 'Septembre' , 'Octobre' , 'Novembre' , 'Décembre' ] , monthNamesShort : [ 'Jan' , 'Fév' , 'Mar' , 'Avr' , 'Mai' , 'Jun' , 'Jul' , 'Aoû' , 'Sep' , 'Oct' , 'Nov' , 'Déc' ] , dayNames : [ 'Dimanche' , 'Lundi' , 'Mardi' , 'Mercredi' , 'Jeudi' , 'Vendredi' , 'Samedi' ] , dayNamesShort : [ 'Dim' , 'Lun' , 'Mar' , 'Mer' , 'Jeu' , 'Ven' , 'Sam' ] , dayNamesMin : [ 'Di' , 'Lu' , 'Ma' , 'Me' , 'Je' , 'Ve' , 'Sa' ] , weekHeader : 'Sm' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'fr-CH' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'fr' ] = { closeText : 'Fermer' , prevText : '<Préc' , nextText : 'Suiv>' , currentText : 'Courant' , monthNames : [ 'Janvier' , 'Février' , 'Mars' , 'Avril' , 'Mai' , 'Juin' , 'Juillet' , 'Août' , 'Septembre' , 'Octobre' , 'Novembre' , 'Décembre' ] , monthNamesShort : [ 'Jan' , 'Fév' , 'Mar' , 'Avr' , 'Mai' , 'Jun' , 'Jul' , 'Aoû' , 'Sep' , 'Oct' , 'Nov' , 'Déc' ] , dayNames : [ 'Dimanche' , 'Lundi' , 'Mardi' , 'Mercredi' , 'Jeudi' , 'Vendredi' , 'Samedi' ] , dayNamesShort : [ 'Dim' , 'Lun' , 'Mar' , 'Mer' , 'Jeu' , 'Ven' , 'Sam' ] , dayNamesMin : [ 'Di' , 'Lu' , 'Ma' , 'Me' , 'Je' , 'Ve' , 'Sa' ] , weekHeader : 'Sm' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'fr' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'he' ] = { closeText : 'סגור' , prevText : '<הקודם' , nextText : 'הבא>' , currentText : 'היום' , monthNames : [ 'ינואר' , 'פברואר' , 'מרץ' , 'אפריל' , 'מאי' , 'יוני' , 'יולי' , 'אוגוסט' , 'ספטמבר' , 'אוקטובר' , 'נובמבר' , 'דצמבר' ] , monthNamesShort : [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' ] , dayNames : [ 'ראשון' , 'שני' , 'שלישי' , 'רביעי' , 'חמישי' , 'שישי' , 'שבת' ] , dayNamesShort : [ 'א\'' , 'ב\'' , 'ג\'' , 'ד\'' , 'ה\'' , 'ו \'' , 'שבת' ] , dayNamesMin : [ 'א\'' , 'ב\'' , 'ג\'' , 'ד\'' , 'ה\'' , 'ו \'' , 'שבת' ] , weekHeader : 'Wk' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : true , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'he' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'hr' ] = { closeText : 'Zatvori' , prevText : '<' , nextText : '>' , currentText : 'Danas' , monthNames : [ 'Siječanj' , 'Veljača' , 'Ožujak' , 'Travanj' , 'Svibanj' , 'Lipanj' , 'Srpanj' , 'Kolovoz' , 'Rujan' , 'Listopad' , 'Studeni' , 'Prosinac' ] , monthNamesShort : [ 'Sij' , 'Velj' , 'Ožu' , 'Tra' , 'Svi' , 'Lip' , 'Srp' , 'Kol' , 'Ruj' , 'Lis' , 'Stu' , 'Pro' ] , dayNames : [ 'Nedjelja' , 'Ponedjeljak' , 'Utorak' , 'Srijeda' , 'Četvrtak' , 'Petak' , 'Subota' ] , dayNamesShort : [ 'Ned' , 'Pon' , 'Uto' , 'Sri' , 'Čet' , 'Pet' , 'Sub' ] , dayNamesMin : [ 'Ne' , 'Po' , 'Ut' , 'Sr' , 'Če' , 'Pe' , 'Su' ] , weekHeader : 'Tje' , dateFormat : 'dd.mm.yy.' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'hr' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'hu' ] = { closeText : 'bezárás' , prevText : '« vissza' , nextText : 'előre »' , currentText : 'ma' , monthNames : [ 'Január' , 'Február' , 'Március' , 'Április' , 'Május' , 'Június' , 'Július' , 'Augusztus' , 'Szeptember' , 'Október' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Már' , 'Ápr' , 'Máj' , 'Jún' , 'Júl' , 'Aug' , 'Szep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Vasárnap' , 'Hétfö' , 'Kedd' , 'Szerda' , 'Csütörtök' , 'Péntek' , 'Szombat' ] , dayNamesShort : [ 'Vas' , 'Hét' , 'Ked' , 'Sze' , 'Csü' , 'Pén' , 'Szo' ] , dayNamesMin : [ 'V' , 'H' , 'K' , 'Sze' , 'Cs' , 'P' , 'Szo' ] , weekHeader : 'Hé' , dateFormat : 'yy-mm-dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'hu' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'hy' ] = { closeText : 'Փակել' , prevText : '<Նախ.' , nextText : 'Հաջ.>' , currentText : 'Այսօր' , monthNames : [ 'Հունվար' , 'Փետրվար' , 'Մարտ' , 'Ապրիլ' , 'Մայիս' , 'Հունիս' , 'Հուլիս' , 'Օգոստոս' , 'Սեպտեմբեր' , 'Հոկտեմբեր' , 'Նոյեմբեր' , 'Դեկտեմբեր' ] , monthNamesShort : [ 'Հունվ' , 'Փետր' , 'Մարտ' , 'Ապր' , 'Մայիս' , 'Հունիս' , 'Հուլ' , 'Օ գ ս ' , 'Սեպ' , 'Հոկ' , 'Նոյ' , 'Դեկ' ] , dayNames : [ 'կիրակի' , 'եկուշաբթի' , 'երեքշաբթի' , 'չորեքշաբթի' , 'հինգշաբթի' , 'ուրբաթ' , 'շաբաթ' ] , dayNamesShort : [ 'կիր' , 'երկ' , 'երք' , 'չրք' , 'հնգ' , 'ուրբ' , 'շբթ' ] , dayNamesMin : [ 'կիր' , 'երկ' , 'երք' , 'չրք' , 'հնգ' , 'ուրբ' , 'շբթ' ] , weekHeader : 'ՇԲՏ' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'hy' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'id' ] = { closeText : 'Tutup' , prevText : '<mundur' , nextText : 'maju>' , currentText : 'hari ini' , monthNames : [ 'Januari' , 'Februari' , 'Maret' , 'April' , 'Mei' , 'Juni' , 'Juli' , 'Agustus' , 'September' , 'Oktober' , 'Nopember' , 'Desember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Mei' , 'Jun' , 'Jul' , 'Agus' , 'Sep' , 'Okt' , 'Nop' , 'Des' ] , dayNames : [ 'Minggu' , 'Senin' , 'Selasa' , 'Rabu' , 'Kamis' , 'Jumat' , 'Sabtu' ] , dayNamesShort : [ 'Min' , 'Sen' , 'Sel' , 'Rab' , 'kam' , 'Jum' , 'Sab' ] , dayNamesMin : [ 'Mg' , 'Sn' , 'Sl' , 'Rb' , 'Km' , 'jm' , 'Sb' ] , weekHeader : 'Mg' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'id' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'is' ] = { closeText : 'Loka' , prevText : '< Fyrri' , nextText : 'Næsti >' , currentText : 'Í dag' , monthNames : [ 'Janúar' , 'Febrúar' , 'Mars' , 'Apríl' , 'Maí' , 'Júní' , 'Júlí' , 'Ágúst' , 'September' , 'Október' , 'Nóvember' , 'Desember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maí' , 'Jún' , 'Júl' , 'Ágú' , 'Sep' , 'Okt' , 'Nóv' , 'Des' ] , dayNames : [ 'Sunnudagur' , 'Mánudagur' , 'Þriðjudagur' , 'Miðvikudagur' , 'Fimmtudagur' , 'Föstudagur' , 'Laugardagur' ] , dayNamesShort : [ 'Sun' , 'Mán' , 'Þri' , 'Mið' , 'Fim' , 'Fös' , 'Lau' ] , dayNamesMin : [ 'Su' , 'Má' , 'Þr' , 'Mi' , 'Fi' , 'Fö' , 'La' ] , weekHeader : 'Vika' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'is' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'it' ] = { closeText : 'Chiudi' , prevText : ' & # x3c ; P
jQuery ( function ( $ ) { $ . datepicker . regional [ 'ja' ] = { closeText : '閉じる' , prevText : '<前' , nextText : '次>' , currentText : '今日' , monthNames : [ '1月' , '2月' , '3月' , '4月' , '5月' , '6月' , '7月' , '8月' , '9月' , '10月' , '11月' , '12月' ] , monthNamesShort : [ '1月' , '2月' , '3月' , '4月' , '5月' , '6月' , '7月' , '8月' , '9月' , '10月' , '11月' , '12月' ] , dayNames : [ '日曜日' , '月曜日' , '火曜日' , '水曜日' , '木曜日' , '金曜日' , '土曜日' ] , dayNamesShort : [ '日' , '月' , '火' , '水' , '木' , '金' , '土' ] , dayNamesMin : [ '日' , '月' , '火' , '水' , '木' , '金' , '土' ] , weekHeader : '週' , dateFormat : 'yy/mm/dd' , firstDay : 0 , isRTL : false , showMonthAfterYear : true , yearSuffix : '年' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ja' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'ko' ] = { closeText : '닫기' , prevText : '이전달' , nextText : '다음달' , currentText : '오늘' , monthNames : [ '1월(JAN)' , '2월(FEB)' , '3월(MAR)' , '4월(APR)' , '5월(MAY)' , '6월(JUN)' , '7월(JUL)' , '8월(AUG)' , '9월(SEP)' , '10월(OCT)' , '11월(NOV)' , '12월(DEC)' ] , monthNamesShort : [ '1월(JAN)' , '2월(FEB)' , '3월(MAR)' , '4월(APR)' , '5월(MAY)' , '6월(JUN)' , '7월(JUL)' , '8월(AUG)' , '9월(SEP)' , '10월(OCT)' , '11월(NOV)' , '12월(DEC)' ] , dayNames : [ '일' , '월' , '화' , '수' , '목' , '금' , '토' ] , dayNamesShort : [ '일' , '월' , '화' , '수' , '목' , '금' , '토' ] , dayNamesMin : [ '일' , '월' , '화' , '수' , '목' , '금' , '토' ] , weekHeader : 'Wk' , dateFormat : 'yy-mm-dd' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '년' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ko' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'lt' ] = { closeText : 'Uždaryti' , prevText : '<Atgal' , nextText : 'Pirmyn>' , currentText : 'Šiandien' , monthNames : [ 'Sausis' , 'Vasaris' , 'Kovas' , 'Balandis' , 'Gegužė' , 'Birželis' , 'Liepa' , 'Rugpjūtis' , 'Rugsėjis' , 'Spalis' , 'Lapkritis' , 'Gruodis' ] , monthNamesShort : [ 'Sau' , 'Vas' , 'Kov' , 'Bal' , 'Geg' , 'Bir' , 'Lie' , 'Rugp' , 'Rugs' , 'Spa' , 'Lap' , 'Gru' ] , dayNames : [ 'sekmadienis' , 'pirmadienis' , 'antradienis' , 'trečiadienis' , 'ketvirtadienis' , 'penktadienis' , 'šeštadienis' ] , dayNamesShort : [ 'sek' , 'pir' , 'ant' , 'tre' , 'ket' , 'pen' , 'šeš' ] , dayNamesMin : [ 'Se' , 'Pr' , 'An' , 'Tr' , 'Ke' , 'Pe' , 'Še' ] , weekHeader : 'Wk' , dateFormat : 'yy-mm-dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'lt' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'lv' ] = { closeText : 'Aizvērt' , prevText : 'Iepr' , nextText : 'Nāka' , currentText : 'Šodien' , monthNames : [ 'Janvāris' , 'Februāris' , 'Marts' , 'Aprīlis' , 'Maijs' , 'Jūnijs' , 'Jūlijs' , 'Augusts' , 'Septembris' , 'Oktobris' , 'Novembris' , 'Decembris' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Mai' , 'Jūn' , 'Jūl' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'svētdiena' , 'pirmdiena' , 'otrdiena' , 'trešdiena' , 'ceturtdiena' , 'piektdiena' , 'sestdiena' ] , dayNamesShort : [ 'svt' , 'prm' , 'otr' , 'tre' , 'ctr' , 'pkt' , 'sst' ] , dayNamesMin : [ 'Sv' , 'Pr' , 'Ot' , 'Tr' , 'Ct' , 'Pk' , 'Ss' ] , weekHeader : 'Nav' , dateFormat : 'dd-mm-yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'lv' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'ms' ] = { closeText : 'Tutup' , prevText : '<Sebelum' , nextText : 'Selepas>' , currentText : 'hari ini' , monthNames : [ 'Januari' , 'Februari' , 'Mac' , 'April' , 'Mei' , 'Jun' , 'Julai' , 'Ogos' , 'September' , 'Oktober' , 'November' , 'Disember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mac' , 'Apr' , 'Mei' , 'Jun' , 'Jul' , 'Ogo' , 'Sep' , 'Okt' , 'Nov' , 'Dis' ] , dayNames : [ 'Ahad' , 'Isnin' , 'Selasa' , 'Rabu' , 'Khamis' , 'Jumaat' , 'Sabtu' ] , dayNamesShort : [ 'Aha' , 'Isn' , 'Sel' , 'Rab' , 'kha' , 'Jum' , 'Sab' ] , dayNamesMin : [ 'Ah' , 'Is' , 'Se' , 'Ra' , 'Kh' , 'Ju' , 'Sa' ] , weekHeader : 'Mg' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ms' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional . nl = { closeText : 'Sluiten' , prevText : '←' , nextText : '→' , currentText : 'Vandaag' , monthNames : [ 'januari' , 'februari' , 'maart' , 'april' , 'mei' , 'juni' , 'juli' , 'augustus' , 'september' , 'oktober' , 'november' , 'december' ] , monthNamesShort : [ 'jan' , 'feb' , 'maa' , 'apr' , 'mei' , 'jun' , 'jul' , 'aug' , 'sep' , 'okt' , 'nov' , 'dec' ] , dayNames : [ 'zondag' , 'maandag' , 'dinsdag' , 'woensdag' , 'donderdag' , 'vrijdag' , 'zaterdag' ] , dayNamesShort : [ 'zon' , 'maa' , 'din' , 'woe' , 'don' , 'vri' , 'zat' ] , dayNamesMin : [ 'zo' , 'ma' , 'di' , 'wo' , 'do' , 'vr' , 'za' ] , weekHeader : 'Wk' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional . nl ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'no' ] = { closeText : 'Lukk' , prevText : '«Forrige' , nextText : 'Neste»' , currentText : 'I dag' , monthNames : [ 'Januar' , 'Februar' , 'Mars' , 'April' , 'Mai' , 'Juni' , 'Juli' , 'August' , 'September' , 'Oktober' , 'November' , 'Desember' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Mai' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Des' ] , dayNamesShort : [ 'Søn' , 'Man' , 'Tir' , 'Ons' , 'Tor' , 'Fre' , 'Lør' ] , dayNames : [ 'Søndag' , 'Mandag' , 'Tirsdag' , 'Onsdag' , 'Torsdag' , 'Fredag' , 'Lørdag' ] , dayNamesMin : [ 'Sø' , 'Ma' , 'Ti' , 'On' , 'To' , 'Fr' , 'Lø' ] , weekHeader : 'Uke' , dateFormat : 'yy-mm-dd' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'no' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'pl' ] = { closeText : 'Zamknij' , prevText : '<Poprzedni' , nextText : 'Następny>' , currentText : 'Dziś' , monthNames : [ 'Styczeń' , 'Luty' , 'Marzec' , 'Kwiecień' , 'Maj' , 'Czerwiec' , 'Lipiec' , 'Sierpień' , 'Wrzesień' , 'Październik' , 'Listopad' , 'Grudzień' ] , monthNamesShort : [ 'Sty' , 'Lu' , 'Mar' , 'Kw' , 'Maj' , 'Cze' , 'Lip' , 'Sie' , 'Wrz' , 'Pa' , 'Lis' , 'Gru' ] , dayNames : [ 'Niedziela' , 'Poniedziałek' , 'Wtorek' , 'Środa' , 'Czwartek' , 'Piątek' , 'Sobota' ] , dayNamesShort : [ 'Nie' , 'Pn' , 'Wt' , 'Śr' , 'Czw' , 'Pt' , 'So' ] , dayNamesMin : [ 'N' , 'Pn' , 'Wt' , 'Śr' , 'Cz' , 'Pt' , 'So' ] , weekHeader : 'Tydz' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'pl' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'pt-BR' ] = { closeText : 'Fechar' , prevText : '<Anterior' , nextText : 'Próximo>' , currentText : 'Hoje' , monthNames : [ 'Janeiro' , 'Fevereiro' , 'Março' , 'Abril' , 'Maio' , 'Junho' , 'Julho' , 'Agosto' , 'Setembro' , 'Outubro' , 'Novembro' , 'Dezembro' ] , monthNamesShort : [ 'Jan' , 'Fev' , 'Mar' , 'Abr' , 'Mai' , 'Jun' , 'Jul' , 'Ago' , 'Set' , 'Out' , 'Nov' , 'Dez' ] , dayNames : [ 'Domingo' , 'Segunda-feira' , 'Terça-feira' , 'Quarta-feira' , 'Quinta-feira' , 'Sexta-feira' , 'Sabado' ] , dayNamesShort : [ 'Dom' , 'Seg' , 'Ter' , 'Qua' , 'Qui' , 'Sex' , 'Sab' ] , dayNamesMin : [ 'Dom' , 'Seg' , 'Ter' , 'Qua' , 'Qui' , 'Sex' , 'Sab' ] , weekHeader : 'Sm' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'pt-BR' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'ro' ] = { closeText : 'Închide' , prevText : '« Luna precedentă' , nextText : 'Luna următoare »' , currentText : 'Azi' , monthNames : [ 'Ianuarie' , 'Februarie' , 'Martie' , 'Aprilie' , 'Mai' , 'Iunie' , 'Iulie' , 'August' , 'Septembrie' , 'Octombrie' , 'Noiembrie' , 'Decembrie' ] , monthNamesShort : [ 'Ian' , 'Feb' , 'Mar' , 'Apr' , 'Mai' , 'Iun' , 'Iul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec' ] , dayNames : [ 'Duminică' , 'Luni' , 'Marţi' , 'Miercuri' , 'Joi' , 'Vineri' , 'Sâmbătă' ] , dayNamesShort : [ 'Dum' , 'Lun' , 'Mar' , 'Mie' , 'Joi' , 'Vin' , 'Sâm' ] , dayNamesMin : [ 'Du' , 'Lu' , 'Ma' , 'Mi' , 'Jo' , 'Vi' , 'Sâ' ] , weekHeader : 'Săpt' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ro' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'ru' ] = { closeText : 'Закрыть' , prevText : '<Пред' , nextText : 'След>' , currentText : 'Сегодня' , monthNames : [ 'Январь' , 'Февраль' , 'Март' , 'Апрель' , 'Май' , 'Июнь' , 'Июль' , 'Август' , 'Сентябрь' , 'Октябрь' , 'Ноябрь' , 'Декабрь' ] , monthNamesShort : [ 'Янв' , 'Фев' , 'М а р ' , 'Апр' , 'Май' , 'Июн' , 'Июл' , 'Авг' , 'Сен' , 'Окт' , 'Ноя' , 'Дек' ] , dayNames : [ 'воскресенье' , 'понедельник' , 'вторник' , 'среда' , 'четверг' , 'пятница' , 'суббота' ] , dayNamesShort : [ 'вск' , 'пнд' , 'втр' , 'срд' , 'чтв' , 'птн' , 'сбт' ] , dayNamesMin : [ 'В с ' , 'Пн' , 'Вт' , 'С р ' , 'Чт' , 'Пт' , 'С б ' ] , weekHeader : 'Н е ' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ru' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'sk' ] = { closeText : 'Zavrieť' , prevText : '<Predchádzajúci' , nextText : 'Nasledujúci>' , currentText : 'Dnes' , monthNames : [ 'Január' , 'Február' , 'Marec' , 'Apríl' , 'Máj' , 'Jún' , 'Júl' , 'August' , 'September' , 'Október' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Máj' , 'Jún' , 'Júl' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Nedel\'a' , 'Pondelok' , 'Utorok' , 'Streda' , 'Štvrtok' , 'Piatok' , 'Sobota' ] , dayNamesShort : [ 'Ned' , 'Pon' , 'Uto' , 'Str' , 'Štv' , 'Pia' , 'Sob' ] , dayNamesMin : [ 'Ne' , 'Po' , 'Ut' , 'St' , 'Št' , 'Pia' , 'So' ] , weekHeader : 'Ty' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sk' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'sl' ] = { closeText : 'Zapri' , prevText : '<Prejšnji' , nextText : 'Naslednji>' , currentText : 'Trenutni' , monthNames : [ 'Januar' , 'Februar' , 'Marec' , 'April' , 'Maj' , 'Junij' , 'Julij' , 'Avgust' , 'September' , 'Oktober' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Avg' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Nedelja' , 'Ponedeljek' , 'Torek' , 'Sreda' , 'Četrtek' , 'Petek' , 'Sobota' ] , dayNamesShort : [ 'Ned' , 'Pon' , 'Tor' , 'Sre' , 'Čet' , 'Pet' , 'Sob' ] , dayNamesMin : [ 'Ne' , 'Po' , 'To' , 'Sr' , 'Če' , 'Pe' , 'So' ] , weekHeader : 'Teden' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sl' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'sq' ] = { closeText : 'mbylle' , prevText : '<mbrapa' , nextText : 'Përpara>' , currentText : 'sot' , monthNames : [ 'Janar' , 'Shkurt' , 'Mars' , 'Prill' , 'Maj' , 'Qershor' , 'Korrik' , 'Gusht' , 'Shtator' , 'Tetor' , 'Nëntor' , 'Dhjetor' ] , monthNamesShort : [ 'Jan' , 'Shk' , 'Mar' , 'Pri' , 'Maj' , 'Qer' , 'Kor' , 'Gus' , 'Sht' , 'Tet' , 'Nën' , 'Dhj' ] , dayNames : [ 'E Diel' , 'E Hënë' , 'E Martë' , 'E Mërkurë' , 'E Enjte' , 'E Premte' , 'E Shtune' ] , dayNamesShort : [ 'Di' , 'Hë' , 'Ma' , 'Më' , 'En' , 'Pr' , 'Sh' ] , dayNamesMin : [ 'Di' , 'Hë' , 'Ma' , 'Më' , 'En' , 'Pr' , 'Sh' ] , weekHeader : 'Ja' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sq' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'sr-SR' ] = { closeText : 'Zatvori' , prevText : '<' , nextText : '>' , currentText : 'Danas' , monthNames : [ 'Januar' , 'Februar' , 'Mart' , 'April' , 'Maj' , 'Jun' , 'Jul' , 'Avgust' , 'Septembar' , 'Oktobar' , 'Novembar' , 'Decembar' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Avg' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNames : [ 'Nedelja' , 'Ponedeljak' , 'Utorak' , 'Sreda' , 'Četvrtak' , 'Petak' , 'Subota' ] , dayNamesShort : [ 'Ned' , 'Pon' , 'Uto' , 'Sre' , 'Čet' , 'Pet' , 'Sub' ] , dayNamesMin : [ 'Ne' , 'Po' , 'Ut' , 'Sr' , 'Če' , 'Pe' , 'Su' ] , weekHeader : 'Sed' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sr-SR' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'sr' ] = { closeText : 'Затвори' , prevText : '<' , nextText : '>' , currentText : 'Данас' , monthNames : [ 'Јануар' , 'Фебруар' , 'Март' , 'Април' , 'М а ј ' , 'Јун' , 'Јул' , 'Август' , 'Септембар' , 'Октобар' , 'Новембар' , 'Децембар' ] , monthNamesShort : [ 'Јан' , 'Феб' , 'М а р ' , 'Апр' , 'М а ј ' , 'Јун' , 'Јул' , 'Авг' , 'Сеп' , 'Окт' , 'Нов' , 'Дец' ] , dayNames : [ 'Недеља' , 'Понедељак' , 'Уторак' , 'Среда' , 'Четвртак' , 'Петак' , 'Субота' ] , dayNamesShort : [ 'Нед' , 'Пон' , 'Уто' , 'С р е ' , 'Чет' , 'Пет' , 'С у б ' ] , dayNamesMin : [ 'Н е ' , 'По' , 'Ут' , 'С р ' , 'Че' , 'Пе' , 'С у ' ] , weekHeader : 'Сед' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sr' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'sv' ] = { closeText : 'Stäng' , prevText : '«Förra' , nextText : 'Nästa»' , currentText : 'Idag' , monthNames : [ 'Januari' , 'Februari' , 'Mars' , 'April' , 'Maj' , 'Juni' , 'Juli' , 'Augusti' , 'September' , 'Oktober' , 'November' , 'December' ] , monthNamesShort : [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'Maj' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dec' ] , dayNamesShort : [ 'Sön' , 'Mån' , 'Tis' , 'Ons' , 'Tor' , 'Fre' , 'Lör' ] , dayNames : [ 'Söndag' , 'Måndag' , 'Tisdag' , 'Onsdag' , 'Torsdag' , 'Fredag' , 'Lördag' ] , dayNamesMin : [ 'Sö' , 'Må' , 'Ti' , 'On' , 'To' , 'Fr' , 'Lö' ] , weekHeader : 'Ve' , dateFormat : 'yy-mm-dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'sv' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'ta' ] = { closeText : 'மூடு' , prevText : 'முன்னையது' , nextText : 'அடுத்தது' , currentText : 'இன்று' , monthNames : [ 'தை' , 'மாசி' , 'பங்குனி' , 'சித்திரை' , 'வைகாசி' , 'ஆனி' , 'ஆடி' , 'ஆவணி' , 'புரட்டாசி' , 'ஐப்பசி' , 'கார்த்திகை' , 'மார்கழி' ] , monthNamesShort : [ 'தை' , 'மாசி' , 'பங்' , 'சித்' , 'வைகா' , 'ஆனி' , 'ஆடி' , 'ஆவ' , 'புர' , 'ஐப்' , 'கார்' , 'மார்' ] , dayNames : [ 'ஞாயிற்றுக்கிழமை' , 'திங்கட்கிழமை' , 'செவ்வாய்க்கிழமை' , 'புதன்கிழமை' , 'வியாழக்கிழமை' , 'வெள்ளிக்கிழமை' , 'சனிக்கிழமை' ] , dayNamesShort : [ 'ஞாயிறு' , 'திங்கள்' , 'செவ்வாய்' , 'புதன்' , 'வியாழன்' , 'வெள்ளி' , 'சனி' ] , dayNamesMin : [ 'ஞா' , 'தி' , 'செ' , 'பு' , 'வி' , 'வெ' , 'ச' ] , weekHeader : 'Н е ' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'ta' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'th' ] = { closeText : 'ปิด' , prevText : '« ย้อน' , nextText : 'ถัดไป »' , currentText : 'วันนี้' , monthNames : [ 'มกราคม' , 'กุมภาพันธ์' , 'มีนาคม' , 'เมษายน' , 'พฤษภาคม' , 'มิถุนายน' , 'กรกฏาคม' , 'สิงหาคม' , 'กันยายน' , 'ตุลาคม' , 'พฤศจิกายน' , 'ธันวาคม' ] , monthNamesShort : [ 'ม.ค.' , 'ก.พ.' , 'มี.ค.' , 'เม.ย.' , 'พ.ค.' , 'มิ.ย.' , 'ก.ค.' , 'ส.ค.' , 'ก.ย.' , 'ต.ค.' , 'พ.ย.' , 'ธ.ค.' ] , dayNames : [ 'อาทิตย์' , 'จันทร์' , 'อังคาร' , 'พุธ' , 'พฤหัสบดี' , 'ศุกร์' , 'เสาร์' ] , dayNamesShort : [ 'อา.' , 'จ.' , 'อ.' , 'พ.' , 'พฤ.' , 'ศ.' , 'ส.' ] , dayNamesMin : [ 'อา.' , 'จ.' , 'อ.' , 'พ.' , 'พฤ.' , 'ศ.' , 'ส.' ] , weekHeader : 'Wk' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'th' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'tr' ] = { closeText : 'kapat' , prevText : '<geri' , nextText : 'ileri>' , currentText : 'bugün' , monthNames : [ 'Ocak' , 'Şubat' , 'Mart' , 'Nisan' , 'Mayı s' , 'Haziran' , 'Temmuz' , 'Ağustos' , 'Eylül' , 'Ekim' , 'Kası m' , 'Aralı k' ] , monthNamesShort : [ 'Oca' , 'Şub' , 'Mar' , 'Nis' , 'May' , 'Haz' , 'Tem' , 'Ağu' , 'Eyl' , 'Eki' , 'Kas' , 'Ara' ] , dayNames : [ 'Pazar' , 'Pazartesi' , 'Salı ' , 'Çarşamba' , 'Perşembe' , 'Cuma' , 'Cumartesi' ] , dayNamesShort : [ 'Pz' , 'Pt' , 'Sa' , 'Ça' , 'Pe' , 'Cu' , 'Ct' ] , dayNamesMin : [ 'Pz' , 'Pt' , 'Sa' , 'Ça' , 'Pe' , 'Cu' , 'Ct' ] , weekHeader : 'Hf' , dateFormat : 'dd.mm.yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'tr' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'uk' ] = { closeText : 'Закрити' , prevText : '<' , nextText : '>' , currentText : 'Сьогодні' , monthNames : [ 'Січень' , 'Лютий' , 'Березень' , 'Квітень' , 'Травень' , 'Червень' , 'Липень' , 'Серпень' , 'Вересень' , 'Жовтень' , 'Листопад' , 'Грудень' ] , monthNamesShort : [ 'Січ' , 'Лют' , 'Бер' , 'Кві' , 'Т р а ' , 'Чер' , 'Лип' , 'С е р ' , 'В е р ' , 'Жов' , 'Лис' , 'Гру' ] , dayNames : [ 'неділя' , 'понеділок' , 'вівторок' , 'середа' , 'четвер' , 'п’ятниця' , 'субота' ] , dayNamesShort : [ 'нед' , 'пнд' , 'вів' , 'срд' , 'чтв' , 'птн' , 'сбт' ] , dayNamesMin : [ 'Нд' , 'Пн' , 'Вт' , 'С р ' , 'Чт' , 'Пт' , 'С б ' ] , weekHeader : 'Н е ' , dateFormat : 'dd/mm/yy' , firstDay : 1 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'uk' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'vi' ] = { closeText : 'Đóng' , prevText : '<Trước' , nextText : 'Tiếp>' , currentText : 'Hôm nay' , monthNames : [ 'Tháng Một' , 'Tháng Hai' , 'Tháng Ba' , 'Tháng Tư' , 'Tháng Năm' , 'Tháng Sáu' , 'Tháng Bảy' , 'Tháng Tám' , 'Tháng Chín' , 'Tháng Mười' , 'Tháng Mười Một' , 'Tháng Mười Hai' ] , monthNamesShort : [ 'Tháng 1' , 'Tháng 2' , 'Tháng 3' , 'Tháng 4' , 'Tháng 5' , 'Tháng 6' , 'Tháng 7' , 'Tháng 8' , 'Tháng 9' , 'Tháng 10' , 'Tháng 11' , 'Tháng 12' ] , dayNames : [ 'Chủ Nhật' , 'Thứ Hai' , 'Thứ Ba' , 'Thứ Tư' , 'Thứ Năm' , 'Thứ Sáu' , 'Thứ Bảy' ] , dayNamesShort : [ 'CN' , 'T2' , 'T3' , 'T4' , 'T5' , 'T6' , 'T7' ] , dayNamesMin : [ 'CN' , 'T2' , 'T3' , 'T4' , 'T5' , 'T6' , 'T7' ] , weekHeader : 'Tu' , dateFormat : 'dd/mm/yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : false , yearSuffix : '' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'vi' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'zh-CN' ] = { closeText : '关闭' , prevText : '<上月' , nextText : '下月>' , currentText : '今天' , monthNames : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' , '十月' , '十一月' , '十二月' ] , monthNamesShort : [ '一' , '二' , '三' , '四' , '五' , '六' , '七' , '八' , '九' , '十' , '十一' , '十二' ] , dayNames : [ '星期日' , '星期一' , '星期二' , '星期三' , '星期四' , '星期五' , '星期六' ] , dayNamesShort : [ '周日' , '周一' , '周二' , '周三' , '周四' , '周五' , '周六' ] , dayNamesMin : [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ] , weekHeader : '周' , dateFormat : 'yy-mm-dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : true , yearSuffix : '年' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'zh-CN' ] ) ; } ) ; jQuery ( function ( $ ) { $ . datepicker . regional [ 'zh-HK' ] = { closeText : '關閉' , prevText : '<上月' , nextText : '下月>' , currentText : '今天' , monthNames : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' , '十月' , '十一月' , '十二月' ] , monthNamesShort : [ '一' , '二' , '三' , '四' , '五' , '六' , '七' , '八' , '九' , '十' , '十一' , '十二' ] , dayNames : [ '星期日' , '星期一' , '星期二' , '星期三' , '星期四' , '星期五' , '星期六' ] , dayNamesShort : [ '周日' , '周一' , '周二' , '周三' , '周四' , '周五' , '周六' ] , dayNamesMin : [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ] , weekHeader : '周' , dateFormat : 'dd-mm-yy' , firstDay : 0 , isRTL : false , showMonthAfterYear : true , yearSuffix : '年' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'zh-HK' ] ) ; } ) ;
jQuery ( function ( $ ) { $ . datepicker . regional [ 'zh-TW' ] = { closeText : '關閉' , prevText : '<上月' , nextText : '下月>' , currentText : '今天' , monthNames : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' , '十月' , '十一月' , '十二月' ] , monthNamesShort : [ '一' , '二' , '三' , '四' , '五' , '六' , '七' , '八' , '九' , '十' , '十一' , '十二' ] , dayNames : [ '星期日' , '星期一' , '星期二' , '星期三' , '星期四' , '星期五' , '星期六' ] , dayNamesShort : [ '周日' , '周一' , '周二' , '周三' , '周四' , '周五' , '周六' ] , dayNamesMin : [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ] , weekHeader : '周' , dateFormat : 'yy/mm/dd' , firstDay : 1 , isRTL : false , showMonthAfterYear : true , yearSuffix : '年' } ; $ . datepicker . setDefaults ( $ . datepicker . regional [ 'zh-TW' ] ) ; } ) ; / *
2010-05-19 15:43:12 +00:00
* jquery . qtip . The jQuery tooltip plugin
*
* Copyright ( c ) 2009 Craig Thompson
* http : //craigsworks.com
*
* Licensed under MIT
* http : //www.opensource.org/licenses/mit-license.php
*
* Launch : February 2009
* Version : 1.0 . 0 - rc3
* Released : Tuesday 12 th May , 2009 - 00 : 00
* Debug : jquery . qtip . debug . js
* /
( function ( $ )
{ $ . fn . qtip = function ( options , blanket )
{ var i , id , interfaces , opts , obj , command , config , api ; if ( typeof options == 'string' )
{ if ( options == 'api' )
return $ ( this ) . data ( 'qtip' ) . interfaces [ $ ( this ) . data ( 'qtip' ) . current ] ; else if ( options == 'interfaces' )
return $ ( this ) . data ( 'qtip' ) . interfaces ; }
else
{ if ( ! options ) options = { } ; if ( typeof options . content !== 'object' || ( options . content . jquery && options . content . length > 0 ) ) options . content = { text : options . content } ; if ( typeof options . content . title !== 'object' ) options . content . title = { text : options . content . title } ; if ( typeof options . position !== 'object' ) options . position = { corner : options . position } ; if ( typeof options . position . corner !== 'object' ) options . position . corner = { target : options . position . corner , tooltip : options . position . corner } ; if ( typeof options . show !== 'object' ) options . show = { when : options . show } ; if ( typeof options . show . when !== 'object' ) options . show . when = { event : options . show . when } ; if ( typeof options . show . effect !== 'object' ) options . show . effect = { type : options . show . effect } ; if ( typeof options . hide !== 'object' ) options . hide = { when : options . hide } ; if ( typeof options . hide . when !== 'object' ) options . hide . when = { event : options . hide . when } ; if ( typeof options . hide . effect !== 'object' ) options . hide . effect = { type : options . hide . effect } ; if ( typeof options . style !== 'object' ) options . style = { name : options . style } ; options . style = sanitizeStyle ( options . style ) ; opts = $ . extend ( true , { } , $ . fn . qtip . defaults , options ) ; opts . style = buildStyle . call ( { options : opts } , opts . style ) ; opts . user = $ . extend ( true , { } , options ) ; } ; return $ ( this ) . each ( function ( )
{ if ( typeof options == 'string' )
{ command = options . toLowerCase ( ) ; interfaces = $ ( this ) . qtip ( 'interfaces' ) ; if ( typeof interfaces == 'object' )
{ if ( blanket === true && command == 'destroy' )
while ( interfaces . length > 0 ) interfaces [ interfaces . length - 1 ] . destroy ( ) ; else
{ if ( blanket !== true ) interfaces = [ $ ( this ) . qtip ( 'api' ) ] ; for ( i = 0 ; i < interfaces . length ; i ++ )
{ if ( command == 'destroy' ) interfaces [ i ] . destroy ( ) ; else if ( interfaces [ i ] . status . rendered === true )
{ if ( command == 'show' ) interfaces [ i ] . show ( ) ; else if ( command == 'hide' ) interfaces [ i ] . hide ( ) ; else if ( command == 'focus' ) interfaces [ i ] . focus ( ) ; else if ( command == 'disable' ) interfaces [ i ] . disable ( true ) ; else if ( command == 'enable' ) interfaces [ i ] . disable ( false ) ; else if ( command == 'update' ) interfaces [ i ] . updatePosition ( ) ; } ; } ; } ; } ; }
else
{ config = $ . extend ( true , { } , opts ) ; config . hide . effect . length = opts . hide . effect . length ; config . show . effect . length = opts . show . effect . length ; if ( config . position . container === false ) config . position . container = $ ( document . body ) ; if ( config . position . target === false ) config . position . target = $ ( this ) ; if ( config . show . when . target === false ) config . show . when . target = $ ( this ) ; if ( config . hide . when . target === false ) config . hide . when . target = $ ( this ) ; id = $ . fn . qtip . interfaces . length ; for ( i = 0 ; i < id ; i ++ )
{ if ( typeof $ . fn . qtip . interfaces [ i ] == 'undefined' ) { id = i ; break ; } ; } ; obj = new qTip ( $ ( this ) , config , id ) ; $ . fn . qtip . interfaces [ id ] = obj ; if ( typeof $ ( this ) . data ( 'qtip' ) === 'object' && $ ( this ) . data ( 'qtip' ) )
{ if ( typeof $ ( this ) . attr ( 'qtip' ) === 'undefined' )
$ ( this ) . data ( 'qtip' ) . current = $ ( this ) . data ( 'qtip' ) . interfaces . length ; $ ( this ) . data ( 'qtip' ) . interfaces . push ( obj ) ; }
else $ ( this ) . data ( 'qtip' , { current : 0 , interfaces : [ obj ] } ) ; if ( config . content . prerender === false && config . show . when . event !== false && config . show . ready !== true )
{ config . show . when . target . bind ( config . show . when . event + '.qtip-' + id + '-create' , { qtip : id } , function ( event )
{ api = $ . fn . qtip . interfaces [ event . data . qtip ] ; api . options . show . when . target . unbind ( api . options . show . when . event + '.qtip-' + event . data . qtip + '-create' ) ; api . cache . mouse = { x : event . pageX , y : event . pageY } ; construct . call ( api ) ; api . options . show . when . target . trigger ( api . options . show . when . event ) ; } ) ; }
else
{ obj . cache . mouse = { x : config . show . when . target . offset ( ) . left , y : config . show . when . target . offset ( ) . top } ; construct . call ( obj ) ; } } ; } ) ; } ; function qTip ( target , options , id )
{ var self = this ; self . id = id ; self . options = options ; self . status = { animated : false , rendered : false , disabled : false , focused : false } ; self . elements = { target : target . addClass ( self . options . style . classes . target ) , tooltip : null , wrapper : null , content : null , contentWrapper : null , title : null , button : null , tip : null , bgiframe : null } ; self . cache = { mouse : { } , position : { } , toggle : 0 } ; self . timers = { } ; $ . extend ( self , self . options . api , { show : function ( event )
{ var returned , solo ; if ( ! self . status . rendered ) return false ; if ( self . elements . tooltip . css ( 'display' ) !== 'none' ) return self ; self . elements . tooltip . stop ( true , false ) ; returned = self . beforeShow . call ( self , event ) ; if ( returned === false ) return self ; function afterShow ( )
{ self . elements . tooltip . attr ( 'aria-hidden' , true ) ; if ( self . options . position . type !== 'static' ) self . focus ( ) ; self . onShow . call ( self , event ) ; if ( $ . browser . msie ) self . elements . tooltip . get ( 0 ) . style . removeAttribute ( 'filter' ) ; self . elements . tooltip . css ( { opacity : '' } ) ; } ; self . cache . toggle = 1 ; if ( self . options . position . type !== 'static' )
self . updatePosition ( event , ( self . options . show . effect . length > 0 ) ) ; if ( typeof self . options . show . solo == 'object' ) solo = $ ( self . options . show . solo ) ; else if ( self . options . show . solo === true ) solo = $ ( 'div.qtip' ) . not ( self . elements . tooltip ) ; if ( solo ) solo . each ( function ( ) { if ( $ ( this ) . qtip ( 'api' ) . status . rendered === true ) $ ( this ) . qtip ( 'api' ) . hide ( ) ; } ) ; if ( typeof self . options . show . effect . type == 'function' )
{ self . options . show . effect . type . call ( self . elements . tooltip , self . options . show . effect . length ) ; self . elements . tooltip . queue ( function ( ) { afterShow ( ) ; $ ( this ) . dequeue ( ) ; } ) ; }
else
{ switch ( self . options . show . effect . type . toLowerCase ( ) )
{ case 'fade' : self . elements . tooltip . fadeIn ( self . options . show . effect . length , afterShow ) ; break ; case 'slide' : self . elements . tooltip . slideDown ( self . options . show . effect . length , function ( )
{ afterShow ( ) ; if ( self . options . position . type !== 'static' ) self . updatePosition ( event , true ) ; } ) ; break ; case 'grow' : self . elements . tooltip . show ( self . options . show . effect . length , afterShow ) ; break ; default : self . elements . tooltip . show ( null , afterShow ) ; break ; } ; self . elements . tooltip . addClass ( self . options . style . classes . active ) ; } ; return self ; } , hide : function ( event )
{ var returned ; if ( ! self . status . rendered ) return false ; else if ( self . elements . tooltip . css ( 'display' ) === 'none' ) return self ; clearTimeout ( self . timers . show ) ; self . elements . tooltip . stop ( true , false ) ; returned = self . beforeHide . call ( self , event ) ; if ( returned === false ) return self ; function afterHide ( ) { self . elements . tooltip . attr ( 'aria-hidden' , true ) ; self . elements . tooltip . css ( { opacity : '' } ) ; self . onHide . call ( self , event ) ; } ; self . cache . toggle = 0 ; if ( typeof self . options . hide . effect . type == 'function' )
{ self . options . hide . effect . type . call ( self . elements . tooltip , self . options . hide . effect . length ) ; self . elements . tooltip . queue ( function ( ) { afterHide ( ) ; $ ( this ) . dequeue ( ) ; } ) ; }
else
{ switch ( self . options . hide . effect . type . toLowerCase ( ) )
{ case 'fade' : self . elements . tooltip . fadeOut ( self . options . hide . effect . length , afterHide ) ; break ; case 'slide' : self . elements . tooltip . slideUp ( self . options . hide . effect . length , afterHide ) ; break ; case 'grow' : self . elements . tooltip . hide ( self . options . hide . effect . length , afterHide ) ; break ; default : self . elements . tooltip . hide ( null , afterHide ) ; break ; } ; self . elements . tooltip . removeClass ( self . options . style . classes . active ) ; } ; return self ; } , toggle : function ( event , state )
{ var condition = /boolean|number/ . test ( typeof state ) ? state : ! self . elements . tooltip . is ( ':visible' ) ; self [ condition ? 'show' : 'hide' ] ( event ) ; return self ; } , updatePosition : function ( event , animate )
{ var i , target , tooltip , coords , mapName , imagePos , newPosition , ieAdjust , ie6Adjust , borderAdjust , mouseAdjust , offset , curPosition , returned
if ( ! self . status . rendered || self . options . position . type == 'static' ) return false ; target = { position : { left : 0 , top : 0 } , dimensions : { height : 0 , width : 0 } , corner : self . options . position . corner . target } ; tooltip = { position : self . getPosition ( ) , dimensions : self . getDimensions ( ) , corner : self . options . position . corner . tooltip } ; if ( self . options . position . target !== 'mouse' )
{ if ( self . options . position . target . get ( 0 ) . nodeName . toLowerCase ( ) == 'area' )
{ coords = self . options . position . target . attr ( 'coords' ) . split ( ',' ) ; for ( i = 0 ; i < coords . length ; i ++ ) coords [ i ] = parseInt ( coords [ i ] ) ; mapName = self . options . position . target . parent ( 'map' ) . attr ( 'name' ) ; imagePos = $ ( 'img[usemap="#' + mapName + '"]:first' ) . offset ( ) ; target . position = { left : Math . floor ( imagePos . left + coords [ 0 ] ) , top : Math . floor ( imagePos . top + coords [ 1 ] ) } ; switch ( self . options . position . target . attr ( 'shape' ) . toLowerCase ( ) )
{ case 'rect' : target . dimensions = { width : Math . ceil ( Math . abs ( coords [ 2 ] - coords [ 0 ] ) ) , height : Math . ceil ( Math . abs ( coords [ 3 ] - coords [ 1 ] ) ) } ; break ; case 'circle' : target . dimensions = { width : coords [ 2 ] + 1 , height : coords [ 2 ] + 1 } ; break ; case 'poly' : target . dimensions = { width : coords [ 0 ] , height : coords [ 1 ] } ; for ( i = 0 ; i < coords . length ; i ++ )
{ if ( i % 2 == 0 )
{ if ( coords [ i ] > target . dimensions . width )
target . dimensions . width = coords [ i ] ; if ( coords [ i ] < coords [ 0 ] )
target . position . left = Math . floor ( imagePos . left + coords [ i ] ) ; }
else
{ if ( coords [ i ] > target . dimensions . height )
target . dimensions . height = coords [ i ] ; if ( coords [ i ] < coords [ 1 ] )
target . position . top = Math . floor ( imagePos . top + coords [ i ] ) ; } ; } ; target . dimensions . width = target . dimensions . width - ( target . position . left - imagePos . left ) ; target . dimensions . height = target . dimensions . height - ( target . position . top - imagePos . top ) ; break ; } ; target . dimensions . width -= 2 ; target . dimensions . height -= 2 ; }
else if ( self . options . position . target . add ( document . body ) . length === 1 )
{ target . position = { left : $ ( document ) . scrollLeft ( ) , top : $ ( document ) . scrollTop ( ) } ; target . dimensions = { height : $ ( window ) . height ( ) , width : $ ( window ) . width ( ) } ; }
else
{ if ( typeof self . options . position . target . attr ( 'qtip' ) !== 'undefined' )
target . position = self . options . position . target . qtip ( 'api' ) . cache . position ; else
target . position = self . options . position . target . offset ( ) ; target . dimensions = { height : self . options . position . target . outerHeight ( ) , width : self . options . position . target . outerWidth ( ) } ; } ; newPosition = $ . extend ( { } , target . position ) ; if ( ( /right/i ) . test ( target . corner ) )
newPosition . left += target . dimensions . width ; if ( ( /bottom/i ) . test ( target . corner ) )
newPosition . top += target . dimensions . height ; if ( ( /((top|bottom)Middle)|center/ ) . test ( target . corner ) )
newPosition . left += ( target . dimensions . width / 2 ) ; if ( ( /((left|right)Middle)|center/ ) . test ( target . corner ) )
newPosition . top += ( target . dimensions . height / 2 ) ; }
else
{ target . position = newPosition = { left : self . cache . mouse . x , top : self . cache . mouse . y } ; target . dimensions = { height : 1 , width : 1 } ; } ; if ( ( /right/i ) . test ( tooltip . corner ) )
newPosition . left -= tooltip . dimensions . width ; if ( ( /bottom/i ) . test ( tooltip . corner ) )
newPosition . top -= tooltip . dimensions . height ; if ( ( /((top|bottom)Middle)|center/ ) . test ( tooltip . corner ) )
newPosition . left -= ( tooltip . dimensions . width / 2 ) ; if ( ( /((left|right)Middle)|center/ ) . test ( tooltip . corner ) )
newPosition . top -= ( tooltip . dimensions . height / 2 ) ; ieAdjust = ( $ . browser . msie ) ? 1 : 0 ; ie6Adjust = ( $ . browser . msie && parseInt ( $ . browser . version . charAt ( 0 ) ) === 6 ) ? 1 : 0 ; if ( self . options . style . border . radius > 0 )
{ if ( ( /Left/i ) . test ( tooltip . corner ) )
newPosition . left -= self . options . style . border . radius ; else if ( ( /Right/i ) . test ( tooltip . corner ) )
newPosition . left += self . options . style . border . radius ; if ( ( /Top/i ) . test ( tooltip . corner ) )
newPosition . top -= self . options . style . border . radius ; else if ( ( /Bottom/i ) . test ( tooltip . corner ) )
newPosition . top += self . options . style . border . radius ; } ; if ( ieAdjust )
{ if ( ( /top/i ) . test ( tooltip . corner ) )
newPosition . top -= ieAdjust
else if ( ( /bottom/i ) . test ( tooltip . corner ) )
newPosition . top += ieAdjust
if ( ( /left/i ) . test ( tooltip . corner ) )
newPosition . left -= ieAdjust
else if ( ( /right/i ) . test ( tooltip . corner ) )
newPosition . left += ieAdjust
if ( ( /leftMiddle|rightMiddle/ ) . test ( tooltip . corner ) )
newPosition . top -= 1 } ; if ( self . options . position . adjust . screen === true )
newPosition = screenAdjust . call ( self , newPosition , target , tooltip ) ; if ( self . options . position . target === 'mouse' && self . options . position . adjust . mouse === true )
{ if ( self . options . position . adjust . screen === true && self . elements . tip )
mouseAdjust = self . elements . tip . attr ( 'rel' ) ; else
mouseAdjust = self . options . position . corner . tooltip ; newPosition . left += ( ( /right/i ) . test ( mouseAdjust ) ) ? - 6 : 6 ; newPosition . top += ( ( /bottom/i ) . test ( mouseAdjust ) ) ? - 6 : 6 ; }
if ( ! self . elements . bgiframe && $ . browser . msie && parseInt ( $ . browser . version . charAt ( 0 ) ) == 6 )
{ $ ( 'select, object' ) . each ( function ( )
{ offset = $ ( this ) . offset ( ) ; offset . bottom = offset . top + $ ( this ) . height ( ) ; offset . right = offset . left + $ ( this ) . width ( ) ; if ( newPosition . top + tooltip . dimensions . height >= offset . top && newPosition . left + tooltip . dimensions . width >= offset . left )
bgiframe . call ( self ) ; } ) ; } ; newPosition . left += self . options . position . adjust . x ; newPosition . top += self . options . position . adjust . y ; curPosition = self . getPosition ( ) ; if ( newPosition . left != curPosition . left || newPosition . top != curPosition . top )
{ returned = self . beforePositionUpdate . call ( self , event ) ; if ( returned === false ) return self ; self . cache . position = newPosition ; if ( animate === true )
{ self . status . animated = true ; self . elements . tooltip . animate ( newPosition , 200 , 'swing' , function ( ) { self . status . animated = false } ) ; }
else self . elements . tooltip . css ( newPosition ) ; self . onPositionUpdate . call ( self , event ) ; } ; return self ; } , updateWidth : function ( newWidth )
{ if ( ! self . status . rendered || ( newWidth && typeof newWidth !== 'number' ) ) return false ; var hidden = self . elements . contentWrapper . siblings ( ) . add ( self . elements . tip ) . add ( self . elements . button ) , zoom = self . elements . wrapper . add ( self . elements . contentWrapper . children ( ) ) , tooltip = self . elements . tooltip , max = self . options . style . width . max , min = self . options . style . width . min ; if ( ! newWidth )
{ if ( typeof self . options . style . width . value === 'number' ) { newWidth = self . options . style . width . value ; }
else
{ self . elements . tooltip . css ( { width : 'auto' } ) ; hidden . hide ( ) ; tooltip . width ( newWidth ) ; if ( $ . browser . msie ) { zoom . css ( { zoom : '' } ) ; }
newWidth = self . getDimensions ( ) . width ; if ( ! self . options . style . width . value ) { newWidth = Math . min ( Math . max ( newWidth , min ) , max ) ; } } }
if ( newWidth % 2 ) { newWidth -= 1 ; }
self . elements . tooltip . width ( newWidth ) ; hidden . show ( ) ; if ( self . options . style . border . radius )
{ self . elements . tooltip . find ( '.qtip-betweenCorners' ) . each ( function ( i ) { $ ( this ) . width ( newWidth - ( self . options . style . border . radius * 2 ) ) ; } ) } ; if ( $ . browser . msie )
{ zoom . css ( { zoom : 1 } ) ; self . elements . wrapper . width ( newWidth ) ; if ( self . elements . bgiframe ) self . elements . bgiframe . width ( newWidth ) . height ( self . getDimensions . height ) ; } ; return self ; } , updateStyle : function ( name )
{ var tip , borders , context , corner , coordinates ; if ( ! self . status . rendered || typeof name !== 'string' || ! $ . fn . qtip . styles [ name ] ) return false ; self . options . style = buildStyle . call ( self , $ . fn . qtip . styles [ name ] , self . options . user . style ) ; self . elements . content . css ( jQueryStyle ( self . options . style ) ) ; if ( self . options . content . title . text !== false )
self . elements . title . css ( jQueryStyle ( self . options . style . title , true ) ) ; self . elements . contentWrapper . css ( { borderColor : self . options . style . border . color } ) ; if ( self . options . style . tip . corner !== false )
{ if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
{ tip = self . elements . tooltip . find ( '.qtip-tip canvas:first' ) ; context = tip . get ( 0 ) . getContext ( '2d' ) ; context . clearRect ( 0 , 0 , 300 , 300 ) ; corner = tip . parent ( 'div[rel]:first' ) . attr ( 'rel' ) ; coordinates = calculateTip ( corner , self . options . style . tip . size . width , self . options . style . tip . size . height ) ; drawTip . call ( self , tip , coordinates , self . options . style . tip . color || self . options . style . border . color ) ; }
else if ( $ . browser . msie )
{ tip = self . elements . tooltip . find ( '.qtip-tip [nodeName="shape"]' ) ; tip . attr ( 'fillcolor' , self . options . style . tip . color || self . options . style . border . color ) ; } ; } ; if ( self . options . style . border . radius > 0 )
{ self . elements . tooltip . find ( '.qtip-betweenCorners' ) . css ( { backgroundColor : self . options . style . border . color } ) ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
{ borders = calculateBorders ( self . options . style . border . radius )
self . elements . tooltip . find ( '.qtip-wrapper canvas' ) . each ( function ( )
{ context = $ ( this ) . get ( 0 ) . getContext ( '2d' ) ; context . clearRect ( 0 , 0 , 300 , 300 ) ; corner = $ ( this ) . parent ( 'div[rel]:first' ) . attr ( 'rel' )
drawBorder . call ( self , $ ( this ) , borders [ corner ] , self . options . style . border . radius , self . options . style . border . color ) ; } ) ; }
else if ( $ . browser . msie )
{ self . elements . tooltip . find ( '.qtip-wrapper [nodeName="arc"]' ) . each ( function ( )
{ $ ( this ) . attr ( 'fillcolor' , self . options . style . border . color ) } ) ; } ; } ; return self ; } , updateContent : function ( content , reposition )
{ var parsedContent , images , loadedImages ; if ( ! self . status . rendered || ! content ) return false ; parsedContent = self . beforeContentUpdate . call ( self , content ) ; if ( typeof parsedContent == 'string' ) content = parsedContent ; else if ( parsedContent === false ) return ; if ( $ . browser . msie ) self . elements . contentWrapper . children ( ) . css ( { zoom : 'normal' } ) ; if ( content . jquery && content . length > 0 )
content . clone ( true ) . appendTo ( self . elements . content ) . show ( ) ; else self . elements . content . html ( content ) ; images = self . elements . content . find ( 'img[complete=false]' ) ; if ( images . length > 0 )
{ loadedImages = 0 ; images . each ( function ( i )
{ $ ( '<img src="' + $ ( this ) . attr ( 'src' ) + '" />' ) . load ( function ( ) { if ( ++ loadedImages == images . length ) afterLoad ( ) ; } ) ; } ) ; }
else afterLoad ( ) ; function afterLoad ( )
{ self . updateWidth ( ) ; if ( reposition !== false )
{ if ( self . options . position . type !== 'static' )
self . updatePosition ( self . elements . tooltip . is ( ':visible' ) , true ) ; if ( self . options . style . tip . corner !== false )
positionTip . call ( self ) ; } ; } ; self . onContentUpdate . call ( self ) ; return self ; } , loadContent : function ( url , data , method )
{ var returned ; if ( ! self . status . rendered ) return false ; returned = self . beforeContentLoad . call ( self ) ; if ( returned === false ) return self ; if ( method == 'post' )
$ . post ( url , data , setupContent ) ; else
$ . get ( url , data , setupContent ) ; function setupContent ( content )
{ self . onContentLoad . call ( self ) ; self . updateContent ( content ) ; } ; return self ; } , updateTitle : function ( content )
{ if ( ! self . status . rendered || ! content ) return false ; returned = self . beforeTitleUpdate . call ( self ) ; if ( returned === false ) return self ; if ( self . elements . button ) self . elements . button = self . elements . button . clone ( true ) ; self . elements . title . html ( content )
if ( self . elements . button ) self . elements . title . prepend ( self . elements . button ) ; self . onTitleUpdate . call ( self ) ; return self ; } , focus : function ( event )
{ var curIndex , newIndex , elemIndex , returned ; if ( ! self . status . rendered || self . options . position . type == 'static' ) return false ; curIndex = parseInt ( self . elements . tooltip . css ( 'z-index' ) ) ; newIndex = 15000 + $ ( 'div.qtip[id^="qtip"]' ) . length - 1 ; if ( ! self . status . focused && curIndex !== newIndex )
{ returned = self . beforeFocus . call ( self , event ) ; if ( returned === false ) return self ; $ ( 'div.qtip[id^="qtip"]' ) . not ( self . elements . tooltip ) . each ( function ( )
{ if ( $ ( this ) . qtip ( 'api' ) . status . rendered === true )
{ elemIndex = parseInt ( $ ( this ) . css ( 'z-index' ) ) ; if ( typeof elemIndex == 'number' && elemIndex > - 1 )
$ ( this ) . css ( { zIndex : parseInt ( $ ( this ) . css ( 'z-index' ) ) - 1 } ) ; $ ( this ) . qtip ( 'api' ) . status . focused = false ; } } )
self . elements . tooltip . css ( { zIndex : newIndex } ) ; self . status . focused = true ; self . onFocus . call ( self , event ) ; } ; return self ; } , disable : function ( state )
{ if ( ! self . status . rendered )
return false ; self . status . disabled = state ? true : false ; return self ; } , destroy : function ( )
{ var i , returned , interfaces ; returned = self . beforeDestroy . call ( self ) ; if ( returned === false ) return self ; if ( self . status . rendered )
{ self . options . show . when . target . unbind ( 'mousemove.qtip' , self . updatePosition ) ; self . options . show . when . target . unbind ( 'mouseout.qtip' , self . hide ) ; self . options . show . when . target . unbind ( self . options . show . when . event + '.qtip' ) ; self . options . hide . when . target . unbind ( self . options . hide . when . event + '.qtip' ) ; self . elements . tooltip . unbind ( self . options . hide . when . event + '.qtip' ) ; self . elements . tooltip . unbind ( 'mouseover.qtip' , self . focus ) ; self . elements . tooltip . remove ( ) ; }
else self . options . show . when . target . unbind ( self . options . show . when . event + '.qtip-create' ) ; if ( typeof self . elements . target . data ( 'qtip' ) == 'object' )
{ interfaces = self . elements . target . data ( 'qtip' ) . interfaces ; if ( typeof interfaces == 'object' && interfaces . length > 0 )
{ for ( i = 0 ; i < interfaces . length - 1 ; i ++ )
if ( interfaces [ i ] . id == self . id ) interfaces . splice ( i , 1 ) } }
$ . fn . qtip . interfaces . splice ( self . id , 1 ) ; if ( typeof interfaces == 'object' && interfaces . length > 0 )
self . elements . target . data ( 'qtip' ) . current = interfaces . length - 1 ; else
self . elements . target . removeData ( 'qtip' ) ; self . onDestroy . call ( self ) ; return self . elements . target } , getPosition : function ( )
{ var show , offset ; if ( ! self . status . rendered ) return false ; show = ( self . elements . tooltip . css ( 'display' ) !== 'none' ) ? false : true ; if ( show ) self . elements . tooltip . css ( { visiblity : 'hidden' } ) . show ( ) ; offset = self . elements . tooltip . offset ( ) ; if ( show ) self . elements . tooltip . css ( { visiblity : 'visible' } ) . hide ( ) ; return offset ; } , getDimensions : function ( )
{ var show , dimensions ; if ( ! self . status . rendered ) return false ; show = ( ! self . elements . tooltip . is ( ':visible' ) ) ? true : false ; if ( show ) self . elements . tooltip . css ( { visiblity : 'hidden' } ) . show ( ) ; dimensions = { height : self . elements . tooltip . outerHeight ( ) , width : self . elements . tooltip . outerWidth ( ) } ; if ( show ) self . elements . tooltip . css ( { visiblity : 'visible' } ) . hide ( ) ; return dimensions ; } } ) ; } ; function construct ( )
{ var self , adjust , content , url , data , method , tempLength ; self = this ; self . beforeRender . call ( self ) ; self . status . rendered = true ; self . elements . tooltip = '<div qtip="' + self . id + '" id="qtip-' + self . id + '" role="tooltip" ' + 'aria-describedby="qtip-' + self . id + '-content" class="qtip ' + ( self . options . style . classes . tooltip || self . options . style ) + '" ' + 'style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0; position:' + self . options . position . type + ';"> ' + ' <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;"> ' + ' <div class="qtip-contentWrapper" style="overflow:hidden;"> ' + ' <div id="qtip-' + self . id + '-content" class="qtip-content ' + self . options . style . classes . content + '"></div> ' + '</div></div></div>' ; self . elements . tooltip = $ ( self . elements . tooltip ) ; self . elements . tooltip . appendTo ( self . options . position . container )
self . elements . tooltip . data ( 'qtip' , { current : 0 , interfaces : [ self ] } ) ; self . elements . wrapper = self . elements . tooltip . children ( 'div:first' ) ; self . elements . contentWrapper = self . elements . wrapper . children ( 'div:first' ) . css ( { background : self . options . style . background } ) ; self . elements . content = self . elements . contentWrapper . children ( 'div:first' ) . css ( jQueryStyle ( self . options . style ) ) ; if ( $ . browser . msie ) self . elements . wrapper . add ( self . elements . content ) . css ( { zoom : 1 } ) ; if ( self . options . hide . when . event == 'unfocus' ) self . elements . tooltip . attr ( 'unfocus' , true ) ; if ( typeof self . options . style . width . value == 'number' ) self . updateWidth ( ) ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext || $ . browser . msie )
{ if ( self . options . style . border . radius > 0 )
createBorder . call ( self ) ; else
self . elements . contentWrapper . css ( { border : self . options . style . border . width + 'px solid ' + self . options . style . border . color } ) ; if ( self . options . style . tip . corner !== false )
createTip . call ( self ) ; }
else
{ self . elements . contentWrapper . css ( { border : self . options . style . border . width + 'px solid ' + self . options . style . border . color } ) ; self . options . style . border . radius = 0 ; self . options . style . tip . corner = false ; } ; if ( ( typeof self . options . content . text == 'string' && self . options . content . text . length > 0 ) || ( self . options . content . text . jquery && self . options . content . text . length > 0 ) )
content = self . options . content . text ; else if ( typeof self . elements . target . attr ( 'title' ) == 'string' && self . elements . target . attr ( 'title' ) . length > 0 )
{ content = self . elements . target . attr ( 'title' ) . replace ( /\n/gi , '<br />' ) ; self . elements . target . attr ( 'title' , '' ) ; }
else if ( typeof self . elements . target . attr ( 'alt' ) == 'string' && self . elements . target . attr ( 'alt' ) . length > 0 )
{ content = self . elements . target . attr ( 'alt' ) . replace ( /\n/gi , '<br />' ) ; self . elements . target . attr ( 'alt' , '' ) ; }
else
{ content = ' ' ; } ; if ( self . options . content . title . text !== false ) createTitle . call ( self ) ; self . updateContent ( content ) ; assignEvents . call ( self ) ; if ( self . options . show . ready === true ) self . show ( ) ; if ( self . options . content . url !== false )
{ url = self . options . content . url ; data = self . options . content . data ; method = self . options . content . method || 'get' ; self . loadContent ( url , data , method ) ; } ; self . onRender . call ( self ) ; } ; function createBorder ( )
{ var self , i , width , radius , color , coordinates , containers , size , betweenWidth , betweenCorners , borderTop , borderBottom , borderCoord , sideWidth , vertWidth ; self = this ; self . elements . wrapper . find ( '.qtip-borderBottom, .qtip-borderTop' ) . remove ( ) ; width = self . options . style . border . width ; radius = self . options . style . border . radius ; color = self . options . style . border . color || self . options . style . tip . color ; coordinates = calculateBorders ( radius ) ; containers = { } ; for ( i in coordinates )
{ containers [ i ] = '<div rel="' + i + '" style="' + ( ( /Left/ ) . test ( i ) ? 'left' : 'right' ) + ':0; ' + 'position:absolute; height:' + radius + 'px; width:' + radius + 'px; overflow:hidden; line-height:0.1px; font-size:1px">' ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
containers [ i ] += '<canvas height="' + radius + '" width="' + radius + '" style="vertical-align: top"></canvas>' ; else if ( $ . browser . msie )
{ size = radius * 2 + 3 ; containers [ i ] += '<v:arc stroked="false" fillcolor="' + color + '" startangle="' + coordinates [ i ] [ 0 ] + '" endangle="' + coordinates [ i ] [ 1 ] + '" ' + 'style="width:' + size + 'px; height:' + size + 'px; margin-top:' + ( ( /bottom/ ) . test ( i ) ? - 2 : - 1 ) + 'px; ' + 'margin-left:' + ( ( /Right/ ) . test ( i ) ? coordinates [ i ] [ 2 ] - 3.5 : - 1 ) + 'px; ' + 'vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>' ; } ; containers [ i ] += '</div>' ; } ; betweenWidth = self . getDimensions ( ) . width - ( Math . max ( width , radius ) * 2 ) ; betweenCorners = '<div class="qtip-betweenCorners" style="height:' + radius + 'px; width:' + betweenWidth + 'px; ' + 'overflow:hidden; background-color:' + color + '; line-height:0.1px; font-size:1px;">' ; borderTop = '<div class="qtip-borderTop" dir="ltr" style="height:' + radius + 'px; ' + 'margin-left:' + radius + 'px; line-height:0.1px; font-size:1px; padding:0;">' +
containers [ 'topLeft' ] + containers [ 'topRight' ] + betweenCorners ; self . elements . wrapper . prepend ( borderTop ) ; borderBottom = '<div class="qtip-borderBottom" dir="ltr" style="height:' + radius + 'px; ' + 'margin-left:' + radius + 'px; line-height:0.1px; font-size:1px; padding:0;">' +
containers [ 'bottomLeft' ] + containers [ 'bottomRight' ] + betweenCorners ; self . elements . wrapper . append ( borderBottom ) ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
{ self . elements . wrapper . find ( 'canvas' ) . each ( function ( )
{ borderCoord = coordinates [ $ ( this ) . parent ( '[rel]:first' ) . attr ( 'rel' ) ] ; drawBorder . call ( self , $ ( this ) , borderCoord , radius , color ) ; } ) }
else if ( $ . browser . msie ) self . elements . tooltip . append ( '<v:image style="behavior:url(#default#VML);"></v:image>' ) ; sideWidth = Math . max ( radius , ( radius + ( width - radius ) ) )
vertWidth = Math . max ( width - radius , 0 ) ; self . elements . contentWrapper . css ( { border : '0px solid ' + color , borderWidth : vertWidth + 'px ' + sideWidth + 'px' } ) } ; function drawBorder ( canvas , coordinates , radius , color )
{ var context = canvas . get ( 0 ) . getContext ( '2d' ) ; context . fillStyle = color ; context . beginPath ( ) ; context . arc ( coordinates [ 0 ] , coordinates [ 1 ] , radius , 0 , Math . PI * 2 , false ) ; context . fill ( ) ; } ; function createTip ( corner )
{ var self , color , coordinates , coordsize , path , tip ; self = this ; if ( self . elements . tip !== null ) self . elements . tip . remove ( ) ; color = self . options . style . tip . color || self . options . style . border . color ; if ( self . options . style . tip . corner === false ) return ; else if ( ! corner ) corner = self . options . style . tip . corner ; coordinates = calculateTip ( corner , self . options . style . tip . size . width , self . options . style . tip . size . height ) ; self . elements . tip = '<div class="' + self . options . style . classes . tip + '" dir="ltr" rel="' + corner + '" style="position:absolute; ' + 'height:' + self . options . style . tip . size . height + 'px; width:' + self . options . style . tip . size . width + 'px; ' + 'margin:0 auto; line-height:0.1px; font-size:1px;"></div>' ; self . elements . tooltip . prepend ( self . elements . tip ) ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
tip = '<canvas height="' + self . options . style . tip . size . height + '" width="' + self . options . style . tip . size . width + '"></canvas>' ; else if ( $ . browser . msie )
{ coordsize = self . options . style . tip . size . width + ',' + self . options . style . tip . size . height ; path = 'm' + coordinates [ 0 ] [ 0 ] + ',' + coordinates [ 0 ] [ 1 ] ; path += ' l' + coordinates [ 1 ] [ 0 ] + ',' + coordinates [ 1 ] [ 1 ] ; path += ' ' + coordinates [ 2 ] [ 0 ] + ',' + coordinates [ 2 ] [ 1 ] ; path += ' xe' ; tip = '<v:shape fillcolor="' + color + '" stroked="false" filled="true" path="' + path + '" coordsize="' + coordsize + '" ' + 'style="width:' + self . options . style . tip . size . width + 'px; height:' + self . options . style . tip . size . height + 'px; ' + 'line-height:0.1px; display:inline-block; behavior:url(#default#VML); ' + 'vertical-align:' + ( ( /top/ ) . test ( corner ) ? 'bottom' : 'top' ) + '"></v:shape>' ; tip += '<v:image style="behavior:url(#default#VML);"></v:image>' ; self . elements . contentWrapper . css ( 'position' , 'relative' ) ; } ; self . elements . tip = self . elements . tooltip . find ( '.' + self . options . style . classes . tip ) . eq ( 0 ) ; self . elements . tip . html ( tip ) ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
drawTip . call ( self , self . elements . tip . find ( 'canvas:first' ) , coordinates , color ) ; if ( ( /top/ ) . test ( corner ) && $ . browser . msie && parseInt ( $ . browser . version . charAt ( 0 ) ) === 6 )
self . elements . tip . css ( { marginTop : - 4 } ) ; positionTip . call ( self , corner ) ; } ; function drawTip ( canvas , coordinates , color )
{ var context = canvas . get ( 0 ) . getContext ( '2d' ) ; context . fillStyle = color ; context . beginPath ( ) ; context . moveTo ( coordinates [ 0 ] [ 0 ] , coordinates [ 0 ] [ 1 ] ) ; context . lineTo ( coordinates [ 1 ] [ 0 ] , coordinates [ 1 ] [ 1 ] ) ; context . lineTo ( coordinates [ 2 ] [ 0 ] , coordinates [ 2 ] [ 1 ] ) ; context . fill ( ) ; } ; function positionTip ( corner )
{ var self , ieAdjust , paddingCorner , paddingSize , newMargin ; self = this ; if ( self . options . style . tip . corner === false || ! self . elements . tip ) return ; if ( ! corner ) corner = self . elements . tip . attr ( 'rel' ) ; ieAdjust = positionAdjust = ( $ . browser . msie ) ? 1 : 0 ; self . elements . tip . css ( corner . match ( /left|right|top|bottom/ ) [ 0 ] , 0 ) ; if ( ( /top|bottom/ ) . test ( corner ) )
{ if ( $ . browser . msie )
{ if ( parseInt ( $ . browser . version . charAt ( 0 ) ) === 6 )
positionAdjust = ( ( /top/ ) . test ( corner ) ) ? - 3 : 1 ; else
positionAdjust = ( ( /top/ ) . test ( corner ) ) ? 1 : 2 ; } ; if ( ( /Middle/ ) . test ( corner ) )
self . elements . tip . css ( { left : '50%' , marginLeft : - ( self . options . style . tip . size . width / 2 ) } ) ; else if ( ( /Left/ ) . test ( corner ) )
self . elements . tip . css ( { left : self . options . style . border . radius - ieAdjust } ) ; else if ( ( /Right/ ) . test ( corner ) )
self . elements . tip . css ( { right : self . options . style . border . radius + ieAdjust } ) ; if ( ( /top/ ) . test ( corner ) )
self . elements . tip . css ( { top : - positionAdjust } ) ; else
self . elements . tip . css ( { bottom : positionAdjust } ) ; }
else if ( ( /left|right/ ) . test ( corner ) )
{ if ( $ . browser . msie )
positionAdjust = ( parseInt ( $ . browser . version . charAt ( 0 ) ) === 6 ) ? 1 : ( ( /left/ ) . test ( corner ) ? 1 : 2 ) ; if ( ( /Middle/ ) . test ( corner ) )
self . elements . tip . css ( { top : '50%' , marginTop : - ( self . options . style . tip . size . height / 2 ) } ) ; else if ( ( /Top/ ) . test ( corner ) )
self . elements . tip . css ( { top : self . options . style . border . radius - ieAdjust } ) ; else if ( ( /Bottom/ ) . test ( corner ) )
self . elements . tip . css ( { bottom : self . options . style . border . radius + ieAdjust } ) ; if ( ( /left/ ) . test ( corner ) )
self . elements . tip . css ( { left : - positionAdjust } ) ; else
self . elements . tip . css ( { right : positionAdjust } ) ; } ; paddingCorner = 'padding-' + corner . match ( /left|right|top|bottom/ ) [ 0 ] ; paddingSize = self . options . style . tip . size [ ( /left|right/ ) . test ( paddingCorner ) ? 'width' : 'height' ] ; self . elements . tooltip . css ( 'padding' , 0 ) ; self . elements . tooltip . css ( paddingCorner , paddingSize ) ; if ( $ . browser . msie && parseInt ( $ . browser . version . charAt ( 0 ) ) == 6 )
{ newMargin = parseInt ( self . elements . tip . css ( 'margin-top' ) ) || 0 ; newMargin += parseInt ( self . elements . content . css ( 'margin-top' ) ) || 0 ; self . elements . tip . css ( { marginTop : newMargin } ) ; } ; } ; function createTitle ( )
{ var self = this ; if ( self . elements . title !== null ) self . elements . title . remove ( ) ; self . elements . tooltip . attr ( 'aria-labelledby' , 'qtip-' + self . id + '-title' ) ; self . elements . title = $ ( '<div id="qtip-' + self . id + '-title" class="' + self . options . style . classes . title + '"></div>' ) . css ( jQueryStyle ( self . options . style . title , true ) ) . css ( { zoom : ( $ . browser . msie ) ? 1 : 0 } ) . prependTo ( self . elements . contentWrapper ) ; if ( self . options . content . title . text ) self . updateTitle . call ( self , self . options . content . title . text ) ; if ( self . options . content . title . button !== false && typeof self . options . content . title . button == 'string' )
{ self . elements . button = $ ( '<a class="' + self . options . style . classes . button + '" role="button" style="float:right; position: relative"></a>' ) . css ( jQueryStyle ( self . options . style . button , true ) ) . html ( self . options . content . title . button ) . prependTo ( self . elements . title ) . click ( function ( event ) { if ( ! self . status . disabled ) self . hide ( event ) } ) ; } ; } ; function assignEvents ( )
{ var self , showTarget , hideTarget , inactiveEvents ; self = this ; showTarget = self . options . show . when . target ; hideTarget = self . options . hide . when . target ; if ( self . options . hide . fixed ) hideTarget = hideTarget . add ( self . elements . tooltip ) ; if ( self . options . hide . when . event == 'inactive' )
{ inactiveEvents = [ 'click' , 'dblclick' , 'mousedown' , 'mouseup' , 'mousemove' , 'mouseout' , 'mouseenter' , 'mouseleave' , 'mouseover' ] ; function inactiveMethod ( event )
{ if ( self . status . disabled === true ) return ; clearTimeout ( self . timers . inactive ) ; self . timers . inactive = setTimeout ( function ( )
{ $ ( inactiveEvents ) . each ( function ( )
{ hideTarget . unbind ( this + '.qtip-inactive' ) ; self . elements . content . unbind ( this + '.qtip-inactive' ) ; } ) ; self . hide ( event ) ; } , self . options . hide . delay ) ; } ; }
else if ( self . options . hide . fixed === true )
{ self . elements . tooltip . bind ( 'mouseover.qtip' , function ( )
{ if ( self . status . disabled === true ) return ; clearTimeout ( self . timers . hide ) ; } ) ; } ; function showMethod ( event )
{ if ( self . status . disabled === true ) return ; if ( self . options . hide . when . event == 'inactive' )
{ $ ( inactiveEvents ) . each ( function ( )
{ hideTarget . bind ( this + '.qtip-inactive' , inactiveMethod ) ; self . elements . content . bind ( this + '.qtip-inactive' , inactiveMethod ) ; } ) ; inactiveMethod ( ) ; } ; clearTimeout ( self . timers . show ) ; clearTimeout ( self . timers . hide ) ; if ( self . options . show . delay > 0 ) { self . timers . show = setTimeout ( function ( ) { self . show ( event ) ; } , self . options . show . delay ) ; }
else { self . show ( event ) ; } } ; function hideMethod ( event )
{ if ( self . status . disabled === true ) return ; if ( self . options . hide . fixed === true && ( /mouse(out|leave)/i ) . test ( self . options . hide . when . event ) && $ ( event . relatedTarget ) . parents ( 'div.qtip[id^="qtip"]' ) . length > 0 )
{ event . stopPropagation ( ) ; event . preventDefault ( ) ; clearTimeout ( self . timers . hide ) ; return false ; } ; clearTimeout ( self . timers . show ) ; clearTimeout ( self . timers . hide ) ; self . elements . tooltip . stop ( true , true ) ; self . timers . hide = setTimeout ( function ( ) { self . hide ( event ) ; } , self . options . hide . delay ) ; } ; if ( ( self . options . show . when . target . add ( self . options . hide . when . target ) . length === 1 && self . options . show . when . event == self . options . hide . when . event && self . options . hide . when . event !== 'inactive' ) || self . options . hide . when . event == 'unfocus' )
{ self . cache . toggle = 0 ; showTarget . bind ( self . options . show . when . event + '.qtip' , function ( event )
{ if ( self . cache . toggle == 0 ) showMethod ( event ) ; else hideMethod ( event ) ; } ) ; }
else
{ showTarget . bind ( self . options . show . when . event + '.qtip' , showMethod ) ; if ( self . options . hide . when . event !== 'inactive' )
hideTarget . bind ( self . options . hide . when . event + '.qtip' , hideMethod ) ; } ; if ( ( /(fixed|absolute)/ ) . test ( self . options . position . type ) )
self . elements . tooltip . bind ( 'mouseover.qtip' , self . focus ) ; if ( self . options . position . target === 'mouse' && self . options . position . type !== 'static' )
{ showTarget . bind ( 'mousemove.qtip' , function ( event )
{ self . cache . mouse = { x : event . pageX , y : event . pageY } ; if ( self . status . disabled === false && self . options . position . adjust . mouse === true && self . options . position . type !== 'static' && self . elements . tooltip . css ( 'display' ) !== 'none' )
self . updatePosition ( event ) ; } ) ; } ; } ; function screenAdjust ( position , target , tooltip )
{ var self , adjustedPosition , adjust , newCorner , overflow , corner ; self = this ; if ( tooltip . corner == 'center' ) return target . position
adjustedPosition = $ . extend ( { } , position ) ; newCorner = { x : false , y : false } ; overflow = { left : ( adjustedPosition . left < $ . fn . qtip . cache . screen . scroll . left ) , right : ( adjustedPosition . left + tooltip . dimensions . width + 2 >= $ . fn . qtip . cache . screen . width + $ . fn . qtip . cache . screen . scroll . left ) , top : ( adjustedPosition . top < $ . fn . qtip . cache . screen . scroll . top ) , bottom : ( adjustedPosition . top + tooltip . dimensions . height + 2 >= $ . fn . qtip . cache . screen . height + $ . fn . qtip . cache . screen . scroll . top ) } ; adjust = { left : ( overflow . left && ( ( /right/i ) . test ( tooltip . corner ) || ! overflow . right ) ) , right : ( overflow . right && ( ( /left/i ) . test ( tooltip . corner ) || ! overflow . left ) ) , top : ( overflow . top && ! ( /top/i ) . test ( tooltip . corner ) ) , bottom : ( overflow . bottom && ! ( /bottom/i ) . test ( tooltip . corner ) ) } ; if ( adjust . left )
{ if ( self . options . position . target !== 'mouse' )
adjustedPosition . left = target . position . left + target . dimensions . width ; else
adjustedPosition . left = self . cache . mouse . x
newCorner . x = 'Left' ; }
else if ( adjust . right )
{ if ( self . options . position . target !== 'mouse' )
adjustedPosition . left = target . position . left - tooltip . dimensions . width ; else
adjustedPosition . left = self . cache . mouse . x - tooltip . dimensions . width ; newCorner . x = 'Right' ; } ; if ( adjust . top )
{ if ( self . options . position . target !== 'mouse' )
adjustedPosition . top = target . position . top + target . dimensions . height ; else
adjustedPosition . top = self . cache . mouse . y
newCorner . y = 'top' ; }
else if ( adjust . bottom )
{ if ( self . options . position . target !== 'mouse' )
adjustedPosition . top = target . position . top - tooltip . dimensions . height ; else
adjustedPosition . top = self . cache . mouse . y - tooltip . dimensions . height ; newCorner . y = 'bottom' ; } ; if ( adjustedPosition . left < 0 )
{ adjustedPosition . left = position . left ; newCorner . x = false ; } ; if ( adjustedPosition . top < 0 )
{ adjustedPosition . top = position . top ; newCorner . y = false ; } ; if ( self . options . style . tip . corner !== false )
{ adjustedPosition . corner = new String ( tooltip . corner ) ; if ( adjustedPosition . corner . match ( /^(right|left)/ ) ) { if ( newCorner . x !== false ) adjustedPosition . corner = adjustedPosition . corner . replace ( /(left|right)/ , newCorner . x . toLowerCase ( ) ) ; } else { if ( newCorner . x !== false ) adjustedPosition . corner = adjustedPosition . corner . replace ( /Left|Right|Middle/ , newCorner . x ) ; if ( newCorner . y !== false ) adjustedPosition . corner = adjustedPosition . corner . replace ( /top|bottom/ , newCorner . y ) ; }
if ( adjustedPosition . corner !== self . elements . tip . attr ( 'rel' ) )
createTip . call ( self , adjustedPosition . corner ) ; } ; return adjustedPosition ; } ; function jQueryStyle ( style , sub )
{ var styleObj , i ; styleObj = $ . extend ( true , { } , style ) ; for ( i in styleObj )
{ if ( sub === true && ( /(tip|classes)/i ) . test ( i ) )
delete styleObj [ i ] ; else if ( ! sub && ( /(width|border|tip|title|classes|user)/i ) . test ( i ) )
delete styleObj [ i ] ; } ; return styleObj ; } ; function sanitizeStyle ( style )
{ if ( typeof style . tip !== 'object' ) style . tip = { corner : style . tip } ; if ( typeof style . tip . size !== 'object' ) style . tip . size = { width : style . tip . size , height : style . tip . size } ; if ( typeof style . border !== 'object' ) style . border = { width : style . border } ; if ( typeof style . width !== 'object' ) style . width = { value : style . width } ; if ( typeof style . width . max == 'string' ) style . width . max = parseInt ( style . width . max . replace ( /([0-9]+)/i , "$1" ) ) ; if ( typeof style . width . min == 'string' ) style . width . min = parseInt ( style . width . min . replace ( /([0-9]+)/i , "$1" ) ) ; if ( typeof style . tip . size . x == 'number' )
{ style . tip . size . width = style . tip . size . x ; delete style . tip . size . x ; } ; if ( typeof style . tip . size . y == 'number' )
{ style . tip . size . height = style . tip . size . y ; delete style . tip . size . y ; } ; return style ; } ; function buildStyle ( )
{ var self , i , styleArray , styleExtend , finalStyle , ieAdjust ; self = this ; styleArray = [ true , { } ] ; for ( i = 0 ; i < arguments . length ; i ++ )
styleArray . push ( arguments [ i ] ) ; styleExtend = [ $ . extend . apply ( $ , styleArray ) ] ; while ( typeof styleExtend [ 0 ] . name == 'string' )
{ styleExtend . unshift ( sanitizeStyle ( $ . fn . qtip . styles [ styleExtend [ 0 ] . name ] ) ) ; } ; styleExtend . unshift ( true , { classes : { tooltip : 'qtip-' + ( arguments [ 0 ] . name || 'defaults' ) } } , $ . fn . qtip . styles . defaults ) ; finalStyle = $ . extend . apply ( $ , styleExtend ) ; ieAdjust = ( $ . browser . msie ) ? 1 : 0 ; finalStyle . tip . size . width += ieAdjust ; finalStyle . tip . size . height += ieAdjust ; if ( finalStyle . tip . size . width % 2 > 0 ) finalStyle . tip . size . width += 1 ; if ( finalStyle . tip . size . height % 2 > 0 ) finalStyle . tip . size . height += 1 ; if ( finalStyle . tip . corner === true )
finalStyle . tip . corner = ( self . options . position . corner . tooltip === 'center' ) ? false : self . options . position . corner . tooltip ; return finalStyle ; } ; function calculateTip ( corner , width , height )
{ var tips = { bottomRight : [ [ 0 , 0 ] , [ width , height ] , [ width , 0 ] ] , bottomLeft : [ [ 0 , 0 ] , [ width , 0 ] , [ 0 , height ] ] , topRight : [ [ 0 , height ] , [ width , 0 ] , [ width , height ] ] , topLeft : [ [ 0 , 0 ] , [ 0 , height ] , [ width , height ] ] , topMiddle : [ [ 0 , height ] , [ width / 2 , 0 ] , [ width , height ] ] , bottomMiddle : [ [ 0 , 0 ] , [ width , 0 ] , [ width / 2 , height ] ] , rightMiddle : [ [ 0 , 0 ] , [ width , height / 2 ] , [ 0 , height ] ] , leftMiddle : [ [ width , 0 ] , [ width , height ] , [ 0 , height / 2 ] ] } ; tips . leftTop = tips . bottomRight ; tips . rightTop = tips . bottomLeft ; tips . leftBottom = tips . topRight ; tips . rightBottom = tips . topLeft ; return tips [ corner ] ; } ; function calculateBorders ( radius )
{ var borders ; if ( $ ( '<canvas />' ) . get ( 0 ) . getContext )
{ borders = { topLeft : [ radius , radius ] , topRight : [ 0 , radius ] , bottomLeft : [ radius , 0 ] , bottomRight : [ 0 , 0 ] } ; }
else if ( $ . browser . msie )
{ borders = { topLeft : [ - 90 , 90 , 0 ] , topRight : [ - 90 , 90 , - radius ] , bottomLeft : [ 90 , 270 , 0 ] , bottomRight : [ 90 , 270 , - radius ] } ; } ; return borders ; } ; function bgiframe ( )
{ var self , html , dimensions ; self = this ; dimensions = self . getDimensions ( ) ; html = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" ' + 'style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; ' + 'height:' + dimensions . height + 'px; width:' + dimensions . width + 'px" />' ; self . elements . bgiframe = self . elements . wrapper . prepend ( html ) . children ( '.qtip-bgiframe:first' ) ; } ; $ ( document ) . ready ( function ( )
{ $ . fn . qtip . cache = { screen : { scroll : { left : $ ( window ) . scrollLeft ( ) , top : $ ( window ) . scrollTop ( ) } , width : $ ( window ) . width ( ) , height : $ ( window ) . height ( ) } } ; var adjustTimer ; $ ( window ) . bind ( 'resize scroll' , function ( event )
{ clearTimeout ( adjustTimer ) ; adjustTimer = setTimeout ( function ( )
{ if ( event . type === 'scroll' )
$ . fn . qtip . cache . screen . scroll = { left : $ ( window ) . scrollLeft ( ) , top : $ ( window ) . scrollTop ( ) } ; else
{ $ . fn . qtip . cache . screen . width = $ ( window ) . width ( ) ; $ . fn . qtip . cache . screen . height = $ ( window ) . height ( ) ; } ; for ( i = 0 ; i < $ . fn . qtip . interfaces . length ; i ++ )
{ var api = $ . fn . qtip . interfaces [ i ] ; if ( api && api . status && api . status . rendered === true && api . options . position . type !== 'static' && ( api . options . position . adjust . scroll && event . type === 'scroll' || api . options . position . adjust . resize && event . type === 'resize' ) )
{ api . updatePosition ( event , true ) ; } } ; } , 100 ) ; } )
$ ( document ) . bind ( 'mousedown.qtip' , function ( event )
{ if ( $ ( event . target ) . parents ( 'div.qtip' ) . length === 0 )
{ $ ( '.qtip[unfocus]' ) . each ( function ( )
{ var api = $ ( this ) . qtip ( "api" ) ; if ( $ ( this ) . is ( ':visible' ) && api && api . status && ! api . status . disabled && $ ( event . target ) . add ( api . elements . target ) . length > 1 )
api . hide ( event ) ; } ) } ; } ) } ) ; $ . fn . qtip . interfaces = [ ]
$ . fn . qtip . log = { error : function ( ) { return this ; } } ; $ . fn . qtip . constants = { } ; $ . fn . qtip . defaults = { content : { prerender : false , text : false , url : false , data : null , title : { text : false , button : false } } , position : { target : false , corner : { target : 'bottomRight' , tooltip : 'topLeft' } , adjust : { x : 0 , y : 0 , mouse : true , screen : false , scroll : true , resize : true } , type : 'absolute' , container : false } , show : { when : { target : false , event : 'mouseover' } , effect : { type : 'fade' , length : 100 } , delay : 140 , solo : false , ready : false } , hide : { when : { target : false , event : 'mouseout' } , effect : { type : 'fade' , length : 100 } , delay : 0 , fixed : false } , api : { beforeRender : function ( ) { } , onRender : function ( ) { } , beforePositionUpdate : function ( ) { } , onPositionUpdate : function ( ) { } , beforeShow : function ( ) { } , onShow : function ( ) { } , beforeHide : function ( ) { } , onHide : function ( ) { } , beforeContentUpdate : function ( ) { } , onContentUpdate : function ( ) { } , beforeContentLoad : function ( ) { } , onContentLoad : function ( ) { } , beforeTitleUpdate : function ( ) { } , onTitleUpdate : function ( ) { } , beforeDestroy : function ( ) { } , onDestroy : function ( ) { } , beforeFocus : function ( ) { } , onFocus : function ( ) { } } } ; $ . fn . qtip . styles = { defaults : { background : 'white' , color : '#111' , overflow : 'hidden' , textAlign : 'left' , width : { min : 0 , max : 250 } , padding : '5px 9px' , border : { width : 1 , radius : 0 , color : '#d3d3d3' } , tip : { corner : false , color : false , size : { width : 13 , height : 13 } , opacity : 1 } , title : { background : '#e1e1e1' , fontWeight : 'bold' , padding : '7px 12px' } , button : { cursor : 'pointer' } , classes : { target : '' , tip : 'qtip-tip' , title : 'qtip-title' , button : 'qtip-button' , content : 'qtip-content' , active : 'qtip-active' } } , cream : { border : { width : 3 , radius : 0 , color : '#F9E98E' } , title : { background : '#F0DE7D' , color : '#A27D35' } , background : '#FBF7AA' , color : '#A27D35' , classes : { tooltip : 'qtip-cream' } } , light : { border : { width : 3 , radius : 0 , color : '#E2E2E2' } , title : { background : '#f1f1f1' , color : '#454545' } , background : 'white' , color : '#454545' , classes : { tooltip : 'qtip-light' } } , dark : { border : { width : 3 , radius : 0 , color : '#303030' } , title : { background : '#404040' , color : '#f3f3f3' } , background : '#505050' , color : '#f3f3f3' , classes : { tooltip : 'qtip-dark' } } , red : { border : { width : 3 , radius : 0 , color : '#CE6F6F' } , title : { background : '#f28279' , color : '#9C2F2F' } , background : '#F79992' , color : '#9C2F2F' , classes : { tooltip : 'qtip-red' } } , green : { border : { width : 3 , radius : 0 , color : '#A9DB66' } , title : { background : '#b9db8c' , color : '#58792E' } , background : '#CDE6AC' , color : '#58792E' , classes : { tooltip : 'qtip-green' } } , blue : { border : { width : 3 , radius : 0 , color : '#ADD9ED' } , title : { background : '#D0E9F5' , color : '#5E99BD' } , background : '#E5F6FE' , color : '#4D9FBF' , classes : { tooltip : 'qtip-blue' } } } ; } ) ( jQuery ) ; $ ( document ) . ready ( function ( ) { $ ( "#Menu" ) . accordion ( { autoHeight : false , collapsible : true , active : 0 } ) ; $ ( window ) . scroll ( function ( ) { var offset = $ ( document ) . scrollTop ( ) ; $ ( "#floatMenu" ) . css ( 'margin-top' , offset ) ; } ) ; $ ( '#formR-naf' ) . autocomplete ( { minLength : 3 , source : function ( request , response ) { $ . getJSON ( './pages/nafajax.php' , { q : request . term } , function ( data ) { response ( data ) ; } ) ; } } ) ; $ ( 'input[name=formR[siret]]' ) . focus ( ) ; $ ( 'form[name=form_recherche]' ) . submit ( function ( ) { var reg = /[a-z]{3}/i ; var siret = $ ( 'input[name=formR[siret]]' ) . val ( ) ; if ( siret . match ( reg ) ) { $ ( 'input[name=formR[raisonSociale]]' ) . attr ( 'value' , siret ) ; $ ( 'input[name=formR[siret]]' ) . attr ( 'value' , '' ) ; }
return true ; } ) ; $ ( 'input.button' ) . button ( ) ; $ ( 'input.button:reset' ) . click ( function ( ) { $ ( 'input:text' , 'form[name=form_recherche]' ) . val ( '' ) ; return false ; } ) ; $ ( '.dialogsurv' ) . live ( 'click' , function ( ) { var title = $ ( this ) . attr ( 'title' ) ; var href = $ ( this ) . attr ( 'href' ) + '&dialog=1' ; var dialogOpts = { bgiframe : true , title : title , width : 500 , height : 350 , modal : true , open : function ( event , ui ) { $ ( this ) . html ( 'Chargement...' ) ; $ ( this ) . load ( href ) ; $ ( '#dialogsurv' ) . keypress ( function ( e ) { if ( e . keyCode == 13 ) { e . preventDefault ( ) ; survSubmit ( ) ; } } ) ; } , buttons : { Ok : function ( ) { survSubmit ( ) ; } , Annuler : function ( ) { $ ( this ) . dialog ( 'close' ) ; } } , close : function ( ) { $ ( '#dialogsurv' ) . remove ( ) ; } } ; $ ( '<div id="dialogsurv"></div>' ) . dialog ( dialogOpts ) ; return false ; } ) ; function survSubmit ( ) { var buttons = $ ( '#dialogsurv' ) . dialog ( 'option' , 'buttons' ) ; for ( var button in buttons ) { $ ( ":button:contains('" + button + "')" ) . attr ( 'disabled' , 'disabled' ) ; }
var formAction = $ ( '#frmSurv' ) . attr ( 'action' ) ; var href = $ ( location ) . attr ( 'href' ) ; var serData = $ ( '#frmSurv' ) . serialize ( ) ; $ ( '#frmSurv' ) . replaceWith ( '<div id="frmSurv">Mise sous surveillance en cours...</div>' ) ; $ . post ( formAction , serData , function ( data ) { if ( data == '' ) { $ ( '#frmSurv' ) . html ( "L'entité a été placé sous surveillance.\n" ) ; $ ( location ) . attr ( 'href' , href ) ; } else { $ ( '#frmSurv' ) . html ( data ) ; } } ) ; }
$ ( 'a[idobjet]' ) . click ( function ( )
2010-07-15 14:43:48 +00:00
{ idObject = $ ( this ) . attr ( 'idobjet' ) ; $ ( '#document' + idObject ) . html ( 'Construction du document en cours...' ) ; $ . ajax ( { type : "POST" , url : "/" , data : "page=getmarques&idObject=" + idObject , success : function ( msg ) { $ ( '#document' + idObject ) . html ( msg ) ; } , error : function ( ) { $ ( '#document' + idObject ) . html ( 'Erreur' ) ; } } ) ; } ) ; $ ( '.datemaj' ) . qtip ( { content : $ ( this ) . attr ( 'alt' ) , style : { name : 'cream' , width : 170 } , position : { corner : { target : 'bottomMiddle' , tooltip : 'topMiddle' } } } ) ; $ ( 'u[tooltip]' ) . each ( function ( ) { $ ( this ) . qtip ( { content : $ ( this ) . attr ( 'tooltip' ) , style : { name : 'dark' } , position : { corner : { target : 'topMiddle' , tooltip : 'bottomMiddle' } } } ) ; } ) ; if ( $ ( 'div.domiciliation' ) . length ) { $ ( 'div.domiciliation' ) . qtip ( { show : 'click' , hide : 'unfocus' , content : $ ( 'div.domiciliation span' ) . html ( ) , style : { name : 'cream' , width : 200 } , position : { corner : { target : 'bottomMiddle' , tooltip : 'topMiddle' } } } ) ; }
$ ( '#goidentite' ) . click ( function ( ) { var verif = false ; var siret = $ ( 'input[name="formR[siret]"]' ) . val ( ) . replace ( /\s+/g , '' ) ; if ( siret . length == 9 ) { verif = EstSirenValide ( siret ) ; } else if ( siret . length == 14 ) { verif = EstSiretValide ( siret ) ; }
2010-08-02 15:39:52 +00:00
if ( verif ) { $ ( location ) . attr ( 'href' , './?page=identite&siret=' + siret ) ; } else { $ ( 'input[name=submit]' ) . click ( ) ; } } ) ; } ) ; function checkEmail ( eMail ) { var isMail = eMail . length ; var verif = /^[a-z0-9_.-]+@[a-z0-9_.-]+[.][a-z]{2,4}$/i ; if ( ! isMail || verif . exec ( eMail ) == null ) { return false ; } else { return true ; } }
2010-07-15 14:43:48 +00:00
function EstSirenValide ( siren ) { var estValide ; if ( ( siren . length != 9 ) || ( isNaN ( siren ) ) )
estValide = false ; else { var somme = 0 ; var tmp ; for ( var cpt = 0 ; cpt < siren . length ; cpt ++ ) { if ( ( cpt % 2 ) == 1 ) { tmp = siren . charAt ( cpt ) * 2 ; if ( tmp > 9 )
tmp -= 9 ; }
else
tmp = siren . charAt ( cpt ) ; somme += parseInt ( tmp ) ; }
if ( ( somme % 10 ) == 0 )
estValide = true ; else
estValide = false ; }
return estValide ; }
function EstSiretValide ( siret ) { var estValide ; if ( ( siret . length != 14 ) || ( isNaN ( siret ) ) )
estValide = false ; else { var somme = 0 ; var tmp ; for ( var cpt = 0 ; cpt < siret . length ; cpt ++ ) { if ( ( cpt % 2 ) == 0 ) { tmp = siret . charAt ( cpt ) * 2 ; if ( tmp > 9 )
tmp -= 9 ; }
else
tmp = siret . charAt ( cpt ) ; somme += parseInt ( tmp ) ; }
if ( ( somme % 10 ) == 0 )
estValide = true ; else
estValide = false ; }
return estValide ; }