// MooTools: the javascript framework.
// Load this file's selection again by visiting: http://mootools.net/more/9c0d9e00884b8329757da16ea8f1f4e1
// Or build this file again with packager using: packager build More/Element.Forms More/Element.Delegation More/Element.Shortcuts More/Request.JSONP
/ *
-- -
copyrights :
- [ MooTools ] ( http : //mootools.net)
licenses :
- [ MIT License ] ( http : //mootools.net/license.txt)
...
* /
MooTools . More = { version : "1.3.1.1" , build : "0292a3af1eea242b817fecf9daa127417d10d4ce" } ; ( function ( ) { var c = { a : /[àáâãäåăą]/g , A : /[ÀÁÂÃÄÅĂĄ]/g , c : /[ćčç]/g , C : /[ĆČÇ]/g , d : /[ďđ]/g , D : /[ĎÐ]/g , e : /[èéêëěę]/g , E : /[ÈÉÊËĚĘ]/g , g : /[ğ]/g , G : /[Ğ]/g , i : /[ìíîï]/g , I : /[ÌÍÎÏ]/g , l : /[ĺľł]/g , L : /[ĹĽŁ]/g , n : /[ñňń]/g , N : /[ÑŇŃ]/g , o : /[òóôõöøő]/g , O : /[ÒÓÔÕÖØ]/g , r : /[řŕ]/g , R : /[ŘŔ]/g , s : /[ššş]/g , S : /[ŠŞŚ]/g , t : /[ťţ]/g , T : /[ŤŢ]/g , ue : /[ü]/g , UE : /[Ü]/g , u : /[ùúûůµ]/g , U : /[ÙÚÛŮ]/g , y : /[ÿý]/g , Y : /[ŸÝ]/g , z : /[žźż]/g , Z : /[ŽŹŻ]/g , th : /[þ]/g , TH : /[Þ]/g , dh : /[ð]/g , DH : /[Ð]/g , ss : /[ß]/g , oe : /[œ]/g , OE : /[Œ]/g , ae : /[æ]/g , AE : /[Æ]/g } , b = { " " : /[\xa0\u2002\u2003\u2009]/g , "*" : /[\xb7]/g , "'" : /[\u2018\u2019]/g , '"' : /[\u201c\u201d]/g , "..." : /[\u2026]/g , "-" : /[\u2013]/g , "»" : /[\uFFFD]/g } ;
var a = function ( f , h ) { var e = f , g ; for ( g in h ) { e = e . replace ( h [ g ] , g ) ; } return e ; } ; var d = function ( e , g ) { e = e || "" ; var h = g ? "<" + e + "(?!\\w)[^>]*>([\\s\\S]*?)</" + e + "(?!\\w)>" : "</?" + e + "([^>]+)?>" , f = new RegExp ( h , "gi" ) ;
return f ; } ; String . implement ( { standardize : function ( ) { return a ( this , c ) ; } , repeat : function ( e ) { return new Array ( e + 1 ) . join ( this ) ; } , pad : function ( e , h , g ) { if ( this . length >= e ) { return this ;
} var f = ( h == null ? " " : "" + h ) . repeat ( e - this . length ) . substr ( 0 , e - this . length ) ; if ( ! g || g == "right" ) { return this + f ; } if ( g == "left" ) { return f + this ; } return f . substr ( 0 , ( f . length / 2 ) . floor ( ) ) + this + f . substr ( 0 , ( f . length / 2 ) . ceil ( ) ) ;
} , getTags : function ( e , f ) { return this . match ( d ( e , f ) ) || [ ] ; } , stripTags : function ( e , f ) { return this . replace ( d ( e , f ) , "" ) ; } , tidy : function ( ) { return a ( this , b ) ; } , truncate : function ( e , f , i ) { var h = this ;
if ( f == null && arguments . length == 1 ) { f = "…" ; } if ( h . length > e ) { h = h . substring ( 0 , e ) ; if ( i ) { var g = h . lastIndexOf ( i ) ; if ( g != - 1 ) { h = h . substr ( 0 , g ) ; } } if ( f ) { h += f ; } } return h ;
} } ) ; } ) . call ( this ) ; Element . implement ( { tidy : function ( ) { this . set ( "value" , this . get ( "value" ) . tidy ( ) ) ; } , getTextInRange : function ( b , a ) { return this . get ( "value" ) . substring ( b , a ) ;
} , getSelectedText : function ( ) { if ( this . setSelectionRange ) { return this . getTextInRange ( this . getSelectionStart ( ) , this . getSelectionEnd ( ) ) ; } return document . selection . createRange ( ) . text ;
} , getSelectedRange : function ( ) { if ( this . selectionStart != null ) { return { start : this . selectionStart , end : this . selectionEnd } ; } var e = { start : 0 , end : 0 } ; var a = this . getDocument ( ) . selection . createRange ( ) ;
if ( ! a || a . parentElement ( ) != this ) { return e ; } var c = a . duplicate ( ) ; if ( this . type == "text" ) { e . start = 0 - c . moveStart ( "character" , - 100000 ) ; e . end = e . start + a . text . length ;
} else { var b = this . get ( "value" ) ; var d = b . length ; c . moveToElementText ( this ) ; c . setEndPoint ( "StartToEnd" , a ) ; if ( c . text . length ) { d -= b . match ( /[\n\r]*$/ ) [ 0 ] . length ;
} e . end = d - c . text . length ; c . setEndPoint ( "StartToStart" , a ) ; e . start = d - c . text . length ; } return e ; } , getSelectionStart : function ( ) { return this . getSelectedRange ( ) . start ;
} , getSelectionEnd : function ( ) { return this . getSelectedRange ( ) . end ; } , setCaretPosition : function ( a ) { if ( a == "end" ) { a = this . get ( "value" ) . length ; } this . selectRange ( a , a ) ;
return this ; } , getCaretPosition : function ( ) { return this . getSelectedRange ( ) . start ; } , selectRange : function ( e , a ) { if ( this . setSelectionRange ) { this . focus ( ) ; this . setSelectionRange ( e , a ) ;
} else { var c = this . get ( "value" ) ; var d = c . substr ( e , a - e ) . replace ( /\r/g , "" ) . length ; e = c . substr ( 0 , e ) . replace ( /\r/g , "" ) . length ; var b = this . createTextRange ( ) ; b . collapse ( true ) ;
b . moveEnd ( "character" , e + d ) ; b . moveStart ( "character" , e ) ; b . select ( ) ; } return this ; } , insertAtCursor : function ( b , a ) { var d = this . getSelectedRange ( ) ; var c = this . get ( "value" ) ;
this . set ( "value" , c . substring ( 0 , d . start ) + b + c . substring ( d . end , c . length ) ) ; if ( a !== false ) { this . selectRange ( d . start , d . start + b . length ) ; } else { this . setCaretPosition ( d . start + b . length ) ;
} return this ; } , insertAroundCursor : function ( b , a ) { b = Object . append ( { before : "" , defaultMiddle : "" , after : "" } , b ) ; var c = this . getSelectedText ( ) || b . defaultMiddle ;
var g = this . getSelectedRange ( ) ; var f = this . get ( "value" ) ; if ( g . start == g . end ) { this . set ( "value" , f . substring ( 0 , g . start ) + b . before + c + b . after + f . substring ( g . end , f . length ) ) ;
this . selectRange ( g . start + b . before . length , g . end + b . before . length + c . length ) ; } else { var d = f . substring ( g . start , g . end ) ; this . set ( "value" , f . substring ( 0 , g . start ) + b . before + d + b . after + f . substring ( g . end , f . length ) ) ;
var e = g . start + b . before . length ; if ( a !== false ) { this . selectRange ( e , e + d . length ) ; } else { this . setCaretPosition ( e + f . length ) ; } } return this ; } } ) ; Events . Pseudos = function ( g , c , e ) { var b = "monitorEvents:" ;
var a = function ( h ) { return { store : h . store ? function ( i , j ) { h . store ( b + i , j ) ; } : function ( i , j ) { ( h . $monitorEvents || ( h . $monitorEvents = { } ) ) [ i ] = j ; } , retrieve : h . retrieve ? function ( i , j ) { return h . retrieve ( b + i , j ) ;
} : function ( i , j ) { if ( ! h . $monitorEvents ) { return j ; } return h . $monitorEvents [ i ] || j ; } } ; } ; var f = function ( j ) { if ( j . indexOf ( ":" ) == - 1 || ! g ) { return null ; } var i = Slick . parse ( j ) . expressions [ 0 ] [ 0 ] , m = i . pseudos , h = m . length , k = [ ] ;
while ( h -- ) { if ( g [ m [ h ] . key ] ) { k . push ( { event : i . tag , value : m [ h ] . value , pseudo : m [ h ] . key , original : j } ) ; } } return k . length ? k : null ; } ; var d = function ( h ) { return Object . merge . apply ( this , h . map ( function ( i ) { return g [ i . pseudo ] . options || { } ;
} ) ) ; } ; return { addEvent : function ( m , p , j ) { var n = f ( m ) ; if ( ! n ) { return c . call ( this , m , p , j ) ; } var k = a ( this ) , s = k . retrieve ( m , [ ] ) , h = n [ 0 ] . event , t = d ( n ) , o = p , i = t [ h ] || { } , l = Array . slice ( arguments , 2 ) , r = this , q ;
if ( i . args ) { l . append ( Array . from ( i . args ) ) ; } if ( i . base ) { h = i . base ; } if ( i . onAdd ) { i . onAdd ( this ) ; } n . each ( function ( u ) { var v = o ; o = function ( ) { ( i . listener || g [ u . pseudo ] . listener ) . call ( r , u , v , arguments , q , t ) ;
} ; } ) ; q = o . bind ( this ) ; s . include ( { event : p , monitor : q } ) ; k . store ( m , s ) ; c . apply ( this , [ m , p ] . concat ( l ) ) ; return c . apply ( this , [ h , q ] . concat ( l ) ) ; } , removeEvent : function ( l , n ) { var m = f ( l ) ;
if ( ! m ) { return e . call ( this , l , n ) ; } var j = a ( this ) , o = j . retrieve ( l ) ; if ( ! o ) { return this ; } var h = m [ 0 ] . event , p = d ( m ) , i = p [ h ] || { } , k = Array . slice ( arguments , 2 ) ; if ( i . args ) { k . append ( Array . from ( i . args ) ) ;
} if ( i . base ) { h = i . base ; } if ( i . onRemove ) { i . onRemove ( this ) ; } e . apply ( this , [ l , n ] . concat ( k ) ) ; o . each ( function ( q , r ) { if ( ! n || q . event == n ) { e . apply ( this , [ h , q . monitor ] . concat ( k ) ) ;
} delete o [ r ] ; } , this ) ; j . store ( l , o ) ; return this ; } } ; } ; ( function ( ) { var b = { once : { listener : function ( e , f , d , c ) { f . apply ( this , d ) ; this . removeEvent ( e . event , c ) . removeEvent ( e . original , f ) ;
} } , throttle : { listener : function ( d , e , c ) { if ( ! e . _ throttled ) { e . apply ( this , c ) ; e . _ throttled = setTimeout ( function ( ) { e . _ throttled = false ; } , d . value || 250 ) ; } } } , pause : { listener : function ( d , e , c ) { clearTimeout ( e . _ pause ) ;
e . _ pause = e . delay ( d . value || 250 , this , c ) ; } } } ; Events . definePseudo = function ( c , d ) { b [ c ] = Type . isFunction ( d ) ? { listener : d } : d ; return this ; } ; Events . lookupPseudo = function ( c ) { return b [ c ] ;
} ; var a = Events . prototype ; Events . implement ( Events . Pseudos ( b , a . addEvent , a . removeEvent ) ) ; [ "Request" , "Fx" ] . each ( function ( c ) { if ( this [ c ] ) { this [ c ] . implement ( Events . prototype ) ;
} } ) ; } ) . call ( this ) ; ( function ( ) { var d = { } , c = [ "once" , "throttle" , "pause" ] , b = c . length ; while ( b -- ) { d [ c [ b ] ] = Events . lookupPseudo ( c [ b ] ) ; } Event . definePseudo = function ( e , f ) { d [ e ] = Type . isFunction ( f ) ? { listener : f } : f ;
return this ; } ; var a = Element . prototype ; [ Element , Window , Document ] . invoke ( "implement" , Events . Pseudos ( d , a . addEvent , a . removeEvent ) ) ; } ) . call ( this ) ; ( function ( ) { var b = ! ( window . attachEvent && ! window . addEventListener ) , e = Element . NativeEvents ;
e . focusin = 2 ; e . focusout = 2 ; var c = function ( g , j , h ) { var i = Element . Events [ g . event ] , k ; if ( i ) { k = i . condition ; } return Slick . match ( j , g . value ) && ( ! k || k . call ( j , h ) ) ; } ;
var f = function ( g ) { var h = "$delegation:" ; return { base : "focusin" , onRemove : function ( i ) { i . retrieve ( h + "forms" , [ ] ) . each ( function ( j ) { j . retrieve ( h + "listeners" , [ ] ) . each ( function ( k ) { j . removeEvent ( g , k ) ;
} ) ; j . eliminate ( h + g + "listeners" ) . eliminate ( h + g + "originalFn" ) ; } ) ; } , listener : function ( q , r , p , s , t ) { var j = p [ 0 ] , i = this . retrieve ( h + "forms" , [ ] ) , o = j . target , l = ( o . get ( "tag" ) == "form" ) ? o : j . target . getParent ( "form" ) , n = l . retrieve ( h + "originalFn" , [ ] ) , k = l . retrieve ( h + "listeners" , [ ] ) ;
i . include ( l ) ; this . store ( h + "forms" , i ) ; if ( ! n . contains ( r ) ) { var m = function ( u ) { if ( c ( q , this , u ) ) { r . call ( this , u ) ; } } ; l . addEvent ( g , m ) ; n . push ( r ) ; k . push ( m ) ; l . store ( h + g + "originalFn" , n ) . store ( h + g + "listeners" , k ) ;
} } } ; } ; var a = function ( g ) { return { base : "focusin" , listener : function ( j , k , h ) { var i = { blur : function ( ) { this . removeEvents ( i ) ; } } ; i [ g ] = function ( l ) { if ( c ( j , this , l ) ) { k . call ( this , l ) ;
} } ; h [ 0 ] . target . addEvents ( i ) ; } } ; } ; var d = { mouseenter : { base : "mouseover" } , mouseleave : { base : "mouseout" } , focus : { base : "focus" + ( b ? "" : "in" ) , args : [ true ] } , blur : { base : b ? "blur" : "focusout" , args : [ true ] } } ;
if ( ! b ) { Object . append ( d , { submit : f ( "submit" ) , reset : f ( "reset" ) , change : a ( "change" ) , select : a ( "select" ) } ) ; } Event . definePseudo ( "relay" , { listener : function ( j , k , i , g , h ) { var l = i [ 0 ] ;
for ( var n = l . target ; n && n != this ; n = n . parentNode ) { var m = document . id ( n ) ; if ( c ( j , m , l ) ) { if ( m ) { k . call ( m , l , m ) ; } return ; } } } , options : d } ) ; } ) . call ( this ) ; Element . implement ( { isDisplayed : function ( ) { return this . getStyle ( "display" ) != "none" ;
} , isVisible : function ( ) { var a = this . offsetWidth , b = this . offsetHeight ; return ( a == 0 && b == 0 ) ? false : ( a > 0 && b > 0 ) ? true : this . style . display != "none" ; } , toggle : function ( ) { return this [ this . isDisplayed ( ) ? "hide" : "show" ] ( ) ;
} , hide : function ( ) { var b ; try { b = this . getStyle ( "display" ) ; } catch ( a ) { } if ( b == "none" ) { return this ; } return this . store ( "element:_originalDisplay" , b || "" ) . setStyle ( "display" , "none" ) ;
} , show : function ( a ) { if ( ! a && this . isDisplayed ( ) ) { return this ; } a = a || this . retrieve ( "element:_originalDisplay" ) || "block" ; return this . setStyle ( "display" , ( a == "none" ) ? "block" : a ) ;
} , swapClass : function ( a , b ) { return this . removeClass ( a ) . addClass ( b ) ; } } ) ; Document . implement ( { clearSelection : function ( ) { if ( window . getSelection ) { var a = window . getSelection ( ) ;
if ( a && a . removeAllRanges ) { a . removeAllRanges ( ) ; } } else { if ( document . selection && document . selection . empty ) { try { document . selection . empty ( ) ; } catch ( b ) { } } } } } ) ; Request . JSONP = new Class ( { Implements : [ Chain , Events , Options ] , options : { onRequest : function ( a ) { if ( this . options . log && window . console && console . log ) { console . log ( "JSONP retrieving script with url:" + a ) ;
} } , onError : function ( a ) { if ( this . options . log && window . console && console . warn ) { console . warn ( "JSONP " + a + " will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs" ) ;
} } , url : "" , callbackKey : "callback" , injectScript : document . head , data : "" , link : "ignore" , timeout : 0 , log : false } , initialize : function ( a ) { this . setOptions ( a ) ; } , send : function ( c ) { if ( ! Request . prototype . check . call ( this , c ) ) { return this ;
} this . running = true ; var d = typeOf ( c ) ; if ( d == "string" || d == "element" ) { c = { data : c } ; } c = Object . merge ( this . options , c || { } ) ; var e = c . data ; switch ( typeOf ( e ) ) { case "element" : e = document . id ( e ) . toQueryString ( ) ;
break ; case "object" : case "hash" : e = Object . toQueryString ( e ) ; } var b = this . index = Request . JSONP . counter ++ ; var f = c . url + ( c . url . test ( "\\?" ) ? "&" : "?" ) + ( c . callbackKey ) + "=Request.JSONP.request_map.request_" + b + ( e ? "&" + e : "" ) ;
if ( f . length > 2083 ) { this . fireEvent ( "error" , f ) ; } Request . JSONP . request_map [ "request_" + b ] = function ( ) { this . success ( arguments , b ) ; } . bind ( this ) ; var a = this . getScript ( f ) . inject ( c . injectScript ) ;
this . fireEvent ( "request" , [ f , a ] ) ; if ( c . timeout ) { this . timeout . delay ( c . timeout , this ) ; } return this ; } , getScript : function ( a ) { if ( ! this . script ) { this . script = new Element ( "script[type=text/javascript]" , { async : true , src : a } ) ;
} return this . script ; } , success : function ( b , a ) { if ( ! this . running ) { return false ; } this . clear ( ) . fireEvent ( "complete" , b ) . fireEvent ( "success" , b ) . callChain ( ) ; } , cancel : function ( ) { if ( this . running ) { this . clear ( ) . fireEvent ( "cancel" ) ;
} return this ; } , isRunning : function ( ) { return ! ! this . running ; } , clear : function ( ) { this . running = false ; if ( this . script ) { this . script . destroy ( ) ; this . script = null ;
} return this ; } , timeout : function ( ) { if ( this . running ) { this . running = false ; this . fireEvent ( "timeout" , [ this . script . get ( "src" ) , this . script ] ) . fireEvent ( "failure" ) . cancel ( ) ;
} return this ; } } ) ; Request . JSONP . counter = 0 ; Request . JSONP . request_map = { } ;