2011-12-19 09:36:27 +00:00
/ * !
* jQuery JavaScript Library v1 . 7.1
* http : //jquery.com/
*
* Copyright 2011 , John Resig
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* Includes Sizzle . js
* http : //sizzlejs.com/
* Copyright 2011 , The Dojo Foundation
* Released under the MIT , BSD , and GPL Licenses .
*
* Date : Mon Nov 21 21 : 11 : 03 2011 - 0500
* /
( function ( a , b ) { function h ( a ) { var b = g [ a ] = { } , c , d ; a = a . split ( /\s+/ ) ; for ( c = 0 , d = a . length ; c < d ; c ++ ) b [ a [ c ] ] = ! 0 ; return b } function l ( a , c , d ) { if ( d === b && a . nodeType === 1 ) { var e = "data-" + c . replace ( k , "-$1" ) . toLowerCase ( ) ; d = a . getAttribute ( e ) ; if ( typeof d == "string" ) { try { d = d === "true" ? ! 0 : d === "false" ? ! 1 : d === "null" ? null : f . isNumeric ( d ) ? parseFloat ( d ) : j . test ( d ) ? f . parseJSON ( d ) : d } catch ( g ) { } f . data ( a , c , d ) } else d = b } return d } function m ( a ) { for ( var b in a ) { if ( b === "data" && f . isEmptyObject ( a [ b ] ) ) continue ; if ( b !== "toJSON" ) return ! 1 } return ! 0 } function n ( a , b , c ) { var d = b + "defer" , e = b + "queue" , g = b + "mark" , h = f . _data ( a , d ) ; h && ( c === "queue" || ! f . _data ( a , e ) ) && ( c === "mark" || ! f . _data ( a , g ) ) && setTimeout ( function ( ) { ! f . _data ( a , e ) && ! f . _data ( a , g ) && ( f . removeData ( a , d , ! 0 ) , h . fire ( ) ) } , 0 ) } function J ( ) { return ! 1 } function K ( ) { return ! 0 } function S ( a ) { return ! a || ! a . parentNode || a . parentNode . nodeType === 11 } function T ( a , b , c ) { b = b || 0 ; if ( f . isFunction ( b ) ) return f . grep ( a , function ( a , d ) { var e = ! ! b . call ( a , d , a ) ; return e === c } ) ; if ( b . nodeType ) return f . grep ( a , function ( a , d ) { return a === b === c } ) ; if ( typeof b == "string" ) { var d = f . grep ( a , function ( a ) { return a . nodeType === 1 } ) ; if ( O . test ( b ) ) return f . filter ( b , d , ! c ) ; b = f . filter ( b , d ) } return f . grep ( a , function ( a , d ) { return f . inArray ( a , b ) >= 0 === c } ) } function U ( a ) { var b = V . split ( "|" ) , c = a . createDocumentFragment ( ) ; if ( c . createElement ) while ( b . length ) c . createElement ( b . pop ( ) ) ; return c } function bi ( a , b ) { return f . nodeName ( a , "table" ) ? a . getElementsByTagName ( "tbody" ) [ 0 ] || a . appendChild ( a . ownerDocument . createElement ( "tbody" ) ) : a } function bj ( a , b ) { if ( b . nodeType !== 1 || ! f . hasData ( a ) ) return ; var c , d , e , g = f . _data ( a ) , h = f . _data ( b , g ) , i = g . events ; if ( i ) { delete h . handle , h . events = { } ; for ( c in i ) for ( d = 0 , e = i [ c ] . length ; d < e ; d ++ ) f . event . add ( b , c + ( i [ c ] [ d ] . namespace ? "." : "" ) + i [ c ] [ d ] . namespace , i [ c ] [ d ] , i [ c ] [ d ] . data ) } h . data && ( h . data = f . extend ( { } , h . data ) ) } function bk ( a , b ) { var c ; if ( b . nodeType !== 1 ) return ; b . clearAttributes && b . clearAttributes ( ) , b . mergeAttributes && b . mergeAttributes ( a ) , c = b . nodeName . toLowerCase ( ) ; if ( c === "object" ) b . outerHTML = a . outerHTML ; else if ( c !== "input" || a . type !== "checkbox" && a . type !== "radio" ) { if ( c === "option" ) b . selected = a . defaultSelected ; else if ( c === "input" || c === "textarea" ) b . defaultValue = a . defaultValue } else a . checked && ( b . defaultChecked = b . checked = a . checked ) , b . value !== a . value && ( b . value = a . value ) ; b . removeAttribute ( f . expando ) } function bl ( a ) { return typeof a . getElementsByTagName != "undefined" ? a . getElementsByTagName ( "*" ) : typeof a . querySelectorAll != "undefined" ? a . querySelectorAll ( "*" ) : [ ] } function bm ( a ) { if ( a . type === "checkbox" || a . type === "radio" ) a . defaultChecked = a . checked } function bn ( a ) { var b = ( a . nodeName || "" ) . toLowerCase ( ) ; b === "input" ? bm ( a ) : b !== "script" && typeof a . getElementsByTagName != "undefined" && f . grep ( a . getElementsByTagName ( "input" ) , bm ) } function bo ( a ) { var b = c . createElement ( "div" ) ; return bh . appendChild ( b ) , b . innerHTML = a . outerHTML , b . firstChild } function bp ( a , b ) { b . src ? f . ajax ( { url : b . src , async : ! 1 , dataType : "script" } ) : f . globalEval ( ( b . text || b . textContent || b . innerHTML || "" ) . replace ( bf , "/*$0*/" ) ) , b . parentNode && b . parentNode . removeChild ( b ) } function bC ( a , b , c ) { var d = b === "width" ? a . offsetWidth : a . offsetHeight , e = b === "width" ? bx : by , g = 0 , h = e . length ; if ( d > 0 ) { if ( c !== "border" ) for ( ; g < h ; g ++ ) c || ( d -= parseFloat ( f . css ( a , "padding" + e [ g ] ) ) || 0 ) , c === "margin" ? d += parseFloat ( f . css ( a , c + e [ g ] ) ) || 0 : d -= parseFloat ( f . css ( a , "border" + e [ g ] + "Width" ) ) || 0 ; return d + "px" } d = bz ( a , b , b ) ; if ( d < 0 || d == null ) d = a . style [ b ] || 0 ; d = parseFloat ( d ) || 0 ; if ( c ) for ( ; g < h ; g ++ ) d += parseFloat ( f . css ( a , "padding" + e [ g ] ) ) || 0 , c !== "padding" && ( d += parseFloat ( f . css ( a , "border" + e [ g ] + "Width" ) ) || 0 ) , c === "margin" && ( d += parseFloat ( f . css ( a , c + e [ g ] ) ) || 0 ) ; return d + "px" } function bZ ( a ) { return function ( b , c ) { typeof b != "string" && ( c = b , b = "*" ) ; if ( f . isFunction ( c ) ) { var d = b . toLowerCase ( ) . split ( bP ) , e = 0 , g = d . length , h , i , j ; for ( ; e < g ; e ++ ) h = d [ e ] , j = /^\+/ . test ( h ) , j && ( h = h . substr ( 1 ) || "*" ) , i = a [ h ] = a [ h ] || [ ] , i [ j ? "unshift" : "push" ] ( c ) } } } function b$ ( a , c , d , e , f , g ) { f = f || c . dataTypes [ 0 ] , g = g || { } , g [ f ] = ! 0 ; var h = a [ f ] , i = 0 , j = h ? h . length : 0 , k = a === bT , l ; for ( ; i < j && ( k || ! l ) ; i ++ ) l = h [ i ] ( c , d , e ) , typeof l == "string" && ( ! k || g [ l ] ? l = b : ( c . dataTypes . unshift ( l ) , l = b$ ( a , c , d , e , l , g ) ) ) ; return ( k || ! l ) && ! g [ "*" ] && ( l = b$ ( a , c , d , e , "*" , g ) ) , l } function b _ ( a , c ) { var d , e , g = f . ajaxSettings . flatOptions || { } ; for ( d in c ) c [ d ] !== b &&
, n , o , p , q , r , s ; if ( a . nodeType === 3 || a . nodeType === 8 || ! c || ! d || ! ( h = f . _data ( a ) ) ) return ; d . handler && ( p = d , d = p . handler ) , d . guid || ( d . guid = f . guid ++ ) , j = h . events , j || ( h . events = j = { } ) , i = h . handle , i || ( h . handle = i = function ( a ) { return typeof f == "undefined" || ! ! a && f . event . triggered === a . type ? b : f . event . dispatch . apply ( i . elem , arguments ) } , i . elem = a ) , c = f . trim ( I ( c ) ) . split ( " " ) ; for ( k = 0 ; k < c . length ; k ++ ) { l = A . exec ( c [ k ] ) || [ ] , m = l [ 1 ] , n = ( l [ 2 ] || "" ) . split ( "." ) . sort ( ) , s = f . event . special [ m ] || { } , m = ( g ? s . delegateType : s . bindType ) || m , s = f . event . special [ m ] || { } , o = f . extend ( { type : m , origType : l [ 1 ] , data : e , handler : d , guid : d . guid , selector : g , quick : G ( g ) , namespace : n . join ( "." ) } , p ) , r = j [ m ] ; if ( ! r ) { r = j [ m ] = [ ] , r . delegateCount = 0 ; if ( ! s . setup || s . setup . call ( a , e , n , i ) === ! 1 ) a . addEventListener ? a . addEventListener ( m , i , ! 1 ) : a . attachEvent && a . attachEvent ( "on" + m , i ) } s . add && ( s . add . call ( a , o ) , o . handler . guid || ( o . handler . guid = d . guid ) ) , g ? r . splice ( r . delegateCount ++ , 0 , o ) : r . push ( o ) , f . event . global [ m ] = ! 0 } a = null } , global : { } , remove : function ( a , b , c , d , e ) { var g = f . hasData ( a ) && f . _data ( a ) , h , i , j , k , l , m , n , o , p , q , r , s ; if ( ! g || ! ( o = g . events ) ) return ; b = f . trim ( I ( b || "" ) ) . split ( " " ) ; for ( h = 0 ; h < b . length ; h ++ ) { i = A . exec ( b [ h ] ) || [ ] , j = k = i [ 1 ] , l = i [ 2 ] ; if ( ! j ) { for ( j in o ) f . event . remove ( a , j + b [ h ] , c , d , ! 0 ) ; continue } p = f . event . special [ j ] || { } , j = ( d ? p . delegateType : p . bindType ) || j , r = o [ j ] || [ ] , m = r . length , l = l ? new RegExp ( "(^|\\.)" + l . split ( "." ) . sort ( ) . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) : null ; for ( n = 0 ; n < r . length ; n ++ ) s = r [ n ] , ( e || k === s . origType ) && ( ! c || c . guid === s . guid ) && ( ! l || l . test ( s . namespace ) ) && ( ! d || d === s . selector || d === "**" && s . selector ) && ( r . splice ( n -- , 1 ) , s . selector && r . delegateCount -- , p . remove && p . remove . call ( a , s ) ) ; r . length === 0 && m !== r . length && ( ( ! p . teardown || p . teardown . call ( a , l ) === ! 1 ) && f . removeEvent ( a , j , g . handle ) , delete o [ j ] ) } f . isEmptyObject ( o ) && ( q = g . handle , q && ( q . elem = null ) , f . removeData ( a , [ "events" , "handle" ] , ! 0 ) ) } , customEvent : { getData : ! 0 , setData : ! 0 , changeData : ! 0 } , trigger : function ( c , d , e , g ) { if ( ! e || e . nodeType !== 3 && e . nodeType !== 8 ) { var h = c . type || c , i = [ ] , j , k , l , m , n , o , p , q , r , s ; if ( E . test ( h + f . event . triggered ) ) return ; h . indexOf ( "!" ) >= 0 && ( h = h . slice ( 0 , - 1 ) , k = ! 0 ) , h . indexOf ( "." ) >= 0 && ( i = h . split ( "." ) , h = i . shift ( ) , i . sort ( ) ) ; if ( ( ! e || f . event . customEvent [ h ] ) && ! f . event . global [ h ] ) return ; c = typeof c == "object" ? c [ f . expando ] ? c : new f . Event ( h , c ) : new f . Event ( h ) , c . type = h , c . isTrigger = ! 0 , c . exclusive = k , c . namespace = i . join ( "." ) , c . namespace _re = c . namespace ? new RegExp ( "(^|\\.)" + i . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) : null , o = h . indexOf ( ":" ) < 0 ? "on" + h : "" ; if ( ! e ) { j = f . cache ; for ( l in j ) j [ l ] . events && j [ l ] . events [ h ] && f . event . trigger ( c , d , j [ l ] . handle . elem , ! 0 ) ; return } c . result = b , c . target || ( c . target = e ) , d = d != null ? f . makeArray ( d ) : [ ] , d . unshift ( c ) , p = f . event . special [ h ] || { } ; if ( p . trigger && p . trigger . apply ( e , d ) === ! 1 ) return ; r = [ [ e , p . bindType || h ] ] ; if ( ! g && ! p . noBubble && ! f . isWindow ( e ) ) { s = p . delegateType || h , m = E . test ( s + h ) ? e : e . parentNode , n = null ; for ( ; m ; m = m . parentNode ) r . push ( [ m , s ] ) , n = m ; n && n === e . ownerDocument && r . push ( [ n . defaultView || n . parentWindow || a , s ] ) } for ( l = 0 ; l < r . length && ! c . isPropagationStopped ( ) ; l ++ ) m = r [ l ] [ 0 ] , c . type = r [ l ] [ 1 ] , q = ( f . _data ( m , "events" ) || { } ) [ c . type ] && f . _data ( m , "handle" ) , q && q . apply ( m , d ) , q = o && m [ o ] , q && f . acceptData ( m ) && q . apply ( m , d ) === ! 1 && c . preventDefault ( ) ; return c . type = h , ! g && ! c . isDefaultPrevented ( ) && ( ! p . _default || p . _default . apply ( e . ownerDocument , d ) === ! 1 ) && ( h !== "click" || ! f . nodeName ( e , "a" ) ) && f . acceptData ( e ) && o && e [ h ] && ( h !== "focus" && h !== "blur" || c . target . offsetWidth !== 0 ) && ! f . isWindow ( e ) && ( n = e [ o ] , n && ( e [ o ] = null ) , f . event . triggered = h , e [ h ] ( ) , f . event . triggered = b , n && ( e [ o ] = n ) ) , c . result } return } , dispatch : function ( c ) { c = f . event . fix ( c || a . event ) ; var d = ( f . _data ( this , "events" ) || { } ) [ c . type ] || [ ] , e = d . delegateCount , g = [ ] . slice . call ( arguments , 0 ) , h = ! c . exclusive && ! c . namespace , i = [ ] , j , k , l , m , n , o , p , q , r , s , t ; g [ 0 ] = c , c . delegateTarget = this ; if ( e && ! c . target . disabled && ( ! c . button || c . type !== "click" ) ) { m = f ( this ) , m . context = this . ownerDocument || this ; for ( l = c . target ; l != this ; l = l . parentNode || this ) { o = { } , q = [ ] , m [ 0 ] = l ; for ( j = 0 ; j < e ; j ++ ) r = d [ j ] , s = r . selector , o [ s ] === b && ( o [ s ] = r . quick ? H ( l , r . quick ) : m . is ( s ) ) , o [ s ] && q . push ( r ) ; q . length && i . push ( { elem : l , matches : q } ) } } d . length > e && i . push ( { elem : this , matches : d . slice ( e ) } ) ; for ( j = 0 ; j < i . length && ! c . isPropagationStopped ( ) ; j ++ ) { p = i [ j ] , c . currentTarget = p . elem ; for ( k = 0 ; k < p . matches . length && ! c . is
; while ( b . firstChild ) b . removeChild ( b . firstChild ) } return this } , clone : function ( a , b ) { return a = a == null ? ! 1 : a , b = b == null ? a : b , this . map ( function ( ) { return f . clone ( this , a , b ) } ) } , html : function ( a ) { if ( a === b ) return this [ 0 ] && this [ 0 ] . nodeType === 1 ? this [ 0 ] . innerHTML . replace ( W , "" ) : null ; if ( typeof a == "string" && ! ba . test ( a ) && ( f . support . leadingWhitespace || ! X . test ( a ) ) && ! bg [ ( Z . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = a . replace ( Y , "<$1></$2>" ) ; try { for ( var c = 0 , d = this . length ; c < d ; c ++ ) this [ c ] . nodeType === 1 && ( f . cleanData ( this [ c ] . getElementsByTagName ( "*" ) ) , this [ c ] . innerHTML = a ) } catch ( e ) { this . empty ( ) . append ( a ) } } else f . isFunction ( a ) ? this . each ( function ( b ) { var c = f ( this ) ; c . html ( a . call ( this , b , c . html ( ) ) ) } ) : this . empty ( ) . append ( a ) ; return this } , replaceWith : function ( a ) { return this [ 0 ] && this [ 0 ] . parentNode ? f . isFunction ( a ) ? this . each ( function ( b ) { var c = f ( this ) , d = c . html ( ) ; c . replaceWith ( a . call ( this , b , d ) ) } ) : ( typeof a != "string" && ( a = f ( a ) . detach ( ) ) , this . each ( function ( ) { var b = this . nextSibling , c = this . parentNode ; f ( this ) . remove ( ) , b ? f ( b ) . before ( a ) : f ( c ) . append ( a ) } ) ) : this . length ? this . pushStack ( f ( f . isFunction ( a ) ? a ( ) : a ) , "replaceWith" , a ) : this } , detach : function ( a ) { return this . remove ( a , ! 0 ) } , domManip : function ( a , c , d ) { var e , g , h , i , j = a [ 0 ] , k = [ ] ; if ( ! f . support . checkClone && arguments . length === 3 && typeof j == "string" && bd . test ( j ) ) return this . each ( function ( ) { f ( this ) . domManip ( a , c , d , ! 0 ) } ) ; if ( f . isFunction ( j ) ) return this . each ( function ( e ) { var g = f ( this ) ; a [ 0 ] = j . call ( this , e , c ? g . html ( ) : b ) , g . domManip ( a , c , d ) } ) ; if ( this [ 0 ] ) { i = j && j . parentNode , f . support . parentNode && i && i . nodeType === 11 && i . childNodes . length === this . length ? e = { fragment : i } : e = f . buildFragment ( a , this , k ) , h = e . fragment , h . childNodes . length === 1 ? g = h = h . firstChild : g = h . firstChild ; if ( g ) { c = c && f . nodeName ( g , "tr" ) ; for ( var l = 0 , m = this . length , n = m - 1 ; l < m ; l ++ ) d . call ( c ? bi ( this [ l ] , g ) : this [ l ] , e . cacheable || m > 1 && l < n ? f . clone ( h , ! 0 , ! 0 ) : h ) } k . length && f . each ( k , bp ) } return this } } ) , f . buildFragment = function ( a , b , d ) { var e , g , h , i , j = a [ 0 ] ; return b && b [ 0 ] && ( i = b [ 0 ] . ownerDocument || b [ 0 ] ) , i . createDocumentFragment || ( i = c ) , a . length === 1 && typeof j == "string" && j . length < 512 && i === c && j . charAt ( 0 ) === "<" && ! bb . test ( j ) && ( f . support . checkClone || ! bd . test ( j ) ) && ( f . support . html5Clone || ! bc . test ( j ) ) && ( g = ! 0 , h = f . fragments [ j ] , h && h !== 1 && ( e = h ) ) , e || ( e = i . createDocumentFragment ( ) , f . clean ( a , i , e , d ) ) , g && ( f . fragments [ j ] = h ? e : 1 ) , { fragment : e , cacheable : g } } , f . fragments = { } , f . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , b ) { f . fn [ a ] = function ( c ) { var d = [ ] , e = f ( c ) , g = this . length === 1 && this [ 0 ] . parentNode ; if ( g && g . nodeType === 11 && g . childNodes . length === 1 && e . length === 1 ) return e [ b ] ( this [ 0 ] ) , this ; for ( var h = 0 , i = e . length ; h < i ; h ++ ) { var j = ( h > 0 ? this . clone ( ! 0 ) : this ) . get ( ) ; f ( e [ h ] ) [ b ] ( j ) , d = d . concat ( j ) } return this . pushStack ( d , a , e . selector ) } } ) , f . extend ( { clone : function ( a , b , c ) { var d , e , g , h = f . support . html5Clone || ! bc . test ( "<" + a . nodeName ) ? a . cloneNode ( ! 0 ) : bo ( a ) ; if ( ( ! f . support . noCloneEvent || ! f . support . noCloneChecked ) && ( a . nodeType === 1 || a . nodeType === 11 ) && ! f . isXMLDoc ( a ) ) { bk ( a , h ) , d = bl ( a ) , e = bl ( h ) ; for ( g = 0 ; d [ g ] ; ++ g ) e [ g ] && bk ( d [ g ] , e [ g ] ) } if ( b ) { bj ( a , h ) ; if ( c ) { d = bl ( a ) , e = bl ( h ) ; for ( g = 0 ; d [ g ] ; ++ g ) bj ( d [ g ] , e [ g ] ) } } return d = e = null , h } , clean : function ( a , b , d , e ) { var g ; b = b || c , typeof b . createElement == "undefined" && ( b = b . ownerDocument || b [ 0 ] && b [ 0 ] . ownerDocument || c ) ; var h = [ ] , i ; for ( var j = 0 , k ; ( k = a [ j ] ) != null ; j ++ ) { typeof k == "number" && ( k += "" ) ; if ( ! k ) continue ; if ( typeof k == "string" ) if ( ! _ . test ( k ) ) k = b . createTextNode ( k ) ; else { k = k . replace ( Y , "<$1></$2>" ) ; var l = ( Z . exec ( k ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , m = bg [ l ] || bg . _default , n = m [ 0 ] , o = b . createElement ( "div" ) ; b === c ? bh . appendChild ( o ) : U ( b ) . appendChild ( o ) , o . innerHTML = m [ 1 ] + k + m [ 2 ] ; while ( n -- ) o = o . lastChild ; if ( ! f . support . tbody ) { var p = $ . test ( k ) , q = l === "table" && ! p ? o . firstChild && o . firstChild . childNodes : m [ 1 ] === "<table>" && ! p ? o . childNodes : [ ] ; for ( i = q . length - 1 ; i >= 0 ; -- i ) f . nodeName ( q [ i ] , "tbody" ) && ! q [ i ] . childNodes . length && q [ i ] . parentNode . removeChild ( q [ i ] ) } ! f . support . leadingWhitespace && X . test ( k ) && o . insertBefore ( b . createTextNode ( X . exec ( k ) [ 0 ] ) , o . firstChild ) , k = o . childNodes } var r ; if ( ! f . support . appendChecked ) if ( k [ 0 ] && typeof ( r = k . length ) == "number" ) for ( i = 0 ; i < r ; i ++ ) bn ( k [ i ] ) ; else bn ( k ) ; k . nodeType ? h . push ( k ) : h = f . merge ( h , k ) } if ( d ) { g = function ( a ) { return !
( e ) , ! 1 } ) , a ( document ) . delegate ( c . inputChangeSelector , "change.rails" , function ( b ) { var d = a ( this ) ; return c . allowAction ( d ) ? ( c . handleRemote ( d ) , ! 1 ) : c . stopEverything ( b ) } ) , a ( document ) . delegate ( c . formSubmitSelector , "submit.rails" , function ( d ) { var e = a ( this ) , f = e . data ( "remote" ) !== b , g = c . blankInputs ( e , c . requiredInputSelector ) , h = c . nonBlankInputs ( e , c . fileInputSelector ) ; if ( ! c . allowAction ( e ) ) return c . stopEverything ( d ) ; if ( g && e . attr ( "novalidate" ) == b && c . fire ( e , "ajax:aborted:required" , [ g ] ) ) return c . stopEverything ( d ) ; if ( f ) return h ? c . fire ( e , "ajax:aborted:file" , [ h ] ) : ! a . support . submitBubbles && a ( ) . jquery < "1.7" && c . callFormSubmitBindings ( e , d ) === ! 1 ? c . stopEverything ( d ) : ( c . handleRemote ( e ) , ! 1 ) ; setTimeout ( function ( ) { c . disableFormElements ( e ) } , 13 ) } ) , a ( document ) . delegate ( c . formInputClickSelector , "click.rails" , function ( b ) { var d = a ( this ) ; if ( ! c . allowAction ( d ) ) return c . stopEverything ( b ) ; var e = d . attr ( "name" ) , f = e ? { name : e , value : d . val ( ) } : null ; d . closest ( "form" ) . data ( "ujs:submit-button" , f ) } ) , a ( document ) . delegate ( c . formSubmitSelector , "ajax:beforeSend.rails" , function ( b ) { this == b . target && c . disableFormElements ( a ( this ) ) } ) , a ( document ) . delegate ( c . formSubmitSelector , "ajax:complete.rails" , function ( b ) { this == b . target && c . enableFormElements ( a ( this ) ) } ) } ( jQuery ) , jQuery ( function ( a ) { window . NestedFormEvents = function ( ) { this . addFields = a . proxy ( this . addFields , this ) , this . removeFields = a . proxy ( this . removeFields , this ) } , NestedFormEvents . prototype = { addFields : function ( b ) { var c = b . currentTarget , d = a ( c ) . attr ( "data-association" ) , e = a ( "#" + d + "_fields_blueprint" ) . html ( ) , f = ( a ( c ) . closest ( ".fields" ) . find ( "input:first" ) . attr ( "name" ) || "" ) . replace ( new RegExp ( "[[a-z]+]$" ) , "" ) , g = new RegExp ( "new_" + d , "g" ) , h = ( new Date ) . getTime ( ) ; e = e . replace ( g , "new_" + h ) ; if ( f ) { var i = f . match ( /[a-z_]+_attributes/g ) || [ ] , j = f . match ( /(new_)?[0-9]+/g ) || [ ] ; for ( var k = 0 ; k < i . length ; k ++ ) j [ k ] && ( e = e . replace ( new RegExp ( "(_" + i [ k ] + ")_.+?_" , "g" ) , "$1_" + j [ k ] + "_" ) , e = e . replace ( new RegExp ( "(\\[" + i [ k ] + "\\])\\[.+?\\]" , "g" ) , "$1[" + j [ k ] + "]" ) ) } var l = this . insertFields ( e , d , c ) ; return a ( c ) . closest ( "form" ) . trigger ( { type : "nested:fieldAdded" , field : l } ) . trigger ( { type : "nested:fieldAdded:" + d , field : l } ) , ! 1 } , insertFields : function ( b , c , d ) { return a ( b ) . insertBefore ( d ) . hide ( ) . show ( "slow" ) } , removeFields : function ( b ) { var c = b . currentTarget ; a ( c ) . toggleClass ( "important" ) . toggleClass ( "notice" ) ; var d = a ( c ) . prev ( "input[type=hidden]" ) ; return d . val ( d . val ( ) === "1" ? "0" : "1" ) , a ( c ) . siblings ( "fieldset" ) . toggle ( ) , ! 1 } } , window . nestedFormEvents = new NestedFormEvents , a ( "form a.add_nested_fields" ) . live ( "click" , nestedFormEvents . addFields ) , a ( "form a.remove_nested_fields" ) . live ( "click" , nestedFormEvents . removeFields ) } ) , function ( a , b ) { a . ajaxPrefilter ( function ( a , b , c ) { if ( a . iframe ) return "iframe" } ) , a . ajaxTransport ( "iframe" , function ( b , c , d ) { function m ( ) { a ( j ) . each ( function ( ) { this . remove ( ) } ) , a ( k ) . each ( function ( ) { this . disabled = ! 1 } ) , e . attr ( "action" , g || "" ) . attr ( "target" , h || "" ) . attr ( "enctype" , i || "" ) , f . attr ( "src" , "javascript:false;" ) . remove ( ) } var e = null , f = null , g = null , h = null , i = null , j = [ ] , k = [ ] , l = a ( b . files ) . filter ( ":file:enabled" ) ; b . dataTypes . shift ( ) ; if ( l . length ) return l . each ( function ( ) { e !== null && this . form !== e && jQuery . error ( "All file fields must belong to the same form" ) , e = this . form } ) , e = a ( e ) , g = e . attr ( "action" ) , h = e . attr ( "target" ) , i = e . attr ( "enctype" ) , e . find ( ":input:not(:submit)" ) . each ( function ( ) { ! this . disabled && ( this . type != "file" || l . index ( this ) < 0 ) && ( this . disabled = ! 0 , k . push ( this ) ) } ) , typeof b . data == "string" && b . data . length > 0 && jQuery . error ( "data must not be serialized" ) , a . each ( b . data || { } , function ( b , c ) { a . isPlainObject ( c ) && ( b = c . name , c = c . value ) , j . push ( a ( "<input type='hidden'>" ) . attr ( "name" , b ) . attr ( "value" , c ) . appendTo ( e ) ) } ) , j . push ( a ( "<input type='hidden' name='X-Requested-With'>" ) . attr ( "value" , "IFrame" ) . appendTo ( e ) ) , accepts = b . dataTypes [ 0 ] && b . accepts [ b . dataTypes [ 0 ] ] ? b . accepts [ b . dataTypes [ 0 ] ] + ( b . dataTypes [ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : b . accepts [ "*" ] , j . push ( a ( "<input type='hidden' name='X-Http-Accept'>" ) . attr ( "value" , accepts ) . appendTo ( e ) ) , { send : function ( c , d ) { f = a ( "<iframe src='javascript:false;' name='iframe-" + a . now ( ) + "' style='display:none'></iframe>" ) , f . bind ( "load" , function ( ) { f . unbind ( "load" ) . bind ( "load" , function ( ) { var a = this . contentWindow ? this .
, this . instance . _trigger ( "deactivate" , b , e ) ) } ) } , drag : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) , e = this , f = function ( b ) { var c = this . offset . click . top , d = this . offset . click . left , e = this . positionAbs . top , f = this . positionAbs . left , g = b . height , h = b . width , i = b . top , j = b . left ; return a . ui . isOver ( e + c , f + d , i , j , g , h ) } ; a . each ( d . sortables , function ( f ) { this . instance . positionAbs = d . positionAbs , this . instance . helperProportions = d . helperProportions , this . instance . offset . click = d . offset . click , this . instance . _intersectsWith ( this . instance . containerCache ) ? ( this . instance . isOver || ( this . instance . isOver = 1 , this . instance . currentItem = a ( e ) . clone ( ) . removeAttr ( "id" ) . appendTo ( this . instance . element ) . data ( "sortable-item" , ! 0 ) , this . instance . options . _helper = this . instance . options . helper , this . instance . options . helper = function ( ) { return c . helper [ 0 ] } , b . target = this . instance . currentItem [ 0 ] , this . instance . _mouseCapture ( b , ! 0 ) , this . instance . _mouseStart ( b , ! 0 , ! 0 ) , this . instance . offset . click . top = d . offset . click . top , this . instance . offset . click . left = d . offset . click . left , this . instance . offset . parent . left -= d . offset . parent . left - this . instance . offset . parent . left , this . instance . offset . parent . top -= d . offset . parent . top - this . instance . offset . parent . top , d . _trigger ( "toSortable" , b ) , d . dropped = this . instance . element , d . currentItem = d . element , this . instance . fromOutside = d ) , this . instance . currentItem && this . instance . _mouseDrag ( b ) ) : this . instance . isOver && ( this . instance . isOver = 0 , this . instance . cancelHelperRemoval = ! 0 , this . instance . options . revert = ! 1 , this . instance . _trigger ( "out" , b , this . instance . _uiHash ( this . instance ) ) , this . instance . _mouseStop ( b , ! 0 ) , this . instance . options . helper = this . instance . options . _helper , this . instance . currentItem . remove ( ) , this . instance . placeholder && this . instance . placeholder . remove ( ) , d . _trigger ( "fromSortable" , b ) , d . dropped = ! 1 ) } ) } } ) , a . ui . plugin . add ( "draggable" , "cursor" , { start : function ( b , c ) { var d = a ( "body" ) , e = a ( this ) . data ( "draggable" ) . options ; d . css ( "cursor" ) && ( e . _cursor = d . css ( "cursor" ) ) , d . css ( "cursor" , e . cursor ) } , stop : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) . options ; d . _cursor && a ( "body" ) . css ( "cursor" , d . _cursor ) } } ) , a . ui . plugin . add ( "draggable" , "opacity" , { start : function ( b , c ) { var d = a ( c . helper ) , e = a ( this ) . data ( "draggable" ) . options ; d . css ( "opacity" ) && ( e . _opacity = d . css ( "opacity" ) ) , d . css ( "opacity" , e . opacity ) } , stop : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) . options ; d . _opacity && a ( c . helper ) . css ( "opacity" , d . _opacity ) } } ) , a . ui . plugin . add ( "draggable" , "scroll" , { start : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) ; d . scrollParent [ 0 ] != document && d . scrollParent [ 0 ] . tagName != "HTML" && ( d . overflowOffset = d . scrollParent . offset ( ) ) } , drag : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) , e = d . options , f = ! 1 ; if ( d . scrollParent [ 0 ] != document && d . scrollParent [ 0 ] . tagName != "HTML" ) { if ( ! e . axis || e . axis != "x" ) d . overflowOffset . top + d . scrollParent [ 0 ] . offsetHeight - b . pageY < e . scrollSensitivity ? d . scrollParent [ 0 ] . scrollTop = f = d . scrollParent [ 0 ] . scrollTop + e . scrollSpeed : b . pageY - d . overflowOffset . top < e . scrollSensitivity && ( d . scrollParent [ 0 ] . scrollTop = f = d . scrollParent [ 0 ] . scrollTop - e . scrollSpeed ) ; if ( ! e . axis || e . axis != "y" ) d . overflowOffset . left + d . scrollParent [ 0 ] . offsetWidth - b . pageX < e . scrollSensitivity ? d . scrollParent [ 0 ] . scrollLeft = f = d . scrollParent [ 0 ] . scrollLeft + e . scrollSpeed : b . pageX - d . overflowOffset . left < e . scrollSensitivity && ( d . scrollParent [ 0 ] . scrollLeft = f = d . scrollParent [ 0 ] . scrollLeft - e . scrollSpeed ) } else { if ( ! e . axis || e . axis != "x" ) b . pageY - a ( document ) . scrollTop ( ) < e . scrollSensitivity ? f = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) - e . scrollSpeed ) : a ( window ) . height ( ) - ( b . pageY - a ( document ) . scrollTop ( ) ) < e . scrollSensitivity && ( f = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) + e . scrollSpeed ) ) ; if ( ! e . axis || e . axis != "y" ) b . pageX - a ( document ) . scrollLeft ( ) < e . scrollSensitivity ? f = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) - e . scrollSpeed ) : a ( window ) . width ( ) - ( b . pageX - a ( document ) . scrollLeft ( ) ) < e . scrollSensitivity && ( f = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) + e . scrollSpeed ) ) } f !== ! 1 && a . ui . ddmanager && ! e . dropBehaviour && a . ui . ddmanager . prepareOffsets ( d , b ) } } ) , a . ui . plugin . add ( "draggable" , "snap" , { start : function ( b , c ) { var d = a ( this ) . data ( "draggable" ) , e = d . options ; d . snapElements = [ ] , a ( e . snap . constructor != String ? e . snap . it
{ var b = this . _curInst ; if ( ! b || a && b != $ . data ( a , PROP _NAME ) ) return ; if ( this . _datepickerShowing ) { var c = this . _get ( b , "showAnim" ) , d = this . _get ( b , "duration" ) , e = function ( ) { $ . datepicker . _tidyDialog ( b ) , this . _curInst = null } ; $ . effects && $ . effects [ c ] ? b . dpDiv . hide ( c , $ . datepicker . _get ( b , "showOptions" ) , d , e ) : b . dpDiv [ c == "slideDown" ? "slideUp" : c == "fadeIn" ? "fadeOut" : "hide" ] ( c ? d : null , e ) , c || e ( ) , $ . datepicker . _triggerOnClose ( b ) , this . _datepickerShowing = ! 1 , this . _lastInput = null , this . _inDialog && ( this . _dialogInput . css ( { position : "absolute" , left : "0" , top : "-100px" } ) , $ . blockUI && ( $ . unblockUI ( ) , $ ( "body" ) . append ( this . dpDiv ) ) ) , this . _inDialog = ! 1 } } , _tidyDialog : function ( a ) { a . dpDiv . removeClass ( this . _dialogClass ) . unbind ( ".ui-datepicker-calendar" ) } , _checkExternalClick : function ( a ) { if ( ! $ . datepicker . _curInst ) return ; var b = $ ( a . target ) ; b [ 0 ] . id != $ . datepicker . _mainDivId && b . parents ( "#" + $ . datepicker . _mainDivId ) . length == 0 && ! b . hasClass ( $ . datepicker . markerClassName ) && ! b . hasClass ( $ . datepicker . _triggerClass ) && $ . datepicker . _datepickerShowing && ( ! $ . datepicker . _inDialog || ! $ . blockUI ) && $ . datepicker . _hideDatepicker ( ) } , _adjustDate : function ( a , b , c ) { var d = $ ( a ) , e = this . _getInst ( d [ 0 ] ) ; if ( this . _isDisabledDatepicker ( d [ 0 ] ) ) return ; this . _adjustInstDate ( e , b + ( c == "M" ? this . _get ( e , "showCurrentAtPos" ) : 0 ) , c ) , this . _updateDatepicker ( e ) } , _gotoToday : function ( a ) { var b = $ ( a ) , c = this . _getInst ( b [ 0 ] ) ; if ( this . _get ( c , "gotoCurrent" ) && c . currentDay ) c . selectedDay = c . currentDay , c . drawMonth = c . selectedMonth = c . currentMonth , c . drawYear = c . selectedYear = c . currentYear ; else { var d = new Date ; c . selectedDay = d . getDate ( ) , c . drawMonth = c . selectedMonth = d . getMonth ( ) , c . drawYear = c . selectedYear = d . getFullYear ( ) } this . _notifyChange ( c ) , this . _adjustDate ( b ) } , _selectMonthYear : function ( a , b , c ) { var d = $ ( a ) , e = this . _getInst ( d [ 0 ] ) ; e [ "selected" + ( c == "M" ? "Month" : "Year" ) ] = e [ "draw" + ( c == "M" ? "Month" : "Year" ) ] = parseInt ( b . options [ b . selectedIndex ] . value , 10 ) , this . _notifyChange ( e ) , this . _adjustDate ( d ) } , _selectDay : function ( a , b , c , d ) { var e = $ ( a ) ; if ( $ ( d ) . hasClass ( this . _unselectableClass ) || this . _isDisabledDatepicker ( e [ 0 ] ) ) return ; var f = this . _getInst ( e [ 0 ] ) ; f . selectedDay = f . currentDay = $ ( "a" , d ) . html ( ) , f . selectedMonth = f . currentMonth = b , f . selectedYear = f . currentYear = c , this . _selectDate ( a , this . _formatDate ( f , f . currentDay , f . currentMonth , f . currentYear ) ) } , _clearDate : function ( a ) { var b = $ ( a ) , c = this . _getInst ( b [ 0 ] ) ; this . _selectDate ( b , "" ) } , _selectDate : function ( a , b ) { var c = $ ( a ) , d = this . _getInst ( c [ 0 ] ) ; b = b != null ? b : this . _formatDate ( d ) , d . input && d . input . val ( b ) , this . _updateAlternate ( d ) ; var e = this . _get ( d , "onSelect" ) ; e ? e . apply ( d . input ? d . input [ 0 ] : null , [ b , d ] ) : d . input && d . input . trigger ( "change" ) , d . inline ? this . _updateDatepicker ( d ) : ( this . _hideDatepicker ( ) , this . _lastInput = d . input [ 0 ] , typeof d . input [ 0 ] != "object" && d . input . focus ( ) , this . _lastInput = null ) } , _updateAlternate : function ( a ) { var b = this . _get ( a , "altField" ) ; if ( b ) { var c = this . _get ( a , "altFormat" ) || this . _get ( a , "dateFormat" ) , d = this . _getDate ( a ) , e = this . formatDate ( c , d , this . _getFormatConfig ( a ) ) ; $ ( b ) . each ( function ( ) { $ ( this ) . val ( e ) } ) } } , noWeekends : function ( a ) { var b = a . getDay ( ) ; return [ b > 0 && b < 6 , "" ] } , iso8601Week : function ( a ) { var b = new Date ( a . getTime ( ) ) ; b . setDate ( b . getDate ( ) + 4 - ( b . getDay ( ) || 7 ) ) ; var c = b . getTime ( ) ; return b . setMonth ( 0 ) , b . setDate ( 1 ) , Math . floor ( Math . round ( ( c - b ) / 864e5 ) / 7 ) + 1 } , parseDate : function ( a , b , c ) { if ( a == null || b == null ) throw "Invalid arguments" ; b = typeof b == "object" ? b . toString ( ) : b + "" ; if ( b == "" ) return null ; var d = ( c ? c . shortYearCutoff : null ) || this . _defaults . shortYearCutoff ; d = typeof d != "string" ? d : ( new Date ) . getFullYear ( ) % 100 + parseInt ( d , 10 ) ; var e = ( c ? c . dayNamesShort : null ) || this . _defaults . dayNamesShort , f = ( c ? c . dayNames : null ) || this . _defaults . dayNames , g = ( c ? c . monthNamesShort : null ) || this . _defaults . monthNamesShort , h = ( c ? c . monthNames : null ) || this . _defaults . monthNames , i = - 1 , j = - 1 , k = - 1 , l = - 1 , m = ! 1 , n = function ( b ) { var c = s + 1 < a . length && a . charAt ( s + 1 ) == b ; return c && s ++ , c } , o = function ( a ) { var c = n ( a ) , d = a == "@" ? 14 : a == "!" ? 20 : a == "y" && c ? 4 : a == "o" ? 3 : 2 , e = new RegExp ( "^\\d{1," + d + "}" ) , f = b . substring ( r ) . match ( e ) ; if ( ! f ) throw "Missing number at position " + r ; return r += f [ 0 ] . length , parseInt ( f [ 0 ] , 10 ) } , p = function ( a , c , d ) { var e = $ . map ( n ( a ) ? d : c , function ( a , b ) { return [ [ b , a ] ] } ) . sort ( function ( a , b ) { return - ( a [ 1 ] . length - b [ 1 ] . length ) } ) , f = - 1 ; $ . each ( e , func
2012-01-01 19:24:39 +00:00
) } ) } ) } ( window . jQuery || window . ender ) , ! function ( a ) { function b ( b , c ) { var d = "disabled" , e = a ( b ) , f = e . data ( ) ; c += "Text" , f . resetText || e . data ( "resetText" , e . html ( ) ) , e . html ( f [ c ] || a . fn . button . defaults [ c ] ) , setTimeout ( function ( ) { c == "loadingText" ? e . addClass ( d ) . attr ( d , d ) : e . removeClass ( d ) . removeAttr ( d ) } , 0 ) } function c ( b ) { a ( b ) . toggleClass ( "active" ) } "use strict" , a . fn . button = function ( a ) { return this . each ( function ( ) { if ( a == "toggle" ) return c ( this ) ; a && b ( this , a ) } ) } , a . fn . button . defaults = { loadingText : "loading..." } , a ( function ( ) { a ( "body" ) . delegate ( ".btn[data-toggle]" , "click" , function ( ) { a ( this ) . button ( "toggle" ) } ) } ) } ( window . jQuery || window . ender ) , ! function ( a ) { function c ( ) { a ( b ) . parent ( "li" ) . removeClass ( "open" ) } "use strict" , a . fn . dropdown = function ( e ) { return this . each ( function ( ) { a ( this ) . delegate ( e || b , "click" , function ( b ) { var d = a ( this ) . parent ( "li" ) , e = d . hasClass ( "open" ) ; return c ( ) , ! e && d . toggleClass ( "open" ) , ! 1 } ) } ) } ; var b = "a.menu, .dropdown-toggle" ; a ( function ( ) { a ( "html" ) . bind ( "click" , c ) , a ( "body" ) . dropdown ( "[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle" ) } ) } ( window . jQuery || window . ender ) , ! function ( a ) { function c ( c , d ) { var e = a . proxy ( this . processScroll , this ) ; this . $topbar = a ( c ) , this . selector = d || "li > a" , this . refresh ( ) , this . $topbar . delegate ( this . selector , "click" , e ) , b . scroll ( e ) , this . processScroll ( ) } "use strict" ; var b = a ( window ) ; c . prototype = { refresh : function ( ) { this . targets = this . $topbar . find ( this . selector ) . map ( function ( ) { var b = a ( this ) . attr ( "href" ) ; return /^#\w/ . test ( b ) && a ( b ) . length ? b : null } ) , this . offsets = a . map ( this . targets , function ( b ) { return a ( b ) . offset ( ) . top } ) } , processScroll : function ( ) { var a = b . scrollTop ( ) + 10 , c = this . offsets , d = this . targets , e = this . activeTarget , f ; for ( f = c . length ; f -- ; ) e != d [ f ] && a >= c [ f ] && ( ! c [ f + 1 ] || a <= c [ f + 1 ] ) && this . activateButton ( d [ f ] ) } , activateButton : function ( a ) { this . activeTarget = a , this . $topbar . find ( this . selector ) . parent ( ".active" ) . removeClass ( "active" ) , this . $topbar . find ( this . selector + '[href="' + a + '"]' ) . parent ( "li" ) . addClass ( "active" ) } } , a . fn . scrollSpy = function ( b ) { var d = this . data ( "scrollspy" ) ; return d ? b === ! 0 ? d : ( typeof b == "string" && d [ b ] ( ) , this ) : this . each ( function ( ) { a ( this ) . data ( "scrollspy" , new c ( this , b ) ) } ) } , a ( document ) . ready ( function ( ) { a ( "body" ) . scrollSpy ( "[data-scrollspy] li > a" ) } ) } ( window . jQuery || window . ender ) , ! function ( a ) { function b ( a , b ) { b . find ( "> .active" ) . removeClass ( "active" ) . find ( "> .dropdown-menu > .active" ) . removeClass ( "active" ) , a . addClass ( "active" ) , a . parent ( ".dropdown-menu" ) && a . closest ( "li.dropdown" ) . addClass ( "active" ) } function c ( c ) { var d = a ( this ) , e = d . closest ( "ul:not(.dropdown-menu)" ) , f = d . attr ( "href" ) , g , h ; if ( /^#\w+/ . test ( f ) ) { c . preventDefault ( ) ; if ( d . parent ( "li" ) . hasClass ( "active" ) ) return ; g = e . find ( ".active a" ) . last ( ) [ 0 ] , h = a ( f ) , b ( d . parent ( "li" ) , e ) , b ( h , h . parent ( ) ) , d . trigger ( { type : "change" , relatedTarget : g } ) } } "use strict" , a . fn . tabs = a . fn . pills = function ( b ) { return this . each ( function ( ) { a ( this ) . delegate ( b || ".tabs li > a, .pills > li > a" , "click" , c ) } ) } , a ( document ) . ready ( function ( ) { a ( "body" ) . tabs ( "ul[data-tabs] li > a, ul[data-pills] > li > a" ) } ) } ( window . jQuery || window . ender ) , ! function ( a ) { function d ( a , b , c ) { return typeof a == "function" ? a . apply ( b , c ) : a } "use strict" ; var b ; a ( document ) . ready ( function ( ) { a . support . transition = function ( ) { var a = document . body || document . documentElement , b = a . style , c = b . transition !== undefined || b . WebkitTransition !== undefined || b . MozTransition !== undefined || b . MsTransition !== undefined || b . OTransition !== undefined ; return c } ( ) , a . support . transition && ( b = "TransitionEnd" , a . browser . webkit ? b = "webkitTransitionEnd" : a . browser . mozilla ? b = "transitionend" : a . browser . opera && ( b = "oTransitionEnd" ) ) } ) ; var c = function ( b , c ) { this . $element = a ( b ) , this . options = c , this . enabled = ! 0 , this . fixTitle ( ) } ; c . prototype = { show : function ( ) { var b , c , e , f , g , h ; if ( this . hasContent ( ) && this . enabled ) { g = this . tip ( ) , this . setContent ( ) , this . options . animate && g . addClass ( "fade" ) , g . remove ( ) . css ( { top : 0 , left : 0 , display : "block" } ) . prependTo ( document . body ) , b = a . extend ( { } , this . $element . offset ( ) , { width : this . $element [ 0 ] . offsetWidth , height : this . $element [ 0 ] . offsetHeight } ) , c = g [ 0 ] . offsetWidth , e = g [ 0 ] . offsetHeight , f = d ( this . options . placement , this , [ g [ 0 ] , this . $element [ 0 ] ] ) ; switch ( f ) { case "below" : h = { top : b . top + b . height + this . options . offset , lef
( f == "is" ? 'selected="selected"' : "" ) + ' value="is">Is exactly</option>' + '<option data-additional-fieldset="true"' + ( f == "starts_with" ? 'selected="selected"' : "" ) + ' value="starts_with">Starts with</option>' + '<option data-additional-fieldset="true"' + ( f == "ends_with" ? 'selected="selected"' : "" ) + ' value="ends_with">Ends with</option>' + '<option disabled="disabled">---------</option>' + '<option data-additional-fieldset="false"' + ( f == "_present" ? 'selected="selected"' : "" ) + ' value="_present">Is present</option>' + '<option data-additional-fieldset="false"' + ( f == "_blank" ? 'selected="selected"' : "" ) + ' value="_blank">Is blank</option>' + "</select>" , m = '<input class="additional-fieldset span2" style="display:' + ( f == "_blank" || f == "_present" ? "none" : "block" ) + ';" type="text" name="' + j + '" value="' + e + '" /> ' ; break ; default : var l = '<input class="span2" type="text" name="' + j + '" value="' + e + '"/> ' } var n = '<div class="row filter clearfix"><span class="span3"><span class="btn info delete">' + b + "</span>" + "</span>" + '<span class="span3">' + l + "</span>" + ( m ? '<span class="span2">' + m + "</span>" : "" ) + "</div>" ; a ( "#filters_box" ) . append ( n ) } } , a ( "#filters a" ) . live ( "click" , function ( ) { a . filters . append ( a ( this ) . data ( "field-label" ) , a ( this ) . data ( "field-name" ) , a ( this ) . data ( "field-type" ) , a ( this ) . data ( "field-value" ) , a ( this ) . data ( "field-operator" ) , a ( this ) . data ( "field-options" ) , a ( this ) . data ( "field-multiple_values" ) , a . now ( ) . toString ( ) . slice ( 7 , 11 ) ) } ) , a ( "#filters_box .delete" ) . live ( "click" , function ( ) { form = a ( this ) . parents ( "form" ) , a ( this ) . parents ( ".filter" ) . remove ( ) , form . submit ( ) } ) , a ( "#filters_box .switch-select" ) . live ( "dblclick" , function ( ) { var b = a ( this ) . children ( "select:visible" ) , c = a ( this ) . children ( "select:hidden" ) ; c . attr ( "name" , c . data ( "name" ) ) . show ( "slow" ) , b . attr ( "name" , null ) . hide ( "slow" ) } ) , a ( "#filters_box .switch-additionnal-fieldsets" ) . live ( "change" , function ( ) { var b = a ( this ) . find ( "option:selected" ) ; a ( b ) . data ( "additional-fieldset" ) ? a ( this ) . parent ( ) . siblings ( ) . children ( ".additional-fieldset" ) . show ( "slow" ) : a ( this ) . parent ( ) . siblings ( ) . children ( ".additional-fieldset" ) . hide ( "slow" ) } ) } ( jQuery ) , function ( a ) { a . widget ( "ra.filteringMultiselect" , { _cache : { } , options : { createQuery : function ( a ) { return { query : a } } , sortable : ! 1 , regional : { up : "Up" , down : "Down" , add : "Add" , chooseAll : "Choose all" , chosen : "Chosen records" , clearAll : "Clear all" , remove : "Remove" , selectChoice : "Select your choice(s) and click" } , searchDelay : 400 , remote _source : null , xhr : ! 1 } , _create : function ( ) { this . _cache = { } , this . _build ( ) , this . _buildCache ( ) , this . _bindEvents ( ) } , _build : function ( ) { var b ; this . wrapper = a ( '<div class="ra-multiselect">' ) , this . wrapper . insertAfter ( this . element ) , this . header = a ( '<div class="ra-multiselect-header ui-helper-clearfix">' ) , this . filter = a ( '<input type="search" placeholder="' + this . options . regional . search + '" class="ra-multiselect-search"/>' ) , this . header . append ( this . filter ) , this . wrapper . append ( this . header ) , this . columns = { left : a ( '<div class="ra-multiselect-column ra-multiselect-left">' ) , center : a ( '<div class="ra-multiselect-column ra-multiselect-center">' ) , right : a ( '<div class="ra-multiselect-column ra-multiselect-right">' ) } ; for ( b in this . columns ) this . columns . hasOwnProperty ( b ) && this . wrapper . append ( this . columns [ b ] ) ; this . collection = a ( '<select multiple="multiple"></select>' ) , this . collection . addClass ( "ra-multiselect-collection" ) , this . addAll = a ( '<a href="#" class="ra-multiselect-item-add-all"><span class="ui-icon ui-icon-circle-triangle-e"></span>' + this . options . regional . chooseAll + "</a>" ) , this . columns . left . append ( this . collection ) . append ( this . addAll ) , this . add = a ( '<a href="#" class="ui-icon ui-icon-circle-triangle-e ra-multiselect-item-add">' + this . options . regional . add + "</a>" ) , this . remove = a ( '<a href="#" class="ui-icon ui-icon-circle-triangle-w ra-multiselect-item-remove">' + this . options . regional . remove + "</a>" ) , this . columns . center . append ( this . add ) . append ( this . remove ) , this . options . sortable && ( this . up = a ( '<a href="#" class="ui-icon ui-icon-circle-triangle-n ra-multiselect-item-up">' + this . options . regional . up + "</a>" ) , this . down = a ( '<a href="#" class="ui-icon ui-icon-circle-triangle-s ra-multiselect-item-down">' + this . options . regional . down + "</a>" ) , this . columns . center . append (