2006-11-07 02:48:11 +03: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 ++ ;
} ;
2008-04-30 21:17:33 +04:00
} , clone : function ( _b ) {
2006-11-07 02:48:11 +03:00
var me = arguments . callee ;
if ( arguments . length == 1 ) {
2008-04-30 21:17:33 +04:00
me . prototype = _b ;
2006-11-07 02:48:11 +03:00
return new me ( ) ;
}
2008-04-30 21:17:33 +04:00
} , _flattenArray : function ( _d , _e ) {
for ( var i = 0 ; i < _e . length ; i ++ ) {
var o = _e [ i ] ;
2006-11-07 02:48:11 +03:00
if ( o instanceof Array ) {
2008-04-30 21:17:33 +04:00
arguments . callee ( _d , o ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_d . push ( o ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return _d ;
2006-11-07 02:48:11 +03:00
} , 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 ;
2008-04-30 21:17:33 +04:00
} , extend : function ( _18 , obj , _1a ) {
if ( ! _1a ) {
_1a = 0 ;
2006-11-07 02:48:11 +03:00
}
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" ) ;
}
}
2008-04-30 21:17:33 +04:00
if ( ! _18 ) {
_18 = [ ] ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
for ( var i = _1a ; i < l ; i ++ ) {
_18 . push ( obj [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return _18 ;
} , updatetree : function ( _1d , obj ) {
if ( _1d === null ) {
_1d = { } ;
2006-11-07 02:48:11 +03:00
}
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 ] ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _1d [ k ] ) == "object" && typeof ( v ) == "object" ) {
arguments . callee ( _1d [ k ] , v ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_1d [ k ] = v ;
2006-11-07 02:48:11 +03:00
}
}
}
}
2008-04-30 21:17:33 +04:00
return _1d ;
} , setdefault : function ( _23 , obj ) {
if ( _23 === null ) {
_23 = { } ;
2006-11-07 02:48:11 +03:00
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
for ( var k in o ) {
2008-04-30 21:17:33 +04:00
if ( ! ( k in _23 ) ) {
_23 [ k ] = o [ k ] ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
return _23 ;
2006-11-07 02:48:11 +03:00
} , keys : function ( obj ) {
2008-04-30 21:17:33 +04:00
var _29 = [ ] ;
for ( var _2a in obj ) {
_29 . push ( _2a ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _29 ;
2006-11-07 02:48:11 +03:00
} , values : function ( obj ) {
2008-04-30 21:17:33 +04:00
var _2c = [ ] ;
for ( var _2d in obj ) {
_2c . push ( obj [ _2d ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _2c ;
2006-11-07 02:48:11 +03:00
} , items : function ( obj ) {
2008-04-30 21:17:33 +04:00
var _2f = [ ] ;
2006-11-07 02:48:11 +03:00
var e ;
2008-04-30 21:17:33 +04:00
for ( var _31 in obj ) {
2006-11-07 02:48:11 +03:00
var v ;
try {
2008-04-30 21:17:33 +04:00
v = obj [ _31 ] ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
continue ;
}
2008-04-30 21:17:33 +04:00
_2f . push ( [ _31 , v ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _2f ;
} , _newNamedError : function ( _33 , _34 , _35 ) {
_35 . prototype = new MochiKit . Base . NamedError ( _33 . NAME + "." + _34 ) ;
_33 [ _34 ] = _35 ;
2006-11-07 02:48:11 +03:00
} , 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 ;
2008-04-30 21:17:33 +04:00
} } , forwardCall : function ( _73 ) {
2006-11-07 02:48:11 +03:00
return function ( ) {
2008-04-30 21:17:33 +04:00
return this [ _73 ] . apply ( this , arguments ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
} , itemgetter : function ( _74 ) {
2006-11-07 02:48:11 +03:00
return function ( arg ) {
2008-04-30 21:17:33 +04:00
return arg [ _74 ] ;
2006-11-07 02:48:11 +03:00
} ;
} , typeMatcher : function ( ) {
2008-04-30 21:17:33 +04:00
var _76 = { } ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
var typ = arguments [ i ] ;
2008-04-30 21:17:33 +04:00
_76 [ typ ] = typ ;
2006-11-07 02:48:11 +03:00
}
return function ( ) {
for ( var i = 0 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
if ( ! ( typeof ( arguments [ i ] ) in _76 ) ) {
2006-11-07 02:48:11 +03:00
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 ) ;
}
2008-04-30 21:17:33 +04:00
var _87 = [ ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 1 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_87 . push ( fn ( arguments [ i ] ) ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _87 ;
2006-11-07 02:48:11 +03:00
} , map : function ( fn , lst ) {
var m = MochiKit . Base ;
var itr = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
var _8d = m . isArrayLike ;
2006-11-07 02:48:11 +03:00
if ( arguments . length <= 2 ) {
2008-04-30 21:17:33 +04:00
if ( ! _8d ( lst ) ) {
2006-11-07 02:48:11 +03:00
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 ) ;
}
2008-04-30 21:17:33 +04:00
var _8e = [ ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < lst . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_8e . push ( fn ( lst [ i ] ) ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _8e ;
2006-11-07 02:48:11 +03:00
} else {
if ( fn === null ) {
fn = Array ;
}
2008-04-30 21:17:33 +04:00
var _90 = null ;
2006-11-07 02:48:11 +03:00
for ( i = 1 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
if ( ! _8d ( arguments [ i ] ) ) {
2006-11-07 02:48:11 +03:00
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 ;
2008-04-30 21:17:33 +04:00
if ( _90 === null || _90 > l ) {
_90 = l ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
_8e = [ ] ;
for ( i = 0 ; i < _90 ; i ++ ) {
var _92 = [ ] ;
2006-11-07 02:48:11 +03:00
for ( var j = 1 ; j < arguments . length ; j ++ ) {
2008-04-30 21:17:33 +04:00
_92 . push ( arguments [ j ] [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_8e . push ( fn . apply ( this , _92 ) ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _8e ;
2006-11-07 02:48:11 +03:00
}
} , xfilter : function ( fn ) {
2008-04-30 21:17:33 +04:00
var _95 = [ ] ;
2006-11-07 02:48:11 +03:00
if ( fn === null ) {
fn = MochiKit . Base . operator . truth ;
}
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var o = arguments [ i ] ;
if ( fn ( o ) ) {
2008-04-30 21:17:33 +04:00
_95 . push ( o ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return _95 ;
} , filter : function ( fn , lst , _9a ) {
var _9b = [ ] ;
2006-11-07 02:48:11 +03:00
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" ) {
2008-04-30 21:17:33 +04:00
return Array . prototype . filter . call ( lst , fn , _9a ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( typeof ( _9a ) == "undefined" || _9a === null ) {
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < lst . length ; i ++ ) {
var o = lst [ i ] ;
if ( fn ( o ) ) {
2008-04-30 21:17:33 +04:00
_9b . push ( o ) ;
2006-11-07 02:48:11 +03:00
}
}
} else {
for ( i = 0 ; i < lst . length ; i ++ ) {
o = lst [ i ] ;
2008-04-30 21:17:33 +04:00
if ( fn . call ( _9a , o ) ) {
_9b . push ( o ) ;
2006-11-07 02:48:11 +03:00
}
}
}
}
2008-04-30 21:17:33 +04:00
return _9b ;
} , _wrapDumbFunction : function ( _9f ) {
2006-11-07 02:48:11 +03:00
return function ( ) {
switch ( arguments . length ) {
case 0 :
2008-04-30 21:17:33 +04:00
return _9f ( ) ;
2006-11-07 02:48:11 +03:00
case 1 :
2008-04-30 21:17:33 +04:00
return _9f ( arguments [ 0 ] ) ;
2006-11-07 02:48:11 +03:00
case 2 :
2008-04-30 21:17:33 +04:00
return _9f ( arguments [ 0 ] , arguments [ 1 ] ) ;
2006-11-07 02:48:11 +03:00
case 3 :
2008-04-30 21:17:33 +04:00
return _9f ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _a0 = [ ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_a0 . push ( "arguments[" + i + "]" ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return eval ( "(func(" + _a0 . join ( "," ) + "))" ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
} , methodcaller : function ( _a2 ) {
var _a3 = MochiKit . Base . extend ( null , arguments , 1 ) ;
if ( typeof ( _a2 ) == "function" ) {
2006-11-07 02:48:11 +03:00
return function ( obj ) {
2008-04-30 21:17:33 +04:00
return _a2 . apply ( obj , _a3 ) ;
2006-11-07 02:48:11 +03:00
} ;
} else {
return function ( obj ) {
2008-04-30 21:17:33 +04:00
return obj [ _a2 ] . apply ( obj , _a3 ) ;
2006-11-07 02:48:11 +03:00
} ;
}
2008-04-30 21:17:33 +04:00
} , method : function ( _a6 , _a7 ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
return m . bind . apply ( this , m . extend ( [ _a7 , _a6 ] , arguments , 2 ) ) ;
2006-11-07 02:48:11 +03:00
} , compose : function ( f1 , f2 ) {
2008-04-30 21:17:33 +04:00
var _ab = [ ] ;
2006-11-07 02:48:11 +03:00
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" ) ;
}
2008-04-30 21:17:33 +04:00
_ab . push ( fn ) ;
2006-11-07 02:48:11 +03:00
}
return function ( ) {
2008-04-30 21:17:33 +04:00
var _af = arguments ;
for ( var i = _ab . length - 1 ; i >= 0 ; i -- ) {
_af = [ _ab [ i ] . apply ( this , _af ) ] ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _af [ 0 ] ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
} , bind : function ( _b1 , _b2 ) {
if ( typeof ( _b1 ) == "string" ) {
_b1 = _b2 [ _b1 ] ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _b3 = _b1 . im _func ;
var _b4 = _b1 . im _preargs ;
var _b5 = _b1 . im _self ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _b1 ) == "function" && typeof ( _b1 . apply ) == "undefined" ) {
_b1 = m . _wrapDumbFunction ( _b1 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _b3 ) != "function" ) {
_b3 = _b1 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _b2 ) != "undefined" ) {
_b5 = _b2 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _b4 ) == "undefined" ) {
_b4 = [ ] ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_b4 = _b4 . slice ( ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
m . extend ( _b4 , arguments , 2 ) ;
var _b7 = function ( ) {
var _b8 = arguments ;
2006-11-07 02:48:11 +03:00
var me = arguments . callee ;
if ( me . im _preargs . length > 0 ) {
2008-04-30 21:17:33 +04:00
_b8 = m . concat ( me . im _preargs , _b8 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _ba = me . im _self ;
if ( ! _ba ) {
_ba = this ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return me . im _func . apply ( _ba , _b8 ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
_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 ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
} , registerComparator : function ( _bf , _c0 , _c1 , _c2 ) {
MochiKit . Base . comparatorRegistry . register ( _bf , _c0 , _c1 , _c2 ) ;
2006-11-07 02:48:11 +03:00
} , _primitives : { "boolean" : true , "string" : true , "number" : true } , compare : function ( a , b ) {
if ( a == b ) {
return 0 ;
}
2008-04-30 21:17:33 +04:00
var _c5 = ( typeof ( a ) == "undefined" || a === null ) ;
var _c6 = ( typeof ( b ) == "undefined" || b === null ) ;
if ( _c5 && _c6 ) {
2006-11-07 02:48:11 +03:00
return 0 ;
} else {
2008-04-30 21:17:33 +04:00
if ( _c5 ) {
2006-11-07 02:48:11 +03:00
return - 1 ;
} else {
2008-04-30 21:17:33 +04:00
if ( _c6 ) {
2006-11-07 02:48:11 +03:00
return 1 ;
}
}
}
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _c8 = m . _primitives ;
if ( ! ( typeof ( a ) in _c8 && typeof ( b ) in _c8 ) ) {
2006-11-07 02:48:11 +03:00
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 ;
}
}
2008-04-30 21:17:33 +04:00
var _c9 = m . repr ;
throw new TypeError ( _c9 ( a ) + " and " + _c9 ( b ) + " can not be compared" ) ;
2006-11-07 02:48:11 +03:00
} , compareDateLike : function ( a , b ) {
return MochiKit . Base . compare ( a . getTime ( ) , b . getTime ( ) ) ;
} , compareArrayLike : function ( a , b ) {
2008-04-30 21:17:33 +04:00
var _ce = MochiKit . Base . compare ;
var _cf = a . length ;
var _d0 = 0 ;
if ( _cf > b . length ) {
_d0 = 1 ;
_cf = b . length ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _cf < b . length ) {
_d0 = - 1 ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _cf ; i ++ ) {
var cmp = _ce ( a [ i ] , b [ i ] ) ;
2006-11-07 02:48:11 +03:00
if ( cmp ) {
return cmp ;
}
}
2008-04-30 21:17:33 +04:00
return _d0 ;
} , registerRepr : function ( _d3 , _d4 , _d5 , _d6 ) {
MochiKit . Base . reprRegistry . register ( _d3 , _d4 , _d5 , _d6 ) ;
2006-11-07 02:48:11 +03:00
} , 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 {
2008-04-30 21:17:33 +04:00
var _d8 = ( o + "" ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
return "[" + typeof ( o ) + "]" ;
}
if ( typeof ( o ) == "function" ) {
2008-04-30 21:17:33 +04:00
o = _d8 . replace ( /^\s+/ , "" ) ;
2006-11-07 02:48:11 +03:00
var idx = o . indexOf ( "{" ) ;
if ( idx != - 1 ) {
o = o . substr ( 0 , idx ) + "{...}" ;
}
}
2008-04-30 21:17:33 +04:00
return _d8 ;
2006-11-07 02:48:11 +03:00
} , 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 + "" ;
2008-04-30 21:17:33 +04:00
} , registerJSON : function ( _de , _df , _e0 , _e1 ) {
MochiKit . Base . jsonRegistry . register ( _de , _df , _e0 , _e1 ) ;
2006-11-07 02:48:11 +03:00
} , evalJSON : function ( ) {
return eval ( "(" + arguments [ 0 ] + ")" ) ;
} , serializeJSON : function ( o ) {
2008-04-30 21:17:33 +04:00
var _e3 = typeof ( o ) ;
if ( _e3 == "number" || _e3 == "boolean" ) {
2006-11-07 02:48:11 +03:00
return o + "" ;
} else {
if ( o === null ) {
return "null" ;
}
}
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _e5 = m . reprString ;
if ( _e3 == "string" ) {
return _e5 ( o ) ;
2006-11-07 02:48:11 +03:00
}
var me = arguments . callee ;
2008-04-30 21:17:33 +04:00
var _e7 ;
2006-11-07 02:48:11 +03:00
if ( typeof ( o . _ _json _ _ ) == "function" ) {
2008-04-30 21:17:33 +04:00
_e7 = o . _ _json _ _ ( ) ;
if ( o !== _e7 ) {
return me ( _e7 ) ;
2006-11-07 02:48:11 +03:00
}
}
if ( typeof ( o . json ) == "function" ) {
2008-04-30 21:17:33 +04:00
_e7 = o . json ( ) ;
if ( o !== _e7 ) {
return me ( _e7 ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
if ( _e3 != "function" && typeof ( o . length ) == "number" ) {
2006-11-07 02:48:11 +03:00
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 {
2008-04-30 21:17:33 +04:00
_e7 = m . jsonRegistry . match ( o ) ;
if ( o !== _e7 ) {
return me ( _e7 ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != m . NotFound ) {
throw e ;
}
}
2008-04-30 21:17:33 +04:00
if ( _e3 == "undefined" ) {
2006-11-07 02:48:11 +03:00
throw new TypeError ( "undefined can not be serialized as JSON" ) ;
}
2008-04-30 21:17:33 +04:00
if ( _e3 == "function" ) {
2006-11-07 02:48:11 +03:00
return null ;
}
res = [ ] ;
for ( var k in o ) {
2008-04-30 21:17:33 +04:00
var _ec ;
2006-11-07 02:48:11 +03:00
if ( typeof ( k ) == "number" ) {
2008-04-30 21:17:33 +04:00
_ec = "\"" + k + "\"" ;
2006-11-07 02:48:11 +03:00
} else {
if ( typeof ( k ) == "string" ) {
2008-04-30 21:17:33 +04:00
_ec = _e5 ( k ) ;
2006-11-07 02:48:11 +03:00
} else {
continue ;
}
}
val = me ( o [ k ] ) ;
if ( typeof ( val ) != "string" ) {
continue ;
}
2008-04-30 21:17:33 +04:00
res . push ( _ec + ":" + val ) ;
2006-11-07 02:48:11 +03:00
}
return "{" + res . join ( ", " ) + "}" ;
} , objEqual : function ( a , b ) {
return ( MochiKit . Base . compare ( a , b ) === 0 ) ;
2008-04-30 21:17:33 +04:00
} , arrayEqual : function ( _ef , arr ) {
if ( _ef . length != arr . length ) {
2006-11-07 02:48:11 +03:00
return false ;
}
2008-04-30 21:17:33 +04:00
return ( MochiKit . Base . compare ( _ef , arr ) === 0 ) ;
2006-11-07 02:48:11 +03:00
} , concat : function ( ) {
2008-04-30 21:17:33 +04:00
var _f1 = [ ] ;
var _f2 = MochiKit . Base . extend ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_f2 ( _f1 , arguments [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _f1 ;
2006-11-07 02:48:11 +03:00
} , keyComparator : function ( key ) {
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _f6 = m . compare ;
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
return function ( a , b ) {
2008-04-30 21:17:33 +04:00
return _f6 ( a [ key ] , b [ key ] ) ;
2006-11-07 02:48:11 +03:00
} ;
}
2008-04-30 21:17:33 +04:00
var _f9 = m . extend ( null , arguments ) ;
2006-11-07 02:48:11 +03:00
return function ( a , b ) {
2008-04-30 21:17:33 +04:00
var _fc = 0 ;
for ( var i = 0 ; ( _fc === 0 ) && ( i < _f9 . length ) ; i ++ ) {
var key = _f9 [ i ] ;
_fc = _f6 ( a [ key ] , b [ key ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _fc ;
2006-11-07 02:48:11 +03:00
} ;
} , reverseKeyComparator : function ( key ) {
2008-04-30 21:17:33 +04:00
var _100 = MochiKit . Base . keyComparator . apply ( this , arguments ) ;
2006-11-07 02:48:11 +03:00
return function ( a , b ) {
2008-04-30 21:17:33 +04:00
return _100 ( b , a ) ;
2006-11-07 02:48:11 +03:00
} ;
} , partial : function ( func ) {
var m = MochiKit . Base ;
return m . bind . apply ( this , m . extend ( [ func , undefined ] , arguments , 1 ) ) ;
2008-04-30 21:17:33 +04:00
} , listMinMax : function ( _105 , lst ) {
2006-11-07 02:48:11 +03:00
if ( lst . length === 0 ) {
return null ;
}
var cur = lst [ 0 ] ;
2008-04-30 21:17:33 +04:00
var _108 = MochiKit . Base . compare ;
2006-11-07 02:48:11 +03:00
for ( var i = 1 ; i < lst . length ; i ++ ) {
var o = lst [ i ] ;
2008-04-30 21:17:33 +04:00
if ( _108 ( o , cur ) == _105 ) {
2006-11-07 02:48:11 +03:00
cur = o ;
}
}
return cur ;
} , objMax : function ( ) {
return MochiKit . Base . listMinMax ( 1 , arguments ) ;
} , objMin : function ( ) {
return MochiKit . Base . listMinMax ( - 1 , arguments ) ;
2008-04-30 21:17:33 +04:00
} , findIdentical : function ( lst , _10c , _10d , end ) {
2006-11-07 02:48:11 +03:00
if ( typeof ( end ) == "undefined" || end === null ) {
end = lst . length ;
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _10d ) == "undefined" || _10d === null ) {
_10d = 0 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
for ( var i = _10d ; i < end ; i ++ ) {
if ( lst [ i ] === _10c ) {
2006-11-07 02:48:11 +03:00
return i ;
}
}
return - 1 ;
} , mean : function ( ) {
var sum = 0 ;
var m = MochiKit . Base ;
var args = m . extend ( null , arguments ) ;
2008-04-30 21:17:33 +04:00
var _113 = args . length ;
2006-11-07 02:48:11 +03:00
while ( args . length ) {
var o = args . shift ( ) ;
if ( o && typeof ( o ) == "object" && typeof ( o . length ) == "number" ) {
2008-04-30 21:17:33 +04:00
_113 += o . length - 1 ;
2006-11-07 02:48:11 +03:00
for ( var i = o . length - 1 ; i >= 0 ; i -- ) {
sum += o [ i ] ;
}
} else {
sum += o ;
}
}
2008-04-30 21:17:33 +04:00
if ( _113 <= 0 ) {
2006-11-07 02:48:11 +03:00
throw new TypeError ( "mean() requires at least one argument" ) ;
}
2008-04-30 21:17:33 +04:00
return sum / _113 ;
2006-11-07 02:48:11 +03:00
} , 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 _117 = data . length / 2 ;
return ( data [ _117 ] + data [ _117 - 1 ] ) / 2 ;
} else {
return data [ ( data . length - 1 ) / 2 ] ;
}
2008-04-30 21:17:33 +04:00
} , findValue : function ( lst , _119 , _11a , end ) {
2006-11-07 02:48:11 +03:00
if ( typeof ( end ) == "undefined" || end === null ) {
end = lst . length ;
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _11a ) == "undefined" || _11a === null ) {
_11a = 0 ;
2006-11-07 02:48:11 +03:00
}
var cmp = MochiKit . Base . compare ;
2008-04-30 21:17:33 +04:00
for ( var i = _11a ; i < end ; i ++ ) {
if ( cmp ( lst [ i ] , _119 ) === 0 ) {
2006-11-07 02:48:11 +03:00
return i ;
}
}
return - 1 ;
2008-04-30 21:17:33 +04:00
} , nodeWalk : function ( node , _11f ) {
var _120 = [ node ] ;
var _121 = MochiKit . Base . extend ;
while ( _120 . length ) {
var res = _11f ( _120 . shift ( ) ) ;
2006-11-07 02:48:11 +03:00
if ( res ) {
2008-04-30 21:17:33 +04:00
_121 ( _120 , res ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
} , nameFunctions : function ( _123 ) {
var base = _123 . NAME ;
2006-11-07 02:48:11 +03:00
if ( typeof ( base ) == "undefined" ) {
base = "" ;
} else {
base = base + "." ;
}
2008-04-30 21:17:33 +04:00
for ( var name in _123 ) {
var o = _123 [ name ] ;
2006-11-07 02:48:11 +03:00
if ( typeof ( o ) == "function" && typeof ( o . NAME ) == "undefined" ) {
try {
o . NAME = base + name ;
}
catch ( e ) {
}
}
}
} , queryString : function ( _127 , _128 ) {
if ( typeof ( MochiKit . DOM ) != "undefined" && arguments . length == 1 && ( typeof ( _127 ) == "string" || ( typeof ( _127 . nodeType ) != "undefined" && _127 . nodeType > 0 ) ) ) {
var kv = MochiKit . DOM . formContents ( _127 ) ;
_127 = kv [ 0 ] ;
_128 = kv [ 1 ] ;
} else {
if ( arguments . length == 1 ) {
var o = _127 ;
_127 = [ ] ;
_128 = [ ] ;
for ( var k in o ) {
var v = o [ k ] ;
if ( typeof ( v ) == "function" ) {
continue ;
} else {
if ( typeof ( v ) != "string" && typeof ( v . length ) == "number" ) {
for ( var i = 0 ; i < v . length ; i ++ ) {
_127 . push ( k ) ;
_128 . push ( v [ i ] ) ;
}
} else {
_127 . push ( k ) ;
_128 . push ( v ) ;
}
}
}
}
}
var rval = [ ] ;
var len = Math . min ( _127 . length , _128 . length ) ;
2008-04-30 21:17:33 +04:00
var _130 = MochiKit . Base . urlEncode ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < len ; i ++ ) {
v = _128 [ i ] ;
if ( typeof ( v ) != "undefined" && v !== null ) {
2008-04-30 21:17:33 +04:00
rval . push ( _130 ( _127 [ i ] ) + "=" + _130 ( v ) ) ;
2006-11-07 02:48:11 +03:00
}
}
return rval . join ( "&" ) ;
2008-04-30 21:17:33 +04:00
} , parseQueryString : function ( _131 , _132 ) {
var qstr = ( _131 [ 0 ] == "?" ) ? _131 . substring ( 1 ) : _131 ;
var _134 = qstr . replace ( /\+/g , "%20" ) . split ( /(\&\;|\&\#38\;|\&|\&)/ ) ;
2006-11-07 02:48:11 +03:00
var o = { } ;
var _136 ;
if ( typeof ( decodeURIComponent ) != "undefined" ) {
_136 = decodeURIComponent ;
} else {
_136 = unescape ;
}
2008-04-30 21:17:33 +04:00
if ( _132 ) {
for ( var i = 0 ; i < _134 . length ; i ++ ) {
var pair = _134 [ i ] . split ( "=" ) ;
2006-11-07 02:48:11 +03:00
if ( pair . length !== 2 ) {
continue ;
}
var name = _136 ( pair [ 0 ] ) ;
var arr = o [ name ] ;
if ( ! ( arr instanceof Array ) ) {
arr = [ ] ;
o [ name ] = arr ;
}
arr . push ( _136 ( pair [ 1 ] ) ) ;
}
} else {
2008-04-30 21:17:33 +04:00
for ( i = 0 ; i < _134 . length ; i ++ ) {
pair = _134 [ i ] . split ( "=" ) ;
2006-11-07 02:48:11 +03:00
if ( pair . length !== 2 ) {
continue ;
}
o [ _136 ( pair [ 0 ] ) ] = _136 ( pair [ 1 ] ) ;
}
}
return o ;
} } ) ;
MochiKit . Base . AdapterRegistry = function ( ) {
this . pairs = [ ] ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . AdapterRegistry . prototype = { register : function ( name , _13c , wrap , _13e ) {
if ( _13e ) {
this . pairs . unshift ( [ name , _13c , wrap ] ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
this . pairs . push ( [ name , _13c , wrap ] ) ;
2006-11-07 02:48:11 +03:00
}
} , 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" ] ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . _exportSymbols = function ( _144 , _145 ) {
2006-11-07 02:48:11 +03:00
if ( ! MochiKit . _ _export _ _ ) {
return ;
}
2008-04-30 21:17:33 +04:00
var all = _145 . EXPORT _TAGS [ ":all" ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < all . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_144 [ all [ i ] ] = _145 [ all [ i ] ] ;
2006-11-07 02:48:11 +03:00
}
} ;
MochiKit . Base . _ _new _ _ = function ( ) {
var m = this ;
m . noop = m . operator . identity ;
m . forward = m . forwardCall ;
m . find = m . findValue ;
if ( typeof ( encodeURIComponent ) != "undefined" ) {
2008-04-30 21:17:33 +04:00
m . urlEncode = function ( _149 ) {
return encodeURIComponent ( _149 ) . replace ( /\'/g , "%27" ) ;
2006-11-07 02:48:11 +03:00
} ;
} else {
2008-04-30 21:17:33 +04:00
m . urlEncode = function ( _14a ) {
return escape ( _14a ) . replace ( /\+/g , "%2B" ) . replace ( /\"/g , "%22" ) . rval . replace ( /\'/g , "%27" ) ;
2006-11-07 02:48:11 +03:00
} ;
}
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 _ _ ( ) ;
2008-04-30 21:17:33 +04:00
} , registerIteratorFactory : function ( name , _14e , _14f , _150 ) {
MochiKit . Iter . iteratorRegistry . register ( name , _14e , _14f , _150 ) ;
} , iter : function ( _151 , _152 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
if ( arguments . length == 2 ) {
return self . takewhile ( function ( a ) {
2008-04-30 21:17:33 +04:00
return a != _152 ;
} , _151 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _151 . next ) == "function" ) {
return _151 ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( typeof ( _151 . iter ) == "function" ) {
return _151 . iter ( ) ;
2006-11-07 02:48:11 +03:00
}
}
try {
2008-04-30 21:17:33 +04:00
return self . iteratorRegistry . match ( _151 ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
var m = MochiKit . Base ;
if ( e == m . NotFound ) {
2008-04-30 21:17:33 +04:00
e = new TypeError ( typeof ( _151 ) + ": " + m . repr ( _151 ) + " is not iterable" ) ;
2006-11-07 02:48:11 +03:00
}
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 = [ ] ;
2008-04-30 21:17:33 +04:00
var _15c = self . iter ( p ) ;
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
return "cycle(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
try {
2008-04-30 21:17:33 +04:00
var rval = _15c . next ( ) ;
2006-11-07 02:48:11 +03:00
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 ;
} } ;
2008-04-30 21:17:33 +04:00
} , next : function ( _162 ) {
return _162 . next ( ) ;
2006-11-07 02:48:11 +03:00
} , izip : function ( p , q ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
var next = self . next ;
2008-04-30 21:17:33 +04:00
var _168 = m . map ( self . iter , arguments ) ;
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
return "izip(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
2008-04-30 21:17:33 +04:00
return m . map ( next , _168 ) ;
2006-11-07 02:48:11 +03:00
} } ;
} , 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 ) ;
2008-04-30 21:17:33 +04:00
var _174 = 0 ;
2006-11-07 02:48:11 +03:00
var stop = 0 ;
var step = 1 ;
var i = - 1 ;
if ( arguments . length == 2 ) {
stop = arguments [ 1 ] ;
} else {
if ( arguments . length == 3 ) {
2008-04-30 21:17:33 +04:00
_174 = arguments [ 1 ] ;
2006-11-07 02:48:11 +03:00
stop = arguments [ 2 ] ;
} else {
2008-04-30 21:17:33 +04:00
_174 = arguments [ 1 ] ;
2006-11-07 02:48:11 +03:00
stop = arguments [ 2 ] ;
step = arguments [ 3 ] ;
}
}
return { repr : function ( ) {
2008-04-30 21:17:33 +04:00
return "islice(" + [ "..." , _174 , stop , step ] . join ( ", " ) + ")" ;
2006-11-07 02:48:11 +03:00
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
var rval ;
2008-04-30 21:17:33 +04:00
while ( i < _174 ) {
2006-11-07 02:48:11 +03:00
rval = seq . next ( ) ;
i ++ ;
}
2008-04-30 21:17:33 +04:00
if ( _174 >= stop ) {
2006-11-07 02:48:11 +03:00
throw self . StopIteration ;
}
2008-04-30 21:17:33 +04:00
_174 += step ;
2006-11-07 02:48:11 +03:00
return rval ;
} } ;
} , imap : function ( fun , p , q ) {
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
var _17e = m . map ( self . iter , m . extend ( null , arguments , 1 ) ) ;
2006-11-07 02:48:11 +03:00
var map = m . map ;
var next = self . next ;
return { repr : function ( ) {
return "imap(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
2008-04-30 21:17:33 +04:00
return fun . apply ( this , map ( next , _17e ) ) ;
2006-11-07 02:48:11 +03:00
} } ;
} , 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 ] ) ;
}
2008-04-30 21:17:33 +04:00
var _189 = m . map ( self . iter , arguments ) ;
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
return "chain(...)" ;
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
2008-04-30 21:17:33 +04:00
while ( _189 . length > 1 ) {
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
return _189 [ 0 ] . next ( ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
2008-04-30 21:17:33 +04:00
_189 . shift ( ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
if ( _189 . length == 1 ) {
var arg = _189 . shift ( ) ;
2006-11-07 02:48:11 +03:00
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 ;
} } ;
2008-04-30 21:17:33 +04:00
} , _tee : function ( _194 , sync , _196 ) {
sync . pos [ _194 ] = - 1 ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _198 = m . listMin ;
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
2008-04-30 21:17:33 +04:00
return "tee(" + _194 + ", ...)" ;
2006-11-07 02:48:11 +03:00
} , toString : m . forwardCall ( "repr" ) , next : function ( ) {
var rval ;
2008-04-30 21:17:33 +04:00
var i = sync . pos [ _194 ] ;
2006-11-07 02:48:11 +03:00
if ( i == sync . max ) {
2008-04-30 21:17:33 +04:00
rval = _196 . next ( ) ;
2006-11-07 02:48:11 +03:00
sync . deque . push ( rval ) ;
sync . max += 1 ;
2008-04-30 21:17:33 +04:00
sync . pos [ _194 ] += 1 ;
2006-11-07 02:48:11 +03:00
} else {
rval = sync . deque [ i - sync . min ] ;
2008-04-30 21:17:33 +04:00
sync . pos [ _194 ] += 1 ;
if ( i == sync . min && _198 ( sync . pos ) != sync . min ) {
2006-11-07 02:48:11 +03:00
sync . min += 1 ;
sync . deque . shift ( ) ;
}
}
return rval ;
} } ;
2008-04-30 21:17:33 +04:00
} , tee : function ( _19b , n ) {
2006-11-07 02:48:11 +03:00
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 ;
2008-04-30 21:17:33 +04:00
_19b = self . iter ( _19b ) ;
2006-11-07 02:48:11 +03:00
var _tee = self . _tee ;
for ( var i = 0 ; i < n ; i ++ ) {
2008-04-30 21:17:33 +04:00
rval . push ( _tee ( i , sync , _19b ) ) ;
2006-11-07 02:48:11 +03:00
}
return rval ;
2008-04-30 21:17:33 +04:00
} , list : function ( _1a2 ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _1a2 . slice ) == "function" ) {
return _1a2 . slice ( ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( m . isArrayLike ( _1a2 ) ) {
return m . concat ( _1a2 ) ;
2006-11-07 02:48:11 +03:00
}
}
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
_1a2 = self . iter ( _1a2 ) ;
2006-11-07 02:48:11 +03:00
var rval = [ ] ;
try {
while ( true ) {
2008-04-30 21:17:33 +04:00
rval . push ( _1a2 . next ( ) ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return rval ;
}
return undefined ;
2008-04-30 21:17:33 +04:00
} , reduce : function ( fn , _1a7 , _1a8 ) {
2006-11-07 02:48:11 +03:00
var i = 0 ;
2008-04-30 21:17:33 +04:00
var x = _1a8 ;
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
_1a7 = self . iter ( _1a7 ) ;
2006-11-07 02:48:11 +03:00
if ( arguments . length < 3 ) {
try {
2008-04-30 21:17:33 +04:00
x = _1a7 . next ( ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
if ( e == self . StopIteration ) {
e = new TypeError ( "reduce() of empty sequence with no initial value" ) ;
}
throw e ;
}
i ++ ;
}
try {
while ( true ) {
2008-04-30 21:17:33 +04:00
x = fn ( x , _1a7 . next ( ) ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
return x ;
} , range : function ( ) {
2008-04-30 21:17:33 +04:00
var _1ac = 0 ;
2006-11-07 02:48:11 +03:00
var stop = 0 ;
var step = 1 ;
if ( arguments . length == 1 ) {
stop = arguments [ 0 ] ;
} else {
if ( arguments . length == 2 ) {
2008-04-30 21:17:33 +04:00
_1ac = arguments [ 0 ] ;
2006-11-07 02:48:11 +03:00
stop = arguments [ 1 ] ;
} else {
if ( arguments . length == 3 ) {
2008-04-30 21:17:33 +04:00
_1ac = arguments [ 0 ] ;
2006-11-07 02:48:11 +03:00
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 ( ) {
2008-04-30 21:17:33 +04:00
if ( ( step > 0 && _1ac >= stop ) || ( step < 0 && _1ac <= stop ) ) {
2006-11-07 02:48:11 +03:00
throw MochiKit . Iter . StopIteration ;
}
2008-04-30 21:17:33 +04:00
var rval = _1ac ;
_1ac += step ;
2006-11-07 02:48:11 +03:00
return rval ;
} , repr : function ( ) {
2008-04-30 21:17:33 +04:00
return "range(" + [ _1ac , stop , step ] . join ( ", " ) + ")" ;
2006-11-07 02:48:11 +03:00
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
2008-04-30 21:17:33 +04:00
} , sum : function ( _1b0 , _1b1 ) {
if ( typeof ( _1b1 ) == "undefined" || _1b1 === null ) {
_1b1 = 0 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var x = _1b1 ;
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
_1b0 = self . iter ( _1b0 ) ;
2006-11-07 02:48:11 +03:00
try {
while ( true ) {
2008-04-30 21:17:33 +04:00
x += _1b0 . next ( ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
return x ;
2008-04-30 21:17:33 +04:00
} , exhaust : function ( _1b4 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
_1b4 = self . iter ( _1b4 ) ;
2006-11-07 02:48:11 +03:00
try {
while ( true ) {
2008-04-30 21:17:33 +04:00
_1b4 . next ( ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
2008-04-30 21:17:33 +04:00
} , forEach : function ( _1b6 , func , self ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
if ( arguments . length > 2 ) {
func = m . bind ( func , self ) ;
}
2008-04-30 21:17:33 +04:00
if ( m . isArrayLike ( _1b6 ) ) {
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _1b6 . length ; i ++ ) {
func ( _1b6 [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != MochiKit . Iter . StopIteration ) {
throw e ;
}
}
} else {
self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
self . exhaust ( self . imap ( func , _1b6 ) ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
} , every : function ( _1bb , func ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
try {
2008-04-30 21:17:33 +04:00
self . ifilterfalse ( func , _1bb ) . next ( ) ;
2006-11-07 02:48:11 +03:00
return false ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return true ;
}
2008-04-30 21:17:33 +04:00
} , sorted : function ( _1be , cmp ) {
var rval = MochiKit . Iter . list ( _1be ) ;
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
cmp = MochiKit . Base . compare ;
}
rval . sort ( cmp ) ;
return rval ;
2008-04-30 21:17:33 +04:00
} , reversed : function ( _1c1 ) {
var rval = MochiKit . Iter . list ( _1c1 ) ;
2006-11-07 02:48:11 +03:00
rval . reverse ( ) ;
return rval ;
2008-04-30 21:17:33 +04:00
} , some : function ( _1c3 , func ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Iter ;
try {
2008-04-30 21:17:33 +04:00
self . ifilter ( func , _1c3 ) . next ( ) ;
2006-11-07 02:48:11 +03:00
return true ;
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
return false ;
}
2008-04-30 21:17:33 +04:00
} , iextend : function ( lst , _1c7 ) {
if ( MochiKit . Base . isArrayLike ( _1c7 ) ) {
for ( var i = 0 ; i < _1c7 . length ; i ++ ) {
lst . push ( _1c7 [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
} else {
var self = MochiKit . Iter ;
2008-04-30 21:17:33 +04:00
_1c7 = self . iter ( _1c7 ) ;
2006-11-07 02:48:11 +03:00
try {
while ( true ) {
2008-04-30 21:17:33 +04:00
lst . push ( _1c7 . next ( ) ) ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
if ( e != self . StopIteration ) {
throw e ;
}
}
}
return lst ;
2008-04-30 21:17:33 +04:00
} , groupby : function ( _1ca , _1cb ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
if ( arguments . length < 2 ) {
2008-04-30 21:17:33 +04:00
_1cb = m . operator . identity ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_1ca = self . iter ( _1ca ) ;
2006-11-07 02:48:11 +03:00
var pk = undefined ;
var k = undefined ;
var v ;
function fetch ( ) {
2008-04-30 21:17:33 +04:00
v = _1ca . next ( ) ;
k = _1cb ( v ) ;
2006-11-07 02:48:11 +03:00
}
function eat ( ) {
var ret = v ;
v = undefined ;
return ret ;
}
2008-04-30 21:17:33 +04:00
var _1d2 = true ;
var _1d3 = m . compare ;
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
return "groupby(...)" ;
} , next : function ( ) {
2008-04-30 21:17:33 +04:00
while ( _1d3 ( k , pk ) === 0 ) {
2006-11-07 02:48:11 +03:00
fetch ( ) ;
2008-04-30 21:17:33 +04:00
if ( _1d2 ) {
_1d2 = false ;
2006-11-07 02:48:11 +03:00
break ;
}
}
pk = k ;
return [ k , { next : function ( ) {
if ( v == undefined ) {
fetch ( ) ;
}
2008-04-30 21:17:33 +04:00
if ( _1d3 ( k , pk ) !== 0 ) {
2006-11-07 02:48:11 +03:00
throw self . StopIteration ;
}
return eat ( ) ;
} } ] ;
} } ;
2008-04-30 21:17:33 +04:00
} , groupby _as _array : function ( _1d4 , _1d5 ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
var self = MochiKit . Iter ;
if ( arguments . length < 2 ) {
2008-04-30 21:17:33 +04:00
_1d5 = m . operator . identity ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_1d4 = self . iter ( _1d4 ) ;
var _1d8 = [ ] ;
var _1d9 = true ;
var _1da ;
var _1db = m . compare ;
2006-11-07 02:48:11 +03:00
while ( true ) {
try {
2008-04-30 21:17:33 +04:00
var _1dc = _1d4 . next ( ) ;
var key = _1d5 ( _1dc ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
if ( e == self . StopIteration ) {
break ;
}
throw e ;
}
2008-04-30 21:17:33 +04:00
if ( _1d9 || _1db ( key , _1da ) !== 0 ) {
var _1de = [ ] ;
_1d8 . push ( [ key , _1de ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_1de . push ( _1dc ) ;
_1d9 = false ;
_1da = key ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _1d8 ;
} , arrayLikeIter : function ( _1df ) {
2006-11-07 02:48:11 +03:00
var i = 0 ;
return { repr : function ( ) {
return "arrayLikeIter(...)" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , next : function ( ) {
2008-04-30 21:17:33 +04:00
if ( i >= _1df . length ) {
2006-11-07 02:48:11 +03:00
throw MochiKit . Iter . StopIteration ;
}
2008-04-30 21:17:33 +04:00
return _1df [ i ++ ] ;
2006-11-07 02:48:11 +03:00
} } ;
2008-04-30 21:17:33 +04:00
} , hasIterateNext : function ( _1e1 ) {
return ( _1e1 && typeof ( _1e1 . iterateNext ) == "function" ) ;
} , iterateNextIter : function ( _1e2 ) {
2006-11-07 02:48:11 +03:00
return { repr : function ( ) {
return "iterateNextIter(...)" ;
} , toString : MochiKit . Base . forwardCall ( "repr" ) , next : function ( ) {
2008-04-30 21:17:33 +04:00
var rval = _1e2 . iterateNext ( ) ;
2006-11-07 02:48:11 +03:00
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" ] ;
2008-04-30 21:17:33 +04:00
MochiKit . Logging . LogMessage = function ( num , _1e6 , info ) {
2006-11-07 02:48:11 +03:00
this . num = num ;
2008-04-30 21:17:33 +04:00
this . level = _1e6 ;
2006-11-07 02:48:11 +03:00
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" ) } ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Logging , { logLevelAtLeast : function ( _1e9 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Logging ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _1e9 ) == "string" ) {
_1e9 = self . LogLevel [ _1e9 ] ;
2006-11-07 02:48:11 +03:00
}
return function ( msg ) {
2008-04-30 21:17:33 +04:00
var _1ec = msg . level ;
if ( typeof ( _1ec ) == "string" ) {
_1ec = self . LogLevel [ _1ec ] ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _1ec >= _1e9 ;
2006-11-07 02:48:11 +03:00
} ;
} , isLogMessage : function ( ) {
2008-04-30 21:17:33 +04:00
var _1ed = MochiKit . Logging . LogMessage ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
if ( ! ( arguments [ i ] instanceof _1ed ) ) {
2006-11-07 02:48:11 +03:00
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 ( " " ) ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Logging . Logger = function ( _1f2 ) {
2006-11-07 02:48:11 +03:00
this . counter = 0 ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _1f2 ) == "undefined" || _1f2 === null ) {
_1f2 = - 1 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . maxSize = _1f2 ;
2006-11-07 02:48:11 +03:00
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 ) ;
}
2008-04-30 21:17:33 +04:00
} , addListener : function ( _1f7 , _1f8 , _1f9 ) {
if ( typeof ( _1f8 ) == "string" ) {
_1f8 = MochiKit . Logging . logLevelAtLeast ( _1f8 ) ;
}
var _1fa = [ _1f8 , _1f9 ] ;
_1fa . ident = _1f7 ;
this . listeners [ _1f7 ] = _1fa ;
} , removeListener : function ( _1fb ) {
delete this . listeners [ _1fb ] ;
} , baseLog : function ( _1fc , _1fd ) {
var msg = new MochiKit . Logging . LogMessage ( this . counter , _1fc , MochiKit . Base . extend ( null , arguments , 1 ) ) ;
2006-11-07 02:48:11 +03:00
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 ( ) ;
}
2008-04-30 21:17:33 +04:00
} , getMessages : function ( _1ff ) {
var _200 = 0 ;
if ( ! ( typeof ( _1ff ) == "undefined" || _1ff === null ) ) {
_200 = Math . max ( 0 , this . _messages . length - _1ff ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return this . _messages . slice ( _200 ) ;
} , getMessageText : function ( _201 ) {
if ( typeof ( _201 ) == "undefined" || _201 === null ) {
_201 = 30 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _202 = this . getMessages ( _201 ) ;
if ( _202 . length ) {
2006-11-07 02:48:11 +03:00
var lst = map ( function ( m ) {
return "\n [" + m . num + "] " + m . level + ": " + m . info . join ( " " ) ;
2008-04-30 21:17:33 +04:00
} , _202 ) ;
lst . unshift ( "LAST " + _202 . length + " MESSAGES:" ) ;
2006-11-07 02:48:11 +03:00
return lst . join ( "" ) ;
}
return "" ;
2008-04-30 21:17:33 +04:00
} , debuggingBookmarklet : function ( _205 ) {
2006-11-07 02:48:11 +03:00
if ( typeof ( MochiKit . LoggingPane ) == "undefined" ) {
alert ( this . getMessageText ( ) ) ;
} else {
2008-04-30 21:17:33 +04:00
MochiKit . LoggingPane . createLoggingPane ( _205 || false ) ;
2006-11-07 02:48:11 +03:00
}
} } ;
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 ) ;
2008-04-30 21:17:33 +04:00
var _207 = m . partial ;
var _208 = this . Logger ;
var _209 = _208 . prototype . baseLog ;
m . update ( this . Logger . prototype , { debug : _207 ( _209 , "DEBUG" ) , log : _207 ( _209 , "INFO" ) , error : _207 ( _209 , "ERROR" ) , fatal : _207 ( _209 , "FATAL" ) , warning : _207 ( _209 , "WARNING" ) } ) ;
2006-11-07 02:48:11 +03:00
var self = this ;
2008-04-30 21:17:33 +04:00
var _20b = function ( name ) {
2006-11-07 02:48:11 +03:00
return function ( ) {
self . logger [ name ] . apply ( self . logger , arguments ) ;
} ;
} ;
2008-04-30 21:17:33 +04:00
this . log = _20b ( "log" ) ;
this . logError = _20b ( "error" ) ;
this . logDebug = _20b ( "debug" ) ;
this . logFatal = _20b ( "fatal" ) ;
this . logWarning = _20b ( "warning" ) ;
this . logger = new _208 ( ) ;
2006-11-07 02:48:11 +03:00
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 ;
}
2008-04-30 21:17:33 +04:00
var year , _213 , day , hour , min , sec , msec ;
2006-11-07 02:48:11 +03:00
year = parseInt ( res [ 1 ] , 10 ) ;
if ( typeof ( res [ 2 ] ) == "undefined" || res [ 2 ] === "" ) {
return new Date ( year ) ;
}
2008-04-30 21:17:33 +04:00
_213 = parseInt ( res [ 2 ] , 10 ) - 1 ;
2006-11-07 02:48:11 +03:00
day = parseInt ( res [ 3 ] , 10 ) ;
if ( typeof ( res [ 4 ] ) == "undefined" || res [ 4 ] === "" ) {
2008-04-30 21:17:33 +04:00
return new Date ( year , _213 , day ) ;
2006-11-07 02:48:11 +03:00
}
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 ] === "" ) ) {
2008-04-30 21:17:33 +04:00
return new Date ( year , _213 , day , hour , min , sec , msec ) ;
2006-11-07 02:48:11 +03:00
}
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 ;
}
2008-04-30 21:17:33 +04:00
return new Date ( Date . UTC ( year , _213 , day , hour , min , sec , msec ) - ofs ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . DateTime . toISOTime = function ( date , _21b ) {
2006-11-07 02:48:11 +03:00
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
var hh = date . getHours ( ) ;
var mm = date . getMinutes ( ) ;
var ss = date . getSeconds ( ) ;
2008-04-30 21:17:33 +04:00
var lst = [ ( ( _21b && ( hh < 10 ) ) ? "0" + hh : hh ) , ( ( mm < 10 ) ? "0" + mm : mm ) , ( ( ss < 10 ) ? "0" + ss : ss ) ] ;
2006-11-07 02:48:11 +03:00
return lst . join ( ":" ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . DateTime . toISOTimestamp = function ( date , _221 ) {
2006-11-07 02:48:11 +03:00
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
2008-04-30 21:17:33 +04:00
var sep = _221 ? "T" : " " ;
var foot = _221 ? "Z" : "" ;
if ( _221 ) {
2006-11-07 02:48:11 +03:00
date = new Date ( date . getTime ( ) + ( date . getTimezoneOffset ( ) * 60000 ) ) ;
}
2008-04-30 21:17:33 +04:00
return MochiKit . DateTime . toISODate ( date ) + sep + MochiKit . DateTime . toISOTime ( date , _221 ) + foot ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . DateTime . toISODate = function ( date ) {
if ( typeof ( date ) == "undefined" || date === null ) {
return null ;
}
2008-04-30 21:17:33 +04:00
var _225 = MochiKit . DateTime . _padTwo ;
return [ date . getFullYear ( ) , _225 ( date . getMonth ( ) + 1 ) , _225 ( date . getDate ( ) ) ] . join ( "-" ) ;
2006-11-07 02:48:11 +03:00
} ;
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 ;
}
2008-04-30 21:17:33 +04:00
var _22a = MochiKit . DateTime . _padTwo ;
return [ _22a ( d . getMonth ( ) + 1 ) , _22a ( d . getDate ( ) ) , d . getFullYear ( ) ] . join ( "/" ) ;
2006-11-07 02:48:11 +03:00
} ;
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 {
2008-04-30 21:17:33 +04:00
( function ( _22f , _230 ) {
2006-11-07 02:48:11 +03:00
if ( ( typeof ( JSAN ) == "undefined" && typeof ( dojo ) == "undefined" ) || ( MochiKit . _ _export _ _ === false ) ) {
2008-04-30 21:17:33 +04:00
var all = _230 . EXPORT _TAGS [ ":all" ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < all . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_22f [ all [ i ] ] = _230 [ all [ i ] ] ;
2006-11-07 02:48:11 +03:00
}
}
} ) ( 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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . _numberFormatter = function ( _233 , _234 , _235 , _236 , _237 , _238 , _239 , _23a , _23b ) {
2006-11-07 02:48:11 +03:00
return function ( num ) {
num = parseFloat ( num ) ;
if ( typeof ( num ) == "undefined" || num === null || isNaN ( num ) ) {
2008-04-30 21:17:33 +04:00
return _233 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _23d = _234 ;
var _23e = _235 ;
2006-11-07 02:48:11 +03:00
if ( num < 0 ) {
num = - num ;
} else {
2008-04-30 21:17:33 +04:00
_23d = _23d . replace ( /-/ , "" ) ;
2006-11-07 02:48:11 +03:00
}
var me = arguments . callee ;
2008-04-30 21:17:33 +04:00
var fmt = MochiKit . Format . formatLocale ( _236 ) ;
if ( _237 ) {
2006-11-07 02:48:11 +03:00
num = num * 100 ;
2008-04-30 21:17:33 +04:00
_23e = fmt . percent + _23e ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
num = MochiKit . Format . roundToFixed ( num , _238 ) ;
var _241 = num . split ( /\./ ) ;
var _242 = _241 [ 0 ] ;
var frac = ( _241 . length == 1 ) ? "" : _241 [ 1 ] ;
2006-11-07 02:48:11 +03:00
var res = "" ;
2008-04-30 21:17:33 +04:00
while ( _242 . length < _239 ) {
_242 = "0" + _242 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( _23a ) {
while ( _242 . length > _23a ) {
var i = _242 . length - _23a ;
res = fmt . separator + _242 . substring ( i , _242 . length ) + res ;
_242 = _242 . substring ( 0 , i ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
res = _242 + res ;
if ( _238 > 0 ) {
while ( frac . length < _23b ) {
2006-11-07 02:48:11 +03:00
frac = frac + "0" ;
}
res = res + fmt . decimal + frac ;
}
2008-04-30 21:17:33 +04:00
return _23d + res + _23e ;
2006-11-07 02:48:11 +03:00
} ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . numberFormatter = function ( _246 , _247 , _248 ) {
if ( typeof ( _247 ) == "undefined" ) {
_247 = "" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _249 = _246 . match ( /((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/ ) ;
if ( ! _249 ) {
2006-11-07 02:48:11 +03:00
throw TypeError ( "Invalid pattern" ) ;
}
2008-04-30 21:17:33 +04:00
var _24a = _246 . substr ( 0 , _249 . index ) ;
var _24b = _246 . substr ( _249 . index + _249 [ 0 ] . length ) ;
if ( _24a . search ( /-/ ) == - 1 ) {
_24a = _24a + "-" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _24c = _249 [ 1 ] ;
var frac = ( typeof ( _249 [ 2 ] ) == "string" && _249 [ 2 ] != "" ) ? _249 [ 2 ] : "" ;
var _24e = ( typeof ( _249 [ 3 ] ) == "string" && _249 [ 3 ] != "" ) ;
var tmp = _24c . split ( /,/ ) ;
var _250 ;
if ( typeof ( _248 ) == "undefined" ) {
_248 = "default" ;
2006-11-07 02:48:11 +03:00
}
if ( tmp . length == 1 ) {
2008-04-30 21:17:33 +04:00
_250 = null ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_250 = tmp [ 1 ] . length ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _251 = _24c . length - _24c . replace ( /0/g , "" ) . length ;
var _252 = frac . length - frac . replace ( /0/g , "" ) . length ;
var _253 = frac . length ;
var rval = MochiKit . Format . _numberFormatter ( _247 , _24a , _24b , _248 , _24e , _253 , _251 , _250 , _252 ) ;
2006-11-07 02:48:11 +03:00
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 ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . formatLocale = function ( _258 ) {
if ( typeof ( _258 ) == "undefined" || _258 === null ) {
_258 = "default" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _258 ) == "string" ) {
var rval = MochiKit . Format . LOCALE [ _258 ] ;
2006-11-07 02:48:11 +03:00
if ( typeof ( rval ) == "string" ) {
rval = arguments . callee ( rval ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . LOCALE [ _258 ] = rval ;
2006-11-07 02:48:11 +03:00
}
return rval ;
} else {
2008-04-30 21:17:33 +04:00
return _258 ;
2006-11-07 02:48:11 +03:00
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . twoDigitAverage = function ( _25a , _25b ) {
if ( _25b ) {
var res = _25a / _25b ;
2006-11-07 02:48:11 +03:00
if ( ! isNaN ( res ) ) {
2008-04-30 21:17:33 +04:00
return MochiKit . Format . twoDigitFloat ( _25a / _25b ) ;
2006-11-07 02:48:11 +03:00
}
}
return "0" ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . twoDigitFloat = function ( _25d ) {
var sign = ( _25d < 0 ? "-" : "" ) ;
var s = Math . floor ( Math . abs ( _25d ) * 100 ) . toString ( ) ;
2006-11-07 02:48:11 +03:00
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 ;
}
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . lstrip = function ( str , _263 ) {
2006-11-07 02:48:11 +03:00
str = str + "" ;
if ( typeof ( str ) != "string" ) {
return null ;
}
2008-04-30 21:17:33 +04:00
if ( ! _263 ) {
2006-11-07 02:48:11 +03:00
return str . replace ( /^\s+/ , "" ) ;
} else {
2008-04-30 21:17:33 +04:00
return str . replace ( new RegExp ( "^[" + _263 + "]+" ) , "" ) ;
2006-11-07 02:48:11 +03:00
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . rstrip = function ( str , _265 ) {
2006-11-07 02:48:11 +03:00
str = str + "" ;
if ( typeof ( str ) != "string" ) {
return null ;
}
2008-04-30 21:17:33 +04:00
if ( ! _265 ) {
2006-11-07 02:48:11 +03:00
return str . replace ( /\s+$/ , "" ) ;
} else {
2008-04-30 21:17:33 +04:00
return str . replace ( new RegExp ( "[" + _265 + "]+$" ) , "" ) ;
2006-11-07 02:48:11 +03:00
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . strip = function ( str , _267 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Format ;
2008-04-30 21:17:33 +04:00
return self . rstrip ( self . lstrip ( str , _267 ) , _267 ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . truncToFixed = function ( _269 , _26a ) {
_269 = Math . floor ( _269 * Math . pow ( 10 , _26a ) ) ;
var res = ( _269 * Math . pow ( 10 , - _26a ) ) . toFixed ( _26a ) ;
2006-11-07 02:48:11 +03:00
if ( res . charAt ( 0 ) == "." ) {
res = "0" + res ;
}
return res ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . roundToFixed = function ( _26c , _26d ) {
return MochiKit . Format . truncToFixed ( _26c + 0.5 * Math . pow ( 10 , - _26d ) , _26d ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Format . percentFormat = function ( _26e ) {
return MochiKit . Format . twoDigitFloat ( 100 * _26e ) + "%" ;
2006-11-07 02:48:11 +03:00
} ;
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 {
2008-04-30 21:17:33 +04:00
( function ( _273 , _274 ) {
2006-11-07 02:48:11 +03:00
if ( ( typeof ( JSAN ) == "undefined" && typeof ( dojo ) == "undefined" ) || ( MochiKit . _ _export _ _ === false ) ) {
2008-04-30 21:17:33 +04:00
var all = _274 . EXPORT _TAGS [ ":all" ] ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < all . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_273 [ all [ i ] ] = _274 [ all [ i ] ] ;
2006-11-07 02:48:11 +03:00
}
}
} ) ( 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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Async . Deferred = function ( _277 ) {
2006-11-07 02:48:11 +03:00
this . chain = [ ] ;
this . id = this . _nextId ( ) ;
this . fired = - 1 ;
this . paused = 0 ;
this . results = [ null , null ] ;
2008-04-30 21:17:33 +04:00
this . canceller = _277 ;
2006-11-07 02:48:11 +03:00
this . silentlyCancelled = false ;
this . chained = false ;
} ;
MochiKit . Async . Deferred . prototype = { repr : function ( ) {
2008-04-30 21:17:33 +04:00
var _278 ;
2006-11-07 02:48:11 +03:00
if ( this . fired == - 1 ) {
2008-04-30 21:17:33 +04:00
_278 = "unfired" ;
2006-11-07 02:48:11 +03:00
} else {
if ( this . fired === 0 ) {
2008-04-30 21:17:33 +04:00
_278 = "success" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_278 = "error" ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return "Deferred(" + this . id + ", " + _278 + ")" ;
2006-11-07 02:48:11 +03:00
} , 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 ( ) {
2008-04-30 21:17:33 +04:00
var _283 = this . chain ;
var _284 = this . fired ;
var res = this . results [ _284 ] ;
2006-11-07 02:48:11 +03:00
var self = this ;
var cb = null ;
2008-04-30 21:17:33 +04:00
while ( _283 . length > 0 && this . paused === 0 ) {
var pair = _283 . shift ( ) ;
var f = pair [ _284 ] ;
2006-11-07 02:48:11 +03:00
if ( f === null ) {
continue ;
}
try {
res = f ( res ) ;
2008-04-30 21:17:33 +04:00
_284 = ( ( res instanceof Error ) ? 1 : 0 ) ;
2006-11-07 02:48:11 +03:00
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 ) {
2008-04-30 21:17:33 +04:00
_284 = 1 ;
2006-11-07 02:48:11 +03:00
if ( ! ( err instanceof Error ) ) {
err = new MochiKit . Async . GenericError ( err ) ;
}
res = err ;
}
}
2008-04-30 21:17:33 +04:00
this . fired = _284 ;
this . results [ _284 ] = res ;
2006-11-07 02:48:11 +03:00
if ( cb && this . paused ) {
res . addBoth ( cb ) ;
res . chained = true ;
}
} } ;
MochiKit . Base . update ( MochiKit . Async , { evalJSONRequest : function ( ) {
return eval ( "(" + arguments [ 0 ] . responseText + ")" ) ;
2008-04-30 21:17:33 +04:00
} , succeed : function ( _28b ) {
2006-11-07 02:48:11 +03:00
var d = new MochiKit . Async . Deferred ( ) ;
d . callback . apply ( d , arguments ) ;
return d ;
2008-04-30 21:17:33 +04:00
} , fail : function ( _28d ) {
2006-11-07 02:48:11 +03:00
var d = new MochiKit . Async . Deferred ( ) ;
d . errback . apply ( d , arguments ) ;
return d ;
} , getXMLHttpRequest : function ( ) {
var self = arguments . callee ;
if ( ! self . XMLHttpRequest ) {
2008-04-30 21:17:33 +04:00
var _290 = [ function ( ) {
2006-11-07 02:48:11 +03:00
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" ) ;
} ] ;
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _290 . length ; i ++ ) {
var func = _290 [ i ] ;
2006-11-07 02:48:11 +03:00
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 ) {
}
}
2008-04-30 21:17:33 +04:00
var _295 = null ;
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
_295 = this . status ;
if ( ! _295 && m . isNotEmpty ( this . responseText ) ) {
_295 = 304 ;
2006-11-07 02:48:11 +03:00
}
}
catch ( e ) {
}
2008-04-30 21:17:33 +04:00
if ( _295 == 200 || _295 == 304 ) {
2006-11-07 02:48:11 +03:00
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 ( ) ;
2008-04-30 21:17:33 +04:00
} , sendXMLHttpRequest : function ( req , _299 ) {
if ( typeof ( _299 ) == "undefined" || _299 === null ) {
_299 = "" ;
2006-11-07 02:48:11 +03:00
}
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 ) ;
2008-04-30 21:17:33 +04:00
req . send ( _299 ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
try {
req . onreadystatechange = null ;
}
catch ( ignore ) {
}
d . errback ( e ) ;
}
return d ;
} , 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 ;
}
}
req . open ( opts . method , url , true , opts . username , opts . password ) ;
if ( req . overrideMimeType && opts . mimeType ) {
req . overrideMimeType ( opts . mimeType ) ;
}
if ( opts . headers ) {
2008-04-30 21:17:33 +04:00
var _2a3 = opts . headers ;
if ( ! m . isArrayLike ( _2a3 ) ) {
_2a3 = m . items ( _2a3 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _2a3 . length ; i ++ ) {
var _2a5 = _2a3 [ i ] ;
var name = _2a5 [ 0 ] ;
var _2a7 = _2a5 [ 1 ] ;
req . setRequestHeader ( name , _2a7 ) ;
2006-11-07 02:48:11 +03:00
}
}
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 ;
2008-04-30 21:17:33 +04:00
} , wait : function ( _2b0 , _2b1 ) {
2006-11-07 02:48:11 +03:00
var d = new MochiKit . Async . Deferred ( ) ;
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _2b1 ) != "undefined" ) {
2006-11-07 02:48:11 +03:00
d . addCallback ( function ( ) {
2008-04-30 21:17:33 +04:00
return _2b1 ;
2006-11-07 02:48:11 +03:00
} ) ;
}
2008-04-30 21:17:33 +04:00
var _2b4 = setTimeout ( m . bind ( "callback" , d ) , Math . floor ( _2b0 * 1000 ) ) ;
2006-11-07 02:48:11 +03:00
d . canceller = function ( ) {
try {
2008-04-30 21:17:33 +04:00
clearTimeout ( _2b4 ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
}
} ;
return d ;
2008-04-30 21:17:33 +04:00
} , callLater : function ( _2b5 , func ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _2b8 = m . partial . apply ( m , m . extend ( null , arguments , 1 ) ) ;
return MochiKit . Async . wait ( _2b5 ) . addCallback ( function ( res ) {
return _2b8 ( ) ;
2006-11-07 02:48:11 +03:00
} ) ;
} } ) ;
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 ( ) {
2008-04-30 21:17:33 +04:00
var _2bb ;
2006-11-07 02:48:11 +03:00
if ( this . locked ) {
2008-04-30 21:17:33 +04:00
_2bb = "locked, " + this . waiting . length + " waiting" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_2bb = "unlocked" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return "DeferredLock(" + this . id + ", " + _2bb + ")" ;
2006-11-07 02:48:11 +03:00
} , toString : MochiKit . Base . forwardCall ( "repr" ) } ;
2008-04-30 21:17:33 +04:00
MochiKit . Async . DeferredList = function ( list , _2bd , _2be , _2bf , _2c0 ) {
MochiKit . Async . Deferred . apply ( this , [ _2c0 ] ) ;
2006-11-07 02:48:11 +03:00
this . list = list ;
2008-04-30 21:17:33 +04:00
var _2c1 = [ ] ;
this . resultList = _2c1 ;
2006-11-07 02:48:11 +03:00
this . finishedCount = 0 ;
2008-04-30 21:17:33 +04:00
this . fireOnOneCallback = _2bd ;
this . fireOnOneErrback = _2be ;
this . consumeErrors = _2bf ;
2006-11-07 02:48:11 +03:00
var cb = MochiKit . Base . bind ( this . _cbDeferred , this ) ;
for ( var i = 0 ; i < list . length ; i ++ ) {
var d = list [ i ] ;
2008-04-30 21:17:33 +04:00
_2c1 . push ( undefined ) ;
2006-11-07 02:48:11 +03:00
d . addCallback ( cb , i , true ) ;
d . addErrback ( cb , i , false ) ;
}
2008-04-30 21:17:33 +04:00
if ( list . length === 0 && ! _2bd ) {
2006-11-07 02:48:11 +03:00
this . callback ( this . resultList ) ;
}
} ;
MochiKit . Async . DeferredList . prototype = new MochiKit . Async . Deferred ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Async . DeferredList . prototype . _cbDeferred = function ( _2c5 , _2c6 , _2c7 ) {
this . resultList [ _2c5 ] = [ _2c6 , _2c7 ] ;
2006-11-07 02:48:11 +03:00
this . finishedCount += 1 ;
if ( this . fired == - 1 ) {
2008-04-30 21:17:33 +04:00
if ( _2c6 && this . fireOnOneCallback ) {
this . callback ( [ _2c5 , _2c7 ] ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( ! _2c6 && this . fireOnOneErrback ) {
this . errback ( _2c7 ) ;
2006-11-07 02:48:11 +03:00
} else {
if ( this . finishedCount == this . list . length ) {
this . callback ( this . resultList ) ;
}
}
}
}
2008-04-30 21:17:33 +04:00
if ( ! _2c6 && this . consumeErrors ) {
_2c7 = null ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _2c7 ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Async . gatherResults = function ( _2c8 ) {
var d = new MochiKit . Async . DeferredList ( _2c8 , false , true , false ) ;
d . addCallback ( function ( _2ca ) {
2006-11-07 02:48:11 +03:00
var ret = [ ] ;
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _2ca . length ; i ++ ) {
ret . push ( _2ca [ i ] [ 1 ] ) ;
2006-11-07 02:48:11 +03:00
}
return ret ;
} ) ;
return d ;
} ;
MochiKit . Async . maybeDeferred = function ( func ) {
var self = MochiKit . Async ;
2008-04-30 21:17:33 +04:00
var _2cf ;
2006-11-07 02:48:11 +03:00
try {
var r = func . apply ( null , MochiKit . Base . extend ( [ ] , arguments , 1 ) ) ;
if ( r instanceof self . Deferred ) {
2008-04-30 21:17:33 +04:00
_2cf = r ;
2006-11-07 02:48:11 +03:00
} else {
if ( r instanceof Error ) {
2008-04-30 21:17:33 +04:00
_2cf = self . fail ( r ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_2cf = self . succeed ( r ) ;
2006-11-07 02:48:11 +03:00
}
}
}
catch ( e ) {
2008-04-30 21:17:33 +04:00
_2cf = self . fail ( e ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _2cf ;
2006-11-07 02:48:11 +03:00
} ;
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 ) ;
2008-04-30 21:17:33 +04:00
ne ( "AlreadyCalledError" , function ( _2d3 ) {
this . deferred = _2d3 ;
2006-11-07 02:48:11 +03:00
} ) ;
2008-04-30 21:17:33 +04:00
ne ( "CancelledError" , function ( _2d4 ) {
this . deferred = _2d4 ;
2006-11-07 02:48:11 +03:00
} ) ;
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" , "setNodeAttribute" , "updateNodeAttributes" , "appendChildNodes" , "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" ] ;
MochiKit . DOM . EXPORT _OK = [ "domConverters" ] ;
MochiKit . DOM . DEPRECATED = [ [ "computedStyle" , "MochiKit.Style.computedStyle" , "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 ;
2008-04-30 21:17:33 +04:00
var _2dc = self . _document ;
var _2dd = self . _win ;
2006-11-07 02:48:11 +03:00
var rval ;
try {
self . _window = win ;
self . _document = win . document ;
rval = func ( ) ;
}
catch ( e ) {
2008-04-30 21:17:33 +04:00
self . _window = _2dd ;
self . _document = _2dc ;
2006-11-07 02:48:11 +03:00
throw e ;
}
2008-04-30 21:17:33 +04:00
self . _window = _2dd ;
self . _document = _2dc ;
2006-11-07 02:48:11 +03:00
return rval ;
} , formContents : function ( elem ) {
2008-04-30 21:17:33 +04:00
var _2e0 = [ ] ;
var _2e1 = [ ] ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Base ;
var self = MochiKit . DOM ;
if ( typeof ( elem ) == "undefined" || elem === null ) {
elem = self . _document ;
} else {
elem = self . getElement ( elem ) ;
}
m . nodeWalk ( elem , function ( elem ) {
var name = elem . name ;
if ( m . isNotEmpty ( name ) ) {
2008-04-30 21:17:33 +04:00
var _2e6 = elem . tagName . toUpperCase ( ) ;
if ( _2e6 === "INPUT" && ( elem . type == "radio" || elem . type == "checkbox" ) && ! elem . checked ) {
2006-11-07 02:48:11 +03:00
return null ;
}
2008-04-30 21:17:33 +04:00
if ( _2e6 === "SELECT" ) {
2006-11-07 02:48:11 +03:00
if ( elem . type == "select-one" ) {
if ( elem . selectedIndex >= 0 ) {
var opt = elem . options [ elem . selectedIndex ] ;
2008-04-30 21:17:33 +04:00
_2e0 . push ( name ) ;
_2e1 . push ( opt . value ) ;
2006-11-07 02:48:11 +03:00
return null ;
}
2008-04-30 21:17:33 +04:00
_2e0 . push ( name ) ;
_2e1 . push ( "" ) ;
2006-11-07 02:48:11 +03:00
return null ;
} else {
var opts = elem . options ;
if ( ! opts . length ) {
2008-04-30 21:17:33 +04:00
_2e0 . push ( name ) ;
_2e1 . push ( "" ) ;
2006-11-07 02:48:11 +03:00
return null ;
}
for ( var i = 0 ; i < opts . length ; i ++ ) {
var opt = opts [ i ] ;
if ( ! opt . selected ) {
continue ;
}
2008-04-30 21:17:33 +04:00
_2e0 . push ( name ) ;
_2e1 . push ( opt . value ) ;
2006-11-07 02:48:11 +03:00
}
return null ;
}
}
2008-04-30 21:17:33 +04:00
if ( _2e6 === "FORM" || _2e6 === "P" || _2e6 === "SPAN" || _2e6 === "DIV" ) {
2006-11-07 02:48:11 +03:00
return elem . childNodes ;
}
2008-04-30 21:17:33 +04:00
_2e0 . push ( name ) ;
_2e1 . push ( elem . value || "" ) ;
2006-11-07 02:48:11 +03:00
return null ;
}
return elem . childNodes ;
} ) ;
2008-04-30 21:17:33 +04:00
return [ _2e0 , _2e1 ] ;
2006-11-07 02:48:11 +03:00
} , withDocument : function ( doc , func ) {
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var _2ed = self . _document ;
2006-11-07 02:48:11 +03:00
var rval ;
try {
self . _document = doc ;
rval = func ( ) ;
}
catch ( e ) {
2008-04-30 21:17:33 +04:00
self . _document = _2ed ;
2006-11-07 02:48:11 +03:00
throw e ;
}
2008-04-30 21:17:33 +04:00
self . _document = _2ed ;
2006-11-07 02:48:11 +03:00
return rval ;
2008-04-30 21:17:33 +04:00
} , registerDOMConverter : function ( name , _2f0 , wrap , _2f2 ) {
MochiKit . DOM . domConverters . register ( name , _2f0 , wrap , _2f2 ) ;
2006-11-07 02:48:11 +03:00
} , coerceToDOM : function ( node , ctx ) {
var m = MochiKit . Base ;
var im = MochiKit . Iter ;
var self = MochiKit . DOM ;
if ( im ) {
var iter = im . iter ;
2008-04-30 21:17:33 +04:00
var _2f9 = im . repeat ;
2006-11-07 02:48:11 +03:00
var map = m . map ;
}
2008-04-30 21:17:33 +04:00
var _2fb = self . domConverters ;
var _2fc = arguments . callee ;
var _2fd = m . NotFound ;
2006-11-07 02:48:11 +03:00
while ( true ) {
if ( typeof ( node ) == "undefined" || node === null ) {
return null ;
}
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 ) {
2008-04-30 21:17:33 +04:00
var _2fe = null ;
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
_2fe = iter ( node ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
}
2008-04-30 21:17:33 +04:00
if ( _2fe ) {
return map ( _2fc , _2fe , _2f9 ( ctx ) ) ;
2006-11-07 02:48:11 +03:00
}
}
try {
2008-04-30 21:17:33 +04:00
node = _2fb . match ( node , ctx ) ;
2006-11-07 02:48:11 +03:00
continue ;
}
catch ( e ) {
2008-04-30 21:17:33 +04:00
if ( e != _2fd ) {
2006-11-07 02:48:11 +03:00
throw e ;
}
}
return self . _document . createTextNode ( node . toString ( ) ) ;
}
return undefined ;
2008-04-30 21:17:33 +04:00
} , isChildNode : function ( node , _300 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
node = self . getElement ( node ) ;
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _300 ) == "string" ) {
_300 = self . getElement ( _300 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( node === _300 ) {
2006-11-07 02:48:11 +03:00
return true ;
}
while ( node && node . tagName . toUpperCase ( ) != "BODY" ) {
node = node . parentNode ;
2008-04-30 21:17:33 +04:00
if ( node === _300 ) {
2006-11-07 02:48:11 +03:00
return true ;
}
}
return false ;
2008-04-30 21:17:33 +04:00
} , setNodeAttribute : function ( node , attr , _304 ) {
2006-11-07 02:48:11 +03:00
var o = { } ;
2008-04-30 21:17:33 +04:00
o [ attr ] = _304 ;
2006-11-07 02:48:11 +03:00
try {
return MochiKit . DOM . updateNodeAttributes ( node , o ) ;
}
catch ( e ) {
}
return null ;
} , getNodeAttribute : function ( node , attr ) {
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var _309 = self . attributeArray . renames [ attr ] ;
2006-11-07 02:48:11 +03:00
node = self . getElement ( node ) ;
try {
2008-04-30 21:17:33 +04:00
if ( _309 ) {
return node [ _309 ] ;
2006-11-07 02:48:11 +03:00
}
return node . getAttribute ( attr ) ;
}
catch ( e ) {
}
return null ;
2008-04-30 21:17:33 +04:00
} , updateNodeAttributes : function ( node , _30b ) {
2006-11-07 02:48:11 +03:00
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
}
2008-04-30 21:17:33 +04:00
if ( _30b ) {
var _30e = MochiKit . Base . updatetree ;
2006-11-07 02:48:11 +03:00
if ( self . attributeArray . compliant ) {
2008-04-30 21:17:33 +04:00
for ( var k in _30b ) {
var v = _30b [ k ] ;
2006-11-07 02:48:11 +03:00
if ( typeof ( v ) == "object" && typeof ( elem [ k ] ) == "object" ) {
2008-04-30 21:17:33 +04:00
_30e ( elem [ k ] , v ) ;
2006-11-07 02:48:11 +03:00
} else {
if ( k . substring ( 0 , 2 ) == "on" ) {
if ( typeof ( v ) == "string" ) {
v = new Function ( v ) ;
}
elem [ k ] = v ;
} else {
elem . setAttribute ( k , v ) ;
}
}
}
} else {
2008-04-30 21:17:33 +04:00
var _311 = self . attributeArray . renames ;
for ( k in _30b ) {
v = _30b [ k ] ;
var _312 = _311 [ k ] ;
2006-11-07 02:48:11 +03:00
if ( k == "style" && typeof ( v ) == "string" ) {
elem . style . cssText = v ;
} else {
2008-04-30 21:17:33 +04:00
if ( typeof ( _312 ) == "string" ) {
elem [ _312 ] = v ;
2006-11-07 02:48:11 +03:00
} else {
if ( typeof ( elem [ k ] ) == "object" && typeof ( v ) == "object" ) {
2008-04-30 21:17:33 +04:00
_30e ( elem [ k ] , v ) ;
2006-11-07 02:48:11 +03:00
} 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 ) ;
}
2008-04-30 21:17:33 +04:00
var _316 = [ self . coerceToDOM ( MochiKit . Base . extend ( null , arguments , 1 ) , elem ) ] ;
var _317 = MochiKit . Base . concat ;
while ( _316 . length ) {
var n = _316 . shift ( ) ;
2006-11-07 02:48:11 +03:00
if ( typeof ( n ) == "undefined" || n === null ) {
} else {
if ( typeof ( n . nodeType ) == "number" ) {
elem . appendChild ( n ) ;
} else {
2008-04-30 21:17:33 +04:00
_316 = _317 ( n , _316 ) ;
2006-11-07 02:48:11 +03:00
}
}
}
return elem ;
} , replaceChildNodes : function ( node ) {
var elem = node ;
var self = MochiKit . DOM ;
if ( typeof ( node ) == "string" ) {
elem = self . getElement ( node ) ;
arguments [ 0 ] = elem ;
}
2008-04-30 21:17:33 +04:00
var _31c ;
while ( ( _31c = elem . firstChild ) ) {
elem . removeChild ( _31c ) ;
2006-11-07 02:48:11 +03:00
}
if ( arguments . length < 2 ) {
return elem ;
} else {
return self . appendChildNodes . apply ( this , arguments ) ;
}
2008-04-30 21:17:33 +04:00
} , createDOM : function ( name , _31e ) {
2006-11-07 02:48:11 +03:00
var elem ;
var self = MochiKit . DOM ;
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _31e ) == "string" || typeof ( _31e ) == "number" ) {
2006-11-07 02:48:11 +03:00
var args = m . extend ( [ name , null ] , arguments , 1 ) ;
return arguments . callee . apply ( this , args ) ;
}
if ( typeof ( name ) == "string" ) {
2008-04-30 21:17:33 +04:00
var _323 = self . _xhtml ;
if ( _31e && ! self . attributeArray . compliant ) {
var _324 = "" ;
if ( "name" in _31e ) {
_324 += " name=\"" + self . escapeHTML ( _31e . name ) + "\"" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( name == "input" && "type" in _31e ) {
_324 += " type=\"" + self . escapeHTML ( _31e . type ) + "\"" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( _324 ) {
name = "<" + name + _324 + ">" ;
_323 = false ;
2006-11-07 02:48:11 +03:00
}
}
var d = self . _document ;
2008-04-30 21:17:33 +04:00
if ( _323 && d === document ) {
2006-11-07 02:48:11 +03:00
elem = d . createElementNS ( "http://www.w3.org/1999/xhtml" , name ) ;
} else {
elem = d . createElement ( name ) ;
}
} else {
elem = name ;
}
2008-04-30 21:17:33 +04:00
if ( _31e ) {
self . updateNodeAttributes ( elem , _31e ) ;
2006-11-07 02:48:11 +03:00
}
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 ) ;
2008-04-30 21:17:33 +04:00
var _32c = dest . parentNode ;
2006-11-07 02:48:11 +03:00
if ( src ) {
src = self . getElement ( src ) ;
2008-04-30 21:17:33 +04:00
_32c . replaceChild ( src , dest ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_32c . removeChild ( dest ) ;
2006-11-07 02:48:11 +03:00
}
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 ) ;
}
2008-04-30 21:17:33 +04:00
} , getElementsByTagAndClassName : function ( _32f , _330 , _331 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _32f ) == "undefined" || _32f === null ) {
_32f = "*" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _331 ) == "undefined" || _331 === null ) {
_331 = self . _document ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_331 = self . getElement ( _331 ) ;
var _333 = ( _331 . getElementsByTagName ( _32f ) || self . _document . all ) ;
if ( typeof ( _330 ) == "undefined" || _330 === null ) {
return MochiKit . Base . extend ( null , _333 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _334 = [ ] ;
for ( var i = 0 ; i < _333 . length ; i ++ ) {
var _336 = _333 [ i ] ;
var cls = _336 . className ;
2006-11-07 02:48:11 +03:00
if ( ! cls ) {
continue ;
}
2008-04-30 21:17:33 +04:00
var _338 = cls . split ( " " ) ;
for ( var j = 0 ; j < _338 . length ; j ++ ) {
if ( _338 [ j ] == _330 ) {
_334 . push ( _336 ) ;
2006-11-07 02:48:11 +03:00
break ;
}
}
}
2008-04-30 21:17:33 +04:00
return _334 ;
2006-11-07 02:48:11 +03:00
} , _newCallStack : function ( path , once ) {
var rval = function ( ) {
2008-04-30 21:17:33 +04:00
var _33d = arguments . callee . callStack ;
for ( var i = 0 ; i < _33d . length ; i ++ ) {
if ( _33d [ i ] . apply ( this , arguments ) === false ) {
2006-11-07 02:48:11 +03:00
break ;
}
}
if ( once ) {
try {
this [ path ] = null ;
}
catch ( e ) {
}
}
} ;
rval . callStack = [ ] ;
return rval ;
2008-04-30 21:17:33 +04:00
} , addToCallStack : function ( _33f , path , func , once ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var _344 = _33f [ path ] ;
var _345 = _344 ;
if ( ! ( typeof ( _344 ) == "function" && typeof ( _344 . callStack ) == "object" && _344 . callStack !== null ) ) {
_345 = self . _newCallStack ( path , once ) ;
if ( typeof ( _344 ) == "function" ) {
_345 . callStack . push ( _344 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_33f [ path ] = _345 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_345 . callStack . push ( func ) ;
2006-11-07 02:48:11 +03:00
} , addLoadEvent : function ( func ) {
var self = MochiKit . DOM ;
self . addToCallStack ( self . _window , "onload" , func , true ) ;
2008-04-30 21:17:33 +04:00
} , focusOnLoad : function ( _348 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
self . addLoadEvent ( function ( ) {
2008-04-30 21:17:33 +04:00
_348 = self . getElement ( _348 ) ;
if ( _348 ) {
_348 . focus ( ) ;
2006-11-07 02:48:11 +03:00
}
} ) ;
2008-04-30 21:17:33 +04:00
} , setElementClass : function ( _34a , _34b ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var obj = self . getElement ( _34a ) ;
2006-11-07 02:48:11 +03:00
if ( self . attributeArray . compliant ) {
2008-04-30 21:17:33 +04:00
obj . setAttribute ( "class" , _34b ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
obj . setAttribute ( "className" , _34b ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
} , toggleElementClass : function ( _34e ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var obj = self . getElement ( arguments [ i ] ) ;
2008-04-30 21:17:33 +04:00
if ( ! self . addElementClass ( obj , _34e ) ) {
self . removeElementClass ( obj , _34e ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
} , addElementClass : function ( _352 , _353 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var obj = self . getElement ( _352 ) ;
2006-11-07 02:48:11 +03:00
var cls = obj . className ;
if ( cls == undefined || cls . length === 0 ) {
2008-04-30 21:17:33 +04:00
self . setElementClass ( obj , _353 ) ;
2006-11-07 02:48:11 +03:00
return true ;
}
2008-04-30 21:17:33 +04:00
if ( cls == _353 ) {
2006-11-07 02:48:11 +03:00
return false ;
}
2008-04-30 21:17:33 +04:00
var _357 = cls . split ( " " ) ;
for ( var i = 0 ; i < _357 . length ; i ++ ) {
if ( _357 [ i ] == _353 ) {
2006-11-07 02:48:11 +03:00
return false ;
}
}
2008-04-30 21:17:33 +04:00
self . setElementClass ( obj , cls + " " + _353 ) ;
2006-11-07 02:48:11 +03:00
return true ;
2008-04-30 21:17:33 +04:00
} , removeElementClass : function ( _359 , _35a ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var obj = self . getElement ( _359 ) ;
2006-11-07 02:48:11 +03:00
var cls = obj . className ;
if ( cls == undefined || cls . length === 0 ) {
return false ;
}
2008-04-30 21:17:33 +04:00
if ( cls == _35a ) {
2006-11-07 02:48:11 +03:00
self . setElementClass ( obj , "" ) ;
return true ;
}
2008-04-30 21:17:33 +04:00
var _35e = cls . split ( " " ) ;
for ( var i = 0 ; i < _35e . length ; i ++ ) {
if ( _35e [ i ] == _35a ) {
_35e . splice ( i , 1 ) ;
self . setElementClass ( obj , _35e . join ( " " ) ) ;
2006-11-07 02:48:11 +03:00
return true ;
}
}
return false ;
2008-04-30 21:17:33 +04:00
} , swapElementClass : function ( _360 , _361 , _362 ) {
var obj = MochiKit . DOM . getElement ( _360 ) ;
var res = MochiKit . DOM . removeElementClass ( obj , _361 ) ;
2006-11-07 02:48:11 +03:00
if ( res ) {
2008-04-30 21:17:33 +04:00
MochiKit . DOM . addElementClass ( obj , _362 ) ;
2006-11-07 02:48:11 +03:00
}
return res ;
2008-04-30 21:17:33 +04:00
} , hasElementClass : function ( _365 , _366 ) {
var obj = MochiKit . DOM . getElement ( _365 ) ;
2006-11-07 02:48:11 +03:00
var cls = obj . className ;
if ( ! cls ) {
return false ;
}
2008-04-30 21:17:33 +04:00
var _369 = cls . split ( " " ) ;
2006-11-07 02:48:11 +03:00
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var good = false ;
2008-04-30 21:17:33 +04:00
for ( var j = 0 ; j < _369 . length ; j ++ ) {
if ( _369 [ j ] == arguments [ i ] ) {
2006-11-07 02:48:11 +03:00
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 = [ ] ;
}
2008-04-30 21:17:33 +04:00
var _371 = [ dom ] ;
2006-11-07 02:48:11 +03:00
var self = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
var _373 = self . escapeHTML ;
var _374 = self . attributeArray ;
while ( _371 . length ) {
dom = _371 . pop ( ) ;
2006-11-07 02:48:11 +03:00
if ( typeof ( dom ) == "string" ) {
lst . push ( dom ) ;
} else {
if ( dom . nodeType == 1 ) {
lst . push ( "<" + dom . tagName . toLowerCase ( ) ) ;
2008-04-30 21:17:33 +04:00
var _375 = [ ] ;
var _376 = _374 ( dom ) ;
for ( var i = 0 ; i < _376 . length ; i ++ ) {
var a = _376 [ i ] ;
_375 . push ( [ " " , a . name , "=\"" , _373 ( a . value ) , "\"" ] ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_375 . sort ( ) ;
for ( i = 0 ; i < _375 . length ; i ++ ) {
var _379 = _375 [ i ] ;
for ( var j = 0 ; j < _379 . length ; j ++ ) {
lst . push ( _379 [ j ] ) ;
2006-11-07 02:48:11 +03:00
}
}
if ( dom . hasChildNodes ( ) ) {
lst . push ( ">" ) ;
2008-04-30 21:17:33 +04:00
_371 . push ( "</" + dom . tagName . toLowerCase ( ) + ">" ) ;
var _37b = dom . childNodes ;
for ( i = _37b . length - 1 ; i >= 0 ; i -- ) {
_371 . push ( _37b [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
} else {
lst . push ( "/>" ) ;
}
} else {
if ( dom . nodeType == 3 ) {
2008-04-30 21:17:33 +04:00
lst . push ( _373 ( dom . nodeValue ) ) ;
2006-11-07 02:48:11 +03:00
}
}
}
}
return lst ;
2008-04-30 21:17:33 +04:00
} , scrapeText : function ( node , _37d ) {
2006-11-07 02:48:11 +03:00
var rval = [ ] ;
( function ( node ) {
var cn = node . childNodes ;
if ( cn ) {
for ( var i = 0 ; i < cn . length ; i ++ ) {
arguments . callee . call ( this , cn [ i ] ) ;
}
}
2008-04-30 21:17:33 +04:00
var _382 = node . nodeValue ;
if ( typeof ( _382 ) == "string" ) {
rval . push ( _382 ) ;
2006-11-07 02:48:11 +03:00
}
} ) ( MochiKit . DOM . getElement ( node ) ) ;
2008-04-30 21:17:33 +04:00
if ( _37d ) {
2006-11-07 02:48:11 +03:00
return rval ;
} else {
return rval . join ( "" ) ;
}
2008-04-30 21:17:33 +04:00
} , removeEmptyTextNodes : function ( _383 ) {
_383 = MochiKit . DOM . getElement ( _383 ) ;
for ( var i = 0 ; i < _383 . childNodes . length ; i ++ ) {
var node = _383 . childNodes [ i ] ;
2006-11-07 02:48:11 +03:00
if ( node . nodeType == 3 && ! /\S/ . test ( node . nodeValue ) ) {
node . parentNode . removeChild ( node ) ;
}
}
} , _ _new _ _ : function ( win ) {
var m = MochiKit . Base ;
if ( typeof ( document ) != "undefined" ) {
this . _document = document ;
2008-04-30 21:17:33 +04:00
this . _xhtml = document . createElementNS && document . createElement ( "testname" ) . localName == "testname" ;
2006-11-07 02:48:11 +03:00
} else {
if ( MochiKit . MockDOM ) {
this . _document = MochiKit . MockDOM . document ;
}
}
this . _window = win ;
this . domConverters = new m . AdapterRegistry ( ) ;
2008-04-30 21:17:33 +04:00
var _388 = this . _document . createElement ( "span" ) ;
var _389 ;
if ( _388 && _388 . attributes && _388 . attributes . length > 0 ) {
var _38a = m . filter ;
_389 = function ( node ) {
return _38a ( _389 . ignoreAttrFilter , node . attributes ) ;
} ;
_389 . ignoreAttr = { } ;
var _38c = _388 . attributes ;
var _38d = _389 . ignoreAttr ;
for ( var i = 0 ; i < _38c . length ; i ++ ) {
var a = _38c [ i ] ;
_38d [ a . name ] = a . value ;
}
_389 . ignoreAttrFilter = function ( a ) {
return ( _389 . ignoreAttr [ a . name ] != a . value ) ;
} ;
_389 . compliant = false ;
_389 . renames = { "class" : "className" , "checked" : "defaultChecked" , "usemap" : "useMap" , "for" : "htmlFor" , "readonly" : "readOnly" , "colspan" : "colSpan" , "bgcolor" : "bgColor" } ;
} else {
_389 = function ( node ) {
2006-11-07 02:48:11 +03:00
return node . attributes ;
} ;
2008-04-30 21:17:33 +04:00
_389 . compliant = true ;
_389 . renames = { } ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . attributeArray = _389 ;
var _392 = function ( _393 , arr ) {
var _395 = arr [ 1 ] . split ( "." ) ;
2006-11-07 02:48:11 +03:00
var str = "" ;
var obj = { } ;
2008-04-30 21:17:33 +04:00
str += "if (!MochiKit." + _395 [ 1 ] + ") { throw new Error(\"" ;
2006-11-07 02:48:11 +03:00
str += "This function has been deprecated and depends on MochiKit." ;
2008-04-30 21:17:33 +04:00
str += _395 [ 1 ] + ".\");}" ;
str += "return MochiKit." + _395 [ 1 ] + "." + arr [ 0 ] ;
2006-11-07 02:48:11 +03:00
str += ".apply(this, arguments);" ;
2008-04-30 21:17:33 +04:00
obj [ _395 [ 2 ] ] = new Function ( str ) ;
MochiKit . Base . update ( MochiKit [ _393 ] , obj ) ;
2006-11-07 02:48:11 +03:00
} ;
for ( var i ; i < MochiKit . DOM . DEPRECATED . length ; i ++ ) {
2008-04-30 21:17:33 +04:00
_392 ( "DOM" , MochiKit . DOM . DEPRECATED [ i ] ) ;
}
var _398 = this . createDOMFunc ;
this . UL = _398 ( "ul" ) ;
this . OL = _398 ( "ol" ) ;
this . LI = _398 ( "li" ) ;
this . TD = _398 ( "td" ) ;
this . TR = _398 ( "tr" ) ;
this . TBODY = _398 ( "tbody" ) ;
this . THEAD = _398 ( "thead" ) ;
this . TFOOT = _398 ( "tfoot" ) ;
this . TABLE = _398 ( "table" ) ;
this . TH = _398 ( "th" ) ;
this . INPUT = _398 ( "input" ) ;
this . SPAN = _398 ( "span" ) ;
this . A = _398 ( "a" ) ;
this . DIV = _398 ( "div" ) ;
this . IMG = _398 ( "img" ) ;
this . BUTTON = _398 ( "button" ) ;
this . TT = _398 ( "tt" ) ;
this . PRE = _398 ( "pre" ) ;
this . H1 = _398 ( "h1" ) ;
this . H2 = _398 ( "h2" ) ;
this . H3 = _398 ( "h3" ) ;
this . BR = _398 ( "br" ) ;
this . HR = _398 ( "hr" ) ;
this . LABEL = _398 ( "label" ) ;
this . TEXTAREA = _398 ( "textarea" ) ;
this . FORM = _398 ( "form" ) ;
this . P = _398 ( "p" ) ;
this . SELECT = _398 ( "select" ) ;
this . OPTION = _398 ( "option" ) ;
this . OPTGROUP = _398 ( "optgroup" ) ;
this . LEGEND = _398 ( "legend" ) ;
this . FIELDSET = _398 ( "fieldset" ) ;
this . STRONG = _398 ( "strong" ) ;
this . CANVAS = _398 ( "canvas" ) ;
2006-11-07 02:48:11 +03:00
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.Style" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
}
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 = [ "setOpacity" , "getOpacity" , "setStyle" , "getStyle" , "computedStyle" , "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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Style , { computedStyle : function ( elem , _3a0 ) {
2006-11-07 02:48:11 +03:00
var dom = MochiKit . DOM ;
var d = dom . _document ;
elem = dom . getElement ( elem ) ;
2008-04-30 21:17:33 +04:00
_3a0 = MochiKit . Base . camelize ( _3a0 ) ;
2006-11-07 02:48:11 +03:00
if ( ! elem || elem == d ) {
return undefined ;
}
2008-04-30 21:17:33 +04:00
if ( _3a0 == "opacity" && elem . filters ) {
2006-11-07 02:48:11 +03:00
try {
return elem . filters . item ( "DXImageTransform.Microsoft.Alpha" ) . opacity / 100 ;
}
catch ( e ) {
try {
return elem . filters . item ( "alpha" ) . opacity / 100 ;
}
catch ( e ) {
}
}
}
if ( elem . currentStyle ) {
2008-04-30 21:17:33 +04:00
return elem . currentStyle [ _3a0 ] ;
2006-11-07 02:48:11 +03:00
}
if ( typeof ( d . defaultView ) == "undefined" ) {
return undefined ;
}
if ( d . defaultView === null ) {
return undefined ;
}
2008-04-30 21:17:33 +04:00
var _3a3 = d . defaultView . getComputedStyle ( elem , null ) ;
if ( typeof ( _3a3 ) == "undefined" || _3a3 === null ) {
2006-11-07 02:48:11 +03:00
return undefined ;
}
2008-04-30 21:17:33 +04:00
var _3a4 = _3a0 . replace ( /([A-Z])/g , "-$1" ) . toLowerCase ( ) ;
return _3a3 . getPropertyValue ( _3a4 ) ;
} , getStyle : function ( elem , _3a6 ) {
2006-11-07 02:48:11 +03:00
elem = MochiKit . DOM . getElement ( elem ) ;
2008-04-30 21:17:33 +04:00
var _3a7 = elem . style [ MochiKit . Base . camelize ( _3a6 ) ] ;
if ( ! _3a7 ) {
2006-11-07 02:48:11 +03:00
if ( document . defaultView && document . defaultView . getComputedStyle ) {
var css = document . defaultView . getComputedStyle ( elem , null ) ;
2008-04-30 21:17:33 +04:00
_3a7 = css ? css . getPropertyValue ( _3a6 ) : null ;
2006-11-07 02:48:11 +03:00
} else {
if ( elem . currentStyle ) {
2008-04-30 21:17:33 +04:00
_3a7 = elem . currentStyle [ MochiKit . Base . camelize ( _3a6 ) ] ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
if ( /Opera/ . test ( navigator . userAgent ) && ( MochiKit . Base . find ( [ "left" , "top" , "right" , "bottom" ] , _3a6 ) != - 1 ) ) {
2006-11-07 02:48:11 +03:00
if ( MochiKit . Style . getStyle ( elem , "position" ) == "static" ) {
2008-04-30 21:17:33 +04:00
_3a7 = "auto" ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return _3a7 == "auto" ? null : _3a7 ;
} , setStyle : function ( elem , _3aa ) {
2006-11-07 02:48:11 +03:00
elem = MochiKit . DOM . getElement ( elem ) ;
2008-04-30 21:17:33 +04:00
for ( name in _3aa ) {
elem . style [ MochiKit . Base . camelize ( name ) ] = _3aa [ name ] ;
2006-11-07 02:48:11 +03:00
}
} , getOpacity : function ( elem ) {
2008-04-30 21:17:33 +04:00
var _3ac ;
if ( _3ac = MochiKit . Style . getStyle ( elem , "opacity" ) ) {
return parseFloat ( _3ac ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( _3ac = ( MochiKit . Style . getStyle ( elem , "filter" ) || "" ) . match ( /alpha\(opacity=(.*)\)/ ) ) {
if ( _3ac [ 1 ] ) {
return parseFloat ( _3ac [ 1 ] ) / 100 ;
2006-11-07 02:48:11 +03:00
}
}
return 1 ;
} , setOpacity : function ( elem , o ) {
elem = MochiKit . DOM . getElement ( elem ) ;
var self = MochiKit . Style ;
if ( o == 1 ) {
2008-04-30 21:17:33 +04:00
var _3b0 = /Gecko/ . test ( navigator . userAgent ) && ! ( /Konqueror|Safari|KHTML/ . test ( navigator . userAgent ) ) ;
self . setStyle ( elem , { opacity : _3b0 ? 0.999999 : 1 } ) ;
2006-11-07 02:48:11 +03:00
if ( /MSIE/ . test ( navigator . userAgent ) ) {
self . setStyle ( elem , { filter : self . getStyle ( elem , "filter" ) . replace ( /alpha\([^\)]*\)/gi , "" ) } ) ;
}
} else {
if ( o < 0.00001 ) {
o = 0 ;
}
self . setStyle ( elem , { opacity : o } ) ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
self . setStyle ( elem , { filter : self . getStyle ( elem , "filter" ) . replace ( /alpha\([^\)]*\)/gi , "" ) + "alpha(opacity=" + o * 100 + ")" } ) ;
}
}
2008-04-30 21:17:33 +04:00
} , getElementPosition : function ( elem , _3b2 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Style ;
var dom = MochiKit . DOM ;
elem = dom . getElement ( elem ) ;
if ( ! elem || ( ! ( elem . x && elem . y ) && ( ! elem . parentNode == null || self . computedStyle ( elem , "display" ) == "none" ) ) ) {
return undefined ;
}
var c = new self . Coordinates ( 0 , 0 ) ;
var box = null ;
2008-04-30 21:17:33 +04:00
var _3b7 = null ;
2006-11-07 02:48:11 +03:00
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 ;
2008-04-30 21:17:33 +04:00
_3b7 = elem . offsetParent ;
if ( _3b7 != elem ) {
while ( _3b7 ) {
c . x += _3b7 . offsetLeft ;
c . y += _3b7 . offsetTop ;
_3b7 = _3b7 . offsetParent ;
2006-11-07 02:48:11 +03:00
}
}
var ua = navigator . userAgent . toLowerCase ( ) ;
if ( ( typeof ( opera ) != "undefined" && parseFloat ( opera . version ( ) ) < 9 ) || ( ua . indexOf ( "safari" ) != - 1 && self . computedStyle ( elem , "position" ) == "absolute" ) ) {
c . x -= b . offsetLeft ;
c . y -= b . offsetTop ;
}
}
}
}
2008-04-30 21:17:33 +04:00
if ( typeof ( _3b2 ) != "undefined" ) {
_3b2 = arguments . callee ( _3b2 ) ;
if ( _3b2 ) {
c . x -= ( _3b2 . x || 0 ) ;
c . y -= ( _3b2 . y || 0 ) ;
2006-11-07 02:48:11 +03:00
}
}
if ( elem . parentNode ) {
2008-04-30 21:17:33 +04:00
_3b7 = elem . parentNode ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_3b7 = null ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
while ( _3b7 ) {
var _3bc = _3b7 . tagName . toUpperCase ( ) ;
if ( _3bc === "BODY" || _3bc === "HTML" ) {
2006-11-07 02:48:11 +03:00
break ;
}
2008-04-30 21:17:33 +04:00
c . x -= _3b7 . scrollLeft ;
c . y -= _3b7 . scrollTop ;
if ( _3b7 . parentNode ) {
_3b7 = _3b7 . parentNode ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_3b7 = null ;
2006-11-07 02:48:11 +03:00
}
}
return c ;
2008-04-30 21:17:33 +04:00
} , setElementPosition : function ( elem , _3be , _3bf ) {
2006-11-07 02:48:11 +03:00
elem = MochiKit . DOM . getElement ( elem ) ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _3bf ) == "undefined" ) {
_3bf = "px" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _3c0 = { } ;
var _3c1 = MochiKit . Base . isUndefinedOrNull ;
if ( ! _3c1 ( _3be . x ) ) {
_3c0 [ "left" ] = _3be . x + _3bf ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( ! _3c1 ( _3be . y ) ) {
_3c0 [ "top" ] = _3be . y + _3bf ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
MochiKit . DOM . updateNodeAttributes ( elem , { "style" : _3c0 } ) ;
2006-11-07 02:48:11 +03:00
} , 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 . computedStyle ( elem , "display" ) ;
if ( disp != "none" && disp != "" && typeof ( disp ) != "undefined" ) {
return new self . Dimensions ( elem . offsetWidth || 0 , elem . offsetHeight || 0 ) ;
}
var s = elem . style ;
2008-04-30 21:17:33 +04:00
var _3c7 = s . visibility ;
var _3c8 = s . position ;
2006-11-07 02:48:11 +03:00
s . visibility = "hidden" ;
s . position = "absolute" ;
s . display = "" ;
2008-04-30 21:17:33 +04:00
var _3c9 = elem . offsetWidth ;
var _3ca = elem . offsetHeight ;
2006-11-07 02:48:11 +03:00
s . display = "none" ;
2008-04-30 21:17:33 +04:00
s . position = _3c8 ;
s . visibility = _3c7 ;
return new self . Dimensions ( _3c9 , _3ca ) ;
} , setElementDimensions : function ( elem , _3cc , _3cd ) {
2006-11-07 02:48:11 +03:00
elem = MochiKit . DOM . getElement ( elem ) ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _3cd ) == "undefined" ) {
_3cd = "px" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _3ce = { } ;
var _3cf = MochiKit . Base . isUndefinedOrNull ;
if ( ! _3cf ( _3cc . w ) ) {
_3ce [ "width" ] = _3cc . w + _3cd ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( ! _3cf ( _3cc . h ) ) {
_3ce [ "height" ] = _3cc . h + _3cd ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
MochiKit . DOM . updateNodeAttributes ( elem , { "style" : _3ce } ) ;
} , setDisplayForElement : function ( _3d0 , _3d1 ) {
var _3d2 = MochiKit . Base . extend ( null , arguments , 1 ) ;
var _3d3 = MochiKit . DOM . getElement ;
for ( var i = 0 ; i < _3d2 . length ; i ++ ) {
var _3d1 = _3d3 ( _3d2 [ i ] ) ;
if ( _3d1 ) {
_3d1 . style . display = _3d0 ;
2006-11-07 02:48:11 +03:00
}
}
} , 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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . LoggingPane . createLoggingPane = function ( _3dd ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . LoggingPane ;
2008-04-30 21:17:33 +04:00
_3dd = ! ( ! _3dd ) ;
if ( m . _loggingPane && m . _loggingPane . inline != _3dd ) {
2006-11-07 02:48:11 +03:00
m . _loggingPane . closePane ( ) ;
m . _loggingPane = null ;
}
if ( ! m . _loggingPane || m . _loggingPane . closed ) {
2008-04-30 21:17:33 +04:00
m . _loggingPane = new m . LoggingPane ( _3dd , MochiKit . Logging . logger ) ;
2006-11-07 02:48:11 +03:00
}
return m . _loggingPane ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . LoggingPane . LoggingPane = function ( _3df , _3e0 ) {
if ( typeof ( _3e0 ) == "undefined" || _3e0 === null ) {
_3e0 = MochiKit . Logging . logger ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . logger = _3e0 ;
var _3e1 = MochiKit . Base . update ;
var _3e2 = MochiKit . Base . updatetree ;
2006-11-07 02:48:11 +03:00
var bind = MochiKit . Base . bind ;
2008-04-30 21:17:33 +04:00
var _3e4 = MochiKit . Base . clone ;
2006-11-07 02:48:11 +03:00
var win = window ;
var uid = "_MochiKit_LoggingPane" ;
if ( typeof ( MochiKit . DOM ) != "undefined" ) {
win = MochiKit . DOM . currentWindow ( ) ;
}
2008-04-30 21:17:33 +04:00
if ( ! _3df ) {
2006-11-07 02:48:11 +03:00
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 ;
2008-04-30 21:17:33 +04:00
var _3eb = doc . getElementById ( uid ) ;
var _3ec = ! ! _3eb ;
if ( _3eb && typeof ( _3eb . loggingPane ) != "undefined" ) {
_3eb . loggingPane . logger = this . logger ;
_3eb . loggingPane . buildAndApplyFilter ( ) ;
return _3eb . loggingPane ;
}
if ( _3ec ) {
var _3ed ;
while ( ( _3ed = _3eb . firstChild ) ) {
_3eb . removeChild ( _3ed ) ;
}
} else {
_3eb = doc . createElement ( "div" ) ;
_3eb . id = uid ;
}
_3eb . loggingPane = this ;
var _3ee = doc . createElement ( "input" ) ;
var _3ef = doc . createElement ( "input" ) ;
var _3f0 = doc . createElement ( "button" ) ;
var _3f1 = doc . createElement ( "button" ) ;
var _3f2 = doc . createElement ( "button" ) ;
var _3f3 = doc . createElement ( "button" ) ;
var _3f4 = doc . createElement ( "div" ) ;
var _3f5 = doc . createElement ( "div" ) ;
var _3f6 = uid + "_Listener" ;
this . colorTable = _3e4 ( this . colorTable ) ;
var _3f7 = [ ] ;
var _3f8 = null ;
var _3f9 = function ( msg ) {
var _3fb = msg . level ;
if ( typeof ( _3fb ) == "number" ) {
_3fb = MochiKit . Logging . LogLevel [ _3fb ] ;
}
return _3fb ;
} ;
var _3fc = function ( msg ) {
2006-11-07 02:48:11 +03:00
return msg . info . join ( " " ) ;
} ;
2008-04-30 21:17:33 +04:00
var _3fe = bind ( function ( msg ) {
var _400 = _3f9 ( msg ) ;
var text = _3fc ( msg ) ;
var c = this . colorTable [ _400 ] ;
2006-11-07 02:48:11 +03:00
var p = doc . createElement ( "span" ) ;
2008-04-30 21:17:33 +04:00
p . className = "MochiKit-LogMessage MochiKit-LogLevel-" + _400 ;
2006-11-07 02:48:11 +03:00
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 ;
2008-04-30 21:17:33 +04:00
p . appendChild ( doc . createTextNode ( _400 + ": " + text ) ) ;
_3f5 . appendChild ( p ) ;
_3f5 . appendChild ( doc . createElement ( "br" ) ) ;
if ( _3f4 . offsetHeight > _3f4 . scrollHeight ) {
_3f4 . scrollTop = 0 ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_3f4 . scrollTop = _3f4 . scrollHeight ;
2006-11-07 02:48:11 +03:00
}
} , this ) ;
2008-04-30 21:17:33 +04:00
var _404 = function ( msg ) {
_3f7 [ _3f7 . length ] = msg ;
_3fe ( msg ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
var _406 = function ( ) {
var _407 , _408 ;
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
_407 = new RegExp ( _3ee . value ) ;
_408 = new RegExp ( _3ef . value ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
logDebug ( "Error in filter regex: " + e . message ) ;
return null ;
}
return function ( msg ) {
2008-04-30 21:17:33 +04:00
return ( _407 . test ( _3f9 ( msg ) ) && _408 . test ( _3fc ( msg ) ) ) ;
2006-11-07 02:48:11 +03:00
} ;
} ;
2008-04-30 21:17:33 +04:00
var _40a = function ( ) {
while ( _3f5 . firstChild ) {
_3f5 . removeChild ( _3f5 . firstChild ) ;
2006-11-07 02:48:11 +03:00
}
} ;
2008-04-30 21:17:33 +04:00
var _40b = function ( ) {
_3f7 = [ ] ;
_40a ( ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
var _40c = bind ( function ( ) {
2006-11-07 02:48:11 +03:00
if ( this . closed ) {
return ;
}
this . closed = true ;
if ( MochiKit . LoggingPane . _loggingPane == this ) {
MochiKit . LoggingPane . _loggingPane = null ;
}
2008-04-30 21:17:33 +04:00
this . logger . removeListener ( _3f6 ) ;
_3eb . loggingPane = null ;
if ( _3df ) {
_3eb . parentNode . removeChild ( _3eb ) ;
2006-11-07 02:48:11 +03:00
} else {
this . win . close ( ) ;
}
} , this ) ;
2008-04-30 21:17:33 +04:00
var _40d = function ( ) {
_40a ( ) ;
for ( var i = 0 ; i < _3f7 . length ; i ++ ) {
var msg = _3f7 [ i ] ;
if ( _3f8 === null || _3f8 ( msg ) ) {
_3fe ( msg ) ;
2006-11-07 02:48:11 +03:00
}
}
} ;
this . buildAndApplyFilter = function ( ) {
2008-04-30 21:17:33 +04:00
_3f8 = _406 ( ) ;
_40d ( ) ;
this . logger . removeListener ( _3f6 ) ;
this . logger . addListener ( _3f6 , _3f8 , _404 ) ;
} ;
var _410 = bind ( function ( ) {
_3f7 = this . logger . getMessages ( ) ;
_40d ( ) ;
2006-11-07 02:48:11 +03:00
} , this ) ;
2008-04-30 21:17:33 +04:00
var _411 = bind ( function ( _412 ) {
_412 = _412 || window . event ;
key = _412 . which || _412 . keyCode ;
2006-11-07 02:48:11 +03:00
if ( key == 13 ) {
this . buildAndApplyFilter ( ) ;
}
} , this ) ;
2008-04-30 21:17:33 +04:00
var _413 = "display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: " + this . logFont ;
if ( _3df ) {
_413 += "; height: 10em; border-top: 2px solid black" ;
} else {
_413 += "; height: 100%;" ;
}
_3eb . style . cssText = _413 ;
if ( ! _3ec ) {
doc . body . appendChild ( _3eb ) ;
}
_413 = { "cssText" : "width: 33%; display: inline; font: " + this . logFont } ;
_3e2 ( _3ee , { "value" : "FATAL|ERROR|WARNING|INFO|DEBUG" , "onkeypress" : _411 , "style" : _413 } ) ;
_3eb . appendChild ( _3ee ) ;
_3e2 ( _3ef , { "value" : ".*" , "onkeypress" : _411 , "style" : _413 } ) ;
_3eb . appendChild ( _3ef ) ;
_413 = "width: 8%; display:inline; font: " + this . logFont ;
_3f0 . appendChild ( doc . createTextNode ( "Filter" ) ) ;
_3f0 . onclick = bind ( "buildAndApplyFilter" , this ) ;
_3f0 . style . cssText = _413 ;
_3eb . appendChild ( _3f0 ) ;
_3f1 . appendChild ( doc . createTextNode ( "Load" ) ) ;
_3f1 . onclick = _410 ;
_3f1 . style . cssText = _413 ;
_3eb . appendChild ( _3f1 ) ;
_3f2 . appendChild ( doc . createTextNode ( "Clear" ) ) ;
_3f2 . onclick = _40b ;
_3f2 . style . cssText = _413 ;
_3eb . appendChild ( _3f2 ) ;
_3f3 . appendChild ( doc . createTextNode ( "Close" ) ) ;
_3f3 . onclick = _40c ;
_3f3 . style . cssText = _413 ;
_3eb . appendChild ( _3f3 ) ;
_3f4 . style . cssText = "overflow: auto; width: 100%" ;
_3f5 . style . cssText = "width: 100%; height: " + ( _3df ? "8em" : "100%" ) ;
_3f4 . appendChild ( _3f5 ) ;
_3eb . appendChild ( _3f4 ) ;
2006-11-07 02:48:11 +03:00
this . buildAndApplyFilter ( ) ;
2008-04-30 21:17:33 +04:00
_410 ( ) ;
if ( _3df ) {
2006-11-07 02:48:11 +03:00
this . win = undefined ;
} else {
this . win = win ;
}
2008-04-30 21:17:33 +04:00
this . inline = _3df ;
this . closePane = _40c ;
2006-11-07 02:48:11 +03:00
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 . Base ) == "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Color depends on MochiKit.DOM" ;
}
try {
if ( typeof ( MochiKit . Base ) == "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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Color . Color = function ( red , _415 , blue , _417 ) {
if ( typeof ( _417 ) == "undefined" || _417 === null ) {
_417 = 1 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . rgb = { r : red , g : _415 , b : blue , a : _417 } ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Color . Color . prototype = { _ _class _ _ : MochiKit . Color . Color , colorWithAlpha : function ( _418 ) {
2006-11-07 02:48:11 +03:00
var rgb = this . rgb ;
var m = MochiKit . Color ;
2008-04-30 21:17:33 +04:00
return m . Color . fromRGB ( rgb . r , rgb . g , rgb . b , _418 ) ;
2006-11-07 02:48:11 +03:00
} , colorWithHue : function ( hue ) {
var hsl = this . asHSL ( ) ;
hsl . h = hue ;
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
2008-04-30 21:17:33 +04:00
} , colorWithSaturation : function ( _41e ) {
2006-11-07 02:48:11 +03:00
var hsl = this . asHSL ( ) ;
2008-04-30 21:17:33 +04:00
hsl . s = _41e ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
2008-04-30 21:17:33 +04:00
} , colorWithLightness : function ( _421 ) {
2006-11-07 02:48:11 +03:00
var hsl = this . asHSL ( ) ;
2008-04-30 21:17:33 +04:00
hsl . l = _421 ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
2008-04-30 21:17:33 +04:00
} , darkerColorWithLevel : function ( _424 ) {
2006-11-07 02:48:11 +03:00
var hsl = this . asHSL ( ) ;
2008-04-30 21:17:33 +04:00
hsl . l = Math . max ( hsl . l - _424 , 0 ) ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
2008-04-30 21:17:33 +04:00
} , lighterColorWithLevel : function ( _427 ) {
2006-11-07 02:48:11 +03:00
var hsl = this . asHSL ( ) ;
2008-04-30 21:17:33 +04:00
hsl . l = Math . min ( hsl . l + _427 , 1 ) ;
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromHSL ( hsl ) ;
2008-04-30 21:17:33 +04:00
} , blendedColor : function ( _42a , _42b ) {
if ( typeof ( _42b ) == "undefined" || _42b === null ) {
_42b = 0.5 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var sf = 1 - _42b ;
2006-11-07 02:48:11 +03:00
var s = this . rgb ;
2008-04-30 21:17:33 +04:00
var d = _42a . rgb ;
var df = _42b ;
2006-11-07 02:48:11 +03:00
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 ) ) ;
2008-04-30 21:17:33 +04:00
} , compareRGB : function ( _430 ) {
2006-11-07 02:48:11 +03:00
var a = this . asRGB ( ) ;
2008-04-30 21:17:33 +04:00
var b = _430 . asRGB ( ) ;
2006-11-07 02:48:11 +03:00
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 ( ", " ) + ")" ;
} } ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Color . Color , { fromRGB : function ( red , _447 , blue , _449 ) {
var _44a = MochiKit . Color . Color ;
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
2008-04-30 21:17:33 +04:00
_447 = rgb . g ;
2006-11-07 02:48:11 +03:00
blue = rgb . b ;
if ( typeof ( rgb . a ) == "undefined" ) {
2008-04-30 21:17:33 +04:00
_449 = undefined ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_449 = rgb . a ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
return new _44a ( red , _447 , blue , _449 ) ;
} , fromHSL : function ( hue , _44d , _44e , _44f ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromRGB ( m . hslToRGB . apply ( m , arguments ) ) ;
2008-04-30 21:17:33 +04:00
} , fromHSV : function ( hue , _452 , _453 , _454 ) {
2006-11-07 02:48:11 +03:00
var m = MochiKit . Color ;
return m . Color . fromRGB ( m . hsvToRGB . apply ( m , arguments ) ) ;
} , fromName : function ( name ) {
2008-04-30 21:17:33 +04:00
var _457 = MochiKit . Color . Color ;
2006-11-07 02:48:11 +03:00
if ( name . charAt ( 0 ) == "\"" ) {
name = name . substr ( 1 , name . length - 2 ) ;
}
2008-04-30 21:17:33 +04:00
var _458 = _457 . _namedColors [ name . toLowerCase ( ) ] ;
if ( typeof ( _458 ) == "string" ) {
return _457 . fromHexString ( _458 ) ;
2006-11-07 02:48:11 +03:00
} else {
if ( name == "transparent" ) {
2008-04-30 21:17:33 +04:00
return _457 . transparentColor ( ) ;
2006-11-07 02:48:11 +03:00
}
}
return null ;
2008-04-30 21:17:33 +04:00
} , fromString : function ( _459 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Color . Color ;
2008-04-30 21:17:33 +04:00
var _45b = _459 . substr ( 0 , 3 ) ;
if ( _45b == "rgb" ) {
return self . fromRGBString ( _459 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _45b == "hsl" ) {
return self . fromHSLString ( _459 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _459 . charAt ( 0 ) == "#" ) {
return self . fromHexString ( _459 ) ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
return self . fromName ( _459 ) ;
} , fromHexString : function ( _45c ) {
if ( _45c . charAt ( 0 ) == "#" ) {
_45c = _45c . substring ( 1 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _45d = [ ] ;
2006-11-07 02:48:11 +03:00
var i , hex ;
2008-04-30 21:17:33 +04:00
if ( _45c . length == 3 ) {
2006-11-07 02:48:11 +03:00
for ( i = 0 ; i < 3 ; i ++ ) {
2008-04-30 21:17:33 +04:00
hex = _45c . substr ( i , 1 ) ;
_45d . push ( parseInt ( hex + hex , 16 ) / 255 ) ;
2006-11-07 02:48:11 +03:00
}
} else {
for ( i = 0 ; i < 6 ; i += 2 ) {
2008-04-30 21:17:33 +04:00
hex = _45c . substr ( i , 2 ) ;
_45d . push ( parseInt ( hex , 16 ) / 255 ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
var _460 = MochiKit . Color . Color ;
return _460 . fromRGB . apply ( _460 , _45d ) ;
} , _fromColorString : function ( pre , _462 , _463 , _464 ) {
if ( _464 . indexOf ( pre ) === 0 ) {
_464 = _464 . substring ( _464 . indexOf ( "(" , 3 ) + 1 , _464 . length - 1 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _465 = _464 . split ( /\s*,\s*/ ) ;
var _466 = [ ] ;
for ( var i = 0 ; i < _465 . length ; i ++ ) {
var c = _465 [ i ] ;
2006-11-07 02:48:11 +03:00
var val ;
2008-04-30 21:17:33 +04:00
var _46a = c . substring ( c . length - 3 ) ;
2006-11-07 02:48:11 +03:00
if ( c . charAt ( c . length - 1 ) == "%" ) {
val = 0.01 * parseFloat ( c . substring ( 0 , c . length - 1 ) ) ;
} else {
2008-04-30 21:17:33 +04:00
if ( _46a == "deg" ) {
2006-11-07 02:48:11 +03:00
val = parseFloat ( c ) / 360 ;
} else {
2008-04-30 21:17:33 +04:00
if ( _46a == "rad" ) {
2006-11-07 02:48:11 +03:00
val = parseFloat ( c ) / ( Math . PI * 2 ) ;
} else {
2008-04-30 21:17:33 +04:00
val = _463 [ i ] * parseFloat ( c ) ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
_466 . push ( val ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return this [ _462 ] . apply ( this , _466 ) ;
} , fromComputedStyle : function ( elem , _46c ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var cls = MochiKit . Color . Color ;
for ( elem = d . getElement ( elem ) ; elem ; elem = elem . parentNode ) {
2008-04-30 21:17:33 +04:00
var _46f = MochiKit . Style . computedStyle . apply ( d , arguments ) ;
if ( ! _46f ) {
2006-11-07 02:48:11 +03:00
continue ;
}
2008-04-30 21:17:33 +04:00
var _470 = cls . fromString ( _46f ) ;
if ( ! _470 ) {
2006-11-07 02:48:11 +03:00
break ;
}
2008-04-30 21:17:33 +04:00
if ( _470 . asRGB ( ) . a > 0 ) {
return _470 ;
2006-11-07 02:48:11 +03:00
}
}
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 ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Color , { clampColorComponent : function ( v , _476 ) {
v *= _476 ;
2006-11-07 02:48:11 +03:00
if ( v < 0 ) {
return 0 ;
} else {
2008-04-30 21:17:33 +04:00
if ( v > _476 ) {
return _476 ;
2006-11-07 02:48:11 +03:00
} 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 ;
2008-04-30 21:17:33 +04:00
} , hsvToRGB : function ( hue , _47c , _47d , _47e ) {
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
var hsv = hue ;
hue = hsv . h ;
2008-04-30 21:17:33 +04:00
_47c = hsv . s ;
_47d = hsv . v ;
_47e = hsv . a ;
2006-11-07 02:48:11 +03:00
}
var red ;
2008-04-30 21:17:33 +04:00
var _481 ;
2006-11-07 02:48:11 +03:00
var blue ;
2008-04-30 21:17:33 +04:00
if ( _47c === 0 ) {
2006-11-07 02:48:11 +03:00
red = 0 ;
2008-04-30 21:17:33 +04:00
_481 = 0 ;
2006-11-07 02:48:11 +03:00
blue = 0 ;
} else {
var i = Math . floor ( hue * 6 ) ;
var f = ( hue * 6 ) - i ;
2008-04-30 21:17:33 +04:00
var p = _47d * ( 1 - _47c ) ;
var q = _47d * ( 1 - ( _47c * f ) ) ;
var t = _47d * ( 1 - ( _47c * ( 1 - f ) ) ) ;
2006-11-07 02:48:11 +03:00
switch ( i ) {
case 1 :
red = q ;
2008-04-30 21:17:33 +04:00
_481 = _47d ;
2006-11-07 02:48:11 +03:00
blue = p ;
break ;
case 2 :
red = p ;
2008-04-30 21:17:33 +04:00
_481 = _47d ;
2006-11-07 02:48:11 +03:00
blue = t ;
break ;
case 3 :
red = p ;
2008-04-30 21:17:33 +04:00
_481 = q ;
blue = _47d ;
2006-11-07 02:48:11 +03:00
break ;
case 4 :
red = t ;
2008-04-30 21:17:33 +04:00
_481 = p ;
blue = _47d ;
2006-11-07 02:48:11 +03:00
break ;
case 5 :
2008-04-30 21:17:33 +04:00
red = _47d ;
_481 = p ;
2006-11-07 02:48:11 +03:00
blue = q ;
break ;
case 6 :
case 0 :
2008-04-30 21:17:33 +04:00
red = _47d ;
_481 = t ;
2006-11-07 02:48:11 +03:00
blue = p ;
break ;
}
}
2008-04-30 21:17:33 +04:00
return { r : red , g : _481 , b : blue , a : _47e } ;
} , hslToRGB : function ( hue , _489 , _48a , _48b ) {
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
var hsl = hue ;
hue = hsl . h ;
2008-04-30 21:17:33 +04:00
_489 = hsl . s ;
_48a = hsl . l ;
_48b = hsl . a ;
2006-11-07 02:48:11 +03:00
}
var red ;
2008-04-30 21:17:33 +04:00
var _48e ;
2006-11-07 02:48:11 +03:00
var blue ;
2008-04-30 21:17:33 +04:00
if ( _489 === 0 ) {
red = _48a ;
_48e = _48a ;
blue = _48a ;
2006-11-07 02:48:11 +03:00
} else {
var m2 ;
2008-04-30 21:17:33 +04:00
if ( _48a <= 0.5 ) {
m2 = _48a * ( 1 + _489 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
m2 = _48a + _489 - ( _48a * _489 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var m1 = ( 2 * _48a ) - m2 ;
2006-11-07 02:48:11 +03:00
var f = MochiKit . Color . _hslValue ;
var h6 = hue * 6 ;
red = f ( m1 , m2 , h6 + 2 ) ;
2008-04-30 21:17:33 +04:00
_48e = f ( m1 , m2 , h6 ) ;
2006-11-07 02:48:11 +03:00
blue = f ( m1 , m2 , h6 - 2 ) ;
}
2008-04-30 21:17:33 +04:00
return { r : red , g : _48e , b : blue , a : _48b } ;
} , rgbToHSV : function ( red , _495 , blue , _497 ) {
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
2008-04-30 21:17:33 +04:00
_495 = rgb . g ;
2006-11-07 02:48:11 +03:00
blue = rgb . b ;
2008-04-30 21:17:33 +04:00
_497 = rgb . a ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var max = Math . max ( Math . max ( red , _495 ) , blue ) ;
var min = Math . min ( Math . min ( red , _495 ) , blue ) ;
2006-11-07 02:48:11 +03:00
var hue ;
2008-04-30 21:17:33 +04:00
var _49c ;
var _49d = max ;
2006-11-07 02:48:11 +03:00
if ( min == max ) {
hue = 0 ;
2008-04-30 21:17:33 +04:00
_49c = 0 ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
var _49e = ( max - min ) ;
_49c = _49e / max ;
2006-11-07 02:48:11 +03:00
if ( red == max ) {
2008-04-30 21:17:33 +04:00
hue = ( _495 - blue ) / _49e ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _495 == max ) {
hue = 2 + ( ( blue - red ) / _49e ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
hue = 4 + ( ( red - _495 ) / _49e ) ;
2006-11-07 02:48:11 +03:00
}
}
hue /= 6 ;
if ( hue < 0 ) {
hue += 1 ;
}
if ( hue > 1 ) {
hue -= 1 ;
}
}
2008-04-30 21:17:33 +04:00
return { h : hue , s : _49c , v : _49d , a : _497 } ;
} , rgbToHSL : function ( red , _4a0 , blue , _4a2 ) {
2006-11-07 02:48:11 +03:00
if ( arguments . length == 1 ) {
var rgb = red ;
red = rgb . r ;
2008-04-30 21:17:33 +04:00
_4a0 = rgb . g ;
2006-11-07 02:48:11 +03:00
blue = rgb . b ;
2008-04-30 21:17:33 +04:00
_4a2 = rgb . a ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var max = Math . max ( red , Math . max ( _4a0 , blue ) ) ;
var min = Math . min ( red , Math . min ( _4a0 , blue ) ) ;
2006-11-07 02:48:11 +03:00
var hue ;
2008-04-30 21:17:33 +04:00
var _4a7 ;
var _4a8 = ( max + min ) / 2 ;
var _4a9 = max - min ;
if ( _4a9 === 0 ) {
2006-11-07 02:48:11 +03:00
hue = 0 ;
2008-04-30 21:17:33 +04:00
_4a7 = 0 ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _4a8 <= 0.5 ) {
_4a7 = _4a9 / ( max + min ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_4a7 = _4a9 / ( 2 - max - min ) ;
2006-11-07 02:48:11 +03:00
}
if ( red == max ) {
2008-04-30 21:17:33 +04:00
hue = ( _4a0 - blue ) / _4a9 ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _4a0 == max ) {
hue = 2 + ( ( blue - red ) / _4a9 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
hue = 4 + ( ( red - _4a0 ) / _4a9 ) ;
2006-11-07 02:48:11 +03:00
}
}
hue /= 6 ;
if ( hue < 0 ) {
hue += 1 ;
}
if ( hue > 1 ) {
hue -= 1 ;
}
}
2008-04-30 21:17:33 +04:00
return { h : hue , s : _4a7 , l : _4a8 , a : _4a2 } ;
2006-11-07 02:48:11 +03:00
} , toColorPart : function ( num ) {
num = Math . round ( num ) ;
2008-04-30 21:17:33 +04:00
var _4ab = num . toString ( 16 ) ;
2006-11-07 02:48:11 +03:00
if ( num < 16 ) {
2008-04-30 21:17:33 +04:00
return "0" + _4ab ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return _4ab ;
2006-11-07 02:48:11 +03:00
} , _ _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 ] ) ;
2008-04-30 21:17:33 +04:00
var _4ad = 1 / 3 ;
var _4ae = { black : [ 0 , 0 , 0 ] , blue : [ 0 , 0 , 1 ] , brown : [ 0.6 , 0.4 , 0.2 ] , cyan : [ 0 , 1 , 1 ] , darkGray : [ _4ad , _4ad , _4ad ] , gray : [ 0.5 , 0.5 , 0.5 ] , green : [ 0 , 1 , 0 ] , lightGray : [ 2 * _4ad , 2 * _4ad , 2 * _4ad ] , 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 _4af = function ( name , r , g , b , a ) {
2006-11-07 02:48:11 +03:00
var rval = this . fromRGB ( r , g , b , a ) ;
this [ name ] = function ( ) {
return rval ;
} ;
return rval ;
} ;
2008-04-30 21:17:33 +04:00
for ( var k in _4ae ) {
2006-11-07 02:48:11 +03:00
var name = k + "Color" ;
2008-04-30 21:17:33 +04:00
var _4b8 = m . concat ( [ _4af , this . Color , name ] , _4ae [ k ] ) ;
this . Color [ name ] = m . bind . apply ( null , _4b8 ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
var _4b9 = function ( ) {
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < arguments . length ; i ++ ) {
if ( ! ( arguments [ i ] instanceof Color ) ) {
return false ;
}
}
return true ;
} ;
2008-04-30 21:17:33 +04:00
var _4bb = function ( a , b ) {
2006-11-07 02:48:11 +03:00
return a . compareRGB ( b ) ;
} ;
m . nameFunctions ( this ) ;
2008-04-30 21:17:33 +04:00
m . registerComparator ( this . Color . NAME , _4b9 , _4bb ) ;
2006-11-07 02:48:11 +03:00
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 ( ) ) + ", 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 ( ) {
2008-04-30 21:17:33 +04:00
var _4ca = MochiKit . Signal . _specialMacKeys ;
2006-11-07 02:48:11 +03:00
for ( i = 63236 ; i <= 63242 ; i ++ ) {
2008-04-30 21:17:33 +04:00
_4ca [ i ] = "KEY_F" + ( i - 63236 + 1 ) ;
2006-11-07 02:48:11 +03:00
}
} ) ( ) ;
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 ( ) {
2008-04-30 21:17:33 +04:00
var _4cb = MochiKit . Signal . _specialKeys ;
2006-11-07 02:48:11 +03:00
for ( var i = 48 ; i <= 57 ; i ++ ) {
2008-04-30 21:17:33 +04:00
_4cb [ i ] = "KEY_" + ( i - 48 ) ;
2006-11-07 02:48:11 +03:00
}
for ( i = 65 ; i <= 90 ; i ++ ) {
2008-04-30 21:17:33 +04:00
_4cb [ i ] = "KEY_" + String . fromCharCode ( i ) ;
2006-11-07 02:48:11 +03:00
}
for ( i = 96 ; i <= 105 ; i ++ ) {
2008-04-30 21:17:33 +04:00
_4cb [ i ] = "KEY_NUM_PAD_" + ( i - 96 ) ;
2006-11-07 02:48:11 +03:00
}
for ( i = 112 ; i <= 123 ; i ++ ) {
2008-04-30 21:17:33 +04:00
_4cb [ i ] = "KEY_F" + ( i - 112 + 1 ) ;
2006-11-07 02:48:11 +03:00
}
} ) ( ) ;
MochiKit . Base . update ( MochiKit . Signal , { _ _repr _ _ : function ( ) {
return "[" + this . NAME + " " + this . VERSION + "]" ;
} , toString : function ( ) {
return this . _ _repr _ _ ( ) ;
} , _unloadCache : function ( ) {
var self = MochiKit . Signal ;
2008-04-30 21:17:33 +04:00
var _4ce = self . _observers ;
for ( var i = 0 ; i < _4ce . length ; i ++ ) {
self . _disconnect ( _4ce [ i ] ) ;
2006-11-07 02:48:11 +03:00
}
delete self . _observers ;
try {
window . onload = undefined ;
}
catch ( e ) {
}
try {
window . onunload = undefined ;
}
catch ( e ) {
}
2008-04-30 21:17:33 +04:00
} , _listener : function ( src , func , obj , _4d3 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Signal ;
var E = self . Event ;
2008-04-30 21:17:33 +04:00
if ( ! _4d3 ) {
2006-11-07 02:48:11 +03:00
return MochiKit . Base . bind ( func , obj ) ;
}
obj = obj || src ;
if ( typeof ( func ) == "string" ) {
2008-04-30 21:17:33 +04:00
return function ( _4d6 ) {
obj [ func ] . apply ( obj , [ new E ( src , _4d6 ) ] ) ;
2006-11-07 02:48:11 +03:00
} ;
} else {
2008-04-30 21:17:33 +04:00
return function ( _4d7 ) {
func . apply ( obj , [ new E ( src , _4d7 ) ] ) ;
2006-11-07 02:48:11 +03:00
} ;
}
} , _browserAlreadyHasMouseEnterAndLeave : function ( ) {
return /MSIE/ . test ( navigator . userAgent ) ;
} , _mouseEnterListener : function ( src , sig , func , obj ) {
var E = MochiKit . Signal . Event ;
2008-04-30 21:17:33 +04:00
return function ( _4dd ) {
var e = new E ( src , _4dd ) ;
2006-11-07 02:48:11 +03:00
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 ] ) ;
}
} ;
2008-04-30 21:17:33 +04:00
} , _getDestPair : function ( _4df , _4e0 ) {
2006-11-07 02:48:11 +03:00
var obj = null ;
var func = null ;
2008-04-30 21:17:33 +04:00
if ( typeof ( _4e0 ) != "undefined" ) {
obj = _4df ;
func = _4e0 ;
if ( typeof ( _4e0 ) == "string" ) {
if ( typeof ( _4df [ _4e0 ] ) != "function" ) {
2006-11-07 02:48:11 +03:00
throw new Error ( "'funcOrStr' must be a function on 'objOrFunc'" ) ;
}
} else {
2008-04-30 21:17:33 +04:00
if ( typeof ( _4e0 ) != "function" ) {
2006-11-07 02:48:11 +03:00
throw new Error ( "'funcOrStr' must be a function or string" ) ;
}
}
} else {
2008-04-30 21:17:33 +04:00
if ( typeof ( _4df ) != "function" ) {
2006-11-07 02:48:11 +03:00
throw new Error ( "'objOrFunc' must be a function if 'funcOrStr' is not given" ) ;
} else {
2008-04-30 21:17:33 +04:00
func = _4df ;
2006-11-07 02:48:11 +03:00
}
}
return [ obj , func ] ;
2008-04-30 21:17:33 +04:00
} , connect : function ( src , sig , _4e5 , _4e6 ) {
2006-11-07 02:48:11 +03:00
src = MochiKit . DOM . getElement ( src ) ;
var self = MochiKit . Signal ;
if ( typeof ( sig ) != "string" ) {
throw new Error ( "'sig' must be a string" ) ;
}
2008-04-30 21:17:33 +04:00
var _4e8 = self . _getDestPair ( _4e5 , _4e6 ) ;
var obj = _4e8 [ 0 ] ;
var func = _4e8 [ 1 ] ;
2006-11-07 02:48:11 +03:00
if ( typeof ( obj ) == "undefined" || obj === null ) {
obj = src ;
}
2008-04-30 21:17:33 +04:00
var _4eb = ! ! ( src . addEventListener || src . attachEvent ) ;
if ( _4eb && ( sig === "onmouseenter" || sig === "onmouseleave" ) && ! self . _browserAlreadyHasMouseEnterAndLeave ( ) ) {
var _4ec = self . _mouseEnterListener ( src , sig . substr ( 2 ) , func , obj ) ;
2006-11-07 02:48:11 +03:00
if ( sig === "onmouseenter" ) {
sig = "onmouseover" ;
} else {
sig = "onmouseout" ;
}
} else {
2008-04-30 21:17:33 +04:00
var _4ec = self . _listener ( src , func , obj , _4eb ) ;
2006-11-07 02:48:11 +03:00
}
if ( src . addEventListener ) {
2008-04-30 21:17:33 +04:00
src . addEventListener ( sig . substr ( 2 ) , _4ec , false ) ;
2006-11-07 02:48:11 +03:00
} else {
if ( src . attachEvent ) {
2008-04-30 21:17:33 +04:00
src . attachEvent ( sig , _4ec ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
var _4ed = [ src , sig , _4ec , _4eb , _4e5 , _4e6 , true ] ;
self . _observers . push ( _4ed ) ;
if ( ! _4eb && typeof ( src . _ _connect _ _ ) == "function" ) {
var args = MochiKit . Base . extend ( [ _4ed ] , arguments , 1 ) ;
2006-11-07 02:48:11 +03:00
src . _ _connect _ _ . apply ( src , args ) ;
}
2008-04-30 21:17:33 +04:00
return _4ed ;
} , _disconnect : function ( _4ef ) {
if ( ! _4ef [ 6 ] ) {
2006-11-07 02:48:11 +03:00
return ;
}
2008-04-30 21:17:33 +04:00
_4ef [ 6 ] = false ;
if ( ! _4ef [ 3 ] ) {
2006-11-07 02:48:11 +03:00
return ;
}
2008-04-30 21:17:33 +04:00
var src = _4ef [ 0 ] ;
var sig = _4ef [ 1 ] ;
var _4f2 = _4ef [ 2 ] ;
2006-11-07 02:48:11 +03:00
if ( src . removeEventListener ) {
2008-04-30 21:17:33 +04:00
src . removeEventListener ( sig . substr ( 2 ) , _4f2 , false ) ;
2006-11-07 02:48:11 +03:00
} else {
if ( src . detachEvent ) {
2008-04-30 21:17:33 +04:00
src . detachEvent ( sig , _4f2 ) ;
2006-11-07 02:48:11 +03:00
} else {
throw new Error ( "'src' must be a DOM element" ) ;
}
}
2008-04-30 21:17:33 +04:00
} , disconnect : function ( _4f3 ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Signal ;
2008-04-30 21:17:33 +04:00
var _4f5 = self . _observers ;
2006-11-07 02:48:11 +03:00
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 ] ;
2008-04-30 21:17:33 +04:00
for ( var i = _4f5 . length - 1 ; i >= 0 ; i -- ) {
var o = _4f5 [ i ] ;
2006-11-07 02:48:11 +03:00
if ( o [ 0 ] === src && o [ 1 ] === sig && o [ 4 ] === obj && o [ 5 ] === func ) {
self . _disconnect ( o ) ;
if ( ! self . _lock ) {
2008-04-30 21:17:33 +04:00
_4f5 . splice ( i , 1 ) ;
2006-11-07 02:48:11 +03:00
} else {
self . _dirty = true ;
}
return true ;
}
}
} else {
2008-04-30 21:17:33 +04:00
var idx = m . findIdentical ( _4f5 , _4f3 ) ;
2006-11-07 02:48:11 +03:00
if ( idx >= 0 ) {
2008-04-30 21:17:33 +04:00
self . _disconnect ( _4f3 ) ;
2006-11-07 02:48:11 +03:00
if ( ! self . _lock ) {
2008-04-30 21:17:33 +04:00
_4f5 . splice ( idx , 1 ) ;
2006-11-07 02:48:11 +03:00
} else {
self . _dirty = true ;
}
return true ;
}
}
return false ;
2008-04-30 21:17:33 +04:00
} , disconnectAllTo : function ( _4fe , _4ff ) {
2006-11-07 02:48:11 +03:00
var self = MochiKit . Signal ;
2008-04-30 21:17:33 +04:00
var _501 = self . _observers ;
var _502 = self . _disconnect ;
var _503 = self . _lock ;
var _504 = self . _dirty ;
if ( typeof ( _4ff ) === "undefined" ) {
_4ff = null ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
for ( var i = _501 . length - 1 ; i >= 0 ; i -- ) {
var _506 = _501 [ i ] ;
if ( _506 [ 4 ] === _4fe && ( _4ff === null || _506 [ 5 ] === _4ff ) ) {
_502 ( _506 ) ;
if ( _503 ) {
_504 = true ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_501 . splice ( i , 1 ) ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
self . _dirty = _504 ;
2006-11-07 02:48:11 +03:00
} , disconnectAll : function ( src , sig ) {
src = MochiKit . DOM . getElement ( src ) ;
var m = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _50a = m . flattenArguments ( m . extend ( null , arguments , 1 ) ) ;
2006-11-07 02:48:11 +03:00
var self = MochiKit . Signal ;
2008-04-30 21:17:33 +04:00
var _50c = self . _disconnect ;
var _50d = self . _observers ;
var i , _50f ;
var _510 = self . _lock ;
var _511 = self . _dirty ;
if ( _50a . length === 0 ) {
for ( i = _50d . length - 1 ; i >= 0 ; i -- ) {
_50f = _50d [ i ] ;
if ( _50f [ 0 ] === src ) {
_50c ( _50f ) ;
if ( ! _510 ) {
_50d . splice ( i , 1 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_511 = true ;
2006-11-07 02:48:11 +03:00
}
}
}
} else {
var sigs = { } ;
2008-04-30 21:17:33 +04:00
for ( i = 0 ; i < _50a . length ; i ++ ) {
sigs [ _50a [ i ] ] = true ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
for ( i = _50d . length - 1 ; i >= 0 ; i -- ) {
_50f = _50d [ i ] ;
if ( _50f [ 0 ] === src && _50f [ 1 ] in sigs ) {
_50c ( _50f ) ;
if ( ! _510 ) {
_50d . splice ( i , 1 ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_511 = true ;
2006-11-07 02:48:11 +03:00
}
}
}
}
2008-04-30 21:17:33 +04:00
self . _dirty = _511 ;
2006-11-07 02:48:11 +03:00
} , signal : function ( src , sig ) {
var self = MochiKit . Signal ;
2008-04-30 21:17:33 +04:00
var _516 = self . _observers ;
2006-11-07 02:48:11 +03:00
src = MochiKit . DOM . getElement ( src ) ;
var args = MochiKit . Base . extend ( null , arguments , 2 ) ;
2008-04-30 21:17:33 +04:00
var _518 = [ ] ;
2006-11-07 02:48:11 +03:00
self . _lock = true ;
2008-04-30 21:17:33 +04:00
for ( var i = 0 ; i < _516 . length ; i ++ ) {
var _51a = _516 [ i ] ;
if ( _51a [ 0 ] === src && _51a [ 1 ] === sig ) {
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
_51a [ 2 ] . apply ( src , args ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
2008-04-30 21:17:33 +04:00
_518 . push ( e ) ;
2006-11-07 02:48:11 +03:00
}
}
}
self . _lock = false ;
if ( self . _dirty ) {
self . _dirty = false ;
2008-04-30 21:17:33 +04:00
for ( var i = _516 . length - 1 ; i >= 0 ; i -- ) {
if ( ! _516 [ i ] [ 6 ] ) {
_516 . splice ( i , 1 ) ;
2006-11-07 02:48:11 +03:00
}
}
}
2008-04-30 21:17:33 +04:00
if ( _518 . length == 1 ) {
throw _518 [ 0 ] ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _518 . length > 1 ) {
2006-11-07 02:48:11 +03:00
var e = new Error ( "Multiple errors thrown in handling 'sig', see errors property" ) ;
2008-04-30 21:17:33 +04:00
e . errors = _518 ;
2006-11-07 02:48:11 +03:00
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.Visual" ) ;
dojo . require ( "MochiKit.Base" ) ;
dojo . require ( "MochiKit.DOM" ) ;
dojo . require ( "MochiKit.Style" ) ;
dojo . require ( "MochiKit.Color" ) ;
}
if ( typeof ( JSAN ) != "undefined" ) {
JSAN . use ( "MochiKit.Base" , [ ] ) ;
JSAN . use ( "MochiKit.DOM" , [ ] ) ;
JSAN . use ( "MochiKit.Style" , [ ] ) ;
JSAN . use ( "MochiKit.Color" , [ ] ) ;
}
try {
if ( typeof ( MochiKit . Base ) === "undefined" || typeof ( MochiKit . DOM ) === "undefined" || typeof ( MochiKit . Style ) === "undefined" || typeof ( MochiKit . Color ) === "undefined" ) {
throw "" ;
}
}
catch ( e ) {
throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style 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 _ _ ( ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . _RoundCorners = function ( e , _51f ) {
2006-11-07 02:48:11 +03:00
e = MochiKit . DOM . getElement ( e ) ;
2008-04-30 21:17:33 +04:00
this . _setOptions ( _51f ) ;
2006-11-07 02:48:11 +03:00
if ( this . options . _ _unstable _ _wrapElement ) {
e = this . _doWrap ( e ) ;
}
2008-04-30 21:17:33 +04:00
var _520 = this . options . color ;
2006-11-07 02:48:11 +03:00
var C = MochiKit . Color . Color ;
if ( this . options . color === "fromElement" ) {
2008-04-30 21:17:33 +04:00
_520 = C . fromBackground ( e ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( ! ( _520 instanceof C ) ) {
_520 = C . fromString ( _520 ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
this . isTransparent = ( _520 . asRGB ( ) . a <= 0 ) ;
var _522 = this . options . bgColor ;
2006-11-07 02:48:11 +03:00
if ( this . options . bgColor === "fromParent" ) {
2008-04-30 21:17:33 +04:00
_522 = C . fromBackground ( e . offsetParent ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( ! ( _522 instanceof C ) ) {
_522 = C . fromString ( _522 ) ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
this . _roundCornersImpl ( e , _520 , _522 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . _RoundCorners . prototype = { _doWrap : function ( e ) {
2008-04-30 21:17:33 +04:00
var _524 = e . parentNode ;
2006-11-07 02:48:11 +03:00
var doc = MochiKit . DOM . currentDocument ( ) ;
if ( typeof ( doc . defaultView ) === "undefined" || doc . defaultView === null ) {
return e ;
}
2008-04-30 21:17:33 +04:00
var _526 = doc . defaultView . getComputedStyle ( e , null ) ;
if ( typeof ( _526 ) === "undefined" || _526 === null ) {
2006-11-07 02:48:11 +03:00
return e ;
}
2008-04-30 21:17:33 +04:00
var _527 = MochiKit . DOM . DIV ( { "style" : { display : "block" , marginTop : _526 . getPropertyValue ( "padding-top" ) , marginRight : _526 . getPropertyValue ( "padding-right" ) , marginBottom : _526 . getPropertyValue ( "padding-bottom" ) , marginLeft : _526 . getPropertyValue ( "padding-left" ) , padding : "0px" } } ) ;
_527 . innerHTML = e . innerHTML ;
2006-11-07 02:48:11 +03:00
e . innerHTML = "" ;
2008-04-30 21:17:33 +04:00
e . appendChild ( _527 ) ;
2006-11-07 02:48:11 +03:00
return e ;
2008-04-30 21:17:33 +04:00
} , _roundCornersImpl : function ( e , _529 , _52a ) {
2006-11-07 02:48:11 +03:00
if ( this . options . border ) {
2008-04-30 21:17:33 +04:00
this . _renderBorder ( e , _52a ) ;
2006-11-07 02:48:11 +03:00
}
if ( this . _isTopRounded ( ) ) {
2008-04-30 21:17:33 +04:00
this . _roundTopCorners ( e , _529 , _52a ) ;
2006-11-07 02:48:11 +03:00
}
if ( this . _isBottomRounded ( ) ) {
2008-04-30 21:17:33 +04:00
this . _roundBottomCorners ( e , _529 , _52a ) ;
}
} , _renderBorder : function ( el , _52c ) {
var _52d = "1px solid " + this . _borderColor ( _52c ) ;
var _52e = "border-left: " + _52d ;
var _52f = "border-right: " + _52d ;
var _530 = "style='" + _52e + ";" + _52f + "'" ;
el . innerHTML = "<div " + _530 + ">" + el . innerHTML + "</div>" ;
} , _roundTopCorners : function ( el , _532 , _533 ) {
var _534 = this . _createCorner ( _533 ) ;
2006-11-07 02:48:11 +03:00
for ( var i = 0 ; i < this . options . numSlices ; i ++ ) {
2008-04-30 21:17:33 +04:00
_534 . appendChild ( this . _createCornerSlice ( _532 , _533 , i , "top" ) ) ;
2006-11-07 02:48:11 +03:00
}
el . style . paddingTop = 0 ;
2008-04-30 21:17:33 +04:00
el . insertBefore ( _534 , el . firstChild ) ;
} , _roundBottomCorners : function ( el , _537 , _538 ) {
var _539 = this . _createCorner ( _538 ) ;
2006-11-07 02:48:11 +03:00
for ( var i = ( this . options . numSlices - 1 ) ; i >= 0 ; i -- ) {
2008-04-30 21:17:33 +04:00
_539 . appendChild ( this . _createCornerSlice ( _537 , _538 , i , "bottom" ) ) ;
2006-11-07 02:48:11 +03:00
}
el . style . paddingBottom = 0 ;
2008-04-30 21:17:33 +04:00
el . appendChild ( _539 ) ;
} , _createCorner : function ( _53b ) {
2006-11-07 02:48:11 +03:00
var dom = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
return dom . DIV ( { style : { backgroundColor : _53b . toString ( ) } } ) ;
} , _createCornerSlice : function ( _53d , _53e , n , _540 ) {
var _541 = MochiKit . DOM . SPAN ( ) ;
var _542 = _541 . style ;
_542 . backgroundColor = _53d . toString ( ) ;
_542 . display = "block" ;
_542 . height = "1px" ;
_542 . overflow = "hidden" ;
_542 . fontSize = "1px" ;
var _543 = this . _borderColor ( _53d , _53e ) ;
2006-11-07 02:48:11 +03:00
if ( this . options . border && n === 0 ) {
2008-04-30 21:17:33 +04:00
_542 . borderTopStyle = "solid" ;
_542 . borderTopWidth = "1px" ;
_542 . borderLeftWidth = "0px" ;
_542 . borderRightWidth = "0px" ;
_542 . borderBottomWidth = "0px" ;
_542 . height = "0px" ;
_542 . borderColor = _543 . toString ( ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _543 ) {
_542 . borderColor = _543 . toString ( ) ;
_542 . borderStyle = "solid" ;
_542 . borderWidth = "0px 1px" ;
2006-11-07 02:48:11 +03:00
}
}
if ( ! this . options . compact && ( n == ( this . options . numSlices - 1 ) ) ) {
2008-04-30 21:17:33 +04:00
_542 . height = "2px" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . _setMargin ( _541 , n , _540 ) ;
this . _setBorder ( _541 , n , _540 ) ;
return _541 ;
} , _setOptions : function ( _544 ) {
2006-11-07 02:48:11 +03:00
this . options = { corners : "all" , color : "fromElement" , bgColor : "fromParent" , blend : true , border : false , compact : false , _ _unstable _ _wrapElement : false } ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( this . options , _544 ) ;
2006-11-07 02:48:11 +03:00
this . options . numSlices = ( this . options . compact ? 2 : 4 ) ;
} , _whichSideTop : function ( ) {
2008-04-30 21:17:33 +04:00
var _545 = this . options . corners ;
if ( this . _hasString ( _545 , "all" , "top" ) ) {
2006-11-07 02:48:11 +03:00
return "" ;
}
2008-04-30 21:17:33 +04:00
var _546 = ( _545 . indexOf ( "tl" ) != - 1 ) ;
var _547 = ( _545 . indexOf ( "tr" ) != - 1 ) ;
if ( _546 && _547 ) {
2006-11-07 02:48:11 +03:00
return "" ;
}
2008-04-30 21:17:33 +04:00
if ( _546 ) {
2006-11-07 02:48:11 +03:00
return "left" ;
}
2008-04-30 21:17:33 +04:00
if ( _547 ) {
2006-11-07 02:48:11 +03:00
return "right" ;
}
return "" ;
} , _whichSideBottom : function ( ) {
2008-04-30 21:17:33 +04:00
var _548 = this . options . corners ;
if ( this . _hasString ( _548 , "all" , "bottom" ) ) {
2006-11-07 02:48:11 +03:00
return "" ;
}
2008-04-30 21:17:33 +04:00
var _549 = ( _548 . indexOf ( "bl" ) != - 1 ) ;
var _54a = ( _548 . indexOf ( "br" ) != - 1 ) ;
if ( _549 && _54a ) {
2006-11-07 02:48:11 +03:00
return "" ;
}
2008-04-30 21:17:33 +04:00
if ( _549 ) {
2006-11-07 02:48:11 +03:00
return "left" ;
}
2008-04-30 21:17:33 +04:00
if ( _54a ) {
2006-11-07 02:48:11 +03:00
return "right" ;
}
return "" ;
2008-04-30 21:17:33 +04:00
} , _borderColor : function ( _54b , _54c ) {
if ( _54b == "transparent" ) {
return _54c ;
2006-11-07 02:48:11 +03:00
} else {
if ( this . options . border ) {
return this . options . border ;
} else {
if ( this . options . blend ) {
2008-04-30 21:17:33 +04:00
return _54c . blendedColor ( _54b ) ;
2006-11-07 02:48:11 +03:00
}
}
}
return "" ;
2008-04-30 21:17:33 +04:00
} , _setMargin : function ( el , n , _54f ) {
var _550 = this . _marginSize ( n ) + "px" ;
var _551 = ( _54f == "top" ? this . _whichSideTop ( ) : this . _whichSideBottom ( ) ) ;
var _552 = el . style ;
if ( _551 == "left" ) {
_552 . marginLeft = _550 ;
_552 . marginRight = "0px" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _551 == "right" ) {
_552 . marginRight = _550 ;
_552 . marginLeft = "0px" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_552 . marginLeft = _550 ;
_552 . marginRight = _550 ;
2006-11-07 02:48:11 +03:00
}
}
2008-04-30 21:17:33 +04:00
} , _setBorder : function ( el , n , _555 ) {
var _556 = this . _borderSize ( n ) + "px" ;
var _557 = ( _555 == "top" ? this . _whichSideTop ( ) : this . _whichSideBottom ( ) ) ;
var _558 = el . style ;
if ( _557 == "left" ) {
_558 . borderLeftWidth = _556 ;
_558 . borderRightWidth = "0px" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
if ( _557 == "right" ) {
_558 . borderRightWidth = _556 ;
_558 . borderLeftWidth = "0px" ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
_558 . borderLeftWidth = _556 ;
_558 . borderRightWidth = _556 ;
2006-11-07 02:48:11 +03:00
}
}
} , _marginSize : function ( n ) {
if ( this . isTransparent ) {
return 0 ;
}
var o = this . options ;
if ( o . compact && o . blend ) {
2008-04-30 21:17:33 +04:00
var _55b = [ 1 , 0 ] ;
return _55b [ n ] ;
2006-11-07 02:48:11 +03:00
} else {
if ( o . compact ) {
2008-04-30 21:17:33 +04:00
var _55c = [ 2 , 1 ] ;
return _55c [ n ] ;
2006-11-07 02:48:11 +03:00
} else {
if ( o . blend ) {
2008-04-30 21:17:33 +04:00
var _55d = [ 3 , 2 , 1 , 0 ] ;
return _55d [ n ] ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
var _55e = [ 5 , 3 , 2 , 1 ] ;
return _55e [ n ] ;
2006-11-07 02:48:11 +03:00
}
}
}
} , _borderSize : function ( n ) {
var o = this . options ;
2008-04-30 21:17:33 +04:00
var _561 ;
2006-11-07 02:48:11 +03:00
if ( o . compact && ( o . blend || this . isTransparent ) ) {
return 1 ;
} else {
if ( o . compact ) {
2008-04-30 21:17:33 +04:00
_561 = [ 1 , 0 ] ;
2006-11-07 02:48:11 +03:00
} else {
if ( o . blend ) {
2008-04-30 21:17:33 +04:00
_561 = [ 2 , 1 , 1 , 1 ] ;
2006-11-07 02:48:11 +03:00
} else {
if ( o . border ) {
2008-04-30 21:17:33 +04:00
_561 = [ 0 , 2 , 0 , 0 ] ;
2006-11-07 02:48:11 +03:00
} else {
if ( this . isTransparent ) {
2008-04-30 21:17:33 +04:00
_561 = [ 5 , 3 , 2 , 1 ] ;
2006-11-07 02:48:11 +03:00
} else {
return 0 ;
}
}
}
}
}
2008-04-30 21:17:33 +04:00
return _561 [ n ] ;
2006-11-07 02:48:11 +03:00
} , _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 ) ;
} } ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . roundElement = function ( e , _566 ) {
new MochiKit . Visual . _RoundCorners ( e , _566 ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . roundClass = function ( _567 , _568 , _569 ) {
var _56a = MochiKit . DOM . getElementsByTagAndClassName ( _567 , _568 ) ;
for ( var i = 0 ; i < _56a . length ; i ++ ) {
MochiKit . Visual . roundElement ( _56a [ i ] , _569 ) ;
2006-11-07 02:48:11 +03:00
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . tagifyText = function ( _56c , _56d ) {
var _56d = _56d || "position:relative" ;
2006-11-07 02:48:11 +03:00
if ( /MSIE/ . test ( navigator . userAgent ) ) {
2008-04-30 21:17:33 +04:00
_56d += ";zoom:1" ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
_56c = MochiKit . DOM . getElement ( _56c ) ;
2006-11-07 02:48:11 +03:00
var ma = MochiKit . Base . map ;
2008-04-30 21:17:33 +04:00
ma ( function ( _56f ) {
if ( _56f . nodeType == 3 ) {
ma ( function ( _570 ) {
_56c . insertBefore ( MochiKit . DOM . SPAN ( { style : _56d } , _570 == " " ? String . fromCharCode ( 160 ) : _570 ) , _56f ) ;
} , _56f . nodeValue . split ( "" ) ) ;
MochiKit . DOM . removeElement ( _56f ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
} , _56c . childNodes ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . forceRerendering = function ( _571 ) {
2006-11-07 02:48:11 +03:00
try {
2008-04-30 21:17:33 +04:00
_571 = MochiKit . DOM . getElement ( _571 ) ;
2006-11-07 02:48:11 +03:00
var n = document . createTextNode ( " " ) ;
2008-04-30 21:17:33 +04:00
_571 . appendChild ( n ) ;
_571 . removeChild ( n ) ;
2006-11-07 02:48:11 +03:00
}
catch ( e ) {
}
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . multiple = function ( _573 , _574 , _575 ) {
_575 = MochiKit . Base . update ( { speed : 0.1 , delay : 0 } , _575 || { } ) ;
var _576 = _575 . delay ;
var _577 = 0 ;
MochiKit . Base . map ( function ( _578 ) {
_575 . delay = _577 * _575 . speed + _576 ;
new _574 ( _578 , _575 ) ;
_577 += 1 ;
} , _573 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . PAIRS = { "slide" : [ "slideDown" , "slideUp" ] , "blind" : [ "blindDown" , "blindUp" ] , "appear" : [ "appear" , "fade" ] , "size" : [ "grow" , "shrink" ] } ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . toggle = function ( _579 , _57a , _57b ) {
_579 = MochiKit . DOM . getElement ( _579 ) ;
_57a = ( _57a || "appear" ) . toLowerCase ( ) ;
_57b = MochiKit . Base . update ( { queue : { position : "end" , scope : ( _579 . id || "global" ) , limit : 1 } } , _57b || { } ) ;
2006-11-07 02:48:11 +03:00
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
v [ _579 . style . display != "none" ? v . PAIRS [ _57a ] [ 1 ] : v . PAIRS [ _57a ] [ 0 ] ] ( _579 , _57b ) ;
2006-11-07 02:48:11 +03:00
} ;
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 ) {
return ( Math . floor ( pos * 10 ) % 2 == 0 ? ( pos * 10 - Math . floor ( pos * 10 ) ) : 1 - ( pos * 10 - Math . floor ( pos * 10 ) ) ) ;
} ;
MochiKit . Visual . Transitions . none = function ( pos ) {
return 0 ;
} ;
MochiKit . Visual . Transitions . full = function ( pos ) {
return 1 ;
} ;
MochiKit . Visual . ScopedQueue = function ( ) {
this . _ _init _ _ ( ) ;
} ;
MochiKit . Base . update ( MochiKit . Visual . ScopedQueue . prototype , { _ _init _ _ : function ( ) {
this . effects = [ ] ;
this . interval = null ;
2008-04-30 21:17:33 +04:00
} , add : function ( _585 ) {
var _586 = new Date ( ) . getTime ( ) ;
var _587 = ( typeof ( _585 . options . queue ) == "string" ) ? _585 . options . queue : _585 . options . queue . position ;
2006-11-07 02:48:11 +03:00
var ma = MochiKit . Base . map ;
2008-04-30 21:17:33 +04:00
switch ( _587 ) {
2006-11-07 02:48:11 +03:00
case "front" :
ma ( function ( e ) {
if ( e . state == "idle" ) {
2008-04-30 21:17:33 +04:00
e . startOn += _585 . finishOn ;
e . finishOn += _585 . finishOn ;
2006-11-07 02:48:11 +03:00
}
} , this . effects ) ;
break ;
case "end" :
2008-04-30 21:17:33 +04:00
var _58a ;
2006-11-07 02:48:11 +03:00
ma ( function ( e ) {
var i = e . finishOn ;
2008-04-30 21:17:33 +04:00
if ( i >= ( _58a || i ) ) {
_58a = i ;
2006-11-07 02:48:11 +03:00
}
} , this . effects ) ;
2008-04-30 21:17:33 +04:00
_586 = _58a || _586 ;
2006-11-07 02:48:11 +03:00
break ;
case "break" :
ma ( function ( e ) {
e . finalize ( ) ;
} , this . effects ) ;
break ;
}
2008-04-30 21:17:33 +04:00
_585 . startOn += _586 ;
_585 . finishOn += _586 ;
if ( ! _585 . options . queue . limit || this . effects . length < _585 . options . queue . limit ) {
this . effects . push ( _585 ) ;
2006-11-07 02:48:11 +03:00
}
if ( ! this . interval ) {
this . interval = this . startLoop ( MochiKit . Base . bind ( this . loop , this ) , 40 ) ;
}
2008-04-30 21:17:33 +04:00
} , startLoop : function ( func , _58f ) {
return setInterval ( func , _58f ) ;
} , remove : function ( _590 ) {
2006-11-07 02:48:11 +03:00
this . effects = MochiKit . Base . filter ( function ( e ) {
2008-04-30 21:17:33 +04:00
return e != _590 ;
2006-11-07 02:48:11 +03:00
} , this . effects ) ;
if ( this . effects . length == 0 ) {
this . stopLoop ( this . interval ) ;
this . interval = null ;
}
2008-04-30 21:17:33 +04:00
} , stopLoop : function ( _592 ) {
clearInterval ( _592 ) ;
2006-11-07 02:48:11 +03:00
} , loop : function ( ) {
2008-04-30 21:17:33 +04:00
var _593 = new Date ( ) . getTime ( ) ;
MochiKit . Base . map ( function ( _594 ) {
_594 . loop ( _593 ) ;
2006-11-07 02:48:11 +03:00
} , this . effects ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Queues = { instances : { } , get : function ( _595 ) {
if ( typeof ( _595 ) != "string" ) {
return _595 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( ! this . instances [ _595 ] ) {
this . instances [ _595 ] = new MochiKit . Visual . ScopedQueue ( ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
return this . instances [ _595 ] ;
2006-11-07 02:48:11 +03:00
} } ;
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 ( ) {
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Base . prototype = { _ _class _ _ : MochiKit . Visual . Base , start : function ( _596 ) {
2006-11-07 02:48:11 +03:00
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
this . options = MochiKit . Base . setdefault ( _596 || { } , v . DefaultOptions ) ;
2006-11-07 02:48:11 +03:00
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 ) ;
}
2008-04-30 21:17:33 +04:00
} , loop : function ( _598 ) {
if ( _598 >= this . startOn ) {
if ( _598 >= this . finishOn ) {
2006-11-07 02:48:11 +03:00
return this . finalize ( ) ;
}
2008-04-30 21:17:33 +04:00
var pos = ( _598 - this . startOn ) / ( this . finishOn - this . startOn ) ;
var _59a = Math . round ( pos * this . options . fps * this . options . duration ) ;
if ( _59a > this . currentFrame ) {
2006-11-07 02:48:11 +03:00
this . render ( pos ) ;
2008-04-30 21:17:33 +04:00
this . currentFrame = _59a ;
2006-11-07 02:48:11 +03:00
}
}
} , 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 ( ) {
2008-04-30 21:17:33 +04:00
} , update : function ( _59c ) {
} , event : function ( _59d ) {
if ( this . options [ _59d + "Internal" ] ) {
this . options [ _59d + "Internal" ] ( this ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
if ( this . options [ _59d ] ) {
this . options [ _59d ] ( this ) ;
2006-11-07 02:48:11 +03:00
}
} , repr : function ( ) {
return "[" + this . _ _class _ _ . NAME + ", options:" + MochiKit . Base . repr ( this . options ) + "]" ;
} } ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Parallel = function ( _59e , _59f ) {
this . _ _init _ _ ( _59e , _59f ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . Parallel . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . Parallel . prototype , { _ _init _ _ : function ( _5a0 , _5a1 ) {
this . effects = _5a0 || [ ] ;
this . start ( _5a1 ) ;
} , update : function ( _5a2 ) {
MochiKit . Base . map ( function ( _5a3 ) {
_5a3 . render ( _5a2 ) ;
2006-11-07 02:48:11 +03:00
} , this . effects ) ;
} , finish : function ( ) {
2008-04-30 21:17:33 +04:00
MochiKit . Base . map ( function ( _5a4 ) {
_5a4 . finalize ( ) ;
2006-11-07 02:48:11 +03:00
} , this . effects ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Opacity = function ( _5a5 , _5a6 ) {
this . _ _init _ _ ( _5a5 , _5a6 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . Opacity . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . Opacity . prototype , { _ _init _ _ : function ( _5a7 , _5a8 ) {
2006-11-07 02:48:11 +03:00
var b = MochiKit . Base ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
this . element = MochiKit . DOM . getElement ( _5a7 ) ;
2006-11-07 02:48:11 +03:00
if ( this . element . currentStyle && ( ! this . element . currentStyle . hasLayout ) ) {
s . setStyle ( this . element , { zoom : 1 } ) ;
}
2008-04-30 21:17:33 +04:00
_5a8 = b . update ( { from : s . getOpacity ( this . element ) || 0 , to : 1 } , _5a8 || { } ) ;
this . start ( _5a8 ) ;
} , update : function ( _5ab ) {
MochiKit . Style . setOpacity ( this . element , _5ab ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Move = function ( _5ac , _5ad ) {
this . _ _init _ _ ( _5ac , _5ad ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . Move . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . Move . prototype , { _ _init _ _ : function ( _5ae , _5af ) {
this . element = MochiKit . DOM . getElement ( _5ae ) ;
_5af = MochiKit . Base . update ( { x : 0 , y : 0 , mode : "relative" } , _5af || { } ) ;
this . start ( _5af ) ;
2006-11-07 02:48:11 +03:00
} , setup : function ( ) {
MochiKit . DOM . makePositioned ( this . element ) ;
var s = this . element . style ;
2008-04-30 21:17:33 +04:00
var _5b1 = s . visibility ;
var _5b2 = s . display ;
if ( _5b2 == "none" ) {
2006-11-07 02:48:11 +03:00
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 ;
}
2008-04-30 21:17:33 +04:00
if ( _5b2 == "none" ) {
s . visibility = _5b1 ;
s . display = _5b2 ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
} , update : function ( _5b3 ) {
MochiKit . Style . setStyle ( this . element , { left : Math . round ( this . options . x * _5b3 + this . originalLeft ) + "px" , top : Math . round ( this . options . y * _5b3 + this . originalTop ) + "px" } ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Scale = function ( _5b4 , _5b5 , _5b6 ) {
this . _ _init _ _ ( _5b4 , _5b5 , _5b6 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . Scale . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . Scale . prototype , { _ _init _ _ : function ( _5b7 , _5b8 , _5b9 ) {
this . element = MochiKit . DOM . getElement ( _5b7 ) ;
_5b9 = MochiKit . Base . update ( { scaleX : true , scaleY : true , scaleContent : true , scaleFromCenter : false , scaleMode : "box" , scaleFrom : 100 , scaleTo : _5b8 } , _5b9 || { } ) ;
this . start ( _5b9 ) ;
2006-11-07 02:48:11 +03:00
} , 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 ;
2008-04-30 21:17:33 +04:00
var _5bd = MochiKit . Style . getStyle ( this . element , "font-size" ) || "100%" ;
ma ( b ( function ( _5be ) {
if ( _5bd . indexOf ( _5be ) > 0 ) {
this . fontSize = parseFloat ( _5bd ) ;
this . fontSizeType = _5be ;
2006-11-07 02:48:11 +03:00
}
} , 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 ] ;
}
}
2008-04-30 21:17:33 +04:00
} , update : function ( _5bf ) {
var _5c0 = ( this . options . scaleFrom / 100 ) + ( this . factor * _5bf ) ;
2006-11-07 02:48:11 +03:00
if ( this . options . scaleContent && this . fontSize ) {
2008-04-30 21:17:33 +04:00
MochiKit . Style . setStyle ( this . element , { fontSize : this . fontSize * _5c0 + this . fontSizeType } ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
this . setDimensions ( this . dims [ 0 ] * _5c0 , this . dims [ 1 ] * _5c0 ) ;
2006-11-07 02:48:11 +03:00
} , finish : function ( ) {
if ( this . restoreAfterFinish ) {
MochiKit . Style . setStyle ( this . element , this . originalStyle ) ;
}
2008-04-30 21:17:33 +04:00
} , setDimensions : function ( _5c1 , _5c2 ) {
2006-11-07 02:48:11 +03:00
var d = { } ;
var r = Math . round ;
if ( /MSIE/ . test ( navigator . userAgent ) ) {
r = Math . ceil ;
}
if ( this . options . scaleX ) {
2008-04-30 21:17:33 +04:00
d . width = r ( _5c2 ) + "px" ;
2006-11-07 02:48:11 +03:00
}
if ( this . options . scaleY ) {
2008-04-30 21:17:33 +04:00
d . height = r ( _5c1 ) + "px" ;
2006-11-07 02:48:11 +03:00
}
if ( this . options . scaleFromCenter ) {
2008-04-30 21:17:33 +04:00
var topd = ( _5c1 - this . dims [ 0 ] ) / 2 ;
var _5c6 = ( _5c2 - this . dims [ 1 ] ) / 2 ;
2006-11-07 02:48:11 +03:00
if ( this . elementPositioning == "absolute" ) {
if ( this . options . scaleY ) {
d . top = this . originalTop - topd + "px" ;
}
if ( this . options . scaleX ) {
2008-04-30 21:17:33 +04:00
d . left = this . originalLeft - _5c6 + "px" ;
2006-11-07 02:48:11 +03:00
}
} else {
if ( this . options . scaleY ) {
d . top = - topd + "px" ;
}
if ( this . options . scaleX ) {
2008-04-30 21:17:33 +04:00
d . left = - _5c6 + "px" ;
2006-11-07 02:48:11 +03:00
}
}
}
MochiKit . Style . setStyle ( this . element , d ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . Highlight = function ( _5c7 , _5c8 ) {
this . _ _init _ _ ( _5c7 , _5c8 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . Highlight . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . Highlight . prototype , { _ _init _ _ : function ( _5c9 , _5ca ) {
this . element = MochiKit . DOM . getElement ( _5c9 ) ;
_5ca = MochiKit . Base . update ( { startcolor : "#ffff99" } , _5ca || { } ) ;
this . start ( _5ca ) ;
2006-11-07 02:48:11 +03:00
} , 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 ] ) ;
2008-04-30 21:17:33 +04:00
} , update : function ( _5cf ) {
2006-11-07 02:48:11 +03:00
var m = "#" ;
MochiKit . Base . map ( MochiKit . Base . bind ( function ( i ) {
2008-04-30 21:17:33 +04:00
m += MochiKit . Color . toColorPart ( Math . round ( this . _base [ i ] + this . _delta [ i ] * _5cf ) ) ;
2006-11-07 02:48:11 +03:00
} , 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 } ) ) ;
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . ScrollTo = function ( _5d2 , _5d3 ) {
this . _ _init _ _ ( _5d2 , _5d3 ) ;
2006-11-07 02:48:11 +03:00
} ;
MochiKit . Visual . ScrollTo . prototype = new MochiKit . Visual . Base ( ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Base . update ( MochiKit . Visual . ScrollTo . prototype , { _ _init _ _ : function ( _5d4 , _5d5 ) {
this . element = MochiKit . DOM . getElement ( _5d4 ) ;
this . start ( _5d5 || { } ) ;
2006-11-07 02:48:11 +03:00
} , setup : function ( ) {
var p = MochiKit . Position ;
p . prepare ( ) ;
2008-04-30 21:17:33 +04:00
var _5d7 = p . cumulativeOffset ( this . element ) ;
2006-11-07 02:48:11 +03:00
if ( this . options . offset ) {
2008-04-30 21:17:33 +04:00
_5d7 . y += this . options . offset ;
2006-11-07 02:48:11 +03:00
}
var max ;
if ( window . innerHeight ) {
max = window . innerHeight - window . height ;
} else {
if ( document . documentElement && document . documentElement . clientHeight ) {
max = document . documentElement . clientHeight - document . body . scrollHeight ;
} else {
if ( document . body ) {
max = document . body . clientHeight - document . body . scrollHeight ;
}
}
}
this . scrollStart = p . windowOffset . y ;
2008-04-30 21:17:33 +04:00
this . delta = ( _5d7 . y > max ? max : _5d7 . y ) - this . scrollStart ;
} , update : function ( _5d9 ) {
2006-11-07 02:48:11 +03:00
var p = MochiKit . Position ;
p . prepare ( ) ;
2008-04-30 21:17:33 +04:00
window . scrollTo ( p . windowOffset . x , this . scrollStart + ( _5d9 * this . delta ) ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . fade = function ( _5db , _5dc ) {
2006-11-07 02:48:11 +03:00
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
var _5de = MochiKit . DOM . getElement ( _5db ) . style . opacity || "" ;
_5dc = MochiKit . Base . update ( { from : s . getOpacity ( _5db ) || 1 , to : 0 , afterFinishInternal : function ( _5df ) {
if ( _5df . options . to !== 0 ) {
2006-11-07 02:48:11 +03:00
return ;
}
2008-04-30 21:17:33 +04:00
s . hideElement ( _5df . element ) ;
s . setStyle ( _5df . element , { opacity : _5de } ) ;
} } , _5dc || { } ) ;
return new MochiKit . Visual . Opacity ( _5db , _5dc ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . appear = function ( _5e0 , _5e1 ) {
2006-11-07 02:48:11 +03:00
var s = MochiKit . Style ;
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
_5e1 = MochiKit . Base . update ( { from : ( s . getStyle ( _5e0 , "display" ) == "none" ? 0 : s . getOpacity ( _5e0 ) || 0 ) , to : 1 , afterFinishInternal : function ( _5e4 ) {
v . forceRerendering ( _5e4 . element ) ;
} , beforeSetupInternal : function ( _5e5 ) {
s . setOpacity ( _5e5 . element , _5e5 . options . from ) ;
s . showElement ( _5e5 . element ) ;
} } , _5e1 || { } ) ;
return new v . Opacity ( _5e0 , _5e1 ) ;
} ;
MochiKit . Visual . puff = function ( _5e6 , _5e7 ) {
2006-11-07 02:48:11 +03:00
var s = MochiKit . Style ;
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
_5e6 = MochiKit . DOM . getElement ( _5e6 ) ;
var _5ea = { opacity : _5e6 . style . opacity || "" , position : s . getStyle ( _5e6 , "position" ) , top : _5e6 . style . top , left : _5e6 . style . left , width : _5e6 . style . width , height : _5e6 . style . height } ;
_5e7 = MochiKit . Base . update ( { beforeSetupInternal : function ( _5eb ) {
MochiKit . Position . absolutize ( _5eb . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _5ec ) {
s . hideElement ( _5ec . effects [ 0 ] . element ) ;
s . setStyle ( _5ec . effects [ 0 ] . element , _5ea ) ;
} } , _5e7 || { } ) ;
return new v . Parallel ( [ new v . Scale ( _5e6 , 200 , { sync : true , scaleFromCenter : true , scaleContent : true , restoreAfterFinish : true } ) , new v . Opacity ( _5e6 , { sync : true , to : 0 } ) ] , _5e7 ) ;
} ;
MochiKit . Visual . blindUp = function ( _5ed , _5ee ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
_5ed = d . getElement ( _5ed ) ;
var _5f0 = d . makeClipping ( _5ed ) ;
_5ee = MochiKit . Base . update ( { scaleContent : false , scaleX : false , restoreAfterFinish : true , afterFinishInternal : function ( _5f1 ) {
MochiKit . Style . hideElement ( _5f1 . element ) ;
d . undoClipping ( _5f1 . element , _5f0 ) ;
} } , _5ee || { } ) ;
return new MochiKit . Visual . Scale ( _5ed , 0 , _5ee ) ;
} ;
MochiKit . Visual . blindDown = function ( _5f2 , _5f3 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_5f2 = d . getElement ( _5f2 ) ;
var _5f6 = s . getElementDimensions ( _5f2 ) ;
var _5f7 ;
_5f3 = MochiKit . Base . update ( { scaleContent : false , scaleX : false , scaleFrom : 0 , scaleMode : { originalHeight : _5f6 . h , originalWidth : _5f6 . w } , restoreAfterFinish : true , afterSetupInternal : function ( _5f8 ) {
_5f7 = d . makeClipping ( _5f8 . element ) ;
s . setStyle ( _5f8 . element , { height : "0px" } ) ;
s . showElement ( _5f8 . element ) ;
} , afterFinishInternal : function ( _5f9 ) {
d . undoClipping ( _5f9 . element , _5f7 ) ;
} } , _5f3 || { } ) ;
return new MochiKit . Visual . Scale ( _5f2 , 100 , _5f3 ) ;
} ;
MochiKit . Visual . switchOff = function ( _5fa , _5fb ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
2008-04-30 21:17:33 +04:00
_5fa = d . getElement ( _5fa ) ;
var _5fd = _5fa . style . opacity || "" ;
var _5fe ;
var _5fb = MochiKit . Base . update ( { duration : 0.3 , scaleFromCenter : true , scaleX : false , scaleContent : false , restoreAfterFinish : true , beforeSetupInternal : function ( _5ff ) {
d . makePositioned ( _5ff . element ) ;
_5fe = d . makeClipping ( _5ff . element ) ;
} , afterFinishInternal : function ( _600 ) {
MochiKit . Style . hideElement ( _600 . element ) ;
d . undoClipping ( _600 . element , _5fe ) ;
d . undoPositioned ( _600 . element ) ;
MochiKit . Style . setStyle ( _600 . element , { opacity : _5fd } ) ;
} } , _5fb || { } ) ;
2006-11-07 02:48:11 +03:00
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
return new v . appear ( _5fa , { duration : 0.4 , from : 0 , transition : v . Transitions . flicker , afterFinishInternal : function ( _602 ) {
new v . Scale ( _602 . element , 1 , _5fb ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . dropOut = function ( _603 , _604 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_603 = d . getElement ( _603 ) ;
var _607 = { top : s . getStyle ( _603 , "top" ) , left : s . getStyle ( _603 , "left" ) , opacity : _603 . style . opacity || "" } ;
_604 = MochiKit . Base . update ( { duration : 0.5 , beforeSetupInternal : function ( _608 ) {
d . makePositioned ( _608 . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _609 ) {
s . hideElement ( _609 . effects [ 0 ] . element ) ;
d . undoPositioned ( _609 . effects [ 0 ] . element ) ;
s . setStyle ( _609 . effects [ 0 ] . element , _607 ) ;
} } , _604 || { } ) ;
2006-11-07 02:48:11 +03:00
var v = MochiKit . Visual ;
2008-04-30 21:17:33 +04:00
return new v . Parallel ( [ new v . Move ( _603 , { x : 0 , y : 100 , sync : true } ) , new v . Opacity ( _603 , { sync : true , to : 0 } ) ] , _604 ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . shake = function ( _60b , _60c ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_60b = d . getElement ( _60b ) ;
_60c = MochiKit . Base . update ( { x : - 20 , y : 0 , duration : 0.05 , afterFinishInternal : function ( _610 ) {
d . undoPositioned ( _610 . element ) ;
s . setStyle ( _610 . element , _611 ) ;
} } , _60c || { } ) ;
var _611 = { top : s . getStyle ( _60b , "top" ) , left : s . getStyle ( _60b , "left" ) } ;
return new v . Move ( _60b , { x : 20 , y : 0 , duration : 0.05 , afterFinishInternal : function ( _612 ) {
new v . Move ( _612 . element , { x : - 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _613 ) {
new v . Move ( _613 . element , { x : 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _614 ) {
new v . Move ( _614 . element , { x : - 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _615 ) {
new v . Move ( _615 . element , { x : 40 , y : 0 , duration : 0.1 , afterFinishInternal : function ( _616 ) {
new v . Move ( _616 . element , _60c ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
} } ) ;
} } ) ;
} } ) ;
} } ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . slideDown = function ( _617 , _618 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_617 = d . getElement ( _617 ) ;
if ( ! _617 . firstChild ) {
2006-11-07 02:48:11 +03:00
throw "MochiKit.Visual.slideDown must be used on a element with a child" ;
}
2008-04-30 21:17:33 +04:00
d . removeEmptyTextNodes ( _617 ) ;
var _61c = s . getStyle ( _617 . firstChild , "bottom" ) || 0 ;
var _61d = s . getElementDimensions ( _617 ) ;
var _61e ;
_618 = b . update ( { scaleContent : false , scaleX : false , scaleFrom : 0 , scaleMode : { originalHeight : _61d . h , originalWidth : _61d . w } , restoreAfterFinish : true , afterSetupInternal : function ( _61f ) {
d . makePositioned ( _61f . element ) ;
d . makePositioned ( _61f . element . firstChild ) ;
2006-11-07 02:48:11 +03:00
if ( /Opera/ . test ( navigator . userAgent ) ) {
2008-04-30 21:17:33 +04:00
s . setStyle ( _61f . element , { top : "" } ) ;
}
_61e = d . makeClipping ( _61f . element ) ;
s . setStyle ( _61f . element , { height : "0px" } ) ;
s . showElement ( _61f . element ) ;
} , afterUpdateInternal : function ( _620 ) {
s . setStyle ( _620 . element . firstChild , { bottom : ( _620 . dims [ 0 ] - _620 . element . clientHeight ) + "px" } ) ;
} , afterFinishInternal : function ( _621 ) {
d . undoClipping ( _621 . element , _61e ) ;
2006-11-07 02:48:11 +03:00
if ( /MSIE/ . test ( navigator . userAgent ) ) {
2008-04-30 21:17:33 +04:00
d . undoPositioned ( _621 . element ) ;
d . undoPositioned ( _621 . element . firstChild ) ;
2006-11-07 02:48:11 +03:00
} else {
2008-04-30 21:17:33 +04:00
d . undoPositioned ( _621 . element . firstChild ) ;
d . undoPositioned ( _621 . element ) ;
2006-11-07 02:48:11 +03:00
}
2008-04-30 21:17:33 +04:00
s . setStyle ( _621 . element . firstChild , { bottom : _61c } ) ;
} } , _618 || { } ) ;
return new MochiKit . Visual . Scale ( _617 , 100 , _618 ) ;
2006-11-07 02:48:11 +03:00
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . slideUp = function ( _622 , _623 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_622 = d . getElement ( _622 ) ;
if ( ! _622 . firstChild ) {
2006-11-07 02:48:11 +03:00
throw "MochiKit.Visual.slideUp must be used on a element with a child" ;
}
2008-04-30 21:17:33 +04:00
d . removeEmptyTextNodes ( _622 ) ;
var _627 = s . getStyle ( _622 . firstChild , "bottom" ) ;
var _628 ;
_623 = b . update ( { scaleContent : false , scaleX : false , scaleMode : "box" , scaleFrom : 100 , restoreAfterFinish : true , beforeStartInternal : function ( _629 ) {
d . makePositioned ( _629 . element ) ;
d . makePositioned ( _629 . element . firstChild ) ;
2006-11-07 02:48:11 +03:00
if ( /Opera/ . test ( navigator . userAgent ) ) {
2008-04-30 21:17:33 +04:00
s . setStyle ( _629 . element , { top : "" } ) ;
}
_628 = d . makeClipping ( _629 . element ) ;
s . showElement ( _629 . element ) ;
} , afterUpdateInternal : function ( _62a ) {
s . setStyle ( _62a . element . firstChild , { bottom : ( _62a . dims [ 0 ] - _62a . element . clientHeight ) + "px" } ) ;
} , afterFinishInternal : function ( _62b ) {
s . hideElement ( _62b . element ) ;
d . undoClipping ( _62b . element , _628 ) ;
d . undoPositioned ( _62b . element . firstChild ) ;
d . undoPositioned ( _62b . element ) ;
s . setStyle ( _62b . element . firstChild , { bottom : _627 } ) ;
} } , _623 || { } ) ;
return new MochiKit . Visual . Scale ( _622 , 0 , _623 ) ;
} ;
MochiKit . Visual . squish = function ( _62c , _62d ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var b = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _630 ;
_62d = b . update ( { restoreAfterFinish : true , beforeSetupInternal : function ( _631 ) {
_630 = d . makeClipping ( _631 . element ) ;
} , afterFinishInternal : function ( _632 ) {
MochiKit . Style . hideElement ( _632 . element ) ;
d . undoClipping ( _632 . element , _630 ) ;
} } , _62d || { } ) ;
return new MochiKit . Visual . Scale ( _62c , /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , _62d ) ;
} ;
MochiKit . Visual . grow = function ( _633 , _634 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_633 = d . getElement ( _633 ) ;
_634 = MochiKit . Base . update ( { direction : "center" , moveTransition : v . Transitions . sinoidal , scaleTransition : v . Transitions . sinoidal , opacityTransition : v . Transitions . full } , _634 || { } ) ;
var _638 = { top : _633 . style . top , left : _633 . style . left , height : _633 . style . height , width : _633 . style . width , opacity : _633 . style . opacity || "" } ;
var dims = s . getElementDimensions ( _633 ) ;
var _63a , _63b ;
var _63c , _63d ;
switch ( _634 . direction ) {
2006-11-07 02:48:11 +03:00
case "top-left" :
2008-04-30 21:17:33 +04:00
_63a = _63b = _63c = _63d = 0 ;
2006-11-07 02:48:11 +03:00
break ;
case "top-right" :
2008-04-30 21:17:33 +04:00
_63a = dims . w ;
_63b = _63d = 0 ;
_63c = - dims . w ;
2006-11-07 02:48:11 +03:00
break ;
case "bottom-left" :
2008-04-30 21:17:33 +04:00
_63a = _63c = 0 ;
_63b = dims . h ;
_63d = - dims . h ;
2006-11-07 02:48:11 +03:00
break ;
case "bottom-right" :
2008-04-30 21:17:33 +04:00
_63a = dims . w ;
_63b = dims . h ;
_63c = - dims . w ;
_63d = - dims . h ;
2006-11-07 02:48:11 +03:00
break ;
case "center" :
2008-04-30 21:17:33 +04:00
_63a = dims . w / 2 ;
_63b = dims . h / 2 ;
_63c = - dims . w / 2 ;
_63d = - dims . h / 2 ;
2006-11-07 02:48:11 +03:00
break ;
}
2008-04-30 21:17:33 +04:00
var _63e = MochiKit . Base . update ( { beforeSetupInternal : function ( _63f ) {
s . setStyle ( _63f . effects [ 0 ] . element , { height : "0px" } ) ;
s . showElement ( _63f . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _640 ) {
d . undoClipping ( _640 . effects [ 0 ] . element ) ;
d . undoPositioned ( _640 . effects [ 0 ] . element ) ;
s . setStyle ( _640 . effects [ 0 ] . element , _638 ) ;
} } , _634 || { } ) ;
return new v . Move ( _633 , { x : _63a , y : _63b , duration : 0.01 , beforeSetupInternal : function ( _641 ) {
s . hideElement ( _641 . element ) ;
d . makeClipping ( _641 . element ) ;
d . makePositioned ( _641 . element ) ;
} , afterFinishInternal : function ( _642 ) {
new v . Parallel ( [ new v . Opacity ( _642 . element , { sync : true , to : 1 , from : 0 , transition : _634 . opacityTransition } ) , new v . Move ( _642 . element , { x : _63c , y : _63d , sync : true , transition : _634 . moveTransition } ) , new v . Scale ( _642 . element , 100 , { scaleMode : { originalHeight : dims . h , originalWidth : dims . w } , sync : true , scaleFrom : /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , transition : _634 . scaleTransition , restoreAfterFinish : true } ) ] , _63e ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
} ;
2008-04-30 21:17:33 +04:00
MochiKit . Visual . shrink = function ( _643 , _644 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_643 = d . getElement ( _643 ) ;
_644 = MochiKit . Base . update ( { direction : "center" , moveTransition : v . Transitions . sinoidal , scaleTransition : v . Transitions . sinoidal , opacityTransition : v . Transitions . none } , _644 || { } ) ;
var _648 = { top : _643 . style . top , left : _643 . style . left , height : _643 . style . height , width : _643 . style . width , opacity : _643 . style . opacity || "" } ;
var dims = s . getElementDimensions ( _643 ) ;
var _64a , _64b ;
switch ( _644 . direction ) {
2006-11-07 02:48:11 +03:00
case "top-left" :
2008-04-30 21:17:33 +04:00
_64a = _64b = 0 ;
2006-11-07 02:48:11 +03:00
break ;
case "top-right" :
2008-04-30 21:17:33 +04:00
_64a = dims . w ;
_64b = 0 ;
2006-11-07 02:48:11 +03:00
break ;
case "bottom-left" :
2008-04-30 21:17:33 +04:00
_64a = 0 ;
_64b = dims . h ;
2006-11-07 02:48:11 +03:00
break ;
case "bottom-right" :
2008-04-30 21:17:33 +04:00
_64a = dims . w ;
_64b = dims . h ;
2006-11-07 02:48:11 +03:00
break ;
case "center" :
2008-04-30 21:17:33 +04:00
_64a = dims . w / 2 ;
_64b = dims . h / 2 ;
2006-11-07 02:48:11 +03:00
break ;
}
2008-04-30 21:17:33 +04:00
var _64c ;
var _64d = MochiKit . Base . update ( { beforeStartInternal : function ( _64e ) {
_64c = d . makePositioned ( _64e . effects [ 0 ] . element ) ;
d . makeClipping ( _64e . effects [ 0 ] . element ) ;
} , afterFinishInternal : function ( _64f ) {
s . hideElement ( _64f . effects [ 0 ] . element ) ;
d . undoClipping ( _64f . effects [ 0 ] . element , _64c ) ;
d . undoPositioned ( _64f . effects [ 0 ] . element ) ;
s . setStyle ( _64f . effects [ 0 ] . element , _648 ) ;
} } , _644 || { } ) ;
return new v . Parallel ( [ new v . Opacity ( _643 , { sync : true , to : 0 , from : 1 , transition : _644 . opacityTransition } ) , new v . Scale ( _643 , /Opera/ . test ( navigator . userAgent ) ? 1 : 0 , { sync : true , transition : _644 . scaleTransition , restoreAfterFinish : true } ) , new v . Move ( _643 , { x : _64a , y : _64b , sync : true , transition : _644 . moveTransition } ) ] , _64d ) ;
} ;
MochiKit . Visual . pulsate = function ( _650 , _651 ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var b = MochiKit . Base ;
2008-04-30 21:17:33 +04:00
var _655 = d . getElement ( _650 ) . style . opacity || "" ;
_651 = b . update ( { duration : 3 , from : 0 , afterFinishInternal : function ( _656 ) {
MochiKit . Style . setStyle ( _656 . element , { opacity : _655 } ) ;
} } , _651 || { } ) ;
var _657 = _651 . transition || v . Transitions . sinoidal ;
var _658 = b . bind ( function ( pos ) {
return _657 ( 1 - v . Transitions . pulse ( pos ) ) ;
} , _657 ) ;
b . bind ( _658 , _657 ) ;
return new v . Opacity ( _650 , b . update ( { transition : _658 } , _651 ) ) ;
} ;
MochiKit . Visual . fold = function ( _65a , _65b ) {
2006-11-07 02:48:11 +03:00
var d = MochiKit . DOM ;
var v = MochiKit . Visual ;
var s = MochiKit . Style ;
2008-04-30 21:17:33 +04:00
_65a = d . getElement ( _65a ) ;
var _65f = { top : _65a . style . top , left : _65a . style . left , width : _65a . style . width , height : _65a . style . height } ;
var _660 = d . makeClipping ( _65a ) ;
_65b = MochiKit . Base . update ( { scaleContent : false , scaleX : false , afterFinishInternal : function ( _661 ) {
new v . Scale ( _65a , 1 , { scaleContent : false , scaleY : false , afterFinishInternal : function ( _662 ) {
s . hideElement ( _662 . element ) ;
d . undoClipping ( _662 . element , _660 ) ;
s . setStyle ( _662 . element , _65f ) ;
2006-11-07 02:48:11 +03:00
} } ) ;
2008-04-30 21:17:33 +04:00
} } , _65b || { } ) ;
return new v . Scale ( _65a , 5 , _65b ) ;
2006-11-07 02:48:11 +03:00
} ;
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" , "Base" , "Parallel" , "Opacity" , "Move" , "Scale" , "Highlight" , "ScrollTo" , "fade" , "appear" , "puff" , "blindUp" , "blindDown" , "switchOff" , "dropOut" , "shake" , "slideDown" , "slideUp" , "squish" , "grow" , "shrink" , "pulsate" , "fold" ] ;
MochiKit . Visual . EXPORT _OK = [ "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" , "Style" , "LoggingPane" , "Color" , "Signal" , "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 ( ) {
2008-04-30 21:17:33 +04:00
var _666 = MochiKit . Base . extend ;
2006-11-07 02:48:11 +03:00
var self = MochiKit . MochiKit ;
2008-04-30 21:17:33 +04:00
var _668 = self . SUBMODULES ;
var _669 = [ ] ;
var _66a = [ ] ;
var _66b = { } ;
2006-11-07 02:48:11 +03:00
var i , k , m , all ;
2008-04-30 21:17:33 +04:00
for ( i = 0 ; i < _668 . length ; i ++ ) {
m = MochiKit [ _668 [ i ] ] ;
_666 ( _669 , m . EXPORT ) ;
_666 ( _66a , m . EXPORT _OK ) ;
2006-11-07 02:48:11 +03:00
for ( k in m . EXPORT _TAGS ) {
2008-04-30 21:17:33 +04:00
_66b [ k ] = _666 ( _66b [ k ] , m . EXPORT _TAGS [ k ] ) ;
2006-11-07 02:48:11 +03:00
}
all = m . EXPORT _TAGS [ ":all" ] ;
if ( ! all ) {
2008-04-30 21:17:33 +04:00
all = _666 ( null , m . EXPORT , m . EXPORT _OK ) ;
2006-11-07 02:48:11 +03:00
}
var j ;
for ( j = 0 ; j < all . length ; j ++ ) {
k = all [ j ] ;
self [ k ] = m [ k ] ;
}
}
2008-04-30 21:17:33 +04:00
self . EXPORT = _669 ;
self . EXPORT _OK = _66a ;
self . EXPORT _TAGS = _66b ;
2006-11-07 02:48:11 +03:00
} ( ) ) ;
} else {
if ( typeof ( MochiKit . _ _compat _ _ ) == "undefined" ) {
MochiKit . _ _compat _ _ = true ;
}
( function ( ) {
if ( typeof ( document ) == "undefined" ) {
return ;
}
2008-04-30 21:17:33 +04:00
var _671 = document . getElementsByTagName ( "script" ) ;
var _672 = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ;
2006-11-07 02:48:11 +03:00
var base = null ;
2008-04-30 21:17:33 +04:00
var _674 = null ;
var _675 = { } ;
2006-11-07 02:48:11 +03:00
var i ;
2008-04-30 21:17:33 +04:00
for ( i = 0 ; i < _671 . length ; i ++ ) {
var src = _671 [ i ] . getAttribute ( "src" ) ;
2006-11-07 02:48:11 +03:00
if ( ! src ) {
continue ;
}
2008-04-30 21:17:33 +04:00
_675 [ src ] = true ;
2006-11-07 02:48:11 +03:00
if ( src . match ( /MochiKit.js$/ ) ) {
base = src . substring ( 0 , src . lastIndexOf ( "MochiKit.js" ) ) ;
2008-04-30 21:17:33 +04:00
_674 = _671 [ i ] ;
2006-11-07 02:48:11 +03:00
}
}
if ( base === null ) {
return ;
}
2008-04-30 21:17:33 +04:00
var _678 = MochiKit . MochiKit . SUBMODULES ;
for ( var i = 0 ; i < _678 . length ; i ++ ) {
if ( MochiKit [ _678 [ i ] ] ) {
2006-11-07 02:48:11 +03:00
continue ;
}
2008-04-30 21:17:33 +04:00
var uri = base + _678 [ i ] + ".js" ;
if ( uri in _675 ) {
2006-11-07 02:48:11 +03:00
continue ;
}
2008-04-30 21:17:33 +04:00
if ( document . documentElement && document . documentElement . namespaceURI == _672 ) {
var s = document . createElementNS ( _672 , "script" ) ;
s . setAttribute ( "id" , "MochiKit_" + base + _678 [ i ] ) ;
2006-11-07 02:48:11 +03:00
s . setAttribute ( "src" , uri ) ;
s . setAttribute ( "type" , "application/x-javascript" ) ;
2008-04-30 21:17:33 +04:00
_674 . parentNode . appendChild ( s ) ;
2006-11-07 02:48:11 +03:00
} else {
document . write ( "<script src=\"" + uri + "\" type=\"text/javascript\"></script>" ) ;
}
}
} ) ( ) ;
}