12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407 |
- ;(function(){
-
-
-
- var sMap = null;
-
- if((sMap || (typeof djConfig != "undefined" && djConfig.scopeMap)) && (typeof window != "undefined")){
- var scopeDef = "", scopePrefix = "", scopeSuffix = "", scopeMap = {}, scopeMapRev = {};
- sMap = sMap || djConfig.scopeMap;
- for(var i = 0; i < sMap.length; i++){
-
- var newScope = sMap[i];
- scopeDef += "var " + newScope[0] + " = {}; " + newScope[1] + " = " + newScope[0] + ";" + newScope[1] + "._scopeName = '" + newScope[1] + "';";
- scopePrefix += (i == 0 ? "" : ",") + newScope[0];
- scopeSuffix += (i == 0 ? "" : ",") + newScope[1];
- scopeMap[newScope[0]] = newScope[1];
- scopeMapRev[newScope[1]] = newScope[0];
- }
- eval(scopeDef + "dojo._scopeArgs = [" + scopeSuffix + "];");
- dojo._scopePrefixArgs = scopePrefix;
- dojo._scopePrefix = "(function(" + scopePrefix + "){";
- dojo._scopeSuffix = "})(" + scopeSuffix + ")";
- dojo._scopeMap = scopeMap;
- dojo._scopeMapRev = scopeMapRev;
- }
- (function(){
-
- if(typeof this["loadFirebugConsole"] == "function"){
-
- this["loadFirebugConsole"]();
- }else{
- this.console = this.console || {};
-
- var cn = [
- "assert", "count", "debug", "dir", "dirxml", "error", "group",
- "groupEnd", "info", "profile", "profileEnd", "time", "timeEnd",
- "trace", "warn", "log"
- ];
- var i = 0, tn;
- while((tn=cn[i++])){
- if(!console[tn]){
- (function(){
- var tcn = tn+"";
- console[tcn] = ('log' in console) ? function(){
- var a = Array.apply({}, arguments);
- a.unshift(tcn+":");
- console["log"](a.join(" "));
- } : function(){}
- console[tcn]._fake = true;
- })();
- }
- }
- }
-
-
- if(typeof dojo == "undefined"){
- dojo = {
- _scopeName: "dojo",
- _scopePrefix: "",
- _scopePrefixArgs: "",
- _scopeSuffix: "",
- _scopeMap: {},
- _scopeMapRev: {}
- };
- }
- var d = dojo;
-
- if(typeof dijit == "undefined"){
- dijit = {_scopeName: "dijit"};
- }
- if(typeof dojox == "undefined"){
- dojox = {_scopeName: "dojox"};
- }
- if(!d._scopeArgs){
- d._scopeArgs = [dojo, dijit, dojox];
- }
- d.global = this;
- d.config ={
- isDebug: false,
- debugAtAllCosts: false
- };
-
- var cfg = typeof djConfig != "undefined" ? djConfig :
- typeof dojoConfig != "undefined" ? dojoConfig : null;
-
- if(cfg){
- for(var c in cfg){
- d.config[c] = cfg[c];
- }
- }
- dojo.locale = d.config.locale;
- var rev = "$Rev: 31ff515 $".match(/[0-9a-f]{7,}/);
- dojo.version = {
- major: 1, minor: 6, patch: 4, flag: "-20220428-IBM",
- revision: rev ? rev[0] : NaN,
- toString: function(){
- with(d.version){
- return major + "." + minor + "." + patch + flag + " (" + revision + ")";
- }
- }
- }
-
- if(typeof OpenAjax != "undefined"){
- OpenAjax.hub.registerLibrary(dojo._scopeName, "http://dojotoolkit.org", d.version.toString());
- }
-
- var extraNames, extraLen, empty = {};
- for(var i in {toString: 1}){ extraNames = []; break; }
- dojo._extraNames = extraNames = extraNames || ["hasOwnProperty", "valueOf", "isPrototypeOf",
- "propertyIsEnumerable", "toLocaleString", "toString", "constructor"];
- extraLen = extraNames.length;
- dojo._mixin = function(/*Object*/ target, /*Object*/ source){
-
-
-
-
- var name, s, i;
- for(name in source){
-
-
-
-
- s = source[name];
- if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){
- target[name] = s;
- }
- }
-
- if(extraLen && source){
- for(i = 0; i < extraLen; ++i){
- name = extraNames[i];
- s = source[name];
- if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){
- target[name] = s;
- }
- }
- }
- return target;
- }
- dojo.mixin = function(/*Object*/obj, /*Object...*/props){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(!obj){ obj = {}; }
- for(var i=1, l=arguments.length; i<l; i++){
- d._mixin(obj, arguments[i]);
- }
- return obj;
- }
- dojo._getProp = function(/*Array*/parts, /*Boolean*/create, /*Object*/context){
- if(!context){
- if(parts[0] && d._scopeMap[parts[0]]) {
-
-
- context = d._scopeMap[parts.shift()][1];
- }else{
- context = d.global;
- }
- }
- try{
- for(var i = 0; i < parts.length; i++){
- var p = parts[i];
-
- if (p === '__proto__' || p === 'constructor') {
- return;
- }
- if(!(p in context)){
- if(create){
- context[p] = {};
- }else{
- return;
- }
- }
- context = context[p];
- }
- return context;
- }catch(e){
-
-
- }
- }
- dojo.setObject = function(/*String*/name, /*Object*/value, /*Object?*/context){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var parts=name.split("."), p=parts.pop(), obj=d._getProp(parts, true, context);
- return obj && p ? (obj[p]=value) : undefined;
- }
- dojo.getObject = function(/*String*/name, /*Boolean?*/create, /*Object?*/context){
-
-
-
-
-
-
-
-
-
-
-
-
-
- return !name ? context : d._getProp(name.split("."), create, context);
- }
- dojo.exists = function(/*String*/name, /*Object?*/obj){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return d.getObject(name, false, obj) !== undefined;
- }
- dojo["eval"] = function(/*String*/ scriptFragment){
-
-
-
-
-
-
-
-
-
-
- return d.global.eval ? d.global.eval(scriptFragment) : eval(scriptFragment);
- }
-
-
- d.deprecated = d.experimental = function(){};
- })();
- (function(){
- var d = dojo, currentModule;
- d.mixin(d, {
- _loadedModules: {},
- _inFlightCount: 0,
- _hasResource: {},
- _modulePrefixes: {
- dojo: { name: "dojo", value: "." },
-
-
- doh: { name: "doh", value: "../util/doh" },
- tests: { name: "tests", value: "tests" }
- },
- _moduleHasPrefix: function(/*String*/module){
-
- var mp = d._modulePrefixes;
- return !!(mp[module] && mp[module].value);
- },
- _getModulePrefix: function(/*String*/module){
-
- var mp = d._modulePrefixes;
- if(d._moduleHasPrefix(module)){
- return mp[module].value;
- }
- return module;
- },
- _loadedUrls: [],
-
-
-
- _postLoad: false,
-
- _loaders: [],
- _unloaders: [],
- _loadNotifying: false
- });
- dojo._loadPath = function(/*String*/relpath, /*String?*/module, /*Function?*/cb){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : d.baseUrl) + relpath;
- try{
- currentModule = module;
- return !module ? d._loadUri(uri, cb) : d._loadUriAndCheck(uri, module, cb);
- }catch(e){
- console.error(e);
- return false;
- }finally{
- currentModule = null;
- }
- }
- dojo._loadUri = function(/*String*/uri, /*Function?*/cb){
-
-
-
-
-
-
-
-
-
-
-
-
- if(d._loadedUrls[uri]){
- return true;
- }
- d._inFlightCount++;
- var contents = d._getText(uri, true);
- if(contents){
- d._loadedUrls[uri] = true;
- d._loadedUrls.push(uri);
- if(cb){
-
- contents = /^define\(/.test(contents) ? contents : '('+contents+')';
- }else{
-
-
- contents = d._scopePrefix + contents + d._scopeSuffix;
- }
- if(!d.isIE){ contents += "\r\n//@ sourceURL=" + uri; }
- var value = d["eval"](contents);
- if(cb){ cb(value); }
- }
-
- if(--d._inFlightCount == 0 && d._postLoad && d._loaders.length){
-
-
-
-
-
-
- setTimeout(function(){
-
-
- if(d._inFlightCount == 0){
- d._callLoaded();
- }
- }, 0);
- }
- return !!contents;
- }
-
-
- dojo._loadUriAndCheck = function(/*String*/uri, /*String*/moduleName, /*Function?*/cb){
-
- var ok = false;
- try{
- ok = d._loadUri(uri, cb);
- }catch(e){
- console.error("failed loading " + uri + " with error: " + e);
- }
- return !!(ok && d._loadedModules[moduleName]);
- }
- dojo.loaded = function(){
-
-
-
-
-
-
-
- d._loadNotifying = true;
- d._postLoad = true;
- var mll = d._loaders;
-
-
- d._loaders = [];
- for(var x = 0; x < mll.length; x++){
- mll[x]();
- }
- d._loadNotifying = false;
-
-
-
-
- if(d._postLoad && d._inFlightCount == 0 && mll.length){
- d._callLoaded();
- }
- }
- dojo.unloaded = function(){
-
-
-
-
-
- var mll = d._unloaders;
- while(mll.length){
- (mll.pop())();
- }
- }
- d._onto = function(arr, obj, fn){
- if(!fn){
- arr.push(obj);
- }else if(fn){
- var func = (typeof fn == "string") ? obj[fn] : fn;
- arr.push(function(){ func.call(obj); });
- }
- }
- dojo.ready = dojo.addOnLoad = function(/*Object*/obj, /*String|Function?*/functionName){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- d._onto(d._loaders, obj, functionName);
-
-
-
-
- if(d._postLoad && d._inFlightCount == 0 && !d._loadNotifying){
- d._callLoaded();
- }
- }
-
-
-
- var dca = d.config.addOnLoad;
- if(dca){
- d.addOnLoad[(dca instanceof Array ? "apply" : "call")](d, dca);
- }
- dojo._modulesLoaded = function(){
- if(d._postLoad){ return; }
- if(d._inFlightCount > 0){
- console.warn("files still in flight!");
- return;
- }
- d._callLoaded();
- }
- dojo._callLoaded = function(){
-
-
-
-
-
-
-
- if(typeof setTimeout == "object" || (d.config.useXDomain && d.isOpera)){
- setTimeout(
- d.isAIR ? function(){ d.loaded(); } : d._scopeName + ".loaded();",
- 0);
- }else{
- d.loaded();
- }
- }
- dojo._getModuleSymbols = function(/*String*/modulename){
-
-
-
- var syms = modulename.split(".");
- for(var i = syms.length; i>0; i--){
- var parentModule = syms.slice(0, i).join(".");
- if(i == 1 && !d._moduleHasPrefix(parentModule)){
-
- syms[0] = "../" + syms[0];
- }else{
- var parentModulePath = d._getModulePrefix(parentModule);
- if(parentModulePath != parentModule){
- syms.splice(0, i, parentModulePath);
- break;
- }
- }
- }
- return syms;
- }
- dojo._global_omit_module_check = false;
- dojo.loadInit = function(/*Function*/init){
-
-
-
-
-
-
-
-
-
-
-
-
-
- init();
- }
- dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- omitModuleCheck = d._global_omit_module_check || omitModuleCheck;
-
- var module = d._loadedModules[moduleName];
- if(module){
- return module;
- }
-
- var relpath = d._getModuleSymbols(moduleName).join("/") + '.js';
- var modArg = !omitModuleCheck ? moduleName : null;
- var ok = d._loadPath(relpath, modArg);
- if(!ok && !omitModuleCheck){
- throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'");
- }
-
-
- if(!omitModuleCheck && !d._isXDomain){
-
- module = d._loadedModules[moduleName];
- if(!module){
- throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'");
- }
- }
- return module;
- }
- dojo.provide = function(/*String*/ resourceName){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- resourceName = resourceName + "";
- return (d._loadedModules[resourceName] = d.getObject(resourceName, true));
- }
-
- dojo.platformRequire = function(/*Object*/modMap){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var common = modMap.common || [];
- var result = common.concat(modMap[d._name] || modMap["default"] || []);
- for(var x=0; x<result.length; x++){
- var curr = result[x];
- if(curr.constructor == Array){
- d._loadModule.apply(d, curr);
- }else{
- d._loadModule(curr);
- }
- }
- }
- dojo.requireIf = function(/*Boolean*/ condition, /*String*/ resourceName){
-
-
-
-
-
-
-
- if(condition === true){
-
- var args = [];
- for(var i = 1; i < arguments.length; i++){
- args.push(arguments[i]);
- }
- d.require.apply(d, args);
- }
- }
- dojo.requireAfterIf = d.requireIf;
- dojo.registerModulePath = function(/*String*/module, /*String*/prefix){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- d._modulePrefixes[module] = { name: module, value: prefix };
- };
-
- dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- d.require("dojo.i18n");
- d.i18n._requireLocalization.apply(d.hostenv, arguments);
- };
- var ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),
- ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");
- dojo._Url = function(/*dojo._Url|String...*/){
-
-
-
-
-
-
-
-
-
- var n = null,
- _a = arguments,
- uri = [_a[0]];
-
- for(var i = 1; i<_a.length; i++){
- if(!_a[i]){ continue; }
-
-
-
- var relobj = new d._Url(_a[i]+""),
- uriobj = new d._Url(uri[0]+"");
- if(
- relobj.path == "" &&
- !relobj.scheme &&
- !relobj.authority &&
- !relobj.query
- ){
- if(relobj.fragment != n){
- uriobj.fragment = relobj.fragment;
- }
- relobj = uriobj;
- }else if(!relobj.scheme){
- relobj.scheme = uriobj.scheme;
- if(!relobj.authority){
- relobj.authority = uriobj.authority;
- if(relobj.path.charAt(0) != "/"){
- var path = uriobj.path.substring(0,
- uriobj.path.lastIndexOf("/") + 1) + relobj.path;
- var segs = path.split("/");
- for(var j = 0; j < segs.length; j++){
- if(segs[j] == "."){
-
- if(j == segs.length - 1){
- segs[j] = "";
- }else{
- segs.splice(j, 1);
- j--;
- }
- }else if(j > 0 && !(j == 1 && segs[0] == "") &&
- segs[j] == ".." && segs[j-1] != ".."){
-
- if(j == (segs.length - 1)){
- segs.splice(j, 1);
- segs[j - 1] = "";
- }else{
- segs.splice(j - 1, 2);
- j -= 2;
- }
- }
- }
- relobj.path = segs.join("/");
- }
- }
- }
- uri = [];
- if(relobj.scheme){
- uri.push(relobj.scheme, ":");
- }
- if(relobj.authority){
- uri.push("//", relobj.authority);
- }
- uri.push(relobj.path);
- if(relobj.query){
- uri.push("?", relobj.query);
- }
- if(relobj.fragment){
- uri.push("#", relobj.fragment);
- }
- }
- this.uri = uri.join("");
-
- var r = this.uri.match(ore);
- this.scheme = r[2] || (r[1] ? "" : n);
- this.authority = r[4] || (r[3] ? "" : n);
- this.path = r[5];
- this.query = r[7] || (r[6] ? "" : n);
- this.fragment = r[9] || (r[8] ? "" : n);
- if(this.authority != n){
-
- r = this.authority.match(ire);
- this.user = r[3] || n;
- this.password = r[4] || n;
- this.host = r[6] || r[7];
- this.port = r[9] || n;
- }
- }
- dojo._Url.prototype.toString = function(){ return this.uri; };
- dojo.moduleUrl = function(/*String*/module, /*dojo._Url||String*/url){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var loc = d._getModuleSymbols(module).join('/');
- if(!loc){ return null; }
- if(loc.lastIndexOf("/") != loc.length-1){
- loc += "/";
- }
-
-
-
- var colonIndex = loc.indexOf(":");
- if(loc.charAt(0) != "/" && (colonIndex == -1 || colonIndex > loc.indexOf("/"))){
- loc = d.baseUrl + loc;
- }
- return new d._Url(loc, url);
- };
- })();
- if(typeof window != 'undefined'){
- dojo.isBrowser = true;
- dojo._name = "browser";
-
- (function(){
- var d = dojo;
-
-
-
- if(document && document.getElementsByTagName){
- var scripts = document.getElementsByTagName("script");
- var rePkg = /dojo(\.xd)?\.js(\W|$)/i;
- for(var i = 0; i < scripts.length; i++){
- var src = scripts[i].getAttribute("src");
- if(!src){ continue; }
- var m = src.match(rePkg);
- if(m){
-
- if(!d.config.baseUrl){
- d.config.baseUrl = src.substring(0, m.index);
- }
-
- var cfg = (scripts[i].getAttribute("djConfig") || scripts[i].getAttribute("data-dojo-config"));
- if(cfg){
- var cfgo = eval("({ "+cfg+" })");
- for(var x in cfgo){
- dojo.config[x] = cfgo[x];
- }
- }
- break;
- }
- }
- }
- d.baseUrl = d.config.baseUrl;
-
- var n = navigator;
- var dua = n.userAgent,
- dav = n.appVersion,
- tv = parseFloat(dav);
- if(dua.indexOf("Opera") >= 0){ d.isOpera = tv; }
- if(dua.indexOf("AdobeAIR") >= 0){ d.isAIR = 1; }
- d.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : 0;
- d.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined;
- d.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined;
- d.isMac = dav.indexOf("Macintosh") >= 0;
-
-
-
- var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
- if(index && !dojo.isChrome){
-
-
-
- d.isSafari = parseFloat(dav.split("Version/")[1]);
- if(!d.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){
- d.isSafari = 2;
- }
- }
- if(dua.indexOf("Gecko") >= 0 && !d.isKhtml && !d.isWebKit){ d.isMozilla = d.isMoz = tv; }
- if(d.isMoz){
-
- d.isFF = parseFloat(dua.split("Firefox/")[1] || dua.split("Minefield/")[1]) || undefined;
- }
- if(document.all && !d.isOpera){
- d.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined;
-
-
-
-
-
-
- var mode = document.documentMode;
- if(mode && mode != 5 && Math.floor(d.isIE) != mode){
- d.isIE = mode;
- }
- }
-
-
- if(dojo.isIE && window.location.protocol === "file:"){
- dojo.config.ieForceActiveXXhr=true;
- }
-
- d.isQuirks = document.compatMode == "BackCompat";
-
- d.locale = dojo.config.locale || (d.isIE ? n.userLanguage : n.language).toLowerCase();
-
- d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-
- d._xhrObj = function(){
-
-
- var http, last_e;
- if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){
- try{ http = new XMLHttpRequest(); }catch(e){}
- }
- if(!http){
- for(var i=0; i<3; ++i){
- var progid = d._XMLHTTP_PROGIDS[i];
- try{
- http = new ActiveXObject(progid);
- }catch(e){
- last_e = e;
- }
- if(http){
- d._XMLHTTP_PROGIDS = [progid];
- break;
- }
- }
- }
-
- if(!http){
- throw new Error("XMLHTTP not available: "+last_e);
- }
- return http;
- }
- d._isDocumentOk = function(http){
- var stat = http.status || 0,
- lp = location.protocol;
- return (stat >= 200 && stat < 300) ||
- stat == 304 ||
- stat == 1223 ||
-
-
- (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:"));
- }
-
-
-
-
-
-
-
-
- var owloc = window.location+"";
- var base = document.getElementsByTagName("base");
- var hasBase = (base && base.length > 0);
- d._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){
-
-
-
-
-
-
-
-
-
-
- var http = d._xhrObj();
- if(!hasBase && dojo._Url){
- uri = (new dojo._Url(owloc, uri)).toString();
- }
- if(d.config.cacheBust){
-
- uri += "";
- uri += (uri.indexOf("?") == -1 ? "?" : "&") + String(d.config.cacheBust).replace(/\W+/g,"");
- }
- http.open('GET', uri, false);
- try{
- http.send(null);
- if(!d._isDocumentOk(http)){
- var err = Error("Unable to load "+uri+" status:"+ http.status);
- err.status = http.status;
- err.responseText = http.responseText;
- throw err;
- }
- }catch(e){
- if(fail_ok){ return null; }
-
- throw e;
- }
- return http.responseText;
- }
-
- var _w = window;
- var _handleNodeEvent = function(/*String*/evtName, /*Function*/fp){
-
-
-
-
-
- var _a = _w.attachEvent || _w.addEventListener;
- evtName = _w.attachEvent ? evtName : evtName.substring(2);
- _a(evtName, function(){
- fp.apply(_w, arguments);
- }, false);
- };
- d._windowUnloaders = [];
-
- d.windowUnloaded = function(){
-
-
-
-
-
-
-
-
-
- var mll = d._windowUnloaders;
- while(mll.length){
- (mll.pop())();
- }
- d = null;
- };
- var _onWindowUnloadAttached = 0;
- d.addOnWindowUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- d._onto(d._windowUnloaders, obj, functionName);
- if(!_onWindowUnloadAttached){
- _onWindowUnloadAttached = 1;
- _handleNodeEvent("onunload", d.windowUnloaded);
- }
- };
- var _onUnloadAttached = 0;
- d.addOnUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- d._onto(d._unloaders, obj, functionName);
- if(!_onUnloadAttached){
- _onUnloadAttached = 1;
- _handleNodeEvent("onbeforeunload", dojo.unloaded);
- }
- };
- })();
-
- dojo._initFired = false;
- dojo._loadInit = function(e){
- if(dojo._scrollIntervalId){
- clearInterval(dojo._scrollIntervalId);
- dojo._scrollIntervalId = 0;
- }
- if(!dojo._initFired){
- dojo._initFired = true;
-
- if(!dojo.config.afterOnLoad && window.detachEvent){
- window.detachEvent("onload", dojo._loadInit);
- }
- if(dojo._inFlightCount == 0){
- dojo._modulesLoaded();
- }
- }
- }
- if(!dojo.config.afterOnLoad){
- if(document.addEventListener){
-
-
-
- document.addEventListener("DOMContentLoaded", dojo._loadInit, false);
- window.addEventListener("load", dojo._loadInit, false);
- }else if(window.attachEvent){
- window.attachEvent("onload", dojo._loadInit);
-
-
-
-
- if(!dojo.config.skipIeDomLoaded && self === self.top){
- dojo._scrollIntervalId = setInterval(function (){
- try{
-
-
-
-
-
-
- if(document.body){
- document.documentElement.doScroll("left");
- dojo._loadInit();
- }
- }catch (e){}
- }, 30);
- }
- }
- }
- if(dojo.isIE){
- try{
- (function(){
- document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
- var vmlElems = ["*", "group", "roundrect", "oval", "shape", "rect", "imagedata", "path", "textpath", "text"],
- i = 0, l = 1, s = document.createStyleSheet();
- if(dojo.isIE >= 8){
- i = 1;
- l = vmlElems.length;
- }
- for(; i < l; ++i){
- s.addRule("v\\:" + vmlElems[i], "behavior:url(#default#VML); display:inline-block");
- }
- })();
- }catch(e){}
- }
-
-
- }
- (function(){
- var mp = dojo.config["modulePaths"];
- if(mp){
- for(var param in mp){
- dojo.registerModulePath(param, mp[param]);
- }
- }
- })();
- if(dojo.config.isDebug){
- dojo.require("dojo._firebug.firebug");
- }
- if(dojo.config.debugAtAllCosts){
-
-
-
-
- dojo.require("dojo._base._loader.loader_debug");
- dojo.require("dojo.i18n");
- }
- if(!dojo._hasResource["dojo._base.lang"]){
- dojo._hasResource["dojo._base.lang"] = true;
- dojo.provide("dojo._base.lang");
- (function(){
- var d = dojo, opts = Object.prototype.toString;
-
- dojo.isString = function(/*anything*/ it){
-
-
- return (typeof it == "string" || it instanceof String);
- };
- dojo.isArray = function(/*anything*/ it){
-
-
-
- return it && (it instanceof Array || typeof it == "array");
- };
- dojo.isFunction = function(/*anything*/ it){
-
-
- return opts.call(it) === "[object Function]";
- };
- dojo.isObject = function(/*anything*/ it){
-
-
-
- return it !== undefined &&
- (it === null || typeof it == "object" || d.isArray(it) || d.isFunction(it));
- };
- dojo.isArrayLike = function(/*anything*/ it){
-
-
-
-
-
-
-
-
-
-
- return it && it !== undefined &&
-
-
- !d.isString(it) && !d.isFunction(it) &&
- !(it.tagName && it.tagName.toLowerCase() == 'form') &&
- (d.isArray(it) || isFinite(it.length));
- };
- dojo.isAlien = function(/*anything*/ it){
-
-
-
- return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it));
- };
- dojo.extend = function(/*Object*/ constructor, /*Object...*/ props){
-
-
-
-
- for(var i=1, l=arguments.length; i<l; i++){
- d._mixin(constructor.prototype, arguments[i]);
- }
- return constructor; // Object
- };
- dojo._hitchArgs = function(scope, method /*,...*/){
- var pre = d._toArray(arguments, 2);
- var named = d.isString(method);
- return function(){
-
- var args = d._toArray(arguments);
-
- var f = named ? (scope||d.global)[method] : method;
-
- return f && f.apply(scope || this, pre.concat(args));
- };
- };
- dojo.hitch = function(/*Object*/scope, /*Function|String*/method /*,...*/){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(arguments.length > 2){
- return d._hitchArgs.apply(d, arguments);
- }
- if(!method){
- method = scope;
- scope = null;
- }
- if(d.isString(method)){
- scope = scope || d.global;
- if(!scope[method]){ throw(['dojo.hitch: scope["', method, '"] is null (scope="', scope, '")'].join('')); }
- return function(){ return scope[method].apply(scope, arguments || []); };
- }
- return !scope ? method : function(){ return method.apply(scope, arguments || []); };
- };
-
- dojo.delegate = dojo._delegate = (function(){
-
- function TMP(){}
- return function(obj, props){
- TMP.prototype = obj;
- var tmp = new TMP();
- TMP.prototype = null;
- if(props){
- d._mixin(tmp, props);
- }
- return tmp;
- };
- })();
-
- var efficient = function(obj, offset, startWith){
- return (startWith||[]).concat(Array.prototype.slice.call(obj, offset||0));
- };
- var slow = function(obj, offset, startWith){
- var arr = startWith||[];
- for(var x = offset || 0; x < obj.length; x++){
- arr.push(obj[x]);
- }
- return arr;
- };
-
- dojo._toArray =
- d.isIE ? function(obj){
- return ((obj.item) ? slow : efficient).apply(this, arguments);
- } :
- efficient;
- dojo.partial = function(/*Function|String*/method /*, ...*/){
-
-
-
-
-
-
- var arr = [ null ];
- return d.hitch.apply(d, arr.concat(d._toArray(arguments)));
- };
- var extraNames = d._extraNames, extraLen = extraNames.length, empty = {};
- dojo.clone = function(/*anything*/ o){
-
-
-
- if(!o || typeof o != "object" || d.isFunction(o)){
-
- return o;
- }
- if(o.nodeType && "cloneNode" in o){
-
- return o.cloneNode(true);
- }
- if(o instanceof Date){
-
- return new Date(o.getTime());
- }
- if(o instanceof RegExp){
-
- return new RegExp(o);
- }
- var r, i, l, s, name;
- if(d.isArray(o)){
-
- r = [];
- for(i = 0, l = o.length; i < l; ++i){
- if(i in o){
- r.push(d.clone(o[i]));
- }
- }
- }else{
-
- r = o.constructor ? new o.constructor() : {};
- }
- for(name in o){
-
-
-
-
- s = o[name];
- if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){
- r[name] = d.clone(s);
- }
- }
-
- if(extraLen){
- for(i = 0; i < extraLen; ++i){
- name = extraNames[i];
- s = o[name];
- if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){
- r[name] = s;
- }
- }
- }
- return r;
- };
-
- dojo.trim = String.prototype.trim ?
- function(str){ return str.trim(); } :
- function(str){ return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };
-
- var _pattern = /\{([^\}]+)\}/g;
- dojo.replace = function(tmpl, map, pattern){
- return tmpl.replace(pattern || _pattern, d.isFunction(map) ?
- map : function(_, k){ return d.getObject(k, false, map); });
- };
- })();
- }
- if(!dojo._hasResource["dojo._base.array"]){
- dojo._hasResource["dojo._base.array"] = true;
- dojo.provide("dojo._base.array");
- (function(){
- var _getParts = function(arr, obj, cb){
- return [
- (typeof arr == "string") ? arr.split("") : arr,
- obj || dojo.global,
-
- (typeof cb == "string") ? new Function("item", "index", "array", cb) : cb
- ];
- };
- var everyOrSome = function(/*Boolean*/every, /*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
- var _p = _getParts(arr, thisObject, callback); arr = _p[0];
- for(var i=0,l=arr.length; i<l; ++i){
- var result = !!_p[2].call(_p[1], arr[i], i, arr);
- if(every ^ result){
- return result;
- }
- }
- return every;
- };
- dojo.mixin(dojo, {
- indexOf: function( /*Array*/ array,
- /*Object*/ value,
- /*Integer?*/ fromIndex,
- /*Boolean?*/ findLast){
-
-
-
-
-
-
-
-
-
- var step = 1, end = array.length || 0, i = 0;
- if(findLast){
- i = end - 1;
- step = end = -1;
- }
- if(fromIndex != undefined){ i = fromIndex; }
- if((findLast && i > end) || i < end){
- for(; i != end; i += step){
- if(array[i] == value){ return i; }
- }
- }
- return -1;
- },
- lastIndexOf: function(/*Array*/array, /*Object*/value, /*Integer?*/fromIndex){
-
-
-
-
-
-
-
-
-
- return dojo.indexOf(array, value, fromIndex, true);
- },
- forEach: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(!arr || !arr.length){ return; }
-
-
- var _p = _getParts(arr, thisObject, callback); arr = _p[0];
- for(var i=0,l=arr.length; i<l; ++i){
- _p[2].call(_p[1], arr[i], i, arr);
- }
- },
- every: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return everyOrSome(true, arr, callback, thisObject);
- },
- some: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return everyOrSome(false, arr, callback, thisObject);
- },
- map: function(/*Array|String*/arr, /*Function|String*/callback, /*Function?*/thisObject){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var _p = _getParts(arr, thisObject, callback); arr = _p[0];
- var outArr = (arguments[3] ? (new arguments[3]()) : []);
- for(var i=0,l=arr.length; i<l; ++i){
- outArr.push(_p[2].call(_p[1], arr[i], i, arr));
- }
- return outArr;
- },
- filter: function(/*Array*/arr, /*Function|String*/callback, /*Object?*/thisObject){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var _p = _getParts(arr, thisObject, callback); arr = _p[0];
- var outArr = [];
- for(var i=0,l=arr.length; i<l; ++i){
- if(_p[2].call(_p[1], arr[i], i, arr)){
- outArr.push(arr[i]);
- }
- }
- return outArr;
- }
- });
- })();
- }
- if(!dojo._hasResource["dojo._base.declare"]){
- dojo._hasResource["dojo._base.declare"] = true;
- dojo.provide("dojo._base.declare");
- (function(){
- var d = dojo, mix = d._mixin, op = Object.prototype, opts = op.toString,
- xtor = new Function, counter = 0, cname = "constructor";
- function err(msg, cls){ throw new Error("declare" + (cls ? " " + cls : "") + ": " + msg); }
-
- function c3mro(bases, className){
- var result = [], roots = [{cls: 0, refs: []}], nameMap = {}, clsCount = 1,
- l = bases.length, i = 0, j, lin, base, top, proto, rec, name, refs;
-
- for(; i < l; ++i){
- base = bases[i];
- if(!base){
- err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?", className);
- }else if(opts.call(base) != "[object Function]"){
- err("mixin #" + i + " is not a callable constructor.", className);
- }
- lin = base._meta ? base._meta.bases : [base];
- top = 0;
-
- for(j = lin.length - 1; j >= 0; --j){
- proto = lin[j].prototype;
- if(!proto.hasOwnProperty("declaredClass")){
- proto.declaredClass = "uniqName_" + (counter++);
- }
- name = proto.declaredClass;
- if(!nameMap.hasOwnProperty(name)){
- nameMap[name] = {count: 0, refs: [], cls: lin[j]};
- ++clsCount;
- }
- rec = nameMap[name];
- if(top && top !== rec){
- rec.refs.push(top);
- ++top.count;
- }
- top = rec;
- }
- ++top.count;
- roots[0].refs.push(top);
- }
-
- while(roots.length){
- top = roots.pop();
- result.push(top.cls);
- --clsCount;
-
- while(refs = top.refs, refs.length == 1){
- top = refs[0];
- if(!top || --top.count){
-
- top = 0;
- break;
- }
- result.push(top.cls);
- --clsCount;
- }
- if(top){
-
- for(i = 0, l = refs.length; i < l; ++i){
- top = refs[i];
- if(!--top.count){
- roots.push(top);
- }
- }
- }
- }
- if(clsCount){
- err("can't build consistent linearization", className);
- }
-
- base = bases[0];
- result[0] = base ?
- base._meta && base === result[result.length - base._meta.bases.length] ?
- base._meta.bases.length : 1 : 0;
- return result;
- }
- function inherited(args, a, f){
- var name, chains, bases, caller, meta, base, proto, opf, pos,
- cache = this._inherited = this._inherited || {};
-
- if(typeof args == "string"){
- name = args;
- args = a;
- a = f;
- }
- f = 0;
- caller = args.callee;
- name = name || caller.nom;
- if(!name){
- err("can't deduce a name to call inherited()", this.declaredClass);
- }
- meta = this.constructor._meta;
- bases = meta.bases;
- pos = cache.p;
- if(name != cname){
-
- if(cache.c !== caller){
-
- pos = 0;
- base = bases[0];
- meta = base._meta;
- if(meta.hidden[name] !== caller){
-
- chains = meta.chains;
- if(chains && typeof chains[name] == "string"){
- err("calling chained method with inherited: " + name, this.declaredClass);
- }
-
- do{
- meta = base._meta;
- proto = base.prototype;
- if(meta && (proto[name] === caller && proto.hasOwnProperty(name) || meta.hidden[name] === caller)){
- break;
- }
- }while(base = bases[++pos]);
- pos = base ? pos : -1;
- }
- }
-
- base = bases[++pos];
- if(base){
- proto = base.prototype;
- if(base._meta && proto.hasOwnProperty(name)){
- f = proto[name];
- }else{
- opf = op[name];
- do{
- proto = base.prototype;
- f = proto[name];
- if(f && (base._meta ? proto.hasOwnProperty(name) : f !== opf)){
- break;
- }
- }while(base = bases[++pos]);
- }
- }
- f = base && f || op[name];
- }else{
-
- if(cache.c !== caller){
-
- pos = 0;
- meta = bases[0]._meta;
- if(meta && meta.ctor !== caller){
-
- chains = meta.chains;
- if(!chains || chains.constructor !== "manual"){
- err("calling chained constructor with inherited", this.declaredClass);
- }
-
- while(base = bases[++pos]){
- meta = base._meta;
- if(meta && meta.ctor === caller){
- break;
- }
- }
- pos = base ? pos : -1;
- }
- }
-
- while(base = bases[++pos]){
- meta = base._meta;
- f = meta ? meta.ctor : base;
- if(f){
- break;
- }
- }
- f = base && f;
- }
-
- cache.c = f;
- cache.p = pos;
-
- if(f){
- return a === true ? f : f.apply(this, a || args);
- }
-
- }
- function getInherited(name, args){
- if(typeof name == "string"){
- return this.inherited(name, args, true);
- }
- return this.inherited(name, true);
- }
-
- function isInstanceOf(cls){
- var bases = this.constructor._meta.bases;
- for(var i = 0, l = bases.length; i < l; ++i){
- if(bases[i] === cls){
- return true;
- }
- }
- return this instanceof cls;
- }
- function mixOwn(target, source){
- var name, i = 0, l = d._extraNames.length;
-
- for(name in source){
- if(name != cname && source.hasOwnProperty(name)){
- target[name] = source[name];
- }
- }
-
- for(; i < l; ++i){
- name = d._extraNames[i];
- if(name != cname && source.hasOwnProperty(name)){
- target[name] = source[name];
- }
- }
- }
-
- function safeMixin(target, source){
- var name, t, i = 0, l = d._extraNames.length;
-
- for(name in source){
- t = source[name];
- if((t !== op[name] || !(name in op)) && name != cname){
- if(opts.call(t) == "[object Function]"){
-
- t.nom = name;
- }
- target[name] = t;
- }
- }
-
- for(; i < l; ++i){
- name = d._extraNames[i];
- t = source[name];
- if((t !== op[name] || !(name in op)) && name != cname){
- if(opts.call(t) == "[object Function]"){
-
- t.nom = name;
- }
- target[name] = t;
- }
- }
- return target;
- }
- function extend(source){
- safeMixin(this.prototype, source);
- return this;
- }
-
- function chainedConstructor(bases, ctorSpecial){
- return function(){
- var a = arguments, args = a, a0 = a[0], f, i, m,
- l = bases.length, preArgs;
- if(!(this instanceof a.callee)){
-
- return applyNew(a);
- }
-
-
-
- if(ctorSpecial && (a0 && a0.preamble || this.preamble)){
-
- preArgs = new Array(bases.length);
-
- preArgs[0] = a;
- for(i = 0;;){
-
- a0 = a[0];
- if(a0){
- f = a0.preamble;
- if(f){
- a = f.apply(this, a) || a;
- }
- }
-
- f = bases[i].prototype;
- f = f.hasOwnProperty("preamble") && f.preamble;
- if(f){
- a = f.apply(this, a) || a;
- }
-
-
-
-
-
- if(++i == l){
- break;
- }
- preArgs[i] = a;
- }
- }
-
- for(i = l - 1; i >= 0; --i){
- f = bases[i];
- m = f._meta;
- f = m ? m.ctor : f;
- if(f){
- f.apply(this, preArgs ? preArgs[i] : a);
- }
- }
-
- f = this.postscript;
- if(f){
- f.apply(this, args);
- }
- };
- }
-
- function singleConstructor(ctor, ctorSpecial){
- return function(){
- var a = arguments, t = a, a0 = a[0], f;
- if(!(this instanceof a.callee)){
-
- return applyNew(a);
- }
-
-
-
- if(ctorSpecial){
-
- if(a0){
-
- f = a0.preamble;
- if(f){
- t = f.apply(this, t) || t;
- }
- }
- f = this.preamble;
- if(f){
-
- f.apply(this, t);
-
-
-
-
-
- }
- }
-
- if(ctor){
- ctor.apply(this, a);
- }
-
- f = this.postscript;
- if(f){
- f.apply(this, a);
- }
- };
- }
-
- function simpleConstructor(bases){
- return function(){
- var a = arguments, i = 0, f, m;
- if(!(this instanceof a.callee)){
-
- return applyNew(a);
- }
-
-
-
-
- for(; f = bases[i]; ++i){
- m = f._meta;
- f = m ? m.ctor : f;
- if(f){
- f.apply(this, a);
- break;
- }
- }
-
- f = this.postscript;
- if(f){
- f.apply(this, a);
- }
- };
- }
- function chain(name, bases, reversed){
- return function(){
- var b, m, f, i = 0, step = 1;
- if(reversed){
- i = bases.length - 1;
- step = -1;
- }
- for(; b = bases[i]; i += step){
- m = b._meta;
- f = (m ? m.hidden : b.prototype)[name];
- if(f){
- f.apply(this, arguments);
- }
- }
- };
- }
-
-
-
- function forceNew(ctor){
-
-
- xtor.prototype = ctor.prototype;
- var t = new xtor;
- xtor.prototype = null;
- return t;
- }
-
-
-
- function applyNew(args){
-
-
- var ctor = args.callee, t = forceNew(ctor);
-
- ctor.apply(t, args);
- return t;
- }
- d.declare = function(className, superclass, props){
-
- if(typeof className != "string"){
- props = superclass;
- superclass = className;
- className = "";
- }
- props = props || {};
- var proto, i, t, ctor, name, bases, chains, mixins = 1, parents = superclass;
-
- if(opts.call(superclass) == "[object Array]"){
-
- bases = c3mro(superclass, className);
- t = bases[0];
- mixins = bases.length - t;
- superclass = bases[mixins];
- }else{
- bases = [0];
- if(superclass){
- if(opts.call(superclass) == "[object Function]"){
- t = superclass._meta;
- bases = bases.concat(t ? t.bases : superclass);
- }else{
- err("base class is not a callable constructor.", className);
- }
- }else if(superclass !== null){
- err("unknown base class. Did you use dojo.require to pull it in?", className);
- }
- }
- if(superclass){
- for(i = mixins - 1;; --i){
- proto = forceNew(superclass);
- if(!i){
-
- break;
- }
-
- t = bases[i];
- (t._meta ? mixOwn : mix)(proto, t.prototype);
-
- ctor = new Function;
- ctor.superclass = superclass;
- ctor.prototype = proto;
- superclass = proto.constructor = ctor;
- }
- }else{
- proto = {};
- }
-
- safeMixin(proto, props);
-
- t = props.constructor;
- if(t !== op.constructor){
- t.nom = cname;
- proto.constructor = t;
- }
-
- for(i = mixins - 1; i; --i){
- t = bases[i]._meta;
- if(t && t.chains){
- chains = mix(chains || {}, t.chains);
- }
- }
- if(proto["-chains-"]){
- chains = mix(chains || {}, proto["-chains-"]);
- }
-
- t = !chains || !chains.hasOwnProperty(cname);
- bases[0] = ctor = (chains && chains.constructor === "manual") ? simpleConstructor(bases) :
- (bases.length == 1 ? singleConstructor(props.constructor, t) : chainedConstructor(bases, t));
-
- ctor._meta = {bases: bases, hidden: props, chains: chains,
- parents: parents, ctor: props.constructor};
- ctor.superclass = superclass && superclass.prototype;
- ctor.extend = extend;
- ctor.prototype = proto;
- proto.constructor = ctor;
-
- proto.getInherited = getInherited;
- proto.inherited = inherited;
- proto.isInstanceOf = isInstanceOf;
-
- if(className){
- proto.declaredClass = className;
- d.setObject(className, ctor);
- }
-
- if(chains){
- for(name in chains){
- if(proto[name] && typeof chains[name] == "string" && name != cname){
- t = proto[name] = chain(name, bases, chains[name] === "after");
- t.nom = name;
- }
- }
- }
-
-
- return ctor;
- };
- d.safeMixin = safeMixin;
-
-
-
-
-
-
- })();
- }
- if(!dojo._hasResource["dojo._base.connect"]){
- dojo._hasResource["dojo._base.connect"] = true;
- dojo.provide("dojo._base.connect");
- dojo._listener = {
-
- getDispatcher: function(){
-
-
-
-
-
-
-
- return function(){
- var ap = Array.prototype, c = arguments.callee, ls = c._listeners, t = c.target,
-
- r = t && t.apply(this, arguments),
-
- i, lls = [].concat(ls)
- ;
-
- for(i in lls){
- if(!(i in ap)){
- lls[i].apply(this, arguments);
- }
- }
-
- return r;
- };
- },
-
- add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){
-
-
-
-
-
-
-
- source = source || dojo.global;
-
- var f = source[method];
-
- if(!f || !f._listeners){
- var d = dojo._listener.getDispatcher();
-
- d.target = f;
-
- d._listeners = [];
-
- f = source[method] = d;
- }
-
-
-
-
-
-
-
-
- return f._listeners.push(listener);
- },
-
- remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){
- var f = (source || dojo.global)[method];
-
- if(f && f._listeners && handle--){
- delete f._listeners[handle];
- }
- }
- };
- dojo.connect = function(/*Object|null*/ obj,
- /*String*/ event,
- /*Object|null*/ context,
- /*String|Function*/ method,
- /*Boolean?*/ dontFix){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var a=arguments, args=[], i=0;
-
- args.push(dojo.isString(a[0]) ? null : a[i++], a[i++]);
-
- var a1 = a[i+1];
- args.push(dojo.isString(a1)||dojo.isFunction(a1) ? a[i++] : null, a[i++]);
-
- for(var l=a.length; i<l; i++){ args.push(a[i]); }
-
- return dojo._connect.apply(this, args);
- }
- dojo._connect = function(obj, event, context, method){
- var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method));
- return [obj, event, h, l];
- };
- dojo.disconnect = function(/*Handle*/ handle){
-
-
-
-
-
-
- if(handle && handle[0] !== undefined){
- dojo._disconnect.apply(this, handle);
-
- delete handle[0];
- }
- };
- dojo._disconnect = function(obj, event, handle, listener){
- listener.remove(obj, event, handle);
- };
- dojo._topics = {};
- dojo.subscribe = function(/*String*/ topic, /*Object|null*/ context, /*String|Function*/ method){
-
-
-
-
-
-
-
-
-
-
-
-
-
- return [topic, dojo._listener.add(dojo._topics, topic, dojo.hitch(context, method))];
- };
- dojo.unsubscribe = function(/*Handle*/ handle){
-
-
-
-
-
-
-
-
- if(handle){
- dojo._listener.remove(dojo._topics, handle[0], handle[1]);
- }
- };
- dojo.publish = function(/*String*/ topic, /*Array*/ args){
-
-
-
-
-
-
-
-
-
-
-
-
-
- var f = dojo._topics[topic];
- if(f){
- f.apply(this, args||[]);
- }
- };
- dojo.connectPublisher = function( /*String*/ topic,
- /*Object|null*/ obj,
- /*String*/ event){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var pf = function(){ dojo.publish(topic, arguments); }
- return event ? dojo.connect(obj, event, pf) : dojo.connect(obj, pf);
- };
- }
- if(!dojo._hasResource["dojo._base.Deferred"]){
- dojo._hasResource["dojo._base.Deferred"] = true;
- dojo.provide("dojo._base.Deferred");
- (function(){
- var mutator = function(){};
- var freeze = Object.freeze || function(){};
-
- dojo.Deferred = function(/*Function?*/canceller){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var result, finished, isError, head, nextListener;
- var promise = (this.promise = {});
-
- function complete(value){
- if(finished){
- throw new Error("This deferred has already been resolved");
- }
- result = value;
- finished = true;
- notify();
- }
- function notify(){
- var mutated;
- while(!mutated && nextListener){
- var listener = nextListener;
- nextListener = nextListener.next;
- if((mutated = (listener.progress == mutator))){
- finished = false;
- }
- var func = (isError ? listener.error : listener.resolved);
- if (func) {
- try {
- var newResult = func(result);
- if (newResult && typeof newResult.then === "function") {
- newResult.then(dojo.hitch(listener.deferred, "resolve"), dojo.hitch(listener.deferred, "reject"));
- continue;
- }
- var unchanged = mutated && newResult === undefined;
- if(mutated && !unchanged){
- isError = newResult instanceof Error;
- }
- listener.deferred[unchanged && isError ? "reject" : "resolve"](unchanged ? result : newResult);
- }
- catch (e) {
- listener.deferred.reject(e);
- }
- }else {
- if(isError){
- listener.deferred.reject(result);
- }else{
- listener.deferred.resolve(result);
- }
- }
- }
- }
-
- this.resolve = this.callback = function(value){
-
-
- this.fired = 0;
- this.results = [value, null];
- complete(value);
- };
-
-
-
- this.reject = this.errback = function(error){
-
-
- isError = true;
- this.fired = 1;
- complete(error);
- this.results = [null, error];
- if(!error || error.log !== false){
- (dojo.config.deferredOnError || function(x){ console.error(x); })(error);
- }
- };
-
- this.progress = function(update){
-
-
- var listener = nextListener;
- while(listener){
- var progress = listener.progress;
- progress && progress(update);
- listener = listener.next;
- }
- };
- this.addCallbacks = function(/*Function?*/callback, /*Function?*/errback){
- this.then(callback, errback, mutator);
- return this;
- };
-
- this.then = promise.then = function(/*Function?*/resolvedCallback, /*Function?*/errorCallback, /*Function?*/progressCallback){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var returnDeferred = progressCallback == mutator ? this : new dojo.Deferred(promise.cancel);
- var listener = {
- resolved: resolvedCallback,
- error: errorCallback,
- progress: progressCallback,
- deferred: returnDeferred
- };
- if(nextListener){
- head = head.next = listener;
- }
- else{
- nextListener = head = listener;
- }
- if(finished){
- notify();
- }
- return returnDeferred.promise;
- };
- var deferred = this;
- this.cancel = promise.cancel = function () {
-
-
- if(!finished){
- var error = canceller && canceller(deferred);
- if(!finished){
- if (!(error instanceof Error)) {
- error = new Error(error);
- }
- error.log = false;
- deferred.reject(error);
- }
- }
- };
- freeze(promise);
- };
- dojo.extend(dojo.Deferred, {
- addCallback: function (/*Function*/callback) {
- return this.addCallbacks(dojo.hitch.apply(dojo, arguments));
- },
-
- addErrback: function (/*Function*/errback) {
- return this.addCallbacks(null, dojo.hitch.apply(dojo, arguments));
- },
-
- addBoth: function (/*Function*/callback) {
- var enclosed = dojo.hitch.apply(dojo, arguments);
- return this.addCallbacks(enclosed, enclosed);
- },
- fired: -1
- });
- })();
- dojo.when = function(promiseOrValue, /*Function?*/callback, /*Function?*/errback, /*Function?*/progressHandler){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(promiseOrValue && typeof promiseOrValue.then === "function"){
- return promiseOrValue.then(callback, errback, progressHandler);
- }
- return callback(promiseOrValue);
- };
- }
- if(!dojo._hasResource["dojo._base.json"]){
- dojo._hasResource["dojo._base.json"] = true;
- dojo.provide("dojo._base.json");
- dojo.fromJson = function(/*String*/ json){
-
-
-
-
-
-
-
-
-
- return eval("(" + json + ")");
- };
- dojo._escapeString = function(/*String*/str){
-
-
-
-
- return ('"' + str.replace(/(["\\])/g, '\\$1') + '"').
- replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").
- replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r");
- };
- dojo.toJsonIndentStr = "\t";
- dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(it === undefined){
- return "undefined";
- }
- var objtype = typeof it;
- if(objtype == "number" || objtype == "boolean"){
- return it + "";
- }
- if(it === null){
- return "null";
- }
- if(dojo.isString(it)){
- return dojo._escapeString(it);
- }
-
- var recurse = arguments.callee;
-
-
- var newObj;
- _indentStr = _indentStr || "";
- var nextIndent = prettyPrint ? _indentStr + dojo.toJsonIndentStr : "";
- var tf = it.__json__||it.json;
- if(dojo.isFunction(tf)){
- newObj = tf.call(it);
- if(it !== newObj){
- return recurse(newObj, prettyPrint, nextIndent);
- }
- }
- if(it.nodeType && it.cloneNode){
-
-
-
- throw new Error("Can't serialize DOM nodes");
- }
- var sep = prettyPrint ? " " : "";
- var newLine = prettyPrint ? "\n" : "";
-
- if(dojo.isArray(it)){
- var res = dojo.map(it, function(obj){
- var val = recurse(obj, prettyPrint, nextIndent);
- if(typeof val != "string"){
- val = "undefined";
- }
- return newLine + nextIndent + val;
- });
- return "[" + res.join("," + sep) + newLine + _indentStr + "]";
- }
-
- if(objtype == "function"){
- return null;
- }
-
- var output = [], key;
- for(key in it){
- var keyStr, val;
- if(typeof key == "number"){
- keyStr = '"' + key + '"';
- }else if(typeof key == "string"){
- keyStr = dojo._escapeString(key);
- }else{
-
- continue;
- }
- val = recurse(it[key], prettyPrint, nextIndent);
- if(typeof val != "string"){
-
- continue;
- }
-
-
- output.push(newLine + nextIndent + keyStr + ":" + sep + val);
- }
- return "{" + output.join("," + sep) + newLine + _indentStr + "}";
- };
- }
- if(!dojo._hasResource["dojo._base.Color"]){
- dojo._hasResource["dojo._base.Color"] = true;
- dojo.provide("dojo._base.Color");
- (function(){
- var d = dojo;
- dojo.Color = function(/*Array|String|Object*/ color){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(color){ this.setColor(color); }
- };
-
-
-
- dojo.Color.named = {
- black: [0,0,0],
- silver: [192,192,192],
- gray: [128,128,128],
- white: [255,255,255],
- maroon: [128,0,0],
- red: [255,0,0],
- purple: [128,0,128],
- fuchsia: [255,0,255],
- green: [0,128,0],
- lime: [0,255,0],
- olive: [128,128,0],
- yellow: [255,255,0],
- navy: [0,0,128],
- blue: [0,0,255],
- teal: [0,128,128],
- aqua: [0,255,255],
- transparent: d.config.transparentColor || [255,255,255]
- };
- dojo.extend(dojo.Color, {
- r: 255, g: 255, b: 255, a: 1,
- _set: function(r, g, b, a){
- var t = this; t.r = r; t.g = g; t.b = b; t.a = a;
- },
- setColor: function(/*Array|String|Object*/ color){
-
-
-
-
-
-
-
-
- if(d.isString(color)){
- d.colorFromString(color, this);
- }else if(d.isArray(color)){
- d.colorFromArray(color, this);
- }else{
- this._set(color.r, color.g, color.b, color.a);
- if(!(color instanceof d.Color)){ this.sanitize(); }
- }
- return this;
- },
- sanitize: function(){
-
-
-
-
-
- return this;
- },
- toRgb: function(){
-
-
-
-
-
- var t = this;
- return [t.r, t.g, t.b];
- },
- toRgba: function(){
-
-
-
- var t = this;
- return [t.r, t.g, t.b, t.a];
- },
- toHex: function(){
-
-
-
-
- var arr = d.map(["r", "g", "b"], function(x){
- var s = this[x].toString(16);
- return s.length < 2 ? "0" + s : s;
- }, this);
- return "#" + arr.join("");
- },
- toCss: function(/*Boolean?*/ includeAlpha){
-
-
-
-
-
- var t = this, rgb = t.r + ", " + t.g + ", " + t.b;
- return (includeAlpha ? "rgba(" + rgb + ", " + t.a : "rgb(" + rgb) + ")";
- },
- toString: function(){
-
-
- return this.toCss(true);
- }
- });
- dojo.blendColors = function(
- /*dojo.Color*/ start,
- /*dojo.Color*/ end,
- /*Number*/ weight,
- /*dojo.Color?*/ obj
- ){
-
-
-
- var t = obj || new d.Color();
- d.forEach(["r", "g", "b", "a"], function(x){
- t[x] = start[x] + (end[x] - start[x]) * weight;
- if(x != "a"){ t[x] = Math.round(t[x]); }
- });
- return t.sanitize();
- };
- dojo.colorFromRgb = function(/*String*/ color, /*dojo.Color?*/ obj){
-
-
-
-
-
-
-
- var m = color.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);
- return m && dojo.colorFromArray(m[1].split(/\s*,\s*/), obj);
- };
- dojo.colorFromHex = function(/*String*/ color, /*dojo.Color?*/ obj){
-
-
-
-
-
-
-
-
-
-
-
-
-
- var t = obj || new d.Color(),
- bits = (color.length == 4) ? 4 : 8,
- mask = (1 << bits) - 1;
- color = Number("0x" + color.substr(1));
- if(isNaN(color)){
- return null;
- }
- d.forEach(["b", "g", "r"], function(x){
- var c = color & mask;
- color >>= bits;
- t[x] = bits == 4 ? 17 * c : c;
- });
- t.a = 1;
- return t;
- };
- dojo.colorFromArray = function(/*Array*/ a, /*dojo.Color?*/ obj){
-
-
-
-
-
-
-
- var t = obj || new d.Color();
- t._set(Number(a[0]), Number(a[1]), Number(a[2]), Number(a[3]));
- if(isNaN(t.a)){ t.a = 1; }
- return t.sanitize();
- };
- dojo.colorFromString = function(/*String*/ str, /*dojo.Color?*/ obj){
-
-
-
-
-
-
-
-
-
-
- var a = d.Color.named[str];
- return a && d.colorFromArray(a, obj) || d.colorFromRgb(str, obj) || d.colorFromHex(str, obj);
- };
- })();
- }
- if(!dojo._hasResource["dojo._base.window"]){
- dojo._hasResource["dojo._base.window"] = true;
- dojo.provide("dojo._base.window");
- dojo.doc = window["document"] || null;
- dojo.body = function(){
-
-
-
-
-
-
-
- return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0];
- };
- dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){
-
-
-
-
-
-
- dojo.global = globalObject;
- dojo.doc = globalDocument;
- };
- dojo.withGlobal = function( /*Object*/globalObject,
- /*Function*/callback,
- /*Object?*/thisObject,
- /*Array?*/cbArguments){
-
-
-
-
-
-
-
-
-
- var oldGlob = dojo.global;
- try{
- dojo.global = globalObject;
- return dojo.withDoc.call(null, globalObject.document, callback, thisObject, cbArguments);
- }finally{
- dojo.global = oldGlob;
- }
- };
- dojo.withDoc = function( /*DocumentElement*/documentObject,
- /*Function*/callback,
- /*Object?*/thisObject,
- /*Array?*/cbArguments){
-
-
-
-
-
-
-
- var oldDoc = dojo.doc,
- oldLtr = dojo._bodyLtr,
- oldQ = dojo.isQuirks;
- try{
- dojo.doc = documentObject;
- delete dojo._bodyLtr;
- dojo.isQuirks = dojo.doc.compatMode == "BackCompat";
- if(thisObject && typeof callback == "string"){
- callback = thisObject[callback];
- }
- return callback.apply(thisObject, cbArguments || []);
- }finally{
- dojo.doc = oldDoc;
- delete dojo._bodyLtr;
- if(oldLtr !== undefined){ dojo._bodyLtr = oldLtr; }
- dojo.isQuirks = oldQ;
- }
- };
- }
- if(!dojo._hasResource["dojo._base.event"]){
- dojo._hasResource["dojo._base.event"] = true;
- dojo.provide("dojo._base.event");
- (function(){
-
- var del = (dojo._event_listener = {
- add: function(/*DOMNode*/ node, /*String*/ name, /*Function*/ fp){
- if(!node){return;}
- name = del._normalizeEventName(name);
- fp = del._fixCallback(name, fp);
- if(
- !dojo.isIE &&
- (name == "mouseenter" || name == "mouseleave")
- ){
- var ofp = fp;
- name = (name == "mouseenter") ? "mouseover" : "mouseout";
- fp = function(e){
- if(!dojo.isDescendant(e.relatedTarget, node)){
-
- return ofp.call(this, e);
- }
- }
- }
- node.addEventListener(name, fp, false);
- return fp;
- },
- remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
-
-
-
-
-
-
-
-
- if(node){
- event = del._normalizeEventName(event);
- if(!dojo.isIE && (event == "mouseenter" || event == "mouseleave")){
- event = (event == "mouseenter") ? "mouseover" : "mouseout";
- }
- node.removeEventListener(event, handle, false);
- }
- },
- _normalizeEventName: function(/*String*/ name){
-
-
-
- return name.slice(0,2) =="on" ? name.slice(2) : name;
- },
- _fixCallback: function(/*String*/ name, fp){
-
-
-
-
-
- return name != "keypress" ? fp : function(e){ return fp.call(this, del._fixEvent(e, this)); };
- },
- _fixEvent: function(evt, sender){
-
-
-
- switch(evt.type){
- case "keypress":
- del._setKeyChar(evt);
- break;
- }
- return evt;
- },
- _setKeyChar: function(evt){
- evt.keyChar = evt.charCode >= 32 ? String.fromCharCode(evt.charCode) : '';
- evt.charOrCode = evt.keyChar || evt.keyCode;
- },
-
-
-
- _punctMap: {
- 106:42,
- 111:47,
- 186:59,
- 187:43,
- 188:44,
- 189:45,
- 190:46,
- 191:47,
- 192:96,
- 219:91,
- 220:92,
- 221:93,
- 222:39
- }
- });
-
-
- dojo.fixEvent = function(/*Event*/ evt, /*DOMNode*/ sender){
-
-
-
-
-
-
-
- return del._fixEvent(evt, sender);
- };
- dojo.stopEvent = function(/*Event*/ evt){
-
-
-
-
-
- evt.preventDefault();
- evt.stopPropagation();
-
- };
-
- var node_listener = dojo._listener;
-
-
- dojo._connect = function(obj, event, context, method, dontFix){
-
- var isNode = obj && (obj.nodeType||obj.attachEvent||obj.addEventListener);
-
-
- var lid = isNode ? (dontFix ? 2 : 1) : 0, l = [dojo._listener, del, node_listener][lid];
-
- var h = l.add(obj, event, dojo.hitch(context, method));
-
-
-
-
-
- return [ obj, event, h, lid ];
- };
- dojo._disconnect = function(obj, event, handle, listener){
- ([dojo._listener, del, node_listener][listener]).remove(obj, event, handle);
- };
-
-
-
-
- dojo.keys = {
-
-
- BACKSPACE: 8,
- TAB: 9,
- CLEAR: 12,
- ENTER: 13,
- SHIFT: 16,
- CTRL: 17,
- ALT: 18,
- META: dojo.isSafari ? 91 : 224,
- PAUSE: 19,
- CAPS_LOCK: 20,
- ESCAPE: 27,
- SPACE: 32,
- PAGE_UP: 33,
- PAGE_DOWN: 34,
- END: 35,
- HOME: 36,
- LEFT_ARROW: 37,
- UP_ARROW: 38,
- RIGHT_ARROW: 39,
- DOWN_ARROW: 40,
- INSERT: 45,
- DELETE: 46,
- HELP: 47,
- LEFT_WINDOW: 91,
- RIGHT_WINDOW: 92,
- SELECT: 93,
- NUMPAD_0: 96,
- NUMPAD_1: 97,
- NUMPAD_2: 98,
- NUMPAD_3: 99,
- NUMPAD_4: 100,
- NUMPAD_5: 101,
- NUMPAD_6: 102,
- NUMPAD_7: 103,
- NUMPAD_8: 104,
- NUMPAD_9: 105,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_PLUS: 107,
- NUMPAD_ENTER: 108,
- NUMPAD_MINUS: 109,
- NUMPAD_PERIOD: 110,
- NUMPAD_DIVIDE: 111,
- F1: 112,
- F2: 113,
- F3: 114,
- F4: 115,
- F5: 116,
- F6: 117,
- F7: 118,
- F8: 119,
- F9: 120,
- F10: 121,
- F11: 122,
- F12: 123,
- F13: 124,
- F14: 125,
- F15: 126,
- NUM_LOCK: 144,
- SCROLL_LOCK: 145,
-
- copyKey: dojo.isMac && !dojo.isAIR ? (dojo.isSafari ? 91 : 224 ) : 17
- };
-
- var evtCopyKey = dojo.isMac ? "metaKey" : "ctrlKey";
-
- dojo.isCopyKey = function(e){
-
-
-
-
- return e[evtCopyKey];
- };
-
- if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){
- dojo.mouseButtons = {
- LEFT: 1,
- MIDDLE: 4,
- RIGHT: 2,
-
- isButton: function(e, button){ return e.button & button; },
- isLeft: function(e){ return e.button & 1; },
- isMiddle: function(e){ return e.button & 4; },
- isRight: function(e){ return e.button & 2; }
- };
- }else{
- dojo.mouseButtons = {
- LEFT: 0,
- MIDDLE: 1,
- RIGHT: 2,
-
- isButton: function(e, button){ return e.button == button; },
- isLeft: function(e){ return e.button == 0; },
- isMiddle: function(e){ return e.button == 1; },
- isRight: function(e){ return e.button == 2; }
- };
- }
-
-
- if(dojo.isIE){
- var _trySetKeyCode = function(e, code){
- try{
-
-
- return (e.keyCode = code);
- }catch(e){
- return 0;
- }
- };
-
- var iel = dojo._listener;
- var listenersName = (dojo._ieListenersName = "_" + dojo._scopeName + "_listeners");
-
- if(!dojo.config._allow_leaks){
-
- node_listener = iel = dojo._ie_listener = {
-
-
- handlers: [],
-
- add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){
- source = source || dojo.global;
- var f = source[method];
- if(!f||!f[listenersName]){
- var d = dojo._getIeDispatcher();
-
- d.target = f && (ieh.push(f) - 1);
-
- d[listenersName] = [];
-
- f = source[method] = d;
- }
- return f[listenersName].push(ieh.push(listener) - 1) ;
- },
-
- remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){
- var f = (source||dojo.global)[method], l = f && f[listenersName];
- if(f && l && handle--){
- delete ieh[l[handle]];
- delete l[handle];
- }
- }
- };
-
- var ieh = iel.handlers;
- }
- dojo.mixin(del, {
- add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){
- if(!node){return;}
- event = del._normalizeEventName(event);
- if(event=="onkeypress"){
-
-
-
- var kd = node.onkeydown;
- if(!kd || !kd[listenersName] || !kd._stealthKeydownHandle){
- var h = del.add(node, "onkeydown", del._stealthKeyDown);
- kd = node.onkeydown;
- kd._stealthKeydownHandle = h;
- kd._stealthKeydownRefs = 1;
- }else{
- kd._stealthKeydownRefs++;
- }
- }
- return iel.add(node, event, del._fixCallback(fp));
- },
- remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
- event = del._normalizeEventName(event);
- iel.remove(node, event, handle);
- if(event=="onkeypress"){
- var kd = node.onkeydown;
- if(--kd._stealthKeydownRefs <= 0){
- iel.remove(node, "onkeydown", kd._stealthKeydownHandle);
- delete kd._stealthKeydownHandle;
- }
- }
- },
- _normalizeEventName: function(/*String*/ eventName){
-
-
-
- return eventName.slice(0,2) != "on" ? "on" + eventName : eventName;
- },
- _nop: function(){},
- _fixEvent: function(/*Event*/ evt, /*DOMNode*/ sender){
-
-
-
-
-
-
-
- if(!evt){
- var w = sender && (sender.ownerDocument || sender.document || sender).parentWindow || window;
- evt = w.event;
- }
- if(!evt){return(evt);}
- evt.target = evt.srcElement;
- evt.currentTarget = (sender || evt.srcElement);
- evt.layerX = evt.offsetX;
- evt.layerY = evt.offsetY;
-
-
-
- var se = evt.srcElement, doc = (se && se.ownerDocument) || document;
-
-
- var docBody = ((dojo.isIE < 6) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement;
- var offset = dojo._getIeDocumentElementOffset();
- evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(docBody.scrollLeft || 0) - offset.x;
- evt.pageY = evt.clientY + (docBody.scrollTop || 0) - offset.y;
- if(evt.type == "mouseover"){
- evt.relatedTarget = evt.fromElement;
- }
- if(evt.type == "mouseout"){
- evt.relatedTarget = evt.toElement;
- }
- if (dojo.isIE < 9 || dojo.isQuirks) {
- evt.stopPropagation = del._stopPropagation;
- evt.preventDefault = del._preventDefault;
- }
- return del._fixKeys(evt);
- },
- _fixKeys: function(evt){
- switch(evt.type){
- case "keypress":
- var c = ("charCode" in evt ? evt.charCode : evt.keyCode);
- if (c==10){
-
- c=0;
- evt.keyCode = 13;
- }else if(c==13||c==27){
- c=0;
- }else if(c==3){
- c=99;
- }
-
-
- evt.charCode = c;
- del._setKeyChar(evt);
- break;
- }
- return evt;
- },
- _stealthKeyDown: function(evt){
-
-
- var kp = evt.currentTarget.onkeypress;
-
- if(!kp || !kp[listenersName]){ return; }
-
- var k=evt.keyCode;
-
-
- var unprintable = (k!=13 || (dojo.isIE >= 9 && !dojo.isQuirks)) && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222);
-
- if(unprintable||evt.ctrlKey){
- var c = unprintable ? 0 : k;
- if(evt.ctrlKey){
- if(k==3 || k==13){
- return;
- }else if(c>95 && c<106){
- c -= 48;
- }else if((!evt.shiftKey)&&(c>=65&&c<=90)){
- c += 32;
- }else{
- c = del._punctMap[c] || c;
- }
- }
-
- var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c});
- kp.call(evt.currentTarget, faux);
- if(dojo.isIE < 9 || (dojo.isIE && dojo.isQuirks)){
- evt.cancelBubble = faux.cancelBubble;
- }
- evt.returnValue = faux.returnValue;
- _trySetKeyCode(evt, faux.keyCode);
- }
- },
-
- _stopPropagation: function(){
- this.cancelBubble = true;
- },
- _preventDefault: function(){
-
-
-
-
-
-
- this.bubbledKeyCode = this.keyCode;
- if(this.ctrlKey){_trySetKeyCode(this, 0);}
- this.returnValue = false;
- }
- });
-
-
- dojo.stopEvent = (dojo.isIE < 9 || dojo.isQuirks) ? function(evt){
- evt = evt || window.event;
- del._stopPropagation.call(evt);
- del._preventDefault.call(evt);
- } : dojo.stopEvent;
- }
-
- del._synthesizeEvent = function(evt, props){
- var faux = dojo.mixin({}, evt, props);
- del._setKeyChar(faux);
-
-
-
- faux.preventDefault = function(){ evt.preventDefault(); };
- faux.stopPropagation = function(){ evt.stopPropagation(); };
- return faux;
- };
-
-
- if(dojo.isOpera){
- dojo.mixin(del, {
- _fixEvent: function(evt, sender){
- switch(evt.type){
- case "keypress":
- var c = evt.which;
- if(c==3){
- c=99;
- }
-
-
- c = c<41 && !evt.shiftKey ? 0 : c;
- if(evt.ctrlKey && !evt.shiftKey && c>=65 && c<=90){
-
- c += 32;
- }
- return del._synthesizeEvent(evt, { charCode: c });
- }
- return evt;
- }
- });
- }
-
-
- if(dojo.isWebKit){
- del._add = del.add;
- del._remove = del.remove;
- dojo.mixin(del, {
- add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){
- if(!node){return;}
- var handle = del._add(node, event, fp);
- if(del._normalizeEventName(event) == "keypress"){
-
-
-
- handle._stealthKeyDownHandle = del._add(node, "keydown", function(evt){
-
-
- var k=evt.keyCode;
-
-
- var unprintable = k!=13 && k!=32 && (k<48 || k>90) && (k<96 || k>111) && (k<186 || k>192) && (k<219 || k>222);
-
- if(unprintable || evt.ctrlKey){
- var c = unprintable ? 0 : k;
- if(evt.ctrlKey){
- if(k==3 || k==13){
- return;
- }else if(c>95 && c<106){
- c -= 48;
- }else if(!evt.shiftKey && c>=65 && c<=90){
- c += 32;
- }else{
- c = del._punctMap[c] || c;
- }
- }
-
- var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c});
- fp.call(evt.currentTarget, faux);
- }
- });
- }
- return handle;
- },
- remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){
- if(node){
- if(handle._stealthKeyDownHandle){
- del._remove(node, "keydown", handle._stealthKeyDownHandle);
- }
- del._remove(node, event, handle);
- }
- },
- _fixEvent: function(evt, sender){
- switch(evt.type){
- case "keypress":
- if(evt.faux){ return evt; }
- var c = evt.charCode;
- c = c>=32 ? c : 0;
- return del._synthesizeEvent(evt, {charCode: c, faux: true});
- }
- return evt;
- }
- });
- }
- })();
- if(dojo.isIE){
-
-
-
- dojo._ieDispatcher = function(args, sender){
- var ap = Array.prototype,
- h = dojo._ie_listener.handlers,
- c = args.callee,
- ls = c[dojo._ieListenersName],
- t = h[c.target];
-
- var r = t && t.apply(sender, args);
-
- var lls = [].concat(ls);
-
- for(var i in lls){
- var f = h[lls[i]];
- if(!(i in ap) && f){
- f.apply(sender, args);
- }
- }
- return r;
- };
- dojo._getIeDispatcher = function(){
-
- return new Function(dojo._scopeName + "._ieDispatcher(arguments, this)");
- };
-
- dojo._event_listener._fixCallback = function(fp){
- var f = dojo._event_listener._fixEvent;
- return function(e){ return fp.call(this, f(e, this)); };
- };
- }
- }
- if(!dojo._hasResource["dojo._base.html"]){
- dojo._hasResource["dojo._base.html"] = true;
- dojo.provide("dojo._base.html");
- try{
- document.execCommand("BackgroundImageCache", false, true);
- }catch(e){
-
- }
- if(dojo.isIE){
- dojo.byId = function(id, doc){
- if(typeof id != "string"){
- return id;
- }
- var _d = doc || dojo.doc, te = _d.getElementById(id);
-
-
- if(te && (te.attributes.id.value == id || te.id == id)){
- return te;
- }else{
- var eles = _d.all[id];
- if(!eles || eles.nodeName){
- eles = [eles];
- }
-
- var i=0;
- while((te=eles[i++])){
- if((te.attributes && te.attributes.id && te.attributes.id.value == id)
- || te.id == id){
- return te;
- }
- }
- }
- };
- }else{
- dojo.byId = function(id, doc){
-
-
- return ((typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id) || null;
- };
- }
- (function(){
- var d = dojo;
- var byId = d.byId;
- function _destroy(/*DomNode*/ node, /*DomNode*/ parent){
- if(node.firstChild){
- _empty(node);
- }
- if(parent){
-
- d.isIE && parent.canHaveChildren && 'removeNode' in node ? node.removeNode(false) :
- parent.removeChild(node);
- }
- }
- dojo._destroyElement = dojo.destroy = function(/*String|DomNode*/node){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- if(!node){ return; }
- _destroy(node, node.parentNode);
- };
- dojo.isDescendant = function(/*DomNode|String*/node, /*DomNode|String*/ancestor){
-
-
-
-
-
-
-
-
- try{
- node = byId(node);
- ancestor = byId(ancestor);
- while(node){
- if(node == ancestor){
- return true;
- }
- node = node.parentNode;
- }
- }catch(e){ }
- return false;
- };
- dojo.setSelectable = function(/*DomNode|String*/node, /*Boolean*/selectable){
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- if(d.isMozilla){
- node.style.MozUserSelect = selectable ? "" : "none";
- }else if(d.isKhtml || d.isWebKit){
- node.style.KhtmlUserSelect = selectable ? "auto" : "none";
- }else if(d.isIE){
- var v = (node.unselectable = selectable ? "" : "on");
- d.query("*", node).forEach("item.unselectable = '"+v+"'");
- }
-
- };
- var _insertBefore = function(/*DomNode*/node, /*DomNode*/ref){
- var parent = ref.parentNode;
- if(parent){
- parent.insertBefore(node, ref);
- }
- };
- var _insertAfter = function(/*DomNode*/node, /*DomNode*/ref){
-
-
- var parent = ref.parentNode;
- if(parent){
- if(parent.lastChild == ref){
- parent.appendChild(node);
- }else{
- parent.insertBefore(node, ref.nextSibling);
- }
- }
- };
- dojo.place = function(node, refNode, position){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- refNode = byId(refNode);
- if(typeof node == "string"){
- node = /^\s*</.test(node) ? d._toDom(node, refNode.ownerDocument) : byId(node);
- }
- if(typeof position == "number"){
- var cn = refNode.childNodes;
- if(!cn.length || cn.length <= position){
- refNode.appendChild(node);
- }else{
- _insertBefore(node, cn[position < 0 ? 0 : position]);
- }
- }else{
- switch(position){
- case "before":
- _insertBefore(node, refNode);
- break;
- case "after":
- _insertAfter(node, refNode);
- break;
- case "replace":
- refNode.parentNode.replaceChild(node, refNode);
- break;
- case "only":
- d.empty(refNode);
- refNode.appendChild(node);
- break;
- case "first":
- if(refNode.firstChild){
- _insertBefore(node, refNode.firstChild);
- break;
- }
-
- default:
- refNode.appendChild(node);
- }
- }
- return node;
- };
-
-
-
-
-
-
- dojo.boxModel = "content-box";
-
-
-
-
-
-
-
- if(d.isIE ){
-
- d.boxModel = document.compatMode == "BackCompat" ? "border-box" : "content-box";
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var gcs;
- if(d.isWebKit){
- gcs = function(/*DomNode*/node){
- var s;
- if(node.nodeType == 1){
- var dv = node.ownerDocument.defaultView;
- s = dv.getComputedStyle(node, null);
- if(!s && node.style){
- node.style.display = "";
- s = dv.getComputedStyle(node, null);
- }
- }
- return s || {};
- };
- }else if(d.isIE && (d.isIE < 9 || d.isQuirks)){
- gcs = function(node){
-
- return node.nodeType == 1 ? node.currentStyle : {};
- };
- }else{
- gcs = function(node){
- return node.nodeType == 1 ?
- node.ownerDocument.defaultView.getComputedStyle(node, null) : {};
- };
- }
- dojo.getComputedStyle = gcs;
- if(!d.isIE){
- d._toPixelValue = function(element, value){
-
-
- return parseFloat(value) || 0;
- };
- }else{
- d._toPixelValue = function(element, avalue){
- if(!avalue){ return 0; }
-
- if(avalue == "medium"){ return 4; }
-
-
- if(avalue.slice && avalue.slice(-2) == 'px'){ return parseFloat(avalue); }
- with(element){
- var sLeft = style.left;
- var rsLeft = runtimeStyle.left;
- runtimeStyle.left = currentStyle.left;
- try{
-
-
-
-
- style.left = avalue;
- avalue = style.pixelLeft;
- }catch(e){
- avalue = 0;
- }
- style.left = sLeft;
- runtimeStyle.left = rsLeft;
- }
- return avalue;
- };
- }
- var px = d._toPixelValue;
-
-
- var astr = "DXImageTransform.Microsoft.Alpha";
- var af = function(n, f){
- try{
- return n.filters.item(astr);
- }catch(e){
- return f ? {} : null;
- }
- };
- dojo._getOpacity =
- d.isIE < 9 || (d.isIE < 10 && d.isQuirks) ? function(node){
- try{
- return af(node).Opacity / 100;
- }catch(e){
- return 1;
- }
- } :
- function(node){
- return gcs(node).opacity;
- };
-
- dojo._setOpacity =
- d.isIE < 9 || (d.isIE < 10 && d.isQuirks) ? function(/*DomNode*/node, /*Number*/opacity){
- var ov = opacity * 100, opaque = opacity == 1;
- node.style.zoom = opaque ? "" : 1;
- if(!af(node)){
- if(opaque){
- return opacity;
- }
- node.style.filter += " progid:" + astr + "(Opacity=" + ov + ")";
- }else{
- af(node, 1).Opacity = ov;
- }
-
-
- af(node, 1).Enabled = !opaque;
- if(node.nodeName.toLowerCase() == "tr"){
- d.query("> td", node).forEach(function(i){
- d._setOpacity(i, opacity);
- });
- }
- return opacity;
- } :
- function(node, opacity){
- return node.style.opacity = opacity;
- };
- var _pixelNamesCache = {
- left: true, top: true
- };
- var _pixelRegExp = /margin|padding|width|height|max|min|offset/;
- var _toStyleValue = function(node, type, value){
- type = type.toLowerCase();
- if(d.isIE){
- if(value == "auto"){
- if(type == "height"){ return node.offsetHeight; }
- if(type == "width"){ return node.offsetWidth; }
- }
- if(type == "fontweight"){
- switch(value){
- case 700: return "bold";
- case 400:
- default: return "normal";
- }
- }
- }
- if(!(type in _pixelNamesCache)){
- _pixelNamesCache[type] = _pixelRegExp.test(type);
- }
- return _pixelNamesCache[type] ? px(node, value) : value;
- };
- var _floatStyle = d.isIE ? "styleFloat" : "cssFloat",
- _floatAliases = { "cssFloat": _floatStyle, "styleFloat": _floatStyle, "float": _floatStyle }
- ;
-
- dojo.style = function( /*DomNode|String*/ node,
- /*String?|Object?*/ style,
- /*String?*/ value){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var n = byId(node), args = arguments.length, op = (style == "opacity");
- style = _floatAliases[style] || style;
- if(args == 3){
- return op ? d._setOpacity(n, value) : n.style[style] = value;
- }
- if(args == 2 && op){
- return d._getOpacity(n);
- }
- var s = gcs(n);
- if(args == 2 && typeof style != "string"){
- for(var x in style){
- d.style(node, x, style[x]);
- }
- return s;
- }
- return (args == 1) ? s : _toStyleValue(n, style, s[style] || n.style[style]);
- };
-
-
-
- dojo._getPadExtents = function(/*DomNode*/n, /*Object*/computedStyle){
-
-
-
-
-
-
-
-
-
-
-
-
- var
- s = computedStyle||gcs(n),
- l = px(n, s.paddingLeft),
- t = px(n, s.paddingTop);
- return {
- l: l,
- t: t,
- w: l+px(n, s.paddingRight),
- h: t+px(n, s.paddingBottom)
- };
- };
- dojo._getBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){
-
-
-
-
-
-
-
-
-
-
-
- var
- ne = "none",
- s = computedStyle||gcs(n),
- bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0),
- bt = (s.borderTopStyle != ne ? px(n, s.borderTopWidth) : 0);
- return {
- l: bl,
- t: bt,
- w: bl + (s.borderRightStyle!=ne ? px(n, s.borderRightWidth) : 0),
- h: bt + (s.borderBottomStyle!=ne ? px(n, s.borderBottomWidth) : 0)
- };
- };
- dojo._getPadBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){
-
-
-
-
-
-
-
-
-
-
-
- var
- s = computedStyle||gcs(n),
- p = d._getPadExtents(n, s),
- b = d._getBorderExtents(n, s);
- return {
- l: p.l + b.l,
- t: p.t + b.t,
- w: p.w + b.w,
- h: p.h + b.h
- };
- };
- dojo._getMarginExtents = function(n, computedStyle){
-
-
-
-
-
-
-
-
-
-
-
- var
- s = computedStyle||gcs(n),
- l = px(n, s.marginLeft),
- t = px(n, s.marginTop),
- r = px(n, s.marginRight),
- b = px(n, s.marginBottom);
- if(d.isWebKit && (s.position != "absolute")){
-
-
-
-
-
-
- r = l;
- }
- return {
- l: l,
- t: t,
- w: l+r,
- h: t+b
- };
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
- dojo._getMarginBox = function(/*DomNode*/node, /*Object*/computedStyle){
-
-
-
- var s = computedStyle || gcs(node), me = d._getMarginExtents(node, s);
- var l = node.offsetLeft - me.l, t = node.offsetTop - me.t, p = node.parentNode;
- if(d.isMoz){
-
-
-
-
-
- var sl = parseFloat(s.left), st = parseFloat(s.top);
- if(!isNaN(sl) && !isNaN(st)){
- l = sl, t = st;
- }else{
-
-
- if(p && p.style){
- var pcs = gcs(p);
- if(pcs.overflow != "visible"){
- var be = d._getBorderExtents(p, pcs);
- l += be.l, t += be.t;
- }
- }
- }
- }else if(d.isOpera || (d.isIE == 8 && !d.isQuirks)){
-
- if(p){
- be = d._getBorderExtents(p);
- l -= be.l;
- t -= be.t;
- }
- }
- return {
- l: l,
- t: t,
- w: node.offsetWidth + me.w,
- h: node.offsetHeight + me.h
- };
- }
-
- dojo._getMarginSize = function(/*DomNode*/node, /*Object*/computedStyle){
-
-
-
- node = byId(node);
- var me = d._getMarginExtents(node, computedStyle || gcs(node));
- var size = node.getBoundingClientRect();
- return {
- w: (size.right - size.left) + me.w,
- h: (size.bottom - size.top) + me.h
- }
- }
- dojo._getContentBox = function(node, computedStyle){
-
-
-
-
-
-
- var s = computedStyle || gcs(node),
- pe = d._getPadExtents(node, s),
- be = d._getBorderExtents(node, s),
- w = node.clientWidth,
- h
- ;
- if(!w){
- w = node.offsetWidth, h = node.offsetHeight;
- }else{
- h = node.clientHeight, be.w = be.h = 0;
- }
-
- if(d.isOpera){ pe.l += be.l; pe.t += be.t; }
- return {
- l: pe.l,
- t: pe.t,
- w: w - pe.w - be.w,
- h: h - pe.h - be.h
- };
- };
- dojo._getBorderBox = function(node, computedStyle){
- var s = computedStyle || gcs(node),
- pe = d._getPadExtents(node, s),
- cb = d._getContentBox(node, s)
- ;
- return {
- l: cb.l - pe.l,
- t: cb.t - pe.t,
- w: cb.w + pe.w,
- h: cb.h + pe.h
- };
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- dojo._setBox = function(/*DomNode*/node, /*Number?*/l, /*Number?*/t, /*Number?*/w, /*Number?*/h, /*String?*/u){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- u = u || "px";
- var s = node.style;
- if(!isNaN(l)){ s.left = l + u; }
- if(!isNaN(t)){ s.top = t + u; }
- if(w >= 0){ s.width = w + u; }
- if(h >= 0){ s.height = h + u; }
- };
- dojo._isButtonTag = function(/*DomNode*/node) {
-
-
- return node.tagName == "BUTTON"
- || node.tagName=="INPUT" && (node.getAttribute("type")||'').toUpperCase() == "BUTTON";
- };
- dojo._usesBorderBox = function(/*DomNode*/node){
-
-
-
-
-
-
-
- var n = node.tagName;
- return d.boxModel=="border-box" || n=="TABLE" || d._isButtonTag(node);
- };
- dojo._setContentSize = function(/*DomNode*/node, /*Number*/widthPx, /*Number*/heightPx, /*Object*/computedStyle){
-
-
-
- if(d._usesBorderBox(node)){
- var pb = d._getPadBorderExtents(node, computedStyle);
- if(widthPx >= 0){ widthPx += pb.w; }
- if(heightPx >= 0){ heightPx += pb.h; }
- }
- d._setBox(node, NaN, NaN, widthPx, heightPx);
- };
- dojo._setMarginBox = function(/*DomNode*/node, /*Number?*/leftPx, /*Number?*/topPx,
- /*Number?*/widthPx, /*Number?*/heightPx,
- /*Object*/computedStyle){
-
-
-
-
-
- var s = computedStyle || gcs(node),
-
-
-
- bb = d._usesBorderBox(node),
- pb = bb ? _nilExtents : d._getPadBorderExtents(node, s)
- ;
- if(d.isWebKit){
-
-
-
- if(d._isButtonTag(node)){
- var ns = node.style;
- if(widthPx >= 0 && !ns.width) { ns.width = "4px"; }
- if(heightPx >= 0 && !ns.height) { ns.height = "4px"; }
- }
- }
- var mb = d._getMarginExtents(node, s);
- if(widthPx >= 0){ widthPx = Math.max(widthPx - pb.w - mb.w, 0); }
- if(heightPx >= 0){ heightPx = Math.max(heightPx - pb.h - mb.h, 0); }
- d._setBox(node, leftPx, topPx, widthPx, heightPx);
- };
- var _nilExtents = { l:0, t:0, w:0, h:0 };
-
- dojo.marginBox = function(/*DomNode|String*/node, /*Object?*/box){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var n = byId(node), s = gcs(n), b = box;
- return !b ? d._getMarginBox(n, s) : d._setMarginBox(n, b.l, b.t, b.w, b.h, s);
- };
- dojo.contentBox = function(/*DomNode|String*/node, /*Object?*/box){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var n = byId(node), s = gcs(n), b = box;
- return !b ? d._getContentBox(n, s) : d._setContentSize(n, b.w, b.h, s);
- };
-
-
-
- var _sumAncestorProperties = function(node, prop){
- if(!(node = (node||0).parentNode)){return 0;}
- var val, retVal = 0, _b = d.body();
- while(node && node.style){
- if(gcs(node).position == "fixed"){
- return 0;
- }
- val = node[prop];
- if(val){
- retVal += val - 0;
-
-
- if(node == _b){ break; }
- }
- node = node.parentNode;
- }
- return retVal;
- };
- dojo._docScroll = function(){
- var n = d.global;
- return "pageXOffset" in n
- ? { x:n.pageXOffset, y:n.pageYOffset }
- : (n = d.isQuirks? d.doc.body : d.doc.documentElement, { x:d._fixIeBiDiScrollLeft(n.scrollLeft || 0), y:n.scrollTop || 0 });
- };
- dojo._isBodyLtr = function(){
- return "_bodyLtr" in d? d._bodyLtr :
- d._bodyLtr = ((d.body() && d.body().dir) || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr";
- };
- dojo._getIeDocumentElementOffset = function(){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var de = d.doc.documentElement;
- if(d.isIE < 8){
- var r = de.getBoundingClientRect();
-
- var l = r.left,
- t = r.top;
- if(d.isIE < 7){
- l += de.clientLeft;
- t += de.clientTop;
- }
- return {
- x: l < 0? 0 : l,
- y: t < 0? 0 : t
- };
- }else{
- return {
- x: 0,
- y: 0
- };
- }
- };
-
- dojo._fixIeBiDiScrollLeft = function(/*Integer*/ scrollLeft){
-
-
-
-
- var ie = d.isIE;
- if(ie && !d._isBodyLtr()){
- var qk = d.isQuirks,
- de = qk ? d.doc.body : d.doc.documentElement;
- if(ie == 6 && !qk && d.global.frameElement && de.scrollHeight > de.clientHeight){
- scrollLeft += de.clientLeft;
- }
- return (ie < 8 || qk) ? (scrollLeft + de.clientWidth - de.scrollWidth) : -scrollLeft;
- }
- return scrollLeft;
- };
-
- dojo._abs = dojo.position = function(/*DomNode*/node, /*Boolean?*/includeScroll){
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- var db = d.body(),
- dh = db.parentNode,
- ret = node.getBoundingClientRect();
- ret = { x: ret.left, y: ret.top, w: ret.right - ret.left, h: ret.bottom - ret.top };
- if(d.isIE < 9){
-
- var offset = d._getIeDocumentElementOffset();
-
- ret.x -= offset.x + (d.isQuirks ? db.clientLeft+db.offsetLeft : 0);
- ret.y -= offset.y + (d.isQuirks ? db.clientTop+db.offsetTop : 0);
- }else if(d.isFF == 3){
-
-
- var cs = gcs(dh);
- ret.x -= px(dh, cs.marginLeft) + px(dh, cs.borderLeftWidth);
- ret.y -= px(dh, cs.marginTop) + px(dh, cs.borderTopWidth);
- }
-
- if(includeScroll){
- var scroll = d._docScroll();
- ret.x += scroll.x;
- ret.y += scroll.y;
- }
- return ret;
- };
- dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var n = byId(node), s = gcs(n), mb = d._getMarginBox(n, s);
- var abs = d.position(n, includeScroll);
- mb.x = abs.x;
- mb.y = abs.y;
- return mb;
- };
-
-
-
-
- var _propNames = {
-
- "class": "className",
- "for": "htmlFor",
-
- tabindex: "tabIndex",
- readonly: "readOnly",
- colspan: "colSpan",
- frameborder: "frameBorder",
- rowspan: "rowSpan",
- valuetype: "valueType"
- },
- _attrNames = {
-
- classname: "class",
- htmlfor: "for",
-
- tabindex: "tabIndex",
- readonly: "readOnly"
- },
- _forcePropNames = {
- innerHTML: 1,
- className: 1,
- htmlFor: d.isIE,
- value: 1
- };
- var _fixAttrName = function(/*String*/ name){
- return _attrNames[name.toLowerCase()] || name;
- };
- var _hasAttr = function(node, name){
- var attr = node.getAttributeNode && node.getAttributeNode(name);
- return attr && attr.specified;
- };
-
-
-
-
- dojo.hasAttr = function(/*DomNode|String*/node, /*String*/name){
-
-
-
-
-
-
-
-
-
-
- var lc = name.toLowerCase();
- return _forcePropNames[_propNames[lc] || name] || _hasAttr(byId(node), _attrNames[lc] || name);
- };
- var _evtHdlrMap = {}, _ctr = 0,
- _attrId = dojo._scopeName + "attrid",
-
- _roInnerHtml = {col: 1, colgroup: 1,
-
- table: 1, tbody: 1, tfoot: 1, thead: 1, tr: 1, title: 1};
- dojo.attr = function(/*DomNode|String*/node, /*String|Object*/name, /*String?*/value){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- var args = arguments.length, prop;
- if(args == 2 && typeof name != "string"){
-
- for(var x in name){
- d.attr(node, x, name[x]);
- }
- return node;
- }
- var lc = name.toLowerCase(),
- propName = _propNames[lc] || name,
- forceProp = _forcePropNames[propName],
- attrName = _attrNames[lc] || name;
- if(args == 3){
-
- do{
- if(propName == "style" && typeof value != "string"){
-
- d.style(node, value);
- break;
- }
- if(propName == "innerHTML"){
-
- if(d.isIE && node.tagName.toLowerCase() in _roInnerHtml){
- d.empty(node);
- node.appendChild(d._toDom(value, node.ownerDocument));
- }else{
- node[propName] = value;
- }
- break;
- }
- if(d.isFunction(value)){
-
-
- var attrId = d.attr(node, _attrId);
- if(!attrId){
- attrId = _ctr++;
- d.attr(node, _attrId, attrId);
- }
- if(!_evtHdlrMap[attrId]){
- _evtHdlrMap[attrId] = {};
- }
- var h = _evtHdlrMap[attrId][propName];
- if(h){
- d.disconnect(h);
- }else{
- try{
- delete node[propName];
- }catch(e){}
- }
-
- _evtHdlrMap[attrId][propName] = d.connect(node, propName, value);
- break;
- }
- if(forceProp || typeof value == "boolean"){
-
-
- node[propName] = value;
- break;
- }
-
- node.setAttribute(attrName, value);
- }while(false);
- return node;
- }
-
-
-
- value = node[propName];
- if(forceProp && typeof value != "undefined"){
-
- return value;
- }
- if(propName != "href" && (typeof value == "boolean" || d.isFunction(value))){
-
- return value;
- }
-
-
- return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null;
- };
- dojo.removeAttr = function(/*DomNode|String*/ node, /*String*/ name){
-
-
-
-
-
-
- byId(node).removeAttribute(_fixAttrName(name));
- };
- dojo.getNodeProp = function(/*DomNode|String*/ node, /*String*/ name){
-
-
-
-
-
-
- node = byId(node);
- var lc = name.toLowerCase(),
- propName = _propNames[lc] || name;
- if((propName in node) && propName != "href"){
-
- return node[propName];
- }
-
- var attrName = _attrNames[lc] || name;
- return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null;
- };
- dojo.create = function(tag, attrs, refNode, pos){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var doc = d.doc;
- if(refNode){
- refNode = byId(refNode);
- doc = refNode.ownerDocument;
- }
- if(typeof tag == "string"){
- tag = doc.createElement(tag);
- }
- if(attrs){ d.attr(tag, attrs); }
- if(refNode){ d.place(tag, refNode, pos); }
- return tag;
- };
-
- function _empty(/*DomNode*/ node){
- if(node.canHaveChildren){
- try{
-
- node.innerHTML = "";
- return;
- }catch(e){
-
-
- }
- }
-
- for(var c; c = node.lastChild;){
- _destroy(c, node);
- }
- }
- d.empty = function(node){
- _empty(byId(node));
- };
-
-
- var tagWrap = {
- option: ["select"],
- tbody: ["table"],
- thead: ["table"],
- tfoot: ["table"],
- tr: ["table", "tbody"],
- td: ["table", "tbody", "tr"],
- th: ["table", "thead", "tr"],
- legend: ["fieldset"],
- caption: ["table"],
- colgroup: ["table"],
- col: ["table", "colgroup"],
- li: ["ul"]
- },
- reTag = /<\s*([\w\:]+)/,
- masterNode = {}, masterNum = 0,
- masterName = "__" + d._scopeName + "ToDomId";
-
-
- for(var param in tagWrap){
- if(tagWrap.hasOwnProperty(param)){
- var tw = tagWrap[param];
- tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">";
- tw.post = "</" + tw.reverse().join("></") + ">";
-
-
- }
- }
- d._toDom = function(frag, doc){
-
-
- doc = doc || d.doc;
- var masterId = doc[masterName];
- if(!masterId){
- doc[masterName] = masterId = ++masterNum + "";
- masterNode[masterId] = doc.createElement("div");
- }
-
- frag += "";
-
- var match = frag.match(reTag),
- tag = match ? match[1].toLowerCase() : "",
- master = masterNode[masterId],
- wrap, i, fc, df;
- if(match && tagWrap[tag]){
- wrap = tagWrap[tag];
- master.innerHTML = wrap.pre + frag + wrap.post;
- for(i = wrap.length; i; --i){
- master = master.firstChild;
- }
- }else{
- master.innerHTML = frag;
- }
-
- if(master.childNodes.length == 1){
- return master.removeChild(master.firstChild);
- }
-
- df = doc.createDocumentFragment();
- while((fc = master.firstChild)){
- df.appendChild(fc);
- }
- return df;
- };
-
-
-
- var _className = "className";
- dojo.hasClass = function(/*DomNode|String*/node, /*String*/classStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
- return ((" "+ byId(node)[_className] +" ").indexOf(" " + classStr + " ") >= 0);
- };
- var spaces = /\s+/, a1 = [""],
- fakeNode = {},
- str2array = function(s){
- if(typeof s == "string" || s instanceof String){
- if(s.indexOf(" ") < 0){
- a1[0] = s;
- return a1;
- }else{
- return s.split(spaces);
- }
- }
-
- return s || "";
- };
- dojo.addClass = function(/*DomNode|String*/node, /*String|Array*/classStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- classStr = str2array(classStr);
- var cls = node[_className], oldLen;
- cls = cls ? " " + cls + " " : " ";
- oldLen = cls.length;
- for(var i = 0, len = classStr.length, c; i < len; ++i){
- c = classStr[i];
- if(c && cls.indexOf(" " + c + " ") < 0){
- cls += c + " ";
- }
- }
- if(oldLen < cls.length){
- node[_className] = cls.substr(1, cls.length - 2);
- }
- };
- dojo.removeClass = function(/*DomNode|String*/node, /*String|Array?*/classStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- var cls;
- if(classStr !== undefined){
- classStr = str2array(classStr);
- cls = " " + node[_className] + " ";
- for(var i = 0, len = classStr.length; i < len; ++i){
- cls = cls.replace(" " + classStr[i] + " ", " ");
- }
- cls = d.trim(cls);
- }else{
- cls = "";
- }
- if(node[_className] != cls){ node[_className] = cls; }
- };
- dojo.replaceClass = function(/*DomNode|String*/node, /*String|Array*/addClassStr, /*String|Array?*/removeClassStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- node = byId(node);
- fakeNode.className = node.className;
- dojo.removeClass(fakeNode, removeClassStr);
- dojo.addClass(fakeNode, addClassStr);
- if(node.className !== fakeNode.className){
- node.className = fakeNode.className;
- }
- };
- dojo.toggleClass = function(/*DomNode|String*/node, /*String|Array*/classStr, /*Boolean?*/condition){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(condition === undefined){
- condition = !d.hasClass(node, classStr);
- }
- d[condition ? "addClass" : "removeClass"](node, classStr);
- };
- })();
- }
- if(!dojo._hasResource["dojo._base.NodeList"]){
- dojo._hasResource["dojo._base.NodeList"] = true;
- dojo.provide("dojo._base.NodeList");
- (function(){
- var d = dojo;
- var ap = Array.prototype, aps = ap.slice, apc = ap.concat;
- var tnl = function(/*Array*/ a, /*dojo.NodeList?*/ parent, /*Function?*/ NodeListCtor){
-
-
-
-
-
-
-
-
-
-
-
-
- if(!a.sort){
-
- a = aps.call(a, 0);
- }
- var ctor = NodeListCtor || this._NodeListCtor || d._NodeListCtor;
- a.constructor = ctor;
- dojo._mixin(a, ctor.prototype);
- a._NodeListCtor = ctor;
- return parent ? a._stash(parent) : a;
- };
- var loopBody = function(f, a, o){
- a = [0].concat(aps.call(a, 0));
- o = o || d.global;
- return function(node){
- a[0] = node;
- return f.apply(o, a);
- };
- };
-
- var adaptAsForEach = function(f, o){
-
-
-
-
-
-
-
-
- return function(){
- this.forEach(loopBody(f, arguments, o));
- return this;
- };
- };
- var adaptAsMap = function(f, o){
-
-
-
-
-
-
-
- return function(){
- return this.map(loopBody(f, arguments, o));
- };
- };
- var adaptAsFilter = function(f, o){
-
-
-
-
-
-
- return function(){
- return this.filter(loopBody(f, arguments, o));
- };
- };
- var adaptWithCondition = function(f, g, o){
-
-
-
-
-
-
-
-
-
- return function(){
- var a = arguments, body = loopBody(f, a, o);
- if(g.call(o || d.global, a)){
- return this.map(body);
- }
- this.forEach(body);
- return this;
- };
- };
- var magicGuard = function(a){
-
-
- return a.length == 1 && (typeof a[0] == "string");
- };
- var orphan = function(node){
-
-
- var p = node.parentNode;
- if(p){
- p.removeChild(node);
- }
- };
-
- dojo.NodeList = function(){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return tnl(Array.apply(null, arguments));
- };
-
- d._NodeListCtor = d.NodeList;
- var nl = d.NodeList, nlp = nl.prototype;
-
- nl._wrap = nlp._wrap = tnl;
- nl._adaptAsMap = adaptAsMap;
- nl._adaptAsForEach = adaptAsForEach;
- nl._adaptAsFilter = adaptAsFilter;
- nl._adaptWithCondition = adaptWithCondition;
-
-
- d.forEach(["slice", "splice"], function(name){
- var f = ap[name];
-
-
-
-
- nlp[name] = function(){ return this._wrap(f.apply(this, arguments), name == "slice" ? this : null); };
- });
-
-
- d.forEach(["indexOf", "lastIndexOf", "every", "some"], function(name){
- var f = d[name];
- nlp[name] = function(){ return f.apply(d, [this].concat(aps.call(arguments, 0))); };
- });
-
- d.forEach(["attr", "style"], function(name){
- nlp[name] = adaptWithCondition(d[name], magicGuard);
- });
-
- d.forEach(["connect", "addClass", "removeClass", "replaceClass", "toggleClass", "empty", "removeAttr"], function(name){
- nlp[name] = adaptAsForEach(d[name]);
- });
- dojo.extend(dojo.NodeList, {
- _normalize: function(/*String||Element||Object||NodeList*/content, /*DOMNode?*/refNode){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var parse = content.parse === true ? true : false;
-
- if(typeof content.template == "string"){
- var templateFunc = content.templateFunc || (dojo.string && dojo.string.substitute);
- content = templateFunc ? templateFunc(content.template, content) : content;
- }
- var type = (typeof content);
- if(type == "string" || type == "number"){
- content = dojo._toDom(content, (refNode && refNode.ownerDocument));
- if(content.nodeType == 11){
-
- content = dojo._toArray(content.childNodes);
- }else{
- content = [content];
- }
- }else if(!dojo.isArrayLike(content)){
- content = [content];
- }else if(!dojo.isArray(content)){
-
-
- content = dojo._toArray(content);
- }
-
- if(parse){
- content._runParse = true;
- }
- return content;
- },
- _cloneNode: function(/*DOMNode*/ node){
-
-
-
-
- return node.cloneNode(true);
- },
- _place: function(/*Array*/ary, /*DOMNode*/refNode, /*String*/position, /*Boolean*/useClone){
-
-
-
-
-
-
- if(refNode.nodeType != 1 && position == "only"){
- return;
- }
- var rNode = refNode, tempNode;
-
-
- var length = ary.length;
- for(var i = length - 1; i >= 0; i--){
- var node = (useClone ? this._cloneNode(ary[i]) : ary[i]);
-
-
-
- if(ary._runParse && dojo.parser && dojo.parser.parse){
- if(!tempNode){
- tempNode = rNode.ownerDocument.createElement("div");
- }
- tempNode.appendChild(node);
- dojo.parser.parse(tempNode);
- node = tempNode.firstChild;
- while(tempNode.firstChild){
- tempNode.removeChild(tempNode.firstChild);
- }
- }
- if(i == length - 1){
- dojo.place(node, rNode, position);
- }else{
- rNode.parentNode.insertBefore(node, rNode);
- }
- rNode = node;
- }
- },
- _stash: function(parent){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- this._parent = parent;
- return this;
- },
- end: function(){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(this._parent){
- return this._parent;
- }else{
-
- return new this._NodeListCtor();
- }
- },
-
-
-
-
-
-
-
-
-
- concat: function(item){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var t = d.isArray(this) ? this : aps.call(this, 0),
- m = d.map(arguments, function(a){
- return a && !d.isArray(a) &&
- (typeof NodeList != "undefined" && a.constructor === NodeList || a.constructor === this._NodeListCtor) ?
- aps.call(a, 0) : a;
- });
- return this._wrap(apc.apply(t, m), this);
- },
- map: function(/*Function*/ func, /*Function?*/ obj){
-
-
-
-
-
- return this._wrap(d.map(this, func, obj), this);
- },
- forEach: function(callback, thisObj){
-
-
-
-
- d.forEach(this, callback, thisObj);
-
- return this;
- },
-
-
- coords: adaptAsMap(d.coords),
- position: adaptAsMap(d.position),
-
-
- place: function(/*String||Node*/ queryOrNode, /*String*/ position){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var item = d.query(queryOrNode)[0];
- return this.forEach(function(node){ d.place(node, item, position); });
- },
- orphan: function(/*String?*/ filter){
-
-
-
-
-
-
-
- return (filter ? d._filterQueryResult(this, filter) : this).forEach(orphan);
- },
- adopt: function(/*String||Array||DomNode*/ queryOrListOrNode, /*String?*/ position){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return d.query(queryOrListOrNode).place(this[0], position)._stash(this);
- },
-
- query: function(/*String*/ queryStr){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(!queryStr){ return this; }
- var ret = this.map(function(node){
-
- return d.query(queryStr, node).filter(function(subNode){ return subNode !== undefined; });
- });
- return this._wrap(apc.apply([], ret), this);
- },
- filter: function(/*String|Function*/ filter){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var a = arguments, items = this, start = 0;
- if(typeof filter == "string"){
- items = d._filterQueryResult(this, a[0]);
- if(a.length == 1){
-
- return items._stash(this);
- }
-
- start = 1;
- }
- return this._wrap(d.filter(items, a[start], a[start + 1]), this);
- },
-
- addContent: function(/*String||DomNode||Object||dojo.NodeList*/ content, /*String||Integer?*/ position){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- content = this._normalize(content, this[0]);
- for(var i = 0, node; (node = this[i]); i++){
- this._place(content, node, position, i > 0);
- }
- return this;
- },
- instantiate: function(/*String|Object*/ declaredClass, /*Object?*/ properties){
-
-
-
-
-
-
-
- var c = d.isFunction(declaredClass) ? declaredClass : d.getObject(declaredClass);
- properties = properties || {};
- return this.forEach(function(node){
- new c(properties, node);
- });
- },
- at: function(/*===== index =====*/){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var t = new this._NodeListCtor();
- d.forEach(arguments, function(i){
- if(i < 0){ i = this.length + i }
- if(this[i]){ t.push(this[i]); }
- }, this);
- return t._stash(this);
- }
- });
- nl.events = [
-
-
- "blur", "focus", "change", "click", "error", "keydown", "keypress",
- "keyup", "load", "mousedown", "mouseenter", "mouseleave", "mousemove",
- "mouseout", "mouseover", "mouseup", "submit"
- ];
-
-
-
- d.forEach(nl.events, function(evt){
- var _oe = "on" + evt;
- nlp[_oe] = function(a, b){
- return this.connect(_oe, a, b);
- };
-
-
- }
- );
- })();
- }
- if(!dojo._hasResource["dojo._base.query"]){
- dojo._hasResource["dojo._base.query"] = true;
- (function(){
- var defineQuery= function(d){
-
-
-
-
-
-
-
-
-
- var trim = d.trim;
- var each = d.forEach;
-
-
-
-
-
- var qlc = (d._NodeListCtor = d.NodeList);
- var getDoc = function(){ return d.doc; };
-
- var cssCaseBug = (getDoc().compatMode) == "BackCompat";
-
-
-
- var specials = ">~+";
-
-
-
- var caseSensitive = false;
-
- var yesman = function(){ return true; };
-
-
-
- var getQueryParts = function(query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(specials.indexOf(query.slice(-1)) >= 0){
-
-
- query += " * "
- }else{
-
-
- query += " ";
- }
- var ts = function(/*Integer*/ s, /*Integer*/ e){
-
-
-
- return trim(query.slice(s, e));
- }
-
- var queryParts = [];
-
- var inBrackets = -1, inParens = -1, inMatchFor = -1,
- inPseudo = -1, inClass = -1, inId = -1, inTag = -1,
- lc = "", cc = "", pStart;
-
- var x = 0,
- ql = query.length,
- currentPart = null,
- _cp = null;
-
-
-
-
-
-
-
-
-
-
-
- var endTag = function(){
-
-
-
- if(inTag >= 0){
- var tv = (inTag == x) ? null : ts(inTag, x);
- currentPart[ (specials.indexOf(tv) < 0) ? "tag" : "oper" ] = tv;
- inTag = -1;
- }
- }
- var endId = function(){
-
- if(inId >= 0){
- currentPart.id = ts(inId, x).replace(/\\/g, "");
- inId = -1;
- }
- }
- var endClass = function(){
-
-
-
- if(inClass >= 0){
- currentPart.classes.push(ts(inClass+1, x).replace(/\\/g, ""));
- inClass = -1;
- }
- }
- var endAll = function(){
-
- endId(); endTag(); endClass();
- }
- var endPart = function(){
- endAll();
- if(inPseudo >= 0){
- currentPart.pseudos.push({ name: ts(inPseudo+1, x) });
- }
-
-
-
-
- currentPart.loops = (
- currentPart.pseudos.length ||
- currentPart.attrs.length ||
- currentPart.classes.length );
- currentPart.oquery = currentPart.query = ts(pStart, x);
-
-
-
-
-
-
- currentPart.otag = currentPart.tag = (currentPart["oper"]) ? null : (currentPart.tag || "*");
- if(currentPart.tag){
-
-
-
-
- currentPart.tag = currentPart.tag.toUpperCase();
- }
-
- if(queryParts.length && (queryParts[queryParts.length-1].oper)){
-
-
-
- currentPart.infixOper = queryParts.pop();
- currentPart.query = currentPart.infixOper.query + " " + currentPart.query;
-
- }
- queryParts.push(currentPart);
- currentPart = null;
- }
-
-
- for(; lc=cc, cc=query.charAt(x), x < ql; x++){
-
-
-
-
- if(lc == "\\"){ continue; }
- if(!currentPart){
-
- pStart = x;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- currentPart = {
- query: null,
- pseudos: [],
- attrs: [],
- classes: [],
- tag: null,
- oper: null,
- id: null,
- getTag: function(){
- return (caseSensitive) ? this.otag : this.tag;
- }
- };
-
-
-
-
- inTag = x;
- }
- if(inBrackets >= 0){
-
- if(cc == "]"){
- if(!_cp.attr){
-
-
-
- _cp.attr = ts(inBrackets+1, x);
- }else{
-
-
- _cp.matchFor = ts((inMatchFor||inBrackets+1), x);
- }
- var cmf = _cp.matchFor;
- if(cmf){
-
-
-
- if( (cmf.charAt(0) == '"') || (cmf.charAt(0) == "'") ){
- _cp.matchFor = cmf.slice(1, -1);
- }
- }
-
- currentPart.attrs.push(_cp);
- _cp = null;
- inBrackets = inMatchFor = -1;
- }else if(cc == "="){
-
-
- var addToCc = ("|~^$*".indexOf(lc) >=0 ) ? lc : "";
- _cp.type = addToCc+cc;
- _cp.attr = ts(inBrackets+1, x-addToCc.length);
- inMatchFor = x+1;
- }
-
- }else if(inParens >= 0){
-
-
-
- if(cc == ")"){
- if(inPseudo >= 0){
- _cp.value = ts(inParens+1, x);
- }
- inPseudo = inParens = -1;
- }
- }else if(cc == "#"){
-
- endAll();
- inId = x+1;
- }else if(cc == "."){
-
- endAll();
- inClass = x;
- }else if(cc == ":"){
-
- endAll();
- inPseudo = x;
- }else if(cc == "["){
-
- endAll();
- inBrackets = x;
-
- _cp = {
-
- };
- }else if(cc == "("){
-
-
- if(inPseudo >= 0){
-
- _cp = {
- name: ts(inPseudo+1, x),
- value: null
- }
- currentPart.pseudos.push(_cp);
- }
- inParens = x;
- }else if(
- (cc == " ") &&
-
-
- (lc != cc)
- ){
- endPart();
- }
- }
- return queryParts;
- };
-
-
-
-
- var agree = function(first, second){
-
-
-
-
- if(!first){ return second; }
- if(!second){ return first; }
- return function(){
- return first.apply(window, arguments) && second.apply(window, arguments);
- }
- };
- var getArr = function(i, arr){
-
- var r = arr||[];
- if(i){ r.push(i); }
- return r;
- };
- var _isElement = function(n){ return (1 == n.nodeType); };
-
- var blank = "";
- var _getAttr = function(elem, attr){
- if(!elem){ return blank; }
- if(attr == "class"){
- return elem.className || blank;
- }
- if(attr == "for"){
- return elem.htmlFor || blank;
- }
- if(attr == "style"){
- return elem.style.cssText || blank;
- }
- return (caseSensitive ? elem.getAttribute(attr) : elem.getAttribute(attr, 2)) || blank;
- };
- var attrs = {
- "*=": function(attr, value){
- return function(elem){
-
-
-
- return (_getAttr(elem, attr).indexOf(value)>=0);
- }
- },
- "^=": function(attr, value){
-
-
-
- return function(elem){
- return (_getAttr(elem, attr).indexOf(value)==0);
- }
- },
- "$=": function(attr, value){
-
-
-
- var tval = " "+value;
- return function(elem){
- var ea = " "+_getAttr(elem, attr);
- return (ea.lastIndexOf(value)==(ea.length-value.length));
- }
- },
- "~=": function(attr, value){
-
-
-
-
-
- var tval = " "+value+" ";
- return function(elem){
- var ea = " "+_getAttr(elem, attr)+" ";
- return (ea.indexOf(tval)>=0);
- }
- },
- "|=": function(attr, value){
-
-
-
-
- var valueDash = " "+value+"-";
- return function(elem){
- var ea = " "+_getAttr(elem, attr);
- return (
- (ea == value) ||
- (ea.indexOf(valueDash)==0)
- );
- }
- },
- "=": function(attr, value){
- return function(elem){
- return (_getAttr(elem, attr) == value);
- }
- }
- };
-
-
- var _noNES = (typeof getDoc().firstChild.nextElementSibling == "undefined");
- var _ns = !_noNES ? "nextElementSibling" : "nextSibling";
- var _ps = !_noNES ? "previousElementSibling" : "previousSibling";
- var _simpleNodeTest = (_noNES ? _isElement : yesman);
- var _lookLeft = function(node){
-
- while(node = node[_ps]){
- if(_simpleNodeTest(node)){ return false; }
- }
- return true;
- };
- var _lookRight = function(node){
-
- while(node = node[_ns]){
- if(_simpleNodeTest(node)){ return false; }
- }
- return true;
- };
- var getNodeIndex = function(node){
- var root = node.parentNode;
- var i = 0,
- tret = root.children || root.childNodes,
- ci = (node["_i"]||-1),
- cl = (root["_l"]||-1);
- if(!tret){ return -1; }
- var l = tret.length;
-
-
-
- if( cl == l && ci >= 0 && cl >= 0 ){
-
- return ci;
- }
-
- root["_l"] = l;
- ci = -1;
- for(var te = root["firstElementChild"]||root["firstChild"]; te; te = te[_ns]){
- if(_simpleNodeTest(te)){
- te["_i"] = ++i;
- if(node === te){
-
-
-
-
-
-
-
-
- ci = i;
- }
- }
- }
- return ci;
- };
- var isEven = function(elem){
- return !((getNodeIndex(elem)) % 2);
- };
- var isOdd = function(elem){
- return ((getNodeIndex(elem)) % 2);
- };
- var pseudos = {
- "checked": function(name, condition){
- return function(elem){
- return !!("checked" in elem ? elem.checked : elem.selected);
- }
- },
- "first-child": function(){ return _lookLeft; },
- "last-child": function(){ return _lookRight; },
- "only-child": function(name, condition){
- return function(node){
- if(!_lookLeft(node)){ return false; }
- if(!_lookRight(node)){ return false; }
- return true;
- };
- },
- "empty": function(name, condition){
- return function(elem){
-
-
- var cn = elem.childNodes;
- var cnl = elem.childNodes.length;
-
- for(var x=cnl-1; x >= 0; x--){
- var nt = cn[x].nodeType;
- if((nt === 1)||(nt == 3)){ return false; }
- }
- return true;
- }
- },
- "contains": function(name, condition){
- var cz = condition.charAt(0);
- if( cz == '"' || cz == "'" ){
- condition = condition.slice(1, -1);
- }
- return function(elem){
- return (elem.innerHTML.indexOf(condition) >= 0);
- }
- },
- "not": function(name, condition){
- var p = getQueryParts(condition)[0];
- var ignores = { el: 1 };
- if(p.tag != "*"){
- ignores.tag = 1;
- }
- if(!p.classes.length){
- ignores.classes = 1;
- }
- var ntf = getSimpleFilterFunc(p, ignores);
- return function(elem){
- return (!ntf(elem));
- }
- },
- "nth-child": function(name, condition){
- var pi = parseInt;
-
- if(condition == "odd"){
- return isOdd;
- }else if(condition == "even"){
- return isEven;
- }
-
- if(condition.indexOf("n") != -1){
- var tparts = condition.split("n", 2);
- var pred = tparts[0] ? ((tparts[0] == '-') ? -1 : pi(tparts[0])) : 1;
- var idx = tparts[1] ? pi(tparts[1]) : 0;
- var lb = 0, ub = -1;
- if(pred > 0){
- if(idx < 0){
- idx = (idx % pred) && (pred + (idx % pred));
- }else if(idx>0){
- if(idx >= pred){
- lb = idx - idx % pred;
- }
- idx = idx % pred;
- }
- }else if(pred<0){
- pred *= -1;
-
-
- if(idx > 0){
- ub = idx;
- idx = idx % pred;
- }
- }
- if(pred > 0){
- return function(elem){
- var i = getNodeIndex(elem);
- return (i>=lb) && (ub<0 || i<=ub) && ((i % pred) == idx);
- }
- }else{
- condition = idx;
- }
- }
- var ncount = pi(condition);
- return function(elem){
- return (getNodeIndex(elem) == ncount);
- }
- }
- };
- var defaultGetter = (d.isIE < 9 || d.isIE == 9 && d.isQuirks) ? function(cond){
- var clc = cond.toLowerCase();
- if(clc == "class"){ cond = "className"; }
- return function(elem){
- return (caseSensitive ? elem.getAttribute(cond) : elem[cond]||elem[clc]);
- }
- } : function(cond){
- return function(elem){
- return (elem && elem.getAttribute && elem.hasAttribute(cond));
- }
- };
- var getSimpleFilterFunc = function(query, ignores){
-
-
-
-
-
-
-
- if(!query){ return yesman; }
- ignores = ignores||{};
- var ff = null;
- if(!("el" in ignores)){
- ff = agree(ff, _isElement);
- }
- if(!("tag" in ignores)){
- if(query.tag != "*"){
- ff = agree(ff, function(elem){
- return (elem && (elem.tagName == query.getTag()));
- });
- }
- }
- if(!("classes" in ignores)){
- each(query.classes, function(cname, idx, arr){
-
-
- var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)");
- ff = agree(ff, function(elem){
- return re.test(elem.className);
- });
- ff.count = idx;
- });
- }
- if(!("pseudos" in ignores)){
- each(query.pseudos, function(pseudo){
- var pn = pseudo.name;
- if(pseudos[pn]){
- ff = agree(ff, pseudos[pn](pn, pseudo.value));
- }
- });
- }
- if(!("attrs" in ignores)){
- each(query.attrs, function(attr){
- var matcher;
- var a = attr.attr;
-
- if(attr.type && attrs[attr.type]){
- matcher = attrs[attr.type](a, attr.matchFor);
- }else if(a.length){
- matcher = defaultGetter(a);
- }
- if(matcher){
- ff = agree(ff, matcher);
- }
- });
- }
- if(!("id" in ignores)){
- if(query.id){
- ff = agree(ff, function(elem){
- return (!!elem && (elem.id == query.id));
- });
- }
- }
- if(!ff){
- if(!("default" in ignores)){
- ff = yesman;
- }
- }
- return ff;
- };
- var _nextSibling = function(filterFunc){
- return function(node, ret, bag){
- while(node = node[_ns]){
- if(_noNES && (!_isElement(node))){ continue; }
- if(
- (!bag || _isUnique(node, bag)) &&
- filterFunc(node)
- ){
- ret.push(node);
- }
- break;
- }
- return ret;
- }
- };
- var _nextSiblings = function(filterFunc){
- return function(root, ret, bag){
- var te = root[_ns];
- while(te){
- if(_simpleNodeTest(te)){
- if(bag && !_isUnique(te, bag)){
- break;
- }
- if(filterFunc(te)){
- ret.push(te);
- }
- }
- te = te[_ns];
- }
- return ret;
- }
- };
-
- var _childElements = function(filterFunc){
- filterFunc = filterFunc||yesman;
- return function(root, ret, bag){
-
- var te, x = 0, tret = root.children || root.childNodes;
- while(te = tret[x++]){
- if(
- _simpleNodeTest(te) &&
- (!bag || _isUnique(te, bag)) &&
- (filterFunc(te, x))
- ){
- ret.push(te);
- }
- }
- return ret;
- };
- };
-
-
-
- var _isDescendant = function(node, root){
- var pn = node.parentNode;
- while(pn){
- if(pn == root){
- break;
- }
- pn = pn.parentNode;
- }
- return !!pn;
- };
- var _getElementsFuncCache = {};
- var getElementsFunc = function(query){
- var retFunc = _getElementsFuncCache[query.query];
-
- if(retFunc){ return retFunc; }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var io = query.infixOper;
- var oper = (io ? io.oper : "");
-
-
-
- var filterFunc = getSimpleFilterFunc(query, { el: 1 });
- var qt = query.tag;
- var wildcardTag = ("*" == qt);
- var ecs = getDoc()["getElementsByClassName"];
- if(!oper){
-
-
-
- if(query.id){
-
-
-
- filterFunc = (!query.loops && wildcardTag) ?
- yesman :
- getSimpleFilterFunc(query, { el: 1, id: 1 });
- retFunc = function(root, arr){
- var te = d.byId(query.id, (root.ownerDocument||root));
- if(!te || !filterFunc(te)){ return; }
- if(9 == root.nodeType){
- return getArr(te, arr);
- }else{
- if(_isDescendant(te, root)){
- return getArr(te, arr);
- }
- }
- }
- }else if(
- ecs &&
-
- /\{\s*\[native code\]\s*\}/.test(String(ecs)) &&
- query.classes.length &&
- !cssCaseBug
- ){
-
-
- filterFunc = getSimpleFilterFunc(query, { el: 1, classes: 1, id: 1 });
- var classesString = query.classes.join(" ");
- retFunc = function(root, arr, bag){
- var ret = getArr(0, arr), te, x=0;
- var tret = root.getElementsByClassName(classesString);
- while((te = tret[x++])){
- if(filterFunc(te, root) && _isUnique(te, bag)){
- ret.push(te);
- }
- }
- return ret;
- };
- }else if(!wildcardTag && !query.loops){
-
- retFunc = function(root, arr, bag){
- var ret = getArr(0, arr), te, x=0;
- var tret = root.getElementsByTagName(query.getTag());
- while((te = tret[x++])){
- if(_isUnique(te, bag)){
- ret.push(te);
- }
- }
- return ret;
- };
- }else{
-
-
-
-
- filterFunc = getSimpleFilterFunc(query, { el: 1, tag: 1, id: 1 });
- retFunc = function(root, arr, bag){
- var ret = getArr(0, arr), te, x=0;
-
- var tret = root.getElementsByTagName(query.getTag());
- while((te = tret[x++])){
- if(filterFunc(te, root) && _isUnique(te, bag)){
- ret.push(te);
- }
- }
- return ret;
- };
- }
- }else{
-
-
- var skipFilters = { el: 1 };
- if(wildcardTag){
- skipFilters.tag = 1;
- }
- filterFunc = getSimpleFilterFunc(query, skipFilters);
- if("+" == oper){
- retFunc = _nextSibling(filterFunc);
- }else if("~" == oper){
- retFunc = _nextSiblings(filterFunc);
- }else if(">" == oper){
- retFunc = _childElements(filterFunc);
- }
- }
-
- return _getElementsFuncCache[query.query] = retFunc;
- };
- var filterDown = function(root, queryParts){
-
-
-
-
- var candidates = getArr(root), qp, x, te, qpl = queryParts.length, bag, ret;
- for(var i = 0; i < qpl; i++){
- ret = [];
- qp = queryParts[i];
- x = candidates.length - 1;
- if(x > 0){
-
-
-
-
- bag = {};
- ret.nozip = true;
- }
- var gef = getElementsFunc(qp);
- for(var j = 0; (te = candidates[j]); j++){
-
-
-
-
-
- gef(te, ret, bag);
- }
- if(!ret.length){ break; }
- candidates = ret;
- }
- return ret;
- };
-
-
-
-
-
-
- var _queryFuncCacheDOM = {},
- _queryFuncCacheQSA = {};
-
-
-
- var getStepQueryFunc = function(query){
- var qparts = getQueryParts(trim(query));
-
- if(qparts.length == 1){
-
-
-
-
- var tef = getElementsFunc(qparts[0]);
- return function(root){
- var r = tef(root, new qlc());
- if(r){ r.nozip = true; }
- return r;
- }
- }
-
- return function(root){
- return filterDown(root, qparts);
- }
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var nua = navigator.userAgent;
-
-
- var wk = "WebKit/";
- var is525 = (
- d.isWebKit &&
- (nua.indexOf(wk) > 0) &&
- (parseFloat(nua.split(wk)[1]) > 528)
- );
-
-
-
- var noZip = d.isIE ? "commentStrip" : "nozip";
- var qsa = "querySelectorAll";
- var qsaAvail = (
- !!getDoc()[qsa] &&
-
- (!d.isSafari || (d.isSafari > 3.1) || is525 )
- );
-
- var infixSpaceRe = /n\+\d|([^ ])?([>~+])([^ =])?/g;
- var infixSpaceFunc = function(match, pre, ch, post) {
- return ch ? (pre ? pre + " " : "") + ch + (post ? " " + post : "") : match;
- };
- var getQueryFunc = function(query, forceDOM){
-
-
-
-
- query = query.replace(infixSpaceRe, infixSpaceFunc);
- if(qsaAvail){
-
- var qsaCached = _queryFuncCacheQSA[query];
- if(qsaCached && !forceDOM){ return qsaCached; }
- }
-
-
- var domCached = _queryFuncCacheDOM[query];
- if(domCached){ return domCached; }
-
-
-
-
- var qcz = query.charAt(0);
- var nospace = (-1 == query.indexOf(" "));
-
-
- if( (query.indexOf("#") >= 0) && (nospace) ){
- forceDOM = true;
- }
- var useQSA = (
- qsaAvail && (!forceDOM) &&
-
-
- (specials.indexOf(qcz) == -1) &&
-
- (!d.isIE || (query.indexOf(":") == -1)) &&
- (!(cssCaseBug && (query.indexOf(".") >= 0))) &&
-
-
-
-
-
-
-
- (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) &&
- (query.indexOf("|=") == -1)
- );
-
-
-
-
-
-
- if(useQSA){
- var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ?
- (query + " *") : query;
- return _queryFuncCacheQSA[query] = function(root){
- try{
-
-
-
-
-
-
-
-
-
- if(!((9 == root.nodeType) || nospace)){ throw ""; }
- var r = root[qsa](tq);
-
- r[noZip] = true;
- return r;
- }catch(e){
-
-
- return getQueryFunc(query, true)(root);
- }
- }
- }else{
-
- var parts = query.split(/\s*,\s*/);
- return _queryFuncCacheDOM[query] = ((parts.length < 2) ?
-
- getStepQueryFunc(query) :
-
-
-
- function(root){
- var pindex = 0,
- ret = [],
- tp;
- while((tp = parts[pindex++])){
- ret = ret.concat(getStepQueryFunc(tp)(root));
- }
- return ret;
- }
- );
- }
- };
- var _zipIdx = 0;
-
-
-
- var _nodeUID = d.isIE ? function(node){
- if(caseSensitive){
-
- return (node.getAttribute("_uid") || node.setAttribute("_uid", ++_zipIdx) || _zipIdx);
- }else{
- return node.uniqueID;
- }
- } :
- function(node){
- return (node._uid || (node._uid = ++_zipIdx));
- };
-
-
-
-
-
- var _isUnique = function(node, bag){
- if(!bag){ return 1; }
- var id = _nodeUID(node);
- if(!bag[id]){ return bag[id] = 1; }
- return 0;
- };
-
-
- var _zipIdxName = "_zipIdx";
- var _zip = function(arr){
- if(arr && arr.nozip){
- return (qlc._wrap) ? qlc._wrap(arr) : arr;
- }
-
- var ret = new qlc();
- if(!arr || !arr.length){ return ret; }
- if(arr[0]){
- ret.push(arr[0]);
- }
- if(arr.length < 2){ return ret; }
- _zipIdx++;
-
-
-
- if(d.isIE && caseSensitive){
- var szidx = _zipIdx+"";
- arr[0].setAttribute(_zipIdxName, szidx);
- for(var x = 1, te; te = arr[x]; x++){
- if(arr[x].getAttribute(_zipIdxName) != szidx){
- ret.push(te);
- }
- te.setAttribute(_zipIdxName, szidx);
- }
- }else if(d.isIE && arr.commentStrip){
- try{
- for(var x = 1, te; te = arr[x]; x++){
- if(_isElement(te)){
- ret.push(te);
- }
- }
- }catch(e){ }
- }else{
- if(arr[0]){ arr[0][_zipIdxName] = _zipIdx; }
- for(var x = 1, te; te = arr[x]; x++){
- if(arr[x][_zipIdxName] != _zipIdx){
- ret.push(te);
- }
- te[_zipIdxName] = _zipIdx;
- }
- }
- return ret;
- };
-
- d.query = function(/*String*/ query, /*String|DOMNode?*/ root){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- qlc = d._NodeListCtor;
- if(!query){
- return new qlc();
- }
- if(query.constructor == qlc){
- return query;
- }
- if(typeof query != "string"){
- return new qlc(query);
- }
- if(typeof root == "string"){
- root = d.byId(root);
- if(!root){ return new qlc(); }
- }
- root = root||getDoc();
- var od = root.ownerDocument||root.documentElement;
-
-
-
-
- caseSensitive = (root.contentType && root.contentType=="application/xml") ||
- (d.isOpera && (root.doctype || od.toString() == "[object XMLDocument]")) ||
- (!!od) &&
- (d.isIE ? od.xml : (root.xmlVersion||od.xmlVersion));
-
-
-
-
- var r = getQueryFunc(query)(root);
-
-
- if(r && r.nozip && !qlc._wrap){
- return r;
- }
- return _zip(r);
- }
-
- d.query.pseudos = pseudos;
-
- d._filterQueryResult = function(/*NodeList*/ nodeList, /*String*/ filter, /*String|DOMNode?*/ root){
- var tmpNodeList = new d._NodeListCtor(),
- parts = getQueryParts(filter),
- filterFunc =
- (parts.length == 1 && !/[^\w#\.]/.test(filter)) ?
- getSimpleFilterFunc(parts[0]) :
- function(node) {
- return dojo.query(filter, root).indexOf(node) != -1;
- };
- for(var x = 0, te; te = nodeList[x]; x++){
- if(filterFunc(te)){ tmpNodeList.push(te); }
- }
- return tmpNodeList;
- }
- };
- var defineAcme= function(){
-
- acme = {
- trim: function(/*String*/ str){
-
-
- str = str.replace(/^\s+/, '');
- for(var i = str.length - 1; i >= 0; i--){
- if(/\S/.test(str.charAt(i))){
- str = str.substring(0, i + 1);
- break;
- }
- }
- return str;
- },
- forEach: function(/*String*/ arr, /*Function*/ callback, /*Object?*/ thisObject){
-
-
-
- if(!arr || !arr.length){ return; }
- for(var i=0,l=arr.length; i<l; ++i){
- callback.call(thisObject||window, arr[i], i, arr);
- }
- },
- byId: function(id, doc){
-
-
-
- if(typeof id == "string"){
- return (doc||document).getElementById(id);
- }else{
- return id;
- }
- },
-
- doc: document,
-
- NodeList: Array
- };
-
- var n = navigator;
- var dua = n.userAgent;
- var dav = n.appVersion;
- var tv = parseFloat(dav);
- acme.isOpera = (dua.indexOf("Opera") >= 0) ? tv: undefined;
- acme.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : undefined;
- acme.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined;
- acme.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined;
- var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
- if(index && !acme.isChrome){
- acme.isSafari = parseFloat(dav.split("Version/")[1]);
- if(!acme.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){
- acme.isSafari = 2;
- }
- }
- if(document.all && !acme.isOpera){
- acme.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined;
- }
- Array._wrap = function(arr){ return arr; };
- return acme;
- };
-
- if(this["dojo"]){
- dojo.provide("dojo._base.query");
-
-
- defineQuery(this["queryPortability"]||this["acme"]||dojo);
- }else{
- defineQuery(this["queryPortability"]||this["acme"]||defineAcme());
- }
- })();
- }
- if(!dojo._hasResource["dojo._base.xhr"]){
- dojo._hasResource["dojo._base.xhr"] = true;
- dojo.provide("dojo._base.xhr");
- (function(){
- var _d = dojo, cfg = _d.config;
- function setValue(/*Object*/obj, /*String*/name, /*String*/value){
-
-
-
-
-
- if(value === null){
- return;
- }
- var val = obj[name];
- if(typeof val == "string"){
- obj[name] = [val, value];
- }else if(_d.isArray(val)){
- val.push(value);
- }else{
- obj[name] = value;
- }
- }
-
- dojo.fieldToObject = function(/*DOMNode||String*/ inputNode){
-
-
-
-
-
-
-
-
- var ret = null;
- var item = _d.byId(inputNode);
- if(item){
- var _in = item.name;
- var type = (item.type||"").toLowerCase();
- if(_in && type && !item.disabled){
- if(type == "radio" || type == "checkbox"){
- if(item.checked){ ret = item.value; }
- }else if(item.multiple){
- ret = [];
- _d.query("option", item).forEach(function(opt){
- if(opt.selected){
- ret.push(opt.value);
- }
- });
- }else{
- ret = item.value;
- }
- }
- }
- return ret;
- };
- dojo.formToObject = function(/*DOMNode||String*/ formNode){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var ret = {};
- var exclude = "file|submit|image|reset|button|";
- _d.forEach(dojo.byId(formNode).elements, function(item){
- var _in = item.name;
- var type = (item.type||"").toLowerCase();
- if(_in && type && exclude.indexOf(type) == -1 && !item.disabled){
- setValue(ret, _in, _d.fieldToObject(item));
- if(type == "image"){
- ret[_in+".x"] = ret[_in+".y"] = ret[_in].x = ret[_in].y = 0;
- }
- }
- });
- return ret;
- };
- dojo.objectToQuery = function(/*Object*/ map){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var enc = encodeURIComponent;
- var pairs = [];
- var backstop = {};
- for(var name in map){
- var value = map[name];
- if(value != backstop[name]){
- var assign = enc(name) + "=";
- if(_d.isArray(value)){
- for(var i=0; i < value.length; i++){
- pairs.push(assign + enc(value[i]));
- }
- }else{
- pairs.push(assign + enc(value));
- }
- }
- }
- return pairs.join("&");
- };
- dojo.formToQuery = function(/*DOMNode||String*/ formNode){
-
-
-
- return _d.objectToQuery(_d.formToObject(formNode));
- };
- dojo.formToJson = function(/*DOMNode||String*/ formNode, /*Boolean?*/prettyPrint){
-
-
-
- return _d.toJson(_d.formToObject(formNode), prettyPrint);
- };
- dojo.queryToObject = function(/*String*/ str){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var ret = {};
- var qp = str.split("&");
- var dec = decodeURIComponent;
- _d.forEach(qp, function(item){
- if(item.length){
- var parts = item.split("=");
- var name = dec(parts.shift());
- var val = dec(parts.join("="));
- if(typeof ret[name] == "string"){
- ret[name] = [ret[name]];
- }
- if(_d.isArray(ret[name])){
- ret[name].push(val);
- }else{
- ret[name] = val;
- }
- }
- });
- return ret;
- };
-
-
-
- dojo._blockAsync = false;
-
- var handlers = _d._contentHandlers = dojo.contentHandlers = {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text: function(xhr){
-
- return xhr.responseText;
- },
- json: function(xhr){
-
- return _d.fromJson(xhr.responseText || null);
- },
- "json-comment-filtered": function(xhr){
-
-
-
-
-
-
-
-
-
-
-
-
- if(!dojo.config.useCommentedJson){
- console.warn("Consider using the standard mimetype:application/json."
- + " json-commenting can introduce security issues. To"
- + " decrease the chances of hijacking, use the standard the 'json' handler and"
- + " prefix your json with: {}&&\n"
- + "Use djConfig.useCommentedJson=true to turn off this message.");
- }
- var value = xhr.responseText;
- var cStartIdx = value.indexOf("\/*");
- var cEndIdx = value.lastIndexOf("*\/");
- if(cStartIdx == -1 || cEndIdx == -1){
- throw new Error("JSON was not comment filtered");
- }
- return _d.fromJson(value.substring(cStartIdx+2, cEndIdx));
- },
- javascript: function(xhr){
-
-
- return _d.eval(xhr.responseText);
- },
- xml: function(xhr){
-
- var result = xhr.responseXML;
- if(_d.isIE && (!result || !result.documentElement)){
-
-
- var ms = function(n){ return "MSXML" + n + ".DOMDocument"; };
- var dp = ["Microsoft.XMLDOM", ms(6), ms(4), ms(3), ms(2)];
- _d.some(dp, function(p){
- try{
- var dom = new ActiveXObject(p);
- dom.async = false;
- dom.loadXML(xhr.responseText);
- result = dom;
- }catch(e){ return false; }
- return true;
- });
- }
- return result;
- },
- "json-comment-optional": function(xhr){
-
-
- if(xhr.responseText && /^[^{\[]*\/\*/.test(xhr.responseText)){
- return handlers["json-comment-filtered"](xhr);
- }else{
- return handlers["json"](xhr);
- }
- }
- };
-
-
-
- dojo._ioSetArgs = function(/*dojo.__IoArgs*/args,
- /*Function*/canceller,
- /*Function*/okHandler,
- /*Function*/errHandler){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var ioArgs = {args: args, url: args.url};
-
- var formObject = null;
- if(args.form){
- var form = _d.byId(args.form);
-
-
- var actnNode = form.getAttributeNode("action");
- ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null);
- formObject = _d.formToObject(form);
- }
-
- var miArgs = [{}];
-
- if(formObject){
-
- miArgs.push(formObject);
- }
- if(args.content){
-
- miArgs.push(args.content);
- }
- if(args.preventCache){
- miArgs.push({"dojo.preventCache": new Date().valueOf()});
- }
- ioArgs.query = _d.objectToQuery(_d.mixin.apply(null, miArgs));
-
-
- ioArgs.handleAs = args.handleAs || "text";
- var d = new _d.Deferred(canceller);
- d.addCallbacks(okHandler, function(error){
- return errHandler(error, d);
- });
-
-
-
-
- var ld = args.load;
- if(ld && _d.isFunction(ld)){
- d.addCallback(function(value){
- return ld.call(args, value, ioArgs);
- });
- }
- var err = args.error;
- if(err && _d.isFunction(err)){
- d.addErrback(function(value){
- return err.call(args, value, ioArgs);
- });
- }
- var handle = args.handle;
- if(handle && _d.isFunction(handle)){
- d.addBoth(function(value){
- return handle.call(args, value, ioArgs);
- });
- }
-
- if(cfg.ioPublish && _d.publish && ioArgs.args.ioPublish !== false){
- d.addCallbacks(
- function(res){
- _d.publish("/dojo/io/load", [d, res]);
- return res;
- },
- function(res){
- _d.publish("/dojo/io/error", [d, res]);
- return res;
- }
- );
- d.addBoth(function(res){
- _d.publish("/dojo/io/done", [d, res]);
- return res;
- });
- }
- d.ioArgs = ioArgs;
-
-
-
- return d;
- };
- var _deferredCancel = function(/*Deferred*/dfd){
-
-
- dfd.canceled = true;
- var xhr = dfd.ioArgs.xhr;
- var _at = typeof xhr.abort;
- if(_at == "function" || _at == "object" || _at == "unknown"){
- xhr.abort();
- }
- var err = dfd.ioArgs.error;
- if(!err){
- err = new Error("xhr cancelled");
- err.dojoType="cancel";
- }
- return err;
- };
- var _deferredOk = function(/*Deferred*/dfd){
-
- var ret = handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);
- return ret === undefined ? null : ret;
- };
- var _deferError = function(/*Error*/error, /*Deferred*/dfd){
-
- if(!dfd.ioArgs.args.failOk){
- console.error(error);
- }
- return error;
- };
-
-
- var _inFlightIntvl = null;
- var _inFlight = [];
-
-
-
-
-
-
-
- var _pubCount = 0;
- var _checkPubCount = function(dfd){
- if(_pubCount <= 0){
- _pubCount = 0;
- if(cfg.ioPublish && _d.publish && (!dfd || dfd && dfd.ioArgs.args.ioPublish !== false)){
- _d.publish("/dojo/io/stop");
- }
- }
- };
- var _watchInFlight = function(){
-
-
-
-
- var now = (new Date()).getTime();
-
-
-
- if(!_d._blockAsync){
-
-
- for(var i = 0, tif; i < _inFlight.length && (tif = _inFlight[i]); i++){
- var dfd = tif.dfd;
- var func = function(){
- if(!dfd || dfd.canceled || !tif.validCheck(dfd)){
- _inFlight.splice(i--, 1);
- _pubCount -= 1;
- }else if(tif.ioCheck(dfd)){
- _inFlight.splice(i--, 1);
- tif.resHandle(dfd);
- _pubCount -= 1;
- }else if(dfd.startTime){
-
- if(dfd.startTime + (dfd.ioArgs.args.timeout || 0) < now){
- _inFlight.splice(i--, 1);
- var err = new Error("timeout exceeded");
- err.dojoType = "timeout";
- dfd.errback(err);
-
- dfd.cancel();
- _pubCount -= 1;
- }
- }
- };
- if(dojo.config.debugAtAllCosts){
- func.call(this);
- }else{
- try{
- func.call(this);
- }catch(e){
- dfd.errback(e);
- }
- }
- }
- }
- _checkPubCount(dfd);
- if(!_inFlight.length){
- clearInterval(_inFlightIntvl);
- _inFlightIntvl = null;
- return;
- }
- };
- dojo._ioCancelAll = function(){
-
-
- try{
- _d.forEach(_inFlight, function(i){
- try{
- i.dfd.cancel();
- }catch(e){}
- });
- }catch(e){}
- };
-
-
- if(_d.isIE){
- _d.addOnWindowUnload(_d._ioCancelAll);
- }
-
- _d._ioNotifyStart = function(/*Deferred*/dfd){
-
-
-
-
-
-
-
- if(cfg.ioPublish && _d.publish && dfd.ioArgs.args.ioPublish !== false){
- if(!_pubCount){
- _d.publish("/dojo/io/start");
- }
- _pubCount += 1;
- _d.publish("/dojo/io/send", [dfd]);
- }
- };
- _d._ioWatch = function(dfd, validCheck, ioCheck, resHandle){
-
-
-
-
-
-
-
-
-
-
-
-
-
- var args = dfd.ioArgs.args;
- if(args.timeout){
- dfd.startTime = (new Date()).getTime();
- }
-
- _inFlight.push({dfd: dfd, validCheck: validCheck, ioCheck: ioCheck, resHandle: resHandle});
- if(!_inFlightIntvl){
- _inFlightIntvl = setInterval(_watchInFlight, 50);
- }
-
-
-
-
-
- if(args.sync){
- _watchInFlight();
- }
- };
- var _defaultContentType = "application/x-www-form-urlencoded";
- var _validCheck = function(/*Deferred*/dfd){
- return dfd.ioArgs.xhr.readyState;
- };
- var _ioCheck = function(/*Deferred*/dfd){
- return 4 == dfd.ioArgs.xhr.readyState;
- };
- var _resHandle = function(/*Deferred*/dfd){
- var xhr = dfd.ioArgs.xhr;
- if(_d._isDocumentOk(xhr)){
- dfd.callback(dfd);
- }else{
- var err = new Error("Unable to load " + dfd.ioArgs.url + " status:" + xhr.status);
- err.status = xhr.status;
- err.responseText = xhr.responseText;
- dfd.errback(err);
- }
- };
- dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){
-
-
- if(ioArgs.query.length){
- ioArgs.url += (ioArgs.url.indexOf("?") == -1 ? "?" : "&") + ioArgs.query;
- ioArgs.query = null;
- }
- };
-
- dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){
-
-
-
-
-
-
-
-
-
-
-
-
- var dfd = _d._ioSetArgs(args, _deferredCancel, _deferredOk, _deferError);
- var ioArgs = dfd.ioArgs;
-
-
- var xhr = ioArgs.xhr = _d._xhrObj(ioArgs.args);
-
- if(!xhr){
- dfd.cancel();
- return dfd;
- }
-
- if("postData" in args){
- ioArgs.query = args.postData;
- }else if("putData" in args){
- ioArgs.query = args.putData;
- }else if("rawBody" in args){
- ioArgs.query = args.rawBody;
- }else if((arguments.length > 2 && !hasBody) || "POST|PUT".indexOf(method.toUpperCase()) == -1){
-
-
- _d._ioAddQueryToUrl(ioArgs);
- }
-
-
- xhr.open(method, ioArgs.url, args.sync !== true, args.user || undefined, args.password || undefined);
- if(args.headers){
- for(var hdr in args.headers){
- if(hdr.toLowerCase() === "content-type"){
- if(!args.contentType){
- args.contentType = args.headers[hdr];
- }
- }else if(args.headers[hdr]){
-
-
- xhr.setRequestHeader(hdr, args.headers[hdr]);
- }
- }
- }
-
- if(args.contentType !== false){
- xhr.setRequestHeader("Content-Type", args.contentType || _defaultContentType);
- }
- if(!args.headers || !("X-Requested-With" in args.headers)){
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
- }
-
- _d._ioNotifyStart(dfd);
- if(dojo.config.debugAtAllCosts){
- xhr.send(ioArgs.query);
- }else{
- try{
- xhr.send(ioArgs.query);
- }catch(e){
- ioArgs.error = e;
- dfd.cancel();
- }
- }
- _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle);
- xhr = null;
- return dfd;
- };
- dojo.xhrGet = function(/*dojo.__XhrArgs*/ args){
-
-
- return _d.xhr("GET", args);
- };
- dojo.rawXhrPost = dojo.xhrPost = function(/*dojo.__XhrArgs*/ args){
-
-
-
-
-
- return _d.xhr("POST", args, true);
- };
- dojo.rawXhrPut = dojo.xhrPut = function(/*dojo.__XhrArgs*/ args){
-
-
-
-
-
- return _d.xhr("PUT", args, true);
- };
- dojo.xhrDelete = function(/*dojo.__XhrArgs*/ args){
-
-
- return _d.xhr("DELETE", args);
- };
-
- })();
- }
- if(!dojo._hasResource["dojo._base.fx"]){
- dojo._hasResource["dojo._base.fx"] = true;
- dojo.provide("dojo._base.fx");
- (function(){
- var d = dojo;
- var _mixin = d._mixin;
- dojo._Line = function(/*int*/ start, /*int*/ end){
-
-
-
-
-
-
-
- this.start = start;
- this.end = end;
- };
- dojo._Line.prototype.getValue = function(/*float*/ n){
-
-
- return ((this.end - this.start) * n) + this.start;
- };
- dojo.Animation = function(args){
-
-
-
-
-
-
-
-
-
-
-
-
-
- _mixin(this, args);
- if(d.isArray(this.curve)){
- this.curve = new d._Line(this.curve[0], this.curve[1]);
- }
- };
-
- d._Animation = d.Animation;
- d.extend(dojo.Animation, {
-
-
- duration: 350,
-
-
-
- repeat: 0,
-
-
-
- rate: 20 ,
-
- _percent: 0,
- _startRepeatCount: 0,
- _getStep: function(){
- var _p = this._percent,
- _e = this.easing
- ;
- return _e ? _e(_p) : _p;
- },
- _fire: function(/*Event*/ evt, /*Array?*/ args){
-
-
-
-
-
-
-
-
-
-
-
-
- var a = args||[];
- if(this[evt]){
- if(d.config.debugAtAllCosts){
- this[evt].apply(this, a);
- }else{
- try{
- this[evt].apply(this, a);
- }catch(e){
-
-
-
-
-
- console.error("exception in animation handler for:", evt);
- console.error(e);
- }
- }
- }
- return this;
- },
- play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){
-
-
-
-
-
-
-
-
-
- var _t = this;
- if(_t._delayTimer){ _t._clearTimer(); }
- if(gotoStart){
- _t._stopTimer();
- _t._active = _t._paused = false;
- _t._percent = 0;
- }else if(_t._active && !_t._paused){
- return _t;
- }
- _t._fire("beforeBegin", [_t.node]);
- var de = delay || _t.delay,
- _p = dojo.hitch(_t, "_play", gotoStart);
- if(de > 0){
- _t._delayTimer = setTimeout(_p, de);
- return _t;
- }
- _p();
- return _t;
- },
- _play: function(gotoStart){
- var _t = this;
- if(_t._delayTimer){ _t._clearTimer(); }
- _t._startTime = new Date().valueOf();
- if(_t._paused){
- _t._startTime -= _t.duration * _t._percent;
- }
- _t._active = true;
- _t._paused = false;
- var value = _t.curve.getValue(_t._getStep());
- if(!_t._percent){
- if(!_t._startRepeatCount){
- _t._startRepeatCount = _t.repeat;
- }
- _t._fire("onBegin", [value]);
- }
- _t._fire("onPlay", [value]);
- _t._cycle();
- return _t;
- },
- pause: function(){
-
- var _t = this;
- if(_t._delayTimer){ _t._clearTimer(); }
- _t._stopTimer();
- if(!_t._active){ return _t; }
- _t._paused = true;
- _t._fire("onPause", [_t.curve.getValue(_t._getStep())]);
- return _t;
- },
- gotoPercent: function(/*Decimal*/ percent, /*Boolean?*/ andPlay){
-
-
-
-
-
-
- var _t = this;
- _t._stopTimer();
- _t._active = _t._paused = true;
- _t._percent = percent;
- if(andPlay){ _t.play(); }
- return _t;
- },
- stop: function(/*boolean?*/ gotoEnd){
-
-
- var _t = this;
- if(_t._delayTimer){ _t._clearTimer(); }
- if(!_t._timer){ return _t; }
- _t._stopTimer();
- if(gotoEnd){
- _t._percent = 1;
- }
- _t._fire("onStop", [_t.curve.getValue(_t._getStep())]);
- _t._active = _t._paused = false;
- return _t;
- },
- status: function(){
-
-
-
- if(this._active){
- return this._paused ? "paused" : "playing";
- }
- return "stopped";
- },
- _cycle: function(){
- var _t = this;
- if(_t._active){
- var curr = new Date().valueOf();
- var step = (curr - _t._startTime) / (_t.duration);
- if(step >= 1){
- step = 1;
- }
- _t._percent = step;
-
- if(_t.easing){
- step = _t.easing(step);
- }
- _t._fire("onAnimate", [_t.curve.getValue(step)]);
- if(_t._percent < 1){
- _t._startTimer();
- }else{
- _t._active = false;
- if(_t.repeat > 0){
- _t.repeat--;
- _t.play(null, true);
- }else if(_t.repeat == -1){
- _t.play(null, true);
- }else{
- if(_t._startRepeatCount){
- _t.repeat = _t._startRepeatCount;
- _t._startRepeatCount = 0;
- }
- }
- _t._percent = 0;
- _t._fire("onEnd", [_t.node]);
- !_t.repeat && _t._stopTimer();
- }
- }
- return _t;
- },
- _clearTimer: function(){
-
- clearTimeout(this._delayTimer);
- delete this._delayTimer;
- }
- });
-
- var ctr = 0,
- timer = null,
- runner = {
- run: function(){}
- };
- d.extend(d.Animation, {
- _startTimer: function(){
- if(!this._timer){
- this._timer = d.connect(runner, "run", this, "_cycle");
- ctr++;
- }
- if(!timer){
- timer = setInterval(d.hitch(runner, "run"), this.rate);
- }
- },
- _stopTimer: function(){
- if(this._timer){
- d.disconnect(this._timer);
- this._timer = null;
- ctr--;
- }
- if(ctr <= 0){
- clearInterval(timer);
- timer = null;
- ctr = 0;
- }
- }
- });
- var _makeFadeable =
- d.isIE ? function(node){
-
-
- var ns = node.style;
-
-
- if(!ns.width.length && d.style(node, "width") == "auto"){
- ns.width = "auto";
- }
- } :
- function(){};
- dojo._fade = function(/*Object*/ args){
-
-
-
-
- args.node = d.byId(args.node);
- var fArgs = _mixin({ properties: {} }, args),
- props = (fArgs.properties.opacity = {});
- props.start = !("start" in fArgs) ?
- function(){
- return +d.style(fArgs.node, "opacity")||0;
- } : fArgs.start;
- props.end = fArgs.end;
- var anim = d.animateProperty(fArgs);
- d.connect(anim, "beforeBegin", d.partial(_makeFadeable, fArgs.node));
- return anim;
- };
-
- dojo.fadeIn = function(/*dojo.__FadeArgs*/ args){
-
-
-
- return d._fade(_mixin({ end: 1 }, args));
- };
- dojo.fadeOut = function(/*dojo.__FadeArgs*/ args){
-
-
-
- return d._fade(_mixin({ end: 0 }, args));
- };
- dojo._defaultEasing = function(/*Decimal?*/ n){
-
- return 0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2);
- };
- var PropLine = function(properties){
-
-
-
-
- this._properties = properties;
- for(var p in properties){
- var prop = properties[p];
- if(prop.start instanceof d.Color){
-
- prop.tempColor = new d.Color();
- }
- }
- };
- PropLine.prototype.getValue = function(r){
- var ret = {};
- for(var p in this._properties){
- var prop = this._properties[p],
- start = prop.start;
- if(start instanceof d.Color){
- ret[p] = d.blendColors(start, prop.end, r, prop.tempColor).toCss();
- }else if(!d.isArray(start)){
- ret[p] = ((prop.end - start) * r) + start + (p != "opacity" ? prop.units || "px" : 0);
- }
- }
- return ret;
- };
-
- dojo.animateProperty = function(/*dojo.__AnimArgs*/ args){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var n = args.node = d.byId(args.node);
- if(!args.easing){ args.easing = d._defaultEasing; }
- var anim = new d.Animation(args);
- d.connect(anim, "beforeBegin", anim, function(){
- var pm = {};
- for(var p in this.properties){
-
-
-
-
- if(p == "width" || p == "height"){
- this.node.display = "block";
- }
- var prop = this.properties[p];
- if(d.isFunction(prop)){
- prop = prop(n);
- }
- prop = pm[p] = _mixin({}, (d.isObject(prop) ? prop: { end: prop }));
- if(d.isFunction(prop.start)){
- prop.start = prop.start(n);
- }
- if(d.isFunction(prop.end)){
- prop.end = prop.end(n);
- }
- var isColor = (p.toLowerCase().indexOf("color") >= 0);
- function getStyle(node, p){
-
- var v = { height: node.offsetHeight, width: node.offsetWidth }[p];
- if(v !== undefined){ return v; }
- v = d.style(node, p);
- return (p == "opacity") ? +v : (isColor ? v : parseFloat(v));
- }
- if(!("end" in prop)){
- prop.end = getStyle(n, p);
- }else if(!("start" in prop)){
- prop.start = getStyle(n, p);
- }
- if(isColor){
- prop.start = new d.Color(prop.start);
- prop.end = new d.Color(prop.end);
- }else{
- prop.start = (p == "opacity") ? +prop.start : parseFloat(prop.start);
- }
- }
- this.curve = new PropLine(pm);
- });
- d.connect(anim, "onAnimate", d.hitch(d, "style", anim.node));
- return anim;
- };
- dojo.anim = function( /*DOMNode|String*/ node,
- /*Object*/ properties,
- /*Integer?*/ duration,
- /*Function?*/ easing,
- /*Function?*/ onEnd,
- /*Integer?*/ delay){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return d.animateProperty({
- node: node,
- duration: duration || d.Animation.prototype.duration,
- properties: properties,
- easing: easing,
- onEnd: onEnd
- }).play(delay || 0);
- };
- })();
- }
- if(!dojo._hasResource["dojo._base.browser"]){
- dojo._hasResource["dojo._base.browser"] = true;
- dojo.provide("dojo._base.browser");
-
-
-
-
- dojo.forEach(dojo.config.require, function(i){
- dojo["require"](i);
- });
- }
- if(!dojo._hasResource["dojo._base"]){
- dojo._hasResource["dojo._base"] = true;
- dojo.provide("dojo._base");
- }
-
-
-
-
-
-
-
- if(dojo.isBrowser && (document.readyState === "complete" || dojo.config.afterOnLoad)){
- window.setTimeout(dojo._loadInit, 100);
- }
- })();
|