2007-07-16 20:22:38 +00:00
/ * * *
MochiKit . MochiKit 1.4 : PACKED VERSION
THIS FILE IS AUTOMATICALLY GENERATED . If creating patches , please
diff against the source tree , not this file .
See < http : //mochikit.com/> for documentation, downloads, license, etc.
( c ) 2005 Bob Ippolito . All rights Reserved .
* * * /
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Base" ) ;
}
if ( typeof ( MochiKit ) == "undefined" ) {
MochiKit = { } ;
}
if ( typeof ( MochiKit . Base ) == "undefined" ) {
MochiKit . Base = { } ;
}
if ( typeof ( MochiKit . _ _export _ _ ) == "undefined" ) {
MochiKit . _ _export _ _ = ( MochiKit . _ _compat _ _ || ( typeof ( JSAN ) == "undefined" && typeof ( dojo ) == "undefined" ) ) ;
}
MochiKit . Base . VERSION = "1.4" ;
MochiKit . Base . NAME = "MochiKit.Base" ;
MochiKit . Base . update = function ( _1 , _2 ) {
if ( _1 === null ) {
_1 = { } ;
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( typeof ( o ) != "undefined" && o !== null ) {
for ( var k in o ) {
_1 [ k ] = o [ k ] ;
}
}
}
return _1 ;
} ;
MochiKit . Base . update ( MochiKit . Base , { _ _repr _ _ : function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} , toString : function ( ) {
return this . _ _repr _ _ ( ) ;
} , camelize : function ( _6 ) {
var _7 = _6 . split ( "-" ) ;
var cc = _7 [ 0 ] ;
for ( var i = 1 ; i < _7 . length ; i ++ ) {
cc += _7 [ i ] . charAt ( 0 ) . toUpperCase ( ) + _7 [ i ] . substring ( 1 ) ;
}
return cc ;
} , counter : function ( n ) {
if ( arguments . length === 0 ) {
n = 1 ;
}
return function ( ) {
return n ++ ;
} ;
} , clone : function ( _b ) {
var me = arguments . callee ;
if ( arguments . length == 1 ) {
me . prototype = _b ;
return new me ( ) ;
}
} , _flattenArray : function ( _d , _e ) {
for ( var i = 0 ; i < _e . length ; i ++ ) {
var o = _e [ i ] ;
if ( o instanceof Array ) {
arguments . callee ( _d , o ) ;
} else {
_d . push ( o ) ;
}
}
return _d ;
} , flattenArray : function ( lst ) {
return MochiKit . Base . _flattenArray ( [ ] , lst ) ;
} , flattenArguments : function ( lst ) {
var res = [ ] ;
var m = MochiKit . Base ;
var _15 = m . extend ( null , arguments ) ;
while ( _15 . length ) {
var o = _15 . shift ( ) ;
if ( o && typeof ( o ) == "object" && typeof ( o . length ) == "number" ) {
for ( var i = o . length - 1 ; i >= 0 ; i -- ) {
_15 . unshift ( o [ i ] ) ;
}
} else {
res . push ( o ) ;
}
}
return res ;
} , extend : function ( _18 , obj , _1a ) {
if ( ! _1a ) {
_1a = 0 ;
}
if ( obj ) {
var l = obj . length ;
if ( typeof ( l ) != "number" ) {
if ( typeof ( MochiKit . Iter ) != "undefined" ) {
obj = MochiKit . Iter . list ( obj ) ;
l = obj . length ;
} else {
throw new TypeError ( "Argument not an array-like and MochiKit.Iter not present" ) ;
}
}
if ( ! _18 ) {
_18 = [ ] ;
}
for ( var i = _1a ; i < l ; i ++ ) {
_18 . push ( obj [ i ] ) ;
}
}
return _18 ;
} , updatetree : function ( _1d , obj ) {
if ( _1d === null ) {
_1d = { } ;
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( typeof ( o ) != "undefined" && o !== null ) {
for ( var k in o ) {
var v = o [ k ] ;
if ( typeof ( _1d [ k ] ) == "object" && typeof ( v ) == "object" ) {
arguments . callee ( _1d [ k ] , v ) ;
} else {
_1d [ k ] = v ;
}
}
}
}
return _1d ;
} , setdefault : function ( _23 , obj ) {
if ( _23 === null ) {
_23 = { } ;
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
for ( var k in o ) {
if ( ! ( k in _23 ) ) {
_23 [ k ] = o [ k ] ;
}
}
}
return _23 ;
} , keys : function ( obj ) {
var _29 = [ ] ;
for ( var _2a in obj ) {
_29 . push ( _2a ) ;
}
return _29 ;
} , values : function ( obj ) {
var _2c = [ ] ;
for ( var _2d in obj ) {
_2c . push ( obj [ _2d ] ) ;
}
return _2c ;
} , items : function ( obj ) {
var _2f = [ ] ;
var e ;
for ( var _31 in obj ) {
var v ;
try {
v = obj [ _31 ] ;
}
catch ( e ) {
continue ;
}
_2f . push ( [ _31 , v ] ) ;
}
return _2f ;
} , _newNamedError : function ( _33 , _34 , _35 ) {
_35 . prototype = new MochiKit . Base . NamedError ( _33 . NAME + "." + _34 ) ;
_33 [ _34 ] = _35 ;
} , operator : { truth : function ( a ) {
return ! ! a ;
} , lognot : function ( a ) {
return ! a ;
} , identity : function ( a ) {
return a ;
} , not : function ( a ) {
return ~ a ;
} , neg : function ( a ) {
return - a ;
} , add : function ( a , b ) {
return a + b ;
} , sub : function ( a , b ) {
return a - b ;
} , div : function ( a , b ) {
return a / b ;
} , mod : function ( a , b ) {
return a % b ;
} , mul : function ( a , b ) {
return a * b ;
} , and : function ( a , b ) {
return a & b ;
} , or : function ( a , b ) {
return a | b ;
} , xor : function ( a , b ) {
return a ^ b ;
} , lshift : function ( a , b ) {
return a << b ;
} , rshift : function ( a , b ) {
return a >> b ;
} , zrshift : function ( a , b ) {
return a >>> b ;
} , eq : function ( a , b ) {
return a == b ;
} , ne : function ( a , b ) {
return a != b ;
} , gt : function ( a , b ) {
return a > b ;
} , ge : function ( a , b ) {
return a >= b ;
} , lt : function ( a , b ) {
return a < b ;
} , le : function ( a , b ) {
return a <= b ;
} , seq : function ( a , b ) {
return a === b ;
} , sne : function ( a , b ) {
return a !== b ;
} , ceq : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) === 0 ;
} , cne : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) !== 0 ;
} , cgt : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) == 1 ;
} , cge : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) != - 1 ;
} , clt : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) == - 1 ;
} , cle : function ( a , b ) {
return MochiKit . Base . compare ( a , b ) != 1 ;
} , logand : function ( a , b ) {
return a && b ;
} , logor : function ( a , b ) {
return a || b ;
} , contains : function ( a , b ) {
return b in a ;
} } , forwardCall : function ( _73 ) {
return function ( ) {
return this [ _73 ] . apply ( this , arguments ) ;
} ;
} , itemgetter : function ( _74 ) {
return function ( arg ) {
return arg [ _74 ] ;
} ;
} , typeMatcher : function ( ) {
var _76 = { } ;
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var typ = arguments [ i ] ;
_76 [ typ ] = typ ;
}
return function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
if ( ! ( typeof ( arguments [ i ] ) in _76 ) ) {
return false ;
}
}
return true ;
} ;
} , isNull : function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
if ( arguments [ i ] !== null ) {
return false ;
}
}
return true ;
} , isUndefinedOrNull : function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( ! ( typeof ( o ) == "undefined" || o === null ) ) {
return false ;
}
}
return true ;
} , isEmpty : function ( obj ) {
return ! MochiKit . Base . isNotEmpty . apply ( this , arguments ) ;
} , isNotEmpty : function ( obj ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( ! ( o && o . length ) ) {
return false ;
}
}
return true ;
} , isArrayLike : function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
var typ = typeof ( o ) ;
if ( ( typ != "object" && ! ( typ == "function" && typeof ( o . item ) == "function" ) ) || o === null || typeof ( o . length ) != "number" || o . nodeType === 3 ) {
return false ;
}
}
return true ;
} , isDateLike : function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( typeof ( o ) != "object" || o === null || typeof ( o . getTime ) != "function" ) {
return false ;
}
}
return true ;
} , xmap : function ( fn ) {
if ( fn === null ) {
return MochiKit . Base . extend ( null , arguments , 1 ) ;
}
var _87 = [ ] ;
for ( var i = 1 ; i < arguments . length ; i ++ ) {
_87 . push ( fn ( arguments [ i ] ) ) ;
}
return _87 ;
} , map : function ( fn , lst ) {
var m = MochiKit . Base ;
var itr = MochiKit . Iter ;
var _8d = m . isArrayLike ;
if ( arguments . length <= 2 ) {
if ( ! _8d ( lst ) ) {
if ( itr ) {
lst = itr . list ( lst ) ;
if ( fn === null ) {
return lst ;
}
} else {
throw new TypeError ( "Argument not an array-like and MochiKit.Iter not present" ) ;
}
}
if ( fn === null ) {
return m . extend ( null , lst ) ;
}
var _8e = [ ] ;
for ( var i = 0 ; i < lst . length ; i ++ ) {
_8e . push ( fn ( lst [ i ] ) ) ;
}
return _8e ;
} else {
if ( fn === null ) {
fn = Array ;
}
var _90 = null ;
for ( i = 1 ; i < arguments . length ; i ++ ) {
if ( ! _8d ( arguments [ i ] ) ) {
if ( itr ) {
return itr . list ( itr . imap . apply ( null , arguments ) ) ;
} else {
throw new TypeError ( "Argument not an array-like and MochiKit.Iter not present" ) ;
}
}
var l = arguments [ i ] . length ;
if ( _90 === null || _90 > l ) {
_90 = l ;
}
}
_8e = [ ] ;
for ( i = 0 ; i < _90 ; i ++ ) {
var _92 = [ ] ;
for ( var j = 1 ; j < arguments . length ; j ++ ) {
_92 . push ( arguments [ j ] [ i ] ) ;
}
_8e . push ( fn . apply ( this , _92 ) ) ;
}
return _8e ;
}
} , xfilter : function ( fn ) {
var _95 = [ ] ;
if ( fn === null ) {
fn = MochiKit . Base . operator . truth ;
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( fn ( o ) ) {
_95 . push ( o ) ;
}
}
return _95 ;
} , filter : function ( fn , lst , _9a ) {
var _9b = [ ] ;
var m = MochiKit . Base ;
if ( ! m . isArrayLike ( lst ) ) {
if ( MochiKit . Iter ) {
lst = MochiKit . Iter . list ( lst ) ;
} else {
throw new TypeError ( "Argument not an array-like and MochiKit.Iter not present" ) ;
}
}
if ( fn === null ) {
fn = m . operator . truth ;
}
if ( typeof ( Array . prototype . filter ) == "function" ) {
return Array . prototype . filter . call ( lst , fn , _9a ) ;
} else {
if ( typeof ( _9a ) == "undefined" || _9a === null ) {
for ( var i = 0 ; i < lst . length ; i ++ ) {
var o = lst [ i ] ;
if ( fn ( o ) ) {
_9b . push ( o ) ;
}
}
} else {
for ( i = 0 ; i < lst . length ; i ++ ) {
o = lst [ i ] ;
if ( fn . call ( _9a , o ) ) {
_9b . push ( o ) ;
}
}
}
}
return _9b ;
} , _wrapDumbFunction : function ( _9f ) {
return function ( ) {
switch ( arguments . length ) {
case 0 :
return _9f ( ) ;
case 1 :
return _9f ( arguments [ 0 ] ) ;
case 2 :
return _9f ( arguments [ 0 ] , arguments [ 1 ] ) ;
case 3 :
return _9f ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] ) ;
}
var _a0 = [ ] ;
for ( var i = 0 ; i < arguments . length ; i ++ ) {
_a0 . push ( "arguments[" + i + "]" ) ;
}
return eval ( "(func(" + _a0 . join ( "," ) + "))" ) ;
} ;
} , methodcaller : function ( _a2 ) {
var _a3 = MochiKit . Base . extend ( null , arguments , 1 ) ;
if ( typeof ( _a2 ) == "function" ) {
return function ( obj ) {
return _a2 . apply ( obj , _a3 ) ;
} ;
} else {
return function ( obj ) {
return obj [ _a2 ] . apply ( obj , _a3 ) ;
} ;
}
} , method : function ( _a6 , _a7 ) {
var m = MochiKit . Base ;
return m . bind . apply ( this , m . extend ( [ _a7 , _a6 ] , arguments , 2 ) ) ;
} , compose : function ( f1 , f2 ) {
var _ab = [ ] ;
var m = MochiKit . Base ;
if ( arguments . length === 0 ) {
throw new TypeError ( "compose() requires at least one argument" ) ;
}
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var fn = arguments [ i ] ;
if ( typeof ( fn ) != "function" ) {
throw new TypeError ( m . repr ( fn ) + " is not a function" ) ;
}
_ab . push ( fn ) ;
}
return function ( ) {
var _af = arguments ;
for ( var i = _ab . length - 1 ; i >= 0 ; i -- ) {
_af = [ _ab [ i ] . apply ( this , _af ) ] ;
}
return _af [ 0 ] ;
} ;
} , bind : function ( _b1 , _b2 ) {
if ( typeof ( _b1 ) == "string" ) {
_b1 = _b2 [ _b1 ] ;
}
var _b3 = _b1 . im _func ;
var _b4 = _b1 . im _preargs ;
var _b5 = _b1 . im _self ;
var m = MochiKit . Base ;
if ( typeof ( _b1 ) == "function" && typeof ( _b1 . apply ) == "undefined" ) {
_b1 = m . _wrapDumbFunction ( _b1 ) ;
}
if ( typeof ( _b3 ) != "function" ) {
_b3 = _b1 ;
}
if ( typeof ( _b2 ) != "undefined" ) {
_b5 = _b2 ;
}
if ( typeof ( _b4 ) == "undefined" ) {
_b4 = [ ] ;
} else {
_b4 = _b4 . slice ( ) ;
}
m . extend ( _b4 , arguments , 2 ) ;
var _b7 = function ( ) {
var _b8 = arguments ;
var me = arguments . callee ;
if ( me . im _preargs . length > 0 ) {
_b8 = m . concat ( me . im _preargs , _b8 ) ;
}
var _ba = me . im _self ;
if ( ! _ba ) {
_ba = this ;
}
return me . im _func . apply ( _ba , _b8 ) ;
} ;
_b7 . im _self = _b5 ;
_b7 . im _func = _b3 ;
_b7 . im _preargs = _b4 ;
return _b7 ;
} , bindMethods : function ( _bb ) {
var _bc = MochiKit . Base . bind ;
for ( var k in _bb ) {
var _be = _bb [ k ] ;
if ( typeof ( _be ) == "function" ) {
_bb [ k ] = _bc ( _be , _bb ) ;
}
}
} , registerComparator : function ( _bf , _c0 , _c1 , _c2 ) {
MochiKit . Base . comparatorRegistry . register ( _bf , _c0 , _c1 , _c2 ) ;
} , _primitives : { "boolean" : true , "string" : true , "number" : true } , compare : function ( a , b ) {
if ( a == b ) {
return 0 ;
}
var _c5 = ( typeof ( a ) == "undefined" || a === null ) ;
var _c6 = ( typeof ( b ) == "undefined" || b === null ) ;
if ( _c5 && _c6 ) {
return 0 ;
} else {
if ( _c5 ) {
return - 1 ;
} else {
if ( _c6 ) {
return 1 ;
}
}
}
var m = MochiKit . Base ;
var _c8 = m . _primitives ;
if ( ! ( typeof ( a ) in _c8 && typeof ( b ) in _c8 ) ) {
try {
return m . comparatorRegistry . match ( a , b ) ;
}
catch ( e ) {
if ( e != m . NotFound ) {
throw e ;
}
}
}
if ( a < b ) {
return - 1 ;
} else {
if ( a > b ) {
return 1 ;
}
}
var _c9 = m . repr ;
throw new TypeError ( _c9 ( a ) + " and " + _c9 ( b ) + " can not be compared" ) ;
} , compareDateLike : function ( a , b ) {
return MochiKit . Base . compare ( a . getTime ( ) , b . getTime ( ) ) ;
} , compareArrayLike : function ( a , b ) {
var _ce = MochiKit . Base . compare ;
var _cf = a . length ;
var _d0 = 0 ;
if ( _cf > b . length ) {
_d0 = 1 ;
_cf = b . length ;
} else {
if ( _cf < b . length ) {
_d0 = - 1 ;
}
}
for ( var i = 0 ; i < _cf ; i ++ ) {
var cmp = _ce ( a [ i ] , b [ i ] ) ;
if ( cmp ) {
return cmp ;
}
}
return _d0 ;
} , registerRepr : function ( _d3 , _d4 , _d5 , _d6 ) {
MochiKit . Base . reprRegistry . register ( _d3 , _d4 , _d5 , _d6 ) ;
} , repr : function ( o ) {
if ( typeof ( o ) == "undefined" ) {
return "undefined" ;
} else {
if ( o === null ) {
return "null" ;
}
}
try {
if ( typeof ( o . _ _repr _ _ ) == "function" ) {
return o . _ _repr _ _ ( ) ;
} else {
if ( typeof ( o . repr ) == "function" && o . repr != arguments . callee ) {
return o . repr ( ) ;
}
}
return MochiKit . Base . reprRegistry . match ( o ) ;
}
catch ( e ) {
if ( typeof ( o . NAME ) == "string" && ( o . toString == Function . prototype . toString || o . toString == Object . prototype . toString ) ) {
return o . NAME ;
}
}
try {
var _d8 = ( o + "" ) ;
}
catch ( e ) {
return "[" + typeof ( o ) + "]" ;
}
if ( typeof ( o ) == "function" ) {
o = _d8 . replace ( /^\s+/ , "" ) ;
var idx = o . indexOf ( "{" ) ;
if ( idx != - 1 ) {
o = o . substr ( 0 , idx ) + "{...}" ;
}
}
return _d8 ;
} , reprArrayLike : function ( o ) {
var m = MochiKit . Base ;
return "[" + m . map ( m . repr , o ) . join ( ", " ) + "]" ;
} , reprString : function ( o ) {
return ( "\"" + o . replace ( /(["\\])/g , "\\$1" ) + "\"" ) . replace ( /[\f]/g , "\\f" ) . replace ( /[\b]/g , "\\b" ) . replace ( /[\n]/g , "\\n" ) . replace ( /[\t]/g , "\\t" ) . replace ( /[\r]/g , "\\r" ) ;
} , reprNumber : function ( o ) {
return o + "" ;
} , registerJSON : function ( _de , _df , _e0 , _e1 ) {
MochiKit . Base . jsonRegistry . register ( _de , _df , _e0 , _e1 ) ;
} , evalJSON : function ( ) {
return eval ( "(" + MochiKit . Base . _filterJSON ( arguments [ 0 ] ) + ")" ) ;
} , _filterJSON : function ( s ) {
var m = s . match ( /^\s*\/\*(.*)\*\/\s*$/ ) ;
if ( m ) {
return m [ 1 ] ;
}
return s ;
} , serializeJSON : function ( o ) {
var _e5 = typeof ( o ) ;
if ( _e5 == "number" || _e5 == "boolean" ) {
return o + "" ;
} else {
if ( o === null ) {
return "null" ;
}
}
var m = MochiKit . Base ;
var _e7 = m . reprString ;
if ( _e5 == "string" ) {
return _e7 ( o ) ;
}
var me = arguments . callee ;
var _e9 ;
if ( typeof ( o . _ _json _ _ ) == "function" ) {
_e9 = o . _ _json _ _ ( ) ;
if ( o !== _e9 ) {
return me ( _e9 ) ;
}
}
if ( typeof ( o . json ) == "function" ) {
_e9 = o . json ( ) ;
if ( o !== _e9 ) {
return me ( _e9 ) ;
}
}
if ( _e5 != "function" && typeof ( o . length ) == "number" ) {
var res = [ ] ;
for ( var i = 0 ; i < o . length ; i ++ ) {
var val = me ( o [ i ] ) ;
if ( typeof ( val ) != "string" ) {
val = "undefined" ;
}
res . push ( val ) ;
}
return "[" + res . join ( ", " ) + "]" ;
}
try {
_e9 = m . jsonRegistry . match ( o ) ;
if ( o !== _e9 ) {
return me ( _e9 ) ;
}
}
catch ( e ) {
if ( e != m . NotFound ) {
throw e ;
}
}
if ( _e5 == "undefined" ) {
throw new TypeError ( "undefined can not be serialized as JSON" ) ;
}
if ( _e5 == "function" ) {
return null ;
}
res = [ ] ;
for ( var k in o ) {
var _ee ;
if ( typeof ( k ) == "number" ) {
_ee = "\"" + k + "\"" ;
} else {
if ( typeof ( k ) == "string" ) {
_ee = _e7 ( k ) ;
} else {
continue ;
}
}
val = me ( o [ k ] ) ;
if ( typeof ( val ) != "string" ) {
continue ;
}
res . push ( _ee + ":" + val ) ;
}
return "{" + res . join ( ", " ) + "}" ;
} , objEqual : function ( a , b ) {
return ( MochiKit . Base . compare ( a , b ) === 0 ) ;
} , arrayEqual : function ( _f1 , arr ) {
if ( _f1 . length != arr . length ) {
return false ;
}
return ( MochiKit . Base . compare ( _f1 , arr ) === 0 ) ;
} , concat : function ( ) {
var _f3 = [ ] ;
var _f4 = MochiKit . Base . extend ;
for ( var i = 0 ; i < arguments . length ; i ++ ) {
_f4 ( _f3 , arguments [ i ] ) ;
}
return _f3 ;
} , keyComparator : function ( key ) {
var m = MochiKit . Base ;
var _f8 = m . compare ;
if ( arguments . length == 1 ) {
return function ( a , b ) {
return _f8 ( a [ key ] , b [ key ] ) ;
} ;
}
var _fb = m . extend ( null , arguments ) ;
return function ( a , b ) {
var _fe = 0 ;
for ( var i = 0 ; ( _fe === 0 ) && ( i < _fb . length ) ; i ++ ) {
var key = _fb [ i ] ;
_fe = _f8 ( a [ key ] , b [ key ] ) ;
}
return _fe ;
} ;
} , reverseKeyComparator : function ( key ) {
var _102 = MochiKit . Base . keyComparator . apply ( this , arguments ) ;
return function ( a , b ) {
return _102 ( b , a ) ;
} ;
} , partial : function ( func ) {
var m = MochiKit . Base ;
return m . bind . apply ( this , m . extend ( [ func , undefined ] , arguments , 1 ) ) ;
} , listMinMax : function ( _107 , lst ) {
if ( lst . length === 0 ) {
return null ;
}
var cur = lst [ 0 ] ;
var _10a = MochiKit . Base . compare ;
for ( var i = 1 ; i < lst . length ; i ++ ) {
var o = lst [ i ] ;
if ( _10a ( o , cur ) == _107 ) {
cur = o ;
}
}
return cur ;
} , objMax : function ( ) {
return MochiKit . Base . listMinMax ( 1 , arguments ) ;
} , objMin : function ( ) {
return MochiKit . Base . listMinMax ( - 1 , arguments ) ;
} , findIdentical : function ( lst , _10e , _10f , end ) {
if ( typeof ( end ) == "undefined" || end === null ) {
end = lst . length ;
}
if ( typeof ( _10f ) == "undefined" || _10f === null ) {
_10f = 0 ;
}
for ( var i = _10f ; i < end ; i ++ ) {
if ( lst [ i ] === _10e ) {
return i ;
}
}
return - 1 ;
} , mean : function ( ) {
var sum = 0 ;
var m = MochiKit . Base ;
var args = m . extend ( null , arguments ) ;
var _115 = args . length ;
while ( args . length ) {
var o = args . shift ( ) ;
if ( o && typeof ( o ) == "object" && typeof ( o . length ) == "number" ) {
_115 += o . length - 1 ;
for ( var i = o . length - 1 ; i >= 0 ; i -- ) {
sum += o [ i ] ;
}
} else {
sum += o ;
}
}
if ( _115 <= 0 ) {
throw new TypeError ( "mean() requires at least one argument" ) ;
}
return sum / _115 ;
} , median : function ( ) {
var data = MochiKit . Base . flattenArguments ( arguments ) ;
if ( data . length === 0 ) {
throw new TypeError ( "median() requires at least one argument" ) ;
}
data . sort ( compare ) ;
if ( data . length % 2 == 0 ) {
var _119 = data . length / 2 ;
return ( data [ _119 ] + data [ _119 - 1 ] ) / 2 ;
} else {
return data [ ( data . length - 1 ) / 2 ] ;
}
} , findValue : function ( lst , _11b , _11c , end ) {
if ( typeof ( end ) == "undefined" || end === null ) {
end = lst . length ;
}
if ( typeof ( _11c ) == "undefined" || _11c === null ) {
_11c = 0 ;
}
var cmp = MochiKit . Base . compare ;
for ( var i = _11c ; i < end ; i ++ ) {
if ( cmp ( lst [ i ] , _11b ) === 0 ) {
return i ;
}
}
return - 1 ;
} , nodeWalk : function ( node , _121 ) {
var _122 = [ node ] ;
var _123 = MochiKit . Base . extend ;
while ( _122 . length ) {
var res = _121 ( _122 . shift ( ) ) ;
if ( res ) {
_123 ( _122 , res ) ;
}
}
} , nameFunctions : function ( _125 ) {
var base = _125 . NAME ;
if ( typeof ( base ) == "undefined" ) {
base = "" ;
} else {
base = base + "." ;
}
for ( var name in _125 ) {
var o = _125 [ name ] ;
if ( typeof ( o ) == "function" && typeof ( o . NAME ) == "undefined" ) {
try {
o . NAME = base + name ;
}
catch ( e ) {
}
}
}
} , queryString : function ( _129 , _12a ) {
if ( typeof ( MochiKit . DOM ) != "undefined" && arguments . length == 1 && ( typeof ( _129 ) == "string" || ( typeof ( _129 . nodeType ) != "undefined" && _129 . nodeType > 0 ) ) ) {
var kv = MochiKit . DOM . formContents ( _129 ) ;
_129 = kv [ 0 ] ;
_12a = kv [ 1 ] ;
} else {
if ( arguments . length == 1 ) {
if ( typeof ( _129 . length ) == "number" && _129 . length == 2 ) {
return arguments . callee ( _129 [ 0 ] , _129 [ 1 ] ) ;
}
var o = _129 ;
_129 = [ ] ;
_12a = [ ] ;
for ( var k in o ) {
var v = o [ k ] ;
if ( typeof ( v ) == "function" ) {
continue ;
} else {
if ( MochiKit . Base . isArrayLike ( v ) ) {
for ( var i = 0 ; i < v . length ; i ++ ) {
_129 . push ( k ) ;
_12a . push ( v [ i ] ) ;
}
} else {
_129 . push ( k ) ;
_12a . push ( v ) ;
}
}
}
}
}
var rval = [ ] ;
var len = Math . min ( _129 . length , _12a . length ) ;
var _132 = MochiKit . Base . urlEncode ;
for ( var i = 0 ; i < len ; i ++ ) {
v = _12a [ i ] ;
if ( typeof ( v ) != "undefined" && v !== null ) {
rval . push ( _132 ( _129 [ i ] ) + "=" + _132 ( v ) ) ;
}
}
return rval . join ( "&" ) ;
} , parseQueryString : function ( _133 , _134 ) {
var qstr = ( _133 . charAt ( 0 ) == "?" ) ? _133 . substring ( 1 ) : _133 ;
var _136 = qstr . replace ( /\+/g , "%20" ) . split ( /(\&\;|\&\#38\;|\&|\&)/ ) ;
var o = { } ;
var _138 ;
if ( typeof ( decodeURIComponent ) != "undefined" ) {
_138 = decodeURIComponent ;
} else {
_138 = unescape ;
}
if ( _134 ) {
for ( var i = 0 ; i < _136 . length ; i ++ ) {
var pair = _136 [ i ] . split ( "=" ) ;
var name = _138 ( pair . shift ( ) ) ;
if ( ! name ) {
continue ;
}
var arr = o [ name ] ;
if ( ! ( arr instanceof Array ) ) {
arr = [ ] ;
o [ name ] = arr ;
}
arr . push ( _138 ( pair . join ( "=" ) ) ) ;
}
} else {
for ( i = 0 ; i < _136 . length ; i ++ ) {
pair = _136 [ i ] . split ( "=" ) ;
var name = pair . shift ( ) ;
if ( ! name ) {
continue ;
}
o [ _138 ( name ) ] = _138 ( pair . join ( "=" ) ) ;
}
}
return o ;
} } ) ;
MochiKit . Base . AdapterRegistry = function ( ) {
this . pairs = [ ] ;
} ;
MochiKit . Base . AdapterRegistry . prototype = { register : function ( name , _13e , wrap , _140 ) {
if ( _140 ) {
this . pairs . unshift ( [ name , _13e , wrap ] ) ;
} else {
this . pairs . push ( [ name , _13e , wrap ] ) ;
}
} , match : function ( ) {
for ( var i = 0 ; i < this . pairs . length ; i ++ ) {
var pair = this . pairs [ i ] ;
if ( pair [ 1 ] . apply ( this , arguments ) ) {
return pair [ 2 ] . apply ( this , arguments ) ;
}
}
throw MochiKit . Base . NotFound ;
} , unregister : function ( name ) {
for ( var i = 0 ; i < this . pairs . length ; i ++ ) {
var pair = this . pairs [ i ] ;
if ( pair [ 0 ] == name ) {
this . pairs . splice ( i , 1 ) ;
return true ;
}
}
return false ;
} } ;
MochiKit . Base . EXPORT = [ "flattenArray" , "noop" , "camelize" , "counter" , "clone" , "extend" , "update" , "updatetree" , "setdefault" , "keys" , "values" , "items" , "NamedError" , "operator" , "forwardCall" , "itemgetter" , "typeMatcher" , "isCallable" , "isUndefined" , "isUndefinedOrNull" , "isNull" , "isEmpty" , "isNotEmpty" , "isArrayLike" , "isDateLike" , "xmap" , "map" , "xfilter" , "filter" , "methodcaller" , "compose" , "bind" , "bindMethods" , "NotFound" , "AdapterRegistry" , "registerComparator" , "compare" , "registerRepr" , "repr" , "objEqual" , "arrayEqual" , "concat" , "keyComparator" , "reverseKeyComparator" , "partial" , "merge" , "listMinMax" , "listMax" , "listMin" , "objMax" , "objMin" , "nodeWalk" , "zip" , "urlEncode" , "queryString" , "serializeJSON" , "registerJSON" , "evalJSON" , "parseQueryString" , "findValue" , "findIdentical" , "flattenArguments" , "method" , "average" , "mean" , "median" ] ;
MochiKit . Base . EXPORT _OK = [ "nameFunctions" , "comparatorRegistry" , "reprRegistry" , "jsonRegistry" , "compareDateLike" , "compareArrayLike" , "reprArrayLike" , "reprString" , "reprNumber" ] ;
MochiKit . Base . _exportSymbols = function ( _146 , _147 ) {
if ( ! MochiKit . _ _export _ _ ) {
return ;
}
var all = _147 . EXPORT _TAGS [ ":all" ] ;
for ( var i = 0 ; i < all . length ; i ++ ) {
_146 [ all [ i ] ] = _147 [ all [ i ] ] ;
}
} ;
MochiKit . Base . _ _new _ _ = function ( ) {
var m = this ;
m . noop = m . operator . identity ;
m . forward = m . forwardCall ;
m . find = m . findValue ;
if ( typeof ( encodeURIComponent ) != "undefined" ) {
m . urlEncode = function ( _14b ) {
return encodeURIComponent ( _14b ) . replace ( /\'/g , "%27" ) ;
} ;
} else {
m . urlEncode = function ( _14c ) {
return escape ( _14c ) . replace ( /\+/g , "%2B" ) . replace ( /\"/g , "%22" ) . rval . replace ( /\'/g , "%27" ) ;
} ;
}
m . NamedError = function ( name ) {
this . message = name ;
this . name = name ;
} ;
m . NamedError . prototype = new Error ( ) ;
m . update ( m . NamedError . prototype , { repr : function ( ) {
if ( this . message && this . message != this . name ) {
return this . name + "(" + m . repr ( this . message ) + ")" ;
} else {
return this . name + "()" ;
}
} , toString : m . forwardCall ( "repr" ) } ) ;
m . NotFound = new m . NamedError ( "MochiKit.Base.NotFound" ) ;
m . listMax = m . partial ( m . listMinMax , 1 ) ;
m . listMin = m . partial ( m . listMinMax , - 1 ) ;
m . isCallable = m . typeMatcher ( "function" ) ;
m . isUndefined = m . typeMatcher ( "undefined" ) ;
m . merge = m . partial ( m . update , null ) ;
m . zip = m . partial ( m . map , null ) ;
m . average = m . mean ;
m . comparatorRegistry = new m . AdapterRegistry ( ) ;
m . registerComparator ( "dateLike" , m . isDateLike , m . compareDateLike ) ;
m . registerComparator ( "arrayLike" , m . isArrayLike , m . compareArrayLike ) ;
m . reprRegistry = new m . AdapterRegistry ( ) ;
m . registerRepr ( "arrayLike" , m . isArrayLike , m . reprArrayLike ) ;
m . registerRepr ( "string" , m . typeMatcher ( "string" ) , m . reprString ) ;
m . registerRepr ( "numbers" , m . typeMatcher ( "number" , "boolean" ) , m . reprNumber ) ;
m . jsonRegistry = new m . AdapterRegistry ( ) ;
var all = m . concat ( m . EXPORT , m . EXPORT _OK ) ;
m . EXPORT _TAGS = { ":common" : m . concat ( m . EXPORT _OK ) , ":all" : all } ;
m . nameFunctions ( this ) ;
} ;
MochiKit . Base . _ _new _ _ ( ) ;
if ( MochiKit . _ _export _ _ ) {
compare = MochiKit . Base . compare ;
compose = MochiKit . Base . compose ;
serializeJSON = MochiKit . Base . serializeJSON ;
}
MochiKit . Base . _exportSymbols ( this , MochiKit . Base ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Iter" ) ;
dojo . require ( "MochiKit.Base" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Iter depends on MochiKit.Base!" ;
}
if ( typeof ( MochiKit . Iter ) == "undefined" ) {
MochiKit . Iter = { } ;
}
MochiKit . Iter . NAME = "MochiKit.Iter" ;
MochiKit . Iter . VERSION = "1.4" ;
MochiKit . Base . update ( MochiKit . Iter , { _ _repr _ _ : function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} , toString : function ( ) {
return this . _ _repr _ _ ( ) ;
} , registerIteratorFactory : function ( name , _150 , _151 , _152 ) {
MochiKit . Iter . iteratorRegistry . register ( name , _150 , _151 , _152 ) ;
} , iter : function ( _153 , _154 ) {
var self = MochiKit . Iter ;
if ( arguments . length == 2 ) {
return self . takewhile ( function ( a ) {
return a != _154 ;
} , _153 ) ;
}
if ( typeof ( _153 . next ) == "function" ) {
return _153 ;
} else {
if ( typeof ( _153 . iter ) == "function" ) {
return _153 . iter ( ) ;
}
}
try {
return self . iteratorRegistry . match ( _153 ) ;
}
catch ( e ) {
var m = MochiKit . Base ;
if ( e == m . NotFound ) {
e = new TypeError ( typeof ( _153 ) + ": " + m . repr ( _153 ) + " is not iterable" ) ;
}
throw e ;
}
} , count : function ( n ) {
if ( ! n ) {
n = 0 ;
}
var m = MochiKit . Base ;
return { repr : function ( ) {
return "count(" + n + ")" ;
} , toString : m . forwardCall ( "repr" ) , next : m . counter ( n ) } ;
} , cycle : function ( p ) {
var self = MochiKit . Iter ;
var m = MochiKit . Base ;
var lst = [ ] ;
var _15e = self . iter ( p ) ;
return { repr : function ( ) {
return "cycle(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
try {
var rval = _15e . next ( ) ;
lst . push ( rval ) ;
return rval ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
if ( lst . length === 0 ) {
this . next = function ( ) {
throw self . StopIteration ;
} ;
} else {
var i = - 1 ;
this . next = function ( ) {
i = ( i + 1 ) % lst . length ;
return lst [ i ] ;
} ;
}
return this . next ( ) ;
}
} } ;
} , repeat : function ( elem , n ) {
var m = MochiKit . Base ;
if ( typeof ( n ) == "undefined" ) {
return { repr : function ( ) {
return "repeat(" + m . repr ( elem ) + ")" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
return elem ;
} } ;
}
return { repr : function ( ) {
return "repeat(" + m . repr ( elem ) + ", " + n + ")" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
if ( n <= 0 ) {
throw MochiKit . Iter . StopIteration ;
}
n -= 1 ;
return elem ;
} } ;
} , next : function ( _164 ) {
return _164 . next ( ) ;
} , izip : function ( p , q ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
var next = self . next ;
var _16a = m . map ( self . iter , arguments ) ;
return { repr : function ( ) {
return "izip(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
return m . map ( next , _16a ) ;
} } ;
} , ifilter : function ( pred , seq ) {
var m = MochiKit . Base ;
seq = MochiKit . Iter . iter ( seq ) ;
if ( pred === null ) {
pred = m . operator . truth ;
}
return { repr : function ( ) {
return "ifilter(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
while ( true ) {
var rval = seq . next ( ) ;
if ( pred ( rval ) ) {
return rval ;
}
}
return undefined ;
} } ;
} , ifilterfalse : function ( pred , seq ) {
var m = MochiKit . Base ;
seq = MochiKit . Iter . iter ( seq ) ;
if ( pred === null ) {
pred = m . operator . truth ;
}
return { repr : function ( ) {
return "ifilterfalse(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
while ( true ) {
var rval = seq . next ( ) ;
if ( ! pred ( rval ) ) {
return rval ;
}
}
return undefined ;
} } ;
} , islice : function ( seq ) {
var self = MochiKit . Iter ;
var m = MochiKit . Base ;
seq = self . iter ( seq ) ;
var _176 = 0 ;
var stop = 0 ;
var step = 1 ;
var i = - 1 ;
if ( arguments . length == 2 ) {
stop = arguments [ 1 ] ;
} else {
if ( arguments . length == 3 ) {
_176 = arguments [ 1 ] ;
stop = arguments [ 2 ] ;
} else {
_176 = arguments [ 1 ] ;
stop = arguments [ 2 ] ;
step = arguments [ 3 ] ;
}
}
return { repr : function ( ) {
return "islice(" + [ "..." , _176 , stop , step ] . join ( ", " ) + ")" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
var rval ;
while ( i < _176 ) {
rval = seq . next ( ) ;
i ++ ;
}
if ( _176 >= stop ) {
throw self . StopIteration ;
}
_176 += step ;
return rval ;
} } ;
} , imap : function ( fun , p , q ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
var _180 = m . map ( self . iter , m . extend ( null , arguments , 1 ) ) ;
var map = m . map ;
var next = self . next ;
return { repr : function ( ) {
return "imap(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
return fun . apply ( this , map ( next , _180 ) ) ;
} } ;
} , applymap : function ( fun , seq , self ) {
seq = MochiKit . Iter . iter ( seq ) ;
var m = MochiKit . Base ;
return { repr : function ( ) {
return "applymap(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
return fun . apply ( self , seq . next ( ) ) ;
} } ;
} , chain : function ( p , q ) {
var self = MochiKit . Iter ;
var m = MochiKit . Base ;
if ( arguments . length == 1 ) {
return self . iter ( arguments [ 0 ] ) ;
}
var _18b = m . map ( self . iter , arguments ) ;
return { repr : function ( ) {
return "chain(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
while ( _18b . length > 1 ) {
try {
return _18b [ 0 ] . next ( ) ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
_18b . shift ( ) ;
}
}
if ( _18b . length == 1 ) {
var arg = _18b . shift ( ) ;
this . next = m . bind ( "next" , arg ) ;
return this . next ( ) ;
}
throw self . StopIteration ;
} } ;
} , takewhile : function ( pred , seq ) {
var self = MochiKit . Iter ;
seq = self . iter ( seq ) ;
return { repr : function ( ) {
return "takewhile(...)" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , next : function ( ) {
var rval = seq . next ( ) ;
if ( ! pred ( rval ) ) {
this . next = function ( ) {
throw self . StopIteration ;
} ;
this . next ( ) ;
}
return rval ;
} } ;
} , dropwhile : function ( pred , seq ) {
seq = MochiKit . Iter . iter ( seq ) ;
var m = MochiKit . Base ;
var bind = m . bind ;
return { "repr" : function ( ) {
return "dropwhile(...)" ;
} , "toString" : m . forwardCall ( "repr" ) , "next" : function ( ) {
while ( true ) {
var rval = seq . next ( ) ;
if ( ! pred ( rval ) ) {
break ;
}
}
this . next = bind ( "next" , seq ) ;
return rval ;
} } ;
} , _tee : function ( _196 , sync , _198 ) {
sync . pos [ _196 ] = - 1 ;
var m = MochiKit . Base ;
var _19a = m . listMin ;
return { repr : function ( ) {
return "tee(" + _196 + ", ...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
var rval ;
var i = sync . pos [ _196 ] ;
if ( i == sync . max ) {
rval = _198 . next ( ) ;
sync . deque . push ( rval ) ;
sync . max += 1 ;
sync . pos [ _196 ] += 1 ;
} else {
rval = sync . deque [ i - sync . min ] ;
sync . pos [ _196 ] += 1 ;
if ( i == sync . min && _19a ( sync . pos ) != sync . min ) {
sync . min += 1 ;
sync . deque . shift ( ) ;
}
}
return rval ;
} } ;
} , tee : function ( _19d , n ) {
var rval = [ ] ;
var sync = { "pos" : [ ] , "deque" : [ ] , "max" : - 1 , "min" : - 1 } ;
if ( arguments . length == 1 || typeof ( n ) == "undefined" || n === null ) {
n = 2 ;
}
var self = MochiKit . Iter ;
_19d = self . iter ( _19d ) ;
var _tee = self . _tee ;
for ( var i = 0 ; i < n ; i ++ ) {
rval . push ( _tee ( i , sync , _19d ) ) ;
}
return rval ;
} , list : function ( _1a4 ) {
var rval ;
if ( _1a4 instanceof Array ) {
return _1a4 . slice ( ) ;
}
if ( typeof ( _1a4 ) == "function" && ! ( _1a4 instanceof Function ) && typeof ( _1a4 . length ) == "number" ) {
rval = [ ] ;
for ( var i = 0 ; i < _1a4 . length ; i ++ ) {
rval . push ( _1a4 [ i ] ) ;
}
return rval ;
}
var self = MochiKit . Iter ;
_1a4 = self . iter ( _1a4 ) ;
var rval = [ ] ;
try {
while ( true ) {
rval . push ( _1a4 . next ( ) ) ;
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return rval ;
}
return undefined ;
} , reduce : function ( fn , _1a9 , _1aa ) {
var i = 0 ;
var x = _1aa ;
var self = MochiKit . Iter ;
_1a9 = self . iter ( _1a9 ) ;
if ( arguments . length < 3 ) {
try {
x = _1a9 . next ( ) ;
}
catch ( e ) {
if ( e == self . StopIteration ) {
e = new TypeError ( "reduce() of empty sequence with no initial value" ) ;
}
throw e ;
}
i ++ ;
}
try {
while ( true ) {
x = fn ( x , _1a9 . next ( ) ) ;
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
return x ;
} , range : function ( ) {
var _1ae = 0 ;
var stop = 0 ;
var step = 1 ;
if ( arguments . length == 1 ) {
stop = arguments [ 0 ] ;
} else {
if ( arguments . length == 2 ) {
_1ae = arguments [ 0 ] ;
stop = arguments [ 1 ] ;
} else {
if ( arguments . length == 3 ) {
_1ae = arguments [ 0 ] ;
stop = arguments [ 1 ] ;
step = arguments [ 2 ] ;
} else {
throw new TypeError ( "range() takes 1, 2, or 3 arguments!" ) ;
}
}
}
if ( step === 0 ) {
throw new TypeError ( "range() step must not be 0" ) ;
}
return { next : function ( ) {
if ( ( step > 0 && _1ae >= stop ) || ( step < 0 && _1ae <= stop ) ) {
throw MochiKit . Iter . StopIteration ;
}
var rval = _1ae ;
_1ae += step ;
return rval ;
} , repr : function ( ) {
return "range(" + [ _1ae , stop , step ] . join ( ", " ) + ")" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
} , sum : function ( _1b2 , _1b3 ) {
if ( typeof ( _1b3 ) == "undefined" || _1b3 === null ) {
_1b3 = 0 ;
}
var x = _1b3 ;
var self = MochiKit . Iter ;
_1b2 = self . iter ( _1b2 ) ;
try {
while ( true ) {
x += _1b2 . next ( ) ;
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
return x ;
} , exhaust : function ( _1b6 ) {
var self = MochiKit . Iter ;
_1b6 = self . iter ( _1b6 ) ;
try {
while ( true ) {
_1b6 . next ( ) ;
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
} , forEach : function ( _1b8 , func , self ) {
var m = MochiKit . Base ;
if ( arguments . length > 2 ) {
func = m . bind ( func , self ) ;
}
if ( m . isArrayLike ( _1b8 ) ) {
try {
for ( var i = 0 ; i < _1b8 . length ; i ++ ) {
func ( _1b8 [ i ] ) ;
}
}
catch ( e ) {
if ( e != MochiKit . Iter . StopIteration ) {
throw e ;
}
}
} else {
self = MochiKit . Iter ;
self . exhaust ( self . imap ( func , _1b8 ) ) ;
}
} , every : function ( _1bd , func ) {
var self = MochiKit . Iter ;
try {
self . ifilterfalse ( func , _1bd ) . next ( ) ;
return false ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return true ;
}
} , sorted : function ( _1c0 , cmp ) {
var rval = MochiKit . Iter . list ( _1c0 ) ;
if ( arguments . length == 1 ) {
cmp = MochiKit . Base . compare ;
}
rval . sort ( cmp ) ;
return rval ;
} , reversed : function ( _1c3 ) {
var rval = MochiKit . Iter . list ( _1c3 ) ;
rval . reverse ( ) ;
return rval ;
} , some : function ( _1c5 , func ) {
var self = MochiKit . Iter ;
try {
self . ifilter ( func , _1c5 ) . next ( ) ;
return true ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return false ;
}
} , iextend : function ( lst , _1c9 ) {
if ( MochiKit . Base . isArrayLike ( _1c9 ) ) {
for ( var i = 0 ; i < _1c9 . length ; i ++ ) {
lst . push ( _1c9 [ i ] ) ;
}
} else {
var self = MochiKit . Iter ;
_1c9 = self . iter ( _1c9 ) ;
try {
while ( true ) {
lst . push ( _1c9 . next ( ) ) ;
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
}
return lst ;
} , groupby : function ( _1cc , _1cd ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
if ( arguments . length < 2 ) {
_1cd = m . operator . identity ;
}
_1cc = self . iter ( _1cc ) ;
var pk = undefined ;
var k = undefined ;
var v ;
function fetch ( ) {
v = _1cc . next ( ) ;
k = _1cd ( v ) ;
}
function eat ( ) {
var ret = v ;
v = undefined ;
return ret ;
}
var _1d4 = true ;
var _1d5 = m . compare ;
return { repr : function ( ) {
return "groupby(...)" ;
} , next : function ( ) {
while ( _1d5 ( k , pk ) === 0 ) {
fetch ( ) ;
if ( _1d4 ) {
_1d4 = false ;
break ;
}
}
pk = k ;
return [ k , { next : function ( ) {
if ( v == undefined ) {
fetch ( ) ;
}
if ( _1d5 ( k , pk ) !== 0 ) {
throw self . StopIteration ;
}
return eat ( ) ;
} } ] ;
} } ;
} , groupby _as _array : function ( _1d6 , _1d7 ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
if ( arguments . length < 2 ) {
_1d7 = m . operator . identity ;
}
_1d6 = self . iter ( _1d6 ) ;
var _1da = [ ] ;
var _1db = true ;
var _1dc ;
var _1dd = m . compare ;
while ( true ) {
try {
var _1de = _1d6 . next ( ) ;
var key = _1d7 ( _1de ) ;
}
catch ( e ) {
if ( e == self . StopIteration ) {
break ;
}
throw e ;
}
if ( _1db || _1dd ( key , _1dc ) !== 0 ) {
var _1e0 = [ ] ;
_1da . push ( [ key , _1e0 ] ) ;
}
_1e0 . push ( _1de ) ;
_1db = false ;
_1dc = key ;
}
return _1da ;
} , arrayLikeIter : function ( _1e1 ) {
var i = 0 ;
return { repr : function ( ) {
return "arrayLikeIter(...)" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , next : function ( ) {
if ( i >= _1e1 . length ) {
throw MochiKit . Iter . StopIteration ;
}
return _1e1 [ i ++ ] ;
} } ;
} , hasIterateNext : function ( _1e3 ) {
return ( _1e3 && typeof ( _1e3 . iterateNext ) == "function" ) ;
} , iterateNextIter : function ( _1e4 ) {
return { repr : function ( ) {
return "iterateNextIter(...)" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , next : function ( ) {
var rval = _1e4 . iterateNext ( ) ;
if ( rval === null || rval === undefined ) {
throw MochiKit . Iter . StopIteration ;
}
return rval ;
} } ;
} } ) ;
MochiKit . Iter . EXPORT _OK = [ "iteratorRegistry" , "arrayLikeIter" , "hasIterateNext" , "iterateNextIter" , ] ;
MochiKit . Iter . EXPORT = [ "StopIteration" , "registerIteratorFactory" , "iter" , "count" , "cycle" , "repeat" , "next" , "izip" , "ifilter" , "ifilterfalse" , "islice" , "imap" , "applymap" , "chain" , "takewhile" , "dropwhile" , "tee" , "list" , "reduce" , "range" , "sum" , "exhaust" , "forEach" , "every" , "sorted" , "reversed" , "some" , "iextend" , "groupby" , "groupby_as_array" ] ;
MochiKit . Iter . _ _new _ _ = function ( ) {
var m = MochiKit . Base ;
if ( typeof ( StopIteration ) != "undefined" ) {
this . StopIteration = StopIteration ;
} else {
this . StopIteration = new m . NamedError ( "StopIteration" ) ;
}
this . iteratorRegistry = new m . AdapterRegistry ( ) ;
this . registerIteratorFactory ( "arrayLike" , m . isArrayLike , this . arrayLikeIter ) ;
this . registerIteratorFactory ( "iterateNext" , this . hasIterateNext , this . iterateNextIter ) ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} ;
MochiKit . Iter . _ _new _ _ ( ) ;
if ( MochiKit . _ _export _ _ ) {
reduce = MochiKit . Iter . reduce ;
}
MochiKit . Base . _exportSymbols ( this , MochiKit . Iter ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Logging" ) ;
dojo . require ( "MochiKit.Base" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Logging depends on MochiKit.Base!" ;
}
if ( typeof ( MochiKit . Logging ) == "undefined" ) {
MochiKit . Logging = { } ;
}
MochiKit . Logging . NAME = "MochiKit.Logging" ;
MochiKit . Logging . VERSION = "1.4" ;
MochiKit . Logging . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Logging . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Logging . EXPORT = [ "LogLevel" , "LogMessage" , "Logger" , "alertListener" , "logger" , "log" , "logError" , "logDebug" , "logFatal" , "logWarning" ] ;
MochiKit . Logging . EXPORT _OK = [ "logLevelAtLeast" , "isLogMessage" , "compareLogMessage" ] ;
MochiKit . Logging . LogMessage = function ( num , _1e8 , info ) {
this . num = num ;
this . level = _1e8 ;
this . info = info ;
this . timestamp = new Date ( ) ;
} ;
MochiKit . Logging . LogMessage . prototype = { repr : function ( ) {
var m = MochiKit . Base ;
return "LogMessage(" + m . map ( m . repr , [ this . num , this . level , this . info ] ) . join ( ", " ) + ")" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
MochiKit . Base . update ( MochiKit . Logging , { logLevelAtLeast : function ( _1eb ) {
var self = MochiKit . Logging ;
if ( typeof ( _1eb ) == "string" ) {
_1eb = self . LogLevel [ _1eb ] ;
}
return function ( msg ) {
var _1ee = msg . level ;
if ( typeof ( _1ee ) == "string" ) {
_1ee = self . LogLevel [ _1ee ] ;
}
return _1ee >= _1eb ;
} ;
} , isLogMessage : function ( ) {
var _1ef = MochiKit . Logging . LogMessage ;
for ( var i = 0 ; i < arguments . length ; i ++ ) {
if ( ! ( arguments [ i ] instanceof _1ef ) ) {
return false ;
}
}
return true ;
} , compareLogMessage : function ( a , b ) {
return MochiKit . Base . compare ( [ a . level , a . info ] , [ b . level , b . info ] ) ;
} , alertListener : function ( msg ) {
alert ( "num: " + msg . num + "\nlevel: " + msg . level + "\ninfo: " + msg . info . join ( " " ) ) ;
} } ) ;
MochiKit . Logging . Logger = function ( _1f4 ) {
this . counter = 0 ;
if ( typeof ( _1f4 ) == "undefined" || _1f4 === null ) {
_1f4 = - 1 ;
}
this . maxSize = _1f4 ;
this . _messages = [ ] ;
this . listeners = { } ;
this . useNativeConsole = false ;
} ;
MochiKit . Logging . Logger . prototype = { clear : function ( ) {
this . _messages . splice ( 0 , this . _messages . length ) ;
} , logToConsole : function ( msg ) {
if ( typeof ( window ) != "undefined" && window . console && window . console . log ) {
window . console . log ( msg . replace ( /%/g , "\uff05" ) ) ;
} else {
if ( typeof ( opera ) != "undefined" && opera . postError ) {
opera . postError ( msg ) ;
} else {
if ( typeof ( printfire ) == "function" ) {
printfire ( msg ) ;
} else {
if ( typeof ( Debug ) != "undefined" && Debug . writeln ) {
Debug . writeln ( msg ) ;
} else {
if ( typeof ( debug ) != "undefined" && debug . trace ) {
debug . trace ( msg ) ;
}
}
}
}
}
} , dispatchListeners : function ( msg ) {
for ( var k in this . listeners ) {
var pair = this . listeners [ k ] ;
if ( pair . ident != k || ( pair [ 0 ] && ! pair [ 0 ] ( msg ) ) ) {
continue ;
}
pair [ 1 ] ( msg ) ;
}
} , addListener : function ( _1f9 , _1fa , _1fb ) {
if ( typeof ( _1fa ) == "string" ) {
_1fa = MochiKit . Logging . logLevelAtLeast ( _1fa ) ;
}
var _1fc = [ _1fa , _1fb ] ;
_1fc . ident = _1f9 ;
this . listeners [ _1f9 ] = _1fc ;
} , removeListener : function ( _1fd ) {
delete this . listeners [ _1fd ] ;
} , baseLog : function ( _1fe , _1ff ) {
var msg = new MochiKit . Logging . LogMessage ( this . counter , _1fe , MochiKit . Base . extend ( null , arguments , 1 ) ) ;
this . _messages . push ( msg ) ;
this . dispatchListeners ( msg ) ;
if ( this . useNativeConsole ) {
this . logToConsole ( msg . level + ": " + msg . info . join ( " " ) ) ;
}
this . counter += 1 ;
while ( this . maxSize >= 0 && this . _messages . length > this . maxSize ) {
this . _messages . shift ( ) ;
}
} , getMessages : function ( _201 ) {
var _202 = 0 ;
if ( ! ( typeof ( _201 ) == "undefined" || _201 === null ) ) {
_202 = Math . max ( 0 , this . _messages . length - _201 ) ;
}
return this . _messages . slice ( _202 ) ;
} , getMessageText : function ( _203 ) {
if ( typeof ( _203 ) == "undefined" || _203 === null ) {
_203 = 30 ;
}
var _204 = this . getMessages ( _203 ) ;
if ( _204 . length ) {
var lst = map ( function ( m ) {
return "\n [" + m . num + "] " + m . level + ": " + m . info . join ( " " ) ;
} , _204 ) ;
lst . unshift ( "LAST " + _204 . length + " MESSAGES:" ) ;
return lst . join ( "" ) ;
}
return "" ;
} , debuggingBookmarklet : function ( _207 ) {
if ( typeof ( MochiKit . LoggingPane ) == "undefined" ) {
alert ( this . getMessageText ( ) ) ;
} else {
MochiKit . LoggingPane . createLoggingPane ( _207 || false ) ;
}
} } ;
MochiKit . Logging . _ _new _ _ = function ( ) {
this . LogLevel = { ERROR : 40 , FATAL : 50 , WARNING : 30 , INFO : 20 , DEBUG : 10 } ;
var m = MochiKit . Base ;
m . registerComparator ( "LogMessage" , this . isLogMessage , this . compareLogMessage ) ;
var _209 = m . partial ;
var _20a = this . Logger ;
var _20b = _20a . prototype . baseLog ;
m . update ( this . Logger . prototype , { debug : _209 ( _20b , "DEBUG" ) , log : _209 ( _20b , "INFO" ) , error : _209 ( _20b , "ERROR" ) , fatal : _209 ( _20b , "FATAL" ) , warning : _209 ( _20b , "WARNING" ) } ) ;
var self = this ;
var _20d = function ( name ) {
return function ( ) {
self . logger [ name ] . apply ( self . logger , arguments ) ;
} ;
} ;
this . log = _20d ( "log" ) ;
this . logError = _20d ( "error" ) ;
this . logDebug = _20d ( "debug" ) ;
this . logFatal = _20d ( "fatal" ) ;
this . logWarning = _20d ( "warning" ) ;
this . logger = new _20a ( ) ;
this . logger . useNativeConsole = true ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} ;
if ( typeof ( printfire ) == "undefined" && typeof ( document ) != "undefined" && document . createEvent && typeof ( dispatchEvent ) != "undefined" ) {
printfire = function ( ) {
printfire . args = arguments ;
var ev = document . createEvent ( "Events" ) ;
ev . initEvent ( "printfire" , false , true ) ;
dispatchEvent ( ev ) ;
} ;
}
MochiKit . Logging . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Logging ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.DateTime" ) ;
}
if ( typeof ( MochiKit ) == "undefined" ) {
MochiKit = { } ;
}
if ( typeof ( MochiKit . DateTime ) == "undefined" ) {
MochiKit . DateTime = { } ;
}
MochiKit . DateTime . NAME = "MochiKit.DateTime" ;
MochiKit . DateTime . VERSION = "1.4" ;
MochiKit . DateTime . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . DateTime . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . DateTime . isoDate = function ( str ) {
str = str + "" ;
if ( typeof ( str ) != "string" || str . length === 0 ) {
return null ;
}
var iso = str . split ( "-" ) ;
if ( iso . length === 0 ) {
return null ;
}
return new Date ( iso [ 0 ] , iso [ 1 ] - 1 , iso [ 2 ] ) ;
} ;
MochiKit . DateTime . _isoRegexp = /(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/ ;
MochiKit . DateTime . isoTimestamp = function ( str ) {
str = str + "" ;
if ( typeof ( str ) != "string" || str . length === 0 ) {
return null ;
}
var res = str . match ( MochiKit . DateTime . _isoRegexp ) ;
if ( typeof ( res ) == "undefined" || res === null ) {
return null ;
}
var year , _215 , day , hour , min , sec , msec ;
year = parseInt ( res [ 1 ] , 10 ) ;
if ( typeof ( res [ 2 ] ) == "undefined" || res [ 2 ] === "" ) {
return new Date ( year ) ;
}
_215 = parseInt ( res [ 2 ] , 10 ) - 1 ;
day = parseInt ( res [ 3 ] , 10 ) ;
if ( typeof ( res [ 4 ] ) == "undefined" || res [ 4 ] === "" ) {
return new Date ( year , _215 , day ) ;
}
hour = parseInt ( res [ 4 ] , 10 ) ;
min = parseInt ( res [ 5 ] , 10 ) ;
sec = ( typeof ( res [ 6 ] ) != "undefined" && res [ 6 ] !== "" ) ? parseInt ( res [ 6 ] , 10 ) : 0 ;
if ( typeof ( res [ 7 ] ) != "undefined" && res [ 7 ] !== "" ) {
msec = Math . round ( 1000 * parseFloat ( "0." + res [ 7 ] ) ) ;
} else {
msec = 0 ;
}
if ( ( typeof ( res [ 8 ] ) == "undefined" || res [ 8 ] === "" ) && ( typeof ( res [ 9 ] ) == "undefined" || res [ 9 ] === "" ) ) {
return new Date ( year , _215 , day , hour , min , sec , msec ) ;
}
var ofs ;
if ( typeof ( res [ 9 ] ) != "undefined" && res [ 9 ] !== "" ) {
ofs = parseInt ( res [ 10 ] , 10 ) * 3600000 ;
if ( typeof ( res [ 11 ] ) != "undefined" && res [ 11 ] !== "" ) {
ofs += parseInt ( res [ 11 ] , 10 ) * 60000 ;
}
if ( res [ 9 ] == "-" ) {
ofs = - ofs ;
}
} else {
ofs = 0 ;
}
return new Date ( Date . UTC ( year , _215 , day , hour , min , sec , msec ) - ofs ) ;
} ;
MochiKit . DateTime . toISOTime = function ( date , _21d ) {
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
var hh = date . getHours ( ) ;
var mm = date . getMinutes ( ) ;
var ss = date . getSeconds ( ) ;
var lst = [ ( ( _21d && ( hh < 10 ) ) ? "0" + hh : hh ) , ( ( mm < 10 ) ? "0" + mm : mm ) , ( ( ss < 10 ) ? "0" + ss : ss ) ] ;
return lst . join ( ":" ) ;
} ;
MochiKit . DateTime . toISOTimestamp = function ( date , _223 ) {
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
var sep = _223 ? "T" : " " ;
var foot = _223 ? "Z" : "" ;
if ( _223 ) {
date = new Date ( date . getTime ( ) + ( date . getTimezoneOffset ( ) * 60000 ) ) ;
}
return MochiKit . DateTime . toISODate ( date ) + sep + MochiKit . DateTime . toISOTime ( date , _223 ) + foot ;
} ;
MochiKit . DateTime . toISODate = function ( date ) {
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
var _227 = MochiKit . DateTime . _padTwo ;
return [ date . getFullYear ( ) , _227 ( date . getMonth ( ) + 1 ) , _227 ( date . getDate ( ) ) ] . join ( "-" ) ;
} ;
MochiKit . DateTime . americanDate = function ( d ) {
d = d + "" ;
if ( typeof ( d ) != "string" || d . length === 0 ) {
return null ;
}
var a = d . split ( "/" ) ;
return new Date ( a [ 2 ] , a [ 0 ] - 1 , a [ 1 ] ) ;
} ;
MochiKit . DateTime . _padTwo = function ( n ) {
return ( n > 9 ) ? n : "0" + n ;
} ;
MochiKit . DateTime . toPaddedAmericanDate = function ( d ) {
if ( typeof ( d ) == "undefined" || d === null ) {
return null ;
}
var _22c = MochiKit . DateTime . _padTwo ;
return [ _22c ( d . getMonth ( ) + 1 ) , _22c ( d . getDate ( ) ) , d . getFullYear ( ) ] . join ( "/" ) ;
} ;
MochiKit . DateTime . toAmericanDate = function ( d ) {
if ( typeof ( d ) == "undefined" || d === null ) {
return null ;
}
return [ d . getMonth ( ) + 1 , d . getDate ( ) , d . getFullYear ( ) ] . join ( "/" ) ;
} ;
MochiKit . DateTime . EXPORT = [ "isoDate" , "isoTimestamp" , "toISOTime" , "toISOTimestamp" , "toISODate" , "americanDate" , "toPaddedAmericanDate" , "toAmericanDate" ] ;
MochiKit . DateTime . EXPORT _OK = [ ] ;
MochiKit . DateTime . EXPORT _TAGS = { ":common" : MochiKit . DateTime . EXPORT , ":all" : MochiKit . DateTime . EXPORT } ;
MochiKit . DateTime . _ _new _ _ = function ( ) {
var base = this . NAME + "." ;
for ( var k in this ) {
var o = this [ k ] ;
if ( typeof ( o ) == "function" && typeof ( o . NAME ) == "undefined" ) {
try {
o . NAME = base + k ;
}
catch ( e ) {
}
}
}
} ;
MochiKit . DateTime . _ _new _ _ ( ) ;
if ( typeof ( MochiKit . Base ) != "undefined" ) {
MochiKit . Base . _exportSymbols ( this , MochiKit . DateTime ) ;
} else {
( function ( _231 , _232 ) {
if ( ( typeof ( JSAN ) == "undefined" && typeof ( dojo ) == "undefined" ) || ( MochiKit . _ _export _ _ === false ) ) {
var all = _232 . EXPORT _TAGS [ ":all" ] ;
for ( var i = 0 ; i < all . length ; i ++ ) {
_231 [ all [ i ] ] = _232 [ all [ i ] ] ;
}
}
} ) ( this , MochiKit . DateTime ) ;
}
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Format" ) ;
}
if ( typeof ( MochiKit ) == "undefined" ) {
MochiKit = { } ;
}
if ( typeof ( MochiKit . Format ) == "undefined" ) {
MochiKit . Format = { } ;
}
MochiKit . Format . NAME = "MochiKit.Format" ;
MochiKit . Format . VERSION = "1.4" ;
MochiKit . Format . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Format . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Format . _numberFormatter = function ( _235 , _236 , _237 , _238 , _239 , _23a , _23b , _23c , _23d ) {
return function ( num ) {
num = parseFloat ( num ) ;
if ( typeof ( num ) == "undefined" || num === null || isNaN ( num ) ) {
return _235 ;
}
var _23f = _236 ;
var _240 = _237 ;
if ( num < 0 ) {
num = - num ;
} else {
_23f = _23f . replace ( /-/ , "" ) ;
}
var me = arguments . callee ;
var fmt = MochiKit . Format . formatLocale ( _238 ) ;
if ( _239 ) {
num = num * 100 ;
_240 = fmt . percent + _240 ;
}
num = MochiKit . Format . roundToFixed ( num , _23a ) ;
var _243 = num . split ( /\./ ) ;
var _244 = _243 [ 0 ] ;
var frac = ( _243 . length == 1 ) ? "" : _243 [ 1 ] ;
var res = "" ;
while ( _244 . length < _23b ) {
_244 = "0" + _244 ;
}
if ( _23c ) {
while ( _244 . length > _23c ) {
var i = _244 . length - _23c ;
res = fmt . separator + _244 . substring ( i , _244 . length ) + res ;
_244 = _244 . substring ( 0 , i ) ;
}
}
res = _244 + res ;
if ( _23a > 0 ) {
while ( frac . length < _23d ) {
frac = frac + "0" ;
}
res = res + fmt . decimal + frac ;
}
return _23f + res + _240 ;
} ;
} ;
MochiKit . Format . numberFormatter = function ( _248 , _249 , _24a ) {
if ( typeof ( _249 ) == "undefined" ) {
_249 = "" ;
}
var _24b = _248 . match ( /((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/ ) ;
if ( ! _24b ) {
throw TypeError ( "Invalid pattern" ) ;
}
var _24c = _248 . substr ( 0 , _24b . index ) ;
var _24d = _248 . substr ( _24b . index + _24b [ 0 ] . length ) ;
if ( _24c . search ( /-/ ) == - 1 ) {
_24c = _24c + "-" ;
}
var _24e = _24b [ 1 ] ;
var frac = ( typeof ( _24b [ 2 ] ) == "string" && _24b [ 2 ] != "" ) ? _24b [ 2 ] : "" ;
var _250 = ( typeof ( _24b [ 3 ] ) == "string" && _24b [ 3 ] != "" ) ;
var tmp = _24e . split ( /,/ ) ;
var _252 ;
if ( typeof ( _24a ) == "undefined" ) {
_24a = "default" ;
}
if ( tmp . length == 1 ) {
_252 = null ;
} else {
_252 = tmp [ 1 ] . length ;
}
var _253 = _24e . length - _24e . replace ( /0/g , "" ) . length ;
var _254 = frac . length - frac . replace ( /0/g , "" ) . length ;
var _255 = frac . length ;
var rval = MochiKit . Format . _numberFormatter ( _249 , _24c , _24d , _24a , _250 , _255 , _253 , _252 , _254 ) ;
var m = MochiKit . Base ;
if ( m ) {
var fn = arguments . callee ;
var args = m . concat ( arguments ) ;
rval . repr = function ( ) {
return [ self . NAME , "(" , map ( m . repr , args ) . join ( ", " ) , ")" ] . join ( "" ) ;
} ;
}
return rval ;
} ;
MochiKit . Format . formatLocale = function ( _25a ) {
if ( typeof ( _25a ) == "undefined" || _25a === null ) {
_25a = "default" ;
}
if ( typeof ( _25a ) == "string" ) {
var rval = MochiKit . Format . LOCALE [ _25a ] ;
if ( typeof ( rval ) == "string" ) {
rval = arguments . callee ( rval ) ;
MochiKit . Format . LOCALE [ _25a ] = rval ;
}
return rval ;
} else {
return _25a ;
}
} ;
MochiKit . Format . twoDigitAverage = function ( _25c , _25d ) {
if ( _25d ) {
var res = _25c / _25d ;
if ( ! isNaN ( res ) ) {
return MochiKit . Format . twoDigitFloat ( _25c / _25d ) ;
}
}
return "0" ;
} ;
MochiKit . Format . twoDigitFloat = function ( _25f ) {
var sign = ( _25f < 0 ? "-" : "" ) ;
var s = Math . floor ( Math . abs ( _25f ) * 100 ) . toString ( ) ;
if ( s == "0" ) {
return s ;
}
if ( s . length < 3 ) {
while ( s . charAt ( s . length - 1 ) == "0" ) {
s = s . substring ( 0 , s . length - 1 ) ;
}
return sign + "0." + s ;
}
var head = sign + s . substring ( 0 , s . length - 2 ) ;
var tail = s . substring ( s . length - 2 , s . length ) ;
if ( tail == "00" ) {
return head ;
} else {
if ( tail . charAt ( 1 ) == "0" ) {
return head + "." + tail . charAt ( 0 ) ;
} else {
return head + "." + tail ;
}
}
} ;
MochiKit . Format . lstrip = function ( str , _265 ) {
str = str + "" ;
if ( typeof ( str ) != "string" ) {
return null ;
}
if ( ! _265 ) {
return str . replace ( /^\s+/ , "" ) ;
} else {
return str . replace ( new RegExp ( "^[" + _265 + "]+" ) , "" ) ;
}
} ;
MochiKit . Format . rstrip = function ( str , _267 ) {
str = str + "" ;
if ( typeof ( str ) != "string" ) {
return null ;
}
if ( ! _267 ) {
return str . replace ( /\s+$/ , "" ) ;
} else {
return str . replace ( new RegExp ( "[" + _267 + "]+$" ) , "" ) ;
}
} ;
MochiKit . Format . strip = function ( str , _269 ) {
var self = MochiKit . Format ;
return self . rstrip ( self . lstrip ( str , _269 ) , _269 ) ;
} ;
MochiKit . Format . truncToFixed = function ( _26b , _26c ) {
_26b = Math . floor ( _26b * Math . pow ( 10 , _26c ) ) ;
var res = ( _26b * Math . pow ( 10 , - _26c ) ) . toFixed ( _26c ) ;
if ( res . charAt ( 0 ) == "." ) {
res = "0" + res ;
}
return res ;
} ;
MochiKit . Format . roundToFixed = function ( _26e , _26f ) {
return MochiKit . Format . truncToFixed ( _26e + 0.5 * Math . pow ( 10 , - _26f ) , _26f ) ;
} ;
MochiKit . Format . percentFormat = function ( _270 ) {
return MochiKit . Format . twoDigitFloat ( 100 * _270 ) + "%" ;
} ;
MochiKit . Format . EXPORT = [ "truncToFixed" , "roundToFixed" , "numberFormatter" , "formatLocale" , "twoDigitAverage" , "twoDigitFloat" , "percentFormat" , "lstrip" , "rstrip" , "strip" ] ;
MochiKit . Format . LOCALE = { en _US : { separator : "," , decimal : "." , percent : "%" } , de _DE : { separator : "." , decimal : "," , percent : "%" } , fr _FR : { separator : " " , decimal : "," , percent : "%" } , "default" : "en_US" } ;
MochiKit . Format . EXPORT _OK = [ ] ;
MochiKit . Format . EXPORT _TAGS = { ":all" : MochiKit . Format . EXPORT , ":common" : MochiKit . Format . EXPORT } ;
MochiKit . Format . _ _new _ _ = function ( ) {
var base = this . NAME + "." ;
var k , v , o ;
for ( k in this . LOCALE ) {
o = this . LOCALE [ k ] ;
if ( typeof ( o ) == "object" ) {
o . repr = function ( ) {
return this . NAME ;
} ;
o . NAME = base + "LOCALE." + k ;
}
}
for ( k in this ) {
o = this [ k ] ;
if ( typeof ( o ) == "function" && typeof ( o . NAME ) == "undefined" ) {
try {
o . NAME = base + k ;
}
catch ( e ) {
}
}
}
} ;
MochiKit . Format . _ _new _ _ ( ) ;
if ( typeof ( MochiKit . Base ) != "undefined" ) {
MochiKit . Base . _exportSymbols ( this , MochiKit . Format ) ;
} else {
( function ( _275 , _276 ) {
if ( ( typeof ( JSAN ) == "undefined" && typeof ( dojo ) == "undefined" ) || ( MochiKit . _ _export _ _ === false ) ) {
var all = _276 . EXPORT _TAGS [ ":all" ] ;
for ( var i = 0 ; i < all . length ; i ++ ) {
_275 [ all [ i ] ] = _276 [ all [ i ] ] ;
}
}
} ) ( this , MochiKit . Format ) ;
}
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Async" ) ;
dojo . require ( "MochiKit.Base" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Async depends on MochiKit.Base!" ;
}
if ( typeof ( MochiKit . Async ) == "undefined" ) {
MochiKit . Async = { } ;
}
MochiKit . Async . NAME = "MochiKit.Async" ;
MochiKit . Async . VERSION = "1.4" ;
MochiKit . Async . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Async . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Async . Deferred = function ( _279 ) {
this . chain = [ ] ;
this . id = this . _nextId ( ) ;
this . fired = - 1 ;
this . paused = 0 ;
this . results = [ null , null ] ;
this . canceller = _279 ;
this . silentlyCancelled = false ;
this . chained = false ;
} ;
MochiKit . Async . Deferred . prototype = { repr : function ( ) {
var _27a ;
if ( this . fired == - 1 ) {
_27a = "unfired" ;
} else {
if ( this . fired === 0 ) {
_27a = "success" ;
} else {
_27a = "error" ;
}
}
return "Deferred(" + this . id + ", " + _27a + ")" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , _nextId : MochiKit . Base . counter ( ) , cancel : function ( ) {
var self = MochiKit . Async ;
if ( this . fired == - 1 ) {
if ( this . canceller ) {
this . canceller ( this ) ;
} else {
this . silentlyCancelled = true ;
}
if ( this . fired == - 1 ) {
this . errback ( new self . CancelledError ( this ) ) ;
}
} else {
if ( ( this . fired === 0 ) && ( this . results [ 0 ] instanceof self . Deferred ) ) {
this . results [ 0 ] . cancel ( ) ;
}
}
} , _resback : function ( res ) {
this . fired = ( ( res instanceof Error ) ? 1 : 0 ) ;
this . results [ this . fired ] = res ;
this . _fire ( ) ;
} , _check : function ( ) {
if ( this . fired != - 1 ) {
if ( ! this . silentlyCancelled ) {
throw new MochiKit . Async . AlreadyCalledError ( this ) ;
}
this . silentlyCancelled = false ;
return ;
}
} , callback : function ( res ) {
this . _check ( ) ;
if ( res instanceof MochiKit . Async . Deferred ) {
throw new Error ( "Deferred instances can only be chained if they are the result of a callback" ) ;
}
this . _resback ( res ) ;
} , errback : function ( res ) {
this . _check ( ) ;
var self = MochiKit . Async ;
if ( res instanceof self . Deferred ) {
throw new Error ( "Deferred instances can only be chained if they are the result of a callback" ) ;
}
if ( ! ( res instanceof Error ) ) {
res = new self . GenericError ( res ) ;
}
this . _resback ( res ) ;
} , addBoth : function ( fn ) {
if ( arguments . length > 1 ) {
fn = MochiKit . Base . partial . apply ( null , arguments ) ;
}
return this . addCallbacks ( fn , fn ) ;
} , addCallback : function ( fn ) {
if ( arguments . length > 1 ) {
fn = MochiKit . Base . partial . apply ( null , arguments ) ;
}
return this . addCallbacks ( fn , null ) ;
} , addErrback : function ( fn ) {
if ( arguments . length > 1 ) {
fn = MochiKit . Base . partial . apply ( null , arguments ) ;
}
return this . addCallbacks ( null , fn ) ;
} , addCallbacks : function ( cb , eb ) {
if ( this . chained ) {
throw new Error ( "Chained Deferreds can not be re-used" ) ;
}
this . chain . push ( [ cb , eb ] ) ;
if ( this . fired >= 0 ) {
this . _fire ( ) ;
}
return this ;
} , _fire : function ( ) {
var _285 = this . chain ;
var _286 = this . fired ;
var res = this . results [ _286 ] ;
var self = this ;
var cb = null ;
while ( _285 . length > 0 && this . paused === 0 ) {
var pair = _285 . shift ( ) ;
var f = pair [ _286 ] ;
if ( f === null ) {
continue ;
}
try {
res = f ( res ) ;
_286 = ( ( res instanceof Error ) ? 1 : 0 ) ;
if ( res instanceof MochiKit . Async . Deferred ) {
cb = function ( res ) {
self . _resback ( res ) ;
self . paused -- ;
if ( ( self . paused === 0 ) && ( self . fired >= 0 ) ) {
self . _fire ( ) ;
}
} ;
this . paused ++ ;
}
}
catch ( err ) {
_286 = 1 ;
if ( ! ( err instanceof Error ) ) {
err = new MochiKit . Async . GenericError ( err ) ;
}
res = err ;
}
}
this . fired = _286 ;
this . results [ _286 ] = res ;
if ( cb && this . paused ) {
res . addBoth ( cb ) ;
res . chained = true ;
}
} } ;
MochiKit . Base . update ( MochiKit . Async , { evalJSONRequest : function ( req ) {
return MochiKit . Base . evalJSON ( req . responseText ) ;
} , succeed : function ( _28e ) {
var d = new MochiKit . Async . Deferred ( ) ;
d . callback . apply ( d , arguments ) ;
return d ;
} , fail : function ( _290 ) {
var d = new MochiKit . Async . Deferred ( ) ;
d . errback . apply ( d , arguments ) ;
return d ;
} , getXMLHttpRequest : function ( ) {
var self = arguments . callee ;
if ( ! self . XMLHttpRequest ) {
var _293 = [ function ( ) {
return new XMLHttpRequest ( ) ;
} , function ( ) {
return new ActiveXObject ( "Msxml2.XMLHTTP" ) ;
} , function ( ) {
return new ActiveXObject ( "Microsoft.XMLHTTP" ) ;
} , function ( ) {
return new ActiveXObject ( "Msxml2.XMLHTTP.4.0" ) ;
} , function ( ) {
throw new MochiKit . Async . BrowserComplianceError ( "Browser does not support XMLHttpRequest" ) ;
} ] ;
for ( var i = 0 ; i < _293 . length ; i ++ ) {
var func = _293 [ i ] ;
try {
self . XMLHttpRequest = func ;
return func ( ) ;
}
catch ( e ) {
}
}
}
return self . XMLHttpRequest ( ) ;
} , _xhr _onreadystatechange : function ( d ) {
var m = MochiKit . Base ;
if ( this . readyState == 4 ) {
try {
this . onreadystatechange = null ;
}
catch ( e ) {
try {
this . onreadystatechange = m . noop ;
}
catch ( e ) {
}
}
var _298 = null ;
try {
_298 = this . status ;
if ( ! _298 && m . isNotEmpty ( this . responseText ) ) {
_298 = 304 ;
}
}
catch ( e ) {
}
if ( _298 == 200 || _298 == 201 || _298 == 204 || _298 == 304 || _298 == 1223 ) {
d . callback ( this ) ;
} else {
var err = new MochiKit . Async . XMLHttpRequestError ( this , "Request failed" ) ;
if ( err . number ) {
d . errback ( err ) ;
} else {
d . errback ( err ) ;
}
}
}
} , _xhr _canceller : function ( req ) {
try {
req . onreadystatechange = null ;
}
catch ( e ) {
try {
req . onreadystatechange = MochiKit . Base . noop ;
}
catch ( e ) {
}
}
req . abort ( ) ;
} , sendXMLHttpRequest : function ( req , _29c ) {
if ( typeof ( _29c ) == "undefined" || _29c === null ) {
_29c = "" ;
}
var m = MochiKit . Base ;
var self = MochiKit . Async ;
var d = new self . Deferred ( m . partial ( self . _xhr _canceller , req ) ) ;
try {
req . onreadystatechange = m . bind ( self . _xhr _onreadystatechange , req , d ) ;
req . send ( _29c ) ;
}
catch ( e ) {
try {
req . onreadystatechange = null ;
}
catch ( ignore ) {
}
d . errback ( e ) ;
}
return d ;
} , doXHR : function ( url , opts ) {
var self = MochiKit . Async ;
return self . callLater ( 0 , self . _doXHR , url , opts ) ;
} , _doXHR : function ( url , opts ) {
var m = MochiKit . Base ;
opts = m . update ( { method : "GET" , sendContent : "" } , opts ) ;
var self = MochiKit . Async ;
var req = self . getXMLHttpRequest ( ) ;
if ( opts . queryString ) {
var qs = m . queryString ( opts . queryString ) ;
if ( qs ) {
url += "?" + qs ;
}
}
if ( "username" in opts ) {
req . open ( opts . method , url , true , opts . username , opts . password ) ;
} else {
req . open ( opts . method , url , true ) ;
}
if ( req . overrideMimeType && opts . mimeType ) {
req . overrideMimeType ( opts . mimeType ) ;
}
if ( opts . headers ) {
var _2a9 = opts . headers ;
if ( ! m . isArrayLike ( _2a9 ) ) {
_2a9 = m . items ( _2a9 ) ;
}
for ( var i = 0 ; i < _2a9 . length ; i ++ ) {
var _2ab = _2a9 [ i ] ;
var name = _2ab [ 0 ] ;
var _2ad = _2ab [ 1 ] ;
req . setRequestHeader ( name , _2ad ) ;
}
}
return self . sendXMLHttpRequest ( req , opts . sendContent ) ;
} , _buildURL : function ( url ) {
if ( arguments . length > 1 ) {
var m = MochiKit . Base ;
var qs = m . queryString . apply ( null , m . extend ( null , arguments , 1 ) ) ;
if ( qs ) {
return url + "?" + qs ;
}
}
return url ;
} , doSimpleXMLHttpRequest : function ( url ) {
var self = MochiKit . Async ;
url = self . _buildURL . apply ( self , arguments ) ;
return self . doXHR ( url ) ;
} , loadJSONDoc : function ( url ) {
var self = MochiKit . Async ;
url = self . _buildURL . apply ( self , arguments ) ;
var d = self . doXHR ( url , { "mimeType" : "text/plain" , "headers" : [ [ "Accept" , "application/json" ] ] } ) ;
d = d . addCallback ( self . evalJSONRequest ) ;
return d ;
} , wait : function ( _2b6 , _2b7 ) {
var d = new MochiKit . Async . Deferred ( ) ;
var m = MochiKit . Base ;
if ( typeof ( _2b7 ) != "undefined" ) {
d . addCallback ( function ( ) {
return _2b7 ;
} ) ;
}
var _2ba = setTimeout ( m . bind ( "callback" , d ) , Math . floor ( _2b6 * 1000 ) ) ;
d . canceller = function ( ) {
try {
clearTimeout ( _2ba ) ;
}
catch ( e ) {
}
} ;
return d ;
} , callLater : function ( _2bb , func ) {
var m = MochiKit . Base ;
var _2be = m . partial . apply ( m , m . extend ( null , arguments , 1 ) ) ;
return MochiKit . Async . wait ( _2bb ) . addCallback ( function ( res ) {
return _2be ( ) ;
} ) ;
} } ) ;
MochiKit . Async . DeferredLock = function ( ) {
this . waiting = [ ] ;
this . locked = false ;
this . id = this . _nextId ( ) ;
} ;
MochiKit . Async . DeferredLock . prototype = { _ _class _ _ : MochiKit . Async . DeferredLock , acquire : function ( ) {
var d = new MochiKit . Async . Deferred ( ) ;
if ( this . locked ) {
this . waiting . push ( d ) ;
} else {
this . locked = true ;
d . callback ( this ) ;
}
return d ;
} , release : function ( ) {
if ( ! this . locked ) {
throw TypeError ( "Tried to release an unlocked DeferredLock" ) ;
}
this . locked = false ;
if ( this . waiting . length > 0 ) {
this . locked = true ;
this . waiting . shift ( ) . callback ( this ) ;
}
} , _nextId : MochiKit . Base . counter ( ) , repr : function ( ) {
var _2c1 ;
if ( this . locked ) {
_2c1 = "locked, " + this . waiting . length + " waiting" ;
} else {
_2c1 = "unlocked" ;
}
return "DeferredLock(" + this . id + ", " + _2c1 + ")" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
MochiKit . Async . DeferredList = function ( list , _2c3 , _2c4 , _2c5 , _2c6 ) {
MochiKit . Async . Deferred . apply ( this , [ _2c6 ] ) ;
this . list = list ;
var _2c7 = [ ] ;
this . resultList = _2c7 ;
this . finishedCount = 0 ;
this . fireOnOneCallback = _2c3 ;
this . fireOnOneErrback = _2c4 ;
this . consumeErrors = _2c5 ;
var cb = MochiKit . Base . bind ( this . _cbDeferred , this ) ;
for ( var i = 0 ; i < list . length ; i ++ ) {
var d = list [ i ] ;
_2c7 . push ( undefined ) ;
d . addCallback ( cb , i , true ) ;
d . addErrback ( cb , i , false ) ;
}
if ( list . length === 0 && ! _2c3 ) {
this . callback ( this . resultList ) ;
}
} ;
MochiKit . Async . DeferredList . prototype = new MochiKit . Async . Deferred ( ) ;
MochiKit . Async . DeferredList . prototype . _cbDeferred = function ( _2cb , _2cc , _2cd ) {
this . resultList [ _2cb ] = [ _2cc , _2cd ] ;
this . finishedCount += 1 ;
if ( this . fired == - 1 ) {
if ( _2cc && this . fireOnOneCallback ) {
this . callback ( [ _2cb , _2cd ] ) ;
} else {
if ( ! _2cc && this . fireOnOneErrback ) {
this . errback ( _2cd ) ;
} else {
if ( this . finishedCount == this . list . length ) {
this . callback ( this . resultList ) ;
}
}
}
}
if ( ! _2cc && this . consumeErrors ) {
_2cd = null ;
}
return _2cd ;
} ;
MochiKit . Async . gatherResults = function ( _2ce ) {
var d = new MochiKit . Async . DeferredList ( _2ce , false , true , false ) ;
d . addCallback ( function ( _2d0 ) {
var ret = [ ] ;
for ( var i = 0 ; i < _2d0 . length ; i ++ ) {
ret . push ( _2d0 [ i ] [ 1 ] ) ;
}
return ret ;
} ) ;
return d ;
} ;
MochiKit . Async . maybeDeferred = function ( func ) {
var self = MochiKit . Async ;
var _2d5 ;
try {
var r = func . apply ( null , MochiKit . Base . extend ( [ ] , arguments , 1 ) ) ;
if ( r instanceof self . Deferred ) {
_2d5 = r ;
} else {
if ( r instanceof Error ) {
_2d5 = self . fail ( r ) ;
} else {
_2d5 = self . succeed ( r ) ;
}
}
}
catch ( e ) {
_2d5 = self . fail ( e ) ;
}
return _2d5 ;
} ;
MochiKit . Async . EXPORT = [ "AlreadyCalledError" , "CancelledError" , "BrowserComplianceError" , "GenericError" , "XMLHttpRequestError" , "Deferred" , "succeed" , "fail" , "getXMLHttpRequest" , "doSimpleXMLHttpRequest" , "loadJSONDoc" , "wait" , "callLater" , "sendXMLHttpRequest" , "DeferredLock" , "DeferredList" , "gatherResults" , "maybeDeferred" , "doXHR" ] ;
MochiKit . Async . EXPORT _OK = [ "evalJSONRequest" ] ;
MochiKit . Async . _ _new _ _ = function ( ) {
var m = MochiKit . Base ;
var ne = m . partial ( m . _newNamedError , this ) ;
ne ( "AlreadyCalledError" , function ( _2d9 ) {
this . deferred = _2d9 ;
} ) ;
ne ( "CancelledError" , function ( _2da ) {
this . deferred = _2da ;
} ) ;
ne ( "BrowserComplianceError" , function ( msg ) {
this . message = msg ;
} ) ;
ne ( "GenericError" , function ( msg ) {
this . message = msg ;
} ) ;
ne ( "XMLHttpRequestError" , function ( req , msg ) {
this . req = req ;
this . message = msg ;
try {
this . number = req . status ;
}
catch ( e ) {
}
} ) ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} ;
MochiKit . Async . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Async ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Base" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.DOM depends on MochiKit.Base!" ;
}
if ( typeof ( MochiKit . DOM ) == "undefined" ) {
MochiKit . DOM = { } ;
}
MochiKit . DOM . NAME = "MochiKit.DOM" ;
MochiKit . DOM . VERSION = "1.4" ;
MochiKit . DOM . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . DOM . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . DOM . EXPORT = [ "removeEmptyTextNodes" , "formContents" , "currentWindow" , "currentDocument" , "withWindow" , "withDocument" , "registerDOMConverter" , "coerceToDOM" , "createDOM" , "createDOMFunc" , "isChildNode" , "getNodeAttribute" , "removeNodeAttribute" , "setNodeAttribute" , "updateNodeAttributes" , "appendChildNodes" , "insertSiblingNodesAfter" , "insertSiblingNodesBefore" , "replaceChildNodes" , "removeElement" , "swapDOM" , "BUTTON" , "TT" , "PRE" , "H1" , "H2" , "H3" , "BR" , "CANVAS" , "HR" , "LABEL" , "TEXTAREA" , "FORM" , "STRONG" , "SELECT" , "OPTION" , "OPTGROUP" , "LEGEND" , "FIELDSET" , "P" , "UL" , "OL" , "LI" , "TD" , "TR" , "THEAD" , "TBODY" , "TFOOT" , "TABLE" , "TH" , "INPUT" , "SPAN" , "A" , "DIV" , "IMG" , "getElement" , "$" , "getElementsByTagAndClassName" , "addToCallStack" , "addLoadEvent" , "focusOnLoad" , "setElementClass" , "toggleElementClass" , "addElementClass" , "removeElementClass" , "swapElementClass" , "hasElementClass" , "escapeHTML" , "toHTML" , "emitHTML" , "scrapeText" , "isParent" , "getFirstParentByTagAndClassName" , "makeClipping" , "undoClipping" , "makePositioned" , "undoPositioned" , "getFirstElementByTagAndClassName" ] ;
MochiKit . DOM . EXPORT _OK = [ "domConverters" ] ;
MochiKit . DOM . DEPRECATED = [ [ "computedStyle" , "MochiKit.Style.getStyle" , "1.4" ] , [ "elementDimensions" , "MochiKit.Style.getElementDimensions" , "1.4" ] , [ "elementPosition" , "MochiKit.Style.getElementPosition" , "1.4" ] , [ "hideElement" , "MochiKit.Style.hideElement" , "1.4" ] , [ "setElementDimensions" , "MochiKit.Style.setElementDimensions" , "1.4" ] , [ "setElementPosition" , "MochiKit.Style.setElementPosition" , "1.4" ] , [ "setDisplayForElement" , "MochiKit.Style.setDisplayForElement" , "1.4" ] , [ "setOpacity" , "MochiKit.Style.setOpacity" , "1.4" ] , [ "showElement" , "MochiKit.Style.showElement" , "1.4" ] , [ "Coordinates" , "MochiKit.Style.Coordinates" , "1.4" ] , [ "Dimensions" , "MochiKit.Style.Dimensions" , "1.4" ] ] ;
MochiKit . DOM . getViewportDimensions = new Function ( "" + "if (!MochiKit[\"Style\"]) {" + " throw new Error(\"This function has been deprecated and depends on MochiKit.Style.\");" + "}" + "return MochiKit.Style.getViewportDimensions.apply(this, arguments);" ) ;
MochiKit . Base . update ( MochiKit . DOM , { currentWindow : function ( ) {
return MochiKit . DOM . _window ;
} , currentDocument : function ( ) {
return MochiKit . DOM . _document ;
} , withWindow : function ( win , func ) {
var self = MochiKit . DOM ;
var _2e2 = self . _document ;
var _2e3 = self . _window ;
var rval ;
try {
self . _window = win ;
self . _document = win . document ;
rval = func ( ) ;
}
catch ( e ) {
self . _window = _2e3 ;
self . _document = _2e2 ;
throw e ;
}
self . _window = _2e3 ;
self . _document = _2e2 ;
return rval ;
} , formContents : function ( elem ) {
var _2e6 = [ ] ;
var _2e7 = [ ] ;
var m = MochiKit . Base ;
var self = MochiKit . DOM ;
if ( typeof ( elem ) == "undefined" || elem === null ) {
elem = self . _document . body ;
} else {
elem = self . getElement ( elem ) ;
}
m . nodeWalk ( elem , function ( elem ) {
var name = elem . name ;
if ( m . isNotEmpty ( name ) ) {
var _2ec = elem . tagName . toUpperCase ( ) ;
if ( _2ec === "INPUT" && ( elem . type == "radio" || elem . type == "checkbox" ) && ! elem . checked ) {
return null ;
}
if ( _2ec === "SELECT" ) {
if ( elem . type == "select-one" ) {
if ( elem . selectedIndex >= 0 ) {
var opt = elem . options [ elem . selectedIndex ] ;
var v = opt . value ;
if ( ! v ) {
var h = opt . outerHTML ;
if ( h && ! h . match ( /^[^>]+\svalue\s*=/i ) ) {
v = opt . text ;
}
}
_2e6 . push ( name ) ;
_2e7 . push ( v ) ;
return null ;
}
_2e6 . push ( name ) ;
_2e7 . push ( "" ) ;
return null ;
} else {
var opts = elem . options ;
if ( ! opts . length ) {
_2e6 . push ( name ) ;
_2e7 . push ( "" ) ;
return null ;
}
for ( var i = 0 ; i < opts . length ; i ++ ) {
var opt = opts [ i ] ;
if ( ! opt . selected ) {
continue ;
}
var v = opt . value ;
if ( ! v ) {
var h = opt . outerHTML ;
if ( h && ! h . match ( /^[^>]+\svalue\s*=/i ) ) {
v = opt . text ;
}
}
_2e6 . push ( name ) ;
_2e7 . push ( v ) ;
}
return null ;
}
}
if ( _2ec === "FORM" || _2ec === "P" || _2ec === "SPAN" || _2ec === "DIV" ) {
return elem . childNodes ;
}
_2e6 . push ( name ) ;
_2e7 . push ( elem . value || "" ) ;
return null ;
}
return elem . childNodes ;
} ) ;
return [ _2e6 , _2e7 ] ;
} , withDocument : function ( doc , func ) {
var self = MochiKit . DOM ;
var _2f5 = self . _document ;
var rval ;
try {
self . _document = doc ;
rval = func ( ) ;
}
catch ( e ) {
self . _document = _2f5 ;
throw e ;
}
self . _document = _2f5 ;
return rval ;
} , registerDOMConverter : function ( name , _2f8 , wrap , _2fa ) {
MochiKit . DOM . domConverters . register ( name , _2f8 , wrap , _2fa ) ;
} , coerceToDOM : function ( node , ctx ) {
var m = MochiKit . Base ;
var im = MochiKit . Iter ;
var self = MochiKit . DOM ;
if ( im ) {
var iter = im . iter ;
var _301 = im . repeat ;
var map = m . map ;
}
var _303 = self . domConverters ;
var _304 = arguments . callee ;
var _305 = m . NotFound ;
while ( true ) {
if ( typeof ( node ) == "undefined" || node === null ) {
return null ;
}
if ( typeof ( node ) == "function" && typeof ( node . length ) == "number" && ! ( node instanceof Function ) ) {
node = im . list ( node ) ;
}
if ( typeof ( node . nodeType ) != "undefined" && node . nodeType > 0 ) {
return node ;
}
if ( typeof ( node ) == "number" || typeof ( node ) == "boolean" ) {
node = node . toString ( ) ;
}
if ( typeof ( node ) == "string" ) {
return self . _document . createTextNode ( node ) ;
}
if ( typeof ( node . _ _dom _ _ ) == "function" ) {
node = node . _ _dom _ _ ( ctx ) ;
continue ;
}
if ( typeof ( node . dom ) == "function" ) {
node = node . dom ( ctx ) ;
continue ;
}
if ( typeof ( node ) == "function" ) {
node = node . apply ( ctx , [ ctx ] ) ;
continue ;
}
if ( im ) {
var _306 = null ;
try {
_306 = iter ( node ) ;
}
catch ( e ) {
}
if ( _306 ) {
return map ( _304 , _306 , _301 ( ctx ) ) ;
}
}
try {
node = _303 . match ( node , ctx ) ;
continue ;
}
catch ( e ) {
if ( e != _305 ) {
throw e ;
}
}
return self . _document . createTextNode ( node . toString ( ) ) ;
}
return undefined ;
} , isChildNode : function ( node , _308 ) {
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
node = self . getElement ( node ) ;
}
if ( typeof ( _308 ) == "string" ) {
_308 = self . getElement ( _308 ) ;
}
if ( node === _308 ) {
return true ;
}
while ( node && node . tagName . toUpperCase ( ) != "BODY" ) {
node = node . parentNode ;
if ( node === _308 ) {
return true ;
}
}
return false ;
} , setNodeAttribute : function ( node , attr , _30c ) {
var o = { } ;
o [ attr ] = _30c ;
try {
return MochiKit . DOM . updateNodeAttributes ( node , o ) ;
}
catch ( e ) {
}
return null ;
} , getNodeAttribute : function ( node , attr ) {
var self = MochiKit . DOM ;
var _311 = self . attributeArray . renames [ attr ] ;
node = self . getElement ( node ) ;
try {
if ( _311 ) {
return node [ _311 ] ;
}
return node . getAttribute ( attr ) ;
}
catch ( e ) {
}
return null ;
} , removeNodeAttribute : function ( node , attr ) {
var self = MochiKit . DOM ;
var _315 = self . attributeArray . renames [ attr ] ;
node = self . getElement ( node ) ;
try {
if ( _315 ) {
return node [ _315 ] ;
}
return node . removeAttribute ( attr ) ;
}
catch ( e ) {
}
return null ;
} , updateNodeAttributes : function ( node , _317 ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
}
if ( _317 ) {
var _31a = MochiKit . Base . updatetree ;
if ( self . attributeArray . compliant ) {
for ( var k in _317 ) {
var v = _317 [ k ] ;
if ( typeof ( v ) == "object" && typeof ( elem [ k ] ) == "object" ) {
if ( k == "style" && MochiKit . Style ) {
MochiKit . Style . setStyle ( elem , v ) ;
} else {
_31a ( elem [ k ] , v ) ;
}
} else {
if ( k . substring ( 0 , 2 ) == "on" ) {
if ( typeof ( v ) == "string" ) {
v = new Function ( v ) ;
}
elem [ k ] = v ;
} else {
elem . setAttribute ( k , v ) ;
}
}
}
} else {
var _31d = self . attributeArray . renames ;
for ( var k in _317 ) {
v = _317 [ k ] ;
var _31e = _31d [ k ] ;
if ( k == "style" && typeof ( v ) == "string" ) {
elem . style . cssText = v ;
} else {
if ( typeof ( _31e ) == "string" ) {
elem [ _31e ] = v ;
} else {
if ( typeof ( elem [ k ] ) == "object" && typeof ( v ) == "object" ) {
if ( k == "style" && MochiKit . Style ) {
MochiKit . Style . setStyle ( elem , v ) ;
} else {
_31a ( elem [ k ] , v ) ;
}
} else {
if ( k . substring ( 0 , 2 ) == "on" ) {
if ( typeof ( v ) == "string" ) {
v = new Function ( v ) ;
}
elem [ k ] = v ;
} else {
elem . setAttribute ( k , v ) ;
}
}
}
}
}
}
}
return elem ;
} , appendChildNodes : function ( node ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
}
var _322 = [ self . coerceToDOM ( MochiKit . Base . extend ( null , arguments , 1 ) , elem ) ] ;
var _323 = MochiKit . Base . concat ;
while ( _322 . length ) {
var n = _322 . shift ( ) ;
if ( typeof ( n ) == "undefined" || n === null ) {
} else {
if ( typeof ( n . nodeType ) == "number" ) {
elem . appendChild ( n ) ;
} else {
_322 = _323 ( n , _322 ) ;
}
}
}
return elem ;
} , insertSiblingNodesBefore : function ( node ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
}
var _328 = [ self . coerceToDOM ( MochiKit . Base . extend ( null , arguments , 1 ) , elem ) ] ;
var _329 = elem . parentNode ;
var _32a = MochiKit . Base . concat ;
while ( _328 . length ) {
var n = _328 . shift ( ) ;
if ( typeof ( n ) == "undefined" || n === null ) {
} else {
if ( typeof ( n . nodeType ) == "number" ) {
_329 . insertBefore ( n , elem ) ;
} else {
_328 = _32a ( n , _328 ) ;
}
}
}
return _329 ;
} , insertSiblingNodesAfter : function ( node ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
}
var _32f = [ self . coerceToDOM ( MochiKit . Base . extend ( null , arguments , 1 ) , elem ) ] ;
if ( elem . nextSibling ) {
return self . insertSiblingNodesBefore ( elem . nextSibling , _32f ) ;
} else {
return self . appendChildNodes ( elem . parentNode , _32f ) ;
}
} , replaceChildNodes : function ( node ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
arguments [ 0 ] = elem ;
}
var _333 ;
while ( ( _333 = elem . firstChild ) ) {
elem . removeChild ( _333 ) ;
}
if ( arguments . length < 2 ) {
return elem ;
} else {
return self . appendChildNodes . apply ( this , arguments ) ;
}
} , createDOM : function ( name , _335 ) {
var elem ;
var self = MochiKit . DOM ;
var m = MochiKit . Base ;
if ( typeof ( _335 ) == "string" || typeof ( _335 ) == "number" ) {
var args = m . extend ( [ name , null ] , arguments , 1 ) ;
return arguments . callee . apply ( this , args ) ;
}
if ( typeof ( name ) == "string" ) {
var _33a = self . _xhtml ;
if ( _335 && ! self . attributeArray . compliant ) {
var _33b = "" ;
if ( "name" in _335 ) {
_33b += " name=\"" + self . escapeHTML ( _335 . name ) + "\"" ;
}
if ( name == "input" && "type" in _335 ) {
_33b += " type=\"" + self . escapeHTML ( _335 . type ) + "\"" ;
}
if ( _33b ) {
name = "<" + name + _33b + ">" ;
_33a = false ;
}
}
var d = self . _document ;
if ( _33a && d === document ) {
elem = d . createElementNS ( "http://www.w3.org/1999/xhtml" , name ) ;
} else {
elem = d . createElement ( name ) ;
}
} else {
elem = name ;
}
if ( _335 ) {
self . updateNodeAttributes ( elem , _335 ) ;
}
if ( arguments . length <= 2 ) {
return elem ;
} else {
var args = m . extend ( [ elem ] , arguments , 2 ) ;
return self . appendChildNodes . apply ( this , args ) ;
}
} , createDOMFunc : function ( ) {
var m = MochiKit . Base ;
return m . partial . apply ( this , m . extend ( [ MochiKit . DOM . createDOM ] , arguments ) ) ;
} , removeElement : function ( elem ) {
var e = MochiKit . DOM . getElement ( elem ) ;
e . parentNode . removeChild ( e ) ;
return e ;
} , swapDOM : function ( dest , src ) {
var self = MochiKit . DOM ;
dest = self . getElement ( dest ) ;
var _343 = dest . parentNode ;
if ( src ) {
src = self . getElement ( src ) ;
_343 . replaceChild ( src , dest ) ;
} else {
_343 . removeChild ( dest ) ;
}
return src ;
} , getElement : function ( id ) {
var self = MochiKit . DOM ;
if ( arguments . length == 1 ) {
return ( ( typeof ( id ) == "string" ) ? self . _document . getElementById ( id ) : id ) ;
} else {
return MochiKit . Base . map ( self . getElement , arguments ) ;
}
} , getElementsByTagAndClassName : function ( _346 , _347 , _348 ) {
var self = MochiKit . DOM ;
if ( typeof ( _346 ) == "undefined" || _346 === null ) {
_346 = "*" ;
}
if ( typeof ( _348 ) == "undefined" || _348 === null ) {
_348 = self . _document ;
}
_348 = self . getElement ( _348 ) ;
var _34a = ( _348 . getElementsByTagName ( _346 ) || self . _document . all ) ;
if ( typeof ( _347 ) == "undefined" || _347 === null ) {
return MochiKit . Base . extend ( null , _34a ) ;
}
var _34b = [ ] ;
for ( var i = 0 ; i < _34a . length ; i ++ ) {
var _34d = _34a [ i ] ;
var cls = _34d . className ;
if ( ! cls ) {
continue ;
}
var _34f = cls . split ( " " ) ;
for ( var j = 0 ; j < _34f . length ; j ++ ) {
if ( _34f [ j ] == _347 ) {
_34b . push ( _34d ) ;
break ;
}
}
}
return _34b ;
} , _newCallStack : function ( path , once ) {
var rval = function ( ) {
var _354 = arguments . callee . callStack ;
for ( var i = 0 ; i < _354 . length ; i ++ ) {
if ( _354 [ i ] . apply ( this , arguments ) === false ) {
break ;
}
}
if ( once ) {
try {
this [ path ] = null ;
}
catch ( e ) {
}
}
} ;
rval . callStack = [ ] ;
return rval ;
} , addToCallStack : function ( _356 , path , func , once ) {
var self = MochiKit . DOM ;
var _35b = _356 [ path ] ;
var _35c = _35b ;
if ( ! ( typeof ( _35b ) == "function" && typeof ( _35b . callStack ) == "object" && _35b . callStack !== null ) ) {
_35c = self . _newCallStack ( path , once ) ;
if ( typeof ( _35b ) == "function" ) {
_35c . callStack . push ( _35b ) ;
}
_356 [ path ] = _35c ;
}
_35c . callStack . push ( func ) ;
} , addLoadEvent : function ( func ) {
var self = MochiKit . DOM ;
self . addToCallStack ( self . _window , "onload" , func , true ) ;
} , focusOnLoad : function ( _35f ) {
var self = MochiKit . DOM ;
self . addLoadEvent ( function ( ) {
_35f = self . getElement ( _35f ) ;
if ( _35f ) {
_35f . focus ( ) ;
}
} ) ;
} , setElementClass : function ( _361 , _362 ) {
var self = MochiKit . DOM ;
var obj = self . getElement ( _361 ) ;
if ( self . attributeArray . compliant ) {
obj . setAttribute ( "class" , _362 ) ;
} else {
obj . setAttribute ( "className" , _362 ) ;
}
} , toggleElementClass : function ( _365 ) {
var self = MochiKit . DOM ;
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var obj = self . getElement ( arguments [ i ] ) ;
if ( ! self . addElementClass ( obj , _365 ) ) {
self . removeElementClass ( obj , _365 ) ;
}
}
} , addElementClass : function ( _369 , _36a ) {
var self = MochiKit . DOM ;
var obj = self . getElement ( _369 ) ;
var cls = obj . className ;
if ( cls == undefined || cls . length === 0 ) {
self . setElementClass ( obj , _36a ) ;
return true ;
}
if ( cls == _36a ) {
return false ;
}
var _36e = cls . split ( " " ) ;
for ( var i = 0 ; i < _36e . length ; i ++ ) {
if ( _36e [ i ] == _36a ) {
return false ;
}
}
self . setElementClass ( obj , cls + " " + _36a ) ;
return true ;
} , removeElementClass : function ( _370 , _371 ) {
var self = MochiKit . DOM ;
var obj = self . getElement ( _370 ) ;
var cls = obj . className ;
if ( cls == undefined || cls . length === 0 ) {
return false ;
}
if ( cls == _371 ) {
self . setElementClass ( obj , "" ) ;
return true ;
}
var _375 = cls . split ( " " ) ;
for ( var i = 0 ; i < _375 . length ; i ++ ) {
if ( _375 [ i ] == _371 ) {
_375 . splice ( i , 1 ) ;
self . setElementClass ( obj , _375 . join ( " " ) ) ;
return true ;
}
}
return false ;
} , swapElementClass : function ( _377 , _378 , _379 ) {
var obj = MochiKit . DOM . getElement ( _377 ) ;
var res = MochiKit . DOM . removeElementClass ( obj , _378 ) ;
if ( res ) {
MochiKit . DOM . addElementClass ( obj , _379 ) ;
}
return res ;
} , hasElementClass : function ( _37c , _37d ) {
var obj = MochiKit . DOM . getElement ( _37c ) ;
var cls = obj . className ;
if ( ! cls ) {
return false ;
}
var _380 = cls . split ( " " ) ;
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var good = false ;
for ( var j = 0 ; j < _380 . length ; j ++ ) {
if ( _380 [ j ] == arguments [ i ] ) {
good = true ;
break ;
}
}
if ( ! good ) {
return false ;
}
}
return true ;
} , escapeHTML : function ( s ) {
return s . replace ( /&/g , "&" ) . replace ( /"/g , """ ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) ;
} , toHTML : function ( dom ) {
return MochiKit . DOM . emitHTML ( dom ) . join ( "" ) ;
} , emitHTML : function ( dom , lst ) {
if ( typeof ( lst ) == "undefined" || lst === null ) {
lst = [ ] ;
}
var _388 = [ dom ] ;
var self = MochiKit . DOM ;
var _38a = self . escapeHTML ;
var _38b = self . attributeArray ;
while ( _388 . length ) {
dom = _388 . pop ( ) ;
if ( typeof ( dom ) == "string" ) {
lst . push ( dom ) ;
} else {
if ( dom . nodeType == 1 ) {
lst . push ( "<" + dom . tagName . toLowerCase ( ) ) ;
var _38c = [ ] ;
var _38d = _38b ( dom ) ;
for ( var i = 0 ; i < _38d . length ; i ++ ) {
var a = _38d [ i ] ;
_38c . push ( [ " " , a . name , "=\"" , _38a ( a . value ) , "\"" ] ) ;
}
_38c . sort ( ) ;
for ( i = 0 ; i < _38c . length ; i ++ ) {
var _390 = _38c [ i ] ;
for ( var j = 0 ; j < _390 . length ; j ++ ) {
lst . push ( _390 [ j ] ) ;
}
}
if ( dom . hasChildNodes ( ) ) {
lst . push ( ">" ) ;
_388 . push ( "</" + dom . tagName . toLowerCase ( ) + ">" ) ;
var _392 = dom . childNodes ;
for ( i = _392 . length - 1 ; i >= 0 ; i -- ) {
_388 . push ( _392 [ i ] ) ;
}
} else {
lst . push ( "/>" ) ;
}
} else {
if ( dom . nodeType == 3 ) {
lst . push ( _38a ( dom . nodeValue ) ) ;
}
}
}
}
return lst ;
} , scrapeText : function ( node , _394 ) {
var rval = [ ] ;
( function ( node ) {
var cn = node . childNodes ;
if ( cn ) {
for ( var i = 0 ; i < cn . length ; i ++ ) {
arguments . callee . call ( this , cn [ i ] ) ;
}
}
var _399 = node . nodeValue ;
if ( typeof ( _399 ) == "string" ) {
rval . push ( _399 ) ;
}
} ) ( MochiKit . DOM . getElement ( node ) ) ;
if ( _394 ) {
return rval ;
} else {
return rval . join ( "" ) ;
}
} , removeEmptyTextNodes : function ( _39a ) {
_39a = MochiKit . DOM . getElement ( _39a ) ;
for ( var i = 0 ; i < _39a . childNodes . length ; i ++ ) {
var node = _39a . childNodes [ i ] ;
if ( node . nodeType == 3 && ! /\S/ . test ( node . nodeValue ) ) {
node . parentNode . removeChild ( node ) ;
}
}
} , makeClipping : function ( _39d ) {
_39d = MochiKit . DOM . getElement ( _39d ) ;
var _39e = _39d . style . overflow ;
if ( ( MochiKit . Style . getStyle ( _39d , "overflow" ) || "visible" ) != "hidden" ) {
_39d . style . overflow = "hidden" ;
}
return _39e ;
} , undoClipping : function ( _39f , _3a0 ) {
_39f = MochiKit . DOM . getElement ( _39f ) ;
if ( ! _3a0 ) {
return ;
}
_39f . style . overflow = _3a0 ;
} , makePositioned : function ( _3a1 ) {
_3a1 = MochiKit . DOM . getElement ( _3a1 ) ;
var pos = MochiKit . Style . getStyle ( _3a1 , "position" ) ;
if ( pos == "static" || ! pos ) {
_3a1 . style . position = "relative" ;
if ( /Opera/ . test ( navigator . userAgent ) ) {
_3a1 . style . top = 0 ;
_3a1 . style . left = 0 ;
}
}
} , undoPositioned : function ( _3a3 ) {
_3a3 = MochiKit . DOM . getElement ( _3a3 ) ;
if ( _3a3 . style . position == "relative" ) {
_3a3 . style . position = _3a3 . style . top = _3a3 . style . left = _3a3 . style . bottom = _3a3 . style . right = "" ;
}
} , getFirstElementByTagAndClassName : function ( _3a4 , _3a5 , _3a6 ) {
var self = MochiKit . DOM ;
if ( typeof ( _3a4 ) == "undefined" || _3a4 === null ) {
_3a4 = "*" ;
}
if ( typeof ( _3a6 ) == "undefined" || _3a6 === null ) {
_3a6 = self . _document ;
}
_3a6 = self . getElement ( _3a6 ) ;
var _3a8 = ( _3a6 . getElementsByTagName ( _3a4 ) || self . _document . all ) ;
if ( typeof ( _3a5 ) == "undefined" || _3a5 === null ) {
return _3a8 [ 0 ] ;
}
for ( var i = 0 ; i < _3a8 . length ; i ++ ) {
var _3aa = _3a8 [ i ] ;
var _3ab = _3aa . className . split ( " " ) ;
for ( var j = 0 ; j < _3ab . length ; j ++ ) {
if ( _3ab [ j ] == _3a5 ) {
return _3aa ;
}
}
}
} , getFirstParentByTagAndClassName : function ( elem , _3ae , _3af ) {
var self = MochiKit . DOM ;
elem = self . getElement ( elem ) ;
if ( typeof ( _3ae ) == "undefined" || _3ae === null ) {
_3ae = "*" ;
} else {
_3ae = _3ae . toUpperCase ( ) ;
}
if ( typeof ( _3af ) == "undefined" || _3af === null ) {
_3af = null ;
}
var _3b1 = "" ;
var _3b2 = "" ;
while ( elem && elem . tagName ) {
elem = elem . parentNode ;
if ( _3ae == "*" && _3af === null ) {
return elem ;
}
_3b1 = elem . className . split ( " " ) ;
_3b2 = elem . tagName . toUpperCase ( ) ;
if ( _3af === null && _3ae == _3b2 ) {
return elem ;
} else {
if ( _3af !== null ) {
for ( var i = 0 ; i < _3b1 . length ; i ++ ) {
if ( _3ae == "*" && _3b1 [ i ] == _3af ) {
return elem ;
} else {
if ( _3ae == _3b2 && _3b1 [ i ] == _3af ) {
return elem ;
}
}
}
}
}
}
return elem ;
} , isParent : function ( _3b4 , _3b5 ) {
if ( ! _3b4 . parentNode || _3b4 == _3b5 ) {
return false ;
}
if ( _3b4 . parentNode == _3b5 ) {
return true ;
}
return MochiKit . DOM . isParent ( _3b4 . parentNode , _3b5 ) ;
} , _ _new _ _ : function ( win ) {
var m = MochiKit . Base ;
if ( typeof ( document ) != "undefined" ) {
this . _document = document ;
var _3b8 = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ;
this . _xhtml = ( document . documentElement && document . createElementNS && document . documentElement . namespaceURI === _3b8 ) ;
} else {
if ( MochiKit . MockDOM ) {
this . _document = MochiKit . MockDOM . document ;
}
}
this . _window = win ;
this . domConverters = new m . AdapterRegistry ( ) ;
var _3b9 = this . _document . createElement ( "span" ) ;
var _3ba ;
if ( _3b9 && _3b9 . attributes && _3b9 . attributes . length > 0 ) {
var _3bb = m . filter ;
_3ba = function ( node ) {
return _3bb ( _3ba . ignoreAttrFilter , node . attributes ) ;
} ;
_3ba . ignoreAttr = { } ;
var _3bd = _3b9 . attributes ;
var _3be = _3ba . ignoreAttr ;
for ( var i = 0 ; i < _3bd . length ; i ++ ) {
var a = _3bd [ i ] ;
_3be [ a . name ] = a . value ;
}
_3ba . ignoreAttrFilter = function ( a ) {
return ( _3ba . ignoreAttr [ a . name ] != a . value ) ;
} ;
_3ba . compliant = false ;
_3ba . renames = { "class" : "className" , "checked" : "defaultChecked" , "usemap" : "useMap" , "for" : "htmlFor" , "readonly" : "readOnly" , "colspan" : "colSpan" , "bgcolor" : "bgColor" , "cellspacing" : "cellSpacing" , "cellpadding" : "cellPadding" } ;
} else {
_3ba = function ( node ) {
return node . attributes ;
} ;
_3ba . compliant = true ;
_3ba . renames = { } ;
}
this . attributeArray = _3ba ;
var _3c3 = function ( _3c4 , arr ) {
var _3c6 = arr [ 1 ] . split ( "." ) ;
var str = "" ;
var obj = { } ;
str += "if (!MochiKit." + _3c6 [ 1 ] + ") { throw new Error(\"" ;
str += "This function has been deprecated and depends on MochiKit." ;
str += _3c6 [ 1 ] + ".\");}" ;
str += "return MochiKit." + _3c6 [ 1 ] + "." + arr [ 0 ] ;
str += ".apply(this, arguments);" ;
obj [ _3c6 [ 2 ] ] = new Function ( str ) ;
MochiKit . Base . update ( MochiKit [ _3c4 ] , obj ) ;
} ;
for ( var i ; i < MochiKit . DOM . DEPRECATED . length ; i ++ ) {
_3c3 ( "DOM" , MochiKit . DOM . DEPRECATED [ i ] ) ;
}
var _3c9 = this . createDOMFunc ;
this . UL = _3c9 ( "ul" ) ;
this . OL = _3c9 ( "ol" ) ;
this . LI = _3c9 ( "li" ) ;
this . TD = _3c9 ( "td" ) ;
this . TR = _3c9 ( "tr" ) ;
this . TBODY = _3c9 ( "tbody" ) ;
this . THEAD = _3c9 ( "thead" ) ;
this . TFOOT = _3c9 ( "tfoot" ) ;
this . TABLE = _3c9 ( "table" ) ;
this . TH = _3c9 ( "th" ) ;
this . INPUT = _3c9 ( "input" ) ;
this . SPAN = _3c9 ( "span" ) ;
this . A = _3c9 ( "a" ) ;
this . DIV = _3c9 ( "div" ) ;
this . IMG = _3c9 ( "img" ) ;
this . BUTTON = _3c9 ( "button" ) ;
this . TT = _3c9 ( "tt" ) ;
this . PRE = _3c9 ( "pre" ) ;
this . H1 = _3c9 ( "h1" ) ;
this . H2 = _3c9 ( "h2" ) ;
this . H3 = _3c9 ( "h3" ) ;
this . BR = _3c9 ( "br" ) ;
this . HR = _3c9 ( "hr" ) ;
this . LABEL = _3c9 ( "label" ) ;
this . TEXTAREA = _3c9 ( "textarea" ) ;
this . FORM = _3c9 ( "form" ) ;
this . P = _3c9 ( "p" ) ;
this . SELECT = _3c9 ( "select" ) ;
this . OPTION = _3c9 ( "option" ) ;
this . OPTGROUP = _3c9 ( "optgroup" ) ;
this . LEGEND = _3c9 ( "legend" ) ;
this . FIELDSET = _3c9 ( "fieldset" ) ;
this . STRONG = _3c9 ( "strong" ) ;
this . CANVAS = _3c9 ( "canvas" ) ;
this . $ = this . getElement ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} } ) ;
MochiKit . DOM . _ _new _ _ ( ( ( typeof ( window ) == "undefined" ) ? this : window ) ) ;
if ( MochiKit . _ _export _ _ ) {
withWindow = MochiKit . DOM . withWindow ;
withDocument = MochiKit . DOM . withDocument ;
}
MochiKit . Base . _exportSymbols ( this , MochiKit . DOM ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Selector" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Iter" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Iter" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) === "undefined" || typeof ( MochiKit . DOM ) === "undefined" || typeof ( MochiKit . Iter ) === "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Selector depends on MochiKit.Base, MochiKit.DOM and MochiKit.Iter!" ;
}
if ( typeof ( MochiKit . Selector ) == "undefined" ) {
MochiKit . Selector = { } ;
}
MochiKit . Selector . NAME = "MochiKit.Selector" ;
MochiKit . Selector . VERSION = "1.4" ;
MochiKit . Selector . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Selector . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Selector . EXPORT = [ "Selector" , "findChildElements" , "findDocElements" , "$$" ] ;
MochiKit . Selector . EXPORT _OK = [ ] ;
MochiKit . Selector . Selector = function ( _3ca ) {
this . params = { classNames : [ ] , pseudoClassNames : [ ] } ;
this . expression = _3ca . toString ( ) . replace ( /(^\s+|\s+$)/g , "" ) ;
this . parseExpression ( ) ;
this . compileMatcher ( ) ;
} ;
MochiKit . Selector . Selector . prototype = { _ _class _ _ : MochiKit . Selector . Selector , parseExpression : function ( ) {
function abort ( _3cb ) {
throw "Parse error in selector: " + _3cb ;
}
if ( this . expression == "" ) {
abort ( "empty expression" ) ;
}
var repr = MochiKit . Base . repr ;
var _3cd = this . params ;
var expr = this . expression ;
var _3cf , _3d0 , _3d1 , rest ;
while ( _3cf = expr . match ( /^(.*)\[([a-z0-9_:-]+?)(?:([~\|!^$*]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i ) ) {
_3cd . attributes = _3cd . attributes || [ ] ;
_3cd . attributes . push ( { name : _3cf [ 2 ] , operator : _3cf [ 3 ] , value : _3cf [ 4 ] || _3cf [ 5 ] || "" } ) ;
expr = _3cf [ 1 ] ;
}
if ( expr == "*" ) {
return this . params . wildcard = true ;
}
while ( _3cf = expr . match ( /^([^a-z0-9_-])?([a-z0-9_-]+(?:\([^)]*\))?)(.*)/i ) ) {
_3d0 = _3cf [ 1 ] ;
_3d1 = _3cf [ 2 ] ;
rest = _3cf [ 3 ] ;
switch ( _3d0 ) {
case "#" :
_3cd . id = _3d1 ;
break ;
case "." :
_3cd . classNames . push ( _3d1 ) ;
break ;
case ":" :
_3cd . pseudoClassNames . push ( _3d1 ) ;
break ;
case "" :
case undefined :
_3cd . tagName = _3d1 . toUpperCase ( ) ;
break ;
default :
abort ( repr ( expr ) ) ;
}
expr = rest ;
}
if ( expr . length > 0 ) {
abort ( repr ( expr ) ) ;
}
} , buildMatchExpression : function ( ) {
var repr = MochiKit . Base . repr ;
var _3d4 = this . params ;
var _3d5 = [ ] ;
var _3d6 , i ;
function childElements ( _3d8 ) {
return "MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, " + _3d8 + ".childNodes)" ;
}
if ( _3d4 . wildcard ) {
_3d5 . push ( "true" ) ;
}
if ( _3d6 = _3d4 . id ) {
_3d5 . push ( "element.id == " + repr ( _3d6 ) ) ;
}
if ( _3d6 = _3d4 . tagName ) {
_3d5 . push ( "element.tagName.toUpperCase() == " + repr ( _3d6 ) ) ;
}
if ( ( _3d6 = _3d4 . classNames ) . length > 0 ) {
for ( i = 0 ; i < _3d6 . length ; i ++ ) {
_3d5 . push ( "MochiKit.DOM.hasElementClass(element, " + repr ( _3d6 [ i ] ) + ")" ) ;
}
}
if ( ( _3d6 = _3d4 . pseudoClassNames ) . length > 0 ) {
for ( i = 0 ; i < _3d6 . length ; i ++ ) {
var _3d9 = _3d6 [ i ] . match ( /^([^(]+)(?:\((.*)\))?$/ ) ;
var _3da = _3d9 [ 1 ] ;
var _3db = _3d9 [ 2 ] ;
switch ( _3da ) {
case "root" :
_3d5 . push ( "element.nodeType == 9 || element === element.ownerDocument.documentElement" ) ;
break ;
case "nth-child" :
case "nth-last-child" :
case "nth-of-type" :
case "nth-last-of-type" :
_3d9 = _3db . match ( /^((?:(\d+)n\+)?(\d+)|odd|even)$/ ) ;
if ( ! _3d9 ) {
throw "Invalid argument to pseudo element nth-child: " + _3db ;
}
var a , b ;
if ( _3d9 [ 0 ] == "odd" ) {
a = 2 ;
b = 1 ;
} else {
if ( _3d9 [ 0 ] == "even" ) {
a = 2 ;
b = 0 ;
} else {
a = _3d9 [ 2 ] && parseInt ( _3d9 ) || null ;
b = parseInt ( _3d9 [ 3 ] ) ;
}
}
_3d5 . push ( "this.nthChild(element," + a + "," + b + "," + ! ! _3da . match ( "^nth-last" ) + "," + ! ! _3da . match ( "of-type$" ) + ")" ) ;
break ;
case "first-child" :
_3d5 . push ( "this.nthChild(element, null, 1)" ) ;
break ;
case "last-child" :
_3d5 . push ( "this.nthChild(element, null, 1, true)" ) ;
break ;
case "first-of-type" :
_3d5 . push ( "this.nthChild(element, null, 1, false, true)" ) ;
break ;
case "last-of-type" :
_3d5 . push ( "this.nthChild(element, null, 1, true, true)" ) ;
break ;
case "only-child" :
_3d5 . push ( childElements ( "element.parentNode" ) + ".length == 1" ) ;
break ;
case "only-of-type" :
_3d5 . push ( "MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, " + childElements ( "element.parentNode" ) + ").length == 1" ) ;
break ;
case "empty" :
_3d5 . push ( "element.childNodes.length == 0" ) ;
break ;
case "enabled" :
_3d5 . push ( "(this.isUIElement(element) && element.disabled === false)" ) ;
break ;
case "disabled" :
_3d5 . push ( "(this.isUIElement(element) && element.disabled === true)" ) ;
break ;
case "checked" :
_3d5 . push ( "(this.isUIElement(element) && element.checked === true)" ) ;
break ;
case "not" :
var _3de = new MochiKit . Selector . Selector ( _3db ) ;
_3d5 . push ( "!( " + _3de . buildMatchExpression ( ) + ")" ) ;
break ;
}
}
}
if ( _3d6 = _3d4 . attributes ) {
MochiKit . Base . map ( function ( _3df ) {
var _3e0 = "MochiKit.DOM.getNodeAttribute(element, " + repr ( _3df . name ) + ")" ;
var _3e1 = function ( _3e2 ) {
return _3e0 + ".split(" + repr ( _3e2 ) + ")" ;
} ;
switch ( _3df . operator ) {
case "=" :
_3d5 . push ( _3e0 + " == " + repr ( _3df . value ) ) ;
break ;
case "~=" :
_3d5 . push ( _3e0 + " && MochiKit.Base.findValue(" + _3e1 ( " " ) + ", " + repr ( _3df . value ) + ") > -1" ) ;
break ;
case "^=" :
_3d5 . push ( _3e0 + ".substring(0, " + _3df . value . length + ") == " + repr ( _3df . value ) ) ;
break ;
case "$=" :
_3d5 . push ( _3e0 + ".substring(" + _3e0 + ".length - " + _3df . value . length + ") == " + repr ( _3df . value ) ) ;
break ;
case "*=" :
_3d5 . push ( _3e0 + ".match(" + repr ( _3df . value ) + ")" ) ;
break ;
case "|=" :
_3d5 . push ( _3e0 + " && " + _3e1 ( "-" ) + "[0].toUpperCase() == " + repr ( _3df . value . toUpperCase ( ) ) ) ;
break ;
case "!=" :
_3d5 . push ( _3e0 + " != " + repr ( _3df . value ) ) ;
break ;
case "" :
case undefined :
_3d5 . push ( _3e0 + " != null" ) ;
break ;
default :
throw "Unknown operator " + _3df . operator + " in selector" ;
}
} , _3d6 ) ;
}
return _3d5 . join ( " && " ) ;
} , compileMatcher : function ( ) {
this . match = new Function ( "element" , "if (!element.tagName) return false; return " + this . buildMatchExpression ( ) ) ;
} , nthChild : function ( _3e3 , a , b , _3e6 , _3e7 ) {
var _3e8 = MochiKit . Base . filter ( function ( node ) {
return node . nodeType == 1 ;
} , _3e3 . parentNode . childNodes ) ;
if ( _3e7 ) {
_3e8 = MochiKit . Base . filter ( function ( node ) {
return node . tagName == _3e3 . tagName ;
} , _3e8 ) ;
}
if ( _3e6 ) {
_3e8 = MochiKit . Iter . reversed ( _3e8 ) ;
}
if ( a ) {
var _3eb = MochiKit . Base . findIdentical ( _3e8 , _3e3 ) ;
return ( ( _3eb + 1 - b ) / a ) % 1 == 0 ;
} else {
return b == MochiKit . Base . findIdentical ( _3e8 , _3e3 ) + 1 ;
}
} , isUIElement : function ( _3ec ) {
return MochiKit . Base . findValue ( [ "input" , "button" , "select" , "option" , "textarea" , "object" ] , _3ec . tagName . toLowerCase ( ) ) > - 1 ;
} , findElements : function ( _3ed , axis ) {
var _3ef ;
if ( axis == undefined ) {
axis = "" ;
}
function inScope ( _3f0 , _3f1 ) {
if ( axis == "" ) {
return MochiKit . DOM . isChildNode ( _3f0 , _3f1 ) ;
} else {
if ( axis == ">" ) {
return _3f0 . parentNode == _3f1 ;
} else {
if ( axis == "+" ) {
return _3f0 == nextSiblingElement ( _3f1 ) ;
} else {
if ( axis == "~" ) {
var _3f2 = _3f1 ;
while ( _3f2 = nextSiblingElement ( _3f2 ) ) {
if ( _3f0 == _3f2 ) {
return true ;
}
}
return false ;
} else {
throw "Invalid axis: " + axis ;
}
}
}
}
}
if ( _3ef = MochiKit . DOM . getElement ( this . params . id ) ) {
if ( this . match ( _3ef ) ) {
if ( ! _3ed || inScope ( _3ef , _3ed ) ) {
return [ _3ef ] ;
}
}
}
function nextSiblingElement ( node ) {
node = node . nextSibling ;
while ( node && node . nodeType != 1 ) {
node = node . nextSibling ;
}
return node ;
}
if ( axis == "" ) {
_3ed = ( _3ed || MochiKit . DOM . currentDocument ( ) ) . getElementsByTagName ( this . params . tagName || "*" ) ;
} else {
if ( axis == ">" ) {
if ( ! _3ed ) {
throw "> combinator not allowed without preceeding expression" ;
}
_3ed = MochiKit . Base . filter ( function ( node ) {
return node . nodeType == 1 ;
} , _3ed . childNodes ) ;
} else {
if ( axis == "+" ) {
if ( ! _3ed ) {
throw "+ combinator not allowed without preceeding expression" ;
}
_3ed = nextSiblingElement ( _3ed ) && [ nextSiblingElement ( _3ed ) ] ;
} else {
if ( axis == "~" ) {
if ( ! _3ed ) {
throw "~ combinator not allowed without preceeding expression" ;
}
var _3f5 = [ ] ;
while ( nextSiblingElement ( _3ed ) ) {
_3ed = nextSiblingElement ( _3ed ) ;
_3f5 . push ( _3ed ) ;
}
_3ed = _3f5 ;
}
}
}
}
if ( ! _3ed ) {
return [ ] ;
}
var _3f6 = MochiKit . Base . filter ( MochiKit . Base . bind ( function ( _3f7 ) {
return this . match ( _3f7 ) ;
} , this ) , _3ed ) ;
return _3f6 ;
} , repr : function ( ) {
return "Selector(" + this . expression + ")" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
MochiKit . Base . update ( MochiKit . Selector , { findChildElements : function ( _3f8 , _3f9 ) {
return MochiKit . Base . flattenArray ( MochiKit . Base . map ( function ( _3fa ) {
var _3fb = "" ;
return MochiKit . Iter . reduce ( function ( _3fc , expr ) {
if ( match = expr . match ( /^[>+~]$/ ) ) {
_3fb = match [ 0 ] ;
return _3fc ;
} else {
var _3fe = new MochiKit . Selector . Selector ( expr ) ;
var _3ff = MochiKit . Iter . reduce ( function ( _400 , _401 ) {
return MochiKit . Base . extend ( _400 , _3fe . findElements ( _401 || _3f8 , _3fb ) ) ;
} , _3fc , [ ] ) ;
_3fb = "" ;
return _3ff ;
}
} , _3fa . replace ( /(^\s+|\s+$)/g , "" ) . split ( /\s+/ ) , [ null ] ) ;
} , _3f9 ) ) ;
} , findDocElements : function ( ) {
return MochiKit . Selector . findChildElements ( MochiKit . DOM . currentDocument ( ) , arguments ) ;
} , _ _new _ _ : function ( ) {
var m = MochiKit . Base ;
this . $$ = this . findDocElements ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} } ) ;
MochiKit . Selector . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Selector ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Style" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Style depends on MochiKit.Base!" ;
}
try {
if ( typeof ( MochiKit . DOM ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Style depends on MochiKit.DOM!" ;
}
if ( typeof ( MochiKit . Style ) == "undefined" ) {
MochiKit . Style = { } ;
}
MochiKit . Style . NAME = "MochiKit.Style" ;
MochiKit . Style . VERSION = "1.4" ;
MochiKit . Style . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Style . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Style . EXPORT _OK = [ ] ;
MochiKit . Style . EXPORT = [ "setStyle" , "setOpacity" , "getStyle" , "getElementDimensions" , "elementDimensions" , "setElementDimensions" , "getElementPosition" , "elementPosition" , "setElementPosition" , "setDisplayForElement" , "hideElement" , "showElement" , "getViewportDimensions" , "getViewportPosition" , "Dimensions" , "Coordinates" ] ;
MochiKit . Style . Dimensions = function ( w , h ) {
this . w = w ;
this . h = h ;
} ;
MochiKit . Style . Dimensions . prototype . _ _repr _ _ = function ( ) {
var repr = MochiKit . Base . repr ;
return "{w: " + repr ( this . w ) + ", h: " + repr ( this . h ) + "}" ;
} ;
MochiKit . Style . Dimensions . prototype . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Style . Coordinates = function ( x , y ) {
this . x = x ;
this . y = y ;
} ;
MochiKit . Style . Coordinates . prototype . _ _repr _ _ = function ( ) {
var repr = MochiKit . Base . repr ;
return "{x: " + repr ( this . x ) + ", y: " + repr ( this . y ) + "}" ;
} ;
MochiKit . Style . Coordinates . prototype . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Base . update ( MochiKit . Style , { getStyle : function ( elem , _40a ) {
var dom = MochiKit . DOM ;
var d = dom . _document ;
elem = dom . getElement ( elem ) ;
_40a = MochiKit . Base . camelize ( _40a ) ;
if ( ! elem || elem == d ) {
return undefined ;
}
if ( _40a == "opacity" && elem . filters ) {
var _40d = ( MochiKit . Style . getStyle ( elem , "filter" ) || "" ) . match ( /alpha\(opacity=(.*)\)/ ) ;
if ( _40d && _40d [ 1 ] ) {
return parseFloat ( _40d [ 1 ] ) / 100 ;
}
return 1 ;
}
var _40e = elem . style ? elem . style [ _40a ] : null ;
if ( ! _40e ) {
if ( d . defaultView && d . defaultView . getComputedStyle ) {
var css = d . defaultView . getComputedStyle ( elem , null ) ;
_40a = _40a . replace ( /([A-Z])/g , "-$1" ) . toLowerCase ( ) ;
_40e = css ? css . getPropertyValue ( _40a ) : null ;
} else {
if ( elem . currentStyle ) {
_40e = elem . currentStyle [ _40a ] ;
}
}
}
if ( _40a == "opacity" ) {
_40e = parseFloat ( _40e ) ;
}
if ( /Opera/ . test ( navigator . userAgent ) && ( MochiKit . Base . find ( [ "left" , "top" , "right" , "bottom" ] , _40a ) != - 1 ) ) {
if ( MochiKit . Style . getStyle ( elem , "position" ) == "static" ) {
_40e = "auto" ;
}
}
return _40e == "auto" ? null : _40e ;
} , setStyle : function ( elem , _411 ) {
elem = MochiKit . DOM . getElement ( elem ) ;
for ( var name in _411 ) {
if ( name == "opacity" ) {
MochiKit . Style . setOpacity ( elem , _411 [ name ] ) ;
} else {
elem . style [ MochiKit . Base . camelize ( name ) ] = _411 [ name ] ;
}
}
} , setOpacity : function ( elem , o ) {
elem = MochiKit . DOM . getElement ( elem ) ;
var self = MochiKit . Style ;
if ( o == 1 ) {
var _416 = /Gecko/ . test ( navigator . userAgent ) && ! ( /Konqueror|AppleWebKit|KHTML/ . test ( navigator . userAgent ) ) ;
elem . style [ "opacity" ] = _416 ? 0.999999 : 1 ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
elem . style [ "filter" ] = self . getStyle ( elem , "filter" ) . replace ( /alpha\([^\)]*\)/gi , "" ) ;
}
} else {
if ( o < 0.00001 ) {
o = 0 ;
}
elem . style [ "opacity" ] = o ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
elem . style [ "filter" ] = self . getStyle ( elem , "filter" ) . replace ( /alpha\([^\)]*\)/gi , "" ) + "alpha(opacity=" + o * 100 + ")" ;
}
}
} , getElementPosition : function ( elem , _418 ) {
var self = MochiKit . Style ;
var dom = MochiKit . DOM ;
elem = dom . getElement ( elem ) ;
if ( ! elem || ( ! ( elem . x && elem . y ) && ( ! elem . parentNode === null || self . getStyle ( elem , "display" ) == "none" ) ) ) {
return undefined ;
}
var c = new self . Coordinates ( 0 , 0 ) ;
var box = null ;
var _41d = null ;
var d = MochiKit . DOM . _document ;
var de = d . documentElement ;
var b = d . body ;
if ( ! elem . parentNode && elem . x && elem . y ) {
c . x += elem . x || 0 ;
c . y += elem . y || 0 ;
} else {
if ( elem . getBoundingClientRect ) {
box = elem . getBoundingClientRect ( ) ;
c . x += box . left + ( de . scrollLeft || b . scrollLeft ) - ( de . clientLeft || 0 ) ;
c . y += box . top + ( de . scrollTop || b . scrollTop ) - ( de . clientTop || 0 ) ;
} else {
if ( elem . offsetParent ) {
c . x += elem . offsetLeft ;
c . y += elem . offsetTop ;
_41d = elem . offsetParent ;
if ( _41d != elem ) {
while ( _41d ) {
c . x += _41d . offsetLeft ;
c . y += _41d . offsetTop ;
_41d = _41d . offsetParent ;
}
}
var ua = navigator . userAgent . toLowerCase ( ) ;
if ( ( typeof ( opera ) != "undefined" && parseFloat ( opera . version ( ) ) < 9 ) || ( ua . indexOf ( "AppleWebKit" ) != - 1 && self . getStyle ( elem , "position" ) == "absolute" ) ) {
c . x -= b . offsetLeft ;
c . y -= b . offsetTop ;
}
}
}
}
if ( typeof ( _418 ) != "undefined" ) {
_418 = arguments . callee ( _418 ) ;
if ( _418 ) {
c . x -= ( _418 . x || 0 ) ;
c . y -= ( _418 . y || 0 ) ;
}
}
if ( elem . parentNode ) {
_41d = elem . parentNode ;
} else {
_41d = null ;
}
while ( _41d ) {
var _422 = _41d . tagName . toUpperCase ( ) ;
if ( _422 === "BODY" || _422 === "HTML" ) {
break ;
}
var disp = self . getStyle ( _41d , "display" ) ;
if ( disp != "inline" && disp != "table-row" ) {
c . x -= _41d . scrollLeft ;
c . y -= _41d . scrollTop ;
}
if ( _41d . parentNode ) {
_41d = _41d . parentNode ;
} else {
_41d = null ;
}
}
return c ;
} , setElementPosition : function ( elem , _425 , _426 ) {
elem = MochiKit . DOM . getElement ( elem ) ;
if ( typeof ( _426 ) == "undefined" ) {
_426 = "px" ;
}
var _427 = { } ;
var _428 = MochiKit . Base . isUndefinedOrNull ;
if ( ! _428 ( _425 . x ) ) {
_427 [ "left" ] = _425 . x + _426 ;
}
if ( ! _428 ( _425 . y ) ) {
_427 [ "top" ] = _425 . y + _426 ;
}
MochiKit . DOM . updateNodeAttributes ( elem , { "style" : _427 } ) ;
} , getElementDimensions : function ( elem ) {
var self = MochiKit . Style ;
var dom = MochiKit . DOM ;
if ( typeof ( elem . w ) == "number" || typeof ( elem . h ) == "number" ) {
return new self . Dimensions ( elem . w || 0 , elem . h || 0 ) ;
}
elem = dom . getElement ( elem ) ;
if ( ! elem ) {
return undefined ;
}
var disp = self . getStyle ( elem , "display" ) ;
if ( disp != "none" && disp !== "" && typeof ( disp ) != "undefined" ) {
return new self . Dimensions ( elem . offsetWidth || 0 , elem . offsetHeight || 0 ) ;
}
var s = elem . style ;
var _42e = s . visibility ;
var _42f = s . position ;
s . visibility = "hidden" ;
s . position = "absolute" ;
s . display = "" ;
var _430 = elem . offsetWidth ;
var _431 = elem . offsetHeight ;
s . display = "none" ;
s . position = _42f ;
s . visibility = _42e ;
return new self . Dimensions ( _430 , _431 ) ;
} , setElementDimensions : function ( elem , _433 , _434 ) {
elem = MochiKit . DOM . getElement ( elem ) ;
if ( typeof ( _434 ) == "undefined" ) {
_434 = "px" ;
}
var _435 = { } ;
var _436 = MochiKit . Base . isUndefinedOrNull ;
if ( ! _436 ( _433 . w ) ) {
_435 [ "width" ] = _433 . w + _434 ;
}
if ( ! _436 ( _433 . h ) ) {
_435 [ "height" ] = _433 . h + _434 ;
}
MochiKit . DOM . updateNodeAttributes ( elem , { "style" : _435 } ) ;
} , setDisplayForElement : function ( _437 , _438 ) {
var _439 = MochiKit . Base . extend ( null , arguments , 1 ) ;
var _43a = MochiKit . DOM . getElement ;
for ( var i = 0 ; i < _439 . length ; i ++ ) {
_438 = _43a ( _439 [ i ] ) ;
if ( _438 ) {
_438 . style . display = _437 ;
}
}
} , getViewportDimensions : function ( ) {
var d = new MochiKit . Style . Dimensions ( ) ;
var w = MochiKit . DOM . _window ;
var b = MochiKit . DOM . _document . body ;
if ( w . innerWidth ) {
d . w = w . innerWidth ;
d . h = w . innerHeight ;
} else {
if ( b . parentElement . clientWidth ) {
d . w = b . parentElement . clientWidth ;
d . h = b . parentElement . clientHeight ;
} else {
if ( b && b . clientWidth ) {
d . w = b . clientWidth ;
d . h = b . clientHeight ;
}
}
}
return d ;
} , getViewportPosition : function ( ) {
var c = new MochiKit . Style . Coordinates ( 0 , 0 ) ;
var d = MochiKit . DOM . _document ;
var de = d . documentElement ;
var db = d . body ;
if ( de && ( de . scrollTop || de . scrollLeft ) ) {
c . x = de . scrollLeft ;
c . y = de . scrollTop ;
} else {
if ( db ) {
c . x = db . scrollLeft ;
c . y = db . scrollTop ;
}
}
return c ;
} , _ _new _ _ : function ( ) {
var m = MochiKit . Base ;
this . elementPosition = this . getElementPosition ;
this . elementDimensions = this . getElementDimensions ;
this . hideElement = m . partial ( this . setDisplayForElement , "none" ) ;
this . showElement = m . partial ( this . setDisplayForElement , "block" ) ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} } ) ;
MochiKit . Style . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Style ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.LoggingPane" ) ;
dojo . require ( "MochiKit.Logging" ) ;
dojo . require ( "MochiKit.Base" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Logging" , [ ] ) ;
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" || typeof ( MochiKit . Logging ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!" ;
}
if ( typeof ( MochiKit . LoggingPane ) == "undefined" ) {
MochiKit . LoggingPane = { } ;
}
MochiKit . LoggingPane . NAME = "MochiKit.LoggingPane" ;
MochiKit . LoggingPane . VERSION = "1.4" ;
MochiKit . LoggingPane . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . LoggingPane . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . LoggingPane . createLoggingPane = function ( _444 ) {
var m = MochiKit . LoggingPane ;
_444 = ! ( ! _444 ) ;
if ( m . _loggingPane && m . _loggingPane . inline != _444 ) {
m . _loggingPane . closePane ( ) ;
m . _loggingPane = null ;
}
if ( ! m . _loggingPane || m . _loggingPane . closed ) {
m . _loggingPane = new m . LoggingPane ( _444 , MochiKit . Logging . logger ) ;
}
return m . _loggingPane ;
} ;
MochiKit . LoggingPane . LoggingPane = function ( _446 , _447 ) {
if ( typeof ( _447 ) == "undefined" || _447 === null ) {
_447 = MochiKit . Logging . logger ;
}
this . logger = _447 ;
var _448 = MochiKit . Base . update ;
var _449 = MochiKit . Base . updatetree ;
var bind = MochiKit . Base . bind ;
var _44b = MochiKit . Base . clone ;
var win = window ;
var uid = "_MochiKit_LoggingPane" ;
if ( typeof ( MochiKit . DOM ) != "undefined" ) {
win = MochiKit . DOM . currentWindow ( ) ;
}
if ( ! _446 ) {
var url = win . location . href . split ( "?" ) [ 0 ] . replace ( /[#:\/.><&-]/g , "_" ) ;
var name = uid + "_" + url ;
var nwin = win . open ( "" , name , "dependent,resizable,height=200" ) ;
if ( ! nwin ) {
alert ( "Not able to open debugging window due to pop-up blocking." ) ;
return undefined ;
}
nwin . document . write ( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" " + "\"http://www.w3.org/TR/html4/loose.dtd\">" + "<html><head><title>[MochiKit.LoggingPane]</title></head>" + "<body></body></html>" ) ;
nwin . document . close ( ) ;
nwin . document . title += " " + win . document . title ;
win = nwin ;
}
var doc = win . document ;
this . doc = doc ;
var _452 = doc . getElementById ( uid ) ;
var _453 = ! ! _452 ;
if ( _452 && typeof ( _452 . loggingPane ) != "undefined" ) {
_452 . loggingPane . logger = this . logger ;
_452 . loggingPane . buildAndApplyFilter ( ) ;
return _452 . loggingPane ;
}
if ( _453 ) {
var _454 ;
while ( ( _454 = _452 . firstChild ) ) {
_452 . removeChild ( _454 ) ;
}
} else {
_452 = doc . createElement ( "div" ) ;
_452 . id = uid ;
}
_452 . loggingPane = this ;
var _455 = doc . createElement ( "input" ) ;
var _456 = doc . createElement ( "input" ) ;
var _457 = doc . createElement ( "button" ) ;
var _458 = doc . createElement ( "button" ) ;
var _459 = doc . createElement ( "button" ) ;
var _45a = doc . createElement ( "button" ) ;
var _45b = doc . createElement ( "div" ) ;
var _45c = doc . createElement ( "div" ) ;
var _45d = uid + "_Listener" ;
this . colorTable = _44b ( this . colorTable ) ;
var _45e = [ ] ;
var _45f = null ;
var _460 = function ( msg ) {
var _462 = msg . level ;
if ( typeof ( _462 ) == "number" ) {
_462 = MochiKit . Logging . LogLevel [ _462 ] ;
}
return _462 ;
} ;
var _463 = function ( msg ) {
return msg . info . join ( " " ) ;
} ;
var _465 = bind ( function ( msg ) {
var _467 = _460 ( msg ) ;
var text = _463 ( msg ) ;
var c = this . colorTable [ _467 ] ;
var p = doc . createElement ( "span" ) ;
p . className = "MochiKit-LogMessage MochiKit-LogLevel-" + _467 ;
p . style . cssText = "margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: " + c ;
p . appendChild ( doc . createTextNode ( _467 + ": " + text ) ) ;
_45c . appendChild ( p ) ;
_45c . appendChild ( doc . createElement ( "br" ) ) ;
if ( _45b . offsetHeight > _45b . scrollHeight ) {
_45b . scrollTop = 0 ;
} else {
_45b . scrollTop = _45b . scrollHeight ;
}
} , this ) ;
var _46b = function ( msg ) {
_45e [ _45e . length ] = msg ;
_465 ( msg ) ;
} ;
var _46d = function ( ) {
var _46e , _46f ;
try {
_46e = new RegExp ( _455 . value ) ;
_46f = new RegExp ( _456 . value ) ;
}
catch ( e ) {
logDebug ( "Error in filter regex: " + e . message ) ;
return null ;
}
return function ( msg ) {
return ( _46e . test ( _460 ( msg ) ) && _46f . test ( _463 ( msg ) ) ) ;
} ;
} ;
var _471 = function ( ) {
while ( _45c . firstChild ) {
_45c . removeChild ( _45c . firstChild ) ;
}
} ;
var _472 = function ( ) {
_45e = [ ] ;
_471 ( ) ;
} ;
var _473 = bind ( function ( ) {
if ( this . closed ) {
return ;
}
this . closed = true ;
if ( MochiKit . LoggingPane . _loggingPane == this ) {
MochiKit . LoggingPane . _loggingPane = null ;
}
this . logger . removeListener ( _45d ) ;
try {
try {
_452 . loggingPane = null ;
}
catch ( e ) {
logFatal ( "Bookmarklet was closed incorrectly." ) ;
}
if ( _446 ) {
_452 . parentNode . removeChild ( _452 ) ;
} else {
this . win . close ( ) ;
}
}
catch ( e ) {
}
} , this ) ;
var _474 = function ( ) {
_471 ( ) ;
for ( var i = 0 ; i < _45e . length ; i ++ ) {
var msg = _45e [ i ] ;
if ( _45f === null || _45f ( msg ) ) {
_465 ( msg ) ;
}
}
} ;
this . buildAndApplyFilter = function ( ) {
_45f = _46d ( ) ;
_474 ( ) ;
this . logger . removeListener ( _45d ) ;
this . logger . addListener ( _45d , _45f , _46b ) ;
} ;
var _477 = bind ( function ( ) {
_45e = this . logger . getMessages ( ) ;
_474 ( ) ;
} , this ) ;
var _478 = bind ( function ( _479 ) {
_479 = _479 || window . event ;
key = _479 . which || _479 . keyCode ;
if ( key == 13 ) {
this . buildAndApplyFilter ( ) ;
}
} , this ) ;
var _47a = "display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: " + this . logFont ;
if ( _446 ) {
_47a += "; height: 10em; border-top: 2px solid black" ;
} else {
_47a += "; height: 100%;" ;
}
_452 . style . cssText = _47a ;
if ( ! _453 ) {
doc . body . appendChild ( _452 ) ;
}
_47a = { "cssText" : "width: 33%; display: inline; font: " + this . logFont } ;
_449 ( _455 , { "value" : "FATAL|ERROR|WARNING|INFO|DEBUG" , "onkeypress" : _478 , "style" : _47a } ) ;
_452 . appendChild ( _455 ) ;
_449 ( _456 , { "value" : ".*" , "onkeypress" : _478 , "style" : _47a } ) ;
_452 . appendChild ( _456 ) ;
_47a = "width: 8%; display:inline; font: " + this . logFont ;
_457 . appendChild ( doc . createTextNode ( "Filter" ) ) ;
_457 . onclick = bind ( "buildAndApplyFilter" , this ) ;
_457 . style . cssText = _47a ;
_452 . appendChild ( _457 ) ;
_458 . appendChild ( doc . createTextNode ( "Load" ) ) ;
_458 . onclick = _477 ;
_458 . style . cssText = _47a ;
_452 . appendChild ( _458 ) ;
_459 . appendChild ( doc . createTextNode ( "Clear" ) ) ;
_459 . onclick = _472 ;
_459 . style . cssText = _47a ;
_452 . appendChild ( _459 ) ;
_45a . appendChild ( doc . createTextNode ( "Close" ) ) ;
_45a . onclick = _473 ;
_45a . style . cssText = _47a ;
_452 . appendChild ( _45a ) ;
_45b . style . cssText = "overflow: auto; width: 100%" ;
_45c . style . cssText = "width: 100%; height: " + ( _446 ? "8em" : "100%" ) ;
_45b . appendChild ( _45c ) ;
_452 . appendChild ( _45b ) ;
this . buildAndApplyFilter ( ) ;
_477 ( ) ;
if ( _446 ) {
this . win = undefined ;
} else {
this . win = win ;
}
this . inline = _446 ;
this . closePane = _473 ;
this . closed = false ;
return this ;
} ;
MochiKit . LoggingPane . LoggingPane . prototype = { "logFont" : "8pt Verdana,sans-serif" , "colorTable" : { "ERROR" : "red" , "FATAL" : "darkred" , "WARNING" : "blue" , "INFO" : "black" , "DEBUG" : "green" } } ;
MochiKit . LoggingPane . EXPORT _OK = [ "LoggingPane" ] ;
MochiKit . LoggingPane . EXPORT = [ "createLoggingPane" ] ;
MochiKit . LoggingPane . _ _new _ _ = function ( ) {
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : MochiKit . Base . concat ( this . EXPORT , this . EXPORT _OK ) } ;
MochiKit . Base . nameFunctions ( this ) ;
MochiKit . LoggingPane . _loggingPane = null ;
} ;
MochiKit . LoggingPane . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . LoggingPane ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Color" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Style" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Style" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Color depends on MochiKit.Base" ;
}
try {
if ( typeof ( MochiKit . DOM ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Color depends on MochiKit.DOM" ;
}
try {
if ( typeof ( MochiKit . Style ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Color depends on MochiKit.Style" ;
}
if ( typeof ( MochiKit . Color ) == "undefined" ) {
MochiKit . Color = { } ;
}
MochiKit . Color . NAME = "MochiKit.Color" ;
MochiKit . Color . VERSION = "1.4" ;
MochiKit . Color . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Color . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Color . Color = function ( red , _47c , blue , _47e ) {
if ( typeof ( _47e ) == "undefined" || _47e === null ) {
_47e = 1 ;
}
this . rgb = { r : red , g : _47c , b : blue , a : _47e } ;
} ;
MochiKit . Color . Color . prototype = { _ _class _ _ : MochiKit . Color . Color , colorWithAlpha : function ( _47f ) {
var rgb = this . rgb ;
var m = MochiKit . Color ;
return m . Color . fromRGB ( rgb . r , rgb . g , rgb . b , _47f ) ;
} , colorWithHue : function ( hue ) {
var hsl = this . asHSL ( ) ;
hsl . h = hue ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
} , colorWithSaturation : function ( _485 ) {
var hsl = this . asHSL ( ) ;
hsl . s = _485 ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
} , colorWithLightness : function ( _488 ) {
var hsl = this . asHSL ( ) ;
hsl . l = _488 ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
} , darkerColorWithLevel : function ( _48b ) {
var hsl = this . asHSL ( ) ;
hsl . l = Math . max ( hsl . l - _48b , 0 ) ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
} , lighterColorWithLevel : function ( _48e ) {
var hsl = this . asHSL ( ) ;
hsl . l = Math . min ( hsl . l + _48e , 1 ) ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
} , blendedColor : function ( _491 , _492 ) {
if ( typeof ( _492 ) == "undefined" || _492 === null ) {
_492 = 0.5 ;
}
var sf = 1 - _492 ;
var s = this . rgb ;
var d = _491 . rgb ;
var df = _492 ;
return MochiKit . Color . Color . fromRGB ( ( s . r * sf ) + ( d . r * df ) , ( s . g * sf ) + ( d . g * df ) , ( s . b * sf ) + ( d . b * df ) , ( s . a * sf ) + ( d . a * df ) ) ;
} , compareRGB : function ( _497 ) {
var a = this . asRGB ( ) ;
var b = _497 . asRGB ( ) ;
return MochiKit . Base . compare ( [ a . r , a . g , a . b , a . a ] , [ b . r , b . g , b . b , b . a ] ) ;
} , isLight : function ( ) {
return this . asHSL ( ) . b > 0.5 ;
} , isDark : function ( ) {
return ( ! this . isLight ( ) ) ;
} , toHSLString : function ( ) {
var c = this . asHSL ( ) ;
var ccc = MochiKit . Color . clampColorComponent ;
var rval = this . _hslString ;
if ( ! rval ) {
var mid = ( ccc ( c . h , 360 ) . toFixed ( 0 ) + "," + ccc ( c . s , 100 ) . toPrecision ( 4 ) + "%" + "," + ccc ( c . l , 100 ) . toPrecision ( 4 ) + "%" ) ;
var a = c . a ;
if ( a >= 1 ) {
a = 1 ;
rval = "hsl(" + mid + ")" ;
} else {
if ( a <= 0 ) {
a = 0 ;
}
rval = "hsla(" + mid + "," + a + ")" ;
}
this . _hslString = rval ;
}
return rval ;
} , toRGBString : function ( ) {
var c = this . rgb ;
var ccc = MochiKit . Color . clampColorComponent ;
var rval = this . _rgbString ;
if ( ! rval ) {
var mid = ( ccc ( c . r , 255 ) . toFixed ( 0 ) + "," + ccc ( c . g , 255 ) . toFixed ( 0 ) + "," + ccc ( c . b , 255 ) . toFixed ( 0 ) ) ;
if ( c . a != 1 ) {
rval = "rgba(" + mid + "," + c . a + ")" ;
} else {
rval = "rgb(" + mid + ")" ;
}
this . _rgbString = rval ;
}
return rval ;
} , asRGB : function ( ) {
return MochiKit . Base . clone ( this . rgb ) ;
} , toHexString : function ( ) {
var m = MochiKit . Color ;
var c = this . rgb ;
var ccc = MochiKit . Color . clampColorComponent ;
var rval = this . _hexString ;
if ( ! rval ) {
rval = ( "#" + m . toColorPart ( ccc ( c . r , 255 ) ) + m . toColorPart ( ccc ( c . g , 255 ) ) + m . toColorPart ( ccc ( c . b , 255 ) ) ) ;
this . _hexString = rval ;
}
return rval ;
} , asHSV : function ( ) {
var hsv = this . hsv ;
var c = this . rgb ;
if ( typeof ( hsv ) == "undefined" || hsv === null ) {
hsv = MochiKit . Color . rgbToHSV ( this . rgb ) ;
this . hsv = hsv ;
}
return MochiKit . Base . clone ( hsv ) ;
} , asHSL : function ( ) {
var hsl = this . hsl ;
var c = this . rgb ;
if ( typeof ( hsl ) == "undefined" || hsl === null ) {
hsl = MochiKit . Color . rgbToHSL ( this . rgb ) ;
this . hsl = hsl ;
}
return MochiKit . Base . clone ( hsl ) ;
} , toString : function ( ) {
return this . toRGBString ( ) ;
} , repr : function ( ) {
var c = this . rgb ;
var col = [ c . r , c . g , c . b , c . a ] ;
return this . _ _class _ _ . NAME + "(" + col . join ( ", " ) + ")" ;
} } ;
MochiKit . Base . update ( MochiKit . Color . Color , { fromRGB : function ( red , _4ae , blue , _4b0 ) {
var _4b1 = MochiKit . Color . Color ;
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
_4ae = rgb . g ;
blue = rgb . b ;
if ( typeof ( rgb . a ) == "undefined" ) {
_4b0 = undefined ;
} else {
_4b0 = rgb . a ;
}
}
return new _4b1 ( red , _4ae , blue , _4b0 ) ;
} , fromHSL : function ( hue , _4b4 , _4b5 , _4b6 ) {
var m = MochiKit . Color ;
return m . Color . fromRGB ( m . hslToRGB . apply ( m , arguments ) ) ;
} , fromHSV : function ( hue , _4b9 , _4ba , _4bb ) {
var m = MochiKit . Color ;
return m . Color . fromRGB ( m . hsvToRGB . apply ( m , arguments ) ) ;
} , fromName : function ( name ) {
var _4be = MochiKit . Color . Color ;
if ( name . charAt ( 0 ) == "\"" ) {
name = name . substr ( 1 , name . length - 2 ) ;
}
var _4bf = _4be . _namedColors [ name . toLowerCase ( ) ] ;
if ( typeof ( _4bf ) == "string" ) {
return _4be . fromHexString ( _4bf ) ;
} else {
if ( name == "transparent" ) {
return _4be . transparentColor ( ) ;
}
}
return null ;
} , fromString : function ( _4c0 ) {
var self = MochiKit . Color . Color ;
var _4c2 = _4c0 . substr ( 0 , 3 ) ;
if ( _4c2 == "rgb" ) {
return self . fromRGBString ( _4c0 ) ;
} else {
if ( _4c2 == "hsl" ) {
return self . fromHSLString ( _4c0 ) ;
} else {
if ( _4c0 . charAt ( 0 ) == "#" ) {
return self . fromHexString ( _4c0 ) ;
}
}
}
return self . fromName ( _4c0 ) ;
} , fromHexString : function ( _4c3 ) {
if ( _4c3 . charAt ( 0 ) == "#" ) {
_4c3 = _4c3 . substring ( 1 ) ;
}
var _4c4 = [ ] ;
var i , hex ;
if ( _4c3 . length == 3 ) {
for ( i = 0 ; i < 3 ; i ++ ) {
hex = _4c3 . substr ( i , 1 ) ;
_4c4 . push ( parseInt ( hex + hex , 16 ) / 255 ) ;
}
} else {
for ( i = 0 ; i < 6 ; i += 2 ) {
hex = _4c3 . substr ( i , 2 ) ;
_4c4 . push ( parseInt ( hex , 16 ) / 255 ) ;
}
}
var _4c7 = MochiKit . Color . Color ;
return _4c7 . fromRGB . apply ( _4c7 , _4c4 ) ;
} , _fromColorString : function ( pre , _4c9 , _4ca , _4cb ) {
if ( _4cb . indexOf ( pre ) === 0 ) {
_4cb = _4cb . substring ( _4cb . indexOf ( "(" , 3 ) + 1 , _4cb . length - 1 ) ;
}
var _4cc = _4cb . split ( /\s*,\s*/ ) ;
var _4cd = [ ] ;
for ( var i = 0 ; i < _4cc . length ; i ++ ) {
var c = _4cc [ i ] ;
var val ;
var _4d1 = c . substring ( c . length - 3 ) ;
if ( c . charAt ( c . length - 1 ) == "%" ) {
val = 0.01 * parseFloat ( c . substring ( 0 , c . length - 1 ) ) ;
} else {
if ( _4d1 == "deg" ) {
val = parseFloat ( c ) / 360 ;
} else {
if ( _4d1 == "rad" ) {
val = parseFloat ( c ) / ( Math . PI * 2 ) ;
} else {
val = _4ca [ i ] * parseFloat ( c ) ;
}
}
}
_4cd . push ( val ) ;
}
return this [ _4c9 ] . apply ( this , _4cd ) ;
} , fromComputedStyle : function ( elem , _4d3 ) {
var d = MochiKit . DOM ;
var cls = MochiKit . Color . Color ;
for ( elem = d . getElement ( elem ) ; elem ; elem = elem . parentNode ) {
var _4d6 = MochiKit . Style . getStyle . apply ( d , arguments ) ;
if ( ! _4d6 ) {
continue ;
}
var _4d7 = cls . fromString ( _4d6 ) ;
if ( ! _4d7 ) {
break ;
}
if ( _4d7 . asRGB ( ) . a > 0 ) {
return _4d7 ;
}
}
return null ;
} , fromBackground : function ( elem ) {
var cls = MochiKit . Color . Color ;
return cls . fromComputedStyle ( elem , "backgroundColor" , "background-color" ) || cls . whiteColor ( ) ;
} , fromText : function ( elem ) {
var cls = MochiKit . Color . Color ;
return cls . fromComputedStyle ( elem , "color" , "color" ) || cls . blackColor ( ) ;
} , namedColors : function ( ) {
return MochiKit . Base . clone ( MochiKit . Color . Color . _namedColors ) ;
} } ) ;
MochiKit . Base . update ( MochiKit . Color , { clampColorComponent : function ( v , _4dd ) {
v *= _4dd ;
if ( v < 0 ) {
return 0 ;
} else {
if ( v > _4dd ) {
return _4dd ;
} else {
return v ;
}
}
} , _hslValue : function ( n1 , n2 , hue ) {
if ( hue > 6 ) {
hue -= 6 ;
} else {
if ( hue < 0 ) {
hue += 6 ;
}
}
var val ;
if ( hue < 1 ) {
val = n1 + ( n2 - n1 ) * hue ;
} else {
if ( hue < 3 ) {
val = n2 ;
} else {
if ( hue < 4 ) {
val = n1 + ( n2 - n1 ) * ( 4 - hue ) ;
} else {
val = n1 ;
}
}
}
return val ;
} , hsvToRGB : function ( hue , _4e3 , _4e4 , _4e5 ) {
if ( arguments . length == 1 ) {
var hsv = hue ;
hue = hsv . h ;
_4e3 = hsv . s ;
_4e4 = hsv . v ;
_4e5 = hsv . a ;
}
var red ;
var _4e8 ;
var blue ;
if ( _4e3 === 0 ) {
red = _4e4 ;
_4e8 = _4e4 ;
blue = _4e4 ;
} else {
var i = Math . floor ( hue * 6 ) ;
var f = ( hue * 6 ) - i ;
var p = _4e4 * ( 1 - _4e3 ) ;
var q = _4e4 * ( 1 - ( _4e3 * f ) ) ;
var t = _4e4 * ( 1 - ( _4e3 * ( 1 - f ) ) ) ;
switch ( i ) {
case 1 :
red = q ;
_4e8 = _4e4 ;
blue = p ;
break ;
case 2 :
red = p ;
_4e8 = _4e4 ;
blue = t ;
break ;
case 3 :
red = p ;
_4e8 = q ;
blue = _4e4 ;
break ;
case 4 :
red = t ;
_4e8 = p ;
blue = _4e4 ;
break ;
case 5 :
red = _4e4 ;
_4e8 = p ;
blue = q ;
break ;
case 6 :
case 0 :
red = _4e4 ;
_4e8 = t ;
blue = p ;
break ;
}
}
return { r : red , g : _4e8 , b : blue , a : _4e5 } ;
} , hslToRGB : function ( hue , _4f0 , _4f1 , _4f2 ) {
if ( arguments . length == 1 ) {
var hsl = hue ;
hue = hsl . h ;
_4f0 = hsl . s ;
_4f1 = hsl . l ;
_4f2 = hsl . a ;
}
var red ;
var _4f5 ;
var blue ;
if ( _4f0 === 0 ) {
red = _4f1 ;
_4f5 = _4f1 ;
blue = _4f1 ;
} else {
var m2 ;
if ( _4f1 <= 0.5 ) {
m2 = _4f1 * ( 1 + _4f0 ) ;
} else {
m2 = _4f1 + _4f0 - ( _4f1 * _4f0 ) ;
}
var m1 = ( 2 * _4f1 ) - m2 ;
var f = MochiKit . Color . _hslValue ;
var h6 = hue * 6 ;
red = f ( m1 , m2 , h6 + 2 ) ;
_4f5 = f ( m1 , m2 , h6 ) ;
blue = f ( m1 , m2 , h6 - 2 ) ;
}
return { r : red , g : _4f5 , b : blue , a : _4f2 } ;
} , rgbToHSV : function ( red , _4fc , blue , _4fe ) {
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
_4fc = rgb . g ;
blue = rgb . b ;
_4fe = rgb . a ;
}
var max = Math . max ( Math . max ( red , _4fc ) , blue ) ;
var min = Math . min ( Math . min ( red , _4fc ) , blue ) ;
var hue ;
var _503 ;
var _504 = max ;
if ( min == max ) {
hue = 0 ;
_503 = 0 ;
} else {
var _505 = ( max - min ) ;
_503 = _505 / max ;
if ( red == max ) {
hue = ( _4fc - blue ) / _505 ;
} else {
if ( _4fc == max ) {
hue = 2 + ( ( blue - red ) / _505 ) ;
} else {
hue = 4 + ( ( red - _4fc ) / _505 ) ;
}
}
hue /= 6 ;
if ( hue < 0 ) {
hue += 1 ;
}
if ( hue > 1 ) {
hue -= 1 ;
}
}
return { h : hue , s : _503 , v : _504 , a : _4fe } ;
} , rgbToHSL : function ( red , _507 , blue , _509 ) {
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
_507 = rgb . g ;
blue = rgb . b ;
_509 = rgb . a ;
}
var max = Math . max ( red , Math . max ( _507 , blue ) ) ;
var min = Math . min ( red , Math . min ( _507 , blue ) ) ;
var hue ;
var _50e ;
var _50f = ( max + min ) / 2 ;
var _510 = max - min ;
if ( _510 === 0 ) {
hue = 0 ;
_50e = 0 ;
} else {
if ( _50f <= 0.5 ) {
_50e = _510 / ( max + min ) ;
} else {
_50e = _510 / ( 2 - max - min ) ;
}
if ( red == max ) {
hue = ( _507 - blue ) / _510 ;
} else {
if ( _507 == max ) {
hue = 2 + ( ( blue - red ) / _510 ) ;
} else {
hue = 4 + ( ( red - _507 ) / _510 ) ;
}
}
hue /= 6 ;
if ( hue < 0 ) {
hue += 1 ;
}
if ( hue > 1 ) {
hue -= 1 ;
}
}
return { h : hue , s : _50e , l : _50f , a : _509 } ;
} , toColorPart : function ( num ) {
num = Math . round ( num ) ;
var _512 = num . toString ( 16 ) ;
if ( num < 16 ) {
return "0" + _512 ;
}
return _512 ;
} , _ _new _ _ : function ( ) {
var m = MochiKit . Base ;
this . Color . fromRGBString = m . bind ( this . Color . _fromColorString , this . Color , "rgb" , "fromRGB" , [ 1 / 255 , 1 / 255 , 1 / 255 , 1 ] ) ;
this . Color . fromHSLString = m . bind ( this . Color . _fromColorString , this . Color , "hsl" , "fromHSL" , [ 1 / 360 , 0.01 , 0.01 , 1 ] ) ;
var _514 = 1 / 3 ;
var _515 = { black : [ 0 , 0 , 0 ] , blue : [ 0 , 0 , 1 ] , brown : [ 0.6 , 0.4 , 0.2 ] , cyan : [ 0 , 1 , 1 ] , darkGray : [ _514 , _514 , _514 ] , gray : [ 0.5 , 0.5 , 0.5 ] , green : [ 0 , 1 , 0 ] , lightGray : [ 2 * _514 , 2 * _514 , 2 * _514 ] , magenta : [ 1 , 0 , 1 ] , orange : [ 1 , 0.5 , 0 ] , purple : [ 0.5 , 0 , 0.5 ] , red : [ 1 , 0 , 0 ] , transparent : [ 0 , 0 , 0 , 0 ] , white : [ 1 , 1 , 1 ] , yellow : [ 1 , 1 , 0 ] } ;
var _516 = function ( name , r , g , b , a ) {
var rval = this . fromRGB ( r , g , b , a ) ;
this [ name ] = function ( ) {
return rval ;
} ;
return rval ;
} ;
for ( var k in _515 ) {
var name = k + "Color" ;
var _51f = m . concat ( [ _516 , this . Color , name ] , _515 [ k ] ) ;
this . Color [ name ] = m . bind . apply ( null , _51f ) ;
}
var _520 = function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
if ( ! ( arguments [ i ] instanceof Color ) ) {
return false ;
}
}
return true ;
} ;
var _522 = function ( a , b ) {
return a . compareRGB ( b ) ;
} ;
m . nameFunctions ( this ) ;
m . registerComparator ( this . Color . NAME , _520 , _522 ) ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
} } ) ;
MochiKit . Color . EXPORT = [ "Color" ] ;
MochiKit . Color . EXPORT _OK = [ "clampColorComponent" , "rgbToHSL" , "hslToRGB" , "rgbToHSV" , "hsvToRGB" , "toColorPart" ] ;
MochiKit . Color . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Color ) ;
MochiKit . Color . Color . _namedColors = { aliceblue : "#f0f8ff" , antiquewhite : "#faebd7" , aqua : "#00ffff" , aquamarine : "#7fffd4" , azure : "#f0ffff" , beige : "#f5f5dc" , bisque : "#ffe4c4" , black : "#000000" , blanchedalmond : "#ffebcd" , blue : "#0000ff" , blueviolet : "#8a2be2" , brown : "#a52a2a" , burlywood : "#deb887" , cadetblue : "#5f9ea0" , chartreuse : "#7fff00" , chocolate : "#d2691e" , coral : "#ff7f50" , cornflowerblue : "#6495ed" , cornsilk : "#fff8dc" , crimson : "#dc143c" , cyan : "#00ffff" , darkblue : "#00008b" , darkcyan : "#008b8b" , darkgoldenrod : "#b8860b" , darkgray : "#a9a9a9" , darkgreen : "#006400" , darkgrey : "#a9a9a9" , darkkhaki : "#bdb76b" , darkmagenta : "#8b008b" , darkolivegreen : "#556b2f" , darkorange : "#ff8c00" , darkorchid : "#9932cc" , darkred : "#8b0000" , darksalmon : "#e9967a" , darkseagreen : "#8fbc8f" , darkslateblue : "#483d8b" , darkslategray : "#2f4f4f" , darkslategrey : "#2f4f4f" , darkturquoise : "#00ced1" , darkviolet : "#9400d3" , deeppink : "#ff1493" , deepskyblue : "#00bfff" , dimgray : "#696969" , dimgrey : "#696969" , dodgerblue : "#1e90ff" , firebrick : "#b22222" , floralwhite : "#fffaf0" , forestgreen : "#228b22" , fuchsia : "#ff00ff" , gainsboro : "#dcdcdc" , ghostwhite : "#f8f8ff" , gold : "#ffd700" , goldenrod : "#daa520" , gray : "#808080" , green : "#008000" , greenyellow : "#adff2f" , grey : "#808080" , honeydew : "#f0fff0" , hotpink : "#ff69b4" , indianred : "#cd5c5c" , indigo : "#4b0082" , ivory : "#fffff0" , khaki : "#f0e68c" , lavender : "#e6e6fa" , lavenderblush : "#fff0f5" , lawngreen : "#7cfc00" , lemonchiffon : "#fffacd" , lightblue : "#add8e6" , lightcoral : "#f08080" , lightcyan : "#e0ffff" , lightgoldenrodyellow : "#fafad2" , lightgray : "#d3d3d3" , lightgreen : "#90ee90" , lightgrey : "#d3d3d3" , lightpink : "#ffb6c1" , lightsalmon : "#ffa07a" , lightseagreen : "#20b2aa" , lightskyblue : "#87cefa" , lightslategray : "#778899" , lightslategrey : "#778899" , lightsteelblue : "#b0c4de" , lightyellow : "#ffffe0" , lime : "#00ff00" , limegreen : "#32cd32" , linen : "#faf0e6" , magenta : "#ff00ff" , maroon : "#800000" , mediumaquamarine : "#66cdaa" , mediumblue : "#0000cd" , mediumorchid : "#ba55d3" , mediumpurple : "#9370db" , mediumseagreen : "#3cb371" , mediumslateblue : "#7b68ee" , mediumspringgreen : "#00fa9a" , mediumturquoise : "#48d1cc" , mediumvioletred : "#c71585" , midnightblue : "#191970" , mintcream : "#f5fffa" , mistyrose : "#ffe4e1" , moccasin : "#ffe4b5" , navajowhite : "#ffdead" , navy : "#000080" , oldlace : "#fdf5e6" , olive : "#808000" , olivedrab : "#6b8e23" , orange : "#ffa500" , orangered : "#ff4500" , orchid : "#da70d6" , palegoldenrod : "#eee8aa" , palegreen : "#98fb98" , paleturquoise : "#afeeee" , palevioletred : "#db7093" , papayawhip : "#ffefd5" , peachpuff : "#ffdab9" , peru : "#cd853f" , pink : "#ffc0cb" , plum : "#dda0dd" , powderblue : "#b0e0e6" , purple : "#800080" , red : "#ff0000" , rosybrown : "#bc8f8f" , royalblue : "#4169e1" , saddlebrown : "#8b4513" , salmon : "#fa8072" , sandybrown : "#f4a460" , seagreen : "#2e8b57" , seashell : "#fff5ee" , sienna : "#a0522d" , silver : "#c0c0c0" , skyblue : "#87ceeb" , slateblue : "#6a5acd" , slategray : "#708090" , slategrey : "#708090" , snow : "#fffafa" , springgreen : "#00ff7f" , steelblue : "#4682b4" , tan : "#d2b48c" , teal : "#008080" , thistle : "#d8bfd8" , tomato : "#ff6347" , turquoise : "#40e0d0" , violet : "#ee82ee" , wheat : "#f5deb3" , white : "#ffffff" , whitesmoke : "#f5f5f5" , yellow : "#ffff00" , yellowgreen : "#9acd32" } ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Signal" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Style" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Style" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Signal depends on MochiKit.Base!" ;
}
try {
if ( typeof ( MochiKit . DOM ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Signal depends on MochiKit.DOM!" ;
}
try {
if ( typeof ( MochiKit . Style ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Signal depends on MochiKit.Style!" ;
}
if ( typeof ( MochiKit . Signal ) == "undefined" ) {
MochiKit . Signal = { } ;
}
MochiKit . Signal . NAME = "MochiKit.Signal" ;
MochiKit . Signal . VERSION = "1.4" ;
MochiKit . Signal . _observers = [ ] ;
MochiKit . Signal . Event = function ( src , e ) {
this . _event = e || window . event ;
this . _src = src ;
} ;
MochiKit . Base . update ( MochiKit . Signal . Event . prototype , { _ _repr _ _ : function ( ) {
var repr = MochiKit . Base . repr ;
var str = "{event(): " + repr ( this . event ( ) ) + ", src(): " + repr ( this . src ( ) ) + ", type(): " + repr ( this . type ( ) ) + ", target(): " + repr ( this . target ( ) ) ;
if ( this . type ( ) && this . type ( ) . indexOf ( "key" ) === 0 || this . type ( ) . indexOf ( "mouse" ) === 0 || this . type ( ) . indexOf ( "click" ) != - 1 || this . type ( ) == "contextmenu" ) {
str += ", modifier(): " + "{alt: " + repr ( this . modifier ( ) . alt ) + ", ctrl: " + repr ( this . modifier ( ) . ctrl ) + ", meta: " + repr ( this . modifier ( ) . meta ) + ", shift: " + repr ( this . modifier ( ) . shift ) + ", any: " + repr ( this . modifier ( ) . any ) + "}" ;
}
if ( this . type ( ) && this . type ( ) . indexOf ( "key" ) === 0 ) {
str += ", key(): {code: " + repr ( this . key ( ) . code ) + ", string: " + repr ( this . key ( ) . string ) + "}" ;
}
if ( this . type ( ) && ( this . type ( ) . indexOf ( "mouse" ) === 0 || this . type ( ) . indexOf ( "click" ) != - 1 || this . type ( ) == "contextmenu" ) ) {
str += ", mouse(): {page: " + repr ( this . mouse ( ) . page ) + ", client: " + repr ( this . mouse ( ) . client ) ;
if ( this . type ( ) != "mousemove" ) {
str += ", button: {left: " + repr ( this . mouse ( ) . button . left ) + ", middle: " + repr ( this . mouse ( ) . button . middle ) + ", right: " + repr ( this . mouse ( ) . button . right ) + "}}" ;
} else {
str += "}" ;
}
}
if ( this . type ( ) == "mouseover" || this . type ( ) == "mouseout" ) {
str += ", relatedTarget(): " + repr ( this . relatedTarget ( ) ) ;
}
str += "}" ;
return str ;
} , toString : function ( ) {
return this . _ _repr _ _ ( ) ;
} , src : function ( ) {
return this . _src ;
} , event : function ( ) {
return this . _event ;
} , type : function ( ) {
return this . _event . type || undefined ;
} , target : function ( ) {
return this . _event . target || this . _event . srcElement ;
} , _relatedTarget : null , relatedTarget : function ( ) {
if ( this . _relatedTarget !== null ) {
return this . _relatedTarget ;
}
var elem = null ;
if ( this . type ( ) == "mouseover" ) {
elem = ( this . _event . relatedTarget || this . _event . fromElement ) ;
} else {
if ( this . type ( ) == "mouseout" ) {
elem = ( this . _event . relatedTarget || this . _event . toElement ) ;
}
}
if ( elem !== null ) {
this . _relatedTarget = elem ;
return elem ;
}
return undefined ;
} , _modifier : null , modifier : function ( ) {
if ( this . _modifier !== null ) {
return this . _modifier ;
}
var m = { } ;
m . alt = this . _event . altKey ;
m . ctrl = this . _event . ctrlKey ;
m . meta = this . _event . metaKey || false ;
m . shift = this . _event . shiftKey ;
m . any = m . alt || m . ctrl || m . shift || m . meta ;
this . _modifier = m ;
return m ;
} , _key : null , key : function ( ) {
if ( this . _key !== null ) {
return this . _key ;
}
var k = { } ;
if ( this . type ( ) && this . type ( ) . indexOf ( "key" ) === 0 ) {
if ( this . type ( ) == "keydown" || this . type ( ) == "keyup" ) {
k . code = this . _event . keyCode ;
k . string = ( MochiKit . Signal . _specialKeys [ k . code ] || "KEY_UNKNOWN" ) ;
this . _key = k ;
return k ;
} else {
if ( this . type ( ) == "keypress" ) {
k . code = 0 ;
k . string = "" ;
if ( typeof ( this . _event . charCode ) != "undefined" && this . _event . charCode !== 0 && ! MochiKit . Signal . _specialMacKeys [ this . _event . charCode ] ) {
k . code = this . _event . charCode ;
k . string = String . fromCharCode ( k . code ) ;
} else {
if ( this . _event . keyCode && typeof ( this . _event . charCode ) == "undefined" ) {
k . code = this . _event . keyCode ;
k . string = String . fromCharCode ( k . code ) ;
}
}
this . _key = k ;
return k ;
}
}
}
return undefined ;
} , _mouse : null , mouse : function ( ) {
if ( this . _mouse !== null ) {
return this . _mouse ;
}
var m = { } ;
var e = this . _event ;
if ( this . type ( ) && ( this . type ( ) . indexOf ( "mouse" ) === 0 || this . type ( ) . indexOf ( "click" ) != - 1 || this . type ( ) == "contextmenu" ) ) {
m . client = new MochiKit . Style . Coordinates ( 0 , 0 ) ;
if ( e . clientX || e . clientY ) {
m . client . x = ( ! e . clientX || e . clientX < 0 ) ? 0 : e . clientX ;
m . client . y = ( ! e . clientY || e . clientY < 0 ) ? 0 : e . clientY ;
}
m . page = new MochiKit . Style . Coordinates ( 0 , 0 ) ;
if ( e . pageX || e . pageY ) {
m . page . x = ( ! e . pageX || e . pageX < 0 ) ? 0 : e . pageX ;
m . page . y = ( ! e . pageY || e . pageY < 0 ) ? 0 : e . pageY ;
} else {
var de = MochiKit . DOM . _document . documentElement ;
var b = MochiKit . DOM . _document . body ;
m . page . x = e . clientX + ( de . scrollLeft || b . scrollLeft ) - ( de . clientLeft || 0 ) ;
m . page . y = e . clientY + ( de . scrollTop || b . scrollTop ) - ( de . clientTop || 0 ) ;
}
if ( this . type ( ) != "mousemove" ) {
m . button = { } ;
m . button . left = false ;
m . button . right = false ;
m . button . middle = false ;
if ( e . which ) {
m . button . left = ( e . which == 1 ) ;
m . button . middle = ( e . which == 2 ) ;
m . button . right = ( e . which == 3 ) ;
} else {
m . button . left = ! ! ( e . button & 1 ) ;
m . button . right = ! ! ( e . button & 2 ) ;
m . button . middle = ! ! ( e . button & 4 ) ;
}
}
this . _mouse = m ;
return m ;
}
return undefined ;
} , stop : function ( ) {
this . stopPropagation ( ) ;
this . preventDefault ( ) ;
} , stopPropagation : function ( ) {
if ( this . _event . stopPropagation ) {
this . _event . stopPropagation ( ) ;
} else {
this . _event . cancelBubble = true ;
}
} , preventDefault : function ( ) {
if ( this . _event . preventDefault ) {
this . _event . preventDefault ( ) ;
} else {
if ( this . _confirmUnload === null ) {
this . _event . returnValue = false ;
}
}
} , _confirmUnload : null , confirmUnload : function ( msg ) {
if ( this . type ( ) == "beforeunload" ) {
this . _confirmUnload = msg ;
this . _event . returnValue = msg ;
}
} } ) ;
MochiKit . Signal . _specialMacKeys = { 3 : "KEY_ENTER" , 63289 : "KEY_NUM_PAD_CLEAR" , 63276 : "KEY_PAGE_UP" , 63277 : "KEY_PAGE_DOWN" , 63275 : "KEY_END" , 63273 : "KEY_HOME" , 63234 : "KEY_ARROW_LEFT" , 63232 : "KEY_ARROW_UP" , 63235 : "KEY_ARROW_RIGHT" , 63233 : "KEY_ARROW_DOWN" , 63302 : "KEY_INSERT" , 63272 : "KEY_DELETE" } ;
( function ( ) {
var _531 = MochiKit . Signal . _specialMacKeys ;
for ( i = 63236 ; i <= 63242 ; i ++ ) {
_531 [ i ] = "KEY_F" + ( i - 63236 + 1 ) ;
}
} ) ( ) ;
MochiKit . Signal . _specialKeys = { 8 : "KEY_BACKSPACE" , 9 : "KEY_TAB" , 12 : "KEY_NUM_PAD_CLEAR" , 13 : "KEY_ENTER" , 16 : "KEY_SHIFT" , 17 : "KEY_CTRL" , 18 : "KEY_ALT" , 19 : "KEY_PAUSE" , 20 : "KEY_CAPS_LOCK" , 27 : "KEY_ESCAPE" , 32 : "KEY_SPACEBAR" , 33 : "KEY_PAGE_UP" , 34 : "KEY_PAGE_DOWN" , 35 : "KEY_END" , 36 : "KEY_HOME" , 37 : "KEY_ARROW_LEFT" , 38 : "KEY_ARROW_UP" , 39 : "KEY_ARROW_RIGHT" , 40 : "KEY_ARROW_DOWN" , 44 : "KEY_PRINT_SCREEN" , 45 : "KEY_INSERT" , 46 : "KEY_DELETE" , 59 : "KEY_SEMICOLON" , 91 : "KEY_WINDOWS_LEFT" , 92 : "KEY_WINDOWS_RIGHT" , 93 : "KEY_SELECT" , 106 : "KEY_NUM_PAD_ASTERISK" , 107 : "KEY_NUM_PAD_PLUS_SIGN" , 109 : "KEY_NUM_PAD_HYPHEN-MINUS" , 110 : "KEY_NUM_PAD_FULL_STOP" , 111 : "KEY_NUM_PAD_SOLIDUS" , 144 : "KEY_NUM_LOCK" , 145 : "KEY_SCROLL_LOCK" , 186 : "KEY_SEMICOLON" , 187 : "KEY_EQUALS_SIGN" , 188 : "KEY_COMMA" , 189 : "KEY_HYPHEN-MINUS" , 190 : "KEY_FULL_STOP" , 191 : "KEY_SOLIDUS" , 192 : "KEY_GRAVE_ACCENT" , 219 : "KEY_LEFT_SQUARE_BRACKET" , 220 : "KEY_REVERSE_SOLIDUS" , 221 : "KEY_RIGHT_SQUARE_BRACKET" , 222 : "KEY_APOSTROPHE" } ;
( function ( ) {
var _532 = MochiKit . Signal . _specialKeys ;
for ( var i = 48 ; i <= 57 ; i ++ ) {
_532 [ i ] = "KEY_" + ( i - 48 ) ;
}
for ( i = 65 ; i <= 90 ; i ++ ) {
_532 [ i ] = "KEY_" + String . fromCharCode ( i ) ;
}
for ( i = 96 ; i <= 105 ; i ++ ) {
_532 [ i ] = "KEY_NUM_PAD_" + ( i - 96 ) ;
}
for ( i = 112 ; i <= 123 ; i ++ ) {
_532 [ i ] = "KEY_F" + ( i - 112 + 1 ) ;
}
} ) ( ) ;
MochiKit . Signal . Ident = function ( _534 ) {
this . source = _534 . source ;
this . signal = _534 . signal ;
this . listener = _534 . listener ;
this . isDOM = _534 . isDOM ;
this . objOrFunc = _534 . objOrFunc ;
this . funcOrStr = _534 . funcOrStr ;
this . connected = _534 . connected ;
} ;
MochiKit . Signal . Ident . prototype = { } ;
MochiKit . Base . update ( MochiKit . Signal , { _ _repr _ _ : function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} , toString : function ( ) {
return this . _ _repr _ _ ( ) ;
} , _unloadCache : function ( ) {
var self = MochiKit . Signal ;
var _536 = self . _observers ;
for ( var i = 0 ; i < _536 . length ; i ++ ) {
if ( _536 [ i ] . signal !== "onload" && _536 [ i ] . signal !== "onunload" ) {
self . _disconnect ( _536 [ i ] ) ;
}
}
} , _listener : function ( src , sig , func , obj , _53c ) {
var self = MochiKit . Signal ;
var E = self . Event ;
if ( ! _53c ) {
return MochiKit . Base . bind ( func , obj ) ;
}
obj = obj || src ;
if ( typeof ( func ) == "string" ) {
if ( sig === "onload" || sig === "onunload" ) {
return function ( _53f ) {
obj [ func ] . apply ( obj , [ new E ( src , _53f ) ] ) ;
var _540 = new MochiKit . Signal . Ident ( { source : src , signal : sig , objOrFunc : obj , funcOrStr : func } ) ;
MochiKit . Signal . _disconnect ( _540 ) ;
} ;
} else {
return function ( _541 ) {
obj [ func ] . apply ( obj , [ new E ( src , _541 ) ] ) ;
} ;
}
} else {
if ( sig === "onload" || sig === "onunload" ) {
return function ( _542 ) {
func . apply ( obj , [ new E ( src , _542 ) ] ) ;
MochiKit . Signal . disconnect ( src , sig , func ) ;
var _543 = new MochiKit . Signal . Ident ( { source : src , signal : sig , objOrFunc : func } ) ;
MochiKit . Signal . _disconnect ( _543 ) ;
} ;
} else {
return function ( _544 ) {
func . apply ( obj , [ new E ( src , _544 ) ] ) ;
} ;
}
}
} , _browserAlreadyHasMouseEnterAndLeave : function ( ) {
return /MSIE/ . test ( navigator . userAgent ) ;
} , _mouseEnterListener : function ( src , sig , func , obj ) {
var E = MochiKit . Signal . Event ;
return function ( _54a ) {
var e = new E ( src , _54a ) ;
try {
e . relatedTarget ( ) . nodeName ;
}
catch ( err ) {
return ;
}
e . stop ( ) ;
if ( MochiKit . DOM . isChildNode ( e . relatedTarget ( ) , src ) ) {
return ;
}
e . type = function ( ) {
return sig ;
} ;
if ( typeof ( func ) == "string" ) {
return obj [ func ] . apply ( obj , [ e ] ) ;
} else {
return func . apply ( obj , [ e ] ) ;
}
} ;
} , _getDestPair : function ( _54c , _54d ) {
var obj = null ;
var func = null ;
if ( typeof ( _54d ) != "undefined" ) {
obj = _54c ;
func = _54d ;
if ( typeof ( _54d ) == "string" ) {
if ( typeof ( _54c [ _54d ] ) != "function" ) {
throw new Error ( "'funcOrStr' must be a function on 'objOrFunc'" ) ;
}
} else {
if ( typeof ( _54d ) != "function" ) {
throw new Error ( "'funcOrStr' must be a function or string" ) ;
}
}
} else {
if ( typeof ( _54c ) != "function" ) {
throw new Error ( "'objOrFunc' must be a function if 'funcOrStr' is not given" ) ;
} else {
func = _54c ;
}
}
return [ obj , func ] ;
} , connect : function ( src , sig , _552 , _553 ) {
src = MochiKit . DOM . getElement ( src ) ;
var self = MochiKit . Signal ;
if ( typeof ( sig ) != "string" ) {
throw new Error ( "'sig' must be a string" ) ;
}
var _555 = self . _getDestPair ( _552 , _553 ) ;
var obj = _555 [ 0 ] ;
var func = _555 [ 1 ] ;
if ( typeof ( obj ) == "undefined" || obj === null ) {
obj = src ;
}
var _558 = ! ! ( src . addEventListener || src . attachEvent ) ;
if ( _558 && ( sig === "onmouseenter" || sig === "onmouseleave" ) && ! self . _browserAlreadyHasMouseEnterAndLeave ( ) ) {
var _559 = self . _mouseEnterListener ( src , sig . substr ( 2 ) , func , obj ) ;
if ( sig === "onmouseenter" ) {
sig = "onmouseover" ;
} else {
sig = "onmouseout" ;
}
} else {
var _559 = self . _listener ( src , sig , func , obj , _558 ) ;
}
if ( src . addEventListener ) {
src . addEventListener ( sig . substr ( 2 ) , _559 , false ) ;
} else {
if ( src . attachEvent ) {
src . attachEvent ( sig , _559 ) ;
}
}
var _55a = new MochiKit . Signal . Ident ( { source : src , signal : sig , listener : _559 , isDOM : _558 , objOrFunc : _552 , funcOrStr : _553 , connected : true } ) ;
self . _observers . push ( _55a ) ;
if ( ! _558 && typeof ( src . _ _connect _ _ ) == "function" ) {
var args = MochiKit . Base . extend ( [ _55a ] , arguments , 1 ) ;
src . _ _connect _ _ . apply ( src , args ) ;
}
return _55a ;
} , _disconnect : function ( _55c ) {
if ( ! _55c . connected ) {
return ;
}
_55c . connected = false ;
if ( ! _55c . isDOM ) {
return ;
}
var src = _55c . source ;
var sig = _55c . signal ;
var _55f = _55c . listener ;
if ( src . removeEventListener ) {
src . removeEventListener ( sig . substr ( 2 ) , _55f , false ) ;
} else {
if ( src . detachEvent ) {
src . detachEvent ( sig , _55f ) ;
} else {
throw new Error ( "'src' must be a DOM element" ) ;
}
}
} , disconnect : function ( _560 ) {
var self = MochiKit . Signal ;
var _562 = self . _observers ;
var m = MochiKit . Base ;
if ( arguments . length > 1 ) {
var src = MochiKit . DOM . getElement ( arguments [ 0 ] ) ;
var sig = arguments [ 1 ] ;
var obj = arguments [ 2 ] ;
var func = arguments [ 3 ] ;
for ( var i = _562 . length - 1 ; i >= 0 ; i -- ) {
var o = _562 [ i ] ;
if ( o . source === src && o . signal === sig && o . objOrFunc === obj && o . funcOrStr === func ) {
self . _disconnect ( o ) ;
if ( ! self . _lock ) {
_562 . splice ( i , 1 ) ;
} else {
self . _dirty = true ;
}
return true ;
}
}
} else {
var idx = m . findIdentical ( _562 , _560 ) ;
if ( idx >= 0 ) {
self . _disconnect ( _560 ) ;
if ( ! self . _lock ) {
_562 . splice ( idx , 1 ) ;
} else {
self . _dirty = true ;
}
return true ;
}
}
return false ;
} , disconnectAllTo : function ( _56b , _56c ) {
var self = MochiKit . Signal ;
var _56e = self . _observers ;
var _56f = self . _disconnect ;
var _570 = self . _lock ;
var _571 = self . _dirty ;
if ( typeof ( _56c ) === "undefined" ) {
_56c = null ;
}
for ( var i = _56e . length - 1 ; i >= 0 ; i -- ) {
var _573 = _56e [ i ] ;
if ( _573 . objOrFunc === _56b && ( _56c === null || _573 . funcOrStr === _56c ) ) {
_56f ( _573 ) ;
if ( _570 ) {
_571 = true ;
} else {
_56e . splice ( i , 1 ) ;
}
}
}
self . _dirty = _571 ;
} , disconnectAll : function ( src , sig ) {
src = MochiKit . DOM . getElement ( src ) ;
var m = MochiKit . Base ;
var _577 = m . flattenArguments ( m . extend ( null , arguments , 1 ) ) ;
var self = MochiKit . Signal ;
var _579 = self . _disconnect ;
var _57a = self . _observers ;
var i , _57c ;
var _57d = self . _lock ;
var _57e = self . _dirty ;
if ( _577 . length === 0 ) {
for ( i = _57a . length - 1 ; i >= 0 ; i -- ) {
_57c = _57a [ i ] ;
if ( _57c . source === src ) {
_579 ( _57c ) ;
if ( ! _57d ) {
_57a . splice ( i , 1 ) ;
} else {
_57e = true ;
}
}
}
} else {
var sigs = { } ;
for ( i = 0 ; i < _577 . length ; i ++ ) {
sigs [ _577 [ i ] ] = true ;
}
for ( i = _57a . length - 1 ; i >= 0 ; i -- ) {
_57c = _57a [ i ] ;
if ( _57c . source === src && _57c . signal in sigs ) {
_579 ( _57c ) ;
if ( ! _57d ) {
_57a . splice ( i , 1 ) ;
} else {
_57e = true ;
}
}
}
}
self . _dirty = _57e ;
} , signal : function ( src , sig ) {
var self = MochiKit . Signal ;
var _583 = self . _observers ;
src = MochiKit . DOM . getElement ( src ) ;
var args = MochiKit . Base . extend ( null , arguments , 2 ) ;
var _585 = [ ] ;
self . _lock = true ;
for ( var i = 0 ; i < _583 . length ; i ++ ) {
var _587 = _583 [ i ] ;
if ( _587 . source === src && _587 . signal === sig && _587 . connected ) {
try {
_587 . listener . apply ( src , args ) ;
}
catch ( e ) {
_585 . push ( e ) ;
}
}
}
self . _lock = false ;
if ( self . _dirty ) {
self . _dirty = false ;
for ( var i = _583 . length - 1 ; i >= 0 ; i -- ) {
if ( ! _583 [ i ] . connected ) {
_583 . splice ( i , 1 ) ;
}
}
}
if ( _585 . length == 1 ) {
throw _585 [ 0 ] ;
} else {
if ( _585 . length > 1 ) {
var e = new Error ( "Multiple errors thrown in handling 'sig', see errors property" ) ;
e . errors = _585 ;
throw e ;
}
}
} } ) ;
MochiKit . Signal . EXPORT _OK = [ ] ;
MochiKit . Signal . EXPORT = [ "connect" , "disconnect" , "signal" , "disconnectAll" , "disconnectAllTo" ] ;
MochiKit . Signal . _ _new _ _ = function ( win ) {
var m = MochiKit . Base ;
this . _document = document ;
this . _window = win ;
this . _lock = false ;
this . _dirty = false ;
try {
this . connect ( window , "onunload" , this . _unloadCache ) ;
}
catch ( e ) {
}
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} ;
MochiKit . Signal . _ _new _ _ ( this ) ;
if ( MochiKit . _ _export _ _ ) {
connect = MochiKit . Signal . connect ;
disconnect = MochiKit . Signal . disconnect ;
disconnectAll = MochiKit . Signal . disconnectAll ;
signal = MochiKit . Signal . signal ;
}
MochiKit . Base . _exportSymbols ( this , MochiKit . Signal ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Position" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Style" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Style" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) == "undefined" || typeof ( MochiKit . Style ) == "undefined" || typeof ( MochiKit . DOM ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Style depends on MochiKit.Base, MochiKit.DOM, and MochiKit.Style!" ;
}
if ( typeof ( MochiKit . Position ) == "undefined" ) {
MochiKit . Position = { } ;
}
MochiKit . Position . NAME = "MochiKit.Position" ;
MochiKit . Position . VERSION = "1.4" ;
MochiKit . Position . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Position . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Position . EXPORT _OK = [ ] ;
MochiKit . Position . EXPORT = [ ] ;
MochiKit . Base . update ( MochiKit . Position , { includeScrollOffsets : false , prepare : function ( ) {
var _58b = window . pageXOffset || document . documentElement . scrollLeft || document . body . scrollLeft || 0 ;
var _58c = window . pageYOffset || document . documentElement . scrollTop || document . body . scrollTop || 0 ;
this . windowOffset = new MochiKit . Style . Coordinates ( _58b , _58c ) ;
} , cumulativeOffset : function ( _58d ) {
var _58e = 0 ;
var _58f = 0 ;
do {
_58e += _58d . offsetTop || 0 ;
_58f += _58d . offsetLeft || 0 ;
_58d = _58d . offsetParent ;
} while ( _58d ) ;
return new MochiKit . Style . Coordinates ( _58f , _58e ) ;
} , realOffset : function ( _590 ) {
var _591 = 0 ;
var _592 = 0 ;
do {
_591 += _590 . scrollTop || 0 ;
_592 += _590 . scrollLeft || 0 ;
_590 = _590 . parentNode ;
} while ( _590 ) ;
return new MochiKit . Style . Coordinates ( _592 , _591 ) ;
} , within : function ( _593 , x , y ) {
if ( this . includeScrollOffsets ) {
return this . withinIncludingScrolloffsets ( _593 , x , y ) ;
}
this . xcomp = x ;
this . ycomp = y ;
this . offset = this . cumulativeOffset ( _593 ) ;
if ( _593 . style . position == "fixed" ) {
this . offset . x += this . windowOffset . x ;
this . offset . y += this . windowOffset . y ;
}
return ( y >= this . offset . y && y < this . offset . y + _593 . offsetHeight && x >= this . offset . x && x < this . offset . x + _593 . offsetWidth ) ;
} , withinIncludingScrolloffsets : function ( _596 , x , y ) {
var _599 = this . realOffset ( _596 ) ;
this . xcomp = x + _599 . x - this . windowOffset . x ;
this . ycomp = y + _599 . y - this . windowOffset . y ;
this . offset = this . cumulativeOffset ( _596 ) ;
return ( this . ycomp >= this . offset . y && this . ycomp < this . offset . y + _596 . offsetHeight && this . xcomp >= this . offset . x && this . xcomp < this . offset . x + _596 . offsetWidth ) ;
} , overlap : function ( mode , _59b ) {
if ( ! mode ) {
return 0 ;
}
if ( mode == "vertical" ) {
return ( ( this . offset . y + _59b . offsetHeight ) - this . ycomp ) / _59b . offsetHeight ;
}
if ( mode == "horizontal" ) {
return ( ( this . offset . x + _59b . offsetWidth ) - this . xcomp ) / _59b . offsetWidth ;
}
} , absolutize : function ( _59c ) {
_59c = MochiKit . DOM . getElement ( _59c ) ;
if ( _59c . style . position == "absolute" ) {
return ;
}
MochiKit . Position . prepare ( ) ;
var _59d = MochiKit . Position . positionedOffset ( _59c ) ;
var _59e = _59c . clientWidth ;
var _59f = _59c . clientHeight ;
var _5a0 = { "position" : _59c . style . position , "left" : _59d . x - parseFloat ( _59c . style . left || 0 ) , "top" : _59d . y - parseFloat ( _59c . style . top || 0 ) , "width" : _59c . style . width , "height" : _59c . style . height } ;
_59c . style . position = "absolute" ;
_59c . style . top = _59d . y + "px" ;
_59c . style . left = _59d . x + "px" ;
_59c . style . width = _59e + "px" ;
_59c . style . height = _59f + "px" ;
return _5a0 ;
} , positionedOffset : function ( _5a1 ) {
var _5a2 = 0 , _5a3 = 0 ;
do {
_5a2 += _5a1 . offsetTop || 0 ;
_5a3 += _5a1 . offsetLeft || 0 ;
_5a1 = _5a1 . offsetParent ;
if ( _5a1 ) {
p = MochiKit . Style . getStyle ( _5a1 , "position" ) ;
if ( p == "relative" || p == "absolute" ) {
break ;
}
}
} while ( _5a1 ) ;
return new MochiKit . Style . Coordinates ( _5a3 , _5a2 ) ;
} , relativize : function ( _5a4 , _5a5 ) {
_5a4 = MochiKit . DOM . getElement ( _5a4 ) ;
if ( _5a4 . style . position == "relative" ) {
return ;
}
MochiKit . Position . prepare ( ) ;
var top = parseFloat ( _5a4 . style . top || 0 ) - ( _5a5 [ "top" ] || 0 ) ;
var left = parseFloat ( _5a4 . style . left || 0 ) - ( _5a5 [ "left" ] || 0 ) ;
_5a4 . style . position = _5a5 [ "position" ] ;
_5a4 . style . top = top + "px" ;
_5a4 . style . left = left + "px" ;
_5a4 . style . width = _5a5 [ "width" ] ;
_5a4 . style . height = _5a5 [ "height" ] ;
} , clone : function ( _5a8 , _5a9 ) {
_5a8 = MochiKit . DOM . getElement ( _5a8 ) ;
_5a9 = MochiKit . DOM . getElement ( _5a9 ) ;
_5a9 . style . position = "absolute" ;
var _5aa = this . cumulativeOffset ( _5a8 ) ;
_5a9 . style . top = _5aa . y + "px" ;
_5a9 . style . left = _5aa . x + "px" ;
_5a9 . style . width = _5a8 . offsetWidth + "px" ;
_5a9 . style . height = _5a8 . offsetHeight + "px" ;
} , page : function ( _5ab ) {
var _5ac = 0 ;
var _5ad = 0 ;
var _5ae = _5ab ;
do {
_5ac += _5ae . offsetTop || 0 ;
_5ad += _5ae . offsetLeft || 0 ;
if ( _5ae . offsetParent == document . body && MochiKit . Style . getStyle ( _5ae , "position" ) == "absolute" ) {
break ;
}
} while ( _5ae = _5ae . offsetParent ) ;
_5ae = _5ab ;
do {
_5ac -= _5ae . scrollTop || 0 ;
_5ad -= _5ae . scrollLeft || 0 ;
} while ( _5ae = _5ae . parentNode ) ;
return new MochiKit . Style . Coordinates ( _5ad , _5ac ) ;
} } ) ;
MochiKit . Position . _ _new _ _ = function ( win ) {
var m = MochiKit . Base ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
m . nameFunctions ( this ) ;
} ;
MochiKit . Position . _ _new _ _ ( this ) ;
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.Visual" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Style" ) ;
dojo . require ( "MochiKit.Color" ) ;
dojo . require ( "MochiKit.Position" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Style" , [ ] ) ;
JSAN . use ( "MochiKit.Color" , [ ] ) ;
JSAN . use ( "MochiKit.Position" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) === "undefined" || typeof ( MochiKit . DOM ) === "undefined" || typeof ( MochiKit . Style ) === "undefined" || typeof ( MochiKit . Position ) === "undefined" || typeof ( MochiKit . Color ) === "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style, MochiKit.Position and MochiKit.Color!" ;
}
if ( typeof ( MochiKit . Visual ) == "undefined" ) {
MochiKit . Visual = { } ;
}
MochiKit . Visual . NAME = "MochiKit.Visual" ;
MochiKit . Visual . VERSION = "1.4" ;
MochiKit . Visual . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . Visual . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . Visual . _RoundCorners = function ( e , _5b2 ) {
e = MochiKit . DOM . getElement ( e ) ;
this . _setOptions ( _5b2 ) ;
if ( this . options . _ _unstable _ _wrapElement ) {
e = this . _doWrap ( e ) ;
}
var _5b3 = this . options . color ;
var C = MochiKit . Color . Color ;
if ( this . options . color === "fromElement" ) {
_5b3 = C . fromBackground ( e ) ;
} else {
if ( ! ( _5b3 instanceof C ) ) {
_5b3 = C . fromString ( _5b3 ) ;
}
}
this . isTransparent = ( _5b3 . asRGB ( ) . a <= 0 ) ;
var _5b5 = this . options . bgColor ;
if ( this . options . bgColor === "fromParent" ) {
_5b5 = C . fromBackground ( e . offsetParent ) ;
} else {
if ( ! ( _5b5 instanceof C ) ) {
_5b5 = C . fromString ( _5b5 ) ;
}
}
this . _roundCornersImpl ( e , _5b3 , _5b5 ) ;
} ;
MochiKit . Visual . _RoundCorners . prototype = { _doWrap : function ( e ) {
var _5b7 = e . parentNode ;
var doc = MochiKit . DOM . currentDocument ( ) ;
if ( typeof ( doc . defaultView ) === "undefined" || doc . defaultView === null ) {
return e ;
}
var _5b9 = doc . defaultView . getComputedStyle ( e , null ) ;
if ( typeof ( _5b9 ) === "undefined" || _5b9 === null ) {
return e ;
}
var _5ba = MochiKit . DOM . DIV ( { "style" : { display : "block" , marginTop : _5b9 . getPropertyValue ( "padding-top" ) , marginRight : _5b9 . getPropertyValue ( "padding-right" ) , marginBottom : _5b9 . getPropertyValue ( "padding-bottom" ) , marginLeft : _5b9 . getPropertyValue ( "padding-left" ) , padding : "0px" } } ) ;
_5ba . innerHTML = e . innerHTML ;
e . innerHTML = "" ;
e . appendChild ( _5ba ) ;
return e ;
} , _roundCornersImpl : function ( e , _5bc , _5bd ) {
if ( this . options . border ) {
this . _renderBorder ( e , _5bd ) ;
}
if ( this . _isTopRounded ( ) ) {
this . _roundTopCorners ( e , _5bc , _5bd ) ;
}
if ( this . _isBottomRounded ( ) ) {
this . _roundBottomCorners ( e , _5bc , _5bd ) ;
}
} , _renderBorder : function ( el , _5bf ) {
var _5c0 = "1px solid " + this . _borderColor ( _5bf ) ;
var _5c1 = "border-left: " + _5c0 ;
var _5c2 = "border-right: " + _5c0 ;
var _5c3 = "style='" + _5c1 + ";" + _5c2 + "'" ;
el . innerHTML = "<div " + _5c3 + ">" + el . innerHTML + "</div>" ;
} , _roundTopCorners : function ( el , _5c5 , _5c6 ) {
var _5c7 = this . _createCorner ( _5c6 ) ;
for ( var i = 0 ; i < this . options . numSlices ; i ++ ) {
_5c7 . appendChild ( this . _createCornerSlice ( _5c5 , _5c6 , i , "top" ) ) ;
}
el . style . paddingTop = 0 ;
el . insertBefore ( _5c7 , el . firstChild ) ;
} , _roundBottomCorners : function ( el , _5ca , _5cb ) {
var _5cc = this . _createCorner ( _5cb ) ;
for ( var i = ( this . options . numSlices - 1 ) ; i >= 0 ; i -- ) {
_5cc . appendChild ( this . _createCornerSlice ( _5ca , _5cb , i , "bottom" ) ) ;
}
el . style . paddingBottom = 0 ;
el . appendChild ( _5cc ) ;
} , _createCorner : function ( _5ce ) {
var dom = MochiKit . DOM ;
return dom . DIV ( { style : { backgroundColor : _5ce . toString ( ) } } ) ;
} , _createCornerSlice : function ( _5d0 , _5d1 , n , _5d3 ) {
var _5d4 = MochiKit . DOM . SPAN ( ) ;
var _5d5 = _5d4 . style ;
_5d5 . backgroundColor = _5d0 . toString ( ) ;
_5d5 . display = "block" ;
_5d5 . height = "1px" ;
_5d5 . overflow = "hidden" ;
_5d5 . fontSize = "1px" ;
var _5d6 = this . _borderColor ( _5d0 , _5d1 ) ;
if ( this . options . border && n === 0 ) {
_5d5 . borderTopStyle = "solid" ;
_5d5 . borderTopWidth = "1px" ;
_5d5 . borderLeftWidth = "0px" ;
_5d5 . borderRightWidth = "0px" ;
_5d5 . borderBottomWidth = "0px" ;
_5d5 . height = "0px" ;
_5d5 . borderColor = _5d6 . toString ( ) ;
} else {
if ( _5d6 ) {
_5d5 . borderColor = _5d6 . toString ( ) ;
_5d5 . borderStyle = "solid" ;
_5d5 . borderWidth = "0px 1px" ;
}
}
if ( ! this . options . compact && ( n == ( this . options . numSlices - 1 ) ) ) {
_5d5 . height = "2px" ;
}
this . _setMargin ( _5d4 , n , _5d3 ) ;
this . _setBorder ( _5d4 , n , _5d3 ) ;
return _5d4 ;
} , _setOptions : function ( _5d7 ) {
this . options = { corners : "all" , color : "fromElement" , bgColor : "fromParent" , blend : true , border : false , compact : false , _ _unstable _ _wrapElement : false } ;
MochiKit . Base . update ( this . options , _5d7 ) ;
this . options . numSlices = ( this . options . compact ? 2 : 4 ) ;
} , _whichSideTop : function ( ) {
var _5d8 = this . options . corners ;
if ( this . _hasString ( _5d8 , "all" , "top" ) ) {
return "" ;
}
var _5d9 = ( _5d8 . indexOf ( "tl" ) != - 1 ) ;
var _5da = ( _5d8 . indexOf ( "tr" ) != - 1 ) ;
if ( _5d9 && _5da ) {
return "" ;
}
if ( _5d9 ) {
return "left" ;
}
if ( _5da ) {
return "right" ;
}
return "" ;
} , _whichSideBottom : function ( ) {
var _5db = this . options . corners ;
if ( this . _hasString ( _5db , "all" , "bottom" ) ) {
return "" ;
}
var _5dc = ( _5db . indexOf ( "bl" ) != - 1 ) ;
var _5dd = ( _5db . indexOf ( "br" ) != - 1 ) ;
if ( _5dc && _5dd ) {
return "" ;
}
if ( _5dc ) {
return "left" ;
}
if ( _5dd ) {
return "right" ;
}
return "" ;
} , _borderColor : function ( _5de , _5df ) {
if ( _5de == "transparent" ) {
return _5df ;
} else {
if ( this . options . border ) {
return this . options . border ;
} else {
if ( this . options . blend ) {
return _5df . blendedColor ( _5de ) ;
}
}
}
return "" ;
} , _setMargin : function ( el , n , _5e2 ) {
var _5e3 = this . _marginSize ( n ) + "px" ;
var _5e4 = ( _5e2 == "top" ? this . _whichSideTop ( ) : this . _whichSideBottom ( ) ) ;
var _5e5 = el . style ;
if ( _5e4 == "left" ) {
_5e5 . marginLeft = _5e3 ;
_5e5 . marginRight = "0px" ;
} else {
if ( _5e4 == "right" ) {
_5e5 . marginRight = _5e3 ;
_5e5 . marginLeft = "0px" ;
} else {
_5e5 . marginLeft = _5e3 ;
_5e5 . marginRight = _5e3 ;
}
}
} , _setBorder : function ( el , n , _5e8 ) {
var _5e9 = this . _borderSize ( n ) + "px" ;
var _5ea = ( _5e8 == "top" ? this . _whichSideTop ( ) : this . _whichSideBottom ( ) ) ;
var _5eb = el . style ;
if ( _5ea == "left" ) {
_5eb . borderLeftWidth = _5e9 ;
_5eb . borderRightWidth = "0px" ;
} else {
if ( _5ea == "right" ) {
_5eb . borderRightWidth = _5e9 ;
_5eb . borderLeftWidth = "0px" ;
} else {
_5eb . borderLeftWidth = _5e9 ;
_5eb . borderRightWidth = _5e9 ;
}
}
} , _marginSize : function ( n ) {
if ( this . isTransparent ) {
return 0 ;
}
var o = this . options ;
if ( o . compact && o . blend ) {
var _5ee = [ 1 , 0 ] ;
return _5ee [ n ] ;
} else {
if ( o . compact ) {
var _5ef = [ 2 , 1 ] ;
return _5ef [ n ] ;
} else {
if ( o . blend ) {
var _5f0 = [ 3 , 2 , 1 , 0 ] ;
return _5f0 [ n ] ;
} else {
var _5f1 = [ 5 , 3 , 2 , 1 ] ;
return _5f1 [ n ] ;
}
}
}
} , _borderSize : function ( n ) {
var o = this . options ;
var _5f4 ;
if ( o . compact && ( o . blend || this . isTransparent ) ) {
return 1 ;
} else {
if ( o . compact ) {
_5f4 = [ 1 , 0 ] ;
} else {
if ( o . blend ) {
_5f4 = [ 2 , 1 , 1 , 1 ] ;
} else {
if ( o . border ) {
_5f4 = [ 0 , 2 , 0 , 0 ] ;
} else {
if ( this . isTransparent ) {
_5f4 = [ 5 , 3 , 2 , 1 ] ;
} else {
return 0 ;
}
}
}
}
}
return _5f4 [ n ] ;
} , _hasString : function ( str ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
if ( str . indexOf ( arguments [ i ] ) != - 1 ) {
return true ;
}
}
return false ;
} , _isTopRounded : function ( ) {
return this . _hasString ( this . options . corners , "all" , "top" , "tl" , "tr" ) ;
} , _isBottomRounded : function ( ) {
return this . _hasString ( this . options . corners , "all" , "bottom" , "bl" , "br" ) ;
} , _hasSingleTextChild : function ( el ) {
return ( el . childNodes . length == 1 && el . childNodes [ 0 ] . nodeType == 3 ) ;
} } ;
MochiKit . Visual . roundElement = function ( e , _5f9 ) {
new MochiKit . Visual . _RoundCorners ( e , _5f9 ) ;
} ;
MochiKit . Visual . roundClass = function ( _5fa , _5fb , _5fc ) {
var _5fd = MochiKit . DOM . getElementsByTagAndClassName ( _5fa , _5fb ) ;
for ( var i = 0 ; i < _5fd . length ; i ++ ) {
MochiKit . Visual . roundElement ( _5fd [ i ] , _5fc ) ;
}
} ;
MochiKit . Visual . tagifyText = function ( _5ff , _600 ) {
_600 = _600 || "position:relative" ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
_600 += ";zoom:1" ;
}
_5ff = MochiKit . DOM . getElement ( _5ff ) ;
var ma = MochiKit . Base . map ;
ma ( function ( _602 ) {
if ( _602 . nodeType == 3 ) {
ma ( function ( _603 ) {
_5ff . insertBefore ( MochiKit . DOM . SPAN ( { style : _600 } , _603 == " " ? String . fromCharCode ( 160 ) : _603 ) , _602 ) ;
} , _602 . nodeValue . split ( "" ) ) ;
MochiKit . DOM . removeElement ( _602 ) ;
}
} , _5ff . childNodes ) ;
} ;
MochiKit . Visual . forceRerendering = function ( _604 ) {
try {
_604 = MochiKit . DOM . getElement ( _604 ) ;
var n = document . createTextNode ( " " ) ;
_604 . appendChild ( n ) ;
_604 . removeChild ( n ) ;
}
catch ( e ) {
}
} ;
MochiKit . Visual . multiple = function ( _606 , _607 , _608 ) {
_608 = MochiKit . Base . update ( { speed : 0.1 , delay : 0 } , _608 || { } ) ;
var _609 = _608 . delay ;
var _60a = 0 ;
MochiKit . Base . map ( function ( _60b ) {
_608 . delay = _60a * _608 . speed + _609 ;
new _607 ( _60b , _608 ) ;
_60a += 1 ;
} , _606 ) ;
} ;
MochiKit . Visual . PAIRS = { "slide" : [ "slideDown" , "slideUp" ] , "blind" : [ "blindDown" , "blindUp" ] , "appear" : [ "appear" , "fade" ] , "size" : [ "grow" , "shrink" ] } ;
MochiKit . Visual . toggle = function ( _60c , _60d , _60e ) {
_60c = MochiKit . DOM . getElement ( _60c ) ;
_60d = ( _60d || "appear" ) . toLowerCase ( ) ;
_60e = MochiKit . Base . update ( { queue : { position : "end" , scope : ( _60c . id || "global" ) , limit : 1 } } , _60e || { } ) ;
var v = MochiKit . Visual ;
v [ MochiKit . Style . getStyle ( _60c , "display" ) != "none" ? v . PAIRS [ _60d ] [ 1 ] : v . PAIRS [ _60d ] [ 0 ] ] ( _60c , _60e ) ;
} ;
MochiKit . Visual . Transitions = { } ;
MochiKit . Visual . Transitions . linear = function ( pos ) {
return pos ;
} ;
MochiKit . Visual . Transitions . sinoidal = function ( pos ) {
return ( - Math . cos ( pos * Math . PI ) / 2 ) + 0.5 ;
} ;
MochiKit . Visual . Transitions . reverse = function ( pos ) {
return 1 - pos ;
} ;
MochiKit . Visual . Transitions . flicker = function ( pos ) {
return ( ( - Math . cos ( pos * Math . PI ) / 4 ) + 0.75 ) + Math . random ( ) / 4 ;
} ;
MochiKit . Visual . Transitions . wobble = function ( pos ) {
return ( - Math . cos ( pos * Math . PI * ( 9 * pos ) ) / 2 ) + 0.5 ;
} ;
MochiKit . Visual . Transitions . pulse = function ( pos , _616 ) {
if ( ! _616 ) {
return ( Math . floor ( pos * 10 ) % 2 === 0 ? ( pos * 10 - Math . floor ( pos * 10 ) ) : 1 - ( pos * 10 - Math . floor ( pos * 10 ) ) ) ;
}
return ( Math . round ( ( pos % ( 1 / _616 ) ) * _616 ) == 0 ? ( ( pos * _616 * 2 ) - Math . floor ( pos * _616 * 2 ) ) : 1 - ( ( pos * _616 * 2 ) - Math . floor ( pos * _616 * 2 ) ) ) ;
} ;
MochiKit . Visual . Transitions . none = function ( pos ) {
return 0 ;
} ;
MochiKit . Visual . Transitions . full = function ( pos ) {
return 1 ;
} ;
MochiKit . Visual . ScopedQueue = function ( ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( ) ;
}
this . _ _init _ _ ( ) ;
} ;
MochiKit . Base . update ( MochiKit . Visual . ScopedQueue . prototype , { _ _init _ _ : function ( ) {
this . effects = [ ] ;
this . interval = null ;
} , add : function ( _61a ) {
var _61b = new Date ( ) . getTime ( ) ;
var _61c = ( typeof ( _61a . options . queue ) == "string" ) ? _61a . options . queue : _61a . options . queue . position ;
var ma = MochiKit . Base . map ;
switch ( _61c ) {
case "front" :
ma ( function ( e ) {
if ( e . state == "idle" ) {
e . startOn += _61a . finishOn ;
e . finishOn += _61a . finishOn ;
}
} , this . effects ) ;
break ;
case "end" :
var _61f ;
ma ( function ( e ) {
var i = e . finishOn ;
if ( i >= ( _61f || i ) ) {
_61f = i ;
}
} , this . effects ) ;
_61b = _61f || _61b ;
break ;
case "break" :
ma ( function ( e ) {
e . finalize ( ) ;
} , this . effects ) ;
break ;
}
_61a . startOn += _61b ;
_61a . finishOn += _61b ;
if ( ! _61a . options . queue . limit || this . effects . length < _61a . options . queue . limit ) {
this . effects . push ( _61a ) ;
}
if ( ! this . interval ) {
this . interval = this . startLoop ( MochiKit . Base . bind ( this . loop , this ) , 40 ) ;
}
} , startLoop : function ( func , _624 ) {
return setInterval ( func , _624 ) ;
} , remove : function ( _625 ) {
this . effects = MochiKit . Base . filter ( function ( e ) {
return e != _625 ;
} , this . effects ) ;
if ( ! this . effects . length ) {
this . stopLoop ( this . interval ) ;
this . interval = null ;
}
} , stopLoop : function ( _627 ) {
clearInterval ( _627 ) ;
} , loop : function ( ) {
var _628 = new Date ( ) . getTime ( ) ;
MochiKit . Base . map ( function ( _629 ) {
_629 . loop ( _628 ) ;
} , this . effects ) ;
} } ) ;
MochiKit . Visual . Queues = { instances : { } , get : function ( _62a ) {
if ( typeof ( _62a ) != "string" ) {
return _62a ;
}
if ( ! this . instances [ _62a ] ) {
this . instances [ _62a ] = new MochiKit . Visual . ScopedQueue ( ) ;
}
return this . instances [ _62a ] ;
} } ;
MochiKit . Visual . Queue = MochiKit . Visual . Queues . get ( "global" ) ;
MochiKit . Visual . DefaultOptions = { transition : MochiKit . Visual . Transitions . sinoidal , duration : 1 , fps : 25 , sync : false , from : 0 , to : 1 , delay : 0 , queue : "parallel" } ;
MochiKit . Visual . Base = function ( ) {
} ;
MochiKit . Visual . Base . prototype = { _ _class _ _ : MochiKit . Visual . Base , start : function ( _62b ) {
var v = MochiKit . Visual ;
this . options = MochiKit . Base . setdefault ( _62b || { } , v . DefaultOptions ) ;
this . currentFrame = 0 ;
this . state = "idle" ;
this . startOn = this . options . delay * 1000 ;
this . finishOn = this . startOn + ( this . options . duration * 1000 ) ;
this . event ( "beforeStart" ) ;
if ( ! this . options . sync ) {
v . Queues . get ( typeof ( this . options . queue ) == "string" ? "global" : this . options . queue . scope ) . add ( this ) ;
}
} , loop : function ( _62d ) {
if ( _62d >= this . startOn ) {
if ( _62d >= this . finishOn ) {
return this . finalize ( ) ;
}
var pos = ( _62d - this . startOn ) / ( this . finishOn - this . startOn ) ;
var _62f = Math . round ( pos * this . options . fps * this . options . duration ) ;
if ( _62f > this . currentFrame ) {
this . render ( pos ) ;
this . currentFrame = _62f ;
}
}
} , render : function ( pos ) {
if ( this . state == "idle" ) {
this . state = "running" ;
this . event ( "beforeSetup" ) ;
this . setup ( ) ;
this . event ( "afterSetup" ) ;
}
if ( this . state == "running" ) {
if ( this . options . transition ) {
pos = this . options . transition ( pos ) ;
}
pos *= ( this . options . to - this . options . from ) ;
pos += this . options . from ;
this . event ( "beforeUpdate" ) ;
this . update ( pos ) ;
this . event ( "afterUpdate" ) ;
}
} , cancel : function ( ) {
if ( ! this . options . sync ) {
MochiKit . Visual . Queues . get ( typeof ( this . options . queue ) == "string" ? "global" : this . options . queue . scope ) . remove ( this ) ;
}
this . state = "finished" ;
} , finalize : function ( ) {
this . render ( 1 ) ;
this . cancel ( ) ;
this . event ( "beforeFinish" ) ;
this . finish ( ) ;
this . event ( "afterFinish" ) ;
} , setup : function ( ) {
} , finish : function ( ) {
} , update : function ( _631 ) {
} , event : function ( _632 ) {
if ( this . options [ _632 + "Internal" ] ) {
this . options [ _632 + "Internal" ] ( this ) ;
}
if ( this . options [ _632 ] ) {
this . options [ _632 ] ( this ) ;
}
} , repr : function ( ) {
return "[" + this . _ _class _ _ . NAME + ", options:" + MochiKit . Base . repr ( this . options ) + "]" ;
} } ;
MochiKit . Visual . Parallel = function ( _633 , _634 ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _633 , _634 ) ;
}
this . _ _init _ _ ( _633 , _634 ) ;
} ;
MochiKit . Visual . Parallel . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Parallel . prototype , { _ _class _ _ : MochiKit . Visual . Parallel , _ _init _ _ : function ( _636 , _637 ) {
this . effects = _636 || [ ] ;
this . start ( _637 ) ;
} , update : function ( _638 ) {
MochiKit . Base . map ( function ( _639 ) {
_639 . render ( _638 ) ;
} , this . effects ) ;
} , finish : function ( ) {
MochiKit . Base . map ( function ( _63a ) {
_63a . finalize ( ) ;
} , this . effects ) ;
} } ) ;
MochiKit . Visual . Opacity = function ( _63b , _63c ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _63b , _63c ) ;
}
this . _ _init _ _ ( _63b , _63c ) ;
} ;
MochiKit . Visual . Opacity . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Opacity . prototype , { _ _class _ _ : MochiKit . Visual . Opacity , _ _init _ _ : function ( _63e , _63f ) {
var b = MochiKit . Base ;
var s = MochiKit . Style ;
this . element = MochiKit . DOM . getElement ( _63e ) ;
if ( this . element . currentStyle && ( ! this . element . currentStyle . hasLayout ) ) {
s . setStyle ( this . element , { zoom : 1 } ) ;
}
_63f = b . update ( { from : s . getStyle ( this . element , "opacity" ) || 0 , to : 1 } , _63f || { } ) ;
this . start ( _63f ) ;
} , update : function ( _642 ) {
MochiKit . Style . setStyle ( this . element , { "opacity" : _642 } ) ;
} } ) ;
MochiKit . Visual . Move = function ( _643 , _644 ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _643 , _644 ) ;
}
this . _ _init _ _ ( _643 , _644 ) ;
} ;
MochiKit . Visual . Move . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Move . prototype , { _ _class _ _ : MochiKit . Visual . Move , _ _init _ _ : function ( _646 , _647 ) {
this . element = MochiKit . DOM . getElement ( _646 ) ;
_647 = MochiKit . Base . update ( { x : 0 , y : 0 , mode : "relative" } , _647 || { } ) ;
this . start ( _647 ) ;
} , setup : function ( ) {
MochiKit . DOM . makePositioned ( this . element ) ;
var s = this . element . style ;
var _649 = s . visibility ;
var _64a = s . display ;
if ( _64a == "none" ) {
s . visibility = "hidden" ;
s . display = "" ;
}
this . originalLeft = parseFloat ( MochiKit . Style . getStyle ( this . element , "left" ) || "0" ) ;
this . originalTop = parseFloat ( MochiKit . Style . getStyle ( this . element , "top" ) || "0" ) ;
if ( this . options . mode == "absolute" ) {
this . options . x -= this . originalLeft ;
this . options . y -= this . originalTop ;
}
if ( _64a == "none" ) {
s . visibility = _649 ;
s . display = _64a ;
}
} , update : function ( _64b ) {
MochiKit . Style . setStyle ( this . element , { left : Math . round ( this . options . x * _64b + this . originalLeft ) + "px" , top : Math . round ( this . options . y * _64b + this . originalTop ) + "px" } ) ;
} } ) ;
MochiKit . Visual . Scale = function ( _64c , _64d , _64e ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _64c , _64d , _64e ) ;
}
this . _ _init _ _ ( _64c , _64d , _64e ) ;
} ;
MochiKit . Visual . Scale . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Scale . prototype , { _ _class _ _ : MochiKit . Visual . Scale , _ _init _ _ : function ( _650 , _651 , _652 ) {
this . element = MochiKit . DOM . getElement ( _650 ) ;
_652 = MochiKit . Base . update ( { scaleX : true , scaleY : true , scaleContent : true , scaleFromCenter : false , scaleMode : "box" , scaleFrom : 100 , scaleTo : _651 } , _652 || { } ) ;
this . start ( _652 ) ;
} , setup : function ( ) {
this . restoreAfterFinish = this . options . restoreAfterFinish || false ;
this . elementPositioning = MochiKit . Style . getStyle ( this . element , "position" ) ;
var ma = MochiKit . Base . map ;
var b = MochiKit . Base . bind ;
this . originalStyle = { } ;
ma ( b ( function ( k ) {
this . originalStyle [ k ] = this . element . style [ k ] ;
} , this ) , [ "top" , "left" , "width" , "height" , "fontSize" ] ) ;
this . originalTop = this . element . offsetTop ;
this . originalLeft = this . element . offsetLeft ;
var _656 = MochiKit . Style . getStyle ( this . element , "font-size" ) || "100%" ;
ma ( b ( function ( _657 ) {
if ( _656 . indexOf ( _657 ) > 0 ) {
this . fontSize = parseFloat ( _656 ) ;
this . fontSizeType = _657 ;
}
} , this ) , [ "em" , "px" , "%" ] ) ;
this . factor = ( this . options . scaleTo - this . options . scaleFrom ) / 100 ;
if ( /^content/ . test ( this . options . scaleMode ) ) {
this . dims = [ this . element . scrollHeight , this . element . scrollWidth ] ;
} else {
if ( this . options . scaleMode == "box" ) {
this . dims = [ this . element . offsetHeight , this . element . offsetWidth ] ;
} else {
this . dims = [ this . options . scaleMode . originalHeight , this . options . scaleMode . originalWidth ] ;
}
}
} , update : function ( _658 ) {
var _659 = ( this . options . scaleFrom / 100 ) + ( this . factor * _658 ) ;
if ( this . options . scaleContent && this . fontSize ) {
MochiKit . Style . setStyle ( this . element , { fontSize : this . fontSize * _659 + this . fontSizeType } ) ;
}
this . setDimensions ( this . dims [ 0 ] * _659 , this . dims [ 1 ] * _659 ) ;
} , finish : function ( ) {
if ( this . restoreAfterFinish ) {
MochiKit . Style . setStyle ( this . element , this . originalStyle ) ;
}
} , setDimensions : function ( _65a , _65b ) {
var d = { } ;
var r = Math . round ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
r = Math . ceil ;
}
if ( this . options . scaleX ) {
d . width = r ( _65b ) + "px" ;
}
if ( this . options . scaleY ) {
d . height = r ( _65a ) + "px" ;
}
if ( this . options . scaleFromCenter ) {
var topd = ( _65a - this . dims [ 0 ] ) / 2 ;
var _65f = ( _65b - this . dims [ 1 ] ) / 2 ;
if ( this . elementPositioning == "absolute" ) {
if ( this . options . scaleY ) {
d . top = this . originalTop - topd + "px" ;
}
if ( this . options . scaleX ) {
d . left = this . originalLeft - _65f + "px" ;
}
} else {
if ( this . options . scaleY ) {
d . top = - topd + "px" ;
}
if ( this . options . scaleX ) {
d . left = - _65f + "px" ;
}
}
}
MochiKit . Style . setStyle ( this . element , d ) ;
} } ) ;
MochiKit . Visual . Highlight = function ( _660 , _661 ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _660 , _661 ) ;
}
this . _ _init _ _ ( _660 , _661 ) ;
} ;
MochiKit . Visual . Highlight . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Highlight . prototype , { _ _class _ _ : MochiKit . Visual . Highlight , _ _init _ _ : function ( _663 , _664 ) {
this . element = MochiKit . DOM . getElement ( _663 ) ;
_664 = MochiKit . Base . update ( { startcolor : "#ffff99" } , _664 || { } ) ;
this . start ( _664 ) ;
} , setup : function ( ) {
var b = MochiKit . Base ;
var s = MochiKit . Style ;
if ( s . getStyle ( this . element , "display" ) == "none" ) {
this . cancel ( ) ;
return ;
}
this . oldStyle = { backgroundImage : s . getStyle ( this . element , "background-image" ) } ;
s . setStyle ( this . element , { backgroundImage : "none" } ) ;
if ( ! this . options . endcolor ) {
this . options . endcolor = MochiKit . Color . Color . fromBackground ( this . element ) . toHexString ( ) ;
}
if ( b . isUndefinedOrNull ( this . options . restorecolor ) ) {
this . options . restorecolor = s . getStyle ( this . element , "background-color" ) ;
}
this . _base = b . map ( b . bind ( function ( i ) {
return parseInt ( this . options . startcolor . slice ( i * 2 + 1 , i * 2 + 3 ) , 16 ) ;
} , this ) , [ 0 , 1 , 2 ] ) ;
this . _delta = b . map ( b . bind ( function ( i ) {
return parseInt ( this . options . endcolor . slice ( i * 2 + 1 , i * 2 + 3 ) , 16 ) - this . _base [ i ] ;
} , this ) , [ 0 , 1 , 2 ] ) ;
} , update : function ( _669 ) {
var m = "#" ;
MochiKit . Base . map ( MochiKit . Base . bind ( function ( i ) {
m += MochiKit . Color . toColorPart ( Math . round ( this . _base [ i ] + this . _delta [ i ] * _669 ) ) ;
} , this ) , [ 0 , 1 , 2 ] ) ;
MochiKit . Style . setStyle ( this . element , { backgroundColor : m } ) ;
} , finish : function ( ) {
MochiKit . Style . setStyle ( this . element , MochiKit . Base . update ( this . oldStyle , { backgroundColor : this . options . restorecolor } ) ) ;
} } ) ;
MochiKit . Visual . ScrollTo = function ( _66c , _66d ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _66c , _66d ) ;
}
this . _ _init _ _ ( _66c , _66d ) ;
} ;
MochiKit . Visual . ScrollTo . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . ScrollTo . prototype , { _ _class _ _ : MochiKit . Visual . ScrollTo , _ _init _ _ : function ( _66f , _670 ) {
this . element = MochiKit . DOM . getElement ( _66f ) ;
this . start ( _670 || { } ) ;
} , setup : function ( ) {
var p = MochiKit . Position ;
p . prepare ( ) ;
var _672 = p . cumulativeOffset ( this . element ) ;
if ( this . options . offset ) {
_672 . y += this . options . offset ;
}
this . scrollStart = p . windowOffset . y ;
2007-10-31 22:48:15 +00:00
this . delta = _672 . y - this . scrollStart ;
2007-07-16 20:22:38 +00:00
} , update : function ( _674 ) {
var p = MochiKit . Position ;
p . prepare ( ) ;
window . scrollTo ( p . windowOffset . x , this . scrollStart + ( _674 * this . delta ) ) ;
} } ) ;
MochiKit . Visual . CSS _LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/ ;
MochiKit . Visual . Morph = function ( _676 , _677 ) {
var cls = arguments . callee ;
if ( ! ( this instanceof cls ) ) {
return new cls ( _676 , _677 ) ;
}
this . _ _init _ _ ( _676 , _677 ) ;
} ;
MochiKit . Visual . Morph . prototype = new MochiKit . Visual . Base ( ) ;
MochiKit . Base . update ( MochiKit . Visual . Morph . prototype , { _ _class _ _ : MochiKit . Visual . Morph , _ _init _ _ : function ( _679 , _67a ) {
this . element = MochiKit . DOM . getElement ( _679 ) ;
this . start ( _67a || { } ) ;
} , setup : function ( ) {
var b = MochiKit . Base ;
var _67c = this . options . style ;
this . styleStart = { } ;
this . styleEnd = { } ;
this . units = { } ;
var _67d , unit ;
for ( var s in _67c ) {
_67d = _67c [ s ] ;
s = b . camelize ( s ) ;
if ( MochiKit . Visual . CSS _LENGTH . test ( _67d ) ) {
var _680 = _67d . match ( /^([\+\-]?[0-9\.]+)(.*)$/ ) ;
_67d = parseFloat ( _680 [ 1 ] ) ;
unit = ( _680 . length == 3 ) ? _680 [ 2 ] : null ;
this . styleEnd [ s ] = _67d ;
this . units [ s ] = unit ;
_67d = MochiKit . Style . getStyle ( this . element , s ) ;
_680 = _67d . match ( /^([\+\-]?[0-9\.]+)(.*)$/ ) ;
_67d = parseFloat ( _680 [ 1 ] ) ;
this . styleStart [ s ] = _67d ;
} else {
var c = MochiKit . Color . Color ;
_67d = c . fromString ( _67d ) ;
if ( _67d ) {
this . units [ s ] = "color" ;
this . styleEnd [ s ] = _67d . toHexString ( ) ;
_67d = MochiKit . Style . getStyle ( this . element , s ) ;
this . styleStart [ s ] = c . fromString ( _67d ) . toHexString ( ) ;
this . styleStart [ s ] = b . map ( b . bind ( function ( i ) {
return parseInt ( this . styleStart [ s ] . slice ( i * 2 + 1 , i * 2 + 3 ) , 16 ) ;
} , this ) , [ 0 , 1 , 2 ] ) ;
this . styleEnd [ s ] = b . map ( b . bind ( function ( i ) {
return parseInt ( this . styleEnd [ s ] . slice ( i * 2 + 1 , i * 2 + 3 ) , 16 ) ;
} , this ) , [ 0 , 1 , 2 ] ) ;
}
}
}
} , update : function ( _684 ) {
var _685 ;
for ( var s in this . styleStart ) {
if ( this . units [ s ] == "color" ) {
var m = "#" ;
var _688 = this . styleStart [ s ] ;
var end = this . styleEnd [ s ] ;
MochiKit . Base . map ( MochiKit . Base . bind ( function ( i ) {
m += MochiKit . Color . toColorPart ( Math . round ( _688 [ i ] + ( end [ i ] - _688 [ i ] ) * _684 ) ) ;
} , this ) , [ 0 , 1 , 2 ] ) ;
this . element . style [ s ] = m ;
} else {
_685 = this . styleStart [ s ] + Math . round ( ( this . styleEnd [ s ] - this . styleStart [ s ] ) * _684 * 1000 ) / 1000 + this . units [ s ] ;
this . element . style [ s ] = _685 ;
}
}
} } ) ;
MochiKit . Visual . fade = function ( _68b , _68c ) {
var s = MochiKit . Style ;
var _68e = s . getStyle ( _68b , "opacity" ) ;
_68c = MochiKit . Base . update ( { from : s . getStyle ( _68b , "opacity" ) || 1 , to : 0 , afterFinishInternal : function ( _68f ) {
if ( _68f . options . to !== 0 ) {
return ;
}
s . hideElement ( _68f . element ) ;
s . setStyle ( _68f . element , { "opacity" : _68e } ) ;
} } , _68c || { } ) ;
return new MochiKit . Visual . Opacity ( _68b , _68c ) ;
} ;
MochiKit . Visual . appear = function ( _690 , _691 ) {
var s = MochiKit . Style ;
var v = MochiKit . Visual ;
_691 = MochiKit . Base . update ( { from : ( s . getStyle ( _690 , "display" ) == "none" ? 0 : s . getStyle ( _690 , "opacity" ) || 0 ) , to : 1 , afterFinishInternal : function ( _694 ) {
v . forceRerendering ( _694 . element ) ;
} , beforeSetupInternal : function ( _695 ) {
s . setStyle ( _695 . element , { "opacity" : _695 . options . from } ) ;
s . showElement ( _695 . element ) ;
} } , _691 || { } ) ;
return new v . Opacity ( _690 , _691 ) ;
} ;
MochiKit . Visual . puff = function ( _696 , _697 ) {
var s = MochiKit . Style ;
var v = MochiKit . Visual ;
_696 = MochiKit . DOM . getElement ( _696 ) ;
var _69a = { position : s . getStyle ( _696 , "position" ) , top : _696 . style . top , left : _696 . style . left , width : _696 . style . width , height : _696 . style . height , opacity : s . getStyle ( _696 , "opacity" ) } ;
_697 = MochiKit . Base . update ( { beforeSetupInternal : function ( _69b ) {
MochiKit . Position . absolutize ( _69b . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _69c ) {
s . hideElement ( _69c . effects [ 0 ] . element ) ;
s . setStyle ( _69c . effects [ 0 ] . element , _69a ) ;
} , scaleContent : true , scaleFromCenter : true } , _697 || { } ) ;
return new v . Parallel ( [ new v . Scale ( _696 , 200 , { sync : true , scaleFromCenter : _697 . scaleFromCenter , scaleContent : _697 . scaleContent , restoreAfterFinish : true } ) , new v . Opacity ( _696 , { sync : true , to : 0 } ) ] , _697 ) ;
} ;
MochiKit . Visual . blindUp = function ( _69d , _69e ) {
var d = MochiKit . DOM ;
_69d = d . getElement ( _69d ) ;
var _6a0 = d . makeClipping ( _69d ) ;
_69e = MochiKit . Base . update ( { scaleContent : false , scaleX : false , restoreAfterFinish : true , afterFinishInternal : function ( _6a1 ) {
MochiKit . Style . hideElement ( _6a1 . element ) ;
d . undoClipping ( _6a1 . element , _6a0 ) ;
} } , _69e || { } ) ;
return new MochiKit . Visual . Scale ( _69d , 0 , _69e ) ;
} ;
MochiKit . Visual . blindDown = function ( _6a2 , _6a3 ) {
var d = MochiKit . DOM ;
var s = MochiKit . Style ;
_6a2 = d . getElement ( _6a2 ) ;
var _6a6 = s . getElementDimensions ( _6a2 ) ;
var _6a7 ;
_6a3 = MochiKit . Base . update ( { scaleContent : false , scaleX : false , scaleFrom : 0 , scaleMode : { originalHeight : _6a6 . h , originalWidth : _6a6 . w } , restoreAfterFinish : true , afterSetupInternal : function ( _6a8 ) {
_6a7 = d . makeClipping ( _6a8 . element ) ;
s . setStyle ( _6a8 . element , { height : "0px" } ) ;
s . showElement ( _6a8 . element ) ;
} , afterFinishInternal : function ( _6a9 ) {
d . undoClipping ( _6a9 . element , _6a7 ) ;
} } , _6a3 || { } ) ;
return new MochiKit . Visual . Scale ( _6a2 , 100 , _6a3 ) ;
} ;
MochiKit . Visual . switchOff = function ( _6aa , _6ab ) {
var d = MochiKit . DOM ;
_6aa = d . getElement ( _6aa ) ;
var _6ad = MochiKit . Style . getStyle ( _6aa , "opacity" ) ;
var _6ae ;
_6ab = MochiKit . Base . update ( { duration : 0.3 , scaleFromCenter : true , scaleX : false , scaleContent : false , restoreAfterFinish : true , beforeSetupInternal : function ( _6af ) {
d . makePositioned ( _6af . element ) ;
_6ae = d . makeClipping ( _6af . element ) ;
} , afterFinishInternal : function ( _6b0 ) {
MochiKit . Style . hideElement ( _6b0 . element ) ;
d . undoClipping ( _6b0 . element , _6ae ) ;
d . undoPositioned ( _6b0 . element ) ;
MochiKit . Style . setStyle ( _6b0 . element , { "opacity" : _6ad } ) ;
} } , _6ab || { } ) ;
var v = MochiKit . Visual ;
return new v . appear ( _6aa , { duration : 0.4 , from : 0 , transition : v . Transitions . flicker , afterFinishInternal : function ( _6b2 ) {
new v . Scale ( _6b2 . element , 1 , _6ab ) ;
} } ) ;
} ;
MochiKit . Visual . dropOut = function ( _6b3 , _6b4 ) {
var d = MochiKit . DOM ;
var s = MochiKit . Style ;
_6b3 = d . getElement ( _6b3 ) ;
var _6b7 = { top : s . getStyle ( _6b3 , "top" ) , left : s . getStyle ( _6b3 , "left" ) , opacity : s . getStyle ( _6b3 , "opacity" ) } ;
_6b4 = MochiKit . Base . update ( { duration : 0.5 , distance : 100 , beforeSetupInternal : function ( _6b8 ) {
d . makePositioned ( _6b8 . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _6b9 ) {
s . hideElement ( _6b9 . effects [ 0 ] . element ) ;
d . undoPositioned ( _6b9 . effects [ 0 ] . element ) ;
s . setStyle ( _6b9 . effects [ 0 ] . element , _6b7 ) ;
} } , _6b4 || { } ) ;
var v = MochiKit . Visual ;
return new v . Parallel ( [ new v . Move ( _6b3 , { x : 0 , y : _6b4 . distance , sync : true } ) , new v . Opacity ( _6b3 , { sync : true , to : 0 } ) ] , _6b4 ) ;
} ;
MochiKit . Visual . shake = function ( _6bb , _6bc ) {
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
_6bb = d . getElement ( _6bb ) ;
_6bc = MochiKit . Base . update ( { x : - 20 , y : 0 , duration : 0.05 , afterFinishInternal : function ( _6c0 ) {
d . undoPositioned ( _6c0 . element ) ;
s . setStyle ( _6c0 . element , _6c1 ) ;
} } , _6bc || { } ) ;
var _6c1 = { top : s . getStyle ( _6bb , "top" ) , left : s . getStyle ( _6bb , "left" ) } ;
return new v . Move ( _6bb , { x : 20 , y : 0 , duration : 0.05 , afterFinishInternal : function ( _6c2 ) {
new v . Move ( _6c2 . element , { x : - 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _6c3 ) {
new v . Move ( _6c3 . element , { x : 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _6c4 ) {
new v . Move ( _6c4 . element , { x : - 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _6c5 ) {
new v . Move ( _6c5 . element , { x : 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _6c6 ) {
new v . Move ( _6c6 . element , _6bc ) ;
} } ) ;
} } ) ;
} } ) ;
} } ) ;
} } ) ;
} ;
MochiKit . Visual . slideDown = function ( _6c7 , _6c8 ) {
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
var s = MochiKit . Style ;
_6c7 = d . getElement ( _6c7 ) ;
if ( ! _6c7 . firstChild ) {
throw "MochiKit.Visual.slideDown must be used on a element with a child" ;
}
d . removeEmptyTextNodes ( _6c7 ) ;
var _6cc = s . getStyle ( _6c7 . firstChild , "bottom" ) || 0 ;
var _6cd = s . getElementDimensions ( _6c7 ) ;
var _6ce ;
_6c8 = b . update ( { scaleContent : false , scaleX : false , scaleFrom : 0 , scaleMode : { originalHeight : _6cd . h , originalWidth : _6cd . w } , restoreAfterFinish : true , afterSetupInternal : function ( _6cf ) {
d . makePositioned ( _6cf . element ) ;
d . makePositioned ( _6cf . element . firstChild ) ;
if ( /Opera/ . test ( navigator . userAgent ) ) {
s . setStyle ( _6cf . element , { top : "" } ) ;
}
_6ce = d . makeClipping ( _6cf . element ) ;
s . setStyle ( _6cf . element , { height : "0px" } ) ;
s . showElement ( _6cf . element ) ;
} , afterUpdateInternal : function ( _6d0 ) {
s . setStyle ( _6d0 . element . firstChild , { bottom : ( _6d0 . dims [ 0 ] - _6d0 . element . clientHeight ) + "px" } ) ;
} , afterFinishInternal : function ( _6d1 ) {
d . undoClipping ( _6d1 . element , _6ce ) ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
d . undoPositioned ( _6d1 . element ) ;
d . undoPositioned ( _6d1 . element . firstChild ) ;
} else {
d . undoPositioned ( _6d1 . element . firstChild ) ;
d . undoPositioned ( _6d1 . element ) ;
}
s . setStyle ( _6d1 . element . firstChild , { bottom : _6cc } ) ;
} } , _6c8 || { } ) ;
return new MochiKit . Visual . Scale ( _6c7 , 100 , _6c8 ) ;
} ;
MochiKit . Visual . slideUp = function ( _6d2 , _6d3 ) {
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
var s = MochiKit . Style ;
_6d2 = d . getElement ( _6d2 ) ;
if ( ! _6d2 . firstChild ) {
throw "MochiKit.Visual.slideUp must be used on a element with a child" ;
}
d . removeEmptyTextNodes ( _6d2 ) ;
var _6d7 = s . getStyle ( _6d2 . firstChild , "bottom" ) ;
var _6d8 ;
_6d3 = b . update ( { scaleContent : false , scaleX : false , scaleMode : "box" , scaleFrom : 100 , restoreAfterFinish : true , beforeStartInternal : function ( _6d9 ) {
d . makePositioned ( _6d9 . element ) ;
d . makePositioned ( _6d9 . element . firstChild ) ;
if ( /Opera/ . test ( navigator . userAgent ) ) {
s . setStyle ( _6d9 . element , { top : "" } ) ;
}
_6d8 = d . makeClipping ( _6d9 . element ) ;
s . showElement ( _6d9 . element ) ;
} , afterUpdateInternal : function ( _6da ) {
s . setStyle ( _6da . element . firstChild , { bottom : ( _6da . dims [ 0 ] - _6da . element . clientHeight ) + "px" } ) ;
} , afterFinishInternal : function ( _6db ) {
s . hideElement ( _6db . element ) ;
d . undoClipping ( _6db . element , _6d8 ) ;
d . undoPositioned ( _6db . element . firstChild ) ;
d . undoPositioned ( _6db . element ) ;
s . setStyle ( _6db . element . firstChild , { bottom : _6d7 } ) ;
} } , _6d3 || { } ) ;
return new MochiKit . Visual . Scale ( _6d2 , 0 , _6d3 ) ;
} ;
MochiKit . Visual . squish = function ( _6dc , _6dd ) {
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
var _6e0 ;
_6dd = b . update ( { restoreAfterFinish : true , beforeSetupInternal : function ( _6e1 ) {
_6e0 = d . makeClipping ( _6e1 . element ) ;
} , afterFinishInternal : function ( _6e2 ) {
MochiKit . Style . hideElement ( _6e2 . element ) ;
d . undoClipping ( _6e2 . element , _6e0 ) ;
} } , _6dd || { } ) ;
return new MochiKit . Visual . Scale ( _6dc , /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , _6dd ) ;
} ;
MochiKit . Visual . grow = function ( _6e3 , _6e4 ) {
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
_6e3 = d . getElement ( _6e3 ) ;
_6e4 = MochiKit . Base . update ( { direction : "center" , moveTransition : v . Transitions . sinoidal , scaleTransition : v . Transitions . sinoidal , opacityTransition : v . Transitions . full , scaleContent : true , scaleFromCenter : false } , _6e4 || { } ) ;
var _6e8 = { top : _6e3 . style . top , left : _6e3 . style . left , height : _6e3 . style . height , width : _6e3 . style . width , opacity : s . getStyle ( _6e3 , "opacity" ) } ;
var dims = s . getElementDimensions ( _6e3 ) ;
var _6ea , _6eb ;
var _6ec , _6ed ;
switch ( _6e4 . direction ) {
case "top-left" :
_6ea = _6eb = _6ec = _6ed = 0 ;
break ;
case "top-right" :
_6ea = dims . w ;
_6eb = _6ed = 0 ;
_6ec = - dims . w ;
break ;
case "bottom-left" :
_6ea = _6ec = 0 ;
_6eb = dims . h ;
_6ed = - dims . h ;
break ;
case "bottom-right" :
_6ea = dims . w ;
_6eb = dims . h ;
_6ec = - dims . w ;
_6ed = - dims . h ;
break ;
case "center" :
_6ea = dims . w / 2 ;
_6eb = dims . h / 2 ;
_6ec = - dims . w / 2 ;
_6ed = - dims . h / 2 ;
break ;
}
var _6ee = MochiKit . Base . update ( { beforeSetupInternal : function ( _6ef ) {
s . setStyle ( _6ef . effects [ 0 ] . element , { height : "0px" } ) ;
s . showElement ( _6ef . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _6f0 ) {
d . undoClipping ( _6f0 . effects [ 0 ] . element ) ;
d . undoPositioned ( _6f0 . effects [ 0 ] . element ) ;
s . setStyle ( _6f0 . effects [ 0 ] . element , _6e8 ) ;
} } , _6e4 || { } ) ;
return new v . Move ( _6e3 , { x : _6ea , y : _6eb , duration : 0.01 , beforeSetupInternal : function ( _6f1 ) {
s . hideElement ( _6f1 . element ) ;
d . makeClipping ( _6f1 . element ) ;
d . makePositioned ( _6f1 . element ) ;
} , afterFinishInternal : function ( _6f2 ) {
new v . Parallel ( [ new v . Opacity ( _6f2 . element , { sync : true , to : 1 , from : 0 , transition : _6e4 . opacityTransition } ) , new v . Move ( _6f2 . element , { x : _6ec , y : _6ed , sync : true , transition : _6e4 . moveTransition } ) , new v . Scale ( _6f2 . element , 100 , { scaleMode : { originalHeight : dims . h , originalWidth : dims . w } , sync : true , scaleFrom : /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , transition : _6e4 . scaleTransition , scaleContent : _6e4 . scaleContent , scaleFromCenter : _6e4 . scaleFromCenter , restoreAfterFinish : true } ) ] , _6ee ) ;
} } ) ;
} ;
MochiKit . Visual . shrink = function ( _6f3 , _6f4 ) {
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
_6f3 = d . getElement ( _6f3 ) ;
_6f4 = MochiKit . Base . update ( { direction : "center" , moveTransition : v . Transitions . sinoidal , scaleTransition : v . Transitions . sinoidal , opacityTransition : v . Transitions . none , scaleContent : true , scaleFromCenter : false } , _6f4 || { } ) ;
var _6f8 = { top : _6f3 . style . top , left : _6f3 . style . left , height : _6f3 . style . height , width : _6f3 . style . width , opacity : s . getStyle ( _6f3 , "opacity" ) } ;
var dims = s . getElementDimensions ( _6f3 ) ;
var _6fa , _6fb ;
switch ( _6f4 . direction ) {
case "top-left" :
_6fa = _6fb = 0 ;
break ;
case "top-right" :
_6fa = dims . w ;
_6fb = 0 ;
break ;
case "bottom-left" :
_6fa = 0 ;
_6fb = dims . h ;
break ;
case "bottom-right" :
_6fa = dims . w ;
_6fb = dims . h ;
break ;
case "center" :
_6fa = dims . w / 2 ;
_6fb = dims . h / 2 ;
break ;
}
var _6fc ;
var _6fd = MochiKit . Base . update ( { beforeStartInternal : function ( _6fe ) {
_6fc = d . makePositioned ( _6fe . effects [ 0 ] . element ) ;
d . makeClipping ( _6fe . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _6ff ) {
s . hideElement ( _6ff . effects [ 0 ] . element ) ;
d . undoClipping ( _6ff . effects [ 0 ] . element , _6fc ) ;
d . undoPositioned ( _6ff . effects [ 0 ] . element ) ;
s . setStyle ( _6ff . effects [ 0 ] . element , _6f8 ) ;
} } , _6f4 || { } ) ;
return new v . Parallel ( [ new v . Opacity ( _6f3 , { sync : true , to : 0 , from : 1 , transition : _6f4 . opacityTransition } ) , new v . Scale ( _6f3 , /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , { sync : true , transition : _6f4 . scaleTransition , scaleContent : _6f4 . scaleContent , scaleFromCenter : _6f4 . scaleFromCenter , restoreAfterFinish : true } ) , new v . Move ( _6f3 , { x : _6fa , y : _6fb , sync : true , transition : _6f4 . moveTransition } ) ] , _6fd ) ;
} ;
MochiKit . Visual . pulsate = function ( _700 , _701 ) {
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var b = MochiKit . Base ;
var _705 = MochiKit . Style . getStyle ( _700 , "opacity" ) ;
_701 = b . update ( { duration : 3 , from : 0 , afterFinishInternal : function ( _706 ) {
MochiKit . Style . setStyle ( _706 . element , { "opacity" : _705 } ) ;
} } , _701 || { } ) ;
var _707 = _701 . transition || v . Transitions . sinoidal ;
var _708 = b . bind ( function ( pos ) {
return _707 ( 1 - v . Transitions . pulse ( pos , _701 . pulses ) ) ;
} , _707 ) ;
b . bind ( _708 , _707 ) ;
return new v . Opacity ( _700 , b . update ( { transition : _708 } , _701 ) ) ;
} ;
MochiKit . Visual . fold = function ( _70a , _70b ) {
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
_70a = d . getElement ( _70a ) ;
var _70f = { top : _70a . style . top , left : _70a . style . left , width : _70a . style . width , height : _70a . style . height } ;
var _710 = d . makeClipping ( _70a ) ;
_70b = MochiKit . Base . update ( { scaleContent : false , scaleX : false , afterFinishInternal : function ( _711 ) {
new v . Scale ( _70a , 1 , { scaleContent : false , scaleY : false , afterFinishInternal : function ( _712 ) {
s . hideElement ( _712 . element ) ;
d . undoClipping ( _712 . element , _710 ) ;
s . setStyle ( _712 . element , _70f ) ;
} } ) ;
} } , _70b || { } ) ;
return new v . Scale ( _70a , 5 , _70b ) ;
} ;
MochiKit . Visual . Color = MochiKit . Color . Color ;
MochiKit . Visual . getElementsComputedStyle = MochiKit . DOM . computedStyle ;
MochiKit . Visual . _ _new _ _ = function ( ) {
var m = MochiKit . Base ;
m . nameFunctions ( this ) ;
this . EXPORT _TAGS = { ":common" : this . EXPORT , ":all" : m . concat ( this . EXPORT , this . EXPORT _OK ) } ;
} ;
MochiKit . Visual . EXPORT = [ "roundElement" , "roundClass" , "tagifyText" , "multiple" , "toggle" , "Parallel" , "Opacity" , "Move" , "Scale" , "Highlight" , "ScrollTo" , "Morph" , "fade" , "appear" , "puff" , "blindUp" , "blindDown" , "switchOff" , "dropOut" , "shake" , "slideDown" , "slideUp" , "squish" , "grow" , "shrink" , "pulsate" , "fold" ] ;
MochiKit . Visual . EXPORT _OK = [ "Base" , "PAIRS" ] ;
MochiKit . Visual . _ _new _ _ ( ) ;
MochiKit . Base . _exportSymbols ( this , MochiKit . Visual ) ;
if ( typeof ( MochiKit ) == "undefined" ) {
MochiKit = { } ;
}
if ( typeof ( MochiKit . MochiKit ) == "undefined" ) {
MochiKit . MochiKit = { } ;
}
MochiKit . MochiKit . NAME = "MochiKit.MochiKit" ;
MochiKit . MochiKit . VERSION = "1.4" ;
MochiKit . MochiKit . _ _repr _ _ = function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} ;
MochiKit . MochiKit . toString = function ( ) {
return this . _ _repr _ _ ( ) ;
} ;
MochiKit . MochiKit . SUBMODULES = [ "Base" , "Iter" , "Logging" , "DateTime" , "Format" , "Async" , "DOM" , "Selector" , "Style" , "LoggingPane" , "Color" , "Signal" , "Position" , "Visual" ] ;
if ( typeof ( JSAN ) != "undefined" || typeof ( dojo ) != "undefined" ) {
if ( typeof ( dojo ) != "undefined" ) {
dojo . provide ( "MochiKit.MochiKit" ) ;
dojo . require ( "MochiKit.*" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
( function ( lst ) {
for ( var i = 0 ; i < lst . length ; i ++ ) {
JSAN . use ( "MochiKit." + lst [ i ] , [ ] ) ;
}
} ) ( MochiKit . MochiKit . SUBMODULES ) ;
}
( function ( ) {
var _716 = MochiKit . Base . extend ;
var self = MochiKit . MochiKit ;
var _718 = self . SUBMODULES ;
var _719 = [ ] ;
var _71a = [ ] ;
var _71b = { } ;
var i , k , m , all ;
for ( i = 0 ; i < _718 . length ; i ++ ) {
m = MochiKit [ _718 [ i ] ] ;
_716 ( _719 , m . EXPORT ) ;
_716 ( _71a , m . EXPORT _OK ) ;
for ( k in m . EXPORT _TAGS ) {
_71b [ k ] = _716 ( _71b [ k ] , m . EXPORT _TAGS [ k ] ) ;
}
all = m . EXPORT _TAGS [ ":all" ] ;
if ( ! all ) {
all = _716 ( null , m . EXPORT , m . EXPORT _OK ) ;
}
var j ;
for ( j = 0 ; j < all . length ; j ++ ) {
k = all [ j ] ;
self [ k ] = m [ k ] ;
}
}
self . EXPORT = _719 ;
self . EXPORT _OK = _71a ;
self . EXPORT _TAGS = _71b ;
} ( ) ) ;
} else {
if ( typeof ( MochiKit . _ _compat _ _ ) == "undefined" ) {
MochiKit . _ _compat _ _ = true ;
}
( function ( ) {
if ( typeof ( document ) == "undefined" ) {
return ;
}
var _721 = document . getElementsByTagName ( "script" ) ;
var _722 = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ;
var base = null ;
var _724 = null ;
var _725 = { } ;
var i ;
for ( i = 0 ; i < _721 . length ; i ++ ) {
var src = _721 [ i ] . getAttribute ( "src" ) ;
if ( ! src ) {
continue ;
}
_725 [ src ] = true ;
if ( src . match ( /MochiKit.js$/ ) ) {
base = src . substring ( 0 , src . lastIndexOf ( "MochiKit.js" ) ) ;
_724 = _721 [ i ] ;
}
}
if ( base === null ) {
return ;
}
var _728 = MochiKit . MochiKit . SUBMODULES ;
for ( var i = 0 ; i < _728 . length ; i ++ ) {
if ( MochiKit [ _728 [ i ] ] ) {
continue ;
}
var uri = base + _728 [ i ] + ".js" ;
if ( uri in _725 ) {
continue ;
}
if ( document . documentElement && document . documentElement . namespaceURI == _722 ) {
var s = document . createElementNS ( _722 , "script" ) ;
s . setAttribute ( "id" , "MochiKit_" + base + _728 [ i ] ) ;
s . setAttribute ( "src" , uri ) ;
s . setAttribute ( "type" , "application/x-javascript" ) ;
_724 . parentNode . appendChild ( s ) ;
} else {
document . write ( "<script src=\"" + uri + "\" type=\"text/javascript\"></script>" ) ;
}
}
} ) ( ) ;
}