123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214 |
- function draw_clock() {
- var n, r, t;
- for (canvas = Raphael("analog", 100, 100), n = canvas.circle(25, 25, 23), n.attr({
- fill: "#F9F9F9",
- stroke: "#003A7D",
- "stroke-width": "2"
- }), i = 0; i < 12; i++) {
- var u = 25 + Math.round(18 * Math.cos(30 * i * Math.PI / 180)),
- f = 25 + Math.round(18 * Math.sin(30 * i * Math.PI / 180)),
- e = 25 + Math.round(22 * Math.cos(30 * i * Math.PI / 180)),
- o = 25 + Math.round(22 * Math.sin(30 * i * Math.PI / 180));
- r = canvas.path("M" + u + " " + f + "L" + e + " " + o)
- }
- hour_hand = canvas.path("M 25 25 L 25 15");
- hour_hand.attr({
- stroke: "#003A7D",
- "stroke-width": 2
- });
- minute_hand = canvas.path("M 25 25 L 25 10");
- minute_hand.attr({
- stroke: "#444444",
- "stroke-width": 1
- });
- second_hand = canvas.path("M 25 30 L 25 8");
- second_hand.attr({
- stroke: "#003A7D",
- "stroke-width": .5
- });
- t = canvas.circle(25, 25, 1);
- t.attr("fill", "#003A7D");
- update_clock();
- setInterval("update_clock()", 1e3)
- }
- function update_clock() {
- var r = dateTimeFromServer - dateTimeFromClient,
- u = (new Date).getTime(),
- t = new Date;
- t.setTime(u + r);
- var n = t,
- f = n.getHours(),
- i = n.getMinutes(),
- e = n.getSeconds();
- hour_hand.rotate(30 * f + i / 2.5, 25, 25);
- minute_hand.rotate(6 * i, 25, 25);
- second_hand.rotate(6 * e, 25, 25)
- }
- function indirectStation() {
- var i = $(".route ").find(".subRow").length,
- n = $("#indirect"),
- r = $("#newIndirect"),
- u = '<div class="row btnRow"><button id="newIndirect" class="k-button k-button-get">' + C_DodajStacjePosrednia + "<\/button><\/div>",
- t = $("#switchParamsMode").parent();
- i > 0 ? (n.attr("enable", "false").addClass("k-state-disabled"), n.text(C_PrzezStacjePosrednia), t.show(), r || $(".route .container").append(u)) : (n.removeAttr("enable").removeClass("k-state-disabled"), n.text(C_DodajStacjePosrednia), $("#newIndirect").parent(".btnRow").remove(), t.hide())
- }
- function countChecks(n) {
- var r = n.closest(".layer").find("ul input:checkbox").length,
- i = n.closest(".layer").find("ul input:checkbox:checked").length,
- t = n.closest(".multiMenu").find(".num");
- t.html("");
- r === i ? (t.html(""), t.append("wszyscy")) : t.append("<span>wybrano " + i + "<\/span>")
- }
- function null2empty(n, t, i) {
- if (!t || t == "") return "";
- var r = i ? i : "";
- return n + " " + t + " " + r
- }
- function minuty2MinGodz(n) {
- n = Math.ceil(n);
- var t = Math.floor(n / 60);
- return t < 10 && (t = "0" + t), t += ":", n % 60 < 10 && (t += "0"), t + Math.round(n % 60)
- }
- function minuty2HHmm(n) {
- var t = Math.floor(n / 60),
- i = n - t * 60;
- return t < 10 && (t = "0" + t), i < 10 && (i = "0" + i), t + ":" + i
- }
- function timeStamp2Tekst(n) {
- return minuty2MinGodz(n.TotalMinutes)
- }
- function jsonTime2Time(n, t) {
- return n == "" ? "" : (t = typeof t != "undefined" ? t : "yyyy-MM-dd HH:mm", kendo.toString(new Date(parseInt(n.substr(6))), t))
- }
- function jsonTime2JsTime(n, t) {
- return n == "" ? "" : (t = typeof t != "undefined" ? t : "yyyy-MM-dd HH:mm", new Date(parseInt(n.substr(6))))
- }
- function usunPolskieZnaki(n) {
- return n = n.replace(/Ę/g, "E").replace(/ę/g, "e"), n = n.replace(/Ó/g, "O").replace(/o/g, "o"), n = n.replace(/Ą/g, "A").replace(/ą/g, "a"), n = n.replace(/Ś/g, "S").replace(/ś/g, "s"), n = n.replace(/Ł/g, "L").replace(/ł/g, "l"), n = n.replace(/Ż/g, "Z").replace(/ż/g, "z"), n = n.replace(/Ź/g, "Z").replace(/ź/g, "z"), n = n.replace(/Ć/g, "C").replace(/ć/g, "c"), n.replace(/Ń/g, "N").replace(/ń/g, "n")
- }
- function generujHashDanych(n) {
- var t = "";
- return t += n.StacjaPoczatkowaID.toString(), t += n.LiczbaPrzesiadek.toString(), t += Date.parse(n.Odjazd), t += Date.parse(n.Przyjazd), t + n.Pociagi[0].ZamowienieSKRJID.toString()
- }
- var dateTimeFromServer, dateTimeFromClient, mouse_is_inside;
- (function(n, t) {
- function dt(n) {
- var t = n.length,
- r = i.type(n);
- return i.isWindow(n) ? !1 : 1 === n.nodeType && t ? !0 : "array" === r || "function" !== r && (0 === t || "number" == typeof t && t > 0 && t - 1 in n)
- }
- function kf(n) {
- var t = gt[n] = {};
- return i.each(n.match(s) || [], function(n, i) {
- t[i] = !0
- }), t
- }
- function ir(n, r, u, f) {
- if (i.acceptData(n)) {
- var s, h, c = i.expando,
- a = "string" == typeof r,
- l = n.nodeType,
- o = l ? i.cache : n,
- e = l ? n[c] : n[c] && c;
- if (e && o[e] && (f || o[e].data) || !a || u !== t) return e || (l ? n[c] = e = b.pop() || i.guid++ : e = c), o[e] || (o[e] = {}, l || (o[e].toJSON = i.noop)), ("object" == typeof r || "function" == typeof r) && (f ? o[e] = i.extend(o[e], r) : o[e].data = i.extend(o[e].data, r)), s = o[e], f || (s.data || (s.data = {}), s = s.data), u !== t && (s[i.camelCase(r)] = u), a ? (h = s[r], null == h && (h = s[i.camelCase(r)])) : h = s, h
- }
- }
- function rr(n, t, r) {
- if (i.acceptData(n)) {
- var o, h, e, s = n.nodeType,
- u = s ? i.cache : n,
- f = s ? n[i.expando] : i.expando;
- if (u[f]) {
- if (t && (e = r ? u[f] : u[f].data)) {
- for (i.isArray(t) ? t = t.concat(i.map(t, i.camelCase)) : (t in e) ? t = [t] : (t = i.camelCase(t), t = (t in e) ? [t] : t.split(" ")), o = 0, h = t.length; h > o; o++) delete e[t[o]];
- if (!(r ? ni : i.isEmptyObject)(e)) return
- }(r || (delete u[f].data, ni(u[f]))) && (s ? i.cleanData([n], !0) : i.support.deleteExpando || u != u.window ? delete u[f] : u[f] = null)
- }
- }
- }
- function ur(n, r, u) {
- if (u === t && 1 === n.nodeType) {
- var f = "data-" + r.replace(tr, "-$1").toLowerCase();
- if (u = n.getAttribute(f), "string" == typeof u) {
- try {
- u = "true" === u ? !0 : "false" === u ? !1 : "null" === u ? null : +u + "" === u ? +u : nr.test(u) ? i.parseJSON(u) : u
- } catch (e) {}
- i.data(n, r, u)
- } else u = t
- }
- return u
- }
- function ni(n) {
- for (var t in n)
- if (("data" !== t || !i.isEmptyObject(n[t])) && "toJSON" !== t) return !1;
- return !0
- }
- function ht() {
- return !0
- }
- function d() {
- return !1
- }
- function cr(n, t) {
- do n = n[t]; while (n && 1 !== n.nodeType);
- return n
- }
- function lr(n, t, r) {
- if (t = t || 0, i.isFunction(t)) return i.grep(n, function(n, i) {
- var u = !!t.call(n, i, n);
- return u === r
- });
- if (t.nodeType) return i.grep(n, function(n) {
- return n === t === r
- });
- if ("string" == typeof t) {
- var u = i.grep(n, function(n) {
- return 1 === n.nodeType
- });
- if (fe.test(t)) return i.filter(t, u, !r);
- t = i.filter(t, u)
- }
- return i.grep(n, function(n) {
- return i.inArray(n, t) >= 0 === r
- })
- }
- function ar(n) {
- var i = vr.split("|"),
- t = n.createDocumentFragment();
- if (t.createElement)
- while (i.length) t.createElement(i.pop());
- return t
- }
- function ye(n, t) {
- return n.getElementsByTagName(t)[0] || n.appendChild(n.ownerDocument.createElement(t))
- }
- function dr(n) {
- var t = n.getAttributeNode("type");
- return n.type = (t && t.specified) + "/" + n.type, n
- }
- function gr(n) {
- var t = le.exec(n.type);
- return t ? n.type = t[1] : n.removeAttribute("type"), n
- }
- function si(n, t) {
- for (var u, r = 0; null != (u = n[r]); r++) i._data(u, "globalEval", !t || i._data(t[r], "globalEval"))
- }
- function nu(n, t) {
- if (1 === t.nodeType && i.hasData(n)) {
- var u, f, o, s = i._data(n),
- r = i._data(t, s),
- e = s.events;
- if (e) {
- delete r.handle;
- r.events = {};
- for (u in e)
- for (f = 0, o = e[u].length; o > f; f++) i.event.add(t, u, e[u][f])
- }
- r.data && (r.data = i.extend({}, r.data))
- }
- }
- function pe(n, t) {
- var r, f, u;
- if (1 === t.nodeType) {
- if (r = t.nodeName.toLowerCase(), !i.support.noCloneEvent && t[i.expando]) {
- u = i._data(t);
- for (f in u.events) i.removeEvent(t, f, u.handle);
- t.removeAttribute(i.expando)
- }
- "script" === r && t.text !== n.text ? (dr(t).text = n.text, gr(t)) : "object" === r ? (t.parentNode && (t.outerHTML = n.outerHTML), i.support.html5Clone && n.innerHTML && !i.trim(t.innerHTML) && (t.innerHTML = n.innerHTML)) : "input" === r && ei.test(n.type) ? (t.defaultChecked = t.checked = n.checked, t.value !== n.value && (t.value = n.value)) : "option" === r ? t.defaultSelected = t.selected = n.defaultSelected : ("input" === r || "textarea" === r) && (t.defaultValue = n.defaultValue)
- }
- }
- function u(n, r) {
- var s, e, h = 0,
- f = typeof n.getElementsByTagName !== o ? n.getElementsByTagName(r || "*") : typeof n.querySelectorAll !== o ? n.querySelectorAll(r || "*") : t;
- if (!f)
- for (f = [], s = n.childNodes || n; null != (e = s[h]); h++) !r || i.nodeName(e, r) ? f.push(e) : i.merge(f, u(e, r));
- return r === t || r && i.nodeName(n, r) ? i.merge([n], f) : f
- }
- function we(n) {
- ei.test(n.type) && (n.defaultChecked = n.checked)
- }
- function fu(n, t) {
- if (t in n) return t;
- for (var r = t.charAt(0).toUpperCase() + t.slice(1), u = t, i = uu.length; i--;)
- if (t = uu[i] + r, t in n) return t;
- return u
- }
- function ut(n, t) {
- return n = t || n, "none" === i.css(n, "display") || !i.contains(n.ownerDocument, n)
- }
- function eu(n, t) {
- for (var f, r, o, e = [], u = 0, s = n.length; s > u; u++) r = n[u], r.style && (e[u] = i._data(r, "olddisplay"), f = r.style.display, t ? (e[u] || "none" !== f || (r.style.display = ""), "" === r.style.display && ut(r) && (e[u] = i._data(r, "olddisplay", cu(r.nodeName)))) : e[u] || (o = ut(r), (f && "none" !== f || !o) && i._data(r, "olddisplay", o ? f : i.css(r, "display"))));
- for (u = 0; s > u; u++) r = n[u], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? e[u] || "" : "none"));
- return n
- }
- function ou(n, t, i) {
- var r = ge.exec(t);
- return r ? Math.max(0, r[1] - (i || 0)) + (r[2] || "px") : t
- }
- function su(n, t, r, u, f) {
- for (var e = r === (u ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > e; e += 2) "margin" === r && (o += i.css(n, r + p[e], !0, f)), u ? ("content" === r && (o -= i.css(n, "padding" + p[e], !0, f)), "margin" !== r && (o -= i.css(n, "border" + p[e] + "Width", !0, f))) : (o += i.css(n, "padding" + p[e], !0, f), "padding" !== r && (o += i.css(n, "border" + p[e] + "Width", !0, f)));
- return o
- }
- function hu(n, t, r) {
- var e = !0,
- u = "width" === t ? n.offsetWidth : n.offsetHeight,
- f = v(n),
- o = i.support.boxSizing && "border-box" === i.css(n, "boxSizing", !1, f);
- if (0 >= u || null == u) {
- if (u = y(n, t, f), (0 > u || null == u) && (u = n.style[t]), ct.test(u)) return u;
- e = o && (i.support.boxSizingReliable || u === n.style[t]);
- u = parseFloat(u) || 0
- }
- return u + su(n, t, r || (o ? "border" : "content"), e, f) + "px"
- }
- function cu(n) {
- var u = r,
- t = iu[n];
- return t || (t = lu(n, u), "none" !== t && t || (rt = (rt || i("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(u.documentElement), u = (rt[0].contentWindow || rt[0].contentDocument).document, u.write("<!doctype html><html><body>"), u.close(), t = lu(n, u), rt.detach()), iu[n] = t), t
- }
- function lu(n, t) {
- var r = i(t.createElement(n)).appendTo(t.body),
- u = i.css(r[0], "display");
- return r.remove(), u
- }
- function ci(n, t, r, u) {
- var f;
- if (i.isArray(t)) i.each(t, function(t, i) {
- r || ro.test(n) ? u(n, i) : ci(n + "[" + ("object" == typeof i ? t : "") + "]", i, r, u)
- });
- else if (r || "object" !== i.type(t)) u(n, t);
- else
- for (f in t) ci(n + "[" + f + "]", t[f], r, u)
- }
- function ku(n) {
- return function(t, r) {
- "string" != typeof t && (r = t, t = "*");
- var u, f = 0,
- e = t.toLowerCase().match(s) || [];
- if (i.isFunction(r))
- while (u = e[f++]) "+" === u[0] ? (u = u.slice(1) || "*", (n[u] = n[u] || []).unshift(r)) : (n[u] = n[u] || []).push(r)
- }
- }
- function du(n, r, u, f) {
- function o(h) {
- var c;
- return e[h] = !0, i.each(n[h] || [], function(n, i) {
- var h = i(r, u, f);
- return "string" != typeof h || s || e[h] ? s ? !(c = h) : t : (r.dataTypes.unshift(h), o(h), !1)
- }), c
- }
- var e = {},
- s = n === vi;
- return o(r.dataTypes[0]) || !e["*"] && o("*")
- }
- function yi(n, r) {
- var f, u, e = i.ajaxSettings.flatOptions || {};
- for (u in r) r[u] !== t && ((e[u] ? n : f || (f = {}))[u] = r[u]);
- return f && i.extend(!0, n, f), n
- }
- function co(n, i, r) {
- var s, o, e, u, h = n.contents,
- f = n.dataTypes,
- c = n.responseFields;
- for (u in c) u in r && (i[c[u]] = r[u]);
- while ("*" === f[0]) f.shift(), o === t && (o = n.mimeType || i.getResponseHeader("Content-Type"));
- if (o)
- for (u in h)
- if (h[u] && h[u].test(o)) {
- f.unshift(u);
- break
- }
- if (f[0] in r) e = f[0];
- else {
- for (u in r) {
- if (!f[0] || n.converters[u + " " + f[0]]) {
- e = u;
- break
- }
- s || (s = u)
- }
- e = e || s
- }
- return e ? (e !== f[0] && f.unshift(e), r[e]) : t
- }
- function lo(n, t) {
- var o, r, i, e, u = {},
- h = 0,
- s = n.dataTypes.slice(),
- f = s[0];
- if (n.dataFilter && (t = n.dataFilter(t, n.dataType)), s[1])
- for (i in n.converters) u[i.toLowerCase()] = n.converters[i];
- for (; r = s[++h];)
- if ("*" !== r) {
- if ("*" !== f && f !== r) {
- if (i = u[f + " " + r] || u["* " + r], !i)
- for (o in u)
- if (e = o.split(" "), e[1] === r && (i = u[f + " " + e[0]] || u["* " + e[0]])) {
- i === !0 ? i = u[o] : u[o] !== !0 && (r = e[0], s.splice(h--, 0, r));
- break
- }
- if (i !== !0)
- if (i && n.throws) t = i(t);
- else try {
- t = i(t)
- } catch (c) {
- return {
- state: "parsererror",
- error: i ? c : "No conversion from " + f + " to " + r
- }
- }
- }
- f = r
- }
- return {
- state: "success",
- data: t
- }
- }
- function nf() {
- try {
- return new n.XMLHttpRequest
- } catch (t) {}
- }
- function ao() {
- try {
- return new n.ActiveXObject("Microsoft.XMLHTTP")
- } catch (t) {}
- }
- function tf() {
- return setTimeout(function() {
- tt = t
- }), tt = i.now()
- }
- function wo(n, t) {
- i.each(t, function(t, i) {
- for (var u = (ft[t] || []).concat(ft["*"]), r = 0, f = u.length; f > r; r++)
- if (u[r].call(n, t, i)) return
- })
- }
- function rf(n, t, r) {
- var h, e, o = 0,
- l = yt.length,
- f = i.Deferred().always(function() {
- delete c.elem
- }),
- c = function() {
- if (e) return !1;
- for (var s = tt || tf(), t = Math.max(0, u.startTime + u.duration - s), h = t / u.duration || 0, i = 1 - h, r = 0, o = u.tweens.length; o > r; r++) u.tweens[r].run(i);
- return f.notifyWith(n, [u, i, t]), 1 > i && o ? t : (f.resolveWith(n, [u]), !1)
- },
- u = f.promise({
- elem: n,
- props: i.extend({}, t),
- opts: i.extend(!0, {
- specialEasing: {}
- }, r),
- originalProperties: t,
- originalOptions: r,
- startTime: tt || tf(),
- duration: r.duration,
- tweens: [],
- createTween: function(t, r) {
- var f = i.Tween(n, u.opts, t, r, u.opts.specialEasing[t] || u.opts.easing);
- return u.tweens.push(f), f
- },
- stop: function(t) {
- var i = 0,
- r = t ? u.tweens.length : 0;
- if (e) return this;
- for (e = !0; r > i; i++) u.tweens[i].run(1);
- return t ? f.resolveWith(n, [u, t]) : f.rejectWith(n, [u, t]), this
- }
- }),
- s = u.props;
- for (bo(s, u.opts.specialEasing); l > o; o++)
- if (h = yt[o].call(u, n, s, u.opts)) return h;
- return wo(u, s), i.isFunction(u.opts.start) && u.opts.start.call(n, u), i.fx.timer(i.extend(c, {
- elem: n,
- anim: u,
- queue: u.opts.queue
- })), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
- }
- function bo(n, t) {
- var u, f, r, e, o;
- for (r in n)
- if (f = i.camelCase(r), e = t[f], u = n[r], i.isArray(u) && (e = u[1], u = n[r] = u[0]), r !== f && (n[f] = u, delete n[r]), o = i.cssHooks[f], o && "expand" in o) {
- u = o.expand(u);
- delete n[f];
- for (r in u) r in n || (n[r] = u[r], t[r] = e)
- } else t[f] = e
- }
- function ko(n, t, r) {
- var u, o, w, a, s, v, l, f, b, h = this,
- e = n.style,
- y = {},
- p = [],
- c = n.nodeType && ut(n);
- r.queue || (f = i._queueHooks(n, "fx"), null == f.unqueued && (f.unqueued = 0, b = f.empty.fire, f.empty.fire = function() {
- f.unqueued || b()
- }), f.unqueued++, h.always(function() {
- h.always(function() {
- f.unqueued--;
- i.queue(n, "fx").length || f.empty.fire()
- })
- }));
- 1 === n.nodeType && ("height" in t || "width" in t) && (r.overflow = [e.overflow, e.overflowX, e.overflowY], "inline" === i.css(n, "display") && "none" === i.css(n, "float") && (i.support.inlineBlockNeedsLayout && "inline" !== cu(n.nodeName) ? e.zoom = 1 : e.display = "inline-block"));
- r.overflow && (e.overflow = "hidden", i.support.shrinkWrapBlocks || h.always(function() {
- e.overflow = r.overflow[0];
- e.overflowX = r.overflow[1];
- e.overflowY = r.overflow[2]
- }));
- for (o in t)
- if (a = t[o], vo.exec(a)) {
- if (delete t[o], v = v || "toggle" === a, a === (c ? "hide" : "show")) continue;
- p.push(o)
- }
- if (w = p.length)
- for (s = i._data(n, "fxshow") || i._data(n, "fxshow", {}), ("hidden" in s) && (c = s.hidden), v && (s.hidden = !c), c ? i(n).show() : h.done(function() {
- i(n).hide()
- }), h.done(function() {
- var t;
- i._removeData(n, "fxshow");
- for (t in y) i.style(n, t, y[t])
- }), o = 0; w > o; o++) u = p[o], l = h.createTween(u, c ? s[u] : 0), y[u] = s[u] || i.style(n, u), u in s || (s[u] = l.start, c && (l.end = l.start, l.start = "width" === u || "height" === u ? 1 : 0))
- }
- function f(n, t, i, r, u) {
- return new f.prototype.init(n, t, i, r, u)
- }
- function pt(n, t) {
- var r, i = {
- height: n
- },
- u = 0;
- for (t = t ? 1 : 0; 4 > u; u += 2 - t) r = p[u], i["margin" + r] = i["padding" + r] = n;
- return t && (i.opacity = i.width = n), i
- }
- function uf(n) {
- return i.isWindow(n) ? n : 9 === n.nodeType ? n.defaultView || n.parentWindow : !1
- }
- var et, wi, o = typeof t,
- r = n.document,
- ff = n.location,
- ef = n.jQuery,
- of = n.$,
- ot = {},
- b = [],
- wt = "1.9.1",
- bi = b.concat,
- bt = b.push,
- l = b.slice,
- ki = b.indexOf,
- sf = ot.toString,
- it = ot.hasOwnProperty,
- kt = wt.trim,
- i = function(n, t) {
- return new i.fn.init(n, t, wi)
- },
- st = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
- s = /\S+/g,
- hf = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
- cf = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
- di = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
- lf = /^[\],:{}\s]*$/,
- af = /(?:^|:|,)(?:\s*\[)+/g,
- vf = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
- yf = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
- pf = /^-ms-/,
- wf = /-([\da-z])/gi,
- bf = function(n, t) {
- return t.toUpperCase()
- },
- h = function(n) {
- (r.addEventListener || "load" === n.type || "complete" === r.readyState) && (gi(), i.ready())
- },
- gi = function() {
- r.addEventListener ? (r.removeEventListener("DOMContentLoaded", h, !1), n.removeEventListener("load", h, !1)) : (r.detachEvent("onreadystatechange", h), n.detachEvent("onload", h))
- },
- gt, nr, tr, pi, lt, g, nt, gu, at;
- i.fn = i.prototype = {
- jquery: wt,
- constructor: i,
- init: function(n, u, f) {
- var e, o;
- if (!n) return this;
- if ("string" == typeof n) {
- if (e = "<" === n.charAt(0) && ">" === n.charAt(n.length - 1) && n.length >= 3 ? [null, n, null] : cf.exec(n), !e || !e[1] && u) return !u || u.jquery ? (u || f).find(n) : this.constructor(u).find(n);
- if (e[1]) {
- if (u = u instanceof i ? u[0] : u, i.merge(this, i.parseHTML(e[1], u && u.nodeType ? u.ownerDocument || u : r, !0)), di.test(e[1]) && i.isPlainObject(u))
- for (e in u) i.isFunction(this[e]) ? this[e](u[e]) : this.attr(e, u[e]);
- return this
- }
- if (o = r.getElementById(e[2]), o && o.parentNode) {
- if (o.id !== e[2]) return f.find(n);
- this.length = 1;
- this[0] = o
- }
- return this.context = r, this.selector = n, this
- }
- return n.nodeType ? (this.context = this[0] = n, this.length = 1, this) : i.isFunction(n) ? f.ready(n) : (n.selector !== t && (this.selector = n.selector, this.context = n.context), i.makeArray(n, this))
- },
- selector: "",
- length: 0,
- size: function() {
- return this.length
- },
- toArray: function() {
- return l.call(this)
- },
- get: function(n) {
- return null == n ? this.toArray() : 0 > n ? this[this.length + n] : this[n]
- },
- pushStack: function(n) {
- var t = i.merge(this.constructor(), n);
- return t.prevObject = this, t.context = this.context, t
- },
- each: function(n, t) {
- return i.each(this, n, t)
- },
- ready: function(n) {
- return i.ready.promise().done(n), this
- },
- slice: function() {
- return this.pushStack(l.apply(this, arguments))
- },
- first: function() {
- return this.eq(0)
- },
- last: function() {
- return this.eq(-1)
- },
- eq: function(n) {
- var i = this.length,
- t = +n + (0 > n ? i : 0);
- return this.pushStack(t >= 0 && i > t ? [this[t]] : [])
- },
- map: function(n) {
- return this.pushStack(i.map(this, function(t, i) {
- return n.call(t, i, t)
- }))
- },
- end: function() {
- return this.prevObject || this.constructor(null)
- },
- push: bt,
- sort: [].sort,
- splice: [].splice
- };
- i.fn.init.prototype = i.fn;
- i.extend = i.fn.extend = function() {
- var u, o, r, e, s, h, n = arguments[0] || {},
- f = 1,
- l = arguments.length,
- c = !1;
- for ("boolean" == typeof n && (c = n, n = arguments[1] || {}, f = 2), "object" == typeof n || i.isFunction(n) || (n = {}), l === f && (n = this, --f); l > f; f++)
- if (null != (s = arguments[f]))
- for (e in s) u = n[e], r = s[e], n !== r && (c && r && (i.isPlainObject(r) || (o = i.isArray(r))) ? (o ? (o = !1, h = u && i.isArray(u) ? u : []) : h = u && i.isPlainObject(u) ? u : {}, n[e] = i.extend(c, h, r)) : r !== t && (n[e] = r));
- return n
- };
- i.extend({
- noConflict: function(t) {
- return n.$ === i && (n.$ = of ), t && n.jQuery === i && (n.jQuery = ef), i
- },
- isReady: !1,
- readyWait: 1,
- holdReady: function(n) {
- n ? i.readyWait++ : i.ready(!0)
- },
- ready: function(n) {
- if (n === !0 ? !--i.readyWait : !i.isReady) {
- if (!r.body) return setTimeout(i.ready);
- i.isReady = !0;
- n !== !0 && --i.readyWait > 0 || (et.resolveWith(r, [i]), i.fn.trigger && i(r).trigger("ready").off("ready"))
- }
- },
- isFunction: function(n) {
- return "function" === i.type(n)
- },
- isArray: Array.isArray || function(n) {
- return "array" === i.type(n)
- },
- isWindow: function(n) {
- return null != n && n == n.window
- },
- isNumeric: function(n) {
- return !isNaN(parseFloat(n)) && isFinite(n)
- },
- type: function(n) {
- return null == n ? n + "" : "object" == typeof n || "function" == typeof n ? ot[sf.call(n)] || "object" : typeof n
- },
- isPlainObject: function(n) {
- if (!n || "object" !== i.type(n) || n.nodeType || i.isWindow(n)) return !1;
- try {
- if (n.constructor && !it.call(n, "constructor") && !it.call(n.constructor.prototype, "isPrototypeOf")) return !1
- } catch (u) {
- return !1
- }
- for (var r in n);
- return r === t || it.call(n, r)
- },
- isEmptyObject: function(n) {
- for (var t in n) return !1;
- return !0
- },
- error: function(n) {
- throw Error(n);
- },
- parseHTML: function(n, t, u) {
- if (!n || "string" != typeof n) return null;
- "boolean" == typeof t && (u = t, t = !1);
- t = t || r;
- var f = di.exec(n),
- e = !u && [];
- return f ? [t.createElement(f[1])] : (f = i.buildFragment([n], t, e), e && i(e).remove(), i.merge([], f.childNodes))
- },
- parseJSON: function(r) {
- return n.JSON && n.JSON.parse ? n.JSON.parse(r) : null === r ? r : "string" == typeof r && (r = i.trim(r), r && lf.test(r.replace(vf, "@").replace(yf, "]").replace(af, ""))) ? Function("return " + r)() : (i.error("Invalid JSON: " + r), t)
- },
- parseXML: function(r) {
- var u, f;
- if (!r || "string" != typeof r) return null;
- try {
- n.DOMParser ? (f = new DOMParser, u = f.parseFromString(r, "text/xml")) : (u = new ActiveXObject("Microsoft.XMLDOM"), u.async = "false", u.loadXML(r))
- } catch (e) {
- u = t
- }
- return u && u.documentElement && !u.getElementsByTagName("parsererror").length || i.error("Invalid XML: " + r), u
- },
- noop: function() {},
- globalEval: function(t) {
- t && i.trim(t) && (n.execScript || function(t) {
- n.eval.call(n, t)
- })(t)
- },
- camelCase: function(n) {
- return n.replace(pf, "ms-").replace(wf, bf)
- },
- nodeName: function(n, t) {
- return n.nodeName && n.nodeName.toLowerCase() === t.toLowerCase()
- },
- each: function(n, t, i) {
- var u, r = 0,
- f = n.length,
- e = dt(n);
- if (i) {
- if (e) {
- for (; f > r; r++)
- if (u = t.apply(n[r], i), u === !1) break
- } else
- for (r in n)
- if (u = t.apply(n[r], i), u === !1) break
- } else if (e) {
- for (; f > r; r++)
- if (u = t.call(n[r], r, n[r]), u === !1) break
- } else
- for (r in n)
- if (u = t.call(n[r], r, n[r]), u === !1) break;
- return n
- },
- trim: kt && !kt.call(" ") ? function(n) {
- return null == n ? "" : kt.call(n)
- } : function(n) {
- return null == n ? "" : (n + "").replace(hf, "")
- },
- makeArray: function(n, t) {
- var r = t || [];
- return null != n && (dt(Object(n)) ? i.merge(r, "string" == typeof n ? [n] : n) : bt.call(r, n)), r
- },
- inArray: function(n, t, i) {
- var r;
- if (t) {
- if (ki) return ki.call(t, n, i);
- for (r = t.length, i = i ? 0 > i ? Math.max(0, r + i) : i : 0; r > i; i++)
- if (i in t && t[i] === n) return i
- }
- return -1
- },
- merge: function(n, i) {
- var f = i.length,
- u = n.length,
- r = 0;
- if ("number" == typeof f)
- for (; f > r; r++) n[u++] = i[r];
- else
- while (i[r] !== t) n[u++] = i[r++];
- return n.length = u, n
- },
- grep: function(n, t, i) {
- var u, f = [],
- r = 0,
- e = n.length;
- for (i = !!i; e > r; r++) u = !!t(n[r], r), i !== u && f.push(n[r]);
- return f
- },
- map: function(n, t, i) {
- var u, r = 0,
- e = n.length,
- o = dt(n),
- f = [];
- if (o)
- for (; e > r; r++) u = t(n[r], r, i), null != u && (f[f.length] = u);
- else
- for (r in n) u = t(n[r], r, i), null != u && (f[f.length] = u);
- return bi.apply([], f)
- },
- guid: 1,
- proxy: function(n, r) {
- var f, u, e;
- return "string" == typeof r && (e = n[r], r = n, n = e), i.isFunction(n) ? (f = l.call(arguments, 2), u = function() {
- return n.apply(r || this, f.concat(l.call(arguments)))
- }, u.guid = n.guid = n.guid || i.guid++, u) : t
- },
- access: function(n, r, u, f, e, o, s) {
- var h = 0,
- l = n.length,
- c = null == u;
- if ("object" === i.type(u)) {
- e = !0;
- for (h in u) i.access(n, r, h, u[h], !0, o, s)
- } else if (f !== t && (e = !0, i.isFunction(f) || (s = !0), c && (s ? (r.call(n, f), r = null) : (c = r, r = function(n, t, r) {
- return c.call(i(n), r)
- })), r))
- for (; l > h; h++) r(n[h], u, s ? f : f.call(n[h], h, r(n[h], u)));
- return e ? n : c ? r.call(n) : l ? r(n[0], u) : o
- },
- now: function() {
- return (new Date).getTime()
- }
- });
- i.ready.promise = function(t) {
- if (!et)
- if (et = i.Deferred(), "complete" === r.readyState) setTimeout(i.ready);
- else if (r.addEventListener) r.addEventListener("DOMContentLoaded", h, !1), n.addEventListener("load", h, !1);
- else {
- r.attachEvent("onreadystatechange", h);
- n.attachEvent("onload", h);
- var u = !1;
- try {
- u = null == n.frameElement && r.documentElement
- } catch (e) {}
- u && u.doScroll && function f() {
- if (!i.isReady) {
- try {
- u.doScroll("left")
- } catch (n) {
- return setTimeout(f, 50)
- }
- gi();
- i.ready()
- }
- }()
- }
- return et.promise(t)
- };
- i.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(n, t) {
- ot["[object " + t + "]"] = t.toLowerCase()
- });
- wi = i(r);
- gt = {};
- i.Callbacks = function(n) {
- n = "string" == typeof n ? gt[n] || kf(n) : i.extend({}, n);
- var o, f, c, s, e, l, r = [],
- u = !n.once && [],
- a = function(t) {
- for (f = n.memory && t, c = !0, e = l || 0, l = 0, s = r.length, o = !0; r && s > e; e++)
- if (r[e].apply(t[0], t[1]) === !1 && n.stopOnFalse) {
- f = !1;
- break
- }
- o = !1;
- r && (u ? u.length && a(u.shift()) : f ? r = [] : h.disable())
- },
- h = {
- add: function() {
- if (r) {
- var t = r.length;
- (function u(t) {
- i.each(t, function(t, f) {
- var e = i.type(f);
- "function" === e ? n.unique && h.has(f) || r.push(f) : f && f.length && "string" !== e && u(f)
- })
- })(arguments);
- o ? s = r.length : f && (l = t, a(f))
- }
- return this
- },
- remove: function() {
- return r && i.each(arguments, function(n, t) {
- for (var u;
- (u = i.inArray(t, r, u)) > -1;) r.splice(u, 1), o && (s >= u && s--, e >= u && e--)
- }), this
- },
- has: function(n) {
- return n ? i.inArray(n, r) > -1 : !(!r || !r.length)
- },
- empty: function() {
- return r = [], this
- },
- disable: function() {
- return r = u = f = t, this
- },
- disabled: function() {
- return !r
- },
- lock: function() {
- return u = t, f || h.disable(), this
- },
- locked: function() {
- return !u
- },
- fireWith: function(n, t) {
- return t = t || [], t = [n, t.slice ? t.slice() : t], !r || c && !u || (o ? u.push(t) : a(t)), this
- },
- fire: function() {
- return h.fireWith(this, arguments), this
- },
- fired: function() {
- return !!c
- }
- };
- return h
- };
- i.extend({
- Deferred: function(n) {
- var u = [
- ["resolve", "done", i.Callbacks("once memory"), "resolved"],
- ["reject", "fail", i.Callbacks("once memory"), "rejected"],
- ["notify", "progress", i.Callbacks("memory")]
- ],
- f = "pending",
- r = {
- state: function() {
- return f
- },
- always: function() {
- return t.done(arguments).fail(arguments), this
- },
- then: function() {
- var n = arguments;
- return i.Deferred(function(f) {
- i.each(u, function(u, e) {
- var s = e[0],
- o = i.isFunction(n[u]) && n[u];
- t[e[1]](function() {
- var n = o && o.apply(this, arguments);
- n && i.isFunction(n.promise) ? n.promise().done(f.resolve).fail(f.reject).progress(f.notify) : f[s + "With"](this === r ? f.promise() : this, o ? [n] : arguments)
- })
- });
- n = null
- }).promise()
- },
- promise: function(n) {
- return null != n ? i.extend(n, r) : r
- }
- },
- t = {};
- return r.pipe = r.then, i.each(u, function(n, i) {
- var e = i[2],
- o = i[3];
- r[i[1]] = e.add;
- o && e.add(function() {
- f = o
- }, u[1 ^ n][2].disable, u[2][2].lock);
- t[i[0]] = function() {
- return t[i[0] + "With"](this === t ? r : this, arguments), this
- };
- t[i[0] + "With"] = e.fireWith
- }), r.promise(t), n && n.call(t, t), t
- },
- when: function(n) {
- var t = 0,
- u = l.call(arguments),
- r = u.length,
- e = 1 !== r || n && i.isFunction(n.promise) ? r : 0,
- f = 1 === e ? n : i.Deferred(),
- h = function(n, t, i) {
- return function(r) {
- t[n] = this;
- i[n] = arguments.length > 1 ? l.call(arguments) : r;
- i === o ? f.notifyWith(t, i) : --e || f.resolveWith(t, i)
- }
- },
- o, c, s;
- if (r > 1)
- for (o = Array(r), c = Array(r), s = Array(r); r > t; t++) u[t] && i.isFunction(u[t].promise) ? u[t].promise().done(h(t, s, u)).fail(f.reject).progress(h(t, c, o)) : --e;
- return e || f.resolveWith(s, u), f.promise()
- }
- });
- i.support = function() {
- var u, s, e, f, h, c, l, a, y, v, t = r.createElement("div");
- if (t.setAttribute("className", "t"), t.innerHTML = " <link/><table><\/table><a href='/a'>a<\/a><input type='checkbox'/>", s = t.getElementsByTagName("*"), e = t.getElementsByTagName("a")[0], !s || !e || !s.length) return {};
- h = r.createElement("select");
- l = h.appendChild(r.createElement("option"));
- f = t.getElementsByTagName("input")[0];
- e.style.cssText = "top:1px;float:left;opacity:.5";
- u = {
- getSetAttribute: "t" !== t.className,
- leadingWhitespace: 3 === t.firstChild.nodeType,
- tbody: !t.getElementsByTagName("tbody").length,
- htmlSerialize: !!t.getElementsByTagName("link").length,
- style: /top/.test(e.getAttribute("style")),
- hrefNormalized: "/a" === e.getAttribute("href"),
- opacity: /^0.5/.test(e.style.opacity),
- cssFloat: !!e.style.cssFloat,
- checkOn: !!f.value,
- optSelected: l.selected,
- enctype: !!r.createElement("form").enctype,
- html5Clone: "<:nav><\/:nav>" !== r.createElement("nav").cloneNode(!0).outerHTML,
- boxModel: "CSS1Compat" === r.compatMode,
- deleteExpando: !0,
- noCloneEvent: !0,
- inlineBlockNeedsLayout: !1,
- shrinkWrapBlocks: !1,
- reliableMarginRight: !0,
- boxSizingReliable: !0,
- pixelPosition: !1
- };
- f.checked = !0;
- u.noCloneChecked = f.cloneNode(!0).checked;
- h.disabled = !0;
- u.optDisabled = !l.disabled;
- try {
- delete t.test
- } catch (p) {
- u.deleteExpando = !1
- }
- f = r.createElement("input");
- f.setAttribute("value", "");
- u.input = "" === f.getAttribute("value");
- f.value = "t";
- f.setAttribute("type", "radio");
- u.radioValue = "t" === f.value;
- f.setAttribute("checked", "t");
- f.setAttribute("name", "t");
- c = r.createDocumentFragment();
- c.appendChild(f);
- u.appendChecked = f.checked;
- u.checkClone = c.cloneNode(!0).cloneNode(!0).lastChild.checked;
- t.attachEvent && (t.attachEvent("onclick", function() {
- u.noCloneEvent = !1
- }), t.cloneNode(!0).click());
- for (v in {
- submit: !0,
- change: !0,
- focusin: !0
- }) t.setAttribute(a = "on" + v, "t"), u[v + "Bubbles"] = a in n || t.attributes[a].expando === !1;
- return t.style.backgroundClip = "content-box", t.cloneNode(!0).style.backgroundClip = "", u.clearCloneStyle = "content-box" === t.style.backgroundClip, i(function() {
- var e, f, i, h = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
- s = r.getElementsByTagName("body")[0];
- s && (e = r.createElement("div"), e.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", s.appendChild(e).appendChild(t), t.innerHTML = "<table><tr><td><\/td><td>t<\/td><\/tr><\/table>", i = t.getElementsByTagName("td"), i[0].style.cssText = "padding:0;margin:0;border:0;display:none", y = 0 === i[0].offsetHeight, i[0].style.display = "", i[1].style.display = "none", u.reliableHiddenOffsets = y && 0 === i[0].offsetHeight, t.innerHTML = "", t.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", u.boxSizing = 4 === t.offsetWidth, u.doesNotIncludeMarginInBodyOffset = 1 !== s.offsetTop, n.getComputedStyle && (u.pixelPosition = "1%" !== (n.getComputedStyle(t, null) || {}).top, u.boxSizingReliable = "4px" === (n.getComputedStyle(t, null) || {
- width: "4px"
- }).width, f = t.appendChild(r.createElement("div")), f.style.cssText = t.style.cssText = h, f.style.marginRight = f.style.width = "0", t.style.width = "1px", u.reliableMarginRight = !parseFloat((n.getComputedStyle(f, null) || {}).marginRight)), typeof t.style.zoom !== o && (t.innerHTML = "", t.style.cssText = h + "width:1px;padding:1px;display:inline;zoom:1", u.inlineBlockNeedsLayout = 3 === t.offsetWidth, t.style.display = "block", t.innerHTML = "<div><\/div>", t.firstChild.style.width = "5px", u.shrinkWrapBlocks = 3 !== t.offsetWidth, u.inlineBlockNeedsLayout && (s.style.zoom = 1)), s.removeChild(e), e = t = i = f = null)
- }), s = h = c = l = e = f = null, u
- }();
- nr = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/;
- tr = /([A-Z])/g;
- i.extend({
- cache: {},
- expando: "jQuery" + (wt + Math.random()).replace(/\D/g, ""),
- noData: {
- embed: !0,
- object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
- applet: !0
- },
- hasData: function(n) {
- return n = n.nodeType ? i.cache[n[i.expando]] : n[i.expando], !!n && !ni(n)
- },
- data: function(n, t, i) {
- return ir(n, t, i)
- },
- removeData: function(n, t) {
- return rr(n, t)
- },
- _data: function(n, t, i) {
- return ir(n, t, i, !0)
- },
- _removeData: function(n, t) {
- return rr(n, t, !0)
- },
- acceptData: function(n) {
- if (n.nodeType && 1 !== n.nodeType && 9 !== n.nodeType) return !1;
- var t = n.nodeName && i.noData[n.nodeName.toLowerCase()];
- return !t || t !== !0 && n.getAttribute("classid") === t
- }
- });
- i.fn.extend({
- data: function(n, r) {
- var e, f, u = this[0],
- o = 0,
- s = null;
- if (n === t) {
- if (this.length && (s = i.data(u), 1 === u.nodeType && !i._data(u, "parsedAttrs"))) {
- for (e = u.attributes; e.length > o; o++) f = e[o].name, f.indexOf("data-") || (f = i.camelCase(f.slice(5)), ur(u, f, s[f]));
- i._data(u, "parsedAttrs", !0)
- }
- return s
- }
- return "object" == typeof n ? this.each(function() {
- i.data(this, n)
- }) : i.access(this, function(r) {
- return r === t ? u ? ur(u, n, i.data(u, n)) : null : (this.each(function() {
- i.data(this, n, r)
- }), t)
- }, null, r, arguments.length > 1, null, !0)
- },
- removeData: function(n) {
- return this.each(function() {
- i.removeData(this, n)
- })
- }
- });
- i.extend({
- queue: function(n, r, u) {
- var f;
- return n ? (r = (r || "fx") + "queue", f = i._data(n, r), u && (!f || i.isArray(u) ? f = i._data(n, r, i.makeArray(u)) : f.push(u)), f || []) : t
- },
- dequeue: function(n, t) {
- t = t || "fx";
- var f = i.queue(n, t),
- e = f.length,
- r = f.shift(),
- u = i._queueHooks(n, t),
- o = function() {
- i.dequeue(n, t)
- };
- "inprogress" === r && (r = f.shift(), e--);
- u.cur = r;
- r && ("fx" === t && f.unshift("inprogress"), delete u.stop, r.call(n, o, u));
- !e && u && u.empty.fire()
- },
- _queueHooks: function(n, t) {
- var r = t + "queueHooks";
- return i._data(n, r) || i._data(n, r, {
- empty: i.Callbacks("once memory").add(function() {
- i._removeData(n, t + "queue");
- i._removeData(n, r)
- })
- })
- }
- });
- i.fn.extend({
- queue: function(n, r) {
- var u = 2;
- return "string" != typeof n && (r = n, n = "fx", u--), u > arguments.length ? i.queue(this[0], n) : r === t ? this : this.each(function() {
- var t = i.queue(this, n, r);
- i._queueHooks(this, n);
- "fx" === n && "inprogress" !== t[0] && i.dequeue(this, n)
- })
- },
- dequeue: function(n) {
- return this.each(function() {
- i.dequeue(this, n)
- })
- },
- delay: function(n, t) {
- return n = i.fx ? i.fx.speeds[n] || n : n, t = t || "fx", this.queue(t, function(t, i) {
- var r = setTimeout(t, n);
- i.stop = function() {
- clearTimeout(r)
- }
- })
- },
- clearQueue: function(n) {
- return this.queue(n || "fx", [])
- },
- promise: function(n, r) {
- var u, e = 1,
- o = i.Deferred(),
- f = this,
- s = this.length,
- h = function() {
- --e || o.resolveWith(f, [f])
- };
- for ("string" != typeof n && (r = n, n = t), n = n || "fx"; s--;) u = i._data(f[s], n + "queueHooks"), u && u.empty && (e++, u.empty.add(h));
- return h(), o.promise(r)
- }
- });
- var k, fr, ti = /[\t\r\n]/g,
- df = /\r/g,
- gf = /^(?:input|select|textarea|button|object)$/i,
- ne = /^(?:a|area)$/i,
- er = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
- ii = /^(?:checked|selected)$/i,
- a = i.support.getSetAttribute,
- ri = i.support.input;
- i.fn.extend({
- attr: function(n, t) {
- return i.access(this, i.attr, n, t, arguments.length > 1)
- },
- removeAttr: function(n) {
- return this.each(function() {
- i.removeAttr(this, n)
- })
- },
- prop: function(n, t) {
- return i.access(this, i.prop, n, t, arguments.length > 1)
- },
- removeProp: function(n) {
- return n = i.propFix[n] || n, this.each(function() {
- try {
- this[n] = t;
- delete this[n]
- } catch (i) {}
- })
- },
- addClass: function(n) {
- var e, t, r, u, o, f = 0,
- h = this.length,
- c = "string" == typeof n && n;
- if (i.isFunction(n)) return this.each(function(t) {
- i(this).addClass(n.call(this, t, this.className))
- });
- if (c)
- for (e = (n || "").match(s) || []; h > f; f++)
- if (t = this[f], r = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(ti, " ") : " ")) {
- for (o = 0; u = e[o++];) 0 > r.indexOf(" " + u + " ") && (r += u + " ");
- t.className = i.trim(r)
- }
- return this
- },
- removeClass: function(n) {
- var e, t, r, u, o, f = 0,
- h = this.length,
- c = 0 === arguments.length || "string" == typeof n && n;
- if (i.isFunction(n)) return this.each(function(t) {
- i(this).removeClass(n.call(this, t, this.className))
- });
- if (c)
- for (e = (n || "").match(s) || []; h > f; f++)
- if (t = this[f], r = 1 === t.nodeType && (t.className ? (" " + t.className + " ").replace(ti, " ") : "")) {
- for (o = 0; u = e[o++];)
- while (r.indexOf(" " + u + " ") >= 0) r = r.replace(" " + u + " ", " ");
- t.className = n ? i.trim(r) : ""
- }
- return this
- },
- toggleClass: function(n, t) {
- var r = typeof n,
- u = "boolean" == typeof t;
- return i.isFunction(n) ? this.each(function(r) {
- i(this).toggleClass(n.call(this, r, this.className, t), t)
- }) : this.each(function() {
- if ("string" === r)
- for (var f, c = 0, h = i(this), e = t, l = n.match(s) || []; f = l[c++];) e = u ? e : !h.hasClass(f), h[e ? "addClass" : "removeClass"](f);
- else(r === o || "boolean" === r) && (this.className && i._data(this, "__className__", this.className), this.className = this.className || n === !1 ? "" : i._data(this, "__className__") || "")
- })
- },
- hasClass: function(n) {
- for (var i = " " + n + " ", t = 0, r = this.length; r > t; t++)
- if (1 === this[t].nodeType && (" " + this[t].className + " ").replace(ti, " ").indexOf(i) >= 0) return !0;
- return !1
- },
- val: function(n) {
- var u, r, e, f = this[0];
- return arguments.length ? (e = i.isFunction(n), this.each(function(u) {
- var f, o = i(this);
- 1 === this.nodeType && (f = e ? n.call(this, u, o.val()) : n, null == f ? f = "" : "number" == typeof f ? f += "" : i.isArray(f) && (f = i.map(f, function(n) {
- return null == n ? "" : n + ""
- })), r = i.valHooks[this.type] || i.valHooks[this.nodeName.toLowerCase()], r && "set" in r && r.set(this, f, "value") !== t || (this.value = f))
- })) : f ? (r = i.valHooks[f.type] || i.valHooks[f.nodeName.toLowerCase()], r && "get" in r && (u = r.get(f, "value")) !== t ? u : (u = f.value, "string" == typeof u ? u.replace(df, "") : null == u ? "" : u)) : void 0
- }
- });
- i.extend({
- valHooks: {
- option: {
- get: function(n) {
- var t = n.attributes.value;
- return !t || t.specified ? n.value : n.text
- }
- },
- select: {
- get: function(n) {
- for (var e, t, o = n.options, r = n.selectedIndex, u = "select-one" === n.type || 0 > r, s = u ? null : [], h = u ? r + 1 : o.length, f = 0 > r ? h : u ? r : 0; h > f; f++)
- if (t = o[f], !(!t.selected && f !== r || (i.support.optDisabled ? t.disabled : null !== t.getAttribute("disabled")) || t.parentNode.disabled && i.nodeName(t.parentNode, "optgroup"))) {
- if (e = i(t).val(), u) return e;
- s.push(e)
- }
- return s
- },
- set: function(n, t) {
- var r = i.makeArray(t);
- return i(n).find("option").each(function() {
- this.selected = i.inArray(i(this).val(), r) >= 0
- }), r.length || (n.selectedIndex = -1), r
- }
- }
- },
- attr: function(n, r, u) {
- var f, s, e, h = n.nodeType;
- if (n && 3 !== h && 8 !== h && 2 !== h) return typeof n.getAttribute === o ? i.prop(n, r, u) : (s = 1 !== h || !i.isXMLDoc(n), s && (r = r.toLowerCase(), f = i.attrHooks[r] || (er.test(r) ? fr : k)), u === t ? f && s && "get" in f && null !== (e = f.get(n, r)) ? e : (typeof n.getAttribute !== o && (e = n.getAttribute(r)), null == e ? t : e) : null !== u ? f && s && "set" in f && (e = f.set(n, u, r)) !== t ? e : (n.setAttribute(r, u + ""), u) : (i.removeAttr(n, r), t))
- },
- removeAttr: function(n, t) {
- var r, u, e = 0,
- f = t && t.match(s);
- if (f && 1 === n.nodeType)
- while (r = f[e++]) u = i.propFix[r] || r, er.test(r) ? !a && ii.test(r) ? n[i.camelCase("default-" + r)] = n[u] = !1 : n[u] = !1 : i.attr(n, r, ""), n.removeAttribute(a ? r : u)
- },
- attrHooks: {
- type: {
- set: function(n, t) {
- if (!i.support.radioValue && "radio" === t && i.nodeName(n, "input")) {
- var r = n.value;
- return n.setAttribute("type", t), r && (n.value = r), t
- }
- }
- }
- },
- propFix: {
- tabindex: "tabIndex",
- readonly: "readOnly",
- "for": "htmlFor",
- "class": "className",
- maxlength: "maxLength",
- cellspacing: "cellSpacing",
- cellpadding: "cellPadding",
- rowspan: "rowSpan",
- colspan: "colSpan",
- usemap: "useMap",
- frameborder: "frameBorder",
- contenteditable: "contentEditable"
- },
- prop: function(n, r, u) {
- var e, f, s, o = n.nodeType;
- if (n && 3 !== o && 8 !== o && 2 !== o) return s = 1 !== o || !i.isXMLDoc(n), s && (r = i.propFix[r] || r, f = i.propHooks[r]), u !== t ? f && "set" in f && (e = f.set(n, u, r)) !== t ? e : n[r] = u : f && "get" in f && null !== (e = f.get(n, r)) ? e : n[r]
- },
- propHooks: {
- tabIndex: {
- get: function(n) {
- var i = n.getAttributeNode("tabindex");
- return i && i.specified ? parseInt(i.value, 10) : gf.test(n.nodeName) || ne.test(n.nodeName) && n.href ? 0 : t
- }
- }
- }
- });
- fr = {
- get: function(n, r) {
- var u = i.prop(n, r),
- f = "boolean" == typeof u && n.getAttribute(r),
- e = "boolean" == typeof u ? ri && a ? null != f : ii.test(r) ? n[i.camelCase("default-" + r)] : !!f : n.getAttributeNode(r);
- return e && e.value !== !1 ? r.toLowerCase() : t
- },
- set: function(n, t, r) {
- return t === !1 ? i.removeAttr(n, r) : ri && a || !ii.test(r) ? n.setAttribute(!a && i.propFix[r] || r, r) : n[i.camelCase("default-" + r)] = n[r] = !0, r
- }
- };
- ri && a || (i.attrHooks.value = {
- get: function(n, r) {
- var u = n.getAttributeNode(r);
- return i.nodeName(n, "input") ? n.defaultValue : u && u.specified ? u.value : t
- },
- set: function(n, r, u) {
- return i.nodeName(n, "input") ? (n.defaultValue = r, t) : k && k.set(n, r, u)
- }
- });
- a || (k = i.valHooks.button = {
- get: function(n, i) {
- var r = n.getAttributeNode(i);
- return r && ("id" === i || "name" === i || "coords" === i ? "" !== r.value : r.specified) ? r.value : t
- },
- set: function(n, i, r) {
- var u = n.getAttributeNode(r);
- return u || n.setAttributeNode(u = n.ownerDocument.createAttribute(r)), u.value = i += "", "value" === r || i === n.getAttribute(r) ? i : t
- }
- }, i.attrHooks.contenteditable = {
- get: k.get,
- set: function(n, t, i) {
- k.set(n, "" === t ? !1 : t, i)
- }
- }, i.each(["width", "height"], function(n, r) {
- i.attrHooks[r] = i.extend(i.attrHooks[r], {
- set: function(n, i) {
- return "" === i ? (n.setAttribute(r, "auto"), i) : t
- }
- })
- }));
- i.support.hrefNormalized || (i.each(["href", "src", "width", "height"], function(n, r) {
- i.attrHooks[r] = i.extend(i.attrHooks[r], {
- get: function(n) {
- var i = n.getAttribute(r, 2);
- return null == i ? t : i
- }
- })
- }), i.each(["href", "src"], function(n, t) {
- i.propHooks[t] = {
- get: function(n) {
- return n.getAttribute(t, 4)
- }
- }
- }));
- i.support.style || (i.attrHooks.style = {
- get: function(n) {
- return n.style.cssText || t
- },
- set: function(n, t) {
- return n.style.cssText = t + ""
- }
- });
- i.support.optSelected || (i.propHooks.selected = i.extend(i.propHooks.selected, {
- get: function(n) {
- var t = n.parentNode;
- return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
- }
- }));
- i.support.enctype || (i.propFix.enctype = "encoding");
- i.support.checkOn || i.each(["radio", "checkbox"], function() {
- i.valHooks[this] = {
- get: function(n) {
- return null === n.getAttribute("value") ? "on" : n.value
- }
- }
- });
- i.each(["radio", "checkbox"], function() {
- i.valHooks[this] = i.extend(i.valHooks[this], {
- set: function(n, r) {
- return i.isArray(r) ? n.checked = i.inArray(i(n).val(), r) >= 0 : t
- }
- })
- });
- var ui = /^(?:input|select|textarea)$/i,
- te = /^key/,
- ie = /^(?:mouse|contextmenu)|click/,
- or = /^(?:focusinfocus|focusoutblur)$/,
- sr = /^([^.]*)(?:\.(.+)|)$/;
- i.event = {
- global: {},
- add: function(n, r, u, f, e) {
- var b, p, k, w, c, l, a, v, h, d, g, y = i._data(n);
- if (y) {
- for (u.handler && (w = u, u = w.handler, e = w.selector), u.guid || (u.guid = i.guid++), (p = y.events) || (p = y.events = {}), (l = y.handle) || (l = y.handle = function(n) {
- return typeof i === o || n && i.event.triggered === n.type ? t : i.event.dispatch.apply(l.elem, arguments)
- }, l.elem = n), r = (r || "").match(s) || [""], k = r.length; k--;) b = sr.exec(r[k]) || [], h = g = b[1], d = (b[2] || "").split(".").sort(), c = i.event.special[h] || {}, h = (e ? c.delegateType : c.bindType) || h, c = i.event.special[h] || {}, a = i.extend({
- type: h,
- origType: g,
- data: f,
- handler: u,
- guid: u.guid,
- selector: e,
- needsContext: e && i.expr.match.needsContext.test(e),
- namespace: d.join(".")
- }, w), (v = p[h]) || (v = p[h] = [], v.delegateCount = 0, c.setup && c.setup.call(n, f, d, l) !== !1 || (n.addEventListener ? n.addEventListener(h, l, !1) : n.attachEvent && n.attachEvent("on" + h, l))), c.add && (c.add.call(n, a), a.handler.guid || (a.handler.guid = u.guid)), e ? v.splice(v.delegateCount++, 0, a) : v.push(a), i.event.global[h] = !0;
- n = null
- }
- },
- remove: function(n, t, r, u, f) {
- var y, o, h, b, p, a, c, l, e, w, k, v = i.hasData(n) && i._data(n);
- if (v && (a = v.events)) {
- for (t = (t || "").match(s) || [""], p = t.length; p--;)
- if (h = sr.exec(t[p]) || [], e = k = h[1], w = (h[2] || "").split(".").sort(), e) {
- for (c = i.event.special[e] || {}, e = (u ? c.delegateType : c.bindType) || e, l = a[e] || [], h = h[2] && RegExp("(^|\\.)" + w.join("\\.(?:.*\\.|)") + "(\\.|$)"), b = y = l.length; y--;) o = l[y], !f && k !== o.origType || r && r.guid !== o.guid || h && !h.test(o.namespace) || u && u !== o.selector && ("**" !== u || !o.selector) || (l.splice(y, 1), o.selector && l.delegateCount--, c.remove && c.remove.call(n, o));
- b && !l.length && (c.teardown && c.teardown.call(n, w, v.handle) !== !1 || i.removeEvent(n, e, v.handle), delete a[e])
- } else
- for (e in a) i.event.remove(n, e + t[p], r, u, !0);
- i.isEmptyObject(a) && (delete v.handle, i._removeData(n, "events"))
- }
- },
- trigger: function(u, f, e, o) {
- var a, v, h, p, l, c, w, b = [e || r],
- s = it.call(u, "type") ? u.type : u,
- y = it.call(u, "namespace") ? u.namespace.split(".") : [];
- if (h = c = e = e || r, 3 !== e.nodeType && 8 !== e.nodeType && !or.test(s + i.event.triggered) && (s.indexOf(".") >= 0 && (y = s.split("."), s = y.shift(), y.sort()), v = 0 > s.indexOf(":") && "on" + s, u = u[i.expando] ? u : new i.Event(s, "object" == typeof u && u), u.isTrigger = !0, u.namespace = y.join("."), u.namespace_re = u.namespace ? RegExp("(^|\\.)" + y.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, u.result = t, u.target || (u.target = e), f = null == f ? [u] : i.makeArray(f, [u]), l = i.event.special[s] || {}, o || !l.trigger || l.trigger.apply(e, f) !== !1)) {
- if (!o && !l.noBubble && !i.isWindow(e)) {
- for (p = l.delegateType || s, or.test(p + s) || (h = h.parentNode); h; h = h.parentNode) b.push(h), c = h;
- c === (e.ownerDocument || r) && b.push(c.defaultView || c.parentWindow || n)
- }
- for (w = 0;
- (h = b[w++]) && !u.isPropagationStopped();) u.type = w > 1 ? p : l.bindType || s, a = (i._data(h, "events") || {})[u.type] && i._data(h, "handle"), a && a.apply(h, f), a = v && h[v], a && i.acceptData(h) && a.apply && a.apply(h, f) === !1 && u.preventDefault();
- if (u.type = s, !(o || u.isDefaultPrevented() || l._default && l._default.apply(e.ownerDocument, f) !== !1 || "click" === s && i.nodeName(e, "a") || !i.acceptData(e) || !v || !e[s] || i.isWindow(e))) {
- c = e[v];
- c && (e[v] = null);
- i.event.triggered = s;
- try {
- e[s]()
- } catch (k) {}
- i.event.triggered = t;
- c && (e[v] = c)
- }
- return u.result
- }
- },
- dispatch: function(n) {
- n = i.event.fix(n);
- var o, e, r, u, s, h = [],
- c = l.call(arguments),
- a = (i._data(this, "events") || {})[n.type] || [],
- f = i.event.special[n.type] || {};
- if (c[0] = n, n.delegateTarget = this, !f.preDispatch || f.preDispatch.call(this, n) !== !1) {
- for (h = i.event.handlers.call(this, n, a), o = 0;
- (u = h[o++]) && !n.isPropagationStopped();)
- for (n.currentTarget = u.elem, s = 0;
- (r = u.handlers[s++]) && !n.isImmediatePropagationStopped();)(!n.namespace_re || n.namespace_re.test(r.namespace)) && (n.handleObj = r, n.data = r.data, e = ((i.event.special[r.origType] || {}).handle || r.handler).apply(u.elem, c), e !== t && (n.result = e) === !1 && (n.preventDefault(), n.stopPropagation()));
- return f.postDispatch && f.postDispatch.call(this, n), n.result
- }
- },
- handlers: function(n, r) {
- var e, o, f, s, c = [],
- h = r.delegateCount,
- u = n.target;
- if (h && u.nodeType && (!n.button || "click" !== n.type))
- for (; u != this; u = u.parentNode || this)
- if (1 === u.nodeType && (u.disabled !== !0 || "click" !== n.type)) {
- for (f = [], s = 0; h > s; s++) o = r[s], e = o.selector + " ", f[e] === t && (f[e] = o.needsContext ? i(e, this).index(u) >= 0 : i.find(e, this, null, [u]).length), f[e] && f.push(o);
- f.length && c.push({
- elem: u,
- handlers: f
- })
- }
- return r.length > h && c.push({
- elem: this,
- handlers: r.slice(h)
- }), c
- },
- fix: function(n) {
- if (n[i.expando]) return n;
- var e, o, s, u = n.type,
- f = n,
- t = this.fixHooks[u];
- for (t || (this.fixHooks[u] = t = ie.test(u) ? this.mouseHooks : te.test(u) ? this.keyHooks : {}), s = t.props ? this.props.concat(t.props) : this.props, n = new i.Event(f), e = s.length; e--;) o = s[e], n[o] = f[o];
- return n.target || (n.target = f.srcElement || r), 3 === n.target.nodeType && (n.target = n.target.parentNode), n.metaKey = !!n.metaKey, t.filter ? t.filter(n, f) : n
- },
- props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
- fixHooks: {},
- keyHooks: {
- props: "char charCode key keyCode".split(" "),
- filter: function(n, t) {
- return null == n.which && (n.which = null != t.charCode ? t.charCode : t.keyCode), n
- }
- },
- mouseHooks: {
- props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
- filter: function(n, i) {
- var u, o, f, e = i.button,
- s = i.fromElement;
- return null == n.pageX && null != i.clientX && (o = n.target.ownerDocument || r, f = o.documentElement, u = o.body, n.pageX = i.clientX + (f && f.scrollLeft || u && u.scrollLeft || 0) - (f && f.clientLeft || u && u.clientLeft || 0), n.pageY = i.clientY + (f && f.scrollTop || u && u.scrollTop || 0) - (f && f.clientTop || u && u.clientTop || 0)), !n.relatedTarget && s && (n.relatedTarget = s === n.target ? i.toElement : s), n.which || e === t || (n.which = 1 & e ? 1 : 2 & e ? 3 : 4 & e ? 2 : 0), n
- }
- },
- special: {
- load: {
- noBubble: !0
- },
- click: {
- trigger: function() {
- return i.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : t
- }
- },
- focus: {
- trigger: function() {
- if (this !== r.activeElement && this.focus) try {
- return this.focus(), !1
- } catch (n) {}
- },
- delegateType: "focusin"
- },
- blur: {
- trigger: function() {
- return this === r.activeElement && this.blur ? (this.blur(), !1) : t
- },
- delegateType: "focusout"
- },
- beforeunload: {
- postDispatch: function(n) {
- n.result !== t && (n.originalEvent.returnValue = n.result)
- }
- }
- },
- simulate: function(n, t, r, u) {
- var f = i.extend(new i.Event, r, {
- type: n,
- isSimulated: !0,
- originalEvent: {}
- });
- u ? i.event.trigger(f, null, t) : i.event.dispatch.call(t, f);
- f.isDefaultPrevented() && r.preventDefault()
- }
- };
- i.removeEvent = r.removeEventListener ? function(n, t, i) {
- n.removeEventListener && n.removeEventListener(t, i, !1)
- } : function(n, t, i) {
- var r = "on" + t;
- n.detachEvent && (typeof n[r] === o && (n[r] = null), n.detachEvent(r, i))
- };
- i.Event = function(n, r) {
- return this instanceof i.Event ? (n && n.type ? (this.originalEvent = n, this.type = n.type, this.isDefaultPrevented = n.defaultPrevented || n.returnValue === !1 || n.getPreventDefault && n.getPreventDefault() ? ht : d) : this.type = n, r && i.extend(this, r), this.timeStamp = n && n.timeStamp || i.now(), this[i.expando] = !0, t) : new i.Event(n, r)
- };
- i.Event.prototype = {
- isDefaultPrevented: d,
- isPropagationStopped: d,
- isImmediatePropagationStopped: d,
- preventDefault: function() {
- var n = this.originalEvent;
- this.isDefaultPrevented = ht;
- n && (n.preventDefault ? n.preventDefault() : n.returnValue = !1)
- },
- stopPropagation: function() {
- var n = this.originalEvent;
- this.isPropagationStopped = ht;
- n && (n.stopPropagation && n.stopPropagation(), n.cancelBubble = !0)
- },
- stopImmediatePropagation: function() {
- this.isImmediatePropagationStopped = ht;
- this.stopPropagation()
- }
- };
- i.each({
- mouseenter: "mouseover",
- mouseleave: "mouseout"
- }, function(n, t) {
- i.event.special[n] = {
- delegateType: t,
- bindType: t,
- handle: function(n) {
- var u, f = this,
- r = n.relatedTarget,
- e = n.handleObj;
- return (!r || r !== f && !i.contains(f, r)) && (n.type = e.origType, u = e.handler.apply(this, arguments), n.type = t), u
- }
- }
- });
- i.support.submitBubbles || (i.event.special.submit = {
- setup: function() {
- return i.nodeName(this, "form") ? !1 : (i.event.add(this, "click._submit keypress._submit", function(n) {
- var u = n.target,
- r = i.nodeName(u, "input") || i.nodeName(u, "button") ? u.form : t;
- r && !i._data(r, "submitBubbles") && (i.event.add(r, "submit._submit", function(n) {
- n._submit_bubble = !0
- }), i._data(r, "submitBubbles", !0))
- }), t)
- },
- postDispatch: function(n) {
- n._submit_bubble && (delete n._submit_bubble, this.parentNode && !n.isTrigger && i.event.simulate("submit", this.parentNode, n, !0))
- },
- teardown: function() {
- return i.nodeName(this, "form") ? !1 : (i.event.remove(this, "._submit"), t)
- }
- });
- i.support.changeBubbles || (i.event.special.change = {
- setup: function() {
- return ui.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (i.event.add(this, "propertychange._change", function(n) {
- "checked" === n.originalEvent.propertyName && (this._just_changed = !0)
- }), i.event.add(this, "click._change", function(n) {
- this._just_changed && !n.isTrigger && (this._just_changed = !1);
- i.event.simulate("change", this, n, !0)
- })), !1) : (i.event.add(this, "beforeactivate._change", function(n) {
- var t = n.target;
- ui.test(t.nodeName) && !i._data(t, "changeBubbles") && (i.event.add(t, "change._change", function(n) {
- !this.parentNode || n.isSimulated || n.isTrigger || i.event.simulate("change", this.parentNode, n, !0)
- }), i._data(t, "changeBubbles", !0))
- }), t)
- },
- handle: function(n) {
- var i = n.target;
- return this !== i || n.isSimulated || n.isTrigger || "radio" !== i.type && "checkbox" !== i.type ? n.handleObj.handler.apply(this, arguments) : t
- },
- teardown: function() {
- return i.event.remove(this, "._change"), !ui.test(this.nodeName)
- }
- });
- i.support.focusinBubbles || i.each({
- focus: "focusin",
- blur: "focusout"
- }, function(n, t) {
- var u = 0,
- f = function(n) {
- i.event.simulate(t, n.target, i.event.fix(n), !0)
- };
- i.event.special[t] = {
- setup: function() {
- 0 == u++ && r.addEventListener(n, f, !0)
- },
- teardown: function() {
- 0 == --u && r.removeEventListener(n, f, !0)
- }
- }
- });
- i.fn.extend({
- on: function(n, r, u, f, e) {
- var s, o;
- if ("object" == typeof n) {
- "string" != typeof r && (u = u || r, r = t);
- for (s in n) this.on(s, r, u, n[s], e);
- return this
- }
- if (null == u && null == f ? (f = r, u = r = t) : null == f && ("string" == typeof r ? (f = u, u = t) : (f = u, u = r, r = t)), f === !1) f = d;
- else if (!f) return this;
- return 1 === e && (o = f, f = function(n) {
- return i().off(n), o.apply(this, arguments)
- }, f.guid = o.guid || (o.guid = i.guid++)), this.each(function() {
- i.event.add(this, n, f, u, r)
- })
- },
- one: function(n, t, i, r) {
- return this.on(n, t, i, r, 1)
- },
- off: function(n, r, u) {
- var f, e;
- if (n && n.preventDefault && n.handleObj) return f = n.handleObj, i(n.delegateTarget).off(f.namespace ? f.origType + "." + f.namespace : f.origType, f.selector, f.handler), this;
- if ("object" == typeof n) {
- for (e in n) this.off(e, r, n[e]);
- return this
- }
- return (r === !1 || "function" == typeof r) && (u = r, r = t), u === !1 && (u = d), this.each(function() {
- i.event.remove(this, n, u, r)
- })
- },
- bind: function(n, t, i) {
- return this.on(n, null, t, i)
- },
- unbind: function(n, t) {
- return this.off(n, null, t)
- },
- delegate: function(n, t, i, r) {
- return this.on(t, n, i, r)
- },
- undelegate: function(n, t, i) {
- return 1 === arguments.length ? this.off(n, "**") : this.off(t, n || "**", i)
- },
- trigger: function(n, t) {
- return this.each(function() {
- i.event.trigger(n, t, this)
- })
- },
- triggerHandler: function(n, r) {
- var u = this[0];
- return u ? i.event.trigger(n, r, u, !0) : t
- }
- }),
- function(n, t) {
- function ti(n) {
- return tr.test(n + "")
- }
- function ii() {
- var n, t = [];
- return n = function(i, u) {
- return t.push(i += " ") > r.cacheLength && delete n[t.shift()], n[i] = u
- }
- }
- function l(n) {
- return n[f] = !0, n
- }
- function b(n) {
- var t = s.createElement("div");
- try {
- return n(t)
- } catch (i) {
- return !1
- } finally {
- t = null
- }
- }
- function u(n, t, i, r) {
- var y, u, e, l, p, v, w, h, d, b;
- if ((t ? t.ownerDocument || t : k) !== s && it(t), t = t || s, i = i || [], !n || "string" != typeof n) return i;
- if (1 !== (l = t.nodeType) && 9 !== l) return [];
- if (!c && !r) {
- if (y = ir.exec(n))
- if (e = y[1]) {
- if (9 === l) {
- if (u = t.getElementById(e), !u || !u.parentNode) return i;
- if (u.id === e) return i.push(u), i
- } else if (t.ownerDocument && (u = t.ownerDocument.getElementById(e)) && et(t, u) && u.id === e) return i.push(u), i
- } else {
- if (y[2]) return ut.apply(i, ft.call(t.getElementsByTagName(n), 0)), i;
- if ((e = y[3]) && o.getByClassName && t.getElementsByClassName) return ut.apply(i, ft.call(t.getElementsByClassName(e), 0)), i
- }
- if (o.qsa && !a.test(n)) {
- if (w = !0, h = f, d = t, b = 9 === l && n, 1 === l && "object" !== t.nodeName.toLowerCase()) {
- for (v = yt(n), (w = t.getAttribute("id")) ? h = w.replace(fr, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", p = v.length; p--;) v[p] = h + pt(v[p]);
- d = ni.test(n) && t.parentNode || t;
- b = v.join(",")
- }
- if (b) try {
- return ut.apply(i, ft.call(d.querySelectorAll(b), 0)), i
- } catch (g) {} finally {
- w || t.removeAttribute("id")
- }
- }
- }
- return lr(n.replace(at, "$1"), t, i, r)
- }
- function yi(n, t) {
- var i = t && n,
- r = i && (~t.sourceIndex || li) - (~n.sourceIndex || li);
- if (r) return r;
- if (i)
- while (i = i.nextSibling)
- if (i === t) return -1;
- return n ? 1 : -1
- }
- function or(n) {
- return function(t) {
- var i = t.nodeName.toLowerCase();
- return "input" === i && t.type === n
- }
- }
- function sr(n) {
- return function(t) {
- var i = t.nodeName.toLowerCase();
- return ("input" === i || "button" === i) && t.type === n
- }
- }
- function g(n) {
- return l(function(t) {
- return t = +t, l(function(i, r) {
- for (var u, f = n([], i.length, t), e = f.length; e--;) i[u = f[e]] && (i[u] = !(r[u] = i[u]))
- })
- })
- }
- function yt(n, t) {
- var e, f, s, o, i, h, c, l = hi[n + " "];
- if (l) return t ? 0 : l.slice(0);
- for (i = n, h = [], c = r.preFilter; i;) {
- (!e || (f = ki.exec(i))) && (f && (i = i.slice(f[0].length) || i), h.push(s = []));
- e = !1;
- (f = di.exec(i)) && (e = f.shift(), s.push({
- value: e,
- type: f[0].replace(at, " ")
- }), i = i.slice(e.length));
- for (o in r.filter)(f = vt[o].exec(i)) && (!c[o] || (f = c[o](f))) && (e = f.shift(), s.push({
- value: e,
- type: o,
- matches: f
- }), i = i.slice(e.length));
- if (!e) break
- }
- return t ? i.length : i ? u.error(n) : hi(n, h).slice(0)
- }
- function pt(n) {
- for (var t = 0, r = n.length, i = ""; r > t; t++) i += n[t].value;
- return i
- }
- function ri(n, t, i) {
- var r = t.dir,
- u = i && "parentNode" === r,
- e = wi++;
- return t.first ? function(t, i, f) {
- while (t = t[r])
- if (1 === t.nodeType || u) return n(t, i, f)
- } : function(t, i, o) {
- var h, s, c, l = v + " " + e;
- if (o) {
- while (t = t[r])
- if ((1 === t.nodeType || u) && n(t, i, o)) return !0
- } else
- while (t = t[r])
- if (1 === t.nodeType || u)
- if (c = t[f] || (t[f] = {}), (s = c[r]) && s[0] === l) {
- if ((h = s[1]) === !0 || h === ot) return h === !0
- } else if (s = c[r] = [l], s[1] = n(t, i, o) || ot, s[1] === !0) return !0
- }
- }
- function ui(n) {
- return n.length > 1 ? function(t, i, r) {
- for (var u = n.length; u--;)
- if (!n[u](t, i, r)) return !1;
- return !0
- } : n[0]
- }
- function wt(n, t, i, r, u) {
- for (var e, o = [], f = 0, s = n.length, h = null != t; s > f; f++)(e = n[f]) && (!i || i(e, r, u)) && (o.push(e), h && t.push(f));
- return o
- }
- function fi(n, t, i, r, u, e) {
- return r && !r[f] && (r = fi(r)), u && !u[f] && (u = fi(u, e)), l(function(f, e, o, s) {
- var l, c, a, p = [],
- y = [],
- w = e.length,
- b = f || cr(t || "*", o.nodeType ? [o] : o, []),
- v = !n || !f && t ? b : wt(b, p, n, o, s),
- h = i ? u || (f ? n : w || r) ? [] : e : v;
- if (i && i(v, h, o, s), r)
- for (l = wt(h, y), r(l, [], o, s), c = l.length; c--;)(a = l[c]) && (h[y[c]] = !(v[y[c]] = a));
- if (f) {
- if (u || n) {
- if (u) {
- for (l = [], c = h.length; c--;)(a = h[c]) && l.push(v[c] = a);
- u(null, h = [], l, s)
- }
- for (c = h.length; c--;)(a = h[c]) && (l = u ? dt.call(f, a) : p[c]) > -1 && (f[l] = !(e[l] = a))
- }
- } else h = wt(h === e ? h.splice(w, h.length) : h), u ? u(null, e, h, s) : ut.apply(e, h)
- })
- }
- function ei(n) {
- for (var s, u, i, o = n.length, h = r.relative[n[0].type], c = h || r.relative[" "], t = h ? 1 : 0, l = ri(function(n) {
- return n === s
- }, c, !0), a = ri(function(n) {
- return dt.call(s, n) > -1
- }, c, !0), e = [function(n, t, i) {
- return !h && (i || t !== ht) || ((s = t).nodeType ? l(n, t, i) : a(n, t, i))
- }]; o > t; t++)
- if (u = r.relative[n[t].type]) e = [ri(ui(e), u)];
- else {
- if (u = r.filter[n[t].type].apply(null, n[t].matches), u[f]) {
- for (i = ++t; o > i; i++)
- if (r.relative[n[i].type]) break;
- return fi(t > 1 && ui(e), t > 1 && pt(n.slice(0, t - 1)).replace(at, "$1"), u, i > t && ei(n.slice(t, i)), o > i && ei(n = n.slice(i)), o > i && pt(n))
- }
- e.push(u)
- }
- return ui(e)
- }
- function hr(n, t) {
- var f = 0,
- i = t.length > 0,
- e = n.length > 0,
- o = function(o, h, c, l, a) {
- var p, d, b, w = [],
- k = 0,
- y = "0",
- g = o && [],
- nt = null != a,
- tt = ht,
- rt = o || e && r.find.TAG("*", a && h.parentNode || h),
- it = v += null == tt ? 1 : Math.random() || .1;
- for (nt && (ht = h !== s && h, ot = f); null != (p = rt[y]); y++) {
- if (e && p) {
- for (d = 0; b = n[d++];)
- if (b(p, h, c)) {
- l.push(p);
- break
- }
- nt && (v = it, ot = ++f)
- }
- i && ((p = !b && p) && k--, o && g.push(p))
- }
- if (k += y, i && y !== k) {
- for (d = 0; b = t[d++];) b(g, w, h, c);
- if (o) {
- if (k > 0)
- while (y--) g[y] || w[y] || (w[y] = bi.call(l));
- w = wt(w)
- }
- ut.apply(l, w);
- nt && !o && w.length > 0 && k + t.length > 1 && u.uniqueSort(l)
- }
- return nt && (v = it, ht = tt), g
- };
- return i ? l(o) : o
- }
- function cr(n, t, i) {
- for (var r = 0, f = t.length; f > r; r++) u(n, t[r], i);
- return i
- }
- function lr(n, t, i, u) {
- var o, f, e, h, l, s = yt(n);
- if (!u && 1 === s.length) {
- if (f = s[0] = s[0].slice(0), f.length > 2 && "ID" === (e = f[0]).type && 9 === t.nodeType && !c && r.relative[f[1].type]) {
- if (t = r.find.ID(e.matches[0].replace(p, w), t)[0], !t) return i;
- n = n.slice(f.shift().value.length)
- }
- for (o = vt.needsContext.test(n) ? 0 : f.length; o--;) {
- if (e = f[o], r.relative[h = e.type]) break;
- if ((l = r.find[h]) && (u = l(e.matches[0].replace(p, w), ni.test(f[0].type) && t.parentNode || t))) {
- if (f.splice(o, 1), n = u.length && pt(f), !n) return ut.apply(i, ft.call(u, 0)), i;
- break
- }
- }
- }
- return bt(n, s)(u, t, c, i, ni.test(n)), i
- }
- function pi() {}
- var nt, ot, r, st, oi, bt, tt, ht, it, s, h, c, a, rt, ct, et, kt, f = "sizzle" + -new Date,
- k = n.document,
- o = {},
- v = 0,
- wi = 0,
- si = ii(),
- hi = ii(),
- ci = ii(),
- y = typeof t,
- li = -2147483648,
- lt = [],
- bi = lt.pop,
- ut = lt.push,
- ft = lt.slice,
- dt = lt.indexOf || function(n) {
- for (var t = 0, i = this.length; i > t; t++)
- if (this[t] === n) return t;
- return -1
- },
- e = "[\\x20\\t\\r\\n\\f]",
- d = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
- ai = d.replace("w", "w#"),
- vi = "\\[" + e + "*(" + d + ")" + e + "*(?:([*^$|!~]?=)" + e + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + ai + ")|)|)" + e + "*\\]",
- gt = ":(" + d + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + vi.replace(3, 8) + ")*)|.*)\\)|)",
- at = RegExp("^" + e + "+|((?:^|[^\\\\])(?:\\\\.)*)" + e + "+$", "g"),
- ki = RegExp("^" + e + "*," + e + "*"),
- di = RegExp("^" + e + "*([\\x20\\t\\r\\n\\f>+~])" + e + "*"),
- gi = RegExp(gt),
- nr = RegExp("^" + ai + "$"),
- vt = {
- ID: RegExp("^#(" + d + ")"),
- CLASS: RegExp("^\\.(" + d + ")"),
- NAME: RegExp("^\\[name=['\"]?(" + d + ")['\"]?\\]"),
- TAG: RegExp("^(" + d.replace("w", "w*") + ")"),
- ATTR: RegExp("^" + vi),
- PSEUDO: RegExp("^" + gt),
- CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + e + "*(even|odd|(([+-]|)(\\d*)n|)" + e + "*(?:([+-]|)" + e + "*(\\d+)|))" + e + "*\\)|)", "i"),
- needsContext: RegExp("^" + e + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + e + "*((?:-\\d)?\\d*)" + e + "*\\)|)(?=[^-]|$)", "i")
- },
- ni = /[\x20\t\r\n\f]*[+~]/,
- tr = /^[^{]+\{\s*\[native code/,
- ir = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
- rr = /^(?:input|select|textarea|button)$/i,
- ur = /^h\d$/i,
- fr = /'|\\/g,
- er = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
- p = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
- w = function(n, t) {
- var i = "0x" + t - 65536;
- return i !== i ? t : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i)
- };
- try {
- ft.call(k.documentElement.childNodes, 0)[0].nodeType
- } catch (ar) {
- ft = function(n) {
- for (var t, i = []; t = this[n++];) i.push(t);
- return i
- }
- }
- oi = u.isXML = function(n) {
- var t = n && (n.ownerDocument || n).documentElement;
- return t ? "HTML" !== t.nodeName : !1
- };
- it = u.setDocument = function(n) {
- var i = n ? n.ownerDocument || n : k;
- return i !== s && 9 === i.nodeType && i.documentElement ? (s = i, h = i.documentElement, c = oi(i), o.tagNameNoComments = b(function(n) {
- return n.appendChild(i.createComment("")), !n.getElementsByTagName("*").length
- }), o.attributes = b(function(n) {
- n.innerHTML = "<select><\/select>";
- var t = typeof n.lastChild.getAttribute("multiple");
- return "boolean" !== t && "string" !== t
- }), o.getByClassName = b(function(n) {
- return n.innerHTML = "<div class='hidden e'><\/div><div class='hidden'><\/div>", n.getElementsByClassName && n.getElementsByClassName("e").length ? (n.lastChild.className = "e", 2 === n.getElementsByClassName("e").length) : !1
- }), o.getByName = b(function(n) {
- n.id = f + 0;
- n.innerHTML = "<a name='" + f + "'><\/a><div name='" + f + "'><\/div>";
- h.insertBefore(n, h.firstChild);
- var t = i.getElementsByName && i.getElementsByName(f).length === 2 + i.getElementsByName(f + 0).length;
- return o.getIdNotName = !i.getElementById(f), h.removeChild(n), t
- }), r.attrHandle = b(function(n) {
- return n.innerHTML = "<a href='#'><\/a>", n.firstChild && typeof n.firstChild.getAttribute !== y && "#" === n.firstChild.getAttribute("href")
- }) ? {} : {
- href: function(n) {
- return n.getAttribute("href", 2)
- },
- type: function(n) {
- return n.getAttribute("type")
- }
- }, o.getIdNotName ? (r.find.ID = function(n, t) {
- if (typeof t.getElementById !== y && !c) {
- var i = t.getElementById(n);
- return i && i.parentNode ? [i] : []
- }
- }, r.filter.ID = function(n) {
- var t = n.replace(p, w);
- return function(n) {
- return n.getAttribute("id") === t
- }
- }) : (r.find.ID = function(n, i) {
- if (typeof i.getElementById !== y && !c) {
- var r = i.getElementById(n);
- return r ? r.id === n || typeof r.getAttributeNode !== y && r.getAttributeNode("id").value === n ? [r] : t : []
- }
- }, r.filter.ID = function(n) {
- var t = n.replace(p, w);
- return function(n) {
- var i = typeof n.getAttributeNode !== y && n.getAttributeNode("id");
- return i && i.value === t
- }
- }), r.find.TAG = o.tagNameNoComments ? function(n, i) {
- return typeof i.getElementsByTagName !== y ? i.getElementsByTagName(n) : t
- } : function(n, t) {
- var i, r = [],
- f = 0,
- u = t.getElementsByTagName(n);
- if ("*" === n) {
- while (i = u[f++]) 1 === i.nodeType && r.push(i);
- return r
- }
- return u
- }, r.find.NAME = o.getByName && function(n, i) {
- return typeof i.getElementsByName !== y ? i.getElementsByName(name) : t
- }, r.find.CLASS = o.getByClassName && function(n, i) {
- return typeof i.getElementsByClassName === y || c ? t : i.getElementsByClassName(n)
- }, rt = [], a = [":focus"], (o.qsa = ti(i.querySelectorAll)) && (b(function(n) {
- n.innerHTML = "<select><option selected=''><\/option><\/select>";
- n.querySelectorAll("[selected]").length || a.push("\\[" + e + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)");
- n.querySelectorAll(":checked").length || a.push(":checked")
- }), b(function(n) {
- n.innerHTML = "<input type='hidden' i=''/>";
- n.querySelectorAll("[i^='']").length && a.push("[*^$]=" + e + "*(?:\"\"|'')");
- n.querySelectorAll(":enabled").length || a.push(":enabled", ":disabled");
- n.querySelectorAll("*,:x");
- a.push(",.*:")
- })), (o.matchesSelector = ti(ct = h.matchesSelector || h.mozMatchesSelector || h.webkitMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && b(function(n) {
- o.disconnectedMatch = ct.call(n, "div");
- ct.call(n, "[s!='']:x");
- rt.push("!=", gt)
- }), a = RegExp(a.join("|")), rt = RegExp(rt.join("|")), et = ti(h.contains) || h.compareDocumentPosition ? function(n, t) {
- var r = 9 === n.nodeType ? n.documentElement : n,
- i = t && t.parentNode;
- return n === i || !(!i || 1 !== i.nodeType || !(r.contains ? r.contains(i) : n.compareDocumentPosition && 16 & n.compareDocumentPosition(i)))
- } : function(n, t) {
- if (t)
- while (t = t.parentNode)
- if (t === n) return !0;
- return !1
- }, kt = h.compareDocumentPosition ? function(n, t) {
- var r;
- return n === t ? (tt = !0, 0) : (r = t.compareDocumentPosition && n.compareDocumentPosition && n.compareDocumentPosition(t)) ? 1 & r || n.parentNode && 11 === n.parentNode.nodeType ? n === i || et(k, n) ? -1 : t === i || et(k, t) ? 1 : 0 : 4 & r ? -1 : 1 : n.compareDocumentPosition ? -1 : 1
- } : function(n, t) {
- var r, u = 0,
- o = n.parentNode,
- s = t.parentNode,
- f = [n],
- e = [t];
- if (n === t) return tt = !0, 0;
- if (!o || !s) return n === i ? -1 : t === i ? 1 : o ? -1 : s ? 1 : 0;
- if (o === s) return yi(n, t);
- for (r = n; r = r.parentNode;) f.unshift(r);
- for (r = t; r = r.parentNode;) e.unshift(r);
- while (f[u] === e[u]) u++;
- return u ? yi(f[u], e[u]) : f[u] === k ? -1 : e[u] === k ? 1 : 0
- }, tt = !1, [0, 0].sort(kt), o.detectDuplicates = tt, s) : s
- };
- u.matches = function(n, t) {
- return u(n, null, null, t)
- };
- u.matchesSelector = function(n, t) {
- if ((n.ownerDocument || n) !== s && it(n), t = t.replace(er, "='$1']"), !(!o.matchesSelector || c || rt && rt.test(t) || a.test(t))) try {
- var i = ct.call(n, t);
- if (i || o.disconnectedMatch || n.document && 11 !== n.document.nodeType) return i
- } catch (r) {}
- return u(t, s, null, [n]).length > 0
- };
- u.contains = function(n, t) {
- return (n.ownerDocument || n) !== s && it(n), et(n, t)
- };
- u.attr = function(n, t) {
- var i;
- return (n.ownerDocument || n) !== s && it(n), c || (t = t.toLowerCase()), (i = r.attrHandle[t]) ? i(n) : c || o.attributes ? n.getAttribute(t) : ((i = n.getAttributeNode(t)) || n.getAttribute(t)) && n[t] === !0 ? t : i && i.specified ? i.value : null
- };
- u.error = function(n) {
- throw Error("Syntax error, unrecognized expression: " + n);
- };
- u.uniqueSort = function(n) {
- var r, u = [],
- t = 1,
- i = 0;
- if (tt = !o.detectDuplicates, n.sort(kt), tt) {
- for (; r = n[t]; t++) r === n[t - 1] && (i = u.push(t));
- while (i--) n.splice(u[i], 1)
- }
- return n
- };
- st = u.getText = function(n) {
- var r, i = "",
- u = 0,
- t = n.nodeType;
- if (t) {
- if (1 === t || 9 === t || 11 === t) {
- if ("string" == typeof n.textContent) return n.textContent;
- for (n = n.firstChild; n; n = n.nextSibling) i += st(n)
- } else if (3 === t || 4 === t) return n.nodeValue
- } else
- for (; r = n[u]; u++) i += st(r);
- return i
- };
- r = u.selectors = {
- cacheLength: 50,
- createPseudo: l,
- match: vt,
- find: {},
- relative: {
- ">": {
- dir: "parentNode",
- first: !0
- },
- " ": {
- dir: "parentNode"
- },
- "+": {
- dir: "previousSibling",
- first: !0
- },
- "~": {
- dir: "previousSibling"
- }
- },
- preFilter: {
- ATTR: function(n) {
- return n[1] = n[1].replace(p, w), n[3] = (n[4] || n[5] || "").replace(p, w), "~=" === n[2] && (n[3] = " " + n[3] + " "), n.slice(0, 4)
- },
- CHILD: function(n) {
- return n[1] = n[1].toLowerCase(), "nth" === n[1].slice(0, 3) ? (n[3] || u.error(n[0]), n[4] = +(n[4] ? n[5] + (n[6] || 1) : 2 * ("even" === n[3] || "odd" === n[3])), n[5] = +(n[7] + n[8] || "odd" === n[3])) : n[3] && u.error(n[0]), n
- },
- PSEUDO: function(n) {
- var i, t = !n[5] && n[2];
- return vt.CHILD.test(n[0]) ? null : (n[4] ? n[2] = n[4] : t && gi.test(t) && (i = yt(t, !0)) && (i = t.indexOf(")", t.length - i) - t.length) && (n[0] = n[0].slice(0, i), n[2] = t.slice(0, i)), n.slice(0, 3))
- }
- },
- filter: {
- TAG: function(n) {
- return "*" === n ? function() {
- return !0
- } : (n = n.replace(p, w).toLowerCase(), function(t) {
- return t.nodeName && t.nodeName.toLowerCase() === n
- })
- },
- CLASS: function(n) {
- var t = si[n + " "];
- return t || (t = RegExp("(^|" + e + ")" + n + "(" + e + "|$)")) && si(n, function(n) {
- return t.test(n.className || typeof n.getAttribute !== y && n.getAttribute("class") || "")
- })
- },
- ATTR: function(n, t, i) {
- return function(r) {
- var f = u.attr(r, n);
- return null == f ? "!=" === t : t ? (f += "", "=" === t ? f === i : "!=" === t ? f !== i : "^=" === t ? i && 0 === f.indexOf(i) : "*=" === t ? i && f.indexOf(i) > -1 : "$=" === t ? i && f.slice(-i.length) === i : "~=" === t ? (" " + f + " ").indexOf(i) > -1 : "|=" === t ? f === i || f.slice(0, i.length + 1) === i + "-" : !1) : !0
- }
- },
- CHILD: function(n, t, i, r, u) {
- var s = "nth" !== n.slice(0, 3),
- o = "last" !== n.slice(-4),
- e = "of-type" === t;
- return 1 === r && 0 === u ? function(n) {
- return !!n.parentNode
- } : function(t, i, h) {
- var a, k, c, l, y, w, b = s !== o ? "nextSibling" : "previousSibling",
- p = t.parentNode,
- g = e && t.nodeName.toLowerCase(),
- d = !h && !e;
- if (p) {
- if (s) {
- while (b) {
- for (c = t; c = c[b];)
- if (e ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) return !1;
- w = b = "only" === n && !w && "nextSibling"
- }
- return !0
- }
- if (w = [o ? p.firstChild : p.lastChild], o && d) {
- for (k = p[f] || (p[f] = {}), a = k[n] || [], y = a[0] === v && a[1], l = a[0] === v && a[2], c = y && p.childNodes[y]; c = ++y && c && c[b] || (l = y = 0) || w.pop();)
- if (1 === c.nodeType && ++l && c === t) {
- k[n] = [v, y, l];
- break
- }
- } else if (d && (a = (t[f] || (t[f] = {}))[n]) && a[0] === v) l = a[1];
- else
- while (c = ++y && c && c[b] || (l = y = 0) || w.pop())
- if ((e ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) && ++l && (d && ((c[f] || (c[f] = {}))[n] = [v, l]), c === t)) break;
- return l -= u, l === r || 0 == l % r && l / r >= 0
- }
- }
- },
- PSEUDO: function(n, t) {
- var e, i = r.pseudos[n] || r.setFilters[n.toLowerCase()] || u.error("unsupported pseudo: " + n);
- return i[f] ? i(t) : i.length > 1 ? (e = [n, n, "", t], r.setFilters.hasOwnProperty(n.toLowerCase()) ? l(function(n, r) {
- for (var u, f = i(n, t), e = f.length; e--;) u = dt.call(n, f[e]), n[u] = !(r[u] = f[e])
- }) : function(n) {
- return i(n, 0, e)
- }) : i
- }
- },
- pseudos: {
- not: l(function(n) {
- var i = [],
- r = [],
- t = bt(n.replace(at, "$1"));
- return t[f] ? l(function(n, i, r, u) {
- for (var e, o = t(n, null, u, []), f = n.length; f--;)(e = o[f]) && (n[f] = !(i[f] = e))
- }) : function(n, u, f) {
- return i[0] = n, t(i, null, f, r), !r.pop()
- }
- }),
- has: l(function(n) {
- return function(t) {
- return u(n, t).length > 0
- }
- }),
- contains: l(function(n) {
- return function(t) {
- return (t.textContent || t.innerText || st(t)).indexOf(n) > -1
- }
- }),
- lang: l(function(n) {
- return nr.test(n || "") || u.error("unsupported lang: " + n), n = n.replace(p, w).toLowerCase(),
- function(t) {
- var i;
- do
- if (i = c ? t.getAttribute("xml:lang") || t.getAttribute("lang") : t.lang) return i = i.toLowerCase(), i === n || 0 === i.indexOf(n + "-"); while ((t = t.parentNode) && 1 === t.nodeType);
- return !1
- }
- }),
- target: function(t) {
- var i = n.location && n.location.hash;
- return i && i.slice(1) === t.id
- },
- root: function(n) {
- return n === h
- },
- focus: function(n) {
- return n === s.activeElement && (!s.hasFocus || s.hasFocus()) && !!(n.type || n.href || ~n.tabIndex)
- },
- enabled: function(n) {
- return n.disabled === !1
- },
- disabled: function(n) {
- return n.disabled === !0
- },
- checked: function(n) {
- var t = n.nodeName.toLowerCase();
- return "input" === t && !!n.checked || "option" === t && !!n.selected
- },
- selected: function(n) {
- return n.parentNode && n.parentNode.selectedIndex, n.selected === !0
- },
- empty: function(n) {
- for (n = n.firstChild; n; n = n.nextSibling)
- if (n.nodeName > "@" || 3 === n.nodeType || 4 === n.nodeType) return !1;
- return !0
- },
- parent: function(n) {
- return !r.pseudos.empty(n)
- },
- header: function(n) {
- return ur.test(n.nodeName)
- },
- input: function(n) {
- return rr.test(n.nodeName)
- },
- button: function(n) {
- var t = n.nodeName.toLowerCase();
- return "input" === t && "button" === n.type || "button" === t
- },
- text: function(n) {
- var t;
- return "input" === n.nodeName.toLowerCase() && "text" === n.type && (null == (t = n.getAttribute("type")) || t.toLowerCase() === n.type)
- },
- first: g(function() {
- return [0]
- }),
- last: g(function(n, t) {
- return [t - 1]
- }),
- eq: g(function(n, t, i) {
- return [0 > i ? i + t : i]
- }),
- even: g(function(n, t) {
- for (var i = 0; t > i; i += 2) n.push(i);
- return n
- }),
- odd: g(function(n, t) {
- for (var i = 1; t > i; i += 2) n.push(i);
- return n
- }),
- lt: g(function(n, t, i) {
- for (var r = 0 > i ? i + t : i; --r >= 0;) n.push(r);
- return n
- }),
- gt: g(function(n, t, i) {
- for (var r = 0 > i ? i + t : i; t > ++r;) n.push(r);
- return n
- })
- }
- };
- for (nt in {
- radio: !0,
- checkbox: !0,
- file: !0,
- password: !0,
- image: !0
- }) r.pseudos[nt] = or(nt);
- for (nt in {
- submit: !0,
- reset: !0
- }) r.pseudos[nt] = sr(nt);
- bt = u.compile = function(n, t) {
- var r, u = [],
- e = [],
- i = ci[n + " "];
- if (!i) {
- for (t || (t = yt(n)), r = t.length; r--;) i = ei(t[r]), i[f] ? u.push(i) : e.push(i);
- i = ci(n, hr(e, u))
- }
- return i
- };
- r.pseudos.nth = r.pseudos.eq;
- r.filters = pi.prototype = r.pseudos;
- r.setFilters = new pi;
- it();
- u.attr = i.attr;
- i.find = u;
- i.expr = u.selectors;
- i.expr[":"] = i.expr.pseudos;
- i.unique = u.uniqueSort;
- i.text = u.getText;
- i.isXMLDoc = u.isXML;
- i.contains = u.contains
- }(n);
- var re = /Until$/,
- ue = /^(?:parents|prev(?:Until|All))/,
- fe = /^.[^:#\[\.,]*$/,
- hr = i.expr.match.needsContext,
- ee = {
- children: !0,
- contents: !0,
- next: !0,
- prev: !0
- };
- i.fn.extend({
- find: function(n) {
- var t, r, f, u = this.length;
- if ("string" != typeof n) return f = this, this.pushStack(i(n).filter(function() {
- for (t = 0; u > t; t++)
- if (i.contains(f[t], this)) return !0
- }));
- for (r = [], t = 0; u > t; t++) i.find(n, this[t], r);
- return r = this.pushStack(u > 1 ? i.unique(r) : r), r.selector = (this.selector ? this.selector + " " : "") + n, r
- },
- has: function(n) {
- var t, r = i(n, this),
- u = r.length;
- return this.filter(function() {
- for (t = 0; u > t; t++)
- if (i.contains(this, r[t])) return !0
- })
- },
- not: function(n) {
- return this.pushStack(lr(this, n, !1))
- },
- filter: function(n) {
- return this.pushStack(lr(this, n, !0))
- },
- is: function(n) {
- return !!n && ("string" == typeof n ? hr.test(n) ? i(n, this.context).index(this[0]) >= 0 : i.filter(n, this).length > 0 : this.filter(n).length > 0)
- },
- closest: function(n, t) {
- for (var r, f = 0, o = this.length, u = [], e = hr.test(n) || "string" != typeof n ? i(n, t || this.context) : 0; o > f; f++)
- for (r = this[f]; r && r.ownerDocument && r !== t && 11 !== r.nodeType;) {
- if (e ? e.index(r) > -1 : i.find.matchesSelector(r, n)) {
- u.push(r);
- break
- }
- r = r.parentNode
- }
- return this.pushStack(u.length > 1 ? i.unique(u) : u)
- },
- index: function(n) {
- return n ? "string" == typeof n ? i.inArray(this[0], i(n)) : i.inArray(n.jquery ? n[0] : n, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
- },
- add: function(n, t) {
- var r = "string" == typeof n ? i(n, t) : i.makeArray(n && n.nodeType ? [n] : n),
- u = i.merge(this.get(), r);
- return this.pushStack(i.unique(u))
- },
- addBack: function(n) {
- return this.add(null == n ? this.prevObject : this.prevObject.filter(n))
- }
- });
- i.fn.andSelf = i.fn.addBack;
- i.each({
- parent: function(n) {
- var t = n.parentNode;
- return t && 11 !== t.nodeType ? t : null
- },
- parents: function(n) {
- return i.dir(n, "parentNode")
- },
- parentsUntil: function(n, t, r) {
- return i.dir(n, "parentNode", r)
- },
- next: function(n) {
- return cr(n, "nextSibling")
- },
- prev: function(n) {
- return cr(n, "previousSibling")
- },
- nextAll: function(n) {
- return i.dir(n, "nextSibling")
- },
- prevAll: function(n) {
- return i.dir(n, "previousSibling")
- },
- nextUntil: function(n, t, r) {
- return i.dir(n, "nextSibling", r)
- },
- prevUntil: function(n, t, r) {
- return i.dir(n, "previousSibling", r)
- },
- siblings: function(n) {
- return i.sibling((n.parentNode || {}).firstChild, n)
- },
- children: function(n) {
- return i.sibling(n.firstChild)
- },
- contents: function(n) {
- return i.nodeName(n, "iframe") ? n.contentDocument || n.contentWindow.document : i.merge([], n.childNodes)
- }
- }, function(n, t) {
- i.fn[n] = function(r, u) {
- var f = i.map(this, t, r);
- return re.test(n) || (u = r), u && "string" == typeof u && (f = i.filter(u, f)), f = this.length > 1 && !ee[n] ? i.unique(f) : f, this.length > 1 && ue.test(n) && (f = f.reverse()), this.pushStack(f)
- }
- });
- i.extend({
- filter: function(n, t, r) {
- return r && (n = ":not(" + n + ")"), 1 === t.length ? i.find.matchesSelector(t[0], n) ? [t[0]] : [] : i.find.matches(n, t)
- },
- dir: function(n, r, u) {
- for (var e = [], f = n[r]; f && 9 !== f.nodeType && (u === t || 1 !== f.nodeType || !i(f).is(u));) 1 === f.nodeType && e.push(f), f = f[r];
- return e
- },
- sibling: function(n, t) {
- for (var i = []; n; n = n.nextSibling) 1 === n.nodeType && n !== t && i.push(n);
- return i
- }
- });
- var vr = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
- oe = / jQuery\d+="(?:null|\d+)"/g,
- yr = RegExp("<(?:" + vr + ")[\\s/>]", "i"),
- fi = /^\s+/,
- pr = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
- wr = /<([\w:]+)/,
- br = /<tbody/i,
- se = /<|&#?\w+;/,
- he = /<(?:script|style|link)/i,
- ei = /^(?:checkbox|radio)$/i,
- ce = /checked\s*(?:[^=]|=\s*.checked.)/i,
- kr = /^$|\/(?:java|ecma)script/i,
- le = /^true\/(.*)/,
- ae = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
- e = {
- option: [1, "<select multiple='multiple'>", "<\/select>"],
- legend: [1, "<fieldset>", "<\/fieldset>"],
- area: [1, "<map>", "<\/map>"],
- param: [1, "<object>", "<\/object>"],
- thead: [1, "<table>", "<\/table>"],
- tr: [2, "<table><tbody>", "<\/tbody><\/table>"],
- col: [2, "<table><tbody><\/tbody><colgroup>", "<\/colgroup><\/table>"],
- td: [3, "<table><tbody><tr>", "<\/tr><\/tbody><\/table>"],
- _default: i.support.htmlSerialize ? [0, "", ""] : [1, "X<div>", "<\/div>"]
- },
- ve = ar(r),
- oi = ve.appendChild(r.createElement("div"));
- e.optgroup = e.option;
- e.tbody = e.tfoot = e.colgroup = e.caption = e.thead;
- e.th = e.td;
- i.fn.extend({
- text: function(n) {
- return i.access(this, function(n) {
- return n === t ? i.text(this) : this.empty().append((this[0] && this[0].ownerDocument || r).createTextNode(n))
- }, null, n, arguments.length)
- },
- wrapAll: function(n) {
- if (i.isFunction(n)) return this.each(function(t) {
- i(this).wrapAll(n.call(this, t))
- });
- if (this[0]) {
- var t = i(n, this[0].ownerDocument).eq(0).clone(!0);
- this[0].parentNode && t.insertBefore(this[0]);
- t.map(function() {
- for (var n = this; n.firstChild && 1 === n.firstChild.nodeType;) n = n.firstChild;
- return n
- }).append(this)
- }
- return this
- },
- wrapInner: function(n) {
- return i.isFunction(n) ? this.each(function(t) {
- i(this).wrapInner(n.call(this, t))
- }) : this.each(function() {
- var t = i(this),
- r = t.contents();
- r.length ? r.wrapAll(n) : t.append(n)
- })
- },
- wrap: function(n) {
- var t = i.isFunction(n);
- return this.each(function(r) {
- i(this).wrapAll(t ? n.call(this, r) : n)
- })
- },
- unwrap: function() {
- return this.parent().each(function() {
- i.nodeName(this, "body") || i(this).replaceWith(this.childNodes)
- }).end()
- },
- append: function() {
- return this.domManip(arguments, !0, function(n) {
- (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.appendChild(n)
- })
- },
- prepend: function() {
- return this.domManip(arguments, !0, function(n) {
- (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.insertBefore(n, this.firstChild)
- })
- },
- before: function() {
- return this.domManip(arguments, !1, function(n) {
- this.parentNode && this.parentNode.insertBefore(n, this)
- })
- },
- after: function() {
- return this.domManip(arguments, !1, function(n) {
- this.parentNode && this.parentNode.insertBefore(n, this.nextSibling)
- })
- },
- remove: function(n, t) {
- for (var r, f = 0; null != (r = this[f]); f++)(!n || i.filter(n, [r]).length > 0) && (t || 1 !== r.nodeType || i.cleanData(u(r)), r.parentNode && (t && i.contains(r.ownerDocument, r) && si(u(r, "script")), r.parentNode.removeChild(r)));
- return this
- },
- empty: function() {
- for (var n, t = 0; null != (n = this[t]); t++) {
- for (1 === n.nodeType && i.cleanData(u(n, !1)); n.firstChild;) n.removeChild(n.firstChild);
- n.options && i.nodeName(n, "select") && (n.options.length = 0)
- }
- return this
- },
- clone: function(n, t) {
- return n = null == n ? !1 : n, t = null == t ? n : t, this.map(function() {
- return i.clone(this, n, t)
- })
- },
- html: function(n) {
- return i.access(this, function(n) {
- var r = this[0] || {},
- f = 0,
- o = this.length;
- if (n === t) return 1 === r.nodeType ? r.innerHTML.replace(oe, "") : t;
- if (!("string" != typeof n || he.test(n) || !i.support.htmlSerialize && yr.test(n) || !i.support.leadingWhitespace && fi.test(n) || e[(wr.exec(n) || ["", ""])[1].toLowerCase()])) {
- n = n.replace(pr, "<$1><\/$2>");
- try {
- for (; o > f; f++) r = this[f] || {}, 1 === r.nodeType && (i.cleanData(u(r, !1)), r.innerHTML = n);
- r = 0
- } catch (s) {}
- }
- r && this.empty().append(n)
- }, null, n, arguments.length)
- },
- replaceWith: function(n) {
- var t = i.isFunction(n);
- return t || "string" == typeof n || (n = i(n).not(this).detach()), this.domManip([n], !0, function(n) {
- var r = this.nextSibling,
- t = this.parentNode;
- t && (i(this).remove(), t.insertBefore(n, r))
- })
- },
- detach: function(n) {
- return this.remove(n, !0)
- },
- domManip: function(n, r, f) {
- n = bi.apply([], n);
- var c, e, l, s, y, h, o = 0,
- a = this.length,
- w = this,
- b = a - 1,
- v = n[0],
- p = i.isFunction(v);
- if (p || !(1 >= a || "string" != typeof v || i.support.checkClone) && ce.test(v)) return this.each(function(i) {
- var u = w.eq(i);
- p && (n[0] = v.call(this, i, r ? u.html() : t));
- u.domManip(n, r, f)
- });
- if (a && (h = i.buildFragment(n, this[0].ownerDocument, !1, this), c = h.firstChild, 1 === h.childNodes.length && (h = c), c)) {
- for (r = r && i.nodeName(c, "tr"), s = i.map(u(h, "script"), dr), l = s.length; a > o; o++) e = h, o !== b && (e = i.clone(e, !0, !0), l && i.merge(s, u(e, "script"))), f.call(r && i.nodeName(this[o], "table") ? ye(this[o], "tbody") : this[o], e, o);
- if (l)
- for (y = s[s.length - 1].ownerDocument, i.map(s, gr), o = 0; l > o; o++) e = s[o], kr.test(e.type || "") && !i._data(e, "globalEval") && i.contains(y, e) && (e.src ? i.ajax({
- url: e.src,
- type: "GET",
- dataType: "script",
- async: !1,
- global: !1,
- throws: !0
- }) : i.globalEval((e.text || e.textContent || e.innerHTML || "").replace(ae, "")));
- h = c = null
- }
- return this
- }
- });
- i.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
- }, function(n, t) {
- i.fn[n] = function(n) {
- for (var u, r = 0, f = [], e = i(n), o = e.length - 1; o >= r; r++) u = r === o ? this : this.clone(!0), i(e[r])[t](u), bt.apply(f, u.get());
- return this.pushStack(f)
- }
- });
- i.extend({
- clone: function(n, t, r) {
- var f, h, o, e, s, c = i.contains(n.ownerDocument, n);
- if (i.support.html5Clone || i.isXMLDoc(n) || !yr.test("<" + n.nodeName + ">") ? o = n.cloneNode(!0) : (oi.innerHTML = n.outerHTML, oi.removeChild(o = oi.firstChild)), !(i.support.noCloneEvent && i.support.noCloneChecked || 1 !== n.nodeType && 11 !== n.nodeType || i.isXMLDoc(n)))
- for (f = u(o), s = u(n), e = 0; null != (h = s[e]); ++e) f[e] && pe(h, f[e]);
- if (t)
- if (r)
- for (s = s || u(n), f = f || u(o), e = 0; null != (h = s[e]); e++) nu(h, f[e]);
- else nu(n, o);
- return f = u(o, "script"), f.length > 0 && si(f, !c && u(n, "script")), f = s = h = null, o
- },
- buildFragment: function(n, t, r, f) {
- for (var h, o, w, s, y, p, l, b = n.length, a = ar(t), c = [], v = 0; b > v; v++)
- if (o = n[v], o || 0 === o)
- if ("object" === i.type(o)) i.merge(c, o.nodeType ? [o] : o);
- else if (se.test(o)) {
- for (s = s || a.appendChild(t.createElement("div")), y = (wr.exec(o) || ["", ""])[1].toLowerCase(), l = e[y] || e._default, s.innerHTML = l[1] + o.replace(pr, "<$1><\/$2>") + l[2], h = l[0]; h--;) s = s.lastChild;
- if (!i.support.leadingWhitespace && fi.test(o) && c.push(t.createTextNode(fi.exec(o)[0])), !i.support.tbody)
- for (o = "table" !== y || br.test(o) ? "<table>" !== l[1] || br.test(o) ? 0 : s : s.firstChild, h = o && o.childNodes.length; h--;) i.nodeName(p = o.childNodes[h], "tbody") && !p.childNodes.length && o.removeChild(p);
- for (i.merge(c, s.childNodes), s.textContent = ""; s.firstChild;) s.removeChild(s.firstChild);
- s = a.lastChild
- } else c.push(t.createTextNode(o));
- for (s && a.removeChild(s), i.support.appendChecked || i.grep(u(c, "input"), we), v = 0; o = c[v++];)
- if ((!f || -1 === i.inArray(o, f)) && (w = i.contains(o.ownerDocument, o), s = u(a.appendChild(o), "script"), w && si(s), r))
- for (h = 0; o = s[h++];) kr.test(o.type || "") && r.push(o);
- return s = null, a
- },
- cleanData: function(n, t) {
- for (var r, f, u, e, c = 0, s = i.expando, h = i.cache, l = i.support.deleteExpando, a = i.event.special; null != (r = n[c]); c++)
- if ((t || i.acceptData(r)) && (u = r[s], e = u && h[u])) {
- if (e.events)
- for (f in e.events) a[f] ? i.event.remove(r, f) : i.removeEvent(r, f, e.handle);
- h[u] && (delete h[u], l ? delete r[s] : typeof r.removeAttribute !== o ? r.removeAttribute(s) : r[s] = null, b.push(u))
- }
- }
- });
- var rt, v, y, hi = /alpha\([^)]*\)/i,
- be = /opacity\s*=\s*([^)]*)/,
- ke = /^(top|right|bottom|left)$/,
- de = /^(none|table(?!-c[ea]).+)/,
- tu = /^margin/,
- ge = RegExp("^(" + st + ")(.*)$", "i"),
- ct = RegExp("^(" + st + ")(?!px)[a-z%]+$", "i"),
- no = RegExp("^([+-])=(" + st + ")", "i"),
- iu = {
- BODY: "block"
- },
- to = {
- position: "absolute",
- visibility: "hidden",
- display: "block"
- },
- ru = {
- letterSpacing: 0,
- fontWeight: 400
- },
- p = ["Top", "Right", "Bottom", "Left"],
- uu = ["Webkit", "O", "Moz", "ms"];
- i.fn.extend({
- css: function(n, r) {
- return i.access(this, function(n, r, u) {
- var e, o, s = {},
- f = 0;
- if (i.isArray(r)) {
- for (o = v(n), e = r.length; e > f; f++) s[r[f]] = i.css(n, r[f], !1, o);
- return s
- }
- return u !== t ? i.style(n, r, u) : i.css(n, r)
- }, n, r, arguments.length > 1)
- },
- show: function() {
- return eu(this, !0)
- },
- hide: function() {
- return eu(this)
- },
- toggle: function(n) {
- var t = "boolean" == typeof n;
- return this.each(function() {
- (t ? n : ut(this)) ? i(this).show(): i(this).hide()
- })
- }
- });
- i.extend({
- cssHooks: {
- opacity: {
- get: function(n, t) {
- if (t) {
- var i = y(n, "opacity");
- return "" === i ? "1" : i
- }
- }
- }
- },
- cssNumber: {
- columnCount: !0,
- fillOpacity: !0,
- fontWeight: !0,
- lineHeight: !0,
- opacity: !0,
- orphans: !0,
- widows: !0,
- zIndex: !0,
- zoom: !0
- },
- cssProps: {
- float: i.support.cssFloat ? "cssFloat" : "styleFloat"
- },
- style: function(n, r, u, f) {
- if (n && 3 !== n.nodeType && 8 !== n.nodeType && n.style) {
- var o, s, e, h = i.camelCase(r),
- c = n.style;
- if (r = i.cssProps[h] || (i.cssProps[h] = fu(c, h)), e = i.cssHooks[r] || i.cssHooks[h], u === t) return e && "get" in e && (o = e.get(n, !1, f)) !== t ? o : c[r];
- if (s = typeof u, "string" === s && (o = no.exec(u)) && (u = (o[1] + 1) * o[2] + parseFloat(i.css(n, r)), s = "number"), !(null == u || "number" === s && isNaN(u) || ("number" !== s || i.cssNumber[h] || (u += "px"), i.support.clearCloneStyle || "" !== u || 0 !== r.indexOf("background") || (c[r] = "inherit"), e && "set" in e && (u = e.set(n, u, f)) === t))) try {
- c[r] = u
- } catch (l) {}
- }
- },
- css: function(n, r, u, f) {
- var h, e, o, s = i.camelCase(r);
- return r = i.cssProps[s] || (i.cssProps[s] = fu(n.style, s)), o = i.cssHooks[r] || i.cssHooks[s], o && "get" in o && (e = o.get(n, !0, u)), e === t && (e = y(n, r, f)), "normal" === e && r in ru && (e = ru[r]), "" === u || u ? (h = parseFloat(e), u === !0 || i.isNumeric(h) ? h || 0 : e) : e
- },
- swap: function(n, t, i, r) {
- var f, u, e = {};
- for (u in t) e[u] = n.style[u], n.style[u] = t[u];
- f = i.apply(n, r || []);
- for (u in t) n.style[u] = e[u];
- return f
- }
- });
- n.getComputedStyle ? (v = function(t) {
- return n.getComputedStyle(t, null)
- }, y = function(n, r, u) {
- var s, h, c, o = u || v(n),
- e = o ? o.getPropertyValue(r) || o[r] : t,
- f = n.style;
- return o && ("" !== e || i.contains(n.ownerDocument, n) || (e = i.style(n, r)), ct.test(e) && tu.test(r) && (s = f.width, h = f.minWidth, c = f.maxWidth, f.minWidth = f.maxWidth = f.width = e, e = o.width, f.width = s, f.minWidth = h, f.maxWidth = c)), e
- }) : r.documentElement.currentStyle && (v = function(n) {
- return n.currentStyle
- }, y = function(n, i, r) {
- var s, e, o, h = r || v(n),
- u = h ? h[i] : t,
- f = n.style;
- return null == u && f && f[i] && (u = f[i]), ct.test(u) && !ke.test(i) && (s = f.left, e = n.runtimeStyle, o = e && e.left, o && (e.left = n.currentStyle.left), f.left = "fontSize" === i ? "1em" : u, u = f.pixelLeft + "px", f.left = s, o && (e.left = o)), "" === u ? "auto" : u
- });
- i.each(["height", "width"], function(n, r) {
- i.cssHooks[r] = {
- get: function(n, u, f) {
- return u ? 0 === n.offsetWidth && de.test(i.css(n, "display")) ? i.swap(n, to, function() {
- return hu(n, r, f)
- }) : hu(n, r, f) : t
- },
- set: function(n, t, u) {
- var f = u && v(n);
- return ou(n, t, u ? su(n, r, u, i.support.boxSizing && "border-box" === i.css(n, "boxSizing", !1, f), f) : 0)
- }
- }
- });
- i.support.opacity || (i.cssHooks.opacity = {
- get: function(n, t) {
- return be.test((t && n.currentStyle ? n.currentStyle.filter : n.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
- },
- set: function(n, t) {
- var r = n.style,
- u = n.currentStyle,
- e = i.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
- f = u && u.filter || r.filter || "";
- r.zoom = 1;
- (t >= 1 || "" === t) && "" === i.trim(f.replace(hi, "")) && r.removeAttribute && (r.removeAttribute("filter"), "" === t || u && !u.filter) || (r.filter = hi.test(f) ? f.replace(hi, e) : f + " " + e)
- }
- });
- i(function() {
- i.support.reliableMarginRight || (i.cssHooks.marginRight = {
- get: function(n, r) {
- return r ? i.swap(n, {
- display: "inline-block"
- }, y, [n, "marginRight"]) : t
- }
- });
- !i.support.pixelPosition && i.fn.position && i.each(["top", "left"], function(n, r) {
- i.cssHooks[r] = {
- get: function(n, u) {
- return u ? (u = y(n, r), ct.test(u) ? i(n).position()[r] + "px" : u) : t
- }
- }
- })
- });
- i.expr && i.expr.filters && (i.expr.filters.hidden = function(n) {
- return 0 >= n.offsetWidth && 0 >= n.offsetHeight || !i.support.reliableHiddenOffsets && "none" === (n.style && n.style.display || i.css(n, "display"))
- }, i.expr.filters.visible = function(n) {
- return !i.expr.filters.hidden(n)
- });
- i.each({
- margin: "",
- padding: "",
- border: "Width"
- }, function(n, t) {
- i.cssHooks[n + t] = {
- expand: function(i) {
- for (var r = 0, f = {}, u = "string" == typeof i ? i.split(" ") : [i]; 4 > r; r++) f[n + p[r] + t] = u[r] || u[r - 2] || u[0];
- return f
- }
- };
- tu.test(n) || (i.cssHooks[n + t].set = ou)
- });
- var io = /%20/g,
- ro = /\[\]$/,
- au = /\r?\n/g,
- uo = /^(?:submit|button|image|reset|file)$/i,
- fo = /^(?:input|select|textarea|keygen)/i;
- i.fn.extend({
- serialize: function() {
- return i.param(this.serializeArray())
- },
- serializeArray: function() {
- return this.map(function() {
- var n = i.prop(this, "elements");
- return n ? i.makeArray(n) : this
- }).filter(function() {
- var n = this.type;
- return this.name && !i(this).is(":disabled") && fo.test(this.nodeName) && !uo.test(n) && (this.checked || !ei.test(n))
- }).map(function(n, t) {
- var r = i(this).val();
- return null == r ? null : i.isArray(r) ? i.map(r, function(n) {
- return {
- name: t.name,
- value: n.replace(au, "\r\n")
- }
- }) : {
- name: t.name,
- value: r.replace(au, "\r\n")
- }
- }).get()
- }
- });
- i.param = function(n, r) {
- var u, f = [],
- e = function(n, t) {
- t = i.isFunction(t) ? t() : null == t ? "" : t;
- f[f.length] = encodeURIComponent(n) + "=" + encodeURIComponent(t)
- };
- if (r === t && (r = i.ajaxSettings && i.ajaxSettings.traditional), i.isArray(n) || n.jquery && !i.isPlainObject(n)) i.each(n, function() {
- e(this.name, this.value)
- });
- else
- for (u in n) ci(u, n[u], r, e);
- return f.join("&").replace(io, "+")
- };
- i.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(n, t) {
- i.fn[t] = function(n, i) {
- return arguments.length > 0 ? this.on(t, null, n, i) : this.trigger(t)
- }
- });
- i.fn.hover = function(n, t) {
- return this.mouseenter(n).mouseleave(t || n)
- };
- var w, c, li = i.now(),
- ai = /\?/,
- eo = /#.*$/,
- vu = /([?&])_=[^&]*/,
- oo = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
- so = /^(?:GET|HEAD)$/,
- ho = /^\/\//,
- yu = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
- pu = i.fn.load,
- wu = {},
- vi = {},
- bu = "*/".concat("*");
- try {
- c = ff.href
- } catch (go) {
- c = r.createElement("a");
- c.href = "";
- c = c.href
- }
- w = yu.exec(c.toLowerCase()) || [];
- i.fn.load = function(n, r, u) {
- if ("string" != typeof n && pu) return pu.apply(this, arguments);
- var f, s, h, e = this,
- o = n.indexOf(" ");
- return o >= 0 && (f = n.slice(o, n.length), n = n.slice(0, o)), i.isFunction(r) ? (u = r, r = t) : r && "object" == typeof r && (h = "POST"), e.length > 0 && i.ajax({
- url: n,
- type: h,
- dataType: "html",
- data: r
- }).done(function(n) {
- s = arguments;
- e.html(f ? i("<div>").append(i.parseHTML(n)).find(f) : n)
- }).complete(u && function(n, t) {
- e.each(u, s || [n.responseText, t, n])
- }), this
- };
- i.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(n, t) {
- i.fn[t] = function(n) {
- return this.on(t, n)
- }
- });
- i.each(["get", "post"], function(n, r) {
- i[r] = function(n, u, f, e) {
- return i.isFunction(u) && (e = e || f, f = u, u = t), i.ajax({
- url: n,
- type: r,
- dataType: e,
- data: u,
- success: f
- })
- }
- });
- i.extend({
- active: 0,
- lastModified: {},
- etag: {},
- ajaxSettings: {
- url: c,
- type: "GET",
- isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(w[1]),
- global: !0,
- processData: !0,
- async: !0,
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- accepts: {
- "*": bu,
- text: "text/plain",
- html: "text/html",
- xml: "application/xml, text/xml",
- json: "application/json, text/javascript"
- },
- contents: {
- xml: /xml/,
- html: /html/,
- json: /json/
- },
- responseFields: {
- xml: "responseXML",
- text: "responseText"
- },
- converters: {
- "* text": n.String,
- "text html": !0,
- "text json": i.parseJSON,
- "text xml": i.parseXML
- },
- flatOptions: {
- url: !0,
- context: !0
- }
- },
- ajaxSetup: function(n, t) {
- return t ? yi(yi(n, i.ajaxSettings), t) : yi(i.ajaxSettings, n)
- },
- ajaxPrefilter: ku(wu),
- ajaxTransport: ku(vi),
- ajax: function(n, r) {
- function k(n, r, s, c) {
- var l, k, w, rt, p, a = r;
- 2 !== o && (o = 2, g && clearTimeout(g), y = t, d = c || "", f.readyState = n > 0 ? 4 : 0, s && (rt = co(u, f, s)), n >= 200 && 300 > n || 304 === n ? (u.ifModified && (p = f.getResponseHeader("Last-Modified"), p && (i.lastModified[e] = p), p = f.getResponseHeader("etag"), p && (i.etag[e] = p)), 204 === n ? (l = !0, a = "nocontent") : 304 === n ? (l = !0, a = "notmodified") : (l = lo(u, rt), a = l.state, k = l.data, w = l.error, l = !w)) : (w = a, (n || !a) && (a = "error", 0 > n && (n = 0))), f.status = n, f.statusText = (r || a) + "", l ? tt.resolveWith(h, [k, a, f]) : tt.rejectWith(h, [f, a, w]), f.statusCode(b), b = t, v && nt.trigger(l ? "ajaxSuccess" : "ajaxError", [f, u, l ? k : w]), it.fireWith(h, [f, a]), v && (nt.trigger("ajaxComplete", [f, u]), --i.active || i.event.trigger("ajaxStop")))
- }
- "object" == typeof n && (r = n, n = t);
- r = r || {};
- var l, a, e, d, g, v, y, p, u = i.ajaxSetup({}, r),
- h = u.context || u,
- nt = u.context && (h.nodeType || h.jquery) ? i(h) : i.event,
- tt = i.Deferred(),
- it = i.Callbacks("once memory"),
- b = u.statusCode || {},
- rt = {},
- ut = {},
- o = 0,
- ft = "canceled",
- f = {
- readyState: 0,
- getResponseHeader: function(n) {
- var t;
- if (2 === o) {
- if (!p)
- for (p = {}; t = oo.exec(d);) p[t[1].toLowerCase()] = t[2];
- t = p[n.toLowerCase()]
- }
- return null == t ? null : t
- },
- getAllResponseHeaders: function() {
- return 2 === o ? d : null
- },
- setRequestHeader: function(n, t) {
- var i = n.toLowerCase();
- return o || (n = ut[i] = ut[i] || n, rt[n] = t), this
- },
- overrideMimeType: function(n) {
- return o || (u.mimeType = n), this
- },
- statusCode: function(n) {
- var t;
- if (n)
- if (2 > o)
- for (t in n) b[t] = [b[t], n[t]];
- else f.always(n[f.status]);
- return this
- },
- abort: function(n) {
- var t = n || ft;
- return y && y.abort(t), k(0, t), this
- }
- };
- if (tt.promise(f).complete = it.add, f.success = f.done, f.error = f.fail, u.url = ((n || u.url || c) + "").replace(eo, "").replace(ho, w[1] + "//"), u.type = r.method || r.type || u.method || u.type, u.dataTypes = i.trim(u.dataType || "*").toLowerCase().match(s) || [""], null == u.crossDomain && (l = yu.exec(u.url.toLowerCase()), u.crossDomain = !(!l || l[1] === w[1] && l[2] === w[2] && (l[3] || ("http:" === l[1] ? 80 : 443)) == (w[3] || ("http:" === w[1] ? 80 : 443)))), u.data && u.processData && "string" != typeof u.data && (u.data = i.param(u.data, u.traditional)), du(wu, u, r, f), 2 === o) return f;
- v = u.global;
- v && 0 == i.active++ && i.event.trigger("ajaxStart");
- u.type = u.type.toUpperCase();
- u.hasContent = !so.test(u.type);
- e = u.url;
- u.hasContent || (u.data && (e = u.url += (ai.test(e) ? "&" : "?") + u.data, delete u.data), u.cache === !1 && (u.url = vu.test(e) ? e.replace(vu, "$1_=" + li++) : e + (ai.test(e) ? "&" : "?") + "_=" + li++));
- u.ifModified && (i.lastModified[e] && f.setRequestHeader("If-Modified-Since", i.lastModified[e]), i.etag[e] && f.setRequestHeader("If-None-Match", i.etag[e]));
- (u.data && u.hasContent && u.contentType !== !1 || r.contentType) && f.setRequestHeader("Content-Type", u.contentType);
- f.setRequestHeader("Accept", u.dataTypes[0] && u.accepts[u.dataTypes[0]] ? u.accepts[u.dataTypes[0]] + ("*" !== u.dataTypes[0] ? ", " + bu + "; q=0.01" : "") : u.accepts["*"]);
- for (a in u.headers) f.setRequestHeader(a, u.headers[a]);
- if (u.beforeSend && (u.beforeSend.call(h, f, u) === !1 || 2 === o)) return f.abort();
- ft = "abort";
- for (a in {
- success: 1,
- error: 1,
- complete: 1
- }) f[a](u[a]);
- if (y = du(vi, u, r, f)) {
- f.readyState = 1;
- v && nt.trigger("ajaxSend", [f, u]);
- u.async && u.timeout > 0 && (g = setTimeout(function() {
- f.abort("timeout")
- }, u.timeout));
- try {
- o = 1;
- y.send(rt, k)
- } catch (et) {
- if (!(2 > o)) throw et;
- k(-1, et)
- }
- } else k(-1, "No Transport");
- return f
- },
- getScript: function(n, r) {
- return i.get(n, t, r, "script")
- },
- getJSON: function(n, t, r) {
- return i.get(n, t, r, "json")
- }
- });
- i.ajaxSetup({
- accepts: {
- script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
- },
- contents: {
- script: /(?:java|ecma)script/
- },
- converters: {
- "text script": function(n) {
- return i.globalEval(n), n
- }
- }
- });
- i.ajaxPrefilter("script", function(n) {
- n.cache === t && (n.cache = !1);
- n.crossDomain && (n.type = "GET", n.global = !1)
- });
- i.ajaxTransport("script", function(n) {
- if (n.crossDomain) {
- var u, f = r.head || i("head")[0] || r.documentElement;
- return {
- send: function(t, i) {
- u = r.createElement("script");
- u.async = !0;
- n.scriptCharset && (u.charset = n.scriptCharset);
- u.src = n.url;
- u.onload = u.onreadystatechange = function(n, t) {
- (t || !u.readyState || /loaded|complete/.test(u.readyState)) && (u.onload = u.onreadystatechange = null, u.parentNode && u.parentNode.removeChild(u), u = null, t || i(200, "success"))
- };
- f.insertBefore(u, f.firstChild)
- },
- abort: function() {
- u && u.onload(t, !0)
- }
- }
- }
- });
- pi = [];
- lt = /(=)\?(?=&|$)|\?\?/;
- i.ajaxSetup({
- jsonp: "callback",
- jsonpCallback: function() {
- var n = pi.pop() || i.expando + "_" + li++;
- return this[n] = !0, n
- }
- });
- i.ajaxPrefilter("json jsonp", function(r, u, f) {
- var e, s, o, h = r.jsonp !== !1 && (lt.test(r.url) ? "url" : "string" == typeof r.data && !(r.contentType || "").indexOf("application/x-www-form-urlencoded") && lt.test(r.data) && "data");
- return h || "jsonp" === r.dataTypes[0] ? (e = r.jsonpCallback = i.isFunction(r.jsonpCallback) ? r.jsonpCallback() : r.jsonpCallback, h ? r[h] = r[h].replace(lt, "$1" + e) : r.jsonp !== !1 && (r.url += (ai.test(r.url) ? "&" : "?") + r.jsonp + "=" + e), r.converters["script json"] = function() {
- return o || i.error(e + " was not called"), o[0]
- }, r.dataTypes[0] = "json", s = n[e], n[e] = function() {
- o = arguments
- }, f.always(function() {
- n[e] = s;
- r[e] && (r.jsonpCallback = u.jsonpCallback, pi.push(e));
- o && i.isFunction(s) && s(o[0]);
- o = s = t
- }), "script") : t
- });
- gu = 0;
- at = n.ActiveXObject && function() {
- for (var n in g) g[n](t, !0)
- };
- i.ajaxSettings.xhr = n.ActiveXObject ? function() {
- return !this.isLocal && nf() || ao()
- } : nf;
- nt = i.ajaxSettings.xhr();
- i.support.cors = !!nt && "withCredentials" in nt;
- nt = i.support.ajax = !!nt;
- nt && i.ajaxTransport(function(r) {
- if (!r.crossDomain || i.support.cors) {
- var u;
- return {
- send: function(f, e) {
- var h, s, o = r.xhr();
- if (r.username ? o.open(r.type, r.url, r.async, r.username, r.password) : o.open(r.type, r.url, r.async), r.xhrFields)
- for (s in r.xhrFields) o[s] = r.xhrFields[s];
- r.mimeType && o.overrideMimeType && o.overrideMimeType(r.mimeType);
- r.crossDomain || f["X-Requested-With"] || (f["X-Requested-With"] = "XMLHttpRequest");
- try {
- for (s in f) o.setRequestHeader(s, f[s])
- } catch (c) {}
- o.send(r.hasContent && r.data || null);
- u = function(n, f) {
- var s, a, l, c;
- try {
- if (u && (f || 4 === o.readyState))
- if (u = t, h && (o.onreadystatechange = i.noop, at && delete g[h]), f) 4 !== o.readyState && o.abort();
- else {
- c = {};
- s = o.status;
- a = o.getAllResponseHeaders();
- "string" == typeof o.responseText && (c.text = o.responseText);
- try {
- l = o.statusText
- } catch (y) {
- l = ""
- }
- s || !r.isLocal || r.crossDomain ? 1223 === s && (s = 204) : s = c.text ? 200 : 404
- }
- } catch (v) {
- f || e(-1, v)
- }
- c && e(s, l, c, a)
- };
- r.async ? 4 === o.readyState ? setTimeout(u) : (h = ++gu, at && (g || (g = {}, i(n).unload(at)), g[h] = u), o.onreadystatechange = u) : u()
- },
- abort: function() {
- u && u(t, !0)
- }
- }
- }
- });
- var tt, vt, vo = /^(?:toggle|show|hide)$/,
- yo = RegExp("^(?:([+-])=|)(" + st + ")([a-z%]*)$", "i"),
- po = /queueHooks$/,
- yt = [ko],
- ft = {
- "*": [function(n, t) {
- var o, s, r = this.createTween(n, t),
- e = yo.exec(t),
- h = r.cur(),
- u = +h || 0,
- f = 1,
- c = 20;
- if (e) {
- if (o = +e[2], s = e[3] || (i.cssNumber[n] ? "" : "px"), "px" !== s && u) {
- u = i.css(r.elem, n, !0) || o || 1;
- do f = f || ".5", u /= f, i.style(r.elem, n, u + s); while (f !== (f = r.cur() / h) && 1 !== f && --c)
- }
- r.unit = s;
- r.start = u;
- r.end = e[1] ? u + (e[1] + 1) * o : o
- }
- return r
- }]
- };
- i.Animation = i.extend(rf, {
- tweener: function(n, t) {
- i.isFunction(n) ? (t = n, n = ["*"]) : n = n.split(" ");
- for (var r, u = 0, f = n.length; f > u; u++) r = n[u], ft[r] = ft[r] || [], ft[r].unshift(t)
- },
- prefilter: function(n, t) {
- t ? yt.unshift(n) : yt.push(n)
- }
- });
- i.Tween = f;
- f.prototype = {
- constructor: f,
- init: function(n, t, r, u, f, e) {
- this.elem = n;
- this.prop = r;
- this.easing = f || "swing";
- this.options = t;
- this.start = this.now = this.cur();
- this.end = u;
- this.unit = e || (i.cssNumber[r] ? "" : "px")
- },
- cur: function() {
- var n = f.propHooks[this.prop];
- return n && n.get ? n.get(this) : f.propHooks._default.get(this)
- },
- run: function(n) {
- var r, t = f.propHooks[this.prop];
- return this.pos = r = this.options.duration ? i.easing[this.easing](n, this.options.duration * n, 0, 1, this.options.duration) : n, this.now = (this.end - this.start) * r + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), t && t.set ? t.set(this) : f.propHooks._default.set(this), this
- }
- };
- f.prototype.init.prototype = f.prototype;
- f.propHooks = {
- _default: {
- get: function(n) {
- var t;
- return null == n.elem[n.prop] || n.elem.style && null != n.elem.style[n.prop] ? (t = i.css(n.elem, n.prop, ""), t && "auto" !== t ? t : 0) : n.elem[n.prop]
- },
- set: function(n) {
- i.fx.step[n.prop] ? i.fx.step[n.prop](n) : n.elem.style && (null != n.elem.style[i.cssProps[n.prop]] || i.cssHooks[n.prop]) ? i.style(n.elem, n.prop, n.now + n.unit) : n.elem[n.prop] = n.now
- }
- }
- };
- f.propHooks.scrollTop = f.propHooks.scrollLeft = {
- set: function(n) {
- n.elem.nodeType && n.elem.parentNode && (n.elem[n.prop] = n.now)
- }
- };
- i.each(["toggle", "show", "hide"], function(n, t) {
- var r = i.fn[t];
- i.fn[t] = function(n, i, u) {
- return null == n || "boolean" == typeof n ? r.apply(this, arguments) : this.animate(pt(t, !0), n, i, u)
- }
- });
- i.fn.extend({
- fadeTo: function(n, t, i, r) {
- return this.filter(ut).css("opacity", 0).show().end().animate({
- opacity: t
- }, n, i, r)
- },
- animate: function(n, t, r, u) {
- var o = i.isEmptyObject(n),
- e = i.speed(t, r, u),
- f = function() {
- var t = rf(this, i.extend({}, n), e);
- f.finish = function() {
- t.stop(!0)
- };
- (o || i._data(this, "finish")) && t.stop(!0)
- };
- return f.finish = f, o || e.queue === !1 ? this.each(f) : this.queue(e.queue, f)
- },
- stop: function(n, r, u) {
- var f = function(n) {
- var t = n.stop;
- delete n.stop;
- t(u)
- };
- return "string" != typeof n && (u = r, r = n, n = t), r && n !== !1 && this.queue(n || "fx", []), this.each(function() {
- var o = !0,
- t = null != n && n + "queueHooks",
- e = i.timers,
- r = i._data(this);
- if (t) r[t] && r[t].stop && f(r[t]);
- else
- for (t in r) r[t] && r[t].stop && po.test(t) && f(r[t]);
- for (t = e.length; t--;) e[t].elem !== this || null != n && e[t].queue !== n || (e[t].anim.stop(u), o = !1, e.splice(t, 1));
- (o || !u) && i.dequeue(this, n)
- })
- },
- finish: function(n) {
- return n !== !1 && (n = n || "fx"), this.each(function() {
- var t, f = i._data(this),
- r = f[n + "queue"],
- e = f[n + "queueHooks"],
- u = i.timers,
- o = r ? r.length : 0;
- for (f.finish = !0, i.queue(this, n, []), e && e.cur && e.cur.finish && e.cur.finish.call(this), t = u.length; t--;) u[t].elem === this && u[t].queue === n && (u[t].anim.stop(!0), u.splice(t, 1));
- for (t = 0; o > t; t++) r[t] && r[t].finish && r[t].finish.call(this);
- delete f.finish
- })
- }
- });
- i.each({
- slideDown: pt("show"),
- slideUp: pt("hide"),
- slideToggle: pt("toggle"),
- fadeIn: {
- opacity: "show"
- },
- fadeOut: {
- opacity: "hide"
- },
- fadeToggle: {
- opacity: "toggle"
- }
- }, function(n, t) {
- i.fn[n] = function(n, i, r) {
- return this.animate(t, n, i, r)
- }
- });
- i.speed = function(n, t, r) {
- var u = n && "object" == typeof n ? i.extend({}, n) : {
- complete: r || !r && t || i.isFunction(n) && n,
- duration: n,
- easing: r && t || t && !i.isFunction(t) && t
- };
- return u.duration = i.fx.off ? 0 : "number" == typeof u.duration ? u.duration : u.duration in i.fx.speeds ? i.fx.speeds[u.duration] : i.fx.speeds._default, (null == u.queue || u.queue === !0) && (u.queue = "fx"), u.old = u.complete, u.complete = function() {
- i.isFunction(u.old) && u.old.call(this);
- u.queue && i.dequeue(this, u.queue)
- }, u
- };
- i.easing = {
- linear: function(n) {
- return n
- },
- swing: function(n) {
- return .5 - Math.cos(n * Math.PI) / 2
- }
- };
- i.timers = [];
- i.fx = f.prototype.init;
- i.fx.tick = function() {
- var u, n = i.timers,
- r = 0;
- for (tt = i.now(); n.length > r; r++) u = n[r], u() || n[r] !== u || n.splice(r--, 1);
- n.length || i.fx.stop();
- tt = t
- };
- i.fx.timer = function(n) {
- n() && i.timers.push(n) && i.fx.start()
- };
- i.fx.interval = 13;
- i.fx.start = function() {
- vt || (vt = setInterval(i.fx.tick, i.fx.interval))
- };
- i.fx.stop = function() {
- clearInterval(vt);
- vt = null
- };
- i.fx.speeds = {
- slow: 600,
- fast: 200,
- _default: 400
- };
- i.fx.step = {};
- i.expr && i.expr.filters && (i.expr.filters.animated = function(n) {
- return i.grep(i.timers, function(t) {
- return n === t.elem
- }).length
- });
- i.fn.offset = function(n) {
- if (arguments.length) return n === t ? this : this.each(function(t) {
- i.offset.setOffset(this, n, t)
- });
- var r, e, f = {
- top: 0,
- left: 0
- },
- u = this[0],
- s = u && u.ownerDocument;
- if (s) return r = s.documentElement, i.contains(r, u) ? (typeof u.getBoundingClientRect !== o && (f = u.getBoundingClientRect()), e = uf(s), {
- top: f.top + (e.pageYOffset || r.scrollTop) - (r.clientTop || 0),
- left: f.left + (e.pageXOffset || r.scrollLeft) - (r.clientLeft || 0)
- }) : f
- };
- i.offset = {
- setOffset: function(n, t, r) {
- var f = i.css(n, "position");
- "static" === f && (n.style.position = "relative");
- var e = i(n),
- o = e.offset(),
- l = i.css(n, "top"),
- a = i.css(n, "left"),
- v = ("absolute" === f || "fixed" === f) && i.inArray("auto", [l, a]) > -1,
- u = {},
- s = {},
- h, c;
- v ? (s = e.position(), h = s.top, c = s.left) : (h = parseFloat(l) || 0, c = parseFloat(a) || 0);
- i.isFunction(t) && (t = t.call(n, r, o));
- null != t.top && (u.top = t.top - o.top + h);
- null != t.left && (u.left = t.left - o.left + c);
- "using" in t ? t.using.call(n, u) : e.css(u)
- }
- };
- i.fn.extend({
- position: function() {
- if (this[0]) {
- var n, r, t = {
- top: 0,
- left: 0
- },
- u = this[0];
- return "fixed" === i.css(u, "position") ? r = u.getBoundingClientRect() : (n = this.offsetParent(), r = this.offset(), i.nodeName(n[0], "html") || (t = n.offset()), t.top += i.css(n[0], "borderTopWidth", !0), t.left += i.css(n[0], "borderLeftWidth", !0)), {
- top: r.top - t.top - i.css(u, "marginTop", !0),
- left: r.left - t.left - i.css(u, "marginLeft", !0)
- }
- }
- },
- offsetParent: function() {
- return this.map(function() {
- for (var n = this.offsetParent || r.documentElement; n && !i.nodeName(n, "html") && "static" === i.css(n, "position");) n = n.offsetParent;
- return n || r.documentElement
- })
- }
- });
- i.each({
- scrollLeft: "pageXOffset",
- scrollTop: "pageYOffset"
- }, function(n, r) {
- var u = /Y/.test(r);
- i.fn[n] = function(f) {
- return i.access(this, function(n, f, e) {
- var o = uf(n);
- return e === t ? o ? r in o ? o[r] : o.document.documentElement[f] : n[f] : (o ? o.scrollTo(u ? i(o).scrollLeft() : e, u ? e : i(o).scrollTop()) : n[f] = e, t)
- }, n, f, arguments.length, null)
- }
- });
- i.each({
- Height: "height",
- Width: "width"
- }, function(n, r) {
- i.each({
- padding: "inner" + n,
- content: r,
- "": "outer" + n
- }, function(u, f) {
- i.fn[f] = function(f, e) {
- var o = arguments.length && (u || "boolean" != typeof f),
- s = u || (f === !0 || e === !0 ? "margin" : "border");
- return i.access(this, function(r, u, f) {
- var e;
- return i.isWindow(r) ? r.document.documentElement["client" + n] : 9 === r.nodeType ? (e = r.documentElement, Math.max(r.body["scroll" + n], e["scroll" + n], r.body["offset" + n], e["offset" + n], e["client" + n])) : f === t ? i.css(r, u, s) : i.style(r, u, f, s)
- }, r, o ? f : t, o, null)
- }
- })
- });
- n.jQuery = n.$ = i;
- "function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function() {
- return i
- })
- })(window),
- function(n) {
- function i(n, t) {
- for (var i = window, r = (n || "").split("."); i && r.length;) i = i[r.shift()];
- return typeof i == "function" ? i : (t.push(n), Function.constructor.apply(null, t))
- }
- function r(n) {
- return n === "GET" || n === "POST"
- }
- function e(n, t) {
- r(t) || n.setRequestHeader("X-HTTP-Method-Override", t)
- }
- function o(t, i, r) {
- var u;
- r.indexOf("application/x-javascript") === -1 && (u = (t.getAttribute("data-ajax-mode") || "").toUpperCase(), n(t.getAttribute("data-ajax-update")).each(function(t, r) {
- var f;
- switch (u) {
- case "BEFORE":
- f = r.firstChild;
- n("<div />").html(i).contents().each(function() {
- r.insertBefore(this, f)
- });
- break;
- case "AFTER":
- n("<div />").html(i).contents().each(function() {
- r.appendChild(this)
- });
- break;
- default:
- n(r).html(i)
- }
- }))
- }
- function u(t, u) {
- var s, h, f, c;
- (s = t.getAttribute("data-ajax-confirm"), !s || window.confirm(s)) && (h = n(t.getAttribute("data-ajax-loading")), c = t.getAttribute("data-ajax-loading-duration") || 0, n.extend(u, {
- type: t.getAttribute("data-ajax-method") || undefined,
- url: t.getAttribute("data-ajax-url") || undefined,
- beforeSend: function(n) {
- var r;
- return e(n, f), r = i(t.getAttribute("data-ajax-begin"), ["xhr"]).apply(this, arguments), r !== !1 && h.show(c), r
- },
- complete: function() {
- h.hide(c);
- i(t.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments)
- },
- success: function(n, r, u) {
- o(t, n, u.getResponseHeader("Content-Type") || "text/html");
- i(t.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(this, arguments)
- },
- error: i(t.getAttribute("data-ajax-failure"), ["xhr", "status", "error"])
- }), u.data.push({
- name: "X-Requested-With",
- value: "XMLHttpRequest"
- }), f = u.type.toUpperCase(), r(f) || (u.type = "POST", u.data.push({
- name: "X-HTTP-Method-Override",
- value: f
- })), n.ajax(u))
- }
- function s(t) {
- var i = n(t).data(f);
- return !i || !i.validate || i.validate()
- }
- var t = "unobtrusiveAjaxClick",
- f = "unobtrusiveValidation";
- n(document).on("click", "a[data-ajax=true]", function(n) {
- n.preventDefault();
- u(this, {
- url: this.href,
- type: "GET",
- data: []
- })
- });
- n(document).on("click", "form[data-ajax=true] input[type=image]", function(i) {
- var r = i.target.name,
- u = n(i.target),
- f = u.parents("form")[0],
- e = u.offset();
- n(f).data(t, [{
- name: r + ".x",
- value: Math.round(i.pageX - e.left)
- }, {
- name: r + ".y",
- value: Math.round(i.pageY - e.top)
- }]);
- setTimeout(function() {
- n(f).removeData(t)
- }, 0)
- });
- n(document).on("click", "form[data-ajax=true] :submit", function(i) {
- var r = i.target.name,
- u = n(i.target).parents("form")[0];
- n(u).data(t, r ? [{
- name: r,
- value: i.target.value
- }] : []);
- setTimeout(function() {
- n(u).removeData(t)
- }, 0)
- });
- n(document).on("submit", "form[data-ajax=true]", function(i) {
- var r = n(this).data(t) || [];
- (i.preventDefault(), s(this)) && u(this, {
- url: this.action,
- type: this.method || "GET",
- data: r.concat(n(this).serializeArray())
- })
- })
- }(jQuery),
- function(n) {
- n.extend(n.fn, {
- validate: function(t) {
- if (!this.length) return t && t.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing."), void 0;
- var i = n.data(this[0], "validator");
- return i ? i : (this.attr("novalidate", "novalidate"), i = new n.validator(t, this[0]), n.data(this[0], "validator", i), i.settings.onsubmit && (this.validateDelegate(":submit", "click", function(t) {
- i.settings.submitHandler && (i.submitButton = t.target);
- n(t.target).hasClass("cancel") && (i.cancelSubmit = !0);
- void 0 !== n(t.target).attr("formnovalidate") && (i.cancelSubmit = !0)
- }), this.submit(function(t) {
- function r() {
- var r;
- return i.settings.submitHandler ? (i.submitButton && (r = n("<input type='hidden'/>").attr("name", i.submitButton.name).val(n(i.submitButton).val()).appendTo(i.currentForm)), i.settings.submitHandler.call(i, i.currentForm, t), i.submitButton && r.remove(), !1) : !0
- }
- return i.settings.debug && t.preventDefault(), i.cancelSubmit ? (i.cancelSubmit = !1, r()) : i.form() ? i.pendingRequest ? (i.formSubmitted = !0, !1) : r() : (i.focusInvalid(), !1)
- })), i)
- },
- valid: function() {
- if (n(this[0]).is("form")) return this.validate().form();
- var t = !0,
- i = n(this[0].form).validate();
- return this.each(function() {
- t = t && i.element(this)
- }), t
- },
- removeAttrs: function(t) {
- var i = {},
- r = this;
- return n.each(t.split(/\s/), function(n, t) {
- i[t] = r.attr(t);
- r.removeAttr(t)
- }), i
- },
- rules: function(t, i) {
- var r = this[0],
- o, u, h;
- if (t) {
- var e = n.data(r.form, "validator").settings,
- s = e.rules,
- f = n.validator.staticRules(r);
- switch (t) {
- case "add":
- n.extend(f, n.validator.normalizeRule(i));
- delete f.messages;
- s[r.name] = f;
- i.messages && (e.messages[r.name] = n.extend(e.messages[r.name], i.messages));
- break;
- case "remove":
- return i ? (o = {}, n.each(i.split(/\s/), function(n, t) {
- o[t] = f[t];
- delete f[t]
- }), o) : (delete s[r.name], f)
- }
- }
- return u = n.validator.normalizeRules(n.extend({}, n.validator.classRules(r), n.validator.attributeRules(r), n.validator.dataRules(r), n.validator.staticRules(r)), r), u.required && (h = u.required, delete u.required, u = n.extend({
- required: h
- }, u)), u
- }
- });
- n.extend(n.expr[":"], {
- blank: function(t) {
- return !n.trim("" + n(t).val())
- },
- filled: function(t) {
- return !!n.trim("" + n(t).val())
- },
- unchecked: function(t) {
- return !n(t).prop("checked")
- }
- });
- n.validator = function(t, i) {
- this.settings = n.extend(!0, {}, n.validator.defaults, t);
- this.currentForm = i;
- this.init()
- };
- n.validator.format = function(t, i) {
- return 1 === arguments.length ? function() {
- var i = n.makeArray(arguments);
- return i.unshift(t), n.validator.format.apply(this, i)
- } : (arguments.length > 2 && i.constructor !== Array && (i = n.makeArray(arguments).slice(1)), i.constructor !== Array && (i = [i]), n.each(i, function(n, i) {
- t = t.replace(RegExp("\\{" + n + "\\}", "g"), function() {
- return i
- })
- }), t)
- };
- n.extend(n.validator, {
- defaults: {
- messages: {},
- groups: {},
- rules: {},
- errorClass: "error",
- validClass: "valid",
- errorElement: "label",
- focusInvalid: !0,
- errorContainer: n([]),
- errorLabelContainer: n([]),
- onsubmit: !0,
- ignore: ":hidden",
- ignoreTitle: !1,
- onfocusin: function(n) {
- this.lastActive = n;
- this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, n, this.settings.errorClass, this.settings.validClass), this.addWrapper(this.errorsFor(n)).hide())
- },
- onfocusout: function(n) {
- !this.checkable(n) && (n.name in this.submitted || !this.optional(n)) && this.element(n)
- },
- onkeyup: function(n, t) {
- (9 !== t.which || "" !== this.elementValue(n)) && (n.name in this.submitted || n === this.lastElement) && this.element(n)
- },
- onclick: function(n) {
- n.name in this.submitted ? this.element(n) : n.parentNode.name in this.submitted && this.element(n.parentNode)
- },
- highlight: function(t, i, r) {
- "radio" === t.type ? this.findByName(t.name).addClass(i).removeClass(r) : n(t).addClass(i).removeClass(r)
- },
- unhighlight: function(t, i, r) {
- "radio" === t.type ? this.findByName(t.name).removeClass(i).addClass(r) : n(t).removeClass(i).addClass(r)
- }
- },
- setDefaults: function(t) {
- n.extend(n.validator.defaults, t)
- },
- messages: {
- required: "This field is required.",
- remote: "Please fix this field.",
- email: "Please enter a valid email address.",
- url: "Please enter a valid URL.",
- date: "Please enter a valid date.",
- dateISO: "Please enter a valid date (ISO).",
- number: "Please enter a valid number.",
- digits: "Please enter only digits.",
- creditcard: "Please enter a valid credit card number.",
- equalTo: "Please enter the same value again.",
- maxlength: n.validator.format("Please enter no more than {0} characters."),
- minlength: n.validator.format("Please enter at least {0} characters."),
- rangelength: n.validator.format("Please enter a value between {0} and {1} characters long."),
- range: n.validator.format("Please enter a value between {0} and {1}."),
- max: n.validator.format("Please enter a value less than or equal to {0}."),
- min: n.validator.format("Please enter a value greater than or equal to {0}.")
- },
- autoCreateRanges: !1,
- prototype: {
- init: function() {
- function i(t) {
- var i = n.data(this[0].form, "validator"),
- r = "on" + t.type.replace(/^validate/, "");
- i.settings[r] && i.settings[r].call(i, this[0], t)
- }
- var r, t;
- this.labelContainer = n(this.settings.errorLabelContainer);
- this.errorContext = this.labelContainer.length && this.labelContainer || n(this.currentForm);
- this.containers = n(this.settings.errorContainer).add(this.settings.errorLabelContainer);
- this.submitted = {};
- this.valueCache = {};
- this.pendingRequest = 0;
- this.pending = {};
- this.invalid = {};
- this.reset();
- r = this.groups = {};
- n.each(this.settings.groups, function(t, i) {
- "string" == typeof i && (i = i.split(/\s/));
- n.each(i, function(n, i) {
- r[i] = t
- })
- });
- t = this.settings.rules;
- n.each(t, function(i, r) {
- t[i] = n.validator.normalizeRule(r)
- });
- n(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ", "focusin focusout keyup", i).validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", i);
- this.settings.invalidHandler && n(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler)
- },
- form: function() {
- return this.checkForm(), n.extend(this.submitted, this.errorMap), this.invalid = n.extend({}, this.errorMap), this.valid() || n(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
- },
- checkForm: function() {
- this.prepareForm();
- for (var n = 0, t = this.currentElements = this.elements(); t[n]; n++) this.check(t[n]);
- return this.valid()
- },
- element: function(t) {
- t = this.validationTargetFor(this.clean(t));
- this.lastElement = t;
- this.prepareElement(t);
- this.currentElements = n(t);
- var i = this.check(t) !== !1;
- return i ? delete this.invalid[t.name] : this.invalid[t.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), i
- },
- showErrors: function(t) {
- if (t) {
- n.extend(this.errorMap, t);
- this.errorList = [];
- for (var i in t) this.errorList.push({
- message: t[i],
- element: this.findByName(i)[0]
- });
- this.successList = n.grep(this.successList, function(n) {
- return !(n.name in t)
- })
- }
- this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
- },
- resetForm: function() {
- n.fn.resetForm && n(this.currentForm).resetForm();
- this.submitted = {};
- this.lastElement = null;
- this.prepareForm();
- this.hideErrors();
- this.elements().removeClass(this.settings.errorClass).removeData("previousValue")
- },
- numberOfInvalids: function() {
- return this.objectLength(this.invalid)
- },
- objectLength: function(n) {
- var t = 0;
- for (var i in n) t++;
- return t
- },
- hideErrors: function() {
- this.addWrapper(this.toHide).hide()
- },
- valid: function() {
- return 0 === this.size()
- },
- size: function() {
- return this.errorList.length
- },
- focusInvalid: function() {
- if (this.settings.focusInvalid) try {
- n(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin")
- } catch (t) {}
- },
- findLastActive: function() {
- var t = this.lastActive;
- return t && 1 === n.grep(this.errorList, function(n) {
- return n.element.name === t.name
- }).length && t
- },
- elements: function() {
- var t = this,
- i = {};
- return n(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function() {
- return !this.name && t.settings.debug && window.console && console.error("%o has no name assigned", this), this.name in i || !t.objectLength(n(this).rules()) ? !1 : (i[this.name] = !0, !0)
- })
- },
- clean: function(t) {
- return n(t)[0]
- },
- errors: function() {
- var t = this.settings.errorClass.replace(" ", ".");
- return n(this.settings.errorElement + "." + t, this.errorContext)
- },
- reset: function() {
- this.successList = [];
- this.errorList = [];
- this.errorMap = {};
- this.toShow = n([]);
- this.toHide = n([]);
- this.currentElements = n([])
- },
- prepareForm: function() {
- this.reset();
- this.toHide = this.errors().add(this.containers)
- },
- prepareElement: function(n) {
- this.reset();
- this.toHide = this.errorsFor(n)
- },
- elementValue: function(t) {
- var r = n(t).attr("type"),
- i = n(t).val();
- return "radio" === r || "checkbox" === r ? n("input[name='" + n(t).attr("name") + "']:checked").val() : "string" == typeof i ? i.replace(/\r/g, "") : i
- },
- check: function(t) {
- var r, u;
- t = this.validationTargetFor(this.clean(t));
- var i, f = n(t).rules(),
- e = !1,
- s = this.elementValue(t);
- for (r in f) {
- u = {
- method: r,
- parameters: f[r]
- };
- try {
- if (i = n.validator.methods[r].call(this, s, t, u.parameters), "dependency-mismatch" === i) {
- e = !0;
- continue
- }
- if (e = !1, "pending" === i) return this.toHide = this.toHide.not(this.errorsFor(t)), void 0;
- if (!i) return this.formatAndAdd(t, u), !1
- } catch (o) {
- throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + t.id + ", check the '" + u.method + "' method.", o), o;
- }
- }
- if (!e) return (this.objectLength(f) && this.successList.push(t), !0)
- },
- customDataMessage: function(t, i) {
- return n(t).data("msg-" + i.toLowerCase()) || t.attributes && n(t).attr("data-msg-" + i.toLowerCase())
- },
- customMessage: function(n, t) {
- var i = this.settings.messages[n];
- return i && (i.constructor === String ? i : i[t])
- },
- findDefined: function() {
- for (var n = 0; arguments.length > n; n++)
- if (void 0 !== arguments[n]) return arguments[n];
- return void 0
- },
- defaultMessage: function(t, i) {
- return this.findDefined(this.customMessage(t.name, i), this.customDataMessage(t, i), !this.settings.ignoreTitle && t.title || void 0, n.validator.messages[i], "<strong>Warning: No message defined for " + t.name + "<\/strong>")
- },
- formatAndAdd: function(t, i) {
- var r = this.defaultMessage(t, i.method),
- u = /\$?\{(\d+)\}/g;
- "function" == typeof r ? r = r.call(this, i.parameters, t) : u.test(r) && (r = n.validator.format(r.replace(u, "{$1}"), i.parameters));
- this.errorList.push({
- message: r,
- element: t
- });
- this.errorMap[t.name] = r;
- this.submitted[t.name] = r
- },
- addWrapper: function(n) {
- return this.settings.wrapper && (n = n.add(n.parent(this.settings.wrapper))), n
- },
- defaultShowErrors: function() {
- for (var i, t, n = 0; this.errorList[n]; n++) t = this.errorList[n], this.settings.highlight && this.settings.highlight.call(this, t.element, this.settings.errorClass, this.settings.validClass), this.showLabel(t.element, t.message);
- if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)
- for (n = 0; this.successList[n]; n++) this.showLabel(this.successList[n]);
- if (this.settings.unhighlight)
- for (n = 0, i = this.validElements(); i[n]; n++) this.settings.unhighlight.call(this, i[n], this.settings.errorClass, this.settings.validClass);
- this.toHide = this.toHide.not(this.toShow);
- this.hideErrors();
- this.addWrapper(this.toShow).show()
- },
- validElements: function() {
- return this.currentElements.not(this.invalidElements())
- },
- invalidElements: function() {
- return n(this.errorList).map(function() {
- return this.element
- })
- },
- showLabel: function(t, i) {
- var r = this.errorsFor(t);
- r.length ? (r.removeClass(this.settings.validClass).addClass(this.settings.errorClass), r.html(i)) : (r = n("<" + this.settings.errorElement + ">").attr("for", this.idOrName(t)).addClass(this.settings.errorClass).html(i || ""), this.settings.wrapper && (r = r.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.append(r).length || (this.settings.errorPlacement ? this.settings.errorPlacement(r, n(t)) : r.insertAfter(t)));
- !i && this.settings.success && (r.text(""), "string" == typeof this.settings.success ? r.addClass(this.settings.success) : this.settings.success(r, t));
- this.toShow = this.toShow.add(r)
- },
- errorsFor: function(t) {
- var i = this.idOrName(t);
- return this.errors().filter(function() {
- return n(this).attr("for") === i
- })
- },
- idOrName: function(n) {
- return this.groups[n.name] || (this.checkable(n) ? n.name : n.id || n.name)
- },
- validationTargetFor: function(n) {
- return this.checkable(n) && (n = this.findByName(n.name).not(this.settings.ignore)[0]), n
- },
- checkable: function(n) {
- return /radio|checkbox/i.test(n.type)
- },
- findByName: function(t) {
- return n(this.currentForm).find("[name='" + t + "']")
- },
- getLength: function(t, i) {
- switch (i.nodeName.toLowerCase()) {
- case "select":
- return n("option:selected", i).length;
- case "input":
- if (this.checkable(i)) return this.findByName(i.name).filter(":checked").length
- }
- return t.length
- },
- depend: function(n, t) {
- return this.dependTypes[typeof n] ? this.dependTypes[typeof n](n, t) : !0
- },
- dependTypes: {
- boolean: function(n) {
- return n
- },
- string: function(t, i) {
- return !!n(t, i.form).length
- },
- "function": function(n, t) {
- return n(t)
- }
- },
- optional: function(t) {
- var i = this.elementValue(t);
- return !n.validator.methods.required.call(this, i, t) && "dependency-mismatch"
- },
- startRequest: function(n) {
- this.pending[n.name] || (this.pendingRequest++, this.pending[n.name] = !0)
- },
- stopRequest: function(t, i) {
- this.pendingRequest--;
- 0 > this.pendingRequest && (this.pendingRequest = 0);
- delete this.pending[t.name];
- i && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (n(this.currentForm).submit(), this.formSubmitted = !1) : !i && 0 === this.pendingRequest && this.formSubmitted && (n(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
- },
- previousValue: function(t) {
- return n.data(t, "previousValue") || n.data(t, "previousValue", {
- old: null,
- valid: !0,
- message: this.defaultMessage(t, "remote")
- })
- }
- },
- classRuleSettings: {
- required: {
- required: !0
- },
- email: {
- email: !0
- },
- url: {
- url: !0
- },
- date: {
- date: !0
- },
- dateISO: {
- dateISO: !0
- },
- number: {
- number: !0
- },
- digits: {
- digits: !0
- },
- creditcard: {
- creditcard: !0
- }
- },
- addClassRules: function(t, i) {
- t.constructor === String ? this.classRuleSettings[t] = i : n.extend(this.classRuleSettings, t)
- },
- classRules: function(t) {
- var i = {},
- r = n(t).attr("class");
- return r && n.each(r.split(" "), function() {
- this in n.validator.classRuleSettings && n.extend(i, n.validator.classRuleSettings[this])
- }), i
- },
- attributeRules: function(t) {
- var u = {},
- e = n(t),
- f = e[0].getAttribute("type"),
- r, i;
- for (r in n.validator.methods) "required" === r ? (i = e.get(0).getAttribute(r), "" === i && (i = !0), i = !!i) : i = e.attr(r), /min|max/.test(r) && (null === f || /number|range|text/.test(f)) && (i = Number(i)), i ? u[r] = i : f === r && "range" !== f && (u[r] = !0);
- return u.maxlength && /-1|2147483647|524288/.test(u.maxlength) && delete u.maxlength, u
- },
- dataRules: function(t) {
- var i, r, u = {},
- f = n(t);
- for (i in n.validator.methods) r = f.data("rule-" + i.toLowerCase()), void 0 !== r && (u[i] = r);
- return u
- },
- staticRules: function(t) {
- var i = {},
- r = n.data(t.form, "validator");
- return r.settings.rules && (i = n.validator.normalizeRule(r.settings.rules[t.name]) || {}), i
- },
- normalizeRules: function(t, i) {
- return n.each(t, function(r, u) {
- if (u === !1) return delete t[r], void 0;
- if (u.param || u.depends) {
- var f = !0;
- switch (typeof u.depends) {
- case "string":
- f = !!n(u.depends, i.form).length;
- break;
- case "function":
- f = u.depends.call(i, i)
- }
- f ? t[r] = void 0 !== u.param ? u.param : !0 : delete t[r]
- }
- }), n.each(t, function(r, u) {
- t[r] = n.isFunction(u) ? u(i) : u
- }), n.each(["minlength", "maxlength"], function() {
- t[this] && (t[this] = Number(t[this]))
- }), n.each(["rangelength", "range"], function() {
- var i;
- t[this] && (n.isArray(t[this]) ? t[this] = [Number(t[this][0]), Number(t[this][1])] : "string" == typeof t[this] && (i = t[this].split(/[\s,]+/), t[this] = [Number(i[0]), Number(i[1])]))
- }), n.validator.autoCreateRanges && (t.min && t.max && (t.range = [t.min, t.max], delete t.min, delete t.max), t.minlength && t.maxlength && (t.rangelength = [t.minlength, t.maxlength], delete t.minlength, delete t.maxlength)), t
- },
- normalizeRule: function(t) {
- if ("string" == typeof t) {
- var i = {};
- n.each(t.split(/\s/), function() {
- i[this] = !0
- });
- t = i
- }
- return t
- },
- addMethod: function(t, i, r) {
- n.validator.methods[t] = i;
- n.validator.messages[t] = void 0 !== r ? r : n.validator.messages[t];
- 3 > i.length && n.validator.addClassRules(t, n.validator.normalizeRule(t))
- },
- methods: {
- required: function(t, i, r) {
- if (!this.depend(r, i)) return "dependency-mismatch";
- if ("select" === i.nodeName.toLowerCase()) {
- var u = n(i).val();
- return u && u.length > 0
- }
- return this.checkable(i) ? this.getLength(t, i) > 0 : n.trim(t).length > 0
- },
- email: function(n, t) {
- return this.optional(t) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(n)
- },
- url: function(n, t) {
- return this.optional(t) || /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(n)
- },
- date: function(n, t) {
- return this.optional(t) || !/Invalid|NaN/.test("" + new Date(n))
- },
- dateISO: function(n, t) {
- return this.optional(t) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(n)
- },
- number: function(n, t) {
- return this.optional(t) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(n)
- },
- digits: function(n, t) {
- return this.optional(t) || /^\d+$/.test(n)
- },
- creditcard: function(n, t) {
- var r, e;
- if (this.optional(t)) return "dependency-mismatch";
- if (/[^0-9 \-]+/.test(n)) return !1;
- var f = 0,
- i = 0,
- u = !1;
- for (n = n.replace(/\D/g, ""), r = n.length - 1; r >= 0; r--) e = n.charAt(r), i = parseInt(e, 10), u && (i *= 2) > 9 && (i -= 9), f += i, u = !u;
- return 0 == f % 10
- },
- minlength: function(t, i, r) {
- var u = n.isArray(t) ? t.length : this.getLength(n.trim(t), i);
- return this.optional(i) || u >= r
- },
- maxlength: function(t, i, r) {
- var u = n.isArray(t) ? t.length : this.getLength(n.trim(t), i);
- return this.optional(i) || r >= u
- },
- rangelength: function(t, i, r) {
- var u = n.isArray(t) ? t.length : this.getLength(n.trim(t), i);
- return this.optional(i) || u >= r[0] && r[1] >= u
- },
- min: function(n, t, i) {
- return this.optional(t) || n >= i
- },
- max: function(n, t, i) {
- return this.optional(t) || i >= n
- },
- range: function(n, t, i) {
- return this.optional(t) || n >= i[0] && i[1] >= n
- },
- equalTo: function(t, i, r) {
- var u = n(r);
- return this.settings.onfocusout && u.unbind(".validate-equalTo").bind("blur.validate-equalTo", function() {
- n(i).valid()
- }), t === u.val()
- },
- remote: function(t, i, r) {
- var f, u, e;
- return this.optional(i) ? "dependency-mismatch" : (f = this.previousValue(i), this.settings.messages[i.name] || (this.settings.messages[i.name] = {}), f.originalMessage = this.settings.messages[i.name].remote, this.settings.messages[i.name].remote = f.message, r = "string" == typeof r && {
- url: r
- } || r, f.old === t) ? f.valid : (f.old = t, u = this, this.startRequest(i), e = {}, e[i.name] = t, n.ajax(n.extend(!0, {
- url: r,
- mode: "abort",
- port: "validate" + i.name,
- dataType: "json",
- data: e,
- success: function(r) {
- var e, h, s, o;
- u.settings.messages[i.name].remote = f.originalMessage;
- e = r === !0 || "true" === r;
- e ? (h = u.formSubmitted, u.prepareElement(i), u.formSubmitted = h, u.successList.push(i), delete u.invalid[i.name], u.showErrors()) : (s = {}, o = r || u.defaultMessage(i, "remote"), s[i.name] = f.message = n.isFunction(o) ? o(t) : o, u.invalid[i.name] = !0, u.showErrors(s));
- f.valid = e;
- u.stopRequest(i, e)
- }
- }, r)), "pending")
- }
- }
- });
- n.format = n.validator.format
- }(jQuery),
- function(n) {
- var t = {},
- i;
- n.ajaxPrefilter ? n.ajaxPrefilter(function(n, i, r) {
- var u = n.port;
- "abort" === n.mode && (t[u] && t[u].abort(), t[u] = r)
- }) : (i = n.ajax, n.ajax = function(r) {
- var f = ("mode" in r ? r : n.ajaxSettings).mode,
- u = ("port" in r ? r : n.ajaxSettings).port;
- return "abort" === f ? (t[u] && t[u].abort(), t[u] = i.apply(this, arguments), t[u]) : i.apply(this, arguments)
- })
- }(jQuery),
- function(n) {
- n.extend(n.fn, {
- validateDelegate: function(t, i, r) {
- return this.bind(i, function(i) {
- var u = n(i.target);
- if (u.is(t)) return r.apply(u, arguments)
- })
- }
- })
- }(jQuery),
- function(n) {
- function i(n, t, i) {
- n.rules[t] = i;
- n.message && (n.messages[t] = n.message)
- }
- function h(n) {
- return n.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g)
- }
- function f(n) {
- return n.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1")
- }
- function e(n) {
- return n.substr(0, n.lastIndexOf(".") + 1)
- }
- function o(n, t) {
- return n.indexOf("*.") === 0 && (n = n.replace("*.", t)), n
- }
- function c(t, i) {
- var r = n(this).find("[data-valmsg-for='" + f(i[0].name) + "']"),
- u = r.attr("data-valmsg-replace"),
- e = u ? n.parseJSON(u) !== !1 : null;
- r.removeClass("field-validation-valid").addClass("field-validation-error");
- t.data("unobtrusiveContainer", r);
- e ? (r.empty(), t.removeClass("input-validation-error").appendTo(r)) : t.hide()
- }
- function l(t, i) {
- var u = n(this).find("[data-valmsg-summary=true]"),
- r = u.find("ul");
- r && r.length && i.errorList.length && (r.empty(), u.addClass("validation-summary-errors").removeClass("validation-summary-valid"), n.each(i.errorList, function() {
- n("<li />").html(this.message).appendTo(r)
- }))
- }
- function a(t) {
- var i = t.data("unobtrusiveContainer"),
- r = i.attr("data-valmsg-replace"),
- u = r ? n.parseJSON(r) : null;
- i && (i.addClass("field-validation-valid").removeClass("field-validation-error"), t.removeData("unobtrusiveContainer"), u && i.empty())
- }
- function v() {
- var t = n(this);
- t.data("validator").resetForm();
- t.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors");
- t.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")
- }
- function s(t) {
- var i = n(t),
- r = i.data(u),
- f = n.proxy(v, t);
- return r || (r = {
- options: {
- errorClass: "input-validation-error",
- errorElement: "span",
- errorPlacement: n.proxy(c, t),
- invalidHandler: n.proxy(l, t),
- messages: {},
- rules: {},
- success: n.proxy(a, t)
- },
- attachValidation: function() {
- i.unbind("reset." + u, f).bind("reset." + u, f).validate(this.options)
- },
- validate: function() {
- return i.validate(), i.valid()
- }
- }, i.data(u, r)), r
- }
- var r = n.validator,
- t, u = "unobtrusiveValidation";
- r.unobtrusive = {
- adapters: [],
- parseElement: function(t, i) {
- var u = n(t),
- f = u.parents("form")[0],
- r, e, o;
- f && (r = s(f), r.options.rules[t.name] = e = {}, r.options.messages[t.name] = o = {}, n.each(this.adapters, function() {
- var i = "data-val-" + this.name,
- r = u.attr(i),
- s = {};
- r !== undefined && (i += "-", n.each(this.params, function() {
- s[this] = u.attr(i + this)
- }), this.adapt({
- element: t,
- form: f,
- message: r,
- params: s,
- rules: e,
- messages: o
- }))
- }), n.extend(e, {
- __dummy__: !0
- }), i || r.attachValidation())
- },
- parse: function(t) {
- var i = n(t).parents("form").andSelf().add(n(t).find("form")).filter("form");
- n(t).find(":input[data-val=true]").each(function() {
- r.unobtrusive.parseElement(this, !0)
- });
- i.each(function() {
- var n = s(this);
- n && n.attachValidation()
- })
- }
- };
- t = r.unobtrusive.adapters;
- t.add = function(n, t, i) {
- return i || (i = t, t = []), this.push({
- name: n,
- params: t,
- adapt: i
- }), this
- };
- t.addBool = function(n, t) {
- return this.add(n, function(r) {
- i(r, t || n, !0)
- })
- };
- t.addMinMax = function(n, t, r, u, f, e) {
- return this.add(n, [f || "min", e || "max"], function(n) {
- var f = n.params.min,
- e = n.params.max;
- f && e ? i(n, u, [f, e]) : f ? i(n, t, f) : e && i(n, r, e)
- })
- };
- t.addSingleVal = function(n, t, r) {
- return this.add(n, [t || "val"], function(u) {
- i(u, r || n, u.params[t])
- })
- };
- r.addMethod("__dummy__", function() {
- return !0
- });
- r.addMethod("regex", function(n, t, i) {
- var r;
- return this.optional(t) ? !0 : (r = new RegExp(i).exec(n), r && r.index === 0 && r[0].length === n.length)
- });
- r.addMethod("nonalphamin", function(n, t, i) {
- var r;
- return i && (r = n.match(/\W/g), r = r && r.length >= i), r
- });
- t.addSingleVal("accept", "exts").addSingleVal("regex", "pattern");
- t.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
- t.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
- t.add("equalto", ["other"], function(t) {
- var r = e(t.element.name),
- u = t.params.other,
- s = o(u, r),
- h = n(t.form).find(":input[name='" + f(s) + "']")[0];
- i(t, "equalTo", h)
- });
- t.add("required", function(n) {
- (n.element.tagName.toUpperCase() !== "INPUT" || n.element.type.toUpperCase() !== "CHECKBOX") && i(n, "required", !0)
- });
- t.add("remote", ["url", "type", "additionalfields"], function(t) {
- var r = {
- url: t.params.url,
- type: t.params.type || "GET",
- data: {}
- },
- u = e(t.element.name);
- n.each(h(t.params.additionalfields || t.element.name), function(i, e) {
- var s = o(e, u);
- r.data[s] = function() {
- return n(t.form).find(":input[name='" + f(s) + "']").val()
- }
- });
- i(t, "remote", r)
- });
- t.add("password", ["min", "nonalphamin", "regex"], function(n) {
- n.params.min && i(n, "minlength", n.params.min);
- n.params.nonalphamin && i(n, "nonalphamin", n.params.nonalphamin);
- n.params.regex && i(n, "regex", n.params.regex)
- });
- n(function() {
- r.unobtrusive.parse(document)
- })
- }(jQuery);
- window.Modernizr = function(n, t, i) {
- function a(n) {
- c.cssText = n
- }
- function vt(n, t) {
- return a(y.join(n + ";") + (t || ""))
- }
- function h(n, t) {
- return typeof n === t
- }
- function v(n, t) {
- return !!~("" + n).indexOf(t)
- }
- function lt(n, t) {
- var u, r;
- for (u in n)
- if (r = n[u], !v(r, "-") && c[r] !== i) return t == "pfx" ? r : !0;
- return !1
- }
- function yt(n, t, r) {
- var f, u;
- for (f in n)
- if (u = t[n[f]], u !== i) return r === !1 ? n[f] : h(u, "function") ? u.bind(r || t) : u;
- return !1
- }
- function f(n, t, i) {
- var r = n.charAt(0).toUpperCase() + n.slice(1),
- u = (n + " " + ot.join(r + " ") + r).split(" ");
- return h(t, "string") || h(t, "undefined") ? lt(u, t) : (u = (n + " " + st.join(r + " ") + r).split(" "), yt(u, t, i))
- }
- function pt() {
- u.input = function(i) {
- for (var r = 0, u = i.length; r < u; r++) w[i[r]] = !!(i[r] in o);
- return w.list && (w.list = !!(t.createElement("datalist") && n.HTMLDataListElement)), w
- }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));
- u.inputtypes = function(n) {
- for (var u = 0, r, f, e, h = n.length; u < h; u++) o.setAttribute("type", f = n[u]), r = o.type !== "text", r && (o.value = g, o.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(f) && o.style.WebkitAppearance !== i ? (s.appendChild(o), e = t.defaultView, r = e.getComputedStyle && e.getComputedStyle(o, null).WebkitAppearance !== "textfield" && o.offsetHeight !== 0, s.removeChild(o)) : /^(search|tel)$/.test(f) || (r = /^(url|email)$/.test(f) ? o.checkValidity && o.checkValidity() === !1 : o.value != g)), ht[n[u]] = !!r;
- return ht
- }("search tel url email datetime date month week time datetime-local number range color".split(" "))
- }
- var u = {},
- d = !0,
- s = t.documentElement,
- e = "modernizr",
- ut = t.createElement(e),
- c = ut.style,
- o = t.createElement("input"),
- g = ":)",
- ft = {}.toString,
- y = " -webkit- -moz- -o- -ms- ".split(" "),
- et = "Webkit Moz O ms",
- ot = et.split(" "),
- st = et.toLowerCase().split(" "),
- p = {
- svg: "http://www.w3.org/2000/svg"
- },
- r = {},
- ht = {},
- w = {},
- nt = [],
- tt = nt.slice,
- b, l = function(n, i, r, u) {
- var l, a, c, v, f = t.createElement("div"),
- h = t.body,
- o = h || t.createElement("body");
- if (parseInt(r, 10))
- while (r--) c = t.createElement("div"), c.id = u ? u[r] : e + (r + 1), f.appendChild(c);
- return l = ["­", '<style id="s', e, '">', n, "<\/style>"].join(""), f.id = e, (h ? f : o).innerHTML += l, o.appendChild(f), h || (o.style.background = "", o.style.overflow = "hidden", v = s.style.overflow, s.style.overflow = "hidden", s.appendChild(o)), a = i(f, n), h ? f.parentNode.removeChild(f) : (o.parentNode.removeChild(o), s.style.overflow = v), !!a
- },
- at = function(t) {
- var i = n.matchMedia || n.msMatchMedia,
- r;
- return i ? i(t).matches : (l("@media " + t + " { #" + e + " { position: absolute; } }", function(t) {
- r = (n.getComputedStyle ? getComputedStyle(t, null) : t.currentStyle).position == "absolute"
- }), r)
- },
- ct = function() {
- function r(r, u) {
- u = u || t.createElement(n[r] || "div");
- r = "on" + r;
- var f = r in u;
- return f || (u.setAttribute || (u = t.createElement("div")), u.setAttribute && u.removeAttribute && (u.setAttribute(r, ""), f = h(u[r], "function"), h(u[r], "undefined") || (u[r] = i), u.removeAttribute(r))), u = null, f
- }
- var n = {
- select: "input",
- change: "input",
- submit: "form",
- reset: "form",
- error: "img",
- load: "img",
- abort: "img"
- };
- return r
- }(),
- it = {}.hasOwnProperty,
- rt, k;
- rt = h(it, "undefined") || h(it.call, "undefined") ? function(n, t) {
- return t in n && h(n.constructor.prototype[t], "undefined")
- } : function(n, t) {
- return it.call(n, t)
- };
- Function.prototype.bind || (Function.prototype.bind = function(n) {
- var t = this,
- i, r;
- if (typeof t != "function") throw new TypeError;
- return i = tt.call(arguments, 1), r = function() {
- var f, e, u;
- return this instanceof r ? (f = function() {}, f.prototype = t.prototype, e = new f, u = t.apply(e, i.concat(tt.call(arguments))), Object(u) === u) ? u : e : t.apply(n, i.concat(tt.call(arguments)))
- }, r
- });
- r.flexbox = function() {
- return f("flexWrap")
- };
- r.flexboxlegacy = function() {
- return f("boxDirection")
- };
- r.canvas = function() {
- var n = t.createElement("canvas");
- return !!(n.getContext && n.getContext("2d"))
- };
- r.canvastext = function() {
- return !!(u.canvas && h(t.createElement("canvas").getContext("2d").fillText, "function"))
- };
- r.webgl = function() {
- return !!n.WebGLRenderingContext
- };
- r.touch = function() {
- var i;
- return "ontouchstart" in n || n.DocumentTouch && t instanceof DocumentTouch ? i = !0 : l(["@media (", y.join("touch-enabled),("), e, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function(n) {
- i = n.offsetTop === 9
- }), i
- };
- r.geolocation = function() {
- return "geolocation" in navigator
- };
- r.postmessage = function() {
- return !!n.postMessage
- };
- r.websqldatabase = function() {
- return !!n.openDatabase
- };
- r.indexedDB = function() {
- return !!f("indexedDB", n)
- };
- r.hashchange = function() {
- return ct("hashchange", n) && (t.documentMode === i || t.documentMode > 7)
- };
- r.history = function() {
- return !!(n.history && history.pushState)
- };
- r.draganddrop = function() {
- var n = t.createElement("div");
- return "draggable" in n || "ondragstart" in n && "ondrop" in n
- };
- r.websockets = function() {
- return "WebSocket" in n || "MozWebSocket" in n
- };
- r.rgba = function() {
- return a("background-color:rgba(150,255,150,.5)"), v(c.backgroundColor, "rgba")
- };
- r.hsla = function() {
- return a("background-color:hsla(120,40%,100%,.5)"), v(c.backgroundColor, "rgba") || v(c.backgroundColor, "hsla")
- };
- r.multiplebgs = function() {
- return a("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(c.background)
- };
- r.backgroundsize = function() {
- return f("backgroundSize")
- };
- r.borderimage = function() {
- return f("borderImage")
- };
- r.borderradius = function() {
- return f("borderRadius")
- };
- r.boxshadow = function() {
- return f("boxShadow")
- };
- r.textshadow = function() {
- return t.createElement("div").style.textShadow === ""
- };
- r.opacity = function() {
- return vt("opacity:.55"), /^0.55$/.test(c.opacity)
- };
- r.cssanimations = function() {
- return f("animationName")
- };
- r.csscolumns = function() {
- return f("columnCount")
- };
- r.cssgradients = function() {
- var n = "background-image:";
- return a((n + "-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));" + n) + y.join("linear-gradient(left top,#9f9, white);" + n)).slice(0, -n.length)), v(c.backgroundImage, "gradient")
- };
- r.cssreflections = function() {
- return f("boxReflect")
- };
- r.csstransforms = function() {
- return !!f("transform")
- };
- r.csstransforms3d = function() {
- var n = !!f("perspective");
- return n && "webkitPerspective" in s.style && l("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(t) {
- n = t.offsetLeft === 9 && t.offsetHeight === 3
- }), n
- };
- r.csstransitions = function() {
- return f("transition")
- };
- r.fontface = function() {
- var n;
- return l('@font-face {font-family:"font";src:url("https://")}', function(i, r) {
- var f = t.getElementById("smodernizr"),
- u = f.sheet || f.styleSheet,
- e = u ? u.cssRules && u.cssRules[0] ? u.cssRules[0].cssText : u.cssText || "" : "";
- n = /src/i.test(e) && e.indexOf(r.split(" ")[0]) === 0
- }), n
- };
- r.generatedcontent = function() {
- var n;
- return l(["#", e, "{font:0/0 a}#", e, ':after{content:"', g, '";visibility:hidden;font:3px/1 a}'].join(""), function(t) {
- n = t.offsetHeight >= 3
- }), n
- };
- r.video = function() {
- var i = t.createElement("video"),
- n = !1;
- try {
- (n = !!i.canPlayType) && (n = new Boolean(n), n.ogg = i.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = i.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = i.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""))
- } catch (r) {}
- return n
- };
- r.audio = function() {
- var i = t.createElement("audio"),
- n = !1;
- try {
- (n = !!i.canPlayType) && (n = new Boolean(n), n.ogg = i.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), n.mp3 = i.canPlayType("audio/mpeg;").replace(/^no$/, ""), n.wav = i.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), n.m4a = (i.canPlayType("audio/x-m4a;") || i.canPlayType("audio/aac;")).replace(/^no$/, ""))
- } catch (r) {}
- return n
- };
- r.localstorage = function() {
- try {
- return localStorage.setItem(e, e), localStorage.removeItem(e), !0
- } catch (n) {
- return !1
- }
- };
- r.sessionstorage = function() {
- try {
- return sessionStorage.setItem(e, e), sessionStorage.removeItem(e), !0
- } catch (n) {
- return !1
- }
- };
- r.webworkers = function() {
- return !!n.Worker
- };
- r.applicationcache = function() {
- return !!n.applicationCache
- };
- r.svg = function() {
- return !!t.createElementNS && !!t.createElementNS(p.svg, "svg").createSVGRect
- };
- r.inlinesvg = function() {
- var n = t.createElement("div");
- return n.innerHTML = "<svg/>", (n.firstChild && n.firstChild.namespaceURI) == p.svg
- };
- r.smil = function() {
- return !!t.createElementNS && /SVGAnimate/.test(ft.call(t.createElementNS(p.svg, "animate")))
- };
- r.svgclippaths = function() {
- return !!t.createElementNS && /SVGClipPath/.test(ft.call(t.createElementNS(p.svg, "clipPath")))
- };
- for (k in r) rt(r, k) && (b = k.toLowerCase(), u[b] = r[k](), nt.push((u[b] ? "" : "no-") + b));
- return u.input || pt(), u.addTest = function(n, t) {
- if (typeof n == "object")
- for (var r in n) rt(n, r) && u.addTest(r, n[r]);
- else {
- if (n = n.toLowerCase(), u[n] !== i) return u;
- t = typeof t == "function" ? t() : t;
- typeof d != "undefined" && d && (s.className += " " + (t ? "" : "no-") + n);
- u[n] = t
- }
- return u
- }, a(""), ut = o = null,
- function(n, t) {
- function p(n, t) {
- var i = n.createElement("p"),
- r = n.getElementsByTagName("head")[0] || n.documentElement;
- return i.innerHTML = "x<style>" + t + "<\/style>", r.insertBefore(i.lastChild, r.firstChild)
- }
- function c() {
- var n = r.elements;
- return typeof n == "string" ? n.split(" ") : n
- }
- function o(n) {
- var t = h[n[s]];
- return t || (t = {}, e++, n[s] = e, h[e] = t), t
- }
- function l(n, r, u) {
- if (r || (r = t), i) return r.createElement(n);
- u || (u = o(r));
- var f;
- return f = u.cache[n] ? u.cache[n].cloneNode() : y.test(n) ? (u.cache[n] = u.createElem(n)).cloneNode() : u.createElem(n), f.canHaveChildren && !v.test(n) ? u.frag.appendChild(f) : f
- }
- function w(n, r) {
- if (n || (n = t), i) return n.createDocumentFragment();
- r = r || o(n);
- for (var f = r.frag.cloneNode(), u = 0, e = c(), s = e.length; u < s; u++) f.createElement(e[u]);
- return f
- }
- function b(n, t) {
- t.cache || (t.cache = {}, t.createElem = n.createElement, t.createFrag = n.createDocumentFragment, t.frag = t.createFrag());
- n.createElement = function(i) {
- return r.shivMethods ? l(i, n, t) : t.createElem(i)
- };
- n.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + c().join().replace(/\w+/g, function(n) {
- return t.createElem(n), t.frag.createElement(n), 'c("' + n + '")'
- }) + ");return n}")(r, t.frag)
- }
- function a(n) {
- n || (n = t);
- var u = o(n);
- return !r.shivCSS || f || u.hasCSS || (u.hasCSS = !!p(n, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), i || b(n, u), n
- }
- var u = n.html5 || {},
- v = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
- y = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
- f, s = "_html5shiv",
- e = 0,
- h = {},
- i, r;
- (function() {
- try {
- var n = t.createElement("a");
- n.innerHTML = "<xyz><\/xyz>";
- f = "hidden" in n;
- i = n.childNodes.length == 1 || function() {
- t.createElement("a");
- var n = t.createDocumentFragment();
- return typeof n.cloneNode == "undefined" || typeof n.createDocumentFragment == "undefined" || typeof n.createElement == "undefined"
- }()
- } catch (r) {
- f = !0;
- i = !0
- }
- })();
- r = {
- elements: u.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",
- shivCSS: u.shivCSS !== !1,
- supportsUnknownElements: i,
- shivMethods: u.shivMethods !== !1,
- type: "default",
- shivDocument: a,
- createElement: l,
- createDocumentFragment: w
- };
- n.html5 = r;
- a(t)
- }(this, t), u._version = "2.6.2", u._prefixes = y, u._domPrefixes = st, u._cssomPrefixes = ot, u.mq = at, u.hasEvent = ct, u.testProp = function(n) {
- return lt([n])
- }, u.testAllProps = f, u.testStyles = l, u.prefixed = function(n, t, i) {
- return t ? f(n, t, i) : f(n, "pfx")
- }, s.className = s.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (d ? " js " + nt.join(" ") : ""), u
- }(this, this.document),
- function(n, t, i) {
- function l(n) {
- var t = {},
- r = /^jQuery\d+$/;
- return i.each(n.attributes, function(n, i) {
- i.specified && !r.test(i.name) && (t[i.name] = i.value)
- }), t
- }
- function f(n, r) {
- var f = this,
- u = i(f);
- if (f.value == u.attr("placeholder") && u.hasClass("placeholder"))
- if (u.data("placeholder-password")) {
- if (u = u.hide().next().show().attr("id", u.removeAttr("id").data("placeholder-id")), n === !0) return u[0].value = r;
- u.focus()
- } else f.value = "", u.removeClass("placeholder"), f == t.activeElement && f.select()
- }
- function s() {
- var t, r = this,
- n = i(r),
- e = n,
- u = this.id;
- if (r.value == "") {
- if (r.type == "password") {
- if (!n.data("placeholder-textinput")) {
- try {
- t = n.clone().attr({
- type: "text"
- })
- } catch (o) {
- t = i("<input>").attr(i.extend(l(this), {
- type: "text"
- }))
- }
- t.removeAttr("name").data({
- "placeholder-password": !0,
- "placeholder-id": u
- }).bind("focus.placeholder", f);
- n.data({
- "placeholder-textinput": t,
- "placeholder-id": u
- }).before(t)
- }
- n = n.removeAttr("id").hide().prev().attr("id", u).show()
- }
- n.addClass("placeholder");
- n[0].value = n.attr("placeholder")
- } else n.removeClass("placeholder")
- }
- var u = "placeholder" in t.createElement("input"),
- e = "placeholder" in t.createElement("textarea"),
- h = i.fn,
- c = i.valHooks,
- o, r;
- u && e ? (r = h.placeholder = function() {
- return this
- }, r.input = r.textarea = !0) : (r = h.placeholder = function() {
- var n = this;
- return n.filter((u ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({
- "focus.placeholder": f,
- "blur.placeholder": s
- }).data("placeholder-enabled", !0).trigger("blur.placeholder"), n
- }, r.input = u, r.textarea = e, o = {
- get: function(n) {
- var t = i(n);
- return t.data("placeholder-enabled") && t.hasClass("placeholder") ? "" : n.value
- },
- set: function(n, r) {
- var u = i(n);
- return u.data("placeholder-enabled") ? (r == "" ? (n.value = r, n != t.activeElement && s.call(n)) : u.hasClass("placeholder") ? f.call(n, !0, r) || (n.value = r) : n.value = r, u) : n.value = r
- }
- }, u || (c.input = o), e || (c.textarea = o), i(function() {
- i(t).delegate("form", "submit.placeholder", function() {
- var n = i(".placeholder", this).each(f);
- setTimeout(function() {
- n.each(s)
- }, 10)
- })
- }), i(n).bind("beforeunload.placeholder", function() {
- i(".placeholder").each(function() {
- this.value = ""
- })
- }))
- }(this, document, jQuery),
- function(n) {
- "function" == typeof define && define.amd ? define(["jquery"], n) : n(jQuery)
- }(function(n) {
- function r(n) {
- return n
- }
- function u(n) {
- return decodeURIComponent(n.replace(f, " "))
- }
- function i(n) {
- 0 === n.indexOf('"') && (n = n.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
- try {
- return t.json ? JSON.parse(n) : n
- } catch (i) {}
- }
- var f = /\+/g,
- t = n.cookie = function(f, e, o) {
- var l, s;
- if (void 0 !== e) return (o = n.extend({}, t.defaults, o), "number" == typeof o.expires) && (l = o.expires, s = o.expires = new Date, s.setDate(s.getDate() + l)), e = t.json ? JSON.stringify(e) : e + "", document.cookie = [t.raw ? f : encodeURIComponent(f), "=", t.raw ? e : encodeURIComponent(e), o.expires ? "; expires=" + o.expires.toUTCString() : "", o.path ? "; path=" + o.path : "", o.domain ? "; domain=" + o.domain : "", o.secure ? "; secure" : ""].join("");
- for (var a = t.raw ? r : u, v = document.cookie.split("; "), h = f ? void 0 : {}, c = 0, b = v.length; b > c; c++) {
- var y = v[c].split("="),
- p = a(y.shift()),
- w = a(y.join("="));
- if (f && f === p) {
- h = i(w);
- break
- }
- f || (h[p] = i(w))
- }
- return h
- };
- t.defaults = {};
- n.removeCookie = function(t, i) {
- return void 0 !== n.cookie(t) ? (n.cookie(t, "", n.extend(i, {
- expires: -1
- })), !0) : !1
- }
- });
- typeof JSON != "object" && (JSON = {}),
- function() {
- "use strict";
- function i(n) {
- return n < 10 ? "0" + n : n
- }
- function o(n) {
- return e.lastIndex = 0, e.test(n) ? '"' + n.replace(e, function(n) {
- var t = s[n];
- return typeof t == "string" ? t : "\\u" + ("0000" + n.charCodeAt(0).toString(16)).slice(-4)
- }) + '"' : '"' + n + '"'
- }
- function u(i, f) {
- var s, l, h, a, v = n,
- c, e = f[i];
- e && typeof e == "object" && typeof e.toJSON == "function" && (e = e.toJSON(i));
- typeof t == "function" && (e = t.call(f, i, e));
- switch (typeof e) {
- case "string":
- return o(e);
- case "number":
- return isFinite(e) ? String(e) : "null";
- case "boolean":
- case "null":
- return String(e);
- case "object":
- if (!e) return "null";
- if (n += r, c = [], Object.prototype.toString.apply(e) === "[object Array]") {
- for (a = e.length, s = 0; s < a; s += 1) c[s] = u(s, e) || "null";
- return h = c.length === 0 ? "[]" : n ? "[\n" + n + c.join(",\n" + n) + "\n" + v + "]" : "[" + c.join(",") + "]", n = v, h
- }
- if (t && typeof t == "object")
- for (a = t.length, s = 0; s < a; s += 1) typeof t[s] == "string" && (l = t[s], h = u(l, e), h && c.push(o(l) + (n ? ": " : ":") + h));
- else
- for (l in e) Object.prototype.hasOwnProperty.call(e, l) && (h = u(l, e), h && c.push(o(l) + (n ? ": " : ":") + h));
- return h = c.length === 0 ? "{}" : n ? "{\n" + n + c.join(",\n" + n) + "\n" + v + "}" : "{" + c.join(",") + "}", n = v, h
- }
- }
- typeof Date.prototype.toJSON != "function" && (Date.prototype.toJSON = function() {
- return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + i(this.getUTCMonth() + 1) + "-" + i(this.getUTCDate()) + "T" + i(this.getUTCHours()) + ":" + i(this.getUTCMinutes()) + ":" + i(this.getUTCSeconds()) + "Z" : null
- }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
- return this.valueOf()
- });
- var f = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- e = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- n, r, s = {
- "\b": "\\b",
- "\t": "\\t",
- "\n": "\\n",
- "\f": "\\f",
- "\r": "\\r",
- '"': '\\"',
- "\\": "\\\\"
- },
- t;
- typeof JSON.stringify != "function" && (JSON.stringify = function(i, f, e) {
- var o;
- if (n = "", r = "", typeof e == "number")
- for (o = 0; o < e; o += 1) r += " ";
- else typeof e == "string" && (r = e);
- if (t = f, f && typeof f != "function" && (typeof f != "object" || typeof f.length != "number")) throw new Error("JSON.stringify");
- return u("", {
- "": i
- })
- });
- typeof JSON.parse != "function" && (JSON.parse = function(text, reviver) {
- function walk(n, t) {
- var r, u, i = n[t];
- if (i && typeof i == "object")
- for (r in i) Object.prototype.hasOwnProperty.call(i, r) && (u = walk(i, r), u !== undefined ? i[r] = u : delete i[r]);
- return reviver.call(n, t, i)
- }
- var j;
- if (text = String(text), f.lastIndex = 0, f.test(text) && (text = text.replace(f, function(n) {
- return "\\u" + ("0000" + n.charCodeAt(0).toString(16)).slice(-4)
- })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), typeof reviver == "function" ? walk({
- "": j
- }, "") : j;
- throw new SyntaxError("JSON.parse");
- })
- }(),
- function() {
- function ut() {
- var u = !1,
- n;
- if ("localStorage" in window) try {
- window.localStorage.setItem("_tmptest", "tmpval");
- u = !0;
- window.localStorage.removeItem("_tmptest")
- } catch (f) {}
- if (u) try {
- window.localStorage && (i = window.localStorage, r = "localStorage", s = i.jStorage_update)
- } catch (e) {} else if ("globalStorage" in window) try {
- window.globalStorage && (i = window.globalStorage[window.location.hostname], r = "globalStorage", s = i.jStorage_update)
- } catch (o) {} else if (t = document.createElement("link"), t.addBehavior) {
- t.style.behavior = "url(#default#userData)";
- document.getElementsByTagName("head")[0].appendChild(t);
- try {
- t.load("jStorage")
- } catch (h) {
- t.setAttribute("jStorage", "{}");
- t.save("jStorage");
- t.load("jStorage")
- }
- n = "{}";
- try {
- n = t.getAttribute("jStorage")
- } catch (c) {}
- try {
- s = t.getAttribute("jStorage_update")
- } catch (a) {}
- i.jStorage = n;
- r = "userDataBehavior"
- } else {
- t = null;
- return
- }
- it();
- p();
- y("local");
- y("session");
- ft();
- rt();
- "addEventListener" in window && window.addEventListener("pageshow", function(n) {
- n.persisted && l()
- }, !1)
- }
- function y(t, i) {
- function l() {
- if (t == "session") try {
- o = u.parse(window.name || "{}")
- } catch (n) {
- o = {}
- }
- }
- function a() {
- t == "session" && (window.name = u.stringify(o))
- }
- var c = !1,
- s = 0,
- h, f, o = {},
- v = Math.random();
- if (i || typeof window[t + "Storage"] == "undefined") {
- if (t == "local" && window.globalStorage) {
- localStorage = window.globalStorage[window.location.hostname];
- return
- }
- if (r == "userDataBehavior") {
- i && window[t + "Storage"] && window[t + "Storage"].parentNode && window[t + "Storage"].parentNode.removeChild(window[t + "Storage"]);
- f = document.createElement("button");
- document.getElementsByTagName("head")[0].appendChild(f);
- t == "local" ? o = n : t == "session" && l();
- for (h in o) o.hasOwnProperty(h) && h != "__jstorage_meta" && h != "length" && typeof o[h] != "undefined" && (h in f || s++, f[h] = o[h]);
- f.length = s;
- f.key = function(n) {
- var i = 0,
- t;
- l();
- for (t in o)
- if (o.hasOwnProperty(t) && t != "__jstorage_meta" && t != "length" && typeof o[t] != "undefined") {
- if (i == n) return t;
- i++
- }
- };
- f.getItem = function(n) {
- return (l(), t == "session") ? o[n] : e.jStorage.get(n)
- };
- f.setItem = function(n, t) {
- typeof t != "undefined" && (f[n] = (t || "").toString())
- };
- f.removeItem = function(n) {
- if (t == "local") return e.jStorage.deleteKey(n);
- f[n] = undefined;
- c = !0;
- n in f && f.removeAttribute(n);
- c = !1
- };
- f.clear = function() {
- if (t == "session") {
- window.name = "";
- y("session", !0);
- return
- }
- e.jStorage.flush()
- };
- t == "local" && (d = function(n, t) {
- n != "length" && (c = !0, typeof t == "undefined" ? n in f && (s--, f.removeAttribute(n)) : (n in f || s++, f[n] = (t || "").toString()), f.length = s, c = !1)
- });
- f.attachEvent("onpropertychange", function(n) {
- if (n.propertyName != "length" && !c && n.propertyName != "length") {
- if (t == "local") n.propertyName in o || typeof f[n.propertyName] == "undefined" || s++;
- else if (t == "session") {
- l();
- typeof f[n.propertyName] == "undefined" || n.propertyName in o ? typeof f[n.propertyName] == "undefined" && n.propertyName in o ? (delete o[n.propertyName], s--) : o[n.propertyName] = f[n.propertyName] : (o[n.propertyName] = f[n.propertyName], s++);
- a();
- f.length = s;
- return
- }
- e.jStorage.set(n.propertyName, f[n.propertyName]);
- f.length = s
- }
- });
- window[t + "Storage"] = f
- }
- }
- }
- function tt() {
- var n = "{}";
- if (r == "userDataBehavior") {
- t.load("jStorage");
- try {
- n = t.getAttribute("jStorage")
- } catch (u) {}
- try {
- s = t.getAttribute("jStorage_update")
- } catch (f) {}
- i.jStorage = n
- }
- it();
- p();
- rt()
- }
- function ft() {
- r == "localStorage" || r == "globalStorage" ? "addEventListener" in window ? window.addEventListener("storage", l, !1) : document.attachEvent("onstorage", l) : r == "userDataBehavior" && setInterval(l, 1e3)
- }
- function l() {
- var n;
- clearTimeout(g);
- g = setTimeout(function() {
- if (r == "localStorage" || r == "globalStorage") n = i.jStorage_update;
- else if (r == "userDataBehavior") {
- t.load("jStorage");
- try {
- n = t.getAttribute("jStorage_update")
- } catch (u) {}
- }
- n && n != s && (s = n, et())
- }, 25)
- }
- function et() {
- var i = u.parse(u.stringify(n.__jstorage_meta.CRC32)),
- r, t, f, e;
- tt();
- r = u.parse(u.stringify(n.__jstorage_meta.CRC32));
- f = [];
- e = [];
- for (t in i)
- if (i.hasOwnProperty(t)) {
- if (!r[t]) {
- e.push(t);
- continue
- }
- i[t] != r[t] && String(i[t]).substr(0, 2) == "2." && f.push(t)
- }
- for (t in r) r.hasOwnProperty(t) && (i[t] || f.push(t));
- c(f, "updated");
- c(e, "deleted")
- }
- function c(n, t) {
- var u, i, e, r, o;
- if (n = [].concat(n || []), t == "flushed") {
- n = [];
- for (u in f) f.hasOwnProperty(u) && n.push(u);
- t = "deleted"
- }
- for (i = 0, e = n.length; i < e; i++)
- if (f[n[i]])
- for (r = 0, o = f[n[i]].length; r < o; r++) f[n[i]][r](n[i], t)
- }
- function a() {
- var n = (+new Date).toString();
- r == "localStorage" || r == "globalStorage" ? i.jStorage_update = n : r == "userDataBehavior" && (t.setAttribute("jStorage_update", n), t.save("jStorage"));
- l()
- }
- function it() {
- if (i.jStorage) try {
- n = u.parse(String(i.jStorage))
- } catch (t) {
- i.jStorage = "{}"
- } else i.jStorage = "{}";
- w = i.jStorage ? String(i.jStorage).length : 0;
- n.__jstorage_meta || (n.__jstorage_meta = {});
- n.__jstorage_meta.CRC32 || (n.__jstorage_meta.CRC32 = {})
- }
- function v() {
- st();
- try {
- i.jStorage = u.stringify(n);
- t && (t.setAttribute("jStorage", i.jStorage), t.save("jStorage"));
- w = i.jStorage ? String(i.jStorage).length : 0
- } catch (r) {}
- }
- function o(n) {
- if (!n || typeof n != "string" && typeof n != "number") throw new TypeError("Key name must be string or numeric");
- if (n == "__jstorage_meta") throw new TypeError("Reserved key name");
- return !0
- }
- function p() {
- var u, t, i, f, r = Infinity,
- e = !1,
- o = [];
- if (clearTimeout(nt), n.__jstorage_meta && typeof n.__jstorage_meta.TTL == "object") {
- u = +new Date;
- i = n.__jstorage_meta.TTL;
- f = n.__jstorage_meta.CRC32;
- for (t in i) i.hasOwnProperty(t) && (i[t] <= u ? (delete i[t], delete f[t], delete n[t], e = !0, o.push(t)) : i[t] < r && (r = i[t]));
- r != Infinity && (nt = setTimeout(p, r - u));
- e && (v(), a(), c(o, "deleted"))
- }
- }
- function rt() {
- var t, r, i;
- if (n.__jstorage_meta.PubSub) {
- for (r = b, i = len = n.__jstorage_meta.PubSub.length - 1; i >= 0; i--) t = n.__jstorage_meta.PubSub[i], t[0] > b && (r = t[0], ot(t[1], t[2]));
- b = r
- }
- }
- function ot(n, t) {
- if (h[n])
- for (var i = 0, r = h[n].length; i < r; i++) h[n][i](n, u.parse(u.stringify(t)))
- }
- function st() {
- var i, t, r;
- if (n.__jstorage_meta.PubSub) {
- for (i = +new Date - 2e3, t = 0, r = n.__jstorage_meta.PubSub.length; t < r; t++)
- if (n.__jstorage_meta.PubSub[t][0] <= i) {
- n.__jstorage_meta.PubSub.splice(t, n.__jstorage_meta.PubSub.length - t);
- break
- }
- n.__jstorage_meta.PubSub.length || delete n.__jstorage_meta.PubSub
- }
- }
- function ht(t, i) {
- n.__jstorage_meta || (n.__jstorage_meta = {});
- n.__jstorage_meta.PubSub || (n.__jstorage_meta.PubSub = []);
- n.__jstorage_meta.PubSub.unshift([+new Date, t, i]);
- v();
- a()
- }
- function ct(n, t) {
- for (var f = n.length, i = t ^ f, u = 0, r; f >= 4;) r = n.charCodeAt(u) & 255 | (n.charCodeAt(++u) & 255) << 8 | (n.charCodeAt(++u) & 255) << 16 | (n.charCodeAt(++u) & 255) << 24, r = (r & 65535) * 1540483477 + (((r >>> 16) * 1540483477 & 65535) << 16), r ^= r >>> 24, r = (r & 65535) * 1540483477 + (((r >>> 16) * 1540483477 & 65535) << 16), i = (i & 65535) * 1540483477 + (((i >>> 16) * 1540483477 & 65535) << 16) ^ r, f -= 4, ++u;
- switch (f) {
- case 3:
- i ^= (n.charCodeAt(u + 2) & 255) << 16;
- case 2:
- i ^= (n.charCodeAt(u + 1) & 255) << 8;
- case 1:
- i ^= n.charCodeAt(u) & 255;
- i = (i & 65535) * 1540483477 + (((i >>> 16) * 1540483477 & 65535) << 16)
- }
- return i ^= i >>> 13, i = (i & 65535) * 1540483477 + (((i >>> 16) * 1540483477 & 65535) << 16), i ^= i >>> 15, i >>> 0
- }
- var e = window.jQuery || window.$ || (window.$ = {}),
- u = {
- parse: window.JSON && (window.JSON.parse || window.JSON.decode) || String.prototype.evalJSON && function(n) {
- return String(n).evalJSON()
- } || e.parseJSON || e.evalJSON,
- stringify: Object.toJSON || window.JSON && (window.JSON.stringify || window.JSON.encode) || e.toJSON
- };
- if (!u.parse || !u.stringify) throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");
- var n = {},
- i = {
- jStorage: "{}"
- },
- t = null,
- w = 0,
- r = !1,
- f = {},
- g = !1,
- s = 0,
- h = {},
- b = +new Date,
- nt, k = {
- isXML: function(n) {
- var t = (n ? n.ownerDocument || n : 0).documentElement;
- return t ? t.nodeName !== "HTML" : !1
- },
- encode: function(n) {
- if (!this.isXML(n)) return !1;
- try {
- return (new XMLSerializer).serializeToString(n)
- } catch (t) {
- try {
- return n.xml
- } catch (i) {}
- }
- return !1
- },
- decode: function(n) {
- var i = "DOMParser" in window && (new DOMParser).parseFromString || window.ActiveXObject && function(n) {
- var t = new ActiveXObject("Microsoft.XMLDOM");
- return t.async = "false", t.loadXML(n), t
- },
- t;
- return i ? (t = i.call("DOMParser" in window && new DOMParser || window, n, "text/xml"), this.isXML(t) ? t : !1) : !1
- }
- },
- d = function() {};
- e.jStorage = {
- version: "0.3.1",
- set: function(t, i, r) {
- if (o(t), r = r || {}, typeof i == "undefined") return this.deleteKey(t), i;
- if (k.isXML(i)) i = {
- _is_xml: !0,
- xml: k.encode(i)
- };
- else {
- if (typeof i == "function") return undefined;
- i && typeof i == "object" && (i = u.parse(u.stringify(i)))
- }
- return n[t] = i, n.__jstorage_meta.CRC32[t] = "2." + ct(u.stringify(i)), this.setTTL(t, r.TTL || 0), d(t, i), c(t, "updated"), i
- },
- get: function(t, i) {
- return (o(t), t in n) ? n[t] && typeof n[t] == "object" && n[t]._is_xml ? k.decode(n[t].xml) : n[t] : typeof i == "undefined" ? null : i
- },
- deleteKey: function(t) {
- return (o(t), t in n) ? (delete n[t], typeof n.__jstorage_meta.TTL == "object" && t in n.__jstorage_meta.TTL && delete n.__jstorage_meta.TTL[t], delete n.__jstorage_meta.CRC32[t], d(t, undefined), v(), a(), c(t, "deleted"), !0) : !1
- },
- setTTL: function(t, i) {
- var r = +new Date;
- return (o(t), i = Number(i) || 0, t in n) ? (n.__jstorage_meta.TTL || (n.__jstorage_meta.TTL = {}), i > 0 ? n.__jstorage_meta.TTL[t] = r + i : delete n.__jstorage_meta.TTL[t], v(), p(), a(), !0) : !1
- },
- getTTL: function(t) {
- var r = +new Date,
- i;
- return (o(t), t in n && n.__jstorage_meta.TTL && n.__jstorage_meta.TTL[t]) ? (i = n.__jstorage_meta.TTL[t] - r, i || 0) : 0
- },
- flush: function() {
- return n = {
- __jstorage_meta: {
- CRC32: {}
- }
- }, y("local", !0), v(), a(), c(null, "flushed"), !0
- },
- storageObj: function() {
- function t() {}
- return t.prototype = n, new t
- },
- index: function() {
- var i = [];
- for (var t in n) n.hasOwnProperty(t) && t != "__jstorage_meta" && i.push(t);
- return i
- },
- storageSize: function() {
- return w
- },
- currentBackend: function() {
- return r
- },
- storageAvailable: function() {
- return !!r
- },
- listenKeyChange: function(n, t) {
- o(n);
- f[n] || (f[n] = []);
- f[n].push(t)
- },
- stopListening: function(n, t) {
- if (o(n), f[n]) {
- if (!t) {
- delete f[n];
- return
- }
- for (var i = f[n].length - 1; i >= 0; i--) f[n][i] == t && f[n].splice(i, 1)
- }
- },
- subscribe: function(n, t) {
- if (n = (n || "").toString(), !n) throw new TypeError("Channel not defined");
- h[n] || (h[n] = []);
- h[n].push(t)
- },
- publish: function(n, t) {
- if (n = (n || "").toString(), !n) throw new TypeError("Channel not defined");
- ht(n, t)
- },
- reInit: function() {
- tt()
- }
- };
- ut()
- }(),
- function(n, t) {
- function ut() {}
- function bi(n, t) {
- if (t) return "'" + n.split("'").join("\\'").split('\\"').join('\\\\\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t") + "'";
- var i = n.charAt(0),
- r = n.substring(1);
- return i === "=" ? "+(" + r + ")+" : i === ":" ? "+e(" + r + ")+" : ";" + n + ";o+="
- }
- function e(n, t, i) {
- return (n = n + "", t = t || 2, i = t - n.length, i) ? rr[t].substring(0, i) + n : n
- }
- function ur(t, u) {
- var c = r.browser,
- o, g = t.css("direction") == "rtl",
- e, v;
- if (t.parent().hasClass("k-animation-container")) e = t.parent(".k-animation-container"), v = e[0].style, e.is(":hidden") && e.show(), o = tt.test(v.width) || tt.test(v.height), o || e.css({
- width: t.outerWidth(),
- height: t.outerHeight(),
- boxSizing: "content-box",
- mozBoxSizing: "content-box",
- webkitBoxSizing: "content-box"
- });
- else {
- var y = t.css(i.support.transitions.css + "box-shadow") || t.css("box-shadow"),
- f = y ? y.match(vi) || [0, 0, 0, 0, 0] : [0, 0, 0, 0, 0],
- l = p.max(+f[3], +(f[4] || 0)),
- a = -f[1] + l,
- w = +f[1] + l,
- b = +f[2] + l,
- s = t[0].style.width,
- h = t[0].style.height,
- k = tt.test(s),
- d = tt.test(h);
- c.opera && (a = w = b = 5);
- o = k || d;
- !k && (!u || u && s) && (s = t.outerWidth());
- !d && (!u || u && h) && (h = t.outerHeight());
- t.wrap(n("<div/>").addClass("k-animation-container").css({
- width: s,
- height: h,
- marginLeft: a * (g ? 1 : -1),
- paddingLeft: a,
- paddingRight: w,
- paddingBottom: b
- }));
- o && t.css({
- width: "100%",
- height: "100%",
- boxSizing: "border-box",
- mozBoxSizing: "border-box",
- webkitBoxSizing: "border-box"
- })
- }
- return c.msie && p.floor(c.version) <= 7 && (t.css({
- zoom: 1
- }), t.children(".k-menu").width(t.width())), t.parent()
- }
- function kt(n) {
- for (var t = 1, i = arguments.length, t = 1; t < i; t++) dt(n, arguments[t]);
- return n
- }
- function dt(n, t) {
- var o = i.data.ObservableArray,
- s = i.data.DataSource,
- u, r, f, e;
- for (u in t) r = t[u], f = typeof r, f === a && r !== null && r.constructor !== Array && r.constructor !== o && r.constructor !== s ? r instanceof Date ? n[u] = new Date(r.getTime()) : ft(r.clone) ? n[u] = r.clone() : (e = n[u], n[u] = typeof e === a ? e || {} : {}, dt(n[u], r)) : f !== rt && (n[u] = r);
- return n
- }
- function ct(n, i, r) {
- for (var u in i)
- if (i.hasOwnProperty(u) && i[u].test(n)) return u;
- return r !== t ? r : n
- }
- function fr(n) {
- return n.replace(/([a-z][A-Z])/g, function(n) {
- return n.charAt(0) + "-" + n.charAt(1).toLowerCase()
- })
- }
- function gt(n) {
- return n.replace(/\-(\w)/g, function(n, t) {
- return t.toUpperCase()
- })
- }
- function er(t, r) {
- var u = {},
- f;
- return document.defaultView && document.defaultView.getComputedStyle ? (f = document.defaultView.getComputedStyle(t, ""), r && n.each(r, function(n, t) {
- u[t] = f.getPropertyValue(t)
- })) : (f = t.currentStyle, r && n.each(r, function(n, t) {
- u[t] = f[gt(t)]
- })), i.size(u) || (u = f), u
- }
- function or(n) {
- var t = 0;
- for (var i in n) n.hasOwnProperty(i) && i != "toJSON" && t++;
- return t
- }
- function sr(n, t, i) {
- var u, f, e, o;
- return (t || (t = "offset"), u = n[t](), f = r.mobileOS, r.touch && f.ios && f.flatVersion < 410 && (e = t == "offset" ? u : n.offset(), o = u.left == e.left && u.top == e.top, o)) ? {
- top: u.top - window.scrollY,
- left: u.left - window.scrollX
- } : (r.browser.msie && (r.pointers || r.msPointers) && !i && (u.top -= window.pageYOffset - document.documentElement.scrollTop, u.left -= window.pageXOffset - document.documentElement.scrollLeft), u)
- }
- function hr(n) {
- var t = {};
- return d(typeof n == "string" ? n.split(" ") : n, function(n) {
- t[n] = this
- }), t
- }
- function cr(n) {
- return new i.effects.Element(n)
- }
- function ti(n, t, i, r) {
- return typeof n === u && (ft(t) && (r = t, t = 400, i = !1), ft(i) && (r = i, i = !1), typeof t === pt && (i = t, t = 400), n = {
- effects: n,
- duration: t,
- reverse: i,
- complete: r
- }), s({
- effects: {},
- duration: 400,
- reverse: !1,
- init: g,
- teardown: g,
- hide: !1
- }, n, {
- completeCallback: n.complete,
- complete: g
- })
- }
- function ii(t, i, r, u, f) {
- for (var e = 0, s = t.length, o; e < s; e++) o = n(t[e]), o.queue(function() {
- h.promise(o, ti(i, r, u, f))
- });
- return t
- }
- function lr(n, t, i, r, u, f) {
- return h.transitionPromise(n, t, ti(i, r, u, f))
- }
- function ar(n, t, i, r) {
- return t && (t = t.split(" "), d(t, function(t, i) {
- n.toggleClass(i, r)
- })), n
- }
- function wr(n) {
- return ("" + n).replace(vr, "&").replace(yr, "<").replace(pr, ">")
- }
- function at(n, r) {
- var u;
- return r.indexOf("data") === 0 && (r = r.substring(4), r = r.charAt(0).toLowerCase() + r.substring(1)), r = r.replace(gr, "-$1"), u = n.getAttribute("data-" + i.ns + r), u === null ? u = t : u === "null" ? u = null : u === "true" ? u = !0 : u === "false" ? u = !1 : yi.test(u) ? u = parseFloat(u) : kr.test(u) && !dr.test(u) && (u = new Function("return (" + u + ")")()), u
- }
- function fi(r, u) {
- var o = {},
- e, f;
- for (e in u) f = at(r, e), f !== t && (br.test(e) && (f = i.template(n("#" + f).html())), o[e] = f);
- return o
- }
- function nu(t, i) {
- return n.contains(t, i) ? -1 : 1
- }
- function tu() {
- var t = n(this);
- return n.inArray(t.attr("data-role"), ["slider", "rangeslider"]) > 0 || t.is(":visible")
- }
- function iu(n, t) {
- var i = n.nodeName.toLowerCase();
- return (/input|select|textarea|button|object/.test(i) ? !n.disabled : "a" === i ? n.href || t : t) && ru(n)
- }
- function ru(t) {
- return !n(t).parents().addBack().filter(function() {
- return n.css(this, "visibility") === "hidden" || n.expr.filters.hidden(this)
- }).length
- }
- function o(n, t) {
- return new o.fn.init(n, t)
- }
- var i = window.kendo = window.kendo || {
- cultures: {}
- },
- s = n.extend,
- d = n.each,
- li = n.isArray,
- ot = n.proxy,
- g = n.noop,
- p = Math,
- v, nt = window.JSON || {},
- r = {},
- tt = /%/,
- ai = /\{(\d+)(:[^\}]+)?\}/g,
- vi = /(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+)?/i,
- yi = /^(\+|-?)\d+(\.?)\d*$/,
- c = "function",
- u = "string",
- l = "number",
- a = "object",
- it = "null",
- pt = "boolean",
- rt = "undefined",
- wt = {},
- bt = {},
- st = [].slice,
- y = window.Globalize,
- ni, h, lt, ri, ui, w, ei, oi, hi, vt, et, ci, yt, k;
- i.version = "2013.3.1324";
- ut.extend = function(n) {
- var r = function() {},
- t, u = this,
- i = n && n.init ? n.init : function() {
- u.apply(this, arguments)
- },
- f;
- r.prototype = u.prototype;
- f = i.fn = i.prototype = new r;
- for (t in n) f[t] = typeof n[t] !== a || n[t] instanceof Array || n[t] === null ? n[t] : s(!0, {}, r.prototype[t], n[t]);
- return f.constructor = i, i.extend = u.extend, i
- };
- ut.prototype._initOptions = function(n) {
- this.options = kt({}, this.options, n)
- };
- var ft = i.isFunction = function(n) {
- return typeof n == "function"
- },
- pi = function() {
- this._defaultPrevented = !0
- },
- wi = function() {
- return this._defaultPrevented === !0
- },
- ht = ut.extend({
- init: function() {
- this._events = {}
- },
- bind: function(n, i, r) {
- var f = this,
- e, s = typeof n === u ? [n] : n,
- h, l, o, v = typeof i === c,
- a;
- if (i === t) {
- for (e in n) f.bind(e, n[e]);
- return f
- }
- for (e = 0, h = s.length; e < h; e++) n = s[e], o = v ? i : i[n], o && (r && (l = o, o = function() {
- f.unbind(n, o);
- l.apply(f, arguments)
- }), a = f._events[n] = f._events[n] || [], a.push(o));
- return f
- },
- one: function(n, t) {
- return this.bind(n, t, !0)
- },
- first: function(n, t) {
- for (var r = this, e = typeof n === u ? [n] : n, f, h = typeof t === c, s, i = 0, o = e.length; i < o; i++) n = e[i], f = h ? t : t[n], f && (s = r._events[n] = r._events[n] || [], s.unshift(f));
- return r
- },
- trigger: function(n, t) {
- var u = this,
- i = u._events[n],
- r, f;
- if (i) {
- for (t = t || {}, t.sender = u, t._defaultPrevented = !1, t.preventDefault = pi, t.isDefaultPrevented = wi, i = i.slice(), r = 0, f = i.length; r < f; r++) i[r].call(u, t);
- return t._defaultPrevented === !0
- }
- return !1
- },
- unbind: function(n, i) {
- var u = this,
- f = u._events[n],
- r;
- if (n === t) u._events = {};
- else if (f)
- if (i)
- for (r = f.length - 1; r >= 0; r--) f[r] === i && f.splice(r, 1);
- else u._events[n] = [];
- return u
- }
- });
- var ki = /^\w+/,
- di = /\$\{([^}]*)\}/g,
- gi = /\\\}/g,
- nr = /__CURLY__/g,
- tr = /\\#/g,
- ir = /__SHARP__/g,
- rr = ["", "0", "00", "000", "0000"];
- v = {
- paramName: "data",
- useWithBlock: !0,
- render: function(n, t) {
- for (var u = "", i = 0, r = t.length; i < r; i++) u += n(t[i]);
- return u
- },
- compile: function(t, r) {
- var h = s({}, this, r),
- c = h.paramName,
- a = c.match(ki)[0],
- l = h.useWithBlock,
- u = "var o,e=kendo.htmlEncode;",
- o, e, f;
- if (ft(t)) return t.length === 2 ? function(i) {
- return t(n, {
- data: i
- }).join("")
- } : t;
- for (u += l ? "with(" + c + "){" : "", u += "o=", e = t.replace(gi, "__CURLY__").replace(di, "#=e($1)#").replace(nr, "}").replace(tr, "__SHARP__").split("#"), f = 0; f < e.length; f++) u += bi(e[f], f % 2 == 0);
- u += l ? ";}" : ";";
- u += "return o;";
- u = u.replace(ir, "#");
- try {
- return o = new Function(a, u), o._slotCount = Math.floor(e.length / 2), o
- } catch (v) {
- throw new Error(i.format("Invalid template:'{0}' Generated code:'{1}'", t, u));
- }
- }
- },
- function() {
- function o(n) {
- return f.lastIndex = 0, f.test(n) ? '"' + n.replace(f, function(n) {
- var t = s[n];
- return typeof t === u ? t : "\\u" + ("0000" + n.charCodeAt(0).toString(16)).slice(-4)
- }) + '"' : '"' + n + '"'
- }
- function r(f, e) {
- var v, w, y, k, d = n,
- p, s = e[f],
- b;
- if (s && typeof s === a && typeof s.toJSON === c && (s = s.toJSON(f)), typeof t === c && (s = t.call(e, f, s)), b = typeof s, b === u) return o(s);
- if (b === l) return isFinite(s) ? String(s) : it;
- if (b === pt || b === it) return String(s);
- if (b === a) {
- if (!s) return it;
- if (n += i, p = [], h.apply(s) === "[object Array]") {
- for (k = s.length, v = 0; v < k; v++) p[v] = r(v, s) || it;
- return y = p.length === 0 ? "[]" : n ? "[\n" + n + p.join(",\n" + n) + "\n" + d + "]" : "[" + p.join(",") + "]", n = d, y
- }
- if (t && typeof t === a)
- for (k = t.length, v = 0; v < k; v++) typeof t[v] === u && (w = t[v], y = r(w, s), y && p.push(o(w) + (n ? ": " : ":") + y));
- else
- for (w in s) Object.hasOwnProperty.call(s, w) && (y = r(w, s), y && p.push(o(w) + (n ? ": " : ":") + y));
- return y = p.length === 0 ? "{}" : n ? "{\n" + n + p.join(",\n" + n) + "\n" + d + "}" : "{" + p.join(",") + "}", n = d, y
- }
- }
- var f = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- n, i, s = {
- "\b": "\\b",
- "\t": "\\t",
- "\n": "\\n",
- "\f": "\\f",
- "\r": "\\r",
- '"': '\\"',
- "\\": "\\\\"
- },
- t, h = {}.toString;
- typeof Date.prototype.toJSON !== c && (Date.prototype.toJSON = function() {
- var n = this;
- return isFinite(n.valueOf()) ? e(n.getUTCFullYear(), 4) + "-" + e(n.getUTCMonth() + 1) + "-" + e(n.getUTCDate()) + "T" + e(n.getUTCHours()) + ":" + e(n.getUTCMinutes()) + ":" + e(n.getUTCSeconds()) + "Z" : null
- }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
- return this.valueOf()
- });
- typeof nt.stringify !== c && (nt.stringify = function(f, e, o) {
- var s;
- if (n = "", i = "", typeof o === l)
- for (s = 0; s < o; s += 1) i += " ";
- else typeof o === u && (i = o);
- if (t = e, e && typeof e !== c && (typeof e !== a || typeof e.length !== l)) throw new Error("JSON.stringify");
- return r("", {
- "": f
- })
- })
- }(),
- function() {
- function v(n) {
- if (n) {
- if (n.numberFormat) return n;
- if (typeof n === u) {
- var t = i.cultures;
- return t[n] || t[n.split("-")[0]] || null
- }
- return null
- }
- return null
- }
- function w(n) {
- return n && (n = v(n)), n || i.cultures.current
- }
- function rt(n) {
- n.groupSizes = n.groupSize;
- n.percent.groupSizes = n.percent.groupSize;
- n.currency.groupSizes = n.currency.groupSize
- }
- function ut(n, i, r) {
- r = w(r);
- var u = r.calendars.standard,
- f = u.days,
- o = u.months;
- return i = u.patterns[i] || i, i.replace(d, function(i) {
- var r;
- return i === "d" ? r = n.getDate() : i === "dd" ? r = e(n.getDate()) : i === "ddd" ? r = f.namesAbbr[n.getDay()] : i === "dddd" ? r = f.names[n.getDay()] : i === "M" ? r = n.getMonth() + 1 : i === "MM" ? r = e(n.getMonth() + 1) : i === "MMM" ? r = o.namesAbbr[n.getMonth()] : i === "MMMM" ? r = o.names[n.getMonth()] : i === "yy" ? r = e(n.getFullYear() % 100) : i === "yyyy" ? r = e(n.getFullYear(), 4) : i === "h" ? r = n.getHours() % 12 || 12 : i === "hh" ? r = e(n.getHours() % 12 || 12) : i === "H" ? r = n.getHours() : i === "HH" ? r = e(n.getHours()) : i === "m" ? r = n.getMinutes() : i === "mm" ? r = e(n.getMinutes()) : i === "s" ? r = n.getSeconds() : i === "ss" ? r = e(n.getSeconds()) : i === "f" ? r = p.floor(n.getMilliseconds() / 100) : i === "ff" ? r = p.floor(n.getMilliseconds() / 10) : i === "fff" ? r = n.getMilliseconds() : i === "tt" && (r = n.getHours() < 12 ? u.AM[0] : u.PM[0]), r !== t ? r : i.slice(1, i.length - 1)
- })
- }
- function ft(n, i, u) {
- u = w(u);
- var l = u.numberFormat,
- ot = l.groupSize[0],
- lt = l[c],
- vt = l[f],
- at = l.decimals,
- kt = l.pattern[0],
- dt = [],
- yt, ft, st, pt, wt, et = n < 0,
- b, p, rt, ei, gt = r,
- y = r,
- e, ut, d, ni, ri, it, v, a, bt, ti, ui, ii, fi, ht = -1,
- ct;
- if (n === t) return r;
- if (!isFinite(n)) return n;
- if (!i) return u.name.length ? n.toLocaleString() : n.toString();
- if (wt = g.exec(i), wt) {
- if (i = wt[1].toLowerCase(), ft = i === "c", st = i === "p", (ft || st) && (l = ft ? l.currency : l.percent, ot = l.groupSize[0], lt = l[c], vt = l[f], at = l.decimals, yt = l.symbol, kt = l.pattern[et ? 0 : 1]), pt = wt[2], pt && (at = +pt), i === "e") return pt ? n.toExponential(at) : n.toExponential();
- if (st && (n *= 100), n = h(n, at), et = n < 0, n = n.split(f), b = n[0], p = n[1], et && (b = b.substring(1)), y = b, rt = b.length, rt >= ot)
- for (y = r, e = 0; e < rt; e++) e > 0 && (rt - e) % ot == 0 && (y += lt), y += b.charAt(e);
- if (p && (y += vt + p), i === "n" && !et) return y;
- for (n = r, e = 0, ut = kt.length; e < ut; e++) d = kt.charAt(e), n += d === "n" ? y : d === "$" || d === "%" ? yt : d;
- return n
- }
- if (et && (n = -n), (i.indexOf("'") > -1 || i.indexOf('"') > -1 || i.indexOf("\\") > -1) && (i = i.replace(nt, function(n) {
- var t = n.charAt(0).replace("\\", ""),
- i = n.slice(1).replace(t, "");
- return dt.push(i), k
- })), i = i.split(";"), et && i[1]) i = i[1], ri = !0;
- else if (n === 0) {
- if (i = i[2] || i[0], i.indexOf(o) == -1 && i.indexOf(s) == -1) return i
- } else i = i[0];
- if (ui = i.indexOf("%"), ii = i.indexOf("$"), st = ui != -1, ft = ii != -1, st && (n *= 100), ft && i[ii - 1] === "\\" && (i = i.split("\\").join(""), ft = !1), (ft || st) && (l = ft ? l.currency : l.percent, ot = l.groupSize[0], lt = l[c], vt = l[f], at = l.decimals, yt = l.symbol), ni = i.indexOf(c) > -1, ni && (i = i.replace(tt, r)), it = i.indexOf(f), ut = i.length, it != -1 ? (p = n.toString().split("e"), p = p[1] ? h(n, Math.abs(p[1])) : p[0], p = p.split(f)[1] || r, a = i.lastIndexOf(s) - it, v = i.lastIndexOf(o) - it, bt = a > -1, ti = v > -1, e = p.length, bt || ti || (i = i.substring(0, it) + i.substring(it + 1), ut = i.length, it = -1, e = 0), bt && a > v ? e = a : v > a && (ti && e > v ? e = v : bt && e < a && (e = a)), e > -1 && (n = h(n, e))) : n = h(n), v = i.indexOf(o), fi = a = i.indexOf(s), ht = v == -1 && a != -1 ? a : v != -1 && a == -1 ? v : v > a ? a : v, v = i.lastIndexOf(o), a = i.lastIndexOf(s), ct = v == -1 && a != -1 ? a : v != -1 && a == -1 ? v : v > a ? v : a, ht == ut && (ct = ht), ht != -1) {
- if (y = n.toString().split(f), b = y[0], p = y[1] || r, rt = b.length, ei = p.length, et && n * -1 >= 0 && (et = !1), ni)
- if (rt === ot && rt < it - fi) b = lt + b;
- else if (rt > ot) {
- for (y = r, e = 0; e < rt; e++) e > 0 && (rt - e) % ot == 0 && (y += lt), y += b.charAt(e);
- b = y
- }
- for (n = i.substring(0, ht), et && !ri && (n += "-"), e = ht; e < ut; e++) {
- if (d = i.charAt(e), it == -1) {
- if (ct - e < rt) {
- n += b;
- break
- }
- } else if (a != -1 && a < e && (gt = r), it - e <= rt && it - e > -1 && (n += b, e = it), it === e) {
- n += (p ? vt : r) + p;
- e += ct - it + 1;
- continue
- }
- d === s ? (n += d, gt = d) : d === o && (n += gt)
- }
- if (ct >= ht && (n += i.substring(ct + 1)), ft || st) {
- for (y = r, e = 0, ut = n.length; e < ut; e++) d = n.charAt(e), y += d === "$" || d === "%" ? yt : d;
- n = y
- }
- if (ut = dt.length, ut)
- for (e = 0; e < ut; e++) n = n.replace(k, dt[e])
- }
- return n
- }
- var d = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|"[^"]*"|'[^']*'/g,
- g = /^(n|c|p|e)(\d*)$/i,
- nt = /(\\.)|(['][^']*[']?)|(["][^"]*["]?)/g,
- tt = /\,/g,
- r = "",
- f = ".",
- c = ",",
- o = "#",
- s = "0",
- k = "??",
- a = "en-US",
- it = {}.toString;
- i.cultures["en-US"] = {
- name: a,
- numberFormat: {
- pattern: ["-n"],
- decimals: 2,
- ",": ",",
- ".": ".",
- groupSize: [3],
- percent: {
- pattern: ["-n %", "n %"],
- decimals: 2,
- ",": ",",
- ".": ".",
- groupSize: [3],
- symbol: "%"
- },
- currency: {
- pattern: ["($n)", "$n"],
- decimals: 2,
- ",": ",",
- ".": ".",
- groupSize: [3],
- symbol: "$"
- }
- },
- calendars: {
- standard: {
- days: {
- names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
- namesAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- namesShort: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
- },
- months: {
- names: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
- namesAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
- },
- AM: ["AM", "am", "AM"],
- PM: ["PM", "pm", "PM"],
- patterns: {
- d: "M/d/yyyy",
- D: "dddd, MMMM dd, yyyy",
- F: "dddd, MMMM dd, yyyy h:mm:ss tt",
- g: "M/d/yyyy h:mm tt",
- G: "M/d/yyyy h:mm:ss tt",
- m: "MMMM dd",
- M: "MMMM dd",
- s: "yyyy'-'MM'-'ddTHH':'mm':'ss",
- t: "h:mm tt",
- T: "h:mm:ss tt",
- u: "yyyy'-'MM'-'dd HH':'mm':'ss'Z'",
- y: "MMMM, yyyy",
- Y: "MMMM, yyyy"
- },
- "/": "/",
- ":": ":",
- firstDay: 0,
- twoDigitYearMax: 2029
- }
- }
- };
- i.culture = function(n) {
- var u = i.cultures,
- r;
- if (n !== t) r = v(n) || u[a], r.calendar = r.calendars.standard, u.current = r, y && rt(r.numberFormat);
- else return u.current
- };
- i.findCulture = v;
- i.getCulture = w;
- i.culture(a);
- var et = 9e15,
- h = function(n, t) {
- var i = Math.pow(10, t || 0),
- r = Math.round(n * i);
- return r > et ? n.toFixed(t) : (r / i).toFixed(t)
- },
- b = function(n, i, r) {
- if (i) {
- if (it.call(n) === "[object Date]") return ut(n, i, r);
- if (typeof n === l) return ft(n, i, r)
- }
- return n !== t ? n : ""
- };
- y && (b = function(t, i, r) {
- return n.isPlainObject(r) && (r = r.name), y.format(t, i, r)
- });
- i.format = function(n) {
- var t = arguments;
- return n.replace(ai, function(n, i, r) {
- var u = t[parseInt(i, 10) + 1];
- return b(u, r ? r.substring(1) : "")
- })
- };
- i._extractFormat = function(n) {
- return n.slice(0, 3) === "{0:" && (n = n.slice(3, n.length - 1)), n
- };
- i._activeElement = function() {
- try {
- return document.activeElement
- } catch (n) {
- return document.documentElement.activeElement
- }
- };
- i._round = h;
- i.toString = b
- }(),
- function() {
- function r(n, t, i) {
- return !(n >= t && n <= i)
- }
- function b(n) {
- return n.charAt(0)
- }
- function s(t) {
- return n.map(t, b)
- }
- function k(n, t) {
- t || n.getHours() !== 23 || n.setHours(n.getHours() + 2)
- }
- function d(n) {
- for (var t = 0, r = n.length, i = []; t < r; t++) i[t] = (n[t] + "").toLowerCase();
- return i
- }
- function h(n) {
- var t = {};
- for (var i in n) t[i] = d(n[i]);
- return t
- }
- function g(n, i, u) {
- if (!n) return null;
- var p = function(n) {
- for (var t = 0; i[rt] === n;) t++, rt++;
- return t > 0 && (rt -= 1), t
- },
- nt = function(t) {
- var r = e[t] || new RegExp("^\\d{1," + t + "}"),
- i = n.substr(b, t).match(r);
- return i ? (i = i[0], b += i.length, parseInt(i, 10)) : null
- },
- ht = function(t, i) {
- for (var r = 0, o = t.length, f, e, u; r < o; r++)
- if (f = t[r], e = f.length, u = n.substr(b, e), i && (u = u.toLowerCase()), u == f) return b += e, r + 1;
- return null
- },
- ft = function() {
- var t = !1;
- return n.charAt(b) === i[rt] && (b++, t = !0), t
- },
- y = u.calendars.standard,
- c = null,
- tt = null,
- w = null,
- o = null,
- it = null,
- ut = null,
- d = null,
- rt = 0,
- b = 0,
- yt = !1,
- pt = new Date,
- ct = y.twoDigitYearMax || 2029,
- et = pt.getFullYear(),
- l, f, dt, wt, bt, kt, gt, g, lt, at, vt, ot, ni, st;
- for (i || (i = "d"), wt = y.patterns[i], wt && (i = wt), i = i.split(""), dt = i.length; rt < dt; rt++)
- if (l = i[rt], yt) l === "'" ? yt = !1 : ft();
- else if (l === "d") {
- if (f = p("d"), y._lowerDays || (y._lowerDays = h(y.days)), w = f < 3 ? nt(2) : ht(y._lowerDays[f == 3 ? "namesAbbr" : "names"], !0), w === null || r(w, 1, 31)) return null
- } else if (l === "M") {
- if (f = p("M"), y._lowerMonths || (y._lowerMonths = h(y.months)), tt = f < 3 ? nt(2) : ht(y._lowerMonths[f == 3 ? "namesAbbr" : "names"], !0), tt === null || r(tt, 1, 12)) return null;
- tt -= 1
- } else if (l === "y") {
- if (f = p("y"), c = nt(f), c === null) return null;
- f == 2 && (typeof ct == "string" && (ct = et + parseInt(ct, 10)), c = et - et % 100 + c, c > ct && (c -= 100))
- } else if (l === "h") {
- if (p("h"), o = nt(2), o == 12 && (o = 0), o === null || r(o, 0, 11)) return null
- } else if (l === "H") {
- if (p("H"), o = nt(2), o === null || r(o, 0, 23)) return null
- } else if (l === "m") {
- if (p("m"), it = nt(2), it === null || r(it, 0, 59)) return null
- } else if (l === "s") {
- if (p("s"), ut = nt(2), ut === null || r(ut, 0, 59)) return null
- } else if (l === "f") {
- if (f = p("f"), st = n.substr(b, f).match(e[3]), d = nt(f), d !== null && (st = st[0].length, st < 3 && (d *= Math.pow(10, 3 - st)), f > 3 && (d = parseInt(d.toString().substring(0, 3), 10))), d === null || r(d, 0, 999)) return null
- } else if (l === "t") {
- if (f = p("t"), lt = y.AM, at = y.PM, f === 1 && (lt = s(lt), at = s(at)), bt = ht(at), !bt && !ht(lt)) return null
- } else if (l === "z") {
- if (kt = !0, f = p("z"), n.substr(b, 1) === "Z") {
- if (!gt) return null;
- ft();
- continue
- }
- if ((g = n.substr(b, 6).match(f > 2 ? v : a), !g) || (g = g[0], b = g.length, g = g.split(":"), vt = parseInt(g[0], 10), r(vt, -12, 13)) || f > 2 && (ot = parseInt(g[1], 10), isNaN(ot) || r(ot, 0, 59))) return null
- } else if (l === "T") gt = ft();
- else if (l === "'") yt = !0, ft();
- else if (!ft()) return null;
- return (ni = o !== null || it !== null || ut || null, c === null && tt === null && w === null && ni ? (c = et, tt = pt.getMonth(), w = pt.getDate()) : (c === null && (c = et), w === null && (w = 1)), bt && o < 12 && (o += 12), kt ? (vt && (o += -vt), ot && (it += -ot), n = new Date(Date.UTC(c, tt, w, o, it, ut, d))) : (n = new Date(c, tt, w, o, it, ut, d), k(n, o)), c < 100 && n.setFullYear(c), n.getDate() !== w && kt === t) ? null : n
- }
- var u = /\u00A0/g,
- c = /[eE][\-+]?[0-9]+/,
- a = /[+|\-]\d{1,2}/,
- v = /[+|\-]\d{1,2}:\d{2}/,
- p = /^\/Date\((.*?)\)\/$/,
- w = /[+-]{1}\d+/,
- f = ["G", "g", "d", "F", "D", "y", "m", "T", "t"],
- e = {
- 2: /^\d{1,2}/,
- 3: /^\d{1,3}/,
- 4: /^\d{4}/
- },
- o = {}.toString;
- i.parseDate = function(n, t, r) {
- if (o.call(n) === "[object Date]") return n;
- var e = 0,
- u = null,
- s, c, h;
- if (n && n.indexOf("/D") === 0 && (u = p.exec(n), u)) return u = u[1], h = w.exec(u), u = parseInt(u, 10), h && (u -= parseInt(h[0], 10) * i.date.MS_PER_MINUTE), new Date(u);
- if (r = i.getCulture(r), !t) {
- for (t = [], c = r.calendar.patterns, s = f.length; e < s; e++) t[e] = c[f[e]];
- e = 0;
- t = ["yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd", "ddd MMM dd yyyy HH:mm:ss", "yyyy-MM-ddTHH:mm:ss.fffffffzzz", "yyyy-MM-ddTHH:mm:ss.fffzzz", "yyyy-MM-ddTHH:mm:sszzz", "yyyy-MM-ddTHH:mmzzz", "yyyy-MM-ddTHH:mmzz", "yyyy-MM-ddTHH:mm:ss", "yyyy-MM-ddTHH:mm", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd"].concat(t)
- }
- for (t = li(t) ? t : [t], s = t.length; e < s; e++)
- if (u = g(n, t[e], r), u) return u;
- return u
- };
- i.parseInt = function(n, t) {
- var r = i.parseFloat(n, t);
- return r && (r = r | 0), r
- };
- i.parseFloat = function(n, t, r) {
- if (!n && n !== 0) return null;
- if (typeof n === l) return n;
- n = n.toString();
- t = i.getCulture(t);
- var f = t.numberFormat,
- h = f.percent,
- a = f.currency,
- s = a.symbol,
- v = h.symbol,
- e = n.indexOf("-"),
- o, y;
- return c.test(n) ? (n = parseFloat(n.replace(f["."], ".")), isNaN(n) && (n = null), n) : e > 0 ? null : (e = e > -1, n.indexOf(s) > -1 || r && r.toLowerCase().indexOf("c") > -1 ? (f = a, o = f.pattern[0].replace("$", s).split("n"), n.indexOf(o[0]) > -1 && n.indexOf(o[1]) > -1 && (n = n.replace(o[0], "").replace(o[1], ""), e = !0)) : n.indexOf(v) > -1 && (y = !0, f = h, s = v), n = n.replace("-", "").replace(s, "").replace(u, " ").split(f[","].replace(u, " ")).join("").replace(f["."], "."), n = parseFloat(n), isNaN(n) ? n = null : e && (n *= -1), n && y && (n /= 100), n)
- };
- y && (i.parseDate = function(n, t, i) {
- return o.call(n) === "[object Date]" ? n : y.parseDate(n, t, i)
- }, i.parseFloat = function(i, r) {
- return typeof i === l ? i : i === t || i === null ? null : (n.isPlainObject(r) && (r = r.name), i = y.parseFloat(i, r), isNaN(i) ? null : i)
- })
- }(),
- function() {
- var e, i, f, c;
- r.scrollbar = function() {
- var n = document.createElement("div"),
- t;
- return n.style.cssText = "overflow:scroll;overflow-x:hidden;zoom:1;clear:both", n.innerHTML = " ", document.body.appendChild(n), t = n.offsetWidth - n.scrollWidth, document.body.removeChild(n), t
- };
- r.isRtl = function(t) {
- return n(t).closest(".k-rtl").length > 0
- };
- e = document.createElement("table");
- try {
- e.innerHTML = "<tr><td><\/td><\/tr>";
- r.tbodyInnerHtml = !0
- } catch (l) {
- r.tbodyInnerHtml = !1
- }
- r.touch = "ontouchstart" in window;
- r.msPointers = window.MSPointerEvent;
- r.pointers = window.PointerEvent;
- var o = r.transitions = !1,
- h = r.transforms = !1,
- s = "HTMLElement" in window ? HTMLElement.prototype : [];
- r.hasHW3D = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix || "MozPerspective" in document.documentElement.style || "msPerspective" in document.documentElement.style;
- d(["Moz", "webkit", "O", "ms"], function() {
- var t = this.toString(),
- i = typeof e.style[t + "Transition"] === u,
- n;
- if (i || typeof e.style[t + "Transform"] === u) return n = t.toLowerCase(), h = {
- css: n != "ms" ? "-" + n + "-" : "",
- prefix: t,
- event: n === "o" || n === "webkit" ? n : ""
- }, i && (o = h, o.event = o.event ? o.event + "TransitionEnd" : "transitionend"), !1
- });
- e = null;
- r.transforms = h;
- r.transitions = o;
- r.devicePixelRatio = window.devicePixelRatio === t ? 1 : window.devicePixelRatio;
- try {
- r.screenWidth = window.outerWidth || window.screen ? window.screen.availWidth : window.innerWidth;
- r.screenHeight = window.outerHeight || window.screen ? window.screen.availHeight : window.innerHeight
- } catch (l) {
- r.screenWidth = window.screen.availWidth;
- r.screenHeight = window.screen.availHeight
- }
- r.detectOS = function(n) {
- var t = !1,
- u, f = [],
- o = !/mobile safari/i.test(n),
- e = {
- fire: /(Silk)\/(\d+)\.(\d+(\.\d+)?)/,
- android: /(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.(\d+(\.\d+)?)/,
- iphone: /(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,
- ipad: /(iPad).*OS\s+(\d+)[\._]([\d_]+)/,
- meego: /(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,
- webos: /(webOS)\/(\d+)\.(\d+(\.\d+)?)/,
- blackberry: /(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,
- playbook: /(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,
- wp: /(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,
- windows: /(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,
- tizen: /(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,
- sailfish: /(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,
- ffos: /(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/
- },
- s = {
- ios: /^i(phone|pad|pod)$/i,
- android: /^android|fire$/i,
- blackberry: /^blackberry|playbook/i,
- windows: /windows/,
- wp: /wp/,
- flat: /sailfish|ffos|tizen/i,
- meego: /meego/
- },
- h = {
- tablet: /playbook|ipad|fire/i
- },
- c = {
- omini: /Opera\sMini/i,
- omobile: /Opera\sMobi/i,
- firefox: /Firefox|Fennec/i,
- mobilesafari: /version\/.*safari/i,
- chrome: /chrome/i,
- webkit: /webkit/i,
- ie: /MSIE|Windows\sPhone/i
- };
- for (var i in e)
- if (e.hasOwnProperty(i) && (f = n.match(e[i]), f)) {
- if (i == "windows" && "plugins" in navigator) return !1;
- t = {};
- t.device = i;
- t.tablet = ct(i, h, !1);
- t.browser = ct(n, c, "default");
- t.name = ct(i, s);
- t[t.name] = !0;
- t.majorVersion = f[2];
- t.minorVersion = f[3].replace("_", ".");
- u = t.minorVersion.replace(".", "").substr(0, 2);
- t.flatVersion = t.majorVersion + u + new Array(3 - (u.length < 3 ? u.length : 2)).join("0");
- t.appMode = window.navigator.standalone || /file|local|wmapp/.test(window.location.protocol) || typeof PhoneGap !== rt || typeof cordova !== rt;
- t.android && (r.devicePixelRatio < 1.5 && t.flatVersion < 400 || o) && (r.screenWidth > 800 || r.screenHeight > 800) && (t.tablet = i);
- break
- }
- return t
- };
- i = r.mobileOS = r.detectOS(navigator.userAgent);
- r.wpDevicePixelRatio = i.wp ? screen.width / 320 : 0;
- r.kineticScrollNeeded = i && (r.touch || r.msPointers || r.pointers);
- r.hasNativeScrolling = !1;
- (i.ios && i.majorVersion > 4 || i.android && i.majorVersion > 2 || i.wp) && (r.hasNativeScrolling = i);
- r.mouseAndTouchPresent = r.touch && !(r.mobileOS.ios || r.mobileOS.android);
- r.detectBrowser = function(n) {
- var t = !1,
- i = [],
- r = {
- webkit: /(chrome)[ \/]([\w.]+)/i,
- safari: /(webkit)[ \/]([\w.]+)/i,
- opera: /(opera)(?:.*version|)[ \/]([\w.]+)/i,
- msie: /(msie\s|trident.*? rv:)([\w.]+)/i,
- mozilla: /(mozilla)(?:.*? rv:([\w.]+)|)/i
- };
- for (var u in r)
- if (r.hasOwnProperty(u) && (i = n.match(r[u]), i)) {
- t = {};
- t[u] = !0;
- t[i[1].toLowerCase()] = !0;
- t.version = parseInt(document.documentMode || i[2], 10);
- break
- }
- return t
- };
- r.browser = r.detectBrowser(navigator.userAgent);
- r.zoomLevel = function() {
- try {
- return r.touch ? document.documentElement.clientWidth / window.innerWidth : r.browser.msie && r.browser.version >= 10 ? (top || window).document.documentElement.offsetWidth / (top || window).innerWidth : 1
- } catch (n) {
- return 1
- }
- };
- r.cssBorderSpacing = typeof document.documentElement.style.borderSpacing != "undefined" && !(r.browser.msie && r.browser.version < 8),
- function(t) {
- var i, r = parseInt(t.version, 10);
- t.msie ? i = "ie" : t.mozilla ? i = "ff" : t.safari ? i = "safari" : t.webkit ? i = "webkit" : t.opera && (i = "opera");
- i && n(document.documentElement).addClass("k-" + i + " k-" + i + r)
- }(r.browser);
- r.eventCapture = document.documentElement.addEventListener;
- f = document.createElement("input");
- r.placeholder = "placeholder" in f;
- r.input = function() {
- for (var i = ["number", "date", "time", "month", "week", "datetime", "datetime-local"], e = i.length, r = "test", u = {}, n = 0, t; n < e; n++) t = i[n], f.setAttribute("type", t), f.value = r, u[t.replace("-", "")] = f.type !== "text" && f.value !== r;
- return u
- }();
- f.style.cssText = "float:left;";
- r.cssFloat = !!f.style.cssFloat;
- f = null;
- r.stableSort = function() {
- var n = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].sort(function() {
- return 0
- });
- return n[0] === 0 && n[1] === 1 && n[2] === 2 && n[3] === 3 && n[4] === 4 && n[5] === 5 && n[6] === 6 && n[7] === 7 && n[8] === 8 && n[9] === 9 && n[10] === 10 && n[11] === 11 && n[12] === 12
- }();
- r.matchesSelector = s.webkitMatchesSelector || s.mozMatchesSelector || s.msMatchesSelector || s.oMatchesSelector || s.matchesSelector || function(t) {
- for (var i = document.querySelectorAll ? (this.parentNode || document).querySelectorAll(t) || [] : n(t), r = i.length; r--;)
- if (i[r] == this) return !0;
- return !1
- };
- r.pushState = window.history && window.history.pushState;
- c = document.documentMode;
- r.hashChange = "onhashchange" in window && !(r.browser.msie && (!c || c <= 8))
- }();
- ni = {
- left: {
- reverse: "right"
- },
- right: {
- reverse: "left"
- },
- down: {
- reverse: "up"
- },
- up: {
- reverse: "down"
- },
- top: {
- reverse: "bottom"
- },
- bottom: {
- reverse: "top"
- },
- "in": {
- reverse: "out"
- },
- out: {
- reverse: "in"
- }
- };
- h = {};
- n.extend(h, {
- Element: function(t) {
- this.element = n(t)
- },
- promise: function(n, t) {
- n.is(":visible") || n.css({
- display: n.data("olddisplay") || "block"
- }).css("display");
- t.hide && n.data("olddisplay", n.css("display")).hide();
- t.init && t.init();
- t.completeCallback && t.completeCallback(n);
- n.dequeue()
- },
- transitionPromise: function(n, t, r) {
- var u = i.wrap(n);
- return u.append(t), n.hide(), t.show(), r.completeCallback && r.completeCallback(n), n
- },
- disable: function() {
- this.promise = this.promiseShim;
- this.transitionPromise = this.transitionPromiseShim
- },
- enable: function() {
- this.promise = this.animatedPromise;
- this.transitionPromise = this.animatedTransitionPromise
- }
- });
- h.promiseShim = h.promise;
- h.transitionPromiseShim = h.transitionPromise;
- "kendoAnimate" in n.fn || s(n.fn, {
- kendoStop: function(n, t) {
- return this.stop(n, t)
- },
- kendoAnimate: function(n, t, i, r) {
- return ii(this, n, t, i, r)
- },
- kendoAnimateTo: function(n, t, i, r, u) {
- return lr(this, n, t, i, r, u)
- },
- kendoAddClass: function(n, t) {
- return i.toggleClass(this, n, t, !0)
- },
- kendoRemoveClass: function(n, t) {
- return i.toggleClass(this, n, t, !1)
- },
- kendoToggleClass: function(n, t, r) {
- return i.toggleClass(this, n, t, r)
- }
- });
- var vr = /&/g,
- yr = /</g,
- pr = />/g;
- lt = function(n) {
- return n.target
- };
- r.touch && (lt = function(n) {
- var t = "originalEvent" in n ? n.originalEvent.changedTouches : "changedTouches" in n ? n.changedTouches : null;
- return t ? document.elementFromPoint(t[0].clientX, t[0].clientY) : n.target
- }, d(["swipe", "swipeLeft", "swipeRight", "swipeUp", "swipeDown", "doubleTap", "tap"], function(t, i) {
- n.fn[i] = function(n) {
- return this.bind(i, n)
- }
- }));
- r.touch ? r.mobileOS ? (r.mousedown = "touchstart", r.mouseup = "touchend", r.mousemove = "touchmove", r.mousecancel = "touchcancel", r.click = "touchend", r.resize = "orientationchange") : (r.mousedown = "mousedown touchstart", r.mouseup = "mouseup touchend", r.mousemove = "mousemove touchmove", r.mousecancel = "mouseleave touchcancel", r.click = "click", r.resize = "resize") : r.pointers ? (r.mousemove = "pointermove", r.mousedown = "pointerdown", r.mouseup = "pointerup", r.mousecancel = "pointercancel", r.click = "pointerup", r.resize = "orientationchange resize") : r.msPointers ? (r.mousemove = "MSPointerMove", r.mousedown = "MSPointerDown", r.mouseup = "MSPointerUp", r.mousecancel = "MSPointerCancel", r.click = "MSPointerUp", r.resize = "orientationchange resize") : (r.mousemove = "mousemove", r.mousedown = "mousedown", r.mouseup = "mouseup", r.mousecancel = "mouseleave", r.click = "click", r.resize = "resize");
- ri = function(n, t) {
- for (var o = t || "d", r, i, e = 1, u = 0, f = n.length; u < f; u++) i = n[u], i !== "" && (r = i.indexOf("["), r !== 0 && (r == -1 ? i = "." + i : (e++, i = "." + i.substring(0, r) + " || {})" + i.substring(r))), e++, o += i + (u < f - 1 ? " || {})" : ")"));
- return new Array(e).join("(") + o
- };
- ui = /^([a-z]+:)?\/\//i;
- s(i, {
- ui: i.ui || {},
- fx: i.fx || cr,
- effects: i.effects || h,
- mobile: i.mobile || {},
- data: i.data || {},
- dataviz: i.dataviz || {
- ui: {
- roles: {}
- }
- },
- keys: {
- INSERT: 45,
- DELETE: 46,
- BACKSPACE: 8,
- TAB: 9,
- ENTER: 13,
- ESC: 27,
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40,
- END: 35,
- HOME: 36,
- SPACEBAR: 32,
- PAGEUP: 33,
- PAGEDOWN: 34,
- F2: 113,
- F10: 121,
- F12: 123
- },
- support: i.support || r,
- animate: i.animate || ii,
- ns: "",
- attr: function(n) {
- return "data-" + i.ns + n
- },
- wrap: ur,
- deepExtend: kt,
- getComputedStyles: er,
- size: or,
- toCamelCase: gt,
- toHyphens: fr,
- getOffset: i.getOffset || sr,
- parseEffects: i.parseEffects || hr,
- toggleClass: i.toggleClass || ar,
- directions: i.directions || ni,
- Observable: ht,
- Class: ut,
- Template: v,
- template: ot(v.compile, v),
- render: ot(v.render, v),
- stringify: ot(nt.stringify, nt),
- eventTarget: lt,
- htmlEncode: wr,
- isLocalUrl: function(n) {
- return n && !ui.test(n)
- },
- expr: function(n, t, i) {
- return n = n || "", typeof t == u && (i = t, t = !1), i = i || "d", n && n.charAt(0) !== "[" && (n = "." + n), t ? ri(n.split("."), i) : i + n
- },
- getter: function(n, t) {
- return wt[n] = wt[n] || new Function("d", "return " + i.expr(n, t))
- },
- setter: function(n) {
- return bt[n] = bt[n] || new Function("d,value", i.expr(n) + "=value")
- },
- accessor: function(n) {
- return {
- get: i.getter(n),
- set: i.setter(n)
- }
- },
- guid: function() {
- for (var t = "", i, n = 0; n < 32; n++) i = p.random() * 16 | 0, (n == 8 || n == 12 || n == 16 || n == 20) && (t += "-"), t += (n == 12 ? 4 : n == 16 ? i & 3 | 8 : i).toString(16);
- return t
- },
- roleSelector: function(n) {
- return n.replace(/(\S+)/g, "[" + i.attr("role") + "=$1],").slice(0, -1)
- },
- triggeredByInput: function(n) {
- return /^(label|input|textarea|select)$/i.test(n.target.tagName)
- },
- logToConsole: function(n) {
- var t = window.console;
- typeof t != "undefined" && t.log && t.log(n)
- }
- });
- w = ht.extend({
- init: function(n, t) {
- var r = this;
- r.element = i.jQuery(n).handler(r);
- ht.fn.init.call(r);
- t = r.options = s(!0, {}, r.options, t);
- r.element.attr(i.attr("role")) || r.element.attr(i.attr("role"), (t.name || "").toLowerCase());
- r.element.data("kendo" + t.prefix + t.name, r);
- r.bind(r.events, t)
- },
- events: [],
- options: {
- prefix: ""
- },
- _hasBindingTarget: function() {
- return !!this.element[0].kendoBindingTarget
- },
- _tabindex: function(n) {
- n = n || this.wrapper;
- var i = this.element,
- t = "tabindex",
- r = n.attr(t) || i.attr(t);
- i.removeAttr(t);
- n.attr(t, isNaN(r) ? 0 : r)
- },
- setOptions: function(t) {
- for (var i = this, u = 0, f = i.events.length, r; u < f; u++) r = i.events[u], i.options[r] && t[r] && i.unbind(r, i.options[r]);
- n.extend(i.options, t);
- i.bind(i.events, t)
- },
- resize: function(n) {
- var t = this.getSize(),
- i = this._size;
- (n || !i || t.width !== i.width || t.height !== i.height) && (this._resize(t), this.trigger("resize", t), this._size = t)
- },
- getSize: function() {
- return i.dimensions(this.element)
- },
- size: function(n) {
- if (n) this.setSize(n);
- else return this.getSize()
- },
- setSize: n.noop,
- _resize: n.noop,
- destroy: function() {
- var n = this;
- n.element.removeData("kendo" + n.options.prefix + n.options.name);
- n.element.removeData("handler");
- n.unbind()
- }
- });
- i.dimensions = function(n, t) {
- var i = n[0];
- return t && n.css(t), {
- width: i.offsetWidth,
- height: i.offsetHeight
- }
- };
- i.notify = g;
- var br = /template$/i,
- kr = /^\s*(?:\{(?:.|\r\n|\n)*\}|\[(?:.|\r\n|\n)*\])\s*$/,
- dr = /^\{(\d+)(:[^\}]+)?\}/,
- gr = /([A-Z])/g;
- i.initWidget = function(r, f, e) {
- var s, a, o, l, y, h, v, c;
- if ((e ? e.roles && (e = e.roles) : e = i.ui.roles, r = r.nodeType ? r : r[0], h = r.getAttribute("data-" + i.ns + "role"), h) && (o = h.indexOf(".") === -1 ? e[h] : i.getter(h)(window), o)) {
- for (c = at(r, "dataSource"), f = n.extend({}, fi(r, o.fn.options), f), c && (f.dataSource = typeof c === u ? i.getter(c)(window) : c), l = 0, y = o.fn.events.length; l < y; l++) a = o.fn.events[l], v = at(r, a), v !== t && (f[a] = i.getter(v)(window));
- return s = n(r).data("kendo" + o.fn.options.prefix + o.fn.options.name), s ? s.setOptions(f) : s = new o(r, f), s
- }
- };
- i.rolesFromNamespaces = function(n) {
- var r = [],
- t, u;
- for (n[0] || (n = [i.ui, i.dataviz.ui]), t = 0, u = n.length; t < u; t++) r[t] = n[t].roles;
- return s.apply(null, [{}].concat(r.reverse()))
- };
- i.init = function(t) {
- var r = i.rolesFromNamespaces(st.call(arguments, 1));
- n(t).find("[data-" + i.ns + "role]").addBack().each(function() {
- i.initWidget(this, {}, r)
- })
- };
- i.destroy = function(t) {
- n(t).find("[data-" + i.ns + "role]").addBack().each(function() {
- var t = i.widgetInstance(n(this));
- t && t.destroy()
- })
- };
- i.resize = function(t) {
- var u = n(t).find("[data-" + i.ns + "role]").addBack().filter(tu),
- r;
- u.length && (r = n.makeArray(u), r.sort(nu), n.each(r, function() {
- var t = i.widgetInstance(n(this));
- t && t.resize()
- }))
- };
- i.parseOptions = fi;
- s(i.ui, {
- Widget: w,
- roles: {},
- progress: function(t, r) {
- var u = t.find(".k-loading-mask"),
- o = i.support,
- c = o.browser,
- f, s, h, e;
- r ? u.length || (f = o.isRtl(t), s = f ? "right" : "left", e = t.scrollLeft(), h = c.webkit ? f ? t[0].scrollWidth - t.width() - 2 * e : 0 : 0, u = n("<div class='k-loading-mask'><span class='k-loading-text'>Loading...<\/span><div class='k-loading-image'/><div class='k-loading-color'/><\/div>").width("100%").height("100%").css("top", t.scrollTop()).css(s, Math.abs(e) + h).prependTo(t)) : u && u.remove()
- },
- plugin: function(r, f, e) {
- var o = r.fn.options.name,
- s;
- f = f || i.ui;
- e = e || "";
- f[o] = r;
- f.roles[o.toLowerCase()] = r;
- s = "getKendo" + e + o;
- o = "kendo" + e + o;
- n.fn[o] = function(f) {
- var e = this,
- s;
- return typeof f === u ? (s = st.call(arguments, 1), this.each(function() {
- var r = n.data(this, o),
- u, h;
- if (!r) throw new Error(i.format("Cannot call method '{0}' of {1} before it is initialized", f, o));
- if (u = r[f], typeof u !== c) throw new Error(i.format("Cannot find method '{0}' of {1}", f, o));
- return h = u.apply(r, s), h !== t ? (e = h, !1) : void 0
- })) : this.each(function() {
- new r(this, f)
- }), e
- };
- n.fn[s] = function() {
- return this.data(o)
- }
- }
- });
- ei = {
- bind: function() {
- return this
- }
- };
- oi = w.extend({
- init: function(n, t) {
- w.fn.init.call(this, n, t);
- this.element.autoApplyNS();
- this.wrapper = this.element;
- this.element.addClass("km-widget")
- },
- destroy: function() {
- w.fn.destroy.call(this);
- this.element.kendoDestroy()
- },
- options: {
- prefix: "Mobile"
- },
- events: [],
- view: function() {
- var n = this.element.closest(i.roleSelector("view splitview modalview drawer"));
- return i.widgetInstance(n, i.mobile.ui)
- },
- container: function() {
- var n = this.element.closest(i.roleSelector("view layout modalview drawer"));
- return i.widgetInstance(n, i.mobile.ui) || ei
- }
- });
- s(i.mobile, {
- init: function(n) {
- i.init(n, i.mobile.ui, i.ui, i.dataviz.ui)
- },
- ui: {
- Widget: oi,
- roles: {},
- plugin: function(n) {
- i.ui.plugin(n, i.mobile.ui, "Mobile")
- }
- }
- });
- i.touchScroller = function(t, u) {
- return n(t).map(function(t, f) {
- return f = n(f), r.kineticScrollNeeded && i.mobile.ui.Scroller && !f.data("kendoMobileScroller") ? (f.kendoMobileScroller(u), f.data("kendoMobileScroller")) : !1
- })[0]
- };
- i.preventDefault = function(n) {
- n.preventDefault()
- };
- i.widgetInstance = function(n, t) {
- var r = n.data(i.ns + "role"),
- u, f, s, e, o;
- if (r)
- for (r === "content" && (r = "scroller"), u = t ? [t.roles[r]] : [i.ui.roles[r], i.dataviz.ui.roles[r], i.mobile.ui.roles[r]], r.indexOf(".") >= 0 && (u = [i.getter(r)(window)]), f = 0, s = u.length; f < s; f++)
- if (e = u[f], e && (o = n.data("kendo" + e.fn.options.prefix + e.fn.options.name), o)) return o
- };
- i.onResize = function(t) {
- var i = t;
- r.mobileOS.android && (i = function() {
- setTimeout(t, 600)
- });
- n(window).on(r.resize, i);
- return i
- };
- i.unbindResize = function(t) {
- n(window).off(r.resize, t)
- };
- i.attrValue = function(n, t) {
- return n.data(i.ns + t)
- };
- i.days = {
- Sunday: 0,
- Monday: 1,
- Tuesday: 2,
- Wednesday: 3,
- Thursday: 4,
- Friday: 5,
- Saturday: 6
- };
- n.extend(n.expr[":"], {
- kendoFocusable: function(t) {
- var i = n.attr(t, "tabindex");
- return iu(t, !isNaN(i) && i > -1)
- }
- });
- var si = ["mousedown", "mousemove", "mouseenter", "mouseleave", "mouseover", "mouseout", "mouseup", "click"],
- uu = "label, input, [data-rel=external]",
- f = {
- setupMouseMute: function() {
- var t = 0,
- u = si.length,
- e = document.documentElement,
- i;
- if (!f.mouseTrap && r.eventCapture)
- for (f.mouseTrap = !0, f.bustClick = !1, f.captureMouse = !1, i = function(t) {
- f.captureMouse && (t.type === "click" ? f.bustClick && !n(t.target).is(uu) && (t.preventDefault(), t.stopPropagation()) : t.stopPropagation())
- }; t < u; t++) e.addEventListener(si[t], i, !0)
- },
- muteMouse: function(n) {
- f.captureMouse = !0;
- n.data.bustClick && (f.bustClick = !0);
- clearTimeout(f.mouseTrapTimeoutID)
- },
- unMuteMouse: function() {
- clearTimeout(f.mouseTrapTimeoutID);
- f.mouseTrapTimeoutID = setTimeout(function() {
- f.captureMouse = !1;
- f.bustClick = !1
- }, 400)
- }
- },
- b = {
- down: "touchstart mousedown",
- move: "mousemove touchmove",
- up: "mouseup touchend touchcancel",
- cancel: "mouseleave touchcancel"
- };
- r.touch && (r.mobileOS.ios || r.mobileOS.android) ? b = {
- down: "touchstart",
- move: "touchmove",
- up: "touchend touchcancel",
- cancel: "touchcancel"
- } : r.pointers ? b = {
- down: "pointerdown",
- move: "pointermove",
- up: "pointerup",
- cancel: "pointercancel pointerleave"
- } : r.msPointers && (b = {
- down: "MSPointerDown",
- move: "MSPointerMove",
- up: "MSPointerUp",
- cancel: "MSPointerCancel MSPointerLeave"
- });
- !r.msPointers || "onmspointerenter" in window || n.each({
- MSPointerEnter: "MSPointerOver",
- MSPointerLeave: "MSPointerOut"
- }, function(t, i) {
- n.event.special[t] = {
- delegateType: i,
- bindType: i,
- handle: function(t) {
- var u, f = this,
- r = t.relatedTarget,
- e = t.handleObj;
- return r && (r === f || n.contains(f, r)) || (t.type = e.origType, u = e.handler.apply(this, arguments), t.type = i), u
- }
- }
- });
- hi = function(n) {
- return b[n] || n
- };
- vt = /([^ ]+)/g;
- i.applyEventMap = function(n, t) {
- return n = n.replace(vt, hi), t && (n = n.replace(vt, "$1." + t)), n
- };
- et = n.fn.on;
- s(!0, o, n);
- o.fn = o.prototype = new n;
- o.fn.constructor = o;
- o.fn.init = function(t, i) {
- return i && i instanceof n && !(i instanceof o) && (i = o(i)), n.fn.init.call(this, t, i, ci)
- };
- o.fn.init.prototype = o.fn;
- ci = o(document);
- s(o.fn, {
- handler: function(n) {
- return this.data("handler", n), this
- },
- autoApplyNS: function(n) {
- return this.data("kendoNS", n || i.guid()), this
- },
- on: function() {
- var t = this,
- l = t.data("kendoNS"),
- s, n, e, o, h, c;
- return arguments.length === 1 ? et.call(t, arguments[0]) : (s = t, n = st.call(arguments), typeof n[n.length - 1] === rt && n.pop(), e = n[n.length - 1], o = i.applyEventMap(n[0], l), r.mouseAndTouchPresent && o.search(/mouse|click/) > -1 && this[0] !== document.documentElement && (f.setupMouseMute(), h = n.length === 2 ? null : n[1], c = o.indexOf("click") > -1 && o.indexOf("touchend") > -1, et.call(this, {
- touchstart: f.muteMouse,
- touchend: f.unMuteMouse
- }, h, {
- bustClick: c
- })), typeof e === u && (s = t.data("handler"), e = s[e], n[n.length - 1] = function(n) {
- e.call(s, n)
- }), n[0] = o, et.apply(t, n), t)
- },
- kendoDestroy: function(n) {
- return n = n || this.data("kendoNS"), n && this.off("." + n), this
- }
- });
- i.jQuery = o;
- i.eventMap = b;
- i.timezone = function() {
- function i(i, r) {
- var u, o, s, c = r[3],
- e = r[4],
- f = r[5],
- h = r[8];
- return (h || (r[8] = h = {}), h[i]) ? h[i] : (isNaN(e) ? e.indexOf("last") === 0 ? (u = new Date(Date.UTC(i, n[c] + 1, 1, f[0] - 24, f[1], f[2], 0)), o = t[e.substr(4, 3)], s = u.getUTCDay(), u.setUTCDate(u.getUTCDate() + o - s - (o > s ? 7 : 0))) : e.indexOf(">=") >= 0 && (u = new Date(Date.UTC(i, n[c], e.substr(5), f[0], f[1], f[2], 0)), o = t[e.substr(0, 3)], s = u.getUTCDay(), u.setUTCDate(u.getUTCDate() + o - s + (o < s ? 7 : 0))) : u = new Date(Date.UTC(i, n[c], e, f[0], f[1], f[2], 0)), h[i] = u)
- }
- function f(n, t, r) {
- var f, e, u;
- return (t = t[r], !t) ? (f = r.split(":"), e = 0, f.length > 1 && (e = f[0] * 60 + Number(f[1])), [-1e6, "max", "-", "Jan", 1, [0, 0, 0], e, "-"]) : (u = new Date(n).getUTCFullYear(), t = jQuery.grep(t, function(n) {
- var i = n[0],
- t = n[1];
- return i <= u && (t >= u || i == u && t == "only" || t == "max")
- }), t.push(n), t.sort(function(n, t) {
- return typeof n != "number" && (n = Number(i(u, n))), typeof t != "number" && (t = Number(i(u, t))), n - t
- }), t[jQuery.inArray(n, t) - 1])
- }
- function e(n, t, i) {
- var r = t[i],
- u, f, e;
- if (typeof r == "string" && (r = t[r]), !r) throw new Error('Timezone "' + i + '" is either incorrect, or kendo.timezones.min.js is not included.');
- for (u = r.length - 1; u >= 0; u--)
- if (f = r[u][3], f && n > f) break;
- if (e = r[u + 1], !e) throw new Error('Timezone "' + i + '" not found on ' + n + ".");
- return e
- }
- function r(n, t, i, r) {
- typeof n != l && (n = Date.UTC(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds()));
- var u = e(n, t, r);
- return {
- zone: u,
- rule: f(n, i, u[1])
- }
- }
- function o(n, t) {
- if (t == "Etc/UTC" || t == "Etc/GMT") return 0;
- var i = r(n, this.zones, this.rules, t),
- u = i.zone,
- f = i.rule;
- return f ? u[0] - f[6] : u[0]
- }
- function s(n, t) {
- var f = r(n, this.zones, this.rules, t),
- e = f.zone,
- i = f.rule,
- u = e[2];
- return u.indexOf("/") >= 0 ? u.split("/")[i && i[6] ? 1 : 0] : u.indexOf("%s") >= 0 ? u.replace("%s", !i || i[7] == "-" ? "" : i[7]) : u
- }
- function h(n, t, i) {
- var r, f;
- return typeof t == u && (t = this.offset(n, t)), typeof i == u && (i = this.offset(n, i)), r = n.getTimezoneOffset(), n = new Date(n.getTime() + (t - i) * 6e4), f = n.getTimezoneOffset(), new Date(n.getTime() + (f - r) * 6e4)
- }
- function c(n, t) {
- return this.convert(n, n.getTimezoneOffset(), t)
- }
- function a(n, t) {
- return this.convert(n, t, n.getTimezoneOffset())
- }
- function v(n) {
- return this.apply(new Date(n), "Etc/UTC")
- }
- var n = {
- Jan: 0,
- Feb: 1,
- Mar: 2,
- Apr: 3,
- May: 4,
- Jun: 5,
- Jul: 6,
- Aug: 7,
- Sep: 8,
- Oct: 9,
- Nov: 10,
- Dec: 11
- },
- t = {
- Sun: 0,
- Mon: 1,
- Tue: 2,
- Wed: 3,
- Thu: 4,
- Fri: 5,
- Sat: 6
- };
- return {
- zones: {},
- rules: {},
- offset: o,
- convert: h,
- apply: c,
- remove: a,
- abbr: s,
- toLocalDate: v
- }
- }();
- i.date = function() {
- function t(n, t) {
- return t === 0 && n.getHours() === 23 ? (n.setHours(n.getHours() + 2), !0) : !1
- }
- function e(n, i, r) {
- var u = n.getHours();
- r = r || 1;
- i = (i - n.getDay() + 7 * r) % 7;
- n.setDate(n.getDate() + i);
- t(n, u)
- }
- function c(n, t, i) {
- return n = new Date(n), e(n, t, i), n
- }
- function o(n) {
- return new Date(n.getFullYear(), n.getMonth(), 1)
- }
- function l(n) {
- var t = new Date(n.getFullYear(), n.getMonth() + 1, 0),
- i = o(n),
- r = Math.abs(t.getTimezoneOffset() - i.getTimezoneOffset());
- return r && t.setHours(i.getHours() + r / 60), t
- }
- function i(n) {
- return n = new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0), t(n, 0), n
- }
- function a(n) {
- return Date.UTC(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds())
- }
- function r(n) {
- return n.getTime() - i(n)
- }
- function v(t, i, u) {
- var e = r(i),
- o = r(u),
- f;
- return !t || e == o ? !0 : (i >= u && (u += n), f = r(t), e > f && (f += n), o < e && (o += n), f >= e && f <= o)
- }
- function y(t, i, r) {
- var e = i.getTime(),
- u = r.getTime(),
- f;
- return e >= u && (u += n), f = t.getTime(), f >= e && f <= u
- }
- function u(i, r) {
- var u = i.getHours();
- return i = new Date(i), s(i, r * n), t(i, u), i
- }
- function s(n, t, i) {
- var u = n.getTimezoneOffset(),
- r;
- n.setTime(n.getTime() + t);
- i || (r = n.getTimezoneOffset() - u, n.setTime(n.getTime() + r * f))
- }
- function h() {
- return i(new Date)
- }
- function p(n) {
- return i(n).getTime() == h().getTime()
- }
- function w(n) {
- var t = new Date(1980, 1, 1, 0, 0, 0);
- return n && t.setHours(n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds()), t
- }
- var f = 6e4,
- n = 864e5;
- return {
- adjustDST: t,
- dayOfWeek: c,
- setDayOfWeek: e,
- getDate: i,
- isInDateRange: y,
- isInTimeRange: v,
- isToday: p,
- nextDay: function(n) {
- return u(n, 1)
- },
- previousDay: function(n) {
- return u(n, -1)
- },
- toUtcTime: a,
- MS_PER_DAY: n,
- MS_PER_MINUTE: f,
- setTime: s,
- addDays: u,
- today: h,
- toInvariantTime: w,
- firstDayOfMonth: o,
- lastDayOfMonth: l,
- getMilliseconds: r
- }
- }();
- i.stripWhitespace = function(n) {
- for (var t = document.createNodeIterator(n, NodeFilter.SHOW_TEXT, function(t) {
- return t.parentNode == n ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT
- }, !1); t.nextNode();) t.referenceNode && !t.referenceNode.textContent.trim() && t.referenceNode.parentNode.removeChild(t.referenceNode)
- };
- yt = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(n) {
- setTimeout(n, 1e3 / 60)
- };
- i.animationFrame = function(n) {
- yt.call(window, n)
- };
- k = [];
- i.queueAnimation = function(n) {
- k[k.length] = n;
- k.length === 1 && i.runNextAnimation()
- };
- i.runNextAnimation = function() {
- var n = k.shift();
- i.animationFrame(function() {
- n();
- yt[0] && i.runNextAnimation()
- })
- };
- i.parseQueryStringParams = function(n) {
- for (var u = n.split("?")[1] || "", r = {}, i = u.split(/&|=/), f = i.length, t = 0; t < f; t += 2) i[t] !== "" && (r[decodeURIComponent(i[t])] = decodeURIComponent(i[t + 1]));
- return r
- }
- }(jQuery);
- typeof kendo_module == "undefined" && (kendo_module = function() {});
- kendo_module({
- id: "core",
- name: "Core",
- category: "framework",
- description: "The core of the Kendo framework."
- });
- kendo_module({
- id: "fx",
- name: "Effects",
- category: "framework",
- description: "Required for animation effects in all Kendo UI widgets.",
- depends: ["core"]
- }),
- function(n, t) {
- function ii(n) {
- return parseInt(n, 10)
- }
- function p(n, t) {
- return ii(n.css(t))
- }
- function ir(n) {
- var t = n.effects;
- return t === "zoom" && (t = "zoom:in fade:in"), t === "fade" && (t = "fade:in"), t === "slide" && (t = "tile:left"), /^slide:(.+)$/.test(t) && (t = "tile:" + RegExp.$1), t === "overlay" && (t = "slideIn:left"), /^overlay:(.+)$/.test(t) && (t = "slideIn:" + RegExp.$1), n.effects = i.parseEffects(t), tr && t == "tile:left" && (n.previousDivisor = 3), n
- }
- function rr(n) {
- var t = [];
- for (var i in n) t.push(i);
- return t
- }
- function st(n) {
- for (var t in n) rt.indexOf(t) != -1 && d.indexOf(t) == -1 && delete n[t];
- return n
- }
- function ht(n, t) {
- var r = [],
- u = {},
- o, i, s, c;
- for (i in t) o = i.toLowerCase(), c = f && rt.indexOf(o) != -1, !h.hasHW3D && c && d.indexOf(o) == -1 ? delete t[i] : (s = t[i], c ? r.push(i + "(" + s + ")") : u[i] = s);
- return r.length && (u[e] = r.join(" ")), u
- }
- function ri(n, t) {
- var u, i, r;
- return f ? (u = n.css(e), u == gi) ? t == "scale" ? 1 : 0 : (i = u.match(new RegExp(t + "\\s*\\(([\\d\\w\\.]+)")), r = 0, i ? r = ii(i[1]) : (i = u.match(vi) || [0, 0, 0, 0, 0], t = t.toLowerCase(), yi.test(t) ? r = parseFloat(i[3] / i[2]) : t == "translatey" ? r = parseFloat(i[4] / i[2]) : t == "scale" ? r = parseFloat(i[2]) : t == "rotate" && (r = parseFloat(Math.atan2(i[2], i[1])))), r) : parseFloat(n.css(t))
- }
- function lt(n) {
- return n.charAt(0).toUpperCase() + n.substring(1)
- }
- function o(n, t) {
- var i = l.extend(t),
- r = i.prototype.directions;
- u[lt(n)] = i;
- u.Element.prototype[n] = function(n, t, r, u) {
- return new i(this.element, n, t, r, u)
- };
- a(r, function(t, r) {
- u.Element.prototype[n + lt(r)] = function(n, t, u) {
- return new i(this.element, r, n, t, u)
- }
- })
- }
- function fi(n, t, i, r) {
- o(n, {
- directions: ui,
- startValue: function(n) {
- return this._startValue = n, this
- },
- endValue: function(n) {
- return this._endValue = n, this
- },
- shouldHide: function() {
- return this._shouldHide
- },
- prepare: function(n, u) {
- var s = this,
- f, e, h = this._direction === "out",
- o = s.element.data(t),
- c = !(isNaN(o) || o == i);
- f = c ? o : typeof this._startValue != "undefined" ? this._startValue : h ? i : r;
- e = typeof this._endValue != "undefined" ? this._endValue : h ? r : i;
- this._reverse ? (n[t] = e, u[t] = f) : (n[t] = f, u[t] = e);
- s._shouldHide = u[t] === r
- }
- })
- }
- function hi(n, t) {
- var r = i.directions[t].vertical,
- u = n[r ? nt : ft]() / 2 + "px";
- return oi[t].replace("$size", u)
- }
- var i = window.kendo,
- u = i.effects,
- a = n.each,
- r = n.extend,
- ci = n.proxy,
- h = i.support,
- vt = h.browser,
- f = h.transforms,
- s = h.transitions,
- li = {
- scale: 0,
- scalex: 0,
- scaley: 0,
- scale3d: 0
- },
- ai = {
- translate: 0,
- translatex: 0,
- translatey: 0,
- translate3d: 0
- },
- yt = typeof document.documentElement.style.zoom != "undefined" && !f,
- vi = /matrix3?d?\s*\(.*,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?/i,
- pt = /^(-?[\d\.\-]+)?[\w\s]*,?\s*(-?[\d\.\-]+)?[\w\s]*/i,
- yi = /translatex?$/i,
- pi = /(zoom|fade|expand)(\w+)/,
- wt = /(zoom|fade|expand)/,
- wi = /[xy]$/i,
- rt = ["perspective", "rotate", "rotatex", "rotatey", "rotatez", "rotate3d", "scale", "scalex", "scaley", "scalez", "scale3d", "skew", "skewx", "skewy", "translate", "translatex", "translatey", "translatez", "translate3d", "matrix", "matrix3d"],
- d = ["rotate", "scale", "scalex", "scaley", "skew", "skewx", "skewy", "translate", "translatex", "translatey", "matrix"],
- bi = {
- rotate: "deg",
- scale: "",
- skew: "px",
- translate: "px"
- },
- g = f.css,
- ki = Math.round,
- di = "",
- w = "px",
- gi = "none",
- ut = "auto",
- ft = "width",
- nt = "height",
- bt = "hidden",
- et = "origin",
- kt = "abortId",
- tt = "overflow",
- v = "translate",
- b = "position",
- dt = "completeCallback",
- y = g + "transition",
- e = g + "transform",
- nr = g + "backface-visibility",
- gt = g + "perspective",
- ot = "1500px",
- ni = "perspective(" + ot + ")",
- tr = h.mobileOS && h.mobileOS.majorVersion == 7,
- c = {
- left: {
- reverse: "right",
- property: "left",
- transition: "translatex",
- vertical: !1,
- modifier: -1
- },
- right: {
- reverse: "left",
- property: "left",
- transition: "translatex",
- vertical: !1,
- modifier: 1
- },
- down: {
- reverse: "up",
- property: "top",
- transition: "translatey",
- vertical: !0,
- modifier: 1
- },
- up: {
- reverse: "down",
- property: "top",
- transition: "translatey",
- vertical: !0,
- modifier: -1
- },
- top: {
- reverse: "bottom"
- },
- bottom: {
- reverse: "top"
- },
- "in": {
- reverse: "out",
- modifier: -1
- },
- out: {
- reverse: "in",
- modifier: 1
- },
- vertical: {
- reverse: "vertical"
- },
- horizontal: {
- reverse: "horizontal"
- }
- },
- ti, ct, l, k, ui, ei, oi, si, it, at;
- i.directions = c;
- r(n.fn, {
- kendoStop: function(n, t) {
- return s ? u.stopQueue(this, n || !1, t || !1) : this.stop(n, t)
- }
- });
- f && !s && (a(d, function(t, i) {
- n.fn[i] = function(t) {
- if (typeof t == "undefined") return ri(this, i);
- var r = n(this)[0],
- u = i + "(" + t + bi[i.replace(wi, "")] + ")";
- return r.style.cssText.indexOf(e) == -1 ? n(this).css(e, u) : r.style.cssText = r.style.cssText.replace(new RegExp(i + "\\(.*?\\)", "i"), u), this
- };
- n.fx.step[i] = function(t) {
- n(t.elem)[i](t.now)
- }
- }), ti = n.fx.prototype.cur, n.fx.prototype.cur = function() {
- return d.indexOf(this.prop) != -1 ? parseFloat(n(this.elem)[this.prop]()) : ti.apply(this, arguments)
- });
- i.toggleClass = function(n, t, i, u) {
- return t && (t = t.split(" "), s && (i = r({
- exclusive: "all",
- duration: 400,
- ease: "ease-out"
- }, i), n.css(y, i.exclusive + " " + i.duration + "ms " + i.ease), setTimeout(function() {
- n.css(y, "").css(nt)
- }, i.duration)), a(t, function(t, i) {
- n.toggleClass(i, u)
- })), n
- };
- i.parseEffects = function(n, t) {
- var i = {};
- return typeof n == "string" ? a(n.split(" "), function(n, r) {
- var o = !wt.test(r),
- s = r.replace(pi, function(n, t, i) {
- return t + ":" + i.toLowerCase()
- }),
- u = s.split(":"),
- f = u[1],
- e = {};
- u.length > 1 && (e.direction = t && o ? c[f].reverse : f);
- i[u[0]] = e
- }) : a(n, function(n) {
- var r = this.direction;
- r && t && !wt.test(n) && (this.direction = c[r].reverse);
- i[n] = this
- }), i
- };
- s && r(u, {
- transition: function(t, i, u) {
- var h, l = 0,
- a = t.data("keys") || [],
- f, c, o;
- if (u = r({
- duration: 200,
- ease: "ease-out",
- complete: null,
- exclusive: "all"
- }, u), c = !1, o = function() {
- c || (c = !0, f && (clearTimeout(f), f = null), t.removeData(kt).dequeue().css(y, "").css(y), u.complete.call(t))
- }, u.duration = n.fx ? n.fx.speeds[u.duration] || u.duration : u.duration, h = ht(t, i), n.merge(a, rr(h)), t.data("keys", n.unique(a)).height(), t.css(y, u.exclusive + " " + u.duration + "ms " + u.ease).css(y), t.css(h).css(e), s.event) {
- t.one(s.event, o);
- u.duration !== 0 && (l = 500)
- }
- f = setTimeout(o, u.duration + l);
- t.data(kt, f);
- t.data(dt, o)
- },
- stopQueue: function(n, t, r) {
- var u, f = n.data("keys"),
- e = !r && f,
- o = n.data(dt);
- return e && (u = i.getComputedStyles(n[0], f)), o && o(), e && n.css(u), n.removeData("keys").stop(t)
- }
- });
- ct = i.Class.extend({
- init: function(n, t) {
- var i = this;
- i.element = n;
- i.effects = [];
- i.options = t;
- i.restore = []
- },
- run: function(t) {
- var a = this,
- l, h, v, k = t.length,
- c = a.element,
- i = a.options,
- p = n.Deferred(),
- o = {},
- y = {},
- w, b, d, g;
- for (a.effects = t, p.then(n.proxy(a, "complete")), c.data("animating", !0), h = 0; h < k; h++)
- for (l = t[h], l.setReverse(i.reverse), l.setOptions(i), a.addRestoreProperties(l.restore), l.prepare(o, y), b = l.children(), v = 0, d = b.length; v < d; v++) b[v].duration(i.duration).run();
- for (g in i.effects) r(y, i.effects[g].properties);
- for (c.is(":visible") || r(o, {
- display: c.data("olddisplay") || "block"
- }), f && !i.reset && (w = c.data("targetTransform"), w && (o = r(w, o))), o = ht(c, o), f && !s && (o = st(o)), c.css(o).css(e), h = 0; h < k; h++) t[h].setup();
- return i.init && i.init(), c.data("targetTransform", y), u.animate(c, y, r({}, i, {
- complete: p.resolve
- })), p.promise()
- },
- stop: function() {
- n(this.element).kendoStop(!0, !0)
- },
- addRestoreProperties: function(n) {
- for (var i = this.element, t, r = 0, u = n.length; r < u; r++) t = n[r], this.restore.push(t), i.data(t) || i.data(t, i.css(t))
- },
- restoreCallback: function() {
- for (var t, i = this.element, n = 0, r = this.restore.length; n < r; n++) t = this.restore[n], i.css(t, i.data(t))
- },
- complete: function() {
- var i = this,
- r = 0,
- t = i.element,
- u = i.options,
- e = i.effects,
- o = e.length;
- for (t.removeData("animating").dequeue(), u.hide && t.data("olddisplay", t.css("display")).hide(), this.restoreCallback(), yt && !f && setTimeout(n.proxy(this, "restoreCallback"), 0); r < o; r++) e[r].teardown();
- u.completeCallback && u.completeCallback(t)
- }
- });
- u.promise = function(n, t) {
- var r = [],
- f, s = new ct(n, t),
- e = i.parseEffects(t.effects),
- h, o;
- t.effects = e;
- for (o in e) f = u[lt(o)], f && (h = new f(n, e[o].direction), r.push(h));
- r[0] ? s.run(r) : (n.is(":visible") || n.css({
- display: n.data("olddisplay") || "block"
- }).css("display"), t.init && t.init(), n.dequeue(), s.complete())
- };
- u.transitionPromise = function(n, t, i) {
- return u.animateTo(n, t, i), n
- };
- r(u, {
- animate: function(i, e, o) {
- var h = o.transition !== !1;
- delete o.transition;
- s && "transition" in u && h ? u.transition(i, e, o) : f ? i.animate(st(e), {
- queue: !1,
- show: !1,
- hide: !1,
- duration: o.duration,
- complete: o.complete
- }) : i.each(function() {
- var i = n(this),
- u = {};
- a(rt, function(n, o) {
- var c, y = e ? e[o] + " " : null,
- s, w, k, h, l, a;
- y && (s = e, o in li && e[o] !== t ? (c = y.match(pt), f && r(s, {
- scale: +c[0]
- })) : o in ai && e[o] !== t && (w = i.css(b), k = w == "absolute" || w == "fixed", i.data(v) || (k ? i.data(v, {
- top: p(i, "top") || 0,
- left: p(i, "left") || 0,
- bottom: p(i, "bottom"),
- right: p(i, "right")
- }) : i.data(v, {
- top: p(i, "marginTop") || 0,
- left: p(i, "marginLeft") || 0
- })), h = i.data(v), c = y.match(pt), c && (l = o == v + "y" ? 0 : +c[1], a = o == v + "y" ? +c[1] : +c[2], k ? (isNaN(h.right) ? isNaN(l) || r(s, {
- left: h.left + l
- }) : isNaN(l) || r(s, {
- right: h.right - l
- }), isNaN(h.bottom) ? isNaN(a) || r(s, {
- top: h.top + a
- }) : isNaN(a) || r(s, {
- bottom: h.bottom - a
- })) : (isNaN(l) || r(s, {
- marginLeft: h.left + l
- }), isNaN(a) || r(s, {
- marginTop: h.top + a
- })))), !f && o != "scale" && o in s && delete s[o], s && r(u, s))
- });
- vt.msie && delete u.scale;
- i.animate(u, {
- queue: !1,
- show: !1,
- hide: !1,
- duration: o.duration,
- complete: o.complete
- })
- })
- },
- animateTo: function(t, i, u) {
- function a(n) {
- i[0].style.cssText = "";
- t.each(function() {
- this.style.cssText = ""
- });
- h.mobileOS.android || f.css(tt, c);
- s || e.css(b, l);
- u.completeCallback && u.completeCallback.call(t, n)
- }
- var o, f = t.parents().filter(i.parents()).first(),
- e = n().add(t.parent()).add(i.parent()),
- s = t.css(b) == "absolute",
- c, l;
- s || (l = e.css(b), e.css(b, "absolute"));
- u = ir(u);
- h.mobileOS.android || (c = f.css(tt), f.css(tt, "hidden"));
- n.each(u.effects, function(n, t) {
- o = o || t.direction
- });
- u.complete = vt.msie ? function() {
- setTimeout(a, 0)
- } : a;
- u.previous = u.reverse ? i : t;
- u.reset = !0;
- (u.reverse ? t : i).each(function() {
- n(this).kendoAnimate(r(!0, {}, u));
- u.complete = null;
- u.previous = null
- })
- }
- });
- u.animatedPromise = u.promise;
- u.animatedTransitionPromise = u.transitionPromise;
- l = i.Class.extend({
- init: function(n, t) {
- var i = this;
- i.element = n;
- i._direction = t;
- i.options = {};
- i._additionalEffects = [];
- i.restore || (i.restore = [])
- },
- reverse: function() {
- return this._reverse = !0, this.run()
- },
- play: function() {
- return this._reverse = !1, this.run()
- },
- add: function(n) {
- return this._additionalEffects.push(n), this
- },
- direction: function(n) {
- return this._direction = n, this
- },
- duration: function(n) {
- return this._duration = n, this
- },
- compositeRun: function() {
- var n = this,
- t = new ct(n.element, {
- reverse: n._reverse,
- duration: n._duration
- }),
- i = n._additionalEffects.concat([n]);
- return t.run(i)
- },
- run: function() {
- if (this._additionalEffects && this._additionalEffects[0]) return this.compositeRun();
- var o = this,
- t = o.element,
- h = 0,
- y = o.restore,
- w = y.length,
- c, l = n.Deferred(),
- i = {},
- a = {},
- v, p = o.children(),
- b = p.length;
- for (l.then(n.proxy(o, "_complete")), t.data("animating", !0), h = 0; h < w; h++) c = y[h], t.data(c) || t.data(c, t.css(c));
- for (h = 0; h < b; h++) p[h].duration(o._duration).run();
- return o.prepare(i, a), t.is(":visible") || r(i, {
- display: t.data("olddisplay") || "block"
- }), f && (v = t.data("targetTransform"), v && (i = r(v, i))), i = ht(t, i), f && !s && (i = st(i)), t.css(i).css(e), o.setup(), t.data("targetTransform", a), u.animate(t, a, {
- duration: o._duration,
- complete: l.resolve
- }), l.promise()
- },
- stop: function() {
- for (var t = 0, i = this.children(), r = i.length, t = 0; t < r; t++) i[t].stop();
- return n(this.element).kendoStop(!0, !0), this
- },
- restoreCallback: function() {
- for (var t, i = this.element, n = 0, r = this.restore.length; n < r; n++) t = this.restore[n], i.css(t, i.data(t))
- },
- _complete: function() {
- var t = this,
- i = t.element;
- i.removeData("animating").dequeue();
- t.restoreCallback();
- t.shouldHide() && i.data("olddisplay", i.css("display")).hide();
- yt && !f && setTimeout(n.proxy(t, "restoreCallback"), 0);
- t.teardown()
- },
- setOptions: function(n) {
- r(!0, this.options, n)
- },
- children: function() {
- return []
- },
- shouldHide: n.noop,
- setup: n.noop,
- prepare: n.noop,
- teardown: n.noop,
- directions: [],
- setReverse: function(n) {
- return this._reverse = n, this
- }
- });
- k = ["left", "right", "up", "down"];
- ui = ["in", "out"];
- o("slideIn", {
- directions: k,
- divisor: function(n) {
- return this.options.divisor = n, this
- },
- prepare: function(n, t) {
- var r = this,
- u, e = r.element,
- i = c[r._direction],
- h = -i.modifier * (i.vertical ? e.outerHeight() : e.outerWidth()),
- o = h / (r.options && r.options.divisor || 1) + w,
- s = "0px";
- r._reverse && (u = n, n = t, t = u);
- f ? (n[i.transition] = o, t[i.transition] = s) : (n[i.property] = o, t[i.property] = s)
- }
- });
- o("tile", {
- directions: k,
- init: function(n, t, i) {
- l.prototype.init.call(this, n, t);
- this.options = {
- previous: i
- }
- },
- previousDivisor: function(n) {
- return this.options.previousDivisor = n, this
- },
- children: function() {
- var n = this,
- t = n._reverse,
- r = n.options.previous,
- e = n.options.previousDivisor || 1,
- u = n._direction,
- f = [i.fx(n.element).slideIn(u).setReverse(t)];
- return r && f.push(i.fx(r).slideIn(c[u].reverse).divisor(e).setReverse(!t)), f
- }
- });
- fi("fade", "opacity", 1, 0);
- fi("zoom", "scale", 1, .01);
- o("slideMargin", {
- prepare: function(n, t) {
- var r = this,
- i = r.element,
- u = r.options,
- o = i.data(et),
- s = u.offset,
- f, e = r._reverse;
- e || o !== null || i.data(et, parseFloat(i.css("margin-" + u.axis)));
- f = i.data(et) || 0;
- t["margin-" + u.axis] = e ? f : f + s
- }
- });
- o("slideTo", {
- prepare: function(n, t) {
- var u = this,
- e = u.element,
- o = u.options,
- i = o.offset.split(","),
- r = u._reverse;
- f ? (t.translatex = r ? 0 : i[0], t.translatey = r ? 0 : i[1]) : (t.left = r ? 0 : i[0], t.top = r ? 0 : i[1]);
- e.css("left")
- }
- });
- o("expand", {
- directions: ["horizontal", "vertical"],
- restore: [tt],
- prepare: function(n, i) {
- var f = this,
- e = f.element,
- o = f.options,
- s = f._reverse,
- r = f._direction === "vertical" ? nt : ft,
- h = e[0].style[r],
- c = e.data(r),
- u = parseFloat(c || h),
- l = ki(e.css(r, ut)[r]());
- n.overflow = bt;
- u = o && o.reset ? l || u : u || l;
- i[r] = (s ? 0 : u) + w;
- n[r] = (s ? u : 0) + w;
- c === t && e.data(r, h)
- },
- shouldHide: function() {
- return this._reverse
- },
- teardown: function() {
- var t = this,
- i = t.element,
- n = t._direction === "vertical" ? nt : ft,
- r = i.data(n);
- (r == ut || r === di) && setTimeout(function() {
- i.css(n, ut).css(n)
- }, 0)
- }
- });
- ei = {
- position: "absolute",
- marginLeft: 0,
- marginTop: 0,
- scale: 1
- };
- o("transfer", {
- init: function(n, t) {
- this.element = n;
- this.options = {
- target: t
- };
- this.restore = []
- },
- setup: function() {
- this.element.appendTo(document.body)
- },
- prepare: function(n, t) {
- var s = this,
- i = s.element,
- g = s.options,
- nt = s._reverse,
- h = g.target,
- u, tt = ri(i, "scale"),
- l = h.offset(),
- a = h.outerHeight() / i.outerHeight();
- r(n, ei);
- t.scale = 1;
- i.css(e, "scale(1)").css(e);
- u = i.offset();
- i.css(e, "scale(" + tt + ")");
- var f = 0,
- o = 0,
- v = l.left - u.left,
- y = l.top - u.top,
- p = f + i.outerWidth(),
- b = o,
- it = v + h.outerWidth(),
- rt = y,
- c = (y - o) / (v - f),
- k = (rt - b) / (it - p),
- d = (o - b - c * f + k * p) / (k - c),
- ut = o + c * (d - f);
- n.top = u.top;
- n.left = u.left;
- n.transformOrigin = d + w + " " + ut + w;
- nt ? n.scale = a : t.scale = a
- }
- });
- oi = {
- top: "rect(auto auto $size auto)",
- bottom: "rect($size auto auto auto)",
- left: "rect(auto $size auto auto)",
- right: "rect(auto auto auto $size)"
- };
- si = {
- top: {
- start: "rotatex(0deg)",
- end: "rotatex(180deg)"
- },
- bottom: {
- start: "rotatex(-180deg)",
- end: "rotatex(0deg)"
- },
- left: {
- start: "rotatey(0deg)",
- end: "rotatey(-180deg)"
- },
- right: {
- start: "rotatey(180deg)",
- end: "rotatey(0deg)"
- }
- };
- o("turningPage", {
- directions: k,
- init: function(n, t, i) {
- l.prototype.init.call(this, n, t);
- this._container = i
- },
- prepare: function(n, t) {
- var r = this,
- f = r._reverse,
- o = f ? c[r._direction].reverse : r._direction,
- u = si[o];
- n.zIndex = 1;
- r._clipInHalf && (n.clip = hi(r._container, i.directions[o].reverse));
- n[nr] = bt;
- t[e] = ni + (f ? u.start : u.end);
- n[e] = ni + (f ? u.end : u.start)
- },
- setup: function() {
- this._container.append(this.element)
- },
- face: function(n) {
- return this._face = n, this
- },
- shouldHide: function() {
- var n = this,
- t = n._reverse,
- i = n._face;
- return t && !i || !t && i
- },
- clipInHalf: function(n) {
- return this._clipInHalf = n, this
- },
- temporary: function() {
- return this.element.addClass("temp-page"), this
- }
- });
- o("staticPage", {
- directions: k,
- init: function(n, t, i) {
- l.prototype.init.call(this, n, t);
- this._container = i
- },
- restore: ["clip"],
- prepare: function(n, t) {
- var i = this,
- r = i._reverse ? c[i._direction].reverse : i._direction;
- n.clip = hi(i._container, r);
- n.opacity = .999;
- t.opacity = 1
- },
- shouldHide: function() {
- var n = this,
- t = n._reverse,
- i = n._face;
- return t && !i || !t && i
- },
- face: function(n) {
- return this._face = n, this
- }
- });
- o("pageturn", {
- directions: ["horizontal", "vertical"],
- init: function(n, t, i, r) {
- l.prototype.init.call(this, n, t);
- this.options = {};
- this.options.face = i;
- this.options.back = r
- },
- children: function() {
- var r = this,
- u = r.options,
- n = r._direction === "horizontal" ? "left" : "top",
- f = i.directions[n].reverse,
- t = r._reverse,
- o, s = u.face.clone(!0).removeAttr("id"),
- h = u.back.clone(!0).removeAttr("id"),
- e = r.element;
- return t && (o = n, n = f, f = o), [i.fx(u.face).staticPage(n, e).face(!0).setReverse(t), i.fx(u.back).staticPage(f, e).setReverse(t), i.fx(s).turningPage(n, e).face(!0).clipInHalf(!0).temporary().setReverse(t), i.fx(h).turningPage(f, e).clipInHalf(!0).temporary().setReverse(t)]
- },
- prepare: function(n, t) {
- n[gt] = ot;
- n.transformStyle = "preserve-3d";
- n.opacity = .999;
- t.opacity = 1
- },
- teardown: function() {
- this.element.find(".temp-page").remove()
- }
- });
- o("flip", {
- directions: ["horizontal", "vertical"],
- init: function(n, t, i, r) {
- l.prototype.init.call(this, n, t);
- this.options = {};
- this.options.face = i;
- this.options.back = r
- },
- children: function() {
- var n = this,
- f = n.options,
- t = n._direction === "horizontal" ? "left" : "top",
- r = i.directions[t].reverse,
- u = n._reverse,
- e, o = n.element;
- return u && (e = t, t = r, r = e), [i.fx(f.face).turningPage(t, o).face(!0).setReverse(u), i.fx(f.back).turningPage(r, o).setReverse(u)]
- },
- prepare: function(n) {
- n[gt] = ot;
- n.transformStyle = "preserve-3d"
- }
- });
- it = i.Class.extend({
- init: function() {
- var n = this;
- n._tickProxy = ci(n._tick, n);
- n._started = !1
- },
- tick: n.noop,
- done: n.noop,
- onEnd: n.noop,
- onCancel: n.noop,
- start: function() {
- this.done() || (this._started = !0, i.animationFrame(this._tickProxy))
- },
- cancel: function() {
- this._started = !1;
- this.onCancel()
- },
- _tick: function() {
- var n = this;
- n._started && (n.tick(), n.done() ? (n._started = !1, n.onEnd()) : i.queueAnimation(n._tickProxy))
- }
- });
- at = it.extend({
- init: function(n) {
- var t = this;
- r(t, n);
- it.fn.init.call(t)
- },
- done: function() {
- return this.timePassed() >= this.duration
- },
- timePassed: function() {
- return Math.min(this.duration, new Date - this.startDate)
- },
- moveTo: function(n) {
- var t = this,
- i = t.movable;
- t.initial = i[t.axis];
- t.delta = n.location - t.initial;
- t.duration = typeof n.duration == "number" ? n.duration : 300;
- t.tick = t._easeProxy(n.ease);
- t.startDate = new Date;
- t.start()
- },
- _easeProxy: function(n) {
- var t = this;
- return function() {
- t.movable.moveAxis(t.axis, n(t.timePassed(), t.initial, t.delta, t.duration))
- }
- }
- });
- r(at, {
- easeOutExpo: function(n, t, i, r) {
- return n == r ? t + i : i * (-Math.pow(2, -10 * n / r) + 1) + t
- },
- easeOutBack: function(n, t, i, r, u) {
- return u = 1.70158, i * ((n = n / r - 1) * n * ((u + 1) * n + u) + 1) + t
- }
- });
- u.Animation = it;
- u.Transition = at;
- u.createEffect = o
- }(window.kendo.jQuery);
- kendo_module({
- id: "data",
- name: "Data source",
- category: "framework",
- description: "Powerful component for using local and remote data.Fully supports CRUD, Sorting, Paging, Filtering, Grouping, and Aggregates.",
- depends: ["core"],
- features: [{
- id: "data-odata",
- name: "OData",
- description: "Support for accessing Open Data Protocol (OData) services.",
- depends: ["data.odata"]
- }, {
- id: "data-XML",
- name: "XML",
- description: "Support for binding to XML.",
- depends: ["data.xml"]
- }]
- }),
- function(n, t) {
- function gt(n, t, i, u) {
- return function(f) {
- var e = {};
- for (var o in f) e[o] = f[o];
- e.field = u ? i + "." + f.field : i;
- t == r && n._notifyChange && n._notifyChange(e);
- n.trigger(t, e)
- }
- }
- function li(t, i) {
- if (t === i) return !0;
- var r = n.type(t),
- f = n.type(i),
- u;
- if (r !== f) return !1;
- if (r === "date") return t.getTime() === i.getTime();
- if (r !== "object" && r !== "array") return !1;
- for (u in t)
- if (!li(t[u], i[u])) return !1;
- return !0
- }
- function ou(n, t) {
- var i;
- for (var r in n)
- if ((i = n[r], l(i) && i.field && i.field === t) || i === t) return i;
- return null
- }
- function u(n) {
- this.data = n || []
- }
- function it(n, i) {
- if (n) {
- var r = typeof n === o ? {
- field: n,
- dir: i
- } : n,
- u = d(r) ? r : r !== t ? [r] : [];
- return pr(u, function(n) {
- return !!n.dir
- })
- }
- }
- function wi(n) {
- var i, f, r, t, u = n.filters;
- if (u)
- for (i = 0, f = u.length; i < f; i++) r = u[i], t = r.operator, t && typeof t === o && (r.operator = pi[t.toLowerCase()] || t), wi(r)
- }
- function ct(n) {
- if (n && !k(n)) return (d(n) || !n.filters) && (n = {
- logic: "and",
- filters: d(n) ? n : [n]
- }), wi(n), n
- }
- function su(n) {
- return d(n) ? n : [n]
- }
- function rt(n, i) {
- var r = typeof n === o ? {
- field: n,
- dir: i
- } : n,
- u = d(r) ? r : r !== t ? [r] : [];
- return vt(u, function(n) {
- return {
- field: n.field,
- dir: n.dir || "asc",
- aggregates: n.aggregates
- }
- })
- }
- function hu(n, t) {
- return n && n.getTime && t && t.getTime ? n.getTime() === t.getTime() : n === t
- }
- function cu(n, t, r, u, f) {
- var o, h, s, c, e;
- for (t = t || [], c = t.length, o = 0; o < c; o++) h = t[o], s = h.aggregate, e = h.field, n[e] = n[e] || {}, n[e][s] = bi[s.toLowerCase()](n[e][s], r, i.accessor(e), u, f)
- }
- function ki(n) {
- return typeof n == "number" && !isNaN(n)
- }
- function lu(n) {
- for (var i = n.length, r = new Array(i), t = 0; t < i; t++) r[t] = n[t].toJSON();
- return r
- }
- function di(n, t) {
- t = t || {};
- var i = new u(n),
- f = t.aggregate,
- r = t.filter;
- return r && (i = i.filter(r)), i.aggregate(f)
- }
- function au(n, t, i, r, u) {
- for (var e, f, o, s = 0, h = n.length; s < h; s++) {
- e = n[s];
- for (f in t) o = u[f], o && o !== f && (e[o] = t[f](e), delete e[f])
- }
- }
- function tr(n, t, i, r, u) {
- for (var e, f, o, s = 0, h = n.length; s < h; s++) {
- e = n[s];
- for (f in t) e[f] = i._parse(f, t[f](e)), o = u[f], o && o !== f && delete e[o]
- }
- }
- function ir(n, t, i, r, u) {
- for (var f, o, e = 0, s = n.length; e < s; e++) f = n[e], o = r[f.field], o && o != f.field && (f.field = o), f.value = i._parse(f.field, f.value), f.hasSubgroups ? ir(f.items, t, i, r, u) : tr(f.items, t, i, r, u)
- }
- function ni(n, t, i, r, u, f) {
- return function(e) {
- return e = n(e), e && !k(r) && (st.call(e) === "[object Array]" || e instanceof p || (e = [e]), i(e, r, new t, u, f)), e || []
- }
- }
- function ii(n, t, i, r) {
- for (var f, e = 0, u, o; t.length && r;)
- if (f = t[e], u = f.items, o = u.length, n && n.field === f.field && n.value === f.value ? (n.hasSubgroups && n.items.length ? ii(n.items[n.items.length - 1], f.items, i, r) : (u = u.slice(i, i + r), n.items = n.items.concat(u)), t.splice(e--, 1)) : f.hasSubgroups && u.length ? ii(f, u, i, r) : (u = u.slice(i, i + r), f.items = u, f.items.length || t.splice(e--, 1)), u.length === 0 ? i -= o : (i = 0, r -= u.length), ++e >= t.length) break;
- e < t.length && t.splice(e, t.length - e)
- }
- function rr(n) {
- for (var i = [], t = 0, r = n.length; t < r; t++) i = n[t].hasSubgroups ? i.concat(rr(n[t].items)) : i.concat(n[t].items.slice());
- return i
- }
- function ur(n, t) {
- var r, f, u, i;
- if (t)
- for (r = 0, f = n.length; r < f; r++) u = n[r], i = u.items, u.hasSubgroups ? ur(i, t) : !i.length || i[0] instanceof t || (i.type = t, i.wrapAll(i, i))
- }
- function fr(n, t) {
- for (var i = 0, r = n.length; i < r; i++)
- if (n[i].hasSubgroups) {
- if (fr(n[i].items, t)) return !0
- } else if (t(n[i].items, n[i])) return !0
- }
- function vu(n, t) {
- for (var i = 0, r = n.length; i < r; i++)
- if (n[i].uid == t.uid) return t = n[i], n.splice(i, 1), t
- }
- function er(n, t) {
- for (var i, u, r = n.length - 1, f = 0; r >= f; r--) u = n[r], i = {
- value: t.get(u.field),
- field: u.field,
- items: i ? [i] : [t],
- hasSubgroups: !!i,
- aggregates: {}
- };
- return i
- }
- function or(n, t) {
- return t ? hr(n, function(n) {
- return n[t.idField] === t.id
- }) : -1
- }
- function sr(n, t) {
- return t ? hr(n, function(n) {
- return n.uid == t.uid
- }) : -1
- }
- function hr(n, t) {
- for (var i = 0, r = n.length; i < r; i++)
- if (t(n[i])) return i;
- return -1
- }
- function cr(n, t) {
- if (n && !k(n)) {
- var i = n[t],
- r;
- return (r = l(i) ? i.from || i.field || t : n[t] || t, y(r)) ? t : r
- }
- return t
- }
- function lr(n, t) {
- var r, f, i = {};
- for (var u in n) u !== "filters" && (i[u] = n[u]);
- if (n.filters)
- for (i.filters = [], r = 0, f = n.filters.length; r < f; r++) i.filters[r] = lr(n.filters[r], t);
- else i.field = cr(t.fields, i.field);
- return i
- }
- function lt(n, t) {
- for (var o = [], i, u, f, r = 0, e = n.length; r < e; r++) {
- i = {};
- u = n[r];
- for (f in u) i[f] = u[f];
- i.field = cr(t.fields, i.field);
- i.aggregates && d(i.aggregates) && (i.aggregates = lt(i.aggregates, t));
- o.push(i)
- }
- return o
- }
- function yu(t, i) {
- for (var o = n(t)[0].children, h = [], e, c = i[0], l = i[1], u, r, f = 0, s = o.length; f < s; f++)(e = {}, r = o[f], r.disabled) || (e[c.field] = r.text, u = r.attributes.value, u = u && u.specified ? r.value : r.text, e[l.field] = u, h.push(e));
- return h
- }
- function pu(t, i) {
- for (var s = n(t)[0].tBodies[0], h = s ? s.rows : [], r, v = i.length, l = [], a, f, e, o, u = 0, c = h.length; u < c; u++) {
- for (f = {}, o = !0, a = h[u].cells, r = 0; r < v; r++) e = a[r], e.nodeName.toLowerCase() !== "th" && (o = !1, f[i[r].field] = e.innerHTML);
- o || l.push(f)
- }
- return l
- }
- function ar(n) {
- return function() {
- var t = this._data,
- i = h.fn[n].apply(this, dt.call(arguments));
- return this._data != t && this._attachBubbleHandlers(), i
- }
- }
- function vr(t, i) {
- function c(n, t) {
- return n.filter(t).add(n.find(t))
- }
- for (var l = n(t).children(), v = [], r, b = i[0].field, y = i[1] && i[1].field, p = i[2] && i[2].field, w = i[3] && i[3].field, f, s, o, h, u, e = 0, a = l.length; e < a; e++) r = {
- _loaded: !0
- }, f = l.eq(e), o = f[0].firstChild, u = f.children(), t = u.filter("ul"), u = u.filter(":not(ul)"), s = f.attr("data-id"), s && (r.id = s), o && (r[b] = o.nodeType == 3 ? o.nodeValue : u.text()), y && (r[y] = c(u, "a").attr("href")), w && (r[w] = c(u, "img").attr("src")), p && (h = c(u, ".k-sprite").prop("className"), r[p] = h && n.trim(h.replace("k-sprite", ""))), t.length && (r.items = vr(t.eq(0), i)), f.attr("data-hasChildren") == "true" && (r.hasChildren = !0), v.push(r);
- return v
- }
- var e = n.extend,
- v = n.proxy,
- l = n.isPlainObject,
- k = n.isEmptyObject,
- d = n.isArray,
- pr = n.grep,
- at = n.ajax,
- vt, yt = n.each,
- b = n.noop,
- i = window.kendo,
- y = i.isFunction,
- g = i.Observable,
- ft = i.Class,
- o = "string",
- pt = "function",
- ei = "create",
- oi = "read",
- si = "update",
- hi = "destroy",
- r = "change",
- ci = "sync",
- wt = "get",
- a = "error",
- tt = "requestStart",
- bt = "progress",
- nt = "requestEnd",
- wr = [ei, oi, si, hi],
- et = function(n) {
- return n
- },
- ot = i.getter,
- kt = i.stringify,
- f = Math,
- br = [].push,
- kr = [].join,
- dr = [].pop,
- gr = [].splice,
- nu = [].shift,
- dt = [].slice,
- tu = [].unshift,
- st = {}.toString,
- iu = i.support.stableSort,
- ru = /^\/Date\((.*?)\)\/$/,
- uu = /(\r+|\n+)/g,
- fu = /(?=['\\])/g,
- p = g.extend({
- init: function(n, t) {
- var i = this;
- i.type = t || s;
- g.fn.init.call(i);
- i.length = n.length;
- i.wrapAll(n, i)
- },
- toJSON: function() {
- for (var i = this.length, t, r = new Array(i), n = 0; n < i; n++) t = this[n], t instanceof s && (t = t.toJSON()), r[n] = t;
- return r
- },
- parent: b,
- wrapAll: function(n, t) {
- var r = this,
- i, u, f = function() {
- return r
- };
- for (t = t || [], i = 0, u = n.length; i < u; i++) t[i] = r.wrap(n[i], f);
- return t
- },
- wrap: function(n, t) {
- var i = this,
- u;
- return n !== null && st.call(n) === "[object Object]" && (u = n instanceof i.type || n instanceof c, u || (n = n instanceof s ? n.toJSON() : n, n = new i.type(n)), n.parent = t, n.bind(r, function(n) {
- i.trigger(r, {
- field: n.field,
- node: n.node,
- index: n.index,
- items: n.items || [this],
- action: n.node ? n.action || "itemchange" : "itemchange"
- })
- })), n
- },
- push: function() {
- var i = this.length,
- n = this.wrapAll(arguments),
- t;
- return t = br.apply(this, n), this.trigger(r, {
- action: "add",
- index: i,
- items: n
- }), t
- },
- slice: dt,
- join: kr,
- pop: function() {
- var n = this.length,
- t = dr.apply(this);
- return n && this.trigger(r, {
- action: "remove",
- index: n - 1,
- items: [t]
- }), t
- },
- splice: function(n, t, i) {
- var e = this.wrapAll(dt.call(arguments, 2)),
- u, f, o;
- if (u = gr.apply(this, [n, t].concat(e)), u.length)
- for (this.trigger(r, {
- action: "remove",
- index: n,
- items: u
- }), f = 0, o = u.length; f < o; f++) u[f].children && u[f].unbind(r);
- return i && this.trigger(r, {
- action: "add",
- index: n,
- items: e
- }), u
- },
- shift: function() {
- var t = this.length,
- n = nu.apply(this);
- return t && this.trigger(r, {
- action: "remove",
- index: 0,
- items: [n]
- }), n
- },
- unshift: function() {
- var n = this.wrapAll(arguments),
- t;
- return t = tu.apply(this, n), this.trigger(r, {
- action: "add",
- index: 0,
- items: n
- }), t
- },
- indexOf: function(n) {
- for (var i = this, t = 0, r = i.length; t < r; t++)
- if (i[t] === n) return t;
- return -1
- },
- forEach: function(n) {
- for (var t = 0, i = this.length; t < i; t++) n(this[t], t, this)
- },
- map: function(n) {
- for (var t = 0, i = [], r = this.length; t < r; t++) i[t] = n(this[t], t, this);
- return i
- },
- filter: function(n) {
- for (var t = 0, i = [], r, u = this.length; t < u; t++) r = this[t], n(r, t, this) && (i[i.length] = r);
- return i
- },
- find: function(n) {
- for (var t = 0, i, r = this.length; t < r; t++)
- if (i = this[t], n(i, t, this)) return i
- },
- every: function(n) {
- for (var t = 0, i, r = this.length; t < r; t++)
- if (i = this[t], !n(i, t, this)) return !1;
- return !0
- },
- some: function(n) {
- for (var t = 0, i, r = this.length; t < r; t++)
- if (i = this[t], n(i, t, this)) return !0;
- return !1
- },
- remove: function(n) {
- this.splice(this.indexOf(n), 1)
- },
- empty: function() {
- this.splice(0, this.length)
- }
- }),
- s = g.extend({
- init: function(n) {
- var r = this,
- u, t, f = function() {
- return r
- };
- g.fn.init.call(this);
- for (t in n) u = n[t], t.charAt(0) != "_" && (u = r.wrap(u, t, f)), r[t] = u;
- r.uid = i.guid()
- },
- shouldSerialize: function(n) {
- return this.hasOwnProperty(n) && n !== "_events" && typeof this[n] !== pt && n !== "uid"
- },
- forEach: function(n) {
- for (var t in this) this.shouldSerialize(t) && n(this[t], t)
- },
- toJSON: function() {
- var i = {},
- n;
- for (var t in this) this.shouldSerialize(t) && (n = this[t], (n instanceof s || n instanceof p) && (n = n.toJSON()), i[t] = n);
- return i
- },
- get: function(n) {
- var t = this;
- return t.trigger(wt, {
- field: n
- }), n === "this" ? t : i.getter(n, !0)(t)
- },
- _set: function(n, t) {
- var o = this,
- f = n.indexOf(".") >= 0,
- r, u, e;
- if (f)
- for (r = n.split("."), u = ""; r.length > 1;) {
- if (u += r.shift(), e = i.getter(u, !0)(o), e instanceof s) return e.set(r.join("."), t), f;
- u += "."
- }
- return i.setter(n)(o, t), f
- },
- set: function(n, t) {
- var u = this,
- f = i.getter(n, !0)(u);
- f !== t && (u.trigger("set", {
- field: n,
- value: t
- }) || (!u._set(n, u.wrap(t, n, function() {
- return u
- })) || n.indexOf("(") >= 0 || n.indexOf("[") >= 0) && u.trigger(r, {
- field: n
- }))
- },
- parent: b,
- wrap: function(n, t, i) {
- var o = this,
- u = st.call(n),
- f, e;
- return n != null && (u === "[object Object]" || u === "[object Array]") && (f = n instanceof p, e = n instanceof h, u !== "[object Object]" || e || f ? (u === "[object Array]" || f || e) && (f || e || (n = new p(n)), n.parent() != i() && n.bind(r, gt(o, r, t, !1))) : (n instanceof s || (n = new s(n)), n.parent() != i() && (n.bind(wt, gt(o, wt, t, !0)), n.bind(r, gt(o, r, t, !0)))), n.parent = i), n
- }
- }),
- ai = {
- number: function(n) {
- return i.parseFloat(n)
- },
- date: function(n) {
- return i.parseDate(n)
- },
- boolean: function(n) {
- return typeof n === o ? n.toLowerCase() === "true" : n != null ? !!n : n
- },
- string: function(n) {
- return n != null ? n + "" : n
- },
- "default": function(n) {
- return n
- }
- },
- eu = {
- string: "",
- number: 0,
- date: new Date,
- boolean: !1,
- "default": ""
- },
- c = s.extend({
- init: function(i) {
- var r = this;
- (!i || n.isEmptyObject(i)) && (i = n.extend({}, r.defaults, i));
- s.fn.init.call(r, i);
- r.dirty = !1;
- r.idField && (r.id = r.get(r.idField), r.id === t && (r.id = r._defaultId))
- },
- shouldSerialize: function(n) {
- return s.fn.shouldSerialize.call(this, n) && n !== "uid" && !(this.idField !== "id" && n === "id") && n !== "dirty" && n !== "_accessors"
- },
- _parse: function(n, t) {
- var u = this,
- f = n,
- r = u.fields || {},
- i;
- return n = r[n], n || (n = ou(r, f)), n && (i = n.parse, !i && n.type && (i = ai[n.type.toLowerCase()])), i ? i(t) : t
- },
- _notifyChange: function(n) {
- var t = n.action;
- (t == "add" || t == "remove") && (this.dirty = !0)
- },
- editable: function(n) {
- return n = (this.fields || {})[n], n ? n.editable !== !1 : !0
- },
- set: function(n, t, i) {
- var r = this;
- r.editable(n) && (t = r._parse(n, t), li(t, r.get(n)) || (r.dirty = !0, s.fn.set.call(r, n, t, i)))
- },
- accept: function(n) {
- var t = this,
- u = function() {
- return t
- },
- i, r;
- for (i in n) r = n[i], i.charAt(0) != "_" && (r = t.wrap(n[i], i, u)), t._set(i, r);
- t.idField && (t.id = t.get(t.idField));
- t.dirty = !1
- },
- isNew: function() {
- return this.id === this._defaultId
- }
- }),
- ht, vi, yi, pi, bi, ti, h, ri, ui, w, fi, yr;
- c.define = function(n, i) {
- i === t && (i = n, n = c);
- var s, r = e({
- defaults: {}
- }, i),
- f, u, y, l, a, w, p = {},
- h, v = r.id;
- if (v && (r.idField = v), r.id && delete r.id, v && (r.defaults[v] = r._defaultId = ""), st.call(r.fields) === "[object Array]") {
- for (a = 0, w = r.fields.length; a < w; a++) u = r.fields[a], typeof u === o ? p[u] = {} : u.field && (p[u.field] = u);
- r.fields = p
- }
- for (f in r.fields) u = r.fields[f], y = u.type || "default", l = null, h = f, f = typeof u.field === o ? u.field : f, u.nullable || (l = r.defaults[h !== f ? h : f] = u.defaultValue !== t ? u.defaultValue : eu[y.toLowerCase()]), i.id === f && (r._defaultId = l), r.defaults[h !== f ? h : f] = l, u.parse = u.parse || ai[y];
- return s = n.extend(r), s.define = function(n) {
- return c.define(s, n)
- }, r.fields && (s.fields = r.fields, s.idField = r.idField), s
- };
- ht = {
- selector: function(n) {
- return y(n) ? n : ot(n)
- },
- compare: function(n) {
- var t = this.selector(n);
- return function(n, i) {
- return (n = t(n), i = t(i), n == null && i == null) ? 0 : n == null ? -1 : i == null ? 1 : n.localeCompare ? n.localeCompare(i) : n > i ? 1 : n < i ? -1 : 0
- }
- },
- create: function(n) {
- var t = n.compare || this.compare(n.field);
- return n.dir == "desc" ? function(n, i) {
- return t(i, n, !0)
- } : t
- },
- combine: function(n) {
- return function(t, i) {
- for (var u = n[0](t, i), r = 1, f = n.length; r < f; r++) u = u || n[r](t, i);
- return u
- }
- }
- };
- vi = e({}, ht, {
- asc: function(n) {
- var t = this.selector(n);
- return function(n, i) {
- var r = t(n),
- u = t(i);
- return (r && r.getTime && u && u.getTime && (r = r.getTime(), u = u.getTime()), r === u) ? n.__position - i.__position : r == null ? -1 : u == null ? 1 : r.localeCompare ? r.localeCompare(u) : r > u ? 1 : -1
- }
- },
- desc: function(n) {
- var t = this.selector(n);
- return function(n, i) {
- var u = t(n),
- r = t(i);
- return (u && u.getTime && r && r.getTime && (u = u.getTime(), r = r.getTime()), u === r) ? n.__position - i.__position : u == null ? 1 : r == null ? -1 : r.localeCompare ? r.localeCompare(u) : u < r ? 1 : -1
- }
- },
- create: function(n) {
- return this[n.dir](n.field)
- }
- });
- vt = function(n, t) {
- for (var r = n.length, u = new Array(r), i = 0; i < r; i++) u[i] = t(n[i], i, n);
- return u
- };
- yi = function() {
- function t(n) {
- return n.replace(fu, "\\").replace(uu, "")
- }
- function n(n, i, r, u) {
- var f;
- return r != null && (typeof r === o && (r = t(r), f = ru.exec(r), f ? r = new Date(+f[1]) : u ? (r = "'" + r.toLowerCase() + "'", i = "(" + i + " || '').toLowerCase()") : r = "'" + r + "'"), r.getTime && (i = "(" + i + "?" + i + ".getTime():" + i + ")", r = r.getTime())), i + " " + n + " " + r
- }
- return {
- eq: function(t, i, r) {
- return n("==", t, i, r)
- },
- neq: function(t, i, r) {
- return n("!=", t, i, r)
- },
- gt: function(t, i, r) {
- return n(">", t, i, r)
- },
- gte: function(t, i, r) {
- return n(">=", t, i, r)
- },
- lt: function(t, i, r) {
- return n("<", t, i, r)
- },
- lte: function(t, i, r) {
- return n("<=", t, i, r)
- },
- startswith: function(n, i, r) {
- return r && (n = "(" + n + " || '').toLowerCase()", i && (i = i.toLowerCase())), i && (i = t(i)), n + ".lastIndexOf('" + i + "', 0) == 0"
- },
- endswith: function(n, i, r) {
- return r && (n = "(" + n + " || '').toLowerCase()", i && (i = i.toLowerCase())), i && (i = t(i)), n + ".indexOf('" + i + "', " + n + ".length - " + (i || "").length + ") >= 0"
- },
- contains: function(n, i, r) {
- return r && (n = "(" + n + " || '').toLowerCase()", i && (i = i.toLowerCase())), i && (i = t(i)), n + ".indexOf('" + i + "') >= 0"
- },
- doesnotcontain: function(n, i, r) {
- return r && (n = "(" + n + " || '').toLowerCase()", i && (i = i.toLowerCase())), i && (i = t(i)), n + ".indexOf('" + i + "') == -1"
- }
- }
- }();
- u.filterExpr = function(n) {
- for (var l = [], r, f, e = [], o = [], h, c, v = n.filters, s = 0, a = v.length; s < a; s++) r = v[s], h = r.field, c = r.operator, r.filters ? (f = u.filterExpr(r), r = f.expression.replace(/__o\[(\d+)\]/g, function(n, t) {
- return t = +t, "__o[" + (o.length + t) + "]"
- }).replace(/__f\[(\d+)\]/g, function(n, t) {
- return t = +t, "__f[" + (e.length + t) + "]"
- }), o.push.apply(o, f.operators), e.push.apply(e, f.fields)) : (typeof h === pt ? (f = "__f[" + e.length + "](d)", e.push(h)) : f = i.expr(h), typeof c === pt ? (r = "__o[" + o.length + "](" + f + ", " + r.value + ")", o.push(c)) : r = yi[(c || "eq").toLowerCase()](f, r.value, r.ignoreCase !== t ? r.ignoreCase : !0)), l.push(r);
- return {
- expression: "(" + l.join({
- and: " && ",
- or: " || "
- }[n.logic]) + ")",
- fields: e,
- operators: o
- }
- };
- pi = {
- "==": "eq",
- equals: "eq",
- isequalto: "eq",
- equalto: "eq",
- equal: "eq",
- "!=": "neq",
- ne: "neq",
- notequals: "neq",
- isnotequalto: "neq",
- notequalto: "neq",
- notequal: "neq",
- "<": "lt",
- islessthan: "lt",
- lessthan: "lt",
- less: "lt",
- "<=": "lte",
- le: "lte",
- islessthanorequalto: "lte",
- lessthanequal: "lte",
- ">": "gt",
- isgreaterthan: "gt",
- greaterthan: "gt",
- greater: "gt",
- ">=": "gte",
- isgreaterthanorequalto: "gte",
- greaterthanequal: "gte",
- ge: "gte",
- notsubstringof: "doesnotcontain"
- };
- u.normalizeFilter = ct;
- u.prototype = {
- toArray: function() {
- return this.data
- },
- range: function(n, t) {
- return new u(this.data.slice(n, n + t))
- },
- skip: function(n) {
- return new u(this.data.slice(n))
- },
- take: function(n) {
- return new u(this.data.slice(0, n))
- },
- select: function(n) {
- return new u(vt(this.data, n))
- },
- order: function(n, t) {
- var i = {
- dir: t
- };
- return n && (n.compare ? i.compare = n.compare : i.field = n), new u(this.data.slice(0).sort(ht.create(i)))
- },
- orderBy: function(n) {
- return this.order(n, "asc")
- },
- orderByDescending: function(n) {
- return this.order(n, "desc")
- },
- sort: function(n, t, i) {
- var r, f, u = it(n, t),
- e = [];
- if (i = i || ht, u.length) {
- for (r = 0, f = u.length; r < f; r++) e.push(i.create(u[r]));
- return this.orderBy({
- compare: i.combine(e)
- })
- }
- return this
- },
- filter: function(n) {
- var t, r, s, i, h, c = this.data,
- f, e, l = [],
- o;
- if (n = ct(n), !n || n.filters.length === 0) return this;
- for (i = u.filterExpr(n), f = i.fields, e = i.operators, h = o = new Function("d, __f, __o", "return " + i.expression), (f.length || e.length) && (o = function(n) {
- return h(n, f, e)
- }), t = 0, s = c.length; t < s; t++) r = c[t], o(r) && l.push(r);
- return new u(l)
- },
- group: function(n, t) {
- n = rt(n || []);
- t = t || this.data;
- var f = this,
- i = new u(f.data),
- r;
- return n.length > 0 && (r = n[0], i = i.groupBy(r).select(function(i) {
- var f = new u(t).filter([{
- field: i.field,
- operator: "eq",
- value: i.value,
- ignoreCase: !1
- }]);
- return {
- field: i.field,
- value: i.value,
- items: n.length > 1 ? new u(i.items).group(n.slice(1), f.toArray()).toArray() : i.items,
- hasSubgroups: n.length > 1,
- aggregates: f.aggregate(r.aggregates)
- }
- })), i
- },
- groupBy: function(n) {
- if (k(n) || !this.data.length) return new u([]);
- for (var t = n.field, o = this._sortForGrouping(t, n.dir || "asc"), c = i.accessor(t), s, r = c.get(o[0], t), f = {
- field: t,
- value: r,
- items: []
- }, h, a = [f], e = 0, l = o.length; e < l; e++) s = o[e], h = c.get(s, t), hu(r, h) || (r = h, f = {
- field: t,
- value: r,
- items: []
- }, a.push(f)), f.items.push(s);
- return new u(a)
- },
- _sortForGrouping: function(n, t) {
- var i, f, r = this.data;
- if (!iu) {
- for (i = 0, f = r.length; i < f; i++) r[i].__position = i;
- for (r = new u(r).sort(n, t, vi).toArray(), i = 0, f = r.length; i < f; i++) delete r[i].__position;
- return r
- }
- return this.sort(n, t).toArray()
- },
- aggregate: function(n) {
- var t, i, r = {};
- if (n && n.length)
- for (t = 0, i = this.data.length; t < i; t++) cu(r, n, this.data[t], t, i);
- return r
- }
- };
- bi = {
- sum: function(n, t, i) {
- return (n || 0) + i.get(t)
- },
- count: function(n) {
- return (n || 0) + 1
- },
- average: function(n, t, i, r, u) {
- return n = (n || 0) + i.get(t), r == u - 1 && (n = n / u), n
- },
- max: function(n, t, i) {
- var r = i.get(t);
- return n = n || 0, n < r && (n = r), n
- },
- min: function(n, t, i) {
- var r = i.get(t);
- return ki(n) || (n = r), n > r && ki(r) && (n = r), n
- }
- };
- u.process = function(n, i) {
- i = i || {};
- var r = new u(n),
- f = i.group,
- e = rt(f || []).concat(it(i.sort || [])),
- o, s = i.filter,
- h = i.skip,
- c = i.take;
- return s && (r = r.filter(s), o = r.toArray().length), e && (r = r.sort(e), f && (n = r.toArray())), h !== t && c !== t && (r = r.range(h, c)), f && (r = r.group(f, n)), {
- total: o,
- data: r.toArray()
- }
- };
- var gi = ft.extend({
- init: function(n) {
- this.data = n.data
- },
- read: function(n) {
- n.success(this.data)
- },
- update: function(n) {
- n.success(n.data)
- },
- create: function(n) {
- n.success(n.data)
- },
- destroy: function(n) {
- n.success(n.data)
- }
- }),
- nr = ft.extend({
- init: function(n) {
- var i = this,
- t;
- n = i.options = e({}, i.options, n);
- yt(wr, function(t, i) {
- typeof n[i] === o && (n[i] = {
- url: n[i]
- })
- });
- i.cache = n.cache ? ut.create(n.cache) : {
- find: b,
- add: b
- };
- t = n.parameterMap;
- i.parameterMap = y(t) ? t : function(n) {
- var i = {};
- return yt(n, function(n, r) {
- n in t && (n = t[n], l(n) && (r = n.value(r), n = n.key));
- i[n] = r
- }), i
- }
- },
- options: {
- parameterMap: et
- },
- create: function(n) {
- return at(this.setup(n, ei))
- },
- read: function(i) {
- var f = this,
- r, o, u, e = f.cache;
- i = f.setup(i, oi);
- r = i.success || b;
- o = i.error || b;
- u = e.find(i.data);
- u !== t ? r(u) : (i.success = function(n) {
- e.add(i.data, n);
- r(n)
- }, n.ajax(i))
- },
- update: function(n) {
- return at(this.setup(n, si))
- },
- destroy: function(n) {
- return at(this.setup(n, hi))
- },
- setup: function(n, t) {
- n = n || {};
- var u = this,
- r, i = u.options[t],
- f = y(i.data) ? i.data(n.data) : i.data;
- return n = e(!0, {}, i, n), r = e(!0, {}, f, n.data), n.data = u.parameterMap(r, t), y(n.url) && (n.url = n.url(r)), n
- }
- }),
- ut = ft.extend({
- init: function() {
- this._store = {}
- },
- add: function(n, i) {
- n !== t && (this._store[kt(n)] = i)
- },
- find: function(n) {
- return this._store[kt(n)]
- },
- clear: function() {
- this._store = {}
- },
- remove: function(n) {
- delete this._store[kt(n)]
- }
- });
- ut.create = function(n) {
- var t = {
- inmemory: function() {
- return new ut
- }
- };
- return l(n) && y(n.find) ? n : n === !0 ? new ut : t[n]()
- };
- ti = ft.extend({
- init: function(n) {
- var t = this,
- s, u, i, y;
- n = n || {};
- for (s in n) u = n[s], t[s] = typeof u === o ? ot(u) : u;
- if (y = n.modelBase || c, l(t.model) && (t.model = i = y.define(t.model)), t.model) {
- var w = v(t.data, t),
- b = v(t.groups, t),
- k = v(t.serialize, t),
- f = {},
- h = {},
- p = {},
- e = {},
- a = !1,
- r;
- i = t.model;
- i.fields && (yt(i.fields, function(n, t) {
- var i;
- r = n;
- l(t) && t.field ? r = t.field : typeof t === o && (r = t);
- l(t) && t.from && (i = t.from);
- a = a || i && i !== n || r !== n;
- h[n] = ot(i || r);
- p[n] = ot(n);
- f[i || r] = n;
- e[n] = i || r
- }), !n.serialize && a && (t.serialize = ni(k, i, au, p, f, e)));
- t.data = ni(w, i, tr, h, f, e);
- t.groups = ni(b, i, ir, h, f, e)
- }
- },
- errors: function(n) {
- return n ? n.errors : null
- },
- parse: et,
- data: et,
- total: function(n) {
- return n.length
- },
- groups: et,
- aggregates: function() {
- return {}
- },
- serialize: function(n) {
- return n
- }
- });
- h = g.extend({
- init: function(n) {
- var u = this,
- o, f;
- n && (f = n.data);
- n = u.options = e({}, u.options, n);
- u._map = {};
- u._prefetch = {};
- u._data = [];
- u._pristineData = [];
- u._ranges = [];
- u._view = [];
- u._pristine = [];
- u._destroyed = [];
- u._pageSize = n.pageSize;
- u._page = n.page || (n.pageSize ? 1 : t);
- u._sort = it(n.sort);
- u._filter = ct(n.filter);
- u._group = rt(n.group);
- u._aggregate = n.aggregate;
- u._total = n.total;
- g.fn.init.call(u);
- u.transport = ri.create(n, f);
- u.reader = new i.data.readers[n.schema.type || "json"](n.schema);
- o = u.reader.model || {};
- u._data = u._observe(u._data);
- u.bind([a, r, tt, ci, nt, bt], n)
- },
- options: {
- data: [],
- schema: {
- modelBase: c
- },
- serverSorting: !1,
- serverPaging: !1,
- serverFiltering: !1,
- serverGrouping: !1,
- serverAggregates: !1,
- batch: !1
- },
- _isServerGrouped: function() {
- var n = this.group() || [];
- return this.options.serverGrouping && n.length
- },
- _flatData: function(n) {
- return this._isServerGrouped() ? rr(n) : n
- },
- parent: b,
- get: function(n) {
- for (var i = this._flatData(this._data), t = 0, r = i.length; t < r; t++)
- if (i[t].id == n) return i[t]
- },
- getByUid: function(n) {
- var t, r, i = this._flatData(this._data);
- if (i)
- for (t = 0, r = i.length; t < r; t++)
- if (i[t].uid == n) return i[t]
- },
- indexOf: function(n) {
- return sr(this._data, n)
- },
- at: function(n) {
- return this._data[n]
- },
- data: function(n) {
- var i = this;
- if (n !== t) i._data = this._observe(n), i._ranges = [], i._addRange(i._data), i._total = i._data.length, i._process(i._data);
- else return i._data
- },
- view: function() {
- return this._view
- },
- add: function(n) {
- return this.insert(this._data.length, n)
- },
- _createNewModel: function(n) {
- return this.reader.model ? new this.reader.model(n) : new s(n)
- },
- insert: function(n, t) {
- return t || (t = n, n = 0), t instanceof c || (t = this._createNewModel(t)), this._isServerGrouped() ? this._data.splice(n, 0, er(this.group(), t)) : this._data.splice(n, 0, t), t
- },
- remove: function(n) {
- var t, i = this,
- r = i._isServerGrouped();
- return this._eachItem(i._data, function(u) {
- return t = vu(u, n), t && r ? (t.isNew && t.isNew() || i._destroyed.push(t), !0) : void 0
- }), n
- },
- sync: function() {
- var t = this,
- i, f, e = [],
- o = [],
- s = t._destroyed,
- u = t._flatData(t._data),
- r;
- if (t.reader.model) {
- for (i = 0, f = u.length; i < f; i++) u[i].isNew() ? e.push(u[i]) : u[i].dirty && o.push(u[i]);
- r = t._send("create", e);
- r.push.apply(r, t._send("update", o));
- r.push.apply(r, t._send("destroy", s));
- n.when.apply(null, r).then(function() {
- for (var n = 0, i = arguments.length; n < i; n++) t._accept(arguments[n]);
- t._change({
- action: "sync"
- });
- t.trigger(ci)
- })
- }
- },
- cancelChanges: function(n) {
- var t = this;
- n instanceof i.data.Model ? t._cancelModel(n) : (t._destroyed = [], t._data = t._observe(t._pristineData), t.options.serverPaging && (t._total = t.reader.total(t._pristine)), t._change())
- },
- hasChanges: function() {
- var n, i, t = this._data;
- if (this._destroyed.length) return !0;
- for (n = 0, i = t.length; n < i; n++)
- if (t[n].isNew() || t[n].dirty) return !0;
- return !1
- },
- _accept: function(t) {
- var r = this,
- f = t.models,
- i = t.response,
- u = 0,
- s = r._isServerGrouped(),
- h = r._pristineData,
- e = t.type,
- o;
- if (r.trigger(nt, {
- response: i,
- type: e
- }), i && !k(i)) {
- if (i = r.reader.parse(i), r._handleCustomErrors(i)) return;
- i = r.reader.data(i);
- n.isArray(i) || (i = [i])
- } else i = n.map(f, function(n) {
- return n.toJSON()
- });
- for (e === "destroy" && (r._destroyed = []), u = 0, o = f.length; u < o; u++) e !== "destroy" ? (f[u].accept(i[u]), e === "create" ? h.push(s ? er(r.group(), f[u]) : i[u]) : e === "update" && r._updatePristineForModel(f[u], i[u])) : r._removePristineForModel(f[u])
- },
- _updatePristineForModel: function(n, t) {
- this._executeOnPristineForModel(n, function(n, r) {
- i.deepExtend(r[n], t)
- })
- },
- _executeOnPristineForModel: function(n, t) {
- this._eachPristineItem(function(i) {
- var r = or(i, n);
- if (r > -1) return t(r, i), !0
- })
- },
- _removePristineForModel: function(n) {
- this._executeOnPristineForModel(n, function(n, t) {
- t.splice(n, 1)
- })
- },
- _readData: function(n) {
- var t = this._isServerGrouped() ? this.reader.groups : this.reader.data;
- return t(n)
- },
- _eachPristineItem: function(n) {
- this._eachItem(this._pristineData, n)
- },
- _eachItem: function(n, t) {
- n && n.length && (this._isServerGrouped() ? fr(n, t) : t(n))
- },
- _pristineForModel: function(n) {
- var i, t, r = function(r) {
- return t = or(r, n), t > -1 ? (i = r[t], !0) : void 0
- };
- return this._eachPristineItem(r), i
- },
- _cancelModel: function(n) {
- var i = this._pristineForModel(n),
- t;
- this._eachItem(this._data, function(r) {
- t = sr(r, n);
- t != -1 && (!n.isNew() && i ? r[t].accept(i) : r.splice(t, 1))
- })
- },
- _promise: function(t, i, r) {
- var u = this,
- f = u.transport;
- return n.Deferred(function(n) {
- u.trigger(tt, {
- type: r
- });
- f[r].call(f, e({
- success: function(t) {
- n.resolve({
- response: t,
- models: i,
- type: r
- })
- },
- error: function(t, i, r) {
- n.reject(t);
- u.error(t, i, r)
- }
- }, t))
- }).promise()
- },
- _send: function(n, t) {
- var r = this,
- i, f, u = [],
- e = r.reader.serialize(lu(t));
- if (r.options.batch) t.length && u.push(r._promise({
- data: {
- models: e
- }
- }, t, n));
- else
- for (i = 0, f = t.length; i < f; i++) u.push(r._promise({
- data: e[i]
- }, [t[i]], n));
- return u
- },
- read: function(n) {
- var t = this,
- i = t._params(n);
- t._queueRequest(i, function() {
- t.trigger(tt, {
- type: "read"
- }) ? t._dequeueRequest() : (t.trigger(bt), t._ranges = [], t.transport.read({
- data: i,
- success: v(t.success, t),
- error: v(t.error, t)
- }))
- })
- },
- success: function(t) {
- var i = this,
- r = i.options;
- if (i.trigger(nt, {
- response: t,
- type: "read"
- }), t = i.reader.parse(t), i._handleCustomErrors(t)) {
- i._dequeueRequest();
- return
- }
- i._pristine = l(t) ? n.extend(!0, {}, t) : t.slice ? t.slice(0) : t;
- i._total = i.reader.total(t);
- i._aggregate && r.serverAggregates && (i._aggregateResult = i.reader.aggregates(t));
- t = i._readData(t);
- i._pristineData = t.slice(0);
- i._data = i._observe(t);
- i._addRange(i._data);
- i._process(i._data);
- i._dequeueRequest()
- },
- _addRange: function(n) {
- var t = this,
- i = t._skip || 0,
- r = i + t._flatData(n).length;
- t._ranges.push({
- start: i,
- end: r,
- data: n
- });
- t._ranges.sort(function(n, t) {
- return n.start - t.start
- })
- },
- error: function(n, t, i) {
- this._dequeueRequest();
- this.trigger(nt, {});
- this.trigger(a, {
- xhr: n,
- status: t,
- errorThrown: i
- })
- },
- _params: function(n) {
- var t = this,
- i = e({
- take: t.take(),
- skip: t.skip(),
- page: t.page(),
- pageSize: t.pageSize(),
- sort: t._sort,
- filter: t._filter,
- group: t._group,
- aggregate: t._aggregate
- }, n);
- return t.options.serverPaging || (delete i.take, delete i.skip, delete i.page, delete i.pageSize), t.options.serverGrouping ? t.reader.model && i.group && (i.group = lt(i.group, t.reader.model)) : delete i.group, t.options.serverFiltering ? t.reader.model && i.filter && (i.filter = lr(i.filter, t.reader.model)) : delete i.filter, t.options.serverSorting ? t.reader.model && i.sort && (i.sort = lt(i.sort, t.reader.model)) : delete i.sort, t.options.serverAggregates ? t.reader.model && i.aggregate && (i.aggregate = lt(i.aggregate, t.reader.model)) : delete i.aggregate, i
- },
- _queueRequest: function(n, i) {
- var r = this;
- r._requestInProgress ? r._pending = {
- callback: v(i, r),
- options: n
- } : (r._requestInProgress = !0, r._pending = t, i())
- },
- _dequeueRequest: function() {
- var n = this;
- n._requestInProgress = !1;
- n._pending && n._queueRequest(n._pending.options, n._pending.callback)
- },
- _handleCustomErrors: function(n) {
- if (this.reader.errors) {
- var t = this.reader.errors(n);
- if (t) return this.trigger(a, {
- xhr: null,
- status: "customerror",
- errorThrown: "custom error",
- errors: t
- }), !0
- }
- return !1
- },
- _observe: function(n) {
- var t = this,
- i = t.reader.model,
- u = !1;
- return i && n.length && (u = !(n[0] instanceof i)), n instanceof p ? u && (n.type = t.reader.model, n.wrapAll(n, n)) : (n = new p(n, t.reader.model), n.parent = function() {
- return t.parent()
- }), t._isServerGrouped() && ur(n, i), t._changeHandler && t._data && t._data instanceof p ? t._data.unbind(r, t._changeHandler) : t._changeHandler = v(t._change, t), n.bind(r, t._changeHandler)
- },
- _change: function(n) {
- var t = this,
- r, f, i = n ? n.action : "",
- u;
- if (i === "remove")
- for (r = 0, f = n.items.length; r < f; r++) n.items[r].isNew && n.items[r].isNew() || t._destroyed.push(n.items[r]);
- t.options.autoSync && (i === "add" || i === "remove" || i === "itemchange") ? t.sync() : (u = parseInt(t._total || t.reader.total(t._pristine), 10), i === "add" ? u += n.items.length : i === "remove" ? u -= n.items.length : i === "itemchange" || i === "sync" || t.options.serverPaging || (u = t.reader.total(t._pristine)), t._total = u, t._process(t._data, n))
- },
- _process: function(n, i) {
- var f = this,
- e = {},
- o;
- f.options.serverPaging !== !0 && (e.skip = f._skip, e.take = f._take || f._pageSize, e.skip === t && f._page !== t && f._pageSize !== t && (e.skip = (f._page - 1) * f._pageSize));
- f.options.serverSorting !== !0 && (e.sort = f._sort);
- f.options.serverFiltering !== !0 && (e.filter = f._filter);
- f.options.serverGrouping !== !0 && (e.group = f._group);
- f.options.serverAggregates !== !0 && (e.aggregate = f._aggregate, f._aggregateResult = di(n, e));
- o = u.process(n, e);
- f._view = o.data;
- o.total === t || f.options.serverFiltering || (f._total = o.total);
- i = i || {};
- i.items = i.items || f._view;
- f.trigger(r, i)
- },
- _mergeState: function(n) {
- var i = this;
- return n !== t && (i._pageSize = n.pageSize, i._page = n.page, i._sort = n.sort, i._filter = n.filter, i._group = n.group, i._aggregate = n.aggregate, i._skip = n.skip, i._take = n.take, i._skip === t && (i._skip = i.skip(), n.skip = i.skip()), i._take === t && i._pageSize !== t && (i._take = i._pageSize, n.take = i._take), n.sort && (i._sort = n.sort = it(n.sort)), n.filter && (i._filter = n.filter = ct(n.filter)), n.group && (i._group = n.group = rt(n.group)), n.aggregate && (i._aggregate = n.aggregate = su(n.aggregate))), n
- },
- query: function(n) {
- var i = this,
- f, e = i.options.serverSorting || i.options.serverPaging || i.options.serverFiltering || i.options.serverGrouping || i.options.serverAggregates;
- e || (i._data === t || i._data.length === 0) && !i._destroyed.length ? i.read(i._mergeState(n)) : i.trigger(tt, {
- type: "read"
- }) || (i.trigger(bt), f = u.process(i._data, i._mergeState(n)), i.options.serverFiltering || (i._total = f.total !== t ? f.total : i._data.length), i._view = f.data, i._aggregateResult = di(i._data, n), i.trigger(nt, {}), i.trigger(r, {
- items: f.data
- }))
- },
- fetch: function(t) {
- var i = this;
- return n.Deferred(function(n) {
- var f = function(r) {
- i.unbind(a, u);
- n.resolve();
- t && t.call(i, r)
- },
- u = function(t) {
- n.reject(t)
- };
- i.one(r, f);
- i.one(a, u);
- i._query()
- }).promise()
- },
- _query: function(n) {
- var t = this;
- t.query(e({}, {
- page: t.page(),
- pageSize: t.pageSize(),
- sort: t.sort(),
- filter: t.filter(),
- group: t.group(),
- aggregate: t.aggregate()
- }, n))
- },
- next: function(n) {
- var t = this,
- i = t.page(),
- r = t.total();
- if (n = n || {}, i && (!r || !(i + 1 > t.totalPages()))) return t._skip = i * t.take(), i += 1, n.page = i, t._query(n), i
- },
- prev: function(n) {
- var t = this,
- i = t.page();
- if (n = n || {}, i && i !== 1) return t._skip = t._skip - t.take(), i -= 1, n.page = i, t._query(n), i
- },
- page: function(n) {
- var i = this,
- r;
- if (n !== t) {
- n = f.max(f.min(f.max(n, 1), i.totalPages()), 1);
- i._query({
- page: n
- });
- return
- }
- return r = i.skip(), r !== t ? f.round((r || 0) / (i.take() || 1)) + 1 : t
- },
- pageSize: function(n) {
- var i = this;
- if (n !== t) {
- i._query({
- pageSize: n,
- page: 1
- });
- return
- }
- return i.take()
- },
- sort: function(n) {
- var i = this;
- if (n !== t) {
- i._query({
- sort: n
- });
- return
- }
- return i._sort
- },
- filter: function(n) {
- var i = this;
- if (n === t) return i._filter;
- i._query({
- filter: n,
- page: 1
- })
- },
- group: function(n) {
- var i = this;
- if (n !== t) {
- i._query({
- group: n
- });
- return
- }
- return i._group
- },
- total: function() {
- return parseInt(this._total || 0, 10)
- },
- aggregate: function(n) {
- var i = this;
- if (n !== t) {
- i._query({
- aggregate: n
- });
- return
- }
- return i._aggregate
- },
- aggregates: function() {
- return this._aggregateResult
- },
- totalPages: function() {
- var n = this,
- t = n.pageSize() || n.total();
- return f.ceil((n.total() || 0) / t)
- },
- inRange: function(n, t) {
- var i = this,
- r = f.min(n + t, i.total());
- return !i.options.serverPaging && i.data.length > 0 ? !0 : i._findRange(n, r).length > 0
- },
- lastRange: function() {
- var n = this._ranges;
- return n[n.length - 1] || {
- start: 0,
- end: 0,
- data: []
- }
- },
- firstItemUid: function() {
- var n = this._ranges;
- return n.length && n[0].data.length && n[0].data[0].uid
- },
- range: function(n, i) {
- n = f.min(n || 0, this.total());
- var r = this,
- e = f.max(f.floor(n / i), 0) * i,
- u = f.min(e + i, r.total()),
- o;
- if (o = r._findRange(n, f.min(n + i, r.total())), o.length) {
- r._skip = n > r.skip() ? f.min(u, (r.totalPages() - 1) * r.take()) : e;
- r._take = i;
- var s = r.options.serverPaging,
- h = r.options.serverSorting,
- c = r.options.serverFiltering;
- try {
- r.options.serverPaging = !0;
- r._isServerGrouped() || r.group() && r.group().length || (r.options.serverSorting = !0);
- r.options.serverFiltering = !0;
- s && (r._data = o = r._observe(o));
- r._process(o)
- } finally {
- r.options.serverPaging = s;
- r.options.serverSorting = h;
- r.options.serverFiltering = c
- }
- return
- }
- i !== t && (r._rangeExists(e, u) ? e < n && r.prefetch(u, i, function() {
- r.range(n, i)
- }) : r.prefetch(e, i, function() {
- n > e && u < r.total() && !r._rangeExists(u, f.min(u + i, r.total())) ? r.prefetch(u, i, function() {
- r.range(n, i)
- }) : r.range(n, i)
- }))
- },
- _findRange: function(n, i) {
- for (var f = this, p = f._ranges, r, w = [], c, l, s, b, a, v, h = f.options, g = h.serverSorting || h.serverPaging || h.serverFiltering || h.serverGrouping || h.serverAggregates, y, e, d, o = 0, k = p.length; o < k; o++)
- if (r = p[o], n >= r.start && n <= r.end) {
- for (e = 0, c = o; c < k; c++)
- if (r = p[c], y = f._flatData(r.data), y.length && n + e >= r.start && (b = r.data, a = r.end, g || (d = rt(f.group() || []).concat(it(f.sort() || [])), v = u.process(r.data, {
- sort: d,
- filter: f.filter()
- }), y = b = v.data, v.total !== t && (a = v.total)), l = 0, n + e > r.start && (l = n + e - r.start), s = y.length, a > i && (s = s - (a - i)), e += s - l, w = f._mergeGroups(w, b, l, s), i <= r.end && e == i - n)) return w;
- break
- }
- return []
- },
- _mergeGroups: function(n, t, i, r) {
- if (this._isServerGrouped()) {
- var u = t.toJSON(),
- f;
- return n.length && (f = n[n.length - 1]), ii(f, u, i, r), n.concat(u)
- }
- return n.concat(t.slice(i, r))
- },
- skip: function() {
- var n = this;
- return n._skip === t ? n._page !== t ? (n._page - 1) * (n.take() || 1) : t : n._skip
- },
- take: function() {
- return this._take || this._pageSize
- },
- _prefetchSuccessHandler: function(n, t, i) {
- var u = this;
- return function(f) {
- var h = !1,
- e = {
- start: n,
- end: t,
- data: []
- },
- o, c, s;
- if (u._dequeueRequest(), u.trigger(nt, {
- response: f,
- type: "read"
- }), f = u.reader.parse(f), s = u._readData(f), s.length) {
- for (o = 0, c = u._ranges.length; o < c; o++)
- if (u._ranges[o].start === n) {
- h = !0;
- e = u._ranges[o];
- break
- }
- h || u._ranges.push(e)
- }
- e.data = u._observe(s);
- e.end = e.start + u._flatData(e.data).length;
- u._ranges.sort(function(n, t) {
- return n.start - t.start
- });
- u._total = u.reader.total(f);
- i && s.length ? i() : u.trigger(r, {})
- }
- },
- prefetch: function(n, t, i) {
- var r = this,
- u = f.min(n + t, r.total()),
- e = {
- take: t,
- skip: n,
- page: n / t + 1,
- pageSize: t,
- sort: r._sort,
- filter: r._filter,
- group: r._group,
- aggregate: r._aggregate
- };
- r._rangeExists(n, u) ? i && i() : (clearTimeout(r._timeout), r._timeout = setTimeout(function() {
- r._queueRequest(e, function() {
- r.trigger(tt, {
- type: "read"
- }) ? r._dequeueRequest() : r.transport.read({
- data: r._params(e),
- success: r._prefetchSuccessHandler(n, u, i)
- })
- })
- }, 100))
- },
- _rangeExists: function(n, t) {
- for (var f = this, r = f._ranges, i = 0, u = r.length; i < u; i++)
- if (r[i].start <= n && r[i].end >= t) return !0;
- return !1
- }
- });
- ri = {};
- ri.create = function(n, t) {
- var u, r = n.transport;
- return r ? (r.read = typeof r.read === o ? {
- url: r.read
- } : r.read, n.type && (i.data.transports[n.type] && !l(i.data.transports[n.type]) ? u = new i.data.transports[n.type](e(r, {
- data: t
- })) : r = e(!0, {}, i.data.transports[n.type], r), n.schema = e(!0, {}, i.data.schemas[n.type], n.schema)), u || (u = y(r.read) ? r : new nr(r))) : u = new gi({
- data: n.data
- }), u
- };
- h.create = function(n) {
- n = n && n.push ? {
- data: n
- } : n;
- var t = n || {},
- u = t.data,
- r = t.fields,
- c = t.table,
- l = t.select,
- f, a, s = {},
- o;
- if (u || !r || t.transport || (c ? u = pu(c, r) : l && (u = yu(l, r))), i.data.Model && r && (!t.schema || !t.schema.model)) {
- for (f = 0, a = r.length; f < a; f++) o = r[f], o.type && (s[o.field] = o);
- k(s) || (t.schema = e(!0, t.schema, {
- model: {
- fields: s
- }
- }))
- }
- return t.data = u, t instanceof h ? t : new h(t)
- };
- ui = c.define({
- init: function(n) {
- var t = this,
- r = t.hasChildren || n && n.hasChildren,
- f = "items",
- u = {};
- i.data.Model.fn.init.call(t, n);
- typeof t.children === o && (f = t.children);
- u = {
- schema: {
- data: f,
- model: {
- hasChildren: r,
- id: t.idField
- }
- }
- };
- typeof t.children !== o && e(u, t.children);
- u.data = n;
- r || (r = u.schema.data);
- typeof r === o && (r = i.getter(r));
- y(r) && (t.hasChildren = !!r.call(t, t));
- t._childrenOptions = u;
- t.hasChildren && t._initChildren();
- t._loaded = !!(n && (n[f] || n._loaded))
- },
- _initChildren: function() {
- var n = this,
- t, i, u;
- n.children instanceof w || (t = n.children = new w(n._childrenOptions), i = t.transport, u = i.parameterMap, i.parameterMap = function(t) {
- return t[n.idField || "id"] = n.id, u && (t = u(t)), t
- }, t.parent = function() {
- return n
- }, t.bind(r, function(t) {
- t.node = t.node || n;
- n.trigger(r, t)
- }), t.bind(a, function(t) {
- var i = n.parent();
- i && (t.node = t.node || n, i.trigger(a, t))
- }), n._updateChildrenField())
- },
- append: function(n) {
- this._initChildren();
- this.loaded(!0);
- this.children.add(n)
- },
- hasChildren: !1,
- level: function() {
- for (var n = this.parentNode(), t = 0; n && n.parentNode;) t++, n = n.parentNode ? n.parentNode() : null;
- return t
- },
- _updateChildrenField: function() {
- var n = this._childrenOptions.schema.data;
- this[n || "items"] = this.children.data()
- },
- _childrenLoaded: function() {
- this._loaded = !0;
- this._updateChildrenField()
- },
- load: function() {
- var i = {},
- u = "_query",
- n;
- if (this.hasChildren) {
- this._initChildren();
- n = this.children;
- i[this.idField || "id"] = this.id;
- this._loaded || (n._data = t, u = "read");
- n.one(r, v(this._childrenLoaded, this));
- n[u](i)
- } else this.loaded(!0)
- },
- parentNode: function() {
- var n = this.parent();
- return n.parent()
- },
- loaded: function(n) {
- if (n !== t) this._loaded = n;
- else return this._loaded
- },
- shouldSerialize: function(n) {
- return c.fn.shouldSerialize.call(this, n) && n !== "children" && n !== "_loaded" && n !== "hasChildren" && n !== "_childrenOptions"
- }
- });
- w = h.extend({
- init: function(n) {
- var t = ui.define({
- children: n
- });
- h.fn.init.call(this, e(!0, {}, {
- schema: {
- modelBase: t,
- model: t
- }
- }, n));
- this._attachBubbleHandlers()
- },
- _attachBubbleHandlers: function() {
- var n = this;
- n._data.bind(a, function(t) {
- n.trigger(a, t)
- })
- },
- remove: function(n) {
- var t = n.parentNode(),
- i = this,
- r;
- return t && t._initChildren && (i = t.children), r = h.fn.remove.call(i, n), t && !i.data().length && (t.hasChildren = !1), r
- },
- success: ar("success"),
- data: ar("data"),
- insert: function(n, t) {
- var i = this.parent();
- return i && i._initChildren && (i.hasChildren = !0, i._initChildren()), h.fn.insert.call(this, n, t)
- },
- _find: function(n, t) {
- var r, e, i, u, f;
- if (i = h.fn[n].call(this, t), i) return i;
- if (u = this._flatData(this.data()), u)
- for (r = 0, e = u.length; r < e; r++)
- if ((f = u[r].children, f instanceof w) && (i = f[n](t), i)) return i
- },
- get: function(n) {
- return this._find("get", n)
- },
- getByUid: function(n) {
- return this._find("getByUid", n)
- }
- });
- w.create = function(n) {
- n = n && n.push ? {
- data: n
- } : n;
- var t = n || {},
- i = t.data,
- r = t.fields,
- u = t.list;
- return i && i._dataSource ? i._dataSource : (i || !r || t.transport || u && (i = vr(u, r)), t.data = i, t instanceof w ? t : new w(t))
- };
- fi = i.Observable.extend({
- init: function(n, t, r) {
- i.Observable.fn.init.call(this);
- this._prefetching = !1;
- this.dataSource = n;
- this.prefetch = !r;
- var u = this;
- n.bind("change", function() {
- u._change()
- });
- this._syncWithDataSource();
- this.setViewSize(t)
- },
- setViewSize: function(n) {
- this.viewSize = n;
- this._recalculate()
- },
- at: function(n) {
- var i = this.pageSize,
- r, u;
- if (n >= this.total()) {
- this.trigger("endreached", {
- index: n
- });
- return
- }
- return this.useRanges ? (this.useRanges && ((n < this.dataOffset || n > this.skip + i) && (u = Math.floor(n / i) * i, this.range(u)), n === this.prefetchThreshold && this._prefetch(), n === this.midPageThreshold ? this.range(this.nextMidRange) : n === this.nextPageThreshold ? this.range(this.nextFullRange) : n === this.pullBackThreshold && (this.offset === this.skip ? this.range(this.previousMidRange) : this.range(this.previousFullRange)), r = this.dataSource.at(n - this.dataOffset)), r === t && this.trigger("endreached", {
- index: n
- }), r) : this.dataSource.view()[n]
- },
- indexOf: function(n) {
- return this.dataSource.data().indexOf(n) + this.dataOffset
- },
- total: function() {
- return parseInt(this.dataSource.total(), 10)
- },
- next: function() {
- var n = this,
- t = n.pageSize,
- i = n.skip - n.viewSize,
- r = f.max(f.floor(i / t), 0) * t + t;
- this.offset = i;
- this.dataSource.prefetch(r, t, function() {
- n._goToRange(i, !0)
- })
- },
- range: function(n) {
- if (this.offset !== n) {
- var r = this,
- t = this.pageSize,
- u = f.max(f.floor(n / t), 0) * t + t,
- i = this.dataSource;
- this.offset = n;
- this._recalculate();
- i.inRange(n, t) ? this._goToRange(n) : this.prefetch && i.prefetch(u, t, function() {
- r._goToRange(n, !0)
- })
- }
- },
- syncDataSource: function() {
- var n = this.offset;
- this.offset = null;
- this.range(n)
- },
- destroy: function() {
- this.unbind()
- },
- _prefetch: function() {
- var i = this,
- n = this.pageSize,
- t = this.skip + n,
- r = this.dataSource;
- r.inRange(t, n) || this._prefetching || !this.prefetch || (this._prefetching = !0, this.trigger("prefetching", {
- skip: t,
- take: n
- }), r.prefetch(t, n, function() {
- i._prefetching = !1;
- i.trigger("prefetched", {
- skip: t,
- take: n
- })
- }))
- },
- _goToRange: function(n, t) {
- this.offset === n && (this.dataOffset = n, this._expanding = t, this.dataSource.range(n, this.pageSize))
- },
- _change: function() {
- var n = this.dataSource,
- t = n.firstItemUid();
- this.length = this.useRanges ? n.lastRange().end : n.view().length;
- this._firstItemUid === t && this.useRanges || (this._syncWithDataSource(), this._recalculate(), this.trigger("reset", {
- offset: this.offset
- }));
- this.trigger("resize");
- this._expanding && this.trigger("expand");
- delete this._expanding
- },
- _syncWithDataSource: function() {
- var n = this.dataSource;
- this._firstItemUid = n.firstItemUid();
- this.dataOffset = this.offset = n.skip() || 0;
- this.pageSize = n.pageSize();
- this.useRanges = n.options.serverPaging
- },
- _recalculate: function() {
- var t = this.pageSize,
- r = this.offset,
- i = this.viewSize,
- n = Math.ceil(r / t) * t;
- this.skip = n;
- this.midPageThreshold = n + t - 1;
- this.nextPageThreshold = n + i - 1;
- this.prefetchThreshold = n + Math.floor(t / 3 * 2);
- this.pullBackThreshold = this.offset - 1;
- this.nextMidRange = n + t - i;
- this.nextFullRange = n;
- this.previousMidRange = r - i;
- this.previousFullRange = n - t
- }
- });
- yr = i.Observable.extend({
- init: function(n, t) {
- var r = this;
- i.Observable.fn.init.call(r);
- this.dataSource = n;
- this.batchSize = t;
- this._total = 0;
- this.buffer = new fi(n, t * 3);
- this.buffer.bind({
- endreached: function(n) {
- r.trigger("endreached", {
- index: n.index
- })
- },
- prefetching: function(n) {
- r.trigger("prefetching", {
- skip: n.skip,
- take: n.take
- })
- },
- prefetched: function(n) {
- r.trigger("prefetched", {
- skip: n.skip,
- take: n.take
- })
- },
- reset: function() {
- r._total = 0;
- r.trigger("reset")
- },
- resize: function() {
- r._total = Math.ceil(this.length / r.batchSize);
- r.trigger("resize", {
- total: r.total(),
- offset: this.offset
- })
- }
- })
- },
- syncDataSource: function() {
- this.buffer.syncDataSource()
- },
- at: function(n) {
- var i = this.buffer,
- f = n * this.batchSize,
- o = this.batchSize,
- e = [],
- u, r;
- for (i.offset > f && i.at(i.offset - 1), r = 0; r < o; r++) {
- if (u = i.at(f + r), u === t) break;
- e.push(u)
- }
- return e
- },
- total: function() {
- return this._total
- },
- destroy: function() {
- this.buffer.destroy();
- this.unbind()
- }
- });
- e(!0, i.data, {
- readers: {
- json: ti
- },
- Query: u,
- DataSource: h,
- HierarchicalDataSource: w,
- Node: ui,
- ObservableObject: s,
- ObservableArray: p,
- LocalTransport: gi,
- RemoteTransport: nr,
- Cache: ut,
- DataReader: ti,
- Model: c,
- Buffer: fi,
- BatchBuffer: yr
- })
- }(window.kendo.jQuery);
- kendo_module({
- id: "validator",
- name: "Validator",
- category: "web",
- description: "The Validator offers an easy way to do a client-side form validation.",
- depends: ["core"]
- }),
- function(n) {
- function nt(i) {
- var r = t.ui.validator.ruleResolvers || {},
- u = {};
- for (var f in r) n.extend(!0, u, r[f].resolve(i));
- return u
- }
- function tt(n) {
- return n.replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">")
- }
- function it(n) {
- return (n = (n + "").split("."), n.length > 1) ? n[1].length : 0
- }
- function rt(t) {
- return n.parseHTML ? n(n.parseHTML(t)) : n(t)
- }
- var t = window.kendo,
- f = t.ui.Widget,
- i = ".kendoValidator",
- u = "k-invalid-msg",
- p = new RegExp(u, "i"),
- w = "k-invalid",
- b = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,
- k = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
- r = ":input:not(:button,[type=submit],[type=reset],[disabled],[readonly])",
- o = ":checkbox:not([disabled],[readonly])",
- e = "[type=number],[type=range]",
- s = "blur",
- h = "name",
- c = "form",
- l = "novalidate",
- d = n.proxy,
- a = function(n, t) {
- return typeof t == "string" && (t = new RegExp("^(?:" + t + ")$")), t.test(n)
- },
- v = function(n, t, i) {
- var r = n.val();
- return n.filter(t).length && r !== "" ? a(r, i) : !0
- },
- g = function(n, t) {
- return n.length ? n[0].attributes[t] != null : !1
- },
- y;
- t.ui.validator || (t.ui.validator = {
- rules: {},
- messages: {}
- });
- y = f.extend({
- init: function(i, r) {
- var u = this,
- e = nt(i);
- r = r || {};
- r.rules = n.extend({}, t.ui.validator.rules, e.rules, r.rules);
- r.messages = n.extend({}, t.ui.validator.messages, e.messages, r.messages);
- f.fn.init.call(u, i, r);
- u._errorTemplate = t.template(u.options.errorTemplate);
- u.element.is(c) && u.element.attr(l, l);
- u._errors = {};
- u._attachEvents()
- },
- events: ["validate"],
- options: {
- name: "Validator",
- errorTemplate: '<span class="k-widget k-tooltip k-tooltip-validation"><span class="k-icon k-warning"> <\/span> #=message#<\/span>',
- messages: {
- required: "{0} is required",
- pattern: "{0} is not valid",
- min: "{0} should be greater than or equal to {1}",
- max: "{0} should be smaller than or equal to {1}",
- step: "{0} is not valid",
- email: "{0} is not valid email",
- url: "{0} is not valid URL",
- date: "{0} is not valid date"
- },
- rules: {
- required: function(n) {
- var i = n.filter("[type=checkbox]").length && !n.is(":checked"),
- t = n.val();
- return !(g(n, "required") && (t === "" || !t || i))
- },
- pattern: function(n) {
- return n.filter("[type=text],[type=email],[type=url],[type=tel],[type=search],[type=password]").filter("[pattern]").length && n.val() !== "" ? a(n.val(), n.attr("pattern")) : !0
- },
- min: function(n) {
- if (n.filter(e + ",[" + t.attr("type") + "=number]").filter("[min]").length && n.val() !== "") {
- var i = parseFloat(n.attr("min")) || 0,
- r = t.parseFloat(n.val());
- return i <= r
- }
- return !0
- },
- max: function(n) {
- if (n.filter(e + ",[" + t.attr("type") + "=number]").filter("[max]").length && n.val() !== "") {
- var i = parseFloat(n.attr("max")) || 0,
- r = t.parseFloat(n.val());
- return i >= r
- }
- return !0
- },
- step: function(n) {
- if (n.filter(e + ",[" + t.attr("type") + "=number]").filter("[step]").length && n.val() !== "") {
- var f = parseFloat(n.attr("min")) || 0,
- i = parseFloat(n.attr("step")) || 1,
- o = parseFloat(n.val()),
- r = it(i),
- u;
- return r ? (u = Math.pow(10, r), (o - f) * u % (i * u) / Math.pow(100, r) == 0) : (o - f) % i == 0
- }
- return !0
- },
- email: function(n) {
- return v(n, "[type=email],[" + t.attr("type") + "=email]", b)
- },
- url: function(n) {
- return v(n, "[type=url],[" + t.attr("type") + "=url]", k)
- },
- date: function(n) {
- return n.filter("[type^=date],[" + t.attr("type") + "=date]").length && n.val() !== "" ? t.parseDate(n.val(), n.attr(t.attr("format"))) !== null : !0
- }
- },
- validateOnBlur: !0
- },
- destroy: function() {
- f.fn.destroy.call(this);
- this.element.off(i)
- },
- _submit: function(n) {
- return this.validate() ? !0 : (n.stopPropagation(), n.stopImmediatePropagation(), n.preventDefault(), !1)
- },
- _attachEvents: function() {
- var t = this;
- if (t.element.is(c)) t.element.on("submit" + i, d(t._submit, t));
- if (t.options.validateOnBlur)
- if (t.element.is(r)) {
- t.element.on(s + i, function() {
- t.validateInput(t.element)
- });
- if (t.element.is(o)) t.element.on("click" + i, function() {
- t.validateInput(t.element)
- })
- } else {
- t.element.on(s + i, r, function() {
- t.validateInput(n(this))
- });
- t.element.on("click" + i, o, function() {
- t.validateInput(n(this))
- })
- }
- },
- validate: function() {
- var i, n, t = !1,
- f, u;
- if (this._errors = {}, this.element.is(r)) t = this.validateInput(this.element);
- else {
- for (u = !1, i = this.element.find(r), n = 0, f = i.length; n < f; n++) this.validateInput(i.eq(n)) || (u = !0);
- t = !u
- }
- return this.trigger("validate", {
- valid: t
- }), t
- },
- validateInput: function(t) {
- var r;
- t = n(t);
- var i = this,
- c = i._errorTemplate,
- s = i._checkValidity(t),
- f = s.valid,
- l = "." + u,
- e = t.attr(h) || "",
- a = i._findMessageContainer(e).add(t.next(l)).hide(),
- o;
- return t.removeAttr("aria-invalid"), f || (o = i._extractMessage(t, s.key), i._errors[e] = o, r = rt(c({
- message: tt(o)
- })), i._decorateMessageContainer(r, e), a.replaceWith(r).length || r.insertAfter(t), r.show(), t.attr("aria-invalid", !0)), t.toggleClass(w, !f), f
- },
- hideMessages: function() {
- var i = this,
- t = "." + u,
- n = i.element;
- n.is(r) ? n.next(t).hide() : n.find(t).hide()
- },
- _findMessageContainer: function(i) {
- for (var u, h, e = t.ui.validator.messageLocators, o, r = n(), s = this.element[0].getElementsByTagName("*"), f = 0, c = s.length; f < c; f++) u = s[f], p.test(u.className) && (h = u.getAttribute(t.attr("for")), h === i && (r = r.add(u)));
- for (o in e) r = r.add(e[o].locate(this.element, i));
- return r
- },
- _decorateMessageContainer: function(n, i) {
- var r = t.ui.validator.messageLocators,
- f;
- n.addClass(u).attr(t.attr("for"), i || "");
- for (f in r) r[f].decorate(n, i);
- n.attr("role", "alert")
- },
- _extractMessage: function(n, i) {
- var u = this,
- r = u.options.messages[i],
- f = n.attr(h);
- return r = t.isFunction(r) ? r(n) : r, t.format(n.attr(t.attr(i + "-msg")) || n.attr("validationMessage") || n.attr("title") || r || "", f, n.attr(i))
- },
- _checkValidity: function(n) {
- var t = this.options.rules;
- for (var i in t)
- if (!t[i](n)) return {
- valid: !1,
- key: i
- };
- return {
- valid: !0
- }
- },
- errors: function() {
- var n = [],
- t = this._errors;
- for (var i in t) n.push(t[i]);
- return n
- }
- });
- t.ui.plugin(y)
- }(window.kendo.jQuery);
- kendo_module({
- id: "userevents",
- name: "User Events",
- category: "framework",
- depends: ["core"],
- hidden: !0
- }),
- function(n) {
- function it(n, t) {
- var i = n.x.location,
- r = n.y.location,
- u = t.x.location,
- f = t.y.location,
- e = i - u,
- o = r - f;
- return {
- center: {
- x: (i + u) / 2,
- y: (r + f) / 2
- },
- distance: Math.sqrt(e * e + o * o)
- }
- }
- function h(n) {
- var t = [],
- r = n.originalEvent,
- f = n.currentTarget,
- e = 0,
- s, o, u;
- if (n.api) t.push({
- id: 2,
- event: n,
- target: n.target,
- currentTarget: n.target,
- location: n
- });
- else if (n.type.match(/touch/))
- for (o = r ? r.changedTouches : [], s = o.length; e < s; e++) u = o[e], t.push({
- location: u,
- event: n,
- target: u.target,
- currentTarget: f,
- id: u.identifier
- });
- else i.pointers || i.msPointers ? t.push({
- location: r,
- event: n,
- target: n.target,
- currentTarget: f,
- id: r.pointerId
- }) : t.push({
- id: 1,
- event: n,
- target: n.target,
- currentTarget: f,
- location: n
- });
- return t
- }
- function ct(t) {
- var i, r, u;
- t.preventDefault();
- i = n(t.data.root);
- r = i.closest(".k-widget").parent();
- r[0] || (r = i.parent());
- u = n.extend(!0, {}, t, {
- target: i[0]
- });
- r.trigger(n.Event(t.type, u))
- }
- function ut(n) {
- for (var r = t.eventMap.up.split(" "), i = 0, u = r.length; i < u; i++) n(r[i])
- }
- var t = window.kendo,
- i = t.support,
- ft = window.document,
- c = t.Class,
- l = t.Observable,
- u = n.now,
- f = n.extend,
- a = i.mobileOS,
- et = a && a.android,
- v = 800,
- ot = i.browser.msie ? 5 : 0,
- y = "press",
- p = "hold",
- w = "select",
- b = "start",
- e = "move",
- o = "end",
- k = "cancel",
- s = "tap",
- d = "release",
- st = "gesturestart",
- g = "gesturechange",
- nt = "gestureend",
- tt = "gesturetap",
- rt = c.extend({
- init: function(n, t) {
- var i = this;
- i.axis = n;
- i._updateLocationData(t);
- i.startLocation = i.location;
- i.velocity = i.delta = 0;
- i.timeStamp = u()
- },
- move: function(n) {
- var t = this,
- i = n["page" + t.axis],
- r = u(),
- f = r - t.timeStamp || 1;
- (i || !et) && (t.delta = i - t.location, t._updateLocationData(n), t.initialDelta = i - t.startLocation, t.velocity = t.delta / f, t.timeStamp = r)
- },
- _updateLocationData: function(n) {
- var t = this,
- i = t.axis;
- t.location = n["page" + i];
- t.client = n["client" + i];
- t.screen = n["screen" + i]
- }
- }),
- ht = c.extend({
- init: function(n, t, i) {
- var r = this;
- f(r, {
- x: new rt("X", i.location),
- y: new rt("Y", i.location),
- userEvents: n,
- target: t,
- currentTarget: i.currentTarget,
- initialTouch: i.target,
- id: i.id,
- _moved: !1,
- _finished: !1
- });
- r.press = function() {
- r._trigger(y, i);
- r._holdTimeout = setTimeout(function() {
- r._trigger(p, i)
- }, n.minHold)
- }
- },
- move: function(n) {
- var t = this;
- if (!t._finished) {
- if (t.x.move(n.location), t.y.move(n.location), !t._moved) {
- if (t._withinIgnoreThreshold()) return;
- if (r.current && r.current !== t.userEvents) return t.dispose();
- t._start(n)
- }
- t._finished || t._trigger(e, n)
- }
- },
- end: function(n) {
- var t = this;
- (t.endTime = u(), t._finished) || (t._finished = !0, t._moved ? t._trigger(o, n) : t._trigger(s, n), clearTimeout(t._holdTimeout), t._trigger(d, n), t.dispose())
- },
- dispose: function() {
- var t = this,
- r = t.userEvents,
- i = r.touches;
- t._finished = !0;
- i.splice(n.inArray(t, i), 1)
- },
- skip: function() {
- this.dispose()
- },
- cancel: function() {
- this.dispose()
- },
- isMoved: function() {
- return this._moved
- },
- _start: function(n) {
- clearTimeout(this._holdTimeout);
- this.startTime = u();
- this._moved = !0;
- this._trigger(b, n)
- },
- _trigger: function(n, t) {
- var i = this,
- r = t.event,
- u = {
- touch: i,
- x: i.x,
- y: i.y,
- target: i.target,
- event: r
- };
- i.userEvents.notify(n, u) && r.preventDefault()
- },
- _withinIgnoreThreshold: function() {
- var n = this.x.initialDelta,
- t = this.y.initialDelta;
- return Math.sqrt(n * n + t * t) <= this.userEvents.threshold
- }
- }),
- r = l.extend({
- init: function(r, u) {
- var h = this,
- a, c = t.guid(),
- it, rt;
- u = u || {};
- a = h.filter = u.filter;
- h.threshold = u.threshold || ot;
- h.minHold = u.minHold || v;
- h.touches = [];
- h._maxTouches = u.multiTouch ? 2 : 1;
- h.allowSelection = u.allowSelection;
- h.captureUpIfMoved = u.captureUpIfMoved;
- h.eventNS = c;
- r = n(r).handler(h);
- l.fn.init.call(h);
- f(h, {
- element: r,
- surface: u.global ? n(ft.documentElement) : n(u.surface || r),
- stopPropagation: u.stopPropagation,
- pressed: !1
- });
- h.surface.handler(h).on(t.applyEventMap("move", c), "_move").on(t.applyEventMap("up cancel", c), "_end");
- r.on(t.applyEventMap("down", c), a, "_start");
- if ((i.pointers || i.msPointers) && r.css("-ms-touch-action", "pinch-zoom double-tap-zoom"), u.preventDragEvent) r.on(t.applyEventMap("dragstart", c), t.preventDefault);
- r.on(t.applyEventMap("mousedown selectstart", c), a, {
- root: r
- }, "_select");
- h.captureUpIfMoved && i.eventCapture && (it = h.surface[0], rt = n.proxy(h.preventIfMoving, h), ut(function(n) {
- it.addEventListener(n, rt, !0)
- }));
- h.bind([y, p, s, b, e, o, d, k, st, g, nt, tt, w], u)
- },
- preventIfMoving: function(n) {
- this._isMoved() && n.preventDefault()
- },
- destroy: function() {
- var n = this,
- t;
- n._destroyed || (n._destroyed = !0, n.captureUpIfMoved && i.eventCapture && (t = n.surface[0], ut(function(i) {
- t.removeEventListener(i, n.preventIfMoving)
- })), n.element.kendoDestroy(n.eventNS), n.surface.kendoDestroy(n.eventNS), n.element.removeData("handler"), n.surface.removeData("handler"), n._disposeAll(), n.unbind(), delete n.surface, delete n.element)
- },
- capture: function() {
- r.current = this
- },
- cancel: function() {
- this._disposeAll();
- this.trigger(k)
- },
- notify: function(n, t) {
- var r = this,
- i = r.touches;
- if (this._isMultiTouch()) {
- switch (n) {
- case e:
- n = g;
- break;
- case o:
- n = nt;
- break;
- case s:
- n = tt
- }
- f(t, {
- touches: i
- }, it(i[0], i[1]))
- }
- return this.trigger(n, t)
- },
- press: function(n, t, i) {
- this._apiCall("_start", n, t, i)
- },
- move: function(n, t) {
- this._apiCall("_move", n, t)
- },
- end: function(n, t) {
- this._apiCall("_end", n, t)
- },
- _isMultiTouch: function() {
- return this.touches.length > 1
- },
- _maxTouchesReached: function() {
- return this.touches.length >= this._maxTouches
- },
- _disposeAll: function() {
- for (var n = this.touches; n.length > 0;) n.pop().dispose()
- },
- _isMoved: function() {
- return n.grep(this.touches, function(n) {
- return n.isMoved()
- }).length
- },
- _select: function(n) {
- (!this.allowSelection || this.trigger(w, {
- event: n
- })) && ct(n)
- },
- _start: function(t) {
- var i = this,
- f = 0,
- s = i.filter,
- e, o = h(t),
- c = o.length,
- u;
- if (!i._maxTouchesReached())
- for (r.current = null, i.currentTarget = t.currentTarget, i.stopPropagation && t.stopPropagation(); f < c; f++) {
- if (i._maxTouchesReached()) break;
- (u = o[f], e = s ? n(u.currentTarget) : i.element, e.length) && (u = new ht(i, e, u), i.touches.push(u), u.press(), i._isMultiTouch() && i.notify("gesturestart", {}))
- }
- },
- _move: function(n) {
- this._eachTouch("move", n)
- },
- _end: function(n) {
- this._eachTouch("end", n)
- },
- _eachTouch: function(n, t) {
- for (var c = this, e = {}, o = h(t), s = c.touches, r, u, f, i = 0; i < s.length; i++) r = s[i], e[r.id] = r;
- for (i = 0; i < o.length; i++) u = o[i], f = e[u.id], f && f[n](u)
- },
- _apiCall: function(t, i, r, u) {
- this[t]({
- api: !0,
- pageX: i,
- pageY: r,
- clientX: i,
- clientY: r,
- target: u || this.element,
- stopPropagation: n.noop,
- preventDefault: n.noop
- })
- }
- });
- r.minHold = function(n) {
- v = n
- };
- t.getTouches = h;
- t.touchDelta = it;
- t.UserEvents = r
- }(window.kendo.jQuery);
- kendo_module({
- id: "draganddrop",
- name: "Drag & drop",
- category: "framework",
- description: "Drag & drop functionality for any DOM element.",
- depends: ["core", "userevents"]
- }),
- function(n, t) {
- function dt(t, i) {
- try {
- return n.contains(t, i) || t == i
- } catch (r) {
- return !1
- }
- }
- function g(n) {
- return kt ? l.elementFromPoint(n.x.screen, n.y.screen) : l.elementFromPoint(n.x.client, n.y.client)
- }
- function w(n, t) {
- return parseInt(n.css(t), 10) || 0
- }
- function st(n, t) {
- return Math.min(Math.max(n, t.min), t.max)
- }
- function ht(n, t) {
- var i = b(n),
- r = i.left + w(n, "borderLeftWidth") + w(n, "paddingLeft"),
- u = i.top + w(n, "borderTopWidth") + w(n, "paddingTop"),
- f = r + n.width() - t.outerWidth(!0),
- e = u + n.height() - t.outerHeight(!0);
- return {
- x: {
- min: r,
- max: f
- },
- y: {
- min: u,
- max: e
- }
- }
- }
- function gt(n, i, r) {
- for (var f, e, u = 0, o = i && i.length, s = r && r.length; n && n.parentNode;) {
- for (u = 0; u < o; u++)
- if (f = i[u], f.element[0] === n) return {
- target: f,
- targetElement: n
- };
- for (u = 0; u < s; u++)
- if (e = r[u], v.matchesSelector.call(n, e.options.filter)) return {
- target: e,
- targetElement: n
- };
- n = n.parentNode
- }
- return t
- }
- var i = window.kendo,
- v = i.support,
- l = window.document,
- pt = i.Class,
- o = i.ui.Widget,
- u = i.Observable,
- wt = i.UserEvents,
- f = n.proxy,
- r = n.extend,
- b = i.getOffset,
- y = {},
- s = {},
- h = {},
- e, k = v.mobileOS,
- bt = k && k.android,
- kt = bt && k.browser == "chrome",
- tt = "keyup",
- a = "change",
- it = "dragstart",
- rt = "hold",
- ut = "drag",
- ft = "dragend",
- et = "dragcancel",
- d = "dragenter",
- p = "dragleave",
- ot = "drop",
- ni = u.extend({
- init: function(t, r) {
- var e = this,
- o = t[0];
- e.capture = !1;
- o.addEventListener ? (n.each(i.eventMap.down.split(" "), function() {
- o.addEventListener(this, f(e._press, e), !0)
- }), n.each(i.eventMap.up.split(" "), function() {
- o.addEventListener(this, f(e._release, e), !0)
- })) : (n.each(i.eventMap.down.split(" "), function() {
- o.attachEvent(this, f(e._press, e))
- }), n.each(i.eventMap.up.split(" "), function() {
- o.attachEvent(this, f(e._release, e))
- }));
- u.fn.init.call(e);
- e.bind(["press", "release"], r || {})
- },
- captureNext: function() {
- this.capture = !0
- },
- cancelCapture: function() {
- this.capture = !1
- },
- _press: function(n) {
- var t = this;
- t.trigger("press");
- t.capture && n.preventDefault()
- },
- _release: function(n) {
- var t = this;
- t.trigger("release");
- t.capture && (n.preventDefault(), t.cancelCapture())
- }
- }),
- ct = u.extend({
- init: function(t) {
- var i = this;
- u.fn.init.call(i);
- i.forcedEnabled = !1;
- n.extend(i, t);
- i.scale = 1;
- i.horizontal ? (i.measure = "offsetWidth", i.scrollSize = "scrollWidth", i.axis = "x") : (i.measure = "offsetHeight", i.scrollSize = "scrollHeight", i.axis = "y")
- },
- makeVirtual: function() {
- n.extend(this, {
- virtual: !0,
- forcedEnabled: !0,
- _virtualMin: 0,
- _virtualMax: 0
- })
- },
- virtualSize: function(n, t) {
- (this._virtualMin !== n || this._virtualMax !== t) && (this._virtualMin = n, this._virtualMax = t, this.update())
- },
- outOfBounds: function(n) {
- return n > this.max || n < this.min
- },
- forceEnabled: function() {
- this.forcedEnabled = !0
- },
- getSize: function() {
- return this.container[0][this.measure]
- },
- getTotal: function() {
- return this.element[0][this.scrollSize]
- },
- rescale: function(n) {
- this.scale = n
- },
- update: function(n) {
- var t = this,
- u = t.virtual ? t._virtualMax : t.getTotal(),
- r = u * t.scale,
- i = t.getSize();
- t.max = t.virtual ? -t._virtualMin : 0;
- t.size = i;
- t.total = r;
- t.min = Math.min(t.max, i - r);
- t.minScale = i / u;
- t.centerOffset = (r - i) / 2;
- t.enabled = t.forcedEnabled || r > i;
- n || t.trigger(a, t)
- }
- }),
- ti = u.extend({
- init: function(n) {
- var t = this;
- u.fn.init.call(t);
- t.x = new ct(r({
- horizontal: !0
- }, n));
- t.y = new ct(r({
- horizontal: !1
- }, n));
- t.container = n.container;
- t.forcedMinScale = n.minScale;
- t.maxScale = n.maxScale || 100;
- t.bind(a, n)
- },
- rescale: function(n) {
- this.x.rescale(n);
- this.y.rescale(n);
- this.refresh()
- },
- centerCoordinates: function() {
- return {
- x: Math.min(0, -this.x.centerOffset),
- y: Math.min(0, -this.y.centerOffset)
- }
- },
- refresh: function() {
- var n = this;
- n.x.update();
- n.y.update();
- n.enabled = n.x.enabled || n.y.enabled;
- n.minScale = n.forcedMinScale || Math.min(n.x.minScale, n.y.minScale);
- n.fitScale = Math.max(n.x.minScale, n.y.minScale);
- n.trigger(a)
- }
- }),
- lt = u.extend({
- init: function(n) {
- var t = this;
- r(t, n);
- u.fn.init.call(t)
- },
- dragMove: function(n) {
- var t = this,
- i = t.dimension,
- r = t.axis,
- u = t.movable,
- f = u[r] + n;
- i.enabled && ((f < i.min && n < 0 || f > i.max && n > 0) && (n *= t.resistance), u.translateAxis(r, n), t.trigger(a, t))
- }
- }),
- ii = pt.extend({
- init: function(n) {
- var t = this,
- u, f, e, i;
- r(t, {
- elastic: !0
- }, n);
- e = t.elastic ? .5 : 0;
- i = t.movable;
- t.x = u = new lt({
- axis: "x",
- dimension: t.dimensions.x,
- resistance: e,
- movable: i
- });
- t.y = f = new lt({
- axis: "y",
- dimension: t.dimensions.y,
- resistance: e,
- movable: i
- });
- t.userEvents.bind(["move", "end", "gesturestart", "gesturechange"], {
- gesturestart: function(n) {
- t.gesture = n;
- t.offset = t.dimensions.container.offset()
- },
- gesturechange: function(n) {
- var h = t.gesture,
- c = h.center,
- l = n.center,
- r = n.distance / h.distance,
- v = t.dimensions.minScale,
- a = t.dimensions.maxScale,
- e, o, s;
- i.scale <= v && r < 1 && (r += (1 - r) * .8);
- i.scale * r >= a && (r = a / i.scale);
- o = i.x + t.offset.left;
- s = i.y + t.offset.top;
- e = {
- x: (o - c.x) * r + l.x - o,
- y: (s - c.y) * r + l.y - s
- };
- i.scaleWith(r);
- u.dragMove(e.x);
- f.dragMove(e.y);
- t.dimensions.rescale(i.scale);
- t.gesture = n;
- n.preventDefault()
- },
- move: function(n) {
- n.event.target.tagName.match(/textarea|input/i) || (u.dimension.enabled || f.dimension.enabled ? (u.dragMove(n.x.delta), f.dragMove(n.y.delta), n.preventDefault()) : n.touch.skip())
- },
- end: function(n) {
- n.preventDefault()
- }
- })
- }
- }),
- ri = v.transitions.prefix + "Transform",
- nt, at, c, vt, yt;
- nt = v.hasHW3D ? function(n, t, i) {
- return "translate3d(" + n + "px," + t + "px,0) scale(" + i + ")"
- } : function(n, t, i) {
- return "translate(" + n + "px," + t + "px) scale(" + i + ")"
- };
- at = u.extend({
- init: function(t) {
- var i = this;
- u.fn.init.call(i);
- i.element = n(t);
- i.element[0].style.webkitTransformOrigin = "left top";
- i.x = 0;
- i.y = 0;
- i.scale = 1;
- i._saveCoordinates(nt(i.x, i.y, i.scale))
- },
- translateAxis: function(n, t) {
- this[n] += t;
- this.refresh()
- },
- scaleTo: function(n) {
- this.scale = n;
- this.refresh()
- },
- scaleWith: function(n) {
- this.scale *= n;
- this.refresh()
- },
- translate: function(n) {
- this.x += n.x;
- this.y += n.y;
- this.refresh()
- },
- moveAxis: function(n, t) {
- this[n] = t;
- this.refresh()
- },
- moveTo: function(n) {
- r(this, n);
- this.refresh()
- },
- refresh: function() {
- var n = this,
- r = n.x,
- u = n.y,
- t;
- n.round && (r = Math.round(r), u = Math.round(u));
- t = nt(r, u, n.scale);
- t != n.coordinates && (i.support.browser.msie && i.support.browser.version < 10 ? (n.element[0].style.position = "absolute", n.element[0].style.left = n.x + "px", n.element[0].style.top = n.y + "px") : n.element[0].style[ri] = t, n._saveCoordinates(t), n.trigger(a))
- },
- _saveCoordinates: function(n) {
- this.coordinates = n
- }
- });
- c = o.extend({
- init: function(n, t) {
- var i = this,
- r;
- o.fn.init.call(i, n, t);
- r = i.options.group;
- r in s ? s[r].push(i) : s[r] = [i]
- },
- events: [d, p, ot],
- options: {
- name: "DropTarget",
- group: "default"
- },
- destroy: function() {
- var i = this.options.group,
- t = s[i] || h[i],
- n;
- if (t.length > 1) {
- for (o.fn.destroy.call(this), n = 0; n < t.length; n++)
- if (t[n] == this) {
- t.splice(n, 1);
- break
- }
- } else c.destroyGroup(i)
- },
- _trigger: function(n, t) {
- var i = this,
- u = y[i.options.group];
- if (u) return i.trigger(n, r({}, t.event, {
- draggable: u,
- dropTarget: t.dropTarget
- }))
- },
- _over: function(n) {
- this._trigger(d, n)
- },
- _out: function(n) {
- this._trigger(p, n)
- },
- _drop: function(n) {
- var t = this,
- i = y[t.options.group];
- i && (i.dropped = !t._trigger(ot, n))
- }
- });
- c.destroyGroup = function(n) {
- var t = s[n] || h[n],
- i;
- if (t) {
- for (i = 0; i < t.length; i++) o.fn.destroy.call(t[i]);
- t.length = 0;
- delete s[n];
- delete h[n]
- }
- };
- c._cache = s;
- vt = c.extend({
- init: function(n, t) {
- var i = this,
- r;
- o.fn.init.call(i, n, t);
- r = i.options.group;
- r in h ? h[r].push(i) : h[r] = [i]
- },
- options: {
- name: "DropTargetArea",
- group: "default",
- filter: null
- }
- });
- yt = o.extend({
- init: function(n, t) {
- var r = this;
- o.fn.init.call(r, n, t);
- r._activated = !1;
- r.userEvents = new wt(r.element, {
- global: !0,
- stopPropagation: !0,
- filter: r.options.filter,
- threshold: r.options.distance,
- start: f(r._start, r),
- hold: f(r._hold, r),
- move: f(r._drag, r),
- end: f(r._end, r),
- cancel: f(r._cancel, r)
- });
- r._afterEndHandler = f(r._afterEnd, r);
- r.captureEscape = function(n) {
- n.keyCode === i.keys.ESC && (r._trigger(et, {
- event: n
- }), r.userEvents.cancel())
- }
- },
- events: [rt, it, ut, ft, et],
- options: {
- name: "Draggable",
- distance: 5,
- group: "default",
- cursorOffset: null,
- axis: null,
- container: null,
- holdToDrag: !1,
- dropped: !1
- },
- cancelHold: function() {
- this._activated = !1
- },
- _updateHint: function(t) {
- var r = this,
- i, o = r.options,
- u = r.boundaries,
- e = o.axis,
- f = r.options.cursorOffset;
- f ? i = {
- left: t.x.location + f.left,
- top: t.y.location + f.top
- } : (r.hintOffset.left += t.x.delta, r.hintOffset.top += t.y.delta, i = n.extend({}, r.hintOffset));
- u && (i.top = st(i.top, u.y), i.left = st(i.left, u.x));
- e === "x" ? delete i.top : e === "y" && delete i.left;
- r.hint.css(i)
- },
- _start: function(t) {
- var r = this,
- u = r.options,
- o = u.container,
- f = u.hint,
- e;
- if (u.holdToDrag && !r._activated) {
- r.userEvents.cancel();
- return
- }
- r.currentTarget = t.target;
- r.currentTargetOffset = b(r.currentTarget);
- f && (r.hint && r.hint.stop(!0, !0).remove(), r.hint = i.isFunction(f) ? n(f.call(r, r.currentTarget)) : f, e = b(r.currentTarget), r.hintOffset = e, r.hint.css({
- position: "absolute",
- zIndex: 2e4,
- left: e.left,
- top: e.top
- }).appendTo(l.body));
- y[u.group] = r;
- r.dropped = !1;
- o && (r.boundaries = ht(o, r.hint));
- r._trigger(it, t) && (r.userEvents.cancel(), r._afterEnd());
- n(l).on(tt, r.captureEscape)
- },
- _hold: function(n) {
- this.currentTarget = n.target;
- this._trigger(rt, n) ? this.userEvents.cancel() : this._activated = !0
- },
- _drag: function(t) {
- var i = this;
- t.preventDefault();
- i._withDropTarget(t, function(i, u) {
- if (!i) {
- e && (e._trigger(p, r(t, {
- dropTarget: n(e.targetElement)
- })), e = null);
- return
- }
- if (e) {
- if (u === e.targetElement) return;
- e._trigger(p, r(t, {
- dropTarget: n(e.targetElement)
- }))
- }
- i._trigger(d, r(t, {
- dropTarget: n(u)
- }));
- e = r(i, {
- targetElement: u
- })
- });
- i._trigger(ut, t);
- i.hint && i._updateHint(t)
- },
- _end: function(t) {
- var i = this;
- i._withDropTarget(t, function(i, u) {
- i && (i._drop(r({}, t, {
- dropTarget: n(u)
- })), e = null)
- });
- i._trigger(ft, t);
- i._cancel(t.event)
- },
- _cancel: function() {
- var n = this;
- n._activated = !1;
- n.hint && !n.dropped ? setTimeout(function() {
- n.hint.stop(!0, !0).animate(n.currentTargetOffset, "fast", n._afterEndHandler)
- }, 0) : n._afterEnd()
- },
- _trigger: function(n, t) {
- var i = this;
- return i.trigger(n, r({}, t.event, {
- x: t.x,
- y: t.y,
- currentTarget: i.currentTarget,
- dropTarget: t.dropTarget
- }))
- },
- _withDropTarget: function(n, t) {
- var r = this,
- i, u, o = r.options,
- f = s[o.group],
- e = h[o.group];
- (f && f.length || e && e.length) && (i = g(n), r.hint && dt(r.hint[0], i) && (r.hint.hide(), i = g(n), i || (i = g(n)), r.hint.show()), u = gt(i, f, e), u ? t(u.target, u.targetElement) : t())
- },
- destroy: function() {
- var n = this;
- o.fn.destroy.call(n);
- n._afterEnd();
- n.userEvents.destroy()
- },
- _afterEnd: function() {
- var t = this;
- t.hint && t.hint.remove();
- delete y[t.options.group];
- t.trigger("destroy");
- n(l).off(tt, t.captureEscape)
- }
- });
- i.ui.plugin(c);
- i.ui.plugin(vt);
- i.ui.plugin(yt);
- i.TapCapture = ni;
- i.containerBoundaries = ht;
- r(i.ui, {
- Pane: ii,
- PaneDimensions: ti,
- Movable: at
- })
- }(window.kendo.jQuery);
- kendo_module({
- id: "reorderable",
- name: "Reorderable",
- category: "framework",
- depends: ["core", "draganddrop"],
- advanced: !0
- }),
- function(n) {
- function u(t, i) {
- t = n(t);
- i ? t.find(".k-drag-status").removeClass("k-add").addClass("k-denied") : t.find(".k-drag-status").removeClass("k-denied").addClass("k-add")
- }
- var t = window.kendo,
- i = t.ui.Widget,
- r = "change",
- f = "k-reorderable",
- e = i.extend({
- init: function(e, o) {
- var s = this,
- h, c = t.guid() + "-reorderable";
- i.fn.init.call(s, e, o);
- e = s.element.addClass(f);
- o = s.options;
- s.draggable = h = o.draggable || new t.ui.Draggable(e, {
- group: c,
- filter: o.filter,
- hint: o.hint
- });
- s.reorderDropCue = n('<div class="k-reorder-cue"><div class="k-icon k-i-arrow-s"><\/div><div class="k-icon k-i-arrow-n"><\/div><\/div>');
- e.find(h.options.filter).kendoDropTarget({
- group: h.options.group,
- dragenter: function(n) {
- if (s._draggable) {
- var i = this.element,
- r, f = i[0] === s._draggable[0];
- u(n.draggable.hint, f);
- f || (r = t.getOffset(i), s.reorderDropCue.css({
- height: i.outerHeight(),
- top: r.top,
- left: r.left + (i.index() > s._draggable.index() ? i.outerWidth() : 0)
- }).appendTo(document.body))
- }
- },
- dragleave: function(n) {
- u(n.draggable.hint, !0);
- s.reorderDropCue.remove()
- },
- drop: function() {
- if (s._draggable) {
- var t = s._draggable[0],
- i = this.element[0],
- n;
- t !== i && (n = e.find(h.options.filter), s.trigger(r, {
- element: s._draggable,
- oldIndex: n.index(t),
- newIndex: n.index(i)
- }))
- }
- }
- });
- h.bind(["dragcancel", "dragend", "dragstart"], {
- dragcancel: function() {
- s.reorderDropCue.remove();
- s._draggable = null
- },
- dragend: function() {
- s.reorderDropCue.remove();
- s._draggable = null
- },
- dragstart: function(n) {
- s._draggable = n.currentTarget
- }
- })
- },
- options: {
- name: "Reorderable",
- filter: "*"
- },
- events: [r],
- destroy: function() {
- var n = this;
- i.fn.destroy.call(n);
- n.draggable && n.draggable.destroy();
- t.destroy(n.element)
- }
- });
- t.ui.plugin(e)
- }(window.kendo.jQuery);
- kendo_module({
- id: "resizable",
- name: "Resizable",
- category: "framework",
- depends: ["core", "draganddrop"],
- advanced: !0
- }),
- function(n, t) {
- var u = window.kendo,
- o = u.ui,
- f = o.Widget,
- r = n.proxy,
- e = u.isFunction,
- s = n.extend,
- i = "horizontal",
- h = "vertical",
- c = "start",
- l = "resize",
- a = "resizeend",
- v = f.extend({
- init: function(n, t) {
- var u = this;
- f.fn.init.call(u, n, t);
- u.orientation = u.options.orientation.toLowerCase() != h ? i : h;
- u._positionMouse = u.orientation == i ? "x" : "y";
- u._position = u.orientation == i ? "left" : "top";
- u._sizingDom = u.orientation == i ? "outerWidth" : "outerHeight";
- u.draggable = new o.Draggable(n, {
- distance: 0,
- filter: t.handle,
- drag: r(u._resize, u),
- dragcancel: r(u._cancel, u),
- dragstart: r(u._start, u),
- dragend: r(u._stop, u)
- });
- u.userEvents = u.draggable.userEvents
- },
- events: [l, a, c],
- options: {
- name: "Resizable",
- orientation: i
- },
- resize: function() {},
- _max: function(n) {
- var i = this,
- u = i.hint ? i.hint[i._sizingDom]() : 0,
- r = i.options.max;
- return e(r) ? r(n) : r !== t ? i._initialElementPosition + r - u : r
- },
- _min: function(n) {
- var r = this,
- i = r.options.min;
- return e(i) ? i(n) : i !== t ? r._initialElementPosition + i : i
- },
- _start: function(t) {
- var i = this,
- r = i.options.hint,
- u = n(t.currentTarget);
- i._initialElementPosition = u.position()[i._position];
- i._initialMousePosition = t[i._positionMouse].startLocation;
- r && (i.hint = e(r) ? n(r(u)) : r, i.hint.css({
- position: "absolute"
- }).css(i._position, i._initialElementPosition).appendTo(i.element));
- i.trigger(c, t);
- i._maxPosition = i._max(t);
- i._minPosition = i._min(t);
- n(document.body).css("cursor", u.css("cursor"))
- },
- _resize: function(n) {
- var i = this,
- u = i._maxPosition,
- f = i._minPosition,
- e = i._initialElementPosition + (n[i._positionMouse].location - i._initialMousePosition),
- r;
- r = f !== t ? Math.max(f, e) : e;
- i.position = r = u !== t ? Math.min(u, r) : r;
- i.hint && i.hint.toggleClass(i.options.invalidClass || "", r == u || r == f).css(i._position, r);
- i.resizing = !0;
- i.trigger(l, s(n, {
- position: r
- }))
- },
- _stop: function(t) {
- var i = this;
- i.hint && i.hint.remove();
- i.resizing = !1;
- i.trigger(a, s(t, {
- position: i.position
- }));
- n(document.body).css("cursor", "")
- },
- _cancel: function(n) {
- var i = this;
- i.hint && (i.position = t, i.hint.css(i._position, i._initialElementPosition), i._stop(n))
- },
- destroy: function() {
- var n = this;
- f.fn.destroy.call(n);
- n.draggable && n.draggable.destroy()
- },
- press: function(n) {
- if (n) {
- var t = n.position(),
- i = this;
- i.userEvents.press(t.left, t.top, n[0]);
- i.targetPosition = t;
- i.target = n
- }
- },
- move: function(n) {
- var i = this,
- f = i._position,
- r = i.targetPosition,
- u = i.position;
- u === t && (u = r[f]);
- r[f] = u + n;
- i.userEvents.move(r.left, r.top)
- },
- end: function() {
- this.userEvents.end();
- this.target = this.position = t
- }
- });
- u.ui.plugin(v)
- }(window.kendo.jQuery);
- kendo_module({
- id: "sortable",
- name: "Sortable",
- category: "framework",
- depends: ["data"],
- advanced: !0
- }),
- function(n, t) {
- var i = window.kendo,
- s = n.proxy,
- r = "dir",
- u = "asc",
- h = "single",
- c = "field",
- f = "desc",
- l = ".kendoSortable",
- a = ".k-link",
- e = "aria-sort",
- o = i.ui.Widget,
- v = o.extend({
- init: function(n, t) {
- var i = this,
- r;
- o.fn.init.call(i, n, t);
- i._refreshHandler = s(i.refresh, i);
- i.dataSource = i.options.dataSource.bind("change", i._refreshHandler);
- r = i.element.find(a);
- r[0] || (r = i.element.wrapInner('<a class="k-link" href="#"/>').find(a));
- i.link = r;
- i.element.on("click" + l, s(i._click, i))
- },
- options: {
- name: "Sortable",
- mode: h,
- allowUnsort: !0,
- compare: null,
- filter: ""
- },
- destroy: function() {
- var n = this;
- o.fn.destroy.call(n);
- n.element.off(l);
- n.dataSource.unbind("change", n._refreshHandler)
- },
- refresh: function() {
- var o = this,
- a = o.dataSource.sort() || [],
- s, v, h, l, t = o.element,
- y = t.attr(i.attr(c));
- for (t.removeAttr(i.attr(r)), t.removeAttr(e), s = 0, v = a.length; s < v; s++) h = a[s], y == h.field && t.attr(i.attr(r), h.dir);
- l = t.attr(i.attr(r));
- t.find(".k-i-arrow-n,.k-i-arrow-s").remove();
- l === u ? (n('<span class="k-icon k-i-arrow-n" />').appendTo(o.link), t.attr(e, "ascending")) : l === f && (n('<span class="k-icon k-i-arrow-s" />').appendTo(o.link), t.attr(e, "descending"))
- },
- _click: function(n) {
- var e = this,
- v = e.element,
- y = v.attr(i.attr(c)),
- s = v.attr(i.attr(r)),
- l = e.options,
- p = e.options.compare == null ? t : e.options.compare,
- o = e.dataSource.sort() || [],
- a, w;
- if (n.preventDefault(), !l.filter || v.is(l.filter)) {
- if (s = s === u ? f : s === f && l.allowUnsort ? t : u, l.mode === h) o = [{
- field: y,
- dir: s,
- compare: p
- }];
- else if (l.mode === "multiple") {
- for (a = 0, w = o.length; a < w; a++)
- if (o[a].field === y) {
- o.splice(a, 1);
- break
- }
- o.push({
- field: y,
- dir: s,
- compare: p
- })
- }
- e.dataSource.sort(o)
- }
- }
- });
- i.ui.plugin(v)
- }(window.kendo.jQuery);
- kendo_module({
- id: "selectable",
- name: "Selectable",
- category: "framework",
- depends: ["core", "userevents"],
- advanced: !0
- }),
- function(n) {
- function y(n, t) {
- var i = u.getOffset(n),
- r = t.left + t.width,
- f = t.top + t.height;
- return i.right = i.left + n.outerWidth(), i.bottom = i.top + n.outerHeight(), !(i.left > r || i.right < t.left || i.top > f || i.bottom < t.top)
- }
- function p(n, i, u, e) {
- for (var o, s = 0, h = n.length; s < h; s++) o = n.eq(s), y(o, u) ? o.hasClass(t) ? e && i !== o[0] && o.removeClass(t).addClass(r) : o.hasClass(f) || o.hasClass(r) || o.addClass(f) : o.hasClass(f) ? o.removeClass(f) : e && o.hasClass(r) && o.removeClass(r).addClass(t)
- }
- var u = window.kendo,
- s = u.ui.Widget,
- i = n.proxy,
- h = Math.abs,
- c = "aria-selected",
- t = "k-state-selected",
- f = "k-state-selecting",
- e = "k-selectable",
- o = "change",
- v = ".kendoSelectable",
- r = "k-state-unselecting",
- l = !1,
- a;
- (function(n) {
- (function() {
- n('<div class="parent"><span /><\/div>').on("click", ">*", function() {
- l = !0
- }).find("span").click().end().off()
- })()
- })(n);
- a = s.extend({
- init: function(t, r) {
- var f = this,
- o;
- s.fn.init.call(f, t, r);
- f._marquee = n("<div class='k-marquee'><div class='k-marquee-color'><\/div><\/div>");
- f._lastActive = null;
- f.element.addClass(e);
- o = f.options.multiple;
- f.userEvents = new u.UserEvents(f.element, {
- global: !0,
- allowSelection: !0,
- filter: (l ? "" : "." + e + " ") + f.options.filter,
- tap: i(f._tap, f)
- });
- o && f.userEvents.bind("start", i(f._start, f)).bind("move", i(f._move, f)).bind("end", i(f._end, f)).bind("select", i(f._select, f))
- },
- events: [o],
- options: {
- name: "Selectable",
- filter: ">*",
- multiple: !1
- },
- _tap: function(i) {
- var u = n(i.target),
- r = this,
- f = i.event.ctrlKey || i.event.metaKey,
- s = r.options.multiple,
- a = s && i.event.shiftKey,
- h, c = i.event.which,
- l = i.event.button;
- u.closest("." + e)[0] !== r.element[0] || c && c == 3 || l && l == 2 || (h = u.hasClass(t), s && f || r.clear(), a ? r.selectRange(r._firstSelectee(), u) : (h && f ? (r._unselect(u), r._notify(o)) : r.value(u), r._lastActive = r._downTarget = u))
- },
- _start: function(i) {
- var u = this,
- f = n(i.target),
- s = f.hasClass(t),
- o = i.event.ctrlKey || i.event.metaKey;
- if (u._downTarget = f, f.closest("." + e)[0] !== u.element[0]) {
- u.userEvents.cancel();
- u._downTarget = null;
- return
- }
- u._marquee.appendTo(document.body).css({
- left: i.x.client + 1,
- top: i.y.client + 1,
- width: 0,
- height: 0
- });
- o || u.clear();
- s && (u._selectElement(f, !0), o && f.addClass(r))
- },
- _move: function(n) {
- var t = this,
- i = {
- left: n.x.startLocation > n.x.location ? n.x.location : n.x.startLocation,
- top: n.y.startLocation > n.y.location ? n.y.location : n.y.startLocation,
- width: h(n.x.initialDelta),
- height: h(n.y.initialDelta)
- },
- r = t.element.find(t.options.filter);
- t._marquee.css(i);
- p(r, t._downTarget[0], i, n.event.ctrlKey || n.event.metaKey);
- n.preventDefault()
- },
- _end: function() {
- var n = this;
- n._marquee.remove();
- n._unselect(n.element.find(n.options.filter + "." + r)).removeClass(r);
- n.value(n.element.find(n.options.filter + "." + f));
- n._lastActive = n._downTarget
- },
- value: function(n) {
- var r = this,
- u = i(r._selectElement, r);
- if (n) {
- n.each(function() {
- u(this)
- });
- r._notify(o);
- return
- }
- return r.element.find(r.options.filter + "." + t)
- },
- _firstSelectee: function() {
- var n = this,
- t;
- return n._lastActive !== null ? n._lastActive : (t = n.value(), t.length > 0 ? t[0] : n.element.find(n.options.filter))
- },
- _selectElement: function(i, r) {
- var u = n(i),
- e = !r && this._notify("select", {
- element: i
- });
- u.removeClass(f);
- e || (u.addClass(t), this.options.aria && u.attr(c, !0))
- },
- _notify: function(n, t) {
- return t = t || {}, this.trigger(n, t)
- },
- _unselect: function(n) {
- return n.removeClass(t), this.options.aria && n.attr(c, !1), n
- },
- _select: function(t) {
- var i = "input,a,textarea,.k-multiselect-wrap,select",
- r = u.support.browser.msie;
- n(t.event.target).is(i) ? (this.userEvents.cancel(), this._downTarget = null) : r && (!r || n(u._activeElement()).is(i)) || t.preventDefault()
- },
- clear: function() {
- var n = this.element.find(this.options.filter + "." + t);
- this._unselect(n)
- },
- selectRange: function(r, u) {
- var e = this,
- s = !1,
- h, l, a, f, v = e.element.find(e.options.filter),
- c = i(e._selectElement, e);
- for (r = n(r)[0], u = n(u)[0], h = 0, l = v.length; h < l; h++) f = v[h], s ? (c(f), s = f !== u) : f === r ? (s = r !== u, c(f)) : f === u ? (a = r, r = u, u = a, s = !0, c(f)) : n(f).removeClass(t);
- e._notify(o)
- },
- destroy: function() {
- var n = this;
- s.fn.destroy.call(n);
- n.element.off(v);
- n.userEvents.destroy()
- }
- });
- u.ui.plugin(a)
- }(window.kendo.jQuery);
- kendo_module({
- id: "button",
- name: "Button",
- category: "web",
- description: "The Button widget displays styled buttons.",
- depends: ["core"]
- }),
- function(n, t) {
- var u = window.kendo,
- o = u.ui.Widget,
- i = n.proxy,
- f = u.keys,
- e = "click",
- l = "k-button",
- a = "k-button-icon",
- v = "k-button-icontext",
- r = ".kendoButton",
- s = "disabled",
- y = "k-state-disabled",
- h = "k-state-focused",
- c = "k-state-selected",
- p = o.extend({
- init: function(n, t) {
- var f = this;
- o.fn.init.call(f, n, t);
- n = f.wrapper = f.element;
- t = f.options;
- n.addClass(l).attr("role", "button");
- t.enable = t.enable && !n.attr(s);
- f.enable(t.enable);
- f._tabindex();
- f._graphics();
- n.on(e + r, i(f._click, f)).on("focus" + r, i(f._focus, f)).on("blur" + r, i(f._blur, f)).on("keydown" + r, i(f._keydown, f)).on("keyup" + r, i(f._keyup, f));
- u.notify(f)
- },
- events: [e],
- options: {
- name: "Button",
- icon: "",
- spriteCssClass: "",
- imageUrl: "",
- enable: !0
- },
- _isNativeButton: function() {
- return this.element.prop("tagName").toLowerCase() == "button"
- },
- _click: function(n) {
- this.options.enable && this.trigger(e, {
- event: n
- })
- },
- _focus: function() {
- this.options.enable && this.element.addClass(h)
- },
- _blur: function() {
- this.element.removeClass(h)
- },
- _keydown: function(n) {
- var t = this;
- t._isNativeButton() || (n.keyCode == f.ENTER || n.keyCode == f.SPACEBAR) && (n.keyCode == f.SPACEBAR && (n.preventDefault(), t.options.enable && t.element.addClass(c)), t._click(n))
- },
- _keyup: function() {
- this.element.removeClass(c)
- },
- _graphics: function() {
- var h = this,
- t = h.element,
- u = h.options,
- f = u.icon,
- e = u.spriteCssClass,
- o = u.imageUrl,
- i, r, s;
- (e || o || f) && (s = !0, t.contents().not("span.k-sprite").not("span.k-icon").not("img.k-image").each(function(t, i) {
- (i.nodeType == 1 || i.nodeType == 3 && n.trim(i.nodeValue).length > 0) && (s = !1)
- }), s ? t.addClass(a) : t.addClass(v));
- f ? (i = t.children("span.k-icon").first(), i[0] || (i = n('<span class="k-icon"><\/span>').prependTo(t)), i.addClass("k-i-" + f)) : e ? (i = t.children("span.k-sprite").first(), i[0] || (i = n('<span class="k-sprite"><\/span>').prependTo(t)), i.addClass(e)) : o && (r = t.children("img.k-image").first(), r[0] || (r = n('<img alt="icon" class="k-image" />').prependTo(t)), r.attr("src", o))
- },
- enable: function(n) {
- var i = this,
- r = i.element;
- n === t && (n = !0);
- n = !!n;
- i.options.enable = n;
- r.toggleClass(y, !n).attr("aria-disabled", !n).attr(s, !n)
- }
- });
- u.ui.plugin(p)
- }(window.kendo.jQuery);
- kendo_module({
- id: "pager",
- name: "Pager",
- category: "framework",
- depends: ["data"],
- advanced: !0
- }),
- function(n, t) {
- function v(n, t, r, u, f) {
- return n({
- idx: t,
- text: r,
- ns: i.ns,
- numeric: u,
- title: f || ""
- })
- }
- function e(n, t, i) {
- return tt({
- className: n.substring(1),
- text: t,
- wrapClassName: i || ""
- })
- }
- function o(n, t, r, u) {
- n.find(t).parent().attr(i.attr("page"), r).attr("tabindex", -1).toggleClass("k-state-disabled", u)
- }
- function w(n, t) {
- o(n, h, 1, t <= 1)
- }
- function b(n, t) {
- o(n, l, Math.max(1, t - 1), t <= 1)
- }
- function k(n, t, i) {
- o(n, a, Math.min(i, t + 1), t >= i)
- }
- function d(n, t, i) {
- o(n, c, i, t >= i)
- }
- var i = window.kendo,
- y = i.ui,
- s = y.Widget,
- u = n.proxy,
- h = ".k-i-seek-w",
- c = ".k-i-seek-e",
- l = ".k-i-arrow-w",
- a = ".k-i-arrow-e",
- r = "change",
- f = ".kendoPager",
- p = "click",
- g = "keydown",
- nt = "disabled",
- tt = i.template('<a href="\\#" title="#=text#" class="k-link k-pager-nav #= wrapClassName #"><span class="k-icon #= className #">#=text#<\/span><\/a>'),
- it = s.extend({
- init: function(t, o) {
- var v = this,
- nt, y;
- if (s.fn.init.call(v, t, o), o = v.options, v.dataSource = i.data.DataSource.create(o.dataSource), v.linkTemplate = i.template(v.options.linkTemplate), v.selectTemplate = i.template(v.options.selectTemplate), nt = v.page(), y = v.totalPages(), v._refreshHandler = u(v.refresh, v), v.dataSource.bind(r, v._refreshHandler), o.previousNext && (v.element.find(h).length || (v.element.append(e(h, o.messages.first, "k-pager-first")), w(v.element, nt, y)), v.element.find(l).length || (v.element.append(e(l, o.messages.previous)), b(v.element, nt, y))), o.numeric && (v.list = v.element.find(".k-pager-numbers"), v.list.length || (v.list = n('<ul class="k-pager-numbers k-reset" />').appendTo(v.element))), o.input) {
- v.element.find(".k-pager-input").length || v.element.append('<span class="k-pager-input k-label">' + o.messages.page + '<input class="k-textbox">' + i.format(o.messages.of, y) + "<\/span>");
- v.element.on(g + f, ".k-pager-input input", u(v._keydown, v))
- }
- if (o.previousNext && (v.element.find(a).length || (v.element.append(e(a, o.messages.next)), k(v.element, nt, y)), v.element.find(c).length || (v.element.append(e(c, o.messages.last, "k-pager-last")), d(v.element, nt, y))), o.pageSizes) {
- v.element.find(".k-pager-sizes").length || n('<span class="k-pager-sizes k-label"><select/>' + o.messages.itemsPerPage + "<\/span>").appendTo(v.element).find("select").html(n.map(n.isArray(o.pageSizes) ? o.pageSizes : [5, 10, 20], function(n) {
- return "<option>" + n + "<\/option>"
- }).join("")).end().appendTo(v.element);
- v.element.find(".k-pager-sizes select").val(v.pageSize());
- i.ui.DropDownList && v.element.find(".k-pager-sizes select").show().kendoDropDownList();
- v.element.on(r + f, ".k-pager-sizes select", u(v._change, v))
- }
- if (o.refresh) {
- v.element.find(".k-pager-refresh").length || v.element.append('<a href="#" class="k-pager-refresh k-link" title="' + o.messages.refresh + '"><span class="k-icon k-i-refresh">' + o.messages.refresh + "<\/span><\/a>");
- v.element.on(p + f, ".k-pager-refresh", u(v._refreshClick, v))
- }
- o.info && (v.element.find(".k-pager-info").length || v.element.append('<span class="k-pager-info k-label" />'));
- v.element.on(p + f, "a", u(v._click, v)).addClass("k-pager-wrap k-widget");
- o.autoBind && v.refresh();
- i.notify(v)
- },
- destroy: function() {
- var n = this;
- s.fn.destroy.call(n);
- n.element.off(f);
- n.dataSource.unbind(r, n._refreshHandler);
- i.destroy(n.element)
- },
- events: [r],
- options: {
- name: "Pager",
- selectTemplate: '<li><span class="k-state-selected">#=text#<\/span><\/li>',
- linkTemplate: '<li><a tabindex="-1" href="\\#" class="k-link" data-#=ns#page="#=idx#" #if (title !== "") {# title="#=title#" #}#>#=text#<\/a><\/li>',
- buttonCount: 10,
- autoBind: !0,
- numeric: !0,
- info: !0,
- input: !1,
- previousNext: !0,
- pageSizes: !1,
- refresh: !1,
- messages: {
- display: "{0} - {1} of {2} items",
- empty: "No items to display",
- page: "Page",
- of: "of {0}",
- itemsPerPage: "items per page",
- first: "Go to the first page",
- previous: "Go to the previous page",
- next: "Go to the next page",
- last: "Go to the last page",
- refresh: "Refresh",
- morePages: "More pages"
- }
- },
- setDataSource: function(n) {
- var t = this;
- t.dataSource.unbind(r, t._refreshHandler);
- t.dataSource = t.options.dataSource = n;
- n.bind(r, t._refreshHandler);
- t.options.autoBind && n.fetch()
- },
- refresh: function(n) {
- var t = this,
- e, a, s = 1,
- f = "",
- y, r = t.page(),
- u = t.options,
- h = t.pageSize(),
- c = t.dataSource.total(),
- o = t.totalPages(),
- p = t.linkTemplate,
- l = u.buttonCount;
- if (!n || n.action != "itemchange") {
- if (u.numeric) {
- for (r > l && (y = r % l, s = y === 0 ? r - l + 1 : r - y + 1), a = Math.min(s + l - 1, o), s > 1 && (f += v(p, s - 1, "...", !1, u.messages.morePages)), e = s; e <= a; e++) f += v(e == r ? t.selectTemplate : p, e, e, !0);
- a < o && (f += v(p, e, "...", !1, u.messages.morePages));
- f === "" && (f = t.selectTemplate({
- text: 0
- }));
- t.list.html(f)
- }
- u.info && (f = c > 0 ? i.format(u.messages.display, (r - 1) * h + 1, Math.min(r * h, c), c) : u.messages.empty, t.element.find(".k-pager-info").html(f));
- u.input && t.element.find(".k-pager-input").html(t.options.messages.page + '<input class="k-textbox">' + i.format(u.messages.of, o)).find("input").val(r).attr(nt, c < 1).toggleClass("k-state-disabled", c < 1);
- u.previousNext && (w(t.element, r, o), b(t.element, r, o), k(t.element, r, o), d(t.element, r, o));
- u.pageSizes && t.element.find(".k-pager-sizes select").val(h).filter("[" + i.attr("role") + "=dropdownlist]").kendoDropDownList("value", h).kendoDropDownList("text", h)
- }
- },
- _keydown: function(n) {
- if (n.keyCode === i.keys.ENTER) {
- var r = this.element.find(".k-pager-input").find("input"),
- t = parseInt(r.val(), 10);
- (isNaN(t) || t < 1 || t > this.totalPages()) && (t = this.page());
- r.val(t);
- this.page(t)
- }
- },
- _refreshClick: function(n) {
- n.preventDefault();
- this.dataSource.read()
- },
- _change: function(n) {
- var t = parseInt(n.currentTarget.value, 10);
- isNaN(t) || this.dataSource.pageSize(t)
- },
- _click: function(t) {
- var r = n(t.currentTarget);
- t.preventDefault();
- r.is(".k-state-disabled") || this.page(r.attr(i.attr("page")))
- },
- totalPages: function() {
- return Math.ceil((this.dataSource.total() || 0) / this.pageSize())
- },
- pageSize: function() {
- return this.dataSource.pageSize() || this.dataSource.total()
- },
- page: function(n) {
- if (n !== t) this.dataSource.page(n), this.trigger(r, {
- index: n
- });
- else return this.dataSource.total() > 0 ? this.dataSource.page() : 0
- }
- });
- y.plugin(it)
- }(window.kendo.jQuery);
- kendo_module({
- id: "popup",
- name: "Pop-up",
- category: "framework",
- depends: ["core"],
- advanced: !0
- }),
- function(n) {
- function y(t, i) {
- return t === i || n.contains(t, i)
- }
- var t = window.kendo,
- it = t.ui,
- p = it.Widget,
- f = t.support,
- r = t.getOffset,
- lt = t._activeElement,
- w = "open",
- b = "close",
- rt = "deactivate",
- ut = "activate",
- u = "center",
- ft = "left",
- s = "right",
- k = "top",
- h = "bottom",
- d = "absolute",
- et = "hidden",
- c = "body",
- g = "location",
- e = "position",
- ot = "visible",
- st = "effects",
- ht = "k-state-active",
- l = "k-state-border",
- at = /k-state-border-(\w+)/,
- ct = ".k-picker-wrap, .k-dropdown-wrap, .k-link",
- a = "down",
- nt = n(window),
- tt = n(document.documentElement),
- v = "resize scroll",
- vt = f.transitions.css,
- yt = vt + "transform",
- i = n.extend,
- o = ".kendoPopup",
- pt = ["font-family", "font-size", "font-stretch", "font-style", "font-weight", "line-height"],
- wt = p.extend({
- init: function(r, u) {
- var f = this,
- e;
- u = u || {};
- u.isRtl && (u.origin = u.origin || h + " " + s, u.position = u.position || k + " " + s);
- p.fn.init.call(f, r, u);
- r = f.element;
- u = f.options;
- f.collisions = u.collision ? u.collision.split(" ") : [];
- f.collisions.length === 1 && f.collisions.push(f.collisions[0]);
- e = n(f.options.anchor).closest(".k-popup,.k-group").filter(":not([class^=km-])");
- u.appendTo = n(n(u.appendTo)[0] || e[0] || c);
- f.element.hide().addClass("k-popup k-group k-reset").toggleClass("k-rtl", !!u.isRtl).css({
- position: d
- }).appendTo(u.appendTo).on("mouseenter" + o, function() {
- f._hovered = !0
- }).on("mouseleave" + o, function() {
- f._hovered = !1
- });
- if (f.wrapper = n(), u.animation === !1 && (u.animation = {
- open: {
- effects: {}
- },
- close: {
- hide: !0,
- effects: {}
- }
- }), i(u.animation.open, {
- complete: function() {
- f.wrapper.css({
- overflow: ot
- });
- f.trigger(ut)
- }
- }), i(u.animation.close, {
- complete: function() {
- f.wrapper.hide();
- var o = f.wrapper.data(g),
- s = n(u.anchor),
- i, e;
- o && f.wrapper.css(o);
- u.anchor != c && (i = (s[0].className.match(at) || ["", "down"])[1], e = l + "-" + i, s.removeClass(e).children(ct).removeClass(ht).removeClass(e), r.removeClass(l + "-" + t.directions[i].reverse));
- f._closing = !1;
- f.trigger(rt)
- }
- }), f._mousedownProxy = function(n) {
- f._mousedown(n)
- }, f._resizeProxy = function(n) {
- f._resize(n)
- }, u.toggleTarget) n(u.toggleTarget).on(u.toggleEvent + o, n.proxy(f.toggle, f))
- },
- events: [w, ut, b, rt],
- options: {
- name: "Popup",
- toggleEvent: "click",
- origin: h + " " + ft,
- position: k + " " + ft,
- anchor: c,
- collision: "flip fit",
- viewport: window,
- copyAnchorStyles: !0,
- autosize: !1,
- modal: !1,
- animation: {
- open: {
- effects: "slideIn:down",
- transition: !0,
- duration: 200
- },
- close: {
- duration: 100,
- hide: !0
- }
- }
- },
- destroy: function() {
- var i = this,
- r = i.options,
- f = i.element.off(o),
- u;
- p.fn.destroy.call(i);
- r.toggleTarget && n(r.toggleTarget).off(o);
- r.modal || (tt.unbind(a, i._mousedownProxy), nt.unbind(v, i._resizeProxy));
- t.destroy(i.element.children());
- r.appendTo[0] === document.body && (u = f.parent(".k-animation-container"), u[0] ? u.remove() : f.remove())
- },
- open: function(r, u) {
- var o = this,
- rt = {
- isFixed: !isNaN(parseInt(u, 10)),
- x: r,
- y: u
- },
- y = o.element,
- s = o.options,
- p = "down",
- h, b, g = n(s.anchor),
- it;
- if (!o.visible()) {
- if (s.copyAnchorStyles && y.css(t.getComputedStyles(g[0], pt)), y.data("animating") || o.trigger(w)) return;
- s.modal || (tt.unbind(a, o._mousedownProxy).bind(a, o._mousedownProxy), f.mobileOS.ios || f.mobileOS.android || nt.unbind(v, o._resizeProxy).bind(v, o._resizeProxy));
- o.wrapper = b = t.wrap(y, s.autosize).css({
- overflow: et,
- display: "block",
- position: d
- });
- f.mobileOS.android && b.add(g).css(yt, "translatez(0)");
- b.css(e);
- n(s.appendTo)[0] == document.body && b.css(k, "-10000px");
- h = i(!0, {}, s.animation.open);
- o.flipped = o._position(rt);
- h.effects = t.parseEffects(h.effects, o.flipped);
- p = h.effects.slideIn ? h.effects.slideIn.direction : p;
- s.anchor != c && (it = l + "-" + p, y.addClass(l + "-" + t.directions[p].reverse), g.addClass(it).children(ct).addClass(ht).addClass(it));
- y.data(st, h.effects).kendoStop(!0).kendoAnimate(h)
- }
- },
- toggle: function() {
- var n = this;
- n[n.visible() ? b : w]()
- },
- visible: function() {
- return this.element.is(":" + ot)
- },
- close: function() {
- var r = this,
- s = r.options,
- o, u, f, e;
- if (r.visible()) {
- if (o = r.wrapper[0] ? r.wrapper : t.wrap(r.element).hide(), r._closing || r.trigger(b)) return;
- r.element.find(".k-popup").each(function() {
- var i = n(this),
- t = i.data("kendoPopup");
- t && t.close()
- });
- tt.unbind(a, r._mousedownProxy);
- nt.unbind(v, r._resizeProxy);
- u = i(!0, {}, s.animation.close);
- f = r.element.data(st);
- e = u.effects;
- !e && !t.size(e) && f && t.size(f) && (u.effects = f, u.reverse = !0);
- r._closing = !0;
- r.element.kendoStop(!0);
- o.css({
- overflow: et
- });
- r.element.kendoAnimate(u)
- }
- },
- _resize: function(n) {
- var t = this;
- n.type === "resize" ? (clearTimeout(t._resizeTimeout), t._resizeTimeout = setTimeout(function() {
- t._position();
- t._resizeTimeout = null
- }, 50)) : t._hovered || y(t.element[0], lt()) || t.close()
- },
- _mousedown: function(i) {
- var u = this,
- s = u.element[0],
- e = u.options,
- h = n(e.anchor)[0],
- o = e.toggleTarget,
- f = t.eventTarget(i),
- r = n(f).closest(".k-popup"),
- c = r.parent().parent(".km-shim").length;
- (r = r[0], c || !r || r === u.element[0]) && n(i.target).closest("a").data("rel") !== "popover" && (y(s, f) || y(h, f) || o && y(n(o)[0], f) || u.close())
- },
- _fit: function(n, t, i) {
- var r = 0;
- return n + t > i && (r = i - (n + t)), n < 0 && (r = -n), r
- },
- _flip: function(n, t, i, r, f, e, o) {
- var s = 0;
- return o = o || t, e !== f && e !== u && f !== u && (n + o > r && (s += -(i + t)), n + s < 0 && (s += i + t)), s
- },
- _position: function(t) {
- var o = this,
- nt = o.element.css(e, ""),
- u = o.wrapper,
- y = o.options,
- c = n(y.viewport),
- ot = n(c).offset(),
- l = n(y.anchor),
- tt = y.origin.toLowerCase().split(" "),
- it = y.position.toLowerCase().split(" "),
- p = o.collisions,
- w = f.zoomLevel(),
- b, rt, h, k = 10002,
- ut = 0,
- st, v, s, et;
- if (b = l.parents().filter(u.siblings()), b[0])
- if (h = Number(n(b).css("zIndex")), h) k = h + 1;
- else
- for (rt = l.parentsUntil(b), st = rt.length; ut < st; ut++) h = Number(n(rt[ut]).css("zIndex")), h && k < h && (k = h + 1);
- u.css("zIndex", k);
- t && t.isFixed ? u.css({
- left: t.x,
- top: t.y
- }) : u.css(o._align(tt, it));
- var ft = r(u, e, l[0] === u.offsetParent()[0]),
- a = r(u),
- ht = l.offsetParent().parent(".k-animation-container,.k-popup,.k-group");
- return ht.length && (ft = r(u, e, !0), a = r(u)), c[0] === window ? (a.top -= window.pageYOffset || document.documentElement.scrollTop || 0, a.left -= window.pageXOffset || document.documentElement.scrollLeft || 0) : (a.top -= ot.top, a.left -= ot.left), o.wrapper.data(g) || u.data(g, i({}, ft)), v = i({}, a), s = i({}, ft), p[0] === "fit" && (s.top += o._fit(v.top, u.outerHeight(), c.height() / w)), p[1] === "fit" && (s.left += o._fit(v.left, u.outerWidth(), c.width() / w)), et = i({}, s), p[0] === "flip" && (s.top += o._flip(v.top, nt.outerHeight(), l.outerHeight(), c.height() / w, tt[0], it[0], u.outerHeight())), p[1] === "flip" && (s.left += o._flip(v.left, nt.outerWidth(), l.outerWidth(), c.width() / w, tt[1], it[1], u.outerWidth())), nt.css(e, d), u.css(s), s.left != et.left || s.top != et.top
- },
- _align: function(t, i) {
- var c = this,
- v = c.wrapper,
- l = n(c.options.anchor),
- y = t[0],
- p = t[1],
- w = i[0],
- b = i[1],
- k = r(l),
- d = n(c.options.appendTo),
- a, g = v.outerWidth(),
- nt = v.outerHeight(),
- tt = l.outerWidth(),
- it = l.outerHeight(),
- f = k.top,
- e = k.left,
- o = Math.round;
- return d[0] != document.body && (a = r(d), f -= a.top, e -= a.left), y === h && (f += it), y === u && (f += o(it / 2)), w === h && (f -= nt), w === u && (f -= o(nt / 2)), p === s && (e += tt), p === u && (e += o(tt / 2)), b === s && (e -= g), b === u && (e -= o(g / 2)), {
- top: f,
- left: e
- }
- }
- });
- it.plugin(wt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "tooltip",
- name: "Tooltip",
- category: "web",
- description: "The Tooltip widget displays a popup hint for a given html element.",
- depends: ["core", "popup"]
- }),
- function(n) {
- function w(n) {
- while (n.length) ot(n), n = n.parent()
- }
- function ot(n) {
- var i = n.data(t.ns + "title");
- i && (n.attr("title", i), n.removeData(t.ns + "title"))
- }
- function st(n) {
- var i = n.attr("title");
- i && (n.data(t.ns + "title", i), n.attr("title", ""))
- }
- function b(n) {
- while (n.length && !n.is("body")) st(n), n = n.parent()
- }
- var t = window.kendo,
- u = t.ui.Widget,
- k = t.ui.Popup,
- d = t.isFunction,
- g = n.isPlainObject,
- s = n.extend,
- r = n.proxy,
- f = n(document),
- nt = t.isLocalUrl,
- h = "_tt_active",
- c = "aria-describedby",
- l = "show",
- a = "hide",
- v = "error",
- e = "contentLoad",
- y = "requestStart",
- o = "k-content-frame",
- tt = '<div role="tooltip" class="k-widget k-tooltip#if (!autoHide) {# k-tooltip-closable#}#">#if (!autoHide) {# <div class="k-tooltip-button"><a href="\\#" class="k-icon k-i-close">close<\/a><\/div> #}#<div class="k-tooltip-content"><\/div>#if (callout){ #<div class="k-callout k-callout-#=dir#"><\/div>#}#<\/div>',
- it = t.template("<iframe frameborder='0' class='" + o + "' src='#= content.url #'>This page requires frames in order to show content<\/iframe>"),
- i = ".kendoTooltip",
- rt = {
- bottom: {
- origin: "bottom center",
- position: "top center"
- },
- top: {
- origin: "top center",
- position: "bottom center"
- },
- left: {
- origin: "center left",
- position: "center right",
- collision: "fit flip"
- },
- right: {
- origin: "center right",
- position: "center left",
- collision: "fit flip"
- },
- center: {
- position: "center center",
- origin: "center center"
- }
- },
- ut = {
- top: "bottom",
- bottom: "top",
- left: "right",
- right: "left",
- center: "center"
- },
- p = {
- bottom: "n",
- top: "s",
- left: "e",
- right: "w",
- center: "n"
- },
- ft = {
- horizontal: {
- offset: "top",
- size: "outerHeight"
- },
- vertical: {
- offset: "left",
- size: "outerWidth"
- }
- },
- et = function(n) {
- return n.target.data(t.ns + "title")
- },
- ht = u.extend({
- init: function(n, t) {
- var f = this,
- e;
- u.fn.init.call(f, n, t);
- e = f.options.position.match(/left|right/) ? "horizontal" : "vertical";
- f.dimensions = ft[e];
- f._documentKeyDownHandler = r(f._documentKeyDown, f);
- f.element.on(f.options.showOn + i, f.options.filter, r(f._showOn, f)).on("mouseenter" + i, f.options.filter, r(f._mouseenter, f));
- if (this.options.autoHide) f.element.on("mouseleave" + i, f.options.filter, r(f._mouseleave, f))
- },
- options: {
- name: "Tooltip",
- filter: "",
- content: et,
- showAfter: 100,
- callout: !0,
- position: "bottom",
- showOn: "mouseenter",
- autoHide: !0,
- width: null,
- height: null,
- animation: {
- open: {
- effects: "fade:in",
- duration: 0
- },
- close: {
- effects: "fade:out",
- duration: 40,
- hide: !0
- }
- }
- },
- events: [l, a, e, v, y],
- _mouseenter: function(t) {
- b(n(t.currentTarget))
- },
- _showOn: function(t) {
- var i = this,
- r = n(t.currentTarget);
- i.options.showOn && i.options.showOn.match(/click|focus/) ? i._show(r) : (clearTimeout(i.timeout), i.timeout = setTimeout(function() {
- i._show(r)
- }, i.options.showAfter))
- },
- _appendContent: function(n) {
- var u = this,
- r = u.options.content,
- f = u.content,
- h = u.options.iframe,
- s;
- if (g(r) && r.url)
- if ("iframe" in u.options || (h = !nt(r.url)), u.trigger(y, {
- options: r,
- target: n
- }), h) {
- f.hide();
- s = f.find("." + o)[0];
- s ? s.src = r.url || s.src : f.html(it({
- content: r
- }));
- f.find("." + o).off("load" + i).on("load" + i, function() {
- u.trigger(e);
- f.show()
- })
- } else f.empty(), t.ui.progress(f, !0), u._ajaxRequest(r);
- else r && d(r) ? (r = r({
- sender: this,
- target: n
- }), u.content.html(r || "")) : u.content.html(r)
- },
- _ajaxRequest: function(n) {
- var i = this;
- jQuery.ajax(s({
- type: "GET",
- dataType: "html",
- cache: !1,
- error: function(n, r) {
- t.ui.progress(i.content, !1);
- i.trigger(v, {
- status: r,
- xhr: n
- })
- },
- success: r(function(n) {
- t.ui.progress(i.content, !1);
- i.content.html(n);
- i.trigger(e)
- }, i)
- }, n))
- },
- _documentKeyDown: function(n) {
- n.keyCode === t.keys.ESC && this.hide()
- },
- refresh: function() {
- var t = this,
- n = t.popup;
- n && n.options.anchor && t._appendContent(n.options.anchor)
- },
- hide: function() {
- this.popup && this.popup.close()
- },
- show: function(n) {
- n = n || this.element;
- b(n);
- this._show(n)
- },
- _show: function(n) {
- var t = this,
- r = t.target();
- t.popup || t._initPopup();
- r && r[0] != n[0] && (t.popup.close(), t.popup.element.kendoStop(!0, !0));
- r && r[0] == n[0] || (t._appendContent(n), t.popup.options.anchor = n);
- t.popup.one("deactivate", function() {
- w(n);
- n.removeAttr(c);
- this.element.removeAttr("id").attr("aria-hidden", !0);
- f.off("keydown" + i, t._documentKeyDownHandler)
- });
- t.popup.open()
- },
- _initPopup: function() {
- var u = this,
- e = u.options,
- o = n(t.template(tt)({
- callout: e.callout && e.position !== "center",
- dir: p[e.position],
- autoHide: e.autoHide
- }));
- if (u.popup = new k(o, s({
- activate: function() {
- var t = this.options.anchor,
- n = t[0].id || u.element[0].id;
- n && (t.attr(c, n + h), this.element.attr("id", n + h));
- e.callout && u._positionCallout();
- this.element.removeAttr("aria-hidden");
- f.on("keydown" + i, u._documentKeyDownHandler);
- u.trigger(l)
- },
- close: function() {
- u.trigger(a)
- },
- copyAnchorStyles: !1,
- animation: e.animation
- }, rt[e.position])), o.css({
- width: e.width,
- height: e.height
- }), u.content = o.find(".k-tooltip-content"), u.arrow = o.find(".k-callout"), e.autoHide) o.on("mouseleave" + i, r(u._mouseleave, u));
- else o.on("click" + i, ".k-tooltip-button", r(u._closeButtonClick, u))
- },
- _closeButtonClick: function(n) {
- n.preventDefault();
- this.hide()
- },
- _mouseleave: function(t) {
- if (this.popup) {
- var r = n(t.currentTarget),
- i = r.offset(),
- u = t.pageX,
- f = t.pageY;
- if (i.right = i.left + r.outerWidth(), i.bottom = i.top + r.outerHeight(), u > i.left && u < i.right && f > i.top && f < i.bottom) return;
- this.popup.close()
- } else w(n(t.currentTarget));
- clearTimeout(this.timeout)
- },
- _positionCallout: function() {
- var t = this,
- u = t.options.position,
- f = t.dimensions,
- i = f.offset,
- r = t.popup,
- e = r.options.anchor,
- o = n(e).offset(),
- s = parseInt(t.arrow.css("border-top-width"), 10),
- h = n(r.element).offset(),
- c = p[r.flipped ? ut[u] : u],
- l = o[i] - h[i] + n(e)[f.size]() / 2 - s;
- t.arrow.removeClass("k-callout-n k-callout-s k-callout-w k-callout-e").addClass("k-callout-" + c).css(i, l)
- },
- target: function() {
- return this.popup ? this.popup.options.anchor : null
- },
- destroy: function() {
- var n = this.popup;
- n && (n.element.off(i), n.destroy());
- this.element.off(i);
- f.off("keydown" + i, this._documentKeyDownHandler);
- u.fn.destroy.call(this)
- }
- });
- t.ui.plugin(ht)
- }(window.kendo.jQuery);
- kendo_module({
- id: "list",
- name: "List",
- category: "framework",
- depends: ["data", "popup"],
- hidden: !0
- }),
- function(n, t) {
- function b(t, i) {
- t.filters && (t.filters = n.grep(t.filters, function(n) {
- return b(n, i), n.filters ? n.filters.length : n.field != i
- }))
- }
- var i = window.kendo,
- l = i.ui,
- o = l.Widget,
- f = i.keys,
- u = i.support,
- ft = i.htmlEncode,
- et = i._activeElement,
- s = "id",
- a = "li",
- r = "change",
- v = "character",
- k = "k-state-focused",
- y = "k-state-hover",
- d = "k-loading",
- p = "open",
- g = "close",
- nt = "select",
- w = "selected",
- tt = "progress",
- it = "requestEnd",
- rt = "width",
- ut = n.extend,
- e = n.proxy,
- h = u.browser,
- ot = h.msie && h.version < 9,
- st = /"/g,
- ht = {
- ComboBox: "DropDownList",
- DropDownList: "ComboBox"
- },
- c = o.extend({
- init: function(t, i) {
- var r = this,
- h = r.ns,
- f;
- o.fn.init.call(r, t, i);
- t = r.element;
- r._isSelect = t.is(nt);
- r._template();
- r.ul = n('<ul unselectable="on" class="k-list k-reset"/>').css({
- overflow: u.kineticScrollNeeded ? "" : "auto"
- }).on("mouseenter" + h, a, function() {
- n(this).addClass(y)
- }).on("mouseleave" + h, a, function() {
- n(this).removeClass(y)
- }).on("click" + h, a, e(r._click, r)).attr({
- tabIndex: -1,
- role: "listbox",
- "aria-hidden": !0
- });
- r.list = n("<div class='k-list-container'/>").append(r.ul).on("mousedown" + h, function(n) {
- n.preventDefault()
- });
- f = t.attr(s);
- f && (r.list.attr(s, f + "-list"), r.ul.attr(s, f + "_listbox"), r._optionID = f + "_option_selected");
- r._header();
- r._accessors();
- r._initValue()
- },
- options: {
- valuePrimitive: !1,
- headerTemplate: ""
- },
- setOptions: function(n) {
- o.fn.setOptions.call(this, n);
- n && n.enable !== t && (n.enabled = n.enable)
- },
- focus: function() {
- this._focused.focus()
- },
- readonly: function(n) {
- this._editable({
- readonly: n === t ? !0 : n,
- disable: !1
- })
- },
- enable: function(n) {
- this._editable({
- readonly: !1,
- disable: !(n = n === t ? !0 : n)
- })
- },
- _filterSource: function(n) {
- var i = this,
- u = i.options,
- r = i.dataSource,
- t = r.filter() || {};
- b(t, u.dataTextField);
- n && (t = t.filters || [], t.push(n));
- r.filter(t)
- },
- _header: function() {
- var t = this.options.headerTemplate,
- i;
- n.isFunction(t) && (t = t({}));
- t && (this.list.prepend(t), i = this.ul.prev(), this.header = i[0] ? i : null)
- },
- _initValue: function() {
- var n = this,
- t = n.options.value;
- t !== null ? n.element.val(t) : (t = n._accessor(), n.options.value = t);
- n._old = t
- },
- _ignoreCase: function() {
- var t = this,
- i = t.dataSource.reader.model,
- n;
- i && i.fields && (n = i.fields[t.options.dataTextField], n && n.type && n.type !== "string" && (t.options.ignoreCase = !1))
- },
- items: function() {
- return this.ul[0].children
- },
- current: function(n) {
- var i = this,
- r = i._optionID;
- if (n !== t) i._current && (i._current.removeClass(k).removeAttr("aria-selected").removeAttr(s), i._focused.removeAttr("aria-activedescendant")), n && (n.addClass(k), i._scroll(n), r && (n.attr("id", r), i._focused.attr("aria-activedescendant", r))), i._current = n;
- else return i._current
- },
- destroy: function() {
- var n = this,
- t = n.ns;
- o.fn.destroy.call(n);
- n._unbindDataSource();
- n.ul.off(t);
- n.list.off(t);
- n._touchScroller && n._touchScroller.destroy();
- n.popup.destroy();
- n._form && n._form.off("reset", n._resetHandler)
- },
- dataItem: function(n) {
- var i = this;
- return n === t && (n = i.selectedIndex), i._data()[n]
- },
- _accessors: function() {
- var n = this,
- r = n.element,
- t = n.options,
- u = i.getter,
- f = r.attr(i.attr("text-field")),
- e = r.attr(i.attr("value-field"));
- f && (t.dataTextField = f);
- e && (t.dataValueField = e);
- n._text = u(t.dataTextField);
- n._value = u(t.dataValueField)
- },
- _aria: function(n) {
- var i = this,
- r = i.options,
- u = i._focused;
- r.suggest !== t && u.attr("aria-autocomplete", r.suggest ? "both" : "list");
- n = n ? n + " " + i.ul[0].id : i.ul[0].id;
- u.attr("aria-owns", n);
- i.ul.attr("aria-live", !r.filter || r.filter === "none" ? "off" : "polite")
- },
- _blur: function() {
- var n = this;
- n._change();
- n.close()
- },
- _change: function() {
- var n = this,
- i = n.selectedIndex,
- e = n.options.value,
- u = n.value(),
- f;
- n._isSelect && !n._bound && e && (u = e);
- u !== n._old ? f = !0 : i !== t && i !== n._oldIndex && (f = !0);
- f && (n._old = u, n._oldIndex = i, n.trigger(r), n.element.trigger(r))
- },
- _click: function(t) {
- t.isDefaultPrevented() || this._accept(n(t.currentTarget))
- },
- _data: function() {
- return this.dataSource.view()
- },
- _enable: function() {
- var n = this,
- i = n.options,
- r = n.element.is("[disabled]");
- i.enable !== t && (i.enabled = i.enable);
- !i.enabled || r ? n.enable(!1) : n.readonly(n.element.is("[readonly]"))
- },
- _focus: function(n) {
- var t = this;
- if (t.popup.visible() && n && t.trigger(nt, {
- item: n
- })) {
- t.close();
- return
- }
- t._select(n);
- t._triggerCascade(!0);
- t._blur()
- },
- _index: function(n) {
- for (var i = this, u = i._data(), t = 0, r = u.length; t < r; t++)
- if (i._dataValue(u[t]) == n) return t;
- return -1
- },
- _dataValue: function(n) {
- var i = this._value(n);
- return i === t && (i = this._text(n)), i
- },
- _height: function(n) {
- if (n) {
- var t = this,
- r = t.list,
- e = t.popup.visible(),
- i = t.options.height,
- f = t.header,
- u;
- u = r.add(r.parent(".k-animation-container")).show();
- i = t.ul[0].scrollHeight > i ? i : "auto";
- u.height(i);
- f && t.ul.height(i == "auto" ? i : r.height() - f.height());
- e || u.hide()
- }
- },
- _adjustListWidth: function() {
- var t = this.list,
- i = t[0].style.width,
- u = this.wrapper,
- n, r;
- if (t.data(rt) || !i) return n = window.getComputedStyle ? window.getComputedStyle(u[0], null) : 0, r = n ? parseFloat(n.width) : u.outerWidth(), n && (h.mozilla || h.msie) && (r += parseFloat(n.paddingLeft) + parseFloat(n.paddingRight) + parseFloat(n.borderLeftWidth) + parseFloat(n.borderRightWidth)), i = t.css("box-sizing") !== "border-box" ? r - (t.outerWidth() - t.width()) : r, t.css({
- fontFamily: u.css("font-family"),
- width: i
- }).data(rt, i), !0
- },
- _popup: function() {
- var n = this,
- e = n.list,
- t = n._focused,
- r = n.options,
- f = n.wrapper;
- n.popup = new l.Popup(e, ut({}, r.popup, {
- anchor: f,
- open: function(i) {
- n._adjustListWidth();
- n.trigger(p) ? i.preventDefault() : (t.attr("aria-expanded", !0), n.ul.attr("aria-hidden", !1))
- },
- close: function(i) {
- n.trigger(g) ? i.preventDefault() : (t.attr("aria-expanded", !1), n.ul.attr("aria-hidden", !0))
- },
- animation: r.animation,
- isRtl: u.isRtl(f)
- }));
- n.popup.one(p, function() {
- n._height(n._data().length)
- });
- n._touchScroller = i.touchScroller(n.popup.element)
- },
- _makeUnselectable: function() {
- ot && this.list.find("*").attr("unselectable", "on")
- },
- _toggleHover: function(t) {
- n(t.currentTarget).toggleClass(y, t.type === "mouseenter")
- },
- _toggle: function(n) {
- var i = this,
- r = u.touch && u.MSPointers && u.pointers;
- n = n !== t ? n : !i.popup.visible();
- r || i._focused[0] === et() || i._focused.focus();
- i[n ? p : g]()
- },
- _scroll: function(n) {
- if (n) {
- n[0] && (n = n[0]);
- var r = this.ul[0],
- t = n.offsetTop,
- o = n.offsetHeight,
- u = r.scrollTop,
- s = r.clientHeight,
- h = t + o,
- f = this._touchScroller,
- i, e;
- f ? (i = f.dimensions.y, i.enabled && t > i.size && (t = t - i.size + o + 4, f.scrollTo(0, -t))) : (e = this.header ? this.header.outerHeight() : 0, r.scrollTop = u > t ? t - e : h > u + s ? h - s - e : u)
- }
- },
- _template: function() {
- var t = this,
- n = t.options,
- r = n.template,
- u = n.dataSource;
- t._isSelect && t.element[0].length && (u || (n.dataTextField = n.dataTextField || "text", n.dataValueField = n.dataValueField || "value"));
- r ? (r = i.template(r), t.template = function(n) {
- return '<li tabindex="-1" role="option" unselectable="on" class="k-item">' + r(n) + "<\/li>"
- }) : t.template = i.template('<li tabindex="-1" role="option" unselectable="on" class="k-item">${' + i.expr(n.dataTextField, "data") + "}<\/li>", {
- useWithBlock: !1
- })
- },
- _triggerCascade: function(n) {
- var t = this,
- i = t.value();
- (!t._bound && i || t._old !== i) && t.trigger("cascade", {
- userTriggered: n
- })
- },
- _unbindDataSource: function() {
- var n = this;
- n.dataSource.unbind(r, n._refreshHandler).unbind(tt, n._progressHandler).unbind(it, n._requestEndHandler).unbind("error", n._errorHandler)
- }
- });
- ut(c, {
- caret: function(n) {
- var t = n.ownerDocument.selection;
- return t ? Math.abs(t.createRange().moveStart(v, -n.value.length)) : n.selectionStart
- },
- selectText: function(n, t, i) {
- try {
- if (n.createTextRange) {
- n.focus();
- var r = n.createTextRange();
- r.collapse(!0);
- r.moveStart(v, t);
- r.moveEnd(v, i - t);
- r.select()
- } else n.setSelectionRange(t, i)
- } catch (u) {}
- },
- inArray: function(n, t) {
- var i, r, u = t.children;
- if (!n || n.parentNode !== t) return -1;
- for (i = 0, r = u.length; i < r; i++)
- if (n === u[i]) return i;
- return -1
- }
- });
- i.ui.List = c;
- l.Select = c.extend({
- init: function(n, t) {
- c.fn.init.call(this, n, t);
- this._initial = this.element.val()
- },
- setDataSource: function(n) {
- this.options.dataSource = n;
- this._dataSource();
- this._bound = !1;
- this.options.autoBind && this.dataSource.fetch()
- },
- close: function() {
- this.popup.close()
- },
- select: function(n) {
- var i = this;
- if (n === t) return i.selectedIndex;
- i._select(n);
- i._triggerCascade();
- i._old = i._accessor();
- i._oldIndex = i.selectedIndex
- },
- _accessor: function(n, i) {
- var r = this.element[0],
- e = this._isSelect,
- f = r.selectedIndex,
- u;
- if (n === t) return e ? f > -1 && (u = r.options[f], u && (n = u.value)) : n = r.value, n;
- e ? (f > -1 && r.options[f].removeAttribute(w), r.selectedIndex = i, u = r.options[i], u && u.setAttribute(w, w)) : r.value = n
- },
- _hideBusy: function() {
- var n = this;
- clearTimeout(n._busy);
- n._arrow.removeClass(d);
- n._focused.attr("aria-busy", !1);
- n._busy = null
- },
- _showBusy: function() {
- var n = this;
- (n._request = !0, n._busy) || (n._busy = setTimeout(function() {
- n._focused.attr("aria-busy", !0);
- n._arrow.addClass(d)
- }, 100))
- },
- _requestEnd: function() {
- this._request = !1
- },
- _dataSource: function() {
- var t = this,
- s = t.element,
- f = t.options,
- u = f.dataSource || {},
- o;
- u = n.isArray(u) ? {
- data: u
- } : u;
- t._isSelect && (o = s[0].selectedIndex, o > -1 && (f.index = o), u.select = s, u.fields = [{
- field: f.dataTextField
- }, {
- field: f.dataValueField
- }]);
- t.dataSource && t._refreshHandler ? t._unbindDataSource() : (t._refreshHandler = e(t.refresh, t), t._progressHandler = e(t._showBusy, t), t._requestEndHandler = e(t._requestEnd, t), t._errorHandler = e(t._hideBusy, t));
- t.dataSource = i.data.DataSource.create(u).bind(r, t._refreshHandler).bind(tt, t._progressHandler).bind(it, t._requestEndHandler).bind("error", t._errorHandler)
- },
- _get: function(t) {
- var r = this,
- u = r._data(),
- i, f;
- if (typeof t == "function")
- for (i = 0, f = u.length; i < f; i++)
- if (t(u[i])) {
- t = i;
- break
- }
- if (typeof t == "number") {
- if (t < 0) return n();
- t = n(r.ul[0].children[t])
- }
- return t && t.nodeType && (t = n(t)), t
- },
- _move: function(n) {
- var t = this,
- e = n.keyCode,
- o = t.ul[0],
- c = t.popup.visible() ? "_select" : "_accept",
- i = t._current,
- h = e === f.DOWN,
- u, s;
- if (e === f.UP || h) {
- if (n.altKey) t.toggle(h);
- else {
- if (u = o.firstChild, !u && !t._accessor() && t._state !== "filter") {
- if (!t._fetch) {
- t.dataSource.one(r, function() {
- t._move(n);
- t._fetch = !1
- });
- t._fetch = !0;
- t._filterSource()
- }
- return n.preventDefault(), !0
- }
- h ? (i && (t.selectedIndex !== -1 || t.value() || i[0] !== u) ? (i = i[0].nextSibling, i || u !== o.lastChild || (i = u)) : i = u, t[c](i)) : (i = i ? i[0].previousSibling : o.lastChild, i || u !== o.lastChild || (i = u), t[c](i))
- }
- n.preventDefault();
- s = !0
- } else e === f.ENTER || e === f.TAB ? (t.popup.visible() && n.preventDefault(), (t._typing || !t.popup.visible() && t.selectedIndex === -1) && (i = null), t._accept(i), s = !0) : e === f.ESC && (t.popup.visible() && n.preventDefault(), t.close(), s = !0);
- return s
- },
- _selectItem: function() {
- var n = this,
- i = n.options,
- u, r;
- u = n._isSelect && !n._initial && !i.value && i.index && !n._bound;
- u || (r = n._selectedValue || i.value || n._accessor());
- r ? n.value(r) : n._bound === t && n.select(i.index)
- },
- _fetchItems: function(n) {
- var t = this,
- i = t.ul[0].firstChild;
- if (t._request) return !0;
- if (!t._fetch && !i) {
- if (t.options.cascadeFrom) return !i;
- t.dataSource.one(r, function() {
- t.value(n);
- t._fetch = !1
- });
- return t._fetch = !0, t.dataSource.fetch(), !0
- }
- },
- _options: function(n, i) {
- var e = this,
- c = e.element,
- l = n.length,
- o = "",
- u, s, h, r, f = 0;
- for (i && (f = 1, o = i); f < l; f++) u = "<option", s = n[f], h = e._text(s), r = e._value(s), r !== t && (r += "", r.indexOf('"') !== -1 && (r = r.replace(st, """)), u += ' value="' + r + '"'), u += ">", h !== t && (u += ft(h)), u += "<\/option>", o += u;
- c.html(o)
- },
- _reset: function() {
- var t = this,
- i = t.element,
- r = i.attr("form"),
- u = r ? n("#" + r) : i.closest("form");
- u[0] && (t._resetHandler = function() {
- setTimeout(function() {
- t.value(t._initial)
- })
- }, t._form = u.on("reset", t._resetHandler))
- },
- _cascade: function() {
- var t = this,
- u = t.options,
- s = u.cascadeFrom,
- i, f, e, o, h;
- if (s) {
- if (t._selectedValue = u.value || t._accessor(), f = n("#" + s), i = f.data("kendo" + u.name), i || (i = f.data("kendo" + ht[u.name])), !i) return;
- u.autoBind = !1;
- o = u.cascadeFromField || i.options.dataValueField;
- h = function() {
- var n = t._selectedValue || t.value();
- t._userTriggered ? t._clearSelection(i, !0) : n ? (t.value(n), t.dataSource.view()[0] && t.selectedIndex !== -1 || t._clearSelection(i, !0)) : t.select(u.index);
- t.enable();
- t._triggerCascade(t._userTriggered);
- t._userTriggered = !1
- };
- e = function() {
- var e = i.dataItem(),
- n = e ? i._value(e) : null,
- u, f;
- n || n === 0 ? (u = t.dataSource.filter() || {}, b(u, o), f = u.filters || [], f.push({
- field: o,
- operator: "eq",
- value: n
- }), t.dataSource.one(r, h).filter(f)) : (t.enable(!1), t._clearSelection(i), t._triggerCascade(t._userTriggered), t._userTriggered = !1)
- };
- i.bind("cascade", function(n) {
- t._userTriggered = n.userTriggered;
- e()
- });
- i._bound ? e() : i.value() || t.enable(!1)
- }
- }
- })
- }(window.kendo.jQuery);
- kendo_module({
- id: "calendar",
- name: "Calendar",
- category: "web",
- description: "The Calendar widget renders a graphical calendar that supports navigation and selection.",
- depends: ["core"]
- }),
- function(n, t) {
- function li(n, t, i, r) {
- var u = n.getFullYear(),
- e = t.getFullYear(),
- o = i.getFullYear(),
- f;
- return u = u - u % r, f = u + (r - 1), u < e && (u = e), f > o && (f = o), u + "-" + f
- }
- function d(n) {
- for (var t = 0, i, f = n.min, e = n.max, r = n.start, o = n.setter, s = n.build, h = n.cells || 12, c = n.perRow || 4, l = n.content || bi, a = n.empty || ki, u = n.html || '<table tabindex="0" role="grid" class="k-content k-meta-view" cellspacing="0"><tbody><tr role="row">'; t < h; t++) t > 0 && t % c == 0 && (u += '<\/tr><tr role="row">'), i = s(r, t), u += nt(r, f, e) ? l(i) : a(i), o(r, 1);
- return u + "<\/tr><\/tbody><\/table>"
- }
- function st(n, t, i) {
- var f = n.getFullYear(),
- r = t.getFullYear(),
- e = r,
- u = 0;
- return i && (r = r - r % i, e = r - r % i + i - 1), f > e ? u = 1 : f < r && (u = -1), u
- }
- function g() {
- var n = new i;
- return new i(n.getFullYear(), n.getMonth(), n.getDate())
- }
- function v(n, t, r) {
- var u = g();
- return n && (u = new i(+n)), t > u ? u = new i(+t) : r < u && (u = new i(+r)), u
- }
- function nt(n, t, i) {
- return +n >= +t && +n <= +i
- }
- function ai(n, t) {
- return n.slice(t).concat(n.slice(0, t))
- }
- function vi(n, t, r) {
- t = t instanceof i ? t.getFullYear() : n.getFullYear() + r * t;
- n.setFullYear(t)
- }
- function yi(t) {
- n(this).toggleClass(nr, tr.indexOf(t.type) > -1 || t.type == ri)
- }
- function ur(n) {
- n.preventDefault()
- }
- function ht(n) {
- return at(n).calendars.standard
- }
- function ct(n) {
- var i = o[n.start],
- r = o[n.depth],
- u = at(n.culture);
- n.format = wi(n.format || u.calendars.standard.patterns.d);
- isNaN(i) && (i = 0, n.start = a);
- (r === t || r > i) && (n.depth = a);
- n.dates || (n.dates = [])
- }
- function pi(n) {
- di && n.find("*").attr("unselectable", "on")
- }
- function fr(n, t) {
- for (var i = 0, r = t.length; i < r; i++)
- if (n === +t[i]) return !0;
- return !1
- }
- function er(n, t) {
- return n ? n.getFullYear() === t.getFullYear() && n.getMonth() === t.getMonth() && n.getDate() === t.getDate() : !1
- }
- function or(n, t) {
- return n ? n.getFullYear() === t.getFullYear() && n.getMonth() === t.getMonth() : !1
- }
- var r = window.kendo,
- tt = r.support,
- lt = r.ui,
- y = lt.Widget,
- u = r.keys,
- it = r.parseDate,
- p = r.date.adjustDST,
- wi = r._extractFormat,
- l = r.template,
- at = r.getCulture,
- vt = r.support.transitions,
- yt = vt ? vt.css + "transform-origin" : "",
- bi = l('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link" href="\\#" data-#=data.ns#value="#=data.dateString#">#=data.value#<\/a><\/td>', {
- useWithBlock: !1
- }),
- ki = l('<td role="gridcell"> <\/td>', {
- useWithBlock: !1
- }),
- pt = r.support.browser,
- di = pt.msie && pt.version < 9,
- f = ".kendoCalendar",
- s = "click" + f,
- gi = "keydown" + f,
- rt = "id",
- wt = "min",
- bt = "left",
- ut = "slideIn",
- a = "month",
- kt = "century",
- ft = "change",
- dt = "navigate",
- et = "value",
- nr = "k-state-hover",
- h = "k-state-disabled",
- c = "k-state-focused",
- w = "k-other-month",
- gt = ' class="' + w + '"',
- ni = "k-nav-today",
- ti = "td:has(.k-link)",
- ii = "blur" + f,
- ri = "focus",
- ui = ri + f,
- tr = tt.touch ? "touchstart" : "mouseenter",
- fi = tt.touch ? "touchstart" + f : "mouseenter" + f,
- ei = tt.touch ? "touchend" + f + " touchmove" + f : "mouseleave" + f,
- ir = 6e4,
- oi = 864e5,
- b = "_prevArrow",
- k = "_nextArrow",
- ot = "aria-disabled",
- si = "aria-selected",
- hi = n.proxy,
- ci = n.extend,
- i = Date,
- o = {
- month: 0,
- year: 1,
- decade: 2,
- century: 3
- },
- rr = y.extend({
- init: function(t, u) {
- var e = this,
- h, l;
- y.fn.init.call(e, t, u);
- t = e.wrapper = e.element;
- u = e.options;
- u.url = window.unescape(u.url);
- e._templates();
- e._header();
- e._footer(e.footer);
- l = t.addClass("k-widget k-calendar").on(fi + " " + ei, ti, yi).on(gi, "table.k-content", hi(e._move, e)).on(s, ti, function(t) {
- var i = t.currentTarget.firstChild;
- i.href.indexOf("#") != -1 && t.preventDefault();
- e._click(n(i))
- }).on("mouseup" + f, function() {
- e._focusView(e.options.focusOnNav !== !1)
- }).attr(rt);
- l && (e._cellID = l + "_cell_selected");
- ct(u);
- h = it(u.value, u.format, u.culture);
- e._index = o[u.start];
- e._current = new i(+v(h, u.min, u.max));
- e._addClassProxy = function() {
- e._active = !0;
- e._cell.addClass(c)
- };
- e._removeClassProxy = function() {
- e._active = !1;
- e._cell.removeClass(c)
- };
- e.value(h);
- r.notify(e)
- },
- options: {
- name: "Calendar",
- value: null,
- min: new i(1900, 0, 1),
- max: new i(2099, 11, 31),
- dates: [],
- url: "",
- culture: "",
- footer: "",
- format: "",
- month: {},
- start: a,
- depth: a,
- animation: {
- horizontal: {
- effects: ut,
- reverse: !0,
- duration: 500,
- divisor: 2
- },
- vertical: {
- effects: "zoomIn",
- duration: 400
- }
- }
- },
- events: [ft, dt],
- setOptions: function(n) {
- var t = this;
- ct(n);
- y.fn.setOptions.call(t, n);
- t._templates();
- t._footer(t.footer);
- t._index = o[t.options.start];
- t.navigate()
- },
- destroy: function() {
- var n = this,
- t = n._today;
- n.element.off(f);
- n._title.off(f);
- n[b].off(f);
- n[k].off(f);
- r.destroy(n._table);
- t && r.destroy(t.off(f));
- y.fn.destroy.call(n)
- },
- current: function() {
- return this._current
- },
- view: function() {
- return this._view
- },
- focus: function(n) {
- n = n || this._table;
- this._bindTable(n);
- n.focus()
- },
- min: function(n) {
- return this._option(wt, n)
- },
- max: function(n) {
- return this._option("max", n)
- },
- navigateToPast: function() {
- this._navigate(b, -1)
- },
- navigateToFuture: function() {
- this._navigate(k, 1)
- },
- navigateUp: function() {
- var n = this,
- t = n._index;
- n._title.hasClass(h) || n.navigate(n._current, ++t)
- },
- navigateDown: function(n) {
- var t = this,
- i = t._index,
- r = t.options.depth;
- if (n) {
- if (i === o[r]) {
- +t._value != +n && (t.value(n), t.trigger(ft));
- return
- }
- t.navigate(n, --i)
- }
- },
- navigate: function(r, u) {
- u = isNaN(u) ? o[u] : u;
- var f = this,
- l = f.options,
- tt = l.culture,
- p = l.min,
- w = l.max,
- it = f._title,
- y = f._table,
- d = f._oldTable,
- rt = f._value,
- ut = f._current,
- ft = r && +r > +ut,
- et = u !== t && u !== f._index,
- g, a, nt, s;
- r || (r = ut);
- f._current = r = new i(+v(r, p, w));
- u === t ? u = f._index : f._index = u;
- f._view = a = e.views[u];
- nt = a.compare;
- s = u === o[kt];
- it.toggleClass(h, s).attr(ot, s);
- s = nt(r, p) < 1;
- f[b].toggleClass(h, s).attr(ot, s);
- s = nt(r, w) > -1;
- f[k].toggleClass(h, s).attr(ot, s);
- y && d && d.data("animating") && (d.kendoStop(!0, !0), y.kendoStop(!0, !0));
- f._oldTable = y;
- (!y || f._changeView) && (it.html(a.title(r, p, w, tt)), f._table = g = n(a.content(ci({
- min: p,
- max: w,
- date: r,
- url: l.url,
- dates: l.dates,
- format: l.format,
- culture: tt
- }, f[a.name]))), pi(g), f._animate({
- from: y,
- to: g,
- vertical: et,
- future: ft
- }), f._focus(r), f.trigger(dt));
- u === o[l.depth] && rt && f._class("k-state-selected", a.toDateString(rt));
- f._class(c, a.toDateString(r));
- !y && f._cell && f._cell.removeClass(c);
- f._changeView = !0
- },
- value: function(n) {
- var r = this,
- f = r._view,
- u = r.options,
- e = r._view,
- o = u.min,
- s = u.max;
- if (n === t) return r._value;
- n = it(n, u.format, u.culture);
- n !== null && (n = new i(+n), nt(n, o, s) || (n = null));
- r._value = n;
- e && n === null && r._cell ? r._cell.removeClass("k-state-selected") : (r._changeView = !n || f && f.compare(n, r._current) !== 0, r.navigate(n))
- },
- _move: function(t) {
- var f = this,
- y = f.options,
- e = t.keyCode,
- p = f._view,
- w = f._index,
- s = new i(+f._current),
- h = r.support.isRtl(f.wrapper),
- c, o, l, a;
- return t.target === f._table[0] && (f._active = !0), t.ctrlKey ? e == u.RIGHT && !h || e == u.LEFT && h ? (f.navigateToFuture(), o = !0) : e == u.LEFT && !h || e == u.RIGHT && h ? (f.navigateToPast(), o = !0) : e == u.UP ? (f.navigateUp(), o = !0) : e == u.DOWN && (f._click(n(f._cell[0].firstChild)), o = !0) : (e == u.RIGHT && !h || e == u.LEFT && h ? (c = 1, o = !0) : e == u.LEFT && !h || e == u.RIGHT && h ? (c = -1, o = !0) : e == u.UP ? (c = w === 0 ? -7 : -4, o = !0) : e == u.DOWN ? (c = w === 0 ? 7 : 4, o = !0) : e == u.ENTER ? (f._click(n(f._cell[0].firstChild)), o = !0) : e == u.HOME || e == u.END ? (l = e == u.HOME ? "first" : "last", a = p[l](s), s = new i(a.getFullYear(), a.getMonth(), a.getDate(), s.getHours(), s.getMinutes(), s.getSeconds(), s.getMilliseconds()), o = !0) : e == u.PAGEUP ? (o = !0, f.navigateToPast()) : e == u.PAGEDOWN && (o = !0, f.navigateToFuture()), (c || l) && (l || p.setDate(s, c), f._focus(v(s, y.min, y.max)))), o && t.preventDefault(), f._current
- },
- _animate: function(n) {
- var t = this,
- i = n.from,
- r = n.to,
- u = t._active;
- i ? i.parent().data("animating") ? (i.parent().kendoStop(!0, !0).remove(), i.remove(), r.insertAfter(t.element[0].firstChild), t._focusView(u)) : i.is(":visible") && t.options.animation !== !1 ? t[n.vertical ? "_vertical" : "_horizontal"](i, r, n.future) : (r.insertAfter(i), i.remove(), t._focusView(u)) : (r.insertAfter(t.element[0].firstChild), t._bindTable(r))
- },
- _horizontal: function(n, i, r) {
- var u = this,
- o = u._active,
- f = u.options.animation.horizontal,
- s = f.effects,
- e = n.outerWidth();
- s && s.indexOf(ut) != -1 && (n.add(i).css({
- width: e
- }), n.wrap("<div/>"), u._focusView(o, n), n.parent().css({
- position: "relative",
- width: e * 2,
- float: bt,
- "margin-left": r ? 0 : -e
- }), i[r ? "insertAfter" : "insertBefore"](n), ci(f, {
- effects: ut + ":" + (r ? "right" : bt),
- complete: function() {
- n.remove();
- i.unwrap();
- u._focusView(o);
- u._oldTable = t
- }
- }), n.parent().kendoStop(!0, !0).kendoAnimate(f))
- },
- _vertical: function(n, i) {
- var r = this,
- e = r.options.animation.vertical,
- o = e.effects,
- s = r._active,
- f, u;
- o && o.indexOf("zoom") != -1 && (i.css({
- position: "absolute",
- top: n.prev().outerHeight(),
- left: 0
- }).insertBefore(n), yt && (f = r._cellByDate(r._view.toDateString(r._current)), u = f.position(), u = u.left + parseInt(f.width() / 2, 10) + "px " + (u.top + parseInt(f.height() / 2, 10) + "px"), i.css(yt, u)), n.kendoStop(!0, !0).kendoAnimate({
- effects: "fadeOut",
- duration: 600,
- complete: function() {
- n.remove();
- i.css({
- position: "static",
- top: 0,
- left: 0
- });
- r._focusView(s);
- r._oldTable = t
- }
- }), i.kendoStop(!0, !0).kendoAnimate(e))
- },
- _cellByDate: function(t) {
- return this._table.find("td:not(." + w + ")").filter(function() {
- return n(this.firstChild).attr(r.attr(et)) === t
- })
- },
- _class: function(t, i) {
- var u = this,
- e = u._cellID,
- f = u._cell;
- f && f.removeAttr(si).removeAttr("aria-label").removeAttr(rt);
- f = u._table.find("td:not(." + w + ")").removeClass(t).filter(function() {
- return n(this.firstChild).attr(r.attr(et)) === i
- }).attr(si, !0);
- t !== c || u._active || u.options.focusOnNav === !1 || (t = "");
- f.addClass(t);
- f[0] && (u._cell = f);
- e && (f.attr(rt, e), u._table.removeAttr("aria-activedescendant").attr("aria-activedescendant", e))
- },
- _bindTable: function(n) {
- n.on(ui, this._addClassProxy).on(ii, this._removeClassProxy)
- },
- _click: function(n) {
- var u = this,
- f = u.options,
- e = new Date(+u._current),
- t = n.attr(r.attr(et)).split("/");
- t = new i(t[0], t[1], t[2]);
- p(t, 0);
- u._view.setDate(e, t);
- u.navigateDown(v(e, f.min, f.max))
- },
- _focus: function(n) {
- var t = this,
- i = t._view;
- i.compare(n, t._current) !== 0 ? t.navigate(n) : (t._current = n, t._class(c, i.toDateString(n)))
- },
- _focusView: function(n, t) {
- n && this.focus(t)
- },
- _footer: function(t) {
- var i = this,
- f = g(),
- e = i.element,
- u = e.find(".k-footer");
- if (!t) {
- i._toggle(!1);
- u.hide();
- return
- }
- u[0] || (u = n('<div class="k-footer"><a href="#" class="k-link k-nav-today"><\/a><\/div>').appendTo(e));
- i._today = u.show().find(".k-link").html(t(f)).attr("title", r.toString(f, "D", i.options.culture));
- i._toggle()
- },
- _header: function() {
- var n = this,
- i = n.element,
- t;
- i.find(".k-header")[0] || i.html('<div class="k-header"><a href="#" role="button" class="k-link k-nav-prev"><span class="k-icon k-i-arrow-w"><\/span><\/a><a href="#" role="button" aria-live="assertive" aria-atomic="true" class="k-link k-nav-fast"><\/a><a href="#" role="button" class="k-link k-nav-next"><span class="k-icon k-i-arrow-e"><\/span><\/a><\/div>');
- t = i.find(".k-link").on(fi + " " + ei + " " + ui + " " + ii, yi).click(!1);
- n._title = t.eq(1).on(s, function() {
- n._focusView(n.options.focusOnNav !== !1);
- n.navigateUp()
- });
- n[b] = t.eq(0).on(s, function() {
- n._focusView(n.options.focusOnNav !== !1);
- n.navigateToPast()
- });
- n[k] = t.eq(2).on(s, function() {
- n._focusView(n.options.focusOnNav !== !1);
- n.navigateToFuture()
- })
- },
- _navigate: function(n, t) {
- var r = this,
- f = r._index + 1,
- u = new i(+r._current);
- n = r[n];
- n.hasClass(h) || (f > 3 ? u.setFullYear(u.getFullYear() + 100 * t) : e.views[f].setDate(u, t), r.navigate(u))
- },
- _option: function(n, r) {
- var u = this,
- f = u.options,
- e = u._value || u._current,
- o;
- if (r === t) return f[n];
- (r = it(r, f.format, f.culture), r) && (f[n] = new i(+r), o = n === wt ? r > e : e > r, (o || or(e, r)) && (o && (u._value = null), u._changeView = !0), u._changeView || (u._changeView = !!(f.month.content || f.month.empty)), u.navigate(u._value), u._toggle())
- },
- _toggle: function(n) {
- var i = this,
- u = i.options,
- r = i._today;
- if (n === t && (n = nt(g(), u.min, u.max)), r)
- if (r.off(s), n) r.addClass(ni).removeClass(h).on(s, hi(i._todayClick, i));
- else r.removeClass(ni).addClass(h).on(s, ur)
- },
- _todayClick: function(n) {
- var t = this,
- r = o[t.options.depth],
- i = g();
- n.preventDefault();
- t._view.compare(t._current, i) === 0 && t._index == r && (t._changeView = !1);
- t._value = i;
- t.navigate(i, r);
- t.trigger(ft)
- },
- _templates: function() {
- var n = this,
- t = n.options,
- i = t.footer,
- u = t.month,
- f = u.content,
- e = u.empty;
- n.month = {
- content: l('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link#=data.linkClass#" href="#=data.url#" ' + r.attr("value") + '="#=data.dateString#" title="#=data.title#">' + (f || "#=data.value#") + "<\/a><\/td>", {
- useWithBlock: !!f
- }),
- empty: l('<td role="gridcell">' + (e || " ") + "<\/td>", {
- useWithBlock: !!e
- })
- };
- n.footer = i !== !1 ? l(i || '#= kendo.toString(data,"D","' + t.culture + '") #', {
- useWithBlock: !1
- }) : null
- }
- }),
- e;
- lt.plugin(rr);
- e = {
- firstDayOfMonth: function(n) {
- return new i(n.getFullYear(), n.getMonth(), 1)
- },
- firstVisibleDay: function(n, t) {
- t = t || r.culture().calendar;
- for (var f = t.firstDay, u = new i(n.getFullYear(), n.getMonth(), 0, n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds()); u.getDay() != f;) e.setTime(u, -1 * oi);
- return u
- },
- setTime: function(n, t) {
- var u = n.getTimezoneOffset(),
- r = new i(n.getTime() + t),
- f = r.getTimezoneOffset() - u;
- n.setTime(r.getTime() + f * ir)
- },
- views: [{
- name: a,
- title: function(n, t, i, r) {
- return ht(r).months.names[n.getMonth()] + " " + n.getFullYear()
- },
- content: function(n) {
- for (var u = this, f = 0, o = n.min, s = n.max, h = n.date, c = n.dates, nt = n.format, l = n.culture, y = n.url, tt = y && c[0], a = ht(l), b = a.firstDay, k = a.days, it = ai(k.names, b), rt = ai(k.namesShort, b), v = e.firstVisibleDay(h, a), ut = u.first(h), ft = u.last(h), et = u.toDateString, t = new i, g = '<table tabindex="0" role="grid" class="k-content" cellspacing="0"><thead><tr role="row">'; f < 7; f++) g += '<th scope="col" title="' + it[f] + '">' + rt[f] + "<\/th>";
- return t = new i(t.getFullYear(), t.getMonth(), t.getDate()), p(t, 0), t = +t, d({
- cells: 42,
- perRow: 7,
- html: g += '<\/tr><\/thead><tbody><tr role="row">',
- start: new i(v.getFullYear(), v.getMonth(), v.getDate()),
- min: new i(o.getFullYear(), o.getMonth(), o.getDate()),
- max: new i(s.getFullYear(), s.getMonth(), s.getDate()),
- content: n.content,
- empty: n.empty,
- setter: u.setDate,
- build: function(n) {
- var i = [],
- u = n.getDay(),
- f = "",
- e = "#";
- return (n < ut || n > ft) && i.push(w), +n === t && i.push("k-today"), (u === 0 || u === 6) && i.push("k-weekend"), tt && fr(+n, c) && (e = y.replace("{0}", r.toString(n, nt, l)), f = " k-action-link"), {
- date: n,
- dates: c,
- ns: r.ns,
- title: r.toString(n, "D", l),
- value: n.getDate(),
- dateString: et(n),
- cssClass: i[0] ? ' class="' + i.join(" ") + '"' : "",
- linkClass: f,
- url: e
- }
- }
- })
- },
- first: function(n) {
- return e.firstDayOfMonth(n)
- },
- last: function(n) {
- var t = new i(n.getFullYear(), n.getMonth() + 1, 0),
- r = e.firstDayOfMonth(n),
- u = Math.abs(t.getTimezoneOffset() - r.getTimezoneOffset());
- return u && t.setHours(r.getHours() + u / 60), t
- },
- compare: function(n, t) {
- var i = n.getMonth(),
- r = n.getFullYear(),
- u = t.getMonth(),
- f = t.getFullYear();
- return r > f ? 1 : r < f ? -1 : i == u ? 0 : i > u ? 1 : -1
- },
- setDate: function(n, t) {
- var r = n.getHours();
- t instanceof i ? n.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()) : e.setTime(n, t * oi);
- p(n, r)
- },
- toDateString: function(n) {
- return n.getFullYear() + "/" + n.getMonth() + "/" + n.getDate()
- }
- }, {
- name: "year",
- title: function(n) {
- return n.getFullYear()
- },
- content: function(n) {
- var f = ht(n.culture).months.namesAbbr,
- e = this.toDateString,
- t = n.min,
- u = n.max;
- return d({
- min: new i(t.getFullYear(), t.getMonth(), 1),
- max: new i(u.getFullYear(), u.getMonth(), 1),
- start: new i(n.date.getFullYear(), 0, 1),
- setter: this.setDate,
- build: function(n) {
- return {
- value: f[n.getMonth()],
- ns: r.ns,
- dateString: e(n),
- cssClass: ""
- }
- }
- })
- },
- first: function(n) {
- return new i(n.getFullYear(), 0, n.getDate())
- },
- last: function(n) {
- return new i(n.getFullYear(), 11, n.getDate())
- },
- compare: function(n, t) {
- return st(n, t)
- },
- setDate: function(n, t) {
- var r, u = n.getHours();
- t instanceof i ? (r = t.getMonth(), n.setFullYear(t.getFullYear(), r, n.getDate()), r !== n.getMonth() && n.setDate(0)) : (r = n.getMonth() + t, n.setMonth(r), r > 11 && (r -= 12), r > 0 && n.getMonth() != r && n.setDate(0));
- p(n, u)
- },
- toDateString: function(n) {
- return n.getFullYear() + "/" + n.getMonth() + "/1"
- }
- }, {
- name: "decade",
- title: function(n, t, i) {
- return li(n, t, i, 10)
- },
- content: function(n) {
- var t = n.date.getFullYear(),
- u = this.toDateString;
- return d({
- start: new i(t - t % 10 - 1, 0, 1),
- min: new i(n.min.getFullYear(), 0, 1),
- max: new i(n.max.getFullYear(), 0, 1),
- setter: this.setDate,
- build: function(n, t) {
- return {
- value: n.getFullYear(),
- ns: r.ns,
- dateString: u(n),
- cssClass: t === 0 || t == 11 ? gt : ""
- }
- }
- })
- },
- first: function(n) {
- var t = n.getFullYear();
- return new i(t - t % 10, n.getMonth(), n.getDate())
- },
- last: function(n) {
- var t = n.getFullYear();
- return new i(t - t % 10 + 9, n.getMonth(), n.getDate())
- },
- compare: function(n, t) {
- return st(n, t, 10)
- },
- setDate: function(n, t) {
- vi(n, t, 1)
- },
- toDateString: function(n) {
- return n.getFullYear() + "/0/1"
- }
- }, {
- name: kt,
- title: function(n, t, i) {
- return li(n, t, i, 100)
- },
- content: function(n) {
- var o = n.date.getFullYear(),
- f = n.min.getFullYear(),
- e = n.max.getFullYear(),
- s = this.toDateString,
- t = f,
- u = e;
- return t = t - t % 10, u = u - u % 10, u - t < 10 && (u = t + 9), d({
- start: new i(o - o % 100 - 10, 0, 1),
- min: new i(t, 0, 1),
- max: new i(u, 0, 1),
- setter: this.setDate,
- build: function(n, t) {
- var i = n.getFullYear(),
- u = i + 9;
- return i < f && (i = f), u > e && (u = e), {
- ns: r.ns,
- value: i + " - " + u,
- dateString: s(n),
- cssClass: t === 0 || t == 11 ? gt : ""
- }
- }
- })
- },
- first: function(n) {
- var t = n.getFullYear();
- return new i(t - t % 100, n.getMonth(), n.getDate())
- },
- last: function(n) {
- var t = n.getFullYear();
- return new i(t - t % 100 + 99, n.getMonth(), n.getDate())
- },
- compare: function(n, t) {
- return st(n, t, 100)
- },
- setDate: function(n, t) {
- vi(n, t, 10)
- },
- toDateString: function(n) {
- var t = n.getFullYear();
- return t - t % 10 + "/0/1"
- }
- }]
- };
- e.isEqualDatePart = er;
- e.makeUnselectable = pi;
- e.restrictValue = v;
- e.isInRange = nt;
- e.normalize = ct;
- e.viewsEnum = o;
- r.calendar = e
- }(window.kendo.jQuery);
- kendo_module({
- id: "datepicker",
- name: "DatePicker",
- category: "web",
- description: "The DatePicker widget allows the user to select a date from a calendar or by direct input.",
- depends: ["calendar", "popup"]
- }),
- function(n, t) {
- function d(t) {
- var i = t.parseFormats,
- r = t.format;
- o.normalize(t);
- i = n.isArray(i) ? i : [i];
- n.inArray(r, i) === -1 && i.splice(0, 0, t.format);
- t.parseFormats = i
- }
- function pt(n) {
- n.preventDefault()
- }
- var i = window.kendo,
- f = i.ui,
- e = f.Widget,
- c = i.parseDate,
- u = i.keys,
- bt = i.template,
- kt = i._activeElement,
- g = "<div />",
- nt = "<span />",
- r = ".kendoDatePicker",
- tt = "click" + r,
- l = "open",
- a = "close",
- v = "change",
- it = "disabled",
- rt = "readonly",
- y = "k-state-default",
- ut = "k-state-focused",
- ft = "k-state-selected",
- p = "k-state-disabled",
- dt = "k-state-hover",
- ii = "keydown" + r,
- gt = "mouseenter" + r + " mouseleave" + r,
- et = "mousedown" + r,
- w = "id",
- ot = "min",
- st = "max",
- ht = "month",
- ct = "aria-disabled",
- lt = "aria-expanded",
- b = "aria-hidden",
- at = "aria-readonly",
- o = i.calendar,
- ni = o.isInRange,
- vt = o.restrictValue,
- ti = o.isEqualDatePart,
- k = n.extend,
- s = n.proxy,
- yt = Date,
- h = function(t) {
- var r = this,
- u, o = document.body,
- e = n(g).attr(b, "true").addClass("k-calendar-container").appendTo(o);
- r.options = t = t || {};
- u = t.id;
- u && (u += "_dateview", e.attr(w, u), r._dateViewID = u);
- r.popup = new f.Popup(e, k(t.popup, t, {
- name: "Popup",
- isRtl: i.support.isRtl(t.anchor)
- }));
- r.div = e;
- r.value(t.value)
- },
- wt;
- h.prototype = {
- _calendar: function() {
- var t = this,
- r = t.calendar,
- u = t.options,
- e;
- r || (e = n(g).attr(w, i.guid()).appendTo(t.popup.element).on(et, pt).on(tt, "td:has(.k-link)", s(t._click, t)), t.calendar = r = new f.Calendar(e), t._setOptions(u), i.calendar.makeUnselectable(r.element), r.navigate(t._value || t._current, u.start), t.value(t._value))
- },
- _setOptions: function(n) {
- this.calendar.setOptions({
- focusOnNav: !1,
- change: n.change,
- culture: n.culture,
- dates: n.dates,
- depth: n.depth,
- footer: n.footer,
- format: n.format,
- max: n.max,
- min: n.min,
- month: n.month,
- start: n.start
- })
- },
- setOptions: function(n) {
- var t = this.options;
- this.options = k(t, n, {
- change: t.change,
- close: t.close,
- open: t.open
- });
- this.calendar && this._setOptions(this.options)
- },
- destroy: function() {
- this.popup.destroy()
- },
- open: function() {
- var n = this;
- n._calendar();
- n.popup.open()
- },
- close: function() {
- this.popup.close()
- },
- min: function(n) {
- this._option(ot, n)
- },
- max: function(n) {
- this._option(st, n)
- },
- toggle: function() {
- var n = this;
- n[n.popup.visible() ? a : l]()
- },
- move: function(n) {
- var t = this,
- i = n.keyCode,
- r = t.calendar,
- f = n.ctrlKey && i == u.DOWN || i == u.ENTER;
- if (i == u.ESC) {
- t.close();
- return
- }
- if (n.altKey) {
- i == u.DOWN ? (t.open(), n.preventDefault()) : i == u.UP && (t.close(), n.preventDefault());
- return
- }
- if (t.popup.visible()) {
- if (f && r._cell.hasClass(ft)) {
- t.close();
- n.preventDefault();
- return
- }
- t._current = r._move(n)
- }
- },
- current: function(n) {
- this._current = n;
- this.calendar._focus(n)
- },
- value: function(n) {
- var t = this,
- i = t.calendar,
- r = t.options;
- t._value = n;
- t._current = new yt(+vt(n, r.min, r.max));
- i && i.value(n)
- },
- _click: function(n) {
- n.currentTarget.className.indexOf(ft) !== -1 && this.close()
- },
- _option: function(n, t) {
- var i = this,
- r = i.calendar;
- i.options[n] = t;
- r && r[n](t)
- }
- };
- h.normalize = d;
- i.DateView = h;
- wt = e.extend({
- init: function(n, t) {
- var r = this,
- f, u;
- e.fn.init.call(r, n, t);
- n = r.element;
- t = r.options;
- d(t);
- r._wrapper();
- r.dateView = new h(k({}, t, {
- id: n.attr(w),
- anchor: r.wrapper,
- change: function() {
- r._change(this.value());
- r.close()
- },
- close: function(t) {
- r.trigger(a) ? t.preventDefault() : (n.attr(lt, !1), u.attr(b, !0))
- },
- open: function(t) {
- var f = r.options,
- i;
- r.trigger(l) ? t.preventDefault() : (r.element.val() !== r._oldText && (i = c(n.val(), f.parseFormats, f.culture), r.dateView[i ? "current" : "value"](i)), n.attr(lt, !0), u.attr(b, !1), r._updateARIA(i))
- }
- }));
- u = r.dateView.div;
- r._icon();
- try {
- n[0].setAttribute("type", "text")
- } catch (o) {
- n[0].type = "text"
- }
- n.addClass("k-input").attr({
- role: "combobox",
- "aria-expanded": !1,
- "aria-owns": r.dateView._dateViewID
- });
- r._reset();
- r._template();
- f = n.is("[disabled]");
- f ? r.enable(!1) : r.readonly(n.is("[readonly]"));
- r._old = r._update(t.value || r.element.val());
- r._oldText = n.val();
- i.notify(r)
- },
- events: [l, a, v],
- options: {
- name: "DatePicker",
- value: null,
- footer: "",
- format: "",
- culture: "",
- parseFormats: [],
- min: new Date(1900, 0, 1),
- max: new Date(2099, 11, 31),
- start: ht,
- depth: ht,
- animation: {},
- month: {},
- dates: [],
- ARIATemplate: 'Current focused date is #=kendo.toString(data.current, "D")#'
- },
- setOptions: function(n) {
- var t = this,
- r = t._value;
- e.fn.setOptions.call(t, n);
- n = t.options;
- d(n);
- t.dateView.setOptions(n);
- r && (t.element.val(i.toString(r, n.format, n.culture)), t._updateARIA(r))
- },
- _editable: function(n) {
- var t = this,
- o = t._dateIcon.off(r),
- f = t.element.off(r),
- e = t._inputWrapper.off(r),
- u = n.readonly,
- i = n.disable;
- if (u || i) e.addClass(i ? p : y).removeClass(i ? y : p), f.attr(it, i).attr(rt, u).attr(ct, i).attr(at, u);
- else {
- e.addClass(y).removeClass(p).on(gt, t._toggleHover);
- f.removeAttr(it).removeAttr(rt).attr(ct, !1).attr(at, !1).on("keydown" + r, s(t._keydown, t)).on("blur" + r, s(t._blur, t)).on("focus" + r, function() {
- t._inputWrapper.addClass(ut)
- });
- o.on(tt, s(t._click, t)).on(et, pt)
- }
- },
- readonly: function(n) {
- this._editable({
- readonly: n === t ? !0 : n,
- disable: !1
- })
- },
- enable: function(n) {
- this._editable({
- readonly: !1,
- disable: !(n = n === t ? !0 : n)
- })
- },
- destroy: function() {
- var n = this;
- e.fn.destroy.call(n);
- n.dateView.destroy();
- n.element.off(r);
- n._dateIcon.off(r);
- n._inputWrapper.off(r);
- n._form && n._form.off("reset", n._resetHandler)
- },
- open: function() {
- this.dateView.open()
- },
- close: function() {
- this.dateView.close()
- },
- min: function(n) {
- return this._option(ot, n)
- },
- max: function(n) {
- return this._option(st, n)
- },
- value: function(n) {
- var i = this;
- if (n === t) return i._value;
- i._old = i._update(n);
- i._old === null && i.element.val("");
- i._oldText = i.element.val()
- },
- _toggleHover: function(t) {
- n(t.currentTarget).toggleClass(dt, t.type === "mouseenter")
- },
- _blur: function() {
- var n = this,
- t = n.element.val();
- n.close();
- t !== n._oldText && n._change(t);
- n._inputWrapper.removeClass(ut)
- },
- _click: function() {
- var n = this,
- t = n.element;
- n.dateView.toggle();
- i.support.touch || t[0] === kt() || t.focus()
- },
- _change: function(n) {
- var t = this;
- n = t._update(n); + t._old != +n && (t._old = n, t._oldText = t.element.val(), t.trigger(v), t.element.trigger(v))
- },
- _keydown: function(n) {
- var t = this,
- i = t.dateView,
- r = t.element.val();
- i.popup.visible() || n.keyCode != u.ENTER || r === t._oldText ? (i.move(n), t._updateARIA(i._current)) : t._change(r)
- },
- _icon: function() {
- var i = this,
- r = i.element,
- t;
- t = r.next("span.k-select");
- t[0] || (t = n('<span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-calendar">select<\/span><\/span>').insertAfter(r));
- i._dateIcon = t.attr({
- role: "button",
- "aria-controls": i.dateView._dateViewID
- })
- },
- _option: function(n, i) {
- var u = this,
- r = u.options;
- if (i === t) return r[n];
- (i = c(i, r.parseFormats, r.culture), i) && (r[n] = new yt(+i), u.dateView[n](i))
- },
- _update: function(n) {
- var u = this,
- r = u.options,
- f = r.min,
- o = r.max,
- t = c(n, r.parseFormats, r.culture),
- e;
- return +t == +u._value ? (e = i.toString(t, r.format, r.culture), e !== n && u.element.val(t === null ? n : e), t) : (t !== null && ti(t, f) ? t = vt(t, f, o) : ni(t, f, o) || (t = null), u._value = t, u.dateView.value(t), u.element.val(t ? i.toString(t, r.format, r.culture) : n), u._updateARIA(t), t)
- },
- _wrapper: function() {
- var r = this,
- i = r.element,
- t;
- t = i.parents(".k-datepicker");
- t[0] || (t = i.wrap(nt).parent().addClass("k-picker-wrap k-state-default"), t = t.wrap(nt).parent());
- t[0].style.cssText = i[0].style.cssText;
- i.css({
- width: "100%",
- height: i[0].style.height
- });
- r.wrapper = t.addClass("k-widget k-datepicker k-header").addClass(i[0].className);
- r._inputWrapper = n(t[0].firstChild)
- },
- _reset: function() {
- var t = this,
- i = t.element,
- r = i.attr("form"),
- u = r ? n("#" + r) : i.closest("form");
- u[0] && (t._resetHandler = function() {
- t.value(i[0].defaultValue)
- }, t._form = u.on("reset", t._resetHandler))
- },
- _template: function() {
- this._ariaTemplate = bt(this.options.ARIATemplate)
- },
- _updateARIA: function(n) {
- var i, t = this,
- r = t.dateView.calendar;
- t.element.removeAttr("aria-activedescendant");
- r && (i = r._cell, i.attr("aria-label", t._ariaTemplate({
- current: n || r.current()
- })), t.element.attr("aria-activedescendant", i.attr("id")))
- }
- });
- f.plugin(wt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "dropdownlist",
- name: "DropDownList",
- category: "web",
- description: "The DropDownList widget displays a list of values and allows the selection of a single value from the list.",
- depends: ["list"],
- features: [{
- id: "mobile-scroller",
- name: "Mobile scroller",
- description: "Support for kinetic scrolling in mobile device",
- depends: ["mobile.scroller"]
- }]
- }),
- function(n, t) {
- function o(n, t, i) {
- for (var u = 0, f = t.length - 1, r; u < f; ++u) r = t[u], r in n || (n[r] = {}), n = n[r];
- n[t[f]] = i
- }
- var r = window.kendo,
- s = r.ui,
- u = s.Select,
- f = r.support.mobileOS,
- i = ".kendoDropDownList",
- a = "disabled",
- v = "readonly",
- y = "change",
- p = "k-state-focused",
- h = "k-state-default",
- c = "k-state-disabled",
- w = "aria-disabled",
- b = "aria-readonly",
- l = "k-state-selected",
- k = "mouseenter" + i + " mouseleave" + i,
- e = "tabindex",
- d = n.proxy,
- g = u.extend({
- init: function(f, o) {
- var s = this,
- a = o && o.index,
- c, l, h;
- s.ns = i;
- o = n.isArray(o) ? {
- dataSource: o
- } : o;
- u.fn.init.call(s, f, o);
- s._focusHandler = function() {
- s.wrapper.focus()
- };
- o = s.options;
- f = s.element.on("focus" + i, s._focusHandler);
- this._inputTemplate();
- s._reset();
- s._word = "";
- s._wrapper();
- s._tabindex();
- s.wrapper.data(e, s.wrapper.attr(e));
- s._aria();
- s._span();
- s._popup();
- s._mobile();
- s._dataSource();
- s._ignoreCase();
- s._enable();
- s._oldIndex = s.selectedIndex = -1;
- s._cascade();
- a !== t && (o.index = a);
- o.autoBind ? s.dataSource.fetch() : s.selectedIndex === -1 && (h = o.text || "", h || (c = o.optionLabel, l = c && o.index === 0, s._isSelect ? h = l ? c : f.children(":selected").text() : !f[0].value && l && (h = c)), s._textAccessor(h));
- r.notify(s)
- },
- options: {
- name: "DropDownList",
- enabled: !0,
- autoBind: !0,
- index: 0,
- text: null,
- value: null,
- template: "",
- valueTemplate: "",
- delay: 500,
- height: 200,
- dataTextField: "",
- dataValueField: "",
- optionLabel: "",
- cascadeFrom: "",
- cascadeFromField: "",
- ignoreCase: !0,
- animation: {}
- },
- events: ["open", "close", y, "select", "dataBinding", "dataBound", "cascade"],
- setOptions: function(n) {
- u.fn.setOptions.call(this, n);
- this._template();
- this._inputTemplate();
- this._accessors();
- this._aria()
- },
- destroy: function() {
- var n = this;
- n.wrapper.off(i);
- n.element.off(i);
- n._inputWrapper.off(i);
- u.fn.destroy.call(n)
- },
- open: function() {
- var n = this;
- n.ul[0].firstChild ? (n.popup.open(), n._scroll(n._current)) : (n._open = !0, n._request || n.dataSource.fetch())
- },
- toggle: function(n) {
- this._toggle(n)
- },
- refresh: function() {
- var n = this,
- u = n._data(),
- t = u.length,
- i = n.options.optionLabel,
- e = n.element[0],
- f;
- n.trigger("dataBinding");
- n._current && n.current(null);
- n.ul[0].innerHTML = r.render(n.template, u);
- n._height(t);
- n.popup.visible() && n.popup._position();
- n._isSelect && (f = e.selectedIndex, i && t && (i = '<option value="">' + n._optionLabelText(i) + "<\/option>"), n._options(u, i), e.selectedIndex = f === -1 ? 0 : f);
- n._open && (n._open = !1, n.toggle(!!t));
- n._hideBusy();
- n._makeUnselectable();
- n._fetch || (t ? n._selectItem() : n._textAccessor() !== i && (n.element.val(""), n._textAccessor("")));
- n._bound = !!t;
- n.trigger("dataBound")
- },
- search: function(n) {
- if (n) {
- var i = this,
- r = i.options.ignoreCase;
- r && (n = n.toLowerCase());
- i._select(function(u) {
- var f = i._text(u);
- if (f !== t) return f = f + "", r && (f = f.toLowerCase()), f.indexOf(n) === 0
- })
- }
- },
- text: function(n) {
- var i = this,
- r, u, f = i.options.ignoreCase;
- if (n = n === null ? "" : n, n !== t) typeof n == "string" && (u = f ? n.toLowerCase() : n, r = i._select(function(n) {
- return n = i._text(n), f && (n = (n + "").toLowerCase()), n === u
- }), r && (n = r)), i._textAccessor(n);
- else return i._textAccessor()
- },
- value: function(n) {
- var i = this,
- r, u;
- if (n !== t) {
- if (n !== null && (n = n.toString()), i._selectedValue = n, u = n || i.options.optionLabel && !i.element[0].disabled && n === "", u && i._fetchItems(n)) return;
- r = i._index(n);
- i.select(r > -1 ? r : 0)
- } else return i._accessor()
- },
- _editable: function(n) {
- var t = this,
- s = t.element,
- o = n.disable,
- l = n.readonly,
- u = t.wrapper.off(i),
- f = t._inputWrapper.off(k),
- y = function() {
- f.addClass(p);
- t._blured = !1
- },
- g = function() {
- if (!t._blured) {
- t._triggerCascade();
- var n = window.self !== window.top;
- r.support.mobileOS.ios && n ? t._change() : t._blur();
- f.removeClass(p);
- t._blured = !0;
- s.blur()
- }
- };
- if (l || o) {
- if (o) u.removeAttr(e), f.addClass(c).removeClass(h);
- else {
- f.addClass(h).removeClass(c);
- u.on("focusin" + i, y).on("focusout" + i, g)
- }
- s.attr(a, o).attr(v, l);
- u.attr(w, o).attr(b, l)
- } else {
- s.removeAttr(a).removeAttr(v);
- f.addClass(h).removeClass(c).on(k, t._toggleHover);
- u.attr(e, u.data(e)).attr(w, !1).attr(b, !1).on("click" + i, function(n) {
- t._blured = !1;
- n.preventDefault();
- t.toggle()
- }).on("keydown" + i, d(t._keydown, t)).on("keypress" + i, d(t._keypress, t)).on("focusin" + i, y).on("focusout" + i, g)
- }
- },
- _accept: function(n) {
- this._focus(n)
- },
- _optionLabelText: function() {
- var t = this.options,
- i = t.dataTextField,
- n = t.optionLabel;
- return n && i && typeof n == "object" ? this._text(n) : n
- },
- _data: function() {
- var h = this,
- f = h.options,
- t = f.optionLabel,
- i = f.dataTextField,
- e = f.dataValueField,
- u = h.dataSource.view(),
- c = u.length,
- n = t,
- s = 0;
- if (t && c) {
- for (typeof t == "object" ? n = t : i && (n = {}, i = i.split("."), e = e.split("."), o(n, e, ""), o(n, i, t)), n = new r.data.ObservableArray([n]); s < c; s++) n.push(u[s]);
- u = n
- }
- return u
- },
- _selectItem: function() {
- u.fn._selectItem.call(this);
- this.current() || this.select(0)
- },
- _keydown: function(n) {
- var u = this,
- t = n.keyCode,
- i = r.keys,
- f = u.ul[0];
- t === i.LEFT ? t = i.UP : t === i.RIGHT && (t = i.DOWN);
- n.keyCode = t;
- u._move(n);
- t === i.HOME ? (n.preventDefault(), u._select(f.firstChild)) : t === i.END && (n.preventDefault(), u._select(f.lastChild))
- },
- _selectNext: function(n, t) {
- for (var i = this, r, f = t, u = i._data(), o = u.length, s = i.options.ignoreCase, e = function(t, r) {
- return t = t + "", s && (t = t.toLowerCase()), t.indexOf(n) === 0 ? (i._select(r), i._triggerEvents(), !0) : void 0
- }; t < o; t++)
- if (r = i._text(u[t]), r && e(r, t)) return !0;
- if (f > 0)
- for (t = 0; t <= f; t++)
- if (r = i._text(u[t]), r && e(r, t)) return !0;
- return !1
- },
- _keypress: function(n) {
- if (n.charCode !== 0) {
- var t = this,
- i = String.fromCharCode(n.charCode || n.keyCode),
- u = t.selectedIndex,
- r = t._word;
- (t.options.ignoreCase && (i = i.toLowerCase()), i === " " && n.preventDefault(), t._last === i && r.length <= 1 && u > -1 && (r || (r = i), t._selectNext(r, u + 1))) || (t._word = r + i, t._last = i, t._search())
- }
- },
- _popup: function() {
- u.fn._popup.call(this);
- this.popup.one("open", function() {
- this.wrapper = r.wrap(this.element).addClass("km-popup")
- })
- },
- _search: function() {
- var n = this,
- i = n.dataSource,
- t = n.selectedIndex,
- r = n._word;
- if (clearTimeout(n._typing), n._typing = setTimeout(function() {
- n._word = ""
- }, n.options.delay), t === -1 && (t = 0), !n.ul[0].firstChild) {
- i.one(y, function() {
- i.data()[0] && t > -1 && n._selectNext(r, t)
- }).fetch();
- return
- }
- n._selectNext(r, t);
- n._triggerEvents()
- },
- _select: function(n) {
- var i = this,
- e = i._current,
- r = null,
- f, u;
- return n = i._get(n), n && n[0] && !n.hasClass(l) && (e && e.removeClass(l), u = s.List.inArray(n[0], i.ul[0]), u > -1 && (r = i._data()[u], f = i._value(r), i.selectedIndex = u, i._textAccessor(r), i._accessor(f !== t ? f : i._text(r), u), i._selectedValue = i._accessor(), i.current(n.addClass(l)), i._optionID && i._current.attr("aria-selected", !0))), r
- },
- _triggerEvents: function() {
- this.popup.visible() || (this._triggerCascade(), this._change())
- },
- _mobile: function() {
- var t = this,
- n = t.popup,
- i = n.element.parents(".km-root").eq(0);
- i.length && f && (n.options.animation.open.effects = f.android || f.meego ? "fadeIn" : f.ios || f.wp ? "slideIn:up" : n.options.animation.open.effects)
- },
- _span: function() {
- var t = this,
- i = t.wrapper,
- u = "span.k-input",
- r;
- r = i.find(u);
- r[0] || (i.append('<span unselectable="on" class="k-dropdown-wrap k-state-default"><span unselectable="on" class="k-input"> <\/span><span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select<\/span><\/span><\/span>').append(t.element), r = i.find(u));
- t.span = r;
- t._inputWrapper = n(i[0].firstChild);
- t._arrow = i.find(".k-icon").mousedown(function(n) {
- n.preventDefault()
- })
- },
- _wrapper: function() {
- var i = this,
- t = i.element,
- r = t[0],
- n;
- n = t.parent();
- n.is("span.k-widget") || (n = t.wrap("<span />").parent(), n[0].style.cssText = r.style.cssText);
- t.hide();
- i._focused = i.wrapper = n.addClass("k-widget k-dropdown k-header").addClass(r.className).css("display", "").attr({
- unselectable: "on",
- role: "listbox",
- "aria-haspopup": !0,
- "aria-expanded": !1
- })
- },
- _clearSelection: function() {
- var n = this,
- t = n.options.optionLabel;
- if (n.options.value = "", n._selectedValue = "", n.dataSource.view()[0] && (t || n._userTriggered)) {
- n.select(0);
- return
- }
- n.selectedIndex = -1;
- n.element.val("");
- n._textAccessor(n.options.optionLabel)
- },
- _inputTemplate: function() {
- var i = this,
- t = i.options.valueTemplate;
- t = t ? r.template(t) : n.proxy(r.template("#:this._text(data)#"), i);
- i.valueTemplate = t
- },
- _textAccessor: function(i) {
- var u = this.dataItem(),
- f = this.options,
- e = this.span;
- if (i !== t) n.isPlainObject(i) || i instanceof r.data.ObservableObject ? u = i : u && this._text(u) === i || (f.dataTextField ? (u = {}, o(u, f.dataTextField.split("."), i), o(u, f.dataValueField.split("."), this._accessor())) : u = i), e.html(this.valueTemplate(u));
- else return e.text()
- }
- });
- s.plugin(g)
- }(window.kendo.jQuery);
- kendo_module({
- id: "combobox",
- name: "ComboBox",
- category: "web",
- description: "The ComboBox widget allows the selection from pre-defined values or entering a new value.",
- depends: ["list"],
- features: [{
- id: "mobile-scroller",
- name: "Mobile scroller",
- description: "Support for kinetic scrolling in mobile device",
- depends: ["mobile.scroller"]
- }]
- }),
- function(n, t) {
- var r = window.kendo,
- o = r.ui,
- u = o.List,
- f = o.Select,
- ut = r.support,
- v = ut.placeholder,
- s = r._activeElement,
- h = r.keys,
- i = ".kendoComboBox",
- y = "click" + i,
- p = "mousedown" + i,
- w = "disabled",
- b = "readonly",
- k = "change",
- c = "k-state-default",
- d = "k-state-focused",
- l = "k-state-disabled",
- g = "aria-disabled",
- nt = "aria-readonly",
- tt = "k-state-selected",
- e = "filter",
- a = "accept",
- it = "rebind",
- ft = "mouseenter" + i + " mouseleave" + i,
- rt = null,
- et = n.proxy,
- ot = f.extend({
- init: function(t, u) {
- var e = this,
- o;
- e.ns = i;
- u = n.isArray(u) ? {
- dataSource: u
- } : u;
- f.fn.init.call(e, t, u);
- e._focusHandler = function() {
- e.input.focus()
- };
- u = e.options;
- t = e.element.on("focus" + i, e._focusHandler);
- u.placeholder = u.placeholder || t.attr("placeholder");
- e._reset();
- e._wrapper();
- e._input();
- e._tabindex(e.input);
- e._popup();
- e._dataSource();
- e._ignoreCase();
- e._enable();
- e._cascade();
- e._aria();
- e._oldIndex = e.selectedIndex = -1;
- u.autoBind ? e._filterSource() : (o = u.text, !o && e._isSelect && (o = t.children(":selected").text()), o && (e.input.val(o), e._prev = o));
- o || e._placeholder();
- r.notify(e)
- },
- options: {
- name: "ComboBox",
- enabled: !0,
- index: -1,
- text: null,
- value: null,
- autoBind: !0,
- delay: 200,
- dataTextField: "",
- dataValueField: "",
- minLength: 0,
- height: 200,
- highlightFirst: !0,
- template: "",
- filter: "none",
- placeholder: "",
- suggest: !1,
- cascadeFrom: "",
- cascadeFromField: "",
- ignoreCase: !0,
- animation: {}
- },
- events: ["open", "close", k, "select", "dataBinding", "dataBound", "cascade"],
- setOptions: function(n) {
- f.fn.setOptions.call(this, n);
- this._template();
- this._accessors();
- this._aria()
- },
- current: function(n) {
- var r = this,
- i = r._current;
- if (n === t) return i;
- i && i.removeClass(tt);
- f.fn.current.call(r, n)
- },
- destroy: function() {
- var n = this;
- n.input.off(i);
- n.element.off(i);
- n._inputWrapper.off(i);
- f.fn.destroy.call(n)
- },
- _editable: function(n) {
- var t = this,
- r = n.disable,
- f = n.readonly,
- u = t._inputWrapper.off(i),
- e = t.element.add(t.input.off(i)),
- o = t._arrow.parent().off(y + " " + p);
- if (f || r) u.addClass(r ? l : c).removeClass(r ? c : l), e.attr(w, r).attr(b, f).attr(g, r).attr(nt, f);
- else {
- u.addClass(c).removeClass(l).on(ft, t._toggleHover);
- e.removeAttr(w).removeAttr(b).attr(g, !1).attr(nt, !1);
- o.on(y, function() {
- t.toggle()
- }).on(p, function(n) {
- n.preventDefault()
- });
- t.input.on("keydown" + i, et(t._keydown, t)).on("focus" + i, function() {
- u.addClass(d);
- t._placeholder(!1)
- }).on("blur" + i, function() {
- u.removeClass(d);
- clearTimeout(t._typing);
- t.options.text !== t.input.val() && t.text(t.text());
- t._placeholder();
- t._blur();
- t.element.blur()
- })
- }
- },
- open: function() {
- var n = this,
- t = n.dataSource.options.serverFiltering;
- n.popup.visible() || (n.ul[0].firstChild && (n._state !== a || t) ? (n.popup.open(), n._scroll(n._current)) : (n._open = !0, n._state = it, n._filterSource()))
- },
- refresh: function() {
- var i = this,
- f = i.ul[0],
- l = i.options,
- a = i._state,
- o = i._data(),
- h = o.length,
- v = !0,
- y, c, u;
- i.trigger("dataBinding");
- f.innerHTML = r.render(i.template, o);
- i._height(h);
- i.popup.visible() && i.popup._position();
- i._isSelect && (y = i.element[0].firstChild, a === it && (i._state = ""), u = i._option, i._option = t, i._options(o), u && u[0].selected ? i._custom(u.val(), v) : i._bound || y || i._custom("", v));
- h && (l.highlightFirst && i.current(n(f.firstChild)), l.suggest && i.input.val() && i._request !== t && i.suggest(n(f.firstChild)));
- a === e || i._fetch || i._selectItem();
- i._open && (i._open = !1, c = !!h, i._typing && i.input[0] !== s() && (c = !1), i.toggle(c), i._typing = t);
- i._touchScroller && i._touchScroller.reset();
- i._makeUnselectable();
- i._hideBusy();
- i._bound = !0;
- i.trigger("dataBound")
- },
- search: function(n) {
- n = typeof n == "string" ? n : this.text();
- var t = this,
- f = n.length,
- i = t.options,
- r = i.ignoreCase,
- u = i.filter,
- o = i.dataTextField;
- clearTimeout(t._typing);
- f >= i.minLength && (t._state = e, u === "none" ? t._filter(n) : (t._open = !0, t._filterSource({
- value: r ? n.toLowerCase() : n,
- field: o,
- operator: u,
- ignoreCase: r
- })))
- },
- suggest: function(n) {
- var r = this,
- o = r.input[0],
- i = r.text(),
- e = u.caret(o),
- c = r._last,
- f;
- if (c == h.BACKSPACE || c == h.DELETE) {
- r._last = t;
- return
- }
- n = n || "";
- typeof n != "string" && (f = u.inArray(n[0], r.ul[0]), n = f > -1 ? r._text(r.dataSource.view()[f]) : "");
- e <= 0 && (e = i.toLowerCase().indexOf(n.toLowerCase()) + 1);
- n ? (f = n.toLowerCase().indexOf(i.toLowerCase()), f > -1 && (i += n.substring(f + i.length))) : i = i.substring(0, e);
- i.length === e && n || (o.value = i, o === s() && u.selectText(o, e, i.length))
- },
- text: function(n) {
- n = n === null ? "" : n;
- var i = this,
- u = i.input[0],
- e = i.options.ignoreCase,
- f = n,
- r;
- if (n !== t) {
- if (r = i.dataItem(), r && i._text(r) === n && i._value(r).toString() === i._old) {
- i._triggerCascade();
- return
- }
- e && (f = f.toLowerCase());
- i._select(function(n) {
- return n = i._text(n), e && (n = (n + "").toLowerCase()), n === f
- });
- i.selectedIndex < 0 && (i._custom(n), u.value = n);
- i._prev = u.value;
- i._triggerCascade()
- } else return u.value
- },
- toggle: function(n) {
- var t = this;
- t._toggle(n)
- },
- value: function(n) {
- var i = this,
- u = i.options,
- r;
- if (n !== t) {
- if (n !== null && (n = n.toString()), i._selectedValue = n, !i._open && n && i._fetchItems(n)) return;
- r = i._index(n);
- r > -1 ? i.select(r) : (i.current(rt), i._custom(n), (u.value !== n || u.text !== i.input.val()) && (i.text(n), i._placeholder()));
- i._old = i._accessor();
- i._oldIndex = i.selectedIndex
- } else return i._accessor()
- },
- _accept: function(n) {
- var t = this;
- n ? t._focus(n) : (t.text(t.text()), t._change())
- },
- _custom: function(t, i) {
- var r = this,
- f = r.element,
- u = r._option;
- r._state !== e || i || (r._state = a);
- r._isSelect ? (u || (u = r._option = n("<option/>"), f.append(u)), u.text(t), u[0].selected = !0) : f.val(t);
- r._selectedValue = t
- },
- _filter: function(n) {
- var i = this,
- r = i.options,
- u = i.dataSource,
- f = r.ignoreCase,
- e = function(r) {
- var u = i._text(r);
- if (u !== t) return (u = u + "", u !== "" && n === "") ? !1 : (f && (u = u.toLowerCase()), u.indexOf(n) === 0)
- };
- if (f && (n = n.toLowerCase()), !i.ul[0].firstChild) {
- u.one(k, function() {
- u.data()[0] && i.search(n)
- }).fetch();
- return
- }
- i._highlight(e) !== -1 && (r.suggest && i._current && i.suggest(i._current), i.open());
- i._hideBusy()
- },
- _highlight: function(i) {
- var r = this,
- f;
- return i === t || i === null ? -1 : (i = r._get(i), f = u.inArray(i[0], r.ul[0]), f == -1 && (r.options.highlightFirst && !r.text() ? (i = r.ul[0].firstChild, i && (i = n(i))) : i = rt), r.current(i), f)
- },
- _input: function() {
- var t = this,
- i = t.element.removeClass("k-input")[0],
- e = i.accessKey,
- u = t.wrapper,
- o = "input.k-input",
- f = i.name || "",
- r;
- f && (f = 'name="' + f + '_input" ');
- r = u.find(o);
- r[0] || (u.append('<span tabindex="-1" unselectable="on" class="k-dropdown-wrap k-state-default"><input ' + f + 'class="k-input" type="text" autocomplete="off"/><span tabindex="-1" unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select<\/span><\/span><\/span>').append(t.element), r = u.find(o));
- r[0].style.cssText = i.style.cssText;
- i.maxLength > -1 && (r[0].maxLength = i.maxLength);
- r.addClass(i.className).val(this.options.text || i.value).css({
- width: "100%",
- height: i.style.height
- }).attr({
- role: "combobox",
- "aria-expanded": !1
- }).show();
- v && r.attr("placeholder", t.options.placeholder);
- e && (i.accessKey = "", r[0].accessKey = e);
- t._focused = t.input = r;
- t._inputWrapper = n(u[0].firstChild);
- t._arrow = u.find(".k-icon").attr({
- role: "button",
- tabIndex: -1
- });
- i.id && t._arrow.attr("aria-controls", t.ul[0].id)
- },
- _keydown: function(n) {
- var t = this,
- i = n.keyCode;
- t._last = i;
- clearTimeout(t._typing);
- i == h.TAB || t._move(n) || t._search()
- },
- _placeholder: function(n) {
- if (!v) {
- var f = this,
- i = f.input,
- r = f.options.placeholder,
- e;
- if (r) {
- if (e = f.value(), n === t && (n = !e), i.toggleClass("k-readonly", n), !n) {
- if (e) return;
- r = ""
- }
- i.val(r);
- r || i[0] !== s() || u.selectText(i[0], 0, 0)
- }
- }
- },
- _search: function() {
- var n = this;
- n._typing = setTimeout(function() {
- var t = n.text();
- n._prev !== t && (n._prev = t, n.search(t));
- n._typing = null
- }, n.options.delay)
- },
- _select: function(n) {
- var i = this,
- f, o, r = i._data(),
- u = i._highlight(n);
- i.selectedIndex = u;
- u !== -1 && (i._state === e && (i._state = a), i._current.addClass(tt), r = r[u], f = i._text(r), o = i._value(r), i._prev = i.input[0].value = f, i._accessor(o !== t ? o : f, u), i._selectedValue = i._accessor(), i._placeholder(), i._optionID && i._current.attr("aria-selected", !0))
- },
- _wrapper: function() {
- var i = this,
- n = i.element,
- t = n.parent();
- t.is("span.k-widget") || (t = n.hide().wrap("<span />").parent(), t[0].style.cssText = n[0].style.cssText);
- i.wrapper = t.addClass("k-widget k-combobox k-header").addClass(n[0].className).css("display", "")
- },
- _clearSelection: function(n, t) {
- var i = this,
- r = n._selectedValue || n.value(),
- u = r && n.selectedIndex === -1;
- (t || !r || u) && (i.value(""), i.options.value = "")
- }
- });
- o.plugin(ot)
- }(window.kendo.jQuery);
- kendo_module({
- id: "multiselect",
- name: "MultiSelect",
- category: "web",
- description: "The MultiSelect widget allows the selection from pre-defined values.",
- depends: ["list"],
- features: [{
- id: "mobile-scroller",
- name: "Mobile scroller",
- description: "Support for kinetic scrolling in mobile device",
- depends: ["mobile.scroller"]
- }]
- }),
- function(n, t) {
- function ni(n, t) {
- var i;
- if (n === null && t !== null || n !== null && t === null || (i = n.length, i !== t.length)) return !1;
- while (i--)
- if (n[i] !== t[i]) return !1;
- return !0
- }
- function s(t) {
- var i = t.firstChild;
- return (i && i.style.display === "none" && (i = h(i, it)), i) ? n(i) : i
- }
- function lt(t) {
- var i = t.lastChild;
- return (i && i.style.display === "none" && (i = h(i, rt)), i) ? n(i) : i
- }
- function h(n, t) {
- return n = n[t], n && n.style.display === "none" && (n = h(n, t)), n
- }
- var i = window.kendo,
- d = i.ui,
- f = d.List,
- r = i.keys,
- g = i._activeElement,
- at = i.data.ObservableArray,
- c = n.proxy,
- e = "id",
- v = "li",
- y = "accept",
- p = "filter",
- nt = "open",
- tt = "close",
- o = "change",
- vt = "progress",
- w = "select",
- it = "nextSibling",
- rt = "previousSibling",
- yt = ' style="display:none"',
- ut = "aria-disabled",
- ft = "aria-readonly",
- l = "k-state-focused",
- b = "k-loading-hidden",
- et = "k-state-hover",
- k = "k-state-disabled",
- ot = "disabled",
- st = "readonly",
- u = ".kendoMultiSelect",
- pt = "click" + u,
- wt = "keydown" + u,
- ht = "mouseenter" + u,
- ct = "mouseleave" + u,
- bt = ht + " " + ct,
- kt = /"/g,
- a = n.isArray,
- dt = ["font-family", "font-size", "font-stretch", "font-style", "font-weight", "letter-spacing", "text-transform", "line-height"],
- gt = f.extend({
- init: function(t, r) {
- var o = this,
- s, h;
- o.ns = u;
- f.fn.init.call(o, t, r);
- o._wrapper();
- o._tagList();
- o._input();
- o._textContainer();
- o._loader();
- o._tabindex(o.input);
- t = o.element.attr("multiple", "multiple").hide();
- r = o.options;
- h = r.value;
- r.placeholder || (r.placeholder = t.data("placeholder"));
- s = t.attr(e);
- s && (o._tagID = s + "_tag_active", s = s + "_taglist", o.tagList.attr(e, s));
- o._aria(s);
- o._dataSource();
- o._ignoreCase();
- o._popup();
- o._values = [];
- o._dataItems = [];
- o._reset();
- o._enable();
- o._placeholder();
- r.autoBind ? o.dataSource.fetch() : h && (a(h) || (h = [h]), (n.isPlainObject(h[0]) || !r.dataValueField) && (o._retrieveData = !0, o.dataSource.data(h), o.value(o._initialValues)));
- i.notify(o)
- },
- options: {
- name: "MultiSelect",
- enabled: !0,
- autoBind: !0,
- autoClose: !0,
- highlightFirst: !0,
- dataTextField: "",
- dataValueField: "",
- filter: "startswith",
- ignoreCase: !0,
- minLength: 0,
- delay: 100,
- value: null,
- maxSelectedItems: null,
- itemTemplate: "",
- tagTemplate: "",
- placeholder: "",
- height: 200,
- animation: {}
- },
- events: [nt, tt, o, w, "dataBinding", "dataBound"],
- setDataSource: function(n) {
- this.options.dataSource = n;
- this._dataSource();
- this.options.autoBind && this.dataSource.fetch()
- },
- setOptions: function(n) {
- f.fn.setOptions.call(this, n);
- this._template();
- this._accessors();
- this._aria(this.tagList.attr(e))
- },
- current: function(n) {
- return this.currentTag(null), f.fn.current.call(this, n)
- },
- currentTag: function(n) {
- var i = this;
- if (n !== t) i._currentTag && (i._currentTag.removeClass(l).removeAttr(e), i.input.removeAttr("aria-activedescendant")), n && (n.addClass(l).attr(e, i._tagID), i.input.attr("aria-activedescendant", i._tagID)), i._currentTag = n;
- else return i._currentTag
- },
- dataItems: function() {
- return this._dataItems
- },
- destroy: function() {
- var n = this,
- t = n.ns;
- n.wrapper.off(t);
- n.tagList.off(t);
- n.input.off(t);
- f.fn.destroy.call(n)
- },
- _editable: function(t) {
- var i = this,
- r = t.disable,
- f = t.readonly,
- e = i.wrapper.off(u),
- s = i.tagList.off(u),
- o = i.element.add(i.input.off(u));
- if (f || r) r ? e.addClass(k) : e.removeClass(k), o.attr(ot, r).attr(st, f).attr(ut, r).attr(ft, f);
- else {
- e.removeClass(k).on(bt, i._toggleHover).on("mousedown" + u, function(n) {
- var t = n.target.nodeName.toLowerCase() !== "input";
- t && n.preventDefault();
- n.target.className.indexOf("k-delete") === -1 && (i.input[0] !== g() && t && i.input.focus(), i.options.minLength === 0 && i.open())
- });
- i.input.on(wt, c(i._keydown, i)).on("paste" + u, c(i._search, i)).on("focus" + u, function() {
- i._placeholder(!1)
- }).on("blur" + u, function() {
- clearTimeout(i._typing);
- i._placeholder();
- i.close();
- i._state === p && (i._state = y);
- i.element.blur()
- });
- o.removeAttr(ot).removeAttr(st).attr(ut, !1).attr(ft, !1);
- s.on(ht, v, function() {
- n(this).addClass(et)
- }).on(ct, v, function() {
- n(this).removeClass(et)
- }).on(pt, ".k-delete", function(t) {
- i._unselect(n(t.target).closest(v));
- i._change();
- i.close()
- })
- }
- },
- _close: function() {
- var n = this;
- n.options.autoClose || !n._visibleItems ? n.close() : (n.current(n.options.highlightFirst ? s(n.ul[0]) : null), n.popup._position())
- },
- close: function() {
- this.popup.close();
- this.current(null)
- },
- open: function() {
- var n = this;
- !n.ul[0].firstChild || n._state === y || n._retrieveData ? (n._state = "", n._open = !0, n._retrieveData = !1, n._filterSource()) : n._visibleItems && n._allowSelection() && (n.popup.open(), n.current(n.options.highlightFirst ? s(n.ul[0]) : null))
- },
- toggle: function(n) {
- n = n !== t ? n : !this.popup.visible();
- this[n ? nt : tt]()
- },
- refresh: function() {
- var n = this,
- i = null,
- t;
- n.trigger("dataBinding");
- t = n._render(n.dataSource.view());
- n._height(t);
- n._setInitialValues && (n._setInitialValues = !1, n.value(n._initialValues));
- n._open && (n._open = !1, n.toggle(t));
- n.popup.visible() && (n.popup._position(), n.options.highlightFirst && (i = s(n.ul[0])));
- n.current(i);
- n._touchScroller && n._touchScroller.reset();
- n._makeUnselectable();
- n._hideBusy();
- n.trigger("dataBound")
- },
- search: function(n) {
- var t = this,
- i = t.options,
- u = i.ignoreCase,
- f = i.filter,
- e = i.dataTextField,
- r = t.input.val();
- i.placeholder === r && (r = "");
- clearTimeout(t._typing);
- n = typeof n == "string" ? n : r;
- n.length >= i.minLength && (t._state = p, t._open = !0, t._filterSource({
- value: u ? n.toLowerCase() : n,
- field: e,
- operator: f,
- ignoreCase: u
- }))
- },
- value: function(i) {
- var r = this,
- o = n(r.tagList[0].children),
- f = o.length,
- e, u = 0;
- if (i === t) return r._values;
- if (!r._fetchItems(i)) {
- for (; u < f; u++) r._unselect(o.eq(u));
- if (i !== null) {
- for (i = a(i) || i instanceof at ? i : [i], u = 0, f = i.length; u < f; u++) e = r._index(i[u]), e > -1 && r._select(e);
- r._old = r._values.slice()
- }
- }
- },
- _dataSource: function() {
- var n = this,
- u = n.element,
- r = n.options,
- t = r.dataSource || {};
- t = a(t) ? {
- data: t
- } : t;
- t.select = u;
- t.fields = [{
- field: r.dataTextField
- }, {
- field: r.dataValueField
- }];
- n.dataSource && n._refreshHandler ? n._unbindDataSource() : (n._refreshHandler = c(n.refresh, n), n._progressHandler = c(n._showBusy, n));
- n.dataSource = i.data.DataSource.create(t).bind(o, n._refreshHandler).bind(vt, n._progressHandler)
- },
- _fetchItems: function(t) {
- var i = this,
- r = n.isArray(t) && t.length === 0;
- if (!r && t && !i._fetch && !i.ul[0].firstChild) {
- i.dataSource.one(o, function() {
- i.value(t);
- i._fetch = !1
- });
- return i._fetch = !0, i.dataSource.fetch(), !0
- }
- },
- _reset: function() {
- var t = this,
- i = t.element,
- r = i.attr("form"),
- u = r ? n("#" + r) : i.closest("form");
- u[0] && (t._resetHandler = function() {
- setTimeout(function() {
- t.value(t._initialValues)
- })
- }, t._form = u.on("reset", t._resetHandler))
- },
- _initValue: function() {
- var t = this,
- n = t.options.value || t.element.val();
- n === null ? n = [] : (a(n) || (n = [n]), n = t._mapValues(n));
- t._old = t._initialValues = n;
- t._setInitialValues = !!n[0]
- },
- _mapValues: function(t) {
- var i = this;
- return t && n.isPlainObject(t[0]) && (t = n.map(t, function(n) {
- return i._value(n)
- })), t
- },
- _change: function() {
- var n = this,
- t = n.value();
- ni(t, n._old) || (n._old = t.slice(), n.trigger(o), n.element.trigger(o))
- },
- _click: function(t) {
- var i = this,
- r = n(t.currentTarget);
- if (!t.isDefaultPrevented()) {
- if (i.trigger(w, {
- item: r
- })) {
- i._close();
- return
- }
- i._select(r);
- i._change();
- i._close()
- }
- },
- _item: function(n, t) {
- return n = n[t](), n[0] && !n.is(":visible") && (n = this._item(n, t)), n
- },
- _keydown: function(t) {
- var u = this,
- e = t.keyCode,
- f = u._currentTag,
- o = u._current,
- l = u.input.val(),
- a = i.support.isRtl(u.wrapper),
- c = u.popup.visible();
- if (e === r.DOWN) {
- if (t.preventDefault(), !c) {
- u.open();
- return
- }
- o = o ? h(o[0], it) : s(u.ul[0]);
- o && u.current(n(o))
- } else if (e === r.UP) c && (o = o ? h(o[0], rt) : lt(u.ul[0]), u.current(n(o)), u._current[0] || u.close()), t.preventDefault();
- else if (e === r.LEFT && !a || e === r.RIGHT && a) l || (f = f ? f.prev() : n(u.tagList[0].lastChild), f[0] && u.currentTag(f));
- else if (e === r.RIGHT && !a || e === r.LEFT && a) !l && f && (f = f.next(), u.currentTag(f[0] ? f : null));
- else if (e === r.ENTER && c) {
- if (o) {
- if (u.trigger(w, {
- item: o
- })) {
- u._close();
- return
- }
- u._select(o)
- }
- u._change();
- u._close();
- t.preventDefault()
- } else e === r.ESC ? (c ? t.preventDefault() : u.currentTag(null), u.close()) : e === r.HOME ? c ? u.current(s(u.ul[0])) : l || (f = u.tagList[0].firstChild, f && u.currentTag(n(f))) : e === r.END ? c ? u.current(lt(u.ul[0])) : l || (f = u.tagList[0].lastChild, f && u.currentTag(n(f))) : e !== r.DELETE && e !== r.BACKSPACE || l ? (clearTimeout(u._typing), setTimeout(function() {
- u._scale()
- }), u._search()) : (e !== r.BACKSPACE || f || (f = n(u.tagList[0].lastChild)), f && f[0] && (u._unselect(f), u._change(), u._close()))
- },
- _hideBusy: function() {
- var n = this;
- clearTimeout(n._busy);
- n.input.attr("aria-busy", !1);
- n._loading.addClass(b);
- n._busy = null
- },
- _showBusy: function() {
- var n = this;
- n._busy || (n._busy = setTimeout(function() {
- n.input.attr("aria-busy", !0);
- n._loading.removeClass(b)
- }, 100))
- },
- _placeholder: function(n) {
- var i = this,
- r = i.input,
- u = g();
- n === t ? (n = !1, r[0] !== u && (n = !i._dataItems[0]), i.wrapper.removeClass(l)) : i.wrapper.addClass(l);
- i._prev = "";
- r.toggleClass("k-readonly", n).val(n ? i.options.placeholder : "");
- r[0] === u && f.selectText(r[0], 0, 0);
- i._scale()
- },
- _scale: function() {
- var n = this,
- r = n.wrapper,
- u = r.width(),
- t = n._span.text(n.input.val()),
- i;
- r.is(":visible") ? i = t.width() + 25 : (t.appendTo(document.documentElement), u = i = t.width() + 25, t.appendTo(r));
- n.input.width(i > u ? u : i)
- },
- _option: function(n, r) {
- var f = "<option",
- e = this._text(n),
- u = this._value(n);
- return u !== t && (u += "", u.indexOf('"') !== -1 && (u = u.replace(kt, """)), f += ' value="' + u + '"'), r && (f += ' selected="selected"'), f += ">", e !== t && (f += i.htmlEncode(e)), f + "<\/option>"
- },
- _render: function(n) {
- for (var t = this, r = n.length, c = t.itemTemplate, e = t._dataItems.slice(0), o = 0, i = 0, s = "", h = "", u, f; i < r; i++) u = n[i], f = t._selected(e, u), h += c(u, i, f), s += t._option(u, f), f || (o += 1);
- if (r = e.length, r)
- for (i = 0; i < r; i++) s += t._option(e[i], !0);
- return t.ul[0].innerHTML = h, t.element.html(s), t._visibleItems = o, o
- },
- _selected: function(n, i) {
- var o = this,
- s = o._text,
- h = o._value,
- f = h(i),
- c = n.length,
- e = !1,
- r, u = 0;
- for (f === t && (f = s(i)); u < c; u++)
- if (i = n[u], r = h(i), r === t && (r = s(i)), r !== t && r === f) {
- e = !0;
- break
- }
- return e && n.splice(u, 1), e
- },
- _search: function() {
- var n = this;
- n._typing = setTimeout(function() {
- var t = n.input.val();
- n._prev !== t && (n._prev = t, n.search(t))
- }, n.options.delay)
- },
- _allowSelection: function() {
- var n = this.options.maxSelectedItems;
- return n === null || n > this._values.length
- },
- _select: function(n) {
- var t = this,
- u = t._values,
- r, i;
- t._allowSelection() && (isNaN(n) ? i = n.hide().data("idx") : (i = n, t.ul[0].children[i].style.display = "none"), t.element[0].children[i].selected = !0, r = t.dataSource.view()[i], t.tagList.append(t.tagTemplate(r)), t._dataItems.push(r), u.push(t._dataValue(r)), t._visibleItems -= 1, t.currentTag(null), t._placeholder(), t._height(t._visibleItems), t._state === p && (t._state = y))
- },
- _unselect: function(t) {
- var i = this,
- r = t.index(),
- o, u, f, e, s;
- if (t.remove(), i.currentTag(null), i._values.splice(r, 1), o = i._dataItems.splice(r, 1)[0], u = i._dataValue(o), r = i._index(u), r !== -1) n(i.ul[0].children[r]).show(), i.element[0].children[r].selected = !1, i._visibleItems += 1, i._height(i._visibleItems);
- else
- for (r = i.dataSource.view().length, f = i.element[0].children, s = f.length; r < s; r++)
- if (e = f[r], e.value == u) {
- e.selected = !1;
- break
- }
- i._placeholder()
- },
- _template: function() {
- var t = this,
- n = t.options,
- r = n.itemTemplate,
- u = n.tagTemplate,
- e = n.dataSource,
- f;
- t.element[0].length && !e && (n.dataTextField = n.dataTextField || "text", n.dataValueField = n.dataValueField || "value");
- f = i.template("#:" + i.expr(n.dataTextField, "data") + "#", {
- useWithBlock: !1
- });
- r = r ? i.template(r) : f;
- u = u ? i.template(u) : f;
- t.itemTemplate = function(n, t, i) {
- return '<li tabindex="-1" role="option" data-idx="' + t + '" unselectable="on" class="k-item"' + (i ? yt : "") + ">" + r(n) + "<\/li>"
- };
- t.tagTemplate = function(n) {
- return '<li class="k-button" unselectable="on"><span unselectable="on">' + u(n) + '<\/span><span unselectable="on" class="k-icon k-delete">delete<\/span><\/li>'
- }
- },
- _input: function() {
- var t = this,
- r = t.element[0].accessKey,
- i = t._innerWrapper.children("input.k-input");
- i[0] || (i = n('<input class="k-input" style="width: 25px" />').appendTo(t._innerWrapper));
- t.element.removeAttr("accesskey");
- t._focused = t.input = i.attr({
- accesskey: r,
- role: "listbox",
- "aria-expanded": !1
- })
- },
- _tagList: function() {
- var t = this,
- i = t._innerWrapper.children("ul");
- i[0] || (i = n('<ul role="listbox" unselectable="on" class="k-reset"/>').appendTo(t._innerWrapper));
- t.tagList = i
- },
- _loader: function() {
- this._loading = n('<span class="k-icon k-loading ' + b + '"><\/span>').insertAfter(this.input)
- },
- _textContainer: function() {
- var t = i.getComputedStyles(this.input[0], dt);
- t.position = "absolute";
- t.visibility = "hidden";
- t.top = -3333;
- t.left = -3333;
- this._span = n("<span/>").css(t).appendTo(this.wrapper)
- },
- _wrapper: function() {
- var r = this,
- t = r.element,
- i = t.parent("span.k-multiselect");
- i[0] || (i = t.wrap('<div class="k-widget k-multiselect k-header" unselectable="on" />').parent(), i[0].style.cssText = t[0].style.cssText, n('<div class="k-multiselect-wrap k-floatwrap" unselectable="on" />').insertBefore(t));
- r.wrapper = i.addClass(t[0].className).css("display", "");
- r._innerWrapper = n(i[0].firstChild)
- }
- });
- d.plugin(gt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "columnmenu",
- name: "Column Menu",
- category: "framework",
- depends: ["popup", "filtermenu", "menu"],
- advanced: !0
- }),
- function(n, t) {
- function g(t) {
- return n.trim(t).replace(/ /gi, "")
- }
- var i = window.kendo,
- a = i.ui,
- e = n.proxy,
- d = n.extend,
- s = n.grep,
- v = n.map,
- h = n.inArray,
- u = "k-state-selected",
- c = "asc",
- y = "desc",
- p = "change",
- w = "init",
- o = "select",
- l = "kendoPopup",
- b = "kendoFilterMenu",
- k = "kendoMenu",
- r = ".kendoColumnMenu",
- f = a.Widget,
- nt = f.extend({
- init: function(t, u) {
- var o = this,
- s;
- f.fn.init.call(o, t, u);
- t = o.element;
- u = o.options;
- o.owner = u.owner;
- o.dataSource = u.dataSource;
- o.field = t.attr(i.attr("field"));
- s = t.find(".k-header-column-menu");
- s[0] || (s = t.addClass("k-with-icon").prepend('<a class="k-header-column-menu" href="#"><span class="k-icon k-i-arrowhead-s"/><\/a>').find(".k-header-column-menu"));
- o.link = s.attr("tabindex", -1).on("click" + r, e(o._click, o));
- o.wrapper = n('<div class="k-column-menu"/>')
- },
- _init: function() {
- var n = this;
- n.pane = n.options.pane;
- n.pane && (n._isMobile = !0);
- n._isMobile ? n._createMobileMenu() : n._createMenu();
- n._sort();
- n._columns();
- n._filter();
- n.trigger(w, {
- field: n.field,
- container: n.wrapper
- })
- },
- events: [w],
- options: {
- name: "ColumnMenu",
- messages: {
- sortAscending: "Sort Ascending",
- sortDescending: "Sort Descending",
- filter: "Filter",
- columns: "Columns",
- done: "Done",
- settings: "Column Settings"
- },
- filter: "",
- columns: !0,
- sortable: !0,
- filterable: !0,
- animations: {
- left: "slide"
- }
- },
- _createMenu: function() {
- var n = this,
- t = n.options;
- n.wrapper.html(i.template(tt)({
- ns: i.ns,
- messages: t.messages,
- sortable: t.sortable,
- filterable: t.filterable,
- columns: n._ownerColumns(),
- showColumns: t.columns
- }));
- n.popup = n.wrapper[l]({
- anchor: n.link,
- open: e(n._open, n),
- activate: e(n._activate, n),
- close: n.options.closeCallback
- }).data(l);
- n.menu = n.wrapper.children()[k]({
- orientation: "vertical",
- closeOnClick: !1
- }).data(k)
- },
- _createMobileMenu: function() {
- var n = this,
- t = n.options,
- r = i.template(it)({
- ns: i.ns,
- field: n.field,
- messages: t.messages,
- sortable: t.sortable,
- filterable: t.filterable,
- columns: n._ownerColumns(),
- showColumns: t.columns
- });
- n.view = n.pane.append(r);
- n.wrapper = n.view.element.find(".k-column-menu");
- n.menu = new rt(n.wrapper.children(), {
- pane: n.pane
- });
- n.view.element.on("click", ".k-done", function(t) {
- n.close();
- t.preventDefault()
- })
- },
- destroy: function() {
- var n = this;
- f.fn.destroy.call(n);
- n.filterMenu && n.filterMenu.destroy();
- n._refreshHandler && n.dataSource.unbind(p, n._refreshHandler);
- n.options.columns && n.owner && (n.owner.unbind("columnShow", n._updateColumnsMenuHandler), n.owner.unbind("columnHide", n._updateColumnsMenuHandler));
- n.menu && (n.menu.element.off(r), n.menu.destroy());
- n.wrapper.off(r);
- n.popup && n.popup.destroy();
- n.view && n.view.purge();
- n.link.off(r)
- },
- close: function() {
- this.menu.close();
- this.popup && (this.popup.close(), this.popup.element.off("keydown" + r))
- },
- _click: function(n) {
- n.preventDefault();
- n.stopPropagation();
- var t = this.options;
- t.filter && this.element.is(!t.filter) || (this.popup || this.pane || this._init(), this._isMobile ? this.pane.navigate(this.view, this.options.animations.left) : this.popup.toggle())
- },
- _open: function() {
- var t = this;
- n(".k-column-menu").not(t.wrapper).each(function() {
- n(this).data(l).close()
- });
- t.popup.element.on("keydown" + r, function(n) {
- n.keyCode == i.keys.ESC && t.close()
- })
- },
- _activate: function() {
- this.menu.element.focus()
- },
- _ownerColumns: function() {
- var n = this.owner.columns,
- t = s(n, function(n) {
- var t = !0,
- i = g(n.title || "");
- return n.menu !== !1 && (n.field || i.length) || (t = !1), t
- });
- return v(t, function(t) {
- return {
- originalField: t.field,
- field: t.field || t.title,
- title: t.title || t.field,
- hidden: t.hidden,
- index: h(t, n)
- }
- })
- },
- _sort: function() {
- var t = this;
- t.options.sortable && (t.refresh(), t._refreshHandler = e(t.refresh, t), t.dataSource.bind(p, t._refreshHandler), t.menu.bind(o, function(i) {
- var f = n(i.item),
- r;
- (f.hasClass("k-sort-asc") ? r = c : f.hasClass("k-sort-desc") && (r = y), r) && (f.parent().find(".k-sort-" + (r == c ? y : c)).removeClass(u), t._sortDataSource(f, r), t.close())
- }))
- },
- _sortDataSource: function(n, i) {
- var f = this,
- o = f.options.sortable,
- s = f.dataSource,
- e, h, r = s.sort() || [];
- if (n.hasClass(u) && o && o.allowUnsort !== !1 ? (n.removeClass(u), i = t) : n.addClass(u), o === !0 || o.mode === "single") r = [{
- field: f.field,
- dir: i
- }];
- else {
- for (e = 0, h = r.length; e < h; e++)
- if (r[e].field === f.field) {
- r.splice(e, 1);
- break
- }
- r.push({
- field: f.field,
- dir: i
- })
- }
- s.sort(r)
- },
- _columns: function() {
- var t = this;
- t.options.columns && (t._updateColumnsMenu(), t._updateColumnsMenuHandler = e(t._updateColumnsMenu, t), t.owner.bind(["columnHide", "columnShow"], t._updateColumnsMenuHandler), t.menu.bind(o, function(r) {
- var c = n(r.item),
- u, f, e, l = t.owner.columns,
- o;
- (t._isMobile && r.preventDefault(), c.parent().closest("li.k-columns-item")[0]) && ((u = c.find(":checkbox"), u.attr("disabled")) || (o = u.attr(i.attr("field")), e = s(l, function(n) {
- return n.field == o || n.title == o
- })[0], f = h(e, l), e.hidden === !0 ? t.owner.showColumn(f) : t.owner.hideColumn(f)))
- }))
- },
- _updateColumnsMenu: function() {
- var r = i.attr("field"),
- t = s(this._ownerColumns(), function(n) {
- return !n.hidden
- }),
- u = s(t, function(n) {
- return n.originalField
- }).length;
- t = v(t, function(n) {
- return n.field
- });
- this.wrapper.find(".k-columns-item input[" + r + "]").prop("checked", !1).filter(function() {
- return h(n(this).attr(r), t) > -1
- }).prop("checked", !0).prop("disabled", u == 1)
- },
- _filter: function() {
- var t = this,
- i = t.options;
- i.filterable !== !1 && (t.filterMenu = t.wrapper.find(".k-filterable")[b](d(!0, {}, {
- appendToElement: !0,
- dataSource: i.dataSource,
- values: i.values,
- field: t.field
- }, i.filterable)).data(b), t._isMobile && t.menu.bind(o, function(i) {
- var r = n(i.item);
- r.hasClass("k-filter-item") && t.pane.navigate(t.filterMenu.view, t.options.animations.left)
- }))
- },
- refresh: function() {
- var n = this,
- r = n.options.dataSource.sort() || [],
- i, e = n.field,
- t, f;
- for (n.wrapper.find(".k-sort-asc, .k-sort-desc").removeClass(u), t = 0, f = r.length; t < f; t++) i = r[t], e == i.field && n.wrapper.find(".k-sort-" + i.dir).addClass(u)
- }
- }),
- tt = '<ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"><\/span>${messages.sortAscending}<\/span><\/li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"><\/span>${messages.sortDescending}<\/span><\/li>#if(showColumns || filterable){#<li class="k-separator"><\/li>#}##}##if(showColumns){#<li class="k-item k-columns-item"><span class="k-link"><span class="k-sprite k-i-columns"><\/span>${messages.columns}<\/span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li><input type="checkbox" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#<\/li>#}#<\/ul><\/li>#if(filterable){#<li class="k-separator"><\/li>#}##}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link"><span class="k-sprite k-filter"><\/span>${messages.filter}<\/span><ul><li><div class="k-filterable"><\/div><\/li><\/ul><\/li>#}#<\/ul>',
- it = '<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-column-menu"><div data-#=ns#role="header" class="k-header">${messages.settings}<button class="k-button k-done">#=messages.done#<\/button><\/div><div class="k-column-menu k-mobile-list"><ul><li><span class="k-link">${field}<\/span><ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"><\/span>${messages.sortAscending}<\/span><\/li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"><\/span>${messages.sortDescending}<\/span><\/li>#}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link k-filterable"><span class="k-sprite k-filter"><\/span>${messages.filter}<\/span><\/li>#}#<\/ul><\/li>#if(showColumns){#<li class="k-columns-item"><span class="k-link">${messages.columns}<\/span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li class="k-item"><label class="k-label"><input type="checkbox" class="k-check" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#<\/label><\/li>#}#<\/ul><\/li>#}#<\/ul><\/div><\/div>',
- rt = f.extend({
- init: function(n, t) {
- f.fn.init.call(this, n, t);
- this.element.on("click" + r, "li:not(.k-separator)", "_click")
- },
- events: [o],
- _click: function(n) {
- this.trigger(o, {
- item: n.currentTarget
- }) && n.preventDefault()
- },
- close: function() {
- this.options.pane.navigate("")
- },
- destroy: function() {
- f.fn.destroy.call(this);
- this.element.off(r)
- }
- });
- a.plugin(nt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "grid",
- name: "Grid",
- category: "web",
- description: "The Grid widget displays tabular data and offers rich support for interacting with data,including paging, sorting, grouping, and selection.",
- depends: ["data"],
- features: [{
- id: "grid-editing",
- name: "Editing",
- description: "Support for record editing",
- depends: ["editable", "window"]
- }, {
- id: "grid-filtering",
- name: "Filtering",
- description: "Support for record filtering",
- depends: ["filtermenu"]
- }, {
- id: "grid-columnmenu",
- name: "Column menu",
- description: "Support for header column menu",
- depends: ["columnmenu"]
- }, {
- id: "grid-grouping",
- name: "Grouping",
- description: "Support for grid grouping",
- depends: ["groupable"]
- }, {
- id: "grid-paging",
- name: "Paging",
- description: "Suppot for grid paging",
- depends: ["pager"]
- }, {
- id: "grid-selection",
- name: "Selection",
- description: "Support for row selection",
- depends: ["selectable"]
- }, {
- id: "grid-sorting",
- name: "Sorting",
- description: "Support for grid sorting",
- depends: ["sortable"]
- }, {
- id: "grid-column-reorder",
- name: "Column reordering",
- description: "Support for column reordering",
- depends: ["reorderable"]
- }, {
- id: "grid-column-resize",
- name: "Column resizing",
- description: "Support for column resizing",
- depends: ["resizable"]
- }, {
- id: "grid-mobile",
- name: "Grid adaptive rendering",
- description: "Support for adaptive rendering",
- depends: ["mobile.actionsheet", "mobile.pane"]
- }]
- }),
- function(n, t) {
- function pt(n) {
- return new Array(n + 1).join('<td class="k-group-cell"> <\/td>')
- }
- function lt(n) {
- var t, i = " ";
- if (n) {
- if (typeof n === c) return n;
- for (t in n) i += t + '="' + n[t] + '"'
- }
- return i
- }
- function pr(t) {
- var i = 0;
- return n("> .k-grouping-header, > .k-grid-toolbar", t).each(function() {
- i += this.offsetHeight
- }), i
- }
- function ui(t, i) {
- n("th, th .k-grid-filter, th .k-link", t).add(document.body).css("cursor", i)
- }
- function fi(n) {
- var t, i, r = {},
- u = {};
- if (!at(n))
- for (k(n) || (n = [n]), t = 0, i = n.length; t < i; t++) r[n[t].aggregate] = 0, u[n[t].field] = r;
- return u
- }
- function et(n, t, i) {
- var r = n.eq(t),
- u = n.eq(i);
- r[t > i ? "insertBefore" : "insertAfter"](u)
- }
- function wr(n, t, i) {
- var e, c, u, s;
- for (i = k(i) ? i : [i], e = 0, c = i.length; e < c; e++)
- if (u = i[e], o(u) && u.click) {
- s = u.name || u.text;
- t.on(h + r, "a.k-grid-" + (s || "").replace(/\s/g, ""), {
- commandName: s
- }, f(u.click, n))
- }
- }
- function tt(n) {
- return b(n, function(n) {
- return !n.hidden
- })
- }
- function ot(n) {
- n = n || {};
- var t = n.style;
- return t ? (t = t.replace(/((.*)?display)(.*)?:([^;]*)/i, "$1:none"), t === n.style && (t = t.replace(/(.*)?/i, "display:none;$1"))) : t = "display:none", u({}, n, {
- style: t
- })
- }
- function ei(n) {
- n = n || {};
- var t = n.style;
- return t && (n.style = t.replace(/(display\s*:\s*none\s*;?)*/ig, "")), n
- }
- function ir(t, r, u, f) {
- var o = t.find(">colgroup"),
- s, h = bt(r, function(n) {
- return (s = n.width, s && parseInt(s, 10) !== 0) ? i.format('<col style="width:{0}"/>', typeof s === c ? s : s + "px") : "<col />"
- });
- (u || o.find(".k-hierarchy-col").length) && h.splice(0, 0, '<col class="k-hierarchy-col" />');
- o.length && o.remove();
- o = n(new Array(f + 1).join('<col class="k-group-col">') + h.join(""));
- o.is("colgroup") || (o = n("<colgroup/>").append(o));
- t.prepend(o);
- e.msie && e.version == 8 && (t.css("display", "inline-table"), window.setTimeout(function() {
- t.css("display", "")
- }, 1))
- }
- function rr(n) {
- for (var r = {}, i, t = 0, u = n.length; t < u; t++) i = n[t], r[i.value] = i.text;
- return r
- }
- function br(n, t, r) {
- var f = r && r.length && o(r[0]) && "value" in r[0],
- u = f ? rr(r)[n] : n;
- return u = u != null ? u : "", t ? i.format(t, u) : u
- }
- function st(n, t, i) {
- for (var u = 0, f, r = n[u]; r;) {
- if (f = i ? !0 : r.style.display !== "none", f && !ar.test(r.className) && --t < 0) {
- r.style.display = i ? "" : "none";
- break
- }
- r = n[++u]
- }
- }
- function oi(n, t) {
- var r, u, i;
- if (typeof n === c && n === t || o(n) && n.name === t) return n;
- if (k(n))
- for (r = 0, u = n.length; r < u; r++)
- if (i = n[r], typeof i === c && i === t || i.name === t) return i;
- return null
- }
- function l(t, i) {
- var u = e.msie,
- r, f, o;
- if (i === !0) {
- if (t = n(t), r = u && t.parent().is(".k-grid-content,.k-grid-header-wrap"), r && (f = t.parent().scrollTop(), o = t.parent().scrollLeft()), u) try {
- t[0].setActive()
- } catch (s) {
- t[0].focus()
- } else t[0].focus();
- r && (t.parent().scrollTop(f), t.parent().scrollLeft(o))
- } else n(t).one("focusin", function(n) {
- n.preventDefault()
- }).focus()
- }
- function dr(t) {
- var r = n(t.currentTarget),
- f = r.is("th"),
- u = r.closest("table")[0];
- i.support.touch || (u === this.table[0] || u === this.thead.parent()[0]) && (this.current(r), (f || !n(t.target).is(":button,a,:input,a>.k-icon,textarea,span.k-icon,span.k-link,.k-input,.k-multiselect-wrap")) && setTimeout(function() {
- yr && n(i._activeElement()).hasClass("k-widget") || l(u, !0)
- }), f && t.preventDefault())
- }
- var i = window.kendo,
- it = i.ui,
- ur = i.data.DataSource,
- fr = it.Groupable,
- er = i.support.tbodyInnerHtml,
- rt = i._activeElement,
- w = it.Widget,
- s = i.keys,
- o = n.isPlainObject,
- u = n.extend,
- bt = n.map,
- b = n.grep,
- k = n.isArray,
- d = n.inArray,
- f = n.proxy,
- or = i.isFunction,
- at = n.isEmptyObject,
- y = Math,
- kt = "progress",
- dt = "error",
- g = ":not(.k-group-cell):not(.k-hierarchy-cell):visible",
- sr = "tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)",
- ut = "tr:not(.k-footer-template):visible",
- v = ":not(.k-group-cell):not(.k-hierarchy-cell):visible",
- ft = ut + ":first>" + v + ":first",
- vt = "th.k-header:not(.k-group-cell,.k-hierarchy-cell)",
- r = ".kendoGrid",
- yt = "edit",
- gt = "save",
- si = "remove",
- ni = "detailInit",
- hi = "filterMenuInit",
- ci = "columnMenuInit",
- a = "change",
- li = "columnHide",
- ai = "columnShow",
- vi = "saveChanges",
- yi = "dataBound",
- pi = "detailExpand",
- wi = "detailCollapse",
- ht = "k-state-focused",
- bi = "k-state-selected",
- ki = "columnResize",
- di = "columnReorder",
- h = "click",
- ti = "height",
- nt = "tabIndex",
- ct = "function",
- c = "string",
- gi = "Are you sure you want to delete this record?",
- hr = "Delete",
- cr = "Cancel",
- lr = /(\}|\#)/ig,
- ii = /#/ig,
- nr = "[\\x20\\t\\r\\n\\f]",
- ar = new RegExp("(^|" + nr + ")(k-group-cell|k-hierarchy-cell)(" + nr + "|$)"),
- vr = '<a class="k-button k-button-icontext #=className#" #=attr# href="\\#"><span class="#=iconClass# #=imageClass#"><\/span>#=text#<\/a>',
- p = !1,
- e = i.support.browser,
- ri = e.msie && e.version == 7,
- yr = e.msie && e.version == 8,
- tr = w.extend({
- init: function(n, t) {
- var i = this;
- w.fn.init.call(i, n, t);
- i._refreshHandler = f(i.refresh, i);
- i.setDataSource(t.dataSource);
- i.wrap()
- },
- setDataSource: function(n) {
- var t = this;
- t.dataSource && t.dataSource.unbind(a, t._refreshHandler);
- t.dataSource = n;
- t.dataSource.bind(a, t._refreshHandler)
- },
- options: {
- name: "VirtualScrollable",
- itemHeight: n.noop
- },
- destroy: function() {
- var n = this;
- w.fn.destroy.call(n);
- n.dataSource.unbind(a, n._refreshHandler);
- n.wrapper.add(n.verticalScrollbar).off(r);
- n.drag && n.drag.destroy()
- },
- wrap: function() {
- var t = this,
- o = i.support.scrollbar() + 1,
- u = t.element,
- e;
- u.css({
- width: "auto",
- overflow: "hidden"
- }).css(p ? "padding-left" : "padding-right", o);
- t.content = u.children().first();
- e = t.wrapper = t.content.wrap('<div class="k-virtual-scrollable-wrap"/>').parent().bind("DOMMouseScroll" + r + " mousewheel" + r, f(t._wheelScroll, t));
- i.support.kineticScrollNeeded && (t.drag = new i.UserEvents(t.wrapper, {
- global: !0,
- move: function(n) {
- t.verticalScrollbar.scrollTop(t.verticalScrollbar.scrollTop() - n.y.delta);
- e.scrollLeft(e.scrollLeft() - n.x.delta);
- n.preventDefault()
- }
- }));
- t.verticalScrollbar = n('<div class="k-scrollbar k-scrollbar-vertical" />').css({
- width: o
- }).appendTo(u).bind("scroll" + r, f(t._scroll, t))
- },
- _wheelScroll: function(n) {
- var u = this,
- e = u.verticalScrollbar.scrollTop(),
- i = n.originalEvent,
- f = i.wheelDeltaY,
- r;
- i.wheelDelta ? (f === t || f) && (r = i.wheelDelta) : i.detail && i.axis === i.VERTICAL_AXIS && (r = -i.detail * 10);
- r && (n.preventDefault(), u.verticalScrollbar.scrollTop(e + -r))
- },
- _scroll: function(n) {
- var t = this,
- i = n.currentTarget.scrollTop,
- f = t.dataSource,
- r = t.itemHeight,
- e = f.skip() || 0,
- o = t._rangeStart || e,
- s = t.element.innerHeight(),
- h = !!(t._scrollbarTop && t._scrollbarTop > i),
- u = y.max(y.floor(i / r), 0),
- c = y.max(u + y.floor(s / r), 0);
- t._scrollTop = i - o * r;
- t._scrollbarTop = i;
- t._fetch(u, c, h) || (t.wrapper[0].scrollTop = t._scrollTop)
- },
- _fetch: function(n, t, i) {
- var u = this,
- e = u.dataSource,
- h = u.itemHeight,
- r = e.take(),
- f = u._rangeStart || e.skip() || 0,
- o = y.floor(n / r) * r,
- s = !1,
- c = .33;
- return n < f ? (s = !0, f = y.max(0, t - r), u._scrollTop = (n - f) * h, u._page(f, r)) : t >= f + r && !i ? (s = !0, f = n, u._scrollTop = h, u._page(f, r)) : u._fetching || (n < o + r - r * c && n > r && e.prefetch(o - r, r), t > o + r * c && e.prefetch(o + r, r)), s
- },
- _page: function(n, t) {
- var r = this,
- u = r.dataSource;
- clearTimeout(r._timeout);
- r._fetching = !0;
- r._rangeStart = n;
- u.inRange(n, t) ? u.range(n, t) : (i.ui.progress(r.wrapper.parent(), !0), r._timeout = setTimeout(function() {
- u.range(n, t)
- }, 100))
- },
- refresh: function() {
- var n = this,
- u = "",
- t = 25e4,
- o = n.dataSource,
- c = n._rangeStart,
- l = i.support.kineticScrollNeeded ? 0 : i.support.scrollbar(),
- f = n.wrapper[0],
- r, e, s, h;
- for (i.ui.progress(n.wrapper.parent(), !1), clearTimeout(n._timeout), s = n.itemHeight = n.options.itemHeight() || 0, h = f.scrollWidth > f.offsetWidth ? l : 0, r = o.total() * s + h, e = 0; e < y.floor(r / t); e++) u += '<div style="width:1px;height:' + t + 'px"><\/div>';
- r % t && (u += '<div style="width:1px;height:' + r % t + 'px"><\/div>');
- n.verticalScrollbar.html(u);
- f.scrollTop = n._scrollTop;
- n.drag && n.drag.cancel();
- c && !n._fetching && (n._rangeStart = o.skip());
- n._fetching = !1
- }
- }),
- wt = {
- create: {
- text: "Add new record",
- imageClass: "k-add",
- className: "k-grid-add",
- iconClass: "k-icon"
- },
- cancel: {
- text: "Cancel changes",
- imageClass: "k-cancel",
- className: "k-grid-cancel-changes",
- iconClass: "k-icon"
- },
- save: {
- text: "Save changes",
- imageClass: "k-update",
- className: "k-grid-save-changes",
- iconClass: "k-icon"
- },
- destroy: {
- text: "Delete",
- imageClass: "k-delete",
- className: "k-grid-delete",
- iconClass: "k-icon"
- },
- edit: {
- text: "Edit",
- imageClass: "k-edit",
- className: "k-grid-edit",
- iconClass: "k-icon"
- },
- update: {
- text: "Update",
- imageClass: "k-update",
- className: "k-grid-update",
- iconClass: "k-icon"
- },
- canceledit: {
- text: "Cancel",
- imageClass: "k-cancel",
- className: "k-grid-cancel",
- iconClass: "k-icon"
- }
- },
- kr = w.extend({
- init: function(n, t) {
- var r = this;
- t = k(t) ? {
- dataSource: t
- } : t;
- w.fn.init.call(r, n, t);
- p = i.support.isRtl(n);
- r._element();
- r._aria();
- r._columns(r.options.columns);
- r._dataSource();
- r._tbody();
- r._pageable();
- r._thead();
- r._groupable();
- r._toolbar();
- r._setContentHeight();
- r._templates();
- r._navigatable();
- r._selectable();
- r._details();
- r._editable();
- r._attachCustomCommandsEvent();
- r.options.autoBind ? r.dataSource.fetch() : r._footer();
- i.notify(r)
- },
- events: [a, "dataBinding", "cancel", yi, pi, wi, ni, hi, ci, yt, gt, si, vi, ki, di, ai, li],
- setDataSource: function(n) {
- var t = this;
- t.options.dataSource = n;
- t._dataSource();
- t._pageable();
- t.options.groupable && t._groupable();
- t._thead();
- t.virtualScrollable && t.virtualScrollable.setDataSource(t.options.dataSource);
- t.options.autoBind && n.fetch()
- },
- options: {
- name: "Grid",
- columns: [],
- toolbar: null,
- autoBind: !0,
- filterable: !1,
- scrollable: !0,
- sortable: !1,
- selectable: !1,
- navigatable: !1,
- pageable: !1,
- editable: !1,
- groupable: !1,
- rowTemplate: "",
- altRowTemplate: "",
- dataSource: {},
- height: null,
- resizable: !1,
- reorderable: !1,
- columnMenu: !1,
- detailTemplate: null,
- columnResizeHandleWidth: 3,
- mobile: ""
- },
- destroy: function() {
- var t = this,
- u;
- w.fn.destroy.call(t);
- t.pager && t.pager.destroy();
- t.groupable && t.groupable.destroy();
- t.options.reorderable && t.wrapper.data("kendoReorderable").destroy();
- t.selectable && t.selectable.destroy();
- t.resizable && (t.resizable.destroy(), t._resizeUserEvents && (t._resizeHandleDocumentClickHandler && n(document).off("click", t._resizeHandleDocumentClickHandler), t._resizeUserEvents.destroy()));
- t.virtualScrollable && t.virtualScrollable.destroy();
- t._destroyColumnAttachments();
- t._destroyEditable();
- t.dataSource.unbind(a, t._refreshHandler).unbind(kt, t._progressHandler).unbind(dt, t._errorHandler);
- u = t.element.add(t.wrapper).add(t.table).add(t.thead).add(t.wrapper.find(">.k-grid-toolbar"));
- t.content && (u = u.add(t.content).add(t.content.find(">.k-virtual-scrollable-wrap")));
- t.pane && t.pane.destroy();
- u.off(r);
- i.destroy(t.wrapper)
- },
- setOptions: function(n) {
- var t = this;
- w.fn.setOptions.call(this, n);
- t._templates()
- },
- items: function() {
- return this.tbody.children(":not(.k-grouping-row,.k-detail-row,.k-group-footer)")
- },
- _destroyColumnAttachments: function() {
- var t = this;
- t.resizeHandle = null;
- t.thead.find("th").each(function() {
- var t = n(this),
- i = t.data("kendoFilterMenu"),
- r = t.data("kendoSortable"),
- u = t.data("kendoColumnMenu");
- i && i.destroy();
- r && r.destroy();
- u && u.destroy()
- })
- },
- _attachCustomCommandsEvent: function() {
- for (var t = this, r = t.columns || [], i, n = 0, u = r.length; n < u; n++) i = r[n].command, i && wr(t, t.wrapper, i)
- },
- _aria: function() {
- var n = this.element.attr("id") || "aria";
- n && (this._cellId = n + "_active_cell")
- },
- _element: function() {
- var t = this,
- i = t.element;
- i.is("table") || (i = t.options.scrollable ? t.element.find("> .k-grid-content > table") : t.element.children("table"), i.length || (i = n("<table />").appendTo(t.element)));
- ri && i.attr("cellspacing", 0);
- t.table = i.attr("role", t._hasDetails() ? "treegrid" : "grid");
- t._wrapper()
- },
- _createResizeHandle: function(t, i) {
- var u = this,
- s = u.options.columnResizeHandleWidth,
- h = u.options.scrollable,
- f = u.resizeHandle,
- o;
- if (f || (f = u.resizeHandle = n('<div class="k-resize-handle"><div class="k-resize-handle-inner"><\/div><\/div>'), t.append(f)), p) {
- var r = i.closest(".k-grid-header-wrap"),
- c = e.msie ? r.scrollLeft() : 0,
- l = e.webkit ? r[0].scrollWidth - r[0].offsetWidth - r.scrollLeft() : 0,
- a = e.mozilla ? r[0].scrollWidth - r[0].offsetWidth - (r[0].scrollWidth - r[0].offsetWidth - r.scrollLeft()) : 0;
- o = i.position().left - l + a - c
- } else o = i[0].offsetWidth, i.prevAll(":visible").each(function() {
- o += this.offsetWidth
- });
- f.css({
- top: h ? 0 : pr(u.wrapper),
- left: o - s,
- height: i.outerHeight(),
- width: s * 3
- }).data("th", i).show()
- },
- _positionColumnResizeHandle: function(t) {
- var i = this,
- u = i.resizeHandle,
- f = i.options.columnResizeHandleWidth;
- i.thead.on("mousemove" + r, "th:not(.k-group-cell,.k-hierarchy-cell)", function(r) {
- var e = n(this),
- o = r.clientX,
- s = n(window).scrollLeft(),
- h = e.offset().left + (p ? 0 : this.offsetWidth);
- o + s > h - f && o + s < h + f ? i._createResizeHandle(t, e) : u ? u.hide() : ui(i.wrapper, "")
- })
- },
- _resizeHandleDocumentClick: function(t) {
- n(t.target).closest(".k-column-active").length || (n(document).off(t), this._hideResizeHandle())
- },
- _hideResizeHandle: function() {
- this.resizeHandle && (this.resizeHandle.data("th").removeClass("k-column-active"), this.resizeHandle.hide())
- },
- _positionColumnResizeHandleTouch: function(t) {
- var r = this;
- r._resizeUserEvents = new i.UserEvents(r.thead, {
- filter: "th:not(.k-group-cell,.k-hierarchy-cell)",
- threshold: 10,
- hold: function(i) {
- var u = n(i.target);
- i.preventDefault();
- u.addClass("k-column-active");
- r._createResizeHandle(t, u);
- r._resizeHandleDocumentClickHandler || (r._resizeHandleDocumentClickHandler = f(r._resizeHandleDocumentClick, r));
- n(document).on("click", r._resizeHandleDocumentClickHandler)
- }
- })
- },
- _resizable: function() {
- var t = this,
- r = t.options,
- u, e, f, o, h = this._isMobile,
- s, i;
- r.resizable && (u = r.scrollable ? t.wrapper.find(".k-grid-header-wrap:first") : t.wrapper, h ? t._positionColumnResizeHandleTouch(u) : t._positionColumnResizeHandle(u), t.resizable = new it.Resizable(u, {
- handle: ".k-resize-handle",
- hint: function(i) {
- return n('<div class="k-grid-resize-indicator" />').css({
- height: i.data("th").outerHeight() + t.tbody.attr("clientHeight")
- })
- },
- start: function(u) {
- i = n(u.currentTarget).data("th");
- h && t._hideResizeHandle();
- var c = n.inArray(i[0], i.parent().children(":visible")),
- l = t.tbody.parent(),
- a = t.footer || n();
- ui(t.wrapper, "col-resize");
- s = r.scrollable ? t.thead.parent().find("col:eq(" + c + ")").add(l.children("colgroup").find("col:eq(" + c + ")")).add(a.find("colgroup").find("col:eq(" + c + ")")) : l.children("colgroup").find("col:eq(" + c + ")");
- e = u.x.location;
- f = i.outerWidth();
- o = t.tbody.outerWidth()
- },
- resize: function(i) {
- var u = p ? -1 : 1,
- h = f + i.x.location * u - e * u,
- c = t.footer || n();
- h > 10 && (s.css("width", h), r.scrollable && o && (t._footerWidth = o + i.x.location * u - e * u, t.tbody.parent().add(t.thead.parent()).add(c.find("table")).css("width", t._footerWidth)))
- },
- resizeend: function() {
- var n = i.outerWidth(),
- r;
- ui(t.wrapper, "");
- f != n && (r = t.columns[i.parent().find("th:not(.k-group-cell,.k-hierarchy-cell)").index(i)], r.width = n, t.trigger(ki, {
- column: r,
- oldWidth: f,
- newWidth: n
- }));
- t._hideResizeHandle();
- i = null
- }
- }))
- },
- _draggable: function() {
- var t = this;
- t.options.reorderable && (t._draggableInstance && t._draggableInstance.destroy(), t._draggableInstance = t.wrapper.kendoDraggable({
- group: i.guid(),
- filter: t.content ? ".k-grid-header:first " + vt : "table:first>.k-grid-header " + vt,
- drag: function() {
- t._hideResizeHandle()
- },
- hint: function(t) {
- return n('<div class="k-header k-drag-clue" />').css({
- width: t.width(),
- paddingLeft: t.css("paddingLeft"),
- paddingRight: t.css("paddingRight"),
- lineHeight: t.height() + "px",
- paddingTop: t.css("paddingTop"),
- paddingBottom: t.css("paddingBottom")
- }).html(t.attr(i.attr("title")) || t.attr(i.attr("field")) || t.text()).prepend('<span class="k-icon k-drag-status k-denied" />')
- }
- }).data("kendoDraggable"))
- },
- _reorderable: function() {
- var n = this;
- n.options.reorderable && n.wrapper.kendoReorderable({
- draggable: n._draggableInstance,
- change: function(t) {
- var r = d(n.columns[t.newIndex], n.columns),
- i = n.columns[t.oldIndex];
- n.trigger(di, {
- newIndex: r,
- oldIndex: d(i, n.columns),
- column: i
- });
- n.reorderColumn(r, i)
- }
- })
- },
- reorderColumn: function(n, t) {
- var i = this,
- r = d(t, i.columns),
- e = d(t, tt(i.columns)),
- o = d(i.columns[n], tt(i.columns)),
- s, u, h, f = i.footer || i.wrapper.find(".k-grid-footer");
- if (r !== n)
- for (i._hideResizeHandle(), i.columns.splice(r, 1), i.columns.splice(n, 0, t), i._templates(), et(i.thead.prev().find("col:not(.k-group-col,.k-hierarchy-col)"), e, o), i.options.scrollable && et(i.tbody.prev().find("col:not(.k-group-col,.k-hierarchy-col)"), e, o), et(i.thead.find(".k-header:not(.k-group-cell,.k-hierarchy-cell)"), r, n), f && f.length && (et(f.find(".k-grid-footer-wrap>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)"), e, o), et(f.find(".k-footer-template>td:not(.k-group-cell,.k-hierarchy-cell)"), r, n)), s = i.tbody.children(":not(.k-grouping-row,.k-detail-row)"), u = 0, h = s.length; u < h; u += 1) et(s.eq(u).find(">td:not(.k-group-cell,.k-hierarchy-cell)"), r, n)
- },
- cellIndex: function(t) {
- return n(t).parent().children("td:not(.k-group-cell,.k-hierarchy-cell)").index(t)
- },
- _modelForContainer: function(t) {
- t = n(t);
- t.is("tr") || this._editMode() === "popup" || (t = t.closest("tr"));
- var r = t.attr(i.attr("uid"));
- return this.dataSource.getByUid(r)
- },
- _editable: function() {
- var t = this,
- f = t.selectable && t.selectable.options.multiple,
- i = t.options.editable,
- e = function() {
- var i = rt(),
- r = t._editContainer;
- !r || n.contains(r[0], i) || r[0] === i || n(i).closest(".k-animation-container").length || t.editable.end() && t.closeCell()
- },
- u;
- if (i) {
- if (u = t._editMode(), u === "incell") {
- if (i.update !== !1) t.wrapper.on(h + r, "tr:not(.k-grouping-row) > td", function(i) {
- var r = n(this);
- r.hasClass("k-hierarchy-cell") || r.hasClass("k-detail-cell") || r.hasClass("k-group-cell") || r.hasClass("k-edit-cell") || r.has("a.k-grid-delete").length || r.has("button.k-grid-delete").length || r.closest("tbody")[0] !== t.tbody[0] || n(i.target).is(":input") || (t.editable ? t.editable.end() && (f && n(rt()).blur(), t.closeCell(), t.editCell(r)) : t.editCell(r))
- }).on("focusin" + r, function() {
- clearTimeout(t.timer);
- t.timer = null
- }).on("focusout" + r, function() {
- t.timer = setTimeout(e, 1)
- })
- } else if (i.update !== !1) t.wrapper.on(h + r, "tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit", function(i) {
- i.preventDefault();
- t.editRow(n(this).closest("tr"))
- });
- if (i.destroy !== !1) t.wrapper.on(h + r, "tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete", function(i) {
- i.preventDefault();
- i.stopPropagation();
- t.removeRow(n(this).closest("tr"))
- });
- else t.wrapper.on(h + r, "tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete", function(n) {
- n.stopPropagation();
- t._confirmation() || n.preventDefault()
- })
- }
- },
- editCell: function(t) {
- t = n(t);
- var i = this,
- r = i.columns[i.cellIndex(t)],
- u = i._modelForContainer(t);
- u && (!u.editable || u.editable(r.field)) && !r.command && r.field && (i._attachModelChange(u), i._editContainer = t, i.editable = t.addClass("k-edit-cell").kendoEditable({
- fields: {
- field: r.field,
- format: r.format,
- editor: r.editor,
- values: r.values
- },
- model: u,
- change: function(n) {
- i.trigger(gt, {
- values: n.values,
- container: t,
- model: u
- }) && n.preventDefault()
- }
- }).data("kendoEditable"), t.parent().addClass("k-grid-edit-row"), i.trigger(yt, {
- container: t,
- model: u
- }))
- },
- _destroyEditable: function() {
- var n = this,
- t = function() {
- n.editable && (n._detachModelChange(), n.editable.destroy(), n.editable = null, n._editContainer = null, n._destroyEditView())
- };
- n.editable && (n._editMode() !== "popup" || n._isMobile ? t() : n._editContainer.data("kendoWindow").bind("deactivate", t).close());
- n._actionSheet && (n._actionSheet.destroy(), n._actionSheet = null)
- },
- _destroyEditView: function() {
- this.editView && (this.editView.purge(), this.editView = null, this.pane.navigate(""))
- },
- _attachModelChange: function(n) {
- var t = this;
- t._modelChangeHandler = function(n) {
- t._modelChange({
- field: n.field,
- model: this
- })
- };
- n.bind("change", t._modelChangeHandler)
- },
- _detachModelChange: function() {
- var n = this,
- i = n._editContainer,
- t = n._modelForContainer(i);
- t && t.unbind(a, n._modelChangeHandler)
- },
- closeCell: function(t) {
- var u = this,
- r = u._editContainer,
- e, o, f;
- r && ((e = r.closest("tr").attr(i.attr("uid")), f = u.dataSource.getByUid(e), t && u.trigger("cancel", {
- container: r,
- model: f
- })) || (r.removeClass("k-edit-cell"), o = u.columns[u.cellIndex(r)], r.parent().removeClass("k-grid-edit-row"), u._destroyEditable(), u._displayCell(r, o, f), r.hasClass("k-dirty-cell") && n('<span class="k-dirty"/>').prependTo(r)))
- },
- _displayCell: function(n, t, r) {
- var s = this,
- e = {
- storage: {},
- count: 0
- },
- h = u({}, i.Template, s.options.templateSettings),
- o = i.template(s._cellTmpl(t, e), h);
- e.count > 0 && (o = f(o, e.storage));
- n.empty().html(o(r))
- },
- removeRow: function(n) {
- this._confirmation(n) && this._removeRow(n)
- },
- _removeRow: function(t) {
- var i = this,
- r, u;
- t = n(t).hide();
- r = i._modelForContainer(t);
- r && !i.trigger(si, {
- row: t,
- model: r
- }) && (u = i._editMode(), u !== "incell" && i.cancelRow(), i.dataSource.remove(r), (u === "inline" || u === "popup") && i.dataSource.sync())
- },
- _editMode: function() {
- var t = "incell",
- n = this.options.editable;
- return n !== !0 && (t = typeof n == "string" ? n : n.mode || t), t
- },
- editRow: function(t) {
- var f, u = this,
- e, s, o;
- if (t instanceof i.data.ObservableObject ? f = t : (t = n(t), f = u._modelForContainer(t)), e = u._editMode(), s = u.options.navigatable, u.cancelRow(), f) {
- u._attachModelChange(f);
- e === "popup" ? u._createPopupEditor(f) : e === "inline" ? u._createInlineEditor(t, f) : e === "incell" && n(t).children(g).each(function() {
- var t = n(this),
- i = u.columns[t.index()];
- return f = u._modelForContainer(t), f && (!f.editable || f.editable(i.field)) && i.field ? (u.editCell(t), !1) : void 0
- });
- o = u.editView ? u.editView.element : u._editContainer;
- o.on(h + r, "a.k-grid-cancel", function(t) {
- if (t.preventDefault(), t.stopPropagation(), !u.trigger("cancel", {
- container: o,
- model: f
- })) {
- var i = u.items().index(n(u.current()).parent());
- u.cancelRow();
- s && (u.current(u.items().eq(i).children().filter(v).first()), l(u.table, !0))
- }
- });
- o.on(h + r, "a.k-grid-update", function(n) {
- n.preventDefault();
- n.stopPropagation();
- u.saveRow()
- })
- }
- },
- _createPopupEditor: function(t) {
- var r = this,
- s = "<div " + i.attr("uid") + '="' + t.uid + '" class="k-popup-edit-form' + (r._isMobile ? " k-mobile-list" : "") + '"><div class="k-edit-form-container">',
- e, h, ut = [],
- a, k, d, tt, it, y, p, rt = r.options.editable,
- w = rt.template,
- g = o(rt) ? rt.window : {},
- ft = u({}, i.Template, r.options.templateSettings),
- nt, b;
- if (g = g || {}, w)
- for (typeof w === c && (w = window.unescape(w)), s += i.template(w, ft)(t), a = 0, k = r.columns.length; a < k; a++) e = r.columns[a], e.command && (y = oi(e.command, "edit"), y && (h = y));
- else
- for (a = 0, k = r.columns.length; a < k; a++) e = r.columns[a], e.command ? e.command && (y = oi(e.command, "edit"), y && (h = y)) : (s += '<div class="k-edit-label"><label for="' + e.field + '">' + (e.title || e.field || "") + "<\/label><\/div>", (!t.editable || t.editable(e.field)) && e.field ? (ut.push({
- field: e.field,
- format: e.format,
- editor: e.editor,
- values: e.values
- }), s += "<div " + i.attr("container-for") + '="' + e.field + '" class="k-edit-field"><\/div>') : (nt = {
- storage: {},
- count: 0
- }, d = i.template(r._cellTmpl(e, nt), ft), nt.count > 0 && (d = f(d, nt.storage)), s += '<div class="k-edit-field">' + d(t) + "<\/div>"));
- h && o(h) && (h.text && o(h.text) && (tt = h.text.update, it = h.text.cancel), h.attr && (p = h.attr));
- r._isMobile ? (s += "<\/div><\/div>", r.editView = r.pane.append("<div data-" + i.ns + 'role="view" data-' + i.ns + 'init-widgets="false" class="k-grid-edit-form"><div data-' + i.ns + 'role="header" class="k-header">' + r._createButton({
- name: "update",
- text: tt,
- attr: p
- }) + (g.title || "Edit") + r._createButton({
- name: "canceledit",
- text: it,
- attr: p
- }) + "<\/div>" + s + "<\/div>"), b = r._editContainer = r.editView.element.find(".k-popup-edit-form")) : (s += '<div class="k-edit-buttons k-state-default">', s += r._createButton({
- name: "update",
- text: tt,
- attr: p
- }) + r._createButton({
- name: "canceledit",
- text: it,
- attr: p
- }), s += "<\/div><\/div><\/div>", b = r._editContainer = n(s).appendTo(r.wrapper).eq(0).kendoWindow(u({
- modal: !0,
- resizable: !1,
- draggable: !0,
- title: "Edit",
- visible: !1,
- close: function(i) {
- if (i.userTriggered) {
- if (i.sender.element.focus(), r.trigger("cancel", {
- container: b,
- model: t
- })) {
- i.preventDefault();
- return
- }
- var u = r.items().index(n(r.current()).parent());
- r.cancelRow();
- r.options.navigatable && (r.current(r.items().eq(u).children().filter(v).first()), l(r.table, !0))
- }
- }
- }, g)));
- r.editable = r._editContainer.kendoEditable({
- fields: ut,
- model: t,
- clearContainer: !1
- }).data("kendoEditable");
- r._isMobile && b.find("input[type=checkbox],input[type=radio]").parent(".k-edit-field").addClass("k-check").prev(".k-edit-label").addClass("k-check").click(function() {
- n(this).next().children("input").click()
- });
- r._openPopUpEditor();
- r.trigger(yt, {
- container: b,
- model: t
- })
- },
- _openPopUpEditor: function() {
- this._isMobile ? this.pane.navigate(this.editView, this._editAnimation) : this._editContainer.data("kendoWindow").center().open()
- },
- _createInlineEditor: function(t, r) {
- var e = this,
- u, s, f, h = [];
- t.children(":not(.k-group-cell,.k-hierarchy-cell)").each(function() {
- if (s = n(this), u = e.columns[e.cellIndex(s)], !u.command && u.field && (!r.editable || r.editable(u.field))) h.push({
- field: u.field,
- format: u.format,
- editor: u.editor,
- values: u.values
- }), s.attr(i.attr("container-for"), u.field), s.empty();
- else if (u.command && (f = oi(u.command, "edit"), f)) {
- s.empty();
- var c, l, t;
- o(f) && (f.text && o(f.text) && (c = f.text.update, l = f.text.cancel), f.attr && (t = f.attr));
- n(e._createButton({
- name: "update",
- text: c,
- attr: t
- }) + e._createButton({
- name: "canceledit",
- text: l,
- attr: t
- })).appendTo(s)
- }
- });
- e._editContainer = t;
- e.editable = t.addClass("k-grid-edit-row").kendoEditable({
- fields: h,
- model: r,
- clearContainer: !1
- }).data("kendoEditable");
- e.trigger(yt, {
- container: t,
- model: r
- })
- },
- cancelRow: function() {
- var n = this,
- t = n._editContainer,
- r;
- t && (r = n._modelForContainer(t), n._destroyEditable(), n.dataSource.cancelChanges(r), n._editMode() !== "popup" ? n._displayRow(t) : n._displayRow(n.items().filter("[" + i.attr("uid") + "=" + r.uid + "]")))
- },
- saveRow: function() {
- var n = this,
- t = n._editContainer,
- r = n._modelForContainer(t),
- i = n.editable;
- t && i && i.end() && !n.trigger(gt, {
- container: t,
- model: r
- }) && n.dataSource.sync()
- },
- _displayRow: function(t) {
- var i = this,
- r = i._modelForContainer(t);
- r && t.replaceWith(n((t.hasClass("k-alt") ? i.altRowTemplate : i.rowTemplate)(r)))
- },
- _showMessage: function(t, r) {
- var u = this;
- if (!u._isMobile) return window.confirm(t.title);
- var f = i.template('<ul><li class="km-actionsheet-title">#:title#<\/li><li><a href="\\#" class="k-button k-grid-delete">#:confirmDelete#<\/a><\/li><\/ul>'),
- e = n(f(t)).appendTo(u.view.element),
- o = u._actionSheet = new i.mobile.ui.ActionSheet(e, {
- cancel: t.cancelDelete,
- cancelTemplate: '<li class="km-actionsheet-cancel"><a class="k-button" href="\\#">#:cancel#<\/a><\/li>',
- close: function() {
- this.destroy()
- },
- command: function(t) {
- var i = n(t.currentTarget).parent();
- i.hasClass("km-actionsheet-cancel") || u._removeRow(r)
- },
- popup: u._actionSheetPopupOptions
- });
- return o.open(r), !1
- },
- _confirmation: function(n) {
- var r = this,
- t = r.options.editable,
- i = t === !0 || typeof t === c ? gi : t.confirmation;
- return i !== !1 && i != null ? r._showMessage({
- confirmDelete: t.confirmDelete || hr,
- cancelDelete: t.cancelDelete || cr,
- title: i === !0 ? gi : i
- }, n) : !0
- },
- cancelChanges: function() {
- this.dataSource.cancelChanges()
- },
- saveChanges: function() {
- var n = this;
- (n.editable && n.editable.end() || !n.editable) && !n.trigger(vi) && n.dataSource.sync()
- },
- addRow: function() {
- var n = this,
- r, t = n.dataSource,
- f = n._editMode(),
- c = n.options.editable.createAt || "",
- e = t.pageSize(),
- o = t.view() || [];
- if (n.editable && n.editable.end() || !n.editable) {
- f != "incell" && n.cancelRow();
- r = t.indexOf(o[0]);
- c.toLowerCase() == "bottom" && (r += o.length, e && !t.options.serverPaging && e <= o.length && (r -= 1));
- r < 0 && (r = t.page() > t.totalPages() ? (t.page() - 1) * e : 0);
- var s = t.insert(r, {}),
- l = s.uid,
- u = n.table.find("tr[" + i.attr("uid") + "=" + l + "]"),
- h = u.children("td:not(.k-group-cell,.k-hierarchy-cell)").eq(n._firstEditableColumnIndex(u));
- f === "inline" && u.length ? n.editRow(u) : f === "popup" ? n.editRow(s) : h.length && n.editCell(h)
- }
- },
- _firstEditableColumnIndex: function(n) {
- for (var u = this, i, f = u.columns, r = u._modelForContainer(n), t = 0, e = f.length; t < e; t++)
- if (i = f[t], r && (!r.editable || r.editable(i.field)) && !i.command && i.field) return t;
- return -1
- },
- _toolbar: function() {
- var t = this,
- s = t.wrapper,
- u = t.options.toolbar,
- o = t.options.editable,
- e;
- if (u && (e = t.wrapper.find(".k-grid-toolbar"), e.length || (or(u) || (u = typeof u === c ? u : t._toolbarTmpl(u).replace(ii, "\\#"), u = f(i.template(u), t)), e = n('<div class="k-toolbar k-grid-toolbar" />').html(u({})).prependTo(s)), o && o.create !== !1)) e.on(h + r, ".k-grid-add", function(n) {
- n.preventDefault();
- t.addRow()
- }).on(h + r, ".k-grid-cancel-changes", function(n) {
- n.preventDefault();
- t.cancelChanges()
- }).on(h + r, ".k-grid-save-changes", function(n) {
- n.preventDefault();
- t.saveChanges()
- })
- },
- _toolbarTmpl: function(n) {
- var u = this,
- t, i, r = "";
- if (k(n))
- for (t = 0, i = n.length; t < i; t++) r += u._createButton(n[t]);
- return r
- },
- _createButton: function(n) {
- var f = n.template || vr,
- t = typeof n === c ? n : n.name || n.text,
- e = wt[t] ? wt[t].className : "k-grid-" + (t || "").replace(/\s/g, ""),
- r = {
- className: e,
- text: t,
- imageClass: "",
- attr: "",
- iconClass: ""
- };
- if (!t && !(o(n) && n.template)) throw new Error("Custom commands should have name specified");
- return o(n) ? (n.className && (n.className += " " + r.className), t === "edit" && o(n.text) && (n = u(!0, {}, n), n.text = n.text.edit), n.attr && o(n.attr) && (n.attr = lt(n.attr)), r = u(!0, r, wt[t], n)) : r = u(!0, r, wt[t]), i.template(f)(r)
- },
- _hasFooters: function() {
- for (var t = this.columns, i = t.length, n = 0; n < i; n++)
- if (t[n].footerTemplate !== "" || t[n].groupFooterTemplate !== "") return !0;
- return !1
- },
- _groupable: function() {
- var t = this;
- t._groupableClickHandler ? t.table.off(h + r, t._groupableClickHandler) : t._groupableClickHandler = function(i) {
- var r = n(this),
- u = r.closest("tr");
- r.hasClass("k-i-collapse") ? t.collapseGroup(u) : t.expandGroup(u);
- i.preventDefault();
- i.stopPropagation()
- };
- t.table.on(h + r, ".k-grouping-row .k-i-collapse, .k-grouping-row .k-i-expand", t._groupableClickHandler);
- t._attachGroupable()
- },
- _attachGroupable: function() {
- var t = this,
- r = t.wrapper,
- f = t.options.groupable,
- e = vt + ":visible[" + i.attr("field") + "]",
- o = vt + "[" + i.attr("field") + "]";
- f && (r.has("div.k-grouping-header")[0] || n("<div> <\/div>").addClass("k-grouping-header").prependTo(r), t.groupable && t.groupable.destroy(), t.groupable = new fr(r, u({}, f, {
- draggable: t._draggableInstance,
- groupContainer: ">div.k-grouping-header",
- dataSource: t.dataSource,
- draggableElements: t.content ? ".k-grid-header:first " + e : "table:first>.k-grid-header " + e,
- filter: t.content ? ".k-grid-header:first " + o : "table:first>.k-grid-header " + o,
- allowDrag: t.options.reorderable
- })))
- },
- _selectable: function() {
- var n = this,
- f, e, t = [],
- u = n.options.selectable;
- if (u && (f = typeof u === c && u.toLowerCase().indexOf("multiple") > -1, e = typeof u === c && u.toLowerCase().indexOf("cell") > -1, n._hasDetails() && (t[t.length] = ".k-detail-row"), (n.options.groupable || n._hasFooters()) && (t[t.length] = ".k-grouping-row,.k-group-footer"), t = t.join(","), t !== "" && (t = ":not(" + t + ")"), n.selectable = new i.ui.Selectable(n.table, {
- filter: ">" + (e ? sr : "tbody>tr" + t),
- aria: !0,
- multiple: f,
- change: function() {
- n.trigger(a)
- }
- }), n.options.navigatable)) n.table.on("keydown" + r, function(t) {
- var i = n.current();
- if (t.keyCode === s.SPACEBAR && t.target == n.table[0] && !i.is(".k-edit-cell,.k-header") && i.parent().is(":not(.k-grouping-row,.k-detail-row,.k-group-footer)")) {
- if (t.preventDefault(), t.stopPropagation(), i = e ? i : i.parent(), f)
- if (t.ctrlKey) {
- if (i.hasClass(bi)) {
- i.removeClass(bi);
- n.trigger(a);
- return
- }
- } else n.selectable.clear();
- else n.selectable.clear();
- n.selectable.value(i)
- }
- })
- },
- clearSelection: function() {
- var n = this;
- n.selectable.clear();
- n.trigger(a)
- },
- select: function(t) {
- var r = this,
- i = r.selectable;
- if (t = n(t), t.length) {
- i.options.multiple || (i.clear(), t = t.first());
- i.value(t);
- return
- }
- return i.value()
- },
- current: function(i) {
- var r = this,
- f = r.options.scrollable,
- u = r._current,
- e = r.table.add(r.thead.parent());
- return i !== t && i.length && (u && u[0] === i[0] || (u && (u.removeClass(ht).removeAttr("id"), e.removeAttr("aria-activedescendant")), i.attr("id", r._cellId), r._current = i.addClass(ht), e.attr("aria-activedescendant", r._cellId), i.length && f && (n.contains(r.content[0], i[0]) && r._scrollTo(i.parent()[0], r.content[0]), f.virtual ? r._scrollTo(i[0], r.content.find(">.k-virtual-scrollable-wrap")[0]) : r._scrollTo(i[0], r.content[0])))), r._current
- },
- _removeCurrent: function() {
- this._current && (this._current.removeClass(ht), this._current = null)
- },
- _scrollTo: function(n, t) {
- var e = n.tagName.toLowerCase(),
- i = e === "td" || e === "th",
- r = n[i ? "offsetLeft" : "offsetTop"],
- o = n[i ? "offsetWidth" : "offsetHeight"],
- u = t[i ? "scrollLeft" : "scrollTop"],
- f = t[i ? "clientWidth" : "clientHeight"],
- s = r + o,
- h = 0;
- h = u > r ? r : s > u + f ? o <= f ? s - f : r : u;
- t[i ? "scrollLeft" : "scrollTop"] = h
- },
- _navigatable: function() {
- var t = this,
- o = f(t.current, t),
- u = t.table,
- h = t.thead.parent(),
- c = u,
- a = i.support.isRtl(t.element);
- if (t.options.navigatable) {
- t.options.scrollable && (c = u.add(h), h.attr(nt, -1));
- h.on("keydown" + r, function(n) {
- n.altKey && n.keyCode == s.DOWN && (o().find(".k-grid-filter, .k-header-column-menu").click(), n.stopImmediatePropagation())
- }).find("a.k-link").attr("tabIndex", -1);
- u.attr(nt, y.max(u.attr(nt) || 0, 0)).on("mousedown" + r + " keydown" + r, ".k-detail-cell", function(n) {
- n.target !== n.currentTarget && n.stopImmediatePropagation()
- });
- c.on(i.support.touch ? "touchstart" + r : "mousedown" + r, ut + ">" + v, f(dr, t)).on("focus" + r, function() {
- if (!i.support.touch) {
- var t = o();
- t && t.is(":visible") ? t.addClass(ht) : o(n(this).find(ft));
- this == u[0] ? (h.attr(nt, -1), u.attr(nt, 0)) : (u.attr(nt, -1), h.attr(nt, 0))
- }
- }).on("focusout" + r, function() {
- var n = o();
- n && n.removeClass(ht)
- }).on("keydown" + r, function(i) {
- var h = i.keyCode,
- f = !1,
- p = !i.isDefaultPrevented() && !n(i.target).is(":button,a,:input,a>.k-icon"),
- st = t.options.pageable,
- w = t.dataSource,
- nt = t._editMode() == "incell",
- b, tt, c, k, it, et = i.shiftKey,
- r = o(),
- ot, d, y;
- r && r.is("th") && (p = !0);
- p && h == s.UP ? (r ? (c = r.parent().prevAll(ut).first(), c[0] || (it = t.thead.parent(), l(it, !0), c = it.find(ut).first()), k = r.index(), r = c.children().eq(k), r[0] && r.is(v) || (r = c.children(v).first())) : r = u.find(ft), f = !0, o(r)) : p && h == s.DOWN ? (r ? (c = r.parent().nextAll(ut).first(), !c[0] && r.is("th") && (l(t.tbody.parent()), c = t.tbody.find(ut).first()), k = r.index(), r = c.children().eq(k), r[0] && r.is(v) || (r = c.children(v).first())) : r = u.find(ft), f = !0, o(r)) : p && h == (a ? s.RIGHT : s.LEFT) ? (o(r ? r.prevAll(g + ":first") : u.find(ft)), f = !0) : p && h == (a ? s.LEFT : s.RIGHT) ? (r ? r.next()[0] && (r = r.nextAll(g + ":first")) : r = u.find(ft), f = !0, o(r)) : p && st && s.PAGEDOWN == h ? (w.page(w.page() + 1), f = !0) : p && st && s.PAGEUP == h ? (w.page(w.page() - 1), f = !0) : h == s.ENTER || s.F2 == h ? (r = r ? r : u.find(ft), r.is("th") ? (r.find(".k-link").click(), f = !0) : r.parent().is(".k-master-row,.k-grouping-row") ? (r.parent().find(".k-icon:first").click(), f = !0) : (ot = r.find(":kendoFocusable:first"), !r.hasClass("k-edit-cell") && ot[0] && r.hasClass("k-state-focused") ? (ot.focus(), f = !0) : t.options.editable && !n(i.target).is(":button,.k-button,textarea") && (d = n(i.target).closest("[role=gridcell]"), d[0] || (d = r), t._handleEditing(d), f = !0))) : s.ESC == h ? (b = rt(), r && n.contains(r[0], b) && !r.hasClass("k-edit-cell") && !r.parent().hasClass("k-grid-edit-row") ? (l(t.table[0], !0), f = !0) : t._editContainer && (!r || t._editContainer.has(r[0]) || r[0] === t._editContainer[0]) && (nt ? t.closeCell(!0) : (tt = t.items().index(n(r).parent()), b && b.blur(), t.cancelRow(), tt >= 0 && t.current(t.items().eq(tt).children().filter(v).first())), e.msie && e.version < 9 && document.body.focus(), l(u, !0), f = !0)) : s.TAB == h && (r = n(r), t.options.editable && nt && (y = n(rt()).closest(".k-edit-cell"), y[0] && y[0] !== r[0] && (r = y)), y = et ? r.prevAll(g + ":first") : r.nextAll(":visible:first"), y.length || (y = r.parent()[et ? "prevAll" : "nextAll"]("tr:not(.k-grouping-row):not(.k-detail-row):visible:first").children(g + (et ? ":last" : ":first"))), !r.is("th") && y.length && t.options.editable && nt && (t._handleEditing(r, y), f = !0));
- f && (i.preventDefault(), i.stopPropagation())
- })
- }
- },
- _handleEditing: function(t, i) {
- var r = this,
- u = n(rt()),
- f = r._editMode(),
- c = e.msie,
- a = c && e.version < 9,
- o = r._editContainer,
- s, h;
- if (h = f == "incell" ? t.hasClass("k-edit-cell") : t.parent().hasClass("k-grid-edit-row"), r.editable) {
- if (n.contains(o[0], u[0]) && (e.opera || a ? u.change().triggerHandler("blur") : (u.blur(), c && u.blur())), !r.editable) {
- l(r.table);
- return
- }
- if (r.editable.end()) f == "incell" ? r.closeCell() : (r.saveRow(), h = !0);
- else {
- f == "incell" ? r.current(o) : r.current(o.children().filter(g).first());
- s = o.find(":kendoFocusable:first")[0];
- s && s.focus();
- return
- }
- }
- i && r.current(i);
- a && document.body.focus();
- l(r.table, !0);
- (h || i) && !i || (f == "incell" ? r.editCell(r.current()) : r.editRow(r.current().parent()))
- },
- _wrapper: function() {
- var n = this,
- r = n.table,
- i = n.options.height,
- t = n.element;
- t.is("div") || (t = t.wrap("<div/>").parent());
- n.wrapper = t.addClass("k-grid k-widget k-secondary");
- i && (n.wrapper.css(ti, i), r.css(ti, "auto"));
- n._initMobile()
- },
- _initMobile: function() {
- var t = this.options,
- r;
- this._isMobile = t.mobile === !0 && i.support.mobileOS || t.mobile === "phone" || t.mobile === "tablet";
- this._isMobile && (r = this.wrapper.addClass("k-grid-mobile").wrap("<div data-" + i.ns + 'role="view" data-' + i.ns + 'init-widgets="false"><\/div>').parent(), this.pane = i.mobile.ui.Pane.wrap(r), this.view = this.pane.view(), this._actionSheetPopupOptions = n(document.documentElement).hasClass("km-root") ? {
- modal: !1
- } : {
- align: "bottom center",
- position: "bottom center",
- effect: "slideIn:up"
- }, t.height && this.pane.element.parent().css(ti, t.height), this._editAnimation = "slide")
- },
- _tbody: function() {
- var i = this,
- r = i.table,
- t;
- t = r.find(">tbody");
- t.length || (t = n("<tbody/>").appendTo(r));
- i.tbody = t
- },
- _scrollable: function() {
- var t = this,
- u, s, y = t.options,
- o = y.scrollable,
- v = o !== !0 && o.virtual && !t.virtualScrollable,
- c = !i.support.kineticScrollNeeded || v ? i.support.scrollbar() : 0,
- l, a, h;
- o && (u = t.wrapper.children(".k-grid-header"), u[0] || (u = n('<div class="k-grid-header" />').insertBefore(t.table)), u.css(p ? "padding-left" : "padding-right", o.virtual ? c + 1 : c), s = n('<table role="grid" />'), ri && s.attr("cellspacing", 0), s.append(t.thead), u.empty().append(n('<div class="k-grid-header-wrap" />').append(s)), t.content = t.table.parent(), t.content.is(".k-virtual-scrollable-wrap") && (t.content = t.content.parent()), t.content.is(".k-grid-content, .k-virtual-scrollable-wrap") || (t.content = t.table.wrap('<div class="k-grid-content" />').parent()), v && (t.virtualScrollable = new tr(t.content, {
- dataSource: t.dataSource,
- itemHeight: f(t._averageRowHeight, t)
- })), t.scrollables = u.children(".k-grid-header-wrap"), l = t.wrapper.find(".k-grid-footer"), a = p && e.webkit ? c : 0, l.length && (t.scrollables = t.scrollables.add(l.children(".k-grid-footer-wrap"))), o.virtual ? t.content.find(">.k-virtual-scrollable-wrap").bind("scroll" + r, function() {
- t.scrollables.scrollLeft(this.scrollLeft + a)
- }) : (t.content.bind("scroll" + r, function() {
- t.scrollables.scrollLeft(this.scrollLeft + a)
- }), h = i.touchScroller(t.content), h && h.movable && h.movable.bind("change", function(n) {
- t.scrollables.scrollLeft(-n.sender.x)
- })))
- },
- _setContentWidth: function() {
- var t = this,
- u = "k-grid-content-expander",
- e = '<div class="' + u + '"><\/div>',
- r = t.resizable,
- i;
- t.options.scrollable && t.wrapper.is(":visible") && (i = t.table.parent().children("." + u), t._setContentWidthHandler = f(t._setContentWidth, t), t.dataSource && t.dataSource.view().length ? i[0] && (i.remove(), r && r.unbind("resize", t._setContentWidthHandler)) : (i[0] || (i = n(e).appendTo(t.table.parent()), r && r.bind("resize", t._setContentWidthHandler)), t.thead && i.width(t.thead.width())))
- },
- _setContentHeight: function() {
- var n = this,
- r = n.options,
- t = n.wrapper.innerHeight(),
- e = n.wrapper.children(".k-grid-header"),
- u = i.support.scrollbar(),
- f;
- r.scrollable && n.wrapper.is(":visible") && (t -= e.outerHeight(), n.pager && (t -= n.pager.element.outerHeight()), r.groupable && (t -= n.wrapper.children(".k-grouping-header").outerHeight()), r.toolbar && (t -= n.wrapper.children(".k-grid-toolbar").outerHeight()), n.footerTemplate && (t -= n.wrapper.children(".k-grid-footer").outerHeight()), f = function(n) {
- var t, i;
- return n[0].style.height ? !0 : (t = n.height(), n.height("auto"), i = n.height(), t != i) ? (n.height(""), !0) : (n.height(""), !1)
- }, f(n.wrapper) && (t > u * 2 ? n.content.height(t) : n.content.height(u * 2 + 1)))
- },
- _averageRowHeight: function() {
- var n = this,
- t = n._rowHeight,
- i;
- return n._rowHeight || (n._rowHeight = t = n.table.outerHeight() / n.items().length, n._sum = t, n._measures = 1), i = n.table.outerHeight() / n.items().length, t !== i && (n._measures++, n._sum += i, n._rowHeight = n._sum / n._measures), t
- },
- _dataSource: function() {
- var n = this,
- e = n.options,
- r, i = e.dataSource;
- i = k(i) ? {
- data: i
- } : i;
- o(i) && (u(i, {
- table: n.table,
- fields: n.columns
- }), r = e.pageable, o(r) && r.pageSize !== t && (i.pageSize = r.pageSize));
- n.dataSource && n._refreshHandler ? n.dataSource.unbind(a, n._refreshHandler).unbind(kt, n._progressHandler).unbind(dt, n._errorHandler) : (n._refreshHandler = f(n.refresh, n), n._progressHandler = f(n._requestStart, n), n._errorHandler = f(n._error, n));
- n.dataSource = ur.create(i).bind(a, n._refreshHandler).bind(kt, n._progressHandler).bind(dt, n._errorHandler)
- },
- _error: function() {
- this._progress(!1)
- },
- _requestStart: function() {
- this._progress(!0)
- },
- _modelChange: function(t) {
- var r = this,
- h = t.model,
- f = r.tbody.find("tr[" + i.attr("uid") + "=" + h.uid + "]"),
- u, o, l = f.hasClass("k-alt"),
- s, e = r.items().index(f),
- c;
- if (f.children(".k-edit-cell").length && !r.options.rowTemplate) f.children(":not(.k-group-cell,.k-hierarchy-cell)").each(function() {
- u = n(this);
- o = r.columns[r.cellIndex(u)];
- o.field === t.field && (u.hasClass("k-edit-cell") ? u.addClass("k-dirty-cell") : (r._displayCell(u, o, h), n('<span class="k-dirty"/>').prependTo(u)))
- });
- else if (!f.hasClass("k-grid-edit-row")) {
- for (s = (l ? r.altRowTemplate : r.rowTemplate)(h), f.replaceWith(s), s = r.items().eq(e), e = 0, c = r.columns.length; e < c; e++) o = r.columns[e], o.field === t.field && (u = s.children(":not(.k-group-cell,.k-hierarchy-cell)").eq(e), n('<span class="k-dirty"/>').prependTo(u));
- r.trigger("itemChange", {
- item: s,
- data: h,
- ns: it
- })
- }
- },
- _pageable: function() {
- var t = this,
- f, r = t.options.pageable;
- r && (f = t.wrapper.children("div.k-grid-pager"), f.length || (f = n('<div class="k-pager-wrap k-grid-pager"/>').appendTo(t.wrapper)), t.pager && t.pager.destroy(), t.pager = typeof r == "object" && r instanceof i.ui.Pager ? r : new i.ui.Pager(f, u({}, r, {
- dataSource: t.dataSource
- })))
- },
- _footer: function() {
- var t = this,
- u = t.dataSource.aggregates(),
- r = "",
- s = t.footerTemplate,
- e = t.options,
- f, i = t.footer || t.wrapper.find(".k-grid-footer"),
- o;
- s ? (u = at(u) ? fi(t.dataSource.aggregate()) : u, r = n(t._wrapFooter(s(u))), i.length ? (o = r, i.replaceWith(o), i = t.footer = o) : i = e.scrollable ? t.footer = e.pageable ? r.insertBefore(t.wrapper.children("div.k-grid-pager")) : r.appendTo(t.wrapper) : t.footer = r.insertBefore(t.tbody)) : i && !t.footer && (t.footer = i);
- i.length && (e.scrollable && (f = i.attr("tabindex", -1).children(".k-grid-footer-wrap"), t.scrollables = t.scrollables.not(".k-grid-footer-wrap").add(f)), t._footerWidth && i.find("table").css("width", t._footerWidth), f && f.scrollLeft(t.content.scrollLeft()))
- },
- _wrapFooter: function(t) {
- var u = this,
- r = "",
- f = i.support.mobileOS ? 0 : i.support.scrollbar();
- return u.options.scrollable ? (r = n('<div class="k-grid-footer"><div class="k-grid-footer-wrap"><table' + (ri ? ' cellspacing="0"' : "") + "><tbody>" + t + "<\/tbody><\/table><\/div><\/div>"), u._appendCols(r.find("table")), r.css(p ? "padding-left" : "padding-right", f), r) : '<tfoot class="k-grid-footer">' + t + "<\/tfoot>"
- },
- _columnMenu: function() {
- var t = this,
- s, v = t.columns,
- r, e = t.options,
- f = e.columnMenu,
- h, c, a, y = this._isMobile,
- p = function() {
- l(t.thead.parent(), !0)
- },
- w = function(n) {
- t.trigger(ci, {
- field: n.field,
- container: n.container
- })
- },
- o;
- f && (typeof f == "boolean" && (f = {}), t.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(l) {
- r = v[l];
- o = n(this);
- !r.command && (r.field || o.attr("data-" + i.ns + "field")) && (s = o.data("kendoColumnMenu"), s && s.destroy(), c = r.sortable !== !1 && f.sortable !== !1 ? e.sortable : !1, a = e.filterable && r.filterable !== !1 && f.filterable !== !1 ? u({
- pane: t.pane
- }, r.filterable, e.filterable) : !1, h = {
- dataSource: t.dataSource,
- values: r.values,
- columns: f.columns,
- sortable: c,
- filterable: a,
- messages: f.messages,
- owner: t,
- closeCallback: p,
- init: w,
- pane: t.pane,
- filter: y ? ":not(.k-column-active)" : ""
- }, o.kendoColumnMenu(h))
- }))
- },
- _filterable: function() {
- var t = this,
- r = t.columns,
- f, e, s = function() {
- l(t.thead.parent(), !0)
- },
- o = t.options.filterable;
- o && !t.options.columnMenu && t.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(h) {
- if (f = n(this), r[h].filterable !== !1 && !r[h].command && (r[h].field || f.attr("data-" + i.ns + "field"))) {
- e = f.data("kendoFilterMenu");
- e && e.destroy();
- var c = r[h].filterable,
- l = u({}, o, c, {
- dataSource: t.dataSource,
- values: r[h].values,
- closeCallback: s,
- init: function(n) {
- t.trigger(hi, {
- field: n.field,
- container: n.container
- })
- },
- pane: t.pane
- });
- c && c.messages && (l.messages = u(!0, {}, o.messages, c.messages));
- f.kendoFilterMenu(l)
- }
- })
- },
- _sortable: function() {
- var r = this,
- s = r.columns,
- t, f, e, o = r.options.sortable;
- o && r.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(h) {
- t = s[h];
- t.sortable !== !1 && !t.command && t.field && (f = n(this), e = f.data("kendoSortable"), e && e.destroy(), f.attr("data-" + i.ns + "field", t.field).kendoSortable(u({}, o, t.sortable, {
- dataSource: r.dataSource,
- aria: !0,
- filter: ":not(.k-column-active)"
- })))
- })
- },
- _columns: function(t) {
- var r = this,
- f = r.table,
- e, s = f.find("col"),
- o = r.options.dataSource;
- t = t.length ? t : bt(f.find("th"), function(t, r) {
- t = n(t);
- var f = t.attr(i.attr("sortable")),
- e = t.attr(i.attr("filterable")),
- o = t.attr(i.attr("type")),
- h = t.attr(i.attr("groupable")),
- u = t.attr(i.attr("field")),
- c = t.attr(i.attr("menu"));
- return u || (u = t.text().replace(/\s|[^A-z0-9]/g, "")), {
- field: u,
- type: o,
- sortable: f !== "false",
- filterable: e !== "false",
- groupable: h !== "false",
- menu: c,
- template: t.attr(i.attr("template")),
- width: s.eq(r).css("width")
- }
- });
- e = !(r.table.find("tbody tr").length > 0 && (!o || !o.transport));
- r.columns = bt(t, function(n) {
- return n = typeof n === c ? {
- field: n
- } : n, n.hidden && (n.attributes = ot(n.attributes), n.footerAttributes = ot(n.footerAttributes), n.headerAttributes = ot(n.headerAttributes)), u({
- encoded: e
- }, n)
- })
- },
- _groups: function() {
- var n = this.dataSource.group();
- return n ? n.length : 0
- },
- _tmpl: function(n, t) {
- var r = this,
- c = u({}, i.Template, r.options.templateSettings),
- e, l = r.columns.length,
- a, h = {
- storage: {},
- count: 0
- },
- o, p, v = r._hasDetails(),
- s = [],
- y = r._groups();
- if (!n) {
- for (n = "<tr", t && s.push("k-alt"), v && s.push("k-master-row"), s.length && (n += ' class="' + s.join(" ") + '"'), l && (n += " " + i.attr("uid") + '="#=' + i.expr("uid", c.paramName) + '#"'), n += " role='row'>", y > 0 && (n += pt(y)), v && (n += '<td class="k-hierarchy-cell"><a class="k-icon k-plus" href="\\#" tabindex="-1"><\/a><\/td>'), e = 0; e < l; e++) o = r.columns[e], a = o.template, p = typeof a, n += "<td" + lt(o.attributes) + " role='gridcell'>", n += r._cellTmpl(o, h), n += "<\/td>";
- n += "<\/tr>"
- }
- return (n = i.template(n, c), h.count > 0) ? f(n, h.storage) : n
- },
- _headerCellText: function(n) {
- var e = this,
- o = u({}, i.Template, e.options.templateSettings),
- t = n.headerTemplate,
- f = typeof t,
- r = n.title || n.field || "";
- return f === ct ? r = i.template(t, o)({}) : f === c && (r = t), r
- },
- _cellTmpl: function(n, t) {
- var h = this,
- y = u({}, i.Template, h.options.templateSettings),
- l = n.template,
- a = y.paramName,
- f = n.field,
- r = "",
- s, p, v = n.format,
- w = typeof l,
- e = n.values;
- if (n.command) {
- if (k(n.command)) {
- for (s = 0, p = n.command.length; s < p; s++) r += h._createButton(n.command[s]);
- return r.replace(ii, "\\#")
- }
- return h._createButton(n.command).replace(ii, "\\#")
- }
- return w === ct ? (t.storage["tmpl" + t.count] = l, r += "#=this.tmpl" + t.count + "(" + a + ")#", t.count++) : w === c ? r += l : e && e.length && o(e[0]) && "value" in e[0] && f ? (r += "#var v =" + i.stringify(rr(e)) + "#", r += "#var f = v[", y.useWithBlock || (r += a + "."), r += f + "]#", r += "${f != null ? f : ''}") : (r += n.encoded ? "#:" : "#=", v && (r += 'kendo.format("' + v.replace(lr, "\\$1") + '",'), f ? (f = i.expr(f, a), r += f + "==null?'':" + f) : r += "''", v && (r += ")"), r += "#"), r
- },
- _templates: function() {
- var t = this,
- r = t.options,
- u = t.dataSource,
- f = u.group(),
- e = t.footer || t.wrapper.find(".k-grid-footer"),
- i = u.aggregate();
- t.rowTemplate = t._tmpl(r.rowTemplate);
- t.altRowTemplate = t._tmpl(r.altRowTemplate || r.rowTemplate, !0);
- t._hasDetails() && (t.detailTemplate = t._detailTmpl(r.detailTemplate || ""));
- (!t._group || at(i)) && (at(i) || e.length) && !b(t.columns, function(n) {
- return n.footerTemplate
- }).length || (t.footerTemplate = t._footerTmpl(i, "footerTemplate", "k-footer-template"));
- f && b(t.columns, function(n) {
- return n.groupFooterTemplate
- }).length && (i = n.map(f, function(n) {
- return n.aggregates
- }), t.groupFooterTemplate = t._footerTmpl(i, "groupFooterTemplate", "k-group-footer"))
- },
- _footerTmpl: function(n, t, r) {
- var s = this,
- a = u({}, i.Template, s.options.templateSettings),
- v = a.paramName,
- e = "",
- c, y, d = s.columns,
- o, p, w = {},
- l = 0,
- b = {},
- k = s._groups(),
- g = fi(n),
- h;
- for (e += '<tr class="' + r + '">', k > 0 && (e += pt(k)), s._hasDetails() && (e += '<td class="k-hierarchy-cell"> <\/td>'), c = 0, y = s.columns.length; c < y; c++) h = d[c], o = h[t], p = typeof o, e += "<td" + lt(h.footerAttributes) + ">", o ? (p !== ct && (b = g[h.field] ? u({}, a, {
- paramName: v + "." + h.field
- }) : {}, o = i.template(o, b)), w["tmpl" + l] = o, e += "#=this.tmpl" + l + "(" + v + ")#", l++) : e += " ", e += "<\/td>";
- return (e += "<\/tr>", e = i.template(e, a), l > 0) ? f(e, w) : e
- },
- _detailTmpl: function(n) {
- var e = this,
- t = "",
- o = u({}, i.Template, e.options.templateSettings),
- l = o.paramName,
- s = {},
- r = 0,
- h = e._groups(),
- c = tt(e.columns).length,
- a = typeof n;
- return (t += '<tr class="k-detail-row">', h > 0 && (t += pt(h)), t += '<td class="k-hierarchy-cell"><\/td><td class="k-detail-cell"' + (c ? ' colspan="' + c + '"' : "") + ">", a === ct ? (s["tmpl" + r] = n, t += "#=this.tmpl" + r + "(" + l + ")#", r++) : t += n, t += "<\/td><\/tr>", t = i.template(t, o), r > 0) ? f(t, s) : t
- },
- _hasDetails: function() {
- var n = this;
- return n.options.detailTemplate !== null || (n._events[ni] || []).length
- },
- _details: function() {
- var t = this;
- t.table.on(h + r, ".k-hierarchy-cell .k-plus, .k-hierarchy-cell .k-minus", function(i) {
- var f = n(this),
- u = f.hasClass("k-plus"),
- r = f.closest("tr.k-master-row"),
- e, s = t.detailTemplate,
- o, h = t._hasDetails();
- return f.toggleClass("k-plus", !u).toggleClass("k-minus", u), h && !r.next().hasClass("k-detail-row") && (o = t.dataItem(r), n(s(o)).addClass(r.hasClass("k-alt") ? "k-alt" : "").insertAfter(r), t.trigger(ni, {
- masterRow: r,
- detailRow: r.next(),
- data: o,
- detailCell: r.next().find(".k-detail-cell")
- })), e = r.next(), t.trigger(u ? pi : wi, {
- masterRow: r,
- detailRow: e
- }), e.toggle(u), t._current && t._current.attr("aria-expanded", u), i.preventDefault(), !1
- })
- },
- dataItem: function(t) {
- if (t = n(t)[0], !t) return null;
- for (var f = this.tbody.children(), u = t.sectionRowIndex, r = u, i = 0; i < u; i++) /k-grouping-row|k-detail-row|k-group-footer/.test(f[i].className) && r--;
- return this._data[r]
- },
- expandRow: function(t) {
- n(t).find("> td .k-plus, > td .k-i-expand").click()
- },
- collapseRow: function(t) {
- n(t).find("> td .k-minus, > td .k-i-collapse").click()
- },
- _thead: function() {
- var r = this,
- h = r.columns,
- l = r._hasDetails() && h.length,
- s, a, e = "",
- o = r.table.find(">thead"),
- f, c, u;
- if (o.length || (o = n("<thead/>").insertBefore(r.tbody)), f = r.element.find("tr:has(th):first"), f.length || (f = o.children().first(), f.length || (f = n("<tr/>"))), f.children().length) l && !f.find(".k-hierarchy-cell")[0] && f.prepend('<th class="k-hierarchy-cell"> <\/th>');
- else {
- for (l && (e += '<th class="k-hierarchy-cell"> <\/th>'), s = 0, a = h.length; s < a; s++) u = h[s], c = r._headerCellText(u), u.command ? e += "<th" + lt(u.headerAttributes) + ">" + c + "<\/th>" : (e += "<th role='columnheader' " + i.attr("field") + "='" + (u.field || "") + "' ", u.title && (e += i.attr("title") + '="' + u.title.replace(/'/g, "'") + '" '), u.groupable !== t && (e += i.attr("groupable") + "='" + u.groupable + "' "), u.aggregates && (e += i.attr("aggregates") + "='" + u.aggregates + "'"), e += lt(u.headerAttributes), e += ">" + c + "<\/th>");
- f.html(e)
- }
- f.find("th").addClass("k-header");
- r.options.scrollable || o.addClass("k-grid-header");
- f.find("script").remove().end().appendTo(o);
- r.thead && r._destroyColumnAttachments();
- r.thead = o;
- r._sortable();
- r._filterable();
- r._scrollable();
- r._updateCols();
- r._resizable();
- r._draggable();
- r._reorderable();
- r.groupable && r._attachGroupable();
- r._columnMenu()
- },
- _updateCols: function() {
- var n = this;
- n._appendCols(n.thead.parent().add(n.table))
- },
- _appendCols: function(n) {
- var t = this;
- ir(n, tt(t.columns), t._hasDetails(), t._groups())
- },
- _autoColumns: function(n) {
- if (n && n.toJSON) {
- var t = this,
- i;
- n = n.toJSON();
- for (i in n) t.columns.push({
- field: i
- });
- t._thead();
- t._templates()
- }
- },
- _rowsHtml: function(n) {
- for (var i = this, r = "", f = i.rowTemplate, e = i.altRowTemplate, t = 0, u = n.length; t < u; t++) r += t % 2 ? e(n[t]) : f(n[t]), i._data.push(n[t]);
- return r
- },
- _groupRowHtml: function(n, t, r) {
- var f = this,
- e = "",
- o, l, a = n.field,
- s = b(f.columns, function(n) {
- return n.field == a
- })[0] || {},
- h = s.groupHeaderTemplate,
- v = (s.title || a) + ": " + br(n.value, s.format, s.values),
- y = u({}, {
- field: n.field,
- value: n.value
- }, n.aggregates[n.field]),
- p = f._groupAggregatesDefaultObject || {},
- c = n.items;
- if (h && (v = typeof h === ct ? h(y) : i.template(h)(y)), e += '<tr class="k-grouping-row">' + pt(r) + '<td colspan="' + t + '" aria-expanded="true"><p class="k-reset"><a class="k-icon k-i-collapse" href="#" tabindex="-1"><\/a>' + v + "<\/p><\/td><\/tr>", n.hasSubgroups)
- for (o = 0, l = c.length; o < l; o++) e += f._groupRowHtml(c[o], t - 1, r + 1);
- else e += f._rowsHtml(c);
- return f.groupFooterTemplate && (e += f.groupFooterTemplate(u(p, n.aggregates))), e
- },
- collapseGroup: function(t) {
- t = n(t).find(".k-icon").addClass("k-i-expand").removeClass("k-i-collapse").end();
- var f = t.find(".k-group-cell").length,
- r = 1,
- u, i;
- t.find("td:first").attr("aria-expanded", !1);
- t.nextAll("tr").each(function() {
- if (i = n(this), u = i.find(".k-group-cell").length, i.hasClass("k-grouping-row") ? r++ : i.hasClass("k-group-footer") && r--, u <= f || i.hasClass("k-group-footer") && r < 0) return !1;
- i.hide()
- })
- },
- expandGroup: function(t) {
- t = n(t).find(".k-icon").addClass("k-i-collapse").removeClass("k-i-expand").end();
- var e = this,
- f = t.find(".k-group-cell").length,
- i, r, u = 1;
- t.find("td:first").attr("aria-expanded", !0);
- t.nextAll("tr").each(function() {
- if (i = n(this), r = i.find(".k-group-cell").length, r <= f) return !1;
- r != f + 1 || i.hasClass("k-detail-row") || (i.show(), i.hasClass("k-grouping-row") && i.find(".k-icon").hasClass("k-i-collapse") && e.expandGroup(i), i.hasClass("k-master-row") && i.find(".k-icon").hasClass("k-minus") && i.next().show());
- i.hasClass("k-grouping-row") && u++;
- i.hasClass("k-group-footer") && (u == 1 ? i.show() : u--)
- })
- },
- _updateHeader: function(t) {
- var r = this,
- u = r.thead.find("th.k-group-cell"),
- i = u.length;
- t > i ? n(new Array(t - i + 1).join('<th class="k-group-cell k-header"> <\/th>')).prependTo(r.thead.find("tr")) : t < i && (i = i - t, n(b(u, function(n, t) {
- return i > t
- })).remove())
- },
- _firstDataItem: function(n, t) {
- return n && t && (n = n.hasSubgroups ? this._firstDataItem(n.items[0], t) : n.items[0]), n
- },
- hideColumn: function(t) {
- var i = this,
- a, f, r, h, u, v, c, o = 0,
- l, y = i.footer || i.wrapper.find(".k-grid-footer"),
- p = i.columns,
- s;
- if (t = typeof t == "number" ? p[t] : b(p, function(n) {
- return n.field === t
- })[0], t && !t.hidden) {
- for (s = d(t, tt(p)), t.hidden = !0, t.attributes = ot(t.attributes), t.footerAttributes = ot(t.footerAttributes), t.headerAttributes = ot(t.headerAttributes), i._templates(), i._updateCols(), st(i.thead.find(">tr")[0].cells, s, !1), y[0] && (i._appendCols(y.find("table:first")), st(y.find(".k-footer-template")[0].cells, s, !1)), a = i.tbody.children(), u = 0, l = a.length; u < l; u += 1) f = a.eq(u), f.is(".k-grouping-row,.k-detail-row") ? (r = f.children(":not(.k-group-cell):first,.k-detail-cell").last(), r.attr("colspan", parseInt(r.attr("colspan"), 10) - 1)) : (f.hasClass("k-grid-edit-row") && (r = f.children(".k-edit-container")[0]) && (r = n(r), r.attr("colspan", parseInt(r.attr("colspan"), 10) - 1), r.find("col").eq(s).remove(), f = r.find("tr:first")), st(f[0].cells, s, !1));
- for (v = i.thead.prev().find("col"), u = 0, l = v.length; u < l; u += 1)
- if (c = v[u].style.width, c && c.indexOf("%") == -1) o += parseInt(c, 10);
- else {
- o = 0;
- break
- }
- h = n(">.k-grid-header table:first,>.k-grid-footer table:first", i.wrapper).add(i.table);
- i._footerWidth = null;
- o && (h.width(o), i._footerWidth = o);
- e.msie && e.version == 8 && (h.css("display", "inline-table"), setTimeout(function() {
- h.css("display", "table")
- }, 1));
- i.trigger(li, {
- column: t
- })
- }
- },
- showColumn: function(t) {
- var i = this,
- c, u, o, f, r, l, e, a, v, s = i.columns,
- y = i.footer || i.wrapper.find(".k-grid-footer"),
- h;
- if (t = typeof t == "number" ? s[t] : b(s, function(n) {
- return n.field === t
- })[0], t && t.hidden) {
- for (h = d(t, s), t.hidden = !1, t.attributes = ei(t.attributes), t.footerAttributes = ei(t.footerAttributes), t.headerAttributes = ei(t.headerAttributes), i._templates(), i._updateCols(), st(i.thead.find(">tr")[0].cells, h, !0), y[0] && (i._appendCols(y.find("table:first")), st(y.find(".k-footer-template")[0].cells, h, !0)), c = i.tbody.children(), u = 0, o = c.length; u < o; u += 1) f = c.eq(u), f.is(".k-grouping-row,.k-detail-row") ? (r = f.children(":not(.k-group-cell):first,.k-detail-cell").last(), r.attr("colspan", parseInt(r.attr("colspan"), 10) + 1)) : (f.hasClass("k-grid-edit-row") && (r = f.children(".k-edit-container")[0]) && (r = n(r), r.attr("colspan", parseInt(r.attr("colspan"), 10) + 1), ir(r.find(">form>table"), tt(s), !1, 0), f = r.find("tr:first")), st(f[0].cells, h, !0));
- if (l = n(">.k-grid-header table:first,>.k-grid-footer table:first", i.wrapper).add(i.table), t.width) {
- for (e = 0, v = i.thead.prev().find("col"), u = 0, o = v.length; u < o; u += 1) {
- if (a = v[u].style.width, a.indexOf("%") > -1) {
- e = 0;
- break
- }
- e += parseInt(a, 10)
- }
- i._footerWidth = null;
- e && (l.width(e), i._footerWidth = e)
- } else l.width("");
- i.trigger(ai, {
- column: t
- })
- }
- },
- _progress: function(n) {
- var t = this,
- r = t.element.is("table") ? t.element.parent() : t.content && t.content.length ? t.content : t.element;
- i.ui.progress(r, n)
- },
- _resize: function() {
- this.content && (this._setContentHeight(), this._setContentWidth())
- },
- refresh: function(t) {
- var i = this,
- y, f, e = "",
- o = i.dataSource.view(),
- w = i.options.navigatable,
- s, h, u, p = n(i.current()),
- c = !1,
- r = (i.dataSource.group() || []).length,
- a = r + tt(i.columns).length,
- v;
- if ((!t || t.action !== "itemchange" || !i.editable) && (t = t || {}, !i.trigger("dataBinding", {
- action: t.action || "rebind",
- index: t.index,
- items: t.items
- }))) {
- if (v = rt(), w && (i.table[0] === v || n.contains(i.table[0], v) || i._editContainer && i._editContainer.data("kendoWindow")) && (c = p.is("th"), u = 0, c && (u = i.thead.find("th:not(.k-group-cell)").index(p))), i._destroyEditable(), i._progress(!1), i._hideResizeHandle(), i._data = [], i.columns.length || (i._autoColumns(i._firstDataItem(o[0], r)), a = r + i.columns.length), i._group = r > 0 || i._group, i._group && (i._templates(), i._updateCols(), i._updateHeader(r), i._group = r > 0), r > 0)
- for (i.detailTemplate && a++, i.groupFooterTemplate && (i._groupAggregatesDefaultObject = fi(i.dataSource.aggregate())), f = 0, y = o.length; f < y; f++) e += i._groupRowHtml(o[f], a, 0);
- else e += i._rowsHtml(o);
- er ? i.tbody[0].innerHTML = e : (h = document.createElement("div"), h.innerHTML = "<table><tbody>" + e + "<\/tbody><\/table>", s = h.firstChild.firstChild, i.table[0].replaceChild(s, i.tbody[0]), i.tbody = n(s));
- i._footer();
- i._setContentHeight();
- i._setContentWidth();
- u >= 0 && (i._removeCurrent(), c ? i.current(i.thead.find("th:not(.k-group-cell)").eq(u)) : i.current(i.items().eq(u).children().filter(g).first()), i._current && l(i._current.closest("table")[0], !0));
- i.trigger(yi)
- }
- }
- });
- it.plugin(kr);
- it.plugin(tr)
- }(window.kendo.jQuery);
- kendo_module({
- id: "listview",
- name: "ListView",
- category: "web",
- description: "The ListView widget offers rich support for interacting with data.",
- depends: ["data"],
- features: [{
- id: "listview-editing",
- name: "Editing",
- description: "Support for record editing",
- depends: ["editable"]
- }, {
- id: "listview-selection",
- name: "Selection",
- description: "Support for selection",
- depends: ["selectable"]
- }]
- }),
- function(n, t) {
- var i = window.kendo,
- f = "change",
- c = "cancel",
- l = "dataBound",
- a = "dataBinding",
- e = i.ui.Widget,
- r = i.keys,
- v = ">*",
- y = "progress",
- p = "error",
- s = "k-state-focused",
- w = "k-state-selected",
- h = "k-edit-item",
- tt = "string",
- b = "edit",
- k = "remove",
- d = "save",
- it = "click",
- u = ".kendoListView",
- o = n.proxy,
- g = i._activeElement,
- nt = i.ui.progress,
- rt = i.data.DataSource,
- ut = e.extend({
- init: function(t, r) {
- var u = this;
- r = n.isArray(r) ? {
- dataSource: r
- } : r;
- e.fn.init.call(u, t, r);
- r = u.options;
- u.wrapper = t = u.element;
- t[0].id && (u._itemId = t[0].id + "_lv_active");
- u._element();
- u._dataSource();
- u._templates();
- u._navigatable();
- u._selectable();
- u._pageable();
- u._crudHandlers();
- u.options.autoBind && u.dataSource.fetch();
- i.notify(u)
- },
- events: [f, c, a, l, b, k, d],
- options: {
- name: "ListView",
- autoBind: !0,
- selectable: !1,
- navigatable: !1,
- template: "",
- altTemplate: "",
- editTemplate: ""
- },
- setOptions: function(n) {
- e.fn.setOptions.call(this, n);
- this._templates()
- },
- _templates: function() {
- var n = this.options;
- this.template = i.template(n.template || "");
- this.altTemplate = i.template(n.altTemplate || n.template);
- this.editTemplate = i.template(n.editTemplate || "")
- },
- _item: function(n) {
- return this.element.children()[n]()
- },
- items: function() {
- return this.element.children()
- },
- setDataSource: function(n) {
- this.options.dataSource = n;
- this._dataSource();
- this.options.autoBind && n.fetch()
- },
- _unbindDataSource: function() {
- var n = this;
- n.dataSource.unbind(f, n._refreshHandler).unbind(y, n._progressHandler).unbind(p, n._errorHandler)
- },
- _dataSource: function() {
- var n = this;
- n.dataSource && n._refreshHandler ? n._unbindDataSource() : (n._refreshHandler = o(n.refresh, n), n._progressHandler = o(n._progress, n), n._errorHandler = o(n._error, n));
- n.dataSource = rt.create(n.options.dataSource).bind(f, n._refreshHandler).bind(y, n._progressHandler).bind(p, n._errorHandler)
- },
- _progress: function() {
- nt(this.element, !0)
- },
- _error: function() {
- nt(this.element, !1)
- },
- _element: function() {
- this.element.addClass("k-widget k-listview").attr("role", "listbox")
- },
- refresh: function(n) {
- var t = this,
- f = t.dataSource.view(),
- e, s, u, h = "",
- r, o, c = t.template,
- v = t.altTemplate,
- y = g();
- if (n = n || {}, n.action === "itemchange") {
- t._hasBindingTarget() || t.editable || (e = n.items[0], u = t.items().filter("[" + i.attr("uid") + "=" + e.uid + "]"), u.length > 0 && (r = u.index(), u.replaceWith(c(e)), u = t.items().eq(r), u.attr(i.attr("uid"), e.uid), t.trigger("itemChange", {
- item: u,
- data: e
- })));
- return
- }
- if (!t.trigger(a, {
- action: n.action || "rebind",
- items: n.items,
- index: n.index
- })) {
- for (t._destroyEditable(), r = 0, o = f.length; r < o; r++) h += r % 2 ? v(f[r]) : c(f[r]);
- for (t.element.html(h), s = t.items(), r = 0, o = f.length; r < o; r++) s.eq(r).attr(i.attr("uid"), f[r].uid).attr("role", "option").attr("aria-selected", "false");
- t.element[0] === y && t.options.navigatable && t.current(s.eq(0));
- t.trigger(l)
- }
- },
- _pageable: function() {
- var t = this,
- r = t.options.pageable,
- u, f;
- n.isPlainObject(r) && (f = r.pagerId, u = n.extend({}, r, {
- dataSource: t.dataSource,
- pagerId: null
- }), t.pager = new i.ui.Pager(n("#" + f), u))
- },
- _selectable: function() {
- var n = this,
- e, t, o = n.options.selectable,
- s = n.options.navigatable;
- if (o && (e = typeof o === tt && o.toLowerCase().indexOf("multiple") > -1, e && n.element.attr("aria-multiselectable", !0), n.selectable = new i.ui.Selectable(n.element, {
- aria: !0,
- multiple: e,
- filter: v,
- change: function() {
- n.trigger(f)
- }
- }), s)) n.element.on("keydown" + u, function(i) {
- if (i.keyCode === r.SPACEBAR) {
- if (t = n.current(), i.target == i.currentTarget && i.preventDefault(), e)
- if (i.ctrlKey) {
- if (t && t.hasClass(w)) {
- t.removeClass(w);
- return
- }
- } else n.selectable.clear();
- else n.selectable.clear();
- n.selectable.value(t)
- }
- })
- },
- current: function(n) {
- var r = this,
- f = r.element,
- i = r._current,
- u = r._itemId;
- if (n === t) return i;
- i && i[0] && (i[0].id === u && i.removeAttr("id"), i.removeClass(s), f.removeAttr("aria-activedescendant"));
- n && n[0] && (u = n[0].id || u, r._scrollTo(n[0]), f.attr("aria-activedescendant", u), n.addClass(s).attr("id", u));
- r._current = n
- },
- _scrollTo: function(t) {
- var u = this,
- i, e = !1,
- r = "scroll",
- f;
- u.wrapper.css("overflow") == "auto" || u.wrapper.css("overflow") == r ? i = u.wrapper[0] : (i = window, e = !0);
- f = function(u, f) {
- var o = e ? n(t).offset()[u.toLowerCase()] : t["offset" + u],
- s = t["client" + f],
- h = n(i)[r + u](),
- c = n(i)[f.toLowerCase()]();
- o + s > h + c ? n(i)[r + u](o + s - c) : o < h && n(i)[r + u](o)
- };
- f("Top", "Height");
- f("Left", "Width")
- },
- _navigatable: function() {
- var t = this,
- e = t.options.navigatable,
- f = t.element,
- c = function(i) {
- t.current(n(i.currentTarget));
- n(i.target).is(":button,a,:input,a>.k-icon,textarea") || f.focus()
- };
- if (e) {
- t._tabindex();
- f.on("focus" + u, function() {
- var n = t._current;
- n && n.is(":visible") || (n = t._item("first"));
- t.current(n)
- }).on("focusout" + u, function() {
- t._current && t._current.removeClass(s)
- }).on("keydown" + u, function(u) {
- var e = u.keyCode,
- o = t.current(),
- v = n(u.target),
- y = !v.is(":button,textarea,a,a>.t-icon,input"),
- a = v.is(":text"),
- s = i.preventDefault,
- c = f.find("." + h),
- p = g(),
- l, w;
- if ((y || a || r.ESC == e) && (!a || r.ESC == e || r.ENTER == e))
- if (r.UP === e || r.LEFT === e) o && (o = o.prev()), t.current(!o || !o[0] ? t._item("last") : o), s(u);
- else if (r.DOWN === e || r.RIGHT === e) o && (o = o.next()), t.current(!o || !o[0] ? t._item("first") : o), s(u);
- else if (r.PAGEUP === e) t.current(null), t.dataSource.page(t.dataSource.page() - 1), s(u);
- else if (r.PAGEDOWN === e) t.current(null), t.dataSource.page(t.dataSource.page() + 1), s(u);
- else if (r.HOME === e) t.current(t._item("first")), s(u);
- else if (r.END === e) t.current(t._item("last")), s(u);
- else if (r.ENTER === e)
- if (c.length !== 0 && (y || a)) {
- l = t.items().index(c);
- p && p.blur();
- t.save();
- w = function() {
- t.element.trigger("focus");
- t.current(t.items().eq(l))
- };
- t.one("dataBound", w)
- } else t.options.editTemplate !== "" && t.edit(o);
- else if (r.ESC === e) {
- if (c = f.find("." + h), c.length === 0) return;
- l = t.items().index(c);
- t.cancel();
- t.element.trigger("focus");
- t.current(t.items().eq(l))
- }
- });
- f.on("mousedown" + u + " touchstart" + u, v, o(c, t))
- }
- },
- clearSelection: function() {
- var n = this;
- n.selectable.clear();
- n.trigger(f)
- },
- select: function(t) {
- var r = this,
- i = r.selectable;
- if (t = n(t), t.length) {
- i.options.multiple || (i.clear(), t = t.first());
- i.value(t);
- return
- }
- return i.value()
- },
- _destroyEditable: function() {
- var n = this;
- n.editable && (n.editable.destroy(), delete n.editable)
- },
- _modelFromElement: function(n) {
- var t = n.attr(i.attr("uid"));
- return this.dataSource.getByUid(t)
- },
- _closeEditable: function(n) {
- var t = this,
- r = t.editable,
- u, e, o = t.template,
- f = !0;
- return r && (n && (f = r.end()), f && (r.element.index() % 2 && (o = t.altTemplate), u = t._modelFromElement(r.element), t._destroyEditable(), e = r.element.index(), r.element.replaceWith(o(u)), t.items().eq(e).attr(i.attr("uid"), u.uid))), f
- },
- edit: function(n) {
- var t = this,
- r = t._modelFromElement(n),
- u, e = r.uid,
- f;
- t.cancel();
- n = t.items().filter("[" + i.attr("uid") + "=" + e + "]");
- f = n.index();
- n.replaceWith(t.editTemplate(r));
- u = t.items().eq(f).addClass(h).attr(i.attr("uid"), r.uid);
- t.editable = u.kendoEditable({
- model: r,
- clearContainer: !1,
- errorTemplate: !1
- }).data("kendoEditable");
- t.trigger(b, {
- model: r,
- item: u
- })
- },
- save: function() {
- var n = this,
- t = n.editable,
- i;
- t && (t = t.element, i = n._modelFromElement(t), !n.trigger(d, {
- model: i,
- item: t
- }) && n._closeEditable(!0) && n.dataSource.sync())
- },
- remove: function(n) {
- var t = this,
- i = t.dataSource,
- r = t._modelFromElement(n);
- t.trigger(k, {
- model: r,
- item: n
- }) || (n.hide(), i.remove(r), i.sync())
- },
- add: function() {
- var n = this,
- t = n.dataSource,
- i = t.indexOf((t.view() || [])[0]);
- i < 0 && (i = 0);
- n.cancel();
- t.insert(i, {});
- n.edit(n.element.children().first())
- },
- cancel: function() {
- var n = this,
- r = n.dataSource,
- t, i;
- n.editable && (t = n.editable.element, i = n._modelFromElement(t), n.trigger(c, {
- model: i,
- container: t
- }) || (r.cancelChanges(i), n._closeEditable(!1)))
- },
- _crudHandlers: function() {
- var t = this,
- r = it + u;
- t.element.on(r, ".k-edit-button", function(r) {
- var u = n(this).closest("[" + i.attr("uid") + "]");
- t.edit(u);
- r.preventDefault()
- });
- t.element.on(r, ".k-delete-button", function(r) {
- var u = n(this).closest("[" + i.attr("uid") + "]");
- t.remove(u);
- r.preventDefault()
- });
- t.element.on(r, ".k-update-button", function(n) {
- t.save();
- n.preventDefault()
- });
- t.element.on(r, ".k-cancel-button", function(n) {
- t.cancel();
- n.preventDefault()
- })
- },
- destroy: function() {
- var n = this;
- e.fn.destroy.call(n);
- n._unbindDataSource();
- n._destroyEditable();
- n.element.off(u);
- n.pager && n.pager.destroy();
- n.selectable && n.selectable.destroy();
- i.destroy(n.element)
- }
- });
- i.ui.plugin(ut)
- }(window.kendo.jQuery);
- kendo_module({
- id: "numerictextbox",
- name: "NumericTextBox",
- category: "web",
- description: "The NumericTextBox widget can format and display numeric, percentage or currency textbox.",
- depends: ["core", "userevents"]
- }),
- function(n, t) {
- function ut(n, t) {
- return '<span unselectable="on" class="k-link"><span unselectable="on" class="k-icon k-i-arrow-' + n + '" title="' + t + '">' + t + "<\/span><\/span>"
- }
- function y(i, r) {
- var f, s = r !== t,
- u, e, o, h;
- return i.selectionStart !== t ? s ? (i.focus(), i.setSelectionRange(r, r)) : r = [i.selectionStart, i.selectionEnd] : document.selection && (n(i).is(":visible") && i.focus(), f = document.selection.createRange(), s ? (f.move("character", r), f.select()) : (u = i.createTextRange(), e = u.duplicate(), u.moveToBookmark(f.getBookmark()), e.setEndPoint("EndToStart", u), o = e.text.length, h = o + u.text.length, r = [o, h])), r
- }
- var r = window.kendo,
- e = r.keys,
- p = r.ui,
- s = p.Widget,
- ft = r._activeElement,
- et = r._extractFormat,
- ot = r.parseFloat,
- st = r.support.placeholder,
- ht = r.getCulture,
- w = r._round,
- h = "change",
- b = "disabled",
- k = "readonly",
- ct = "k-input",
- d = "spin",
- u = ".kendoNumericTextBox",
- lt = "touchend",
- at = "mouseleave" + u,
- g = "mouseenter" + u + " " + at,
- c = "k-state-default",
- nt = "k-state-focused",
- tt = "k-state-hover",
- l = "focus",
- f = ".",
- a = "k-state-selected",
- v = "k-state-disabled",
- it = "aria-disabled",
- rt = "aria-readonly",
- vt = /^(-)?(\d*)$/,
- i = null,
- o = n.proxy,
- yt = s.extend({
- init: function(n, f) {
- var e = this,
- p = f && f.step !== t,
- h, c, a, v, y;
- if (s.fn.init.call(e, n, f), f = e.options, n = e.element.on("blur" + u, o(e._focusout, e)).attr("role", "spinbutton"), f.placeholder = f.placeholder || n.attr("placeholder"), e._reset(), e._wrapper(), e._arrows(), e._input(), r.support.mobileOS) e._text.on(lt + u + " " + l + u, function(t) {
- e._toggleText(!1);
- t.type === l && n.focus()
- });
- else e._text.on(l + u, o(e._click, e));
- h = e.min(n.attr("min"));
- c = e.max(n.attr("max"));
- a = e._parse(n.attr("step"));
- f.min === i && h !== i && (f.min = h);
- f.max === i && c !== i && (f.max = c);
- p || a === i || (f.step = a);
- n.attr("aria-valuemin", f.min).attr("aria-valuemax", f.max);
- f.format = et(f.format);
- v = f.value;
- e.value(v !== i ? v : n.val());
- y = n.is("[disabled]");
- y ? e.enable(!1) : e.readonly(n.is("[readonly]"));
- r.notify(e)
- },
- options: {
- name: "NumericTextBox",
- decimals: i,
- min: i,
- max: i,
- value: i,
- step: 1,
- culture: "",
- format: "n",
- spinners: !0,
- placeholder: "",
- upArrowText: "Increase value",
- downArrowText: "Decrease value"
- },
- events: [h, d],
- _editable: function(n) {
- var t = this,
- f = t.element,
- i = n.disable,
- r = n.readonly,
- e = t._text.add(f),
- s = t._inputWrapper.off(g);
- if (t._toggleText(!0), t._upArrowEventHandler.unbind("press"), t._downArrowEventHandler.unbind("press"), f.off("keydown" + u).off("keypress" + u).off("paste" + u), r || i) s.addClass(i ? v : c).removeClass(i ? c : v), e.attr(b, i).attr(k, r).attr(it, i).attr(rt, r);
- else {
- s.addClass(c).removeClass(v).on(g, t._toggleHover);
- e.removeAttr(b).removeAttr(k).attr(it, !1).attr(rt, !1);
- t._upArrowEventHandler.bind("press", function(n) {
- n.preventDefault();
- t._spin(1);
- t._upArrow.addClass(a)
- });
- t._downArrowEventHandler.bind("press", function(n) {
- n.preventDefault();
- t._spin(-1);
- t._downArrow.addClass(a)
- });
- t.element.on("keydown" + u, o(t._keydown, t)).on("keypress" + u, o(t._keypress, t)).on("paste" + u, o(t._paste, t))
- }
- },
- readonly: function(n) {
- this._editable({
- readonly: n === t ? !0 : n,
- disable: !1
- })
- },
- enable: function(n) {
- this._editable({
- readonly: !1,
- disable: !(n = n === t ? !0 : n)
- })
- },
- destroy: function() {
- var n = this;
- n.element.add(n._text).add(n._upArrow).add(n._downArrow).add(n._inputWrapper).off(u);
- n._upArrowEventHandler.destroy();
- n._downArrowEventHandler.destroy();
- n._form && n._form.off("reset", n._resetHandler);
- s.fn.destroy.call(n)
- },
- min: function(n) {
- return this._option("min", n)
- },
- max: function(n) {
- return this._option("max", n)
- },
- step: function(n) {
- return this._option("step", n)
- },
- value: function(n) {
- var i = this,
- r;
- if (n === t) return i._value;
- (n = i._parse(n), r = i._adjust(n), n === r) && (i._update(n), i._old = i._value)
- },
- focus: function() {
- this._focusin()
- },
- _adjust: function(n) {
- var f = this,
- u = f.options,
- t = u.min,
- r = u.max;
- return n === i ? n : (t !== i && n < t ? n = t : r !== i && n > r && (n = r), n)
- },
- _arrows: function() {
- var t = this,
- i, f = function() {
- clearTimeout(t._spinning);
- i.removeClass(a)
- },
- u = t.options,
- e = u.spinners,
- o = t.element;
- i = o.siblings(".k-icon");
- i[0] || (i = n(ut("n", u.upArrowText) + ut("s", u.downArrowText)).insertAfter(o), i.wrapAll('<span class="k-select"/>'));
- e || (i.parent().toggle(e), t._inputWrapper.addClass("k-expand-padding"));
- t._upArrow = i.eq(0);
- t._upArrowEventHandler = new r.UserEvents(t._upArrow, {
- release: f
- });
- t._downArrow = i.eq(1);
- t._downArrowEventHandler = new r.UserEvents(t._downArrow, {
- release: f
- })
- },
- _blur: function() {
- var n = this;
- n._toggleText(!0);
- n._change(n.element.val())
- },
- _click: function(n) {
- var t = this;
- clearTimeout(t._focusing);
- t._focusing = setTimeout(function() {
- var o = n.target,
- l = y(o)[0],
- s = o.value.substring(0, l),
- h = t._format(t.options.format),
- i = h[","],
- r, c, u, e = 0;
- i && (c = new RegExp("\\" + i, "g"), u = new RegExp("([\\d\\" + i + "]+)(\\" + h[f] + ")?(\\d+)?"));
- u && (r = u.exec(s));
- r && (e = r[0].replace(c, "").length, s.indexOf("(") != -1 && t._value < 0 && e++);
- t._focusin();
- y(t.element[0], e)
- })
- },
- _change: function(n) {
- var t = this;
- t._update(n);
- n = t._value;
- t._old != n && (t._old = n, t.trigger(h), t.element.trigger(h))
- },
- _culture: function(n) {
- return n || ht(this.options.culture)
- },
- _focusin: function() {
- var n = this;
- n._inputWrapper.addClass(nt);
- n._toggleText(!1);
- n.element[0].focus()
- },
- _focusout: function() {
- var n = this;
- clearTimeout(n._focusing);
- n._inputWrapper.removeClass(nt).removeClass(tt);
- n._blur()
- },
- _format: function(n, t) {
- var i = this._culture(t).numberFormat;
- return n = n.toLowerCase(), n.indexOf("c") > -1 ? i = i.currency : n.indexOf("p") > -1 && (i = i.percent), i
- },
- _input: function() {
- var r = this,
- u = "k-formatted-value",
- t = r.element.addClass(ct).show()[0],
- e = t.accessKey,
- o = r.wrapper,
- i;
- i = o.find(f + u);
- i[0] || (i = n('<input type="text"/>').insertBefore(t).addClass(u));
- try {
- t.setAttribute("type", "text")
- } catch (s) {
- t.type = "text"
- }
- i[0].tabIndex = t.tabIndex;
- i[0].style.cssText = t.style.cssText;
- i.prop("placeholder", r.options.placeholder);
- e && (i.attr("accesskey", e), t.accessKey = "");
- r._text = i.addClass(t.className)
- },
- _keydown: function(n) {
- var t = this,
- i = n.keyCode;
- i == e.DOWN ? t._step(-1) : i == e.UP ? t._step(1) : i == e.ENTER && t._change(t.element.val())
- },
- _keypress: function(n) {
- if (n.which !== 0 && n.keyCode !== e.BACKSPACE && n.keyCode !== e.ENTER) {
- var i = this.element,
- f = String.fromCharCode(n.which),
- r = y(i[0]),
- o = r[0],
- s = r[1],
- u = this.options.min,
- t = i.val();
- t = t.substring(0, o) + f + t.substring(s);
- (u !== null && u >= 0 && t.charAt(0) === "-" || !this._numericRegex().test(t)) && n.preventDefault()
- }
- },
- _numericRegex: function() {
- var t = this,
- u = t.options,
- e = t._format(u.format),
- n = e[f],
- r = u.decimals;
- return (n === f && (n = "\\" + n), r === i && (r = e.decimals), r === 0) ? vt : (t._separator !== n && (t._separator = n, t._floatRegExp = new RegExp("^(-)?(((\\d+(" + n + "\\d*)?)|(" + n + "\\d*)))?$")), t._floatRegExp)
- },
- _paste: function(n) {
- var t = this,
- r = n.target,
- u = r.value;
- setTimeout(function() {
- t._parse(r.value) === i && t._update(u)
- })
- },
- _option: function(n, i) {
- var r = this,
- u = r.options;
- if (i === t) return u[n];
- (i = r._parse(i), i || n !== "step") && (u[n] = i, r.element.attr("aria-value" + n, i).attr(n, i))
- },
- _spin: function(n, t) {
- var i = this;
- t = t || 500;
- clearTimeout(i._spinning);
- i._spinning = setTimeout(function() {
- i._spin(n, 50)
- }, t);
- i._step(n)
- },
- _step: function(n) {
- var t = this,
- i = t.element,
- r = t._parse(i.val()) || 0;
- ft() != i[0] && t._focusin();
- r += t.options.step * n;
- t._update(t._adjust(r));
- t.trigger(d)
- },
- _toggleHover: function(t) {
- n(t.currentTarget).toggleClass(tt, t.type === "mouseenter")
- },
- _toggleText: function(n) {
- var t = this;
- t._text.toggle(n);
- t.element.toggle(!n)
- },
- _parse: function(n, t) {
- return ot(n, this._culture(t), this.options.format)
- },
- _update: function(n) {
- var t = this,
- s = t.options,
- h = s.format,
- u = s.decimals,
- e = t._culture(),
- c = t._format(h, e),
- o;
- u === i && (u = c.decimals);
- n = t._parse(n, e);
- o = n !== i;
- o && (n = parseFloat(w(n, u)));
- t._value = n = t._adjust(n);
- t._placeholder(r.toString(n, h, e));
- o ? (n = n.toString(), n.indexOf("e") !== -1 && (n = w(+n, u)), n = n.replace(f, c[f])) : n = "";
- t.element.val(n).attr("aria-valuenow", n)
- },
- _placeholder: function(n) {
- this._text.val(n);
- st || n || this._text.val(this.options.placeholder)
- },
- _wrapper: function() {
- var i = this,
- r = i.element,
- u = r[0],
- t;
- t = r.parents(".k-numerictextbox");
- t.is("span.k-numerictextbox") || (t = r.hide().wrap('<span class="k-numeric-wrap k-state-default" />').parent(), t = t.wrap("<span/>").parent());
- t[0].style.cssText = u.style.cssText;
- u.style.width = "";
- i.wrapper = t.addClass("k-widget k-numerictextbox").addClass(u.className).css("display", "");
- i._inputWrapper = n(t[0].firstChild)
- },
- _reset: function() {
- var t = this,
- i = t.element,
- r = i.attr("form"),
- u = r ? n("#" + r) : i.closest("form");
- u[0] && (t._resetHandler = function() {
- setTimeout(function() {
- t.value(i[0].value)
- })
- }, t._form = u.on("reset", t._resetHandler))
- }
- });
- p.plugin(yt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "menu",
- name: "Menu",
- category: "web",
- description: "The Menu widget displays hierarchical data as a multi-level menu.",
- depends: ["popup"]
- }),
- function(n, t) {
- function yi(n, t) {
- return n = n.split(" ")[!t + 0] || n, n.replace("top", "up").replace("bottom", "down")
- }
- function pi(n, t, r) {
- n = n.split(" ")[!t + 0] || n;
- var u = {
- origin: ["bottom", r ? "right" : "left"],
- position: ["top", r ? "right" : "left"]
- },
- f = /left|right/.test(n);
- return f ? (u.origin = ["top", n], u.position[1] = i.directions[n].reverse) : (u.origin[0] = n, u.position[0] = i.directions[n].reverse), u.origin = u.origin.join(" "), u.position = u.position.join(" "), u
- }
- function d(t, i) {
- try {
- return n.contains(t, i)
- } catch (r) {
- return !1
- }
- }
- function oi(t) {
- t = n(t);
- t.addClass("k-item").children(pt).addClass(kt);
- t.children("a").addClass(k).children(pt).addClass(kt);
- t.filter(":not([disabled])").addClass(ui);
- t.filter(".k-separator:empty").append(" ");
- t.filter("li[disabled]").addClass(y).removeAttr("disabled").attr("aria-disabled", !0);
- t.filter("[role]").length || t.attr("role", "menuitem");
- t.children("." + k).length || t.contents().filter(function() {
- return !this.nodeName.match(ci) && !(this.nodeType == 3 && !n.trim(this.nodeValue))
- }).wrapAll("<span class='" + k + "'/>");
- b(t);
- c(t)
- }
- function b(t) {
- t = n(t);
- t.find("> .k-link > [class*=k-i-arrow]:not(.k-sprite)").remove();
- t.filter(":has(.k-group)").children(".k-link:not(:has([class*=k-i-arrow]:not(.k-sprite)))").each(function() {
- var t = n(this),
- i = t.parent().parent();
- t.append("<span class='k-icon " + (i.hasClass(h + "-horizontal") ? "k-i-arrow-s" : "k-i-arrow-e") + "'/>")
- })
- }
- function c(t) {
- t = n(t);
- t.filter(".k-first:not(:first-child)").removeClass(bt);
- t.filter(".k-last:not(:last-child)").removeClass(wt);
- t.filter(":first-child").addClass(bt);
- t.filter(":last-child").addClass(wt)
- }
- var i = window.kendo,
- si = i.ui,
- hi = i._activeElement,
- ft = i.support.touch && i.support.mobileOS,
- et = "mousedown",
- ot = "click",
- f = n.extend,
- u = n.proxy,
- st = n.each,
- o = i.template,
- e = i.keys,
- g = si.Widget,
- ci = /^(ul|a|div)$/i,
- r = ".kendoMenu",
- pt = "img",
- ht = "open",
- h = "k-menu",
- k = "k-link",
- wt = "k-last",
- nt = "close",
- tt = "timer",
- bt = "k-first",
- kt = "k-image",
- dt = "select",
- a = "zIndex",
- gt = "activate",
- ni = "deactivate",
- ti = "touchstart" + r + " MSPointerDown" + r + " pointerdown" + r,
- it = i.support.pointers,
- rt = i.support.msPointers,
- ct = it ? "pointerover" : rt ? "MSPointerOver" : "mouseenter",
- ii = it ? "pointerout" : rt ? "MSPointerOut" : "mouseleave",
- ri = ft || rt || it,
- ut = "kendoPopup",
- ui = "k-state-default",
- lt = "k-state-hover",
- v = "k-state-focused",
- y = "k-state-disabled",
- at = ".k-group",
- p = ":not(.k-list) > .k-item",
- li = ".k-item.k-state-disabled",
- vt = ".k-item:not(.k-state-disabled)",
- ai = ".k-item:not(.k-state-disabled) > .k-link",
- fi = ":not(.k-item.k-separator)",
- w = fi + ":eq(0)",
- ei = fi + ":last",
- vi = "div:not(.k-animation-container,.k-list-container)",
- s = {
- content: o("<div class='k-content k-group' tabindex='-1'>#= content(item) #<\/div>"),
- group: o("<ul class='#= groupCssClass(group) #'#= groupAttributes(group) # role='menu' aria-hidden='true'>#= renderItems(data) #<\/ul>"),
- itemWrapper: o("<#= tag(item) # class='#= textClass(item) #'#= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) ##= arrow(data) #<\/#= tag(item) #>"),
- item: o("<li class='#= wrapperCssClass(group, item) #' role='menuitem' #=item.items ? \"aria-haspopup='true'\": \"\"##=item.enabled === false ? \"aria-disabled='true'\" : ''#>#= itemWrapper(data) ## if (item.items) { ##= subGroup({ items: item.items, menu: menu, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #<\/li>"),
- image: o("<img class='k-image' alt='' src='#= imageUrl #' />"),
- arrow: o("<span class='#= arrowClass(item, group) #'><\/span>"),
- sprite: o("<span class='k-sprite #= spriteCssClass #'><\/span>"),
- empty: o("")
- },
- yt = {
- wrapperCssClass: function(n, t) {
- var i = "k-item",
- r = t.index;
- return i += t.enabled === !1 ? " k-state-disabled" : " k-state-default", n.firstLevel && r === 0 && (i += " k-first"), r == n.length - 1 && (i += " k-last"), t.cssClass && (i += " " + t.cssClass), i
- },
- textClass: function() {
- return k
- },
- textAttributes: function(n) {
- return n.url ? " href='" + n.url + "'" : ""
- },
- arrowClass: function(n, t) {
- return "k-icon" + (t.horizontal ? " k-i-arrow-s" : " k-i-arrow-e")
- },
- text: function(n) {
- return n.encoded === !1 ? n.text : i.htmlEncode(n.text)
- },
- tag: function(n) {
- return n.url ? "a" : "span"
- },
- groupAttributes: function(n) {
- return n.expanded !== !0 ? " style='display:none'" : ""
- },
- groupCssClass: function() {
- return "k-group"
- },
- content: function(n) {
- return n.content ? n.content : " "
- }
- },
- l = g.extend({
- init: function(t, f) {
- var e = this;
- g.fn.init.call(e, t, f);
- t = e.wrapper = e.element;
- f = e.options;
- e._initData(f);
- e._updateClasses();
- e._animations(f);
- e.nextItemZIndex = 100;
- e._tabindex();
- e._focusProxy = u(e._focusHandler, e);
- t.on(ti, e._focusProxy).on(ot + r, li, !1).on(ot + r, vt, u(e._click, e)).on("keydown" + r, u(e._keydown, e)).on("focus" + r, u(e._focus, e)).on("focus" + r, ".k-content", u(e._focus, e)).on(ti + " " + et + r, ".k-content", u(e._preventClose, e)).on("blur" + r, u(e._removeHoverItem, e)).on("blur" + r, "[tabindex]", u(e._checkActiveElement, e)).on(ct + r, vt, u(e._mouseenter, e)).on(ii + r, vt, u(e._mouseleave, e)).on(ct + r + " " + ii + r + " " + et + r + " " + ot + r, ai, u(e._toggleHover, e));
- f.openOnClick && (e.clicked = !1, e._documentClickHandler = u(e._documentClick, e), n(document).click(e._documentClickHandler));
- t.attr("role", "menubar");
- t[0].id && (e._ariaId = i.format("{0}_mn_active", t[0].id));
- i.notify(e)
- },
- events: [ht, nt, gt, ni, dt],
- options: {
- name: "Menu",
- animation: {
- open: {
- duration: 200
- },
- close: {
- duration: 100
- }
- },
- orientation: "horizontal",
- direction: "default",
- openOnClick: !1,
- closeOnClick: !0,
- hoverDelay: 100
- },
- _initData: function(n) {
- var t = this;
- n.dataSource && (t.element.empty(), t.append(n.dataSource, t.element))
- },
- setOptions: function(n) {
- var t = this.options.animation;
- this._animations(n);
- n.animation = f(!0, t, n.animation);
- "dataSource" in n && this._initData(n);
- g.fn.setOptions.call(this, n)
- },
- destroy: function() {
- var t = this;
- g.fn.destroy.call(t);
- t.element.off(r);
- t._documentClickHandler && n(document).unbind("click", t._documentClickHandler);
- i.destroy(t.element)
- },
- enable: function(n, t) {
- return this._toggleDisabled(n, t !== !1), this
- },
- disable: function(n) {
- return this._toggleDisabled(n, !1), this
- },
- append: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.length ? t.find("> .k-group, > .k-animation-container > .k-group") : null);
- return st(i.items, function() {
- i.group.append(this);
- b(this)
- }), b(t), c(i.group.find(".k-first, .k-last").add(i.items)), this
- },
- insertBefore: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.parent());
- return st(i.items, function() {
- t.before(this);
- b(this);
- c(this)
- }), c(t), this
- },
- insertAfter: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.parent());
- return st(i.items, function() {
- t.after(this);
- b(this);
- c(this)
- }), c(t), this
- },
- _insert: function(t, i, r) {
- var c = this,
- u, s, e, o;
- return i && i.length || (r = c.element), e = n.isPlainObject(t), o = {
- firstLevel: r.hasClass(h),
- horizontal: r.hasClass(h + "-horizontal"),
- expanded: !0,
- length: r.children().length
- }, i && !r.length && (r = n(l.renderGroup({
- group: o
- })).appendTo(i)), e || n.isArray(t) ? u = n(n.map(e ? [t] : t, function(t, i) {
- return typeof t == "string" ? n(t).get() : n(l.renderItem({
- group: o,
- item: f(t, {
- index: i
- })
- })).get()
- })) : (u = n(t), s = u.find("> ul").addClass("k-group").attr("role", "menu"), u = u.filter("li"), u.add(s.find("> li")).each(function() {
- oi(this)
- })), {
- items: u,
- group: r
- }
- },
- remove: function(n) {
- var r;
- n = this.element.find(n);
- var u = this,
- t = n.parentsUntil(u.element, p),
- i = n.parent("ul:not(.k-menu)");
- return n.remove(), i && !i.children(p).length && (r = i.parent(".k-animation-container"), r.length ? r.remove() : i.remove()), t.length && (t = t.eq(0), b(t), c(t)), u
- },
- open: function(r) {
- var u = this,
- e = u.options,
- s = e.orientation == "horizontal",
- o = e.direction,
- c = i.support.isRtl(u.wrapper);
- return r = u.element.find(r), /^(top|bottom|default)$/.test(o) && (o = c ? s ? (o + " left").replace("default", "bottom") : "left" : s ? (o + " right").replace("default", "bottom") : "right"), r.siblings().find(">.k-popup:visible,>.k-animation-container>.k-popup:visible").each(function() {
- var t = n(this).data("kendoPopup");
- t && t.close()
- }), r.each(function() {
- var i = n(this);
- clearTimeout(i.data(tt));
- i.data(tt, setTimeout(function() {
- var r = i.find(".k-group:first:hidden"),
- l;
- if (r[0] && u.trigger(ht, {
- item: i[0]
- }) === !1) {
- !r.find(".k-group")[0] && r.children(".k-item").length > 1 ? setTimeout(function() {
- r.css({
- maxHeight: n(window).height(),
- overflow: "auto"
- })
- }) : r.css({
- maxHeight: "",
- overflow: ""
- });
- i.data(a, i.css(a));
- i.css(a, u.nextItemZIndex++);
- l = r.data(ut);
- var y = i.parent().hasClass(h),
- b = y && s,
- v = pi(o, y, c),
- p = e.animation.open.effects,
- w = p !== t ? p : "slideIn:" + yi(o, y);
- l ? (l = r.data(ut), l.options.origin = v.origin, l.options.position = v.position, l.options.animation.open.effects = w) : l = r.kendoPopup({
- activate: function() {
- u.trigger(gt, {
- item: this.wrapper.parent()
- })
- },
- deactivate: function() {
- u.trigger(ni, {
- item: this.wrapper.parent()
- })
- },
- origin: v.origin,
- position: v.position,
- collision: e.popupCollision !== t ? e.popupCollision : b ? "fit" : "fit flip",
- anchor: i,
- appendTo: i,
- animation: {
- open: f(!0, {
- effects: w
- }, e.animation.open),
- close: e.animation.close
- },
- close: function(n) {
- var t = n.sender.wrapper.parent();
- u.trigger(nt, {
- item: t[0]
- }) ? n.preventDefault() : (t.css(a, t.data(a)), t.removeData(a), ri && (t.removeClass(lt), u._removeHoverItem()))
- }
- }).data(ut);
- r.removeAttr("aria-hidden");
- l.open()
- }
- }, u.options.hoverDelay))
- }), u
- },
- close: function(t) {
- var i = this,
- r = i.element;
- return t = r.find(t), t.length || (t = r.find(">.k-item")), t.each(function() {
- var t = n(this);
- i._isRootItem(t) && (i.clicked = !1);
- clearTimeout(t.data(tt));
- t.data(tt, setTimeout(function() {
- var n = t.find(".k-group:not(.k-list-container):not(.k-calendar-container):first:visible").data(ut);
- n && (n.close(), n.element.attr("aria-hidden", !0))
- }, i.options.hoverDelay))
- }), i
- },
- _toggleDisabled: function(t, i) {
- this.element.find(t).each(function() {
- n(this).toggleClass(ui, i).toggleClass(y, !i).attr("aria-disabled", !i)
- })
- },
- _toggleHover: function(t) {
- var r = n(i.eventTarget(t) || t.target).closest(p),
- u = t.type == ct || et.indexOf(t.type) !== -1;
- r.parents("li." + y).length || r.toggleClass(lt, u || t.type == "mousedown" || t.type == "click");
- this._removeHoverItem()
- },
- _preventClose: function() {
- this.options.closeOnClick || (this._closurePrevented = !0)
- },
- _checkActiveElement: function(t) {
- var u = this,
- f = n(t ? t.currentTarget : this._hoverItem()),
- r = u._findRootParent(f)[0];
- this._closurePrevented || setTimeout(function() {
- document.hasFocus() && (d(r, i._activeElement()) || !t || d(r, t.currentTarget)) || u.close(r)
- }, 0);
- this._closurePrevented = !1
- },
- _removeHoverItem: function() {
- var n = this._hoverItem();
- n && n.hasClass(v) && (n.removeClass(v), this._oldHoverItem = null)
- },
- _updateClasses: function() {
- var n = this.element,
- t;
- n.addClass("k-widget k-reset k-header " + h).addClass(h + "-" + this.options.orientation);
- n.find("li > ul").addClass("k-group").attr("role", "menu").attr("aria-hidden", n.is(":visible")).end().find("li > div").addClass("k-content").attr("tabindex", "-1");
- t = n.find("> li,.k-group > li");
- t.each(function() {
- oi(this)
- })
- },
- _mouseenter: function(t) {
- var i = this,
- r = n(t.currentTarget),
- f = r.children(".k-animation-container").length || r.children(at).length;
- t.delegateTarget == r.parents(".k-menu")[0] && (i.options.openOnClick && !i.clicked || ft || !d(t.currentTarget, t.relatedTarget) && f && i.open(r), (i.options.openOnClick && i.clicked || ri) && r.siblings().each(u(function(n, t) {
- i.close(t)
- }, i)))
- },
- _mouseleave: function(t) {
- var r = this,
- i = n(t.currentTarget),
- u = i.children(".k-animation-container").length || i.children(at).length;
- if (i.parentsUntil(".k-animation-container", ".k-list-container,.k-calendar-container")[0]) {
- t.stopImmediatePropagation();
- return
- }
- r.options.openOnClick || ft || (it || rt) && t.originalEvent.pointerType == t.originalEvent.MSPOINTER_TYPE_TOUCH || d(t.currentTarget, t.relatedTarget || t.target) || !u || r.close(i)
- },
- _click: function(t) {
- var r = this,
- c, f = r.options,
- e = n(i.eventTarget(t)),
- o = e[0] ? e[0].nodeName.toUpperCase() : "",
- v = o == "INPUT" || o == "SELECT" || o == "BUTTON" || o == "LABEL",
- l = e.closest("." + k),
- u = e.closest(p),
- w = l.attr("href"),
- s, b, a = !!w && w !== n("<a href='#' />").attr("href");
- if (!u.children(vi)[0]) {
- if (u.hasClass(y)) {
- t.preventDefault();
- return
- }
- if (t.handled || !r.trigger(dt, {
- item: u[0]
- }) || v || t.preventDefault(), t.handled = !0, s = u.children(at + ",.k-animation-container"), b = s.is(":visible"), f.closeOnClick && !a && (!s.length || f.openOnClick && b)) {
- u.removeClass(lt).css("height");
- r._oldHoverItem = r._findRootParent(u);
- r.close(l.parentsUntil(r.element, p));
- r.clicked = !1;
- "MSPointerUp".indexOf(t.type) != -1 && t.preventDefault();
- return
- }(a && t.enterKey && l[0].click(), u.parent().hasClass(h) && f.openOnClick || i.support.touch) && (a || v || t.preventDefault(), r.clicked = !0, c = s.is(":visible") ? nt : ht, f.closeOnClick || c != nt) && r[c](u)
- }
- },
- _documentClick: function(n) {
- d(this.element[0], n.target) || (this.clicked = !1)
- },
- _focus: function(t) {
- var i = this,
- r = t.target,
- u = i._hoverItem(),
- f = hi();
- if (r != i.wrapper[0] && !n(r).is(":kendoFocusable")) {
- t.stopPropagation();
- n(r).closest(".k-content").closest(".k-group").closest(".k-item").addClass(v);
- i.wrapper.focus();
- return
- }
- f === t.currentTarget && (u.length ? i._moveHover([], u) : i._oldHoverItem || i._moveHover([], i.wrapper.children().first()))
- },
- _keydown: function(n) {
- var t = this,
- f = n.keyCode,
- r = t._oldHoverItem,
- u, o, s, h = i.support.isRtl(t.wrapper);
- if (n.target == n.currentTarget || f == e.ESC) {
- if (r || (r = t._oldHoverItem = t._hoverItem()), o = t._itemBelongsToVertival(r), s = t._itemHasChildren(r), f == e.RIGHT) u = t[h ? "_itemLeft" : "_itemRight"](r, o, s);
- else if (f == e.LEFT) u = t[h ? "_itemRight" : "_itemLeft"](r, o, s);
- else if (f == e.DOWN) u = t._itemDown(r, o, s);
- else if (f == e.UP) u = t._itemUp(r, o, s);
- else if (f == e.ESC) u = t._itemEsc(r, o);
- else if (f == e.ENTER || f == e.SPACEBAR) u = r.children(".k-link"), u.length > 0 && (t._click({
- target: u[0],
- preventDefault: function() {},
- enterKey: !0
- }), t._moveHover(r, t._findRootParent(r)));
- else if (f == e.TAB) {
- u = t._findRootParent(r);
- t._moveHover(r, u);
- t._checkActiveElement();
- return
- }
- u && u[0] && (n.preventDefault(), n.stopPropagation())
- }
- },
- _hoverItem: function() {
- return this.wrapper.find(".k-item.k-state-hover,.k-item.k-state-focused").filter(":visible")
- },
- _itemBelongsToVertival: function(n) {
- var t = this.wrapper.hasClass("k-menu-vertical");
- return n.length ? n.parent().hasClass("k-group") || t : t
- },
- _itemHasChildren: function(n) {
- return n.length ? n.children("ul.k-group, div.k-animation-container").length > 0 : !1
- },
- _moveHover: function(n, t) {
- var r = this,
- i = r._ariaId;
- n.length && t.length && (n.removeClass(v), n[0].id === i && n.removeAttr("id"));
- t.length && (t[0].id && (i = t[0].id), t.addClass(v), r._oldHoverItem = t, i && (r.element.removeAttr("aria-activedescendant"), t.attr("id", i), r.element.attr("aria-activedescendant", i)))
- },
- _findRootParent: function(n) {
- return n.parent().hasClass("k-menu") ? n : n.parentsUntil(".k-menu", "li.k-item").last()
- },
- _isRootItem: function(n) {
- return n.parent().hasClass("k-menu")
- },
- _itemRight: function(n, t, i) {
- var u = this,
- r, f;
- if (!n.hasClass(y)) return t ? i ? (u.open(n), r = n.find(".k-group").children().first()) : u.options.orientation == "horizontal" && (f = u._findRootParent(n), u.close(f), r = f.nextAll(w)) : (r = n.nextAll(w), r.length || (r = n.prevAll(ei))), r && !r.length ? r = u.wrapper.children(".k-item").first() : r || (r = []), u._moveHover(n, r), r
- },
- _itemLeft: function(n, t) {
- var r = this,
- i;
- return t ? (i = n.parent().closest(".k-item"), r.close(i), r._isRootItem(i) && r.options.orientation == "horizontal" && (i = i.prevAll(w))) : (i = n.prevAll(w), i.length || (i = n.nextAll(ei))), i.length || (i = r.wrapper.children(".k-item").last()), r._moveHover(n, i), i
- },
- _itemDown: function(n, t, i) {
- var u = this,
- r;
- if (t) r = n.nextAll(w);
- else {
- if (!i || n.hasClass(y)) return;
- u.open(n);
- r = n.find(".k-group").children().first()
- }
- return !r.length && n.length ? r = n.parent().children().first() : n.length || (r = u.wrapper.children(".k-item").first()), u._moveHover(n, r), r
- },
- _itemUp: function(n, t) {
- var r = this,
- i;
- if (t) i = n.prevAll(w);
- else return;
- return !i.length && n.length ? i = n.parent().children().last() : n.length || (i = r.wrapper.children(".k-item").last()), r._moveHover(n, i), i
- },
- _itemEsc: function(n, t) {
- var r = this,
- i;
- if (t) i = n.parent().closest(".k-item"), r.close(i), r._moveHover(n, i);
- else return n;
- return i
- },
- _focusHandler: function(t) {
- var u = this,
- r = n(i.eventTarget(t)).closest(p);
- setTimeout(function() {
- u._moveHover([], r);
- r.children(".k-content")[0] && r.parent().closest(".k-item").removeClass(v)
- }, 200)
- },
- _animations: function(n) {
- n && "animation" in n && !n.animation && (n.animation = {
- open: {
- effects: {}
- },
- close: {
- hide: !0,
- effects: {}
- }
- })
- }
- });
- f(l, {
- renderItem: function(n) {
- n = f({
- menu: {},
- group: {}
- }, n);
- var i = s.empty,
- t = n.item;
- return s.item(f(n, {
- image: t.imageUrl ? s.image : i,
- sprite: t.spriteCssClass ? s.sprite : i,
- itemWrapper: s.itemWrapper,
- renderContent: l.renderContent,
- arrow: t.items || t.content ? s.arrow : i,
- subGroup: l.renderGroup
- }, yt))
- },
- renderGroup: function(n) {
- return s.group(f({
- renderItems: function(n) {
- for (var r = "", t = 0, i = n.items, u = i ? i.length : 0, e = f({
- length: u
- }, n.group); t < u; t++) r += l.renderItem(f(n, {
- group: e,
- item: f({
- index: t
- }, i[t])
- }));
- return r
- }
- }, n, yt))
- },
- renderContent: function(n) {
- return s.content(f(n, yt))
- }
- });
- i.ui.plugin(l)
- }(window.kendo.jQuery);
- kendo_module({
- id: "filtermenu",
- name: "Filtering Menu",
- category: "framework",
- depends: ["datepicker", "numerictextbox", "dropdownlist"],
- advanced: !0
- }),
- function(n) {
- function c(t, i) {
- t.filters && (t.filters = n.grep(t.filters, function(n) {
- return c(n, i), n.filters ? n.filters.length : n.field != i
- }))
- }
- function l(n) {
- var i, u, t, f, e, r;
- if (n && n.length)
- for (r = [], i = 0, u = n.length; i < u; i++) t = n[i], e = t.text || t.value || t, f = t.value == null ? t.text || t : t.value, r[i] = {
- text: e,
- value: f
- };
- return r
- }
- function d(t, i) {
- return n.grep(t, function(t) {
- return t.filters ? (t.filters = n.grep(t.filters, function(n) {
- return n.field != i
- }), t.filters.length) : t.field != i
- })
- }
- var t = window.kendo,
- s = t.ui,
- i = n.proxy,
- u = "kendoPopup",
- h = "init",
- r = ".kendoFilterMenu",
- f = "Is equal to",
- e = "Is not equal to",
- a = {
- number: "numerictextbox",
- date: "datepicker"
- },
- v = {
- string: "text",
- number: "number",
- date: "date"
- },
- y = t.isFunction,
- o = s.Widget,
- p = '<div><div class="k-filter-help-text">#=messages.info#<\/div><label><input type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value"/>#=messages.isTrue#<\/label><label><input type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/>#=messages.isFalse#<\/label><div><button type="submit" class="k-button">#=messages.filter#<\/button><button type="reset" class="k-button">#=messages.clear#<\/button><\/div><\/div>',
- w = '<div><div class="k-filter-help-text">#=messages.info#<\/div><select data-#=ns#bind="value: filters[0].operator" data-#=ns#role="dropdownlist">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select>#if(values){#<select data-#=ns#bind="value:filters[0].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#"><\/select>#}else{#<input data-#=ns#bind="value:filters[0].value" class="k-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}##if(extra){#<select class="k-filter-and" data-#=ns#bind="value: logic" data-#=ns#role="dropdownlist"><option value="and">#=messages.and#<\/option><option value="or">#=messages.or#<\/option><\/select><select data-#=ns#bind="value: filters[1].operator" data-#=ns#role="dropdownlist">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select>#if(values){#<select data-#=ns#bind="value:filters[1].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#"><\/select>#}else{#<input data-#=ns#bind="value: filters[1].value" class="k-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""#/>#}##}#<div><button type="submit" class="k-button">#=messages.filter#<\/button><button type="reset" class="k-button">#=messages.clear#<\/button><\/div><\/div>',
- b = '<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-filter-menu"><div data-#=ns#role="header" class="k-header"><button class="k-button k-cancel">#=messages.cancel#<\/button>#=field#<button type="submit" class="k-button k-submit">#=messages.filter#<\/button><\/div><form class="k-filter-menu k-mobile-list k-secondary"><ul class="k-filter-help-text"><li><span class="k-link">#=messages.info#<\/span><ul><li class="k-item"><label class="k-label">#=messages.operator#<select data-#=ns#bind="value: filters[0].operator">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select><\/label><\/li><li class="k-item"><label class="k-label">#=messages.value##if(values){#<select data-#=ns#bind="value:filters[0].value"><option value="">#=messages.selectValue#<\/option>#for(var val in values){#<option value="#=values[val].value#">#=values[val].text#<\/option>#}#<\/select>#}else{#<input data-#=ns#bind="value:filters[0].value" class="k-textbox" type="#=inputType#" #=useRole ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}#<\/label><\/li>#if(extra){#<\/ul><ul class="k-filter-help-text"><li><span class="k-link"><\/span><li class="k-item"><label class="k-label"><input type="radio" name="logic" class="k-check" data-#=ns#bind="checked: logic" value="and" />#=messages.and#<\/label><\/li><li class="k-item"><label class="k-label"><input type="radio" name="logic" class="k-check" data-#=ns#bind="checked: logic" value="or" />#=messages.or#<\/label><\/li><\/ul><ul class="k-filter-help-text"><li><span class="k-link"><\/span><li class="k-item"><label class="k-label">#=messages.operator#<select data-#=ns#bind="value: filters[1].operator">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select><\/label><\/li><li class="k-item"><label class="k-label">#=messages.value##if(values){#<select data-#=ns#bind="value:filters[1].value"><option value="">#=messages.selectValue#<\/option>#for(var val in values){#<option value="#=values[val].value#">#=values[val].text#<\/option>#}#<\/select>#}else{#<input data-#=ns#bind="value:filters[1].value" class="k-textbox" type="#=inputType#" #=useRole ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}#<\/label><\/li>#}#<\/ul><\/li><li class="k-button-container"><button type="reset" class="k-button">#=messages.clear#<\/button><\/li><\/ul><\/div><\/form><\/div>',
- k = '<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-filter-menu"><div data-#=ns#role="header" class="k-header"><button class="k-button k-cancel">#=messages.cancel#<\/button>#=field#<button type="submit" class="k-button k-submit">#=messages.filter#<\/button><\/div><form class="k-filter-menu k-mobile-list k-secondary"><ul class="k-filter-help-text"><li><span class="k-link">#=messages.info#<\/span><ul><li class="k-item"><label class="k-label"><input class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value"/>#=messages.isTrue#<\/label><\/li><li class="k-item"><label class="k-label"><input class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/>#=messages.isFalse#<\/label><\/li><\/ul><\/li><li class="k-button-container"><button type="reset" class="k-button">#=messages.clear#<\/button><\/li><\/ul><\/form><\/div>',
- g = o.extend({
- init: function(u, f) {
- var e = this,
- h = "string",
- l, a, c, s;
- if (o.fn.init.call(e, u, f), l = e.operators = f.operators || {}, u = e.element, f = e.options, !f.appendToElement) {
- c = u.addClass("k-with-icon k-filterable").find(".k-grid-filter");
- c[0] || (c = u.prepend('<a class="k-grid-filter" href="#"><span class="k-icon k-filter"/><\/a>').find(".k-grid-filter"));
- c.attr("tabindex", -1).on("click" + r, i(e._click, e))
- }
- e.link = c || n();
- e.dataSource = f.dataSource;
- e.field = f.field || u.attr(t.attr("field"));
- e.model = e.dataSource.reader.model;
- e._parse = function(n) {
- return n + ""
- };
- e.model && e.model.fields && (s = e.model.fields[e.field], s && (h = s.type || "string", s.parse && (e._parse = i(s.parse, s))));
- f.values && (h = "enums");
- e.type = h;
- l = l[h] || f.operators[h];
- for (a in l) break;
- e._defaultFilter = function() {
- return {
- field: e.field,
- operator: a || "eq",
- value: ""
- }
- };
- e._refreshHandler = i(e.refresh, e);
- e.dataSource.bind("change", e._refreshHandler);
- f.appendToElement ? e._init() : e.refresh()
- },
- _init: function() {
- var u = this,
- f = u.options.ui,
- o = y(f),
- e;
- u.pane = u.options.pane;
- u.pane && (u._isMobile = !0);
- o || (e = f || a[u.type]);
- u._isMobile ? u._createMobileForm(e) : u._createForm(e);
- u.form.on("submit" + r, i(u._submit, u)).on("reset" + r, i(u._reset, u));
- o && u.form.find(".k-textbox").removeClass("k-textbox").each(function() {
- f(n(this))
- });
- u.form.find("[" + t.attr("role") + "=numerictextbox]").removeClass("k-textbox").end().find("[" + t.attr("role") + "=datetimepicker]").removeClass("k-textbox").end().find("[" + t.attr("role") + "=timepicker]").removeClass("k-textbox").end().find("[" + t.attr("role") + "=datepicker]").removeClass("k-textbox");
- u.refresh();
- u.trigger(h, {
- field: u.field,
- container: u.form
- })
- },
- _createForm: function(f) {
- var e = this,
- o = e.options,
- h = e.operators || {},
- s = e.type;
- h = h[s] || o.operators[s];
- e.form = n('<form class="k-filter-menu k-secondary"/>').html(t.template(s === "boolean" ? p : w)({
- field: e.field,
- format: o.format,
- ns: t.ns,
- messages: o.messages,
- extra: o.extra,
- operators: h,
- type: s,
- role: f,
- values: l(o.values)
- }));
- o.appendToElement ? (e.element.append(e.form), e.popup = e.element.closest(".k-popup").data(u)) : e.popup = e.form[u]({
- anchor: e.link,
- open: i(e._open, e),
- activate: i(e._activate, e),
- close: e.options.closeCallback
- }).data(u);
- e.form.on("keydown" + r, i(e._keydown, e))
- },
- _createMobileForm: function(i) {
- var r = this,
- f = r.options,
- e = r.operators || {},
- u = r.type;
- e = e[u] || f.operators[u];
- r.form = n("<div />").html(t.template(u === "boolean" ? k : b)({
- field: r.field,
- format: f.format,
- ns: t.ns,
- messages: f.messages,
- extra: f.extra,
- operators: e,
- type: u,
- role: i,
- useRole: !t.support.input.date && u === "date" || u === "number",
- inputType: v[u],
- values: l(f.values)
- }));
- r.view = r.pane.append(r.form.html());
- r.form = r.view.element.find("form");
- r.view.element.on("click", ".k-submit", function(n) {
- r.form.submit();
- n.preventDefault()
- }).on("click", ".k-cancel", function(n) {
- r._closeForm();
- n.preventDefault()
- })
- },
- refresh: function() {
- var n = this,
- i = n.dataSource.filter() || {
- filters: [],
- logic: "and"
- };
- n.filterModel = t.observable({
- logic: "and",
- filters: [n._defaultFilter(), n._defaultFilter()]
- });
- n.form && t.bind(n.form.children().first(), n.filterModel);
- n._bind(i) ? n.link.addClass("k-state-active") : n.link.removeClass("k-state-active")
- },
- destroy: function() {
- var n = this;
- o.fn.destroy.call(n);
- n.form && (t.unbind(n.form), t.destroy(n.form), n.form.unbind(r), n.popup && n.popup.destroy());
- n.view && n.view.purge();
- n.link.unbind(r);
- n._refreshHandler && n.dataSource.unbind("change", n._refreshHandler)
- },
- _bind: function(n) {
- for (var i = this, s = n.filters, f = !1, o = 0, e = i.filterModel, r, t, u = 0, h = s.length; u < h; u++) t = s[u], t.field == i.field ? (e.set("logic", n.logic), r = e.filters[o], r || (e.filters.push({
- field: i.field
- }), r = e.filters[o]), r.set("value", i._parse(t.value)), r.set("operator", t.operator), o++, f = !0) : t.filters && (f = f || i._bind(t));
- return f
- },
- _merge: function(t) {
- var f = this,
- s = t.logic || "and",
- r = t.filters,
- e, i = f.dataSource.filter() || {
- filters: [],
- logic: "and"
- },
- u, o;
- for (c(i, f.field), r = n.grep(r, function(n) {
- return n.value !== "" && n.value != null
- }), u = 0, o = r.length; u < o; u++) e = r[u], e.value = f._parse(e.value);
- return r.length && (i.filters.length ? (t.filters = r, i.logic !== "and" && (i.filters = [{
- logic: i.logic,
- filters: i.filters
- }], i.logic = "and"), r.length > 1 ? i.filters.push(t) : i.filters.push(r[0])) : (i.filters = r, i.logic = s)), i
- },
- filter: function(n) {
- n = this._merge(n);
- n.filters.length && this.dataSource.filter(n)
- },
- clear: function() {
- var i = this,
- t = i.dataSource.filter() || {
- filters: []
- };
- t.filters = n.grep(t.filters, function(n) {
- return n.filters ? (n.filters = d(n.filters, i.field), n.filters.length) : n.field != i.field
- });
- t.filters.length || (t = null);
- i.dataSource.filter(t)
- },
- _submit: function(n) {
- n.preventDefault();
- n.stopPropagation();
- this.filter(this.filterModel.toJSON());
- this._closeForm()
- },
- _reset: function() {
- this.clear();
- this._closeForm()
- },
- _closeForm: function() {
- this._isMobile ? this.pane.navigate("", this.options.animations.right) : this.popup.close()
- },
- _click: function(n) {
- n.preventDefault();
- n.stopPropagation();
- this.popup || this.pane || this._init();
- this._isMobile ? this.pane.navigate(this.view, this.options.animations.left) : this.popup.toggle()
- },
- _open: function() {
- var t;
- n(".k-filter-menu").not(this.form).each(function() {
- t = n(this).data(u);
- t && t.close()
- })
- },
- _activate: function() {
- this.form.find(":kendoFocusable:first").focus()
- },
- _keydown: function(n) {
- n.keyCode == t.keys.ESC && this.popup.close()
- },
- events: [h],
- options: {
- name: "FilterMenu",
- extra: !0,
- appendToElement: !1,
- type: "string",
- operators: {
- string: {
- eq: f,
- neq: e,
- startswith: "Starts with",
- contains: "Contains",
- doesnotcontain: "Does not contain",
- endswith: "Ends with"
- },
- number: {
- eq: f,
- neq: e,
- gte: "Is greater than or equal to",
- gt: "Is greater than",
- lte: "Is less than or equal to",
- lt: "Is less than"
- },
- date: {
- eq: f,
- neq: e,
- gte: "Is after or equal to",
- gt: "Is after",
- lte: "Is before or equal to",
- lt: "Is before"
- },
- enums: {
- eq: f,
- neq: e
- }
- },
- messages: {
- info: "Show items with value that:",
- isTrue: "is true",
- isFalse: "is false",
- filter: "Filter",
- clear: "Clear",
- and: "And",
- or: "Or",
- selectValue: "-Select value-",
- operator: "Operator",
- value: "Value",
- cancel: "Cancel"
- },
- animations: {
- left: "slide",
- right: "slide:right"
- }
- }
- });
- s.plugin(g)
- }(window.kendo.jQuery);
- kendo_module({
- id: "panelbar",
- name: "PanelBar",
- category: "web",
- description: "The PanelBar widget displays hierarchical data as a multi-level expandable panel bar.",
- depends: ["core"]
- }),
- function(n, t) {
- function wt(t) {
- t = n(t);
- t.children(r).children(".k-icon").remove();
- t.filter(":has(.k-panel),:has(.k-content)").children(".k-link:not(:has([class*=k-i-arrow]))").each(function() {
- var t = n(this),
- i = t.parent();
- t.append("<span class='k-icon " + (i.hasClass(w) ? "k-i-arrow-n k-panelbar-collapse" : "k-i-arrow-s k-panelbar-expand") + "'/>")
- })
- }
- function a(t) {
- t = n(t);
- t.filter(".k-first:not(:first-child)").removeClass(ct);
- t.filter(".k-last:not(:last-child)").removeClass(ht);
- t.filter(":first-child").addClass(ct);
- t.filter(":last-child").addClass(ht)
- }
- var e = window.kendo,
- oi = e.ui,
- o = e.keys,
- i = n.extend,
- ot = n.each,
- s = e.template,
- nt = oi.Widget,
- si = /^(ul|a|div)$/i,
- h = ".kendoPanelBar",
- bt = "img",
- st = "href",
- ht = "k-last",
- tt = "k-link",
- r = "." + tt,
- kt = "error",
- u = ".k-item",
- b = ".k-group:visible",
- dt = "k-image",
- ct = "k-first",
- lt = "expand",
- at = "select",
- it = "k-content",
- gt = "activate",
- rt = "collapse",
- ni = "mouseenter",
- hi = "mouseleave",
- ti = "contentLoad",
- w = "k-state-active",
- v = "> .k-panel",
- k = "> .k-content",
- ii = "k-state-focused",
- f = "k-state-disabled",
- d = "k-state-selected",
- ut = "." + d,
- c = "k-state-highlight",
- ft = u + ":not(.k-state-disabled)",
- ri = ft + " > .k-link",
- ci = u + ".k-state-disabled > .k-link",
- ui = "> li > " + ut + ", .k-panel > li > " + ut,
- fi = "k-state-default",
- vt = "aria-disabled",
- g = "aria-expanded",
- yt = "aria-hidden",
- et = "aria-selected",
- y = ":visible",
- li = ":empty",
- ei = "single",
- l = {
- content: s("<div role='region' class='k-content'#= contentAttributes(data) #>#= content(item) #<\/div>"),
- group: s("<ul role='group' aria-hidden='true' class='#= groupCssClass(group) #'#= groupAttributes(group) #>#= renderItems(data) #<\/ul>"),
- itemWrapper: s("<#= tag(item) # class='#= textClass(item, group) #' #= contentUrl(item) ##= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) ##= arrow(data) #<\/#= tag(item) #>"),
- item: s("<li role='menuitem' #=aria(item)#class='#= wrapperCssClass(group, item) #'>#= itemWrapper(data) ## if (item.items) { ##= subGroup({ items: item.items, panelBar: panelBar, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #<\/li>"),
- image: s("<img class='k-image' alt='' src='#= imageUrl #' />"),
- arrow: s("<span class='#= arrowClass(item) #'><\/span>"),
- sprite: s("<span class='k-sprite #= spriteCssClass #'><\/span>"),
- empty: s("")
- },
- pt = {
- aria: function(n) {
- var t = "";
- return (n.items || n.content || n.contentUrl) && (t += g + "='" + (n.expanded ? "true" : "false") + "' "), n.enabled === !1 && (t += vt + "='true'"), t
- },
- wrapperCssClass: function(n, t) {
- var i = "k-item",
- r = t.index;
- return i += t.enabled === !1 ? " " + f : t.expanded === !0 ? " " + w : " k-state-default", r === 0 && (i += " k-first"), r == n.length - 1 && (i += " k-last"), t.cssClass && (i += " " + t.cssClass), i
- },
- textClass: function(n, t) {
- var i = tt;
- return t.firstLevel && (i += " k-header"), i
- },
- textAttributes: function(n) {
- return n.url ? " href='" + n.url + "'" : ""
- },
- arrowClass: function(n) {
- return "k-icon" + (n.expanded ? " k-i-arrow-n k-panelbar-collapse" : " k-i-arrow-s k-panelbar-expand")
- },
- text: function(n) {
- return n.encoded === !1 ? n.text : e.htmlEncode(n.text)
- },
- tag: function(n) {
- return n.url || n.contentUrl ? "a" : "span"
- },
- groupAttributes: function(n) {
- return n.expanded !== !0 ? " style='display:none'" : ""
- },
- groupCssClass: function() {
- return "k-group k-panel"
- },
- contentAttributes: function(n) {
- return n.item.expanded !== !0 ? " style='display:none'" : ""
- },
- content: function(n) {
- return n.content ? n.content : n.contentUrl ? "" : " "
- },
- contentUrl: function(n) {
- return n.contentUrl ? 'href="' + n.contentUrl + '"' : ""
- }
- },
- p = nt.extend({
- init: function(t, i) {
- var r = this,
- u;
- nt.fn.init.call(r, t, i);
- t = r.wrapper = r.element.addClass("k-widget k-reset k-header k-panelbar");
- i = r.options;
- t[0].id && (r._itemId = t[0].id + "_pb_active");
- r._tabindex();
- r._initData(i);
- r._updateClasses();
- r._animations(i);
- t.on("click" + h, ri, function(t) {
- r._click(n(t.currentTarget)) && t.preventDefault()
- }).on(ni + h + " " + hi + h, ri, r._toggleHover).on("click" + h, ci, !1).on("keydown" + h, n.proxy(r._keydown, r)).on("focus" + h, function() {
- var n = r.select();
- r._current(n[0] ? n : r._first())
- }).on("blur" + h, function() {
- r._current(null)
- }).attr("role", "menu");
- u = t.find("li." + w + " > ." + it);
- u[0] && r.expand(u.parent(), !1);
- e.notify(r)
- },
- events: [lt, rt, at, gt, kt, ti],
- options: {
- name: "PanelBar",
- animation: {
- expand: {
- effects: "expand:vertical",
- duration: 200
- },
- collapse: {
- duration: 200
- }
- },
- expandMode: "multiple"
- },
- destroy: function() {
- nt.fn.destroy.call(this);
- this.element.off(h);
- e.destroy(this.element)
- },
- _initData: function(n) {
- var t = this;
- n.dataSource && (t.element.empty(), t.append(n.dataSource, t.element))
- },
- setOptions: function(n) {
- var t = this.options.animation;
- this._animations(n);
- n.animation = i(!0, t, n.animation);
- "dataSource" in n && this._initData(n);
- nt.fn.setOptions.call(this, n)
- },
- expand: function(t, i) {
- var r = this,
- u = {};
- return i = i !== !1, t = this.element.find(t), t.each(function(e, o) {
- o = n(o);
- var s = o.find(v).add(o.find(k));
- if (!o.hasClass(f) && s.length > 0) {
- if (r.options.expandMode == ei && r._collapseAllExpanded(o)) return r;
- t.find("." + c).removeClass(c);
- o.addClass(c);
- i || (u = r.options.animation, r.options.animation = {
- expand: {
- effects: {}
- },
- collapse: {
- hide: !0,
- effects: {}
- }
- });
- r._triggerEvent(lt, o) || r._toggleItem(o, !1);
- i || (r.options.animation = u)
- }
- }), r
- },
- collapse: function(t, i) {
- var r = this,
- u = {};
- return i = i !== !1, t = r.element.find(t), t.each(function(t, e) {
- e = n(e);
- var o = e.find(v).add(e.find(k));
- !e.hasClass(f) && o.is(y) && (e.removeClass(c), i || (u = r.options.animation, r.options.animation = {
- expand: {
- effects: {}
- },
- collapse: {
- hide: !0,
- effects: {}
- }
- }), r._triggerEvent(rt, e) || r._toggleItem(e, !0), i || (r.options.animation = u))
- }), r
- },
- _toggleDisabled: function(n, t) {
- n = this.element.find(n);
- n.toggleClass(fi, t).toggleClass(f, !t).attr(vt, !t)
- },
- select: function(i) {
- var u = this;
- return i === t ? u.element.find(ui).parent() : (u.element.find(i).each(function() {
- var t = n(this),
- i = t.children(r);
- if (t.hasClass(f)) return u;
- u._triggerEvent(at, t) || u._updateSelected(i)
- }), u)
- },
- enable: function(n, t) {
- return this._toggleDisabled(n, t !== !1), this
- },
- disable: function(n) {
- return this._toggleDisabled(n, !1), this
- },
- append: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.length ? t.find(v) : null);
- return ot(i.items, function() {
- i.group.append(this);
- a(this)
- }), wt(t), a(i.group.find(".k-first, .k-last")), i.group.height("auto"), this
- },
- insertBefore: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.parent());
- return ot(i.items, function() {
- t.before(this);
- a(this)
- }), a(t), i.group.height("auto"), this
- },
- insertAfter: function(n, t) {
- t = this.element.find(t);
- var i = this._insert(n, t, t.parent());
- return ot(i.items, function() {
- t.after(this);
- a(this)
- }), a(t), i.group.height("auto"), this
- },
- remove: function(n) {
- n = this.element.find(n);
- var r = this,
- t = n.parentsUntil(r.element, u),
- i = n.parent("ul");
- return n.remove(), !i || i.hasClass("k-panelbar") || i.children(u).length || i.remove(), t.length && (t = t.eq(0), wt(t), a(t)), r
- },
- reload: function(t) {
- var i = this;
- t = i.element.find(t);
- t.each(function() {
- var t = n(this);
- i._ajaxRequest(t, t.children("." + it), !t.is(y))
- })
- },
- _first: function() {
- return this.element.children(ft).first()
- },
- _last: function() {
- var n = this.element.children(ft).last(),
- t = n.children(b);
- return t[0] ? t.children(ft).last() : n
- },
- _current: function(n) {
- var i = this,
- u = i._focused,
- f = i._itemId;
- if (n === t) return u;
- i.element.removeAttr("aria-activedescendant");
- u && (u[0].id === f && u.removeAttr("id"), u.children(r).removeClass(ii));
- n && (f = n[0].id || f, n.attr("id", f).children(r).addClass(ii), i.element.attr("aria-activedescendant", f));
- i._focused = n
- },
- _keydown: function(n) {
- var t = this,
- i = n.keyCode,
- u = t._current();
- n.target == n.currentTarget && (i == o.DOWN || i == o.RIGHT ? (t._current(t._nextItem(u)), n.preventDefault()) : i == o.UP || i == o.LEFT ? (t._current(t._prevItem(u)), n.preventDefault()) : i == o.ENTER || i == o.SPACEBAR ? (t._click(u.children(r)), n.preventDefault()) : i == o.HOME ? (t._current(t._first()), n.preventDefault()) : i == o.END && (t._current(t._last()), n.preventDefault()))
- },
- _nextItem: function(n) {
- if (!n) return this._first();
- var i = n.children(b),
- t = n.next();
- return i[0] && (t = i.children("." + ct)), t[0] || (t = n.parent(b).parent(u).next()), t[0] && t.is(":visible") || (t = this._first()), t.hasClass(f) && (t = this._nextItem(t)), t
- },
- _prevItem: function(n) {
- if (!n) return this._last();
- var t = n.prev(),
- i;
- if (t[0])
- for (i = t; i[0];) i = i.children(b).children("." + ht), i[0] && (t = i);
- else t = n.parent(b).parent(u), t[0] || (t = this._last());
- return t.hasClass(f) && (t = this._prevItem(t)), t
- },
- _insert: function(t, r, u) {
- var s = this,
- f, h = n.isPlainObject(t),
- e = r && r[0],
- o;
- return e || (u = s.element), o = {
- firstLevel: u.hasClass("k-panelbar"),
- expanded: u.parent().hasClass(w),
- length: u.children().length
- }, e && !u.length && (u = n(p.renderGroup({
- group: o
- })).appendTo(r)), h || n.isArray(t) ? (f = n.map(h ? [t] : t, function(t, r) {
- return typeof t == "string" ? n(t) : n(p.renderItem({
- group: o,
- item: i(t, {
- index: r
- })
- }))
- }), e && r.attr(g, !1)) : (f = n(t), s._updateItemsClasses(f)), {
- items: f,
- group: u
- }
- },
- _toggleHover: function(t) {
- var i = n(t.currentTarget);
- i.parents("li." + f).length || i.toggleClass("k-state-hover", t.type == ni)
- },
- _updateClasses: function() {
- var i = this,
- r, t;
- r = i.element.find("li > ul").not(function() {
- return n(this).parentsUntil(".k-panelbar", "div").length
- }).addClass("k-group k-panel").attr("role", "group");
- r.parent().attr(g, !1).not("." + w).children("ul").attr(yt, !0).hide();
- t = i.element.add(r).children();
- i._updateItemsClasses(t);
- wt(t);
- a(t)
- },
- _updateItemsClasses: function(n) {
- for (var i = n.length, t = 0; t < i; t++) this._updateItemClasses(n[t], t)
- },
- _updateItemClasses: function(t, i) {
- var s = this._selected,
- f = this.options.contentUrls,
- h = f && f[i],
- c = this.element[0],
- o, u;
- t = n(t).addClass("k-item").attr("role", "menuitem");
- e.support.browser.msie && t.css("list-style-position", "inside").css("list-style-position", "");
- t.children(bt).addClass(dt);
- u = t.children("a").addClass(tt);
- u[0] && (u.attr("href", h), u.children(bt).addClass(dt));
- t.filter(":not([disabled]):not([class*=k-state])").addClass("k-state-default");
- t.filter("li[disabled]").addClass("k-state-disabled").attr(vt, !0).removeAttr("disabled");
- t.children("div").addClass(it).attr("role", "region").attr(yt, !0).hide().parent().attr(g, !1);
- u = t.children(ut);
- u[0] && (s && s.removeAttr(et).children(ut).removeClass(d), u.addClass(d), this._selected = t.attr(et, !0));
- t.children(r)[0] || (o = "<span class='" + tt + "'/>", f && f[i] && t[0].parentNode == c && (o = '<a class="k-link k-header" href="' + f[i] + '"/>'), t.contents().filter(function() {
- return !this.nodeName.match(si) && !(this.nodeType == 3 && !n.trim(this.nodeValue))
- }).wrapAll(o));
- t.parent(".k-panelbar")[0] && t.children(r).addClass("k-header")
- },
- _click: function(n) {
- var t = this,
- a = t.element,
- i, o, s, l, h, e, c;
- if (!n.parents("li." + f).length) return n.closest(".k-widget")[0] != a[0] ? void 0 : (h = n.closest(r), e = h.closest(u), t._updateSelected(h), o = e.find(v).add(e.find(k)), s = h.attr(st), l = s && (s.charAt(s.length - 1) == "#" || s.indexOf("#" + t.element[0].id + "-") != -1), i = !!(l || o.length), o.data("animating")) ? i : (t._triggerEvent(at, e) && (i = !0), i === !1) ? void 0 : t.options.expandMode == ei && t._collapseAllExpanded(e) ? i : (o.length && (c = o.is(y), t._triggerEvent(c ? rt : lt, e) || (i = t._toggleItem(e, c))), i)
- },
- _toggleItem: function(n, i) {
- var e = this,
- o = n.find(v),
- s = n.find(r),
- h = s.attr(st),
- f, u;
- return o.length ? (this._toggleGroup(o, i), f = !0) : (u = n.children("." + it), u.length && (f = !0, u.is(li) && h !== t ? e._ajaxRequest(n, u, i) : e._toggleGroup(u, i))), f
- },
- _toggleGroup: function(n, t) {
- var e = this,
- o = e.options.animation,
- r = o.expand,
- f = i({}, o.collapse),
- s = f && "effects" in f;
- n.is(y) == t && (n.parent().attr(g, !t).attr(yt, t).toggleClass(fi, t).toggleClass(w, !t).find("> .k-link > .k-icon").toggleClass("k-i-arrow-n", !t).toggleClass("k-panelbar-collapse", !t).toggleClass("k-i-arrow-s", t).toggleClass("k-panelbar-expand", t), r = t ? i(s ? f : i({
- reverse: !0
- }, r), {
- hide: !0
- }) : i({
- complete: function(n) {
- e._triggerEvent(gt, n.closest(u))
- }
- }, r), n.kendoStop(!0, !0).kendoAnimate(r))
- },
- _collapseAllExpanded: function(t) {
- var e = this,
- o, i = !1,
- f;
- if (t.children(r).hasClass("k-header")) return f = t.find(v).add(t.find(k)), f.is(y) && (i = !0), f.is(y) || f.length === 0 || (o = n(e.element).children(), o.find(v).add(o.find(k)).filter(function() {
- return n(this).is(y)
- }).each(function(t, r) {
- r = n(r);
- i = e._triggerEvent(rt, r.closest(u));
- i || e._toggleGroup(r, !0)
- })), i
- },
- _ajaxRequest: function(t, i, u) {
- var f = this,
- e = t.find(".k-panelbar-collapse, .k-panelbar-expand"),
- s = t.find(r),
- h = setTimeout(function() {
- e.addClass("k-loading")
- }, 100),
- o = s.attr(st);
- n.ajax({
- type: "GET",
- cache: !1,
- url: o,
- dataType: "html",
- data: {},
- error: function(n, t) {
- e.removeClass("k-loading");
- f.trigger(kt, {
- xhr: n,
- status: t
- }) && this.complete()
- },
- complete: function() {
- clearTimeout(h);
- e.removeClass("k-loading")
- },
- success: function(n) {
- try {
- i.html(n)
- } catch (e) {
- var r = window.console;
- r && r.error && r.error(e.name + ": " + e.message + " in " + o);
- this.error(this.xhr, "error")
- }
- f._toggleGroup(i, u);
- f.trigger(ti, {
- item: t[0],
- contentElement: i[0]
- })
- }
- })
- },
- _triggerEvent: function(n, t) {
- var i = this;
- return i.trigger(n, {
- item: t[0]
- })
- },
- _updateSelected: function(n) {
- var t = this,
- i = t.element,
- r = n.parent(u),
- f = t._selected;
- f && f.removeAttr(et);
- t._selected = r.attr(et, !0);
- i.find(ui).removeClass(d);
- i.find("> ." + c + ", .k-panel > ." + c).removeClass(c);
- n.addClass(d);
- n.parentsUntil(i, u).filter(":has(.k-header)").addClass(c);
- t._current(r)
- },
- _animations: function(n) {
- n && "animation" in n && !n.animation && (n.animation = {
- expand: {
- effects: {}
- },
- collapse: {
- hide: !0,
- effects: {}
- }
- })
- }
- });
- i(p, {
- renderItem: function(n) {
- n = i({
- panelBar: {},
- group: {}
- }, n);
- var r = l.empty,
- t = n.item;
- return l.item(i(n, {
- image: t.imageUrl ? l.image : r,
- sprite: t.spriteCssClass ? l.sprite : r,
- itemWrapper: l.itemWrapper,
- renderContent: p.renderContent,
- arrow: t.items || t.content || t.contentUrl ? l.arrow : r,
- subGroup: p.renderGroup
- }, pt))
- },
- renderGroup: function(n) {
- return l.group(i({
- renderItems: function(n) {
- for (var u = "", t = 0, r = n.items, f = r ? r.length : 0, e = i({
- length: f
- }, n.group); t < f; t++) u += p.renderItem(i(n, {
- group: e,
- item: i({
- index: t
- }, r[t])
- }));
- return u
- }
- }, n, pt))
- },
- renderContent: function(n) {
- return l.content(i(n, pt))
- }
- });
- e.ui.plugin(p)
- }(window.kendo.jQuery);
- kendo_module({
- id: "timepicker",
- name: "TimePicker",
- category: "web",
- description: "The TimePicker widget allows the end user to select a value from a list of predefined values or to type a new value.",
- depends: ["popup"]
- }),
- function(n, t) {
- function ui(n, t, i) {
- var u = n.getTimezoneOffset(),
- r;
- n.setTime(n.getTime() + t);
- i || (r = n.getTimezoneOffset() - u, n.setTime(n.getTime() + r * h))
- }
- function fi() {
- var n = new u,
- t = new u(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0),
- i = new u(n.getFullYear(), n.getMonth(), n.getDate(), 12, 0, 0);
- return -1 * (t.getTimezoneOffset() - i.getTimezoneOffset())
- }
- function e(n) {
- return n.getHours() * 60 * h + n.getMinutes() * h + n.getSeconds() * 1e3 + n.getMilliseconds()
- }
- function kt(n, t, i) {
- var u = e(t),
- f = e(i),
- r;
- return !n || u == f ? !0 : (r = e(n), u > r && (r += s), f < u && (f += s), r >= u && r <= f)
- }
- function gt(n) {
- var t = n.parseFormats;
- n.format = ii(n.format || r.getCulture(n.culture).calendars.standard.patterns.t);
- t = bt(t) ? t : [t];
- t.splice(0, 0, n.format);
- n.parseFormats = t
- }
- function ni(n) {
- n.preventDefault()
- }
- var r = window.kendo,
- o = r.keys,
- ti = r._activeElement,
- ii = r._extractFormat,
- l = r.support,
- tt = l.browser,
- p = r.ui,
- a = p.Widget,
- it = "open",
- rt = "close",
- w = "change",
- i = ".kendoTimePicker",
- ut = "click" + i,
- b = "k-state-default",
- ft = "disabled",
- et = "readonly",
- k = "li",
- ot = "<span/>",
- st = "k-state-focused",
- d = "k-state-hover",
- ri = "mouseenter" + i + " mouseleave" + i,
- ht = "mousedown" + i,
- h = 6e4,
- s = 864e5,
- ct = "k-state-selected",
- g = "k-state-disabled",
- lt = "aria-selected",
- at = "aria-expanded",
- vt = "aria-hidden",
- yt = "aria-disabled",
- pt = "aria-readonly",
- wt = "aria-activedescendant",
- v = "id",
- bt = n.isArray,
- nt = n.extend,
- y = n.proxy,
- u = Date,
- f = new u,
- c, dt;
- f = new u(f.getFullYear(), f.getMonth(), f.getDate(), 0, 0, 0);
- c = function(t) {
- var u = this,
- f = t.id;
- u.options = t;
- u.ul = n('<ul tabindex="-1" role="listbox" aria-hidden="true" unselectable="on" class="k-list k-reset"/>').css({
- overflow: l.kineticScrollNeeded ? "" : "auto"
- }).on(ut, k, y(u._click, u)).on("mouseenter" + i, k, function() {
- n(this).addClass(d)
- }).on("mouseleave" + i, k, function() {
- n(this).removeClass(d)
- });
- u.list = n("<div class='k-list-container'/>").append(u.ul).on(ht, ni);
- f && (u._timeViewID = f + "_timeview", u._optionID = f + "_option_selected", u.ul.attr(v, u._timeViewID));
- u._popup();
- u.template = r.template('<li tabindex="-1" role="option" class="k-item" unselectable="on">#=data#<\/li>', {
- useWithBlock: !1
- })
- };
- c.prototype = {
- current: function(i) {
- var r = this,
- u = r.options.active;
- if (i !== t) r._current && r._current.removeClass(ct).removeAttr(lt).removeAttr(v), i && (i = n(i).addClass(ct).attr(v, r._optionID).attr(lt, !0), r.scroll(i[0])), r._current = i, u && u(i);
- else return r._current
- },
- close: function() {
- this.popup.close()
- },
- destroy: function() {
- var n = this;
- n.ul.off(i);
- n.list.off(i);
- n._touchScroller && n._touchScroller.destroy();
- n.popup.destroy()
- },
- open: function() {
- var n = this;
- n.ul[0].firstChild || n.bind();
- n.popup.open();
- n._current && n.scroll(n._current[0])
- },
- dataBind: function(n) {
- for (var i = this, t = i.options, s = t.format, h = r.toString, c = i.template, e = n.length, u = 0, f, o = ""; u < e; u++) f = n[u], kt(f, t.min, t.max) && (o += c(h(f, s, t.culture)));
- i._html(o, e)
- },
- refresh: function() {
- var l = this,
- i = l.options,
- g = i.format,
- y = fi(),
- p = y < 0,
- w = i.min,
- b = i.max,
- a = e(w),
- n = e(b),
- o = i.interval * h,
- nt = r.toString,
- tt = l.template,
- t = new u(+w),
- it = t.getDate(),
- v, k, c = 0,
- f, d = "";
- for (f = p ? (s + y * h) / o : s / o, a != n && (a > n && (n += s), f = (n - a) / o + 1), k = parseInt(f, 10); c < f; c++) c && ui(t, o, p), n && k == c && (v = e(t), it < t.getDate() && (v += s), v > n && (t = new u(+b))), d += tt(nt(t, g, i.culture));
- l._html(d, f)
- },
- bind: function() {
- var n = this,
- t = n.options.dates;
- t && t[0] ? n.dataBind(t) : n.refresh()
- },
- _html: function(n, t) {
- var i = this;
- i.ul[0].innerHTML = n;
- i._height(t);
- i.current(null);
- i.select(i._value)
- },
- scroll: function(n) {
- if (n) {
- var i = this.ul[0],
- t = n.offsetTop,
- f = n.offsetHeight,
- r = i.scrollTop,
- e = i.clientHeight,
- o = t + f,
- s = this._touchScroller,
- u;
- s ? (u = this.list.height(), t > u && (t = t - u + f), s.scrollTo(0, -t)) : i.scrollTop = r > t ? t : o > r + e ? o - e : r
- }
- },
- select: function(t) {
- var i = this,
- f = i.options,
- u = i._current;
- t instanceof Date && (t = r.toString(t, f.format, f.culture));
- typeof t == "string" && (u && u.text() === t ? t = u : (t = n.grep(i.ul[0].childNodes, function(n) {
- return (n.textContent || n.innerText) == t
- }), t = t[0] ? t : null));
- i.current(t)
- },
- setOptions: function(n) {
- var t = this.options;
- this.options = nt(t, n, {
- active: t.active,
- change: t.change,
- close: t.close,
- open: t.open
- });
- this.bind()
- },
- toggle: function() {
- var n = this;
- n.popup.visible() ? n.close() : n.open()
- },
- value: function(n) {
- var t = this;
- t._value = n;
- t.ul[0].firstChild && t.select(n)
- },
- _click: function(t) {
- var i = this,
- r = n(t.currentTarget);
- t.isDefaultPrevented() || (i.select(r), i.options.change(r.text(), !0), i.close())
- },
- _height: function(n) {
- if (n) {
- var t = this,
- i = t.list,
- u = i.parent(".k-animation-container"),
- r = t.options.height;
- i.add(u).show().height(t.ul[0].scrollHeight > r ? r : "auto").hide()
- }
- },
- _parse: function(n) {
- var o = this,
- s = o.options,
- t = o._value || f,
- i, e;
- return n instanceof u ? n : (n != null && (i = n.indexOf(":"), i == -1 ? n = n.length <= 2 ? n + ":00" : n.slice(2).length == 1 ? n.slice(0, 2) + ":" + n.slice(2) + "0" : n.slice(0, 2) + ":" + n.slice(2) : i == 0 ? n = "00" + n : (e = n.split(":"), e[1].length == 0 ? n = n + "00" : e[1].length == 1 && (n = n + "0"))), n = r.parseDate(n, s.parseFormats, s.culture), n && (n = new u(t.getFullYear(), t.getMonth(), t.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds())), n)
- },
- _adjustListWidth: function() {
- var t = this.list,
- i = t[0].style.width,
- r = this.options.anchor,
- n, u;
- (t.data("width") || !i) && (n = window.getComputedStyle ? window.getComputedStyle(r[0], null) : 0, u = n ? parseFloat(n.width) : r.outerWidth(), n && (tt.mozilla || tt.msie) && (u += parseFloat(n.paddingLeft) + parseFloat(n.paddingRight) + parseFloat(n.borderLeftWidth) + parseFloat(n.borderRightWidth)), i = u - (t.outerWidth() - t.width()), t.css({
- fontFamily: r.css("font-family"),
- width: i
- }).data("width", i))
- },
- _popup: function() {
- var t = this,
- i = t.list,
- n = t.options,
- u = n.anchor;
- t.popup = new p.Popup(i, nt(n.popup, {
- anchor: u,
- open: n.open,
- close: n.close,
- animation: n.animation,
- isRtl: l.isRtl(n.anchor)
- }));
- t._touchScroller = r.touchScroller(t.popup.element)
- },
- move: function(n) {
- var i = this,
- r = n.keyCode,
- f = i.ul[0],
- t = i._current,
- u = r === o.DOWN;
- if (r === o.UP || u) {
- if (n.altKey) {
- i.toggle(u);
- return
- }
- t = u ? t ? t[0].nextSibling : f.firstChild : t ? t[0].previousSibling : f.lastChild;
- t && i.select(t);
- i.options.change(i._current.text());
- n.preventDefault()
- } else(r === o.ENTER || r === o.TAB || r === o.ESC) && (n.preventDefault(), t && i.options.change(t.text(), !0), i.close())
- }
- };
- c.getMilliseconds = e;
- r.TimeView = c;
- dt = a.extend({
- init: function(n, t) {
- var i = this,
- f, u, e;
- a.fn.init.call(i, n, t);
- n = i.element;
- t = i.options;
- gt(t);
- i._wrapper();
- i.timeView = u = new c(nt({}, t, {
- id: n.attr(v),
- anchor: i.wrapper,
- format: t.format,
- change: function(t, r) {
- r ? i._change(t) : n.val(t)
- },
- open: function(t) {
- i.timeView._adjustListWidth();
- i.trigger(it) ? t.preventDefault() : (n.attr(at, !0), f.attr(vt, !1))
- },
- close: function(t) {
- i.trigger(rt) ? t.preventDefault() : (n.attr(at, !1), f.attr(vt, !0))
- },
- active: function(t) {
- n.removeAttr(wt);
- t && n.attr(wt, u._optionID)
- }
- }));
- f = u.ul;
- i._icon();
- i._reset();
- try {
- n[0].setAttribute("type", "text")
- } catch (o) {
- n[0].type = "text"
- }
- n.addClass("k-input").attr({
- role: "combobox",
- "aria-expanded": !1,
- "aria-owns": u._timeViewID
- });
- e = n.is("[disabled]");
- e ? i.enable(!1) : i.readonly(n.is("[readonly]"));
- i._old = i._update(t.value || i.element.val());
- i._oldText = n.val();
- r.notify(i)
- },
- options: {
- name: "TimePicker",
- min: f,
- max: f,
- format: "",
- dates: [],
- parseFormats: [],
- value: null,
- interval: 30,
- height: 200,
- animation: {}
- },
- events: [it, rt, w],
- setOptions: function(n) {
- var t = this,
- i = t._value;
- a.fn.setOptions.call(t, n);
- n = t.options;
- gt(n);
- t.timeView.setOptions(n);
- i && t.element.val(r.toString(i, n.format, n.culture))
- },
- dataBind: function(n) {
- bt(n) && this.timeView.dataBind(n)
- },
- _editable: function(n) {
- var t = this,
- r = n.disable,
- u = n.readonly,
- o = t._arrow.off(i),
- f = t.element.off(i),
- e = t._inputWrapper.off(i);
- if (u || r) e.addClass(r ? g : b).removeClass(r ? b : g), f.attr(ft, r).attr(et, u).attr(yt, r).attr(pt, u);
- else {
- e.addClass(b).removeClass(g).on(ri, t._toggleHover);
- f.removeAttr(ft).removeAttr(et).attr(yt, !1).attr(pt, !1).on("keydown" + i, y(t._keydown, t)).on("blur" + i, y(t._blur, t)).on("focus" + i, function() {
- t._inputWrapper.addClass(st)
- });
- o.on(ut, y(t._click, t)).on(ht, ni)
- }
- },
- readonly: function(n) {
- this._editable({
- readonly: n === t ? !0 : n,
- disable: !1
- })
- },
- enable: function(n) {
- this._editable({
- readonly: !1,
- disable: !(n = n === t ? !0 : n)
- })
- },
- destroy: function() {
- var n = this;
- a.fn.destroy.call(n);
- n.timeView.destroy();
- n.element.off(i);
- n._arrow.off(i);
- n._inputWrapper.off(i);
- n._form && n._form.off("reset", n._resetHandler)
- },
- close: function() {
- this.timeView.close()
- },
- open: function() {
- this.timeView.open()
- },
- min: function(n) {
- return this._option("min", n)
- },
- max: function(n) {
- return this._option("max", n)
- },
- value: function(n) {
- var i = this;
- if (n === t) return i._value;
- i._old = i._update(n);
- i._old === null && i.element.val("");
- i._oldText = i.element.val()
- },
- _blur: function() {
- var n = this,
- t = n.element.val();
- n.close();
- t !== n._oldText && n._change(t);
- n._inputWrapper.removeClass(st)
- },
- _click: function() {
- var n = this,
- t = n.element;
- n.timeView.toggle();
- l.touch || t[0] === ti() || t.focus()
- },
- _change: function(n) {
- var t = this;
- n = t._update(n); + t._old != +n && (t._old = n, t._oldText = t.element.val(), t.trigger(w), t.element.trigger(w))
- },
- _icon: function() {
- var i = this,
- r = i.element,
- t;
- t = r.next("span.k-select");
- t[0] || (t = n('<span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-clock">select<\/span><\/span>').insertAfter(r));
- i._arrow = t.attr({
- role: "button",
- "aria-controls": i.timeView._timeViewID
- })
- },
- _keydown: function(n) {
- var t = this,
- u = n.keyCode,
- i = t.timeView,
- r = t.element.val();
- i.popup.visible() || n.altKey ? i.move(n) : u === o.ENTER && r !== t._oldText && t._change(r)
- },
- _option: function(n, i) {
- var r = this,
- f = r.options;
- if (i === t) return f[n];
- (i = r.timeView._parse(i), i) && (i = new u(+i), f[n] = i, r.timeView.options[n] = i, r.timeView.bind())
- },
- _toggleHover: function(t) {
- n(t.currentTarget).toggleClass(d, t.type === "mouseenter")
- },
- _update: function(n) {
- var i = this,
- u = i.options,
- f = i.timeView,
- t = f._parse(n);
- return kt(t, u.min, u.max) || (t = null), i._value = t, i.element.val(t ? r.toString(t, u.format, u.culture) : n), f.value(t), t
- },
- _wrapper: function() {
- var r = this,
- i = r.element,
- t;
- t = i.parents(".k-timepicker");
- t[0] || (t = i.wrap(ot).parent().addClass("k-picker-wrap k-state-default"), t = t.wrap(ot).parent());
- t[0].style.cssText = i[0].style.cssText;
- r.wrapper = t.addClass("k-widget k-timepicker k-header").addClass(i[0].className);
- i.css({
- width: "100%",
- height: i[0].style.height
- });
- r._inputWrapper = n(t[0].firstChild)
- },
- _reset: function() {
- var t = this,
- i = t.element,
- r = i.attr("form"),
- u = r ? n("#" + r) : i.closest("form");
- u[0] && (t._resetHandler = function() {
- t.value(i[0].defaultValue)
- }, t._form = u.on("reset", t._resetHandler))
- }
- });
- p.plugin(dt)
- }(window.kendo.jQuery);
- kendo_module({
- id: "window",
- name: "Window",
- category: "web",
- description: "The Window widget displays content in a modal or non-modal HTML window.",
- depends: ["draganddrop"]
- }),
- function(n, t) {
- function rt(n) {
- return typeof n != "undefined"
- }
- function o(n, t, i) {
- return Math.max(Math.min(parseInt(n, 10), i === Infinity ? i : parseInt(i, 10)), parseInt(t, 10))
- }
- function ii(n, t) {
- return function() {
- var i = this,
- r = i.wrapper,
- f = r[0].style,
- o = i.options;
- if (!o.isMaximized && !o.isMinimized) return i.restoreOptions = {
- width: f.width,
- height: f.height
- }, r.children(h).hide().end().children(e).find(gt).parent().hide().eq(0).before(u.action({
- name: "Restore"
- })), t.call(i), n == "maximize" ? i.wrapper.children(e).find(st).parent().hide() : i.wrapper.children(e).find(st).parent().show(), i
- }
- }
- function ri(n) {
- var t = this;
- t.owner = n;
- t._draggable = new ht(n.wrapper, {
- filter: h,
- group: n.wrapper.id + "-resizing",
- dragstart: f(t.dragstart, t),
- drag: f(t.drag, t),
- dragend: f(t.dragend, t)
- })
- }
- function ui(n, t) {
- var i = this;
- i.owner = n;
- i._draggable = new ht(n.wrapper, {
- filter: t,
- group: n.wrapper.id + "-moving",
- dragstart: f(i.dragstart, i),
- drag: f(i.drag, i),
- dragend: f(i.dragend, i),
- dragcancel: f(i.dragcancel, i)
- });
- i._draggable.userEvents.stopPropagation = !1
- }
- var i = window.kendo,
- d = i.ui.Widget,
- ht = i.ui.Draggable,
- ct = n.isPlainObject,
- fi = i._activeElement,
- f = n.proxy,
- l = n.extend,
- ut = n.each,
- s = i.template,
- g = "body",
- u, r = ".kendoWindow",
- a = ".k-window",
- ft = ".k-window-title",
- e = ft + "bar",
- v = ".k-window-content",
- h = ".k-resize-handle",
- nt = ".k-overlay",
- w = "k-content-frame",
- lt = "k-loading",
- at = "k-state-hover",
- vt = "k-state-focused",
- yt = "k-window-maximized",
- y = ":visible",
- tt = "hidden",
- p = "cursor",
- et = "open",
- ot = "activate",
- pt = "deactivate",
- wt = "close",
- it = "refresh",
- bt = "dragstart",
- kt = "dragend",
- dt = "error",
- c = "overflow",
- b = "zIndex",
- gt = ".k-window-actions .k-i-minimize,.k-window-actions .k-i-maximize",
- ni = ".k-i-pin",
- ti = ".k-i-unpin",
- st = ni + "," + ti,
- k = ".k-window-titlebar .k-window-action",
- ei = i.isLocalUrl,
- oi = d.extend({
- init: function(u, o) {
- var s = this,
- h, w = {},
- g, nt, c, it = !1,
- l, b, ut = o && o.actions && !o.actions.length,
- p;
- d.fn.init.call(s, u, o);
- o = s.options;
- c = o.position;
- u = s.element;
- l = o.content;
- ut && (o.actions = []);
- s.appendTo = n(o.appendTo);
- s._animations();
- l && !ct(l) && (l = o.content = {
- url: l
- });
- u.find("script").filter(function() {
- return !this.type || this.type.toLowerCase().indexOf("script") >= 0
- }).remove();
- u.parent().is(s.appendTo) || c.top !== t && c.left !== t || (u.is(y) ? (w = u.offset(), it = !0) : (g = u.css("visibility"), nt = u.css("display"), u.css({
- visibility: tt,
- display: ""
- }), w = u.offset(), u.css({
- visibility: g,
- display: nt
- })), c.top === t && (c.top = w.top), c.left === t && (c.left = w.left));
- rt(o.visible) && o.visible !== null || (o.visible = u.is(y));
- h = s.wrapper = u.closest(a);
- u.is(".k-content") && h[0] || (u.addClass("k-window-content k-content"), s._createWindow(u, o), h = s.wrapper = u.closest(a), s._dimensions());
- s._position();
- o.pinned && s.pin(!0);
- l && s.refresh(l);
- o.visible && s.toFront();
- b = h.children(v);
- s._tabindex(b);
- o.visible && o.modal && s._overlay(h.is(y)).css({
- opacity: .5
- });
- h.on("mouseenter" + r, k, function() {
- n(this).addClass(at)
- }).on("mouseleave" + r, k, function() {
- n(this).removeClass(at)
- }).on("click" + r, "> " + k, f(s._windowActionHandler, s));
- b.on("keydown" + r, f(s._keydown, s)).on("focus" + r, function() {
- h.addClass(vt)
- }).on("blur" + r, function() {
- h.removeClass(vt)
- });
- this._resizable();
- this._draggable();
- p = u.attr("id");
- p && (p = p + "_wnd_title", h.children(e).children(ft).attr("id", p), b.attr({
- role: "dialog",
- "aria-labelledby": p
- }));
- h.add(h.children(".k-resize-handle," + e)).on("mousedown" + r, f(s.toFront, s));
- s.touchScroller = i.touchScroller(u);
- s._resizeHandler = function(n) {
- return s._onDocumentResize(n)
- };
- n(window).on("resize", s._resizeHandler);
- o.visible && (s.trigger(et), s.trigger(ot));
- i.notify(s)
- },
- _dimensions: function() {
- var i = this,
- t = i.wrapper,
- n = i.options,
- r = n.width,
- u = n.height,
- f = n.maxHeight;
- i.title(n.title);
- ut(["minWidth", "minHeight", "maxWidth", "maxHeight"], function(i, r) {
- var u = n[r];
- u && u != Infinity && t.css(r, u)
- });
- f && f != Infinity && i.element.css("maxHeight", f);
- r && (r.toString().indexOf("%") > 0 ? t.width(r) : t.width(o(r, n.minWidth, n.maxWidth)));
- u && (u.toString().indexOf("%") > 0 ? t.height(u) : t.height(o(u, n.minHeight, n.maxHeight)));
- n.visible || t.hide()
- },
- _position: function() {
- var t = this,
- i = t.wrapper,
- n = t.options.position;
- n.top === 0 && (n.top = n.top.toString());
- n.left === 0 && (n.left = n.left.toString());
- i.css({
- top: n.top || "",
- left: n.left || ""
- })
- },
- _animations: function() {
- var n = this.options;
- n.animation === !1 && (n.animation = {
- open: {
- effects: {}
- },
- close: {
- hide: !0,
- effects: {}
- }
- })
- },
- _resize: function() {
- i.resize(this.element.children())
- },
- _resizable: function() {
- var i = this.options.resizable,
- t = this.wrapper;
- if (this.resizing && (t.off("dblclick" + r).children(h).remove(), this.resizing.destroy(), this.resizing = null), i) {
- t.on("dblclick" + r, e, f(function(t) {
- n(t.target).closest(".k-window-action").length || this.toggleMaximization()
- }, this));
- ut("n e s w se sw ne nw".split(" "), function(n, i) {
- t.append(u.resizeHandle(i))
- });
- this.resizing = new ri(this)
- }
- },
- _draggable: function() {
- var n = this.options.draggable;
- this.dragging && (this.dragging.destroy(), this.dragging = null);
- n && (this.dragging = new ui(this, n.dragHandle || e))
- },
- setOptions: function(n) {
- var t = this;
- d.fn.setOptions.call(t, n);
- t._animations();
- t._dimensions();
- t._position();
- t._resizable();
- t._draggable()
- },
- events: [et, ot, pt, wt, it, "resize", bt, kt, dt],
- options: {
- name: "Window",
- animation: {
- open: {
- effects: {
- zoom: {
- direction: "in"
- },
- fade: {
- direction: "in"
- }
- },
- duration: 350
- },
- close: {
- effects: {
- zoom: {
- direction: "out",
- properties: {
- scale: .7
- }
- },
- fade: {
- direction: "out"
- }
- },
- duration: 350,
- hide: !0
- }
- },
- title: "",
- actions: ["Close"],
- autoFocus: !0,
- modal: !1,
- resizable: !0,
- draggable: !0,
- minWidth: 90,
- minHeight: 50,
- maxWidth: Infinity,
- maxHeight: Infinity,
- pinned: !1,
- position: {},
- content: null,
- visible: null,
- height: null,
- width: null,
- appendTo: "body"
- },
- _closable: function() {
- return n.inArray("close", n.map(this.options.actions, function(n) {
- return n.toLowerCase()
- })) > -1
- },
- _keydown: function(n) {
- var u = this,
- h = u.options,
- f = i.keys,
- e = n.keyCode,
- t = u.wrapper,
- c, r, s = 10,
- p = u.options.isMaximized,
- v, y, l, a;
- n.target != n.currentTarget || u._closing || (e == f.ESC && u._closable() && u._close(!0), !h.draggable || n.ctrlKey || p || (c = i.getOffset(t), e == f.UP ? r = t.css("top", c.top - s) : e == f.DOWN ? r = t.css("top", c.top + s) : e == f.LEFT ? r = t.css("left", c.left - s) : e == f.RIGHT && (r = t.css("left", c.left + s))), h.resizable && n.ctrlKey && !p && (e == f.UP ? (r = !0, y = t.height() - s) : e == f.DOWN && (r = !0, y = t.height() + s), e == f.LEFT ? (r = !0, v = t.width() - s) : e == f.RIGHT && (r = !0, v = t.width() + s), r && (l = o(v, h.minWidth, h.maxWidth), a = o(y, h.minHeight, h.maxHeight), isNaN(l) || (t.width(l), u.options.width = l + "px"), isNaN(a) || (t.height(a), u.options.height = a + "px"), u.resize())), r && n.preventDefault())
- },
- _overlay: function(t) {
- var i = this.appendTo.children(nt),
- r = this.wrapper;
- return i.length || (i = n("<div class='k-overlay' />")), i.insertBefore(r[0]).toggle(t).css(b, parseInt(r.css(b), 10) - 1), i
- },
- _windowActionHandler: function(t) {
- var r = n(t.target).closest(".k-window-action").find(".k-icon"),
- i = this;
- i._closing || ut({
- "k-i-close": function() {
- i._close(!0)
- },
- "k-i-maximize": i.maximize,
- "k-i-minimize": i.minimize,
- "k-i-restore": i.restore,
- "k-i-refresh": i.refresh,
- "k-i-pin": i.pin,
- "k-i-unpin": i.unpin
- }, function(n, u) {
- if (r.hasClass(n)) return t.preventDefault(), u.call(i), !1
- })
- },
- _modals: function() {
- var t = this;
- return n(a).filter(function() {
- var i = n(this),
- r = t._object(i).options;
- return r.modal && r.visible && i.is(y)
- }).sort(function(t, i) {
- return +n(t).css("zIndex") - +n(i).css("zIndex")
- })
- },
- _object: function(n) {
- var t = n.children(v);
- return t.data("kendoWindow") || t.data("kendo" + this.options.name)
- },
- center: function() {
- var t = this,
- e = t.options.position,
- r = t.wrapper,
- i = n(window),
- o = 0,
- s = 0,
- u, f;
- return t.options.isMaximized ? t : (t.options.pinned || (o = i.scrollTop(), s = i.scrollLeft()), f = s + Math.max(0, (i.width() - r.width()) / 2), u = o + Math.max(0, (i.height() - r.height()) / 2), r.css({
- left: f,
- top: u
- }), e.top = u, e.left = f, t)
- },
- title: function(n) {
- var i = this,
- r = i.wrapper,
- s = i.options,
- t = r.children(e),
- f = t.children(ft),
- o = t.outerHeight();
- return arguments.length ? (n === !1 ? (r.addClass("k-window-titleless"), t.remove()) : (t.length || r.prepend(u.titlebar(l(u, s))), r.css("padding-top", o), t.css("margin-top", -o)), f.text(n), i.options.title = n, i) : f.text()
- },
- content: function(n) {
- var t = this.wrapper.children(v),
- r = t.children(".km-scroll-container");
- return (t = r[0] ? r : t, !rt(n)) ? t.html() : (i.destroy(this.element.children()), t.html(n), this)
- },
- open: function() {
- var t = this,
- f = t.wrapper,
- r = t.options,
- e = r.animation.open,
- s = f.children(v),
- h = s.css(c),
- u, o;
- return t.trigger(et) || (t._closing && f.kendoStop(!0, !0), t._closing = !1, t.toFront(), r.autoFocus && t.element.focus(), r.visible = !0, r.modal && (u = t._overlay(!1), u.kendoStop(!0, !0), e.duration && i.effects.Fade ? (o = i.fx(u).fadeIn(), o.duration(e.duration || 0), o.endValue(.5), o.play()) : u.css("opacity", .5), u.show()), f.is(y) || (s.css(c, tt), f.show().kendoStop().kendoAnimate({
- effects: e.effects,
- duration: e.duration,
- complete: function() {
- r.autoFocus && t.element.focus();
- t.trigger(ot);
- s.css(c, h)
- }
- }))), r.isMaximized && (t._documentScrollTop = n(document).scrollTop(), n("html, body").css(c, tt)), t
- },
- _removeOverlay: function(r) {
- var f = this._modals(),
- e = this.options,
- s = e.modal && !f.length,
- h = e.modal ? this._overlay(!0) : n(t),
- o = e.animation.close,
- u;
- s ? !r && o.duration && i.effects.Fade ? (u = i.fx(h).fadeOut(), u.duration(o.duration || 0), u.startValue(.5), u.play()) : this._overlay(!1).remove() : f.length && this._object(f.last())._overlay(!0)
- },
- _close: function(t) {
- var i = this,
- r = i.wrapper,
- u = i.options,
- e = u.animation.open,
- f = u.animation.close;
- r.is(y) && !i.trigger(wt, {
- userTriggered: !!t
- }) && (i._closing = !0, u.visible = !1, n(a).each(function(t, i) {
- var u = n(i).children(v);
- i != r && u.find("> ." + w).length > 0 && u.children(nt).remove()
- }), this._removeOverlay(), r.kendoStop().kendoAnimate({
- effects: f.effects || e.effects,
- reverse: f.reverse === !0,
- duration: f.duration,
- complete: function() {
- r.hide().css("opacity", "");
- i.trigger(pt);
- var n = i._object(i._modals().last());
- n && n.toFront()
- }
- }));
- i.options.isMaximized && (n("html, body").css(c, ""), i._documentScrollTop && i._documentScrollTop > 0 && n(document).scrollTop(i._documentScrollTop))
- },
- close: function() {
- return this._close(!1), this
- },
- _actionable: function(t) {
- return n(t).is(k + "," + k + " .k-icon,:input,a")
- },
- _shouldFocus: function(t) {
- var r = fi(),
- i = this.element;
- return this.options.autoFocus && !n(r).is(i) && !this._actionable(t) && (!i.find(r).length || !i.find(t).length)
- },
- toFront: function(t) {
- var r = this,
- i = r.wrapper,
- s = i[0],
- f = +i.css(b),
- h = f,
- c = t && t.target || null,
- e, o;
- return n(a).each(function(t, i) {
- var r = n(i),
- e = r.css(b),
- o = r.children(v);
- isNaN(e) || (f = Math.max(+e, f));
- i != s && o.find("> ." + w).length > 0 && o.append(u.overlay)
- }), (!i[0].style.zIndex || h < f) && i.css(b, f + 2), r.element.find("> .k-overlay").remove(), r._shouldFocus(c) && (r.element.focus(), e = n(window).scrollTop(), o = parseInt(i.position().top, 10), o > 0 && o < e && (e > 0 ? n(window).scrollTop(o) : i.css("top", e))), r
- },
- toggleMaximization: function() {
- return this._closing ? this : this[this.options.isMaximized ? "restore" : "maximize"]()
- },
- restore: function() {
- var t = this,
- i = t.options,
- u = i.minHeight,
- r = t.restoreOptions;
- return !i.isMaximized && !i.isMinimized ? t : (u && u != Infinity && t.wrapper.css("min-height", u), t.wrapper.css({
- position: i.pinned ? "fixed" : "absolute",
- left: r.left,
- top: r.top,
- width: r.width,
- height: r.height
- }).removeClass(yt).find(".k-window-content,.k-resize-handle").show().end().find(".k-window-titlebar .k-i-restore").parent().remove().end().end().find(gt).parent().show().end().end().find(st).parent().show(), t.options.width = r.width, t.options.height = r.height, n("html, body").css(c, ""), this._documentScrollTop && this._documentScrollTop > 0 && n(document).scrollTop(this._documentScrollTop), i.isMaximized = i.isMinimized = !1, t.resize(), t)
- },
- maximize: ii("maximize", function() {
- var t = this,
- i = t.wrapper,
- r = i.position();
- l(t.restoreOptions, {
- left: r.left,
- top: r.top
- });
- i.css({
- left: 0,
- top: 0,
- position: "fixed"
- }).addClass(yt);
- this._documentScrollTop = n(document).scrollTop();
- n("html, body").css(c, tt);
- t.options.isMaximized = !0;
- t._onDocumentResize()
- }),
- minimize: ii("minimize", function() {
- var n = this;
- n.wrapper.css({
- height: "",
- minHeight: ""
- });
- n.element.hide();
- n.options.isMinimized = !0
- }),
- pin: function(t) {
- var i = this,
- u = n(window),
- r = i.wrapper,
- f = parseInt(r.css("top"), 10),
- o = parseInt(r.css("left"), 10);
- !t && (i.options.pinned || i.options.isMaximized) || (r.css({
- position: "fixed",
- top: f - u.scrollTop(),
- left: o - u.scrollLeft()
- }), r.children(e).find(ni).addClass("k-i-unpin").removeClass("k-i-pin"), i.options.pinned = !0)
- },
- unpin: function() {
- var t = this,
- r = n(window),
- i = t.wrapper,
- u = parseInt(i.css("top"), 10),
- f = parseInt(i.css("left"), 10);
- t.options.pinned && !t.options.isMaximized && (i.css({
- position: "",
- top: u + r.scrollTop(),
- left: f + r.scrollLeft()
- }), i.children(e).find(ti).addClass("k-i-pin").removeClass("k-i-unpin"), t.options.pinned = !1)
- },
- _onDocumentResize: function() {
- var t = this,
- u = t.wrapper,
- f = n(window),
- i, r;
- t.options.isMaximized && (i = f.width(), r = f.height() - parseInt(u.css("padding-top"), 10), u.css({
- width: i,
- height: r
- }), t.options.width = i, t.options.height = r, t.resize())
- },
- refresh: function(t) {
- var i = this,
- e = i.options,
- o = n(i.element),
- h, f, c;
- if (ct(t) || (t = {
- url: t
- }), t = l({}, e.content, t), f = rt(e.iframe) ? e.iframe : t.iframe, c = t.url, c)
- if (rt(f) || (f = !ei(c)), f) {
- h = o.find("." + w)[0];
- h ? h.src = c || h.src : o.html(u.contentFrame(l({}, e, {
- content: t
- })));
- o.find("." + w).unbind("load" + r).on("load" + r, function() {
- i.trigger(it)
- })
- } else i._ajaxRequest(t);
- else t.template && i.content(s(t.template)({})), i.trigger(it);
- return o.toggleClass("k-window-iframecontent", f), i
- },
- _ajaxRequest: function(t) {
- var i = this,
- r = t.template,
- u = i.wrapper.find(".k-window-titlebar .k-i-refresh"),
- f = setTimeout(function() {
- u.addClass(lt)
- }, 100);
- n.ajax(l({
- type: "GET",
- dataType: "html",
- cache: !1,
- error: function(n, t) {
- i.trigger(dt, {
- status: t,
- xhr: n
- })
- },
- complete: function() {
- clearTimeout(f);
- u.removeClass(lt)
- },
- success: function(n) {
- r && (n = s(r)(n || {}));
- i.content(n);
- i.element.prop("scrollTop", 0);
- i.trigger(it)
- }
- }, t))
- },
- destroy: function() {
- var t = this.wrapper;
- d.fn.destroy.call(this);
- i.destroy(t);
- this.resizing && this.resizing.destroy();
- this.dragging && this.dragging.destroy();
- this.element.children("iframe").remove();
- t.find(".k-resize-handle,.k-window-titlebar").off(r);
- t.remove().off(r);
- n(window).off("resize", this._resizeHandler);
- this._removeOverlay(!0)
- },
- _createWindow: function() {
- var e = this,
- t = e.element,
- f = e.options,
- o, r, s = i.support.isRtl(t);
- f.scrollable === !1 && t.attr("style", "overflow:hidden;");
- r = n(u.wrapper(f));
- f.title !== !1 && r.append(u.titlebar(l(u, f)));
- o = t.find("iframe:not(.k-content)").map(function() {
- var n = this.getAttribute("src");
- return this.src = "", n
- });
- r.toggleClass("k-rtl", s).appendTo(e.appendTo).append(t).find("iframe:not(.k-content)").each(function(n) {
- this.src = o[n]
- });
- r.find(".k-window-title").css(s ? "left" : "right", r.find(".k-window-actions").outerWidth() + 10);
- t.show();
- t.find("[data-role=editor]").each(function() {
- var t = n(this).data("kendoEditor");
- t && t.refresh()
- })
- }
- });
- u = {
- wrapper: s("<div class='k-widget k-window' />"),
- action: s("<a role='button' href='\\#' class='k-window-action k-link'><span role='presentation' class='k-icon k-i-#= name.toLowerCase() #'>#= name #<\/span><\/a>"),
- titlebar: s("<div class='k-window-titlebar k-header'> <span class='k-window-title'>#= title #<\/span><div class='k-window-actions'># for (var i = 0; i < actions.length; i++) { ##= action({ name: actions[i] }) ## } #<\/div><\/div>"),
- overlay: "<div class='k-overlay' />",
- contentFrame: s("<iframe frameborder='0' title='#= title #' class='" + w + "' src='#= content.url #'>This page requires frames in order to show content<\/iframe>"),
- resizeHandle: s("<div class='k-resize-handle k-resize-#= data #'><\/div>")
- };
- ri.prototype = {
- dragstart: function(t) {
- var r = this,
- e = r.owner,
- f = e.wrapper;
- r.elementPadding = parseInt(e.wrapper.css("padding-top"), 10);
- r.initialCursorPosition = i.getOffset(f, "position");
- r.resizeDirection = t.currentTarget.prop("className").replace("k-resize-handle k-resize-", "");
- r.initialSize = {
- width: f.width(),
- height: f.height()
- };
- r.containerOffset = i.getOffset(e.appendTo);
- f.append(u.overlay).children(h).not(t.currentTarget).hide();
- n(g).css(p, t.currentTarget.css(p))
- },
- drag: function(n) {
- var u = this,
- f = u.owner,
- e = f.wrapper,
- t = f.options,
- s = u.resizeDirection,
- h = u.containerOffset,
- c = u.initialCursorPosition,
- v = u.initialSize,
- i, r, l, a, y = Math.max(n.x.location, h.left),
- p = Math.max(n.y.location, h.top);
- s.indexOf("e") >= 0 ? (i = y - c.left, e.width(o(i, t.minWidth, t.maxWidth))) : s.indexOf("w") >= 0 && (a = c.left + v.width, i = o(a - y, t.minWidth, t.maxWidth), e.css({
- left: a - i - h.left,
- width: i
- }));
- s.indexOf("s") >= 0 ? (r = p - c.top - u.elementPadding, e.height(o(r, t.minHeight, t.maxHeight))) : s.indexOf("n") >= 0 && (l = c.top + v.height, r = o(l - p, t.minHeight, t.maxHeight), e.css({
- top: l - r - h.top,
- height: r
- }));
- i && (f.options.width = i + "px");
- r && (f.options.height = r + "px");
- f.resize()
- },
- dragend: function(t) {
- var i = this,
- r = i.owner,
- u = r.wrapper;
- return u.find(nt).remove().end().children(h).not(t.currentTarget).show(), n(g).css(p, ""), r.touchScroller && r.touchScroller.reset(), t.keyCode == 27 && u.css(i.initialCursorPosition).css(i.initialSize), !1
- },
- destroy: function() {
- this._draggable.destroy()
- }
- };
- ui.prototype = {
- dragstart: function(t) {
- var r = this.owner,
- f = r.element,
- e = f.find(".k-window-actions"),
- o = i.getOffset(r.appendTo);
- r.trigger(bt);
- r.initialWindowPosition = i.getOffset(r.wrapper, "position");
- r.startPosition = {
- left: t.x.client - r.initialWindowPosition.left,
- top: t.y.client - r.initialWindowPosition.top
- };
- r.minLeftPosition = e.length > 0 ? e.outerWidth() + parseInt(e.css("right"), 10) - f.outerWidth() : 20 - f.outerWidth();
- r.minLeftPosition -= o.left;
- r.minTopPosition = -o.top;
- r.wrapper.append(u.overlay).children(h).hide();
- n(g).css(p, t.currentTarget.css(p))
- },
- drag: function(t) {
- var i = this.owner,
- r = i.options.position,
- u = Math.max(t.y.client - i.startPosition.top, i.minTopPosition),
- f = Math.max(t.x.client - i.startPosition.left, i.minLeftPosition),
- e = {
- left: f,
- top: u
- };
- n(i.wrapper).css(e);
- r.top = u;
- r.left = f
- },
- _finishDrag: function() {
- var t = this.owner;
- t.wrapper.children(h).toggle(!t.options.isMinimized).end().find(nt).remove();
- n(g).css(p, "")
- },
- dragcancel: function(n) {
- this._finishDrag();
- n.currentTarget.closest(a).css(this.owner.initialWindowPosition)
- },
- dragend: function() {
- return this._finishDrag(), this.owner.trigger(kt), !1
- },
- destroy: function() {
- this._draggable.destroy()
- }
- };
- i.ui.plugin(oi)
- }(window.kendo.jQuery);
- ! function(n) {
- return n(["./kendo.data.min", "./kendo.combobox.min", "./kendo.multiselect.min", "./kendo.validator.min"], function() {
- ! function(n, t) {
- function u(t, i, r, u) {
- var f = {};
- return t.sort ? (f[this.options.prefix + "sort"] = n.map(t.sort, function(n) {
- return n.field + "-" + n.dir
- }).join("~"), delete t.sort) : f[this.options.prefix + "sort"] = "", t.page && (f[this.options.prefix + "page"] = t.page, delete t.page), t.pageSize && (f[this.options.prefix + "pageSize"] = t.pageSize, delete t.pageSize), t.group ? (f[this.options.prefix + "group"] = n.map(t.group, function(n) {
- return n.field + "-" + n.dir
- }).join("~"), delete t.group) : f[this.options.prefix + "group"] = "", t.aggregate && (f[this.options.prefix + "aggregate"] = n.map(t.aggregate, function(n) {
- return n.field + "-" + n.aggregate
- }).join("~"), delete t.aggregate), t.filter ? (f[this.options.prefix + "filter"] = o(t.filter, r), delete t.filter) : (f[this.options.prefix + "filter"] = "", delete t.filter), delete t.take, delete t.skip, e(f, t, "", u), f
- }
- function c(n) {
- var t = i.culture().numberFormat[h];
- return ("" + n).replace(h, t)
- }
- function l(n, t) {
- return n instanceof Date ? n = t ? i.stringify(n).replace(/"/g, "") : i.format("{0:G}", n) : "number" == typeof n && (n = c(n)), n
- }
- function f(n, i, r, u, f, o) {
- b(i) ? a(n, i, f, o) : k(i) ? e(n, i, f, o) : n[f] === t && (n[f] = r[u] = l(i, o))
- }
- function e(n, t, i, r) {
- var u, e, o;
- for (u in t) e = i ? i + "." + u : u, o = t[u], f(n, o, t, u, e, r)
- }
- function a(n, t, i, r) {
- for (var s, o, h, u = 0, e = 0; u < t.length; u++) s = t[u], o = "[" + e + "]", h = i + o, f(n, s, t, o, h, r), e++
- }
- function o(i, r) {
- return i.filters ? n.map(i.filters, function(n) {
- var i = n.filters && n.filters.length > 1,
- t = o(n, r);
- return t && i && (t = "(" + t + ")"), t
- }).join("~" + i.logic + "~") : i.field ? i.field + "~" + i.operator + "~" + v(i.value, r) : t
- }
- function v(n, t) {
- if ("string" == typeof n) {
- if (!(n.indexOf("Date(") > -1)) return n = n.replace(w, "''"), t && (n = encodeURIComponent(n)), "'" + n + "'";
- n = new Date(parseInt(n.replace(/^\/Date\((.*?)\)\/$/, "$1"), 10))
- }
- return n && n.getTime ? "datetime'" + i.format("{0:yyyy-MM-ddTHH-mm-ss}", n) + "'" : n
- }
- function s(i) {
- return {
- value: t !== i.Key ? i.Key : i.value,
- field: i.Member || i.field,
- hasSubgroups: i.HasSubgroups || i.hasSubgroups || !1,
- aggregates: p(i.Aggregates || i.aggregates),
- items: i.HasSubgroups ? n.map(i.Items || i.items, s) : i.Items || i.items
- }
- }
- function y(n) {
- var t = {};
- return t[n.AggregateMethodName.toLowerCase()] = n.Value, t
- }
- function p(n) {
- var t, i, r, u = {};
- for (t in n) {
- u = {};
- r = n[t];
- for (i in r) u[i.toLowerCase()] = r[i];
- n[t] = u
- }
- return n
- }
- var i = window.kendo,
- w = /'/gi,
- r = n.extend,
- b = n.isArray,
- k = n.isPlainObject,
- h = ".";
- r(!0, i.data, {
- schemas: {
- "aspnetmvc-ajax": {
- groups: function(t) {
- return n.map(this.data(t), s)
- },
- aggregates: function(n) {
- n = n.d || n;
- for (var t, u = {}, e = n.AggregateResults || [], i = 0, f = e.length; f > i; i++) t = e[i], u[t.Member] = r(!0, u[t.Member], y(t));
- return u
- }
- }
- }
- });
- r(!0, i.data, {
- transports: {
- "aspnetmvc-ajax": i.data.RemoteTransport.extend({
- init: function(n) {
- var t = this,
- f = (n || {}).stringifyDates;
- i.data.RemoteTransport.fn.init.call(this, r(!0, {}, this.options, n, {
- parameterMap: function(n, i) {
- return u.call(t, n, i, !1, f)
- }
- }))
- },
- read: function(n) {
- var t = this.options.data,
- r = this.options.read.url;
- t ? (r && (this.options.data = null), !t.Data.length && r ? i.data.RemoteTransport.fn.read.call(this, n) : n.success(t)) : i.data.RemoteTransport.fn.read.call(this, n)
- },
- options: {
- read: {
- type: "POST"
- },
- update: {
- type: "POST"
- },
- create: {
- type: "POST"
- },
- destroy: {
- type: "POST"
- },
- parameterMap: u,
- prefix: ""
- }
- })
- }
- });
- r(!0, i.data, {
- transports: {
- "aspnetmvc-server": i.data.RemoteTransport.extend({
- init: function(n) {
- var t = this;
- i.data.RemoteTransport.fn.init.call(this, r(n, {
- parameterMap: function(n, i) {
- return u.call(t, n, i, !0)
- }
- }))
- },
- read: function(t) {
- var r, i, u = this.options.prefix,
- f = [u + "sort", u + "page", u + "pageSize", u + "group", u + "aggregate", u + "filter"],
- e = RegExp("(" + f.join("|") + ")=[^&]*&?", "g");
- i = location.search.replace(e, "").replace("?", "");
- i.length && !/&$/.test(i) && (i += "&");
- t = this.setup(t, "read");
- r = t.url;
- r.indexOf("?") >= 0 ? (i = i.replace(/(.*?=.*?)&/g, function(n) {
- return r.indexOf(n.substr(0, n.indexOf("="))) >= 0 ? "" : n
- }), r += "&" + i) : r += "?" + i;
- r += n.map(t.data, function(n, t) {
- return t + "=" + n
- }).join("&");
- location.href = r
- }
- })
- }
- })
- }(window.kendo.jQuery),
- function(n) {
- var i = window.kendo,
- t = i.ui;
- t && t.ComboBox && (t.ComboBox.requestData = function(t) {
- var i = n(t).data("kendoComboBox"),
- u = i.dataSource.filter(),
- r = i.input.val();
- return u || (r = ""), {
- text: r
- }
- })
- }(window.kendo.jQuery),
- function(n) {
- var i = window.kendo,
- t = i.ui;
- t && t.MultiSelect && (t.MultiSelect.requestData = function(t) {
- var i = n(t).data("kendoMultiSelect"),
- r = i.input.val();
- return {
- text: r !== i.options.placeholder ? r : ""
- }
- })
- }(window.kendo.jQuery),
- function(n) {
- var t = window.kendo,
- i = (t.ui, n.extend),
- r = n.isFunction;
- i(!0, t.data, {
- schemas: {
- "imagebrowser-aspnetmvc": {
- data: function(n) {
- return n || []
- },
- model: {
- id: "name",
- fields: {
- name: {
- field: "Name"
- },
- size: {
- field: "Size"
- },
- type: {
- field: "EntryType",
- parse: function(n) {
- return 0 == n ? "f" : "d"
- }
- }
- }
- }
- }
- }
- });
- i(!0, t.data, {
- transports: {
- "imagebrowser-aspnetmvc": t.data.RemoteTransport.extend({
- init: function(i) {
- t.data.RemoteTransport.fn.init.call(this, n.extend(!0, {}, this.options, i))
- },
- _call: function(i, u) {
- u.data = n.extend({}, u.data, {
- path: this.options.path()
- });
- r(this.options[i]) ? this.options[i].call(this, u) : t.data.RemoteTransport.fn[i].call(this, u)
- },
- read: function(n) {
- this._call("read", n)
- },
- create: function(n) {
- this._call("create", n)
- },
- destroy: function(n) {
- this._call("destroy", n)
- },
- update: function() {},
- options: {
- read: {
- type: "POST"
- },
- update: {
- type: "POST"
- },
- create: {
- type: "POST"
- },
- destroy: {
- type: "POST"
- },
- parameterMap: function(n, t) {
- return "read" != t && (n.EntryType = "f" === n.EntryType ? 0 : 1), n
- }
- }
- })
- }
- })
- }(window.kendo.jQuery),
- function(n) {
- function r() {
- var n, i = {};
- for (n in t) i["mvc" + n] = s(n);
- return i
- }
- function u() {
- var n, i = {};
- for (n in t) i["mvc" + n] = h(n);
- return i
- }
- function f(n, t) {
- var u, i, r, f = {},
- e = n.data(),
- o = t.length;
- for (r in e) i = r.toLowerCase(), u = i.indexOf(t), u > -1 && (i = i.substring(u + o, r.length), i && (f[i] = e[r]));
- return f
- }
- function e(t) {
- for (var u = t.Fields || [], f = {}, i = 0, r = u.length; r > i; i++) n.extend(!0, f, o(u[i]));
- return f
- }
- function o(n) {
- for (var i, f, o = {}, s = {}, u = n.FieldName, r = n.ValidationRules, t = 0, e = r.length; e > t; t++) i = r[t].ValidationType, f = r[t].ValidationParameters, o[u + i] = l(u, i, f), s[u + i] = c(r[t].ErrorMessage);
- return {
- rules: o,
- messages: s
- }
- }
- function s(n) {
- return function(t) {
- return t.attr("data-val-" + n)
- }
- }
- function h(n) {
- return function(i) {
- return i.filter("[data-val-" + n + "]").length ? t[n](i, f(i, n)) : !0
- }
- }
- function c(n) {
- return function() {
- return n
- }
- }
- function l(n, i, r) {
- return function(u) {
- return u.filter("[name=" + n + "]").length ? t[i](u, r) : !0
- }
- }
- function a(n, t) {
- return "string" == typeof t && (t = RegExp("^(?:" + t + ")$")), t.test(n)
- }
- var i = /("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,
- t = {
- required: function(n) {
- var f, t, r = n.val(),
- u = n.filter("[type=checkbox]");
- return u.length && (f = u[0].name.replace(i, "\\$1"), t = u.next("input:hidden[name='" + f + "']"), r = t.length ? t.val() : "checked" === n.attr("checked")), !("" === r || !r)
- },
- number: function(n) {
- return "" === n.val() || null !== kendo.parseFloat(n.val())
- },
- regex: function(n, t) {
- return "" !== n.val() ? a(n.val(), t.pattern) : !0
- },
- range: function(n, t) {
- return "" !== n.val() ? this.min(n, t) && this.max(n, t) : !0
- },
- min: function(n, t) {
- var i = parseFloat(t.min) || 0,
- r = kendo.parseFloat(n.val());
- return r >= i
- },
- max: function(n, t) {
- var i = parseFloat(t.max) || 0,
- r = kendo.parseFloat(n.val());
- return i >= r
- },
- date: function(n) {
- return "" === n.val() || null !== kendo.parseDate(n.val())
- },
- length: function(t, i) {
- if ("" !== t.val()) {
- var r = n.trim(t.val()).length;
- return (!i.min || r >= (i.min || 0)) && (!i.max || r <= (i.max || 0))
- }
- return !0
- }
- };
- n.extend(!0, kendo.ui.validator, {
- rules: u(),
- messages: r(),
- messageLocators: {
- mvcLocator: {
- locate: function(n, t) {
- return t = t.replace(i, "\\$1"), n.find(".field-validation-valid[data-valmsg-for=" + t + "], .field-validation-error[data-valmsg-for=" + t + "]")
- },
- decorate: function(n, t) {
- n.addClass("field-validation-error").attr("data-valmsg-for", t || "")
- }
- },
- mvcMetadataLocator: {
- locate: function(n, t) {
- return t = t.replace(i, "\\$1"), n.find("#" + t + "_validationMessage.field-validation-valid")
- },
- decorate: function(n, t) {
- n.addClass("field-validation-error").attr("id", t + "_validationMessage")
- }
- }
- },
- ruleResolvers: {
- mvcMetaDataResolver: {
- resolve: function(t) {
- var i, r = window.mvcClientValidationMetadata || [];
- if (r.length)
- for (t = n(t), i = 0; i < r.length; i++)
- if (r[i].FormId == t.attr("id")) return e(r[i]);
- return {}
- }
- }
- }
- })
- }(window.kendo.jQuery)
- })
- }("function" == typeof define && define.amd ? define : function(n, t) {
- return t()
- });
- ! function(n) {
- return n([], function() {
- ! function(n) {
- var t = n.kendo || (n.kendo = {
- cultures: {}
- });
- t.cultures["pl-PL"] = {
- name: "pl-PL",
- numberFormat: {
- pattern: ["-n"],
- decimals: 2,
- ",": " ",
- ".": ",",
- groupSize: [3],
- percent: {
- pattern: ["-n%", "n%"],
- decimals: 2,
- ",": " ",
- ".": ",",
- groupSize: [3],
- symbol: "%"
- },
- currency: {
- pattern: ["-n $", "n $"],
- decimals: 2,
- ",": " ",
- ".": ",",
- groupSize: [3],
- symbol: "zł"
- }
- },
- calendars: {
- standard: {
- days: {
- names: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"],
- namesAbbr: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So"],
- namesShort: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So"]
- },
- months: {
- names: ["styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień", ""],
- namesAbbr: ["sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru", ""]
- },
- AM: [""],
- PM: [""],
- patterns: {
- d: "yyyy-MM-dd",
- D: "d MMMM yyyy",
- F: "d MMMM yyyy HH:mm:ss",
- g: "yyyy-MM-dd HH:mm",
- G: "yyyy-MM-dd HH:mm:ss",
- m: "d MMMM",
- M: "d MMMM",
- s: "yyyy'-'MM'-'dd'T'HH':'mm':'ss",
- t: "HH:mm",
- T: "HH:mm:ss",
- u: "yyyy'-'MM'-'dd HH':'mm':'ss'Z'",
- y: "MMMM yyyy",
- Y: "MMMM yyyy"
- },
- "/": "-",
- ":": ":",
- firstDay: 1
- }
- }
- }
- }(this)
- })
- }("function" == typeof define && define.amd ? define : function(n, t) {
- return t()
- }),
- function() {
- function n(n) {
- return function() {
- return n
- }
- }(function(t) {
- var u = this || eval("this"),
- r = u.document,
- e = u.navigator,
- i = u.jQuery,
- f = u.JSON;
- (function(n) {
- "function" == typeof require && "object" == typeof exports && "object" == typeof module ? n(module.exports || exports) : "function" == typeof define && define.amd ? define(["exports"], n) : n(u.ko = {})
- })(function(o) {
- function c(n, t, i, r) {
- s.d[n] = {
- init: function(n) {
- return s.a.f.set(n, a, {}), {
- controlsDescendantBindings: !0
- }
- },
- update: function(n, u, f, e, o) {
- f = s.a.f.get(n, a);
- u = s.a.c(u());
- e = !i != !u;
- var h = !f.fb;
- (h || t || e !== f.vb) && (h && (f.fb = s.a.Oa(s.e.childNodes(n), !0)), e ? (h || s.e.P(n, s.a.Oa(f.fb)), s.Ja(r ? r(o, u) : o, n)) : s.e.ba(n), f.vb = e)
- }
- };
- s.g.S[n] = !1;
- s.e.L[n] = !0
- }
- function v(n, t, i) {
- i && t !== s.h.n(n) && s.h.W(n, t);
- t !== s.h.n(n) && s.q.I(s.a.Ga, null, [n, "change"])
- }
- var s = "undefined" != typeof o ? o : {},
- y, h, l, a;
- s.b = function(n, t) {
- for (var i = n.split("."), r = s, u = 0; u < i.length - 1; u++) r = r[i[u]];
- r[i[i.length - 1]] = t
- };
- s.r = function(n, t, i) {
- n[t] = i
- };
- s.version = "2.3.0";
- s.b("version", s.version);
- s.a = function() {
- function o(n, t) {
- for (var i in n) n.hasOwnProperty(i) && t(i, n[i])
- }
- function h(n, t) {
- if ("input" !== s.a.u(n) || !n.type || "click" != t.toLowerCase()) return !1;
- var i = n.type;
- return "checkbox" == i || "radio" == i
- }
- var c = {},
- l = {},
- a, n;
- return c[e && /Firefox\/2/i.test(e.userAgent) ? "KeyboardEvent" : "UIEvents"] = ["keyup", "keydown", "keypress"], c.MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "), o(c, function(n, t) {
- if (t.length)
- for (var i = 0, r = t.length; i < r; i++) l[t[i]] = n
- }), a = {
- propertychange: !0
- }, n = r && function() {
- for (var n = 3, i = r.createElement("div"), u = i.getElementsByTagName("i"); i.innerHTML = "<!--[if gt IE " + ++n + "]><i><\/i><![endif]-->", u[0];);
- return 4 < n ? n : t
- }(), {
- Ta: ["authenticity_token", /^__RequestVerificationToken(_.*)?$/],
- p: function(n, t) {
- for (var i = 0, r = n.length; i < r; i++) t(n[i])
- },
- k: function(n, t) {
- if ("function" == typeof Array.prototype.indexOf) return Array.prototype.indexOf.call(n, t);
- for (var i = 0, r = n.length; i < r; i++)
- if (n[i] === t) return i;
- return -1
- },
- La: function(n, t, i) {
- for (var r = 0, u = n.length; r < u; r++)
- if (t.call(i, n[r])) return n[r];
- return null
- },
- ka: function(n, t) {
- var i = s.a.k(n, t);
- 0 <= i && n.splice(i, 1)
- },
- Ma: function(n) {
- n = n || [];
- for (var i = [], t = 0, r = n.length; t < r; t++) 0 > s.a.k(i, n[t]) && i.push(n[t]);
- return i
- },
- Z: function(n, t) {
- n = n || [];
- for (var r = [], i = 0, u = n.length; i < u; i++) r.push(t(n[i]));
- return r
- },
- Y: function(n, t) {
- n = n || [];
- for (var r = [], i = 0, u = n.length; i < u; i++) t(n[i]) && r.push(n[i]);
- return r
- },
- R: function(n, t) {
- if (t instanceof Array) n.push.apply(n, t);
- else
- for (var i = 0, r = t.length; i < r; i++) n.push(t[i]);
- return n
- },
- ja: function(n, t, i) {
- var r = n.indexOf ? n.indexOf(t) : s.a.k(n, t);
- 0 > r ? i && n.push(t) : i || n.splice(r, 1)
- },
- extend: function(n, t) {
- if (t)
- for (var i in t) t.hasOwnProperty(i) && (n[i] = t[i]);
- return n
- },
- w: o,
- oa: function(n) {
- for (; n.firstChild;) s.removeNode(n.firstChild)
- },
- Mb: function(n) {
- n = s.a.N(n);
- for (var i = r.createElement("div"), t = 0, u = n.length; t < u; t++) i.appendChild(s.H(n[t]));
- return i
- },
- Oa: function(n, t) {
- for (var r, i = 0, f = n.length, u = []; i < f; i++) r = n[i].cloneNode(!0), u.push(t ? s.H(r) : r);
- return u
- },
- P: function(n, t) {
- if (s.a.oa(n), t)
- for (var i = 0, r = t.length; i < r; i++) n.appendChild(t[i])
- },
- eb: function(n, t) {
- var r = n.nodeType ? [n] : n;
- if (0 < r.length) {
- for (var f = r[0], e = f.parentNode, i = 0, u = t.length; i < u; i++) e.insertBefore(t[i], f);
- for (i = 0, u = r.length; i < u; i++) s.removeNode(r[i])
- }
- },
- hb: function(t, i) {
- 7 > n ? t.setAttribute("selected", i) : t.selected = i
- },
- F: function(n) {
- return null === n || n === t ? "" : n.trim ? n.trim() : n.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, "")
- },
- Wb: function(n, t) {
- for (var r, u = [], f = (n || "").split(t), i = 0, e = f.length; i < e; i++) r = s.a.F(f[i]), "" !== r && u.push(r);
- return u
- },
- Tb: function(n, t) {
- return n = n || "", t.length > n.length ? !1 : n.substring(0, t.length) === t
- },
- yb: function(n, t) {
- if (t.compareDocumentPosition) return 16 == (t.compareDocumentPosition(n) & 16);
- for (; null != n;) {
- if (n == t) return !0;
- n = n.parentNode
- }
- return !1
- },
- aa: function(n) {
- return s.a.yb(n, n.ownerDocument)
- },
- pb: function(n) {
- return !!s.a.La(n, s.a.aa)
- },
- u: function(n) {
- return n && n.tagName && n.tagName.toLowerCase()
- },
- o: function(t, r, u) {
- var o = n && a[r],
- f, e, c;
- if (o || "undefined" == typeof i)
- if (o || "function" != typeof t.addEventListener)
- if ("undefined" != typeof t.attachEvent) f = function(n) {
- u.call(t, n)
- }, e = "on" + r, t.attachEvent(e, f), s.a.C.ia(t, function() {
- t.detachEvent(e, f)
- });
- else throw Error("Browser doesn't support addEventListener or attachEvent");
- else t.addEventListener(r, u, !1);
- else h(t, r) && (c = u, u = function(n, t) {
- var i = this.checked;
- t && (this.checked = !0 !== t.sb);
- c.call(this, n);
- this.checked = i
- }), i(t).bind(r, u)
- },
- Ga: function(n, t) {
- if (!n || !n.nodeType) throw Error("element must be a DOM node when calling triggerEvent");
- if ("undefined" != typeof i) {
- var f = [];
- h(n, t) && f.push({
- sb: n.checked
- });
- i(n).trigger(t, f)
- } else if ("function" == typeof r.createEvent)
- if ("function" == typeof n.dispatchEvent) f = r.createEvent(l[t] || "HTMLEvents"), f.initEvent(t, !0, !0, u, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, n), n.dispatchEvent(f);
- else throw Error("The supplied element doesn't support dispatchEvent");
- else if ("undefined" != typeof n.fireEvent) h(n, t) && (n.checked = !0 !== n.checked), n.fireEvent("on" + t);
- else throw Error("Browser doesn't support triggering events");
- },
- c: function(n) {
- return s.T(n) ? n() : n
- },
- ya: function(n) {
- return s.T(n) ? n.t() : n
- },
- ga: function(n, t, i) {
- if (t) {
- var r = /\S+/g,
- u = n.className.match(r) || [];
- s.a.p(t.match(r), function(n) {
- s.a.ja(u, n, i)
- });
- n.className = u.join(" ")
- }
- },
- ib: function(n, i) {
- var u = s.a.c(i),
- f;
- (null === u || u === t) && (u = "");
- f = s.e.firstChild(n);
- !f || 3 != f.nodeType || s.e.nextSibling(f) ? s.e.P(n, [r.createTextNode(u)]) : f.data = u;
- s.a.Bb(n)
- },
- gb: function(t, i) {
- if (t.name = i, 7 >= n) try {
- t.mergeAttributes(r.createElement("<input name='" + t.name + "'/>"), !1)
- } catch (u) {}
- },
- Bb: function(t) {
- 9 <= n && (t = 1 == t.nodeType ? t : t.parentNode, t.style && (t.style.zoom = t.style.zoom))
- },
- zb: function(t) {
- if (n) {
- var i = t.style.width;
- t.style.width = 0;
- t.style.width = i
- }
- },
- Qb: function(n, t) {
- n = s.a.c(n);
- t = s.a.c(t);
- for (var r = [], i = n; i <= t; i++) r.push(i);
- return r
- },
- N: function(n) {
- for (var i = [], t = 0, r = n.length; t < r; t++) i.push(n[t]);
- return i
- },
- Ub: 6 === n,
- Vb: 7 === n,
- ca: n,
- Ua: function(n, t) {
- for (var r = s.a.N(n.getElementsByTagName("input")).concat(s.a.N(n.getElementsByTagName("textarea"))), f = "string" == typeof t ? function(n) {
- return n.name === t
- } : function(n) {
- return t.test(n.name)
- }, u = [], i = r.length - 1; 0 <= i; i--) f(r[i]) && u.push(r[i]);
- return u
- },
- Nb: function(n) {
- return "string" == typeof n && (n = s.a.F(n)) ? f && f.parse ? f.parse(n) : new Function("return " + n)() : null
- },
- Ca: function(n, t, i) {
- if (!f || !f.stringify) throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");
- return f.stringify(s.a.c(n), t, i)
- },
- Ob: function(n, t, i) {
- var v, e, h, f, u, c;
- i = i || {};
- var l = i.params || {},
- a = i.includeFields || this.Ta,
- v = n;
- if ("object" == typeof n && "form" === s.a.u(n))
- for (v = n.action, e = a.length - 1; 0 <= e; e--)
- for (h = s.a.Ua(n, a[e]), f = h.length - 1; 0 <= f; f--) l[h[f].name] = h[f].value;
- t = s.a.c(t);
- u = r.createElement("form");
- u.style.display = "none";
- u.action = v;
- u.method = "post";
- for (c in t) n = r.createElement("input"), n.name = c, n.value = s.a.Ca(s.a.c(t[c])), u.appendChild(n);
- o(l, function(n, t) {
- var i = r.createElement("input");
- i.name = n;
- i.value = t;
- u.appendChild(i)
- });
- r.body.appendChild(u);
- i.submitter ? i.submitter(u) : u.submit();
- setTimeout(function() {
- u.parentNode.removeChild(u)
- }, 0)
- }
- }
- }();
- s.b("utils", s.a);
- s.b("utils.arrayForEach", s.a.p);
- s.b("utils.arrayFirst", s.a.La);
- s.b("utils.arrayFilter", s.a.Y);
- s.b("utils.arrayGetDistinctValues", s.a.Ma);
- s.b("utils.arrayIndexOf", s.a.k);
- s.b("utils.arrayMap", s.a.Z);
- s.b("utils.arrayPushAll", s.a.R);
- s.b("utils.arrayRemoveItem", s.a.ka);
- s.b("utils.extend", s.a.extend);
- s.b("utils.fieldsIncludedWithJsonPost", s.a.Ta);
- s.b("utils.getFormFields", s.a.Ua);
- s.b("utils.peekObservable", s.a.ya);
- s.b("utils.postJson", s.a.Ob);
- s.b("utils.parseJson", s.a.Nb);
- s.b("utils.registerEventHandler", s.a.o);
- s.b("utils.stringifyJson", s.a.Ca);
- s.b("utils.range", s.a.Qb);
- s.b("utils.toggleDomNodeCssClass", s.a.ga);
- s.b("utils.triggerEvent", s.a.Ga);
- s.b("utils.unwrapObservable", s.a.c);
- s.b("utils.objectForEach", s.a.w);
- s.b("utils.addOrRemoveItem", s.a.ja);
- s.b("unwrap", s.a.c);
- Function.prototype.bind || (Function.prototype.bind = function(n) {
- var i = this,
- t = Array.prototype.slice.call(arguments);
- return n = t.shift(),
- function() {
- return i.apply(n, t.concat(Array.prototype.slice.call(arguments)))
- }
- });
- s.a.f = new function() {
- var r = 0,
- n = "__ko__" + (new Date).getTime(),
- i = {};
- return {
- get: function(n, i) {
- var r = s.a.f.pa(n, !1);
- return r === t ? t : r[i]
- },
- set: function(n, i, r) {
- (r !== t || s.a.f.pa(n, !1) !== t) && (s.a.f.pa(n, !0)[i] = r)
- },
- pa: function(u, f) {
- var e = u[n];
- if (!e || "null" === e || !i[e]) {
- if (!f) return t;
- e = u[n] = "ko" + r++;
- i[e] = {}
- }
- return i[e]
- },
- clear: function(t) {
- var r = t[n];
- return r ? (delete i[r], t[n] = null, !0) : !1
- }
- }
- };
- s.b("utils.domData", s.a.f);
- s.b("utils.domData.clear", s.a.f.clear);
- s.a.C = new function() {
- function n(n, i) {
- var r = s.a.f.get(n, u);
- return r === t && i && (r = [], s.a.f.set(n, u, r)), r
- }
- function r(t) {
- var u = n(t, !1),
- e;
- if (u)
- for (u = u.slice(0), e = 0; e < u.length; e++) u[e](t);
- if (s.a.f.clear(t), "function" == typeof i && "function" == typeof i.cleanData && i.cleanData([t]), f[t.nodeType])
- for (u = t.firstChild; t = u;) u = t.nextSibling, 8 === t.nodeType && r(t)
- }
- var u = "__ko_domNodeDisposal__" + (new Date).getTime(),
- e = {
- 1: !0,
- 8: !0,
- 9: !0
- },
- f = {
- 1: !0,
- 9: !0
- };
- return {
- ia: function(t, i) {
- if ("function" != typeof i) throw Error("Callback must be a function");
- n(t, !0).push(i)
- },
- cb: function(i, r) {
- var f = n(i, !1);
- f && (s.a.ka(f, r), 0 == f.length && s.a.f.set(i, u, t))
- },
- H: function(n) {
- var t, i, u;
- if (e[n.nodeType] && (r(n), f[n.nodeType]))
- for (t = [], s.a.R(t, n.getElementsByTagName("*")), i = 0, u = t.length; i < u; i++) r(t[i]);
- return n
- },
- removeNode: function(n) {
- s.H(n);
- n.parentNode && n.parentNode.removeChild(n)
- }
- }
- };
- s.H = s.a.C.H;
- s.removeNode = s.a.C.removeNode;
- s.b("cleanNode", s.H);
- s.b("removeNode", s.removeNode);
- s.b("utils.domNodeDisposal", s.a.C);
- s.b("utils.domNodeDisposal.addDisposeCallback", s.a.C.ia);
- s.b("utils.domNodeDisposal.removeDisposeCallback", s.a.C.cb),
- function() {
- s.a.xa = function(n) {
- var t, f;
- if ("undefined" != typeof i) {
- if (i.parseHTML) t = i.parseHTML(n) || [];
- else if ((t = i.clean([n])) && t[0]) {
- for (n = t[0]; n.parentNode && 11 !== n.parentNode.nodeType;) n = n.parentNode;
- n.parentNode && n.parentNode.removeChild(n)
- }
- } else {
- for (f = s.a.F(n).toLowerCase(), t = r.createElement("div"), f = f.match(/^<(thead|tbody|tfoot)/) && [1, "<table>", "<\/table>"] || !f.indexOf("<tr") && [2, "<table><tbody>", "<\/tbody><\/table>"] || (!f.indexOf("<td") || !f.indexOf("<th")) && [3, "<table><tbody><tr>", "<\/tr><\/tbody><\/table>"] || [0, "", ""], n = "ignored<div>" + f[1] + n + f[2] + "<\/div>", "function" == typeof u.innerShiv ? t.appendChild(u.innerShiv(n)) : t.innerHTML = n; f[0]--;) t = t.lastChild;
- t = s.a.N(t.lastChild.childNodes)
- }
- return t
- };
- s.a.fa = function(n, r) {
- if (s.a.oa(n), r = s.a.c(r), null !== r && r !== t)
- if ("string" != typeof r && (r = r.toString()), "undefined" != typeof i) i(n).html(r);
- else
- for (var f = s.a.xa(r), u = 0; u < f.length; u++) n.appendChild(f[u])
- }
- }();
- s.b("utils.parseHtmlFragment", s.a.xa);
- s.b("utils.setHtml", s.a.fa);
- s.s = function() {
- function i(n, t) {
- var r;
- if (n)
- if (8 == n.nodeType) r = s.s.$a(n.nodeValue), null != r && t.push({
- xb: n,
- Kb: r
- });
- else if (1 == n.nodeType)
- for (var r = 0, u = n.childNodes, f = u.length; r < f; r++) i(u[r], t)
- }
- var n = {};
- return {
- va: function(t) {
- if ("function" != typeof t) throw Error("You can only pass a function to ko.memoization.memoize()");
- var i = (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1) + (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1);
- return n[i] = t, "<!--[ko_memo:" + i + "]-->"
- },
- mb: function(i, r) {
- var u = n[i];
- if (u === t) throw Error("Couldn't find any memo with ID " + i + ". Perhaps it's already been unmemoized.");
- try {
- return u.apply(null, r || []), !0
- } finally {
- delete n[i]
- }
- },
- nb: function(n, t) {
- var f = [],
- u, o, r, e;
- for (i(n, f), u = 0, o = f.length; u < o; u++) r = f[u].xb, e = [r], t && s.a.R(e, t), s.s.mb(f[u].Kb, e), r.nodeValue = "", r.parentNode && r.parentNode.removeChild(r)
- },
- $a: function(n) {
- return (n = n.match(/^\[ko_memo\:(.*?)\]$/)) ? n[1] : null
- }
- }
- }();
- s.b("memoization", s.s);
- s.b("memoization.memoize", s.s.va);
- s.b("memoization.unmemoize", s.s.mb);
- s.b("memoization.parseMemoText", s.s.$a);
- s.b("memoization.unmemoizeDomNodeAndDescendants", s.s.nb);
- s.Sa = {
- throttle: function(n, t) {
- n.throttleEvaluation = t;
- var i = null;
- return s.j({
- read: n,
- write: function(r) {
- clearTimeout(i);
- i = setTimeout(function() {
- n(r)
- }, t)
- }
- })
- },
- notify: function(t, i) {
- return t.equalityComparer = "always" == i ? n(!1) : s.m.fn.equalityComparer, t
- }
- };
- s.b("extenders", s.Sa);
- s.kb = function(n, t, i) {
- this.target = n;
- this.la = t;
- this.wb = i;
- s.r(this, "dispose", this.B)
- };
- s.kb.prototype.B = function() {
- this.Hb = !0;
- this.wb()
- };
- s.V = function() {
- this.G = {};
- s.a.extend(this, s.V.fn);
- s.r(this, "subscribe", this.Da);
- s.r(this, "extend", this.extend);
- s.r(this, "getSubscriptionsCount", this.Db)
- };
- s.V.fn = {
- Da: function(n, t, i) {
- i = i || "change";
- var r = new s.kb(this, t ? n.bind(t) : n, function() {
- s.a.ka(this.G[i], r)
- }.bind(this));
- return this.G[i] || (this.G[i] = []), this.G[i].push(r), r
- },
- notifySubscribers: function(n, t) {
- t = t || "change";
- this.G[t] && s.q.I(function() {
- s.a.p(this.G[t].slice(0), function(t) {
- t && !0 !== t.Hb && t.la(n)
- })
- }, this)
- },
- Db: function() {
- var n = 0;
- return s.a.w(this.G, function(t, i) {
- n += i.length
- }), n
- },
- extend: function(n) {
- var t = this;
- return n && s.a.w(n, function(n, i) {
- var r = s.Sa[n];
- "function" == typeof r && (t = r(t, i))
- }), t
- }
- };
- s.Wa = function(n) {
- return null != n && "function" == typeof n.Da && "function" == typeof n.notifySubscribers
- };
- s.b("subscribable", s.V);
- s.b("isSubscribable", s.Wa);
- s.q = function() {
- var n = [];
- return {
- rb: function(t) {
- n.push({
- la: t,
- Ra: []
- })
- },
- end: function() {
- n.pop()
- },
- bb: function(t) {
- if (!s.Wa(t)) throw Error("Only subscribable things can act as dependencies");
- if (0 < n.length) {
- var i = n[n.length - 1];
- !i || 0 <= s.a.k(i.Ra, t) || (i.Ra.push(t), i.la(t))
- }
- },
- I: function(t, i, r) {
- try {
- return n.push(null), t.apply(i, r || [])
- } finally {
- n.pop()
- }
- }
- }
- }();
- y = {
- undefined: !0,
- boolean: !0,
- number: !0,
- string: !0
- };
- s.m = function(n) {
- function t() {
- return 0 < arguments.length ? (t.equalityComparer && t.equalityComparer(i, arguments[0]) || (t.K(), i = arguments[0], t.J()), this) : (s.q.bb(t), i)
- }
- var i = n;
- return s.V.call(t), t.t = function() {
- return i
- }, t.J = function() {
- t.notifySubscribers(i)
- }, t.K = function() {
- t.notifySubscribers(i, "beforeChange")
- }, s.a.extend(t, s.m.fn), s.r(t, "peek", t.t), s.r(t, "valueHasMutated", t.J), s.r(t, "valueWillMutate", t.K), t
- };
- s.m.fn = {
- equalityComparer: function(n, t) {
- return null === n || typeof n in y ? n === t : !1
- }
- };
- h = s.m.Pb = "__ko_proto__";
- s.m.fn[h] = s.m;
- s.qa = function(n, i) {
- return null === n || n === t || n[h] === t ? !1 : n[h] === i ? !0 : s.qa(n[h], i)
- };
- s.T = function(n) {
- return s.qa(n, s.m)
- };
- s.Xa = function(n) {
- return "function" == typeof n && n[h] === s.m || "function" == typeof n && n[h] === s.j && n.Eb ? !0 : !1
- };
- s.b("observable", s.m);
- s.b("isObservable", s.T);
- s.b("isWriteableObservable", s.Xa);
- s.U = function(n) {
- if (n = n || [], "object" != typeof n || !("length" in n)) throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");
- return n = s.m(n), s.a.extend(n, s.U.fn), n
- };
- s.U.fn = {
- remove: function(n) {
- for (var u, r = this.t(), i = [], f = "function" == typeof n ? n : function(t) {
- return t === n
- }, t = 0; t < r.length; t++) u = r[t], f(u) && (0 === i.length && this.K(), i.push(u), r.splice(t, 1), t--);
- return i.length && this.J(), i
- },
- removeAll: function(n) {
- if (n === t) {
- var i = this.t(),
- r = i.slice(0);
- return this.K(), i.splice(0, i.length), this.J(), r
- }
- return n ? this.remove(function(t) {
- return 0 <= s.a.k(n, t)
- }) : []
- },
- destroy: function(n) {
- var i = this.t(),
- r = "function" == typeof n ? n : function(t) {
- return t === n
- },
- t;
- for (this.K(), t = i.length - 1; 0 <= t; t--) r(i[t]) && (i[t]._destroy = !0);
- this.J()
- },
- destroyAll: function(i) {
- return i === t ? this.destroy(n(!0)) : i ? this.destroy(function(n) {
- return 0 <= s.a.k(i, n)
- }) : []
- },
- indexOf: function(n) {
- var t = this();
- return s.a.k(t, n)
- },
- replace: function(n, t) {
- var i = this.indexOf(n);
- 0 <= i && (this.K(), this.t()[i] = t, this.J())
- }
- };
- s.a.p("pop push reverse shift sort splice unshift".split(" "), function(n) {
- s.U.fn[n] = function() {
- var t = this.t();
- return this.K(), t = t[n].apply(t, arguments), this.J(), t
- }
- });
- s.a.p(["slice"], function(n) {
- s.U.fn[n] = function() {
- var t = this();
- return t[n].apply(t, arguments)
- }
- });
- s.b("observableArray", s.U);
- s.j = function(i, r, u) {
- function w() {
- s.a.p(o, function(n) {
- n.B()
- });
- o = []
- }
- function nt() {
- var n = f.throttleEvaluation;
- n && 0 <= n ? (clearTimeout(d), d = setTimeout(c, n)) : c()
- }
- function c() {
- var n, u, i;
- if (!y)
- if (a && p()) h();
- else {
- y = !0;
- try {
- for (n = s.a.Z(o, function(n) {
- return n.target
- }), s.q.rb(function(i) {
- var r;
- 0 <= (r = s.a.k(n, i)) ? n[r] = t : o.push(i.Da(nt))
- }), u = e.call(r), i = n.length - 1; 0 <= i; i--) n[i] && o.splice(i, 1)[0].B();
- a = !0;
- f.notifySubscribers(l, "beforeChange");
- l = u;
- f.notifySubscribers(l)
- } finally {
- s.q.end();
- y = !1
- }
- o.length || h()
- }
- }
- function f() {
- if (0 < arguments.length) {
- if ("function" == typeof k) k.apply(r, arguments);
- else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");
- return this
- }
- return a || c(), s.q.bb(f), l
- }
- function b() {
- return !a || 0 < o.length
- }
- var l, a = !1,
- y = !1,
- e = i,
- g, p;
- if (e && "object" == typeof e ? (u = e, e = u.read) : (u = u || {}, e || (e = u.read)), "function" != typeof e) throw Error("Pass a function that returns the value of the ko.computed");
- var k = u.write,
- v = u.disposeWhenNodeIsRemoved || u.$ || null,
- p = u.disposeWhen || u.Qa || n(!1),
- h = w,
- o = [],
- d = null;
- return r || (r = u.owner), f.t = function() {
- return a || c(), l
- }, f.Cb = function() {
- return o.length
- }, f.Eb = "function" == typeof u.write, f.B = function() {
- h()
- }, f.ta = b, s.V.call(f), s.a.extend(f, s.j.fn), s.r(f, "peek", f.t), s.r(f, "dispose", f.B), s.r(f, "isActive", f.ta), s.r(f, "getDependenciesCount", f.Cb), !0 !== u.deferEvaluation && c(), v && b() && (h = function() {
- s.a.C.cb(v, h);
- w()
- }, s.a.C.ia(v, h), g = p, p = function() {
- return !s.a.aa(v) || g()
- }), f
- };
- s.Gb = function(n) {
- return s.qa(n, s.j)
- };
- o = s.m.Pb;
- s.j[o] = s.m;
- s.j.fn = {};
- s.j.fn[o] = s.j;
- s.b("dependentObservable", s.j);
- s.b("computed", s.j);
- s.b("isComputed", s.Gb),
- function() {
- function n(u, f, e) {
- if (e = e || new i, u = f(u), "object" != typeof u || null === u || u === t || u instanceof Date || u instanceof String || u instanceof Number || u instanceof Boolean) return u;
- var o = u instanceof Array ? [] : {};
- return e.save(u, o), r(u, function(i) {
- var r = f(u[i]),
- s;
- switch (typeof r) {
- case "boolean":
- case "number":
- case "string":
- case "function":
- o[i] = r;
- break;
- case "object":
- case "undefined":
- s = e.get(r);
- o[i] = s !== t ? s : n(r, f, e)
- }
- }), o
- }
- function r(n, t) {
- if (n instanceof Array) {
- for (var i = 0; i < n.length; i++) t(i);
- "function" == typeof n.toJSON && t("toJSON")
- } else
- for (i in n) t(i)
- }
- function i() {
- this.keys = [];
- this.Ha = []
- }
- s.lb = function(t) {
- if (0 == arguments.length) throw Error("When calling ko.toJS, pass the object you want to convert.");
- return n(t, function(n) {
- for (var t = 0; s.T(n) && 10 > t; t++) n = n();
- return n
- })
- };
- s.toJSON = function(n, t, i) {
- return n = s.lb(n), s.a.Ca(n, t, i)
- };
- i.prototype = {
- save: function(n, t) {
- var i = s.a.k(this.keys, n);
- 0 <= i ? this.Ha[i] = t : (this.keys.push(n), this.Ha.push(t))
- },
- get: function(n) {
- return n = s.a.k(this.keys, n), 0 <= n ? this.Ha[n] : t
- }
- }
- }();
- s.b("toJS", s.lb);
- s.b("toJSON", s.toJSON),
- function() {
- s.h = {
- n: function(n) {
- switch (s.a.u(n)) {
- case "option":
- return !0 === n.__ko__hasDomDataOptionValue__ ? s.a.f.get(n, s.d.options.wa) : 7 >= s.a.ca ? n.getAttributeNode("value") && n.getAttributeNode("value").specified ? n.value : n.text : n.value;
- case "select":
- return 0 <= n.selectedIndex ? s.h.n(n.options[n.selectedIndex]) : t;
- default:
- return n.value
- }
- },
- W: function(n, i) {
- switch (s.a.u(n)) {
- case "option":
- switch (typeof i) {
- case "string":
- s.a.f.set(n, s.d.options.wa, t);
- "__ko__hasDomDataOptionValue__" in n && delete n.__ko__hasDomDataOptionValue__;
- n.value = i;
- break;
- default:
- s.a.f.set(n, s.d.options.wa, i);
- n.__ko__hasDomDataOptionValue__ = !0;
- n.value = "number" == typeof i ? i : ""
- }
- break;
- case "select":
- "" === i && (i = t);
- (null === i || i === t) && (n.selectedIndex = -1);
- for (var r = n.options.length - 1; 0 <= r; r--)
- if (s.h.n(n.options[r]) == i) {
- n.selectedIndex = r;
- break
- }
- 1 < n.size || -1 !== n.selectedIndex || (n.selectedIndex = 0);
- break;
- default:
- (null === i || i === t) && (i = "");
- n.value = i
- }
- }
- }
- }();
- s.b("selectExtensions", s.h);
- s.b("selectExtensions.readValue", s.h.n);
- s.b("selectExtensions.writeValue", s.h.W);
- s.g = function() {
- function n(n, i) {
- for (var r = null; n != r;) r = n, n = n.replace(t, function(n, t) {
- return i[t]
- });
- return n
- }
- var t = /\@ko_token_(\d+)\@/g,
- i = ["true", "false", "null", "undefined"],
- r = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i;
- return {
- S: [],
- da: function(t) {
- var i = s.a.F(t),
- f, e, r, u;
- if (3 > i.length) return [];
- for ("{" === i.charAt(0) && (i = i.substring(1, i.length - 1)), t = [], f = null, r = 0; r < i.length; r++)
- if (u = i.charAt(r), null === f) switch (u) {
- case '"':
- case "'":
- case "/":
- f = r;
- e = u
- } else if (u == e && "\\" !== i.charAt(r - 1)) {
- u = i.substring(f, r + 1);
- t.push(u);
- var c = "@ko_token_" + (t.length - 1) + "@",
- i = i.substring(0, f) + c + i.substring(r + 1),
- r = r - (u.length - c.length),
- f = null
- }
- e = f = null;
- for (var o = 0, h = null, r = 0; r < i.length; r++) {
- if (u = i.charAt(r), null === f) switch (u) {
- case "{":
- f = r;
- h = u;
- e = "}";
- break;
- case "(":
- f = r;
- h = u;
- e = ")";
- break;
- case "[":
- f = r;
- h = u;
- e = "]"
- }
- u === h ? o++ : u === e && (o--, 0 === o && (u = i.substring(f, r + 1), t.push(u), c = "@ko_token_" + (t.length - 1) + "@", i = i.substring(0, f) + c + i.substring(r + 1), r -= u.length - c.length, f = null))
- }
- for (e = [], i = i.split(","), f = 0, r = i.length; f < r; f++) o = i[f], h = o.indexOf(":"), 0 < h && h < o.length - 1 ? (u = o.substring(h + 1), e.push({
- key: n(o.substring(0, h), t),
- value: n(u, t)
- })) : e.push({
- unknown: n(o, t)
- });
- return e
- },
- ea: function(n) {
- var e = "string" == typeof n ? s.g.da(n) : n,
- f = [],
- t, h, o, u;
- for (n = [], h = 0; t = e[h]; h++)
- if (0 < f.length && f.push(","), t.key) {
- n: {
- o = t.key;u = s.a.F(o);
- switch (u.length && u.charAt(0)) {
- case "'":
- case '"':
- break n;
- default:
- o = "'" + u + "'"
- }
- }
- t = t.value;f.push(o);f.push(":");f.push(t);t = s.a.F(t);0 <= s.a.k(i, s.a.F(t).toLowerCase()) ? t = !1 : (u = t.match(r), t = null === u ? !1 : u[1] ? "Object(" + u[1] + ")" + u[2] : t);t && (0 < n.length && n.push(", "), n.push(o + " : function(__ko_value) { " + t + " = __ko_value; }"))
- }
- else t.unknown && f.push(t.unknown);
- return e = f.join(""), 0 < n.length && (e = e + ", '_ko_property_writers' : { " + n.join("") + " } "), e
- },
- Jb: function(n, t) {
- for (var i = 0; i < n.length; i++)
- if (s.a.F(n[i].key) == t) return !0;
- return !1
- },
- ha: function(n, t, i, r, u) {
- n && s.T(n) ? !s.Xa(n) || u && n.t() === r || n(r) : (n = t()._ko_property_writers) && n[i] && n[i](r)
- }
- }
- }();
- s.b("expressionRewriting", s.g);
- s.b("expressionRewriting.bindingRewriteValidators", s.g.S);
- s.b("expressionRewriting.parseObjectLiteral", s.g.da);
- s.b("expressionRewriting.preProcessBindings", s.g.ea);
- s.b("jsonExpressionRewriting", s.g);
- s.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", s.g.ea),
- function() {
- function n(n) {
- return 8 == n.nodeType && (i ? n.text : n.nodeValue).match(e)
- }
- function t(n) {
- return 8 == n.nodeType && (i ? n.text : n.nodeValue).match(o)
- }
- function u(i, r) {
- for (var u = i, f = 1, e = []; u = u.nextSibling;) {
- if (t(u) && (f--, 0 === f)) return e;
- e.push(u);
- n(u) && f++
- }
- if (!r) throw Error("Cannot find closing comment tag to match: " + i.nodeValue);
- return null
- }
- function f(n, t) {
- var i = u(n, t);
- return i ? 0 < i.length ? i[i.length - 1].nextSibling : n.nextSibling : null
- }
- var i = r && "<!--test-->" === r.createComment("test").text,
- e = i ? /^\x3c!--\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*--\x3e$/ : /^\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*$/,
- o = i ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/,
- h = {
- ul: !0,
- ol: !0
- };
- s.e = {
- L: {},
- childNodes: function(t) {
- return n(t) ? u(t) : t.childNodes
- },
- ba: function(t) {
- if (n(t)) {
- t = s.e.childNodes(t);
- for (var i = 0, r = t.length; i < r; i++) s.removeNode(t[i])
- } else s.a.oa(t)
- },
- P: function(t, i) {
- if (n(t)) {
- s.e.ba(t);
- for (var u = t.nextSibling, r = 0, f = i.length; r < f; r++) u.parentNode.insertBefore(i[r], u)
- } else s.a.P(t, i)
- },
- ab: function(t, i) {
- n(t) ? t.parentNode.insertBefore(i, t.nextSibling) : t.firstChild ? t.insertBefore(i, t.firstChild) : t.appendChild(i)
- },
- Va: function(t, i, r) {
- r ? n(t) ? t.parentNode.insertBefore(i, r.nextSibling) : r.nextSibling ? t.insertBefore(i, r.nextSibling) : t.appendChild(i) : s.e.ab(t, i)
- },
- firstChild: function(i) {
- return n(i) ? !i.nextSibling || t(i.nextSibling) ? null : i.nextSibling : i.firstChild
- },
- nextSibling: function(i) {
- return n(i) && (i = f(i)), i.nextSibling && t(i.nextSibling) ? null : i.nextSibling
- },
- ob: function(t) {
- return (t = n(t)) ? t[1] : null
- },
- Za: function(i) {
- var o, r, u, e;
- if (h[s.a.u(i)] && (o = i.firstChild, o))
- do
- if (1 === o.nodeType) {
- if (r = o.firstChild, u = null, r)
- do u ? u.push(r) : n(r) ? (e = f(r, !0), e ? r = e : u = [r]) : t(r) && (u = [r]); while (r = r.nextSibling);
- if (r = u)
- for (u = o.nextSibling, e = 0; e < r.length; e++) u ? i.insertBefore(r[e], u) : i.appendChild(r[e])
- }
- while (o = o.nextSibling)
- }
- }
- }();
- s.b("virtualElements", s.e);
- s.b("virtualElements.allowedBindings", s.e.L);
- s.b("virtualElements.emptyNode", s.e.ba);
- s.b("virtualElements.insertAfter", s.e.Va);
- s.b("virtualElements.prepend", s.e.ab);
- s.b("virtualElements.setDomNodeChildren", s.e.P),
- function() {
- s.M = function() {
- this.Na = {}
- };
- s.a.extend(s.M.prototype, {
- nodeHasBindings: function(n) {
- switch (n.nodeType) {
- case 1:
- return null != n.getAttribute("data-bind");
- case 8:
- return null != s.e.ob(n);
- default:
- return !1
- }
- },
- getBindings: function(n, t) {
- var i = this.getBindingsString(n, t);
- return i ? this.parseBindingsString(i, t, n) : null
- },
- getBindingsString: function(n) {
- switch (n.nodeType) {
- case 1:
- return n.getAttribute("data-bind");
- case 8:
- return s.e.ob(n);
- default:
- return null
- }
- },
- parseBindingsString: function(n, t, i) {
- var r, f, e, o;
- try {
- return (r = this.Na[n]) || (f = this.Na, o = "with($context){with($data||{}){return{" + s.g.ea(n) + "}}}", e = new Function("$context", "$element", o), r = f[n] = e), r(t, i)
- } catch (u) {
- throw u.message = "Unable to parse bindings.\nBindings value: " + n + "\nMessage: " + u.message, u;
- }
- }
- });
- s.M.instance = new s.M
- }();
- s.b("bindingProvider", s.M),
- function() {
- function n(n, t, r) {
- for (var u = s.e.firstChild(t); t = u;) u = s.e.nextSibling(t), i(n, t, r)
- }
- function i(t, i, u) {
- var e = !0,
- f = 1 === i.nodeType;
- f && s.e.Za(i);
- (f && u || s.M.instance.nodeHasBindings(i)) && (e = r(i, null, t, u).Sb);
- e && n(t, i, !f)
- }
- function r(n, i, r, u) {
- function c(n) {
- return function() {
- return e[n]
- }
- }
- function l() {
- return e
- }
- var o = 0,
- e, h, a = s.a.f.get(n, f);
- if (!i) {
- if (a) throw Error("You cannot apply bindings multiple times to the same element.");
- s.a.f.set(n, f, !0)
- }
- return s.j(function() {
- var f = r && r instanceof s.A ? r : new s.A(s.a.c(r)),
- v = f.$data;
- !a && u && s.jb(n, f);
- (e = ("function" == typeof i ? i(f, n) : i) || s.M.instance.getBindings(n, f)) && (0 === o && (o = 1, s.a.w(e, function(i) {
- var r = s.d[i];
- if (r && 8 === n.nodeType && !s.e.L[i]) throw Error("The binding '" + i + "' cannot be used with virtual elements");
- if (r && "function" == typeof r.init && (r = r.init(n, c(i), l, v, f)) && r.controlsDescendantBindings) {
- if (h !== t) throw Error("Multiple bindings (" + h + " and " + i + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");
- h = i
- }
- }), o = 2), 2 === o && s.a.w(e, function(t) {
- var i = s.d[t];
- i && "function" == typeof i.update && i.update(n, c(t), l, v, f)
- }))
- }, null, {
- $: n
- }), {
- Sb: h === t
- }
- }
- s.d = {};
- s.A = function(n, t, i) {
- t ? (s.a.extend(this, t), this.$parentContext = t, this.$parent = t.$data, this.$parents = (t.$parents || []).slice(0), this.$parents.unshift(this.$parent)) : (this.$parents = [], this.$root = n, this.ko = s);
- this.$data = n;
- i && (this[i] = n)
- };
- s.A.prototype.createChildContext = function(n, t) {
- return new s.A(n, this, t)
- };
- s.A.prototype.extend = function(n) {
- var t = s.a.extend(new s.A, this);
- return s.a.extend(t, n)
- };
- var f = "__ko_boundElement";
- s.jb = function(n, t) {
- if (2 == arguments.length) s.a.f.set(n, "__ko_bindingContext__", t);
- else return s.a.f.get(n, "__ko_bindingContext__")
- };
- s.Ka = function(n, t, i) {
- return 1 === n.nodeType && s.e.Za(n), r(n, t, i, !0)
- };
- s.Ja = function(t, i) {
- 1 !== i.nodeType && 8 !== i.nodeType || n(t, i, !0)
- };
- s.Ia = function(n, t) {
- if (t && 1 !== t.nodeType && 8 !== t.nodeType) throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");
- t = t || u.document.body;
- i(n, t, !0)
- };
- s.na = function(n) {
- switch (n.nodeType) {
- case 1:
- case 8:
- var i = s.jb(n);
- if (i) return i;
- if (n.parentNode) return s.na(n.parentNode)
- }
- return t
- };
- s.ub = function(n) {
- return (n = s.na(n)) ? n.$data : t
- };
- s.b("bindingHandlers", s.d);
- s.b("applyBindings", s.Ia);
- s.b("applyBindingsToDescendants", s.Ja);
- s.b("applyBindingsToNode", s.Ka);
- s.b("contextFor", s.na);
- s.b("dataFor", s.ub)
- }();
- l = {
- "class": "className",
- "for": "htmlFor"
- };
- s.d.attr = {
- update: function(n, i) {
- var r = s.a.c(i()) || {};
- s.a.w(r, function(i, r) {
- r = s.a.c(r);
- var u = !1 === r || null === r || r === t;
- u && n.removeAttribute(i);
- 8 >= s.a.ca && i in l ? (i = l[i], u ? n.removeAttribute(i) : n[i] = r) : u || n.setAttribute(i, r.toString());
- "name" === i && s.a.gb(n, u ? "" : r.toString())
- })
- }
- };
- s.d.checked = {
- init: function(t, i, r) {
- s.a.o(t, "click", function() {
- var u, n, f;
- if ("checkbox" == t.type) u = t.checked;
- else if ("radio" == t.type && t.checked) u = t.value;
- else return;
- n = i();
- f = s.a.c(n);
- "checkbox" == t.type && f instanceof Array ? s.a.ja(n, t.value, t.checked) : s.g.ha(n, r, "checked", u, !0)
- });
- "radio" != t.type || t.name || s.d.uniqueName.init(t, n(!0))
- },
- update: function(n, t) {
- var i = s.a.c(t());
- "checkbox" == n.type ? n.checked = i instanceof Array ? 0 <= s.a.k(i, n.value) : i : "radio" == n.type && (n.checked = n.value == i)
- }
- };
- s.d.css = {
- update: function(n, t) {
- var i = s.a.c(t());
- "object" == typeof i ? s.a.w(i, function(t, i) {
- i = s.a.c(i);
- s.a.ga(n, t, i)
- }) : (i = String(i || ""), s.a.ga(n, n.__ko__cssValue, !1), n.__ko__cssValue = i, s.a.ga(n, i, !0))
- }
- };
- s.d.enable = {
- update: function(n, t) {
- var i = s.a.c(t());
- i && n.disabled ? n.removeAttribute("disabled") : i || n.disabled || (n.disabled = !0)
- }
- };
- s.d.disable = {
- update: function(n, t) {
- s.d.enable.update(n, function() {
- return !s.a.c(t())
- })
- }
- };
- s.d.event = {
- init: function(n, t, i, r) {
- var u = t() || {};
- s.a.w(u, function(u) {
- "string" == typeof u && s.a.o(n, u, function(n) {
- var e, o = t()[u],
- h, f;
- if (o) {
- h = i();
- try {
- f = s.a.N(arguments);
- f.unshift(r);
- e = o.apply(r, f)
- } finally {
- !0 !== e && (n.preventDefault ? n.preventDefault() : n.returnValue = !1)
- }!1 === h[u + "Bubble"] && (n.cancelBubble = !0, n.stopPropagation && n.stopPropagation())
- }
- })
- })
- }
- };
- s.d.foreach = {
- Ya: function(n) {
- return function() {
- var i = n(),
- t = s.a.ya(i);
- return !t || "number" == typeof t.length ? {
- foreach: i,
- templateEngine: s.D.sa
- } : (s.a.c(i), {
- foreach: t.data,
- as: t.as,
- includeDestroyed: t.includeDestroyed,
- afterAdd: t.afterAdd,
- beforeRemove: t.beforeRemove,
- afterRender: t.afterRender,
- beforeMove: t.beforeMove,
- afterMove: t.afterMove,
- templateEngine: s.D.sa
- })
- }
- },
- init: function(n, t) {
- return s.d.template.init(n, s.d.foreach.Ya(t))
- },
- update: function(n, t, i, r, u) {
- return s.d.template.update(n, s.d.foreach.Ya(t), i, r, u)
- }
- };
- s.g.S.foreach = !1;
- s.e.L.foreach = !0;
- s.d.hasfocus = {
- init: function(n, t, i) {
- function r(r) {
- var u, f;
- if (n.__ko_hasfocusUpdating = !0, u = n.ownerDocument, "activeElement" in u) {
- try {
- f = u.activeElement
- } catch (e) {
- f = u.body
- }
- r = f === n
- }
- u = t();
- s.g.ha(u, i, "hasfocus", r, !0);
- n.__ko_hasfocusLastValue = r;
- n.__ko_hasfocusUpdating = !1
- }
- var u = r.bind(null, !0),
- f = r.bind(null, !1);
- s.a.o(n, "focus", u);
- s.a.o(n, "focusin", u);
- s.a.o(n, "blur", f);
- s.a.o(n, "focusout", f)
- },
- update: function(n, t) {
- var i = !!s.a.c(t());
- n.__ko_hasfocusUpdating || n.__ko_hasfocusLastValue === i || (i ? n.focus() : n.blur(), s.q.I(s.a.Ga, null, [n, i ? "focusin" : "focusout"]))
- }
- };
- s.d.hasFocus = s.d.hasfocus;
- s.d.html = {
- init: function() {
- return {
- controlsDescendantBindings: !0
- }
- },
- update: function(n, t) {
- s.a.fa(n, t())
- }
- };
- a = "__ko_withIfBindingData";
- c("if");
- c("ifnot", !1, !0);
- c("with", !0, !1, function(n, t) {
- return n.createChildContext(t)
- });
- s.d.options = {
- init: function(n) {
- if ("select" !== s.a.u(n)) throw Error("options binding applies only to SELECT elements");
- for (; 0 < n.length;) n.remove(0);
- return {
- controlsDescendantBindings: !0
- }
- },
- update: function(n, i, u) {
- function a(n, t, i) {
- var r = typeof t;
- return "function" == r ? t(n) : "string" == r ? n[t] : i
- }
- function y(n, t) {
- if (e) {
- var i = 0 <= s.a.k(e, s.h.n(t[0]));
- s.a.hb(t[0], i)
- }
- }
- var p = 0 == n.length,
- h = !p && n.multiple ? n.scrollTop : null,
- l;
- i = s.a.c(i());
- var f = u(),
- w = f.optionsIncludeDestroyed,
- c = {},
- o, e;
- n.multiple ? e = s.a.Z(n.selectedOptions || s.a.Y(n.childNodes, function(n) {
- return n.tagName && "option" === s.a.u(n) && n.selected
- }), function(n) {
- return s.h.n(n)
- }) : 0 <= n.selectedIndex && (e = [s.h.n(n.options[n.selectedIndex])]);
- i ? ("undefined" == typeof i.length && (i = [i]), l = s.a.Y(i, function(n) {
- return w || n === t || null === n || !s.a.c(n._destroy)
- }), "optionsCaption" in f && (o = s.a.c(f.optionsCaption), null !== o && o !== t && l.unshift(c))) : i = [];
- u = y;
- f.optionsAfterRender && (u = function(n, i) {
- y(0, i);
- s.q.I(f.optionsAfterRender, null, [i[0], n !== c ? n : t])
- });
- s.a.Aa(n, l, function(n, i, u) {
- return u.length && (e = u[0].selected && [s.h.n(u[0])]), i = r.createElement("option"), n === c ? (s.a.fa(i, o), s.h.W(i, t)) : (u = a(n, f.optionsValue, n), s.h.W(i, s.a.c(u)), n = a(n, f.optionsText, u), s.a.ib(i, n)), [i]
- }, null, u);
- e = null;
- p && "value" in f && v(n, s.a.ya(f.value), !0);
- s.a.zb(n);
- h && 20 < Math.abs(h - n.scrollTop) && (n.scrollTop = h)
- }
- };
- s.d.options.wa = "__ko.optionValueDomData__";
- s.d.selectedOptions = {
- init: function(n, t, i) {
- s.a.o(n, "change", function() {
- var u = t(),
- r = [];
- s.a.p(n.getElementsByTagName("option"), function(n) {
- n.selected && r.push(s.h.n(n))
- });
- s.g.ha(u, i, "selectedOptions", r)
- })
- },
- update: function(n, t) {
- if ("select" != s.a.u(n)) throw Error("values binding applies only to SELECT elements");
- var i = s.a.c(t());
- i && "number" == typeof i.length && s.a.p(n.getElementsByTagName("option"), function(n) {
- var t = 0 <= s.a.k(i, s.h.n(n));
- s.a.hb(n, t)
- })
- }
- };
- s.d.style = {
- update: function(n, t) {
- var i = s.a.c(t() || {});
- s.a.w(i, function(t, i) {
- i = s.a.c(i);
- n.style[t] = i || ""
- })
- }
- };
- s.d.submit = {
- init: function(n, t, i, r) {
- if ("function" != typeof t()) throw Error("The value for a submit binding must be a function");
- s.a.o(n, "submit", function(i) {
- var u, f = t();
- try {
- u = f.call(r, n)
- } finally {
- !0 !== u && (i.preventDefault ? i.preventDefault() : i.returnValue = !1)
- }
- })
- }
- };
- s.d.text = {
- update: function(n, t) {
- s.a.ib(n, t())
- }
- };
- s.e.L.text = !0;
- s.d.uniqueName = {
- init: function(n, t) {
- if (t()) {
- var i = "ko_unique_" + ++s.d.uniqueName.tb;
- s.a.gb(n, i)
- }
- }
- };
- s.d.uniqueName.tb = 0;
- s.d.value = {
- init: function(n, t, i) {
- function f() {
- e = !1;
- var r = t(),
- u = s.h.n(n);
- s.g.ha(r, i, "value", u)
- }
- var r = ["change"],
- u = i().valueUpdate,
- e = !1;
- u && ("string" == typeof u && (u = [u]), s.a.R(r, u), r = s.a.Ma(r));
- !s.a.ca || "input" != n.tagName.toLowerCase() || "text" != n.type || "off" == n.autocomplete || n.form && "off" == n.form.autocomplete || -1 != s.a.k(r, "propertychange") || (s.a.o(n, "propertychange", function() {
- e = !0
- }), s.a.o(n, "blur", function() {
- e && f()
- }));
- s.a.p(r, function(t) {
- var i = f;
- s.a.Tb(t, "after") && (i = function() {
- setTimeout(f, 0)
- }, t = t.substring(5));
- s.a.o(n, t, i)
- })
- },
- update: function(n, t) {
- var u = "select" === s.a.u(n),
- r = s.a.c(t()),
- i = s.h.n(n);
- r !== i && (i = function() {
- s.h.W(n, r)
- }, i(), u && setTimeout(i, 0));
- u && 0 < n.length && v(n, r, !1)
- }
- };
- s.d.visible = {
- update: function(n, t) {
- var i = s.a.c(t()),
- r = "none" != n.style.display;
- i && !r ? n.style.display = "" : !i && r && (n.style.display = "none")
- }
- },
- function(n) {
- s.d[n] = {
- init: function(t, i, r, u) {
- return s.d.event.init.call(this, t, function() {
- var t = {};
- return t[n] = i(), t
- }, r, u)
- }
- }
- }("click");
- s.v = function() {};
- s.v.prototype.renderTemplateSource = function() {
- throw Error("Override renderTemplateSource");
- };
- s.v.prototype.createJavaScriptEvaluatorBlock = function() {
- throw Error("Override createJavaScriptEvaluatorBlock");
- };
- s.v.prototype.makeTemplateSource = function(n, t) {
- if ("string" == typeof n) {
- t = t || r;
- var i = t.getElementById(n);
- if (!i) throw Error("Cannot find template with ID " + n);
- return new s.l.i(i)
- }
- if (1 == n.nodeType || 8 == n.nodeType) return new s.l.Q(n);
- throw Error("Unknown template type: " + n);
- };
- s.v.prototype.renderTemplate = function(n, t, i, r) {
- return n = this.makeTemplateSource(n, r), this.renderTemplateSource(n, t, i)
- };
- s.v.prototype.isTemplateRewritten = function(n, t) {
- return !1 === this.allowTemplateRewriting ? !0 : this.makeTemplateSource(n, t).data("isRewritten")
- };
- s.v.prototype.rewriteTemplate = function(n, t, i) {
- n = this.makeTemplateSource(n, i);
- t = t(n.text());
- n.text(t);
- n.data("isRewritten", !0)
- };
- s.b("templateEngine", s.v);
- s.Ea = function() {
- function n(n, t, i, r) {
- var o, f, u, e;
- for (n = s.g.da(n), o = s.g.S, f = 0; f < n.length; f++)
- if (u = n[f].key, o.hasOwnProperty(u))
- if (e = o[u], "function" == typeof e) {
- if (u = e(n[f].value)) throw Error(u);
- } else if (!e) throw Error("This template engine does not support the '" + u + "' binding within its templates");
- return i = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + s.g.ea(n) + " } })()},'" + i.toLowerCase() + "')", r.createJavaScriptEvaluatorBlock(i) + t
- }
- var t = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,
- i = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;
- return {
- Ab: function(n, t, i) {
- t.isTemplateRewritten(n, i) || t.rewriteTemplate(n, function(n) {
- return s.Ea.Lb(n, t)
- }, i)
- },
- Lb: function(r, u) {
- return r.replace(t, function(t, i, r, f, e) {
- return n(e, i, r, u)
- }).replace(i, function(t, i) {
- return n(i, "<!-- ko -->", "#comment", u)
- })
- },
- qb: function(n, t) {
- return s.s.va(function(i, r) {
- var u = i.nextSibling;
- u && u.nodeName.toLowerCase() === t && s.Ka(u, n, r)
- })
- }
- }
- }();
- s.b("__tr_ambtns", s.Ea.qb),
- function() {
- s.l = {};
- s.l.i = function(n) {
- this.i = n
- };
- s.l.i.prototype.text = function() {
- var n = s.a.u(this.i),
- n = "script" === n ? "text" : "textarea" === n ? "value" : "innerHTML",
- t;
- if (0 == arguments.length) return this.i[n];
- t = arguments[0];
- "innerHTML" === n ? s.a.fa(this.i, t) : this.i[n] = t
- };
- s.l.i.prototype.data = function(n) {
- if (1 === arguments.length) return s.a.f.get(this.i, "templateSourceData_" + n);
- s.a.f.set(this.i, "templateSourceData_" + n, arguments[1])
- };
- s.l.Q = function(n) {
- this.i = n
- };
- s.l.Q.prototype = new s.l.i;
- s.l.Q.prototype.text = function() {
- if (0 == arguments.length) {
- var n = s.a.f.get(this.i, "__ko_anon_template__") || {};
- return n.Fa === t && n.ma && (n.Fa = n.ma.innerHTML), n.Fa
- }
- s.a.f.set(this.i, "__ko_anon_template__", {
- Fa: arguments[0]
- })
- };
- s.l.i.prototype.nodes = function() {
- if (0 == arguments.length) return (s.a.f.get(this.i, "__ko_anon_template__") || {}).ma;
- s.a.f.set(this.i, "__ko_anon_template__", {
- ma: arguments[0]
- })
- };
- s.b("templateSources", s.l);
- s.b("templateSources.domElement", s.l.i);
- s.b("templateSources.anonymousTemplate", s.l.Q)
- }(),
- function() {
- function r(n, t, i) {
- var r;
- for (t = s.e.nextSibling(t); n && (r = n) !== t;) n = s.e.nextSibling(r), 1 !== r.nodeType && 8 !== r.nodeType || i(r)
- }
- function u(n, t) {
- if (n.length) {
- var i = n[0],
- u = n[n.length - 1];
- r(i, u, function(n) {
- s.Ia(t, n)
- });
- r(i, u, function(n) {
- s.s.nb(n, [t])
- })
- }
- }
- function n(n) {
- return n.nodeType ? n : 0 < n.length ? n[0] : null
- }
- function f(t, r, f, e, o) {
- o = o || {};
- var h = t && n(t),
- h = h && h.ownerDocument,
- c = o.templateEngine || i;
- if (s.Ea.Ab(f, c, h), f = c.renderTemplate(f, e, o, h), "number" != typeof f.length || 0 < f.length && "number" != typeof f[0].nodeType) throw Error("Template engine must return an array of DOM nodes");
- h = !1;
- switch (r) {
- case "replaceChildren":
- s.e.P(t, f);
- h = !0;
- break;
- case "replaceNode":
- s.a.eb(t, f);
- h = !0;
- break;
- case "ignoreTargetNode":
- break;
- default:
- throw Error("Unknown renderMode: " + r);
- }
- return h && (u(f, e), o.afterRender && s.q.I(o.afterRender, null, [f, e.$data])), f
- }
- var i;
- s.Ba = function(n) {
- if (n != t && !(n instanceof s.v)) throw Error("templateEngine must inherit from ko.templateEngine");
- i = n
- };
- s.za = function(r, u, e, o, h) {
- if (e = e || {}, (e.templateEngine || i) == t) throw Error("Set a template engine before calling renderTemplate");
- if (h = h || "replaceChildren", o) {
- var c = n(o);
- return s.j(function() {
- var t = u && u instanceof s.A ? u : new s.A(s.a.c(u)),
- i = "function" == typeof r ? r(t.$data, t) : r,
- t = f(o, h, i, t, e);
- "replaceNode" == h && (o = t, c = n(o))
- }, null, {
- Qa: function() {
- return !c || !s.a.aa(c)
- },
- $: c && "replaceNode" == h ? c.parentNode : c
- })
- }
- return s.s.va(function(n) {
- s.za(r, u, e, n, "replaceNode")
- })
- };
- s.Rb = function(n, i, r, e, o) {
- function c(n, t) {
- u(t, h);
- r.afterRender && r.afterRender(t, n)
- }
- function l(t, i) {
- h = o.createChildContext(s.a.c(t), r.as);
- h.$index = i;
- var u = "function" == typeof n ? n(t, h) : n;
- return f(null, "ignoreTargetNode", u, h, r)
- }
- var h;
- return s.j(function() {
- var n = s.a.c(i) || [];
- "undefined" == typeof n.length && (n = [n]);
- n = s.a.Y(n, function(n) {
- return r.includeDestroyed || n === t || null === n || !s.a.c(n._destroy)
- });
- s.q.I(s.a.Aa, null, [e, n, l, r, c])
- }, null, {
- $: e
- })
- };
- s.d.template = {
- init: function(n, t) {
- var i = s.a.c(t());
- return "string" == typeof i || i.name || 1 != n.nodeType && 8 != n.nodeType || (i = 1 == n.nodeType ? n.childNodes : s.e.childNodes(n), i = s.a.Mb(i), new s.l.Q(n).nodes(i)), {
- controlsDescendantBindings: !0
- }
- },
- update: function(n, i, r, u, f) {
- i = s.a.c(i());
- r = {};
- u = !0;
- var e, o = null;
- "string" != typeof i && (r = i, i = s.a.c(r.name), "if" in r && (u = s.a.c(r["if"])), u && "ifnot" in r && (u = !s.a.c(r.ifnot)), e = s.a.c(r.data));
- "foreach" in r ? o = s.Rb(i || n, u && r.foreach || [], r, n, f) : u ? (f = "data" in r ? f.createChildContext(e, r.as) : f, o = s.za(i || n, f, r, n)) : s.e.ba(n);
- f = o;
- (e = s.a.f.get(n, "__ko__templateComputedDomDataKey__")) && "function" == typeof e.B && e.B();
- s.a.f.set(n, "__ko__templateComputedDomDataKey__", f && f.ta() ? f : t)
- }
- };
- s.g.S.template = function(n) {
- return n = s.g.da(n), 1 == n.length && n[0].unknown || s.g.Jb(n, "name") ? null : "This template engine does not support anonymous templates nested within its templates"
- };
- s.e.L.template = !0
- }();
- s.b("setTemplateEngine", s.Ba);
- s.b("renderTemplate", s.za);
- s.a.Pa = function() {
- function n(n, t, i, r, u) {
- for (var o = Math.min, l = Math.max, s = [], a = n.length, f, h = t.length, c = h - a || 1, w = a + h + 1, v, p, b, y, e = 0; e <= a; e++)
- for (p = v, s.push(v = []), b = o(h, e + c), f = l(0, e - 1); f <= b; f++) v[f] = f ? e ? n[e - 1] === t[f - 1] ? p[f - 1] : o(p[f] || w, v[f - 1] || w) + 1 : f + 1 : e + 1;
- for (o = [], l = [], c = [], e = a, f = h; e || f;) h = s[e][f] - 1, f && h === s[e][f - 1] ? l.push(o[o.length] = {
- status: i,
- value: t[--f],
- index: f
- }) : e && h === s[e - 1][f] ? c.push(o[o.length] = {
- status: r,
- value: n[--e],
- index: e
- }) : (o.push({
- status: "retained",
- value: t[--f]
- }), --e);
- if (l.length && c.length)
- for (n = 10 * a, t = i = 0;
- (u || t < n) && (y = l[i]); i++) {
- for (r = 0; s = c[r]; r++)
- if (y.value === s.value) {
- y.moved = s.index;
- s.moved = y.index;
- c.splice(r, 1);
- t = r = 0;
- break
- }
- t += r
- }
- return o.reverse()
- }
- return function(t, i, r) {
- return t = t || [], i = i || [], t.length <= i.length ? n(t, i, "added", "deleted", r) : n(i, t, "deleted", "added", r)
- }
- }();
- s.b("utils.compareArrays", s.a.Pa),
- function() {
- function n(n) {
- for (; n.length && !s.a.aa(n[0]);) n.splice(0, 1);
- if (1 < n.length) {
- for (var t = n[0], r = n[n.length - 1], i = [t]; t !== r;) {
- if (t = t.nextSibling, !t) return;
- i.push(t)
- }
- Array.prototype.splice.apply(n, [0, n.length].concat(i))
- }
- return n
- }
- function i(i, r, u, f, e) {
- var o = [];
- return i = s.j(function() {
- var t = r(u, e, n(o)) || [];
- 0 < o.length && (s.a.eb(o, t), f && s.q.I(f, null, [u, t, e]));
- o.splice(0, o.length);
- s.a.R(o, t)
- }, null, {
- $: i,
- Qa: function() {
- return !s.a.pb(o)
- }
- }), {
- O: o,
- j: i.ta() ? i : t
- }
- }
- s.a.Aa = function(r, u, f, e, o) {
- function rt(t, i) {
- h = k[i];
- nt !== i && (it[t] = h);
- h.ra(nt++);
- n(h.O);
- g.push(h);
- p.push(h)
- }
- function v(n, t) {
- if (n)
- for (var i = 0, r = t.length; i < r; i++) t[i] && s.a.p(t[i].O, function(r) {
- n(r, i, t[i].X)
- })
- }
- var c, y, ut;
- u = u || [];
- e = e || {};
- var y = s.a.f.get(r, "setDomNodeChildrenFromArrayMapping_lastMappingResult") === t,
- k = s.a.f.get(r, "setDomNodeChildrenFromArrayMapping_lastMappingResult") || [],
- d = s.a.Z(k, function(n) {
- return n.X
- }),
- l = s.a.Pa(d, u, e.dontLimitMoves),
- g = [],
- a = 0,
- nt = 0,
- tt = [],
- p = [];
- u = [];
- for (var it = [], d = [], h, c = 0, w, b; w = l[c]; c++) switch (b = w.moved, w.status) {
- case "deleted":
- b === t && (h = k[a], h.j && h.j.B(), tt.push.apply(tt, n(h.O)), e.beforeRemove && (u[c] = h, p.push(h)));
- a++;
- break;
- case "retained":
- rt(c, a++);
- break;
- case "added":
- b !== t ? rt(c, b) : (h = {
- X: w.value,
- ra: s.m(nt++)
- }, g.push(h), p.push(h), y || (d[c] = h))
- }
- for (v(e.beforeMove, it), s.a.p(tt, e.beforeRemove ? s.H : s.removeNode), c = 0, y = s.e.firstChild(r); h = p[c]; c++) {
- for (h.O || s.a.extend(h, i(r, f, h.X, o, h.ra)), a = 0; l = h.O[a]; y = l.nextSibling, ut = l, a++) l !== y && s.e.Va(r, l, ut);
- !h.Fb && o && (o(h.X, h.O, h.ra), h.Fb = !0)
- }
- v(e.beforeRemove, u);
- v(e.afterMove, it);
- v(e.afterAdd, d);
- s.a.f.set(r, "setDomNodeChildrenFromArrayMapping_lastMappingResult", g)
- }
- }();
- s.b("utils.setDomNodeChildrenFromArrayMapping", s.a.Aa);
- s.D = function() {
- this.allowTemplateRewriting = !1
- };
- s.D.prototype = new s.v;
- s.D.prototype.renderTemplateSource = function(n) {
- var t = (9 > s.a.ca ? 0 : n.nodes) ? n.nodes() : null;
- return t ? s.a.N(t.cloneNode(!0).childNodes) : (n = n.text(), s.a.xa(n))
- };
- s.D.sa = new s.D;
- s.Ba(s.D.sa);
- s.b("nativeTemplateEngine", s.D),
- function() {
- s.ua = function() {
- var n = this.Ib = function() {
- if ("undefined" == typeof i || !i.tmpl) return 0;
- try {
- if (0 <= i.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2
- } catch (n) {}
- return 1
- }();
- this.renderTemplateSource = function(t, u, f) {
- if (f = f || {}, 2 > n) throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");
- var e = t.data("precompiled");
- return e || (e = t.text() || "", e = i.template(null, "{{ko_with $item.koBindingContext}}" + e + "{{/ko_with}}"), t.data("precompiled", e)), t = [u.$data], u = i.extend({
- koBindingContext: u
- }, f.templateOptions), u = i.tmpl(e, t, u), u.appendTo(r.createElement("div")), i.fragments = {}, u
- };
- this.createJavaScriptEvaluatorBlock = function(n) {
- return "{{ko_code ((function() { return " + n + " })()) }}"
- };
- this.addTemplate = function(n, t) {
- r.write("<script type='text/html' id='" + n + "'>" + t + "<\/script>")
- };
- 0 < n && (i.tmpl.tag.ko_code = {
- open: "__.push($1 || '');"
- }, i.tmpl.tag.ko_with = {
- open: "with($1) {",
- close: "} "
- })
- };
- s.ua.prototype = new s.v;
- var n = new s.ua;
- 0 < n.Ib && s.Ba(n);
- s.b("jqueryTmplTemplateEngine", s.ua)
- }()
- })
- })()
- }();
- ! function(n) {
- "function" == typeof require && "object" == typeof exports && "object" == typeof module ? n(require("knockout"), require("jquery"), require("kendo")) : "function" == typeof define && define.amd ? define(["knockout", "jquery", "kendo"], n) : n(window.ko, window.jQuery, window.kendo)
- }(function(n, t, i, r) {
- var y;
- i = i || window.kendo;
- n.kendo = n.kendo || {};
- n.kendo.BindingFactory = function() {
- var u = this,
- f;
- this.createBinding = function(i) {
- if (t()[i.parent || i.name]) {
- var r = {};
- r.init = function(n, t, f, e, o) {
- var s = u.buildOptions(i, t);
- return s.async === !0 || i.async === !0 && s.async !== !1 ? (setTimeout(function() {
- r.setup(n, s, o)
- }, 0), void 0) : (r.setup(n, s, o), s && s.useKOTemplates ? {
- controlsDescendantBindings: !0
- } : void 0)
- };
- r.setup = function(r, f, e) {
- var o, s = t(r);
- u.setupTemplates(i.templates, f, r, e);
- o = u.getWidget(i, f, s);
- u.handleEvents(f, i, r, o, e);
- u.watchValues(o, f, i, r);
- o.destroy && n.utils.domNodeDisposal.addDisposeCallback(r, function() {
- o.destroy()
- })
- };
- r.options = {};
- r.widgetConfig = i;
- n.bindingHandlers[i.bindingName || i.name] = r
- }
- };
- this.buildOptions = function(t, r) {
- var f = t.defaultOption,
- e = n.utils.extend({}, n.bindingHandlers[t.name].options),
- u = n.utils.unwrapObservable(r());
- return u instanceof i.data.DataSource || "object" != typeof u || null === u || f && !(f in u) ? e[f] = r() : n.utils.extend(e, u), e
- };
- f = function(t, i) {
- return function(r) {
- return n.renderTemplate(t, i.createChildContext(r._raw && r._raw() || r))
- }
- };
- this.setupTemplates = function(t, i, r, u) {
- var e, h, o, s;
- if (t && i && i.useKOTemplates) {
- for (e = 0, h = t.length; h > e; e++) o = t[e], i[o] && (i[o] = f(i[o], u));
- s = i.dataBound;
- i.dataBound = function() {
- n.memoization.unmemoizeDomNodeAndDescendants(r);
- s && s.apply(this, arguments)
- }
- }
- };
- this.unwrapOneLevel = function(t) {
- var r, u = {};
- if (t)
- if (t instanceof i.data.DataSource) u = t;
- else if ("object" == typeof t)
- for (r in t) u[r] = n.utils.unwrapObservable(t[r]);
- return u
- };
- this.getWidget = function(t, i, r) {
- var u, f;
- return t.parent ? (f = r.closest("[data-bind*='" + t.parent + ":']"), u = f.length ? f.data(t.parent) : null) : u = r[t.name](this.unwrapOneLevel(i)).data(t.name), n.isObservable(i.widget) && i.widget(u), u
- };
- this.watchValues = function(n, t, i, r) {
- var f, e = i.watch;
- if (e)
- for (f in e) e.hasOwnProperty(f) && u.watchOneValue(f, n, t, i, r)
- };
- this.watchOneValue = function(i, u, f, e, o) {
- var s = n.computed({
- read: function() {
- var a, l, s = e.watch[i],
- h = n.utils.unwrapObservable(f[i]),
- c = e.parent ? [o] : [];
- t.isArray(s) ? s = u[h ? s[0] : s[1]] : "string" == typeof s ? s = u[s] : l = !0;
- s && f[i] !== r && (l ? c.push(h, f) : (a = s.apply(u, c), c.push(h)), (l || a !== h) && s.apply(u, c))
- },
- disposeWhenNodeIsRemoved: o
- }).extend({
- throttle: f.throttle || 0 === f.throttle ? f.throttle : 1
- });
- n.isObservable(f[i]) || s.dispose()
- };
- this.handleEvents = function(n, t, i, r, f) {
- var o, e, s = t.events;
- if (s)
- for (o in s) s.hasOwnProperty(o) && (e = s[o], "string" == typeof e && (e = {
- value: e,
- writeTo: e
- }), u.handleOneEvent(o, e, n, i, r, t.childProp, f))
- };
- this.handleOneEvent = function(t, i, r, u, f, e, o) {
- var s = "function" == typeof i ? i : r[i.call];
- "function" == typeof i ? s = s.bind(o.$data, r) : i.call && "function" == typeof r[i.call] ? s = r[i.call].bind(o.$data, o.$data) : i.writeTo && n.isWriteableObservable(r[i.writeTo]) && (s = function(n) {
- var t, f;
- e && n[e] && n[e] !== u || (t = i.value, f = "string" == typeof t && this[t] ? this[t](e && u) : t, r[i.writeTo](f))
- });
- s && f.bind(t, s)
- }
- };
- n.kendo.bindingFactory = new n.kendo.BindingFactory;
- n.kendo.setDataSource = function(t, r, u) {
- var f, e;
- return r instanceof i.data.DataSource ? (t.setDataSource(r), void 0) : (u && u.useKOTemplates || (f = n.mapping && r && r.__ko_mapping__, e = r && f ? n.mapping.toJS(r) : n.toJS(r)), t.dataSource.data(e || r), void 0)
- },
- function() {
- var n = i.data.ObservableArray.fn.wrap;
- i.data.ObservableArray.fn.wrap = function(t) {
- var i = n.apply(this, arguments);
- return i._raw = function() {
- return t
- }, i
- }
- }();
- var c = function(t) {
- return function(i) {
- i && (n.utils.extend(this.options[t], i), this.redraw(), this.value(.001 + this.value()))
- }
- },
- f = n.kendo.bindingFactory.createBinding.bind(n.kendo.bindingFactory),
- d = "clicked",
- s = "close",
- p = "collapse",
- g = "content",
- w = "data",
- e = "enable",
- b = "expand",
- l = "expanded",
- rt = "error",
- ut = "info",
- o = "isOpen",
- a = "max",
- v = "min",
- h = "open",
- nt = "search",
- tt = "selected",
- ft = "success",
- it = "size",
- u = "value",
- k = "values",
- et = "warning";
- f({
- name: "kendoAutoComplete",
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- search: [nt, s],
- data: function(t) {
- n.kendo.setDataSource(this, t)
- },
- value: u
- }
- });
- f({
- name: "kendoButton",
- defaultOption: d,
- events: {
- click: {
- call: d
- }
- },
- watch: {
- enabled: e
- }
- });
- f({
- name: "kendoCalendar",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- max: a,
- min: v,
- value: u
- }
- });
- f({
- name: "kendoColorPicker",
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- value: u,
- color: u,
- palette: "palette"
- }
- });
- f({
- name: "kendoComboBox",
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- isOpen: [h, s],
- data: function(t) {
- n.kendo.setDataSource(this, t)
- },
- value: u
- }
- });
- f({
- name: "kendoDatePicker",
- defaultOption: u,
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- max: a,
- min: v,
- value: u,
- isOpen: [h, s]
- }
- });
- f({
- name: "kendoDateTimePicker",
- defaultOption: u,
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- max: a,
- min: v,
- value: u,
- isOpen: [h, s]
- }
- });
- f({
- name: "kendoDropDownList",
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- isOpen: [h, s],
- data: function(t) {
- n.kendo.setDataSource(this, t);
- t.length && this.options.optionLabel && this.select() < 0 && this.select(0)
- },
- value: u
- }
- });
- f({
- name: "kendoEditor",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- enabled: e,
- value: u
- }
- });
- f({
- name: "kendoGrid",
- defaultOption: w,
- watch: {
- data: function(t, i) {
- n.kendo.setDataSource(this, t, i)
- }
- },
- templates: ["rowTemplate", "altRowTemplate"]
- });
- f({
- name: "kendoListView",
- defaultOption: w,
- watch: {
- data: function(t, i) {
- n.kendo.setDataSource(this, t, i)
- }
- },
- templates: ["template"]
- });
- f({
- name: "kendoMaskedTextBox",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- enabled: e,
- isReadOnly: "readonly",
- value: u
- }
- });
- f({
- name: "kendoMenu",
- async: !0
- });
- f({
- name: "kendoMenuItem",
- parent: "kendoMenu",
- watch: {
- enabled: e,
- isOpen: [h, s]
- },
- async: !0
- });
- f({
- name: "kendoMultiSelect",
- events: {
- change: u,
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- enabled: e,
- search: [nt, s],
- data: function(t) {
- n.kendo.setDataSource(this, t)
- },
- value: u
- }
- });
- y = function(n, t) {
- t || 0 === t ? this.show(t, n) : this.hide()
- };
- f({
- name: "kendoNotification",
- watch: {
- error: function(n) {
- y.call(this, rt, n)
- },
- info: function(n) {
- y.call(this, ut, n)
- },
- success: function(n) {
- y.call(this, ft, n)
- },
- warning: function(n) {
- y.call(this, et, n)
- }
- }
- });
- f({
- name: "kendoNumericTextBox",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- enabled: e,
- value: u,
- max: function(n) {
- this.options.max = n;
- var t = this.value();
- (t || 0 === t) && t > n && this.value(n)
- },
- min: function(n) {
- this.options.min = n;
- var t = this.value();
- (t || 0 === t) && n > t && this.value(n)
- }
- }
- });
- f({
- name: "kendoPanelBar",
- async: !0
- });
- f({
- name: "kendoPanelItem",
- parent: "kendoPanelBar",
- watch: {
- enabled: e,
- expanded: [b, p],
- selected: ["select"]
- },
- childProp: "item",
- events: {
- expand: {
- writeTo: l,
- value: !0
- },
- collapse: {
- writeTo: l,
- value: !1
- },
- select: {
- writeTo: tt,
- value: u
- }
- },
- async: !0
- });
- f({
- name: "kendoProgressBar",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- enabled: e,
- value: u
- }
- });
- f({
- name: "kendoRangeSlider",
- defaultOption: k,
- events: {
- change: k
- },
- watch: {
- values: k,
- enabled: e
- }
- });
- f({
- async: !0,
- name: "kendoScheduler",
- watch: {
- data: function(t, i) {
- n.kendo.setDataSource(this, t, i)
- }
- }
- });
- f({
- name: "kendoSlider",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- value: u,
- enabled: e
- }
- });
- f({
- name: "kendoSortable",
- defaultOption: w,
- events: {
- end: function(i, r) {
- var u = "__ko_kendo_sortable_data__",
- f = "receive" !== r.action ? n.dataFor(r.item[0]) : r.draggableEvent[u],
- o = i.data,
- e = i.data;
- ("sort" === r.action || "remove" === r.action) && (e.splice(r.oldIndex, 1), "remove" === r.action && (r.draggableEvent[u] = f));
- ("sort" === r.action || "receive" === r.action) && (e.splice(r.newIndex, 0, f), delete r.draggableEvent[u], t(r.draggableEvent.target).hide(), r.preventDefault());
- o.valueHasMutated()
- }
- }
- });
- f({
- name: "kendoSplitter",
- async: !0
- });
- f({
- name: "kendoSplitterPane",
- parent: "kendoSplitter",
- watch: {
- max: a,
- min: v,
- size: it,
- expanded: [b, p]
- },
- childProp: "pane",
- events: {
- collapse: {
- writeTo: l,
- value: !1
- },
- expand: {
- writeTo: l,
- value: !0
- },
- resize: it
- },
- async: !0
- });
- f({
- name: "kendoTabStrip",
- async: !0
- });
- f({
- name: "kendoTab",
- parent: "kendoTabStrip",
- watch: {
- enabled: e
- },
- childProp: "item",
- async: !0
- });
- f({
- name: "kendoTooltip",
- events: {},
- watch: {
- content: g,
- filter: "filter"
- }
- });
- f({
- name: "kendoTimePicker",
- defaultOption: u,
- events: {
- change: u
- },
- watch: {
- max: a,
- min: v,
- value: u,
- enabled: e,
- isOpen: [h, s]
- }
- });
- f({
- name: "kendoTreeView",
- async: !0
- });
- f({
- name: "kendoTreeItem",
- parent: "kendoTreeView",
- watch: {
- enabled: e,
- expanded: [b, p],
- selected: function(n, t) {
- t ? this.select(n) : this.select()[0] == n && this.select(null)
- }
- },
- childProp: "node",
- events: {
- collapse: {
- writeTo: l,
- value: !1
- },
- expand: {
- writeTo: l,
- value: !0
- },
- select: {
- writeTo: tt,
- value: !0
- }
- },
- async: !0
- });
- f({
- name: "kendoUpload",
- watch: {
- enabled: e
- }
- });
- f({
- async: !0,
- name: "kendoWindow",
- events: {
- open: {
- writeTo: o,
- value: !0
- },
- close: {
- writeTo: o,
- value: !1
- }
- },
- watch: {
- content: g,
- title: "title",
- isOpen: [h, s]
- }
- });
- f({
- name: "kendoChart",
- watch: {
- data: function(t) {
- n.kendo.setDataSource(this, t)
- }
- }
- });
- f({
- name: "kendoLinearGauge",
- defaultOption: u,
- watch: {
- value: u,
- gaugeArea: c("gaugeArea"),
- pointer: c("pointer"),
- scale: c("scale")
- }
- });
- f({
- name: "kendoRadialGauge",
- defaultOption: u,
- watch: {
- value: u,
- gaugeArea: c("gaugeArea"),
- pointer: c("pointer"),
- scale: c("scale")
- }
- })
- });
- Raphael = function() {
- function n() {
- var r;
- if (n.is(arguments[0], et)) {
- for (var i = arguments[0], f = rr[b](n, i.splice(0, 3 + n.is(i[0], nt))), e = f.set(), u = 0, o = i[t]; u < o; u++) r = i[u] || {}, ku.test(r.type) && e[a](f[r.type]().attr(r));
- return e
- }
- return rr[b](n, arguments)
- }
- function y() {}
- function si(t) {
- var u, i;
- return n.vml ? (u = /^\s+|\s+$/g, si = ut(function(n) {
- var f, t, i;
- n = (n + r)[w](u, r);
- try {
- t = new st.ActiveXObject("htmlfile");
- t.write("<body>");
- t.close();
- f = t.body
- } catch (e) {
- f = st.createPopup().document.body
- }
- t = f.createTextRange();
- try {
- return f.style.color = n, i = t.queryCommandValue("ForeColor"), i = (i & 255) << 16 | i & 65280 | (i & 16711680) >>> 16, "#" + ("000000" + i[d](16)).slice(-6)
- } catch (o) {
- return "none"
- }
- })) : (i = c.createElement("i"), i.title = "Raphaël Colour Picker", i.style.display = "none", c.body[o](i), si = ut(function(n) {
- return i.style.color = n, c.defaultView.getComputedStyle(i, r).getPropertyValue("color")
- })), si(t)
- }
- function nf() {
- return "hsb(" + [this.h, this.s, this.b] + ")"
- }
- function tf() {
- return this.hex
- }
- function ut(n, r, u) {
- function f() {
- var c = Array[i].slice.call(arguments, 0),
- e = c[tt]("►"),
- o = f.cache = f.cache || {},
- h = f.count = f.count || [];
- return o[s](e) ? u ? u(o[e]) : o[e] : (h[t] >= 1e3 && delete o[h.shift()], h[a](e), o[e] = n[b](r, c), u ? u(o[e]) : o[e])
- }
- return f
- }
- function ci(i) {
- var f = [],
- r, e, u, o;
- for (n.is(i, et) && n.is(i && i[0], et) || (i = n.parsePathString(i)), r = 0, e = i[t]; r < e; r++)
- for (f[r] = [], u = 0, o = i[r][t]; u < o; u++) f[r][u] = i[r][u];
- return f[d] = n._path2string, f
- }
- function li(n, t, i, r) {
- return [n, t, i, r, i, r]
- }
- function vr(n, t, i, r, u, f) {
- var e = 1 / 3,
- o = 2 / 3;
- return [e * n + o * i, e * t + o * r, e * u + o * i, e * f + o * r, u, f]
- }
- function yr(n, i, r, u, f, o, s, h, c, l) {
- var y = e.PI,
- it = y * 120 / 180,
- g = y / 180 * (+f || 0),
- b = [],
- a, nt = ut(function(n, t, i) {
- var r = n * e.cos(i) - t * e.sin(i);
- return n = n * e.sin(i) + t * e.cos(i), {
- x: r,
- y: n
- }
- }),
- d, w, v;
- if (l ? (v = l[0], a = l[1], o = l[2], w = l[3]) : (a = nt(n, i, -g), n = a.x, i = a.y, a = nt(h, c, -g), h = a.x, c = a.y, e.cos(y / 180 * f), e.sin(y / 180 * f), a = (n - h) / 2, v = (i - c) / 2, w = a * a / (r * r) + v * v / (u * u), w > 1 && (w = e.sqrt(w), r = w * r, u = w * u), w = r * r, d = u * u, w = (o == s ? -1 : 1) * e.sqrt(e.abs((w * d - w * v * v - d * a * a) / (w * v * v + d * a * a))), o = w * r * v / u + (n + h) / 2, w = w * -u * a / r + (i + c) / 2, v = e.asin(((i - w) / u).toFixed(7)), a = e.asin(((c - w) / u).toFixed(7)), v = n < o ? y - v : v, a = h < o ? y - a : a, v < 0 && (v = y * 2 + v), a < 0 && (a = y * 2 + a), s && v > a && (v -= y * 2), !s && a > v && (a -= y * 2)), y = a - v, e.abs(y) > it && (b = a, y = h, d = c, a = v + it * (s && a > v ? 1 : -1), h = o + r * e.cos(a), c = w + u * e.sin(a), b = yr(h, c, r, u, f, 0, s, y, d, [a, b, o, w])), y = a - v, f = e.cos(v), o = e.sin(v), s = e.cos(a), a = e.sin(a), y = e.tan(y / 4), r = 4 / 3 * r * y, y = 4 / 3 * u * y, u = [n, i], n = [n + r * o, i - y * f], i = [h + r * a, c - y * s], h = [h, c], n[0] = 2 * u[0] - n[0], n[1] = 2 * u[1] - n[1], l) return [n, i, h][k](b);
- for (b = [n, i, h][k](b)[tt]()[p](","), l = [], h = 0, c = b[t]; h < c; h++) l[h] = h % 2 ? nt(b[h - 1], b[h], g).y : nt(b[h], b[h + 1], g).x;
- return l
- }
- function ii(n, t, i, r, u, f, e, o, s) {
- var h = 1 - s;
- return {
- x: l(h, 3) * n + l(h, 2) * 3 * s * i + h * 3 * s * s * u + l(s, 3) * e,
- y: l(h, 3) * t + l(h, 2) * 3 * s * r + h * 3 * s * s * f + l(s, 3) * o
- }
- }
- function wr(t, i, r, u) {
- if (n.is(t, wt) || n.is(t, "object")) {
- if (t = n.is(t, wt) ? c.getElementById(t) : t, t.tagName) return i == null ? {
- container: t,
- width: t.style.pixelWidth || t.offsetWidth,
- height: t.style.pixelHeight || t.offsetHeight
- } : {
- container: t,
- width: i,
- height: r
- }
- } else return {
- container: 1,
- x: t,
- y: i,
- width: r,
- height: u
- }
- }
- function nr(n, t) {
- var r = this;
- for (var i in t)
- if (t[s](i) && !(i in n)) switch (typeof t[i]) {
- case "function":
- (function(t) {
- n[i] = n === r ? t : function() {
- return t[b](r, arguments)
- }
- })(t[i]);
- break;
- case "object":
- n[i] = n[i] || {};
- nr.call(this, n[i], t[i]);
- break;
- default:
- n[i] = t[i]
- }
- }
- function gt(n, t) {
- n == t.top && (t.top = n.prev);
- n == t.bottom && (t.bottom = n.next);
- n.next && (n.next.prev = n.prev);
- n.prev && (n.prev.next = n.next)
- }
- function br(n, t) {
- t.top !== n && (gt(n, t), n.next = null, n.prev = t.top, t.top.next = n, t.top = n)
- }
- function kr(n, t) {
- t.bottom !== n && (gt(n, t), n.next = t.bottom, n.prev = null, t.bottom.prev = n, t.bottom = n)
- }
- function dr(n, t, i) {
- gt(n, i);
- t == i.top && (i.top = n);
- t.next && (t.next.prev = n);
- n.next = t.next;
- n.prev = t;
- t.next = n
- }
- function gr(n, t, i) {
- gt(n, i);
- t == i.bottom && (i.bottom = n);
- t.prev && (t.prev.next = n);
- n.prev = t.prev;
- t.prev = n;
- n.next = t
- }
- function nu(n) {
- return function() {
- throw new Error("Raphaël: you are calling to method “" + n + "” of removed object");
- }
- }
- function cf() {
- this.returnValue = !1
- }
- function lf() {
- return this.originalEvent.preventDefault()
- }
- function af() {
- this.cancelBubble = !0
- }
- function vf() {
- return this.originalEvent.stopPropagation()
- }
- function vu() {
- return this.x + g + this.y
- }
- function fr(t, i) {
- return function(r, u, f) {
- r = ai(r);
- for (var o, s, e, l, h = "", a = {}, c = 0, v = 0, y = r.length; v < y; v++) {
- if (e = r[v], e[0] == "M") o = +e[1], s = +e[2];
- else {
- if (l = yf(o, s, e[1], e[2], e[3], e[4], e[5], e[6]), c + l > u) {
- if (i && !a.start) {
- if (o = ur(o, s, e[1], e[2], e[3], e[4], e[5], e[6], u - c), h += ["C", o.start.x, o.start.y, o.m.x, o.m.y, o.x, o.y], f) return h;
- a.start = h;
- h = ["M", o.x, o.y + "C", o.n.x, o.n.y, o.end.x, o.end.y, e[5], e[6]][tt]();
- c += l;
- o = +e[5];
- s = +e[6];
- continue
- }
- if (!t && !i) return o = ur(o, s, e[1], e[2], e[3], e[4], e[5], e[6], u - c), {
- x: o.x,
- y: o.y,
- alpha: o.alpha
- }
- }
- c += l;
- o = +e[5];
- s = +e[6]
- }
- h += e
- }
- return a.end = h, o = t ? c : i ? a : n.findDotsAtSegment(o, s, e[1], e[2], e[3], e[4], e[5], e[6], 1), o.alpha && (o = {
- x: o.x,
- y: o.y,
- alpha: o.alpha
- }), o
- }
- }
- function pu() {
- var et = +new Date,
- p, l, i, ut, k, ft;
- for (p in rt)
- if (p != "length" && rt[s](p))
- if (l = rt[p], l.stop || l.el.removed) delete rt[p], rt[t]--;
- else {
- var w = et - l.start,
- a = l.ms,
- u = l.easing,
- o = l.from,
- f = l.diff,
- h = l.to,
- b = l.t,
- d = l.prev || 0,
- c = l.el,
- y = l.callback,
- it = {},
- e;
- if (w < a) {
- y = n.easing_formulas[u] ? n.easing_formulas[u](w / a) : w / a;
- for (i in o)
- if (o[s](i)) {
- switch (di[i]) {
- case "along":
- e = y * a * f[i];
- h.back && (e = h.len - e);
- u = vi(h[i], e);
- c.translate(f.sx - f.x || 0, f.sy - f.y || 0);
- f.x = u.x;
- f.y = u.y;
- c.translate(u.x - f.sx, u.y - f.sy);
- h.rot && c.rotate(f.r + u.alpha, u.x, u.y);
- break;
- case nt:
- e = +o[i] + y * a * f[i];
- break;
- case "colour":
- e = "rgb(" + [or(v(o[i].r + y * a * f[i].r)), or(v(o[i].g + y * a * f[i].g)), or(v(o[i].b + y * a * f[i].b))][tt](",") + ")";
- break;
- case "path":
- for (e = [], u = 0, ut = o[i][t]; u < ut; u++) {
- for (e[u] = [o[i][u][0]], k = 1, ft = o[i][u][t]; k < ft; k++) e[u][k] = +o[i][u][k] + y * a * f[i][u][k];
- e[u] = e[u][tt](g)
- }
- e = e[tt](g);
- break;
- case "csv":
- switch (i) {
- case "translation":
- e = f[i][0] * (w - d);
- u = f[i][1] * (w - d);
- b.x += e;
- b.y += u;
- e = e + g + u;
- break;
- case "rotation":
- e = +o[i][0] + y * a * f[i][0];
- o[i][1] && (e += "," + o[i][1] + "," + o[i][2]);
- break;
- case "scale":
- e = [+o[i][0] + y * a * f[i][0], +o[i][1] + y * a * f[i][1], 2 in h[i] ? h[i][2] : r, 3 in h[i] ? h[i][3] : r][tt](g);
- break;
- case "clip-rect":
- for (e = [], u = 4; u--;) e[u] = +o[i][u] + y * a * f[i][u]
- }
- }
- it[i] = e
- }
- c.attr(it);
- c._run && c._run.call(c)
- } else h.along && (u = vi(h.along, h.len * !h.back), c.translate(f.sx - (f.x || 0) + u.x - f.sx, f.sy - (f.y || 0) + u.y - f.sy), h.rot && c.rotate(f.r + u.alpha, u.x, u.y)), (b.x || b.y) && c.translate(-b.x, -b.y), h.scale && (h.scale += r), c.attr(h), delete rt[p], rt[t]--, c.in_animation = null, n.is(y, "function") && y.call(c);
- l.prev = w
- }
- n.svg && c && c.paper && c.paper.safari();
- rt[t] && st.setTimeout(pu)
- }
- function or(n) {
- return ht(lt(n, 255), 0)
- }
- function yi(n, t) {
- if (n == null) return {
- x: this._.tx,
- y: this._.ty,
- toString: vu
- };
- this._.tx += +n;
- this._.ty += +t;
- switch (this.type) {
- case "circle":
- case "ellipse":
- this.attr({
- cx: +n + this.attrs.cx,
- cy: +t + this.attrs.cy
- });
- break;
- case "rect":
- case "image":
- case "text":
- this.attr({
- x: +n + this.attrs.x,
- y: +t + this.attrs.y
- });
- break;
- case "path":
- var i = gi(this.attrs.path);
- i[0][1] += +n;
- i[0][2] += +t;
- this.attr({
- path: i
- })
- }
- return this
- }
- function wu(t) {
- return function(i, r, f, e) {
- var o = {
- back: t
- };
- return n.is(f, "function") ? e = f : o.rot = f, i && i.constructor == u && (i = i.attrs.path), i && (o.along = i), this.animate(o, r, e)
- }
- }
- function ct(n) {
- if (this.items = [], this[t] = 0, this.type = "set", n)
- for (var i = 0, r = n[t]; i < r; i++) n[i] && (n[i].constructor == u || n[i].constructor == ct) && (this[this.items[t]] = this.items[this.items[t]] = n[i], this[t]++)
- }
- var bt, lr, ar, ti, gi, dt, tr, f, cu, it, au, ur, rt, pi, bu;
- n.version = "1.4.3";
- var ft = /[, ]+/,
- ku = /^(circle|rect|path|ellipse|text|image)$/,
- i = "prototype",
- s = "hasOwnProperty",
- c = document,
- st = window,
- sr = {
- was: Object[i][s].call(st, "Raphael"),
- is: st.Raphael
- };
- var o = "appendChild",
- b = "apply",
- k = "concat",
- wi = "createTouch" in c,
- r = "",
- g = " ",
- p = "split",
- hr = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend" [p](g),
- bi = {
- mousedown: "touchstart",
- mousemove: "touchmove",
- mouseup: "touchend"
- },
- tt = "join",
- t = "length",
- yt = String[i].toLowerCase,
- e = Math,
- ht = e.max,
- lt = e.min,
- nt = "number",
- wt = "string",
- et = "array",
- d = "toString",
- at = "fill",
- du = Object[i][d],
- l = e.pow,
- a = "push",
- kt = /^(?=[\da-f]$)/,
- cr = /^url\(['"]?([^\)]+?)['"]?\)$/i,
- gu = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+(?:\s*,\s*[\d\.]+)?)\s*\)|rgba?\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%(?:\s*,\s*[\d\.]+%))\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i,
- v = e.round,
- ot = "setAttribute",
- h = parseFloat,
- pt = parseInt,
- ki = " progid:DXImageTransform.Microsoft",
- ei = String[i].toUpperCase,
- oi = {
- blur: 0,
- "clip-rect": "0 0 1e9 1e9",
- cursor: "default",
- cx: 0,
- cy: 0,
- fill: "#fff",
- "fill-opacity": 1,
- font: '10px "Arial"',
- "font-family": '"Arial"',
- "font-size": "10",
- "font-style": "normal",
- "font-weight": 400,
- gradient: 0,
- height: 0,
- href: "http://raphaeljs.com/",
- opacity: 1,
- path: "M0,0",
- r: 0,
- rotation: 0,
- rx: 0,
- ry: 0,
- scale: "1 1",
- src: "",
- stroke: "#000",
- "stroke-dasharray": "",
- "stroke-linecap": "butt",
- "stroke-linejoin": "butt",
- "stroke-miterlimit": 0,
- "stroke-opacity": 1,
- "stroke-width": 1,
- target: "_blank",
- "text-anchor": "middle",
- title: "Raphael",
- translation: "0 0",
- width: 0,
- x: 0,
- y: 0
- },
- di = {
- along: "along",
- blur: nt,
- "clip-rect": "csv",
- cx: nt,
- cy: nt,
- fill: "colour",
- "fill-opacity": nt,
- "font-size": nt,
- height: nt,
- opacity: nt,
- path: "path",
- r: nt,
- rotation: "csv",
- rx: nt,
- ry: nt,
- scale: "csv",
- stroke: "colour",
- "stroke-opacity": nt,
- "stroke-width": nt,
- translation: "csv",
- width: nt,
- x: nt,
- y: nt
- },
- w = "replace";
- if (n.type = st.SVGAngle || c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML", n.type == "VML") {
- if (bt = c.createElement("div"), bt.innerHTML = "<!--[if vml]><br><br><![endif]-->", bt.childNodes[t] != 2) return n.type = null;
- bt = null
- }
- n.svg = !(n.vml = n.type == "VML");
- y[i] = n[i];
- n._id = 0;
- n._oid = 0;
- n.fn = {};
- n.is = function(n, t) {
- return t = yt.call(t), t == "object" && n === Object(n) || t == "undefined" && typeof n == t || t == "null" && n == null || yt.call(du.call(n).slice(8, -1)) == t
- };
- n.setWindow = function(n) {
- st = n;
- c = st.document
- };
- n.hsb2rgb = ut(function(t, i, r) {
- var u;
- if (n.is(t, "object") && "h" in t && "s" in t && "b" in t && (r = t.b, i = t.s, t = t.h), r == 0) return {
- r: 0,
- g: 0,
- b: 0,
- hex: "#000"
- };
- (t > 1 || i > 1 || r > 1) && (t /= 255, i /= 255, r /= 255);
- u = ~~(t * 6);
- t = t * 6 - u;
- var f = r * (1 - i),
- o = r * (1 - i * t),
- e = r * (1 - i * (1 - t));
- return t = [r, o, f, f, e, r, r][u], i = [e, r, r, o, f, f, e][u], u = [f, f, e, r, r, o, f][u], t *= 255, i *= 255, u *= 255, r = {
- r: t,
- g: i,
- b: u,
- toString: tf
- }, t = (~~t)[d](16), i = (~~i)[d](16), u = (~~u)[d](16), t = t[w](kt, "0"), i = i[w](kt, "0"), u = u[w](kt, "0"), r.hex = "#" + t + i + u, r
- }, n);
- n.rgb2hsb = ut(function(t, i, r) {
- var f, u, e, o;
- return (n.is(t, "object") && "r" in t && "g" in t && "b" in t && (r = t.b, i = t.g, t = t.r), n.is(t, wt) && (f = n.getRGB(t), t = f.r, i = f.g, r = f.b), (t > 1 || i > 1 || r > 1) && (t /= 255, i /= 255, r /= 255), u = ht(t, i, r), e = lt(t, i, r), f = u, e == u) ? {
- h: 0,
- s: 0,
- b: u
- } : (o = u - e, e = o / u, t = t == u ? (i - r) / o : i == u ? 2 + (r - t) / o : 4 + (t - i) / o, t /= 6, t < 0 && t++, t > 1 && t--, {
- h: t,
- s: e,
- b: f,
- toString: nf
- })
- }, n);
- var rf = /,?([achlmqrstvxz]),?/gi,
- hi = /\s*,\s*/,
- uf = {
- hs: 1,
- rg: 1
- };
- n._path2string = function() {
- return this.join(",")[w](rf, "$1")
- };
- n.getRGB = ut(function(t) {
- if (!t || (t += r).indexOf("-") + 1) return {
- r: -1,
- g: -1,
- b: -1,
- hex: "none",
- error: 1
- };
- if (t == "none") return {
- r: -1,
- g: -1,
- b: -1,
- hex: "none"
- };
- uf[s](t.substring(0, 2)) || t.charAt() == "#" || (t = si(t));
- var i, u, f, o, e;
- return (t = t.match(gu)) ? (t[2] && (f = pt(t[2].substring(5), 16), u = pt(t[2].substring(3, 5), 16), i = pt(t[2].substring(1, 3), 16)), t[3] && (f = pt((e = t[3].charAt(3)) + e, 16), u = pt((e = t[3].charAt(2)) + e, 16), i = pt((e = t[3].charAt(1)) + e, 16)), t[4] && (t = t[4][p](hi), i = h(t[0]), u = h(t[1]), f = h(t[2]), o = h(t[3])), t[5] && (t = t[5][p](hi), i = h(t[0]) * 2.55, u = h(t[1]) * 2.55, f = h(t[2]) * 2.55, o = h(t[3])), t[6]) ? (t = t[6][p](hi), i = h(t[0]), u = h(t[1]), f = h(t[2]), n.hsb2rgb(i, u, f)) : t[7] ? (t = t[7][p](hi), i = h(t[0]) * 2.55, u = h(t[1]) * 2.55, f = h(t[2]) * 2.55, n.hsb2rgb(i, u, f)) : (t = {
- r: i,
- g: u,
- b: f
- }, i = (~~i)[d](16), u = (~~u)[d](16), f = (~~f)[d](16), i = i[w](kt, "0"), u = u[w](kt, "0"), f = f[w](kt, "0"), t.hex = "#" + i + u + f, isFinite(h(o)) && (t.o = o), t) : {
- r: -1,
- g: -1,
- b: -1,
- hex: "none",
- error: 1
- }
- }, n);
- n.getColor = function(n) {
- n = this.getColor.start = this.getColor.start || {
- h: 0,
- s: 1,
- b: n || .75
- };
- var t = this.hsb2rgb(n.h, n.s, n.b);
- return n.h += .075, n.h > 1 && (n.h = 0, n.s -= .2, n.s <= 0 && (this.getColor.start = {
- h: 0,
- s: 1,
- b: n.b
- })), t.hex
- };
- n.getColor.reset = function() {
- delete this.start
- };
- lr = /([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig;
- ar = /(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig;
- n.parsePathString = ut(function(i) {
- if (!i) return null;
- var f = {
- a: 7,
- c: 6,
- h: 1,
- l: 2,
- m: 2,
- q: 4,
- s: 4,
- t: 2,
- v: 1,
- z: 0
- },
- u = [];
- return n.is(i, et) && n.is(i[0], et) && (u = ci(i)), u[t] || (i + r)[w](lr, function(n, i, r) {
- var e = [];
- for (n = yt.call(i), r[w](ar, function(n, t) {
- t && e[a](+t)
- }), n == "m" && e[t] > 2 && (u[a]([i][k](e.splice(0, 2))), n = "l", i = i == "m" ? "l" : "L"); e[t] >= f[n];)
- if (u[a]([i][k](e.splice(0, f[n]))), !f[n]) break
- }), u[d] = n._path2string, u
- });
- n.findDotsAtSegment = function(n, t, i, r, u, f, o, s, h) {
- var c = 1 - h,
- w = l(c, 3) * n + l(c, 2) * 3 * h * i + c * 3 * h * h * u + l(h, 3) * o;
- c = l(c, 3) * t + l(c, 2) * 3 * h * r + c * 3 * h * h * f + l(h, 3) * s;
- var a = n + 2 * h * (i - n) + h * h * (u - 2 * i + n),
- v = t + 2 * h * (r - t) + h * h * (f - 2 * r + t),
- y = i + 2 * h * (u - i) + h * h * (o - 2 * u + i),
- p = r + 2 * h * (f - r) + h * h * (s - 2 * f + r);
- return n = (1 - h) * n + h * i, t = (1 - h) * t + h * r, u = (1 - h) * u + h * o, f = (1 - h) * f + h * s, s = 90 - e.atan((a - y) / (v - p)) * 180 / e.PI, (a > y || v < p) && (s += 180), {
- x: w,
- y: c,
- m: {
- x: a,
- y: v
- },
- n: {
- x: y,
- y: p
- },
- start: {
- x: n,
- y: t
- },
- end: {
- x: u,
- y: f
- },
- alpha: s
- }
- };
- ti = ut(function(n) {
- if (!n) return {
- x: 0,
- y: 0,
- width: 0,
- height: 0
- };
- n = ai(n);
- for (var r = 0, e = 0, u = [], f = [], i, o = 0, s = n[t]; o < s; o++) i = n[o], i[0] == "M" ? (r = i[1], e = i[2], u[a](r), f[a](e)) : (r = ff(r, e, i[1], i[2], i[3], i[4], i[5], i[6]), u = u[k](r.min.x, r.max.x), f = f[k](r.min.y, r.max.y), r = i[5], e = i[6]);
- return n = lt[b](0, u), i = lt[b](0, f), {
- x: n,
- y: i,
- width: ht[b](0, u) - n,
- height: ht[b](0, f) - i
- }
- });
- gi = ut(function(i) {
- var v, u, r, h, y;
- n.is(i, et) && n.is(i && i[0], et) || (i = n.parsePathString(i));
- var e = [],
- s = 0,
- o = 0,
- c = 0,
- l = 0,
- f = 0;
- for (i[0][0] == "M" && (s = i[0][1], o = i[0][2], c = s, l = o, f++, e[a](["M", s, o])), f = f, v = i[t]; f < v; f++) {
- if (u = e[f] = [], r = i[f], r[0] != yt.call(r[0])) {
- u[0] = yt.call(r[0]);
- switch (u[0]) {
- case "a":
- u[1] = r[1];
- u[2] = r[2];
- u[3] = r[3];
- u[4] = r[4];
- u[5] = r[5];
- u[6] = +(r[6] - s).toFixed(3);
- u[7] = +(r[7] - o).toFixed(3);
- break;
- case "v":
- u[1] = +(r[1] - o).toFixed(3);
- break;
- case "m":
- c = r[1];
- l = r[2];
- default:
- for (h = 1, y = r[t]; h < y; h++) u[h] = +(r[h] - (h % 2 ? s : o)).toFixed(3)
- }
- } else
- for (e[f] = [], r[0] == "m" && (c = r[1] + s, l = r[2] + o), u = 0, h = r[t]; u < h; u++) e[f][u] = r[u];
- r = e[f][t];
- switch (e[f][0]) {
- case "z":
- s = c;
- o = l;
- break;
- case "h":
- s += +e[f][r - 1];
- break;
- case "v":
- o += +e[f][r - 1];
- break;
- default:
- s += +e[f][r - 2];
- o += +e[f][r - 1]
- }
- }
- return e[d] = n._path2string, e
- }, 0, ci);
- dt = ut(function(i) {
- var v, u, r, e, c;
- n.is(i, et) && n.is(i && i[0], et) || (i = n.parsePathString(i));
- var h = [],
- o = 0,
- s = 0,
- l = 0,
- a = 0,
- f = 0;
- for (i[0][0] == "M" && (o = +i[0][1], s = +i[0][2], l = o, a = s, f++, h[0] = ["M", o, s]), f = f, v = i[t]; f < v; f++) {
- if (u = h[f] = [], r = i[f], r[0] != ei.call(r[0])) {
- u[0] = ei.call(r[0]);
- switch (u[0]) {
- case "A":
- u[1] = r[1];
- u[2] = r[2];
- u[3] = r[3];
- u[4] = r[4];
- u[5] = r[5];
- u[6] = +(r[6] + o);
- u[7] = +(r[7] + s);
- break;
- case "V":
- u[1] = +r[1] + s;
- break;
- case "H":
- u[1] = +r[1] + o;
- break;
- case "M":
- l = +r[1] + o;
- a = +r[2] + s;
- default:
- for (e = 1, c = r[t]; e < c; e++) u[e] = +r[e] + (e % 2 ? o : s)
- }
- } else
- for (e = 0, c = r[t]; e < c; e++) h[f][e] = r[e];
- switch (u[0]) {
- case "Z":
- o = l;
- s = a;
- break;
- case "H":
- o = u[1];
- break;
- case "V":
- s = u[1];
- break;
- default:
- o = h[f][h[f][t] - 2];
- s = h[f][h[f][t] - 1]
- }
- }
- return h[d] = n._path2string, h
- }, null, ci);
- var ff = ut(function(n, t, i, r, u, f, o, s) {
- var c = u - 2 * i + n - (o - 2 * u + i),
- l = 2 * (i - n) - 2 * (u - i),
- p = n - i,
- h = (-l + e.sqrt(l * l - 4 * c * p)) / 2 / c,
- v, y;
- return c = (-l - e.sqrt(l * l - 4 * c * p)) / 2 / c, v = [t, s], y = [n, o], e.abs(h) > 1e12 && (h = .5), e.abs(c) > 1e12 && (c = .5), h > 0 && h < 1 && (h = ii(n, t, i, r, u, f, o, s, h), y[a](h.x), v[a](h.y)), c > 0 && c < 1 && (h = ii(n, t, i, r, u, f, o, s, c), y[a](h.x), v[a](h.y)), c = f - 2 * r + t - (s - 2 * f + r), l = 2 * (r - t) - 2 * (f - r), p = t - r, h = (-l + e.sqrt(l * l - 4 * c * p)) / 2 / c, c = (-l - e.sqrt(l * l - 4 * c * p)) / 2 / c, e.abs(h) > 1e12 && (h = .5), e.abs(c) > 1e12 && (c = .5), h > 0 && h < 1 && (h = ii(n, t, i, r, u, f, o, s, h), y[a](h.x), v[a](h.y)), c > 0 && c < 1 && (h = ii(n, t, i, r, u, f, o, s, c), y[a](h.x), v[a](h.y)), {
- min: {
- x: lt[b](0, y),
- y: lt[b](0, v)
- },
- max: {
- x: ht[b](0, y),
- y: ht[b](0, v)
- }
- }
- }),
- ai = ut(function(n, i) {
- function a(n, t) {
- var i;
- if (!n) return ["C", t.x, t.y, t.x, t.y, t.x, t.y];
- n[0] in {
- T: 1,
- Q: 1
- } || (t.qx = t.qy = null);
- switch (n[0]) {
- case "M":
- t.X = n[1];
- t.Y = n[2];
- break;
- case "A":
- n = ["C"][k](yr[b](0, [t.x, t.y][k](n.slice(1))));
- break;
- case "S":
- i = t.x + (t.x - (t.bx || t.x));
- t = t.y + (t.y - (t.by || t.y));
- n = ["C", i, t][k](n.slice(1));
- break;
- case "T":
- t.qx = t.x + (t.x - (t.qx || t.x));
- t.qy = t.y + (t.y - (t.qy || t.y));
- n = ["C"][k](vr(t.x, t.y, t.qx, t.qy, n[1], n[2]));
- break;
- case "Q":
- t.qx = n[1];
- t.qy = n[2];
- n = ["C"][k](vr(t.x, t.y, n[1], n[2], n[3], n[4]));
- break;
- case "L":
- n = ["C"][k](li(t.x, t.y, n[1], n[2]));
- break;
- case "H":
- n = ["C"][k](li(t.x, t.y, n[1], t.y));
- break;
- case "V":
- n = ["C"][k](li(t.x, t.y, t.x, n[1]));
- break;
- case "Z":
- n = ["C"][k](li(t.x, t.y, t.X, t.Y))
- }
- return n
- }
- function v(n, i) {
- if (n[i][t] > 7) {
- n[i].shift();
- for (var u = n[i]; u[t];) n.splice(i++, 0, ["C"][k](u.splice(0, 6)));
- n.splice(i, 1);
- s = ht(f[t], r && r[t] || 0)
- }
- }
- function y(n, i, u, e, o) {
- n && i && n[o][0] == "M" && i[o][0] != "M" && (i.splice(o, 0, ["M", e.x, e.y]), u.bx = 0, u.by = 0, u.x = n[o][1], u.y = n[o][2], s = ht(f[t], r && r[t] || 0))
- }
- var f = dt(n),
- r = i && dt(i),
- u, s;
- for (n = {
- x: 0,
- y: 0,
- bx: 0,
- by: 0,
- X: 0,
- Y: 0,
- qx: null,
- qy: null
- }, i = {
- x: 0,
- y: 0,
- bx: 0,
- by: 0,
- X: 0,
- Y: 0,
- qx: null,
- qy: null
- }, u = 0, s = ht(f[t], r && r[t] || 0); u < s; u++) {
- f[u] = a(f[u], n);
- v(f, u);
- r && (r[u] = a(r[u], i));
- r && v(r, u);
- y(f, r, n, i, u);
- y(r, f, i, n, u);
- var e = f[u],
- o = r && r[u],
- c = e[t],
- l = r && o[t];
- n.x = e[c - 2];
- n.y = e[c - 1];
- n.bx = h(e[c - 4]) || n.x;
- n.by = h(e[c - 3]) || n.y;
- i.bx = r && (h(o[l - 4]) || i.x);
- i.by = r && (h(o[l - 3]) || i.y);
- i.x = r && o[l - 2];
- i.y = r && o[l - 1]
- }
- return r ? [f, r] : f
- }, null, ci),
- pr = ut(function(i) {
- for (var r, f, e = [], u = 0, o = i[t]; u < o; u++) {
- if (r = {}, f = i[u].match(/^([^:]*):?([\d\.]*)/), r.color = n.getRGB(f[1]), r.color.error) return null;
- r.color = r.color.hex;
- f[2] && (r.offset = f[2] + "%");
- e[a](r)
- }
- for (u = 1, o = e[t] - 1; u < o; u++)
- if (!e[u].offset) {
- for (i = h(e[u - 1].offset || 0), f = 0, r = u + 1; r < o; r++)
- if (e[r].offset) {
- f = e[r].offset;
- break
- }
- for (f || (f = 100, r = o), f = h(f), f = (f - i) / (r - u + 1); u < r; u++) i += f, e[u].offset = i + "%"
- }
- return e
- });
- if (tr = /^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/, n.svg) {
- y[i].svgns = "http://www.w3.org/2000/svg";
- y[i].xlink = "http://www.w3.org/1999/xlink";
- v = function(n) {
- return +n + (~~n === n) * .5
- };
- f = function(n, t) {
- if (t)
- for (var u in t) t[s](u) && n[ot](u, t[u] + r);
- else return n = c.createElementNS(y[i].svgns, n), n.style.webkitTapHighlightColor = "rgba(0,0,0,0)", n
- };
- n[d] = function() {
- return "Your browser supports SVG.\nYou are running Raphaël " + this.version
- };
- var tu = function(n, t) {
- var i = f("path");
- return t.canvas && t.canvas[o](i), t = new u(i, t), t.type = "path", vt(t, {
- fill: "none",
- stroke: "#000",
- path: n
- }), t
- },
- ri = function(i, u, s) {
- var b = "linear",
- k = .5,
- y = .5,
- g = i.style,
- a, v, nt;
- if (u = (u + r)[w](tr, function(n, t, i) {
- return b = "radial", t && i && (k = h(t), y = h(i), n = (y > .5) * 2 - 1, l(k - .5, 2) + l(y - .5, 2) > .25 && (y = e.sqrt(.25 - l(k - .5, 2)) * n + .5) && y != .5 && (y = y.toFixed(5) - 1e-5 * n)), r
- }), u = u[p](/\s*\-\s*/), b == "linear") {
- if (a = u.shift(), a = -h(a), isNaN(a)) return null;
- a = [0, 0, e.cos(a * e.PI / 180), e.sin(a * e.PI / 180)];
- v = 1 / (ht(e.abs(a[2]), e.abs(a[3])) || 1);
- a[2] *= v;
- a[3] *= v;
- a[2] < 0 && (a[0] = -a[2], a[2] = 0);
- a[3] < 0 && (a[1] = -a[3], a[3] = 0)
- }
- if (u = pr(u), !u) return null;
- for (v = i.getAttribute(at), (v = v.match(/^url\(#(.*)\)$/)) && s.defs.removeChild(c.getElementById(v[1])), v = f(b + "Gradient"), v.id = "r" + (n._id++)[d](36), f(v, b == "radial" ? {
- fx: k,
- fy: y
- } : {
- x1: a[0],
- y1: a[1],
- x2: a[2],
- y2: a[3]
- }), s.defs[o](v), s = 0, a = u[t]; s < a; s++) nt = f("stop"), f(nt, {
- offset: u[s].offset ? u[s].offset : s ? "100%" : "0%",
- "stop-color": u[s].color || "#fff"
- }), v[o](nt);
- return f(i, {
- fill: "url(#" + v.id + ")",
- opacity: 1,
- "fill-opacity": 1
- }), g.fill = r, g.opacity = 1, g.fillOpacity = 1
- },
- ir = function(t) {
- var i = t.getBBox();
- f(t.pattern, {
- patternTransform: n.format("translate({0},{1})", i.x, i.y)
- })
- },
- vt = function(i, u) {
- function et(n, i) {
- var e, o, r;
- if (i = st[yt.call(i)]) {
- for (e = n.attrs["stroke-width"] || "1", n = {
- round: e,
- square: e,
- butt: 0
- }[n.attrs["stroke-linecap"] || u["stroke-linecap"]] || 0, o = [], r = i[t]; r--;) o[r] = i[r] * e + (r % 2 ? 1 : -1) * n;
- f(l, {
- "stroke-dasharray": o[tt](",")
- })
- }
- }
- var st = {
- "": [0],
- none: [0],
- "-": [3, 1],
- ".": [1, 1],
- "-.": [3, 1, 1, 1],
- "-..": [3, 1, 1, 1, 1, 1],
- ". ": [1, 3],
- "- ": [4, 3],
- "--": [8, 3],
- "- .": [4, 3, 1, 3],
- "--.": [8, 3, 1, 3],
- "--..": [8, 3, 1, 3, 1, 3]
- },
- l = i.node,
- b = i.attrs,
- rt = i.rotate(),
- k, y, e, a, it, nt, ut;
- u[s]("rotation") && (rt = u.rotation);
- k = (rt + r)[p](ft);
- k.length - 1 ? (k[1] = +k[1], k[2] = +k[2]) : k = null;
- h(rt) && i.rotate(0, !0);
- for (y in u)
- if (u[s](y) && oi[s](y)) {
- e = u[y];
- b[y] = e;
- switch (y) {
- case "blur":
- i.blur(e);
- break;
- case "rotation":
- i.rotate(e, !0);
- break;
- case "href":
- case "title":
- case "target":
- a = l.parentNode;
- yt.call(a.tagName) != "a" && (it = f("a"), a.insertBefore(it, l), it[o](l), a = it);
- a.setAttributeNS(i.paper.xlink, y, e);
- break;
- case "cursor":
- l.style.cursor = e;
- break;
- case "clip-rect":
- a = (e + r)[p](ft);
- a[t] == 4 && (i.clip && i.clip.parentNode.parentNode.removeChild(i.clip.parentNode), nt = f("clipPath"), it = f("rect"), nt.id = "r" + (n._id++)[d](36), f(it, {
- x: a[0],
- y: a[1],
- width: a[2],
- height: a[3]
- }), nt[o](it), i.paper.defs[o](nt), f(l, {
- "clip-path": "url(#" + nt.id + ")"
- }), i.clip = it);
- e || ((e = c.getElementById(l.getAttribute("clip-path")[w](/(^url\(#|\)$)/g, r))) && e.parentNode.removeChild(e), f(l, {
- "clip-path": r
- }), delete i.clip);
- break;
- case "path":
- i.type == "path" && f(l, {
- d: e ? b.path = dt(e) : "M0,0"
- });
- break;
- case "width":
- if (l[ot](y, e), b.fx) y = "x", e = b.x;
- else break;
- case "x":
- b.fx && (e = -b.x - (b.width || 0));
- case "rx":
- if (y == "rx" && i.type == "rect") break;
- case "cx":
- k && (y == "x" || y == "cx") && (k[1] += e - b[y]);
- l[ot](y, v(e));
- i.pattern && ir(i);
- break;
- case "height":
- if (l[ot](y, e), b.fy) y = "y", e = b.y;
- else break;
- case "y":
- b.fy && (e = -b.y - (b.height || 0));
- case "ry":
- if (y == "ry" && i.type == "rect") break;
- case "cy":
- k && (y == "y" || y == "cy") && (k[2] += e - b[y]);
- l[ot](y, v(e));
- i.pattern && ir(i);
- break;
- case "r":
- i.type == "rect" ? f(l, {
- rx: e,
- ry: e
- }) : l[ot](y, e);
- break;
- case "src":
- i.type == "image" && l.setAttributeNS(i.paper.xlink, "href", e);
- break;
- case "stroke-width":
- l.style.strokeWidth = e;
- l[ot](y, e);
- b["stroke-dasharray"] && et(i, b["stroke-dasharray"]);
- break;
- case "stroke-dasharray":
- et(i, e);
- break;
- case "translation":
- e = (e + r)[p](ft);
- e[0] = +e[0] || 0;
- e[1] = +e[1] || 0;
- k && (k[1] += e[0], k[2] += e[1]);
- yi.call(i, e[0], e[1]);
- break;
- case "scale":
- e = (e + r)[p](ft);
- i.scale(+e[0] || 1, +e[1] || +e[0] || 1, isNaN(h(e[2])) ? null : +e[2], isNaN(h(e[3])) ? null : +e[3]);
- break;
- case at:
- if (a = (e + r).match(cr)) {
- nt = f("pattern");
- ut = f("image");
- nt.id = "r" + (n._id++)[d](36);
- f(nt, {
- x: 0,
- y: 0,
- patternUnits: "userSpaceOnUse",
- height: 1,
- width: 1
- });
- f(ut, {
- x: 0,
- y: 0
- });
- ut.setAttributeNS(i.paper.xlink, "href", a[1]);
- nt[o](ut);
- e = c.createElement("img");
- e.style.cssText = "position:absolute;left:-9999em;top-9999em";
- e.onload = function() {
- f(nt, {
- width: this.offsetWidth,
- height: this.offsetHeight
- });
- f(ut, {
- width: this.offsetWidth,
- height: this.offsetHeight
- });
- c.body.removeChild(this);
- i.paper.safari()
- };
- c.body[o](e);
- e.src = a[1];
- i.paper.defs[o](nt);
- l.style.fill = "url(#" + nt.id + ")";
- f(l, {
- fill: "url(#" + nt.id + ")"
- });
- i.pattern = nt;
- i.pattern && ir(i);
- break
- }
- if (a = n.getRGB(e), a.error) {
- if (({
- circle: 1,
- ellipse: 1
- }[s](i.type) || (e + r).charAt() != "r") && ri(l, e, i.paper)) {
- b.gradient = e;
- b.fill = "none";
- break
- }
- } else delete u.gradient, delete b.gradient, !n.is(b.opacity, "undefined") && n.is(u.opacity, "undefined") && f(l, {
- opacity: b.opacity
- }), !n.is(b["fill-opacity"], "undefined") && n.is(u["fill-opacity"], "undefined") && f(l, {
- "fill-opacity": b["fill-opacity"]
- });
- a[s]("o") && f(l, {
- "fill-opacity": a.o / 100
- });
- case "stroke":
- a = n.getRGB(e);
- l[ot](y, a.hex);
- y == "stroke" && a[s]("o") && f(l, {
- "stroke-opacity": a.o / 100
- });
- break;
- case "gradient":
- ({
- circle: 1,
- ellipse: 1
- }[s](i.type) || (e + r).charAt() != "r") && ri(l, e, i.paper);
- break;
- case "opacity":
- case "fill-opacity":
- if (b.gradient) {
- (a = c.getElementById(l.getAttribute(at)[w](/^url\(#|\)$/g, r))) && (a = a.getElementsByTagName("stop"), a[a[t] - 1][ot]("stop-opacity", e));
- break
- }
- default:
- y == "font-size" && (e = pt(e, 10) + "px");
- a = y[w](/(\-.)/g, function(n) {
- return ei.call(n.substring(1))
- });
- l.style[a] = e;
- l[ot](y, e)
- }
- }
- ef(i, u);
- k ? i.rotate(k.join(g)) : h(rt) && i.rotate(rt, !0)
- },
- iu = 1.2,
- ef = function(n, i) {
- var u, l, a;
- if (!(n.type != "text" || !(i[s]("text") || i[s]("font") || i[s]("font-size") || i[s]("x") || i[s]("y")))) {
- var h = n.attrs,
- e = n.node,
- v = e.firstChild ? pt(c.defaultView.getComputedStyle(e.firstChild, r).getPropertyValue("font-size"), 10) : 10;
- if (i[s]("text")) {
- for (h.text = i.text; e.firstChild;) e.removeChild(e.firstChild);
- for (i = (i.text + r)[p]("\n"), u = 0, l = i[t]; u < l; u++) i[u] && (a = f("tspan"), u && f(a, {
- dy: v * iu,
- x: h.x
- }), a[o](c.createTextNode(i[u])), e[o](a))
- } else
- for (i = e.getElementsByTagName("tspan"), u = 0, l = i[t]; u < l; u++) u && f(i[u], {
- dy: v * iu,
- x: h.x
- });
- f(e, {
- y: h.y
- });
- n = n.getBBox();
- (n = h.y - (n.y + n.height / 2)) && isFinite(n) && f(e, {
- y: h.y + n
- })
- }
- },
- u = function(t, i) {
- this[0] = t;
- this.id = n._oid++;
- this.node = t;
- t.raphael = this;
- this.paper = i;
- this.attrs = this.attrs || {};
- this.transformations = [];
- this._ = {
- tx: 0,
- ty: 0,
- rt: {
- deg: 0,
- cx: 0,
- cy: 0
- },
- sx: 1,
- sy: 1
- };
- i.bottom || (i.bottom = this);
- (this.prev = i.top) && (i.top.next = this);
- i.top = this;
- this.next = null
- };
- u[i].rotate = function(i, u, e) {
- if (this.removed) return this;
- if (i == null) return this._.rt.cx ? [this._.rt.deg, this._.rt.cx, this._.rt.cy][tt](g) : this._.rt.deg;
- var o = this.getBBox();
- return i = (i + r)[p](ft), i[t] - 1 && (u = h(i[1]), e = h(i[2])), i = h(i[0]), u != null ? this._.rt.deg = i : this._.rt.deg += i, e == null && (u = null), this._.rt.cx = u, this._.rt.cy = e, u = u == null ? o.x + o.width / 2 : u, e = e == null ? o.y + o.height / 2 : e, this._.rt.deg ? (this.transformations[0] = n.format("rotate({0} {1} {2})", this._.rt.deg, u, e), this.clip && f(this.clip, {
- transform: n.format("rotate({0} {1} {2})", -this._.rt.deg, u, e)
- })) : (this.transformations[0] = r, this.clip && f(this.clip, {
- transform: r
- })), f(this.node, {
- transform: this.transformations[tt](g)
- }), this
- };
- u[i].hide = function() {
- return this.removed || (this.node.style.display = "none"), this
- };
- u[i].show = function() {
- return this.removed || (this.node.style.display = ""), this
- };
- u[i].remove = function() {
- if (!this.removed) {
- gt(this, this.paper);
- this.node.parentNode.removeChild(this.node);
- for (var n in this) delete this[n];
- this.removed = !0
- }
- };
- u[i].getBBox = function() {
- var r, n, i, u, t;
- if (this.removed) return this;
- if (this.type == "path") return ti(this.attrs.path);
- this.node.style.display == "none" && (this.show(), r = !0);
- n = {};
- try {
- n = this.node.getBBox()
- } catch (f) {} finally {
- n = n || {}
- }
- if (this.type == "text")
- for (n = {
- x: n.x,
- y: Infinity,
- width: 0,
- height: 0
- }, i = 0, u = this.node.getNumberOfChars(); i < u; i++) t = this.node.getExtentOfChar(i), t.y < n.y && (n.y = t.y), t.y + t.height - n.y > n.height && (n.height = t.y + t.height - n.y), t.x + t.width - n.x > n.width && (n.width = t.x + t.width - n.x);
- return r && this.hide(), n
- };
- u[i].attr = function(t, i) {
- var r, u;
- if (this.removed) return this;
- if (t == null) {
- t = {};
- for (r in this.attrs) this.attrs[s](r) && (t[r] = this.attrs[r]);
- return this._.rt.deg && (t.rotation = this.rotate()), (this._.sx != 1 || this._.sy != 1) && (t.scale = this.scale()), t.gradient && t.fill == "none" && (t.fill = t.gradient) && delete t.gradient, t
- }
- if (i == null && n.is(t, wt)) return t == "translation" ? yi.call(this) : t == "rotation" ? this.rotate() : t == "scale" ? this.scale() : t == at && this.attrs.fill == "none" && this.attrs.gradient ? this.attrs.gradient : this.attrs[t];
- if (i == null && n.is(t, et)) {
- for (i = {}, r = 0, u = t.length; r < u; r++) i[t[r]] = this.attr(t[r]);
- return i
- }
- return i != null ? (r = {}, r[t] = i, vt(this, r)) : t != null && n.is(t, "object") && vt(this, t), this
- };
- u[i].toFront = function() {
- if (this.removed) return this;
- this.node.parentNode[o](this.node);
- var n = this.paper;
- return n.top != this && br(this, n), this
- };
- u[i].toBack = function() {
- return this.removed ? this : (this.node.parentNode.firstChild != this.node && (this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild), kr(this, this.paper)), this)
- };
- u[i].insertAfter = function(n) {
- if (this.removed) return this;
- var t = n.node;
- return t.nextSibling ? t.parentNode.insertBefore(this.node, t.nextSibling) : t.parentNode[o](this.node), dr(this, n, this.paper), this
- };
- u[i].insertBefore = function(n) {
- if (this.removed) return this;
- var t = n.node;
- return t.parentNode.insertBefore(this.node, t), gr(this, n, this.paper), this
- };
- u[i].blur = function(t) {
- var i = this,
- r, u; + t != 0 ? (r = f("filter"), u = f("feGaussianBlur"), i.attrs.blur = t, r.id = "r" + (n._id++)[d](36), f(u, {
- stdDeviation: +t || 1.5
- }), r.appendChild(u), i.paper.defs.appendChild(r), i._blur = r, f(i.node, {
- filter: "url(#" + r.id + ")"
- })) : (i._blur && (i._blur.parentNode.removeChild(i._blur), delete i._blur, delete i.attrs.blur), i.node.removeAttribute("filter"))
- };
- var ru = function(n, t, i, r) {
- t = v(t);
- i = v(i);
- var e = f("circle");
- return n.canvas && n.canvas[o](e), n = new u(e, n), n.attrs = {
- cx: t,
- cy: i,
- r: r,
- fill: "none",
- stroke: "#000"
- }, n.type = "circle", f(e, n.attrs), n
- },
- uu = function(n, t, i, r, e, s) {
- t = v(t);
- i = v(i);
- var h = f("rect");
- return n.canvas && n.canvas[o](h), n = new u(h, n), n.attrs = {
- x: t,
- y: i,
- width: r,
- height: e,
- r: s || 0,
- rx: s || 0,
- ry: s || 0,
- fill: "none",
- stroke: "#000"
- }, n.type = "rect", f(h, n.attrs), n
- },
- fu = function(n, t, i, r, e) {
- t = v(t);
- i = v(i);
- var s = f("ellipse");
- return n.canvas && n.canvas[o](s), n = new u(s, n), n.attrs = {
- cx: t,
- cy: i,
- rx: r,
- ry: e,
- fill: "none",
- stroke: "#000"
- }, n.type = "ellipse", f(s, n.attrs), n
- },
- eu = function(n, t, i, r, e, s) {
- var h = f("image");
- return f(h, {
- x: i,
- y: r,
- width: e,
- height: s,
- preserveAspectRatio: "none"
- }), h.setAttributeNS(n.xlink, "href", t), n.canvas && n.canvas[o](h), n = new u(h, n), n.attrs = {
- x: i,
- y: r,
- width: e,
- height: s,
- src: t
- }, n.type = "image", n
- },
- ou = function(n, t, i, r) {
- var e = f("text");
- return f(e, {
- x: t,
- y: i,
- "text-anchor": "middle"
- }), n.canvas && n.canvas[o](e), n = new u(e, n), n.attrs = {
- x: t,
- y: i,
- "text-anchor": "middle",
- text: r,
- font: oi.font,
- stroke: "none",
- fill: "#000"
- }, n.type = "text", vt(n, n.attrs), n
- },
- su = function(n, t) {
- return this.width = n || this.width, this.height = t || this.height, this.canvas[ot]("width", this.width), this.canvas[ot]("height", this.height), this
- },
- rr = function() {
- var i = wr[b](0, arguments),
- t = i && i.container,
- e = i.x,
- s = i.y,
- u = i.width,
- r;
- if (i = i.height, !t) throw new Error("SVG container not found.");
- return r = f("svg"), e = e || 0, s = s || 0, u = u || 512, i = i || 342, f(r, {
- xmlns: "http://www.w3.org/2000/svg",
- version: 1.1,
- width: u,
- height: i
- }), t == 1 ? (r.style.cssText = "position:absolute;left:" + e + "px;top:" + s + "px", c.body[o](r)) : t.firstChild ? t.insertBefore(r, t.firstChild) : t[o](r), t = new y, t.width = u, t.height = i, t.canvas = r, nr.call(t, t, n.fn), t.clear(), t
- };
- y[i].clear = function() {
- for (var n = this.canvas; n.firstChild;) n.removeChild(n.firstChild);
- this.bottom = this.top = null;
- (this.desc = f("desc"))[o](c.createTextNode("Created with Raphaël"));
- n[o](this.desc);
- n[o](this.defs = f("defs"))
- };
- y[i].remove = function() {
- this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);
- for (var n in this) this[n] = nu(n)
- }
- }
- if (n.vml) {
- var hu = {
- M: "m",
- L: "l",
- C: "c",
- Z: "x",
- m: "t",
- l: "r",
- c: "v",
- z: "x"
- },
- of = /([clmz]),?([^clmz]*)/gi,
- sf = /-?[^,\s-]+/g,
- ui = 1e3 + g + 1e3,
- ni = 10,
- fi = {
- path: 1,
- rect: 1
- },
- hf = function(n) {
- var i = /[ahqstv]/ig,
- u = dt,
- f, e, h, o, s;
- if ((n + r).match(i) && (u = ai), i = /[clmz]/g, u == dt && !(n + r).match(i)) return (n + r)[w]( of , function(n, i, r) {
- var u = [],
- e = yt.call(i) == "m",
- f = hu[i];
- return r[w](sf, function(n) {
- e && u[t] == 2 && (f += u + hu[i == "m" ? "l" : "L"], u = []);
- u[a](v(n * ni))
- }), f + u
- });
- for (i = u(n), n = [], e = 0, h = i[t]; e < h; e++) {
- for (u = i[e], f = yt.call(i[e][0]), f == "z" && (f = "x"), o = 1, s = u[t]; o < s; o++) f += v(u[o] * ni) + (o != s - 1 ? "," : r);
- n[a](f)
- }
- return n[tt](g)
- };
- n[d] = function() {
- return "Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël " + this.version
- };
- tu = function(n, t) {
- var f = it("group"),
- i, e;
- return f.style.cssText = "position:absolute;left:0;top:0;width:" + t.width + "px;height:" + t.height + "px", f.coordsize = t.coordsize, f.coordorigin = t.coordorigin, i = it("shape"), e = i.style, e.width = t.width + "px", e.height = t.height + "px", i.coordsize = ui, i.coordorigin = t.coordorigin, f[o](i), i = new u(i, f, t), e = {
- fill: "none",
- stroke: "#000"
- }, n && (e.path = n), i.isAbsolute = !0, i.type = "path", i.path = [], i.Path = r, vt(i, e), t.canvas[o](f), i
- };
- vt = function(i, u) {
- var y, b, k, d;
- i.attrs = i.attrs || {};
- var a = i.node,
- e = i.attrs,
- f = a.style,
- l;
- l = (u.x != e.x || u.y != e.y || u.width != e.width || u.height != e.height || u.r != e.r) && i.type == "rect";
- y = i;
- for (b in u) u[s](b) && (e[b] = u[b]);
- if (l && (e.path = lu(e.x, e.y, e.width, e.height, e.r), i.X = e.x, i.Y = e.y, i.W = e.width, i.H = e.height), u.href && (a.href = u.href), u.title && (a.title = u.title), u.target && (a.target = u.target), u.cursor && (f.cursor = u.cursor), "blur" in u && i.blur(u.blur), (u.path && i.type == "path" || l) && (a.path = hf(e.path)), u.rotation != null && i.rotate(u.rotation, !0), u.translation && (l = (u.translation + r)[p](ft), yi.call(i, l[0], l[1]), i._.rt.cx != null && (i._.rt.cx += +l[0], i._.rt.cy += +l[1], i.setBox(i.attrs, l[0], l[1]))), u.scale && (l = (u.scale + r)[p](ft), i.scale(+l[0] || 1, +l[1] || +l[0] || 1, +l[2] || null, +l[3] || null)), "clip-rect" in u && (l = (u["clip-rect"] + r)[p](ft), l[t] == 4 && (l[2] = +l[2] + +l[0], l[3] = +l[3] + +l[1], b = a.clipRect || c.createElement("div"), k = b.style, d = a.parentNode, k.clip = n.format("rect({1}px {2}px {3}px {0}px)", l), a.clipRect || (k.position = "absolute", k.top = 0, k.left = 0, k.width = i.paper.width + "px", k.height = i.paper.height + "px", d.parentNode.insertBefore(b, d), b[o](d), a.clipRect = b)), u["clip-rect"] || a.clipRect && (a.clipRect.style.clip = r)), i.type == "image" && u.src && (a.src = u.src), i.type == "image" && u.opacity && (a.filterOpacity = ki + ".Alpha(opacity=" + u.opacity * 100 + ")", f.filter = (a.filterMatrix || r) + (a.filterOpacity || r)), u.font && (f.font = u.font), u["font-family"] && (f.fontFamily = '"' + u["font-family"][p](",")[0][w](/^['"]+|['"]+$/g, r) + '"'), u["font-size"] && (f.fontSize = u["font-size"]), u["font-weight"] && (f.fontWeight = u["font-weight"]), u["font-style"] && (f.fontStyle = u["font-style"]), (u.opacity != null || u["stroke-width"] != null || u.fill != null || u.stroke != null || u["stroke-width"] != null || u["stroke-opacity"] != null || u["fill-opacity"] != null || u["stroke-dasharray"] != null || u["stroke-miterlimit"] != null || u["stroke-linejoin"] != null || u["stroke-linecap"] != null) && (a = i.shape || a, f = a.getElementsByTagName(at) && a.getElementsByTagName(at)[0], l = !1, f || (l = f = it(at)), ("fill-opacity" in u || "opacity" in u) && (i = ((+e["fill-opacity"] + 1 || 2) - 1) * ((+e.opacity + 1 || 2) - 1) * ((+n.getRGB(u.fill).o + 1 || 2) - 1), i < 0 && (i = 0), i > 1 && (i = 1), f.opacity = i), u.fill && (f.on = !0), (f.on == null || u.fill == "none") && (f.on = !1), f.on && u.fill && ((i = u.fill.match(cr)) ? (f.src = i[1], f.type = "tile") : (f.color = n.getRGB(u.fill).hex, f.src = r, f.type = "solid", n.getRGB(u.fill).error && (y.type in {
- circle: 1,
- ellipse: 1
- } || (u.fill + r).charAt() != "r") && ri(y, u.fill) && (e.fill = "none", e.gradient = u.fill))), l && a[o](f), f = a.getElementsByTagName("stroke") && a.getElementsByTagName("stroke")[0], l = !1, f || (l = f = it("stroke")), (u.stroke && u.stroke != "none" || u["stroke-width"] || u["stroke-opacity"] != null || u["stroke-dasharray"] || u["stroke-miterlimit"] || u["stroke-linejoin"] || u["stroke-linecap"]) && (f.on = !0), (u.stroke == "none" || f.on == null || u.stroke == 0 || u["stroke-width"] == 0) && (f.on = !1), i = n.getRGB(u.stroke), f.on && u.stroke && (f.color = i.hex), i = ((+e["stroke-opacity"] + 1 || 2) - 1) * ((+e.opacity + 1 || 2) - 1) * ((+i.o + 1 || 2) - 1), b = (h(u["stroke-width"]) || 1) * .75, i < 0 && (i = 0), i > 1 && (i = 1), u["stroke-width"] == null && (b = e["stroke-width"]), u["stroke-width"] && (f.weight = b), b && b < 1 && (i *= b) && (f.weight = 1), f.opacity = i, u["stroke-linejoin"] && (f.joinstyle = u["stroke-linejoin"] || "miter"), f.miterlimit = u["stroke-miterlimit"] || 8, u["stroke-linecap"] && (f.endcap = u["stroke-linecap"] == "butt" ? "flat" : u["stroke-linecap"] == "square" ? "square" : "round"), u["stroke-dasharray"] && (i = {
- "-": "shortdash",
- ".": "shortdot",
- "-.": "shortdashdot",
- "-..": "shortdashdotdot",
- ". ": "dot",
- "- ": "dash",
- "--": "longdash",
- "- .": "dashdot",
- "--.": "longdashdot",
- "--..": "longdashdotdot"
- }, f.dashstyle = i[s](u["stroke-dasharray"]) ? i[u["stroke-dasharray"]] : r), l && a[o](f)), y.type == "text") {
- f = y.paper.span.style;
- e.font && (f.font = e.font);
- e["font-family"] && (f.fontFamily = e["font-family"]);
- e["font-size"] && (f.fontSize = e["font-size"]);
- e["font-weight"] && (f.fontWeight = e["font-weight"]);
- e["font-style"] && (f.fontStyle = e["font-style"]);
- y.node.string && (y.paper.span.innerHTML = (y.node.string + r)[w](/</g, "<")[w](/&/g, "&")[w](/\n/g, "<br>"));
- y.W = e.w = y.paper.span.offsetWidth;
- y.H = e.h = y.paper.span.offsetHeight;
- y.X = e.x;
- y.Y = e.y + v(y.H / 2);
- switch (e["text-anchor"]) {
- case "start":
- y.node.style["v-text-align"] = "left";
- y.bbx = v(y.W / 2);
- break;
- case "end":
- y.node.style["v-text-align"] = "right";
- y.bbx = -v(y.W / 2);
- break;
- default:
- y.node.style["v-text-align"] = "center"
- }
- }
- };
- ri = function(n, i) {
- var s, c, o, u, f, v;
- if ((n.attrs = n.attrs || {}, s = "linear", c = ".5 .5", n.attrs.gradient = i, i = (i + r)[w](tr, function(n, t, i) {
- return s = "radial", t && i && (t = h(t), i = h(i), l(t - .5, 2) + l(i - .5, 2) > .25 && (i = e.sqrt(.25 - l(t - .5, 2)) * ((i > .5) * 2 - 1) + .5), c = t + g + i), r
- }), i = i[p](/\s*\-\s*/), s == "linear" && (o = i.shift(), o = -h(o), isNaN(o))) || (u = pr(i), !u)) return null;
- if (n = n.shape || n.node, i = n.getElementsByTagName(at)[0] || it(at), i.parentNode || n.appendChild(i), u[t]) {
- for (i.on = !0, i.method = "none", i.color = u[0].color, i.color2 = u[u[t] - 1].color, n = [], f = 0, v = u[t]; f < v; f++) u[f].offset && n[a](u[f].offset + g + u[f].color);
- i.colors && (i.colors.value = n[t] ? n[tt]() : "0% " + i.color);
- s == "radial" ? (i.type = "gradientradial", i.focus = "100%", i.focussize = c, i.focusposition = c) : (i.type = "gradient", i.angle = (270 - o) % 360)
- }
- return 1
- };
- u = function(t, i, r) {
- this[0] = t;
- this.id = n._oid++;
- this.node = t;
- t.raphael = this;
- this.Y = this.X = 0;
- this.attrs = {};
- this.Group = i;
- this.paper = r;
- this._ = {
- tx: 0,
- ty: 0,
- rt: {
- deg: 0
- },
- sx: 1,
- sy: 1
- };
- r.bottom || (r.bottom = this);
- (this.prev = r.top) && (r.top.next = this);
- r.top = this;
- this.next = null
- };
- u[i].rotate = function(n, i, u) {
- return this.removed ? this : n == null ? this._.rt.cx ? [this._.rt.deg, this._.rt.cx, this._.rt.cy][tt](g) : this._.rt.deg : (n = (n + r)[p](ft), n[t] - 1 && (i = h(n[1]), u = h(n[2])), n = h(n[0]), i != null ? this._.rt.deg = n : this._.rt.deg += n, u == null && (i = null), this._.rt.cx = i, this._.rt.cy = u, this.setBox(this.attrs, i, u), this.Group.style.rotation = this._.rt.deg, this)
- };
- u[i].setBox = function(n, t, i) {
- var c, e, o, u, h, f;
- if (this.removed) return this;
- c = this.Group.style;
- e = this.shape && this.shape.style || this.node.style;
- n = n || {};
- for (o in n) n[s](o) && (this.attrs[o] = n[o]);
- t = t || this._.rt.cx;
- i = i || this._.rt.cy;
- u = this.attrs;
- switch (this.type) {
- case "circle":
- n = u.cx - u.r;
- o = u.cy - u.r;
- h = u = u.r * 2;
- break;
- case "ellipse":
- n = u.cx - u.rx;
- o = u.cy - u.ry;
- h = u.rx * 2;
- u = u.ry * 2;
- break;
- case "image":
- n = +u.x;
- o = +u.y;
- h = u.width || 0;
- u = u.height || 0;
- break;
- case "text":
- this.textpath.v = ["m", v(u.x), ", ", v(u.y - 2), "l", v(u.x) + 1, ", ", v(u.y - 2)][tt](r);
- n = u.x - v(this.W / 2);
- o = u.y - this.H / 2;
- h = this.W;
- u = this.H;
- break;
- case "rect":
- case "path":
- this.attrs.path ? (u = ti(this.attrs.path), n = u.x, o = u.y, h = u.width, u = u.height) : (o = n = 0, h = this.paper.width, u = this.paper.height);
- break;
- default:
- o = n = 0;
- h = this.paper.width;
- u = this.paper.height
- }
- t = t == null ? n + h / 2 : t;
- i = i == null ? o + u / 2 : i;
- t = t - this.paper.width / 2;
- i = i - this.paper.height / 2;
- c.left != (f = t + "px") && (c.left = f);
- c.top != (f = i + "px") && (c.top = f);
- this.X = fi[s](this.type) ? -t : n;
- this.Y = fi[s](this.type) ? -i : o;
- this.W = h;
- this.H = u;
- fi[s](this.type) ? (e.left != (f = -t * ni + "px") && (e.left = f), e.top != (f = -i * ni + "px") && (e.top = f)) : this.type == "text" ? (e.left != (f = -t + "px") && (e.left = f), e.top != (f = -i + "px") && (e.top = f)) : (c.width != (f = this.paper.width + "px") && (c.width = f), c.height != (f = this.paper.height + "px") && (c.height = f), e.left != (f = n - t + "px") && (e.left = f), e.top != (f = o - i + "px") && (e.top = f), e.width != (f = h + "px") && (e.width = f), e.height != (f = u + "px") && (e.height = f))
- };
- u[i].hide = function() {
- return this.removed || (this.Group.style.display = "none"), this
- };
- u[i].show = function() {
- return this.removed || (this.Group.style.display = "block"), this
- };
- u[i].getBBox = function() {
- return this.removed ? this : fi[s](this.type) ? ti(this.attrs.path) : {
- x: this.X + (this.bbx || 0),
- y: this.Y,
- width: this.W,
- height: this.H
- }
- };
- u[i].remove = function() {
- if (!this.removed) {
- gt(this, this.paper);
- this.node.parentNode.removeChild(this.node);
- this.Group.parentNode.removeChild(this.Group);
- this.shape && this.shape.parentNode.removeChild(this.shape);
- for (var n in this) delete this[n];
- this.removed = !0
- }
- };
- u[i].attr = function(i, u) {
- var e, f;
- if (this.removed) return this;
- if (i == null) {
- i = {};
- for (e in this.attrs) this.attrs[s](e) && (i[e] = this.attrs[e]);
- return this._.rt.deg && (i.rotation = this.rotate()), (this._.sx != 1 || this._.sy != 1) && (i.scale = this.scale()), i.gradient && i.fill == "none" && (i.fill = i.gradient) && delete i.gradient, i
- }
- if (u == null && n.is(i, wt)) return i == "translation" ? yi.call(this) : i == "rotation" ? this.rotate() : i == "scale" ? this.scale() : i == at && this.attrs.fill == "none" && this.attrs.gradient ? this.attrs.gradient : this.attrs[i];
- if (this.attrs && u == null && n.is(i, et)) {
- for (f = {}, e = 0, u = i[t]; e < u; e++) f[i[e]] = this.attr(i[e]);
- return f
- }
- return u != null && (f = {}, f[i] = u), u == null && n.is(i, "object") && (f = i), f && (f.text && this.type == "text" && (this.node.string = f.text), vt(this, f), f.gradient && ({
- circle: 1,
- ellipse: 1
- }[s](this.type) || (f.gradient + r).charAt() != "r") && ri(this, f.gradient), (!fi[s](this.type) || this._.rt.deg) && this.setBox(this.attrs)), this
- };
- u[i].toFront = function() {
- return this.removed || this.Group.parentNode[o](this.Group), this.paper.top != this && br(this, this.paper), this
- };
- u[i].toBack = function() {
- return this.removed ? this : (this.Group.parentNode.firstChild != this.Group && (this.Group.parentNode.insertBefore(this.Group, this.Group.parentNode.firstChild), kr(this, this.paper)), this)
- };
- u[i].insertAfter = function(n) {
- return this.removed ? this : (n.Group.nextSibling ? n.Group.parentNode.insertBefore(this.Group, n.Group.nextSibling) : n.Group.parentNode[o](this.Group), dr(this, n, this.paper), this)
- };
- u[i].insertBefore = function(n) {
- return this.removed ? this : (n.Group.parentNode.insertBefore(this.Group, n.Group), gr(this, n, this.paper), this)
- };
- cu = / progid:\S+Blur\([^\)]+\)/g;
- u[i].blur = function(n) {
- var t = this.node.style,
- i = t.filter;
- i = i.replace(cu, ""); + n != 0 ? (this.attrs.blur = n, t.filter = i + ki + ".Blur(pixelradius=" + (+n || 1.5) + ")", t.margin = Raphael.format("-{0}px 0 0 -{0}px", Math.round(+n || 1.5))) : (t.filter = i, t.margin = 0, delete this.attrs.blur)
- };
- ru = function(n, t, i, r) {
- var e = it("group"),
- f = it("oval");
- return e.style.cssText = "position:absolute;left:0;top:0;width:" + n.width + "px;height:" + n.height + "px", e.coordsize = ui, e.coordorigin = n.coordorigin, e[o](f), f = new u(f, e, n), f.type = "circle", vt(f, {
- stroke: "#000",
- fill: "none"
- }), f.attrs.cx = t, f.attrs.cy = i, f.attrs.r = r, f.setBox({
- x: t - r,
- y: i - r,
- width: r * 2,
- height: r * 2
- }), n.canvas[o](e), f
- };
- function lu(t, i, r, u, f) {
- return f ? n.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z", t + f, i, r - f * 2, f, -f, u - f * 2, f * 2 - r, f * 2 - u) : n.format("M{0},{1}l{2},0,0,{3},{4},0z", t, i, r, u, -r)
- }
- uu = function(n, t, i, r, u, f) {
- var o = lu(t, i, r, u, f),
- e;
- return n = n.path(o), e = n.attrs, n.X = e.x = t, n.Y = e.y = i, n.W = e.width = r, n.H = e.height = u, e.r = f, e.path = o, n.type = "rect", n
- };
- fu = function(n, t, i, r, f) {
- var s = it("group"),
- e = it("oval");
- return s.style.cssText = "position:absolute;left:0;top:0;width:" + n.width + "px;height:" + n.height + "px", s.coordsize = ui, s.coordorigin = n.coordorigin, s[o](e), e = new u(e, s, n), e.type = "ellipse", vt(e, {
- stroke: "#000"
- }), e.attrs.cx = t, e.attrs.cy = i, e.attrs.rx = r, e.attrs.ry = f, e.setBox({
- x: t - r,
- y: i - f,
- width: r * 2,
- height: f * 2
- }), n.canvas[o](s), e
- };
- eu = function(n, t, i, r, f, e) {
- var h = it("group"),
- s = it("image");
- return h.style.cssText = "position:absolute;left:0;top:0;width:" + n.width + "px;height:" + n.height + "px", h.coordsize = ui, h.coordorigin = n.coordorigin, s.src = t, h[o](s), s = new u(s, h, n), s.type = "image", s.attrs.src = t, s.attrs.x = i, s.attrs.y = r, s.attrs.w = f, s.attrs.h = e, s.setBox({
- x: i,
- y: r,
- width: f,
- height: e
- }), n.canvas[o](h), s
- };
- ou = function(t, i, f, e) {
- var h = it("group"),
- c = it("shape"),
- s = c.style,
- l = it("path"),
- a = it("textpath");
- return h.style.cssText = "position:absolute;left:0;top:0;width:" + t.width + "px;height:" + t.height + "px", h.coordsize = ui, h.coordorigin = t.coordorigin, l.v = n.format("m{0},{1}l{2},{1}", v(i * 10), v(f * 10), v(i * 10) + 1), l.textpathok = !0, s.width = t.width, s.height = t.height, a.string = e + r, a.on = !0, c[o](a), c[o](l), h[o](c), s = new u(a, h, t), s.shape = c, s.textpath = l, s.type = "text", s.attrs.text = e, s.attrs.x = i, s.attrs.y = f, s.attrs.w = 1, s.attrs.h = 1, vt(s, {
- font: oi.font,
- stroke: "none",
- fill: "#000"
- }), s.setBox(), t.canvas[o](h), s
- };
- su = function(n, t) {
- var i = this.canvas.style;
- return n == +n && (n += "px"), t == +t && (t += "px"), i.width = n, i.height = t, i.clip = "rect(0 " + n + " " + t + " 0)", this
- };
- c.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");
- try {
- c.namespaces.rvml || c.namespaces.add("rvml", "urn:schemas-microsoft-com:vml");
- it = function(n) {
- return c.createElement("<rvml:" + n + ' class="rvml">')
- }
- } catch (pf) {
- it = function(n) {
- return c.createElement("<" + n + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')
- }
- }
- rr = function() {
- var i = wr[b](0, arguments),
- r = i.container,
- u = i.height,
- f = i.width,
- h = i.x;
- if (i = i.y, !r) throw new Error("VML container not found.");
- var t = new y,
- e = t.canvas = c.createElement("div"),
- s = e.style;
- return h = h || 0, i = i || 0, f = f || 512, u = u || 342, f == +f && (f += "px"), u == +u && (u += "px"), t.width = 1e3, t.height = 1e3, t.coordsize = ni * 1e3 + g + ni * 1e3, t.coordorigin = "0 0", t.span = c.createElement("span"), t.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;", e[o](t.span), s.cssText = n.format("width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", f, u), r == 1 ? (c.body[o](e), s.left = h + "px", s.top = i + "px", s.position = "absolute") : r.firstChild ? r.insertBefore(e, r.firstChild) : r[o](e), nr.call(t, t, n.fn), t
- };
- y[i].clear = function() {
- this.canvas.innerHTML = r;
- this.span = c.createElement("span");
- this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";
- this.canvas[o](this.span);
- this.bottom = this.top = null
- };
- y[i].remove = function() {
- this.canvas.parentNode.removeChild(this.canvas);
- for (var n in this) this[n] = nu(n);
- return !0
- }
- }
- for (y[i].safari = /^Apple|^Google/.test(st.navigator.vendor) && (!(st.navigator.userAgent.indexOf("Version/4.0") + 1) || st.navigator.platform.slice(0, 2) == "iP") ? function() {
- var n = this.rect(-99, -99, this.width + 99, this.height + 99);
- st.setTimeout(function() {
- n.remove()
- })
- } : function() {}, au = function() {
- return c.addEventListener ? function(n, t, i, r) {
- function f(u) {
- if (wi && bi[s](t))
- for (var f = 0, e = u.targetTouches && u.targetTouches.length; f < e; f++)
- if (u.targetTouches[f].target == n) {
- e = u;
- u = u.targetTouches[f];
- u.originalEvent = e;
- u.preventDefault = lf;
- u.stopPropagation = vf;
- break
- }
- return i.call(r, u)
- }
- var u = wi && bi[t] ? bi[t] : t;
- return n.addEventListener(u, f, !1),
- function() {
- return n.removeEventListener(u, f, !1), !0
- }
- } : c.attachEvent ? function(n, t, i, r) {
- function u(n) {
- return n = n || st.event, n.preventDefault = n.preventDefault || cf, n.stopPropagation = n.stopPropagation || af, i.call(r, n)
- }
- function f() {
- return n.detachEvent("on" + t, u), !0
- }
- return n.attachEvent("on" + t, u), f
- } : void 0
- }(), bt = hr[t]; bt--;)(function(r) {
- n[r] = u[i][r] = function(t) {
- return n.is(t, "function") && (this.events = this.events || [], this.events.push({
- name: r,
- f: t,
- unbind: au(this.shape || this.node || c, r, t, this)
- })), this
- };
- n["un" + r] = u[i]["un" + r] = function(n) {
- for (var i = this.events, u = i[t]; u--;)
- if (i[u].name == r && i[u].f == n) return i[u].unbind(), i.splice(u, 1), i.length || delete this.events, this;
- return this
- }
- })(hr[bt]);
- u[i].hover = function(n, t) {
- return this.mouseover(n).mouseout(t)
- };
- u[i].unhover = function(n, t) {
- return this.unmouseover(n).unmouseout(t)
- };
- u[i].drag = function(n, t, i) {
- function u(t) {
- var u = t.clientX,
- f = t.clientY,
- e, i;
- if (wi) {
- for (e = t.touches.length; e--;)
- if (i = t.touches[e], i.identifier == r._drag.id) {
- u = i.clientX;
- f = i.clientY;
- (t.originalEvent ? t.originalEvent : t).preventDefault();
- break
- }
- } else t.preventDefault();
- n && n.call(r, u - r._drag.x, f - r._drag.y, u, f)
- }
- function f() {
- r._drag = {};
- Raphael.unmousemove(u).unmouseup(f);
- i && i.call(r)
- }
- this._drag = {};
- var r = this.mousedown(function(n) {
- (n.originalEvent ? n.originalEvent : n).preventDefault();
- this._drag.x = n.clientX;
- this._drag.y = n.clientY;
- this._drag.id = n.identifier;
- t && t.call(this, n.clientX, n.clientY);
- Raphael.mousemove(u).mouseup(f)
- });
- return this
- };
- y[i].circle = function(n, t, i) {
- return ru(this, n || 0, t || 0, i || 0)
- };
- y[i].rect = function(n, t, i, r, u) {
- return uu(this, n || 0, t || 0, i || 0, r || 0, u || 0)
- };
- y[i].ellipse = function(n, t, i, r) {
- return fu(this, n || 0, t || 0, i || 0, r || 0)
- };
- y[i].path = function(t) {
- return !t || n.is(t, wt) || n.is(t[0], et) || (t += r), tu(n.format[b](n, arguments), this)
- };
- y[i].image = function(n, t, i, r, u) {
- return eu(this, n || "about:blank", t || 0, i || 0, r || 0, u || 0)
- };
- y[i].text = function(n, t, i) {
- return ou(this, n || 0, t || 0, i || r)
- };
- y[i].set = function(n) {
- return arguments[t] > 1 && (n = Array[i].splice.call(arguments, 0, arguments[t])), new ct(n)
- };
- y[i].setSize = su;
- y[i].top = y[i].bottom = null;
- y[i].raphael = n;
- u[i].resetScale = function() {
- if (this.removed) return this;
- this._.sx = 1;
- this._.sy = 1;
- this.attrs.scale = "1 1"
- };
- u[i].scale = function(n, i, u, f) {
- var a, o, h, nt, it, l, s, w;
- if (this.removed) return this;
- if (n == null && i == null) return {
- x: this._.sx,
- y: this._.sy,
- toString: vu
- };
- if (i = i || n, +i || (i = n), h = this.attrs, n != 0) {
- var c = this.getBBox(),
- v = c.x + c.width / 2,
- p = c.y + c.height / 2;
- a = n / this._.sx;
- o = i / this._.sy;
- u = +u || u == 0 ? u : v;
- f = +f || f == 0 ? f : p;
- c = ~~(n / e.abs(n));
- var y = ~~(i / e.abs(i)),
- rt = this.node.style,
- d = u + (v - u) * a;
- p = f + (p - f) * o;
- switch (this.type) {
- case "rect":
- case "image":
- nt = h.width * c * a;
- it = h.height * y * o;
- this.attr({
- height: it,
- r: h.r * lt(c * a, y * o),
- width: nt,
- x: d - nt / 2,
- y: p - it / 2
- });
- break;
- case "circle":
- case "ellipse":
- this.attr({
- rx: h.rx * c * a,
- ry: h.ry * y * o,
- r: h.r * lt(c * a, y * o),
- cx: d,
- cy: p
- });
- break;
- case "text":
- this.attr({
- x: d,
- y: p
- });
- break;
- case "path":
- v = gi(h.path);
- for (var ut = !0, b = 0, ft = v[t]; b < ft; b++)
- if (l = v[b], s = ei.call(l[0]), !(s == "M" && ut))
- if (ut = !1, s == "A") l[v[b][t] - 2] *= a, l[v[b][t] - 1] *= o, l[1] *= c * a, l[2] *= y * o, l[5] = +!(c + y ? !+l[5] : +l[5]);
- else if (s == "H")
- for (s = 1, w = l[t]; s < w; s++) l[s] *= a;
- else if (s == "V")
- for (s = 1, w = l[t]; s < w; s++) l[s] *= o;
- else
- for (s = 1, w = l[t]; s < w; s++) l[s] *= s % 2 ? a : o;
- o = ti(v);
- a = d - o.x - o.width / 2;
- o = p - o.y - o.height / 2;
- v[0][1] += a;
- v[0][2] += o;
- this.attr({
- path: v
- })
- }
- this.type in {
- text: 1,
- image: 1
- } && (c != 1 || y != 1) ? this.transformations ? (this.transformations[2] = "scale(" [k](c, ",", y, ")"), this.node[ot]("transform", this.transformations[tt](g)), a = c == -1 ? -h.x - (nt || 0) : h.x, o = y == -1 ? -h.y - (it || 0) : h.y, this.attr({
- x: a,
- y: o
- }), h.fx = c - 1, h.fy = y - 1) : (this.node.filterMatrix = ki + ".Matrix(M11=" [k](c, ", M12=0, M21=0, M22=", y, ", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"), rt.filter = (this.node.filterMatrix || r) + (this.node.filterOpacity || r)) : this.transformations ? (this.transformations[2] = r, this.node[ot]("transform", this.transformations[tt](g)), h.fx = 0, h.fy = 0) : (this.node.filterMatrix = r, rt.filter = (this.node.filterMatrix || r) + (this.node.filterOpacity || r));
- h.scale = [n, i, u, f][tt](g);
- this._.sx = n;
- this._.sy = i
- }
- return this
- };
- u[i].clone = function() {
- if (this.removed) return null;
- var n = this.attr();
- return delete n.scale, delete n.translation, this.paper[this.type]().attr(n)
- };
- ur = ut(function(t, i, r, u, f, e, o, s, h) {
- for (var y, a, v = 0, c = 0; c < 1.001; c += .001) {
- if (a = n.findDotsAtSegment(t, i, r, u, f, e, o, s, c), c && (v += l(l(y.x - a.x, 2) + l(y.y - a.y, 2), .5)), v >= h) return a;
- y = a
- }
- });
- var yf = ut(function(n, t, i, r, u, f, e, o) {
- for (var h, c = {
- x: 0,
- y: 0
- }, a = 0, s = 0; s < 1.01; s += .01) h = ii(n, t, i, r, u, f, e, o, s), s && (a += l(l(c.x - h.x, 2) + l(c.y - h.y, 2), .5)), c = h;
- return a
- }),
- yu = fr(1),
- vi = fr(),
- er = fr(0, 1);
- u[i].getTotalLength = function() {
- if (this.type == "path") return this.node.getTotalLength ? this.node.getTotalLength() : yu(this.attrs.path)
- };
- u[i].getPointAtLength = function(n) {
- if (this.type == "path") return vi(this.attrs.path, n)
- };
- u[i].getSubpath = function(n, t) {
- if (this.type == "path") return e.abs(this.getTotalLength() - t) < 1e-6 ? er(this.attrs.path, n).end : (t = er(this.attrs.path, t, 1), n ? er(t, n).end : t)
- };
- n.easing_formulas = {
- linear: function(n) {
- return n
- },
- "<": function(n) {
- return l(n, 3)
- },
- ">": function(n) {
- return l(n - 1, 3) + 1
- },
- "<>": function(n) {
- return (n *= 2, n < 1) ? l(n, 3) / 2 : (n -= 2, (l(n, 3) + 2) / 2)
- },
- backIn: function(n) {
- var t = 1.70158;
- return n * n * ((t + 1) * n - t)
- },
- backOut: function(n) {
- n -= 1;
- var t = 1.70158;
- return n * n * ((t + 1) * n + t) + 1
- },
- elastic: function(n) {
- if (n == 0 || n == 1) return n;
- var t = .3,
- i = t / 4;
- return l(2, -10 * n) * e.sin((n - i) * 2 * e.PI / t) + 1
- },
- bounce: function(n) {
- var i = 7.5625,
- t = 2.75;
- return n < 1 / t ? n = i * n * n : n < 2 / t ? (n -= 1.5 / t, n = i * n * n + .75) : n < 2.5 / t ? (n -= 2.25 / t, n = i * n * n + .9375) : (n -= 2.625 / t, n = i * n * n + .984375), n
- }
- };
- rt = {
- length: 0
- };
- u[i].animateWith = function(n, t, i, r, u) {
- return rt[n.id] && (t.start = rt[n.id].start), this.animate(t, i, r, u)
- };
- u[i].animateAlong = wu();
- u[i].animateAlongBack = wu(1);
- u[i].onAnimation = function(n) {
- return this._run = n || 0, this
- };
- u[i].animate = function(i, u, f, e) {
- var o, w, k;
- (n.is(f, "function") || !f) && (e = f || null);
- var l = {},
- y = {},
- a = {};
- for (o in i)
- if (i[s](o) && di[s](o)) {
- l[o] = this.attr(o);
- l[o] == null && (l[o] = oi[o]);
- y[o] = i[o];
- switch (di[o]) {
- case "along":
- var c = yu(i[o]),
- v = vi(i[o], c * !!i.back),
- b = this.getBBox();
- a[o] = c / u;
- a.tx = b.x;
- a.ty = b.y;
- a.sx = v.x;
- a.sy = v.y;
- y.rot = i.rot;
- y.back = i.back;
- y.len = c;
- i.rot && (a.r = h(this.rotate()) || 0);
- break;
- case nt:
- a[o] = (y[o] - l[o]) / u;
- break;
- case "colour":
- l[o] = n.getRGB(l[o]);
- c = n.getRGB(y[o]);
- a[o] = {
- r: (c.r - l[o].r) / u,
- g: (c.g - l[o].g) / u,
- b: (c.b - l[o].b) / u
- };
- break;
- case "path":
- for (c = ai(l[o], y[o]), l[o] = c[0], v = c[1], a[o] = [], c = 0, b = l[o][t]; c < b; c++)
- for (a[o][c] = [0], w = 1, k = l[o][c][t]; w < k; w++) a[o][c][w] = (v[c][w] - l[o][c][w]) / u;
- break;
- case "csv":
- v = (i[o] + r)[p](ft);
- c = (l[o] + r)[p](ft);
- switch (o) {
- case "translation":
- l[o] = [0, 0];
- a[o] = [v[0] / u, v[1] / u];
- break;
- case "rotation":
- l[o] = c[1] == v[1] && c[2] == v[2] ? c : [0, v[1], v[2]];
- a[o] = [(v[0] - l[o][0]) / u, 0, 0];
- break;
- case "scale":
- i[o] = v;
- l[o] = (l[o] + r)[p](ft);
- a[o] = [(v[0] - l[o][0]) / u, (v[1] - l[o][1]) / u, 0, 0];
- break;
- case "clip-rect":
- for (l[o] = (l[o] + r)[p](ft), a[o] = [], c = 4; c--;) a[o][c] = (v[c] - l[o][c]) / u
- }
- y[o] = v
- }
- }
- return this.stop(), this.in_animation = 1, rt[this.id] = {
- start: i.start || +new Date,
- ms: u,
- easing: f,
- from: l,
- diff: a,
- to: y,
- el: this,
- callback: e,
- t: {
- x: 0,
- y: 0
- }
- }, ++rt[t] == 1 && pu(), this
- };
- u[i].stop = function() {
- return rt[this.id] && rt[t]--, delete rt[this.id], this
- };
- u[i].translate = function(n, t) {
- return this.attr({
- translation: n + " " + t
- })
- };
- u[i][d] = function() {
- return "Raphaël’s object"
- };
- n.ae = rt;
- ct[i][a] = function() {
- for (var n, i, r = 0, f = arguments[t]; r < f; r++)(n = arguments[r]) && (n.constructor == u || n.constructor == ct) && (i = this.items[t], this[i] = this.items[i] = n, this[t]++);
- return this
- };
- ct[i].pop = function() {
- return delete this[this[t]--], this.items.pop()
- };
- for (pi in u[i]) u[i][s](pi) && (ct[i][pi] = function(n) {
- return function() {
- for (var i = 0, r = this.items[t]; i < r; i++) this.items[i][n][b](this.items[i], arguments);
- return this
- }
- }(pi));
- return ct[i].attr = function(i, r) {
- var u, f;
- if (i && n.is(i, et) && n.is(i[0], "object"))
- for (r = 0, u = i[t]; r < u; r++) this.items[r].attr(i[r]);
- else
- for (u = 0, f = this.items[t]; u < f; u++) this.items[u].attr(i, r);
- return this
- }, ct[i].animate = function(i, r, u, f) {
- (n.is(u, "function") || !u) && (f = u || null);
- var s = this.items[t],
- o = s,
- h, c = this,
- e;
- for (f && (e = function() {
- --s || f.call(c)
- }), u = n.is(u, wt) ? u : e, h = this.items[--o].animate(i, r, u, e); o--;) this.items[o].animateWith(h, i, r, u, e);
- return this
- }, ct[i].insertAfter = function(n) {
- for (var i = this.items[t]; i--;) this.items[i].insertAfter(n);
- return this
- }, ct[i].getBBox = function() {
- for (var n, i = [], r = [], u = [], f = [], e = this.items[t]; e--;) n = this.items[e].getBBox(), i[a](n.x), r[a](n.y), u[a](n.x + n.width), f[a](n.y + n.height);
- return i = lt[b](0, i), r = lt[b](0, r), {
- x: i,
- y: r,
- width: ht[b](0, u) - i,
- height: ht[b](0, f) - r
- }
- }, ct[i].clone = function(n) {
- n = new ct;
- for (var i = 0, r = this.items[t]; i < r; i++) n[a](this.items[i].clone());
- return n
- }, n.registerFont = function(n) {
- var i, t, u, r, f;
- if (!n.face) return n;
- this.fonts = this.fonts || {};
- i = {
- w: n.w,
- face: {},
- glyphs: {}
- };
- t = n.face["font-family"];
- for (u in n.face) n.face[s](u) && (i.face[u] = n.face[u]);
- if (this.fonts[t] ? this.fonts[t][a](i) : this.fonts[t] = [i], !n.svg) {
- i.face["units-per-em"] = pt(n.face["units-per-em"], 10);
- for (r in n.glyphs)
- if (n.glyphs[s](r) && (t = n.glyphs[r], i.glyphs[r] = {
- w: t.w,
- k: {},
- d: t.d && "M" + t.d[w](/[mlcxtrv]/g, function(n) {
- return {
- l: "L",
- c: "C",
- x: "z",
- t: "m",
- r: "l",
- v: "c"
- }[n] || "M"
- }) + "z"
- }, t.k))
- for (f in t.k) t[s](f) && (i.glyphs[r].k[f] = t.k[f])
- }
- return n
- }, y[i].getFont = function(i, u, f, e) {
- var h, o, c;
- if (e = e || "normal", f = f || "normal", u = +u || {
- normal: 400,
- bold: 700,
- lighter: 300,
- bolder: 800
- }[u] || 400, n.fonts) {
- if (h = n.fonts[i], !h) {
- i = new RegExp("(^|\\s)" + i[w](/[^\w\d\s+!~.:_-]/g, r) + "(\\s|$)", "i");
- for (o in n.fonts)
- if (n.fonts[s](o) && i.test(o)) {
- h = n.fonts[o];
- break
- }
- }
- if (h)
- for (o = 0, i = h[t]; o < i; o++)
- if (c = h[o], c.face["font-weight"] == u && (c.face["font-style"] == f || !c.face["font-style"]) && c.face["font-stretch"] == e) break;
- return c
- }
- }, y[i].print = function(i, u, f, e, o, s) {
- var h, b, l, v;
- s = s || "middle";
- var y = this.set(),
- c = (f + r)[p](r),
- w = 0;
- if (n.is(e, f) && (e = this.getFont(e)), e) {
- for (f = (o || 16) / e.face["units-per-em"], h = e.face.bbox.split(ft), o = +h[0], s = +h[1] + (s == "baseline" ? h[3] - h[1] + +e.face.descent : (h[3] - h[1]) / 2), h = 0, b = c[t]; h < b; h++) l = h && e.glyphs[c[h - 1]] || {}, v = e.glyphs[c[h]], w += h ? (l.w || e.w) + (l.k && l.k[c[h]] || 0) : 0, v && v.d && y[a](this.path(v.d).attr({
- fill: "#000",
- stroke: "none",
- translation: [w, 0]
- }));
- y.scale(f, f, o, s).translate(i - o, u - s)
- }
- return y
- }, bu = /\{(\d+)\}/g, n.format = function(i, u) {
- var f = n.is(u, et) ? [0][k](u) : arguments;
- return i && n.is(i, wt) && f[t] - 1 && (i = i[w](bu, function(n, t) {
- return f[++t] == null ? r : f[t]
- })), i || r
- }, n.ninja = function() {
- return sr.was ? Raphael = sr.is : delete Raphael, n
- }, n.el = u[i], n
- }();
- dateTimeFromServer = new Date;
- dateTimeFromClient = new Date;
- $(document).ready(function() {
- function n(n) {
- return n < 10 ? "0" + n.toString() : n.toString()
- }
- $(".multiMenu").hover(function() {
- mouse_is_inside = !0
- }, function() {
- mouse_is_inside = !1
- });
- $("body").mouseup(function() {
- mouse_is_inside || $(".multiMenu .layer").slideUp(function() {
- $(this).parent("div").removeClass("active")
- })
- });
- try {
- $.ajax({
- url: "/Home/BiezacaDataGodzina",
- type: "GET",
- async: !1,
- cache: !1,
- success: function(n) {
- dateTimeFromServer = new Date(parseInt(n.substr(6)));
- dateTimeFromClient = new Date
- }
- })
- } catch (t) {}
- setInterval(function() {
- var u = dateTimeFromServer - dateTimeFromClient,
- f = (new Date).getTime(),
- r = new Date,
- t, i;
- r.setTime(f + u);
- t = r;
- t.setDate(t.getDate());
- var e = t.getDate(),
- o = t.getMonth() + 1,
- s = t.getFullYear(),
- h = n(e) + " - " + n(o) + " - " + s;
- $("#date").html(h);
- i = r;
- i.setDate(i.getDate());
- var c = i.getHours(),
- l = i.getMinutes(),
- a = n(c) + ":" + n(l);
- $("#time").html(a)
- }, 1e3);
- $(".showDetails").click(function() {
- $(this).prev(".details").slideToggle();
- $(this).find(".gui").toggleClass("icoDArrDown icoDArrUp");
- $(this).toggleClass("act")
- });
- indirectStation()
- });
- mouse_is_inside = !1,
- function(n) {
- n.cookies = {
- render: function(t) {
- var i = "";
- i += '<div id="cookiesBar"><div id="cookiesBarWrap"><p>' + C_Cookie_Tekst_1;
- i += t.privacyPolicy ? ' <a href="' + t.cookiesPageURL + '" title="' + C_Cookie_PolitykaPrywatnosciTitle + '">' + C_Cookie_PolitykaPrywatnosci + "<\/a>.<\/p>" : ' <a href="' + t.cookiesPageURL + '" title="' + C_Cookie_RegulaminSerwisu + '">' + C_Cookie_RegulaminSerwisu + "<\/a>.<\/p>";
- i += "<p>" + C_Cookie_Tekst_2 + '<\/p><a id="cookiesBarClose" href="#" title="' + C_Cookie_Zamknij + '">' + C_Cookie_Zamknij + "<\/a><\/div><\/div>";
- n.cookie("cookie") || (n("body").append(i), n.fn.delegate ? n("#cookiesBar").delegate("#cookiesBarClose", "click", function(t) {
- n.cookies.closeCallback(t)
- }) : n("#cookiesBarClose").bind("click", function(t) {
- n.cookies.closeCallback(t)
- }))
- },
- closeCallback: function(t) {
- return n("#cookiesBar").fadeOut(), n.cookie("cookie") || n.cookie("cookie", !0, {
- path: "/",
- expires: 30
- }), t.preventDefault(), !1
- }
- }
- }(jQuery);
- String.prototype.replaceAll = function(n, t) {
- return this.split(n).join(t)
- };
- $.ajaxSetup({
- headers: {
- "X-Kendo-Ui-Version": "r3-2016-sp2"
- }
- });
- ! function(n) {
- function i() {
- var i = document.createElement("smartbanner"),
- n = {
- WebkitTransition: "webkitTransitionEnd",
- MozTransition: "transitionend",
- OTransition: "oTransitionEnd otransitionend",
- transition: "transitionend"
- };
- for (var t in n)
- if (i.style[t] !== undefined) return {
- end: n[t]
- };
- return !1
- }
- var t = function(t) {
- var f, i, r, u;
- if ((this.origHtmlMargin = parseFloat(n("html").css("margin-top")), this.options = n.extend({}, n.smartbanner.defaults, t), f = navigator.standalone, i = navigator.userAgent, this.options.force ? this.type = this.options.force : i.match(/Windows Phone 8/i) != null && i.match(/Touch/i) !== null ? this.type = "windows" : i.match(/iPhone|iPod/i) != null || i.match(/iPad/) && this.options.iOSUniversalApp ? i.match(/Safari/i) != null && (i.match(/CriOS/i) != null || window.Number(i.substr(i.indexOf("OS ") + 3, 3).replace("_", ".")) < 6) && (this.type = "ios") : i.match(/\bSilk\/(.*\bMobile Safari\b)?/) || i.match(/\bKF\w/) || i.match("Kindle Fire") ? this.type = "kindle" : i.match(/Android/i) != null && (this.type = "android"), this.type && !f && !this.getCookie("sb-closed") && !this.getCookie("sb-installed")) && (this.scale = this.options.scale == "auto" ? n(window).width() / window.screen.width : this.options.scale, this.scale < 1 && (this.scale = 1), r = n(this.type == "android" ? 'meta[name="google-play-app"]' : this.type == "ios" ? 'meta[name="apple-itunes-app"]' : this.type == "kindle" ? 'meta[name="kindle-fire-app"]' : 'meta[name="msApplication-ID"]'), r.length != 0)) {
- if (this.type == "windows") this.appId = n('meta[name="msApplication-PackageFamilyName"]').attr("content");
- else if (u = /app-id=([^\s,]+)/.exec(r.attr("content")), u) this.appId = u[1];
- else return;
- this.title = this.options.title ? this.options.title : r.data("title") || n("title").text().replace(/\s*[|\-·].*$/, "");
- this.author = this.options.author ? this.options.author : r.data("author") || (n('meta[name="author"]').length ? n('meta[name="author"]').attr("content") : window.location.hostname);
- this.iconUrl = r.data("icon-url");
- this.price = r.data("price");
- this.create();
- this.show();
- this.listen()
- }
- };
- (t.prototype = {
- constructor: t,
- create: function() {
- var t, i = this.options.url ? this.options.url : (this.type == "windows" ? "ms-windows-store:navigate?appid=" : this.type == "android" ? "market://details?id=" : this.type == "kindle" ? "amzn://apps/android?asin=" : "https://itunes.apple.com/" + this.options.appStoreLanguage + "/app/id") + this.appId,
- u = this.price || this.options.price,
- e = u ? u + " - " + (this.type == "android" ? this.options.inGooglePlay : this.type == "kindle" ? this.options.inAmazonAppStore : this.type == "ios" ? this.options.inAppStore : this.options.inWindowsStore) : "",
- f = this.options.iconGloss === null ? this.type == "ios" : this.options.iconGloss,
- r;
- this.type == "android" && this.options.GooglePlayParams && (i = i + "&referrer=" + this.options.GooglePlayParams);
- r = '<div id="smartbanner" class="' + this.type + '"><div class="sb-container"><a href="#" class="sb-close">×<\/a><span class="sb-icon"><\/span><div class="sb-info"><strong>' + this.title + "<\/strong><span>" + this.author + "<\/span><span>" + e + '<\/span><\/div><a href="' + i + '" class="sb-button"><span>' + this.options.button + "<\/span><\/a><\/div><\/div>";
- this.options.layer ? n(this.options.appendToSelector).append(r) : n(this.options.appendToSelector).prepend(r);
- this.options.icon ? t = this.options.icon : this.iconUrl ? t = this.iconUrl : n('link[rel="apple-touch-icon-precomposed"]').length > 0 ? (t = n('link[rel="apple-touch-icon-precomposed"]').attr("href"), this.options.iconGloss === null && (f = !1)) : n('link[rel="apple-touch-icon"]').length > 0 ? t = n('link[rel="apple-touch-icon"]').attr("href") : n('meta[name="msApplication-TileImage"]').length > 0 ? t = n('meta[name="msApplication-TileImage"]').attr("content") : n('meta[name="msapplication-TileImage"]').length > 0 && (t = n('meta[name="msapplication-TileImage"]').attr("content"));
- t ? (n("#smartbanner .sb-icon").css("background-image", "url(" + t + ")"), f && n("#smartbanner .sb-icon").addClass("gloss")) : n("#smartbanner").addClass("no-icon");
- this.bannerHeight = n("#smartbanner").outerHeight() + 2;
- this.scale > 1 && (n("#smartbanner").css("top", parseFloat(n("#smartbanner").css("top")) * this.scale).css("height", parseFloat(n("#smartbanner").css("height")) * this.scale).hide(), n("#smartbanner .sb-container").css("-webkit-transform", "scale(" + this.scale + ")").css("-msie-transform", "scale(" + this.scale + ")").css("-moz-transform", "scale(" + this.scale + ")").css("width", n(window).width() / this.scale));
- n("#smartbanner").css("position", this.options.layer ? "absolute" : "static")
- },
- listen: function() {
- n("#smartbanner .sb-close").on("click", n.proxy(this.close, this));
- n("#smartbanner .sb-button").on("click", n.proxy(this.install, this))
- },
- show: function(t) {
- var i = n("#smartbanner"),
- r;
- i.stop();
- this.options.layer ? (i.animate({
- top: 0,
- display: "block"
- }, this.options.speedIn).addClass("shown").show(), n(this.pushSelector).animate({
- paddingTop: this.origHtmlMargin + this.bannerHeight * this.scale
- }, this.options.speedIn, "swing", t)) : n.support.transition ? (i.animate({
- top: 0
- }, this.options.speedIn).addClass("shown"), r = function() {
- n("html").removeClass("sb-animation");
- t && t()
- }, n(this.pushSelector).addClass("sb-animation").one(n.support.transition.end, r).emulateTransitionEnd(this.options.speedIn).css("margin-top", this.origHtmlMargin + this.bannerHeight * this.scale)) : i.slideDown(this.options.speedIn).addClass("shown")
- },
- hide: function(t) {
- var i = n("#smartbanner"),
- r;
- i.stop();
- this.options.layer ? (i.animate({
- top: -1 * this.bannerHeight * this.scale,
- display: "block"
- }, this.options.speedIn).removeClass("shown"), n(this.pushSelector).animate({
- paddingTop: this.origHtmlMargin
- }, this.options.speedIn, "swing", t)) : n.support.transition ? (this.type !== "android" ? i.css("top", -1 * this.bannerHeight * this.scale).removeClass("shown") : i.css({
- display: "none"
- }).removeClass("shown"), r = function() {
- n("html").removeClass("sb-animation");
- t && t()
- }, n(this.pushSelector).addClass("sb-animation").one(n.support.transition.end, r).emulateTransitionEnd(this.options.speedOut).css("margin-top", this.origHtmlMargin)) : i.slideUp(this.options.speedOut).removeClass("shown")
- },
- close: function(n) {
- n.preventDefault();
- this.hide();
- this.setCookie("sb-closed", "true", this.options.daysHidden)
- },
- install: function() {
- this.options.hideOnInstall && this.hide();
- this.setCookie("sb-installed", "true", this.options.daysReminder)
- },
- setCookie: function(n, t, i) {
- var r = new Date;
- r.setDate(r.getDate() + i);
- t = encodeURI(t) + (i == null ? "" : "; expires=" + r.toUTCString());
- document.cookie = n + "=" + t + "; path=/;"
- },
- getCookie: function(n) {
- for (var r, u, i = document.cookie.split(";"), t = 0; t < i.length; t++)
- if (r = i[t].substr(0, i[t].indexOf("=")), u = i[t].substr(i[t].indexOf("=") + 1), r = r.replace(/^\s+|\s+$/g, ""), r == n) return decodeURI(u);
- return null
- },
- switchType: function() {
- var t = this;
- this.hide(function() {
- t.type = t.type == "android" ? "ios" : "android";
- var i = n(t.type == "android" ? 'meta[name="google-play-app"]' : 'meta[name="apple-itunes-app"]').attr("content");
- t.appId = /app-id=([^\s,]+)/.exec(i)[1];
- n("#smartbanner").detach();
- t.create();
- t.show()
- })
- }
- }, n.smartbanner = function(i) {
- var u = n(window),
- r = u.data("smartbanner"),
- f = typeof i == "object" && i;
- r || u.data("smartbanner", r = new t(f));
- typeof i == "string" && r[i]()
- }, n.smartbanner.defaults = {
- title: null,
- author: null,
- price: "FREE",
- appStoreLanguage: "us",
- inAppStore: "On the App Store",
- inGooglePlay: "In Google Play",
- inAmazonAppStore: "In the Amazon Appstore",
- inWindowsStore: "In the Windows Store",
- GooglePlayParams: null,
- icon: null,
- iconGloss: null,
- button: "VIEW",
- url: null,
- scale: "auto",
- speedIn: 300,
- speedOut: 400,
- daysHidden: 15,
- daysReminder: 90,
- force: null,
- hideOnInstall: !0,
- layer: !1,
- iOSUniversalApp: !0,
- appendToSelector: "body",
- pushSelector: "html"
- }, n.smartbanner.Constructor = t, n.support.transition === undefined) && (n.fn.emulateTransitionEnd = function(t) {
- var i = !1,
- u = this,
- r;
- n(this).one(n.support.transition.end, function() {
- i = !0
- });
- return r = function() {
- i || n(u).trigger(n.support.transition.end)
- }, setTimeout(r, t), this
- }, n(function() {
- n.support.transition = i()
- }):)
- }(window.jQuery)
|