packed.js 147 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113
  1. /***
  2. MochiKit.MochiKit 1.4 : PACKED VERSION
  3. THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
  4. diff against the source tree, not this file.
  5. See <http://mochikit.com/> for documentation, downloads, license, etc.
  6. (c) 2005 Bob Ippolito. All rights Reserved.
  7. ***/
  8. if(typeof (dojo)!="undefined"){
  9. dojo.provide("MochiKit.Base");
  10. }
  11. if(typeof (MochiKit)=="undefined"){
  12. MochiKit={};
  13. }
  14. if(typeof (MochiKit.Base)=="undefined"){
  15. MochiKit.Base={};
  16. }
  17. if(typeof (MochiKit.__export__)=="undefined"){
  18. MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined"));
  19. }
  20. MochiKit.Base.VERSION="1.4";
  21. MochiKit.Base.NAME="MochiKit.Base";
  22. MochiKit.Base.update=function(_1,_2){
  23. if(_1===null){
  24. _1={};
  25. }
  26. for(var i=1;i<arguments.length;i++){
  27. var o=arguments[i];
  28. if(typeof (o)!="undefined"&&o!==null){
  29. for(var k in o){
  30. _1[k]=o[k];
  31. }
  32. }
  33. }
  34. return _1;
  35. };
  36. MochiKit.Base.update(MochiKit.Base,{__repr__:function(){
  37. return "["+this.NAME+" "+this.VERSION+"]";
  38. },toString:function(){
  39. return this.__repr__();
  40. },camelize:function(_6){
  41. var _7=_6.split("-");
  42. var cc=_7[0];
  43. for(var i=1;i<_7.length;i++){
  44. cc+=_7[i].charAt(0).toUpperCase()+_7[i].substring(1);
  45. }
  46. return cc;
  47. },counter:function(n){
  48. if(arguments.length===0){
  49. n=1;
  50. }
  51. return function(){
  52. return n++;
  53. };
  54. },clone:function(_b){
  55. var me=arguments.callee;
  56. if(arguments.length==1){
  57. me.prototype=_b;
  58. return new me();
  59. }
  60. },_flattenArray:function(_d,_e){
  61. for(var i=0;i<_e.length;i++){
  62. var o=_e[i];
  63. if(o instanceof Array){
  64. arguments.callee(_d,o);
  65. }else{
  66. _d.push(o);
  67. }
  68. }
  69. return _d;
  70. },flattenArray:function(lst){
  71. return MochiKit.Base._flattenArray([],lst);
  72. },flattenArguments:function(lst){
  73. var res=[];
  74. var m=MochiKit.Base;
  75. var _15=m.extend(null,arguments);
  76. while(_15.length){
  77. var o=_15.shift();
  78. if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
  79. for(var i=o.length-1;i>=0;i--){
  80. _15.unshift(o[i]);
  81. }
  82. }else{
  83. res.push(o);
  84. }
  85. }
  86. return res;
  87. },extend:function(_18,obj,_1a){
  88. if(!_1a){
  89. _1a=0;
  90. }
  91. if(obj){
  92. var l=obj.length;
  93. if(typeof (l)!="number"){
  94. if(typeof (MochiKit.Iter)!="undefined"){
  95. obj=MochiKit.Iter.list(obj);
  96. l=obj.length;
  97. }else{
  98. throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
  99. }
  100. }
  101. if(!_18){
  102. _18=[];
  103. }
  104. for(var i=_1a;i<l;i++){
  105. _18.push(obj[i]);
  106. }
  107. }
  108. return _18;
  109. },updatetree:function(_1d,obj){
  110. if(_1d===null){
  111. _1d={};
  112. }
  113. for(var i=1;i<arguments.length;i++){
  114. var o=arguments[i];
  115. if(typeof (o)!="undefined"&&o!==null){
  116. for(var k in o){
  117. var v=o[k];
  118. if(typeof (_1d[k])=="object"&&typeof (v)=="object"){
  119. arguments.callee(_1d[k],v);
  120. }else{
  121. _1d[k]=v;
  122. }
  123. }
  124. }
  125. }
  126. return _1d;
  127. },setdefault:function(_23,obj){
  128. if(_23===null){
  129. _23={};
  130. }
  131. for(var i=1;i<arguments.length;i++){
  132. var o=arguments[i];
  133. for(var k in o){
  134. if(!(k in _23)){
  135. _23[k]=o[k];
  136. }
  137. }
  138. }
  139. return _23;
  140. },keys:function(obj){
  141. var _29=[];
  142. for(var _2a in obj){
  143. _29.push(_2a);
  144. }
  145. return _29;
  146. },values:function(obj){
  147. var _2c=[];
  148. for(var _2d in obj){
  149. _2c.push(obj[_2d]);
  150. }
  151. return _2c;
  152. },items:function(obj){
  153. var _2f=[];
  154. var e;
  155. for(var _31 in obj){
  156. var v;
  157. try{
  158. v=obj[_31];
  159. }
  160. catch(e){
  161. continue;
  162. }
  163. _2f.push([_31,v]);
  164. }
  165. return _2f;
  166. },_newNamedError:function(_33,_34,_35){
  167. _35.prototype=new MochiKit.Base.NamedError(_33.NAME+"."+_34);
  168. _33[_34]=_35;
  169. },operator:{truth:function(a){
  170. return !!a;
  171. },lognot:function(a){
  172. return !a;
  173. },identity:function(a){
  174. return a;
  175. },not:function(a){
  176. return ~a;
  177. },neg:function(a){
  178. return -a;
  179. },add:function(a,b){
  180. return a+b;
  181. },sub:function(a,b){
  182. return a-b;
  183. },div:function(a,b){
  184. return a/b;
  185. },mod:function(a,b){
  186. return a%b;
  187. },mul:function(a,b){
  188. return a*b;
  189. },and:function(a,b){
  190. return a&b;
  191. },or:function(a,b){
  192. return a|b;
  193. },xor:function(a,b){
  194. return a^b;
  195. },lshift:function(a,b){
  196. return a<<b;
  197. },rshift:function(a,b){
  198. return a>>b;
  199. },zrshift:function(a,b){
  200. return a>>>b;
  201. },eq:function(a,b){
  202. return a==b;
  203. },ne:function(a,b){
  204. return a!=b;
  205. },gt:function(a,b){
  206. return a>b;
  207. },ge:function(a,b){
  208. return a>=b;
  209. },lt:function(a,b){
  210. return a<b;
  211. },le:function(a,b){
  212. return a<=b;
  213. },seq:function(a,b){
  214. return a===b;
  215. },sne:function(a,b){
  216. return a!==b;
  217. },ceq:function(a,b){
  218. return MochiKit.Base.compare(a,b)===0;
  219. },cne:function(a,b){
  220. return MochiKit.Base.compare(a,b)!==0;
  221. },cgt:function(a,b){
  222. return MochiKit.Base.compare(a,b)==1;
  223. },cge:function(a,b){
  224. return MochiKit.Base.compare(a,b)!=-1;
  225. },clt:function(a,b){
  226. return MochiKit.Base.compare(a,b)==-1;
  227. },cle:function(a,b){
  228. return MochiKit.Base.compare(a,b)!=1;
  229. },logand:function(a,b){
  230. return a&&b;
  231. },logor:function(a,b){
  232. return a||b;
  233. },contains:function(a,b){
  234. return b in a;
  235. }},forwardCall:function(_73){
  236. return function(){
  237. return this[_73].apply(this,arguments);
  238. };
  239. },itemgetter:function(_74){
  240. return function(arg){
  241. return arg[_74];
  242. };
  243. },typeMatcher:function(){
  244. var _76={};
  245. for(var i=0;i<arguments.length;i++){
  246. var typ=arguments[i];
  247. _76[typ]=typ;
  248. }
  249. return function(){
  250. for(var i=0;i<arguments.length;i++){
  251. if(!(typeof (arguments[i]) in _76)){
  252. return false;
  253. }
  254. }
  255. return true;
  256. };
  257. },isNull:function(){
  258. for(var i=0;i<arguments.length;i++){
  259. if(arguments[i]!==null){
  260. return false;
  261. }
  262. }
  263. return true;
  264. },isUndefinedOrNull:function(){
  265. for(var i=0;i<arguments.length;i++){
  266. var o=arguments[i];
  267. if(!(typeof (o)=="undefined"||o===null)){
  268. return false;
  269. }
  270. }
  271. return true;
  272. },isEmpty:function(obj){
  273. return !MochiKit.Base.isNotEmpty.apply(this,arguments);
  274. },isNotEmpty:function(obj){
  275. for(var i=0;i<arguments.length;i++){
  276. var o=arguments[i];
  277. if(!(o&&o.length)){
  278. return false;
  279. }
  280. }
  281. return true;
  282. },isArrayLike:function(){
  283. for(var i=0;i<arguments.length;i++){
  284. var o=arguments[i];
  285. var typ=typeof (o);
  286. if((typ!="object"&&!(typ=="function"&&typeof (o.item)=="function"))||o===null||typeof (o.length)!="number"||o.nodeType===3){
  287. return false;
  288. }
  289. }
  290. return true;
  291. },isDateLike:function(){
  292. for(var i=0;i<arguments.length;i++){
  293. var o=arguments[i];
  294. if(typeof (o)!="object"||o===null||typeof (o.getTime)!="function"){
  295. return false;
  296. }
  297. }
  298. return true;
  299. },xmap:function(fn){
  300. if(fn===null){
  301. return MochiKit.Base.extend(null,arguments,1);
  302. }
  303. var _87=[];
  304. for(var i=1;i<arguments.length;i++){
  305. _87.push(fn(arguments[i]));
  306. }
  307. return _87;
  308. },map:function(fn,lst){
  309. var m=MochiKit.Base;
  310. var itr=MochiKit.Iter;
  311. var _8d=m.isArrayLike;
  312. if(arguments.length<=2){
  313. if(!_8d(lst)){
  314. if(itr){
  315. lst=itr.list(lst);
  316. if(fn===null){
  317. return lst;
  318. }
  319. }else{
  320. throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
  321. }
  322. }
  323. if(fn===null){
  324. return m.extend(null,lst);
  325. }
  326. var _8e=[];
  327. for(var i=0;i<lst.length;i++){
  328. _8e.push(fn(lst[i]));
  329. }
  330. return _8e;
  331. }else{
  332. if(fn===null){
  333. fn=Array;
  334. }
  335. var _90=null;
  336. for(i=1;i<arguments.length;i++){
  337. if(!_8d(arguments[i])){
  338. if(itr){
  339. return itr.list(itr.imap.apply(null,arguments));
  340. }else{
  341. throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
  342. }
  343. }
  344. var l=arguments[i].length;
  345. if(_90===null||_90>l){
  346. _90=l;
  347. }
  348. }
  349. _8e=[];
  350. for(i=0;i<_90;i++){
  351. var _92=[];
  352. for(var j=1;j<arguments.length;j++){
  353. _92.push(arguments[j][i]);
  354. }
  355. _8e.push(fn.apply(this,_92));
  356. }
  357. return _8e;
  358. }
  359. },xfilter:function(fn){
  360. var _95=[];
  361. if(fn===null){
  362. fn=MochiKit.Base.operator.truth;
  363. }
  364. for(var i=1;i<arguments.length;i++){
  365. var o=arguments[i];
  366. if(fn(o)){
  367. _95.push(o);
  368. }
  369. }
  370. return _95;
  371. },filter:function(fn,lst,_9a){
  372. var _9b=[];
  373. var m=MochiKit.Base;
  374. if(!m.isArrayLike(lst)){
  375. if(MochiKit.Iter){
  376. lst=MochiKit.Iter.list(lst);
  377. }else{
  378. throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
  379. }
  380. }
  381. if(fn===null){
  382. fn=m.operator.truth;
  383. }
  384. if(typeof (Array.prototype.filter)=="function"){
  385. return Array.prototype.filter.call(lst,fn,_9a);
  386. }else{
  387. if(typeof (_9a)=="undefined"||_9a===null){
  388. for(var i=0;i<lst.length;i++){
  389. var o=lst[i];
  390. if(fn(o)){
  391. _9b.push(o);
  392. }
  393. }
  394. }else{
  395. for(i=0;i<lst.length;i++){
  396. o=lst[i];
  397. if(fn.call(_9a,o)){
  398. _9b.push(o);
  399. }
  400. }
  401. }
  402. }
  403. return _9b;
  404. },_wrapDumbFunction:function(_9f){
  405. return function(){
  406. switch(arguments.length){
  407. case 0:
  408. return _9f();
  409. case 1:
  410. return _9f(arguments[0]);
  411. case 2:
  412. return _9f(arguments[0],arguments[1]);
  413. case 3:
  414. return _9f(arguments[0],arguments[1],arguments[2]);
  415. }
  416. var _a0=[];
  417. for(var i=0;i<arguments.length;i++){
  418. _a0.push("arguments["+i+"]");
  419. }
  420. return eval("(func("+_a0.join(",")+"))");
  421. };
  422. },methodcaller:function(_a2){
  423. var _a3=MochiKit.Base.extend(null,arguments,1);
  424. if(typeof (_a2)=="function"){
  425. return function(obj){
  426. return _a2.apply(obj,_a3);
  427. };
  428. }else{
  429. return function(obj){
  430. return obj[_a2].apply(obj,_a3);
  431. };
  432. }
  433. },method:function(_a6,_a7){
  434. var m=MochiKit.Base;
  435. return m.bind.apply(this,m.extend([_a7,_a6],arguments,2));
  436. },compose:function(f1,f2){
  437. var _ab=[];
  438. var m=MochiKit.Base;
  439. if(arguments.length===0){
  440. throw new TypeError("compose() requires at least one argument");
  441. }
  442. for(var i=0;i<arguments.length;i++){
  443. var fn=arguments[i];
  444. if(typeof (fn)!="function"){
  445. throw new TypeError(m.repr(fn)+" is not a function");
  446. }
  447. _ab.push(fn);
  448. }
  449. return function(){
  450. var _af=arguments;
  451. for(var i=_ab.length-1;i>=0;i--){
  452. _af=[_ab[i].apply(this,_af)];
  453. }
  454. return _af[0];
  455. };
  456. },bind:function(_b1,_b2){
  457. if(typeof (_b1)=="string"){
  458. _b1=_b2[_b1];
  459. }
  460. var _b3=_b1.im_func;
  461. var _b4=_b1.im_preargs;
  462. var _b5=_b1.im_self;
  463. var m=MochiKit.Base;
  464. if(typeof (_b1)=="function"&&typeof (_b1.apply)=="undefined"){
  465. _b1=m._wrapDumbFunction(_b1);
  466. }
  467. if(typeof (_b3)!="function"){
  468. _b3=_b1;
  469. }
  470. if(typeof (_b2)!="undefined"){
  471. _b5=_b2;
  472. }
  473. if(typeof (_b4)=="undefined"){
  474. _b4=[];
  475. }else{
  476. _b4=_b4.slice();
  477. }
  478. m.extend(_b4,arguments,2);
  479. var _b7=function(){
  480. var _b8=arguments;
  481. var me=arguments.callee;
  482. if(me.im_preargs.length>0){
  483. _b8=m.concat(me.im_preargs,_b8);
  484. }
  485. var _ba=me.im_self;
  486. if(!_ba){
  487. _ba=this;
  488. }
  489. return me.im_func.apply(_ba,_b8);
  490. };
  491. _b7.im_self=_b5;
  492. _b7.im_func=_b3;
  493. _b7.im_preargs=_b4;
  494. return _b7;
  495. },bindMethods:function(_bb){
  496. var _bc=MochiKit.Base.bind;
  497. for(var k in _bb){
  498. var _be=_bb[k];
  499. if(typeof (_be)=="function"){
  500. _bb[k]=_bc(_be,_bb);
  501. }
  502. }
  503. },registerComparator:function(_bf,_c0,_c1,_c2){
  504. MochiKit.Base.comparatorRegistry.register(_bf,_c0,_c1,_c2);
  505. },_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){
  506. if(a==b){
  507. return 0;
  508. }
  509. var _c5=(typeof (a)=="undefined"||a===null);
  510. var _c6=(typeof (b)=="undefined"||b===null);
  511. if(_c5&&_c6){
  512. return 0;
  513. }else{
  514. if(_c5){
  515. return -1;
  516. }else{
  517. if(_c6){
  518. return 1;
  519. }
  520. }
  521. }
  522. var m=MochiKit.Base;
  523. var _c8=m._primitives;
  524. if(!(typeof (a) in _c8&&typeof (b) in _c8)){
  525. try{
  526. return m.comparatorRegistry.match(a,b);
  527. }
  528. catch(e){
  529. if(e!=m.NotFound){
  530. throw e;
  531. }
  532. }
  533. }
  534. if(a<b){
  535. return -1;
  536. }else{
  537. if(a>b){
  538. return 1;
  539. }
  540. }
  541. var _c9=m.repr;
  542. throw new TypeError(_c9(a)+" and "+_c9(b)+" can not be compared");
  543. },compareDateLike:function(a,b){
  544. return MochiKit.Base.compare(a.getTime(),b.getTime());
  545. },compareArrayLike:function(a,b){
  546. var _ce=MochiKit.Base.compare;
  547. var _cf=a.length;
  548. var _d0=0;
  549. if(_cf>b.length){
  550. _d0=1;
  551. _cf=b.length;
  552. }else{
  553. if(_cf<b.length){
  554. _d0=-1;
  555. }
  556. }
  557. for(var i=0;i<_cf;i++){
  558. var cmp=_ce(a[i],b[i]);
  559. if(cmp){
  560. return cmp;
  561. }
  562. }
  563. return _d0;
  564. },registerRepr:function(_d3,_d4,_d5,_d6){
  565. MochiKit.Base.reprRegistry.register(_d3,_d4,_d5,_d6);
  566. },repr:function(o){
  567. if(typeof (o)=="undefined"){
  568. return "undefined";
  569. }else{
  570. if(o===null){
  571. return "null";
  572. }
  573. }
  574. try{
  575. if(typeof (o.__repr__)=="function"){
  576. return o.__repr__();
  577. }else{
  578. if(typeof (o.repr)=="function"&&o.repr!=arguments.callee){
  579. return o.repr();
  580. }
  581. }
  582. return MochiKit.Base.reprRegistry.match(o);
  583. }
  584. catch(e){
  585. if(typeof (o.NAME)=="string"&&(o.toString==Function.prototype.toString||o.toString==Object.prototype.toString)){
  586. return o.NAME;
  587. }
  588. }
  589. try{
  590. var _d8=(o+"");
  591. }
  592. catch(e){
  593. return "["+typeof (o)+"]";
  594. }
  595. if(typeof (o)=="function"){
  596. o=_d8.replace(/^\s+/,"");
  597. var idx=o.indexOf("{");
  598. if(idx!=-1){
  599. o=o.substr(0,idx)+"{...}";
  600. }
  601. }
  602. return _d8;
  603. },reprArrayLike:function(o){
  604. var m=MochiKit.Base;
  605. return "["+m.map(m.repr,o).join(", ")+"]";
  606. },reprString:function(o){
  607. 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");
  608. },reprNumber:function(o){
  609. return o+"";
  610. },registerJSON:function(_de,_df,_e0,_e1){
  611. MochiKit.Base.jsonRegistry.register(_de,_df,_e0,_e1);
  612. },evalJSON:function(){
  613. return eval("("+arguments[0]+")");
  614. },serializeJSON:function(o){
  615. var _e3=typeof (o);
  616. if(_e3=="number"||_e3=="boolean"){
  617. return o+"";
  618. }else{
  619. if(o===null){
  620. return "null";
  621. }
  622. }
  623. var m=MochiKit.Base;
  624. var _e5=m.reprString;
  625. if(_e3=="string"){
  626. return _e5(o);
  627. }
  628. var me=arguments.callee;
  629. var _e7;
  630. if(typeof (o.__json__)=="function"){
  631. _e7=o.__json__();
  632. if(o!==_e7){
  633. return me(_e7);
  634. }
  635. }
  636. if(typeof (o.json)=="function"){
  637. _e7=o.json();
  638. if(o!==_e7){
  639. return me(_e7);
  640. }
  641. }
  642. if(_e3!="function"&&typeof (o.length)=="number"){
  643. var res=[];
  644. for(var i=0;i<o.length;i++){
  645. var val=me(o[i]);
  646. if(typeof (val)!="string"){
  647. val="undefined";
  648. }
  649. res.push(val);
  650. }
  651. return "["+res.join(", ")+"]";
  652. }
  653. try{
  654. _e7=m.jsonRegistry.match(o);
  655. if(o!==_e7){
  656. return me(_e7);
  657. }
  658. }
  659. catch(e){
  660. if(e!=m.NotFound){
  661. throw e;
  662. }
  663. }
  664. if(_e3=="undefined"){
  665. throw new TypeError("undefined can not be serialized as JSON");
  666. }
  667. if(_e3=="function"){
  668. return null;
  669. }
  670. res=[];
  671. for(var k in o){
  672. var _ec;
  673. if(typeof (k)=="number"){
  674. _ec="\""+k+"\"";
  675. }else{
  676. if(typeof (k)=="string"){
  677. _ec=_e5(k);
  678. }else{
  679. continue;
  680. }
  681. }
  682. val=me(o[k]);
  683. if(typeof (val)!="string"){
  684. continue;
  685. }
  686. res.push(_ec+":"+val);
  687. }
  688. return "{"+res.join(", ")+"}";
  689. },objEqual:function(a,b){
  690. return (MochiKit.Base.compare(a,b)===0);
  691. },arrayEqual:function(_ef,arr){
  692. if(_ef.length!=arr.length){
  693. return false;
  694. }
  695. return (MochiKit.Base.compare(_ef,arr)===0);
  696. },concat:function(){
  697. var _f1=[];
  698. var _f2=MochiKit.Base.extend;
  699. for(var i=0;i<arguments.length;i++){
  700. _f2(_f1,arguments[i]);
  701. }
  702. return _f1;
  703. },keyComparator:function(key){
  704. var m=MochiKit.Base;
  705. var _f6=m.compare;
  706. if(arguments.length==1){
  707. return function(a,b){
  708. return _f6(a[key],b[key]);
  709. };
  710. }
  711. var _f9=m.extend(null,arguments);
  712. return function(a,b){
  713. var _fc=0;
  714. for(var i=0;(_fc===0)&&(i<_f9.length);i++){
  715. var key=_f9[i];
  716. _fc=_f6(a[key],b[key]);
  717. }
  718. return _fc;
  719. };
  720. },reverseKeyComparator:function(key){
  721. var _100=MochiKit.Base.keyComparator.apply(this,arguments);
  722. return function(a,b){
  723. return _100(b,a);
  724. };
  725. },partial:function(func){
  726. var m=MochiKit.Base;
  727. return m.bind.apply(this,m.extend([func,undefined],arguments,1));
  728. },listMinMax:function(_105,lst){
  729. if(lst.length===0){
  730. return null;
  731. }
  732. var cur=lst[0];
  733. var _108=MochiKit.Base.compare;
  734. for(var i=1;i<lst.length;i++){
  735. var o=lst[i];
  736. if(_108(o,cur)==_105){
  737. cur=o;
  738. }
  739. }
  740. return cur;
  741. },objMax:function(){
  742. return MochiKit.Base.listMinMax(1,arguments);
  743. },objMin:function(){
  744. return MochiKit.Base.listMinMax(-1,arguments);
  745. },findIdentical:function(lst,_10c,_10d,end){
  746. if(typeof (end)=="undefined"||end===null){
  747. end=lst.length;
  748. }
  749. if(typeof (_10d)=="undefined"||_10d===null){
  750. _10d=0;
  751. }
  752. for(var i=_10d;i<end;i++){
  753. if(lst[i]===_10c){
  754. return i;
  755. }
  756. }
  757. return -1;
  758. },mean:function(){
  759. var sum=0;
  760. var m=MochiKit.Base;
  761. var args=m.extend(null,arguments);
  762. var _113=args.length;
  763. while(args.length){
  764. var o=args.shift();
  765. if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
  766. _113+=o.length-1;
  767. for(var i=o.length-1;i>=0;i--){
  768. sum+=o[i];
  769. }
  770. }else{
  771. sum+=o;
  772. }
  773. }
  774. if(_113<=0){
  775. throw new TypeError("mean() requires at least one argument");
  776. }
  777. return sum/_113;
  778. },median:function(){
  779. var data=MochiKit.Base.flattenArguments(arguments);
  780. if(data.length===0){
  781. throw new TypeError("median() requires at least one argument");
  782. }
  783. data.sort(compare);
  784. if(data.length%2==0){
  785. var _117=data.length/2;
  786. return (data[_117]+data[_117-1])/2;
  787. }else{
  788. return data[(data.length-1)/2];
  789. }
  790. },findValue:function(lst,_119,_11a,end){
  791. if(typeof (end)=="undefined"||end===null){
  792. end=lst.length;
  793. }
  794. if(typeof (_11a)=="undefined"||_11a===null){
  795. _11a=0;
  796. }
  797. var cmp=MochiKit.Base.compare;
  798. for(var i=_11a;i<end;i++){
  799. if(cmp(lst[i],_119)===0){
  800. return i;
  801. }
  802. }
  803. return -1;
  804. },nodeWalk:function(node,_11f){
  805. var _120=[node];
  806. var _121=MochiKit.Base.extend;
  807. while(_120.length){
  808. var res=_11f(_120.shift());
  809. if(res){
  810. _121(_120,res);
  811. }
  812. }
  813. },nameFunctions:function(_123){
  814. var base=_123.NAME;
  815. if(typeof (base)=="undefined"){
  816. base="";
  817. }else{
  818. base=base+".";
  819. }
  820. for(var name in _123){
  821. var o=_123[name];
  822. if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
  823. try{
  824. o.NAME=base+name;
  825. }
  826. catch(e){
  827. }
  828. }
  829. }
  830. },queryString:function(_127,_128){
  831. if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_127)=="string"||(typeof (_127.nodeType)!="undefined"&&_127.nodeType>0))){
  832. var kv=MochiKit.DOM.formContents(_127);
  833. _127=kv[0];
  834. _128=kv[1];
  835. }else{
  836. if(arguments.length==1){
  837. var o=_127;
  838. _127=[];
  839. _128=[];
  840. for(var k in o){
  841. var v=o[k];
  842. if(typeof (v)=="function"){
  843. continue;
  844. }else{
  845. if(typeof (v)!="string"&&typeof (v.length)=="number"){
  846. for(var i=0;i<v.length;i++){
  847. _127.push(k);
  848. _128.push(v[i]);
  849. }
  850. }else{
  851. _127.push(k);
  852. _128.push(v);
  853. }
  854. }
  855. }
  856. }
  857. }
  858. var rval=[];
  859. var len=Math.min(_127.length,_128.length);
  860. var _130=MochiKit.Base.urlEncode;
  861. for(var i=0;i<len;i++){
  862. v=_128[i];
  863. if(typeof (v)!="undefined"&&v!==null){
  864. rval.push(_130(_127[i])+"="+_130(v));
  865. }
  866. }
  867. return rval.join("&");
  868. },parseQueryString:function(_131,_132){
  869. var qstr=(_131[0]=="?")?_131.substring(1):_131;
  870. var _134=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);
  871. var o={};
  872. var _136;
  873. if(typeof (decodeURIComponent)!="undefined"){
  874. _136=decodeURIComponent;
  875. }else{
  876. _136=unescape;
  877. }
  878. if(_132){
  879. for(var i=0;i<_134.length;i++){
  880. var pair=_134[i].split("=");
  881. if(pair.length!==2){
  882. continue;
  883. }
  884. var name=_136(pair[0]);
  885. var arr=o[name];
  886. if(!(arr instanceof Array)){
  887. arr=[];
  888. o[name]=arr;
  889. }
  890. arr.push(_136(pair[1]));
  891. }
  892. }else{
  893. for(i=0;i<_134.length;i++){
  894. pair=_134[i].split("=");
  895. if(pair.length!==2){
  896. continue;
  897. }
  898. o[_136(pair[0])]=_136(pair[1]);
  899. }
  900. }
  901. return o;
  902. }});
  903. MochiKit.Base.AdapterRegistry=function(){
  904. this.pairs=[];
  905. };
  906. MochiKit.Base.AdapterRegistry.prototype={register:function(name,_13c,wrap,_13e){
  907. if(_13e){
  908. this.pairs.unshift([name,_13c,wrap]);
  909. }else{
  910. this.pairs.push([name,_13c,wrap]);
  911. }
  912. },match:function(){
  913. for(var i=0;i<this.pairs.length;i++){
  914. var pair=this.pairs[i];
  915. if(pair[1].apply(this,arguments)){
  916. return pair[2].apply(this,arguments);
  917. }
  918. }
  919. throw MochiKit.Base.NotFound;
  920. },unregister:function(name){
  921. for(var i=0;i<this.pairs.length;i++){
  922. var pair=this.pairs[i];
  923. if(pair[0]==name){
  924. this.pairs.splice(i,1);
  925. return true;
  926. }
  927. }
  928. return false;
  929. }};
  930. 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"];
  931. MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"];
  932. MochiKit.Base._exportSymbols=function(_144,_145){
  933. if(!MochiKit.__export__){
  934. return;
  935. }
  936. var all=_145.EXPORT_TAGS[":all"];
  937. for(var i=0;i<all.length;i++){
  938. _144[all[i]]=_145[all[i]];
  939. }
  940. };
  941. MochiKit.Base.__new__=function(){
  942. var m=this;
  943. m.noop=m.operator.identity;
  944. m.forward=m.forwardCall;
  945. m.find=m.findValue;
  946. if(typeof (encodeURIComponent)!="undefined"){
  947. m.urlEncode=function(_149){
  948. return encodeURIComponent(_149).replace(/\'/g,"%27");
  949. };
  950. }else{
  951. m.urlEncode=function(_14a){
  952. return escape(_14a).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27");
  953. };
  954. }
  955. m.NamedError=function(name){
  956. this.message=name;
  957. this.name=name;
  958. };
  959. m.NamedError.prototype=new Error();
  960. m.update(m.NamedError.prototype,{repr:function(){
  961. if(this.message&&this.message!=this.name){
  962. return this.name+"("+m.repr(this.message)+")";
  963. }else{
  964. return this.name+"()";
  965. }
  966. },toString:m.forwardCall("repr")});
  967. m.NotFound=new m.NamedError("MochiKit.Base.NotFound");
  968. m.listMax=m.partial(m.listMinMax,1);
  969. m.listMin=m.partial(m.listMinMax,-1);
  970. m.isCallable=m.typeMatcher("function");
  971. m.isUndefined=m.typeMatcher("undefined");
  972. m.merge=m.partial(m.update,null);
  973. m.zip=m.partial(m.map,null);
  974. m.average=m.mean;
  975. m.comparatorRegistry=new m.AdapterRegistry();
  976. m.registerComparator("dateLike",m.isDateLike,m.compareDateLike);
  977. m.registerComparator("arrayLike",m.isArrayLike,m.compareArrayLike);
  978. m.reprRegistry=new m.AdapterRegistry();
  979. m.registerRepr("arrayLike",m.isArrayLike,m.reprArrayLike);
  980. m.registerRepr("string",m.typeMatcher("string"),m.reprString);
  981. m.registerRepr("numbers",m.typeMatcher("number","boolean"),m.reprNumber);
  982. m.jsonRegistry=new m.AdapterRegistry();
  983. var all=m.concat(m.EXPORT,m.EXPORT_OK);
  984. m.EXPORT_TAGS={":common":m.concat(m.EXPORT_OK),":all":all};
  985. m.nameFunctions(this);
  986. };
  987. MochiKit.Base.__new__();
  988. if(MochiKit.__export__){
  989. compare=MochiKit.Base.compare;
  990. compose=MochiKit.Base.compose;
  991. serializeJSON=MochiKit.Base.serializeJSON;
  992. }
  993. MochiKit.Base._exportSymbols(this,MochiKit.Base);
  994. if(typeof (dojo)!="undefined"){
  995. dojo.provide("MochiKit.Iter");
  996. dojo.require("MochiKit.Base");
  997. }
  998. if(typeof (JSAN)!="undefined"){
  999. JSAN.use("MochiKit.Base",[]);
  1000. }
  1001. try{
  1002. if(typeof (MochiKit.Base)=="undefined"){
  1003. throw "";
  1004. }
  1005. }
  1006. catch(e){
  1007. throw "MochiKit.Iter depends on MochiKit.Base!";
  1008. }
  1009. if(typeof (MochiKit.Iter)=="undefined"){
  1010. MochiKit.Iter={};
  1011. }
  1012. MochiKit.Iter.NAME="MochiKit.Iter";
  1013. MochiKit.Iter.VERSION="1.4";
  1014. MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){
  1015. return "["+this.NAME+" "+this.VERSION+"]";
  1016. },toString:function(){
  1017. return this.__repr__();
  1018. },registerIteratorFactory:function(name,_14e,_14f,_150){
  1019. MochiKit.Iter.iteratorRegistry.register(name,_14e,_14f,_150);
  1020. },iter:function(_151,_152){
  1021. var self=MochiKit.Iter;
  1022. if(arguments.length==2){
  1023. return self.takewhile(function(a){
  1024. return a!=_152;
  1025. },_151);
  1026. }
  1027. if(typeof (_151.next)=="function"){
  1028. return _151;
  1029. }else{
  1030. if(typeof (_151.iter)=="function"){
  1031. return _151.iter();
  1032. }
  1033. }
  1034. try{
  1035. return self.iteratorRegistry.match(_151);
  1036. }
  1037. catch(e){
  1038. var m=MochiKit.Base;
  1039. if(e==m.NotFound){
  1040. e=new TypeError(typeof (_151)+": "+m.repr(_151)+" is not iterable");
  1041. }
  1042. throw e;
  1043. }
  1044. },count:function(n){
  1045. if(!n){
  1046. n=0;
  1047. }
  1048. var m=MochiKit.Base;
  1049. return {repr:function(){
  1050. return "count("+n+")";
  1051. },toString:m.forwardCall("repr"),next:m.counter(n)};
  1052. },cycle:function(p){
  1053. var self=MochiKit.Iter;
  1054. var m=MochiKit.Base;
  1055. var lst=[];
  1056. var _15c=self.iter(p);
  1057. return {repr:function(){
  1058. return "cycle(...)";
  1059. },toString:m.forwardCall("repr"),next:function(){
  1060. try{
  1061. var rval=_15c.next();
  1062. lst.push(rval);
  1063. return rval;
  1064. }
  1065. catch(e){
  1066. if(e!=self.StopIteration){
  1067. throw e;
  1068. }
  1069. if(lst.length===0){
  1070. this.next=function(){
  1071. throw self.StopIteration;
  1072. };
  1073. }else{
  1074. var i=-1;
  1075. this.next=function(){
  1076. i=(i+1)%lst.length;
  1077. return lst[i];
  1078. };
  1079. }
  1080. return this.next();
  1081. }
  1082. }};
  1083. },repeat:function(elem,n){
  1084. var m=MochiKit.Base;
  1085. if(typeof (n)=="undefined"){
  1086. return {repr:function(){
  1087. return "repeat("+m.repr(elem)+")";
  1088. },toString:m.forwardCall("repr"),next:function(){
  1089. return elem;
  1090. }};
  1091. }
  1092. return {repr:function(){
  1093. return "repeat("+m.repr(elem)+", "+n+")";
  1094. },toString:m.forwardCall("repr"),next:function(){
  1095. if(n<=0){
  1096. throw MochiKit.Iter.StopIteration;
  1097. }
  1098. n-=1;
  1099. return elem;
  1100. }};
  1101. },next:function(_162){
  1102. return _162.next();
  1103. },izip:function(p,q){
  1104. var m=MochiKit.Base;
  1105. var self=MochiKit.Iter;
  1106. var next=self.next;
  1107. var _168=m.map(self.iter,arguments);
  1108. return {repr:function(){
  1109. return "izip(...)";
  1110. },toString:m.forwardCall("repr"),next:function(){
  1111. return m.map(next,_168);
  1112. }};
  1113. },ifilter:function(pred,seq){
  1114. var m=MochiKit.Base;
  1115. seq=MochiKit.Iter.iter(seq);
  1116. if(pred===null){
  1117. pred=m.operator.truth;
  1118. }
  1119. return {repr:function(){
  1120. return "ifilter(...)";
  1121. },toString:m.forwardCall("repr"),next:function(){
  1122. while(true){
  1123. var rval=seq.next();
  1124. if(pred(rval)){
  1125. return rval;
  1126. }
  1127. }
  1128. return undefined;
  1129. }};
  1130. },ifilterfalse:function(pred,seq){
  1131. var m=MochiKit.Base;
  1132. seq=MochiKit.Iter.iter(seq);
  1133. if(pred===null){
  1134. pred=m.operator.truth;
  1135. }
  1136. return {repr:function(){
  1137. return "ifilterfalse(...)";
  1138. },toString:m.forwardCall("repr"),next:function(){
  1139. while(true){
  1140. var rval=seq.next();
  1141. if(!pred(rval)){
  1142. return rval;
  1143. }
  1144. }
  1145. return undefined;
  1146. }};
  1147. },islice:function(seq){
  1148. var self=MochiKit.Iter;
  1149. var m=MochiKit.Base;
  1150. seq=self.iter(seq);
  1151. var _174=0;
  1152. var stop=0;
  1153. var step=1;
  1154. var i=-1;
  1155. if(arguments.length==2){
  1156. stop=arguments[1];
  1157. }else{
  1158. if(arguments.length==3){
  1159. _174=arguments[1];
  1160. stop=arguments[2];
  1161. }else{
  1162. _174=arguments[1];
  1163. stop=arguments[2];
  1164. step=arguments[3];
  1165. }
  1166. }
  1167. return {repr:function(){
  1168. return "islice("+["...",_174,stop,step].join(", ")+")";
  1169. },toString:m.forwardCall("repr"),next:function(){
  1170. var rval;
  1171. while(i<_174){
  1172. rval=seq.next();
  1173. i++;
  1174. }
  1175. if(_174>=stop){
  1176. throw self.StopIteration;
  1177. }
  1178. _174+=step;
  1179. return rval;
  1180. }};
  1181. },imap:function(fun,p,q){
  1182. var m=MochiKit.Base;
  1183. var self=MochiKit.Iter;
  1184. var _17e=m.map(self.iter,m.extend(null,arguments,1));
  1185. var map=m.map;
  1186. var next=self.next;
  1187. return {repr:function(){
  1188. return "imap(...)";
  1189. },toString:m.forwardCall("repr"),next:function(){
  1190. return fun.apply(this,map(next,_17e));
  1191. }};
  1192. },applymap:function(fun,seq,self){
  1193. seq=MochiKit.Iter.iter(seq);
  1194. var m=MochiKit.Base;
  1195. return {repr:function(){
  1196. return "applymap(...)";
  1197. },toString:m.forwardCall("repr"),next:function(){
  1198. return fun.apply(self,seq.next());
  1199. }};
  1200. },chain:function(p,q){
  1201. var self=MochiKit.Iter;
  1202. var m=MochiKit.Base;
  1203. if(arguments.length==1){
  1204. return self.iter(arguments[0]);
  1205. }
  1206. var _189=m.map(self.iter,arguments);
  1207. return {repr:function(){
  1208. return "chain(...)";
  1209. },toString:m.forwardCall("repr"),next:function(){
  1210. while(_189.length>1){
  1211. try{
  1212. return _189[0].next();
  1213. }
  1214. catch(e){
  1215. if(e!=self.StopIteration){
  1216. throw e;
  1217. }
  1218. _189.shift();
  1219. }
  1220. }
  1221. if(_189.length==1){
  1222. var arg=_189.shift();
  1223. this.next=m.bind("next",arg);
  1224. return this.next();
  1225. }
  1226. throw self.StopIteration;
  1227. }};
  1228. },takewhile:function(pred,seq){
  1229. var self=MochiKit.Iter;
  1230. seq=self.iter(seq);
  1231. return {repr:function(){
  1232. return "takewhile(...)";
  1233. },toString:MochiKit.Base.forwardCall("repr"),next:function(){
  1234. var rval=seq.next();
  1235. if(!pred(rval)){
  1236. this.next=function(){
  1237. throw self.StopIteration;
  1238. };
  1239. this.next();
  1240. }
  1241. return rval;
  1242. }};
  1243. },dropwhile:function(pred,seq){
  1244. seq=MochiKit.Iter.iter(seq);
  1245. var m=MochiKit.Base;
  1246. var bind=m.bind;
  1247. return {"repr":function(){
  1248. return "dropwhile(...)";
  1249. },"toString":m.forwardCall("repr"),"next":function(){
  1250. while(true){
  1251. var rval=seq.next();
  1252. if(!pred(rval)){
  1253. break;
  1254. }
  1255. }
  1256. this.next=bind("next",seq);
  1257. return rval;
  1258. }};
  1259. },_tee:function(_194,sync,_196){
  1260. sync.pos[_194]=-1;
  1261. var m=MochiKit.Base;
  1262. var _198=m.listMin;
  1263. return {repr:function(){
  1264. return "tee("+_194+", ...)";
  1265. },toString:m.forwardCall("repr"),next:function(){
  1266. var rval;
  1267. var i=sync.pos[_194];
  1268. if(i==sync.max){
  1269. rval=_196.next();
  1270. sync.deque.push(rval);
  1271. sync.max+=1;
  1272. sync.pos[_194]+=1;
  1273. }else{
  1274. rval=sync.deque[i-sync.min];
  1275. sync.pos[_194]+=1;
  1276. if(i==sync.min&&_198(sync.pos)!=sync.min){
  1277. sync.min+=1;
  1278. sync.deque.shift();
  1279. }
  1280. }
  1281. return rval;
  1282. }};
  1283. },tee:function(_19b,n){
  1284. var rval=[];
  1285. var sync={"pos":[],"deque":[],"max":-1,"min":-1};
  1286. if(arguments.length==1||typeof (n)=="undefined"||n===null){
  1287. n=2;
  1288. }
  1289. var self=MochiKit.Iter;
  1290. _19b=self.iter(_19b);
  1291. var _tee=self._tee;
  1292. for(var i=0;i<n;i++){
  1293. rval.push(_tee(i,sync,_19b));
  1294. }
  1295. return rval;
  1296. },list:function(_1a2){
  1297. var m=MochiKit.Base;
  1298. if(typeof (_1a2.slice)=="function"){
  1299. return _1a2.slice();
  1300. }else{
  1301. if(m.isArrayLike(_1a2)){
  1302. return m.concat(_1a2);
  1303. }
  1304. }
  1305. var self=MochiKit.Iter;
  1306. _1a2=self.iter(_1a2);
  1307. var rval=[];
  1308. try{
  1309. while(true){
  1310. rval.push(_1a2.next());
  1311. }
  1312. }
  1313. catch(e){
  1314. if(e!=self.StopIteration){
  1315. throw e;
  1316. }
  1317. return rval;
  1318. }
  1319. return undefined;
  1320. },reduce:function(fn,_1a7,_1a8){
  1321. var i=0;
  1322. var x=_1a8;
  1323. var self=MochiKit.Iter;
  1324. _1a7=self.iter(_1a7);
  1325. if(arguments.length<3){
  1326. try{
  1327. x=_1a7.next();
  1328. }
  1329. catch(e){
  1330. if(e==self.StopIteration){
  1331. e=new TypeError("reduce() of empty sequence with no initial value");
  1332. }
  1333. throw e;
  1334. }
  1335. i++;
  1336. }
  1337. try{
  1338. while(true){
  1339. x=fn(x,_1a7.next());
  1340. }
  1341. }
  1342. catch(e){
  1343. if(e!=self.StopIteration){
  1344. throw e;
  1345. }
  1346. }
  1347. return x;
  1348. },range:function(){
  1349. var _1ac=0;
  1350. var stop=0;
  1351. var step=1;
  1352. if(arguments.length==1){
  1353. stop=arguments[0];
  1354. }else{
  1355. if(arguments.length==2){
  1356. _1ac=arguments[0];
  1357. stop=arguments[1];
  1358. }else{
  1359. if(arguments.length==3){
  1360. _1ac=arguments[0];
  1361. stop=arguments[1];
  1362. step=arguments[2];
  1363. }else{
  1364. throw new TypeError("range() takes 1, 2, or 3 arguments!");
  1365. }
  1366. }
  1367. }
  1368. if(step===0){
  1369. throw new TypeError("range() step must not be 0");
  1370. }
  1371. return {next:function(){
  1372. if((step>0&&_1ac>=stop)||(step<0&&_1ac<=stop)){
  1373. throw MochiKit.Iter.StopIteration;
  1374. }
  1375. var rval=_1ac;
  1376. _1ac+=step;
  1377. return rval;
  1378. },repr:function(){
  1379. return "range("+[_1ac,stop,step].join(", ")+")";
  1380. },toString:MochiKit.Base.forwardCall("repr")};
  1381. },sum:function(_1b0,_1b1){
  1382. if(typeof (_1b1)=="undefined"||_1b1===null){
  1383. _1b1=0;
  1384. }
  1385. var x=_1b1;
  1386. var self=MochiKit.Iter;
  1387. _1b0=self.iter(_1b0);
  1388. try{
  1389. while(true){
  1390. x+=_1b0.next();
  1391. }
  1392. }
  1393. catch(e){
  1394. if(e!=self.StopIteration){
  1395. throw e;
  1396. }
  1397. }
  1398. return x;
  1399. },exhaust:function(_1b4){
  1400. var self=MochiKit.Iter;
  1401. _1b4=self.iter(_1b4);
  1402. try{
  1403. while(true){
  1404. _1b4.next();
  1405. }
  1406. }
  1407. catch(e){
  1408. if(e!=self.StopIteration){
  1409. throw e;
  1410. }
  1411. }
  1412. },forEach:function(_1b6,func,self){
  1413. var m=MochiKit.Base;
  1414. if(arguments.length>2){
  1415. func=m.bind(func,self);
  1416. }
  1417. if(m.isArrayLike(_1b6)){
  1418. try{
  1419. for(var i=0;i<_1b6.length;i++){
  1420. func(_1b6[i]);
  1421. }
  1422. }
  1423. catch(e){
  1424. if(e!=MochiKit.Iter.StopIteration){
  1425. throw e;
  1426. }
  1427. }
  1428. }else{
  1429. self=MochiKit.Iter;
  1430. self.exhaust(self.imap(func,_1b6));
  1431. }
  1432. },every:function(_1bb,func){
  1433. var self=MochiKit.Iter;
  1434. try{
  1435. self.ifilterfalse(func,_1bb).next();
  1436. return false;
  1437. }
  1438. catch(e){
  1439. if(e!=self.StopIteration){
  1440. throw e;
  1441. }
  1442. return true;
  1443. }
  1444. },sorted:function(_1be,cmp){
  1445. var rval=MochiKit.Iter.list(_1be);
  1446. if(arguments.length==1){
  1447. cmp=MochiKit.Base.compare;
  1448. }
  1449. rval.sort(cmp);
  1450. return rval;
  1451. },reversed:function(_1c1){
  1452. var rval=MochiKit.Iter.list(_1c1);
  1453. rval.reverse();
  1454. return rval;
  1455. },some:function(_1c3,func){
  1456. var self=MochiKit.Iter;
  1457. try{
  1458. self.ifilter(func,_1c3).next();
  1459. return true;
  1460. }
  1461. catch(e){
  1462. if(e!=self.StopIteration){
  1463. throw e;
  1464. }
  1465. return false;
  1466. }
  1467. },iextend:function(lst,_1c7){
  1468. if(MochiKit.Base.isArrayLike(_1c7)){
  1469. for(var i=0;i<_1c7.length;i++){
  1470. lst.push(_1c7[i]);
  1471. }
  1472. }else{
  1473. var self=MochiKit.Iter;
  1474. _1c7=self.iter(_1c7);
  1475. try{
  1476. while(true){
  1477. lst.push(_1c7.next());
  1478. }
  1479. }
  1480. catch(e){
  1481. if(e!=self.StopIteration){
  1482. throw e;
  1483. }
  1484. }
  1485. }
  1486. return lst;
  1487. },groupby:function(_1ca,_1cb){
  1488. var m=MochiKit.Base;
  1489. var self=MochiKit.Iter;
  1490. if(arguments.length<2){
  1491. _1cb=m.operator.identity;
  1492. }
  1493. _1ca=self.iter(_1ca);
  1494. var pk=undefined;
  1495. var k=undefined;
  1496. var v;
  1497. function fetch(){
  1498. v=_1ca.next();
  1499. k=_1cb(v);
  1500. }
  1501. function eat(){
  1502. var ret=v;
  1503. v=undefined;
  1504. return ret;
  1505. }
  1506. var _1d2=true;
  1507. var _1d3=m.compare;
  1508. return {repr:function(){
  1509. return "groupby(...)";
  1510. },next:function(){
  1511. while(_1d3(k,pk)===0){
  1512. fetch();
  1513. if(_1d2){
  1514. _1d2=false;
  1515. break;
  1516. }
  1517. }
  1518. pk=k;
  1519. return [k,{next:function(){
  1520. if(v==undefined){
  1521. fetch();
  1522. }
  1523. if(_1d3(k,pk)!==0){
  1524. throw self.StopIteration;
  1525. }
  1526. return eat();
  1527. }}];
  1528. }};
  1529. },groupby_as_array:function(_1d4,_1d5){
  1530. var m=MochiKit.Base;
  1531. var self=MochiKit.Iter;
  1532. if(arguments.length<2){
  1533. _1d5=m.operator.identity;
  1534. }
  1535. _1d4=self.iter(_1d4);
  1536. var _1d8=[];
  1537. var _1d9=true;
  1538. var _1da;
  1539. var _1db=m.compare;
  1540. while(true){
  1541. try{
  1542. var _1dc=_1d4.next();
  1543. var key=_1d5(_1dc);
  1544. }
  1545. catch(e){
  1546. if(e==self.StopIteration){
  1547. break;
  1548. }
  1549. throw e;
  1550. }
  1551. if(_1d9||_1db(key,_1da)!==0){
  1552. var _1de=[];
  1553. _1d8.push([key,_1de]);
  1554. }
  1555. _1de.push(_1dc);
  1556. _1d9=false;
  1557. _1da=key;
  1558. }
  1559. return _1d8;
  1560. },arrayLikeIter:function(_1df){
  1561. var i=0;
  1562. return {repr:function(){
  1563. return "arrayLikeIter(...)";
  1564. },toString:MochiKit.Base.forwardCall("repr"),next:function(){
  1565. if(i>=_1df.length){
  1566. throw MochiKit.Iter.StopIteration;
  1567. }
  1568. return _1df[i++];
  1569. }};
  1570. },hasIterateNext:function(_1e1){
  1571. return (_1e1&&typeof (_1e1.iterateNext)=="function");
  1572. },iterateNextIter:function(_1e2){
  1573. return {repr:function(){
  1574. return "iterateNextIter(...)";
  1575. },toString:MochiKit.Base.forwardCall("repr"),next:function(){
  1576. var rval=_1e2.iterateNext();
  1577. if(rval===null||rval===undefined){
  1578. throw MochiKit.Iter.StopIteration;
  1579. }
  1580. return rval;
  1581. }};
  1582. }});
  1583. MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",];
  1584. 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"];
  1585. MochiKit.Iter.__new__=function(){
  1586. var m=MochiKit.Base;
  1587. if(typeof (StopIteration)!="undefined"){
  1588. this.StopIteration=StopIteration;
  1589. }else{
  1590. this.StopIteration=new m.NamedError("StopIteration");
  1591. }
  1592. this.iteratorRegistry=new m.AdapterRegistry();
  1593. this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter);
  1594. this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);
  1595. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  1596. m.nameFunctions(this);
  1597. };
  1598. MochiKit.Iter.__new__();
  1599. if(MochiKit.__export__){
  1600. reduce=MochiKit.Iter.reduce;
  1601. }
  1602. MochiKit.Base._exportSymbols(this,MochiKit.Iter);
  1603. if(typeof (dojo)!="undefined"){
  1604. dojo.provide("MochiKit.Logging");
  1605. dojo.require("MochiKit.Base");
  1606. }
  1607. if(typeof (JSAN)!="undefined"){
  1608. JSAN.use("MochiKit.Base",[]);
  1609. }
  1610. try{
  1611. if(typeof (MochiKit.Base)=="undefined"){
  1612. throw "";
  1613. }
  1614. }
  1615. catch(e){
  1616. throw "MochiKit.Logging depends on MochiKit.Base!";
  1617. }
  1618. if(typeof (MochiKit.Logging)=="undefined"){
  1619. MochiKit.Logging={};
  1620. }
  1621. MochiKit.Logging.NAME="MochiKit.Logging";
  1622. MochiKit.Logging.VERSION="1.4";
  1623. MochiKit.Logging.__repr__=function(){
  1624. return "["+this.NAME+" "+this.VERSION+"]";
  1625. };
  1626. MochiKit.Logging.toString=function(){
  1627. return this.__repr__();
  1628. };
  1629. MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"];
  1630. MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"];
  1631. MochiKit.Logging.LogMessage=function(num,_1e6,info){
  1632. this.num=num;
  1633. this.level=_1e6;
  1634. this.info=info;
  1635. this.timestamp=new Date();
  1636. };
  1637. MochiKit.Logging.LogMessage.prototype={repr:function(){
  1638. var m=MochiKit.Base;
  1639. return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")";
  1640. },toString:MochiKit.Base.forwardCall("repr")};
  1641. MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_1e9){
  1642. var self=MochiKit.Logging;
  1643. if(typeof (_1e9)=="string"){
  1644. _1e9=self.LogLevel[_1e9];
  1645. }
  1646. return function(msg){
  1647. var _1ec=msg.level;
  1648. if(typeof (_1ec)=="string"){
  1649. _1ec=self.LogLevel[_1ec];
  1650. }
  1651. return _1ec>=_1e9;
  1652. };
  1653. },isLogMessage:function(){
  1654. var _1ed=MochiKit.Logging.LogMessage;
  1655. for(var i=0;i<arguments.length;i++){
  1656. if(!(arguments[i] instanceof _1ed)){
  1657. return false;
  1658. }
  1659. }
  1660. return true;
  1661. },compareLogMessage:function(a,b){
  1662. return MochiKit.Base.compare([a.level,a.info],[b.level,b.info]);
  1663. },alertListener:function(msg){
  1664. alert("num: "+msg.num+"\nlevel: "+msg.level+"\ninfo: "+msg.info.join(" "));
  1665. }});
  1666. MochiKit.Logging.Logger=function(_1f2){
  1667. this.counter=0;
  1668. if(typeof (_1f2)=="undefined"||_1f2===null){
  1669. _1f2=-1;
  1670. }
  1671. this.maxSize=_1f2;
  1672. this._messages=[];
  1673. this.listeners={};
  1674. this.useNativeConsole=false;
  1675. };
  1676. MochiKit.Logging.Logger.prototype={clear:function(){
  1677. this._messages.splice(0,this._messages.length);
  1678. },logToConsole:function(msg){
  1679. if(typeof (window)!="undefined"&&window.console&&window.console.log){
  1680. window.console.log(msg.replace(/%/g,"\uff05"));
  1681. }else{
  1682. if(typeof (opera)!="undefined"&&opera.postError){
  1683. opera.postError(msg);
  1684. }else{
  1685. if(typeof (printfire)=="function"){
  1686. printfire(msg);
  1687. }else{
  1688. if(typeof (Debug)!="undefined"&&Debug.writeln){
  1689. Debug.writeln(msg);
  1690. }else{
  1691. if(typeof (debug)!="undefined"&&debug.trace){
  1692. debug.trace(msg);
  1693. }
  1694. }
  1695. }
  1696. }
  1697. }
  1698. },dispatchListeners:function(msg){
  1699. for(var k in this.listeners){
  1700. var pair=this.listeners[k];
  1701. if(pair.ident!=k||(pair[0]&&!pair[0](msg))){
  1702. continue;
  1703. }
  1704. pair[1](msg);
  1705. }
  1706. },addListener:function(_1f7,_1f8,_1f9){
  1707. if(typeof (_1f8)=="string"){
  1708. _1f8=MochiKit.Logging.logLevelAtLeast(_1f8);
  1709. }
  1710. var _1fa=[_1f8,_1f9];
  1711. _1fa.ident=_1f7;
  1712. this.listeners[_1f7]=_1fa;
  1713. },removeListener:function(_1fb){
  1714. delete this.listeners[_1fb];
  1715. },baseLog:function(_1fc,_1fd){
  1716. var msg=new MochiKit.Logging.LogMessage(this.counter,_1fc,MochiKit.Base.extend(null,arguments,1));
  1717. this._messages.push(msg);
  1718. this.dispatchListeners(msg);
  1719. if(this.useNativeConsole){
  1720. this.logToConsole(msg.level+": "+msg.info.join(" "));
  1721. }
  1722. this.counter+=1;
  1723. while(this.maxSize>=0&&this._messages.length>this.maxSize){
  1724. this._messages.shift();
  1725. }
  1726. },getMessages:function(_1ff){
  1727. var _200=0;
  1728. if(!(typeof (_1ff)=="undefined"||_1ff===null)){
  1729. _200=Math.max(0,this._messages.length-_1ff);
  1730. }
  1731. return this._messages.slice(_200);
  1732. },getMessageText:function(_201){
  1733. if(typeof (_201)=="undefined"||_201===null){
  1734. _201=30;
  1735. }
  1736. var _202=this.getMessages(_201);
  1737. if(_202.length){
  1738. var lst=map(function(m){
  1739. return "\n ["+m.num+"] "+m.level+": "+m.info.join(" ");
  1740. },_202);
  1741. lst.unshift("LAST "+_202.length+" MESSAGES:");
  1742. return lst.join("");
  1743. }
  1744. return "";
  1745. },debuggingBookmarklet:function(_205){
  1746. if(typeof (MochiKit.LoggingPane)=="undefined"){
  1747. alert(this.getMessageText());
  1748. }else{
  1749. MochiKit.LoggingPane.createLoggingPane(_205||false);
  1750. }
  1751. }};
  1752. MochiKit.Logging.__new__=function(){
  1753. this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10};
  1754. var m=MochiKit.Base;
  1755. m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage);
  1756. var _207=m.partial;
  1757. var _208=this.Logger;
  1758. var _209=_208.prototype.baseLog;
  1759. 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")});
  1760. var self=this;
  1761. var _20b=function(name){
  1762. return function(){
  1763. self.logger[name].apply(self.logger,arguments);
  1764. };
  1765. };
  1766. this.log=_20b("log");
  1767. this.logError=_20b("error");
  1768. this.logDebug=_20b("debug");
  1769. this.logFatal=_20b("fatal");
  1770. this.logWarning=_20b("warning");
  1771. this.logger=new _208();
  1772. this.logger.useNativeConsole=true;
  1773. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  1774. m.nameFunctions(this);
  1775. };
  1776. if(typeof (printfire)=="undefined"&&typeof (document)!="undefined"&&document.createEvent&&typeof (dispatchEvent)!="undefined"){
  1777. printfire=function(){
  1778. printfire.args=arguments;
  1779. var ev=document.createEvent("Events");
  1780. ev.initEvent("printfire",false,true);
  1781. dispatchEvent(ev);
  1782. };
  1783. }
  1784. MochiKit.Logging.__new__();
  1785. MochiKit.Base._exportSymbols(this,MochiKit.Logging);
  1786. if(typeof (dojo)!="undefined"){
  1787. dojo.provide("MochiKit.DateTime");
  1788. }
  1789. if(typeof (MochiKit)=="undefined"){
  1790. MochiKit={};
  1791. }
  1792. if(typeof (MochiKit.DateTime)=="undefined"){
  1793. MochiKit.DateTime={};
  1794. }
  1795. MochiKit.DateTime.NAME="MochiKit.DateTime";
  1796. MochiKit.DateTime.VERSION="1.4";
  1797. MochiKit.DateTime.__repr__=function(){
  1798. return "["+this.NAME+" "+this.VERSION+"]";
  1799. };
  1800. MochiKit.DateTime.toString=function(){
  1801. return this.__repr__();
  1802. };
  1803. MochiKit.DateTime.isoDate=function(str){
  1804. str=str+"";
  1805. if(typeof (str)!="string"||str.length===0){
  1806. return null;
  1807. }
  1808. var iso=str.split("-");
  1809. if(iso.length===0){
  1810. return null;
  1811. }
  1812. return new Date(iso[0],iso[1]-1,iso[2]);
  1813. };
  1814. 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}))?)?)?)?)?/;
  1815. MochiKit.DateTime.isoTimestamp=function(str){
  1816. str=str+"";
  1817. if(typeof (str)!="string"||str.length===0){
  1818. return null;
  1819. }
  1820. var res=str.match(MochiKit.DateTime._isoRegexp);
  1821. if(typeof (res)=="undefined"||res===null){
  1822. return null;
  1823. }
  1824. var year,_213,day,hour,min,sec,msec;
  1825. year=parseInt(res[1],10);
  1826. if(typeof (res[2])=="undefined"||res[2]===""){
  1827. return new Date(year);
  1828. }
  1829. _213=parseInt(res[2],10)-1;
  1830. day=parseInt(res[3],10);
  1831. if(typeof (res[4])=="undefined"||res[4]===""){
  1832. return new Date(year,_213,day);
  1833. }
  1834. hour=parseInt(res[4],10);
  1835. min=parseInt(res[5],10);
  1836. sec=(typeof (res[6])!="undefined"&&res[6]!=="")?parseInt(res[6],10):0;
  1837. if(typeof (res[7])!="undefined"&&res[7]!==""){
  1838. msec=Math.round(1000*parseFloat("0."+res[7]));
  1839. }else{
  1840. msec=0;
  1841. }
  1842. if((typeof (res[8])=="undefined"||res[8]==="")&&(typeof (res[9])=="undefined"||res[9]==="")){
  1843. return new Date(year,_213,day,hour,min,sec,msec);
  1844. }
  1845. var ofs;
  1846. if(typeof (res[9])!="undefined"&&res[9]!==""){
  1847. ofs=parseInt(res[10],10)*3600000;
  1848. if(typeof (res[11])!="undefined"&&res[11]!==""){
  1849. ofs+=parseInt(res[11],10)*60000;
  1850. }
  1851. if(res[9]=="-"){
  1852. ofs=-ofs;
  1853. }
  1854. }else{
  1855. ofs=0;
  1856. }
  1857. return new Date(Date.UTC(year,_213,day,hour,min,sec,msec)-ofs);
  1858. };
  1859. MochiKit.DateTime.toISOTime=function(date,_21b){
  1860. if(typeof (date)=="undefined"||date===null){
  1861. return null;
  1862. }
  1863. var hh=date.getHours();
  1864. var mm=date.getMinutes();
  1865. var ss=date.getSeconds();
  1866. var lst=[((_21b&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];
  1867. return lst.join(":");
  1868. };
  1869. MochiKit.DateTime.toISOTimestamp=function(date,_221){
  1870. if(typeof (date)=="undefined"||date===null){
  1871. return null;
  1872. }
  1873. var sep=_221?"T":" ";
  1874. var foot=_221?"Z":"";
  1875. if(_221){
  1876. date=new Date(date.getTime()+(date.getTimezoneOffset()*60000));
  1877. }
  1878. return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_221)+foot;
  1879. };
  1880. MochiKit.DateTime.toISODate=function(date){
  1881. if(typeof (date)=="undefined"||date===null){
  1882. return null;
  1883. }
  1884. var _225=MochiKit.DateTime._padTwo;
  1885. return [date.getFullYear(),_225(date.getMonth()+1),_225(date.getDate())].join("-");
  1886. };
  1887. MochiKit.DateTime.americanDate=function(d){
  1888. d=d+"";
  1889. if(typeof (d)!="string"||d.length===0){
  1890. return null;
  1891. }
  1892. var a=d.split("/");
  1893. return new Date(a[2],a[0]-1,a[1]);
  1894. };
  1895. MochiKit.DateTime._padTwo=function(n){
  1896. return (n>9)?n:"0"+n;
  1897. };
  1898. MochiKit.DateTime.toPaddedAmericanDate=function(d){
  1899. if(typeof (d)=="undefined"||d===null){
  1900. return null;
  1901. }
  1902. var _22a=MochiKit.DateTime._padTwo;
  1903. return [_22a(d.getMonth()+1),_22a(d.getDate()),d.getFullYear()].join("/");
  1904. };
  1905. MochiKit.DateTime.toAmericanDate=function(d){
  1906. if(typeof (d)=="undefined"||d===null){
  1907. return null;
  1908. }
  1909. return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/");
  1910. };
  1911. MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"];
  1912. MochiKit.DateTime.EXPORT_OK=[];
  1913. MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT};
  1914. MochiKit.DateTime.__new__=function(){
  1915. var base=this.NAME+".";
  1916. for(var k in this){
  1917. var o=this[k];
  1918. if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
  1919. try{
  1920. o.NAME=base+k;
  1921. }
  1922. catch(e){
  1923. }
  1924. }
  1925. }
  1926. };
  1927. MochiKit.DateTime.__new__();
  1928. if(typeof (MochiKit.Base)!="undefined"){
  1929. MochiKit.Base._exportSymbols(this,MochiKit.DateTime);
  1930. }else{
  1931. (function(_22f,_230){
  1932. if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){
  1933. var all=_230.EXPORT_TAGS[":all"];
  1934. for(var i=0;i<all.length;i++){
  1935. _22f[all[i]]=_230[all[i]];
  1936. }
  1937. }
  1938. })(this,MochiKit.DateTime);
  1939. }
  1940. if(typeof (dojo)!="undefined"){
  1941. dojo.provide("MochiKit.Format");
  1942. }
  1943. if(typeof (MochiKit)=="undefined"){
  1944. MochiKit={};
  1945. }
  1946. if(typeof (MochiKit.Format)=="undefined"){
  1947. MochiKit.Format={};
  1948. }
  1949. MochiKit.Format.NAME="MochiKit.Format";
  1950. MochiKit.Format.VERSION="1.4";
  1951. MochiKit.Format.__repr__=function(){
  1952. return "["+this.NAME+" "+this.VERSION+"]";
  1953. };
  1954. MochiKit.Format.toString=function(){
  1955. return this.__repr__();
  1956. };
  1957. MochiKit.Format._numberFormatter=function(_233,_234,_235,_236,_237,_238,_239,_23a,_23b){
  1958. return function(num){
  1959. num=parseFloat(num);
  1960. if(typeof (num)=="undefined"||num===null||isNaN(num)){
  1961. return _233;
  1962. }
  1963. var _23d=_234;
  1964. var _23e=_235;
  1965. if(num<0){
  1966. num=-num;
  1967. }else{
  1968. _23d=_23d.replace(/-/,"");
  1969. }
  1970. var me=arguments.callee;
  1971. var fmt=MochiKit.Format.formatLocale(_236);
  1972. if(_237){
  1973. num=num*100;
  1974. _23e=fmt.percent+_23e;
  1975. }
  1976. num=MochiKit.Format.roundToFixed(num,_238);
  1977. var _241=num.split(/\./);
  1978. var _242=_241[0];
  1979. var frac=(_241.length==1)?"":_241[1];
  1980. var res="";
  1981. while(_242.length<_239){
  1982. _242="0"+_242;
  1983. }
  1984. if(_23a){
  1985. while(_242.length>_23a){
  1986. var i=_242.length-_23a;
  1987. res=fmt.separator+_242.substring(i,_242.length)+res;
  1988. _242=_242.substring(0,i);
  1989. }
  1990. }
  1991. res=_242+res;
  1992. if(_238>0){
  1993. while(frac.length<_23b){
  1994. frac=frac+"0";
  1995. }
  1996. res=res+fmt.decimal+frac;
  1997. }
  1998. return _23d+res+_23e;
  1999. };
  2000. };
  2001. MochiKit.Format.numberFormatter=function(_246,_247,_248){
  2002. if(typeof (_247)=="undefined"){
  2003. _247="";
  2004. }
  2005. var _249=_246.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/);
  2006. if(!_249){
  2007. throw TypeError("Invalid pattern");
  2008. }
  2009. var _24a=_246.substr(0,_249.index);
  2010. var _24b=_246.substr(_249.index+_249[0].length);
  2011. if(_24a.search(/-/)==-1){
  2012. _24a=_24a+"-";
  2013. }
  2014. var _24c=_249[1];
  2015. var frac=(typeof (_249[2])=="string"&&_249[2]!="")?_249[2]:"";
  2016. var _24e=(typeof (_249[3])=="string"&&_249[3]!="");
  2017. var tmp=_24c.split(/,/);
  2018. var _250;
  2019. if(typeof (_248)=="undefined"){
  2020. _248="default";
  2021. }
  2022. if(tmp.length==1){
  2023. _250=null;
  2024. }else{
  2025. _250=tmp[1].length;
  2026. }
  2027. var _251=_24c.length-_24c.replace(/0/g,"").length;
  2028. var _252=frac.length-frac.replace(/0/g,"").length;
  2029. var _253=frac.length;
  2030. var rval=MochiKit.Format._numberFormatter(_247,_24a,_24b,_248,_24e,_253,_251,_250,_252);
  2031. var m=MochiKit.Base;
  2032. if(m){
  2033. var fn=arguments.callee;
  2034. var args=m.concat(arguments);
  2035. rval.repr=function(){
  2036. return [self.NAME,"(",map(m.repr,args).join(", "),")"].join("");
  2037. };
  2038. }
  2039. return rval;
  2040. };
  2041. MochiKit.Format.formatLocale=function(_258){
  2042. if(typeof (_258)=="undefined"||_258===null){
  2043. _258="default";
  2044. }
  2045. if(typeof (_258)=="string"){
  2046. var rval=MochiKit.Format.LOCALE[_258];
  2047. if(typeof (rval)=="string"){
  2048. rval=arguments.callee(rval);
  2049. MochiKit.Format.LOCALE[_258]=rval;
  2050. }
  2051. return rval;
  2052. }else{
  2053. return _258;
  2054. }
  2055. };
  2056. MochiKit.Format.twoDigitAverage=function(_25a,_25b){
  2057. if(_25b){
  2058. var res=_25a/_25b;
  2059. if(!isNaN(res)){
  2060. return MochiKit.Format.twoDigitFloat(_25a/_25b);
  2061. }
  2062. }
  2063. return "0";
  2064. };
  2065. MochiKit.Format.twoDigitFloat=function(_25d){
  2066. var sign=(_25d<0?"-":"");
  2067. var s=Math.floor(Math.abs(_25d)*100).toString();
  2068. if(s=="0"){
  2069. return s;
  2070. }
  2071. if(s.length<3){
  2072. while(s.charAt(s.length-1)=="0"){
  2073. s=s.substring(0,s.length-1);
  2074. }
  2075. return sign+"0."+s;
  2076. }
  2077. var head=sign+s.substring(0,s.length-2);
  2078. var tail=s.substring(s.length-2,s.length);
  2079. if(tail=="00"){
  2080. return head;
  2081. }else{
  2082. if(tail.charAt(1)=="0"){
  2083. return head+"."+tail.charAt(0);
  2084. }else{
  2085. return head+"."+tail;
  2086. }
  2087. }
  2088. };
  2089. MochiKit.Format.lstrip=function(str,_263){
  2090. str=str+"";
  2091. if(typeof (str)!="string"){
  2092. return null;
  2093. }
  2094. if(!_263){
  2095. return str.replace(/^\s+/,"");
  2096. }else{
  2097. return str.replace(new RegExp("^["+_263+"]+"),"");
  2098. }
  2099. };
  2100. MochiKit.Format.rstrip=function(str,_265){
  2101. str=str+"";
  2102. if(typeof (str)!="string"){
  2103. return null;
  2104. }
  2105. if(!_265){
  2106. return str.replace(/\s+$/,"");
  2107. }else{
  2108. return str.replace(new RegExp("["+_265+"]+$"),"");
  2109. }
  2110. };
  2111. MochiKit.Format.strip=function(str,_267){
  2112. var self=MochiKit.Format;
  2113. return self.rstrip(self.lstrip(str,_267),_267);
  2114. };
  2115. MochiKit.Format.truncToFixed=function(_269,_26a){
  2116. _269=Math.floor(_269*Math.pow(10,_26a));
  2117. var res=(_269*Math.pow(10,-_26a)).toFixed(_26a);
  2118. if(res.charAt(0)=="."){
  2119. res="0"+res;
  2120. }
  2121. return res;
  2122. };
  2123. MochiKit.Format.roundToFixed=function(_26c,_26d){
  2124. return MochiKit.Format.truncToFixed(_26c+0.5*Math.pow(10,-_26d),_26d);
  2125. };
  2126. MochiKit.Format.percentFormat=function(_26e){
  2127. return MochiKit.Format.twoDigitFloat(100*_26e)+"%";
  2128. };
  2129. MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"];
  2130. MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"};
  2131. MochiKit.Format.EXPORT_OK=[];
  2132. MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT};
  2133. MochiKit.Format.__new__=function(){
  2134. var base=this.NAME+".";
  2135. var k,v,o;
  2136. for(k in this.LOCALE){
  2137. o=this.LOCALE[k];
  2138. if(typeof (o)=="object"){
  2139. o.repr=function(){
  2140. return this.NAME;
  2141. };
  2142. o.NAME=base+"LOCALE."+k;
  2143. }
  2144. }
  2145. for(k in this){
  2146. o=this[k];
  2147. if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
  2148. try{
  2149. o.NAME=base+k;
  2150. }
  2151. catch(e){
  2152. }
  2153. }
  2154. }
  2155. };
  2156. MochiKit.Format.__new__();
  2157. if(typeof (MochiKit.Base)!="undefined"){
  2158. MochiKit.Base._exportSymbols(this,MochiKit.Format);
  2159. }else{
  2160. (function(_273,_274){
  2161. if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){
  2162. var all=_274.EXPORT_TAGS[":all"];
  2163. for(var i=0;i<all.length;i++){
  2164. _273[all[i]]=_274[all[i]];
  2165. }
  2166. }
  2167. })(this,MochiKit.Format);
  2168. }
  2169. if(typeof (dojo)!="undefined"){
  2170. dojo.provide("MochiKit.Async");
  2171. dojo.require("MochiKit.Base");
  2172. }
  2173. if(typeof (JSAN)!="undefined"){
  2174. JSAN.use("MochiKit.Base",[]);
  2175. }
  2176. try{
  2177. if(typeof (MochiKit.Base)=="undefined"){
  2178. throw "";
  2179. }
  2180. }
  2181. catch(e){
  2182. throw "MochiKit.Async depends on MochiKit.Base!";
  2183. }
  2184. if(typeof (MochiKit.Async)=="undefined"){
  2185. MochiKit.Async={};
  2186. }
  2187. MochiKit.Async.NAME="MochiKit.Async";
  2188. MochiKit.Async.VERSION="1.4";
  2189. MochiKit.Async.__repr__=function(){
  2190. return "["+this.NAME+" "+this.VERSION+"]";
  2191. };
  2192. MochiKit.Async.toString=function(){
  2193. return this.__repr__();
  2194. };
  2195. MochiKit.Async.Deferred=function(_277){
  2196. this.chain=[];
  2197. this.id=this._nextId();
  2198. this.fired=-1;
  2199. this.paused=0;
  2200. this.results=[null,null];
  2201. this.canceller=_277;
  2202. this.silentlyCancelled=false;
  2203. this.chained=false;
  2204. };
  2205. MochiKit.Async.Deferred.prototype={repr:function(){
  2206. var _278;
  2207. if(this.fired==-1){
  2208. _278="unfired";
  2209. }else{
  2210. if(this.fired===0){
  2211. _278="success";
  2212. }else{
  2213. _278="error";
  2214. }
  2215. }
  2216. return "Deferred("+this.id+", "+_278+")";
  2217. },toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){
  2218. var self=MochiKit.Async;
  2219. if(this.fired==-1){
  2220. if(this.canceller){
  2221. this.canceller(this);
  2222. }else{
  2223. this.silentlyCancelled=true;
  2224. }
  2225. if(this.fired==-1){
  2226. this.errback(new self.CancelledError(this));
  2227. }
  2228. }else{
  2229. if((this.fired===0)&&(this.results[0] instanceof self.Deferred)){
  2230. this.results[0].cancel();
  2231. }
  2232. }
  2233. },_resback:function(res){
  2234. this.fired=((res instanceof Error)?1:0);
  2235. this.results[this.fired]=res;
  2236. this._fire();
  2237. },_check:function(){
  2238. if(this.fired!=-1){
  2239. if(!this.silentlyCancelled){
  2240. throw new MochiKit.Async.AlreadyCalledError(this);
  2241. }
  2242. this.silentlyCancelled=false;
  2243. return;
  2244. }
  2245. },callback:function(res){
  2246. this._check();
  2247. if(res instanceof MochiKit.Async.Deferred){
  2248. throw new Error("Deferred instances can only be chained if they are the result of a callback");
  2249. }
  2250. this._resback(res);
  2251. },errback:function(res){
  2252. this._check();
  2253. var self=MochiKit.Async;
  2254. if(res instanceof self.Deferred){
  2255. throw new Error("Deferred instances can only be chained if they are the result of a callback");
  2256. }
  2257. if(!(res instanceof Error)){
  2258. res=new self.GenericError(res);
  2259. }
  2260. this._resback(res);
  2261. },addBoth:function(fn){
  2262. if(arguments.length>1){
  2263. fn=MochiKit.Base.partial.apply(null,arguments);
  2264. }
  2265. return this.addCallbacks(fn,fn);
  2266. },addCallback:function(fn){
  2267. if(arguments.length>1){
  2268. fn=MochiKit.Base.partial.apply(null,arguments);
  2269. }
  2270. return this.addCallbacks(fn,null);
  2271. },addErrback:function(fn){
  2272. if(arguments.length>1){
  2273. fn=MochiKit.Base.partial.apply(null,arguments);
  2274. }
  2275. return this.addCallbacks(null,fn);
  2276. },addCallbacks:function(cb,eb){
  2277. if(this.chained){
  2278. throw new Error("Chained Deferreds can not be re-used");
  2279. }
  2280. this.chain.push([cb,eb]);
  2281. if(this.fired>=0){
  2282. this._fire();
  2283. }
  2284. return this;
  2285. },_fire:function(){
  2286. var _283=this.chain;
  2287. var _284=this.fired;
  2288. var res=this.results[_284];
  2289. var self=this;
  2290. var cb=null;
  2291. while(_283.length>0&&this.paused===0){
  2292. var pair=_283.shift();
  2293. var f=pair[_284];
  2294. if(f===null){
  2295. continue;
  2296. }
  2297. try{
  2298. res=f(res);
  2299. _284=((res instanceof Error)?1:0);
  2300. if(res instanceof MochiKit.Async.Deferred){
  2301. cb=function(res){
  2302. self._resback(res);
  2303. self.paused--;
  2304. if((self.paused===0)&&(self.fired>=0)){
  2305. self._fire();
  2306. }
  2307. };
  2308. this.paused++;
  2309. }
  2310. }
  2311. catch(err){
  2312. _284=1;
  2313. if(!(err instanceof Error)){
  2314. err=new MochiKit.Async.GenericError(err);
  2315. }
  2316. res=err;
  2317. }
  2318. }
  2319. this.fired=_284;
  2320. this.results[_284]=res;
  2321. if(cb&&this.paused){
  2322. res.addBoth(cb);
  2323. res.chained=true;
  2324. }
  2325. }};
  2326. MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){
  2327. return eval("("+arguments[0].responseText+")");
  2328. },succeed:function(_28b){
  2329. var d=new MochiKit.Async.Deferred();
  2330. d.callback.apply(d,arguments);
  2331. return d;
  2332. },fail:function(_28d){
  2333. var d=new MochiKit.Async.Deferred();
  2334. d.errback.apply(d,arguments);
  2335. return d;
  2336. },getXMLHttpRequest:function(){
  2337. var self=arguments.callee;
  2338. if(!self.XMLHttpRequest){
  2339. var _290=[function(){
  2340. return new XMLHttpRequest();
  2341. },function(){
  2342. return new ActiveXObject("Msxml2.XMLHTTP");
  2343. },function(){
  2344. return new ActiveXObject("Microsoft.XMLHTTP");
  2345. },function(){
  2346. return new ActiveXObject("Msxml2.XMLHTTP.4.0");
  2347. },function(){
  2348. throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest");
  2349. }];
  2350. for(var i=0;i<_290.length;i++){
  2351. var func=_290[i];
  2352. try{
  2353. self.XMLHttpRequest=func;
  2354. return func();
  2355. }
  2356. catch(e){
  2357. }
  2358. }
  2359. }
  2360. return self.XMLHttpRequest();
  2361. },_xhr_onreadystatechange:function(d){
  2362. var m=MochiKit.Base;
  2363. if(this.readyState==4){
  2364. try{
  2365. this.onreadystatechange=null;
  2366. }
  2367. catch(e){
  2368. try{
  2369. this.onreadystatechange=m.noop;
  2370. }
  2371. catch(e){
  2372. }
  2373. }
  2374. var _295=null;
  2375. try{
  2376. _295=this.status;
  2377. if(!_295&&m.isNotEmpty(this.responseText)){
  2378. _295=304;
  2379. }
  2380. }
  2381. catch(e){
  2382. }
  2383. if(_295==200||_295==304){
  2384. d.callback(this);
  2385. }else{
  2386. var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed");
  2387. if(err.number){
  2388. d.errback(err);
  2389. }else{
  2390. d.errback(err);
  2391. }
  2392. }
  2393. }
  2394. },_xhr_canceller:function(req){
  2395. try{
  2396. req.onreadystatechange=null;
  2397. }
  2398. catch(e){
  2399. try{
  2400. req.onreadystatechange=MochiKit.Base.noop;
  2401. }
  2402. catch(e){
  2403. }
  2404. }
  2405. req.abort();
  2406. },sendXMLHttpRequest:function(req,_299){
  2407. if(typeof (_299)=="undefined"||_299===null){
  2408. _299="";
  2409. }
  2410. var m=MochiKit.Base;
  2411. var self=MochiKit.Async;
  2412. var d=new self.Deferred(m.partial(self._xhr_canceller,req));
  2413. try{
  2414. req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d);
  2415. req.send(_299);
  2416. }
  2417. catch(e){
  2418. try{
  2419. req.onreadystatechange=null;
  2420. }
  2421. catch(ignore){
  2422. }
  2423. d.errback(e);
  2424. }
  2425. return d;
  2426. },doXHR:function(url,opts){
  2427. var m=MochiKit.Base;
  2428. opts=m.update({method:"GET",sendContent:""},opts);
  2429. var self=MochiKit.Async;
  2430. var req=self.getXMLHttpRequest();
  2431. if(opts.queryString){
  2432. var qs=m.queryString(opts.queryString);
  2433. if(qs){
  2434. url+="?"+qs;
  2435. }
  2436. }
  2437. req.open(opts.method,url,true,opts.username,opts.password);
  2438. if(req.overrideMimeType&&opts.mimeType){
  2439. req.overrideMimeType(opts.mimeType);
  2440. }
  2441. if(opts.headers){
  2442. var _2a3=opts.headers;
  2443. if(!m.isArrayLike(_2a3)){
  2444. _2a3=m.items(_2a3);
  2445. }
  2446. for(var i=0;i<_2a3.length;i++){
  2447. var _2a5=_2a3[i];
  2448. var name=_2a5[0];
  2449. var _2a7=_2a5[1];
  2450. req.setRequestHeader(name,_2a7);
  2451. }
  2452. }
  2453. return self.sendXMLHttpRequest(req,opts.sendContent);
  2454. },_buildURL:function(url){
  2455. if(arguments.length>1){
  2456. var m=MochiKit.Base;
  2457. var qs=m.queryString.apply(null,m.extend(null,arguments,1));
  2458. if(qs){
  2459. return url+"?"+qs;
  2460. }
  2461. }
  2462. return url;
  2463. },doSimpleXMLHttpRequest:function(url){
  2464. var self=MochiKit.Async;
  2465. url=self._buildURL.apply(self,arguments);
  2466. return self.doXHR(url);
  2467. },loadJSONDoc:function(url){
  2468. var self=MochiKit.Async;
  2469. url=self._buildURL.apply(self,arguments);
  2470. var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]});
  2471. d=d.addCallback(self.evalJSONRequest);
  2472. return d;
  2473. },wait:function(_2b0,_2b1){
  2474. var d=new MochiKit.Async.Deferred();
  2475. var m=MochiKit.Base;
  2476. if(typeof (_2b1)!="undefined"){
  2477. d.addCallback(function(){
  2478. return _2b1;
  2479. });
  2480. }
  2481. var _2b4=setTimeout(m.bind("callback",d),Math.floor(_2b0*1000));
  2482. d.canceller=function(){
  2483. try{
  2484. clearTimeout(_2b4);
  2485. }
  2486. catch(e){
  2487. }
  2488. };
  2489. return d;
  2490. },callLater:function(_2b5,func){
  2491. var m=MochiKit.Base;
  2492. var _2b8=m.partial.apply(m,m.extend(null,arguments,1));
  2493. return MochiKit.Async.wait(_2b5).addCallback(function(res){
  2494. return _2b8();
  2495. });
  2496. }});
  2497. MochiKit.Async.DeferredLock=function(){
  2498. this.waiting=[];
  2499. this.locked=false;
  2500. this.id=this._nextId();
  2501. };
  2502. MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){
  2503. var d=new MochiKit.Async.Deferred();
  2504. if(this.locked){
  2505. this.waiting.push(d);
  2506. }else{
  2507. this.locked=true;
  2508. d.callback(this);
  2509. }
  2510. return d;
  2511. },release:function(){
  2512. if(!this.locked){
  2513. throw TypeError("Tried to release an unlocked DeferredLock");
  2514. }
  2515. this.locked=false;
  2516. if(this.waiting.length>0){
  2517. this.locked=true;
  2518. this.waiting.shift().callback(this);
  2519. }
  2520. },_nextId:MochiKit.Base.counter(),repr:function(){
  2521. var _2bb;
  2522. if(this.locked){
  2523. _2bb="locked, "+this.waiting.length+" waiting";
  2524. }else{
  2525. _2bb="unlocked";
  2526. }
  2527. return "DeferredLock("+this.id+", "+_2bb+")";
  2528. },toString:MochiKit.Base.forwardCall("repr")};
  2529. MochiKit.Async.DeferredList=function(list,_2bd,_2be,_2bf,_2c0){
  2530. MochiKit.Async.Deferred.apply(this,[_2c0]);
  2531. this.list=list;
  2532. var _2c1=[];
  2533. this.resultList=_2c1;
  2534. this.finishedCount=0;
  2535. this.fireOnOneCallback=_2bd;
  2536. this.fireOnOneErrback=_2be;
  2537. this.consumeErrors=_2bf;
  2538. var cb=MochiKit.Base.bind(this._cbDeferred,this);
  2539. for(var i=0;i<list.length;i++){
  2540. var d=list[i];
  2541. _2c1.push(undefined);
  2542. d.addCallback(cb,i,true);
  2543. d.addErrback(cb,i,false);
  2544. }
  2545. if(list.length===0&&!_2bd){
  2546. this.callback(this.resultList);
  2547. }
  2548. };
  2549. MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred();
  2550. MochiKit.Async.DeferredList.prototype._cbDeferred=function(_2c5,_2c6,_2c7){
  2551. this.resultList[_2c5]=[_2c6,_2c7];
  2552. this.finishedCount+=1;
  2553. if(this.fired==-1){
  2554. if(_2c6&&this.fireOnOneCallback){
  2555. this.callback([_2c5,_2c7]);
  2556. }else{
  2557. if(!_2c6&&this.fireOnOneErrback){
  2558. this.errback(_2c7);
  2559. }else{
  2560. if(this.finishedCount==this.list.length){
  2561. this.callback(this.resultList);
  2562. }
  2563. }
  2564. }
  2565. }
  2566. if(!_2c6&&this.consumeErrors){
  2567. _2c7=null;
  2568. }
  2569. return _2c7;
  2570. };
  2571. MochiKit.Async.gatherResults=function(_2c8){
  2572. var d=new MochiKit.Async.DeferredList(_2c8,false,true,false);
  2573. d.addCallback(function(_2ca){
  2574. var ret=[];
  2575. for(var i=0;i<_2ca.length;i++){
  2576. ret.push(_2ca[i][1]);
  2577. }
  2578. return ret;
  2579. });
  2580. return d;
  2581. };
  2582. MochiKit.Async.maybeDeferred=function(func){
  2583. var self=MochiKit.Async;
  2584. var _2cf;
  2585. try{
  2586. var r=func.apply(null,MochiKit.Base.extend([],arguments,1));
  2587. if(r instanceof self.Deferred){
  2588. _2cf=r;
  2589. }else{
  2590. if(r instanceof Error){
  2591. _2cf=self.fail(r);
  2592. }else{
  2593. _2cf=self.succeed(r);
  2594. }
  2595. }
  2596. }
  2597. catch(e){
  2598. _2cf=self.fail(e);
  2599. }
  2600. return _2cf;
  2601. };
  2602. MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock","DeferredList","gatherResults","maybeDeferred","doXHR"];
  2603. MochiKit.Async.EXPORT_OK=["evalJSONRequest"];
  2604. MochiKit.Async.__new__=function(){
  2605. var m=MochiKit.Base;
  2606. var ne=m.partial(m._newNamedError,this);
  2607. ne("AlreadyCalledError",function(_2d3){
  2608. this.deferred=_2d3;
  2609. });
  2610. ne("CancelledError",function(_2d4){
  2611. this.deferred=_2d4;
  2612. });
  2613. ne("BrowserComplianceError",function(msg){
  2614. this.message=msg;
  2615. });
  2616. ne("GenericError",function(msg){
  2617. this.message=msg;
  2618. });
  2619. ne("XMLHttpRequestError",function(req,msg){
  2620. this.req=req;
  2621. this.message=msg;
  2622. try{
  2623. this.number=req.status;
  2624. }
  2625. catch(e){
  2626. }
  2627. });
  2628. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  2629. m.nameFunctions(this);
  2630. };
  2631. MochiKit.Async.__new__();
  2632. MochiKit.Base._exportSymbols(this,MochiKit.Async);
  2633. if(typeof (dojo)!="undefined"){
  2634. dojo.provide("MochiKit.DOM");
  2635. dojo.require("MochiKit.Base");
  2636. }
  2637. if(typeof (JSAN)!="undefined"){
  2638. JSAN.use("MochiKit.Base",[]);
  2639. }
  2640. try{
  2641. if(typeof (MochiKit.Base)=="undefined"){
  2642. throw "";
  2643. }
  2644. }
  2645. catch(e){
  2646. throw "MochiKit.DOM depends on MochiKit.Base!";
  2647. }
  2648. if(typeof (MochiKit.DOM)=="undefined"){
  2649. MochiKit.DOM={};
  2650. }
  2651. MochiKit.DOM.NAME="MochiKit.DOM";
  2652. MochiKit.DOM.VERSION="1.4";
  2653. MochiKit.DOM.__repr__=function(){
  2654. return "["+this.NAME+" "+this.VERSION+"]";
  2655. };
  2656. MochiKit.DOM.toString=function(){
  2657. return this.__repr__();
  2658. };
  2659. 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"];
  2660. MochiKit.DOM.EXPORT_OK=["domConverters"];
  2661. 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"]];
  2662. 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);");
  2663. MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){
  2664. return MochiKit.DOM._window;
  2665. },currentDocument:function(){
  2666. return MochiKit.DOM._document;
  2667. },withWindow:function(win,func){
  2668. var self=MochiKit.DOM;
  2669. var _2dc=self._document;
  2670. var _2dd=self._win;
  2671. var rval;
  2672. try{
  2673. self._window=win;
  2674. self._document=win.document;
  2675. rval=func();
  2676. }
  2677. catch(e){
  2678. self._window=_2dd;
  2679. self._document=_2dc;
  2680. throw e;
  2681. }
  2682. self._window=_2dd;
  2683. self._document=_2dc;
  2684. return rval;
  2685. },formContents:function(elem){
  2686. var _2e0=[];
  2687. var _2e1=[];
  2688. var m=MochiKit.Base;
  2689. var self=MochiKit.DOM;
  2690. if(typeof (elem)=="undefined"||elem===null){
  2691. elem=self._document;
  2692. }else{
  2693. elem=self.getElement(elem);
  2694. }
  2695. m.nodeWalk(elem,function(elem){
  2696. var name=elem.name;
  2697. if(m.isNotEmpty(name)){
  2698. var _2e6=elem.tagName.toUpperCase();
  2699. if(_2e6==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){
  2700. return null;
  2701. }
  2702. if(_2e6==="SELECT"){
  2703. if(elem.type=="select-one"){
  2704. if(elem.selectedIndex>=0){
  2705. var opt=elem.options[elem.selectedIndex];
  2706. _2e0.push(name);
  2707. _2e1.push(opt.value);
  2708. return null;
  2709. }
  2710. _2e0.push(name);
  2711. _2e1.push("");
  2712. return null;
  2713. }else{
  2714. var opts=elem.options;
  2715. if(!opts.length){
  2716. _2e0.push(name);
  2717. _2e1.push("");
  2718. return null;
  2719. }
  2720. for(var i=0;i<opts.length;i++){
  2721. var opt=opts[i];
  2722. if(!opt.selected){
  2723. continue;
  2724. }
  2725. _2e0.push(name);
  2726. _2e1.push(opt.value);
  2727. }
  2728. return null;
  2729. }
  2730. }
  2731. if(_2e6==="FORM"||_2e6==="P"||_2e6==="SPAN"||_2e6==="DIV"){
  2732. return elem.childNodes;
  2733. }
  2734. _2e0.push(name);
  2735. _2e1.push(elem.value||"");
  2736. return null;
  2737. }
  2738. return elem.childNodes;
  2739. });
  2740. return [_2e0,_2e1];
  2741. },withDocument:function(doc,func){
  2742. var self=MochiKit.DOM;
  2743. var _2ed=self._document;
  2744. var rval;
  2745. try{
  2746. self._document=doc;
  2747. rval=func();
  2748. }
  2749. catch(e){
  2750. self._document=_2ed;
  2751. throw e;
  2752. }
  2753. self._document=_2ed;
  2754. return rval;
  2755. },registerDOMConverter:function(name,_2f0,wrap,_2f2){
  2756. MochiKit.DOM.domConverters.register(name,_2f0,wrap,_2f2);
  2757. },coerceToDOM:function(node,ctx){
  2758. var m=MochiKit.Base;
  2759. var im=MochiKit.Iter;
  2760. var self=MochiKit.DOM;
  2761. if(im){
  2762. var iter=im.iter;
  2763. var _2f9=im.repeat;
  2764. var map=m.map;
  2765. }
  2766. var _2fb=self.domConverters;
  2767. var _2fc=arguments.callee;
  2768. var _2fd=m.NotFound;
  2769. while(true){
  2770. if(typeof (node)=="undefined"||node===null){
  2771. return null;
  2772. }
  2773. if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){
  2774. return node;
  2775. }
  2776. if(typeof (node)=="number"||typeof (node)=="boolean"){
  2777. node=node.toString();
  2778. }
  2779. if(typeof (node)=="string"){
  2780. return self._document.createTextNode(node);
  2781. }
  2782. if(typeof (node.__dom__)=="function"){
  2783. node=node.__dom__(ctx);
  2784. continue;
  2785. }
  2786. if(typeof (node.dom)=="function"){
  2787. node=node.dom(ctx);
  2788. continue;
  2789. }
  2790. if(typeof (node)=="function"){
  2791. node=node.apply(ctx,[ctx]);
  2792. continue;
  2793. }
  2794. if(im){
  2795. var _2fe=null;
  2796. try{
  2797. _2fe=iter(node);
  2798. }
  2799. catch(e){
  2800. }
  2801. if(_2fe){
  2802. return map(_2fc,_2fe,_2f9(ctx));
  2803. }
  2804. }
  2805. try{
  2806. node=_2fb.match(node,ctx);
  2807. continue;
  2808. }
  2809. catch(e){
  2810. if(e!=_2fd){
  2811. throw e;
  2812. }
  2813. }
  2814. return self._document.createTextNode(node.toString());
  2815. }
  2816. return undefined;
  2817. },isChildNode:function(node,_300){
  2818. var self=MochiKit.DOM;
  2819. if(typeof (node)=="string"){
  2820. node=self.getElement(node);
  2821. }
  2822. if(typeof (_300)=="string"){
  2823. _300=self.getElement(_300);
  2824. }
  2825. if(node===_300){
  2826. return true;
  2827. }
  2828. while(node&&node.tagName.toUpperCase()!="BODY"){
  2829. node=node.parentNode;
  2830. if(node===_300){
  2831. return true;
  2832. }
  2833. }
  2834. return false;
  2835. },setNodeAttribute:function(node,attr,_304){
  2836. var o={};
  2837. o[attr]=_304;
  2838. try{
  2839. return MochiKit.DOM.updateNodeAttributes(node,o);
  2840. }
  2841. catch(e){
  2842. }
  2843. return null;
  2844. },getNodeAttribute:function(node,attr){
  2845. var self=MochiKit.DOM;
  2846. var _309=self.attributeArray.renames[attr];
  2847. node=self.getElement(node);
  2848. try{
  2849. if(_309){
  2850. return node[_309];
  2851. }
  2852. return node.getAttribute(attr);
  2853. }
  2854. catch(e){
  2855. }
  2856. return null;
  2857. },updateNodeAttributes:function(node,_30b){
  2858. var elem=node;
  2859. var self=MochiKit.DOM;
  2860. if(typeof (node)=="string"){
  2861. elem=self.getElement(node);
  2862. }
  2863. if(_30b){
  2864. var _30e=MochiKit.Base.updatetree;
  2865. if(self.attributeArray.compliant){
  2866. for(var k in _30b){
  2867. var v=_30b[k];
  2868. if(typeof (v)=="object"&&typeof (elem[k])=="object"){
  2869. _30e(elem[k],v);
  2870. }else{
  2871. if(k.substring(0,2)=="on"){
  2872. if(typeof (v)=="string"){
  2873. v=new Function(v);
  2874. }
  2875. elem[k]=v;
  2876. }else{
  2877. elem.setAttribute(k,v);
  2878. }
  2879. }
  2880. }
  2881. }else{
  2882. var _311=self.attributeArray.renames;
  2883. for(k in _30b){
  2884. v=_30b[k];
  2885. var _312=_311[k];
  2886. if(k=="style"&&typeof (v)=="string"){
  2887. elem.style.cssText=v;
  2888. }else{
  2889. if(typeof (_312)=="string"){
  2890. elem[_312]=v;
  2891. }else{
  2892. if(typeof (elem[k])=="object"&&typeof (v)=="object"){
  2893. _30e(elem[k],v);
  2894. }else{
  2895. if(k.substring(0,2)=="on"){
  2896. if(typeof (v)=="string"){
  2897. v=new Function(v);
  2898. }
  2899. elem[k]=v;
  2900. }else{
  2901. elem.setAttribute(k,v);
  2902. }
  2903. }
  2904. }
  2905. }
  2906. }
  2907. }
  2908. }
  2909. return elem;
  2910. },appendChildNodes:function(node){
  2911. var elem=node;
  2912. var self=MochiKit.DOM;
  2913. if(typeof (node)=="string"){
  2914. elem=self.getElement(node);
  2915. }
  2916. var _316=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];
  2917. var _317=MochiKit.Base.concat;
  2918. while(_316.length){
  2919. var n=_316.shift();
  2920. if(typeof (n)=="undefined"||n===null){
  2921. }else{
  2922. if(typeof (n.nodeType)=="number"){
  2923. elem.appendChild(n);
  2924. }else{
  2925. _316=_317(n,_316);
  2926. }
  2927. }
  2928. }
  2929. return elem;
  2930. },replaceChildNodes:function(node){
  2931. var elem=node;
  2932. var self=MochiKit.DOM;
  2933. if(typeof (node)=="string"){
  2934. elem=self.getElement(node);
  2935. arguments[0]=elem;
  2936. }
  2937. var _31c;
  2938. while((_31c=elem.firstChild)){
  2939. elem.removeChild(_31c);
  2940. }
  2941. if(arguments.length<2){
  2942. return elem;
  2943. }else{
  2944. return self.appendChildNodes.apply(this,arguments);
  2945. }
  2946. },createDOM:function(name,_31e){
  2947. var elem;
  2948. var self=MochiKit.DOM;
  2949. var m=MochiKit.Base;
  2950. if(typeof (_31e)=="string"||typeof (_31e)=="number"){
  2951. var args=m.extend([name,null],arguments,1);
  2952. return arguments.callee.apply(this,args);
  2953. }
  2954. if(typeof (name)=="string"){
  2955. var _323=self._xhtml;
  2956. if(_31e&&!self.attributeArray.compliant){
  2957. var _324="";
  2958. if("name" in _31e){
  2959. _324+=" name=\""+self.escapeHTML(_31e.name)+"\"";
  2960. }
  2961. if(name=="input"&&"type" in _31e){
  2962. _324+=" type=\""+self.escapeHTML(_31e.type)+"\"";
  2963. }
  2964. if(_324){
  2965. name="<"+name+_324+">";
  2966. _323=false;
  2967. }
  2968. }
  2969. var d=self._document;
  2970. if(_323&&d===document){
  2971. elem=d.createElementNS("http://www.w3.org/1999/xhtml",name);
  2972. }else{
  2973. elem=d.createElement(name);
  2974. }
  2975. }else{
  2976. elem=name;
  2977. }
  2978. if(_31e){
  2979. self.updateNodeAttributes(elem,_31e);
  2980. }
  2981. if(arguments.length<=2){
  2982. return elem;
  2983. }else{
  2984. var args=m.extend([elem],arguments,2);
  2985. return self.appendChildNodes.apply(this,args);
  2986. }
  2987. },createDOMFunc:function(){
  2988. var m=MochiKit.Base;
  2989. return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments));
  2990. },removeElement:function(elem){
  2991. var e=MochiKit.DOM.getElement(elem);
  2992. e.parentNode.removeChild(e);
  2993. return e;
  2994. },swapDOM:function(dest,src){
  2995. var self=MochiKit.DOM;
  2996. dest=self.getElement(dest);
  2997. var _32c=dest.parentNode;
  2998. if(src){
  2999. src=self.getElement(src);
  3000. _32c.replaceChild(src,dest);
  3001. }else{
  3002. _32c.removeChild(dest);
  3003. }
  3004. return src;
  3005. },getElement:function(id){
  3006. var self=MochiKit.DOM;
  3007. if(arguments.length==1){
  3008. return ((typeof (id)=="string")?self._document.getElementById(id):id);
  3009. }else{
  3010. return MochiKit.Base.map(self.getElement,arguments);
  3011. }
  3012. },getElementsByTagAndClassName:function(_32f,_330,_331){
  3013. var self=MochiKit.DOM;
  3014. if(typeof (_32f)=="undefined"||_32f===null){
  3015. _32f="*";
  3016. }
  3017. if(typeof (_331)=="undefined"||_331===null){
  3018. _331=self._document;
  3019. }
  3020. _331=self.getElement(_331);
  3021. var _333=(_331.getElementsByTagName(_32f)||self._document.all);
  3022. if(typeof (_330)=="undefined"||_330===null){
  3023. return MochiKit.Base.extend(null,_333);
  3024. }
  3025. var _334=[];
  3026. for(var i=0;i<_333.length;i++){
  3027. var _336=_333[i];
  3028. var cls=_336.className;
  3029. if(!cls){
  3030. continue;
  3031. }
  3032. var _338=cls.split(" ");
  3033. for(var j=0;j<_338.length;j++){
  3034. if(_338[j]==_330){
  3035. _334.push(_336);
  3036. break;
  3037. }
  3038. }
  3039. }
  3040. return _334;
  3041. },_newCallStack:function(path,once){
  3042. var rval=function(){
  3043. var _33d=arguments.callee.callStack;
  3044. for(var i=0;i<_33d.length;i++){
  3045. if(_33d[i].apply(this,arguments)===false){
  3046. break;
  3047. }
  3048. }
  3049. if(once){
  3050. try{
  3051. this[path]=null;
  3052. }
  3053. catch(e){
  3054. }
  3055. }
  3056. };
  3057. rval.callStack=[];
  3058. return rval;
  3059. },addToCallStack:function(_33f,path,func,once){
  3060. var self=MochiKit.DOM;
  3061. var _344=_33f[path];
  3062. var _345=_344;
  3063. if(!(typeof (_344)=="function"&&typeof (_344.callStack)=="object"&&_344.callStack!==null)){
  3064. _345=self._newCallStack(path,once);
  3065. if(typeof (_344)=="function"){
  3066. _345.callStack.push(_344);
  3067. }
  3068. _33f[path]=_345;
  3069. }
  3070. _345.callStack.push(func);
  3071. },addLoadEvent:function(func){
  3072. var self=MochiKit.DOM;
  3073. self.addToCallStack(self._window,"onload",func,true);
  3074. },focusOnLoad:function(_348){
  3075. var self=MochiKit.DOM;
  3076. self.addLoadEvent(function(){
  3077. _348=self.getElement(_348);
  3078. if(_348){
  3079. _348.focus();
  3080. }
  3081. });
  3082. },setElementClass:function(_34a,_34b){
  3083. var self=MochiKit.DOM;
  3084. var obj=self.getElement(_34a);
  3085. if(self.attributeArray.compliant){
  3086. obj.setAttribute("class",_34b);
  3087. }else{
  3088. obj.setAttribute("className",_34b);
  3089. }
  3090. },toggleElementClass:function(_34e){
  3091. var self=MochiKit.DOM;
  3092. for(var i=1;i<arguments.length;i++){
  3093. var obj=self.getElement(arguments[i]);
  3094. if(!self.addElementClass(obj,_34e)){
  3095. self.removeElementClass(obj,_34e);
  3096. }
  3097. }
  3098. },addElementClass:function(_352,_353){
  3099. var self=MochiKit.DOM;
  3100. var obj=self.getElement(_352);
  3101. var cls=obj.className;
  3102. if(cls==undefined||cls.length===0){
  3103. self.setElementClass(obj,_353);
  3104. return true;
  3105. }
  3106. if(cls==_353){
  3107. return false;
  3108. }
  3109. var _357=cls.split(" ");
  3110. for(var i=0;i<_357.length;i++){
  3111. if(_357[i]==_353){
  3112. return false;
  3113. }
  3114. }
  3115. self.setElementClass(obj,cls+" "+_353);
  3116. return true;
  3117. },removeElementClass:function(_359,_35a){
  3118. var self=MochiKit.DOM;
  3119. var obj=self.getElement(_359);
  3120. var cls=obj.className;
  3121. if(cls==undefined||cls.length===0){
  3122. return false;
  3123. }
  3124. if(cls==_35a){
  3125. self.setElementClass(obj,"");
  3126. return true;
  3127. }
  3128. var _35e=cls.split(" ");
  3129. for(var i=0;i<_35e.length;i++){
  3130. if(_35e[i]==_35a){
  3131. _35e.splice(i,1);
  3132. self.setElementClass(obj,_35e.join(" "));
  3133. return true;
  3134. }
  3135. }
  3136. return false;
  3137. },swapElementClass:function(_360,_361,_362){
  3138. var obj=MochiKit.DOM.getElement(_360);
  3139. var res=MochiKit.DOM.removeElementClass(obj,_361);
  3140. if(res){
  3141. MochiKit.DOM.addElementClass(obj,_362);
  3142. }
  3143. return res;
  3144. },hasElementClass:function(_365,_366){
  3145. var obj=MochiKit.DOM.getElement(_365);
  3146. var cls=obj.className;
  3147. if(!cls){
  3148. return false;
  3149. }
  3150. var _369=cls.split(" ");
  3151. for(var i=1;i<arguments.length;i++){
  3152. var good=false;
  3153. for(var j=0;j<_369.length;j++){
  3154. if(_369[j]==arguments[i]){
  3155. good=true;
  3156. break;
  3157. }
  3158. }
  3159. if(!good){
  3160. return false;
  3161. }
  3162. }
  3163. return true;
  3164. },escapeHTML:function(s){
  3165. return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
  3166. },toHTML:function(dom){
  3167. return MochiKit.DOM.emitHTML(dom).join("");
  3168. },emitHTML:function(dom,lst){
  3169. if(typeof (lst)=="undefined"||lst===null){
  3170. lst=[];
  3171. }
  3172. var _371=[dom];
  3173. var self=MochiKit.DOM;
  3174. var _373=self.escapeHTML;
  3175. var _374=self.attributeArray;
  3176. while(_371.length){
  3177. dom=_371.pop();
  3178. if(typeof (dom)=="string"){
  3179. lst.push(dom);
  3180. }else{
  3181. if(dom.nodeType==1){
  3182. lst.push("<"+dom.tagName.toLowerCase());
  3183. var _375=[];
  3184. var _376=_374(dom);
  3185. for(var i=0;i<_376.length;i++){
  3186. var a=_376[i];
  3187. _375.push([" ",a.name,"=\"",_373(a.value),"\""]);
  3188. }
  3189. _375.sort();
  3190. for(i=0;i<_375.length;i++){
  3191. var _379=_375[i];
  3192. for(var j=0;j<_379.length;j++){
  3193. lst.push(_379[j]);
  3194. }
  3195. }
  3196. if(dom.hasChildNodes()){
  3197. lst.push(">");
  3198. _371.push("</"+dom.tagName.toLowerCase()+">");
  3199. var _37b=dom.childNodes;
  3200. for(i=_37b.length-1;i>=0;i--){
  3201. _371.push(_37b[i]);
  3202. }
  3203. }else{
  3204. lst.push("/>");
  3205. }
  3206. }else{
  3207. if(dom.nodeType==3){
  3208. lst.push(_373(dom.nodeValue));
  3209. }
  3210. }
  3211. }
  3212. }
  3213. return lst;
  3214. },scrapeText:function(node,_37d){
  3215. var rval=[];
  3216. (function(node){
  3217. var cn=node.childNodes;
  3218. if(cn){
  3219. for(var i=0;i<cn.length;i++){
  3220. arguments.callee.call(this,cn[i]);
  3221. }
  3222. }
  3223. var _382=node.nodeValue;
  3224. if(typeof (_382)=="string"){
  3225. rval.push(_382);
  3226. }
  3227. })(MochiKit.DOM.getElement(node));
  3228. if(_37d){
  3229. return rval;
  3230. }else{
  3231. return rval.join("");
  3232. }
  3233. },removeEmptyTextNodes:function(_383){
  3234. _383=MochiKit.DOM.getElement(_383);
  3235. for(var i=0;i<_383.childNodes.length;i++){
  3236. var node=_383.childNodes[i];
  3237. if(node.nodeType==3&&!/\S/.test(node.nodeValue)){
  3238. node.parentNode.removeChild(node);
  3239. }
  3240. }
  3241. },__new__:function(win){
  3242. var m=MochiKit.Base;
  3243. if(typeof (document)!="undefined"){
  3244. this._document=document;
  3245. this._xhtml=document.createElementNS&&document.createElement("testname").localName=="testname";
  3246. }else{
  3247. if(MochiKit.MockDOM){
  3248. this._document=MochiKit.MockDOM.document;
  3249. }
  3250. }
  3251. this._window=win;
  3252. this.domConverters=new m.AdapterRegistry();
  3253. var _388=this._document.createElement("span");
  3254. var _389;
  3255. if(_388&&_388.attributes&&_388.attributes.length>0){
  3256. var _38a=m.filter;
  3257. _389=function(node){
  3258. return _38a(_389.ignoreAttrFilter,node.attributes);
  3259. };
  3260. _389.ignoreAttr={};
  3261. var _38c=_388.attributes;
  3262. var _38d=_389.ignoreAttr;
  3263. for(var i=0;i<_38c.length;i++){
  3264. var a=_38c[i];
  3265. _38d[a.name]=a.value;
  3266. }
  3267. _389.ignoreAttrFilter=function(a){
  3268. return (_389.ignoreAttr[a.name]!=a.value);
  3269. };
  3270. _389.compliant=false;
  3271. _389.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor"};
  3272. }else{
  3273. _389=function(node){
  3274. return node.attributes;
  3275. };
  3276. _389.compliant=true;
  3277. _389.renames={};
  3278. }
  3279. this.attributeArray=_389;
  3280. var _392=function(_393,arr){
  3281. var _395=arr[1].split(".");
  3282. var str="";
  3283. var obj={};
  3284. str+="if (!MochiKit."+_395[1]+") { throw new Error(\"";
  3285. str+="This function has been deprecated and depends on MochiKit.";
  3286. str+=_395[1]+".\");}";
  3287. str+="return MochiKit."+_395[1]+"."+arr[0];
  3288. str+=".apply(this, arguments);";
  3289. obj[_395[2]]=new Function(str);
  3290. MochiKit.Base.update(MochiKit[_393],obj);
  3291. };
  3292. for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){
  3293. _392("DOM",MochiKit.DOM.DEPRECATED[i]);
  3294. }
  3295. var _398=this.createDOMFunc;
  3296. this.UL=_398("ul");
  3297. this.OL=_398("ol");
  3298. this.LI=_398("li");
  3299. this.TD=_398("td");
  3300. this.TR=_398("tr");
  3301. this.TBODY=_398("tbody");
  3302. this.THEAD=_398("thead");
  3303. this.TFOOT=_398("tfoot");
  3304. this.TABLE=_398("table");
  3305. this.TH=_398("th");
  3306. this.INPUT=_398("input");
  3307. this.SPAN=_398("span");
  3308. this.A=_398("a");
  3309. this.DIV=_398("div");
  3310. this.IMG=_398("img");
  3311. this.BUTTON=_398("button");
  3312. this.TT=_398("tt");
  3313. this.PRE=_398("pre");
  3314. this.H1=_398("h1");
  3315. this.H2=_398("h2");
  3316. this.H3=_398("h3");
  3317. this.BR=_398("br");
  3318. this.HR=_398("hr");
  3319. this.LABEL=_398("label");
  3320. this.TEXTAREA=_398("textarea");
  3321. this.FORM=_398("form");
  3322. this.P=_398("p");
  3323. this.SELECT=_398("select");
  3324. this.OPTION=_398("option");
  3325. this.OPTGROUP=_398("optgroup");
  3326. this.LEGEND=_398("legend");
  3327. this.FIELDSET=_398("fieldset");
  3328. this.STRONG=_398("strong");
  3329. this.CANVAS=_398("canvas");
  3330. this.$=this.getElement;
  3331. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  3332. m.nameFunctions(this);
  3333. }});
  3334. MochiKit.DOM.__new__(((typeof (window)=="undefined")?this:window));
  3335. if(MochiKit.__export__){
  3336. withWindow=MochiKit.DOM.withWindow;
  3337. withDocument=MochiKit.DOM.withDocument;
  3338. }
  3339. MochiKit.Base._exportSymbols(this,MochiKit.DOM);
  3340. if(typeof (dojo)!="undefined"){
  3341. dojo.provide("MochiKit.Style");
  3342. dojo.require("MochiKit.Base");
  3343. dojo.require("MochiKit.DOM");
  3344. }
  3345. if(typeof (JSAN)!="undefined"){
  3346. JSAN.use("MochiKit.Base",[]);
  3347. }
  3348. try{
  3349. if(typeof (MochiKit.Base)=="undefined"){
  3350. throw "";
  3351. }
  3352. }
  3353. catch(e){
  3354. throw "MochiKit.Style depends on MochiKit.Base!";
  3355. }
  3356. try{
  3357. if(typeof (MochiKit.DOM)=="undefined"){
  3358. throw "";
  3359. }
  3360. }
  3361. catch(e){
  3362. throw "MochiKit.Style depends on MochiKit.DOM!";
  3363. }
  3364. if(typeof (MochiKit.Style)=="undefined"){
  3365. MochiKit.Style={};
  3366. }
  3367. MochiKit.Style.NAME="MochiKit.Style";
  3368. MochiKit.Style.VERSION="1.4";
  3369. MochiKit.Style.__repr__=function(){
  3370. return "["+this.NAME+" "+this.VERSION+"]";
  3371. };
  3372. MochiKit.Style.toString=function(){
  3373. return this.__repr__();
  3374. };
  3375. MochiKit.Style.EXPORT_OK=[];
  3376. MochiKit.Style.EXPORT=["setOpacity","getOpacity","setStyle","getStyle","computedStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];
  3377. MochiKit.Style.Dimensions=function(w,h){
  3378. this.w=w;
  3379. this.h=h;
  3380. };
  3381. MochiKit.Style.Dimensions.prototype.__repr__=function(){
  3382. var repr=MochiKit.Base.repr;
  3383. return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}";
  3384. };
  3385. MochiKit.Style.Dimensions.prototype.toString=function(){
  3386. return this.__repr__();
  3387. };
  3388. MochiKit.Style.Coordinates=function(x,y){
  3389. this.x=x;
  3390. this.y=y;
  3391. };
  3392. MochiKit.Style.Coordinates.prototype.__repr__=function(){
  3393. var repr=MochiKit.Base.repr;
  3394. return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}";
  3395. };
  3396. MochiKit.Style.Coordinates.prototype.toString=function(){
  3397. return this.__repr__();
  3398. };
  3399. MochiKit.Base.update(MochiKit.Style,{computedStyle:function(elem,_3a0){
  3400. var dom=MochiKit.DOM;
  3401. var d=dom._document;
  3402. elem=dom.getElement(elem);
  3403. _3a0=MochiKit.Base.camelize(_3a0);
  3404. if(!elem||elem==d){
  3405. return undefined;
  3406. }
  3407. if(_3a0=="opacity"&&elem.filters){
  3408. try{
  3409. return elem.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100;
  3410. }
  3411. catch(e){
  3412. try{
  3413. return elem.filters.item("alpha").opacity/100;
  3414. }
  3415. catch(e){
  3416. }
  3417. }
  3418. }
  3419. if(elem.currentStyle){
  3420. return elem.currentStyle[_3a0];
  3421. }
  3422. if(typeof (d.defaultView)=="undefined"){
  3423. return undefined;
  3424. }
  3425. if(d.defaultView===null){
  3426. return undefined;
  3427. }
  3428. var _3a3=d.defaultView.getComputedStyle(elem,null);
  3429. if(typeof (_3a3)=="undefined"||_3a3===null){
  3430. return undefined;
  3431. }
  3432. var _3a4=_3a0.replace(/([A-Z])/g,"-$1").toLowerCase();
  3433. return _3a3.getPropertyValue(_3a4);
  3434. },getStyle:function(elem,_3a6){
  3435. elem=MochiKit.DOM.getElement(elem);
  3436. var _3a7=elem.style[MochiKit.Base.camelize(_3a6)];
  3437. if(!_3a7){
  3438. if(document.defaultView&&document.defaultView.getComputedStyle){
  3439. var css=document.defaultView.getComputedStyle(elem,null);
  3440. _3a7=css?css.getPropertyValue(_3a6):null;
  3441. }else{
  3442. if(elem.currentStyle){
  3443. _3a7=elem.currentStyle[MochiKit.Base.camelize(_3a6)];
  3444. }
  3445. }
  3446. }
  3447. if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_3a6)!=-1)){
  3448. if(MochiKit.Style.getStyle(elem,"position")=="static"){
  3449. _3a7="auto";
  3450. }
  3451. }
  3452. return _3a7=="auto"?null:_3a7;
  3453. },setStyle:function(elem,_3aa){
  3454. elem=MochiKit.DOM.getElement(elem);
  3455. for(name in _3aa){
  3456. elem.style[MochiKit.Base.camelize(name)]=_3aa[name];
  3457. }
  3458. },getOpacity:function(elem){
  3459. var _3ac;
  3460. if(_3ac=MochiKit.Style.getStyle(elem,"opacity")){
  3461. return parseFloat(_3ac);
  3462. }
  3463. if(_3ac=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/)){
  3464. if(_3ac[1]){
  3465. return parseFloat(_3ac[1])/100;
  3466. }
  3467. }
  3468. return 1;
  3469. },setOpacity:function(elem,o){
  3470. elem=MochiKit.DOM.getElement(elem);
  3471. var self=MochiKit.Style;
  3472. if(o==1){
  3473. var _3b0=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|Safari|KHTML/.test(navigator.userAgent));
  3474. self.setStyle(elem,{opacity:_3b0?0.999999:1});
  3475. if(/MSIE/.test(navigator.userAgent)){
  3476. self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")});
  3477. }
  3478. }else{
  3479. if(o<0.00001){
  3480. o=0;
  3481. }
  3482. self.setStyle(elem,{opacity:o});
  3483. if(/MSIE/.test(navigator.userAgent)){
  3484. self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")"});
  3485. }
  3486. }
  3487. },getElementPosition:function(elem,_3b2){
  3488. var self=MochiKit.Style;
  3489. var dom=MochiKit.DOM;
  3490. elem=dom.getElement(elem);
  3491. if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode==null||self.computedStyle(elem,"display")=="none"))){
  3492. return undefined;
  3493. }
  3494. var c=new self.Coordinates(0,0);
  3495. var box=null;
  3496. var _3b7=null;
  3497. var d=MochiKit.DOM._document;
  3498. var de=d.documentElement;
  3499. var b=d.body;
  3500. if(!elem.parentNode&&elem.x&&elem.y){
  3501. c.x+=elem.x||0;
  3502. c.y+=elem.y||0;
  3503. }else{
  3504. if(elem.getBoundingClientRect){
  3505. box=elem.getBoundingClientRect();
  3506. c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
  3507. c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
  3508. }else{
  3509. if(elem.offsetParent){
  3510. c.x+=elem.offsetLeft;
  3511. c.y+=elem.offsetTop;
  3512. _3b7=elem.offsetParent;
  3513. if(_3b7!=elem){
  3514. while(_3b7){
  3515. c.x+=_3b7.offsetLeft;
  3516. c.y+=_3b7.offsetTop;
  3517. _3b7=_3b7.offsetParent;
  3518. }
  3519. }
  3520. var ua=navigator.userAgent.toLowerCase();
  3521. if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("safari")!=-1&&self.computedStyle(elem,"position")=="absolute")){
  3522. c.x-=b.offsetLeft;
  3523. c.y-=b.offsetTop;
  3524. }
  3525. }
  3526. }
  3527. }
  3528. if(typeof (_3b2)!="undefined"){
  3529. _3b2=arguments.callee(_3b2);
  3530. if(_3b2){
  3531. c.x-=(_3b2.x||0);
  3532. c.y-=(_3b2.y||0);
  3533. }
  3534. }
  3535. if(elem.parentNode){
  3536. _3b7=elem.parentNode;
  3537. }else{
  3538. _3b7=null;
  3539. }
  3540. while(_3b7){
  3541. var _3bc=_3b7.tagName.toUpperCase();
  3542. if(_3bc==="BODY"||_3bc==="HTML"){
  3543. break;
  3544. }
  3545. c.x-=_3b7.scrollLeft;
  3546. c.y-=_3b7.scrollTop;
  3547. if(_3b7.parentNode){
  3548. _3b7=_3b7.parentNode;
  3549. }else{
  3550. _3b7=null;
  3551. }
  3552. }
  3553. return c;
  3554. },setElementPosition:function(elem,_3be,_3bf){
  3555. elem=MochiKit.DOM.getElement(elem);
  3556. if(typeof (_3bf)=="undefined"){
  3557. _3bf="px";
  3558. }
  3559. var _3c0={};
  3560. var _3c1=MochiKit.Base.isUndefinedOrNull;
  3561. if(!_3c1(_3be.x)){
  3562. _3c0["left"]=_3be.x+_3bf;
  3563. }
  3564. if(!_3c1(_3be.y)){
  3565. _3c0["top"]=_3be.y+_3bf;
  3566. }
  3567. MochiKit.DOM.updateNodeAttributes(elem,{"style":_3c0});
  3568. },getElementDimensions:function(elem){
  3569. var self=MochiKit.Style;
  3570. var dom=MochiKit.DOM;
  3571. if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){
  3572. return new self.Dimensions(elem.w||0,elem.h||0);
  3573. }
  3574. elem=dom.getElement(elem);
  3575. if(!elem){
  3576. return undefined;
  3577. }
  3578. var disp=self.computedStyle(elem,"display");
  3579. if(disp!="none"&&disp!=""&&typeof (disp)!="undefined"){
  3580. return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0);
  3581. }
  3582. var s=elem.style;
  3583. var _3c7=s.visibility;
  3584. var _3c8=s.position;
  3585. s.visibility="hidden";
  3586. s.position="absolute";
  3587. s.display="";
  3588. var _3c9=elem.offsetWidth;
  3589. var _3ca=elem.offsetHeight;
  3590. s.display="none";
  3591. s.position=_3c8;
  3592. s.visibility=_3c7;
  3593. return new self.Dimensions(_3c9,_3ca);
  3594. },setElementDimensions:function(elem,_3cc,_3cd){
  3595. elem=MochiKit.DOM.getElement(elem);
  3596. if(typeof (_3cd)=="undefined"){
  3597. _3cd="px";
  3598. }
  3599. var _3ce={};
  3600. var _3cf=MochiKit.Base.isUndefinedOrNull;
  3601. if(!_3cf(_3cc.w)){
  3602. _3ce["width"]=_3cc.w+_3cd;
  3603. }
  3604. if(!_3cf(_3cc.h)){
  3605. _3ce["height"]=_3cc.h+_3cd;
  3606. }
  3607. MochiKit.DOM.updateNodeAttributes(elem,{"style":_3ce});
  3608. },setDisplayForElement:function(_3d0,_3d1){
  3609. var _3d2=MochiKit.Base.extend(null,arguments,1);
  3610. var _3d3=MochiKit.DOM.getElement;
  3611. for(var i=0;i<_3d2.length;i++){
  3612. var _3d1=_3d3(_3d2[i]);
  3613. if(_3d1){
  3614. _3d1.style.display=_3d0;
  3615. }
  3616. }
  3617. },getViewportDimensions:function(){
  3618. var d=new MochiKit.Style.Dimensions();
  3619. var w=MochiKit.DOM._window;
  3620. var b=MochiKit.DOM._document.body;
  3621. if(w.innerWidth){
  3622. d.w=w.innerWidth;
  3623. d.h=w.innerHeight;
  3624. }else{
  3625. if(b.parentElement.clientWidth){
  3626. d.w=b.parentElement.clientWidth;
  3627. d.h=b.parentElement.clientHeight;
  3628. }else{
  3629. if(b&&b.clientWidth){
  3630. d.w=b.clientWidth;
  3631. d.h=b.clientHeight;
  3632. }
  3633. }
  3634. }
  3635. return d;
  3636. },getViewportPosition:function(){
  3637. var c=new MochiKit.Style.Coordinates(0,0);
  3638. var d=MochiKit.DOM._document;
  3639. var de=d.documentElement;
  3640. var db=d.body;
  3641. if(de&&(de.scrollTop||de.scrollLeft)){
  3642. c.x=de.scrollLeft;
  3643. c.y=de.scrollTop;
  3644. }else{
  3645. if(db){
  3646. c.x=db.scrollLeft;
  3647. c.y=db.scrollTop;
  3648. }
  3649. }
  3650. return c;
  3651. },__new__:function(){
  3652. var m=MochiKit.Base;
  3653. this.elementPosition=this.getElementPosition;
  3654. this.elementDimensions=this.getElementDimensions;
  3655. this.hideElement=m.partial(this.setDisplayForElement,"none");
  3656. this.showElement=m.partial(this.setDisplayForElement,"block");
  3657. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  3658. m.nameFunctions(this);
  3659. }});
  3660. MochiKit.Style.__new__();
  3661. MochiKit.Base._exportSymbols(this,MochiKit.Style);
  3662. if(typeof (dojo)!="undefined"){
  3663. dojo.provide("MochiKit.LoggingPane");
  3664. dojo.require("MochiKit.Logging");
  3665. dojo.require("MochiKit.Base");
  3666. }
  3667. if(typeof (JSAN)!="undefined"){
  3668. JSAN.use("MochiKit.Logging",[]);
  3669. JSAN.use("MochiKit.Base",[]);
  3670. }
  3671. try{
  3672. if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.Logging)=="undefined"){
  3673. throw "";
  3674. }
  3675. }
  3676. catch(e){
  3677. throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!";
  3678. }
  3679. if(typeof (MochiKit.LoggingPane)=="undefined"){
  3680. MochiKit.LoggingPane={};
  3681. }
  3682. MochiKit.LoggingPane.NAME="MochiKit.LoggingPane";
  3683. MochiKit.LoggingPane.VERSION="1.4";
  3684. MochiKit.LoggingPane.__repr__=function(){
  3685. return "["+this.NAME+" "+this.VERSION+"]";
  3686. };
  3687. MochiKit.LoggingPane.toString=function(){
  3688. return this.__repr__();
  3689. };
  3690. MochiKit.LoggingPane.createLoggingPane=function(_3dd){
  3691. var m=MochiKit.LoggingPane;
  3692. _3dd=!(!_3dd);
  3693. if(m._loggingPane&&m._loggingPane.inline!=_3dd){
  3694. m._loggingPane.closePane();
  3695. m._loggingPane=null;
  3696. }
  3697. if(!m._loggingPane||m._loggingPane.closed){
  3698. m._loggingPane=new m.LoggingPane(_3dd,MochiKit.Logging.logger);
  3699. }
  3700. return m._loggingPane;
  3701. };
  3702. MochiKit.LoggingPane.LoggingPane=function(_3df,_3e0){
  3703. if(typeof (_3e0)=="undefined"||_3e0===null){
  3704. _3e0=MochiKit.Logging.logger;
  3705. }
  3706. this.logger=_3e0;
  3707. var _3e1=MochiKit.Base.update;
  3708. var _3e2=MochiKit.Base.updatetree;
  3709. var bind=MochiKit.Base.bind;
  3710. var _3e4=MochiKit.Base.clone;
  3711. var win=window;
  3712. var uid="_MochiKit_LoggingPane";
  3713. if(typeof (MochiKit.DOM)!="undefined"){
  3714. win=MochiKit.DOM.currentWindow();
  3715. }
  3716. if(!_3df){
  3717. var url=win.location.href.split("?")[0].replace(/[#:\/.><&-]/g,"_");
  3718. var name=uid+"_"+url;
  3719. var nwin=win.open("",name,"dependent,resizable,height=200");
  3720. if(!nwin){
  3721. alert("Not able to open debugging window due to pop-up blocking.");
  3722. return undefined;
  3723. }
  3724. 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>");
  3725. nwin.document.close();
  3726. nwin.document.title+=" "+win.document.title;
  3727. win=nwin;
  3728. }
  3729. var doc=win.document;
  3730. this.doc=doc;
  3731. var _3eb=doc.getElementById(uid);
  3732. var _3ec=!!_3eb;
  3733. if(_3eb&&typeof (_3eb.loggingPane)!="undefined"){
  3734. _3eb.loggingPane.logger=this.logger;
  3735. _3eb.loggingPane.buildAndApplyFilter();
  3736. return _3eb.loggingPane;
  3737. }
  3738. if(_3ec){
  3739. var _3ed;
  3740. while((_3ed=_3eb.firstChild)){
  3741. _3eb.removeChild(_3ed);
  3742. }
  3743. }else{
  3744. _3eb=doc.createElement("div");
  3745. _3eb.id=uid;
  3746. }
  3747. _3eb.loggingPane=this;
  3748. var _3ee=doc.createElement("input");
  3749. var _3ef=doc.createElement("input");
  3750. var _3f0=doc.createElement("button");
  3751. var _3f1=doc.createElement("button");
  3752. var _3f2=doc.createElement("button");
  3753. var _3f3=doc.createElement("button");
  3754. var _3f4=doc.createElement("div");
  3755. var _3f5=doc.createElement("div");
  3756. var _3f6=uid+"_Listener";
  3757. this.colorTable=_3e4(this.colorTable);
  3758. var _3f7=[];
  3759. var _3f8=null;
  3760. var _3f9=function(msg){
  3761. var _3fb=msg.level;
  3762. if(typeof (_3fb)=="number"){
  3763. _3fb=MochiKit.Logging.LogLevel[_3fb];
  3764. }
  3765. return _3fb;
  3766. };
  3767. var _3fc=function(msg){
  3768. return msg.info.join(" ");
  3769. };
  3770. var _3fe=bind(function(msg){
  3771. var _400=_3f9(msg);
  3772. var text=_3fc(msg);
  3773. var c=this.colorTable[_400];
  3774. var p=doc.createElement("span");
  3775. p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_400;
  3776. 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;
  3777. p.appendChild(doc.createTextNode(_400+": "+text));
  3778. _3f5.appendChild(p);
  3779. _3f5.appendChild(doc.createElement("br"));
  3780. if(_3f4.offsetHeight>_3f4.scrollHeight){
  3781. _3f4.scrollTop=0;
  3782. }else{
  3783. _3f4.scrollTop=_3f4.scrollHeight;
  3784. }
  3785. },this);
  3786. var _404=function(msg){
  3787. _3f7[_3f7.length]=msg;
  3788. _3fe(msg);
  3789. };
  3790. var _406=function(){
  3791. var _407,_408;
  3792. try{
  3793. _407=new RegExp(_3ee.value);
  3794. _408=new RegExp(_3ef.value);
  3795. }
  3796. catch(e){
  3797. logDebug("Error in filter regex: "+e.message);
  3798. return null;
  3799. }
  3800. return function(msg){
  3801. return (_407.test(_3f9(msg))&&_408.test(_3fc(msg)));
  3802. };
  3803. };
  3804. var _40a=function(){
  3805. while(_3f5.firstChild){
  3806. _3f5.removeChild(_3f5.firstChild);
  3807. }
  3808. };
  3809. var _40b=function(){
  3810. _3f7=[];
  3811. _40a();
  3812. };
  3813. var _40c=bind(function(){
  3814. if(this.closed){
  3815. return;
  3816. }
  3817. this.closed=true;
  3818. if(MochiKit.LoggingPane._loggingPane==this){
  3819. MochiKit.LoggingPane._loggingPane=null;
  3820. }
  3821. this.logger.removeListener(_3f6);
  3822. _3eb.loggingPane=null;
  3823. if(_3df){
  3824. _3eb.parentNode.removeChild(_3eb);
  3825. }else{
  3826. this.win.close();
  3827. }
  3828. },this);
  3829. var _40d=function(){
  3830. _40a();
  3831. for(var i=0;i<_3f7.length;i++){
  3832. var msg=_3f7[i];
  3833. if(_3f8===null||_3f8(msg)){
  3834. _3fe(msg);
  3835. }
  3836. }
  3837. };
  3838. this.buildAndApplyFilter=function(){
  3839. _3f8=_406();
  3840. _40d();
  3841. this.logger.removeListener(_3f6);
  3842. this.logger.addListener(_3f6,_3f8,_404);
  3843. };
  3844. var _410=bind(function(){
  3845. _3f7=this.logger.getMessages();
  3846. _40d();
  3847. },this);
  3848. var _411=bind(function(_412){
  3849. _412=_412||window.event;
  3850. key=_412.which||_412.keyCode;
  3851. if(key==13){
  3852. this.buildAndApplyFilter();
  3853. }
  3854. },this);
  3855. var _413="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont;
  3856. if(_3df){
  3857. _413+="; height: 10em; border-top: 2px solid black";
  3858. }else{
  3859. _413+="; height: 100%;";
  3860. }
  3861. _3eb.style.cssText=_413;
  3862. if(!_3ec){
  3863. doc.body.appendChild(_3eb);
  3864. }
  3865. _413={"cssText":"width: 33%; display: inline; font: "+this.logFont};
  3866. _3e2(_3ee,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_411,"style":_413});
  3867. _3eb.appendChild(_3ee);
  3868. _3e2(_3ef,{"value":".*","onkeypress":_411,"style":_413});
  3869. _3eb.appendChild(_3ef);
  3870. _413="width: 8%; display:inline; font: "+this.logFont;
  3871. _3f0.appendChild(doc.createTextNode("Filter"));
  3872. _3f0.onclick=bind("buildAndApplyFilter",this);
  3873. _3f0.style.cssText=_413;
  3874. _3eb.appendChild(_3f0);
  3875. _3f1.appendChild(doc.createTextNode("Load"));
  3876. _3f1.onclick=_410;
  3877. _3f1.style.cssText=_413;
  3878. _3eb.appendChild(_3f1);
  3879. _3f2.appendChild(doc.createTextNode("Clear"));
  3880. _3f2.onclick=_40b;
  3881. _3f2.style.cssText=_413;
  3882. _3eb.appendChild(_3f2);
  3883. _3f3.appendChild(doc.createTextNode("Close"));
  3884. _3f3.onclick=_40c;
  3885. _3f3.style.cssText=_413;
  3886. _3eb.appendChild(_3f3);
  3887. _3f4.style.cssText="overflow: auto; width: 100%";
  3888. _3f5.style.cssText="width: 100%; height: "+(_3df?"8em":"100%");
  3889. _3f4.appendChild(_3f5);
  3890. _3eb.appendChild(_3f4);
  3891. this.buildAndApplyFilter();
  3892. _410();
  3893. if(_3df){
  3894. this.win=undefined;
  3895. }else{
  3896. this.win=win;
  3897. }
  3898. this.inline=_3df;
  3899. this.closePane=_40c;
  3900. this.closed=false;
  3901. return this;
  3902. };
  3903. MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}};
  3904. MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"];
  3905. MochiKit.LoggingPane.EXPORT=["createLoggingPane"];
  3906. MochiKit.LoggingPane.__new__=function(){
  3907. this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)};
  3908. MochiKit.Base.nameFunctions(this);
  3909. MochiKit.LoggingPane._loggingPane=null;
  3910. };
  3911. MochiKit.LoggingPane.__new__();
  3912. MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane);
  3913. if(typeof (dojo)!="undefined"){
  3914. dojo.provide("MochiKit.Color");
  3915. dojo.require("MochiKit.Base");
  3916. dojo.require("MochiKit.DOM");
  3917. dojo.require("MochiKit.Style");
  3918. }
  3919. if(typeof (JSAN)!="undefined"){
  3920. JSAN.use("MochiKit.Base",[]);
  3921. JSAN.use("MochiKit.DOM",[]);
  3922. JSAN.use("MochiKit.Style",[]);
  3923. }
  3924. try{
  3925. if(typeof (MochiKit.Base)=="undefined"){
  3926. throw "";
  3927. }
  3928. }
  3929. catch(e){
  3930. throw "MochiKit.Color depends on MochiKit.Base";
  3931. }
  3932. try{
  3933. if(typeof (MochiKit.Base)=="undefined"){
  3934. throw "";
  3935. }
  3936. }
  3937. catch(e){
  3938. throw "MochiKit.Color depends on MochiKit.DOM";
  3939. }
  3940. try{
  3941. if(typeof (MochiKit.Base)=="undefined"){
  3942. throw "";
  3943. }
  3944. }
  3945. catch(e){
  3946. throw "MochiKit.Color depends on MochiKit.Style";
  3947. }
  3948. if(typeof (MochiKit.Color)=="undefined"){
  3949. MochiKit.Color={};
  3950. }
  3951. MochiKit.Color.NAME="MochiKit.Color";
  3952. MochiKit.Color.VERSION="1.4";
  3953. MochiKit.Color.__repr__=function(){
  3954. return "["+this.NAME+" "+this.VERSION+"]";
  3955. };
  3956. MochiKit.Color.toString=function(){
  3957. return this.__repr__();
  3958. };
  3959. MochiKit.Color.Color=function(red,_415,blue,_417){
  3960. if(typeof (_417)=="undefined"||_417===null){
  3961. _417=1;
  3962. }
  3963. this.rgb={r:red,g:_415,b:blue,a:_417};
  3964. };
  3965. MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_418){
  3966. var rgb=this.rgb;
  3967. var m=MochiKit.Color;
  3968. return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_418);
  3969. },colorWithHue:function(hue){
  3970. var hsl=this.asHSL();
  3971. hsl.h=hue;
  3972. var m=MochiKit.Color;
  3973. return m.Color.fromHSL(hsl);
  3974. },colorWithSaturation:function(_41e){
  3975. var hsl=this.asHSL();
  3976. hsl.s=_41e;
  3977. var m=MochiKit.Color;
  3978. return m.Color.fromHSL(hsl);
  3979. },colorWithLightness:function(_421){
  3980. var hsl=this.asHSL();
  3981. hsl.l=_421;
  3982. var m=MochiKit.Color;
  3983. return m.Color.fromHSL(hsl);
  3984. },darkerColorWithLevel:function(_424){
  3985. var hsl=this.asHSL();
  3986. hsl.l=Math.max(hsl.l-_424,0);
  3987. var m=MochiKit.Color;
  3988. return m.Color.fromHSL(hsl);
  3989. },lighterColorWithLevel:function(_427){
  3990. var hsl=this.asHSL();
  3991. hsl.l=Math.min(hsl.l+_427,1);
  3992. var m=MochiKit.Color;
  3993. return m.Color.fromHSL(hsl);
  3994. },blendedColor:function(_42a,_42b){
  3995. if(typeof (_42b)=="undefined"||_42b===null){
  3996. _42b=0.5;
  3997. }
  3998. var sf=1-_42b;
  3999. var s=this.rgb;
  4000. var d=_42a.rgb;
  4001. var df=_42b;
  4002. 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));
  4003. },compareRGB:function(_430){
  4004. var a=this.asRGB();
  4005. var b=_430.asRGB();
  4006. return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]);
  4007. },isLight:function(){
  4008. return this.asHSL().b>0.5;
  4009. },isDark:function(){
  4010. return (!this.isLight());
  4011. },toHSLString:function(){
  4012. var c=this.asHSL();
  4013. var ccc=MochiKit.Color.clampColorComponent;
  4014. var rval=this._hslString;
  4015. if(!rval){
  4016. var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%");
  4017. var a=c.a;
  4018. if(a>=1){
  4019. a=1;
  4020. rval="hsl("+mid+")";
  4021. }else{
  4022. if(a<=0){
  4023. a=0;
  4024. }
  4025. rval="hsla("+mid+","+a+")";
  4026. }
  4027. this._hslString=rval;
  4028. }
  4029. return rval;
  4030. },toRGBString:function(){
  4031. var c=this.rgb;
  4032. var ccc=MochiKit.Color.clampColorComponent;
  4033. var rval=this._rgbString;
  4034. if(!rval){
  4035. var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0));
  4036. if(c.a!=1){
  4037. rval="rgba("+mid+","+c.a+")";
  4038. }else{
  4039. rval="rgb("+mid+")";
  4040. }
  4041. this._rgbString=rval;
  4042. }
  4043. return rval;
  4044. },asRGB:function(){
  4045. return MochiKit.Base.clone(this.rgb);
  4046. },toHexString:function(){
  4047. var m=MochiKit.Color;
  4048. var c=this.rgb;
  4049. var ccc=MochiKit.Color.clampColorComponent;
  4050. var rval=this._hexString;
  4051. if(!rval){
  4052. rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255)));
  4053. this._hexString=rval;
  4054. }
  4055. return rval;
  4056. },asHSV:function(){
  4057. var hsv=this.hsv;
  4058. var c=this.rgb;
  4059. if(typeof (hsv)=="undefined"||hsv===null){
  4060. hsv=MochiKit.Color.rgbToHSV(this.rgb);
  4061. this.hsv=hsv;
  4062. }
  4063. return MochiKit.Base.clone(hsv);
  4064. },asHSL:function(){
  4065. var hsl=this.hsl;
  4066. var c=this.rgb;
  4067. if(typeof (hsl)=="undefined"||hsl===null){
  4068. hsl=MochiKit.Color.rgbToHSL(this.rgb);
  4069. this.hsl=hsl;
  4070. }
  4071. return MochiKit.Base.clone(hsl);
  4072. },toString:function(){
  4073. return this.toRGBString();
  4074. },repr:function(){
  4075. var c=this.rgb;
  4076. var col=[c.r,c.g,c.b,c.a];
  4077. return this.__class__.NAME+"("+col.join(", ")+")";
  4078. }};
  4079. MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_447,blue,_449){
  4080. var _44a=MochiKit.Color.Color;
  4081. if(arguments.length==1){
  4082. var rgb=red;
  4083. red=rgb.r;
  4084. _447=rgb.g;
  4085. blue=rgb.b;
  4086. if(typeof (rgb.a)=="undefined"){
  4087. _449=undefined;
  4088. }else{
  4089. _449=rgb.a;
  4090. }
  4091. }
  4092. return new _44a(red,_447,blue,_449);
  4093. },fromHSL:function(hue,_44d,_44e,_44f){
  4094. var m=MochiKit.Color;
  4095. return m.Color.fromRGB(m.hslToRGB.apply(m,arguments));
  4096. },fromHSV:function(hue,_452,_453,_454){
  4097. var m=MochiKit.Color;
  4098. return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments));
  4099. },fromName:function(name){
  4100. var _457=MochiKit.Color.Color;
  4101. if(name.charAt(0)=="\""){
  4102. name=name.substr(1,name.length-2);
  4103. }
  4104. var _458=_457._namedColors[name.toLowerCase()];
  4105. if(typeof (_458)=="string"){
  4106. return _457.fromHexString(_458);
  4107. }else{
  4108. if(name=="transparent"){
  4109. return _457.transparentColor();
  4110. }
  4111. }
  4112. return null;
  4113. },fromString:function(_459){
  4114. var self=MochiKit.Color.Color;
  4115. var _45b=_459.substr(0,3);
  4116. if(_45b=="rgb"){
  4117. return self.fromRGBString(_459);
  4118. }else{
  4119. if(_45b=="hsl"){
  4120. return self.fromHSLString(_459);
  4121. }else{
  4122. if(_459.charAt(0)=="#"){
  4123. return self.fromHexString(_459);
  4124. }
  4125. }
  4126. }
  4127. return self.fromName(_459);
  4128. },fromHexString:function(_45c){
  4129. if(_45c.charAt(0)=="#"){
  4130. _45c=_45c.substring(1);
  4131. }
  4132. var _45d=[];
  4133. var i,hex;
  4134. if(_45c.length==3){
  4135. for(i=0;i<3;i++){
  4136. hex=_45c.substr(i,1);
  4137. _45d.push(parseInt(hex+hex,16)/255);
  4138. }
  4139. }else{
  4140. for(i=0;i<6;i+=2){
  4141. hex=_45c.substr(i,2);
  4142. _45d.push(parseInt(hex,16)/255);
  4143. }
  4144. }
  4145. var _460=MochiKit.Color.Color;
  4146. return _460.fromRGB.apply(_460,_45d);
  4147. },_fromColorString:function(pre,_462,_463,_464){
  4148. if(_464.indexOf(pre)===0){
  4149. _464=_464.substring(_464.indexOf("(",3)+1,_464.length-1);
  4150. }
  4151. var _465=_464.split(/\s*,\s*/);
  4152. var _466=[];
  4153. for(var i=0;i<_465.length;i++){
  4154. var c=_465[i];
  4155. var val;
  4156. var _46a=c.substring(c.length-3);
  4157. if(c.charAt(c.length-1)=="%"){
  4158. val=0.01*parseFloat(c.substring(0,c.length-1));
  4159. }else{
  4160. if(_46a=="deg"){
  4161. val=parseFloat(c)/360;
  4162. }else{
  4163. if(_46a=="rad"){
  4164. val=parseFloat(c)/(Math.PI*2);
  4165. }else{
  4166. val=_463[i]*parseFloat(c);
  4167. }
  4168. }
  4169. }
  4170. _466.push(val);
  4171. }
  4172. return this[_462].apply(this,_466);
  4173. },fromComputedStyle:function(elem,_46c){
  4174. var d=MochiKit.DOM;
  4175. var cls=MochiKit.Color.Color;
  4176. for(elem=d.getElement(elem);elem;elem=elem.parentNode){
  4177. var _46f=MochiKit.Style.computedStyle.apply(d,arguments);
  4178. if(!_46f){
  4179. continue;
  4180. }
  4181. var _470=cls.fromString(_46f);
  4182. if(!_470){
  4183. break;
  4184. }
  4185. if(_470.asRGB().a>0){
  4186. return _470;
  4187. }
  4188. }
  4189. return null;
  4190. },fromBackground:function(elem){
  4191. var cls=MochiKit.Color.Color;
  4192. return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor();
  4193. },fromText:function(elem){
  4194. var cls=MochiKit.Color.Color;
  4195. return cls.fromComputedStyle(elem,"color","color")||cls.blackColor();
  4196. },namedColors:function(){
  4197. return MochiKit.Base.clone(MochiKit.Color.Color._namedColors);
  4198. }});
  4199. MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_476){
  4200. v*=_476;
  4201. if(v<0){
  4202. return 0;
  4203. }else{
  4204. if(v>_476){
  4205. return _476;
  4206. }else{
  4207. return v;
  4208. }
  4209. }
  4210. },_hslValue:function(n1,n2,hue){
  4211. if(hue>6){
  4212. hue-=6;
  4213. }else{
  4214. if(hue<0){
  4215. hue+=6;
  4216. }
  4217. }
  4218. var val;
  4219. if(hue<1){
  4220. val=n1+(n2-n1)*hue;
  4221. }else{
  4222. if(hue<3){
  4223. val=n2;
  4224. }else{
  4225. if(hue<4){
  4226. val=n1+(n2-n1)*(4-hue);
  4227. }else{
  4228. val=n1;
  4229. }
  4230. }
  4231. }
  4232. return val;
  4233. },hsvToRGB:function(hue,_47c,_47d,_47e){
  4234. if(arguments.length==1){
  4235. var hsv=hue;
  4236. hue=hsv.h;
  4237. _47c=hsv.s;
  4238. _47d=hsv.v;
  4239. _47e=hsv.a;
  4240. }
  4241. var red;
  4242. var _481;
  4243. var blue;
  4244. if(_47c===0){
  4245. red=0;
  4246. _481=0;
  4247. blue=0;
  4248. }else{
  4249. var i=Math.floor(hue*6);
  4250. var f=(hue*6)-i;
  4251. var p=_47d*(1-_47c);
  4252. var q=_47d*(1-(_47c*f));
  4253. var t=_47d*(1-(_47c*(1-f)));
  4254. switch(i){
  4255. case 1:
  4256. red=q;
  4257. _481=_47d;
  4258. blue=p;
  4259. break;
  4260. case 2:
  4261. red=p;
  4262. _481=_47d;
  4263. blue=t;
  4264. break;
  4265. case 3:
  4266. red=p;
  4267. _481=q;
  4268. blue=_47d;
  4269. break;
  4270. case 4:
  4271. red=t;
  4272. _481=p;
  4273. blue=_47d;
  4274. break;
  4275. case 5:
  4276. red=_47d;
  4277. _481=p;
  4278. blue=q;
  4279. break;
  4280. case 6:
  4281. case 0:
  4282. red=_47d;
  4283. _481=t;
  4284. blue=p;
  4285. break;
  4286. }
  4287. }
  4288. return {r:red,g:_481,b:blue,a:_47e};
  4289. },hslToRGB:function(hue,_489,_48a,_48b){
  4290. if(arguments.length==1){
  4291. var hsl=hue;
  4292. hue=hsl.h;
  4293. _489=hsl.s;
  4294. _48a=hsl.l;
  4295. _48b=hsl.a;
  4296. }
  4297. var red;
  4298. var _48e;
  4299. var blue;
  4300. if(_489===0){
  4301. red=_48a;
  4302. _48e=_48a;
  4303. blue=_48a;
  4304. }else{
  4305. var m2;
  4306. if(_48a<=0.5){
  4307. m2=_48a*(1+_489);
  4308. }else{
  4309. m2=_48a+_489-(_48a*_489);
  4310. }
  4311. var m1=(2*_48a)-m2;
  4312. var f=MochiKit.Color._hslValue;
  4313. var h6=hue*6;
  4314. red=f(m1,m2,h6+2);
  4315. _48e=f(m1,m2,h6);
  4316. blue=f(m1,m2,h6-2);
  4317. }
  4318. return {r:red,g:_48e,b:blue,a:_48b};
  4319. },rgbToHSV:function(red,_495,blue,_497){
  4320. if(arguments.length==1){
  4321. var rgb=red;
  4322. red=rgb.r;
  4323. _495=rgb.g;
  4324. blue=rgb.b;
  4325. _497=rgb.a;
  4326. }
  4327. var max=Math.max(Math.max(red,_495),blue);
  4328. var min=Math.min(Math.min(red,_495),blue);
  4329. var hue;
  4330. var _49c;
  4331. var _49d=max;
  4332. if(min==max){
  4333. hue=0;
  4334. _49c=0;
  4335. }else{
  4336. var _49e=(max-min);
  4337. _49c=_49e/max;
  4338. if(red==max){
  4339. hue=(_495-blue)/_49e;
  4340. }else{
  4341. if(_495==max){
  4342. hue=2+((blue-red)/_49e);
  4343. }else{
  4344. hue=4+((red-_495)/_49e);
  4345. }
  4346. }
  4347. hue/=6;
  4348. if(hue<0){
  4349. hue+=1;
  4350. }
  4351. if(hue>1){
  4352. hue-=1;
  4353. }
  4354. }
  4355. return {h:hue,s:_49c,v:_49d,a:_497};
  4356. },rgbToHSL:function(red,_4a0,blue,_4a2){
  4357. if(arguments.length==1){
  4358. var rgb=red;
  4359. red=rgb.r;
  4360. _4a0=rgb.g;
  4361. blue=rgb.b;
  4362. _4a2=rgb.a;
  4363. }
  4364. var max=Math.max(red,Math.max(_4a0,blue));
  4365. var min=Math.min(red,Math.min(_4a0,blue));
  4366. var hue;
  4367. var _4a7;
  4368. var _4a8=(max+min)/2;
  4369. var _4a9=max-min;
  4370. if(_4a9===0){
  4371. hue=0;
  4372. _4a7=0;
  4373. }else{
  4374. if(_4a8<=0.5){
  4375. _4a7=_4a9/(max+min);
  4376. }else{
  4377. _4a7=_4a9/(2-max-min);
  4378. }
  4379. if(red==max){
  4380. hue=(_4a0-blue)/_4a9;
  4381. }else{
  4382. if(_4a0==max){
  4383. hue=2+((blue-red)/_4a9);
  4384. }else{
  4385. hue=4+((red-_4a0)/_4a9);
  4386. }
  4387. }
  4388. hue/=6;
  4389. if(hue<0){
  4390. hue+=1;
  4391. }
  4392. if(hue>1){
  4393. hue-=1;
  4394. }
  4395. }
  4396. return {h:hue,s:_4a7,l:_4a8,a:_4a2};
  4397. },toColorPart:function(num){
  4398. num=Math.round(num);
  4399. var _4ab=num.toString(16);
  4400. if(num<16){
  4401. return "0"+_4ab;
  4402. }
  4403. return _4ab;
  4404. },__new__:function(){
  4405. var m=MochiKit.Base;
  4406. this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);
  4407. this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]);
  4408. var _4ad=1/3;
  4409. 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]};
  4410. var _4af=function(name,r,g,b,a){
  4411. var rval=this.fromRGB(r,g,b,a);
  4412. this[name]=function(){
  4413. return rval;
  4414. };
  4415. return rval;
  4416. };
  4417. for(var k in _4ae){
  4418. var name=k+"Color";
  4419. var _4b8=m.concat([_4af,this.Color,name],_4ae[k]);
  4420. this.Color[name]=m.bind.apply(null,_4b8);
  4421. }
  4422. var _4b9=function(){
  4423. for(var i=0;i<arguments.length;i++){
  4424. if(!(arguments[i] instanceof Color)){
  4425. return false;
  4426. }
  4427. }
  4428. return true;
  4429. };
  4430. var _4bb=function(a,b){
  4431. return a.compareRGB(b);
  4432. };
  4433. m.nameFunctions(this);
  4434. m.registerComparator(this.Color.NAME,_4b9,_4bb);
  4435. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  4436. }});
  4437. MochiKit.Color.EXPORT=["Color"];
  4438. MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];
  4439. MochiKit.Color.__new__();
  4440. MochiKit.Base._exportSymbols(this,MochiKit.Color);
  4441. 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"};
  4442. if(typeof (dojo)!="undefined"){
  4443. dojo.provide("MochiKit.Signal");
  4444. dojo.require("MochiKit.Base");
  4445. dojo.require("MochiKit.DOM");
  4446. dojo.require("MochiKit.Style");
  4447. }
  4448. if(typeof (JSAN)!="undefined"){
  4449. JSAN.use("MochiKit.Base",[]);
  4450. JSAN.use("MochiKit.DOM",[]);
  4451. JSAN.use("MochiKit.Style",[]);
  4452. }
  4453. try{
  4454. if(typeof (MochiKit.Base)=="undefined"){
  4455. throw "";
  4456. }
  4457. }
  4458. catch(e){
  4459. throw "MochiKit.Signal depends on MochiKit.Base!";
  4460. }
  4461. try{
  4462. if(typeof (MochiKit.DOM)=="undefined"){
  4463. throw "";
  4464. }
  4465. }
  4466. catch(e){
  4467. throw "MochiKit.Signal depends on MochiKit.DOM!";
  4468. }
  4469. try{
  4470. if(typeof (MochiKit.Style)=="undefined"){
  4471. throw "";
  4472. }
  4473. }
  4474. catch(e){
  4475. throw "MochiKit.Signal depends on MochiKit.Style!";
  4476. }
  4477. if(typeof (MochiKit.Signal)=="undefined"){
  4478. MochiKit.Signal={};
  4479. }
  4480. MochiKit.Signal.NAME="MochiKit.Signal";
  4481. MochiKit.Signal.VERSION="1.4";
  4482. MochiKit.Signal._observers=[];
  4483. MochiKit.Signal.Event=function(src,e){
  4484. this._event=e||window.event;
  4485. this._src=src;
  4486. };
  4487. MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){
  4488. var repr=MochiKit.Base.repr;
  4489. 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)+"}";
  4490. if(this.type()&&this.type().indexOf("key")===0){
  4491. str+=", key(): {code: "+repr(this.key().code)+", string: "+repr(this.key().string)+"}";
  4492. }
  4493. if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
  4494. str+=", mouse(): {page: "+repr(this.mouse().page)+", client: "+repr(this.mouse().client);
  4495. if(this.type()!="mousemove"){
  4496. str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}}";
  4497. }else{
  4498. str+="}";
  4499. }
  4500. }
  4501. if(this.type()=="mouseover"||this.type()=="mouseout"){
  4502. str+=", relatedTarget(): "+repr(this.relatedTarget());
  4503. }
  4504. str+="}";
  4505. return str;
  4506. },toString:function(){
  4507. return this.__repr__();
  4508. },src:function(){
  4509. return this._src;
  4510. },event:function(){
  4511. return this._event;
  4512. },type:function(){
  4513. return this._event.type||undefined;
  4514. },target:function(){
  4515. return this._event.target||this._event.srcElement;
  4516. },_relatedTarget:null,relatedTarget:function(){
  4517. if(this._relatedTarget!==null){
  4518. return this._relatedTarget;
  4519. }
  4520. var elem=null;
  4521. if(this.type()=="mouseover"){
  4522. elem=(this._event.relatedTarget||this._event.fromElement);
  4523. }else{
  4524. if(this.type()=="mouseout"){
  4525. elem=(this._event.relatedTarget||this._event.toElement);
  4526. }
  4527. }
  4528. if(elem!==null){
  4529. this._relatedTarget=elem;
  4530. return elem;
  4531. }
  4532. return undefined;
  4533. },_modifier:null,modifier:function(){
  4534. if(this._modifier!==null){
  4535. return this._modifier;
  4536. }
  4537. var m={};
  4538. m.alt=this._event.altKey;
  4539. m.ctrl=this._event.ctrlKey;
  4540. m.meta=this._event.metaKey||false;
  4541. m.shift=this._event.shiftKey;
  4542. m.any=m.alt||m.ctrl||m.shift||m.meta;
  4543. this._modifier=m;
  4544. return m;
  4545. },_key:null,key:function(){
  4546. if(this._key!==null){
  4547. return this._key;
  4548. }
  4549. var k={};
  4550. if(this.type()&&this.type().indexOf("key")===0){
  4551. if(this.type()=="keydown"||this.type()=="keyup"){
  4552. k.code=this._event.keyCode;
  4553. k.string=(MochiKit.Signal._specialKeys[k.code]||"KEY_UNKNOWN");
  4554. this._key=k;
  4555. return k;
  4556. }else{
  4557. if(this.type()=="keypress"){
  4558. k.code=0;
  4559. k.string="";
  4560. if(typeof (this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){
  4561. k.code=this._event.charCode;
  4562. k.string=String.fromCharCode(k.code);
  4563. }else{
  4564. if(this._event.keyCode&&typeof (this._event.charCode)=="undefined"){
  4565. k.code=this._event.keyCode;
  4566. k.string=String.fromCharCode(k.code);
  4567. }
  4568. }
  4569. this._key=k;
  4570. return k;
  4571. }
  4572. }
  4573. }
  4574. return undefined;
  4575. },_mouse:null,mouse:function(){
  4576. if(this._mouse!==null){
  4577. return this._mouse;
  4578. }
  4579. var m={};
  4580. var e=this._event;
  4581. if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
  4582. m.client=new MochiKit.Style.Coordinates(0,0);
  4583. if(e.clientX||e.clientY){
  4584. m.client.x=(!e.clientX||e.clientX<0)?0:e.clientX;
  4585. m.client.y=(!e.clientY||e.clientY<0)?0:e.clientY;
  4586. }
  4587. m.page=new MochiKit.Style.Coordinates(0,0);
  4588. if(e.pageX||e.pageY){
  4589. m.page.x=(!e.pageX||e.pageX<0)?0:e.pageX;
  4590. m.page.y=(!e.pageY||e.pageY<0)?0:e.pageY;
  4591. }else{
  4592. var de=MochiKit.DOM._document.documentElement;
  4593. var b=MochiKit.DOM._document.body;
  4594. m.page.x=e.clientX+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
  4595. m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
  4596. }
  4597. if(this.type()!="mousemove"){
  4598. m.button={};
  4599. m.button.left=false;
  4600. m.button.right=false;
  4601. m.button.middle=false;
  4602. if(e.which){
  4603. m.button.left=(e.which==1);
  4604. m.button.middle=(e.which==2);
  4605. m.button.right=(e.which==3);
  4606. }else{
  4607. m.button.left=!!(e.button&1);
  4608. m.button.right=!!(e.button&2);
  4609. m.button.middle=!!(e.button&4);
  4610. }
  4611. }
  4612. this._mouse=m;
  4613. return m;
  4614. }
  4615. return undefined;
  4616. },stop:function(){
  4617. this.stopPropagation();
  4618. this.preventDefault();
  4619. },stopPropagation:function(){
  4620. if(this._event.stopPropagation){
  4621. this._event.stopPropagation();
  4622. }else{
  4623. this._event.cancelBubble=true;
  4624. }
  4625. },preventDefault:function(){
  4626. if(this._event.preventDefault){
  4627. this._event.preventDefault();
  4628. }else{
  4629. if(this._confirmUnload===null){
  4630. this._event.returnValue=false;
  4631. }
  4632. }
  4633. },_confirmUnload:null,confirmUnload:function(msg){
  4634. if(this.type()=="beforeunload"){
  4635. this._confirmUnload=msg;
  4636. this._event.returnValue=msg;
  4637. }
  4638. }});
  4639. 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"};
  4640. (function(){
  4641. var _4ca=MochiKit.Signal._specialMacKeys;
  4642. for(i=63236;i<=63242;i++){
  4643. _4ca[i]="KEY_F"+(i-63236+1);
  4644. }
  4645. })();
  4646. 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"};
  4647. (function(){
  4648. var _4cb=MochiKit.Signal._specialKeys;
  4649. for(var i=48;i<=57;i++){
  4650. _4cb[i]="KEY_"+(i-48);
  4651. }
  4652. for(i=65;i<=90;i++){
  4653. _4cb[i]="KEY_"+String.fromCharCode(i);
  4654. }
  4655. for(i=96;i<=105;i++){
  4656. _4cb[i]="KEY_NUM_PAD_"+(i-96);
  4657. }
  4658. for(i=112;i<=123;i++){
  4659. _4cb[i]="KEY_F"+(i-112+1);
  4660. }
  4661. })();
  4662. MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){
  4663. return "["+this.NAME+" "+this.VERSION+"]";
  4664. },toString:function(){
  4665. return this.__repr__();
  4666. },_unloadCache:function(){
  4667. var self=MochiKit.Signal;
  4668. var _4ce=self._observers;
  4669. for(var i=0;i<_4ce.length;i++){
  4670. self._disconnect(_4ce[i]);
  4671. }
  4672. delete self._observers;
  4673. try{
  4674. window.onload=undefined;
  4675. }
  4676. catch(e){
  4677. }
  4678. try{
  4679. window.onunload=undefined;
  4680. }
  4681. catch(e){
  4682. }
  4683. },_listener:function(src,func,obj,_4d3){
  4684. var self=MochiKit.Signal;
  4685. var E=self.Event;
  4686. if(!_4d3){
  4687. return MochiKit.Base.bind(func,obj);
  4688. }
  4689. obj=obj||src;
  4690. if(typeof (func)=="string"){
  4691. return function(_4d6){
  4692. obj[func].apply(obj,[new E(src,_4d6)]);
  4693. };
  4694. }else{
  4695. return function(_4d7){
  4696. func.apply(obj,[new E(src,_4d7)]);
  4697. };
  4698. }
  4699. },_browserAlreadyHasMouseEnterAndLeave:function(){
  4700. return /MSIE/.test(navigator.userAgent);
  4701. },_mouseEnterListener:function(src,sig,func,obj){
  4702. var E=MochiKit.Signal.Event;
  4703. return function(_4dd){
  4704. var e=new E(src,_4dd);
  4705. try{
  4706. e.relatedTarget().nodeName;
  4707. }
  4708. catch(err){
  4709. return;
  4710. }
  4711. e.stop();
  4712. if(MochiKit.DOM.isChildNode(e.relatedTarget(),src)){
  4713. return;
  4714. }
  4715. e.type=function(){
  4716. return sig;
  4717. };
  4718. if(typeof (func)=="string"){
  4719. return obj[func].apply(obj,[e]);
  4720. }else{
  4721. return func.apply(obj,[e]);
  4722. }
  4723. };
  4724. },_getDestPair:function(_4df,_4e0){
  4725. var obj=null;
  4726. var func=null;
  4727. if(typeof (_4e0)!="undefined"){
  4728. obj=_4df;
  4729. func=_4e0;
  4730. if(typeof (_4e0)=="string"){
  4731. if(typeof (_4df[_4e0])!="function"){
  4732. throw new Error("'funcOrStr' must be a function on 'objOrFunc'");
  4733. }
  4734. }else{
  4735. if(typeof (_4e0)!="function"){
  4736. throw new Error("'funcOrStr' must be a function or string");
  4737. }
  4738. }
  4739. }else{
  4740. if(typeof (_4df)!="function"){
  4741. throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");
  4742. }else{
  4743. func=_4df;
  4744. }
  4745. }
  4746. return [obj,func];
  4747. },connect:function(src,sig,_4e5,_4e6){
  4748. src=MochiKit.DOM.getElement(src);
  4749. var self=MochiKit.Signal;
  4750. if(typeof (sig)!="string"){
  4751. throw new Error("'sig' must be a string");
  4752. }
  4753. var _4e8=self._getDestPair(_4e5,_4e6);
  4754. var obj=_4e8[0];
  4755. var func=_4e8[1];
  4756. if(typeof (obj)=="undefined"||obj===null){
  4757. obj=src;
  4758. }
  4759. var _4eb=!!(src.addEventListener||src.attachEvent);
  4760. if(_4eb&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){
  4761. var _4ec=self._mouseEnterListener(src,sig.substr(2),func,obj);
  4762. if(sig==="onmouseenter"){
  4763. sig="onmouseover";
  4764. }else{
  4765. sig="onmouseout";
  4766. }
  4767. }else{
  4768. var _4ec=self._listener(src,func,obj,_4eb);
  4769. }
  4770. if(src.addEventListener){
  4771. src.addEventListener(sig.substr(2),_4ec,false);
  4772. }else{
  4773. if(src.attachEvent){
  4774. src.attachEvent(sig,_4ec);
  4775. }
  4776. }
  4777. var _4ed=[src,sig,_4ec,_4eb,_4e5,_4e6,true];
  4778. self._observers.push(_4ed);
  4779. if(!_4eb&&typeof (src.__connect__)=="function"){
  4780. var args=MochiKit.Base.extend([_4ed],arguments,1);
  4781. src.__connect__.apply(src,args);
  4782. }
  4783. return _4ed;
  4784. },_disconnect:function(_4ef){
  4785. if(!_4ef[6]){
  4786. return;
  4787. }
  4788. _4ef[6]=false;
  4789. if(!_4ef[3]){
  4790. return;
  4791. }
  4792. var src=_4ef[0];
  4793. var sig=_4ef[1];
  4794. var _4f2=_4ef[2];
  4795. if(src.removeEventListener){
  4796. src.removeEventListener(sig.substr(2),_4f2,false);
  4797. }else{
  4798. if(src.detachEvent){
  4799. src.detachEvent(sig,_4f2);
  4800. }else{
  4801. throw new Error("'src' must be a DOM element");
  4802. }
  4803. }
  4804. },disconnect:function(_4f3){
  4805. var self=MochiKit.Signal;
  4806. var _4f5=self._observers;
  4807. var m=MochiKit.Base;
  4808. if(arguments.length>1){
  4809. var src=MochiKit.DOM.getElement(arguments[0]);
  4810. var sig=arguments[1];
  4811. var obj=arguments[2];
  4812. var func=arguments[3];
  4813. for(var i=_4f5.length-1;i>=0;i--){
  4814. var o=_4f5[i];
  4815. if(o[0]===src&&o[1]===sig&&o[4]===obj&&o[5]===func){
  4816. self._disconnect(o);
  4817. if(!self._lock){
  4818. _4f5.splice(i,1);
  4819. }else{
  4820. self._dirty=true;
  4821. }
  4822. return true;
  4823. }
  4824. }
  4825. }else{
  4826. var idx=m.findIdentical(_4f5,_4f3);
  4827. if(idx>=0){
  4828. self._disconnect(_4f3);
  4829. if(!self._lock){
  4830. _4f5.splice(idx,1);
  4831. }else{
  4832. self._dirty=true;
  4833. }
  4834. return true;
  4835. }
  4836. }
  4837. return false;
  4838. },disconnectAllTo:function(_4fe,_4ff){
  4839. var self=MochiKit.Signal;
  4840. var _501=self._observers;
  4841. var _502=self._disconnect;
  4842. var _503=self._lock;
  4843. var _504=self._dirty;
  4844. if(typeof (_4ff)==="undefined"){
  4845. _4ff=null;
  4846. }
  4847. for(var i=_501.length-1;i>=0;i--){
  4848. var _506=_501[i];
  4849. if(_506[4]===_4fe&&(_4ff===null||_506[5]===_4ff)){
  4850. _502(_506);
  4851. if(_503){
  4852. _504=true;
  4853. }else{
  4854. _501.splice(i,1);
  4855. }
  4856. }
  4857. }
  4858. self._dirty=_504;
  4859. },disconnectAll:function(src,sig){
  4860. src=MochiKit.DOM.getElement(src);
  4861. var m=MochiKit.Base;
  4862. var _50a=m.flattenArguments(m.extend(null,arguments,1));
  4863. var self=MochiKit.Signal;
  4864. var _50c=self._disconnect;
  4865. var _50d=self._observers;
  4866. var i,_50f;
  4867. var _510=self._lock;
  4868. var _511=self._dirty;
  4869. if(_50a.length===0){
  4870. for(i=_50d.length-1;i>=0;i--){
  4871. _50f=_50d[i];
  4872. if(_50f[0]===src){
  4873. _50c(_50f);
  4874. if(!_510){
  4875. _50d.splice(i,1);
  4876. }else{
  4877. _511=true;
  4878. }
  4879. }
  4880. }
  4881. }else{
  4882. var sigs={};
  4883. for(i=0;i<_50a.length;i++){
  4884. sigs[_50a[i]]=true;
  4885. }
  4886. for(i=_50d.length-1;i>=0;i--){
  4887. _50f=_50d[i];
  4888. if(_50f[0]===src&&_50f[1] in sigs){
  4889. _50c(_50f);
  4890. if(!_510){
  4891. _50d.splice(i,1);
  4892. }else{
  4893. _511=true;
  4894. }
  4895. }
  4896. }
  4897. }
  4898. self._dirty=_511;
  4899. },signal:function(src,sig){
  4900. var self=MochiKit.Signal;
  4901. var _516=self._observers;
  4902. src=MochiKit.DOM.getElement(src);
  4903. var args=MochiKit.Base.extend(null,arguments,2);
  4904. var _518=[];
  4905. self._lock=true;
  4906. for(var i=0;i<_516.length;i++){
  4907. var _51a=_516[i];
  4908. if(_51a[0]===src&&_51a[1]===sig){
  4909. try{
  4910. _51a[2].apply(src,args);
  4911. }
  4912. catch(e){
  4913. _518.push(e);
  4914. }
  4915. }
  4916. }
  4917. self._lock=false;
  4918. if(self._dirty){
  4919. self._dirty=false;
  4920. for(var i=_516.length-1;i>=0;i--){
  4921. if(!_516[i][6]){
  4922. _516.splice(i,1);
  4923. }
  4924. }
  4925. }
  4926. if(_518.length==1){
  4927. throw _518[0];
  4928. }else{
  4929. if(_518.length>1){
  4930. var e=new Error("Multiple errors thrown in handling 'sig', see errors property");
  4931. e.errors=_518;
  4932. throw e;
  4933. }
  4934. }
  4935. }});
  4936. MochiKit.Signal.EXPORT_OK=[];
  4937. MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];
  4938. MochiKit.Signal.__new__=function(win){
  4939. var m=MochiKit.Base;
  4940. this._document=document;
  4941. this._window=win;
  4942. this._lock=false;
  4943. this._dirty=false;
  4944. try{
  4945. this.connect(window,"onunload",this._unloadCache);
  4946. }
  4947. catch(e){
  4948. }
  4949. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  4950. m.nameFunctions(this);
  4951. };
  4952. MochiKit.Signal.__new__(this);
  4953. if(MochiKit.__export__){
  4954. connect=MochiKit.Signal.connect;
  4955. disconnect=MochiKit.Signal.disconnect;
  4956. disconnectAll=MochiKit.Signal.disconnectAll;
  4957. signal=MochiKit.Signal.signal;
  4958. }
  4959. MochiKit.Base._exportSymbols(this,MochiKit.Signal);
  4960. if(typeof (dojo)!="undefined"){
  4961. dojo.provide("MochiKit.Visual");
  4962. dojo.require("MochiKit.Base");
  4963. dojo.require("MochiKit.DOM");
  4964. dojo.require("MochiKit.Style");
  4965. dojo.require("MochiKit.Color");
  4966. }
  4967. if(typeof (JSAN)!="undefined"){
  4968. JSAN.use("MochiKit.Base",[]);
  4969. JSAN.use("MochiKit.DOM",[]);
  4970. JSAN.use("MochiKit.Style",[]);
  4971. JSAN.use("MochiKit.Color",[]);
  4972. }
  4973. try{
  4974. if(typeof (MochiKit.Base)==="undefined"||typeof (MochiKit.DOM)==="undefined"||typeof (MochiKit.Style)==="undefined"||typeof (MochiKit.Color)==="undefined"){
  4975. throw "";
  4976. }
  4977. }
  4978. catch(e){
  4979. throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style and MochiKit.Color!";
  4980. }
  4981. if(typeof (MochiKit.Visual)=="undefined"){
  4982. MochiKit.Visual={};
  4983. }
  4984. MochiKit.Visual.NAME="MochiKit.Visual";
  4985. MochiKit.Visual.VERSION="1.4";
  4986. MochiKit.Visual.__repr__=function(){
  4987. return "["+this.NAME+" "+this.VERSION+"]";
  4988. };
  4989. MochiKit.Visual.toString=function(){
  4990. return this.__repr__();
  4991. };
  4992. MochiKit.Visual._RoundCorners=function(e,_51f){
  4993. e=MochiKit.DOM.getElement(e);
  4994. this._setOptions(_51f);
  4995. if(this.options.__unstable__wrapElement){
  4996. e=this._doWrap(e);
  4997. }
  4998. var _520=this.options.color;
  4999. var C=MochiKit.Color.Color;
  5000. if(this.options.color==="fromElement"){
  5001. _520=C.fromBackground(e);
  5002. }else{
  5003. if(!(_520 instanceof C)){
  5004. _520=C.fromString(_520);
  5005. }
  5006. }
  5007. this.isTransparent=(_520.asRGB().a<=0);
  5008. var _522=this.options.bgColor;
  5009. if(this.options.bgColor==="fromParent"){
  5010. _522=C.fromBackground(e.offsetParent);
  5011. }else{
  5012. if(!(_522 instanceof C)){
  5013. _522=C.fromString(_522);
  5014. }
  5015. }
  5016. this._roundCornersImpl(e,_520,_522);
  5017. };
  5018. MochiKit.Visual._RoundCorners.prototype={_doWrap:function(e){
  5019. var _524=e.parentNode;
  5020. var doc=MochiKit.DOM.currentDocument();
  5021. if(typeof (doc.defaultView)==="undefined"||doc.defaultView===null){
  5022. return e;
  5023. }
  5024. var _526=doc.defaultView.getComputedStyle(e,null);
  5025. if(typeof (_526)==="undefined"||_526===null){
  5026. return e;
  5027. }
  5028. 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"}});
  5029. _527.innerHTML=e.innerHTML;
  5030. e.innerHTML="";
  5031. e.appendChild(_527);
  5032. return e;
  5033. },_roundCornersImpl:function(e,_529,_52a){
  5034. if(this.options.border){
  5035. this._renderBorder(e,_52a);
  5036. }
  5037. if(this._isTopRounded()){
  5038. this._roundTopCorners(e,_529,_52a);
  5039. }
  5040. if(this._isBottomRounded()){
  5041. this._roundBottomCorners(e,_529,_52a);
  5042. }
  5043. },_renderBorder:function(el,_52c){
  5044. var _52d="1px solid "+this._borderColor(_52c);
  5045. var _52e="border-left: "+_52d;
  5046. var _52f="border-right: "+_52d;
  5047. var _530="style='"+_52e+";"+_52f+"'";
  5048. el.innerHTML="<div "+_530+">"+el.innerHTML+"</div>";
  5049. },_roundTopCorners:function(el,_532,_533){
  5050. var _534=this._createCorner(_533);
  5051. for(var i=0;i<this.options.numSlices;i++){
  5052. _534.appendChild(this._createCornerSlice(_532,_533,i,"top"));
  5053. }
  5054. el.style.paddingTop=0;
  5055. el.insertBefore(_534,el.firstChild);
  5056. },_roundBottomCorners:function(el,_537,_538){
  5057. var _539=this._createCorner(_538);
  5058. for(var i=(this.options.numSlices-1);i>=0;i--){
  5059. _539.appendChild(this._createCornerSlice(_537,_538,i,"bottom"));
  5060. }
  5061. el.style.paddingBottom=0;
  5062. el.appendChild(_539);
  5063. },_createCorner:function(_53b){
  5064. var dom=MochiKit.DOM;
  5065. return dom.DIV({style:{backgroundColor:_53b.toString()}});
  5066. },_createCornerSlice:function(_53d,_53e,n,_540){
  5067. var _541=MochiKit.DOM.SPAN();
  5068. var _542=_541.style;
  5069. _542.backgroundColor=_53d.toString();
  5070. _542.display="block";
  5071. _542.height="1px";
  5072. _542.overflow="hidden";
  5073. _542.fontSize="1px";
  5074. var _543=this._borderColor(_53d,_53e);
  5075. if(this.options.border&&n===0){
  5076. _542.borderTopStyle="solid";
  5077. _542.borderTopWidth="1px";
  5078. _542.borderLeftWidth="0px";
  5079. _542.borderRightWidth="0px";
  5080. _542.borderBottomWidth="0px";
  5081. _542.height="0px";
  5082. _542.borderColor=_543.toString();
  5083. }else{
  5084. if(_543){
  5085. _542.borderColor=_543.toString();
  5086. _542.borderStyle="solid";
  5087. _542.borderWidth="0px 1px";
  5088. }
  5089. }
  5090. if(!this.options.compact&&(n==(this.options.numSlices-1))){
  5091. _542.height="2px";
  5092. }
  5093. this._setMargin(_541,n,_540);
  5094. this._setBorder(_541,n,_540);
  5095. return _541;
  5096. },_setOptions:function(_544){
  5097. this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false};
  5098. MochiKit.Base.update(this.options,_544);
  5099. this.options.numSlices=(this.options.compact?2:4);
  5100. },_whichSideTop:function(){
  5101. var _545=this.options.corners;
  5102. if(this._hasString(_545,"all","top")){
  5103. return "";
  5104. }
  5105. var _546=(_545.indexOf("tl")!=-1);
  5106. var _547=(_545.indexOf("tr")!=-1);
  5107. if(_546&&_547){
  5108. return "";
  5109. }
  5110. if(_546){
  5111. return "left";
  5112. }
  5113. if(_547){
  5114. return "right";
  5115. }
  5116. return "";
  5117. },_whichSideBottom:function(){
  5118. var _548=this.options.corners;
  5119. if(this._hasString(_548,"all","bottom")){
  5120. return "";
  5121. }
  5122. var _549=(_548.indexOf("bl")!=-1);
  5123. var _54a=(_548.indexOf("br")!=-1);
  5124. if(_549&&_54a){
  5125. return "";
  5126. }
  5127. if(_549){
  5128. return "left";
  5129. }
  5130. if(_54a){
  5131. return "right";
  5132. }
  5133. return "";
  5134. },_borderColor:function(_54b,_54c){
  5135. if(_54b=="transparent"){
  5136. return _54c;
  5137. }else{
  5138. if(this.options.border){
  5139. return this.options.border;
  5140. }else{
  5141. if(this.options.blend){
  5142. return _54c.blendedColor(_54b);
  5143. }
  5144. }
  5145. }
  5146. return "";
  5147. },_setMargin:function(el,n,_54f){
  5148. var _550=this._marginSize(n)+"px";
  5149. var _551=(_54f=="top"?this._whichSideTop():this._whichSideBottom());
  5150. var _552=el.style;
  5151. if(_551=="left"){
  5152. _552.marginLeft=_550;
  5153. _552.marginRight="0px";
  5154. }else{
  5155. if(_551=="right"){
  5156. _552.marginRight=_550;
  5157. _552.marginLeft="0px";
  5158. }else{
  5159. _552.marginLeft=_550;
  5160. _552.marginRight=_550;
  5161. }
  5162. }
  5163. },_setBorder:function(el,n,_555){
  5164. var _556=this._borderSize(n)+"px";
  5165. var _557=(_555=="top"?this._whichSideTop():this._whichSideBottom());
  5166. var _558=el.style;
  5167. if(_557=="left"){
  5168. _558.borderLeftWidth=_556;
  5169. _558.borderRightWidth="0px";
  5170. }else{
  5171. if(_557=="right"){
  5172. _558.borderRightWidth=_556;
  5173. _558.borderLeftWidth="0px";
  5174. }else{
  5175. _558.borderLeftWidth=_556;
  5176. _558.borderRightWidth=_556;
  5177. }
  5178. }
  5179. },_marginSize:function(n){
  5180. if(this.isTransparent){
  5181. return 0;
  5182. }
  5183. var o=this.options;
  5184. if(o.compact&&o.blend){
  5185. var _55b=[1,0];
  5186. return _55b[n];
  5187. }else{
  5188. if(o.compact){
  5189. var _55c=[2,1];
  5190. return _55c[n];
  5191. }else{
  5192. if(o.blend){
  5193. var _55d=[3,2,1,0];
  5194. return _55d[n];
  5195. }else{
  5196. var _55e=[5,3,2,1];
  5197. return _55e[n];
  5198. }
  5199. }
  5200. }
  5201. },_borderSize:function(n){
  5202. var o=this.options;
  5203. var _561;
  5204. if(o.compact&&(o.blend||this.isTransparent)){
  5205. return 1;
  5206. }else{
  5207. if(o.compact){
  5208. _561=[1,0];
  5209. }else{
  5210. if(o.blend){
  5211. _561=[2,1,1,1];
  5212. }else{
  5213. if(o.border){
  5214. _561=[0,2,0,0];
  5215. }else{
  5216. if(this.isTransparent){
  5217. _561=[5,3,2,1];
  5218. }else{
  5219. return 0;
  5220. }
  5221. }
  5222. }
  5223. }
  5224. }
  5225. return _561[n];
  5226. },_hasString:function(str){
  5227. for(var i=1;i<arguments.length;i++){
  5228. if(str.indexOf(arguments[i])!=-1){
  5229. return true;
  5230. }
  5231. }
  5232. return false;
  5233. },_isTopRounded:function(){
  5234. return this._hasString(this.options.corners,"all","top","tl","tr");
  5235. },_isBottomRounded:function(){
  5236. return this._hasString(this.options.corners,"all","bottom","bl","br");
  5237. },_hasSingleTextChild:function(el){
  5238. return (el.childNodes.length==1&&el.childNodes[0].nodeType==3);
  5239. }};
  5240. MochiKit.Visual.roundElement=function(e,_566){
  5241. new MochiKit.Visual._RoundCorners(e,_566);
  5242. };
  5243. MochiKit.Visual.roundClass=function(_567,_568,_569){
  5244. var _56a=MochiKit.DOM.getElementsByTagAndClassName(_567,_568);
  5245. for(var i=0;i<_56a.length;i++){
  5246. MochiKit.Visual.roundElement(_56a[i],_569);
  5247. }
  5248. };
  5249. MochiKit.Visual.tagifyText=function(_56c,_56d){
  5250. var _56d=_56d||"position:relative";
  5251. if(/MSIE/.test(navigator.userAgent)){
  5252. _56d+=";zoom:1";
  5253. }
  5254. _56c=MochiKit.DOM.getElement(_56c);
  5255. var ma=MochiKit.Base.map;
  5256. ma(function(_56f){
  5257. if(_56f.nodeType==3){
  5258. ma(function(_570){
  5259. _56c.insertBefore(MochiKit.DOM.SPAN({style:_56d},_570==" "?String.fromCharCode(160):_570),_56f);
  5260. },_56f.nodeValue.split(""));
  5261. MochiKit.DOM.removeElement(_56f);
  5262. }
  5263. },_56c.childNodes);
  5264. };
  5265. MochiKit.Visual.forceRerendering=function(_571){
  5266. try{
  5267. _571=MochiKit.DOM.getElement(_571);
  5268. var n=document.createTextNode(" ");
  5269. _571.appendChild(n);
  5270. _571.removeChild(n);
  5271. }
  5272. catch(e){
  5273. }
  5274. };
  5275. MochiKit.Visual.multiple=function(_573,_574,_575){
  5276. _575=MochiKit.Base.update({speed:0.1,delay:0},_575||{});
  5277. var _576=_575.delay;
  5278. var _577=0;
  5279. MochiKit.Base.map(function(_578){
  5280. _575.delay=_577*_575.speed+_576;
  5281. new _574(_578,_575);
  5282. _577+=1;
  5283. },_573);
  5284. };
  5285. MochiKit.Visual.PAIRS={"slide":["slideDown","slideUp"],"blind":["blindDown","blindUp"],"appear":["appear","fade"],"size":["grow","shrink"]};
  5286. MochiKit.Visual.toggle=function(_579,_57a,_57b){
  5287. _579=MochiKit.DOM.getElement(_579);
  5288. _57a=(_57a||"appear").toLowerCase();
  5289. _57b=MochiKit.Base.update({queue:{position:"end",scope:(_579.id||"global"),limit:1}},_57b||{});
  5290. var v=MochiKit.Visual;
  5291. v[_579.style.display!="none"?v.PAIRS[_57a][1]:v.PAIRS[_57a][0]](_579,_57b);
  5292. };
  5293. MochiKit.Visual.Transitions={};
  5294. MochiKit.Visual.Transitions.linear=function(pos){
  5295. return pos;
  5296. };
  5297. MochiKit.Visual.Transitions.sinoidal=function(pos){
  5298. return (-Math.cos(pos*Math.PI)/2)+0.5;
  5299. };
  5300. MochiKit.Visual.Transitions.reverse=function(pos){
  5301. return 1-pos;
  5302. };
  5303. MochiKit.Visual.Transitions.flicker=function(pos){
  5304. return ((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;
  5305. };
  5306. MochiKit.Visual.Transitions.wobble=function(pos){
  5307. return (-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;
  5308. };
  5309. MochiKit.Visual.Transitions.pulse=function(pos){
  5310. return (Math.floor(pos*10)%2==0?(pos*10-Math.floor(pos*10)):1-(pos*10-Math.floor(pos*10)));
  5311. };
  5312. MochiKit.Visual.Transitions.none=function(pos){
  5313. return 0;
  5314. };
  5315. MochiKit.Visual.Transitions.full=function(pos){
  5316. return 1;
  5317. };
  5318. MochiKit.Visual.ScopedQueue=function(){
  5319. this.__init__();
  5320. };
  5321. MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype,{__init__:function(){
  5322. this.effects=[];
  5323. this.interval=null;
  5324. },add:function(_585){
  5325. var _586=new Date().getTime();
  5326. var _587=(typeof (_585.options.queue)=="string")?_585.options.queue:_585.options.queue.position;
  5327. var ma=MochiKit.Base.map;
  5328. switch(_587){
  5329. case "front":
  5330. ma(function(e){
  5331. if(e.state=="idle"){
  5332. e.startOn+=_585.finishOn;
  5333. e.finishOn+=_585.finishOn;
  5334. }
  5335. },this.effects);
  5336. break;
  5337. case "end":
  5338. var _58a;
  5339. ma(function(e){
  5340. var i=e.finishOn;
  5341. if(i>=(_58a||i)){
  5342. _58a=i;
  5343. }
  5344. },this.effects);
  5345. _586=_58a||_586;
  5346. break;
  5347. case "break":
  5348. ma(function(e){
  5349. e.finalize();
  5350. },this.effects);
  5351. break;
  5352. }
  5353. _585.startOn+=_586;
  5354. _585.finishOn+=_586;
  5355. if(!_585.options.queue.limit||this.effects.length<_585.options.queue.limit){
  5356. this.effects.push(_585);
  5357. }
  5358. if(!this.interval){
  5359. this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40);
  5360. }
  5361. },startLoop:function(func,_58f){
  5362. return setInterval(func,_58f);
  5363. },remove:function(_590){
  5364. this.effects=MochiKit.Base.filter(function(e){
  5365. return e!=_590;
  5366. },this.effects);
  5367. if(this.effects.length==0){
  5368. this.stopLoop(this.interval);
  5369. this.interval=null;
  5370. }
  5371. },stopLoop:function(_592){
  5372. clearInterval(_592);
  5373. },loop:function(){
  5374. var _593=new Date().getTime();
  5375. MochiKit.Base.map(function(_594){
  5376. _594.loop(_593);
  5377. },this.effects);
  5378. }});
  5379. MochiKit.Visual.Queues={instances:{},get:function(_595){
  5380. if(typeof (_595)!="string"){
  5381. return _595;
  5382. }
  5383. if(!this.instances[_595]){
  5384. this.instances[_595]=new MochiKit.Visual.ScopedQueue();
  5385. }
  5386. return this.instances[_595];
  5387. }};
  5388. MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global");
  5389. MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"};
  5390. MochiKit.Visual.Base=function(){
  5391. };
  5392. MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(_596){
  5393. var v=MochiKit.Visual;
  5394. this.options=MochiKit.Base.setdefault(_596||{},v.DefaultOptions);
  5395. this.currentFrame=0;
  5396. this.state="idle";
  5397. this.startOn=this.options.delay*1000;
  5398. this.finishOn=this.startOn+(this.options.duration*1000);
  5399. this.event("beforeStart");
  5400. if(!this.options.sync){
  5401. v.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this);
  5402. }
  5403. },loop:function(_598){
  5404. if(_598>=this.startOn){
  5405. if(_598>=this.finishOn){
  5406. return this.finalize();
  5407. }
  5408. var pos=(_598-this.startOn)/(this.finishOn-this.startOn);
  5409. var _59a=Math.round(pos*this.options.fps*this.options.duration);
  5410. if(_59a>this.currentFrame){
  5411. this.render(pos);
  5412. this.currentFrame=_59a;
  5413. }
  5414. }
  5415. },render:function(pos){
  5416. if(this.state=="idle"){
  5417. this.state="running";
  5418. this.event("beforeSetup");
  5419. this.setup();
  5420. this.event("afterSetup");
  5421. }
  5422. if(this.state=="running"){
  5423. if(this.options.transition){
  5424. pos=this.options.transition(pos);
  5425. }
  5426. pos*=(this.options.to-this.options.from);
  5427. pos+=this.options.from;
  5428. this.event("beforeUpdate");
  5429. this.update(pos);
  5430. this.event("afterUpdate");
  5431. }
  5432. },cancel:function(){
  5433. if(!this.options.sync){
  5434. MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this);
  5435. }
  5436. this.state="finished";
  5437. },finalize:function(){
  5438. this.render(1);
  5439. this.cancel();
  5440. this.event("beforeFinish");
  5441. this.finish();
  5442. this.event("afterFinish");
  5443. },setup:function(){
  5444. },finish:function(){
  5445. },update:function(_59c){
  5446. },event:function(_59d){
  5447. if(this.options[_59d+"Internal"]){
  5448. this.options[_59d+"Internal"](this);
  5449. }
  5450. if(this.options[_59d]){
  5451. this.options[_59d](this);
  5452. }
  5453. },repr:function(){
  5454. return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]";
  5455. }};
  5456. MochiKit.Visual.Parallel=function(_59e,_59f){
  5457. this.__init__(_59e,_59f);
  5458. };
  5459. MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base();
  5460. MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__init__:function(_5a0,_5a1){
  5461. this.effects=_5a0||[];
  5462. this.start(_5a1);
  5463. },update:function(_5a2){
  5464. MochiKit.Base.map(function(_5a3){
  5465. _5a3.render(_5a2);
  5466. },this.effects);
  5467. },finish:function(){
  5468. MochiKit.Base.map(function(_5a4){
  5469. _5a4.finalize();
  5470. },this.effects);
  5471. }});
  5472. MochiKit.Visual.Opacity=function(_5a5,_5a6){
  5473. this.__init__(_5a5,_5a6);
  5474. };
  5475. MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base();
  5476. MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__init__:function(_5a7,_5a8){
  5477. var b=MochiKit.Base;
  5478. var s=MochiKit.Style;
  5479. this.element=MochiKit.DOM.getElement(_5a7);
  5480. if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){
  5481. s.setStyle(this.element,{zoom:1});
  5482. }
  5483. _5a8=b.update({from:s.getOpacity(this.element)||0,to:1},_5a8||{});
  5484. this.start(_5a8);
  5485. },update:function(_5ab){
  5486. MochiKit.Style.setOpacity(this.element,_5ab);
  5487. }});
  5488. MochiKit.Visual.Move=function(_5ac,_5ad){
  5489. this.__init__(_5ac,_5ad);
  5490. };
  5491. MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base();
  5492. MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__init__:function(_5ae,_5af){
  5493. this.element=MochiKit.DOM.getElement(_5ae);
  5494. _5af=MochiKit.Base.update({x:0,y:0,mode:"relative"},_5af||{});
  5495. this.start(_5af);
  5496. },setup:function(){
  5497. MochiKit.DOM.makePositioned(this.element);
  5498. var s=this.element.style;
  5499. var _5b1=s.visibility;
  5500. var _5b2=s.display;
  5501. if(_5b2=="none"){
  5502. s.visibility="hidden";
  5503. s.display="";
  5504. }
  5505. this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0");
  5506. this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0");
  5507. if(this.options.mode=="absolute"){
  5508. this.options.x-=this.originalLeft;
  5509. this.options.y-=this.originalTop;
  5510. }
  5511. if(_5b2=="none"){
  5512. s.visibility=_5b1;
  5513. s.display=_5b2;
  5514. }
  5515. },update:function(_5b3){
  5516. 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"});
  5517. }});
  5518. MochiKit.Visual.Scale=function(_5b4,_5b5,_5b6){
  5519. this.__init__(_5b4,_5b5,_5b6);
  5520. };
  5521. MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base();
  5522. MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__init__:function(_5b7,_5b8,_5b9){
  5523. this.element=MochiKit.DOM.getElement(_5b7);
  5524. _5b9=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_5b8},_5b9||{});
  5525. this.start(_5b9);
  5526. },setup:function(){
  5527. this.restoreAfterFinish=this.options.restoreAfterFinish||false;
  5528. this.elementPositioning=MochiKit.Style.getStyle(this.element,"position");
  5529. var ma=MochiKit.Base.map;
  5530. var b=MochiKit.Base.bind;
  5531. this.originalStyle={};
  5532. ma(b(function(k){
  5533. this.originalStyle[k]=this.element.style[k];
  5534. },this),["top","left","width","height","fontSize"]);
  5535. this.originalTop=this.element.offsetTop;
  5536. this.originalLeft=this.element.offsetLeft;
  5537. var _5bd=MochiKit.Style.getStyle(this.element,"font-size")||"100%";
  5538. ma(b(function(_5be){
  5539. if(_5bd.indexOf(_5be)>0){
  5540. this.fontSize=parseFloat(_5bd);
  5541. this.fontSizeType=_5be;
  5542. }
  5543. },this),["em","px","%"]);
  5544. this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;
  5545. if(/^content/.test(this.options.scaleMode)){
  5546. this.dims=[this.element.scrollHeight,this.element.scrollWidth];
  5547. }else{
  5548. if(this.options.scaleMode=="box"){
  5549. this.dims=[this.element.offsetHeight,this.element.offsetWidth];
  5550. }else{
  5551. this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];
  5552. }
  5553. }
  5554. },update:function(_5bf){
  5555. var _5c0=(this.options.scaleFrom/100)+(this.factor*_5bf);
  5556. if(this.options.scaleContent&&this.fontSize){
  5557. MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*_5c0+this.fontSizeType});
  5558. }
  5559. this.setDimensions(this.dims[0]*_5c0,this.dims[1]*_5c0);
  5560. },finish:function(){
  5561. if(this.restoreAfterFinish){
  5562. MochiKit.Style.setStyle(this.element,this.originalStyle);
  5563. }
  5564. },setDimensions:function(_5c1,_5c2){
  5565. var d={};
  5566. var r=Math.round;
  5567. if(/MSIE/.test(navigator.userAgent)){
  5568. r=Math.ceil;
  5569. }
  5570. if(this.options.scaleX){
  5571. d.width=r(_5c2)+"px";
  5572. }
  5573. if(this.options.scaleY){
  5574. d.height=r(_5c1)+"px";
  5575. }
  5576. if(this.options.scaleFromCenter){
  5577. var topd=(_5c1-this.dims[0])/2;
  5578. var _5c6=(_5c2-this.dims[1])/2;
  5579. if(this.elementPositioning=="absolute"){
  5580. if(this.options.scaleY){
  5581. d.top=this.originalTop-topd+"px";
  5582. }
  5583. if(this.options.scaleX){
  5584. d.left=this.originalLeft-_5c6+"px";
  5585. }
  5586. }else{
  5587. if(this.options.scaleY){
  5588. d.top=-topd+"px";
  5589. }
  5590. if(this.options.scaleX){
  5591. d.left=-_5c6+"px";
  5592. }
  5593. }
  5594. }
  5595. MochiKit.Style.setStyle(this.element,d);
  5596. }});
  5597. MochiKit.Visual.Highlight=function(_5c7,_5c8){
  5598. this.__init__(_5c7,_5c8);
  5599. };
  5600. MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base();
  5601. MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__init__:function(_5c9,_5ca){
  5602. this.element=MochiKit.DOM.getElement(_5c9);
  5603. _5ca=MochiKit.Base.update({startcolor:"#ffff99"},_5ca||{});
  5604. this.start(_5ca);
  5605. },setup:function(){
  5606. var b=MochiKit.Base;
  5607. var s=MochiKit.Style;
  5608. if(s.getStyle(this.element,"display")=="none"){
  5609. this.cancel();
  5610. return;
  5611. }
  5612. this.oldStyle={backgroundImage:s.getStyle(this.element,"background-image")};
  5613. s.setStyle(this.element,{backgroundImage:"none"});
  5614. if(!this.options.endcolor){
  5615. this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString();
  5616. }
  5617. if(b.isUndefinedOrNull(this.options.restorecolor)){
  5618. this.options.restorecolor=s.getStyle(this.element,"background-color");
  5619. }
  5620. this._base=b.map(b.bind(function(i){
  5621. return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16);
  5622. },this),[0,1,2]);
  5623. this._delta=b.map(b.bind(function(i){
  5624. return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i];
  5625. },this),[0,1,2]);
  5626. },update:function(_5cf){
  5627. var m="#";
  5628. MochiKit.Base.map(MochiKit.Base.bind(function(i){
  5629. m+=MochiKit.Color.toColorPart(Math.round(this._base[i]+this._delta[i]*_5cf));
  5630. },this),[0,1,2]);
  5631. MochiKit.Style.setStyle(this.element,{backgroundColor:m});
  5632. },finish:function(){
  5633. MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor}));
  5634. }});
  5635. MochiKit.Visual.ScrollTo=function(_5d2,_5d3){
  5636. this.__init__(_5d2,_5d3);
  5637. };
  5638. MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base();
  5639. MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__init__:function(_5d4,_5d5){
  5640. this.element=MochiKit.DOM.getElement(_5d4);
  5641. this.start(_5d5||{});
  5642. },setup:function(){
  5643. var p=MochiKit.Position;
  5644. p.prepare();
  5645. var _5d7=p.cumulativeOffset(this.element);
  5646. if(this.options.offset){
  5647. _5d7.y+=this.options.offset;
  5648. }
  5649. var max;
  5650. if(window.innerHeight){
  5651. max=window.innerHeight-window.height;
  5652. }else{
  5653. if(document.documentElement&&document.documentElement.clientHeight){
  5654. max=document.documentElement.clientHeight-document.body.scrollHeight;
  5655. }else{
  5656. if(document.body){
  5657. max=document.body.clientHeight-document.body.scrollHeight;
  5658. }
  5659. }
  5660. }
  5661. this.scrollStart=p.windowOffset.y;
  5662. this.delta=(_5d7.y>max?max:_5d7.y)-this.scrollStart;
  5663. },update:function(_5d9){
  5664. var p=MochiKit.Position;
  5665. p.prepare();
  5666. window.scrollTo(p.windowOffset.x,this.scrollStart+(_5d9*this.delta));
  5667. }});
  5668. MochiKit.Visual.fade=function(_5db,_5dc){
  5669. var s=MochiKit.Style;
  5670. var _5de=MochiKit.DOM.getElement(_5db).style.opacity||"";
  5671. _5dc=MochiKit.Base.update({from:s.getOpacity(_5db)||1,to:0,afterFinishInternal:function(_5df){
  5672. if(_5df.options.to!==0){
  5673. return;
  5674. }
  5675. s.hideElement(_5df.element);
  5676. s.setStyle(_5df.element,{opacity:_5de});
  5677. }},_5dc||{});
  5678. return new MochiKit.Visual.Opacity(_5db,_5dc);
  5679. };
  5680. MochiKit.Visual.appear=function(_5e0,_5e1){
  5681. var s=MochiKit.Style;
  5682. var v=MochiKit.Visual;
  5683. _5e1=MochiKit.Base.update({from:(s.getStyle(_5e0,"display")=="none"?0:s.getOpacity(_5e0)||0),to:1,afterFinishInternal:function(_5e4){
  5684. v.forceRerendering(_5e4.element);
  5685. },beforeSetupInternal:function(_5e5){
  5686. s.setOpacity(_5e5.element,_5e5.options.from);
  5687. s.showElement(_5e5.element);
  5688. }},_5e1||{});
  5689. return new v.Opacity(_5e0,_5e1);
  5690. };
  5691. MochiKit.Visual.puff=function(_5e6,_5e7){
  5692. var s=MochiKit.Style;
  5693. var v=MochiKit.Visual;
  5694. _5e6=MochiKit.DOM.getElement(_5e6);
  5695. 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};
  5696. _5e7=MochiKit.Base.update({beforeSetupInternal:function(_5eb){
  5697. MochiKit.Position.absolutize(_5eb.effects[0].element);
  5698. },afterFinishInternal:function(_5ec){
  5699. s.hideElement(_5ec.effects[0].element);
  5700. s.setStyle(_5ec.effects[0].element,_5ea);
  5701. }},_5e7||{});
  5702. 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);
  5703. };
  5704. MochiKit.Visual.blindUp=function(_5ed,_5ee){
  5705. var d=MochiKit.DOM;
  5706. _5ed=d.getElement(_5ed);
  5707. var _5f0=d.makeClipping(_5ed);
  5708. _5ee=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(_5f1){
  5709. MochiKit.Style.hideElement(_5f1.element);
  5710. d.undoClipping(_5f1.element,_5f0);
  5711. }},_5ee||{});
  5712. return new MochiKit.Visual.Scale(_5ed,0,_5ee);
  5713. };
  5714. MochiKit.Visual.blindDown=function(_5f2,_5f3){
  5715. var d=MochiKit.DOM;
  5716. var s=MochiKit.Style;
  5717. _5f2=d.getElement(_5f2);
  5718. var _5f6=s.getElementDimensions(_5f2);
  5719. var _5f7;
  5720. _5f3=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_5f6.h,originalWidth:_5f6.w},restoreAfterFinish:true,afterSetupInternal:function(_5f8){
  5721. _5f7=d.makeClipping(_5f8.element);
  5722. s.setStyle(_5f8.element,{height:"0px"});
  5723. s.showElement(_5f8.element);
  5724. },afterFinishInternal:function(_5f9){
  5725. d.undoClipping(_5f9.element,_5f7);
  5726. }},_5f3||{});
  5727. return new MochiKit.Visual.Scale(_5f2,100,_5f3);
  5728. };
  5729. MochiKit.Visual.switchOff=function(_5fa,_5fb){
  5730. var d=MochiKit.DOM;
  5731. _5fa=d.getElement(_5fa);
  5732. var _5fd=_5fa.style.opacity||"";
  5733. var _5fe;
  5734. var _5fb=MochiKit.Base.update({duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetupInternal:function(_5ff){
  5735. d.makePositioned(_5ff.element);
  5736. _5fe=d.makeClipping(_5ff.element);
  5737. },afterFinishInternal:function(_600){
  5738. MochiKit.Style.hideElement(_600.element);
  5739. d.undoClipping(_600.element,_5fe);
  5740. d.undoPositioned(_600.element);
  5741. MochiKit.Style.setStyle(_600.element,{opacity:_5fd});
  5742. }},_5fb||{});
  5743. var v=MochiKit.Visual;
  5744. return new v.appear(_5fa,{duration:0.4,from:0,transition:v.Transitions.flicker,afterFinishInternal:function(_602){
  5745. new v.Scale(_602.element,1,_5fb);
  5746. }});
  5747. };
  5748. MochiKit.Visual.dropOut=function(_603,_604){
  5749. var d=MochiKit.DOM;
  5750. var s=MochiKit.Style;
  5751. _603=d.getElement(_603);
  5752. var _607={top:s.getStyle(_603,"top"),left:s.getStyle(_603,"left"),opacity:_603.style.opacity||""};
  5753. _604=MochiKit.Base.update({duration:0.5,beforeSetupInternal:function(_608){
  5754. d.makePositioned(_608.effects[0].element);
  5755. },afterFinishInternal:function(_609){
  5756. s.hideElement(_609.effects[0].element);
  5757. d.undoPositioned(_609.effects[0].element);
  5758. s.setStyle(_609.effects[0].element,_607);
  5759. }},_604||{});
  5760. var v=MochiKit.Visual;
  5761. return new v.Parallel([new v.Move(_603,{x:0,y:100,sync:true}),new v.Opacity(_603,{sync:true,to:0})],_604);
  5762. };
  5763. MochiKit.Visual.shake=function(_60b,_60c){
  5764. var d=MochiKit.DOM;
  5765. var v=MochiKit.Visual;
  5766. var s=MochiKit.Style;
  5767. _60b=d.getElement(_60b);
  5768. _60c=MochiKit.Base.update({x:-20,y:0,duration:0.05,afterFinishInternal:function(_610){
  5769. d.undoPositioned(_610.element);
  5770. s.setStyle(_610.element,_611);
  5771. }},_60c||{});
  5772. var _611={top:s.getStyle(_60b,"top"),left:s.getStyle(_60b,"left")};
  5773. return new v.Move(_60b,{x:20,y:0,duration:0.05,afterFinishInternal:function(_612){
  5774. new v.Move(_612.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_613){
  5775. new v.Move(_613.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_614){
  5776. new v.Move(_614.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_615){
  5777. new v.Move(_615.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_616){
  5778. new v.Move(_616.element,_60c);
  5779. }});
  5780. }});
  5781. }});
  5782. }});
  5783. }});
  5784. };
  5785. MochiKit.Visual.slideDown=function(_617,_618){
  5786. var d=MochiKit.DOM;
  5787. var b=MochiKit.Base;
  5788. var s=MochiKit.Style;
  5789. _617=d.getElement(_617);
  5790. if(!_617.firstChild){
  5791. throw "MochiKit.Visual.slideDown must be used on a element with a child";
  5792. }
  5793. d.removeEmptyTextNodes(_617);
  5794. var _61c=s.getStyle(_617.firstChild,"bottom")||0;
  5795. var _61d=s.getElementDimensions(_617);
  5796. var _61e;
  5797. _618=b.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_61d.h,originalWidth:_61d.w},restoreAfterFinish:true,afterSetupInternal:function(_61f){
  5798. d.makePositioned(_61f.element);
  5799. d.makePositioned(_61f.element.firstChild);
  5800. if(/Opera/.test(navigator.userAgent)){
  5801. s.setStyle(_61f.element,{top:""});
  5802. }
  5803. _61e=d.makeClipping(_61f.element);
  5804. s.setStyle(_61f.element,{height:"0px"});
  5805. s.showElement(_61f.element);
  5806. },afterUpdateInternal:function(_620){
  5807. s.setStyle(_620.element.firstChild,{bottom:(_620.dims[0]-_620.element.clientHeight)+"px"});
  5808. },afterFinishInternal:function(_621){
  5809. d.undoClipping(_621.element,_61e);
  5810. if(/MSIE/.test(navigator.userAgent)){
  5811. d.undoPositioned(_621.element);
  5812. d.undoPositioned(_621.element.firstChild);
  5813. }else{
  5814. d.undoPositioned(_621.element.firstChild);
  5815. d.undoPositioned(_621.element);
  5816. }
  5817. s.setStyle(_621.element.firstChild,{bottom:_61c});
  5818. }},_618||{});
  5819. return new MochiKit.Visual.Scale(_617,100,_618);
  5820. };
  5821. MochiKit.Visual.slideUp=function(_622,_623){
  5822. var d=MochiKit.DOM;
  5823. var b=MochiKit.Base;
  5824. var s=MochiKit.Style;
  5825. _622=d.getElement(_622);
  5826. if(!_622.firstChild){
  5827. throw "MochiKit.Visual.slideUp must be used on a element with a child";
  5828. }
  5829. d.removeEmptyTextNodes(_622);
  5830. var _627=s.getStyle(_622.firstChild,"bottom");
  5831. var _628;
  5832. _623=b.update({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_629){
  5833. d.makePositioned(_629.element);
  5834. d.makePositioned(_629.element.firstChild);
  5835. if(/Opera/.test(navigator.userAgent)){
  5836. s.setStyle(_629.element,{top:""});
  5837. }
  5838. _628=d.makeClipping(_629.element);
  5839. s.showElement(_629.element);
  5840. },afterUpdateInternal:function(_62a){
  5841. s.setStyle(_62a.element.firstChild,{bottom:(_62a.dims[0]-_62a.element.clientHeight)+"px"});
  5842. },afterFinishInternal:function(_62b){
  5843. s.hideElement(_62b.element);
  5844. d.undoClipping(_62b.element,_628);
  5845. d.undoPositioned(_62b.element.firstChild);
  5846. d.undoPositioned(_62b.element);
  5847. s.setStyle(_62b.element.firstChild,{bottom:_627});
  5848. }},_623||{});
  5849. return new MochiKit.Visual.Scale(_622,0,_623);
  5850. };
  5851. MochiKit.Visual.squish=function(_62c,_62d){
  5852. var d=MochiKit.DOM;
  5853. var b=MochiKit.Base;
  5854. var _630;
  5855. _62d=b.update({restoreAfterFinish:true,beforeSetupInternal:function(_631){
  5856. _630=d.makeClipping(_631.element);
  5857. },afterFinishInternal:function(_632){
  5858. MochiKit.Style.hideElement(_632.element);
  5859. d.undoClipping(_632.element,_630);
  5860. }},_62d||{});
  5861. return new MochiKit.Visual.Scale(_62c,/Opera/.test(navigator.userAgent)?1:0,_62d);
  5862. };
  5863. MochiKit.Visual.grow=function(_633,_634){
  5864. var d=MochiKit.DOM;
  5865. var v=MochiKit.Visual;
  5866. var s=MochiKit.Style;
  5867. _633=d.getElement(_633);
  5868. _634=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.full},_634||{});
  5869. var _638={top:_633.style.top,left:_633.style.left,height:_633.style.height,width:_633.style.width,opacity:_633.style.opacity||""};
  5870. var dims=s.getElementDimensions(_633);
  5871. var _63a,_63b;
  5872. var _63c,_63d;
  5873. switch(_634.direction){
  5874. case "top-left":
  5875. _63a=_63b=_63c=_63d=0;
  5876. break;
  5877. case "top-right":
  5878. _63a=dims.w;
  5879. _63b=_63d=0;
  5880. _63c=-dims.w;
  5881. break;
  5882. case "bottom-left":
  5883. _63a=_63c=0;
  5884. _63b=dims.h;
  5885. _63d=-dims.h;
  5886. break;
  5887. case "bottom-right":
  5888. _63a=dims.w;
  5889. _63b=dims.h;
  5890. _63c=-dims.w;
  5891. _63d=-dims.h;
  5892. break;
  5893. case "center":
  5894. _63a=dims.w/2;
  5895. _63b=dims.h/2;
  5896. _63c=-dims.w/2;
  5897. _63d=-dims.h/2;
  5898. break;
  5899. }
  5900. var _63e=MochiKit.Base.update({beforeSetupInternal:function(_63f){
  5901. s.setStyle(_63f.effects[0].element,{height:"0px"});
  5902. s.showElement(_63f.effects[0].element);
  5903. },afterFinishInternal:function(_640){
  5904. d.undoClipping(_640.effects[0].element);
  5905. d.undoPositioned(_640.effects[0].element);
  5906. s.setStyle(_640.effects[0].element,_638);
  5907. }},_634||{});
  5908. return new v.Move(_633,{x:_63a,y:_63b,duration:0.01,beforeSetupInternal:function(_641){
  5909. s.hideElement(_641.element);
  5910. d.makeClipping(_641.element);
  5911. d.makePositioned(_641.element);
  5912. },afterFinishInternal:function(_642){
  5913. 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);
  5914. }});
  5915. };
  5916. MochiKit.Visual.shrink=function(_643,_644){
  5917. var d=MochiKit.DOM;
  5918. var v=MochiKit.Visual;
  5919. var s=MochiKit.Style;
  5920. _643=d.getElement(_643);
  5921. _644=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.none},_644||{});
  5922. var _648={top:_643.style.top,left:_643.style.left,height:_643.style.height,width:_643.style.width,opacity:_643.style.opacity||""};
  5923. var dims=s.getElementDimensions(_643);
  5924. var _64a,_64b;
  5925. switch(_644.direction){
  5926. case "top-left":
  5927. _64a=_64b=0;
  5928. break;
  5929. case "top-right":
  5930. _64a=dims.w;
  5931. _64b=0;
  5932. break;
  5933. case "bottom-left":
  5934. _64a=0;
  5935. _64b=dims.h;
  5936. break;
  5937. case "bottom-right":
  5938. _64a=dims.w;
  5939. _64b=dims.h;
  5940. break;
  5941. case "center":
  5942. _64a=dims.w/2;
  5943. _64b=dims.h/2;
  5944. break;
  5945. }
  5946. var _64c;
  5947. var _64d=MochiKit.Base.update({beforeStartInternal:function(_64e){
  5948. _64c=d.makePositioned(_64e.effects[0].element);
  5949. d.makeClipping(_64e.effects[0].element);
  5950. },afterFinishInternal:function(_64f){
  5951. s.hideElement(_64f.effects[0].element);
  5952. d.undoClipping(_64f.effects[0].element,_64c);
  5953. d.undoPositioned(_64f.effects[0].element);
  5954. s.setStyle(_64f.effects[0].element,_648);
  5955. }},_644||{});
  5956. 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);
  5957. };
  5958. MochiKit.Visual.pulsate=function(_650,_651){
  5959. var d=MochiKit.DOM;
  5960. var v=MochiKit.Visual;
  5961. var b=MochiKit.Base;
  5962. var _655=d.getElement(_650).style.opacity||"";
  5963. _651=b.update({duration:3,from:0,afterFinishInternal:function(_656){
  5964. MochiKit.Style.setStyle(_656.element,{opacity:_655});
  5965. }},_651||{});
  5966. var _657=_651.transition||v.Transitions.sinoidal;
  5967. var _658=b.bind(function(pos){
  5968. return _657(1-v.Transitions.pulse(pos));
  5969. },_657);
  5970. b.bind(_658,_657);
  5971. return new v.Opacity(_650,b.update({transition:_658},_651));
  5972. };
  5973. MochiKit.Visual.fold=function(_65a,_65b){
  5974. var d=MochiKit.DOM;
  5975. var v=MochiKit.Visual;
  5976. var s=MochiKit.Style;
  5977. _65a=d.getElement(_65a);
  5978. var _65f={top:_65a.style.top,left:_65a.style.left,width:_65a.style.width,height:_65a.style.height};
  5979. var _660=d.makeClipping(_65a);
  5980. _65b=MochiKit.Base.update({scaleContent:false,scaleX:false,afterFinishInternal:function(_661){
  5981. new v.Scale(_65a,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(_662){
  5982. s.hideElement(_662.element);
  5983. d.undoClipping(_662.element,_660);
  5984. s.setStyle(_662.element,_65f);
  5985. }});
  5986. }},_65b||{});
  5987. return new v.Scale(_65a,5,_65b);
  5988. };
  5989. MochiKit.Visual.Color=MochiKit.Color.Color;
  5990. MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle;
  5991. MochiKit.Visual.__new__=function(){
  5992. var m=MochiKit.Base;
  5993. m.nameFunctions(this);
  5994. this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
  5995. };
  5996. 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"];
  5997. MochiKit.Visual.EXPORT_OK=["PAIRS"];
  5998. MochiKit.Visual.__new__();
  5999. MochiKit.Base._exportSymbols(this,MochiKit.Visual);
  6000. if(typeof (MochiKit)=="undefined"){
  6001. MochiKit={};
  6002. }
  6003. if(typeof (MochiKit.MochiKit)=="undefined"){
  6004. MochiKit.MochiKit={};
  6005. }
  6006. MochiKit.MochiKit.NAME="MochiKit.MochiKit";
  6007. MochiKit.MochiKit.VERSION="1.4";
  6008. MochiKit.MochiKit.__repr__=function(){
  6009. return "["+this.NAME+" "+this.VERSION+"]";
  6010. };
  6011. MochiKit.MochiKit.toString=function(){
  6012. return this.__repr__();
  6013. };
  6014. MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","Style","LoggingPane","Color","Signal","Visual"];
  6015. if(typeof (JSAN)!="undefined"||typeof (dojo)!="undefined"){
  6016. if(typeof (dojo)!="undefined"){
  6017. dojo.provide("MochiKit.MochiKit");
  6018. dojo.require("MochiKit.*");
  6019. }
  6020. if(typeof (JSAN)!="undefined"){
  6021. (function(lst){
  6022. for(var i=0;i<lst.length;i++){
  6023. JSAN.use("MochiKit."+lst[i],[]);
  6024. }
  6025. })(MochiKit.MochiKit.SUBMODULES);
  6026. }
  6027. (function(){
  6028. var _666=MochiKit.Base.extend;
  6029. var self=MochiKit.MochiKit;
  6030. var _668=self.SUBMODULES;
  6031. var _669=[];
  6032. var _66a=[];
  6033. var _66b={};
  6034. var i,k,m,all;
  6035. for(i=0;i<_668.length;i++){
  6036. m=MochiKit[_668[i]];
  6037. _666(_669,m.EXPORT);
  6038. _666(_66a,m.EXPORT_OK);
  6039. for(k in m.EXPORT_TAGS){
  6040. _66b[k]=_666(_66b[k],m.EXPORT_TAGS[k]);
  6041. }
  6042. all=m.EXPORT_TAGS[":all"];
  6043. if(!all){
  6044. all=_666(null,m.EXPORT,m.EXPORT_OK);
  6045. }
  6046. var j;
  6047. for(j=0;j<all.length;j++){
  6048. k=all[j];
  6049. self[k]=m[k];
  6050. }
  6051. }
  6052. self.EXPORT=_669;
  6053. self.EXPORT_OK=_66a;
  6054. self.EXPORT_TAGS=_66b;
  6055. }());
  6056. }else{
  6057. if(typeof (MochiKit.__compat__)=="undefined"){
  6058. MochiKit.__compat__=true;
  6059. }
  6060. (function(){
  6061. if(typeof (document)=="undefined"){
  6062. return;
  6063. }
  6064. var _671=document.getElementsByTagName("script");
  6065. var _672="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
  6066. var base=null;
  6067. var _674=null;
  6068. var _675={};
  6069. var i;
  6070. for(i=0;i<_671.length;i++){
  6071. var src=_671[i].getAttribute("src");
  6072. if(!src){
  6073. continue;
  6074. }
  6075. _675[src]=true;
  6076. if(src.match(/MochiKit.js$/)){
  6077. base=src.substring(0,src.lastIndexOf("MochiKit.js"));
  6078. _674=_671[i];
  6079. }
  6080. }
  6081. if(base===null){
  6082. return;
  6083. }
  6084. var _678=MochiKit.MochiKit.SUBMODULES;
  6085. for(var i=0;i<_678.length;i++){
  6086. if(MochiKit[_678[i]]){
  6087. continue;
  6088. }
  6089. var uri=base+_678[i]+".js";
  6090. if(uri in _675){
  6091. continue;
  6092. }
  6093. if(document.documentElement&&document.documentElement.namespaceURI==_672){
  6094. var s=document.createElementNS(_672,"script");
  6095. s.setAttribute("id","MochiKit_"+base+_678[i]);
  6096. s.setAttribute("src",uri);
  6097. s.setAttribute("type","application/x-javascript");
  6098. _674.parentNode.appendChild(s);
  6099. }else{
  6100. document.write("<script src=\""+uri+"\" type=\"text/javascript\"></script>");
  6101. }
  6102. }
  6103. })();
  6104. }