1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- Ext.DomHelper = function() {
- var tempTableEl = null;
- var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;
- var tableRe = /^table|tbody|tr|td$/i;
- var createHtml = function(o) {
- if (typeof o == 'string') {
- return o;
- }
- var b = "";
- if (!o.tag) {
- o.tag = "div";
- }
- b += "<" + o.tag;
- for (var attr in o) {
- if (attr == "tag" || attr == "children" || attr == "cn"
- || attr == "html" || typeof o[attr] == "function")
- continue;
- if (attr == "style") {
- var s = o["style"];
- if (typeof s == "function") {
- s = s.call();
- }
- if (typeof s == "string") {
- b += ' style="' + s + '"';
- } else if (typeof s == "object") {
- b += ' style="';
- for (var key in s) {
- if (typeof s[key] != "function") {
- b += key + ":" + s[key] + ";";
- }
- }
- b += '"';
- }
- } else {
- if (attr == "cls") {
- b += ' class="' + o["cls"] + '"';
- } else if (attr == "htmlFor") {
- b += ' for="' + o["htmlFor"] + '"';
- } else {
- b += " " + attr + '="' + o[attr] + '"';
- }
- }
- }
- if (emptyTags.test(o.tag)) {
- b += "/>";
- } else {
- b += ">";
- var cn = o.children || o.cn;
- if (cn) {
- if (cn instanceof Array) {
- for (var i = 0, len = cn.length; i < len; i++) {
- b += createHtml(cn[i], b);
- }
- } else {
- b += createHtml(cn, b);
- }
- }
- if (o.html) {
- b += o.html;
- }
- b += "</" + o.tag + ">";
- }
- return b;
- };
- var createDom = function(o, parentNode) {
- var el = document.createElement(o.tag || 'div');
- var useSet = el.setAttribute ? true : false;
- for (var attr in o) {
- if (attr == "tag" || attr == "children" || attr == "cn"
- || attr == "html" || attr == "style"
- || typeof o[attr] == "function")
- continue;
- if (attr == "cls") {
- el.className = o["cls"];
- } else {
- if (useSet)
- el.setAttribute(attr, o[attr]);
- else
- el[attr] = o[attr];
- }
- }
- Ext.DomHelper.applyStyles(el, o.style);
- var cn = o.children || o.cn;
- if (cn) {
- if (cn instanceof Array) {
- for (var i = 0, len = cn.length; i < len; i++) {
- createDom(cn[i], el);
- }
- } else {
- createDom(cn, el);
- }
- }
- if (o.html) {
- el.innerHTML = o.html;
- }
- if (parentNode) {
- parentNode.appendChild(el);
- }
- return el;
- };
- var ieTable = function(depth, s, h, e) {
- tempTableEl.innerHTML = [s, h, e].join('');
- var i = -1, el = tempTableEl;
- while (++i < depth) {
- el = el.firstChild;
- }
- return el;
- };
- var ts = '<table>', te = '</table>', tbs = ts + '<tbody>', tbe = '</tbody>'
- + te, trs = tbs + '<tr>', tre = '</tr>' + tbe;
- var insertIntoTable = function(tag, where, el, html) {
- if (!tempTableEl) {
- tempTableEl = document.createElement('div');
- }
- var node;
- var before = null;
- if (tag == 'td') {
- if (where == 'afterbegin' || where == 'beforeend') {
- return;
- }
- if (where == 'beforebegin') {
- before = el;
- el = el.parentNode;
- } else {
- before = el.nextSibling;
- el = el.parentNode;
- }
- node = ieTable(4, trs, html, tre);
- } else if (tag == 'tr') {
- if (where == 'beforebegin') {
- before = el;
- el = el.parentNode;
- node = ieTable(3, tbs, html, tbe);
- } else if (where == 'afterend') {
- before = el.nextSibling;
- el = el.parentNode;
- node = ieTable(3, tbs, html, tbe);
- } else {
- if (where == 'afterbegin') {
- before = el.firstChild;
- }
- node = ieTable(4, trs, html, tre);
- }
- } else if (tag == 'tbody') {
- if (where == 'beforebegin') {
- before = el;
- el = el.parentNode;
- node = ieTable(2, ts, html, te);
- } else if (where == 'afterend') {
- before = el.nextSibling;
- el = el.parentNode;
- node = ieTable(2, ts, html, te);
- } else {
- if (where == 'afterbegin') {
- before = el.firstChild;
- }
- node = ieTable(3, tbs, html, tbe);
- }
- } else {
- if (where == 'beforebegin' || where == 'afterend') {
- return;
- }
- if (where == 'afterbegin') {
- before = el.firstChild;
- }
- node = ieTable(2, ts, html, te);
- }
- el.insertBefore(node, before);
- return node;
- };
- return {
- useDom : false,
- markup : function(o) {
- return createHtml(o);
- },
- applyStyles : function(el, styles) {
- if (styles) {
- el = Ext.fly(el);
- if (typeof styles == "string") {
- var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi;
- var matches;
- while ((matches = re.exec(styles)) != null) {
- el.setStyle(matches[1], matches[2]);
- }
- } else if (typeof styles == "object") {
- for (var style in styles) {
- el.setStyle(style, styles[style]);
- }
- } else if (typeof styles == "function") {
- Ext.DomHelper.applyStyles(el, styles.call());
- }
- }
- },
- insertHtml : function(where, el, html) {
- where = where.toLowerCase();
- if (el.insertAdjacentHTML) {
- if (tableRe.test(el.tagName)) {
- var rs;
- if (rs = insertIntoTable(el.tagName.toLowerCase(), where,
- el, html)) {
- return rs;
- }
- }
- switch (where) {
- case "beforebegin" :
- el.insertAdjacentHTML('BeforeBegin', html);
- return el.previousSibling;
- case "afterbegin" :
- el.insertAdjacentHTML('AfterBegin', html);
- return el.firstChild;
- case "beforeend" :
- el.insertAdjacentHTML('BeforeEnd', html);
- return el.lastChild;
- case "afterend" :
- el.insertAdjacentHTML('AfterEnd', html);
- return el.nextSibling;
- }
- throw 'Illegal insertion point -> "' + where + '"';
- }
- var range = el.ownerDocument.createRange();
- var frag;
- switch (where) {
- case "beforebegin" :
- range.setStartBefore(el);
- frag = range.createContextualFragment(html);
- el.parentNode.insertBefore(frag, el);
- return el.previousSibling;
- case "afterbegin" :
- if (el.firstChild) {
- range.setStartBefore(el.firstChild);
- frag = range.createContextualFragment(html);
- el.insertBefore(frag, el.firstChild);
- return el.firstChild;
- } else {
- el.innerHTML = html;
- return el.firstChild;
- }
- case "beforeend" :
- if (el.lastChild) {
- range.setStartAfter(el.lastChild);
- frag = range.createContextualFragment(html);
- el.appendChild(frag);
- return el.lastChild;
- } else {
- el.innerHTML = html;
- return el.lastChild;
- }
- case "afterend" :
- range.setStartAfter(el);
- frag = range.createContextualFragment(html);
- el.parentNode.insertBefore(frag, el.nextSibling);
- return el.nextSibling;
- }
- throw 'Illegal insertion point -> "' + where + '"';
- },
- insertBefore : function(el, o, returnElement) {
- return this.doInsert(el, o, returnElement, "beforeBegin");
- },
- insertAfter : function(el, o, returnElement) {
- return this.doInsert(el, o, returnElement, "afterEnd",
- "nextSibling");
- },
- insertFirst : function(el, o, returnElement) {
- return this.doInsert(el, o, returnElement, "afterBegin",
- "firstChild");
- },
- doInsert : function(el, o, returnElement, pos, sibling) {
- el = Ext.getDom(el);
- var newNode;
- if (this.useDom) {
- newNode = createDom(o, null);
- (sibling === "firstChild" ? el : el.parentNode).insertBefore(
- newNode, sibling ? el[sibling] : el);
- } else {
- var html = createHtml(o);
- newNode = this.insertHtml(pos, el, html);
- }
- return returnElement ? Ext.get(newNode, true) : newNode;
- },
- append : function(el, o, returnElement) {
- el = Ext.getDom(el);
- var newNode;
- if (this.useDom) {
- newNode = createDom(o, null);
- el.appendChild(newNode);
- } else {
- var html = createHtml(o);
- newNode = this.insertHtml("beforeEnd", el, html);
- }
- return returnElement ? Ext.get(newNode, true) : newNode;
- },
- overwrite : function(el, o, returnElement) {
- el = Ext.getDom(el);
- el.innerHTML = createHtml(o);
- return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;
- },
- createTemplate : function(o) {
- var html = createHtml(o);
- return new Ext.Template(html);
- }
- };
- }();
- Ext.Template = function(html) {
- var a = arguments;
- if (html instanceof Array) {
- html = html.join("");
- } else if (a.length > 1) {
- var buf = [];
- for (var i = 0, len = a.length; i < len; i++) {
- if (typeof a[i] == 'object') {
- Ext.apply(this, a[i]);
- } else {
- buf[buf.length] = a[i];
- }
- }
- html = buf.join('');
- }
- this.html = html;
- if (this.compiled) {
- this.compile();
- }
- };
- Ext.Template.prototype = {
- applyTemplate : function(values) {
- if (this.compiled) {
- return this.compiled(values);
- }
- var useF = this.disableFormats !== true;
- var fm = Ext.util.Format, tpl = this;
- var fn = function(m, name, format, args) {
- if (format && useF) {
- if (format.substr(0, 5) == "this.") {
- return tpl.call(format.substr(5), values[name], values);
- } else {
- if (args) {
- var re = /^\s*['"](.*)["']\s*$/;
- args = args.split(',');
- for (var i = 0, len = args.length; i < len; i++) {
- args[i] = args[i].replace(re, "$1");
- }
- args = [values[name]].concat(args);
- } else {
- args = [values[name]];
- }
- return fm[format].apply(fm, args);
- }
- } else {
- return values[name] !== undefined ? values[name] : "";
- }
- };
- return this.html.replace(this.re, fn);
- },
- set : function(html, compile) {
- this.html = html;
- this.compiled = null;
- if (compile) {
- this.compile();
- }
- return this;
- },
- disableFormats : false,
- re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
- compile : function() {
- var fm = Ext.util.Format;
- var useF = this.disableFormats !== true;
- var sep = Ext.isGecko ? "+" : ",";
- var fn = function(m, name, format, args) {
- if (format && useF) {
- args = args ? ',' + args : "";
- if (format.substr(0, 5) != "this.") {
- format = "fm." + format + '(';
- } else {
- format = 'this.call("' + format.substr(5) + '", ';
- args = ", values";
- }
- } else {
- args = '';
- format = "(values['" + name + "'] == undefined ? '' : ";
- }
- return "'" + sep + format + "values['" + name + "']" + args + ")"
- + sep + "'";
- };
- var body;
- if (Ext.isGecko) {
- body = "this.compiled = function(values){ return '"
- + this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g,
- '\\n').replace(/'/g, "\\'").replace(this.re, fn)
- + "';};";
- } else {
- body = ["this.compiled = function(values){ return ['"];
- body.push(this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g,
- '\\n').replace(/'/g, "\\'").replace(this.re, fn));
- body.push("'].join('');};");
- body = body.join('');
- }
- eval(body);
- return this;
- },
- call : function(fnName, value, allValues) {
- return this[fnName](value, allValues);
- },
- insertFirst : function(el, values, returnElement) {
- return this.doInsert('afterBegin', el, values, returnElement);
- },
- insertBefore : function(el, values, returnElement) {
- return this.doInsert('beforeBegin', el, values, returnElement);
- },
- insertAfter : function(el, values, returnElement) {
- return this.doInsert('afterEnd', el, values, returnElement);
- },
- append : function(el, values, returnElement) {
- return this.doInsert('beforeEnd', el, values, returnElement);
- },
- doInsert : function(where, el, values, returnEl) {
- el = Ext.getDom(el);
- var newNode = Ext.DomHelper.insertHtml(where, el, this
- .applyTemplate(values));
- return returnEl ? Ext.get(newNode, true) : newNode;
- },
- overwrite : function(el, values, returnElement) {
- el = Ext.getDom(el);
- el.innerHTML = this.applyTemplate(values);
- return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;
- }
- };
- Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate;
- Ext.DomHelper.Template = Ext.Template;
- Ext.Template.from = function(el, config) {
- el = Ext.getDom(el);
- return new Ext.Template(el.value || el.innerHTML, config || '');
- };
- Ext.DomQuery = function() {
- var cache = {}, simpleCache = {}, valueCache = {};
- var nonSpace = /\S/;
- var trimRe = /^\s+|\s+$/g;
- var tplRe = /\{(\d+)\}/g;
- var modeRe = /^(\s?[\/>+~]\s?|\s|$)/;
- var tagTokenRe = /^(#)?([\w-\*]+)/;
- var nthRe = /(\d*)n\+?(\d*)/, nthRe2 = /\D/;
- function child(p, index) {
- var i = 0;
- var n = p.firstChild;
- while (n) {
- if (n.nodeType == 1) {
- if (++i == index) {
- return n;
- }
- }
- n = n.nextSibling;
- }
- return null;
- };
- function next(n) {
- while ((n = n.nextSibling) && n.nodeType != 1);
- return n;
- };
- function prev(n) {
- while ((n = n.previousSibling) && n.nodeType != 1);
- return n;
- };
- function children(d) {
- var n = d.firstChild, ni = -1;
- while (n) {
- var nx = n.nextSibling;
- if (n.nodeType == 3 && !nonSpace.test(n.nodeValue)) {
- d.removeChild(n);
- } else {
- n.nodeIndex = ++ni;
- }
- n = nx;
- }
- return this;
- };
- function byClassName(c, a, v) {
- if (!v) {
- return c;
- }
- var r = [], ri = -1, cn;
- for (var i = 0, ci; ci = c[i]; i++) {
- if ((' ' + ci.className + ' ').indexOf(v) != -1) {
- r[++ri] = ci;
- }
- }
- return r;
- };
- function attrValue(n, attr) {
- if (!n.tagName && typeof n.length != "undefined") {
- n = n[0];
- }
- if (!n) {
- return null;
- }
- if (attr == "for") {
- return n.htmlFor;
- }
- if (attr == "class" || attr == "className") {
- return n.className;
- }
- return n.getAttribute(attr) || n[attr];
- };
- function getNodes(ns, mode, tagName) {
- var result = [], ri = -1, cs;
- if (!ns) {
- return result;
- }
- tagName = tagName || "*";
- if (typeof ns.getElementsByTagName != "undefined") {
- ns = [ns];
- }
- if (!mode) {
- for (var i = 0, ni; ni = ns[i]; i++) {
- cs = ni.getElementsByTagName(tagName);
- for (var j = 0, ci; ci = cs[j]; j++) {
- result[++ri] = ci;
- }
- }
- } else if (mode == "/" || mode == ">") {
- var utag = tagName.toUpperCase();
- for (var i = 0, ni, cn; ni = ns[i]; i++) {
- cn = ni.children || ni.childNodes;
- for (var j = 0, cj; cj = cn[j]; j++) {
- if (cj.nodeName == utag || cj.nodeName == tagName
- || tagName == '*') {
- result[++ri] = cj;
- }
- }
- }
- } else if (mode == "+") {
- var utag = tagName.toUpperCase();
- for (var i = 0, n; n = ns[i]; i++) {
- while ((n = n.nextSibling) && n.nodeType != 1);
- if (n
- && (n.nodeName == utag || n.nodeName == tagName || tagName == '*')) {
- result[++ri] = n;
- }
- }
- } else if (mode == "~") {
- for (var i = 0, n; n = ns[i]; i++) {
- while ((n = n.nextSibling)
- && (n.nodeType != 1 || (tagName == '*' || n.tagName
- .toLowerCase() != tagName)));
- if (n) {
- result[++ri] = n;
- }
- }
- }
- return result;
- };
- function concat(a, b) {
- if (b.slice) {
- return a.concat(b);
- }
- for (var i = 0, l = b.length; i < l; i++) {
- a[a.length] = b[i];
- }
- return a;
- }
- function byTag(cs, tagName) {
- if (cs.tagName || cs == document) {
- cs = [cs];
- }
- if (!tagName) {
- return cs;
- }
- var r = [], ri = -1;
- tagName = tagName.toLowerCase();
- for (var i = 0, ci; ci = cs[i]; i++) {
- if (ci.nodeType == 1 && ci.tagName.toLowerCase() == tagName) {
- r[++ri] = ci;
- }
- }
- return r;
- };
- function byId(cs, attr, id) {
- if (cs.tagName || cs == document) {
- cs = [cs];
- }
- if (!id) {
- return cs;
- }
- var r = [], ri = -1;
- for (var i = 0, ci; ci = cs[i]; i++) {
- if (ci && ci.id == id) {
- r[++ri] = ci;
- return r;
- }
- }
- return r;
- };
- function byAttribute(cs, attr, value, op, custom) {
- var r = [], ri = -1, st = custom == "{";
- var f = Ext.DomQuery.operators[op];
- for (var i = 0, ci; ci = cs[i]; i++) {
- var a;
- if (st) {
- a = Ext.DomQuery.getStyle(ci, attr);
- } else if (attr == "class" || attr == "className") {
- a = ci.className;
- } else if (attr == "for") {
- a = ci.htmlFor;
- } else if (attr == "href") {
- a = ci.getAttribute("href", 2);
- } else {
- a = ci.getAttribute(attr);
- }
- if ((f && f(a, value)) || (!f && a)) {
- r[++ri] = ci;
- }
- }
- return r;
- };
- function byPseudo(cs, name, value) {
- return Ext.DomQuery.pseudos[name](cs, value);
- };
- var isIE = window.ActiveXObject ? true : false;
- eval("var batch = 30803;");
- var key = 30803;
- function nodupIEXml(cs) {
- var d = ++key;
- cs[0].setAttribute("_nodup", d);
- var r = [cs[0]];
- for (var i = 1, len = cs.length; i < len; i++) {
- var c = cs[i];
- if (!c.getAttribute("_nodup") != d) {
- c.setAttribute("_nodup", d);
- r[r.length] = c;
- }
- }
- for (var i = 0, len = cs.length; i < len; i++) {
- cs[i].removeAttribute("_nodup");
- }
- return r;
- }
- function nodup(cs) {
- if (!cs) {
- return [];
- }
- var len = cs.length, c, i, r = cs, cj, ri = -1;
- if (!len || typeof cs.nodeType != "undefined" || len == 1) {
- return cs;
- }
- if (isIE && typeof cs[0].selectSingleNode != "undefined") {
- return nodupIEXml(cs);
- }
- var d = ++key;
- cs[0]._nodup = d;
- for (i = 1; c = cs[i]; i++) {
- if (c._nodup != d) {
- c._nodup = d;
- } else {
- r = [];
- for (var j = 0; j < i; j++) {
- r[++ri] = cs[j];
- }
- for (j = i + 1; cj = cs[j]; j++) {
- if (cj._nodup != d) {
- cj._nodup = d;
- r[++ri] = cj;
- }
- }
- return r;
- }
- }
- return r;
- }
- function quickDiffIEXml(c1, c2) {
- var d = ++key;
- for (var i = 0, len = c1.length; i < len; i++) {
- c1[i].setAttribute("_qdiff", d);
- }
- var r = [];
- for (var i = 0, len = c2.length; i < len; i++) {
- if (c2[i].getAttribute("_qdiff") != d) {
- r[r.length] = c2[i];
- }
- }
- for (var i = 0, len = c1.length; i < len; i++) {
- c1[i].removeAttribute("_qdiff");
- }
- return r;
- }
- function quickDiff(c1, c2) {
- var len1 = c1.length;
- if (!len1) {
- return c2;
- }
- if (isIE && c1[0].selectSingleNode) {
- return quickDiffIEXml(c1, c2);
- }
- var d = ++key;
- for (var i = 0; i < len1; i++) {
- c1[i]._qdiff = d;
- }
- var r = [];
- for (var i = 0, len = c2.length; i < len; i++) {
- if (c2[i]._qdiff != d) {
- r[r.length] = c2[i];
- }
- }
- return r;
- }
- function quickId(ns, mode, root, id) {
- if (ns == root) {
- var d = root.ownerDocument || root;
- return d.getElementById(id);
- }
- ns = getNodes(ns, mode, "*");
- return byId(ns, null, id);
- }
- return {
- getStyle : function(el, name) {
- return Ext.fly(el).getStyle(name);
- },
- compile : function(path, type) {
- type = type || "select";
- var fn = ["var f = function(root){\n var mode; ++batch; var n = root || document;\n"];
- var q = path, mode, lq;
- var tk = Ext.DomQuery.matchers;
- var tklen = tk.length;
- var mm;
- var lmode = q.match(modeRe);
- if (lmode && lmode[1]) {
- fn[fn.length] = 'mode="' + lmode[1].replace(trimRe, "") + '";';
- q = q.replace(lmode[1], "");
- }
- while (path.substr(0, 1) == "/") {
- path = path.substr(1);
- }
- while (q && lq != q) {
- lq = q;
- var tm = q.match(tagTokenRe);
- if (type == "select") {
- if (tm) {
- if (tm[1] == "#") {
- fn[fn.length] = 'n = quickId(n, mode, root, "'
- + tm[2] + '");';
- } else {
- fn[fn.length] = 'n = getNodes(n, mode, "' + tm[2]
- + '");';
- }
- q = q.replace(tm[0], "");
- } else if (q.substr(0, 1) != '@') {
- fn[fn.length] = 'n = getNodes(n, mode, "*");';
- }
- } else {
- if (tm) {
- if (tm[1] == "#") {
- fn[fn.length] = 'n = byId(n, null, "' + tm[2]
- + '");';
- } else {
- fn[fn.length] = 'n = byTag(n, "' + tm[2] + '");';
- }
- q = q.replace(tm[0], "");
- }
- }
- while (!(mm = q.match(modeRe))) {
- var matched = false;
- for (var j = 0; j < tklen; j++) {
- var t = tk[j];
- var m = q.match(t.re);
- if (m) {
- fn[fn.length] = t.select.replace(tplRe, function(x,
- i) {
- return m[i];
- });
- q = q.replace(m[0], "");
- matched = true;
- break;
- }
- }
- if (!matched) {
- throw 'Error parsing selector, parsing failed at "' + q
- + '"';
- }
- }
- if (mm[1]) {
- fn[fn.length] = 'mode="' + mm[1].replace(trimRe, "") + '";';
- q = q.replace(mm[1], "");
- }
- }
- fn[fn.length] = "return nodup(n);\n}";
- eval(fn.join(""));
- return f;
- },
- select : function(path, root, type) {
- if (!root || root == document) {
- root = document;
- }
- if (typeof root == "string") {
- root = document.getElementById(root);
- }
- var paths = path.split(",");
- var results = [];
- for (var i = 0, len = paths.length; i < len; i++) {
- var p = paths[i].replace(trimRe, "");
- if (!cache[p]) {
- cache[p] = Ext.DomQuery.compile(p);
- if (!cache[p]) {
- throw p + " is not a valid selector";
- }
- }
- var result = cache[p](root);
- if (result && result != document) {
- results = results.concat(result);
- }
- }
- if (paths.length > 1) {
- return nodup(results);
- }
- return results;
- },
- selectNode : function(path, root) {
- return Ext.DomQuery.select(path, root)[0];
- },
- selectValue : function(path, root, defaultValue) {
- path = path.replace(trimRe, "");
- if (!valueCache[path]) {
- valueCache[path] = Ext.DomQuery.compile(path, "select");
- }
- var n = valueCache[path](root);
- n = n[0] ? n[0] : n;
- var v = (n && n.firstChild ? n.firstChild.nodeValue : null);
- return ((v === null || v === undefined || v === '')
- ? defaultValue
- : v);
- },
- selectNumber : function(path, root, defaultValue) {
- var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0);
- return parseFloat(v);
- },
- is : function(el, ss) {
- if (typeof el == "string") {
- el = document.getElementById(el);
- }
- var isArray = (el instanceof Array);
- var result = Ext.DomQuery.filter(isArray ? el : [el], ss);
- return isArray ? (result.length == el.length) : (result.length > 0);
- },
- filter : function(els, ss, nonMatches) {
- ss = ss.replace(trimRe, "");
- if (!simpleCache[ss]) {
- simpleCache[ss] = Ext.DomQuery.compile(ss, "simple");
- }
- var result = simpleCache[ss](els);
- return nonMatches ? quickDiff(result, els) : result;
- },
- matchers : [{
- re : /^\.([\w-]+)/,
- select : 'n = byClassName(n, null, " {1} ");'
- }, {
- re : /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,
- select : 'n = byPseudo(n, "{1}", "{2}");'
- }, {
- re : /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,
- select : 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'
- }, {
- re : /^#([\w-]+)/,
- select : 'n = byId(n, null, "{1}");'
- }, {
- re : /^@([\w-]+)/,
- select : 'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'
- }],
- operators : {
- "=" : function(a, v) {
- return a == v;
- },
- "!=" : function(a, v) {
- return a != v;
- },
- "^=" : function(a, v) {
- return a && a.substr(0, v.length) == v;
- },
- "$=" : function(a, v) {
- return a && a.substr(a.length - v.length) == v;
- },
- "*=" : function(a, v) {
- return a && a.indexOf(v) !== -1;
- },
- "%=" : function(a, v) {
- return (a % v) == 0;
- },
- "|=" : function(a, v) {
- return a && (a == v || a.substr(0, v.length + 1) == v + '-');
- },
- "~=" : function(a, v) {
- return a && (' ' + a + ' ').indexOf(' ' + v + ' ') != -1;
- }
- },
- pseudos : {
- "first-child" : function(c) {
- var r = [], ri = -1, n;
- for (var i = 0, ci; ci = n = c[i]; i++) {
- while ((n = n.previousSibling) && n.nodeType != 1);
- if (!n) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "last-child" : function(c) {
- var r = [], ri = -1, n;
- for (var i = 0, ci; ci = n = c[i]; i++) {
- while ((n = n.nextSibling) && n.nodeType != 1);
- if (!n) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "nth-child" : function(c, a) {
- var r = [], ri = -1;
- var m = nthRe.exec(a == "even" && "2n" || a == "odd" && "2n+1"
- || !nthRe2.test(a) && "n+" + a || a);
- var f = (m[1] || 1) - 0, l = m[2] - 0;
- for (var i = 0, n; n = c[i]; i++) {
- var pn = n.parentNode;
- if (batch != pn._batch) {
- var j = 0;
- for (var cn = pn.firstChild; cn; cn = cn.nextSibling) {
- if (cn.nodeType == 1) {
- cn.nodeIndex = ++j;
- }
- }
- pn._batch = batch;
- }
- if (f == 1) {
- if (l == 0 || n.nodeIndex == l) {
- r[++ri] = n;
- }
- } else if ((n.nodeIndex + l) % f == 0) {
- r[++ri] = n;
- }
- }
- return r;
- },
- "only-child" : function(c) {
- var r = [], ri = -1;;
- for (var i = 0, ci; ci = c[i]; i++) {
- if (!prev(ci) && !next(ci)) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "empty" : function(c) {
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- var cns = ci.childNodes, j = 0, cn, empty = true;
- while (cn = cns[j]) {
- ++j;
- if (cn.nodeType == 1 || cn.nodeType == 3) {
- empty = false;
- break;
- }
- }
- if (empty) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "contains" : function(c, v) {
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- if ((ci.textContent || ci.innerText || '').indexOf(v) != -1) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "nodeValue" : function(c, v) {
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- if (ci.firstChild && ci.firstChild.nodeValue == v) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "checked" : function(c) {
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- if (ci.checked == true) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "not" : function(c, ss) {
- return Ext.DomQuery.filter(c, ss, true);
- },
- "any" : function(c, selectors) {
- var ss = selectors.split('|');
- var r = [], ri = -1, s;
- for (var i = 0, ci; ci = c[i]; i++) {
- for (var j = 0; s = ss[j]; j++) {
- if (Ext.DomQuery.is(ci, s)) {
- r[++ri] = ci;
- break;
- }
- }
- }
- return r;
- },
- "odd" : function(c) {
- return this["nth-child"](c, "odd");
- },
- "even" : function(c) {
- return this["nth-child"](c, "even");
- },
- "nth" : function(c, a) {
- return c[a - 1] || [];
- },
- "first" : function(c) {
- return c[0] || [];
- },
- "last" : function(c) {
- return c[c.length - 1] || [];
- },
- "has" : function(c, ss) {
- var s = Ext.DomQuery.select;
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- if (s(ss, ci).length > 0) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "next" : function(c, ss) {
- var is = Ext.DomQuery.is;
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- var n = next(ci);
- if (n && is(n, ss)) {
- r[++ri] = ci;
- }
- }
- return r;
- },
- "prev" : function(c, ss) {
- var is = Ext.DomQuery.is;
- var r = [], ri = -1;
- for (var i = 0, ci; ci = c[i]; i++) {
- var n = prev(ci);
- if (n && is(n, ss)) {
- r[++ri] = ci;
- }
- }
- return r;
- }
- }
- };
- }();
- Ext.query = Ext.DomQuery.select;
- Ext.util.Observable = function() {
- if (this.listeners) {
- this.on(this.listeners);
- delete this.listeners;
- }
- };
- Ext.util.Observable.prototype = {
- fireEvent : function() {
- if (this.eventsSuspended !== true) {
- var ce = this.events[arguments[0].toLowerCase()];
- if (typeof ce == "object") {
- return ce.fire.apply(ce, Array.prototype.slice.call(arguments,
- 1));
- }
- }
- return true;
- },
- filterOptRe : /^(?:scope|delay|buffer|single)$/,
- addListener : function(eventName, fn, scope, o) {
- if (typeof eventName == "object") {
- o = eventName;
- for (var e in o) {
- if (this.filterOptRe.test(e)) {
- continue;
- }
- if (typeof o[e] == "function") {
- this.addListener(e, o[e], o.scope, o);
- } else {
- this.addListener(e, o[e].fn, o[e].scope, o[e]);
- }
- }
- return;
- }
- o = (!o || typeof o == "boolean") ? {} : o;
- eventName = eventName.toLowerCase();
- var ce = this.events[eventName] || true;
- if (typeof ce == "boolean") {
- ce = new Ext.util.Event(this, eventName);
- this.events[eventName] = ce;
- }
- ce.addListener(fn, scope, o);
- },
- removeListener : function(eventName, fn, scope) {
- var ce = this.events[eventName.toLowerCase()];
- if (typeof ce == "object") {
- ce.removeListener(fn, scope);
- }
- },
- purgeListeners : function() {
- for (var evt in this.events) {
- if (typeof this.events[evt] == "object") {
- this.events[evt].clearListeners();
- }
- }
- },
- relayEvents : function(o, events) {
- var createHandler = function(ename) {
- return function() {
- return this.fireEvent.apply(this, Ext.combine(ename,
- Array.prototype.slice.call(arguments, 0)));
- };
- };
- for (var i = 0, len = events.length; i < len; i++) {
- var ename = events[i];
- if (!this.events[ename]) {
- this.events[ename] = true;
- };
- o.on(ename, createHandler(ename), this);
- }
- },
- addEvents : function(o) {
- if (!this.events) {
- this.events = {};
- }
- if (typeof o == 'string') {
- for (var i = 0, a = arguments, v; v = a[i]; i++) {
- if (!this.events[a[i]]) {
- o[a[i]] = true;
- }
- }
- } else {
- Ext.applyIf(this.events, o);
- }
- },
- hasListener : function(eventName) {
- var e = this.events[eventName];
- return typeof e == "object" && e.listeners.length > 0;
- },
- suspendEvents : function() {
- this.eventsSuspended = true;
- },
- resumeEvents : function() {
- this.eventsSuspended = false;
- },
- getMethodEvent : function(method) {
- if (!this.methodEvents) {
- this.methodEvents = {};
- }
- var e = this.methodEvents[method];
- if (!e) {
- e = {};
- this.methodEvents[method] = e;
- e.originalFn = this[method];
- e.methodName = method;
- e.before = [];
- e.after = [];
- var returnValue, v, cancel;
- var obj = this;
- var makeCall = function(fn, scope, args) {
- if ((v = fn.apply(scope || obj, args)) !== undefined) {
- if (typeof v === 'object') {
- if (v.returnValue !== undefined) {
- returnValue = v.returnValue;
- } else {
- returnValue = v;
- }
- if (v.cancel === true) {
- cancel = true;
- }
- } else if (v === false) {
- cancel = true;
- } else {
- returnValue = v;
- }
- }
- }
- this[method] = function() {
- returnValue = v = undefined;
- cancel = false;
- var args = Array.prototype.slice.call(arguments, 0);
- for (var i = 0, len = e.before.length; i < len; i++) {
- makeCall(e.before[i].fn, e.before[i].scope, args);
- if (cancel) {
- return returnValue;
- }
- }
- if ((v = e.originalFn.apply(obj, args)) !== undefined) {
- returnValue = v;
- }
- for (var i = 0, len = e.after.length; i < len; i++) {
- makeCall(e.after[i].fn, e.after[i].scope, args);
- if (cancel) {
- return returnValue;
- }
- }
- return returnValue;
- };
- }
- return e;
- },
- beforeMethod : function(method, fn, scope) {
- var e = this.getMethodEvent(method);
- e.before.push({
- fn : fn,
- scope : scope
- });
- },
- afterMethod : function(method, fn, scope) {
- var e = this.getMethodEvent(method);
- e.after.push({
- fn : fn,
- scope : scope
- });
- },
- removeMethodListener : function(method, fn, scope) {
- var e = this.getMethodEvent(method);
- for (var i = 0, len = e.before.length; i < len; i++) {
- if (e.before[i].fn == fn && e.before[i].scope == scope) {
- e.before.splice(i, 1);
- return;
- }
- }
- for (var i = 0, len = e.after.length; i < len; i++) {
- if (e.after[i].fn == fn && e.after[i].scope == scope) {
- e.after.splice(i, 1);
- return;
- }
- }
- }
- };
- Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener;
- Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener;
- Ext.util.Observable.capture = function(o, fn, scope) {
- o.fireEvent = o.fireEvent.createInterceptor(fn, scope);
- };
- Ext.util.Observable.releaseCapture = function(o) {
- o.fireEvent = Ext.util.Observable.prototype.fireEvent;
- };
- (function() {
- var createBuffered = function(h, o, scope) {
- var task = new Ext.util.DelayedTask();
- return function() {
- task.delay(o.buffer, h, scope, Array.prototype.slice.call(
- arguments, 0));
- };
- };
- var createSingle = function(h, e, fn, scope) {
- return function() {
- e.removeListener(fn, scope);
- return h.apply(scope, arguments);
- };
- };
- var createDelayed = function(h, o, scope) {
- return function() {
- var args = Array.prototype.slice.call(arguments, 0);
- setTimeout(function() {
- h.apply(scope, args);
- }, o.delay || 10);
- };
- };
- Ext.util.Event = function(obj, name) {
- this.name = name;
- this.obj = obj;
- this.listeners = [];
- };
- Ext.util.Event.prototype = {
- addListener : function(fn, scope, options) {
- scope = scope || this.obj;
- if (!this.isListening(fn, scope)) {
- var l = this.createListener(fn, scope, options);
- if (!this.firing) {
- this.listeners.push(l);
- } else {
- this.listeners = this.listeners.slice(0);
- this.listeners.push(l);
- }
- }
- },
- createListener : function(fn, scope, o) {
- o = o || {};
- scope = scope || this.obj;
- var l = {
- fn : fn,
- scope : scope,
- options : o
- };
- var h = fn;
- if (o.delay) {
- h = createDelayed(h, o, scope);
- }
- if (o.single) {
- h = createSingle(h, this, fn, scope);
- }
- if (o.buffer) {
- h = createBuffered(h, o, scope);
- }
- l.fireFn = h;
- return l;
- },
- findListener : function(fn, scope) {
- scope = scope || this.obj;
- var ls = this.listeners;
- for (var i = 0, len = ls.length; i < len; i++) {
- var l = ls[i];
- if (l.fn == fn && l.scope == scope) {
- return i;
- }
- }
- return -1;
- },
- isListening : function(fn, scope) {
- return this.findListener(fn, scope) != -1;
- },
- removeListener : function(fn, scope) {
- var index;
- if ((index = this.findListener(fn, scope)) != -1) {
- if (!this.firing) {
- this.listeners.splice(index, 1);
- } else {
- this.listeners = this.listeners.slice(0);
- this.listeners.splice(index, 1);
- }
- return true;
- }
- return false;
- },
- clearListeners : function() {
- this.listeners = [];
- },
- fire : function() {
- var ls = this.listeners, scope, len = ls.length;
- if (len > 0) {
- this.firing = true;
- var args = Array.prototype.slice.call(arguments, 0);
- for (var i = 0; i < len; i++) {
- var l = ls[i];
- if (l.fireFn
- .apply(l.scope || this.obj || window, arguments) === false) {
- this.firing = false;
- return false;
- }
- }
- this.firing = false;
- }
- return true;
- }
- };
- })();
- Ext.EventManager = function() {
- var docReadyEvent, docReadyProcId, docReadyState = false;
- var resizeEvent, resizeTask, textEvent, textSize;
- var E = Ext.lib.Event;
- var D = Ext.lib.Dom;
- var fireDocReady = function() {
- if (!docReadyState) {
- docReadyState = true;
- Ext.isReady = true;
- if (docReadyProcId) {
- clearInterval(docReadyProcId);
- }
- if (Ext.isGecko || Ext.isOpera) {
- document.removeEventListener("DOMContentLoaded", fireDocReady,
- false);
- }
- if (Ext.isIE) {
- var defer = document.getElementById("ie-deferred-loader");
- if (defer) {
- defer.onreadystatechange = null;
- defer.parentNode.removeChild(defer);
- }
- }
- if (docReadyEvent) {
- docReadyEvent.fire();
- docReadyEvent.clearListeners();
- }
- }
- };
- var initDocReady = function() {
- docReadyEvent = new Ext.util.Event();
- if (Ext.isGecko || Ext.isOpera) {
- document.addEventListener("DOMContentLoaded", fireDocReady, false);
- } else if (Ext.isIE) {
- document.write("<s"
- + 'cript id="ie-deferred-loader" defer="defer" src="/'
- + '/:"></s' + "cript>");
- var defer = document.getElementById("ie-deferred-loader");
- defer.onreadystatechange = function() {
- if (this.readyState == "complete") {
- fireDocReady();
- }
- };
- } else if (Ext.isSafari) {
- docReadyProcId = setInterval(function() {
- var rs = document.readyState;
- if (rs == "complete") {
- fireDocReady();
- }
- }, 10);
- }
- E.on(window, "load", fireDocReady);
- };
- var createBuffered = function(h, o) {
- var task = new Ext.util.DelayedTask(h);
- return function(e) {
- e = new Ext.EventObjectImpl(e);
- task.delay(o.buffer, h, null, [e]);
- };
- };
- var createSingle = function(h, el, ename, fn) {
- return function(e) {
- Ext.EventManager.removeListener(el, ename, fn);
- h(e);
- };
- };
- var createDelayed = function(h, o) {
- return function(e) {
- e = new Ext.EventObjectImpl(e);
- setTimeout(function() {
- h(e);
- }, o.delay || 10);
- };
- };
- var listen = function(element, ename, opt, fn, scope) {
- var o = (!opt || typeof opt == "boolean") ? {} : opt;
- fn = fn || o.fn;
- scope = scope || o.scope;
- var el = Ext.getDom(element);
- if (!el) {
- throw "Error listening for \"" + ename + '\". Element "' + element
- + '" doesn\'t exist.';
- }
- var h = function(e) {
- e = Ext.EventObject.setEvent(e);
- var t;
- if (o.delegate) {
- t = e.getTarget(o.delegate, el);
- if (!t) {
- return;
- }
- } else {
- t = e.target;
- }
- if (o.stopEvent === true) {
- e.stopEvent();
- }
- if (o.preventDefault === true) {
- e.preventDefault();
- }
- if (o.stopPropagation === true) {
- e.stopPropagation();
- }
- if (o.normalized === false) {
- e = e.browserEvent;
- }
- fn.call(scope || el, e, t, o);
- };
- if (o.delay) {
- h = createDelayed(h, o);
- }
- if (o.single) {
- h = createSingle(h, el, ename, fn);
- }
- if (o.buffer) {
- h = createBuffered(h, o);
- }
- fn._handlers = fn._handlers || [];
- fn._handlers.push([Ext.id(el), ename, h]);
- E.on(el, ename, h);
- if (ename == "mousewheel" && el.addEventListener) {
- el.addEventListener("DOMMouseScroll", h, false);
- E.on(window, 'unload', function() {
- el.removeEventListener("DOMMouseScroll", h, false);
- });
- }
- if (ename == "mousedown" && el == document) {
- Ext.EventManager.stoppedMouseDownEvent.addListener(h);
- }
- return h;
- };
- var stopListening = function(el, ename, fn) {
- var id = Ext.id(el), hds = fn._handlers, hd = fn;
- if (hds) {
- for (var i = 0, len = hds.length; i < len; i++) {
- var h = hds[i];
- if (h[0] == id && h[1] == ename) {
- hd = h[2];
- hds.splice(i, 1);
- break;
- }
- }
- }
- E.un(el, ename, hd);
- el = Ext.getDom(el);
- if (ename == "mousewheel" && el.addEventListener) {
- el.removeEventListener("DOMMouseScroll", hd, false);
- }
- if (ename == "mousedown" && el == document) {
- Ext.EventManager.stoppedMouseDownEvent.removeListener(hd);
- }
- };
- var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;
- var pub = {
- addListener : function(element, eventName, fn, scope, options) {
- if (typeof eventName == "object") {
- var o = eventName;
- for (var e in o) {
- if (propRe.test(e)) {
- continue;
- }
- if (typeof o[e] == "function") {
- listen(element, e, o, o[e], o.scope);
- } else {
- listen(element, e, o[e]);
- }
- }
- return;
- }
- return listen(element, eventName, options, fn, scope);
- },
- removeListener : function(element, eventName, fn) {
- return stopListening(element, eventName, fn);
- },
- onDocumentReady : function(fn, scope, options) {
- if (docReadyState) {
- docReadyEvent.addListener(fn, scope, options);
- docReadyEvent.fire();
- docReadyEvent.clearListeners();
- return;
- }
- if (!docReadyEvent) {
- initDocReady();
- }
- docReadyEvent.addListener(fn, scope, options);
- },
- onWindowResize : function(fn, scope, options) {
- if (!resizeEvent) {
- resizeEvent = new Ext.util.Event();
- resizeTask = new Ext.util.DelayedTask(function() {
- resizeEvent.fire(D.getViewWidth(), D
- .getViewHeight());
- });
- E.on(window, "resize", this.fireWindowResize, this);
- }
- resizeEvent.addListener(fn, scope, options);
- },
- fireWindowResize : function() {
- if (resizeEvent) {
- if ((Ext.isIE || Ext.isAir) && resizeTask) {
- resizeTask.delay(50);
- } else {
- resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
- }
- }
- },
- onTextResize : function(fn, scope, options) {
- if (!textEvent) {
- textEvent = new Ext.util.Event();
- var textEl = new Ext.Element(document.createElement('div'));
- textEl.dom.className = 'x-text-resize';
- textEl.dom.innerHTML = 'X';
- textEl.appendTo(document.body);
- textSize = textEl.dom.offsetHeight;
- setInterval(function() {
- if (textEl.dom.offsetHeight != textSize) {
- textEvent.fire(textSize,
- textSize = textEl.dom.offsetHeight);
- }
- }, this.textResizeInterval);
- }
- textEvent.addListener(fn, scope, options);
- },
- removeResizeListener : function(fn, scope) {
- if (resizeEvent) {
- resizeEvent.removeListener(fn, scope);
- }
- },
- fireResize : function() {
- if (resizeEvent) {
- resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
- }
- },
- ieDeferSrc : false,
- textResizeInterval : 50
- };
- pub.on = pub.addListener;
- pub.un = pub.removeListener;
- pub.stoppedMouseDownEvent = new Ext.util.Event();
- return pub;
- }();
- Ext.onReady = Ext.EventManager.onDocumentReady;
- Ext.onReady(function() {
- var bd = Ext.getBody();
- if (!bd) {
- return;
- }
- var cls = [Ext.isIE ? "ext-ie "
- + (Ext.isIE6 ? 'ext-ie6' : 'ext-ie7') : Ext.isGecko
- ? "ext-gecko"
- : Ext.isOpera ? "ext-opera" : Ext.isSafari
- ? "ext-safari"
- : ""];
- if (Ext.isMac) {
- cls.push("ext-mac");
- }
- if (Ext.isLinux) {
- cls.push("ext-linux");
- }
- if (Ext.isBorderBox) {
- cls.push('ext-border-box');
- }
- if (Ext.isStrict) {
- var p = bd.dom.parentNode;
- if (p) {
- p.className += ' ext-strict';
- }
- }
- bd.addClass(cls.join(' '));
- });
- Ext.EventObject = function() {
- var E = Ext.lib.Event;
- var safariKeys = {
- 63234 : 37,
- 63235 : 39,
- 63232 : 38,
- 63233 : 40,
- 63276 : 33,
- 63277 : 34,
- 63272 : 46,
- 63273 : 36,
- 63275 : 35
- };
- var btnMap = Ext.isIE ? {
- 1 : 0,
- 4 : 1,
- 2 : 2
- } : (Ext.isSafari ? {
- 1 : 0,
- 2 : 1,
- 3 : 2
- } : {
- 0 : 0,
- 1 : 1,
- 2 : 2
- });
- Ext.EventObjectImpl = function(e) {
- if (e) {
- this.setEvent(e.browserEvent || e);
- }
- };
- Ext.EventObjectImpl.prototype = {
- browserEvent : null,
- button : -1,
- shiftKey : false,
- ctrlKey : false,
- altKey : false,
- BACKSPACE : 8,
- TAB : 9,
- RETURN : 13,
- ENTER : 13,
- SHIFT : 16,
- CONTROL : 17,
- ESC : 27,
- SPACE : 32,
- PAGEUP : 33,
- PAGEDOWN : 34,
- END : 35,
- HOME : 36,
- LEFT : 37,
- UP : 38,
- RIGHT : 39,
- DOWN : 40,
- DELETE : 46,
- F5 : 116,
- setEvent : function(e) {
- if (e == this || (e && e.browserEvent)) {
- return e;
- }
- this.browserEvent = e;
- if (e) {
- this.button = e.button ? btnMap[e.button] : (e.which ? e.which
- - 1 : -1);
- if (e.type == 'click' && this.button == -1) {
- this.button = 0;
- }
- this.type = e.type;
- this.shiftKey = e.shiftKey;
- this.ctrlKey = e.ctrlKey || e.metaKey;
- this.altKey = e.altKey;
- this.keyCode = e.keyCode;
- this.charCode = e.charCode;
- this.target = E.getTarget(e);
- this.xy = E.getXY(e);
- } else {
- this.button = -1;
- this.shiftKey = false;
- this.ctrlKey = false;
- this.altKey = false;
- this.keyCode = 0;
- this.charCode = 0;
- this.target = null;
- this.xy = [0, 0];
- }
- return this;
- },
- stopEvent : function() {
- if (this.browserEvent) {
- if (this.browserEvent.type == 'mousedown') {
- Ext.EventManager.stoppedMouseDownEvent.fire(this);
- }
- E.stopEvent(this.browserEvent);
- }
- },
- preventDefault : function() {
- if (this.browserEvent) {
- E.preventDefault(this.browserEvent);
- }
- },
- isNavKeyPress : function() {
- var k = this.keyCode;
- k = Ext.isSafari ? (safariKeys[k] || k) : k;
- return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB
- || k == this.ESC;
- },
- isSpecialKey : function() {
- var k = this.keyCode;
- return (this.type == 'keypress' && this.ctrlKey) || k == 9
- || k == 13 || k == 40 || k == 27 || (k == 16) || (k == 17)
- || (k >= 18 && k <= 20) || (k >= 33 && k <= 35)
- || (k >= 36 && k <= 39) || (k >= 44 && k <= 45);
- },
- stopPropagation : function() {
- if (this.browserEvent) {
- if (this.browserEvent.type == 'mousedown') {
- Ext.EventManager.stoppedMouseDownEvent.fire(this);
- }
- E.stopPropagation(this.browserEvent);
- }
- },
- getCharCode : function() {
- return this.charCode || this.keyCode;
- },
- getKey : function() {
- var k = this.keyCode || this.charCode;
- return Ext.isSafari ? (safariKeys[k] || k) : k;
- },
- getPageX : function() {
- return this.xy[0];
- },
- getPageY : function() {
- return this.xy[1];
- },
- getTime : function() {
- if (this.browserEvent) {
- return E.getTime(this.browserEvent);
- }
- return null;
- },
- getXY : function() {
- return this.xy;
- },
- getTarget : function(selector, maxDepth, returnEl) {
- var t = Ext.get(this.target);
- return selector
- ? t.findParent(selector, maxDepth, returnEl)
- : (returnEl ? t : this.target);
- },
- getRelatedTarget : function() {
- if (this.browserEvent) {
- return E.getRelatedTarget(this.browserEvent);
- }
- return null;
- },
- getWheelDelta : function() {
- var e = this.browserEvent;
- var delta = 0;
- if (e.wheelDelta) {
- delta = e.wheelDelta / 120;
- } else if (e.detail) {
- delta = -e.detail / 3;
- }
- return delta;
- },
- hasModifier : function() {
- return ((this.ctrlKey || this.altKey) || this.shiftKey)
- ? true
- : false;
- },
- within : function(el, related) {
- var t = this[related ? "getRelatedTarget" : "getTarget"]();
- return t && Ext.fly(el).contains(t);
- },
- getPoint : function() {
- return new Ext.lib.Point(this.xy[0], this.xy[1]);
- }
- };
- return new Ext.EventObjectImpl();
- }();
- (function() {
- var D = Ext.lib.Dom;
- var E = Ext.lib.Event;
- var A = Ext.lib.Anim;
- var propCache = {};
- var camelRe = /(-[a-z])/gi;
- var camelFn = function(m, a) {
- return a.charAt(1).toUpperCase();
- };
- var view = document.defaultView;
- Ext.Element = function(element, forceNew) {
- var dom = typeof element == "string"
- ? document.getElementById(element)
- : element;
- if (!dom) {
- return null;
- }
- var id = dom.id;
- if (forceNew !== true && id && Ext.Element.cache[id]) {
- return Ext.Element.cache[id];
- }
- this.dom = dom;
- this.id = id || Ext.id(dom);
- };
- var El = Ext.Element;
- El.prototype = {
- originalDisplay : "",
- visibilityMode : 1,
- defaultUnit : "px",
- setVisibilityMode : function(visMode) {
- this.visibilityMode = visMode;
- return this;
- },
- enableDisplayMode : function(display) {
- this.setVisibilityMode(El.DISPLAY);
- if (typeof display != "undefined")
- this.originalDisplay = display;
- return this;
- },
- findParent : function(simpleSelector, maxDepth, returnEl) {
- var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl;
- maxDepth = maxDepth || 50;
- if (typeof maxDepth != "number") {
- stopEl = Ext.getDom(maxDepth);
- maxDepth = 10;
- }
- while (p && p.nodeType == 1 && depth < maxDepth && p != b
- && p != stopEl) {
- if (dq.is(p, simpleSelector)) {
- return returnEl ? Ext.get(p) : p;
- }
- depth++;
- p = p.parentNode;
- }
- return null;
- },
- findParentNode : function(simpleSelector, maxDepth, returnEl) {
- var p = Ext.fly(this.dom.parentNode, '_internal');
- return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;
- },
- up : function(simpleSelector, maxDepth) {
- return this.findParentNode(simpleSelector, maxDepth, true);
- },
- is : function(simpleSelector) {
- return Ext.DomQuery.is(this.dom, simpleSelector);
- },
- animate : function(args, duration, onComplete, easing, animType) {
- this.anim(args, {
- duration : duration,
- callback : onComplete,
- easing : easing
- }, animType);
- return this;
- },
- anim : function(args, opt, animType, defaultDur, defaultEase, cb) {
- animType = animType || 'run';
- opt = opt || {};
- var anim = Ext.lib.Anim[animType](this.dom, args,
- (opt.duration || defaultDur) || .35,
- (opt.easing || defaultEase) || 'easeOut', function() {
- Ext.callback(cb, this);
- Ext.callback(opt.callback, opt.scope || this, [this,
- opt]);
- }, this);
- opt.anim = anim;
- return anim;
- },
- preanim : function(a, i) {
- return !a[i] ? false : (typeof a[i] == "object" ? a[i] : {
- duration : a[i + 1],
- callback : a[i + 2],
- easing : a[i + 3]
- });
- },
- clean : function(forceReclean) {
- if (this.isCleaned && forceReclean !== true) {
- return this;
- }
- var ns = /\S/;
- var d = this.dom, n = d.firstChild, ni = -1;
- while (n) {
- var nx = n.nextSibling;
- if (n.nodeType == 3 && !ns.test(n.nodeValue)) {
- d.removeChild(n);
- } else {
- n.nodeIndex = ++ni;
- }
- n = nx;
- }
- this.isCleaned = true;
- return this;
- },
- scrollIntoView : function(container, hscroll) {
- var c = Ext.getDom(container) || Ext.getBody().dom;
- var el = this.dom;
- var o = this.getOffsetsTo(c), l = o[0] + c.scrollLeft, t = o[1]
- + c.scrollTop, b = t + el.offsetHeight, r = l
- + el.offsetWidth;
- var ch = c.clientHeight;
- var ct = parseInt(c.scrollTop, 10);
- var cl = parseInt(c.scrollLeft, 10);
- var cb = ct + ch;
- var cr = cl + c.clientWidth;
- if (el.offsetHeight > ch || t < ct) {
- c.scrollTop = t;
- } else if (b > cb) {
- c.scrollTop = b - ch;
- }
- c.scrollTop = c.scrollTop;
- if (hscroll !== false) {
- if (el.offsetWidth > c.clientWidth || l < cl) {
- c.scrollLeft = l;
- } else if (r > cr) {
- c.scrollLeft = r - c.clientWidth;
- }
- c.scrollLeft = c.scrollLeft;
- }
- return this;
- },
- scrollChildIntoView : function(child, hscroll) {
- Ext.fly(child, '_scrollChildIntoView')
- .scrollIntoView(this, hscroll);
- },
- autoHeight : function(animate, duration, onComplete, easing) {
- var oldHeight = this.getHeight();
- this.clip();
- this.setHeight(1);
- setTimeout(function() {
- var height = parseInt(this.dom.scrollHeight, 10);
- if (!animate) {
- this.setHeight(height);
- this.unclip();
- if (typeof onComplete == "function") {
- onComplete();
- }
- } else {
- this.setHeight(oldHeight);
- this.setHeight(height, animate, duration,
- function() {
- this.unclip();
- if (typeof onComplete == "function")
- onComplete();
- }.createDelegate(this), easing);
- }
- }.createDelegate(this), 0);
- return this;
- },
- contains : function(el) {
- if (!el) {
- return false;
- }
- return D.isAncestor(this.dom, el.dom ? el.dom : el);
- },
- isVisible : function(deep) {
- var vis = !(this.getStyle("visibility") == "hidden" || this
- .getStyle("display") == "none");
- if (deep !== true || !vis) {
- return vis;
- }
- var p = this.dom.parentNode;
- while (p && p.tagName.toLowerCase() != "body") {
- if (!Ext.fly(p, '_isVisible').isVisible()) {
- return false;
- }
- p = p.parentNode;
- }
- return true;
- },
- select : function(selector, unique) {
- return El.select(selector, unique, this.dom);
- },
- query : function(selector, unique) {
- return Ext.DomQuery.select(selector, this.dom);
- },
- child : function(selector, returnDom) {
- var n = Ext.DomQuery.selectNode(selector, this.dom);
- return returnDom ? n : Ext.get(n);
- },
- down : function(selector, returnDom) {
- var n = Ext.DomQuery.selectNode(" > " + selector, this.dom);
- return returnDom ? n : Ext.get(n);
- },
- initDD : function(group, config, overrides) {
- var dd = new Ext.dd.DD(Ext.id(this.dom), group, config);
- return Ext.apply(dd, overrides);
- },
- initDDProxy : function(group, config, overrides) {
- var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config);
- return Ext.apply(dd, overrides);
- },
- initDDTarget : function(group, config, overrides) {
- var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config);
- return Ext.apply(dd, overrides);
- },
- setVisible : function(visible, animate) {
- if (!animate || !A) {
- if (this.visibilityMode == El.DISPLAY) {
- this.setDisplayed(visible);
- } else {
- this.fixDisplay();
- this.dom.style.visibility = visible ? "visible" : "hidden";
- }
- } else {
- var dom = this.dom;
- var visMode = this.visibilityMode;
- if (visible) {
- this.setOpacity(.01);
- this.setVisible(true);
- }
- this.anim({
- opacity : {
- to : (visible ? 1 : 0)
- }
- }, this.preanim(arguments, 1), null, .35, 'easeIn',
- function() {
- if (!visible) {
- if (visMode == El.DISPLAY) {
- dom.style.display = "none";
- } else {
- dom.style.visibility = "hidden";
- }
- Ext.get(dom).setOpacity(1);
- }
- });
- }
- return this;
- },
- isDisplayed : function() {
- return this.getStyle("display") != "none";
- },
- toggle : function(animate) {
- this.setVisible(!this.isVisible(), this.preanim(arguments, 0));
- return this;
- },
- setDisplayed : function(value) {
- if (typeof value == "boolean") {
- value = value ? this.originalDisplay : "none";
- }
- this.setStyle("display", value);
- return this;
- },
- focus : function() {
- try {
- this.dom.focus();
- } catch (e) {
- }
- return this;
- },
- blur : function() {
- try {
- this.dom.blur();
- } catch (e) {
- }
- return this;
- },
- addClass : function(className) {
- if (className instanceof Array) {
- for (var i = 0, len = className.length; i < len; i++) {
- this.addClass(className[i]);
- }
- } else {
- if (className && !this.hasClass(className)) {
- this.dom.className = this.dom.className + " " + className;
- }
- }
- return this;
- },
- radioClass : function(className) {
- var siblings = this.dom.parentNode.childNodes;
- for (var i = 0; i < siblings.length; i++) {
- var s = siblings[i];
- if (s.nodeType == 1) {
- Ext.get(s).removeClass(className);
- }
- }
- this.addClass(className);
- return this;
- },
- removeClass : function(className) {
- if (!className || !this.dom.className) {
- return this;
- }
- if (className instanceof Array) {
- for (var i = 0, len = className.length; i < len; i++) {
- this.removeClass(className[i]);
- }
- } else {
- if (this.hasClass(className)) {
- var re = this.classReCache[className];
- if (!re) {
- re = new RegExp(
- '(?:^|\\s+)' + className + '(?:\\s+|$)', "g");
- this.classReCache[className] = re;
- }
- this.dom.className = this.dom.className.replace(re, " ");
- }
- }
- return this;
- },
- classReCache : {},
- toggleClass : function(className) {
- if (this.hasClass(className)) {
- this.removeClass(className);
- } else {
- this.addClass(className);
- }
- return this;
- },
- hasClass : function(className) {
- return className
- && (' ' + this.dom.className + ' ').indexOf(' ' + className
- + ' ') != -1;
- },
- replaceClass : function(oldClassName, newClassName) {
- this.removeClass(oldClassName);
- this.addClass(newClassName);
- return this;
- },
- getStyles : function() {
- var a = arguments, len = a.length, r = {};
- for (var i = 0; i < len; i++) {
- r[a[i]] = this.getStyle(a[i]);
- }
- return r;
- },
- getStyle : function() {
- return view && view.getComputedStyle ? function(prop) {
- var el = this.dom, v, cs, camel;
- if (prop == 'float') {
- prop = "cssFloat";
- }
- if (v = el.style[prop]) {
- return v;
- }
- if (cs = view.getComputedStyle(el, "")) {
- if (!(camel = propCache[prop])) {
- camel = propCache[prop] = prop
- .replace(camelRe, camelFn);
- }
- return cs[camel];
- }
- return null;
- } : function(prop) {
- var el = this.dom, v, cs, camel;
- if (prop == 'opacity') {
- if (typeof el.style.filter == 'string') {
- var m = el.style.filter.match(/alpha\(opacity=(.*)\)/i);
- if (m) {
- var fv = parseFloat(m[1]);
- if (!isNaN(fv)) {
- return fv ? fv / 100 : 0;
- }
- }
- }
- return 1;
- } else if (prop == 'float') {
- prop = "styleFloat";
- }
- if (!(camel = propCache[prop])) {
- camel = propCache[prop] = prop.replace(camelRe, camelFn);
- }
- if (v = el.style[camel]) {
- return v;
- }
- if (cs = el.currentStyle) {
- return cs[camel];
- }
- return null;
- };
- }(),
- setStyle : function(prop, value) {
- if (typeof prop == "string") {
- var camel;
- if (!(camel = propCache[prop])) {
- camel = propCache[prop] = prop.replace(camelRe, camelFn);
- }
- if (camel == 'opacity') {
- this.setOpacity(value);
- } else {
- this.dom.style[camel] = value;
- }
- } else {
- for (var style in prop) {
- if (typeof prop[style] != "function") {
- this.setStyle(style, prop[style]);
- }
- }
- }
- return this;
- },
- applyStyles : function(style) {
- Ext.DomHelper.applyStyles(this.dom, style);
- return this;
- },
- getX : function() {
- return D.getX(this.dom);
- },
- getY : function() {
- return D.getY(this.dom);
- },
- getXY : function() {
- return D.getXY(this.dom);
- },
- getOffsetsTo : function(el) {
- var o = this.getXY();
- var e = Ext.fly(el, '_internal').getXY();
- return [o[0] - e[0], o[1] - e[1]];
- },
- setX : function(x, animate) {
- if (!animate || !A) {
- D.setX(this.dom, x);
- } else {
- this.setXY([x, this.getY()], this.preanim(arguments, 1));
- }
- return this;
- },
- setY : function(y, animate) {
- if (!animate || !A) {
- D.setY(this.dom, y);
- } else {
- this.setXY([this.getX(), y], this.preanim(arguments, 1));
- }
- return this;
- },
- setLeft : function(left) {
- this.setStyle("left", this.addUnits(left));
- return this;
- },
- setTop : function(top) {
- this.setStyle("top", this.addUnits(top));
- return this;
- },
- setRight : function(right) {
- this.setStyle("right", this.addUnits(right));
- return this;
- },
- setBottom : function(bottom) {
- this.setStyle("bottom", this.addUnits(bottom));
- return this;
- },
- setXY : function(pos, animate) {
- if (!animate || !A) {
- D.setXY(this.dom, pos);
- } else {
- this.anim({
- points : {
- to : pos
- }
- }, this.preanim(arguments, 1), 'motion');
- }
- return this;
- },
- setLocation : function(x, y, animate) {
- this.setXY([x, y], this.preanim(arguments, 2));
- return this;
- },
- moveTo : function(x, y, animate) {
- this.setXY([x, y], this.preanim(arguments, 2));
- return this;
- },
- getRegion : function() {
- return D.getRegion(this.dom);
- },
- getHeight : function(contentHeight) {
- var h = this.dom.offsetHeight || 0;
- h = contentHeight !== true ? h : h - this.getBorderWidth("tb")
- - this.getPadding("tb");
- return h < 0 ? 0 : h;
- },
- getWidth : function(contentWidth) {
- var w = this.dom.offsetWidth || 0;
- w = contentWidth !== true ? w : w - this.getBorderWidth("lr")
- - this.getPadding("lr");
- return w < 0 ? 0 : w;
- },
- getComputedHeight : function() {
- var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight);
- if (!h) {
- h = parseInt(this.getStyle('height'), 10) || 0;
- if (!this.isBorderBox()) {
- h += this.getFrameWidth('tb');
- }
- }
- return h;
- },
- getComputedWidth : function() {
- var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth);
- if (!w) {
- w = parseInt(this.getStyle('width'), 10) || 0;
- if (!this.isBorderBox()) {
- w += this.getFrameWidth('lr');
- }
- }
- return w;
- },
- getSize : function(contentSize) {
- return {
- width : this.getWidth(contentSize),
- height : this.getHeight(contentSize)
- };
- },
- getStyleSize : function() {
- var w, h, d = this.dom, s = d.style;
- if (s.width && s.width != 'auto') {
- w = parseInt(s.width, 10);
- if (Ext.isBorderBox) {
- w -= this.getFrameWidth('lr');
- }
- }
- if (s.height && s.height != 'auto') {
- h = parseInt(s.height, 10);
- if (Ext.isBorderBox) {
- h -= this.getFrameWidth('tb');
- }
- }
- return {
- width : w || this.getWidth(true),
- height : h || this.getHeight(true)
- };
- },
- getViewSize : function() {
- var d = this.dom, doc = document, aw = 0, ah = 0;
- if (d == doc || d == doc.body) {
- return {
- width : D.getViewWidth(),
- height : D.getViewHeight()
- };
- } else {
- return {
- width : d.clientWidth,
- height : d.clientHeight
- };
- }
- },
- getValue : function(asNumber) {
- return asNumber ? parseInt(this.dom.value, 10) : this.dom.value;
- },
- adjustWidth : function(width) {
- if (typeof width == "number") {
- if (this.autoBoxAdjust && !this.isBorderBox()) {
- width -= (this.getBorderWidth("lr") + this.getPadding("lr"));
- }
- if (width < 0) {
- width = 0;
- }
- }
- return width;
- },
- adjustHeight : function(height) {
- if (typeof height == "number") {
- if (this.autoBoxAdjust && !this.isBorderBox()) {
- height -= (this.getBorderWidth("tb") + this
- .getPadding("tb"));
- }
- if (height < 0) {
- height = 0;
- }
- }
- return height;
- },
- setWidth : function(width, animate) {
- width = this.adjustWidth(width);
- if (!animate || !A) {
- this.dom.style.width = this.addUnits(width);
- } else {
- this.anim({
- width : {
- to : width
- }
- }, this.preanim(arguments, 1));
- }
- return this;
- },
- setHeight : function(height, animate) {
- height = this.adjustHeight(height);
- if (!animate || !A) {
- this.dom.style.height = this.addUnits(height);
- } else {
- this.anim({
- height : {
- to : height
- }
- }, this.preanim(arguments, 1));
- }
- return this;
- },
- setSize : function(width, height, animate) {
- if (typeof width == "object") {
- height = width.height;
- width = width.width;
- }
- width = this.adjustWidth(width);
- height = this.adjustHeight(height);
- if (!animate || !A) {
- this.dom.style.width = this.addUnits(width);
- this.dom.style.height = this.addUnits(height);
- } else {
- this.anim({
- width : {
- to : width
- },
- height : {
- to : height
- }
- }, this.preanim(arguments, 2));
- }
- return this;
- },
- setBounds : function(x, y, width, height, animate) {
- if (!animate || !A) {
- this.setSize(width, height);
- this.setLocation(x, y);
- } else {
- width = this.adjustWidth(width);
- height = this.adjustHeight(height);
- this.anim({
- points : {
- to : [x, y]
- },
- width : {
- to : width
- },
- height : {
- to : height
- }
- }, this.preanim(arguments, 4), 'motion');
- }
- return this;
- },
- setRegion : function(region, animate) {
- this.setBounds(region.left, region.top, region.right - region.left,
- region.bottom - region.top, this.preanim(arguments, 1));
- return this;
- },
- addListener : function(eventName, fn, scope, options) {
- Ext.EventManager
- .on(this.dom, eventName, fn, scope || this, options);
- },
- removeListener : function(eventName, fn) {
- Ext.EventManager.removeListener(this.dom, eventName, fn);
- return this;
- },
- removeAllListeners : function() {
- E.purgeElement(this.dom);
- return this;
- },
- relayEvent : function(eventName, observable) {
- this.on(eventName, function(e) {
- observable.fireEvent(eventName, e);
- });
- },
- setOpacity : function(opacity, animate) {
- if (!animate || !A) {
- var s = this.dom.style;
- if (Ext.isIE) {
- s.zoom = 1;
- s.filter = (s.filter || '')
- .replace(/alpha\([^\)]*\)/gi, "")
- + (opacity == 1 ? "" : " alpha(opacity=" + opacity
- * 100 + ")");
- } else {
- s.opacity = opacity;
- }
- } else {
- this.anim({
- opacity : {
- to : opacity
- }
- }, this.preanim(arguments, 1), null, .35, 'easeIn');
- }
- return this;
- },
- getLeft : function(local) {
- if (!local) {
- return this.getX();
- } else {
- return parseInt(this.getStyle("left"), 10) || 0;
- }
- },
- getRight : function(local) {
- if (!local) {
- return this.getX() + this.getWidth();
- } else {
- return (this.getLeft(true) + this.getWidth()) || 0;
- }
- },
- getTop : function(local) {
- if (!local) {
- return this.getY();
- } else {
- return parseInt(this.getStyle("top"), 10) || 0;
- }
- },
- getBottom : function(local) {
- if (!local) {
- return this.getY() + this.getHeight();
- } else {
- return (this.getTop(true) + this.getHeight()) || 0;
- }
- },
- position : function(pos, zIndex, x, y) {
- if (!pos) {
- if (this.getStyle('position') == 'static') {
- this.setStyle('position', 'relative');
- }
- } else {
- this.setStyle("position", pos);
- }
- if (zIndex) {
- this.setStyle("z-index", zIndex);
- }
- if (x !== undefined && y !== undefined) {
- this.setXY([x, y]);
- } else if (x !== undefined) {
- this.setX(x);
- } else if (y !== undefined) {
- this.setY(y);
- }
- },
- clearPositioning : function(value) {
- value = value || '';
- this.setStyle({
- "left" : value,
- "right" : value,
- "top" : value,
- "bottom" : value,
- "z-index" : "",
- "position" : "static"
- });
- return this;
- },
- getPositioning : function() {
- var l = this.getStyle("left");
- var t = this.getStyle("top");
- return {
- "position" : this.getStyle("position"),
- "left" : l,
- "right" : l ? "" : this.getStyle("right"),
- "top" : t,
- "bottom" : t ? "" : this.getStyle("bottom"),
- "z-index" : this.getStyle("z-index")
- };
- },
- getBorderWidth : function(side) {
- return this.addStyles(side, El.borders);
- },
- getPadding : function(side) {
- return this.addStyles(side, El.paddings);
- },
- setPositioning : function(pc) {
- this.applyStyles(pc);
- if (pc.right == "auto") {
- this.dom.style.right = "";
- }
- if (pc.bottom == "auto") {
- this.dom.style.bottom = "";
- }
- return this;
- },
- fixDisplay : function() {
- if (this.getStyle("display") == "none") {
- this.setStyle("visibility", "hidden");
- this.setStyle("display", this.originalDisplay);
- if (this.getStyle("display") == "none") {
- this.setStyle("display", "block");
- }
- }
- },
- setLeftTop : function(left, top) {
- this.dom.style.left = this.addUnits(left);
- this.dom.style.top = this.addUnits(top);
- return this;
- },
- move : function(direction, distance, animate) {
- var xy = this.getXY();
- direction = direction.toLowerCase();
- switch (direction) {
- case "l" :
- case "left" :
- this.moveTo(xy[0] - distance, xy[1], this.preanim(
- arguments, 2));
- break;
- case "r" :
- case "right" :
- this.moveTo(xy[0] + distance, xy[1], this.preanim(
- arguments, 2));
- break;
- case "t" :
- case "top" :
- case "up" :
- this.moveTo(xy[0], xy[1] - distance, this.preanim(
- arguments, 2));
- break;
- case "b" :
- case "bottom" :
- case "down" :
- this.moveTo(xy[0], xy[1] + distance, this.preanim(
- arguments, 2));
- break;
- }
- return this;
- },
- clip : function() {
- if (!this.isClipped) {
- this.isClipped = true;
- this.originalClip = {
- "o" : this.getStyle("overflow"),
- "x" : this.getStyle("overflow-x"),
- "y" : this.getStyle("overflow-y")
- };
- this.setStyle("overflow", "hidden");
- this.setStyle("overflow-x", "hidden");
- this.setStyle("overflow-y", "hidden");
- }
- return this;
- },
- unclip : function() {
- if (this.isClipped) {
- this.isClipped = false;
- var o = this.originalClip;
- if (o.o) {
- this.setStyle("overflow", o.o);
- }
- if (o.x) {
- this.setStyle("overflow-x", o.x);
- }
- if (o.y) {
- this.setStyle("overflow-y", o.y);
- }
- }
- return this;
- },
- getAnchorXY : function(anchor, local, s) {
- var w, h, vp = false;
- if (!s) {
- var d = this.dom;
- if (d == document.body || d == document) {
- vp = true;
- w = D.getViewWidth();
- h = D.getViewHeight();
- } else {
- w = this.getWidth();
- h = this.getHeight();
- }
- } else {
- w = s.width;
- h = s.height;
- }
- var x = 0, y = 0, r = Math.round;
- switch ((anchor || "tl").toLowerCase()) {
- case "c" :
- x = r(w * .5);
- y = r(h * .5);
- break;
- case "t" :
- x = r(w * .5);
- y = 0;
- break;
- case "l" :
- x = 0;
- y = r(h * .5);
- break;
- case "r" :
- x = w;
- y = r(h * .5);
- break;
- case "b" :
- x = r(w * .5);
- y = h;
- break;
- case "tl" :
- x = 0;
- y = 0;
- break;
- case "bl" :
- x = 0;
- y = h;
- break;
- case "br" :
- x = w;
- y = h;
- break;
- case "tr" :
- x = w;
- y = 0;
- break;
- }
- if (local === true) {
- return [x, y];
- }
- if (vp) {
- var sc = this.getScroll();
- return [x + sc.left, y + sc.top];
- }
- var o = this.getXY();
- return [x + o[0], y + o[1]];
- },
- getAlignToXY : function(el, p, o) {
- el = Ext.get(el);
- if (!el || !el.dom) {
- throw "Element.alignToXY with an element that doesn't exist";
- }
- var d = this.dom;
- var c = false;
- var p1 = "", p2 = "";
- o = o || [0, 0];
- if (!p) {
- p = "tl-bl";
- } else if (p == "?") {
- p = "tl-bl?";
- } else if (p.indexOf("-") == -1) {
- p = "tl-" + p;
- }
- p = p.toLowerCase();
- var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/);
- if (!m) {
- throw "Element.alignTo with an invalid alignment " + p;
- }
- p1 = m[1];
- p2 = m[2];
- c = !!m[3];
- var a1 = this.getAnchorXY(p1, true);
- var a2 = el.getAnchorXY(p2, false);
- var x = a2[0] - a1[0] + o[0];
- var y = a2[1] - a1[1] + o[1];
- if (c) {
- var w = this.getWidth(), h = this.getHeight(), r = el
- .getRegion();
- var dw = D.getViewWidth() - 5, dh = D.getViewHeight() - 5;
- var p1y = p1.charAt(0), p1x = p1.charAt(p1.length - 1);
- var p2y = p2.charAt(0), p2x = p2.charAt(p2.length - 1);
- var swapY = ((p1y == "t" && p2y == "b") || (p1y == "b" && p2y == "t"));
- var swapX = ((p1x == "r" && p2x == "l") || (p1x == "l" && p2x == "r"));
- var doc = document;
- var scrollX = (doc.documentElement.scrollLeft
- || doc.body.scrollLeft || 0)
- + 5;
- var scrollY = (doc.documentElement.scrollTop
- || doc.body.scrollTop || 0)
- + 5;
- if ((x + w) > dw + scrollX) {
- x = swapX ? r.left - w : dw + scrollX - w;
- }
- if (x < scrollX) {
- x = swapX ? r.right : scrollX;
- }
- if ((y + h) > dh + scrollY) {
- y = swapY ? r.top - h : dh + scrollY - h;
- }
- if (y < scrollY) {
- y = swapY ? r.bottom : scrollY;
- }
- }
- return [x, y];
- },
- getConstrainToXY : function() {
- var os = {
- top : 0,
- left : 0,
- bottom : 0,
- right : 0
- };
- return function(el, local, offsets, proposedXY) {
- el = Ext.get(el);
- offsets = offsets ? Ext.applyIf(offsets, os) : os;
- var vw, vh, vx = 0, vy = 0;
- if (el.dom == document.body || el.dom == document) {
- vw = Ext.lib.Dom.getViewWidth();
- vh = Ext.lib.Dom.getViewHeight();
- } else {
- vw = el.dom.clientWidth;
- vh = el.dom.clientHeight;
- if (!local) {
- var vxy = el.getXY();
- vx = vxy[0];
- vy = vxy[1];
- }
- }
- var s = el.getScroll();
- vx += offsets.left + s.left;
- vy += offsets.top + s.top;
- vw -= offsets.right;
- vh -= offsets.bottom;
- var vr = vx + vw;
- var vb = vy + vh;
- var xy = proposedXY
- || (!local ? this.getXY() : [this.getLeft(true),
- this.getTop(true)]);
- var x = xy[0], y = xy[1];
- var w = this.dom.offsetWidth, h = this.dom.offsetHeight;
- var moved = false;
- if ((x + w) > vr) {
- x = vr - w;
- moved = true;
- }
- if ((y + h) > vb) {
- y = vb - h;
- moved = true;
- }
- if (x < vx) {
- x = vx;
- moved = true;
- }
- if (y < vy) {
- y = vy;
- moved = true;
- }
- return moved ? [x, y] : false;
- };
- }(),
- adjustForConstraints : function(xy, parent, offsets) {
- return this
- .getConstrainToXY(parent || document, false, offsets, xy)
- || xy;
- },
- alignTo : function(element, position, offsets, animate) {
- var xy = this.getAlignToXY(element, position, offsets);
- this.setXY(xy, this.preanim(arguments, 3));
- return this;
- },
- anchorTo : function(el, alignment, offsets, animate, monitorScroll,
- callback) {
- var action = function() {
- this.alignTo(el, alignment, offsets, animate);
- Ext.callback(callback, this);
- };
- Ext.EventManager.onWindowResize(action, this);
- var tm = typeof monitorScroll;
- if (tm != 'undefined') {
- Ext.EventManager.on(window, 'scroll', action, this, {
- buffer : tm == 'number' ? monitorScroll : 50
- });
- }
- action.call(this);
- return this;
- },
- clearOpacity : function() {
- if (window.ActiveXObject) {
- if (typeof this.dom.style.filter == 'string'
- && (/alpha/i).test(this.dom.style.filter)) {
- this.dom.style.filter = "";
- }
- } else {
- this.dom.style.opacity = "";
- this.dom.style["-moz-opacity"] = "";
- this.dom.style["-khtml-opacity"] = "";
- }
- return this;
- },
- hide : function(animate) {
- this.setVisible(false, this.preanim(arguments, 0));
- return this;
- },
- show : function(animate) {
- this.setVisible(true, this.preanim(arguments, 0));
- return this;
- },
- addUnits : function(size) {
- return Ext.Element.addUnits(size, this.defaultUnit);
- },
- update : function(html, loadScripts, callback) {
- if (typeof html == "undefined") {
- html = "";
- }
- if (loadScripts !== true) {
- this.dom.innerHTML = html;
- if (typeof callback == "function") {
- callback();
- }
- return this;
- }
- var id = Ext.id();
- var dom = this.dom;
- html += '<span id="' + id + '"></span>';
- E.onAvailable(id, function() {
- var hd = document.getElementsByTagName("head")[0];
- var re = /(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;
- var srcRe = /\ssrc=([\'\"])(.*?)\1/i;
- var typeRe = /\stype=([\'\"])(.*?)\1/i;
- var match;
- while (match = re.exec(html)) {
- var attrs = match[1];
- var srcMatch = attrs ? attrs.match(srcRe) : false;
- if (srcMatch && srcMatch[2]) {
- var s = document.createElement("script");
- s.src = srcMatch[2];
- var typeMatch = attrs.match(typeRe);
- if (typeMatch && typeMatch[2]) {
- s.type = typeMatch[2];
- }
- hd.appendChild(s);
- } else if (match[2] && match[2].length > 0) {
- if (window.execScript) {
- window.execScript(match[2]);
- } else {
- window.eval(match[2]);
- }
- }
- }
- var el = document.getElementById(id);
- if (el) {
- Ext.removeNode(el);
- }
- if (typeof callback == "function") {
- callback();
- }
- });
- dom.innerHTML = html.replace(
- /(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig, "");
- return this;
- },
- load : function() {
- var um = this.getUpdater();
- um.update.apply(um, arguments);
- return this;
- },
- getUpdater : function() {
- if (!this.updateManager) {
- this.updateManager = new Ext.Updater(this);
- }
- return this.updateManager;
- },
- unselectable : function() {
- this.dom.unselectable = "on";
- this.swallowEvent("selectstart", true);
- this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");
- this.addClass("x-unselectable");
- return this;
- },
- getCenterXY : function() {
- return this.getAlignToXY(document, 'c-c');
- },
- center : function(centerIn) {
- this.alignTo(centerIn || document, 'c-c');
- return this;
- },
- isBorderBox : function() {
- return noBoxAdjust[this.dom.tagName.toLowerCase()]
- || Ext.isBorderBox;
- },
- getBox : function(contentBox, local) {
- var xy;
- if (!local) {
- xy = this.getXY();
- } else {
- var left = parseInt(this.getStyle("left"), 10) || 0;
- var top = parseInt(this.getStyle("top"), 10) || 0;
- xy = [left, top];
- }
- var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx;
- if (!contentBox) {
- bx = {
- x : xy[0],
- y : xy[1],
- 0 : xy[0],
- 1 : xy[1],
- width : w,
- height : h
- };
- } else {
- var l = this.getBorderWidth("l") + this.getPadding("l");
- var r = this.getBorderWidth("r") + this.getPadding("r");
- var t = this.getBorderWidth("t") + this.getPadding("t");
- var b = this.getBorderWidth("b") + this.getPadding("b");
- bx = {
- x : xy[0] + l,
- y : xy[1] + t,
- 0 : xy[0] + l,
- 1 : xy[1] + t,
- width : w - (l + r),
- height : h - (t + b)
- };
- }
- bx.right = bx.x + bx.width;
- bx.bottom = bx.y + bx.height;
- return bx;
- },
- getFrameWidth : function(sides, onlyContentBox) {
- return onlyContentBox && Ext.isBorderBox ? 0 : (this
- .getPadding(sides) + this.getBorderWidth(sides));
- },
- setBox : function(box, adjust, animate) {
- var w = box.width, h = box.height;
- if ((adjust && !this.autoBoxAdjust) && !this.isBorderBox()) {
- w -= (this.getBorderWidth("lr") + this.getPadding("lr"));
- h -= (this.getBorderWidth("tb") + this.getPadding("tb"));
- }
- this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2));
- return this;
- },
- repaint : function() {
- var dom = this.dom;
- this.addClass("x-repaint");
- setTimeout(function() {
- Ext.get(dom).removeClass("x-repaint");
- }, 1);
- return this;
- },
- getMargins : function(side) {
- if (!side) {
- return {
- top : parseInt(this.getStyle("margin-top"), 10) || 0,
- left : parseInt(this.getStyle("margin-left"), 10) || 0,
- bottom : parseInt(this.getStyle("margin-bottom"), 10) || 0,
- right : parseInt(this.getStyle("margin-right"), 10) || 0
- };
- } else {
- return this.addStyles(side, El.margins);
- }
- },
- addStyles : function(sides, styles) {
- var val = 0, v, w;
- for (var i = 0, len = sides.length; i < len; i++) {
- v = this.getStyle(styles[sides.charAt(i)]);
- if (v) {
- w = parseInt(v, 10);
- if (w) {
- val += (w >= 0 ? w : -1 * w);
- }
- }
- }
- return val;
- },
- createProxy : function(config, renderTo, matchBox) {
- config = typeof config == "object" ? config : {
- tag : "div",
- cls : config
- };
- var proxy;
- if (renderTo) {
- proxy = Ext.DomHelper.append(renderTo, config, true);
- } else {
- proxy = Ext.DomHelper.insertBefore(this.dom, config, true);
- }
- if (matchBox) {
- proxy.setBox(this.getBox());
- }
- return proxy;
- },
- mask : function(msg, msgCls) {
- if (this.getStyle("position") == "static") {
- this.setStyle("position", "relative");
- }
- if (this._maskMsg) {
- this._maskMsg.remove();
- }
- if (this._mask) {
- this._mask.remove();
- }
- this._mask = Ext.DomHelper.append(this.dom, {
- cls : "ext-el-mask"
- }, true);
- this.addClass("x-masked");
- this._mask.setDisplayed(true);
- if (typeof msg == 'string') {
- this._maskMsg = Ext.DomHelper.append(this.dom, {
- cls : "ext-el-mask-msg",
- cn : {
- tag : 'div'
- }
- }, true);
- var mm = this._maskMsg;
- mm.dom.className = msgCls
- ? "ext-el-mask-msg " + msgCls
- : "ext-el-mask-msg";
- mm.dom.firstChild.innerHTML = msg;
- mm.setDisplayed(true);
- mm.center(this);
- }
- if (Ext.isIE && !(Ext.isIE7 && Ext.isStrict)
- && this.getStyle('height') == 'auto') {
- this._mask.setSize(this.dom.clientWidth, this.getHeight());
- }
- return this._mask;
- },
- unmask : function() {
- if (this._mask) {
- if (this._maskMsg) {
- this._maskMsg.remove();
- delete this._maskMsg;
- }
- this._mask.remove();
- delete this._mask;
- }
- this.removeClass("x-masked");
- },
- isMasked : function() {
- return this._mask && this._mask.isVisible();
- },
- createShim : function() {
- var el = document.createElement('iframe');
- el.frameBorder = 'no';
- el.className = 'ext-shim';
- if (Ext.isIE && Ext.isSecure) {
- el.src = Ext.SSL_SECURE_URL;
- }
- var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom));
- shim.autoBoxAdjust = false;
- return shim;
- },
- remove : function() {
- Ext.removeNode(this.dom);
- delete El.cache[this.dom.id];
- },
- hover : function(overFn, outFn, scope) {
- var preOverFn = function(e) {
- if (!e.within(this, true)) {
- overFn.apply(scope || this, arguments);
- }
- };
- var preOutFn = function(e) {
- if (!e.within(this, true)) {
- outFn.apply(scope || this, arguments);
- }
- };
- this.on("mouseover", preOverFn, this.dom);
- this.on("mouseout", preOutFn, this.dom);
- return this;
- },
- addClassOnOver : function(className, preventFlicker) {
- this.hover(function() {
- Ext.fly(this, '_internal').addClass(className);
- }, function() {
- Ext.fly(this, '_internal').removeClass(className);
- });
- return this;
- },
- addClassOnFocus : function(className) {
- this.on("focus", function() {
- Ext.fly(this, '_internal').addClass(className);
- }, this.dom);
- this.on("blur", function() {
- Ext.fly(this, '_internal').removeClass(className);
- }, this.dom);
- return this;
- },
- addClassOnClick : function(className) {
- var dom = this.dom;
- this.on("mousedown", function() {
- Ext.fly(dom, '_internal').addClass(className);
- var d = Ext.getDoc();
- var fn = function() {
- Ext.fly(dom, '_internal').removeClass(className);
- d.removeListener("mouseup", fn);
- };
- d.on("mouseup", fn);
- });
- return this;
- },
- swallowEvent : function(eventName, preventDefault) {
- var fn = function(e) {
- e.stopPropagation();
- if (preventDefault) {
- e.preventDefault();
- }
- };
- if (eventName instanceof Array) {
- for (var i = 0, len = eventName.length; i < len; i++) {
- this.on(eventName[i], fn);
- }
- return this;
- }
- this.on(eventName, fn);
- return this;
- },
- parent : function(selector, returnDom) {
- return this.matchNode('parentNode', 'parentNode', selector,
- returnDom);
- },
- next : function(selector, returnDom) {
- return this.matchNode('nextSibling', 'nextSibling', selector,
- returnDom);
- },
- prev : function(selector, returnDom) {
- return this.matchNode('previousSibling', 'previousSibling',
- selector, returnDom);
- },
- first : function(selector, returnDom) {
- return this.matchNode('nextSibling', 'firstChild', selector,
- returnDom);
- },
- last : function(selector, returnDom) {
- return this.matchNode('previousSibling', 'lastChild', selector,
- returnDom);
- },
- matchNode : function(dir, start, selector, returnDom) {
- var n = this.dom[start];
- while (n) {
- if (n.nodeType == 1
- && (!selector || Ext.DomQuery.is(n, selector))) {
- return !returnDom ? Ext.get(n) : n;
- }
- n = n[dir];
- }
- return null;
- },
- appendChild : function(el) {
- el = Ext.get(el);
- el.appendTo(this);
- return this;
- },
- createChild : function(config, insertBefore, returnDom) {
- config = config || {
- tag : 'div'
- };
- if (insertBefore) {
- return Ext.DomHelper.insertBefore(insertBefore, config,
- returnDom !== true);
- }
- return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](
- this.dom, config, returnDom !== true);
- },
- appendTo : function(el) {
- el = Ext.getDom(el);
- el.appendChild(this.dom);
- return this;
- },
- insertBefore : function(el) {
- el = Ext.getDom(el);
- el.parentNode.insertBefore(this.dom, el);
- return this;
- },
- insertAfter : function(el) {
- el = Ext.getDom(el);
- el.parentNode.insertBefore(this.dom, el.nextSibling);
- return this;
- },
- insertFirst : function(el, returnDom) {
- el = el || {};
- if (typeof el == 'object' && !el.nodeType) {
- return this.createChild(el, this.dom.firstChild, returnDom);
- } else {
- el = Ext.getDom(el);
- this.dom.insertBefore(el, this.dom.firstChild);
- return !returnDom ? Ext.get(el) : el;
- }
- },
- insertSibling : function(el, where, returnDom) {
- var rt;
- if (el instanceof Array) {
- for (var i = 0, len = el.length; i < len; i++) {
- rt = this.insertSibling(el[i], where, returnDom);
- }
- return rt;
- }
- where = where ? where.toLowerCase() : 'before';
- el = el || {};
- var refNode = where == 'before' ? this.dom : this.dom.nextSibling;
- if (typeof el == 'object' && !el.nodeType) {
- if (where == 'after' && !this.dom.nextSibling) {
- rt = Ext.DomHelper.append(this.dom.parentNode, el,
- !returnDom);
- } else {
- rt = Ext.DomHelper[where == 'after'
- ? 'insertAfter'
- : 'insertBefore'](this.dom, el, !returnDom);
- }
- } else {
- rt = this.dom.parentNode.insertBefore(Ext.getDom(el), refNode);
- if (!returnDom) {
- rt = Ext.get(rt);
- }
- }
- return rt;
- },
- wrap : function(config, returnDom) {
- if (!config) {
- config = {
- tag : "div"
- };
- }
- var newEl = Ext.DomHelper
- .insertBefore(this.dom, config, !returnDom);
- newEl.dom ? newEl.dom.appendChild(this.dom) : newEl
- .appendChild(this.dom);
- return newEl;
- },
- replace : function(el) {
- el = Ext.get(el);
- this.insertBefore(el);
- el.remove();
- return this;
- },
- replaceWith : function(el) {
- if (typeof el == 'object' && !el.nodeType) {
- el = this.insertSibling(el, 'before');
- } else {
- el = Ext.getDom(el);
- this.dom.parentNode.insertBefore(el, this.dom);
- }
- El.uncache(this.id);
- this.dom.parentNode.removeChild(this.dom);
- this.dom = el;
- this.id = Ext.id(el);
- El.cache[this.id] = this;
- return this;
- },
- insertHtml : function(where, html, returnEl) {
- var el = Ext.DomHelper.insertHtml(where, this.dom, html);
- return returnEl ? Ext.get(el) : el;
- },
- set : function(o, useSet) {
- var el = this.dom;
- useSet = typeof useSet == 'undefined' ? (el.setAttribute
- ? true
- : false) : useSet;
- for (var attr in o) {
- if (attr == "style" || typeof o[attr] == "function")
- continue;
- if (attr == "cls") {
- el.className = o["cls"];
- } else if (o.hasOwnProperty(attr)) {
- if (useSet)
- el.setAttribute(attr, o[attr]);
- else
- el[attr] = o[attr];
- }
- }
- if (o.style) {
- Ext.DomHelper.applyStyles(el, o.style);
- }
- return this;
- },
- addKeyListener : function(key, fn, scope) {
- var config;
- if (typeof key != "object" || key instanceof Array) {
- config = {
- key : key,
- fn : fn,
- scope : scope
- };
- } else {
- config = {
- key : key.key,
- shift : key.shift,
- ctrl : key.ctrl,
- alt : key.alt,
- fn : fn,
- scope : scope
- };
- }
- return new Ext.KeyMap(this, config);
- },
- addKeyMap : function(config) {
- return new Ext.KeyMap(this, config);
- },
- isScrollable : function() {
- var dom = this.dom;
- return dom.scrollHeight > dom.clientHeight
- || dom.scrollWidth > dom.clientWidth;
- },
- scrollTo : function(side, value, animate) {
- var prop = side.toLowerCase() == "left"
- ? "scrollLeft"
- : "scrollTop";
- if (!animate || !A) {
- this.dom[prop] = value;
- } else {
- var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [
- this.dom.scrollLeft, value];
- this.anim({
- scroll : {
- "to" : to
- }
- }, this.preanim(arguments, 2), 'scroll');
- }
- return this;
- },
- scroll : function(direction, distance, animate) {
- if (!this.isScrollable()) {
- return;
- }
- var el = this.dom;
- var l = el.scrollLeft, t = el.scrollTop;
- var w = el.scrollWidth, h = el.scrollHeight;
- var cw = el.clientWidth, ch = el.clientHeight;
- direction = direction.toLowerCase();
- var scrolled = false;
- var a = this.preanim(arguments, 2);
- switch (direction) {
- case "l" :
- case "left" :
- if (w - l > cw) {
- var v = Math.min(l + distance, w - cw);
- this.scrollTo("left", v, a);
- scrolled = true;
- }
- break;
- case "r" :
- case "right" :
- if (l > 0) {
- var v = Math.max(l - distance, 0);
- this.scrollTo("left", v, a);
- scrolled = true;
- }
- break;
- case "t" :
- case "top" :
- case "up" :
- if (t > 0) {
- var v = Math.max(t - distance, 0);
- this.scrollTo("top", v, a);
- scrolled = true;
- }
- break;
- case "b" :
- case "bottom" :
- case "down" :
- if (h - t > ch) {
- var v = Math.min(t + distance, h - ch);
- this.scrollTo("top", v, a);
- scrolled = true;
- }
- break;
- }
- return scrolled;
- },
- translatePoints : function(x, y) {
- if (typeof x == 'object' || x instanceof Array) {
- y = x[1];
- x = x[0];
- }
- var p = this.getStyle('position');
- var o = this.getXY();
- var l = parseInt(this.getStyle('left'), 10);
- var t = parseInt(this.getStyle('top'), 10);
- if (isNaN(l)) {
- l = (p == "relative") ? 0 : this.dom.offsetLeft;
- }
- if (isNaN(t)) {
- t = (p == "relative") ? 0 : this.dom.offsetTop;
- }
- return {
- left : (x - o[0] + l),
- top : (y - o[1] + t)
- };
- },
- getScroll : function() {
- var d = this.dom, doc = document;
- if (d == doc || d == doc.body) {
- var l, t;
- if (Ext.isIE && Ext.isStrict) {
- l = doc.documentElement.scrollLeft
- || (doc.body.scrollLeft || 0);
- t = doc.documentElement.scrollTop
- || (doc.body.scrollTop || 0);
- } else {
- l = window.pageXOffset || (doc.body.scrollLeft || 0);
- t = window.pageYOffset || (doc.body.scrollTop || 0);
- }
- return {
- left : l,
- top : t
- };
- } else {
- return {
- left : d.scrollLeft,
- top : d.scrollTop
- };
- }
- },
- getColor : function(attr, defaultValue, prefix) {
- var v = this.getStyle(attr);
- if (!v || v == "transparent" || v == "inherit") {
- return defaultValue;
- }
- var color = typeof prefix == "undefined" ? "#" : prefix;
- if (v.substr(0, 4) == "rgb(") {
- var rvs = v.slice(4, v.length - 1).split(",");
- for (var i = 0; i < 3; i++) {
- var h = parseInt(rvs[i]);
- var s = h.toString(16);
- if (h < 16) {
- s = "0" + s;
- }
- color += s;
- }
- } else {
- if (v.substr(0, 1) == "#") {
- if (v.length == 4) {
- for (var i = 1; i < 4; i++) {
- var c = v.charAt(i);
- color += c + c;
- }
- } else if (v.length == 7) {
- color += v.substr(1);
- }
- }
- }
- return (color.length > 5 ? color.toLowerCase() : defaultValue);
- },
- boxWrap : function(cls) {
- cls = cls || 'x-box';
- var el = Ext.get(this
- .insertHtml('beforeBegin', String.format(
- '<div class="{0}">' + El.boxMarkup
- + '</div>', cls)));
- el.child('.' + cls + '-mc').dom.appendChild(this.dom);
- return el;
- },
- getAttributeNS : Ext.isIE ? function(ns, name) {
- var d = this.dom;
- var type = typeof d[ns + ":" + name];
- if (type != 'undefined' && type != 'unknown') {
- return d[ns + ":" + name];
- }
- return d[name];
- } : function(ns, name) {
- var d = this.dom;
- return d.getAttributeNS(ns, name)
- || d.getAttribute(ns + ":" + name) || d.getAttribute(name)
- || d[name];
- },
- getTextWidth : function(text, min, max) {
- return (Ext.util.TextMetrics.measure(this.dom, Ext.value(text,
- this.dom.innerHTML, true)).width).constrain(min
- || 0, max || 1000000);
- }
- };
- var ep = El.prototype;
- ep.on = ep.addListener;
- ep.mon = ep.addListener;
- ep.getUpdateManager = ep.getUpdater;
- ep.un = ep.removeListener;
- ep.autoBoxAdjust = true;
- El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;
- El.addUnits = function(v, defaultUnit) {
- if (v === "" || v == "auto") {
- return v;
- }
- if (v === undefined) {
- return '';
- }
- if (typeof v == "number" || !El.unitPattern.test(v)) {
- return v + (defaultUnit || 'px');
- }
- return v;
- };
- El.boxMarkup = '<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';
- El.VISIBILITY = 1;
- El.DISPLAY = 2;
- El.borders = {
- l : "border-left-width",
- r : "border-right-width",
- t : "border-top-width",
- b : "border-bottom-width"
- };
- El.paddings = {
- l : "padding-left",
- r : "padding-right",
- t : "padding-top",
- b : "padding-bottom"
- };
- El.margins = {
- l : "margin-left",
- r : "margin-right",
- t : "margin-top",
- b : "margin-bottom"
- };
- El.cache = {};
- var docEl;
- El.get = function(el) {
- var ex, elm, id;
- if (!el) {
- return null;
- }
- if (typeof el == "string") {
- if (!(elm = document.getElementById(el))) {
- return null;
- }
- if (ex = El.cache[el]) {
- ex.dom = elm;
- } else {
- ex = El.cache[el] = new El(elm);
- }
- return ex;
- } else if (el.tagName) {
- if (!(id = el.id)) {
- id = Ext.id(el);
- }
- if (ex = El.cache[id]) {
- ex.dom = el;
- } else {
- ex = El.cache[id] = new El(el);
- }
- return ex;
- } else if (el instanceof El) {
- if (el != docEl) {
- el.dom = document.getElementById(el.id) || el.dom;
- El.cache[el.id] = el;
- }
- return el;
- } else if (el.isComposite) {
- return el;
- } else if (el instanceof Array) {
- return El.select(el);
- } else if (el == document) {
- if (!docEl) {
- var f = function() {
- };
- f.prototype = El.prototype;
- docEl = new f();
- docEl.dom = document;
- }
- return docEl;
- }
- return null;
- };
- El.uncache = function(el) {
- for (var i = 0, a = arguments, len = a.length; i < len; i++) {
- if (a[i]) {
- delete El.cache[a[i].id || a[i]];
- }
- }
- };
- El.garbageCollect = function() {
- if (!Ext.enableGarbageCollector) {
- clearInterval(El.collectorThread);
- return;
- }
- for (var eid in El.cache) {
- var el = El.cache[eid], d = el.dom;
- if (!d || !d.parentNode
- || (!d.offsetParent && !document.getElementById(eid))) {
- delete El.cache[eid];
- if (d && Ext.enableListenerCollection) {
- E.purgeElement(d);
- }
- }
- }
- }
- El.collectorThreadId = setInterval(El.garbageCollect, 30000);
- var flyFn = function() {
- };
- flyFn.prototype = El.prototype;
- var _cls = new flyFn();
- El.Flyweight = function(dom) {
- this.dom = dom;
- };
- El.Flyweight.prototype = _cls;
- El.Flyweight.prototype.isFlyweight = true;
- El._flyweights = {};
- El.fly = function(el, named) {
- named = named || '_global';
- el = Ext.getDom(el);
- if (!el) {
- return null;
- }
- if (!El._flyweights[named]) {
- El._flyweights[named] = new El.Flyweight();
- }
- El._flyweights[named].dom = el;
- return El._flyweights[named];
- };
- Ext.get = El.get;
- Ext.fly = El.fly;
- var noBoxAdjust = Ext.isStrict ? {
- select : 1
- } : {
- input : 1,
- select : 1,
- textarea : 1
- };
- if (Ext.isIE || Ext.isGecko) {
- noBoxAdjust['button'] = 1;
- }
- Ext.EventManager.on(window, 'unload', function() {
- delete El.cache;
- delete El._flyweights;
- });
- })();
- Ext.enableFx = true;
- Ext.Fx = {
- slideIn : function(anchor, o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- anchor = anchor || "t";
- this.fixDisplay();
- var r = this.getFxRestore();
- var b = this.getBox();
- this.setSize(b);
- var wrap = this.fxWrap(r.pos, o, "hidden");
- var st = this.dom.style;
- st.visibility = "visible";
- st.position = "absolute";
- var after = function() {
- el.fxUnwrap(wrap, r.pos, o);
- st.width = r.width;
- st.height = r.height;
- el.afterFx(o);
- };
- var a, pt = {
- to : [b.x, b.y]
- }, bw = {
- to : b.width
- }, bh = {
- to : b.height
- };
- switch (anchor.toLowerCase()) {
- case "t" :
- wrap.setSize(b.width, 0);
- st.left = st.bottom = "0";
- a = {
- height : bh
- };
- break;
- case "l" :
- wrap.setSize(0, b.height);
- st.right = st.top = "0";
- a = {
- width : bw
- };
- break;
- case "r" :
- wrap.setSize(0, b.height);
- wrap.setX(b.right);
- st.left = st.top = "0";
- a = {
- width : bw,
- points : pt
- };
- break;
- case "b" :
- wrap.setSize(b.width, 0);
- wrap.setY(b.bottom);
- st.left = st.top = "0";
- a = {
- height : bh,
- points : pt
- };
- break;
- case "tl" :
- wrap.setSize(0, 0);
- st.right = st.bottom = "0";
- a = {
- width : bw,
- height : bh
- };
- break;
- case "bl" :
- wrap.setSize(0, 0);
- wrap.setY(b.y + b.height);
- st.right = st.top = "0";
- a = {
- width : bw,
- height : bh,
- points : pt
- };
- break;
- case "br" :
- wrap.setSize(0, 0);
- wrap.setXY([b.right, b.bottom]);
- st.left = st.top = "0";
- a = {
- width : bw,
- height : bh,
- points : pt
- };
- break;
- case "tr" :
- wrap.setSize(0, 0);
- wrap.setX(b.x + b.width);
- st.left = st.bottom = "0";
- a = {
- width : bw,
- height : bh,
- points : pt
- };
- break;
- }
- this.dom.style.visibility = "visible";
- wrap.show();
- arguments.callee.anim = wrap.fxanim(a, o, 'motion', .5,
- 'easeOut', after);
- });
- return this;
- },
- slideOut : function(anchor, o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- anchor = anchor || "t";
- var r = this.getFxRestore();
- var b = this.getBox();
- this.setSize(b);
- var wrap = this.fxWrap(r.pos, o, "visible");
- var st = this.dom.style;
- st.visibility = "visible";
- st.position = "absolute";
- wrap.setSize(b);
- var after = function() {
- if (o.useDisplay) {
- el.setDisplayed(false);
- } else {
- el.hide();
- }
- el.fxUnwrap(wrap, r.pos, o);
- st.width = r.width;
- st.height = r.height;
- el.afterFx(o);
- };
- var a, zero = {
- to : 0
- };
- switch (anchor.toLowerCase()) {
- case "t" :
- st.left = st.bottom = "0";
- a = {
- height : zero
- };
- break;
- case "l" :
- st.right = st.top = "0";
- a = {
- width : zero
- };
- break;
- case "r" :
- st.left = st.top = "0";
- a = {
- width : zero,
- points : {
- to : [b.right, b.y]
- }
- };
- break;
- case "b" :
- st.left = st.top = "0";
- a = {
- height : zero,
- points : {
- to : [b.x, b.bottom]
- }
- };
- break;
- case "tl" :
- st.right = st.bottom = "0";
- a = {
- width : zero,
- height : zero
- };
- break;
- case "bl" :
- st.right = st.top = "0";
- a = {
- width : zero,
- height : zero,
- points : {
- to : [b.x, b.bottom]
- }
- };
- break;
- case "br" :
- st.left = st.top = "0";
- a = {
- width : zero,
- height : zero,
- points : {
- to : [b.x + b.width, b.bottom]
- }
- };
- break;
- case "tr" :
- st.left = st.bottom = "0";
- a = {
- width : zero,
- height : zero,
- points : {
- to : [b.right, b.y]
- }
- };
- break;
- }
- arguments.callee.anim = wrap.fxanim(a, o, 'motion', .5,
- "easeOut", after);
- });
- return this;
- },
- puff : function(o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- this.clearOpacity();
- this.show();
- var r = this.getFxRestore();
- var st = this.dom.style;
- var after = function() {
- if (o.useDisplay) {
- el.setDisplayed(false);
- } else {
- el.hide();
- }
- el.clearOpacity();
- el.setPositioning(r.pos);
- st.width = r.width;
- st.height = r.height;
- st.fontSize = '';
- el.afterFx(o);
- };
- var width = this.getWidth();
- var height = this.getHeight();
- arguments.callee.anim = this.fxanim({
- width : {
- to : this.adjustWidth(width * 2)
- },
- height : {
- to : this.adjustHeight(height * 2)
- },
- points : {
- by : [-(width * .5), -(height * .5)]
- },
- opacity : {
- to : 0
- },
- fontSize : {
- to : 200,
- unit : "%"
- }
- }, o, 'motion', .5, "easeOut", after);
- });
- return this;
- },
- switchOff : function(o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- this.clearOpacity();
- this.clip();
- var r = this.getFxRestore();
- var st = this.dom.style;
- var after = function() {
- if (o.useDisplay) {
- el.setDisplayed(false);
- } else {
- el.hide();
- }
- el.clearOpacity();
- el.setPositioning(r.pos);
- st.width = r.width;
- st.height = r.height;
- el.afterFx(o);
- };
- this.fxanim({
- opacity : {
- to : 0.3
- }
- }, null, null, .1, null, function() {
- this.clearOpacity();
- (function() {
- this.fxanim({
- height : {
- to : 1
- },
- points : {
- by : [
- 0,
- this.getHeight()
- * .5]
- }
- }, o, 'motion', 0.3, 'easeIn',
- after);
- }).defer(100, this);
- });
- });
- return this;
- },
- highlight : function(color, o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- color = color || "ffff9c";
- var attr = o.attr || "backgroundColor";
- this.clearOpacity();
- this.show();
- var origColor = this.getColor(attr);
- var restoreColor = this.dom.style[attr];
- var endColor = (o.endColor || origColor) || "ffffff";
- var after = function() {
- el.dom.style[attr] = restoreColor;
- el.afterFx(o);
- };
- var a = {};
- a[attr] = {
- from : color,
- to : endColor
- };
- arguments.callee.anim = this.fxanim(a, o, 'color', 1,
- 'easeIn', after);
- });
- return this;
- },
- frame : function(color, count, o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- color = color || "#C3DAF9";
- if (color.length == 6) {
- color = "#" + color;
- }
- count = count || 1;
- var duration = o.duration || 1;
- this.show();
- var b = this.getBox();
- var animFn = function() {
- var proxy = Ext.getBody().createChild({
- style : {
- visbility : "hidden",
- position : "absolute",
- "z-index" : "35000",
- border : "0px solid " + color
- }
- });
- var scale = Ext.isBorderBox ? 2 : 1;
- proxy.animate({
- top : {
- from : b.y,
- to : b.y - 20
- },
- left : {
- from : b.x,
- to : b.x - 20
- },
- borderWidth : {
- from : 0,
- to : 10
- },
- opacity : {
- from : 1,
- to : 0
- },
- height : {
- from : b.height,
- to : (b.height + (20 * scale))
- },
- width : {
- from : b.width,
- to : (b.width + (20 * scale))
- }
- }, duration, function() {
- proxy.remove();
- if (--count > 0) {
- animFn();
- } else {
- el.afterFx(o);
- }
- });
- };
- animFn.call(this);
- });
- return this;
- },
- pause : function(seconds) {
- var el = this.getFxEl();
- var o = {};
- el.queueFx(o, function() {
- setTimeout(function() {
- el.afterFx(o);
- }, seconds * 1000);
- });
- return this;
- },
- fadeIn : function(o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- this.setOpacity(0);
- this.fixDisplay();
- this.dom.style.visibility = 'visible';
- var to = o.endOpacity || 1;
- arguments.callee.anim = this.fxanim({
- opacity : {
- to : to
- }
- }, o, null, .5, "easeOut", function() {
- if (to == 1) {
- this.clearOpacity();
- }
- el.afterFx(o);
- });
- });
- return this;
- },
- fadeOut : function(o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- arguments.callee.anim = this.fxanim({
- opacity : {
- to : o.endOpacity || 0
- }
- }, o, null, .5, "easeOut", function() {
- if (this.visibilityMode == Ext.Element.DISPLAY
- || o.useDisplay) {
- this.dom.style.display = "none";
- } else {
- this.dom.style.visibility = "hidden";
- }
- this.clearOpacity();
- el.afterFx(o);
- });
- });
- return this;
- },
- scale : function(w, h, o) {
- this.shift(Ext.apply({}, o, {
- width : w,
- height : h
- }));
- return this;
- },
- shift : function(o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity;
- if (w !== undefined) {
- a.width = {
- to : this.adjustWidth(w)
- };
- }
- if (h !== undefined) {
- a.height = {
- to : this.adjustHeight(h)
- };
- }
- if (x !== undefined || y !== undefined) {
- a.points = {
- to : [x !== undefined ? x : this.getX(),
- y !== undefined ? y : this.getY()]
- };
- }
- if (op !== undefined) {
- a.opacity = {
- to : op
- };
- }
- if (o.xy !== undefined) {
- a.points = {
- to : o.xy
- };
- }
- arguments.callee.anim = this.fxanim(a, o, 'motion', .35, "easeOut",
- function() {
- el.afterFx(o);
- });
- });
- return this;
- },
- ghost : function(anchor, o) {
- var el = this.getFxEl();
- o = o || {};
- el.queueFx(o, function() {
- anchor = anchor || "b";
- var r = this.getFxRestore();
- var w = this.getWidth(), h = this.getHeight();
- var st = this.dom.style;
- var after = function() {
- if (o.useDisplay) {
- el.setDisplayed(false);
- } else {
- el.hide();
- }
- el.clearOpacity();
- el.setPositioning(r.pos);
- st.width = r.width;
- st.height = r.height;
- el.afterFx(o);
- };
- var a = {
- opacity : {
- to : 0
- },
- points : {}
- }, pt = a.points;
- switch (anchor.toLowerCase()) {
- case "t" :
- pt.by = [0, -h];
- break;
- case "l" :
- pt.by = [-w, 0];
- break;
- case "r" :
- pt.by = [w, 0];
- break;
- case "b" :
- pt.by = [0, h];
- break;
- case "tl" :
- pt.by = [-w, -h];
- break;
- case "bl" :
- pt.by = [-w, h];
- break;
- case "br" :
- pt.by = [w, h];
- break;
- case "tr" :
- pt.by = [w, -h];
- break;
- }
- arguments.callee.anim = this.fxanim(a, o, 'motion', .5,
- "easeOut", after);
- });
- return this;
- },
- syncFx : function() {
- this.fxDefaults = Ext.apply(this.fxDefaults || {}, {
- block : false,
- concurrent : true,
- stopFx : false
- });
- return this;
- },
- sequenceFx : function() {
- this.fxDefaults = Ext.apply(this.fxDefaults || {}, {
- block : false,
- concurrent : false,
- stopFx : false
- });
- return this;
- },
- nextFx : function() {
- var ef = this.fxQueue[0];
- if (ef) {
- ef.call(this);
- }
- },
- hasActiveFx : function() {
- return this.fxQueue && this.fxQueue[0];
- },
- stopFx : function() {
- if (this.hasActiveFx()) {
- var cur = this.fxQueue[0];
- if (cur && cur.anim && cur.anim.isAnimated()) {
- this.fxQueue = [cur];
- cur.anim.stop(true);
- }
- }
- return this;
- },
- beforeFx : function(o) {
- if (this.hasActiveFx() && !o.concurrent) {
- if (o.stopFx) {
- this.stopFx();
- return true;
- }
- return false;
- }
- return true;
- },
- hasFxBlock : function() {
- var q = this.fxQueue;
- return q && q[0] && q[0].block;
- },
- queueFx : function(o, fn) {
- if (!this.fxQueue) {
- this.fxQueue = [];
- }
- if (!this.hasFxBlock()) {
- Ext.applyIf(o, this.fxDefaults);
- if (!o.concurrent) {
- var run = this.beforeFx(o);
- fn.block = o.block;
- this.fxQueue.push(fn);
- if (run) {
- this.nextFx();
- }
- } else {
- fn.call(this);
- }
- }
- return this;
- },
- fxWrap : function(pos, o, vis) {
- var wrap;
- if (!o.wrap || !(wrap = Ext.get(o.wrap))) {
- var wrapXY;
- if (o.fixPosition) {
- wrapXY = this.getXY();
- }
- var div = document.createElement("div");
- div.style.visibility = vis;
- wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom));
- wrap.setPositioning(pos);
- if (wrap.getStyle("position") == "static") {
- wrap.position("relative");
- }
- this.clearPositioning('auto');
- wrap.clip();
- wrap.dom.appendChild(this.dom);
- if (wrapXY) {
- wrap.setXY(wrapXY);
- }
- }
- return wrap;
- },
- fxUnwrap : function(wrap, pos, o) {
- this.clearPositioning();
- this.setPositioning(pos);
- if (!o.wrap) {
- wrap.dom.parentNode.insertBefore(this.dom, wrap.dom);
- wrap.remove();
- }
- },
- getFxRestore : function() {
- var st = this.dom.style;
- return {
- pos : this.getPositioning(),
- width : st.width,
- height : st.height
- };
- },
- afterFx : function(o) {
- if (o.afterStyle) {
- this.applyStyles(o.afterStyle);
- }
- if (o.afterCls) {
- this.addClass(o.afterCls);
- }
- if (o.remove === true) {
- this.remove();
- }
- Ext.callback(o.callback, o.scope, [this]);
- if (!o.concurrent) {
- this.fxQueue.shift();
- this.nextFx();
- }
- },
- getFxEl : function() {
- return Ext.get(this.dom);
- },
- fxanim : function(args, opt, animType, defaultDur, defaultEase, cb) {
- animType = animType || 'run';
- opt = opt || {};
- var anim = Ext.lib.Anim[animType](this.dom, args,
- (opt.duration || defaultDur) || .35,
- (opt.easing || defaultEase) || 'easeOut', function() {
- Ext.callback(cb, this);
- }, this);
- opt.anim = anim;
- return anim;
- }
- };
- Ext.Fx.resize = Ext.Fx.scale;
- Ext.apply(Ext.Element.prototype, Ext.Fx);
- Ext.CompositeElement = function(els) {
- this.elements = [];
- this.addElements(els);
- };
- Ext.CompositeElement.prototype = {
- isComposite : true,
- addElements : function(els) {
- if (!els)
- return this;
- if (typeof els == "string") {
- els = Ext.Element.selectorFunction(els);
- }
- var yels = this.elements;
- var index = yels.length - 1;
- for (var i = 0, len = els.length; i < len; i++) {
- yels[++index] = Ext.get(els[i]);
- }
- return this;
- },
- fill : function(els) {
- this.elements = [];
- this.add(els);
- return this;
- },
- filter : function(selector) {
- var els = [];
- this.each(function(el) {
- if (el.is(selector)) {
- els[els.length] = el.dom;
- }
- });
- this.fill(els);
- return this;
- },
- invoke : function(fn, args) {
- var els = this.elements;
- for (var i = 0, len = els.length; i < len; i++) {
- Ext.Element.prototype[fn].apply(els[i], args);
- }
- return this;
- },
- add : function(els) {
- if (typeof els == "string") {
- this.addElements(Ext.Element.selectorFunction(els));
- } else if (els.length !== undefined) {
- this.addElements(els);
- } else {
- this.addElements([els]);
- }
- return this;
- },
- each : function(fn, scope) {
- var els = this.elements;
- for (var i = 0, len = els.length; i < len; i++) {
- if (fn.call(scope || els[i], els[i], this, i) === false) {
- break;
- }
- }
- return this;
- },
- item : function(index) {
- return this.elements[index] || null;
- },
- first : function() {
- return this.item(0);
- },
- last : function() {
- return this.item(this.elements.length - 1);
- },
- getCount : function() {
- return this.elements.length;
- },
- contains : function(el) {
- return this.indexOf(el) !== -1;
- },
- indexOf : function(el) {
- return this.elements.indexOf(Ext.get(el));
- },
- removeElement : function(el, removeDom) {
- if (el instanceof Array) {
- for (var i = 0, len = el.length; i < len; i++) {
- this.removeElement(el[i]);
- }
- return this;
- }
- var index = typeof el == 'number' ? el : this.indexOf(el);
- if (index !== -1 && this.elements[index]) {
- if (removeDom) {
- var d = this.elements[index];
- if (d.dom) {
- d.remove();
- } else {
- Ext.removeNode(d);
- }
- }
- this.elements.splice(index, 1);
- }
- return this;
- },
- replaceElement : function(el, replacement, domReplace) {
- var index = typeof el == 'number' ? el : this.indexOf(el);
- if (index !== -1) {
- if (domReplace) {
- this.elements[index].replaceWith(replacement);
- } else {
- this.elements.splice(index, 1, Ext.get(replacement))
- }
- }
- return this;
- },
- clear : function() {
- this.elements = [];
- }
- };
- (function() {
- Ext.CompositeElement.createCall = function(proto, fnName) {
- if (!proto[fnName]) {
- proto[fnName] = function() {
- return this.invoke(fnName, arguments);
- };
- }
- };
- for (var fnName in Ext.Element.prototype) {
- if (typeof Ext.Element.prototype[fnName] == "function") {
- Ext.CompositeElement.createCall(Ext.CompositeElement.prototype,
- fnName);
- }
- };
- })();
- Ext.CompositeElementLite = function(els) {
- Ext.CompositeElementLite.superclass.constructor.call(this, els);
- this.el = new Ext.Element.Flyweight();
- };
- Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, {
- addElements : function(els) {
- if (els) {
- if (els instanceof Array) {
- this.elements = this.elements.concat(els);
- } else {
- var yels = this.elements;
- var index = yels.length - 1;
- for (var i = 0, len = els.length; i < len; i++) {
- yels[++index] = els[i];
- }
- }
- }
- return this;
- },
- invoke : function(fn, args) {
- var els = this.elements;
- var el = this.el;
- for (var i = 0, len = els.length; i < len; i++) {
- el.dom = els[i];
- Ext.Element.prototype[fn].apply(el, args);
- }
- return this;
- },
- item : function(index) {
- if (!this.elements[index]) {
- return null;
- }
- this.el.dom = this.elements[index];
- return this.el;
- },
- addListener : function(eventName, handler, scope, opt) {
- var els = this.elements;
- for (var i = 0, len = els.length; i < len; i++) {
- Ext.EventManager.on(els[i], eventName, handler, scope
- || els[i], opt);
- }
- return this;
- },
- each : function(fn, scope) {
- var els = this.elements;
- var el = this.el;
- for (var i = 0, len = els.length; i < len; i++) {
- el.dom = els[i];
- if (fn.call(scope || el, el, this, i) === false) {
- break;
- }
- }
- return this;
- },
- indexOf : function(el) {
- return this.elements.indexOf(Ext.getDom(el));
- },
- replaceElement : function(el, replacement, domReplace) {
- var index = typeof el == 'number' ? el : this.indexOf(el);
- if (index !== -1) {
- replacement = Ext.getDom(replacement);
- if (domReplace) {
- var d = this.elements[index];
- d.parentNode.insertBefore(replacement, d);
- Ext.removeNode(d);
- }
- this.elements.splice(index, 1, replacement);
- }
- return this;
- }
- });
- Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener;
- if (Ext.DomQuery) {
- Ext.Element.selectorFunction = Ext.DomQuery.select;
- }
- Ext.Element.select = function(selector, unique, root) {
- var els;
- if (typeof selector == "string") {
- els = Ext.Element.selectorFunction(selector, root);
- } else if (selector.length !== undefined) {
- els = selector;
- } else {
- throw "Invalid selector";
- }
- if (unique === true) {
- return new Ext.CompositeElement(els);
- } else {
- return new Ext.CompositeElementLite(els);
- }
- };
- Ext.select = Ext.Element.select;
- Ext.data.Connection = function(config) {
- Ext.apply(this, config);
- this.addEvents(
- "beforerequest",
- "requestcomplete",
- "requestexception");
- Ext.data.Connection.superclass.constructor.call(this);
- };
- Ext.extend(Ext.data.Connection, Ext.util.Observable, {
- timeout : 30000,
- autoAbort : false,
- disableCaching : true,
- request : function(o) {
- if (this.fireEvent("beforerequest", this, o) !== false) {
- var p = o.params;
- if (typeof p == "function") {
- p = p.call(o.scope || window, o);
- }
- if (typeof p == "object") {
- p = Ext.urlEncode(p);
- }
- if (this.extraParams) {
- var extras = Ext.urlEncode(this.extraParams);
- p = p ? (p + '&' + extras) : extras;
- }
- var url = o.url || this.url;
- if (typeof url == 'function') {
- url = url.call(o.scope || window, o);
- }
- if (o.form) {
- var form = Ext.getDom(o.form);
- url = url || form.action;
- var enctype = form.getAttribute("enctype");
- if (o.isUpload
- || (enctype && enctype.toLowerCase() == 'multipart/form-data')) {
- return this.doFormUpload(o, p, url);
- }
- var f = Ext.lib.Ajax.serializeForm(form);
- p = p ? (p + '&' + f) : f;
- }
- var hs = o.headers;
- if (this.defaultHeaders) {
- hs = Ext.apply(hs || {}, this.defaultHeaders);
- if (!o.headers) {
- o.headers = hs;
- }
- }
- var cb = {
- success : this.handleResponse,
- failure : this.handleFailure,
- scope : this,
- argument : {
- options : o
- },
- timeout : this.timeout
- };
- var method = o.method || this.method || (p ? "POST" : "GET");
- if (method == 'GET'
- && (this.disableCaching && o.disableCaching !== false)
- || o.disableCaching === true) {
- url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc='
- + (allGetServerTime().getTime());
- }
- if (typeof o.autoAbort == 'boolean') {
- if (o.autoAbort) {
- this.abort();
- }
- } else if (this.autoAbort !== false) {
- this.abort();
- }
- if ((method == 'GET' && p) || o.xmlData || o.jsonData) {
- url += (url.indexOf('?') != -1 ? '&' : '?') + p;
- p = '';
- }
- this.transId = Ext.lib.Ajax.request(method, url, cb, p, o);
- return this.transId;
- } else {
- Ext.callback(o.callback, o.scope, [o, null, null]);
- return null;
- }
- },
- isLoading : function(transId) {
- if (transId) {
- return Ext.lib.Ajax.isCallInProgress(transId);
- } else {
- return this.transId ? true : false;
- }
- },
- abort : function(transId) {
- if (transId || this.isLoading()) {
- Ext.lib.Ajax.abort(transId || this.transId);
- }
- },
- handleResponse : function(response) {
- this.transId = false;
- var options = response.argument.options;
- response.argument = options ? options.argument : null;
- this.fireEvent("requestcomplete", this, response, options);
- Ext.callback(options.success, options.scope, [response, options]);
- Ext
- .callback(options.callback, options.scope, [options, true,
- response]);
- },
- handleFailure : function(response, e) {
- this.transId = false;
- var options = response.argument.options;
- response.argument = options ? options.argument : null;
- this.fireEvent("requestexception", this, response, options, e);
- Ext.callback(options.failure, options.scope, [response, options]);
- Ext.callback(options.callback, options.scope,
- [options, false, response]);
- },
- doFormUpload : function(o, ps, url) {
- var id = Ext.id();
- var frame = document.createElement('iframe');
- frame.id = id;
- frame.name = id;
- frame.className = 'x-hidden';
- if (Ext.isIE) {
- frame.src = Ext.SSL_SECURE_URL;
- }
- document.body.appendChild(frame);
- if (Ext.isIE) {
- document.frames[id].name = id;
- }
- var form = Ext.getDom(o.form);
- form.target = id;
- form.method = 'POST';
- form.enctype = form.encoding = 'multipart/form-data';
- if (url) {
- form.action = url;
- }
- var hiddens, hd;
- if (ps) {
- hiddens = [];
- ps = Ext.urlDecode(ps, false);
- for (var k in ps) {
- if (ps.hasOwnProperty(k)) {
- hd = document.createElement('input');
- hd.type = 'hidden';
- hd.name = k;
- hd.value = ps[k];
- form.appendChild(hd);
- hiddens.push(hd);
- }
- }
- }
- function cb() {
- var r = {
- responseText : '',
- responseXML : null
- };
- r.argument = o ? o.argument : null;
- try {
- var doc;
- if (Ext.isIE) {
- doc = frame.contentWindow.document;
- } else {
- doc = (frame.contentDocument || window.frames[id].document);
- }
- if (doc && doc.body) {
- r.responseText = doc.body.innerHTML;
- }
- if (doc && doc.XMLDocument) {
- r.responseXML = doc.XMLDocument;
- } else {
- r.responseXML = doc;
- }
- } catch (e) {
- }
- Ext.EventManager.removeListener(frame, 'load', cb, this);
- this.fireEvent("requestcomplete", this, r, o);
- Ext.callback(o.success, o.scope, [r, o]);
- Ext.callback(o.callback, o.scope, [o, true, r]);
- setTimeout(function() {
- Ext.removeNode(frame);
- }, 100);
- }
- Ext.EventManager.on(frame, 'load', cb, this);
- form.submit();
- if (hiddens) {
- for (var i = 0, len = hiddens.length; i < len; i++) {
- Ext.removeNode(hiddens[i]);
- }
- }
- }
- });
- Ext.Ajax = new Ext.data.Connection({
- autoAbort : false,
- serializeForm : function(form) {
- return Ext.lib.Ajax.serializeForm(form);
- }
- });
- Ext.Updater = function(el, forceNew) {
- el = Ext.get(el);
- if (!forceNew && el.updateManager) {
- return el.updateManager;
- }
- this.el = el;
- this.defaultUrl = null;
- this.addEvents(
- "beforeupdate",
- "update",
- "failure");
- var d = Ext.Updater.defaults;
- this.sslBlankUrl = d.sslBlankUrl;
- this.disableCaching = d.disableCaching;
- this.indicatorText = d.indicatorText;
- this.showLoadIndicator = d.showLoadIndicator;
- this.timeout = d.timeout;
- this.loadScripts = d.loadScripts;
- this.transaction = null;
- this.autoRefreshProcId = null;
- this.refreshDelegate = this.refresh.createDelegate(this);
- this.updateDelegate = this.update.createDelegate(this);
- this.formUpdateDelegate = this.formUpdate.createDelegate(this);
- if (!this.renderer) {
- this.renderer = new Ext.Updater.BasicRenderer();
- }
- Ext.Updater.superclass.constructor.call(this);
- };
- Ext.extend(Ext.Updater, Ext.util.Observable, {
- getEl : function() {
- return this.el;
- },
- update : function(url, params, callback, discardUrl) {
- if (this.fireEvent("beforeupdate", this.el, url, params) !== false) {
- var method = this.method, cfg, callerScope;
- if (typeof url == "object") {
- cfg = url;
- url = cfg.url;
- params = params || cfg.params;
- callback = callback || cfg.callback;
- discardUrl = discardUrl || cfg.discardUrl;
- callerScope = cfg.scope;
- if (typeof cfg.method != "undefined") {
- method = cfg.method;
- };
- if (typeof cfg.nocache != "undefined") {
- this.disableCaching = cfg.nocache;
- };
- if (typeof cfg.text != "undefined") {
- this.indicatorText = '<div class="loading-indicator">'
- + cfg.text + "</div>";
- };
- if (typeof cfg.scripts != "undefined") {
- this.loadScripts = cfg.scripts;
- };
- if (typeof cfg.timeout != "undefined") {
- this.timeout = cfg.timeout;
- };
- }
- this.showLoading();
- if (!discardUrl) {
- this.defaultUrl = url;
- }
- if (typeof url == "function") {
- url = url.call(this);
- }
- method = method || (params ? "POST" : "GET");
- if (method == "GET") {
- url = this.prepareUrl(url);
- }
- var o = Ext.apply(cfg || {}, {
- url : url,
- params : (typeof params == "function" && callerScope)
- ? params.createDelegate(callerScope)
- : params,
- success : this.processSuccess,
- failure : this.processFailure,
- scope : this,
- callback : undefined,
- timeout : (this.timeout * 1000),
- argument : {
- "options" : cfg,
- "url" : url,
- "form" : null,
- "callback" : callback,
- "scope" : callerScope || window,
- "params" : params
- }
- });
- this.transaction = Ext.Ajax.request(o);
- }
- },
- formUpdate : function(form, url, reset, callback) {
- if (this.fireEvent("beforeupdate", this.el, form, url) !== false) {
- if (typeof url == "function") {
- url = url.call(this);
- }
- form = Ext.getDom(form)
- this.transaction = Ext.Ajax.request({
- form : form,
- url : url,
- success : this.processSuccess,
- failure : this.processFailure,
- scope : this,
- timeout : (this.timeout * 1000),
- argument : {
- "url" : url,
- "form" : form,
- "callback" : callback,
- "reset" : reset
- }
- });
- this.showLoading.defer(1, this);
- }
- },
- refresh : function(callback) {
- if (this.defaultUrl == null) {
- return;
- }
- this.update(this.defaultUrl, null, callback, true);
- },
- startAutoRefresh : function(interval, url, params, callback,
- refreshNow) {
- if (refreshNow) {
- this.update(url || this.defaultUrl, params, callback, true);
- }
- if (this.autoRefreshProcId) {
- clearInterval(this.autoRefreshProcId);
- }
- this.autoRefreshProcId = setInterval(this.update
- .createDelegate(this, [url || this.defaultUrl,
- params, callback, true]),
- interval * 1000);
- },
- stopAutoRefresh : function() {
- if (this.autoRefreshProcId) {
- clearInterval(this.autoRefreshProcId);
- delete this.autoRefreshProcId;
- }
- },
- isAutoRefreshing : function() {
- return this.autoRefreshProcId ? true : false;
- },
- showLoading : function() {
- if (this.showLoadIndicator) {
- this.el.update(this.indicatorText);
- }
- },
- prepareUrl : function(url) {
- if (this.disableCaching) {
- var append = "_dc=" + (allGetServerTime().getTime());
- if (url.indexOf("?") !== -1) {
- url += "&" + append;
- } else {
- url += "?" + append;
- }
- }
- return url;
- },
- processSuccess : function(response) {
- this.transaction = null;
- if (response.argument.form && response.argument.reset) {
- try {
- response.argument.form.reset();
- } catch (e) {
- }
- }
- if (this.loadScripts) {
- this.renderer.render(this.el, response, this,
- this.updateComplete
- .createDelegate(this, [response]));
- } else {
- this.renderer.render(this.el, response, this);
- this.updateComplete(response);
- }
- },
- updateComplete : function(response) {
- this.fireEvent("update", this.el, response);
- if (typeof response.argument.callback == "function") {
- response.argument.callback.call(response.argument.scope,
- this.el, true, response, response.argument.options);
- }
- },
- processFailure : function(response) {
- this.transaction = null;
- this.fireEvent("failure", this.el, response);
- if (typeof response.argument.callback == "function") {
- response.argument.callback
- .call(response.argument.scope, this.el, false,
- response, response.argument.options);
- }
- },
- setRenderer : function(renderer) {
- this.renderer = renderer;
- },
- getRenderer : function() {
- return this.renderer;
- },
- setDefaultUrl : function(defaultUrl) {
- this.defaultUrl = defaultUrl;
- },
- abort : function() {
- if (this.transaction) {
- Ext.Ajax.abort(this.transaction);
- }
- },
- isUpdating : function() {
- if (this.transaction) {
- return Ext.Ajax.isLoading(this.transaction);
- }
- return false;
- }
- });
- Ext.Updater.defaults = {
- timeout : 30,
- loadScripts : false,
- sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"),
- disableCaching : false,
- showLoadIndicator : true,
- indicatorText : '<div class="loading-indicator">Loading...</div>'
- };
- Ext.Updater.updateElement = function(el, url, params, options) {
- var um = Ext.get(el).getUpdater();
- Ext.apply(um, options);
- um.update(url, params, options ? options.callback : null);
- };
- Ext.Updater.update = Ext.Updater.updateElement;
- Ext.Updater.BasicRenderer = function() {
- };
- Ext.Updater.BasicRenderer.prototype = {
- render : function(el, response, updateManager, callback) {
- el.update(response.responseText, updateManager.loadScripts, callback);
- }
- };
- Ext.UpdateManager = Ext.Updater;
- Ext.util.DelayedTask = function(fn, scope, args) {
- var id = null, d, t;
- var call = function() {
- var now = allGetServerTime().getTime();
- if (now - t >= d) {
- clearInterval(id);
- id = null;
- fn.apply(scope, args || []);
- }
- };
- this.delay = function(delay, newFn, newScope, newArgs) {
- if (id && delay != d) {
- this.cancel();
- }
- d = delay;
- t = allGetServerTime().getTime();
- fn = newFn || fn;
- scope = newScope || scope;
- args = newArgs || args;
- if (!id) {
- id = setInterval(call, d);
- }
- };
- this.cancel = function() {
- if (id) {
- clearInterval(id);
- id = null;
- }
- };
- };
|