edit_layers_timeline.js 247 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316
  1. /************************************************
  2. * REVOLUTION 5.4.6.4 EDIT LAYER TIMELINE JS
  3. * @version: 2.1 (06.03.2018)
  4. * @author ThemePunch
  5. ************************************************/
  6. /* perfect-scrollbar v0.6.11 */
  7. !function t(e,n,r){function o(l,a){if(!n[l]){if(!e[l]){var s="function"==typeof require&&require;if(!a&&s)return s(l,!0);if(i)return i(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[l]={exports:{}};e[l][0].call(u.exports,function(t){var n=e[l][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[l].exports}for(var i="function"==typeof require&&require,l=0;l<r.length;l++)o(r[l]);return o}({1:[function(t,e,n){"use strict";function r(t){t.fn.perfectScrollbar=function(t){return this.each(function(){if("object"==typeof t||"undefined"==typeof t){var e=t;i.get(this)||o.initialize(this,e)}else{var n=t;"update"===n?o.update(this):"destroy"===n&&o.destroy(this)}})}}var o=t("../main"),i=t("../plugin/instances");if("function"==typeof define&&define.amd)define(["jquery"],r);else{var l=window.jQuery?window.jQuery:window.$;"undefined"!=typeof l&&r(l)}e.exports=r},{"../main":7,"../plugin/instances":18}],2:[function(t,e,n){"use strict";function r(t,e){var n=t.className.split(" ");n.indexOf(e)<0&&n.push(e),t.className=n.join(" ")}function o(t,e){var n=t.className.split(" "),r=n.indexOf(e);r>=0&&n.splice(r,1),t.className=n.join(" ")}n.add=function(t,e){t.classList?t.classList.add(e):r(t,e)},n.remove=function(t,e){t.classList?t.classList.remove(e):o(t,e)},n.list=function(t){return t.classList?Array.prototype.slice.apply(t.classList):t.className.split(" ")}},{}],3:[function(t,e,n){"use strict";function r(t,e){return window.getComputedStyle(t)[e]}function o(t,e,n){return"number"==typeof n&&(n=n.toString()+"px"),t.style[e]=n,t}function i(t,e){for(var n in e){var r=e[n];"number"==typeof r&&(r=r.toString()+"px"),t.style[n]=r}return t}var l={};l.e=function(t,e){var n=document.createElement(t);return n.className=e,n},l.appendTo=function(t,e){return e.appendChild(t),t},l.css=function(t,e,n){return"object"==typeof e?i(t,e):"undefined"==typeof n?r(t,e):o(t,e,n)},l.matches=function(t,e){return"undefined"!=typeof t.matches?t.matches(e):"undefined"!=typeof t.matchesSelector?t.matchesSelector(e):"undefined"!=typeof t.webkitMatchesSelector?t.webkitMatchesSelector(e):"undefined"!=typeof t.mozMatchesSelector?t.mozMatchesSelector(e):"undefined"!=typeof t.msMatchesSelector?t.msMatchesSelector(e):void 0},l.remove=function(t){"undefined"!=typeof t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)},l.queryChildren=function(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return l.matches(t,e)})},e.exports=l},{}],4:[function(t,e,n){"use strict";var r=function(t){this.element=t,this.events={}};r.prototype.bind=function(t,e){"undefined"==typeof this.events[t]&&(this.events[t]=[]),this.events[t].push(e),this.element.addEventListener(t,e,!1)},r.prototype.unbind=function(t,e){var n="undefined"!=typeof e;this.events[t]=this.events[t].filter(function(r){return n&&r!==e?!0:(this.element.removeEventListener(t,r,!1),!1)},this)},r.prototype.unbindAll=function(){for(var t in this.events)this.unbind(t)};var o=function(){this.eventElements=[]};o.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return"undefined"==typeof e&&(e=new r(t),this.eventElements.push(e)),e},o.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},o.prototype.unbind=function(t,e,n){this.eventElement(t).unbind(e,n)},o.prototype.unbindAll=function(){for(var t=0;t<this.eventElements.length;t++)this.eventElements[t].unbindAll()},o.prototype.once=function(t,e,n){var r=this.eventElement(t),o=function(t){r.unbind(e,o),n(t)};r.bind(e,o)},e.exports=o},{}],5:[function(t,e,n){"use strict";e.exports=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}()},{}],6:[function(t,e,n){"use strict";var r=t("./class"),o=t("./dom"),i=n.toInt=function(t){return parseInt(t,10)||0},l=n.clone=function(t){if(null===t)return null;if(t.constructor===Array)return t.map(l);if("object"==typeof t){var e={};for(var n in t)e[n]=l(t[n]);return e}return t};n.extend=function(t,e){var n=l(t);for(var r in e)n[r]=l(e[r]);return n},n.isEditable=function(t){return o.matches(t,"input,[contenteditable]")||o.matches(t,"select,[contenteditable]")||o.matches(t,"textarea,[contenteditable]")||o.matches(t,"button,[contenteditable]")},n.removePsClasses=function(t){for(var e=r.list(t),n=0;n<e.length;n++){var o=e[n];0===o.indexOf("ps-")&&r.remove(t,o)}},n.outerWidth=function(t){return i(o.css(t,"width"))+i(o.css(t,"paddingLeft"))+i(o.css(t,"paddingRight"))+i(o.css(t,"borderLeftWidth"))+i(o.css(t,"borderRightWidth"))},n.startScrolling=function(t,e){r.add(t,"ps-in-scrolling"),"undefined"!=typeof e?r.add(t,"ps-"+e):(r.add(t,"ps-x"),r.add(t,"ps-y"))},n.stopScrolling=function(t,e){r.remove(t,"ps-in-scrolling"),"undefined"!=typeof e?r.remove(t,"ps-"+e):(r.remove(t,"ps-x"),r.remove(t,"ps-y"))},n.env={isWebKit:"WebkitAppearance"in document.documentElement.style,supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(t,e,n){"use strict";var r=t("./plugin/destroy"),o=t("./plugin/initialize"),i=t("./plugin/update");e.exports={initialize:o,update:i,destroy:r}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(t,e,n){"use strict";e.exports={handlers:["click-rail","drag-scrollbar","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0,suppressScrollX:!1,suppressScrollY:!1,swipePropagation:!0,useBothWheelAxes:!1,wheelPropagation:!1,wheelSpeed:1,theme:"default"}},{}],9:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),i=t("./instances");e.exports=function(t){var e=i.get(t);e&&(e.event.unbindAll(),o.remove(e.scrollbarX),o.remove(e.scrollbarY),o.remove(e.scrollbarXRail),o.remove(e.scrollbarYRail),r.removePsClasses(t),i.remove(t))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(t,e,n){"use strict";function r(t,e){function n(t){return t.getBoundingClientRect()}var r=function(t){t.stopPropagation()};e.settings.stopPropagationOnClick&&e.event.bind(e.scrollbarY,"click",r),e.event.bind(e.scrollbarYRail,"click",function(r){var i=o.toInt(e.scrollbarYHeight/2),s=e.railYRatio*(r.pageY-window.pageYOffset-n(e.scrollbarYRail).top-i),c=e.railYRatio*(e.railYHeight-e.scrollbarYHeight),u=s/c;0>u?u=0:u>1&&(u=1),a(t,"top",(e.contentHeight-e.containerHeight)*u),l(t),r.stopPropagation()}),e.settings.stopPropagationOnClick&&e.event.bind(e.scrollbarX,"click",r),e.event.bind(e.scrollbarXRail,"click",function(r){var i=o.toInt(e.scrollbarXWidth/2),s=e.railXRatio*(r.pageX-window.pageXOffset-n(e.scrollbarXRail).left-i),c=e.railXRatio*(e.railXWidth-e.scrollbarXWidth),u=s/c;0>u?u=0:u>1&&(u=1),a(t,"left",(e.contentWidth-e.containerWidth)*u-e.negativeScrollAdjustment),l(t),r.stopPropagation()})}var o=t("../../lib/helper"),i=t("../instances"),l=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){var e=i.get(t);r(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(t,e,n){"use strict";function r(t,e){function n(n){var o=r+n*e.railXRatio,l=Math.max(0,e.scrollbarXRail.getBoundingClientRect().left)+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);0>o?e.scrollbarXLeft=0:o>l?e.scrollbarXLeft=l:e.scrollbarXLeft=o;var a=i.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;c(t,"left",a)}var r=null,o=null,a=function(e){n(e.pageX-o),s(t),e.stopPropagation(),e.preventDefault()},u=function(){i.stopScrolling(t,"x"),e.event.unbind(e.ownerDocument,"mousemove",a)};e.event.bind(e.scrollbarX,"mousedown",function(n){o=n.pageX,r=i.toInt(l.css(e.scrollbarX,"left"))*e.railXRatio,i.startScrolling(t,"x"),e.event.bind(e.ownerDocument,"mousemove",a),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}function o(t,e){function n(n){var o=r+n*e.railYRatio,l=Math.max(0,e.scrollbarYRail.getBoundingClientRect().top)+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);0>o?e.scrollbarYTop=0:o>l?e.scrollbarYTop=l:e.scrollbarYTop=o;var a=i.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));c(t,"top",a)}var r=null,o=null,a=function(e){n(e.pageY-o),s(t),e.stopPropagation(),e.preventDefault()},u=function(){i.stopScrolling(t,"y"),e.event.unbind(e.ownerDocument,"mousemove",a)};e.event.bind(e.scrollbarY,"mousedown",function(n){o=n.pageY,r=i.toInt(l.css(e.scrollbarY,"top"))*e.railYRatio,i.startScrolling(t,"y"),e.event.bind(e.ownerDocument,"mousemove",a),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}var i=t("../../lib/helper"),l=t("../../lib/dom"),a=t("../instances"),s=t("../update-geometry"),c=t("../update-scroll");e.exports=function(t){var e=a.get(t);r(t,e),o(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&0>r)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===i&&0>n||i>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}var r=!1;e.event.bind(t,"mouseenter",function(){r=!0}),e.event.bind(t,"mouseleave",function(){r=!1});var l=!1;e.event.bind(e.ownerDocument,"keydown",function(c){if(!c.isDefaultPrevented||!c.isDefaultPrevented()){var u=i.matches(e.scrollbarX,":focus")||i.matches(e.scrollbarY,":focus");if(r||u){var d=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(d){if("IFRAME"===d.tagName)d=d.contentDocument.activeElement;else for(;d.shadowRoot;)d=d.shadowRoot.activeElement;if(o.isEditable(d))return}var p=0,f=0;switch(c.which){case 37:p=-30;break;case 38:f=30;break;case 39:p=30;break;case 40:f=-30;break;case 33:f=90;break;case 32:f=c.shiftKey?90:-90;break;case 34:f=-90;break;case 35:f=c.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:f=c.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}s(t,"top",t.scrollTop-f),s(t,"left",t.scrollLeft+p),a(t),l=n(p,f),l&&c.preventDefault()}}})}var o=t("../../lib/helper"),i=t("../../lib/dom"),l=t("../instances"),a=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){var e=l.get(t);r(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&0>r)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===i&&0>n||i>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}function r(t){var e=t.deltaX,n=-1*t.deltaY;return"undefined"!=typeof e&&"undefined"!=typeof n||(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),[e,n]}function o(e,n){var r=t.querySelector("textarea:hover, .ps-child:hover");if(r){if("TEXTAREA"!==r.tagName&&!window.getComputedStyle(r).overflow.match(/(scroll|auto)/))return!1;var o=r.scrollHeight-r.clientHeight;if(o>0&&!(0===r.scrollTop&&n>0||r.scrollTop===o&&0>n))return!0;var i=r.scrollLeft-r.clientWidth;if(i>0&&!(0===r.scrollLeft&&0>e||r.scrollLeft===i&&e>0))return!0}return!1}function a(a){var c=r(a),u=c[0],d=c[1];o(u,d)||(s=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(d?l(t,"top",t.scrollTop-d*e.settings.wheelSpeed):l(t,"top",t.scrollTop+u*e.settings.wheelSpeed),s=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(u?l(t,"left",t.scrollLeft+u*e.settings.wheelSpeed):l(t,"left",t.scrollLeft-d*e.settings.wheelSpeed),s=!0):(l(t,"top",t.scrollTop-d*e.settings.wheelSpeed),l(t,"left",t.scrollLeft+u*e.settings.wheelSpeed)),i(t),s=s||n(u,d),s&&(a.stopPropagation(),a.preventDefault()))}var s=!1;"undefined"!=typeof window.onwheel?e.event.bind(t,"wheel",a):"undefined"!=typeof window.onmousewheel&&e.event.bind(t,"mousewheel",a)}var o=t("../instances"),i=t("../update-geometry"),l=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(t,e,n){"use strict";function r(t,e){e.event.bind(t,"scroll",function(){i(t)})}var o=t("../instances"),i=t("../update-geometry");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19}],15:[function(t,e,n){"use strict";function r(t,e){function n(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function r(){c||(c=setInterval(function(){return i.get(t)?(a(t,"top",t.scrollTop+u.top),a(t,"left",t.scrollLeft+u.left),void l(t)):void clearInterval(c)},50))}function s(){c&&(clearInterval(c),c=null),o.stopScrolling(t)}var c=null,u={top:0,left:0},d=!1;e.event.bind(e.ownerDocument,"selectionchange",function(){t.contains(n())?d=!0:(d=!1,s())}),e.event.bind(window,"mouseup",function(){d&&(d=!1,s())}),e.event.bind(window,"mousemove",function(e){if(d){var n={x:e.pageX,y:e.pageY},i={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};n.x<i.left+3?(u.left=-5,o.startScrolling(t,"x")):n.x>i.right-3?(u.left=5,o.startScrolling(t,"x")):u.left=0,n.y<i.top+3?(i.top+3-n.y<5?u.top=-5:u.top=-20,o.startScrolling(t,"y")):n.y>i.bottom-3?(n.y-i.bottom+3<5?u.top=5:u.top=20,o.startScrolling(t,"y")):u.top=0,0===u.top&&0===u.left?s():r()}})}var o=t("../../lib/helper"),i=t("../instances"),l=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){var e=i.get(t);r(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(t,e,n){"use strict";function r(t,e,n,r){function o(n,r){var o=t.scrollTop,i=t.scrollLeft,l=Math.abs(n),a=Math.abs(r);if(a>l){if(0>r&&o===e.contentHeight-e.containerHeight||r>0&&0===o)return!e.settings.swipePropagation}else if(l>a&&(0>n&&i===e.contentWidth-e.containerWidth||n>0&&0===i))return!e.settings.swipePropagation;return!0}function s(e,n){a(t,"top",t.scrollTop-n),a(t,"left",t.scrollLeft-e),l(t)}function c(){Y=!0}function u(){Y=!1}function d(t){return t.targetTouches?t.targetTouches[0]:t}function p(t){return t.targetTouches&&1===t.targetTouches.length?!0:!(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE)}function f(t){if(p(t)){w=!0;var e=d(t);v.pageX=e.pageX,v.pageY=e.pageY,g=(new Date).getTime(),null!==y&&clearInterval(y),t.stopPropagation()}}function h(t){if(!w&&e.settings.swipePropagation&&f(t),!Y&&w&&p(t)){var n=d(t),r={pageX:n.pageX,pageY:n.pageY},i=r.pageX-v.pageX,l=r.pageY-v.pageY;s(i,l),v=r;var a=(new Date).getTime(),c=a-g;c>0&&(m.x=i/c,m.y=l/c,g=a),o(i,l)&&(t.stopPropagation(),t.preventDefault())}}function b(){!Y&&w&&(w=!1,clearInterval(y),y=setInterval(function(){return i.get(t)?Math.abs(m.x)<.01&&Math.abs(m.y)<.01?void clearInterval(y):(s(30*m.x,30*m.y),m.x*=.8,void(m.y*=.8)):void clearInterval(y)},10))}var v={},g=0,m={},y=null,Y=!1,w=!1;n&&(e.event.bind(window,"touchstart",c),e.event.bind(window,"touchend",u),e.event.bind(t,"touchstart",f),e.event.bind(t,"touchmove",h),e.event.bind(t,"touchend",b)),r&&(window.PointerEvent?(e.event.bind(window,"pointerdown",c),e.event.bind(window,"pointerup",u),e.event.bind(t,"pointerdown",f),e.event.bind(t,"pointermove",h),e.event.bind(t,"pointerup",b)):window.MSPointerEvent&&(e.event.bind(window,"MSPointerDown",c),e.event.bind(window,"MSPointerUp",u),e.event.bind(t,"MSPointerDown",f),e.event.bind(t,"MSPointerMove",h),e.event.bind(t,"MSPointerUp",b)))}var o=t("../../lib/helper"),i=t("../instances"),l=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){if(o.env.supportsTouch||o.env.supportsIePointer){var e=i.get(t);r(t,e,o.env.supportsTouch,o.env.supportsIePointer)}}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/class"),i=t("./instances"),l=t("./update-geometry"),a={"click-rail":t("./handler/click-rail"),"drag-scrollbar":t("./handler/drag-scrollbar"),keyboard:t("./handler/keyboard"),wheel:t("./handler/mouse-wheel"),touch:t("./handler/touch"),selection:t("./handler/selection")},s=t("./handler/native-scroll");e.exports=function(t,e){e="object"==typeof e?e:{},o.add(t,"ps-container");var n=i.add(t);n.settings=r.extend(n.settings,e),o.add(t,"ps-theme-"+n.settings.theme),n.settings.handlers.forEach(function(e){a[e](t)}),s(t),l(t)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(t,e,n){"use strict";function r(t){function e(){s.add(t,"ps-focus")}function n(){s.remove(t,"ps-focus")}var r=this;r.settings=a.clone(c),r.containerWidth=null,r.containerHeight=null,r.contentWidth=null,r.contentHeight=null,r.isRtl="rtl"===u.css(t,"direction"),r.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),r.negativeScrollAdjustment=r.isNegativeScroll?t.scrollWidth-t.clientWidth:0,r.event=new d,r.ownerDocument=t.ownerDocument||document,r.scrollbarXRail=u.appendTo(u.e("div","ps-scrollbar-x-rail"),t),r.scrollbarX=u.appendTo(u.e("div","ps-scrollbar-x"),r.scrollbarXRail),r.scrollbarX.setAttribute("tabindex",0),r.event.bind(r.scrollbarX,"focus",e),r.event.bind(r.scrollbarX,"blur",n),r.scrollbarXActive=null,r.scrollbarXWidth=null,r.scrollbarXLeft=null,r.scrollbarXBottom=a.toInt(u.css(r.scrollbarXRail,"bottom")),r.isScrollbarXUsingBottom=r.scrollbarXBottom===r.scrollbarXBottom,r.scrollbarXTop=r.isScrollbarXUsingBottom?null:a.toInt(u.css(r.scrollbarXRail,"top")),r.railBorderXWidth=a.toInt(u.css(r.scrollbarXRail,"borderLeftWidth"))+a.toInt(u.css(r.scrollbarXRail,"borderRightWidth")),u.css(r.scrollbarXRail,"display","block"),r.railXMarginWidth=a.toInt(u.css(r.scrollbarXRail,"marginLeft"))+a.toInt(u.css(r.scrollbarXRail,"marginRight")),u.css(r.scrollbarXRail,"display",""),r.railXWidth=null,r.railXRatio=null,r.scrollbarYRail=u.appendTo(u.e("div","ps-scrollbar-y-rail"),t),r.scrollbarY=u.appendTo(u.e("div","ps-scrollbar-y"),r.scrollbarYRail),r.scrollbarY.setAttribute("tabindex",0),r.event.bind(r.scrollbarY,"focus",e),r.event.bind(r.scrollbarY,"blur",n),r.scrollbarYActive=null,r.scrollbarYHeight=null,r.scrollbarYTop=null,r.scrollbarYRight=a.toInt(u.css(r.scrollbarYRail,"right")),r.isScrollbarYUsingRight=r.scrollbarYRight===r.scrollbarYRight,r.scrollbarYLeft=r.isScrollbarYUsingRight?null:a.toInt(u.css(r.scrollbarYRail,"left")),r.scrollbarYOuterWidth=r.isRtl?a.outerWidth(r.scrollbarY):null,r.railBorderYWidth=a.toInt(u.css(r.scrollbarYRail,"borderTopWidth"))+a.toInt(u.css(r.scrollbarYRail,"borderBottomWidth")),u.css(r.scrollbarYRail,"display","block"),r.railYMarginHeight=a.toInt(u.css(r.scrollbarYRail,"marginTop"))+a.toInt(u.css(r.scrollbarYRail,"marginBottom")),u.css(r.scrollbarYRail,"display",""),r.railYHeight=null,r.railYRatio=null}function o(t){return t.getAttribute("data-ps-id")}function i(t,e){t.setAttribute("data-ps-id",e)}function l(t){t.removeAttribute("data-ps-id")}var a=t("../lib/helper"),s=t("../lib/class"),c=t("./default-setting"),u=t("../lib/dom"),d=t("../lib/event-manager"),p=t("../lib/guid"),f={};n.add=function(t){var e=p();return i(t,e),f[e]=new r(t),f[e]},n.remove=function(t){delete f[o(t)],l(t)},n.get=function(t){return f[o(t)]}},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(t,e,n){"use strict";function r(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function o(t,e){var n={width:e.railXWidth};e.isRtl?n.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:n.left=t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-t.scrollTop:n.top=e.scrollbarXTop+t.scrollTop,a.css(e.scrollbarXRail,n);var r={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?r.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:r.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:r.left=e.scrollbarYLeft+t.scrollLeft,a.css(e.scrollbarYRail,r),a.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),a.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var i=t("../lib/helper"),l=t("../lib/class"),a=t("../lib/dom"),s=t("./instances"),c=t("./update-scroll");e.exports=function(t){var e=s.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight;var n;t.contains(e.scrollbarXRail)||(n=a.queryChildren(t,".ps-scrollbar-x-rail"),n.length>0&&n.forEach(function(t){a.remove(t)}),a.appendTo(e.scrollbarXRail,t)),t.contains(e.scrollbarYRail)||(n=a.queryChildren(t,".ps-scrollbar-y-rail"),n.length>0&&n.forEach(function(t){a.remove(t)}),a.appendTo(e.scrollbarYRail,t)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset<e.contentWidth?(e.scrollbarXActive=!0,e.railXWidth=e.containerWidth-e.railXMarginWidth,e.railXRatio=e.containerWidth/e.railXWidth,e.scrollbarXWidth=r(e,i.toInt(e.railXWidth*e.containerWidth/e.contentWidth)),e.scrollbarXLeft=i.toInt((e.negativeScrollAdjustment+t.scrollLeft)*(e.railXWidth-e.scrollbarXWidth)/(e.contentWidth-e.containerWidth))):e.scrollbarXActive=!1,!e.settings.suppressScrollY&&e.containerHeight+e.settings.scrollYMarginOffset<e.contentHeight?(e.scrollbarYActive=!0,e.railYHeight=e.containerHeight-e.railYMarginHeight,e.railYRatio=e.containerHeight/e.railYHeight,e.scrollbarYHeight=r(e,i.toInt(e.railYHeight*e.containerHeight/e.contentHeight)),e.scrollbarYTop=i.toInt(t.scrollTop*(e.railYHeight-e.scrollbarYHeight)/(e.contentHeight-e.containerHeight))):e.scrollbarYActive=!1,e.scrollbarXLeft>=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),o(t,e),e.scrollbarXActive?l.add(t,"ps-active-x"):(l.remove(t,"ps-active-x"),e.scrollbarXWidth=0,e.scrollbarXLeft=0,c(t,"left",0)),e.scrollbarYActive?l.add(t,"ps-active-y"):(l.remove(t,"ps-active-y"),e.scrollbarYHeight=0,e.scrollbarYTop=0,c(t,"top",0))}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(t,e,n){"use strict";var r,o,i=t("./instances"),l=document.createEvent("Event"),a=document.createEvent("Event"),s=document.createEvent("Event"),c=document.createEvent("Event"),u=document.createEvent("Event"),d=document.createEvent("Event"),p=document.createEvent("Event"),f=document.createEvent("Event"),h=document.createEvent("Event"),b=document.createEvent("Event");l.initEvent("ps-scroll-up",!0,!0),a.initEvent("ps-scroll-down",!0,!0),s.initEvent("ps-scroll-left",!0,!0),c.initEvent("ps-scroll-right",!0,!0),u.initEvent("ps-scroll-y",!0,!0),d.initEvent("ps-scroll-x",!0,!0),p.initEvent("ps-x-reach-start",!0,!0),f.initEvent("ps-x-reach-end",!0,!0),h.initEvent("ps-y-reach-start",!0,!0),b.initEvent("ps-y-reach-end",!0,!0),e.exports=function(t,e,n){if("undefined"==typeof t)throw"You must provide an element to the update-scroll function";if("undefined"==typeof e)throw"You must provide an axis to the update-scroll function";if("undefined"==typeof n)throw"You must provide a value to the update-scroll function";"top"===e&&0>=n&&(t.scrollTop=n=0,t.dispatchEvent(h)),"left"===e&&0>=n&&(t.scrollLeft=n=0,t.dispatchEvent(p));var v=i.get(t);"top"===e&&n>=v.contentHeight-v.containerHeight&&(n=v.contentHeight-v.containerHeight,n-t.scrollTop<=1?n=t.scrollTop:t.scrollTop=n,t.dispatchEvent(b)),"left"===e&&n>=v.contentWidth-v.containerWidth&&(n=v.contentWidth-v.containerWidth,n-t.scrollLeft<=1?n=t.scrollLeft:t.scrollLeft=n,t.dispatchEvent(f)),r||(r=t.scrollTop),o||(o=t.scrollLeft),"top"===e&&r>n&&t.dispatchEvent(l),"top"===e&&n>r&&t.dispatchEvent(a),"left"===e&&o>n&&t.dispatchEvent(s),"left"===e&&n>o&&t.dispatchEvent(c),"top"===e&&(t.scrollTop=r=n,t.dispatchEvent(u)),"left"===e&&(t.scrollLeft=o=n,t.dispatchEvent(d))}},{"./instances":18}],21:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),i=t("./instances"),l=t("./update-geometry"),a=t("./update-scroll");e.exports=function(t){var e=i.get(t);e&&(e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,o.css(e.scrollbarXRail,"display","block"),o.css(e.scrollbarYRail,"display","block"),e.railXMarginWidth=r.toInt(o.css(e.scrollbarXRail,"marginLeft"))+r.toInt(o.css(e.scrollbarXRail,"marginRight")),e.railYMarginHeight=r.toInt(o.css(e.scrollbarYRail,"marginTop"))+r.toInt(o.css(e.scrollbarYRail,"marginBottom")),o.css(e.scrollbarXRail,"display","none"),o.css(e.scrollbarYRail,"display","none"),l(t),a(t,"top",t.scrollTop),a(t,"left",t.scrollLeft),o.css(e.scrollbarXRail,"display",""),o.css(e.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
  8. // AUDIO CONTEXT
  9. window.AudioContext = window.AudioContext || window.webkitAudioContext ;
  10. if (window.AudioContext) {
  11. var audioContext = new AudioContext(),
  12. audiosource = audioContext.createBufferSource(); // creates a sound source
  13. } else {
  14. audiosource = null;
  15. }
  16. /*****************************************************
  17. - THE TIME LINE AND ANIMATION FUNCTIONS -
  18. *****************************************************/
  19. var tpLayerTimelinesRev = new function(){
  20. var t = this,
  21. u = new Object(),
  22. sortMode = "time",
  23. __ctime,
  24. __ctimeb,
  25. __ctimei ,
  26. __coffset = 0;
  27. t.timelinetype ="absolute";
  28. t.mainMaxTimeLeft = 0;
  29. t.layout="desktop";
  30. t.timercorrectur = 0;
  31. /***********************************************************
  32. - INITIALISE THE TIMELINE AND ANIMATION ELEMENTS -
  33. ***********************************************************/
  34. t.init = function() {
  35. u = UniteLayersRev;
  36. g_rebuildTimer =999;
  37. g_slideTime = u.getMaintime();
  38. g_keyTimer = 0;
  39. t.mainMaxTimeLeft = jQuery('#mastertimer-maxtime').position().left;
  40. initSlideDuration();
  41. initSortbox();
  42. initMasterTimer();
  43. preparePeviewAnimations();
  44. prepareLoopAnimations();
  45. showHideTimeines();
  46. basicClicksAndHovers();
  47. addIconFunction();
  48. t.addToSortbox();
  49. //jQuery('.master-rightcell .layers-wrapper, .master-leftcell .layers-wrapper, #divLayers-wrapper').perfectScrollbar("update");
  50. jQuery('#slide_transition, #slot_amount, #transition_rotation').change(function() {
  51. setFakeAnim();
  52. });
  53. var timer;
  54. jQuery(window).resize(function() {
  55. clearTimeout(timer);
  56. timer = setTimeout(function(){
  57. t.resetSlideAnimations(false);
  58. },250);
  59. });
  60. var keyboardallowed = false;
  61. jQuery('#thelayer-editor-wrapper').hover(function() {
  62. keyboardallowed = true;
  63. },function() {
  64. keyboardallowed = false;
  65. })
  66. jQuery('#fake-select-title-wrapper').click(function() {
  67. jQuery('#slide-animation-settings-content-tab').click();
  68. jQuery('html,body').animate({scrollTop: (-100 + jQuery('#slide-animation-settings-content-tab').offset().top)},200);
  69. })
  70. jQuery('.slide-trans-menu-element').each(function() {
  71. var b = jQuery(this);
  72. b.text(b.text().toLowerCase());
  73. b.click(function() {
  74. var b = jQuery(this);
  75. jQuery('.slide-trans-menu-element').removeClass("selected");
  76. b.addClass("selected");
  77. jQuery('.slide-trans-checkelement').hide();
  78. jQuery("."+b.data('reference')).show();
  79. });
  80. });
  81. jQuery('.slide-trans-menu-element').first().click();
  82. var createListOfTrans = function() {
  83. var c = jQuery('.slide-trans-cur-ul');
  84. for(var key in choosen_slide_transition){
  85. var data_string = '';
  86. data_string+= ' data-duration="'+transition_settings['duration'][key]+'"';
  87. data_string+= ' data-ease_in="'+transition_settings['ease_in'][key]+'"';
  88. data_string+= ' data-ease_out="'+transition_settings['ease_out'][key]+'"';
  89. data_string+= ' data-rotation="'+transition_settings['rotation'][key]+'"';
  90. data_string+= ' data-slot="'+transition_settings['slot'][key]+'"';
  91. c.append('<li value="'+choosen_slide_transition[key]+'"'+data_string+' class="justaddedtrans draggable-trans-element">'+jQuery('input[name="slide_transition[]"][value="'+choosen_slide_transition[key]+'"]').parent().text()+'<i class="remove-trans-from-list eg-icon-cancel"></i></li>');
  92. jQuery('.justaddedtrans').data('animval',choosen_slide_transition[key]);
  93. jQuery('.justaddedtrans').removeClass("justaddedtrans");
  94. }
  95. setFakeAnim();
  96. };
  97. if(typeof(choosen_slide_transition) !== 'undefined'){ //if not exists, then we are at static slide
  98. createListOfTrans();
  99. }
  100. var etl = new punchgs.TimelineLite(),
  101. ord = 0,
  102. sto = jQuery('#form_slide_params').offset(),
  103. tou;
  104. jQuery('body').on('click','.remove-trans-from-list',function() {
  105. var t = jQuery(this),
  106. li = t.parent(),
  107. v = li.data('animval'),
  108. found = false;
  109. jQuery('.slide-trans-checkelement').each(function() {
  110. var d = jQuery(this),
  111. inp = d.find('input');
  112. if (inp.val()==v) {
  113. inp.removeAttr('checked');
  114. found = true;
  115. }
  116. });
  117. if (found && jQuery('.remove-trans-from-list').length>1) {
  118. li.remove();
  119. jQuery('.slide-trans-cur-ul li:first-child').click();
  120. }else{
  121. alert(rev_lang.cant_remove_last_transition);
  122. }
  123. return false;
  124. });
  125. jQuery('.slide-trans-checkelement').on("mouseover", function(e) {
  126. var inp = jQuery(this).find('input[name="slide_transition[]"]'),
  127. a = jQuery('.slide-trans-example-inner .slotholder'),
  128. b = jQuery('.slide-trans-example-inner .oldslotholder'),
  129. examp = jQuery('.slide-trans-example');
  130. a.find('.slot').each(function() { jQuery(this).remove();});
  131. b.find('.slot').each(function() { jQuery(this).remove();});
  132. etl.kill()
  133. punchgs.TweenLite.set(a,{clearProps:"transform"});
  134. punchgs.TweenLite.set(b,{clearProps:"transform"});
  135. punchgs.TweenLite.set(a.find('.defaultimg'),{clearProps:"transform",autoAlpha:1});
  136. punchgs.TweenLite.set(b.find('.defaultimg'),{clearProps:"transform",autoAlpha:1});
  137. etl = slideAnimation(a, b,inp.val(),etl,true);
  138. etl.pause(0.001);
  139. punchgs.TweenLite.to(examp,0.2,{top:(e.pageY - sto.top),overwrite:"all",autoAlpha:1,ease:punchgs.Power3.easeInOut,onComplete:function() {
  140. setTimeout(function() {
  141. etl.play();
  142. },100);
  143. }});
  144. });
  145. jQuery('.slide-trans-checkelement').on("mouseleave",function() {
  146. clearTimeout(tou);
  147. var inp = jQuery(this).find('input[name="slide_transition[]"]'),
  148. a = jQuery('.slide-trans-example-inner .slotholder'),
  149. b = jQuery('.slide-trans-example-inner .oldslotholder');
  150. punchgs.TweenLite.to(jQuery('.slide-trans-example'),0.2,{autoAlpha:0,delay:0.2});
  151. });
  152. jQuery('input[name="slide_transition[]"]').on("change",function() {
  153. if (jQuery(this).is(":checked")) {
  154. var data_string = '';
  155. data_string+= ' data-duration="default"';
  156. data_string+= ' data-ease_in="default"';
  157. data_string+= ' data-ease_out="default"';
  158. data_string+= ' data-rotation="0"';
  159. data_string+= ' data-slot="default"';
  160. jQuery('.slide-trans-cur-ul').append('<li value="'+jQuery(this).val()+'"'+data_string+' class="justaddedtrans draggable-trans-element">'+jQuery(this).parent().text()+'<i class="remove-trans-from-list eg-icon-cancel"></i></li>')
  161. jQuery('.justaddedtrans').data('animval',jQuery(this).val());
  162. jQuery('.justaddedtrans').removeClass("justaddedtrans");
  163. } else {
  164. if (jQuery('.remove-trans-from-list').length>1) {
  165. jQuery('.slide-trans-cur-ul').find('li:data[value='+jQuery(this).val()+']').remove();
  166. jQuery('.slide-trans-cur-ul li:first-child').click();
  167. }else{
  168. jQuery(this).attr('checked', true);
  169. alert(rev_lang.cant_remove_last_transition);
  170. }
  171. }
  172. setFakeAnim();
  173. });
  174. jQuery('body').on('click', '.slide-trans-cur-ul li', function(){
  175. jQuery('.slide-trans-cur-ul li').each(function(){
  176. jQuery(this).removeClass('selected');
  177. });
  178. jQuery(this).addClass('selected');
  179. jQuery('input[name="slot_amount"]').val(jQuery(this).data('slot'));
  180. jQuery('input[name="transition_rotation"]').val(jQuery(this).data('rotation'));
  181. jQuery('input[name="transition_duration"]').val(jQuery(this).data('duration'));
  182. jQuery('select[name="transition_ease_in"] option[value="'+jQuery(this).data('ease_in')+'"]').attr('selected', true);
  183. jQuery('select[name="transition_ease_out"] option[value="'+jQuery(this).data('ease_out')+'"]').attr('selected', true);
  184. });
  185. jQuery('.slide-trans-cur-ul li:first-child').click();
  186. jQuery('input[name="slot_amount"]').change(function(){
  187. jQuery('.slide-trans-cur-ul li.selected').data('slot', jQuery(this).val());
  188. });
  189. jQuery('input[name="transition_rotation"]').change(function(){
  190. jQuery('.slide-trans-cur-ul li.selected').data('rotation', jQuery(this).val());
  191. });
  192. jQuery('#transition_duration').change(function(){
  193. jQuery('.slide-trans-cur-ul li.selected').data('duration', jQuery(this).val());
  194. t.setSlideTransitionTimerBar();
  195. });
  196. jQuery('#delay').change(function(){
  197. t.mainMaxTimeLeft = this.value / 10;
  198. t.setSlideTransitionTimerBar();
  199. });
  200. jQuery('select[name="transition_ease_in"]').change(function(){
  201. jQuery('.slide-trans-cur-ul li.selected').data('ease_in', jQuery(this).val());
  202. });
  203. jQuery('select[name="transition_ease_out"]').change(function(){
  204. jQuery('.slide-trans-cur-ul li.selected').data('ease_out', jQuery(this).val());
  205. });
  206. jQuery('.slide-trans-cur-ul').sortable({
  207. containment: ".slide-trans-cur-selected",
  208. stop:function() {
  209. setTimeout(function() {
  210. setFakeAnim();
  211. },200);
  212. }
  213. })
  214. jQuery('#abs_rel_timeline').on('change',function() {
  215. t.timelinetype = jQuery(this).val();
  216. t.updateAllLayerTimeline();
  217. })
  218. // END OF MAIN TRANSITION SELECTOR
  219. jQuery(document).on('keydown', function(event) {
  220. var noinputfocus = jQuery('input:focus').length>0;
  221. if (event.ctrlKey || event.metaKey || event.shiftKey) {
  222. switch (String.fromCharCode(event.which).toLowerCase()) {
  223. case 's':
  224. if (!event.shiftKey) {
  225. event.preventDefault();
  226. if (jQuery('#button_save_static_slide-tb').length>0)
  227. jQuery('#button_save_static_slide-tb').click();
  228. else
  229. jQuery('#button_save_slide-tb').click();
  230. }
  231. break;
  232. case 'z':
  233. if ((event.metaKey || event.ctrlKey) && !noinputfocus) {
  234. event.preventDefault();
  235. if (event.shiftKey)
  236. u.oneStepRedo();
  237. else
  238. u.oneStepUndo();
  239. }
  240. break;
  241. case 'y':
  242. if ((event.ctrlKey || event.metaKey) && !noinputfocus) {
  243. event.preventDefault();
  244. u.oneStepRedo();
  245. }
  246. break;
  247. }
  248. }
  249. switch (event) {
  250. }
  251. });
  252. jQuery("body").on("keydown keyup",function(e) {
  253. if (jQuery('#layer_text').is(":focus")) return true;
  254. if (jQuery('#layer_text_toggle').is(":focus")) return true;
  255. var code = (e.keyCode ? e.keyCode : e.which),
  256. dist = jQuery(document.activeElement).data('steps')!=undefined ? parseFloat(jQuery(document.activeElement).data('steps')):1,
  257. x = Number(parseInt(jQuery('#layer_left').val(),0)),
  258. y = Number(parseInt(jQuery('#layer_top').val(),0));
  259. if (e.shiftKey) dist = dist*10;
  260. switch (jQuery(document.activeElement).get(0).tagName.toLowerCase()) {
  261. case "INPUT":
  262. case "input":
  263. var cv = parseFloat(jQuery(document.activeElement).val());
  264. if (jQuery(document.activeElement).data('suffix')!=undefined && !jQuery(document.activeElement).data('suffix').match(/auto/g)) {
  265. cv=Number(cv);
  266. if (jQuery.isNumeric(cv))
  267. switch(code) {
  268. case 38:
  269. if (e.type=="keyup") reBlurFocus(dist,cv,jQuery(document.activeElement));
  270. return false;
  271. break;
  272. case 40:
  273. if (e.type=="keyup") reBlurFocus(-dist,cv,jQuery(document.activeElement));
  274. return false;
  275. break;
  276. }
  277. }
  278. break;
  279. case "textarea":
  280. return true;
  281. break;
  282. default:
  283. switch(code) {
  284. case 8:
  285. case 46:
  286. e.preventDefault();
  287. if (e.type=="keydown") {
  288. jQuery('#button_delete_layer').click();
  289. window.deletecalled = true;
  290. }
  291. break;
  292. }
  293. if (keyboardallowed)
  294. switch(code) {
  295. case 40:
  296. if (e.type=="keyup")
  297. setTimeout(function() {u.updateMovedLayers()},50);
  298. else
  299. u.adjustSelectedLayerPositions("top",dist);
  300. return false;
  301. break;
  302. case 38:
  303. if (e.type=="keyup")
  304. setTimeout(function() {u.updateMovedLayers();},50);
  305. else
  306. u.adjustSelectedLayerPositions("top",-1*dist);
  307. return false;
  308. break;
  309. case 37:
  310. if (e.type=="keyup")
  311. setTimeout(function() {u.updateMovedLayers();},50);
  312. else
  313. u.adjustSelectedLayerPositions("left",-1*dist);
  314. return false;
  315. break;
  316. case 39:
  317. if (e.type=="keyup")
  318. setTimeout(function() {u.updateMovedLayers();},50);
  319. else
  320. u.adjustSelectedLayerPositions("left",dist);
  321. return false;
  322. break;
  323. }
  324. break;
  325. }
  326. });
  327. t.deepSelection();
  328. // DEEP LINK INPUT FIELD ADD ONS
  329. jQuery('.input-deepselects').each(function() {
  330. var inp = jQuery(this);
  331. inp.wrap('<span class="inp-deep-wrapper"></span>');
  332. inp.parent().append('<div class="inp-deep-list"></div>');
  333. var dl = inp.parent().find('.inp-deep-list'),
  334. txt = '<span class="inp-deep-listitems">',
  335. rev = inp.data('reverse'),
  336. minw = inp.data('deepwidth'),
  337. list = inp.data('selects') != undefined ? inp.data('selects').split("||") : "",
  338. vals = inp.data('svalues') != undefined ? inp.data('svalues').split("||") : "",
  339. icos = inp.data('icons') != undefined ? inp.data('icons').split("||") : "",
  340. id = inp.attr('id');
  341. if (minw!==undefined)
  342. punchgs.TweenLite.set(dl,{minWidth:minw+"px"});
  343. if (rev=="on") {
  344. txt = txt+"<span class='reverse_input_wrapper'><span class='reverse_input_text'>Direction Auto Reverse</span><input class='reverse_input_check tp-moderncheckbox' name='"+id+"_reverse' id='"+id+"_reverse' type='checkbox'></span>";
  345. }
  346. if (list!==undefined && list!="") {
  347. jQuery.each(list,function(i){
  348. var v = vals[i] || "",
  349. l = list[i] || "",
  350. i = icos[i] || "";
  351. txt = txt + "<span class='inp-deep-prebutton' data-val='"+v+"'><i class='eg-icon-"+i+"'></i>"+l+"</span>";
  352. });
  353. }
  354. txt = txt + "</span>";
  355. dl.append(txt);
  356. if (rev=="on") {
  357. RevSliderSettings.onoffStatus(jQuery('input[name="'+id+'_reverse"]'));
  358. }
  359. })
  360. jQuery('body').on('click','.inp-deep-prebutton',function() {
  361. var btn = jQuery(this),
  362. inp = btn.closest('.inp-deep-wrapper').find('input');
  363. inp.val(btn.data('val'));
  364. inp.blur();
  365. inp.focus();
  366. inp.trigger("change");
  367. });
  368. jQuery('body').on('click','.input-deepselects',function() {
  369. jQuery(this).closest('.inp-deep-wrapper').find('.inp-deep-list').addClass("visible");
  370. jQuery(this).closest('.inp-deep-wrapper').addClass("selected-deep-wrapper");
  371. })
  372. jQuery('.inp-deep-wrapper').on('mouseleave',function() {
  373. jQuery(this).find('.inp-deep-list').removeClass("visible");
  374. jQuery(this).removeClass("selected-deep-wrapper");
  375. });
  376. // SHOW HIDE MASKING PARAMETERS
  377. jQuery('input[name="masking-start"]').on("change",function() {
  378. if (jQuery(this).attr('checked') ==="checked")
  379. jQuery('.mask-start-settings').show();
  380. else
  381. jQuery('.mask-start-settings').hide();
  382. })
  383. jQuery('input[name="masking-end"]').on("change",function() {
  384. if (jQuery(this).attr('checked') ==="checked")
  385. jQuery('.mask-end-settings').show();
  386. else
  387. jQuery('.mask-end-settings').hide();
  388. });
  389. jQuery('#use_text_color_start').on("change",function() {
  390. if (jQuery(this).attr('checked') === "checked")
  391. jQuery('.use_text_color_wrap_start').show();
  392. else
  393. jQuery('.use_text_color_wrap_start').hide();
  394. });
  395. jQuery('#use_bg_color_start').on("change",function() {
  396. if (jQuery(this).attr('checked') === "checked")
  397. jQuery('.use_bg_color_wrap_start').show();
  398. else
  399. jQuery('.use_bg_color_wrap_start').hide();
  400. });
  401. jQuery('#use_text_color_end').on("change",function() {
  402. if (jQuery(this).attr('checked') === "checked")
  403. jQuery('.use_text_color_wrap_end').show();
  404. else
  405. jQuery('.use_text_color_wrap_end').hide();
  406. });
  407. jQuery('#use_bg_color_end').on("change",function() {
  408. if (jQuery(this).attr('checked') === "checked")
  409. jQuery('.use_bg_color_wrap_end').show();
  410. else
  411. jQuery('.use_bg_color_wrap_end').hide();
  412. });
  413. // OPEN QUICK TIME LINE INPUT FIELDS
  414. jQuery('body').on('click','.show_timeline_helper',function() {
  415. var btn = jQuery(this),
  416. li = btn.closest('li'),
  417. tf = btn.closest('.timeline_frame'),
  418. d = jQuery('#timline-manual-dialog'),
  419. pl = tf.position().left,
  420. lw = li.width(),
  421. fi = tf.data('frameindex'),
  422. objLayer = u.getLayerByUniqueId(li.data('uniqueid')),
  423. st = objLayer.frames["frame_"+fi].time,
  424. sp = objLayer.frames["frame_"+fi].speed;
  425. d.appendTo(li);
  426. pl = fi===999 ? (pl-d.width()+tf.width()-20) : fi===0 ? pl : (pl-d.width()/2)+10;
  427. pl = pl<20 ? 20 : pl;
  428. d.css({left:pl});
  429. // Update Frame Start and Speed in Quick Editor
  430. jQuery('#clayer_start_time').val(st)
  431. jQuery('#clayer_start_speed').val(sp)
  432. d.data('frameindex',fi);
  433. d.data('uniqueid',objLayer.unique_id);
  434. d.show();
  435. })
  436. // CLOSE QUICK TIME LINE INPUT FIELDS
  437. jQuery('body').on('click','#timline-manual-closer',function() {
  438. var d = jQuery('#timline-manual-dialog');
  439. d.hide();
  440. d.appendTo(jQuery('#thelayer-editor-wrapper'));
  441. });
  442. jQuery('body').on('click','#timline-manual-apply',function() {
  443. var btn = jQuery(this),
  444. d = jQuery('#timline-manual-dialog'),
  445. fi = d.data('frameindex'),
  446. frame = document.getElementById("tl_"+d.data('uniqueid')+"_frame_"+fi)
  447. objLayer = u.getLayerByUniqueId(d.data('uniqueid')),
  448. objUpdate = {frames:{}};
  449. t.recordFrameStatus(frame);
  450. objUpdate.frames["frame_"+fi] = {};
  451. objUpdate.frames["frame_"+fi].time = jQuery('#clayer_start_time').val();
  452. objUpdate.frames["frame_"+fi].speed = jQuery('#clayer_start_speed').val();
  453. d.hide();
  454. d.appendTo(jQuery('#thelayer-editor-wrapper'));
  455. u.updateLayer(objLayer.serial,objUpdate);
  456. t.updateLayerTimeline(objLayer);
  457. t.updateTLFrame(frame,"trigger");
  458. t.updateAllSelectedLayerTimeline(frame);
  459. t.updateAllLayerTimeline(); //PERFORMANCE WIN, ONLY CALL IF LAYER IS A GROUP OR COLUMN ETC...
  460. });
  461. // SELECT / DESELECT ALL LAYERS
  462. jQuery('body').on('click','#timing-all-onoff-checkbox',function() {
  463. var b = jQuery(this),
  464. objUpdate = {};
  465. if (b.attr('checked')!="checked" || jQuery('.mastertimer-timeline-selector-row.selected').length==jQuery('.layer-on-timeline-selector').length) {
  466. jQuery('.mastertimer-timeline-selector-row.selected').removeClass("selected");
  467. jQuery('.layer-on-timeline-selector').removeAttr('checked');
  468. } else {
  469. jQuery('.layer-on-timeline-selector').attr('checked','checked');
  470. jQuery('.sortable_elements .mastertimer-timeline-selector-row').addClass("selected");
  471. }
  472. t.checkMultipleSelectedItems();
  473. checkAvailableAutoTimes();
  474. });
  475. jQuery('body').on('click','.list-of-layer-links', function() {
  476. jQuery(this).toggleClass("showmenow");
  477. });
  478. jQuery('body').on('click','.timing-layer-link-type-element',function() {
  479. var ltype = jQuery(this).data('linktype'),
  480. objUpdate = {};
  481. u.selectedLayers = [];
  482. jQuery('.layer-on-timeline-selector').each(function() {
  483. var inp = jQuery(this),
  484. uniqueid = inp.closest('.mastertimer-layer').data('uniqueid'),
  485. objLayer = u.getLayerByUniqueId(uniqueid);
  486. if (objLayer.groupLink == ltype) {
  487. inp.attr('checked','checked');
  488. u.selectedLayers.push(uniqueid);
  489. objLayer.references.htmlLayer.addClass("multiplelayerselected");
  490. } else {
  491. inp.removeAttr('checked','checked');
  492. objLayer.references.htmlLayer.removeClass("multiplelayerselected");
  493. }
  494. });
  495. });
  496. jQuery('body').on('change','.layer-on-timeline-selector',function() { t.checkMultipleSelectedItems() });
  497. }
  498. t.deepSelection = function(extend) {
  499. // DEEP LINK INPUT FIELD ADD ONS
  500. jQuery('.input-deepselects').each(function() {
  501. var inp = jQuery(this);
  502. if (!inp.hasClass("deepselection_ready")) {
  503. inp.addClass("deepselection_ready");
  504. inp.wrap('<span class="inp-deep-wrapper"></span>');
  505. inp.parent().append('<span class="inp-deep-list"></span>');
  506. var dl = inp.parent().find('.inp-deep-list'),
  507. txt = '<span class="inp-deep-listitems">',
  508. rev = inp.data('reverse'),
  509. minw = inp.data('deepwidth'),
  510. list = inp.data('selects') != undefined ? inp.data('selects').split("||") : "",
  511. vals = inp.data('svalues') != undefined ? inp.data('svalues').split("||") : "",
  512. icos = inp.data('icons') != undefined ? inp.data('icons').split("||") : "",
  513. id = inp.attr('id');
  514. if (minw!==undefined)
  515. punchgs.TweenLite.set(dl,{minWidth:minw+"px"});
  516. if (rev=="on") {
  517. txt = txt+"<span class='reverse_input_wrapper'><span class='reverse_input_text'>Direction Auto Reverse</span><input class='reverse_input_check tp-moderncheckbox' name='"+id+"_reverse' id='"+id+"_reverse' type='checkbox'></span>";
  518. }
  519. if (list!==undefined && list!="") {
  520. jQuery.each(list,function(i){
  521. var v = vals[i] || "",
  522. l = list[i] || "",
  523. i = icos[i] || "";
  524. txt = txt + "<span class='inp-deep-prebutton' data-val='"+v+"'><i class='eg-icon-"+i+"'></i>"+l+"</span>";
  525. });
  526. }
  527. txt = txt + "</span>";
  528. dl.append(txt);
  529. if (rev=="on") {
  530. RevSliderSettings.onoffStatus(jQuery('input[name="'+id+'_reverse"]'));
  531. }
  532. inp.parent().on('mouseleave',function() {
  533. jQuery(this).find('.inp-deep-list').removeClass("visible");
  534. jQuery(this).removeClass("selected-deep-wrapper");
  535. });
  536. }
  537. })
  538. if (extend!==true) {
  539. jQuery('body').on('click','.inp-deep-prebutton',function() {
  540. var btn = jQuery(this),
  541. inp = btn.closest('.inp-deep-wrapper').find('input');
  542. inp.val(btn.data('val'));
  543. inp.blur();
  544. inp.focus();
  545. inp.trigger("change");
  546. });
  547. jQuery('body').on('click','.input-deepselects',function() {
  548. jQuery(this).closest('.inp-deep-wrapper').find('.inp-deep-list').addClass("visible");
  549. jQuery(this).closest('.inp-deep-wrapper').addClass("selected-deep-wrapper");
  550. })
  551. }
  552. }
  553. t.checkMultipleSelectedItems = function(disableall) {
  554. u.selectedLayers = [];
  555. var objUpdate = {};
  556. jQuery('.layer-on-timeline-selector').each(function() {
  557. var inp = jQuery(this),
  558. objLayer = u.getLayerByUniqueId(inp.closest('.mastertimer-layer').data('uniqueid'));
  559. if (inp.attr('checked') && disableall!==true) {
  560. objLayer.references.htmlLayer.addClass("multiplelayerselected");
  561. u.selectedLayers.push(objLayer.unique_id);
  562. } else {
  563. inp.removeAttr('checked');
  564. objLayer.references.htmlLayer.removeClass("multiplelayerselected");
  565. }
  566. });
  567. }
  568. // COMPARE SLIDE LENGTH TO LAYERS END, AND UPDATE THE END OF THE LAYERS AS NEEDED
  569. t.compareLayerEndsVSSlideEnd = function() {
  570. var maxtime = (t.mainMaxTimeLeft)*10;
  571. jQuery.each(u.arrLayers,function(i,objLayer) {
  572. if (objLayer.endWithSlide || maxtime<objLayer.frames["frame_999"].time - objLayer.frames["frame_999"].speed) {
  573. objLayer.frames["frame_999"].time = maxtime+objLayer.frames["frame_999"].speed;
  574. //t.updateLayerTimeline(jQuery('#layer_sort_time_'+objLayer.serial+" .timeline .tl-fullanim"));
  575. }
  576. });
  577. t.updateAllLayerTimeline();
  578. }
  579. function checkAvailableAutoTimes() {
  580. var sel = jQuery('.mastertimer-timeline-selector-row.selected').length;
  581. jQuery('.autotiming-action').addClass("notclickable");
  582. if (sel>1) {
  583. jQuery('.autotiming-action').removeClass("notclickable");
  584. } else
  585. if (sel==1) {
  586. jQuery('.autotiming-action-3').removeClass("notclickable");
  587. jQuery('.autotiming-action-4').removeClass("notclickable");
  588. jQuery('.autotiming-action-5').removeClass("notclickable");
  589. jQuery('.autotiming-action-6').removeClass("notclickable");
  590. }
  591. }
  592. function addIconFunction() {
  593. jQuery('#tp-addiconbutton, .addbutton-icon').click(function() {
  594. var buttons = {"Close":function(){jQuery("#dialog_insert_button").dialog("close")}}
  595. jQuery("#dialog_insert_icon").dialog({
  596. //buttons:buttons,
  597. width:491,
  598. height:500,
  599. dialogClass:"tpdialogs",
  600. resize:function() {
  601. var di = jQuery('#dialog_insert_icon');
  602. di.css({width:(di.parent().width()-30),height:(di.parent().height()-60)});
  603. },
  604. modal:true,
  605. create:function(event,ui) {
  606. var cont = jQuery(event.target),
  607. sheets = document.styleSheets,
  608. di = jQuery('#dialog_insert_icon');
  609. di.parent().css({padding:"0px", border:"none", borderRadius:"0px"});
  610. di.parent().find('.ui-dialog-titlebar.ui-widget-header.ui-corner-all.ui-helper-clearfix.ui-draggable-handle').addClass("tp-slider-new-dialog-title");
  611. //css({fontSize:"14px", fontWeight:"400",lineHeight:"35px"});
  612. if (sheets)
  613. jQuery.each(sheets,function(index,sheet) {
  614. var found = false,
  615. markup = "";
  616. try{
  617. if (sheet.cssRules !==null & sheet.cssRules!=undefined)
  618. jQuery.each(sheet.cssRules, function(index,rule) {
  619. if (rule && rule!==null && rule !=="null" && rule.selectorText!=undefined) {
  620. jQuery.each(rs_icon_sets,function(j,prefix){
  621. if (rule.selectorText.split(prefix).length>1 && rule.cssText.split("content").length>1) {
  622. var csname = rule.selectorText.split("::before")[0].split(":before")[0];
  623. if (csname!=undefined) {
  624. csname = csname.split(".")[1];
  625. if (csname!=undefined) {
  626. if (found==false) {
  627. found=true;
  628. markup = '<ul class="tp-icon-preview-list lastaddediconset">';
  629. }
  630. markup=markup + '<li><i class="'+csname+'"></i></li>';
  631. }
  632. }
  633. }
  634. })
  635. }
  636. });
  637. } catch(e) {}
  638. if (found) {
  639. markup = markup + '</ul>';
  640. cont.append(markup);
  641. var fli = cont.find('.lastaddediconset').find('li').first().find('i');
  642. cont.find('.lastaddediconset').prepend('<h3>'+fli.css("fontFamily")+'</h3>').removeClass("lastaddediconset");
  643. }
  644. })
  645. cont.on("click","li",function() {
  646. if (jQuery('#dialog_addbutton').length>0 && jQuery('#dialog_addbutton').closest('.tpdialogs').css('display')!=="none") {
  647. if (jQuery('.addbutton-icon:visible').length>0) {
  648. jQuery('.addbutton-icon').html(jQuery(this).html());
  649. jQuery("#dialog_insert_icon").dialog("close");
  650. setExampleButtons();
  651. } else {
  652. if (jQuery('.lasteditedlayertext').length>0)
  653. jQuery('.lasteditedlayertext').val(jQuery('.lasteditedlayertext').val()+jQuery(this).html()).blur().focus();
  654. else
  655. jQuery('#layer_text').val(jQuery('#layer_text').val()+jQuery(this).html()).blur().focus();
  656. jQuery("#dialog_insert_icon").dialog("close");
  657. }
  658. } else {
  659. if (jQuery('.lasteditedlayertext').length>0)
  660. jQuery('.lasteditedlayertext').val(jQuery('.lasteditedlayertext').val()+jQuery(this).html()).blur().focus();
  661. else
  662. jQuery('.layer_text').val(jQuery('#layer_text').val()+jQuery(this).html()).blur().focus();
  663. jQuery("#dialog_insert_icon").dialog("close");
  664. }
  665. u.updateLayerFromFields();
  666. });
  667. }
  668. });
  669. });
  670. }
  671. function reBlurFocus(dist,cv,el) {
  672. if (!jQuery('#rs-animation-tab-button').hasClass("selected") && !jQuery('#rs-loopanimation-tab-button').hasClass("selected")) {
  673. cv = Number(cv) +dist;
  674. cv=Math.round(cv*100)/100;
  675. el.val(cv);
  676. /* PUT THIS IN EDIT_LAYERS.js */
  677. jQuery(':focus').blur();
  678. el.focus();
  679. }
  680. }
  681. /***********************************************************
  682. - INITIALISE CLICK, LOOP, INOUT ANIMATION HANDLERS -
  683. ***********************************************************/
  684. function basicClicksAndHovers() {
  685. // CHANGING ANY STYLE SHOULD REBUILD THE LAYERS
  686. jQuery('.rs-staticcustomstylechange').change(function() {
  687. //setTimeout(function() {
  688. t.rebuildLayerIdle(jQuery('.slide_layer.layer_selected'));
  689. // },20);
  690. })
  691. // HANDLING OF LAYER ANIMATIONS STOP/PLAY OF SINGLE LAYERS
  692. jQuery('.rs-layer-settings-tabs li').click(function() {
  693. var li = jQuery(this);
  694. if ((li.attr('id') != '#rs-animation-tab-button' && li.closest('#rs-animation-tab-button').length==0) &&
  695. (li.attr('id') != '#rs-loopanimation-tab-button' && li.closest('#rs-loopanimation-tab-button').length==0)) {
  696. t.stopAllLayerAnimation();
  697. setTimeout(function() {
  698. u.removeCurrentLayerRotatable();
  699. u.makeCurrentLayerRotatable();
  700. jQuery('#hide_layer_content_editor').click();
  701. },19);
  702. } else
  703. if (!jQuery(this).hasClass("selected")) {
  704. t.stopAllLayerAnimation();
  705. if (li.attr('id') == '#rs-animation-tab-button' || li.closest('#rs-animation-tab-button').length!=0) {
  706. t.animateCurrentSelectedLayer(3);
  707. u.removeCurrentLayerRotatable();
  708. jQuery('#hide_layer_content_editor').click();
  709. } else {
  710. t.callCaptionLoops();
  711. u.removeCurrentLayerRotatable();
  712. jQuery('#hide_layer_content_editor').click();
  713. }
  714. }
  715. });
  716. // CLICK ON LAYERS ARE SHOULD STOP ANY LAYER ANIMATION OR LOOPS
  717. jQuery('#divLayers').click(function() {
  718. t.stopAllLayerAnimation();
  719. u.removeCurrentLayerRotatable();
  720. setTimeout(function() {
  721. if (t.checkAnimationTab())
  722. t.animateCurrentSelectedLayer(4);
  723. if (t.checkLoopTab())
  724. t.callCaptionLoops();
  725. },19);
  726. })
  727. // Click on LayerAnimation Button the current Selected Layer should be Animated
  728. jQuery('#layeranimation-playpause').click(function() {
  729. var btn = jQuery(this);
  730. if (btn.hasClass("inpause")) {
  731. btn.removeClass("inpause");
  732. if (t.checkAnimationTab()) {
  733. t.stopAllLayerAnimation();
  734. t.animateCurrentSelectedLayer(5);
  735. u.removeCurrentLayerRotatable();
  736. }
  737. } else {
  738. btn.addClass("inpause");
  739. t.stopAllLayerAnimation();
  740. }
  741. })
  742. // Click on LayerAnimation Button the current Selected Layer should be Animated
  743. jQuery('#loopanimation-playpause').click(function() {
  744. var btn = jQuery(this);
  745. if (btn.hasClass("inpause")) {
  746. btn.removeClass("inpause");
  747. if (t.checkLoopTab()) {
  748. t.stopAllLayerAnimation();
  749. t.callCaptionLoops();
  750. u.removeCurrentLayerRotatable();
  751. }
  752. } else {
  753. btn.addClass("inpause");
  754. t.stopAllLayerAnimation();
  755. }
  756. })
  757. jQuery('#rs-style-tab-button').click(function() {
  758. setTimeout(function() {
  759. jQuery('.slide_layer').each(function() {
  760. t.rebuildLayerIdle(jQuery(this));
  761. var inlayer = jQuery(this).find('.innerslide_layer').first();
  762. if (inlayer.length>0 && inlayer.data('hoveranim')!=undefined) {
  763. var tl = inlayer.data('hoveranim');
  764. tl.seek(tl.endTime());
  765. }
  766. })
  767. },19);
  768. });
  769. jQuery('#toggle-idle-hover').click(function() {
  770. setTimeout(function() {
  771. t.rebuildLayerIdle(jQuery('.slide_layer.layer_selected'));
  772. },19);
  773. })
  774. jQuery('#style_form_wrapper').on("colorchanged",function() {
  775. t.rebuildLayerIdle(jQuery('.slide_layer.layer_selected'));
  776. })
  777. }
  778. t.resetIdleSelector = function() {
  779. var bt = jQuery('#toggle-idle-hover');
  780. bt.addClass("idleisselected").removeClass("hoverisselected");
  781. jQuery('#tp-idle-state-advanced-style').show();
  782. jQuery('#tp-hover-state-advanced-style').hide();
  783. }
  784. /************************************************************************************************************************
  785. - CHECK IF ANIMATION AND LOOP ANIMATION TABS ARE ACTIVATED AND IN IDLE OR PLAY MODE ARE -
  786. **************************************************************************************************************************/
  787. t.checkAnimationTab = function() {
  788. return (!jQuery('#layeranimation-playpause').hasClass("inpause") && jQuery('#rs-animation-tab-button').hasClass("selected"));
  789. }
  790. t.checkLoopTab = function() {
  791. return (!jQuery('#loopanimation-playpause').hasClass("inpause") && jQuery('#rs-loopanimation-tab-button').hasClass("selected"));
  792. }
  793. /**********************************************************
  794. - ANIMATION HANDLING -
  795. **********************************************************/
  796. /*********************************
  797. - PREPARE THE ANIMATIONS -
  798. ********************************/
  799. function preparePeviewAnimations() {
  800. // NORMAL FIELDS CHANGED IN IN/OUT ANIMATION
  801. jQuery('.rs-inoutanimationfield').on("change",
  802. function() {
  803. if (t.checkAnimationTab()) {
  804. t.stopAllLayerAnimation();
  805. setTimeout(function() {
  806. t.animateCurrentSelectedLayer(50);
  807. },19);
  808. }
  809. });
  810. // NORMAL FIELDS CHANGED IN LOOP ANIMATIONS
  811. }
  812. function prepareLoopAnimations() {
  813. // NORMAL FIELDS CHANGED IN IN/OUT ANIMATION
  814. jQuery('.rs-loopanimationfield').on("change",
  815. function() {
  816. if (t.checkLoopTab()) {
  817. t.stopAllLayerAnimation();
  818. setTimeout(function() {
  819. t.callCaptionLoops();
  820. },19);
  821. }
  822. });
  823. }
  824. /******************************
  825. - STOP ALL ANIMATION -
  826. ********************************/
  827. t.stopAllLayerAnimation = function() {
  828. document.getElementById('mastertimer-playpause-wrapper').innerHTML = '<i class="eg-icon-play"></i><span>PLAY</span>';
  829. punchgs.TweenLite.set(document.getElementsByClassName('tp-mask-wrap'),{clearProps:"transform",overwrite:"all"});
  830. jQuery('#divbgholder').find('.tp-blockmask_in, .tp-blockmask_out').remove();
  831. jQuery('.tp-showmask').removeClass('tp-showmask');
  832. var ils = document.getElementsByClassName("innerslide_layer");
  833. for (var i=0;i<ils.length;i++) {
  834. var nextcaption = jQuery(ils[i]);
  835. if (ils[i].parentNode.classList.contains('rs-preview-inside-looper') || ils[i].parentNode.parentNode.classList.contains('rs-preview-inside-looper'))
  836. nextcaption.unwrap();
  837. if (nextcaption.data('tl')!=undefined) {
  838. var tl = nextcaption.data('tl');
  839. tl.clear();
  840. tl.kill();
  841. try{
  842. if (nextcaption.data('mySplitText'))
  843. nextcaption.data('mySplitText').revert();
  844. } catch(e) {}
  845. punchgs.TweenLite.set(nextcaption[0].parentNode,{autoAlpha:1});
  846. t.rebuildLayerIdle(nextcaption.closest('.slide_layer'));
  847. u.removeCurrentLayerRotatable();
  848. }
  849. }
  850. punchgs.TweenLite.set(document.getElementById('startanim_wrapper'),{autoAlpha:0});
  851. punchgs.TweenLite.set(document.getElementById('endanim_wrapper'),{autoAlpha:0});
  852. }
  853. /******************************
  854. - LOOP ANIMATIONS -
  855. ********************************/
  856. t.callCaptionLoops = function() {
  857. t.stopAllLayerAnimation();
  858. var caption = jQuery('.slide_layer.layer_selected'),
  859. el = caption.find('.innerslide_layer').first();
  860. if (el.length==0) {
  861. return false;
  862. }
  863. var id = u.getSerialFromID(caption.attr('id'));
  864. params=u.getLayer(id),
  865. loopanim = params["loop_animation"];
  866. if (el.closest('.rs-preview-inside-looper').length>0) {
  867. el.unwrap();
  868. }
  869. el.wrap('<div class="rs-preview-inside-looper" style="width:100%;height:100%;position:relative"></div>');
  870. var loopobj =caption.find('.rs-preview-inside-looper'),
  871. startdeg = params["loop_startdeg"],
  872. enddeg = params["loop_enddeg"],
  873. speed = params["loop_speed"],
  874. origin = ''+params["loop_xorigin"]+'% '+params["loop_yorigin"]+'%',
  875. easing = params["loop_easing"],
  876. angle= params["loop_angle"],
  877. radius = parseInt(params["loop_radius"],0),
  878. xs = params["loop_xstart"],
  879. ys = params["loop_ystart"],
  880. xe = params["loop_xend"],
  881. ye = params["loop_yend"],
  882. zoomstart = params["loop_zoomstart"],
  883. zoomend = params["loop_zoomend"];
  884. factor = 1;
  885. var tl = new punchgs.TimelineLite();
  886. tl.pause();
  887. // SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
  888. switch (loopanim) {
  889. case "rs-pendulum":
  890. //punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",rotation:startdeg,transformOrigin:origin},{rotation:enddeg,ease:easing});
  891. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",rotation:startdeg,transformOrigin:origin},{rotation:enddeg,ease:easing}));
  892. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",rotation:enddeg},{rotation:startdeg,ease:easing,onComplete:function() {
  893. tl.restart();
  894. }}));
  895. break;
  896. case "rs-rotate":
  897. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",rotation:startdeg,transformOrigin:origin},{rotation:enddeg,ease:easing,onComplete:function() {
  898. tl.restart();
  899. }}));
  900. break;
  901. case "rs-slideloop":
  902. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",x:xs,y:ys},{x:xe,y:ye,ease:easing}));
  903. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",x:xe,y:ye},{x:xs,y:ys,onComplete:function() {
  904. tl.restart();
  905. }}));
  906. break;
  907. case "rs-pulse":
  908. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",scale:zoomstart},{scale:zoomend,ease:easing}));
  909. tl.add(punchgs.TweenLite.fromTo(loopobj,speed,{force3D:"auto",scale:zoomend},{scale:zoomstart,onComplete:function() {
  910. tl.restart();
  911. }}));
  912. break;
  913. case "rs-wave":
  914. var _ox = ((parseInt(params["loop_xorigin"],0)/100)-0.5) * loopobj.width(),
  915. _oy = ((parseInt(params["loop_yorigin"],0)/100)-0.5) * loopobj.height(),
  916. yo = (-1*radius) + _oy,
  917. xo = 0 + _ox,
  918. angobj = {a:0, ang : angle, element:loopobj, unit:radius,xoffset:xo,yoffset:yo};
  919. var ang = parseInt(angle,0);
  920. tl.add(punchgs.TweenLite.fromTo(angobj,speed,
  921. { a:0+ang },
  922. { a:360+ang,
  923. force3D:"auto",
  924. ease:punchgs.Linear.easeNone,
  925. onUpdate:function() {
  926. var rad = angobj.a * (Math.PI / 180),
  927. yy = angobj.yoffset+(angobj.unit * (1 - Math.sin(rad))),
  928. xx = angobj.xoffset+Math.cos(rad) * angobj.unit;
  929. punchgs.TweenLite.to(angobj.element,0.1,{force3D:"auto",x:xx, y:yy});
  930. },
  931. onComplete:function() {
  932. tl.restart();
  933. }
  934. }
  935. ));
  936. break;
  937. }
  938. tl.play();
  939. caption.data('tl',tl);
  940. }
  941. /******************************************
  942. - REBUILD IDLE STATES OF ITEMS -
  943. ******************************************/
  944. t.rebuildLayerIdle = function(caption,timer,isDemo) {
  945. timer = timer == undefined ? 50 : timer;
  946. isDemo = isDemo == undefined ? false : isDemo;
  947. if (g_rebuildTimer == 0) {
  948. timer = 0;
  949. g_rebuildTimer = 999;
  950. }
  951. if (caption==undefined || jQuery(caption).length==0 || caption[0].classList.contains("layer-deleted")) return false;
  952. var cp = jQuery(caption);
  953. clearTimeout(cp.data('idlerebuildtimer'));
  954. t.rebuildLayerIdleProgress(caption);
  955. var id = u.getSerialFromID(caption.attr('id')),
  956. objLayer = u.getLayer(id,isDemo);
  957. var e_img = caption.find('.tp-caption img');
  958. u.updateHtmlLayerPosition(false,objLayer,u.getVal(objLayer, 'top'),u.getVal(objLayer, 'left'),u.getVal(objLayer, 'align_hor'),u.getVal(objLayer, 'align_vert'));
  959. if (e_img.length>0 && !jQuery(e_img).hasClass("loaded")) {
  960. jQuery(e_img).addClass("loaded");
  961. var img = new Image();
  962. img.onload = function() {
  963. objLayer.originalWidth = this.width;
  964. objLayer.originalHeight = this.height;
  965. u.updateHtmlLayerPosition(false,objLayer,u.getVal(objLayer, 'top'),u.getVal(objLayer, 'left'),u.getVal(objLayer, 'align_hor'),u.getVal(objLayer, 'align_vert'));
  966. }
  967. img.onerror = function() {
  968. e_img[0].src = objLayer.image_url = g_revslider_url+"/admin/assets/images/tp-brokenimage.png";
  969. u.updateHtmlLayerPosition(false,objLayer,u.getVal(objLayer, 'top'),u.getVal(objLayer, 'left'),u.getVal(objLayer, 'align_hor'),u.getVal(objLayer, 'align_vert'));
  970. }
  971. img.onabort = function() {
  972. u.updateHtmlLayerPosition(false,objLayer,u.getVal(objLayer, 'top'),u.getVal(objLayer, 'left'),u.getVal(objLayer, 'align_hor'),u.getVal(objLayer, 'align_vert'));
  973. }
  974. img.src = e_img[0].src;
  975. } else {
  976. //u.updateHtmlLayerPosition(false,caption,objLayer,u.getVal(objLayer, 'top'),u.getVal(objLayer, 'left'),u.getVal(objLayer, 'align_hor'),u.getVal(objLayer, 'align_vert'));
  977. //update corners
  978. u.updateHtmlLayerCorners(objLayer);
  979. //update cross position
  980. u.updateCrossIconPosition(objLayer);
  981. }
  982. u.extendSlideHeightBasedOnRows();
  983. return true;
  984. }
  985. ////////////////////////////////
  986. // REBUILD LAYER CSS FOR IDLE //
  987. ////////////////////////////////
  988. t.rebuildLayerIdleProgress = function(caption) {
  989. if (caption===undefined) return;
  990. var is_demo = (caption.attr('id') !== caption.attr('id').replace('demo_layer_')) ? true : false;
  991. if (caption==undefined || jQuery(caption).length==0) return false;
  992. var id = u.getSerialFromID(caption.attr('id')),
  993. params=u.getLayer(id, is_demo);
  994. if (params==undefined || params==false) return false;
  995. // CLEAR UP HALF ANIMATED STATUS ON WRAPPING AND HELPING CONTAINERS
  996. punchgs.TweenLite.set(caption.find('.tp-mask-wrap'), { clearProps:"all", visibility:"visible",opacity:1});
  997. if (params.type==="column")
  998. punchgs.TweenLite.set(caption.find('.column_background').first(),{clearProps:"all",visibility:"visible",opacity:1});
  999. var inlayer = jQuery(caption[0].getElementsByClassName('innerslide_layer')[0]),
  1000. deform = params.deformation,
  1001. deformidle = params.deformation,
  1002. deformhover = params["deformation-hover"],
  1003. ss = params["static_styles"],
  1004. fontcolor = window.RevColor.get(u.getVal(ss,"color")),
  1005. fonttrans = deform["color-transparency"],
  1006. bgcolor = window.RevColor.get(deform["background-color"]),
  1007. bordercolor = deform["border-color"],
  1008. bordertrans = deform["border-transparency"];
  1009. if (params.type=="audio") {
  1010. if (params.video_data.video_show_visibility) {
  1011. caption.addClass("invisible-audio");
  1012. } else {
  1013. caption.removeClass("invisible-audio");
  1014. }
  1015. return false;
  1016. }
  1017. //console.log(params)
  1018. if(is_demo && params.alias == 'First'){
  1019. }
  1020. // REMOVE SPLITS
  1021. if (inlayer.data('mySplitText') != undefined) {
  1022. try{inlayer.data('mySplitText').revert();} catch(e) {}
  1023. if (params.type=="text" || params.type=="button") {
  1024. inlayer[0].innerHTML = params.text;
  1025. u.makeCurrentLayerRotatable();
  1026. }
  1027. inlayer.removeData('mySplitText')
  1028. }
  1029. // BORDER OPACITY
  1030. if (Number(bordertrans)<1) {
  1031. var rgb = UniteAdminRev.convertHexToRGB(bordercolor);
  1032. bordercolor="rgba("+rgb[0]+","+rgb[1]+","+rgb[2]+","+bordertrans+")";
  1033. }
  1034. // SET ELEMENT IDLE
  1035. var mwidth = u.getVal(params,"max_width"),
  1036. mheight = u.getVal(params,"max_height"),
  1037. cmode = u.getVal(params,"cover_mode"),
  1038. loc_position = "absolute";
  1039. switch(params.type){
  1040. case 'image':
  1041. mwidth = u.getVal(params,"scaleX");
  1042. mheight = u.getVal(params,"scaleY");
  1043. break;
  1044. case 'video':
  1045. mwidth = params.video_data.cover===true || params.video_data.fullwidth===true ? "100%" : u.getVal(params,"video_width");
  1046. mheight = params.video_data.cover===true || params.video_data.fullwidth===true ? "100%" : u.getVal(params,"video_height");
  1047. caption.find('.slide_layer_video').css({width:parseInt(mwidth,0)+"px",height:parseInt(mheight,0)+"px"});
  1048. break;
  1049. case 'row':
  1050. mwidth = "100%";
  1051. if (u.getVal(params,"align_vert")==="bottom")
  1052. caption[0].style.position = "absolute"
  1053. else
  1054. caption[0].style.position = "relative"
  1055. if ((params.column_break_at==="mobile" && t.layout==="mobile") ||
  1056. (params.column_break_at==="tablet" && (t.layout==="tablet" || t.layout==="mobile")) ||
  1057. (params.column_break_at==="notebook" && t.layout!=="desktop")) {
  1058. caption.addClass("rev_breakcolumns");
  1059. } else {
  1060. caption.removeClass("rev_breakcolumns");
  1061. }
  1062. break;
  1063. case 'column':
  1064. mwidth = (100*eval(params.column_size))+"%";
  1065. mheight = "auto";
  1066. caption[0].style.position = "relative";
  1067. caption[0].style.display = "table_cell";
  1068. caption[0].style.minHeight = parseInt(u.getVal(params,"min_height"),0)+"px";
  1069. caption[0].style.verticalAlign = deform["vertical-align"];
  1070. caption[0].cb = caption[0].cb === undefined ? caption.find('.column_background') : caption[0].cb;
  1071. /*caption[0].style.marginTop = parseInt(u.getVal(params,'margin')[0],0)+"px";
  1072. caption[0].style.marginRight= parseInt(u.getVal(params,'margin')[1],0)+"px";
  1073. caption[0].style.marginBottom = parseInt(u.getVal(params,'margin')[2],0)+"px";
  1074. caption[0].style.marginLeft = parseInt(u.getVal(params,'margin')[3],0)+"px";*/
  1075. if (params.bgimage_url!==undefined && params.bgimage_url.length>0) {
  1076. caption[0].cb.css({
  1077. backgroundImage:"url('"+params.bgimage_url+"')",
  1078. backgroundSize:params.layer_bg_size,
  1079. backgroundPosition:params.layer_bg_position,
  1080. backgroundRepeat:params.layer_bg_repeat,
  1081. });
  1082. } else {
  1083. caption[0].cb.css({
  1084. backgroundImage:"",
  1085. background:bgcolor
  1086. })
  1087. }
  1088. break;
  1089. case 'group':
  1090. switch(mwidth) {
  1091. case '#1/1#': mwidth="100%";break;
  1092. case '#1/2#': mwidth="50%";break;
  1093. case '#1/3#': mwidth="33.333333%";break;
  1094. case '#2/3#': mwidth="66.666666%";break;
  1095. case '#1/4#': mwidth="25%";break;
  1096. case '#3/4#': mwidth="75%";break;
  1097. case '#1/5#': mwidth="20%";break;
  1098. case '#2/5#': mwidth="40%";break;
  1099. case '#3/5#': mwidth="60%";break;
  1100. case '#4/5#': mwidth="80%";break;
  1101. case '#1/6#': mwidth="16.666666%";break;
  1102. case '#4/6#': mwidth="66.666666%";break;
  1103. case '#5/6#': mwidth="83.333333%";break;
  1104. }
  1105. break;
  1106. }
  1107. //console.log(params.text+" "+params.groupOrder)
  1108. if (deform.overflow===undefined || params.type!=="group")
  1109. deform.overflow = "visible";
  1110. if(mwidth == undefined) mwidth = '';
  1111. if(mheight == undefined) mheight = '';
  1112. if (params.p_uid!==-1 && u.getObjLayerType(params.p_uid)==="column")
  1113. punchgs.TweenLite.set(caption,{position:"relative", display:u.getVal(params,"display"), top:"auto",left:"auto",right:"auto",bottom:"auto"});
  1114. else {
  1115. if (params.type==="column") {
  1116. punchgs.TweenLite.set(caption,{position:"absolute", display:"table-cell"});
  1117. }
  1118. else
  1119. punchgs.TweenLite.set(caption,{position:"absolute", display:"block"});
  1120. }
  1121. if (params.type==="column") bgcolor = "transparent"
  1122. mwidth = cmode===undefined || cmode==="custom" ?
  1123. jQuery.isNumeric(mwidth) ?
  1124. mwidth+"px" : mwidth.match(/px/g) ?
  1125. parseInt(mwidth,0)+"px" : mwidth.match(/%/g) ?
  1126. parseFloat(mwidth)+"%" : mwidth :
  1127. cmode === "fullwidth" || cmode ==="cover" || cmode ==="cover-proportional" ? "100%" : mwidth;
  1128. mheight = cmode===undefined || cmode==="custom" ?
  1129. jQuery.isNumeric(mheight) ?
  1130. mheight+"px" : mheight.match(/px/g) ?
  1131. parseInt(mheight,0)+"px" : mheight.match(/%/g) ?
  1132. parseFloat(mheight,0)+"%" : mheight :
  1133. cmode === "fullheight" || cmode ==="cover" || cmode ==="cover-proportional" ? "100%" : mheight;
  1134. // SET LAYER WIDTH HEIGHT INNER AND OUTTER
  1135. caption[0].style.width = mwidth;
  1136. caption[0].style.height = mheight;
  1137. if (params.type==="row") {
  1138. caption[0].style.minHeight = mheight;
  1139. //caption[0].style.minWidth = mwidth;
  1140. //caption[0].style.maxWidth = mwidth;
  1141. }
  1142. var fw = parseInt(u.getVal(ss,"font-weight"),0) || 400;
  1143. var bgimage = "";
  1144. punchgs.TweenLite.set(inlayer, { clearProps:"all", visibility:"visible",opacity:1});
  1145. if (params.bgimage_url!==undefined && params.bgimage_url.length>0 && params.type!=="column")
  1146. inlayer.css({backgroundImage:"url('"+params.bgimage_url+"')", backgroundSize:params.layer_bg_size, backgroundPosition:params.layer_bg_position, backgroundRepeat:params.layer_bg_repeat});
  1147. else
  1148. inlayer.css({backgroundImage:"", backgroundSize:params.layer_bg_size, backgroundPosition:params.layer_bg_position, backgroundRepeat:params.layer_bg_repeat});
  1149. var inlay_object_anim = {
  1150. z:deform.z,
  1151. scaleX:parseFloat(deform.scalex),
  1152. scaleY:parseFloat(deform.scaley),
  1153. textAlign:u.getVal(params,"text-align"),
  1154. rotationX:parseFloat(deform.xrotate),
  1155. rotationY:parseFloat(deform.yrotate),
  1156. rotationZ:parseFloat(params["2d_rotation"]),
  1157. skewX:parseFloat(deform.skewx),
  1158. skewY:parseFloat(deform.skewy),
  1159. transformPerspective:parseFloat(deform.pers),
  1160. transformOrigin:params["layer_2d_origin_x"]+"%"+params["layer_2d_origin_y"]+"%",
  1161. autoAlpha:deform.opacity,
  1162. paddingTop:parseInt(u.getVal(params,'padding')[0],0)+"px",
  1163. paddingRight:parseInt(u.getVal(params,'padding')[1],0)+"px",
  1164. paddingBottom:parseInt(u.getVal(params,'padding')[2],0)+"px",
  1165. paddingLeft:parseInt(u.getVal(params,'padding')[3],0)+"px",
  1166. fontSize:parseInt(u.getVal(ss,"font-size"),0)+"px",
  1167. lineHeight:parseInt(u.getVal(ss,"line-height"),0)+"px",
  1168. fontWeight:fw,
  1169. color:fontcolor,
  1170. letterSpacing:parseInt(u.getVal(ss,"letter-spacing"),0)+"px",
  1171. fontStyle:deformidle["font-style"],
  1172. textDecoration:deform["text-decoration"],
  1173. textTransform:deform["text-transform"],
  1174. borderColor:bordercolor,
  1175. borderRadius:deform["border-radius"][0]+" "+deform["border-radius"][1]+" "+deform["border-radius"][2]+" "+deform["border-radius"][3],
  1176. borderWidth:deform["border-width"][0]+" "+deform["border-width"][1]+" "+deform["border-width"][2]+" "+deform["border-width"][3],
  1177. //borderWidth:parseInt(deform["border-width"],0)+"px",
  1178. borderStyle:deform["border-style"],
  1179. whiteSpace:u.getVal(params,"whitespace"),
  1180. maxWidth:"100%",
  1181. maxHeight:"100%"
  1182. }
  1183. // CHECK GRADIENT BG COLOR
  1184. if (bgcolor.indexOf("gradient")>=0) {
  1185. inlay_object_anim.background = bgcolor;
  1186. } else {
  1187. inlay_object_anim.backgroundColor = bgcolor;
  1188. }
  1189. if ((deform.blurfilter!==undefined && parseInt(deform.blurfilter,0)>0) || (deformhover.blurfilter!==undefined && parseInt(deformhover.blurfilter,0)>0)) {
  1190. var bf = 'blur('+parseInt(deform.blurfilter,0)+'px)';
  1191. inlay_object_anim['-webkit-filter'] = bf;
  1192. inlay_object_anim['filter'] = bf;
  1193. }
  1194. if ((deform.grayscalefilter!==undefined && parseInt(deform.grayscalefilter,0)>0) || (deformhover.grayscalefilter!==undefined && parseInt(deformhover.grayscalefilter,0)>0)) {
  1195. var gf = 'grayscale('+parseInt(deform.grayscalefilter,0)+'%)';
  1196. inlay_object_anim['-webkit-filter'] = inlay_object_anim['-webkit-filter']===undefined ? gf : inlay_object_anim['-webkit-filter']+' '+gf;
  1197. inlay_object_anim['filter'] = inlay_object_anim['filter']===undefined ? gf: inlay_object_anim['filter']+' '+gf;
  1198. }
  1199. if ((deform.brightnessfilter!==undefined && parseInt(deform.brightnessfilter,0)!==100) || (deformhover.brightnessfilter!==undefined && parseInt(deformhover.brightnessfilter,0)!=100)) {
  1200. var brf = 'brightness('+parseInt(deform.brightnessfilter,0)+'%)';
  1201. inlay_object_anim['-webkit-filter'] = inlay_object_anim['-webkit-filter']===undefined ? brf : inlay_object_anim['-webkit-filter']+' '+brf;
  1202. inlay_object_anim['filter'] = inlay_object_anim['filter']===undefined ? brf: inlay_object_anim['filter']+' '+brf;
  1203. }
  1204. /*if (deform.shadow_idle===true) {
  1205. var shcolor = UniteAdminRev.convertHexToRGB(deform.ds_color);
  1206. shcolor="rgba("+shcolor[0]+","+shcolor[1]+","+shcolor[2]+","+deform.ds_opacity+")";
  1207. var dshadow = "drop-shadow("+parseInt(deform.ds_x,0)+"px "+parseInt(deform.ds_y,0)+"px "+parseInt(deform.ds_blur,0)+"px "+shcolor+")";
  1208. inlay_object_anim['-webkit-filter'] = inlay_object_anim['-webkit-filter']===undefined ? dshadow : inlay_object_anim['-webkit-filter']+' '+dshadow;
  1209. inlay_object_anim['filter'] = inlay_object_anim['filter']===undefined ? dshadow: inlay_object_anim['filter']+' '+dshadow;
  1210. }*/
  1211. if (deformidle["font-family"]) inlay_object_anim.fontFamily = deformidle["font-family"];
  1212. if (params.type==="group") punchgs.TweenLite.set(inlayer.find('.tp_layer_group_inner_wrapper').first(),{overflow:deform.overflow});
  1213. if (params.type==="row") punchgs.TweenLite.set(inlayer.find('.tp_layer_group_inner_wrapper').first(),{minHeight:mheight});
  1214. if (params.layer_blend_mode!==undefined && jQuery.inArray(params.type,["image","shape","text","svg"]>=0))
  1215. punchgs.TweenLite.set(inlayer.closest('.slide_layer'),{mixBlendMode:params.layer_blend_mode});
  1216. switch (params.type) {
  1217. case "shape":
  1218. case "svg":
  1219. punchgs.TweenLite.set(caption, {
  1220. marginTop:parseInt(u.getVal(params,'margin')[0],0)+"px",
  1221. marginRight:parseInt(u.getVal(params,'margin')[1],0)+"px",
  1222. marginBottom:parseInt(u.getVal(params,'margin')[2],0)+"px",
  1223. marginLeft:parseInt(u.getVal(params,'margin')[3],0)+"px"
  1224. });
  1225. break;
  1226. case "column":
  1227. // Draw Border to fake color Background of Column Content
  1228. punchgs.TweenLite.set(caption.find('.column_background'),{
  1229. borderTopWidth:parseInt(u.getVal(params,'margin')[0],0)+"px",
  1230. borderRightWidth:parseInt(u.getVal(params,'margin')[1],0)+"px",
  1231. borderBottomWidth:parseInt(u.getVal(params,'margin')[2],0)+"px",
  1232. borderLeftWidth:parseInt(u.getVal(params,'margin')[3],0)+"px"
  1233. });
  1234. // Set Column inner Content Spacing for Column Gap's
  1235. inlay_object_anim.marginTop=parseInt(u.getVal(params,'margin')[0],0)+"px";
  1236. inlay_object_anim.marginRight=parseInt(u.getVal(params,'margin')[1],0)+"px";
  1237. inlay_object_anim.marginBottom=parseInt(u.getVal(params,'margin')[2],0)+"px";
  1238. inlay_object_anim.marginLeft=parseInt(u.getVal(params,'margin')[3],0)+"px";
  1239. break;
  1240. default:
  1241. punchgs.TweenLite.set(caption, {
  1242. marginTop:parseInt(u.getVal(params,'margin')[0],0)+"px",
  1243. marginRight:parseInt(u.getVal(params,'margin')[1],0)+"px",
  1244. marginBottom:parseInt(u.getVal(params,'margin')[2],0)+"px",
  1245. marginLeft:parseInt(u.getVal(params,'margin')[3],0)+"px"
  1246. });
  1247. break;
  1248. }
  1249. if (params.type==="image") {
  1250. if(params.scaleProportional) {
  1251. punchgs.TweenLite.set(inlayer.find('img'),{width:"100%",height:"auto"})
  1252. inlay_object_anim.width="100%";
  1253. inlay_object_anim.height="auto";
  1254. } else {
  1255. punchgs.TweenLite.set(inlayer.find('img'),{width:"100%",height:"100%"})
  1256. inlay_object_anim.width="100%";
  1257. inlay_object_anim.height="100%";
  1258. }
  1259. }
  1260. if (params.type==="video") {
  1261. punchgs.TweenLite.set(inlayer.find('.slide_layer_video'),{width:"100%",height:"100%"})
  1262. inlay_object_anim.width="100%";
  1263. inlay_object_anim.height="100%";
  1264. }
  1265. if (params.type==="svg" && params.svg!=undefined) {
  1266. var svgstrokecolor = window.RevColor.get(params.svg["svgstroke-color"]) || "transparent",
  1267. svgstrokewidth = params.svg["svgstroke-width"] || 0,
  1268. svgstrokedasharray = params.svg["svgstroke-dasharray"] || 0,
  1269. svgstrokedashoffset = params.svg["svgstroke-dashoffset"] || 0;
  1270. punchgs.TweenLite.set(inlayer.find('svg'),{
  1271. fill:fontcolor,
  1272. stroke:svgstrokecolor,
  1273. strokeWidth:svgstrokewidth,
  1274. strokeDasharray:svgstrokedasharray,
  1275. strokeDashoffset:svgstrokedashoffset
  1276. });
  1277. punchgs.TweenLite.set(inlayer.find('svg path'),{
  1278. fill:fontcolor
  1279. });
  1280. }
  1281. // SET INLAYER STYLE
  1282. punchgs.TweenLite.set(inlayer, inlay_object_anim);
  1283. if (params.inline !=undefined && params.inline.idle!=undefined)
  1284. jQuery.each(params.inline.idle, function(key,value) {
  1285. inlayer.css(key,value);
  1286. })
  1287. //SET ELEMENT HOVER (IN CASE IT EXISTS)
  1288. if (params.hover===true) {
  1289. deform = params["deformation-hover"];
  1290. var fontcolor = window.RevColor.get(deform.color),
  1291. fonttrans = deform["color-transparency"],
  1292. bgcolor = window.RevColor.get(deform["background-color"]),
  1293. bgtrans = deform["background-transparency"],
  1294. bordercolor = deform["border-color"],
  1295. bordertrans = deform["border-transparency"];
  1296. // BORDER OPACITY
  1297. if (Number(bordertrans)<1) {
  1298. var rgb = UniteAdminRev.convertHexToRGB(bordercolor);
  1299. bordercolor="rgba("+rgb[0]+","+rgb[1]+","+rgb[2]+","+bordertrans+")";
  1300. }
  1301. var tl=new punchgs.TimelineLite();
  1302. tl.pause();
  1303. var hoverspeed = parseFloat(deform.speed)/1000;
  1304. hoverspeed = hoverspeed === 0 ? 0.001 : hoverspeed;
  1305. var hover_object_anim = {
  1306. scaleX:parseFloat(deform.scalex),
  1307. scaleY:parseFloat(deform.scaley),
  1308. rotationX:parseFloat(deform.xrotate),
  1309. rotationY:parseFloat(deform.yrotate),
  1310. rotationZ:parseFloat(deform["2d_rotation"]),
  1311. skewX:parseFloat(deform.skewx),
  1312. skewY:parseFloat(deform.skewy),
  1313. autoAlpha:deform.opacity,
  1314. color:fontcolor,
  1315. textDecoration:deform["text-decoration"],
  1316. borderColor:bordercolor,
  1317. borderRadius:parseInt(deform["border-radius"][0],0)+"px "+parseInt(deform["border-radius"][1],0)+"px "+parseInt(deform["border-radius"][2],0)+"px "+parseInt(deform["border-radius"][3],0)+"px",
  1318. borderWidth:parseInt(deform["border-width"][0],0)+"px "+parseInt(deform["border-width"][1],0)+"px "+parseInt(deform["border-width"][2],0)+"px "+parseInt(deform["border-width"][3],0)+"px",
  1319. //borderWidth:parseInt(deform["border-width"],0)+"px",
  1320. borderStyle:deform["border-style"],
  1321. onComplete:function() {
  1322. if (params.inline && params.inline.hover!=undefined)
  1323. jQuery.each(params.inline.hover, function(key,value) {
  1324. inlayer.css(key,value);
  1325. })
  1326. },
  1327. ease:deform.easing
  1328. }
  1329. if (bgcolor.indexOf("gradient")>=0) {
  1330. hover_object_anim.background = bgcolor;
  1331. } else {
  1332. hover_object_anim.backgroundColor = bgcolor;
  1333. }
  1334. if ((deform.blurfilter!==undefined && parseInt(deform.blurfilter,0)>0) || (deformidle.blurfilter!==undefined && parseInt(deformidle.blurfilter,0)>0)) {
  1335. var bf = 'blur('+parseInt(deform.blurfilter,0)+'px)';
  1336. hover_object_anim['-webkit-filter'] = bf;
  1337. hover_object_anim['filter'] = bf;
  1338. }
  1339. if ((deform.grayscalefilter!==undefined && parseInt(deform.grayscalefilter,0)>0) || (deformidle.grayscalefilter!==undefined && parseInt(deformidle.grayscalefilter,0)>0)) {
  1340. var gf = 'grayscale('+parseInt(deform.grayscalefilter,0)+'%)';
  1341. hover_object_anim['-webkit-filter'] = hover_object_anim['-webkit-filter']===undefined ? gf : hover_object_anim['-webkit-filter']+' '+gf;
  1342. hover_object_anim['filter'] = hover_object_anim['filter']===undefined ? gf: hover_object_anim['filter']+' '+gf;
  1343. }
  1344. if ((deform.brightnessfilter!==undefined && parseInt(deform.brightnessfilter,0)!=100) || (deformidle.brightnessfilter!==undefined && parseInt(deformidle.brightnessfilter,0)!=100)) {
  1345. var brf = 'brightness('+parseInt(deform.brightnessfilter,0)+'%)';
  1346. hover_object_anim['-webkit-filter'] = hover_object_anim['-webkit-filter']===undefined ? brf : hover_object_anim['-webkit-filter']+' '+brf;
  1347. hover_object_anim['filter'] = hover_object_anim['filter']===undefined ? brf: hover_object_anim['filter']+' '+brf;
  1348. }
  1349. /*if (deformidle.shadow_idle===true) {
  1350. var shcolor = UniteAdminRev.convertHexToRGB(deformidle.ds_color);
  1351. shcolor="rgba("+shcolor[0]+","+shcolor[1]+","+shcolor[2]+","+deformidle.ds_opacity+")";
  1352. var dshadow = "drop-shadow("+parseInt(deformidle.ds_x,0)+"px "+parseInt(deformidle.ds_y,0)+"px "+parseInt(deformidle.ds_blur,0)+"px "+shcolor+")";
  1353. hover_object_anim['-webkit-filter'] = inlay_object_anim['-webkit-filter']===undefined ? dshadow : inlay_object_anim['-webkit-filter']+' '+dshadow;
  1354. hover_object_anim['filter'] = inlay_object_anim['filter']===undefined ? dshadow: inlay_object_anim['filter']+' '+dshadow;
  1355. }*/
  1356. // ANIMATION TO HOVER EFFECT
  1357. tl.add(punchgs.TweenLite.to(inlayer, hoverspeed,hover_object_anim));
  1358. if (params.type==="svg" && params.svg!=undefined) {
  1359. var svgstrokecolor = window.RevColor.get(params.svg["svgstroke-hover-color"]) || "transparent",
  1360. svgstrokewidth = params.svg["svgstroke-hover-width"] || 0,
  1361. svgstrokedasharray = params.svg["svgstroke-hover-dasharray"] || 0,
  1362. svgstrokedashoffset = params.svg["svgstroke-hover-dashoffset"] || 0;
  1363. tl.add(punchgs.TweenLite.to(inlayer.find('svg'),hoverspeed,{
  1364. fill:fontcolor,
  1365. stroke:svgstrokecolor,
  1366. strokeWidth:svgstrokewidth,
  1367. strokeDasharray:svgstrokedasharray,
  1368. strokeDashoffset:svgstrokedashoffset,
  1369. ease:deform.easing
  1370. }),0);
  1371. tl.add(punchgs.TweenLite.to(inlayer.find('svg path'),hoverspeed,{
  1372. fill:fontcolor
  1373. }),0);
  1374. }
  1375. inlayer.data('hoveranim',tl);
  1376. // ADD HOVER ON THE ELEMENT
  1377. if (caption.data('hoverexist')===undefined || caption.data('hoverexist')===false) {
  1378. caption.hover(function() {
  1379. if (jQuery('#rs-style-tab-button').hasClass("selected")) {
  1380. if (jQuery('#toggle-idle-hover').hasClass("idleisselected")) {
  1381. var inlayer = jQuery(this).find('.innerslide_layer').first();
  1382. if (inlayer.length>0 && inlayer.data('hoveranim')!=undefined) {
  1383. var tl = inlayer.data('hoveranim');
  1384. tl.play(0);
  1385. }
  1386. }
  1387. }
  1388. },function() {
  1389. if (jQuery('#rs-style-tab-button').hasClass("selected")) {
  1390. if (jQuery('#toggle-idle-hover').hasClass("idleisselected")) {
  1391. var inlayer = jQuery(this).find('.innerslide_layer').first();
  1392. if (inlayer.length>0 && inlayer.data('hoveranim')!=undefined) {
  1393. var tl = inlayer.data('hoveranim');
  1394. tl.reverse();
  1395. }
  1396. }
  1397. }
  1398. });
  1399. caption.data('hoverexist',true);
  1400. }
  1401. if (document.getElementById('toggle-idle-hover').classList.contains("hoverisselected")) {
  1402. tl.seek(tl.endTime());
  1403. } else {
  1404. tl.seek(0);
  1405. tl.pause(0);
  1406. setTimeout(function() {
  1407. tl.pause(0);
  1408. },109)
  1409. }
  1410. } else {
  1411. caption.unbind("hover");
  1412. caption.data("hoverexist",false);
  1413. }
  1414. }
  1415. /******************************************************************************************
  1416. - ANIMATE CURRENT SELECTED LAYER IN AND OUT ON SHORT TIMEFRAME -
  1417. ********************************************************************************************/
  1418. t.animateCurrentSelectedLayer = function(delay) {
  1419. // if (delay==undefined) delay = 229;
  1420. u.removeCurrentLayerRotatable();
  1421. var nextcaption = jQuery('.slide_layer.layer_selected').find('.innerslide_layer').first();
  1422. if (nextcaption.length==0) {
  1423. return false;
  1424. }
  1425. if (nextcaption.data('tl')==undefined)
  1426. var tl=new punchgs.TimelineLite();
  1427. else
  1428. var tl = nextcaption.data('tl');
  1429. tl.clear();
  1430. tl.kill();
  1431. tl.pause();
  1432. nextcaption.data('inanim',theLayerInAnimation(nextcaption));
  1433. nextcaption.data('outanim',theLayerOutAnimation(nextcaption));
  1434. // RUN THE IN ANIMATION
  1435. tl.addLabel("inanimation");
  1436. tl.add(nextcaption.data('inanim'),"=+0.2");
  1437. // ADD SOME ANIMATION ON THE IN/OUT TABS
  1438. tl.addLabel("outanimation");
  1439. tl.add(punchgs.TweenLite.fromTo(jQuery('#startanim_timerunner'),1,{x:0,y:0},{y:41}),"outanimation");
  1440. tl.add(punchgs.TweenLite.fromTo(jQuery('#startanim_timerunnerbox'),1,{x:0,y:0},{y:41}),"outanimation");
  1441. tl.add(punchgs.TweenLite.fromTo(jQuery('#endanim_timerunnerbox'),1,{x:0,y:-41},{x:0,y:0}),"outanimation");
  1442. tl.add(punchgs.TweenLite.fromTo(jQuery('#endanim_timerunner'),1,{x:0,y:-41},{y:0}),"outanimation");
  1443. tl.add(punchgs.TweenLite.set(jQuery('#endanim_wrapper'),{width:67,autoAlpha:1}),"outanimation");
  1444. // RUN THE OUT ANIMATION
  1445. tl.add(nextcaption.data('outanim'));
  1446. tl.eventCallback("onComplete",function() {
  1447. tl.restart();
  1448. })
  1449. tl.play();
  1450. nextcaption.data('tl',tl);
  1451. }
  1452. /***************************************
  1453. - BUILD IN ANIMATION TIMELINE -
  1454. ****************************************/
  1455. var checkAnimValue = function(val,defval,nextcaption,direction,$splitamount) {
  1456. var v = val,
  1457. d = defval;
  1458. if (jQuery.isNumeric(parseFloat(v))) {
  1459. return parseFloat(v);
  1460. } else
  1461. if (v===undefined || v==="inherit") {
  1462. return d;
  1463. } else
  1464. if (v.split("{").length>1) {
  1465. var min = v.split(",");
  1466. max = min[1].split("}")[0];
  1467. min = min[0].split("{")[1];
  1468. if ($splitamount!==undefined && $splitamount>1) {
  1469. v="["+(parseInt(Math.random()*(max-min),0) + parseInt(min,0));
  1470. for (var i=0;i<$splitamount;i++) {
  1471. v = v+"|"+(parseInt(Math.random()*(max-min),0) + parseInt(min,0));
  1472. }
  1473. v = v+"]";
  1474. } else {
  1475. v = Math.random()*(max-min) + min;
  1476. }
  1477. return v;
  1478. } else {
  1479. var cw = jQuery('#divLayers').width(),
  1480. ch = jQuery('#divLayers').height(),
  1481. el = nextcaption.closest('.slide_layer'),
  1482. elw = el.width(),
  1483. elh = el.height(),
  1484. p = el.position();
  1485. if (v.match(/%]/g)) {
  1486. v = v.split("[")[1].split("]")[0];
  1487. if (direction=="horizontal")
  1488. v = elw*parseInt(v,0)/100;
  1489. else
  1490. if (direction=="vertical")
  1491. v = elh*parseInt(v,0)/100;
  1492. } else
  1493. switch (v.toLowerCase()) {
  1494. case "top":
  1495. case "stage_top":
  1496. v = 0-elh-p.top;
  1497. break;
  1498. case "bottom":
  1499. case "stage_bottom":
  1500. v = ch;
  1501. break;
  1502. case "stage_left":
  1503. case "left":
  1504. v = 0-elw-p.left;
  1505. break;
  1506. case "right":
  1507. case "stage_right":
  1508. v = cw;
  1509. break;
  1510. case "center":
  1511. case "stage_center":
  1512. v = (cw/2 - p.left - elw/2);
  1513. break;
  1514. case "middle":
  1515. case "stage_middle":
  1516. v = (ch/2 - p.top - elh/2);
  1517. break;
  1518. case "layer_top":
  1519. v = 0-elh;
  1520. break;
  1521. case "layer_bottom":
  1522. v = elh;
  1523. break;
  1524. case "layer_left":
  1525. v = 0-elw;
  1526. break;
  1527. case "layer_right":
  1528. v = elw;
  1529. break;
  1530. case "layer_center":
  1531. v = elw/2;
  1532. break;
  1533. case "layer_middle":
  1534. v = elh/2;
  1535. break;
  1536. default:
  1537. break;
  1538. }
  1539. return v;
  1540. }
  1541. return v;
  1542. }
  1543. // SFX ANIMATIONS
  1544. function checkSFXAnimations(params,effect,mask,mdelay,easedata,speed) {
  1545. // BLOCK SFX ANIMATIONS
  1546. if (effect!==undefined && effect.indexOf("block")>=0) {
  1547. var $sfx = new Object();
  1548. if (mask.find('.tp-blockmask_in').length===0) {
  1549. mask.append('<div class="tp-blockmask_in"></div>');
  1550. mask.append('<div class="tp-blockmask_out"></div>');
  1551. }
  1552. $sfx.ft = [{scaleY:1,scaleX:0,transformOrigin:"0% 50%"},{scaleY:1,scaleX:1,ease:easedata,immediateRender:false}];
  1553. $sfx.t = {scaleY:1,scaleX:0,transformOrigin:"100% 50%",ease:easedata,immediateRender:false};
  1554. $sfx.bmask_in = mask.find('.tp-blockmask_in');
  1555. $sfx.bmask_out = mask.find('.tp-blockmask_out');
  1556. $sfx.type = "block";
  1557. switch (effect) {
  1558. case "blocktoleft":
  1559. case "blockfromright":
  1560. $sfx.ft[0].transformOrigin = "100% 50%";
  1561. $sfx.t.transformOrigin = "0% 50%";
  1562. break;
  1563. case "blockfromtop":
  1564. case "blocktobottom":
  1565. $sfx.ft = [{scaleX:1,scaleY:0,transformOrigin:"50% 0%"},{scaleX:1,scaleY:1,ease:easedata,immediateRender:false}];
  1566. $sfx.t = {scaleX:1,scaleY:0,transformOrigin:"50% 100%",ease:easedata,immediateRender:false};
  1567. break;
  1568. case "blocktotop":
  1569. case "blockfrombottom":
  1570. $sfx.ft = [{scaleX:1,scaleY:0,transformOrigin:"50% 100%"},{scaleX:1,scaleY:1,ease:easedata,immediateRender:false}];
  1571. $sfx.t = {scaleX:1,scaleY:0,transformOrigin:"50% 0%",ease:easedata,immediateRender:false};
  1572. break;
  1573. }
  1574. $sfx.ft[1].overwrite = "auto";
  1575. $sfx.t.overwrite = "auto";
  1576. return $sfx;
  1577. } else {
  1578. mask.find('.tp-blockmask').remove();
  1579. return false;
  1580. }
  1581. }
  1582. //////////////////////////////////////////////
  1583. // - GET SPLITTEXT DIRECTION ARRAY - //
  1584. /////////////////////////////////////////////
  1585. function shuffleArray(array) {
  1586. var currentIndex = array.length, temporaryValue, randomIndex;
  1587. // While there remain elements to shuffle...
  1588. while (0 !== currentIndex) {
  1589. // Pick a remaining element...
  1590. randomIndex = Math.floor(Math.random() * currentIndex);
  1591. currentIndex -= 1;
  1592. // And swap it with the current element.
  1593. temporaryValue = array[currentIndex];
  1594. array[currentIndex] = array[randomIndex];
  1595. array[randomIndex] = temporaryValue;
  1596. }
  1597. return array;
  1598. }
  1599. function getSplitTextDirs(alen,d) {
  1600. var ri = new Array();
  1601. switch (d) {
  1602. case "forward":
  1603. case "random":
  1604. for (var si=0;si<=alen;si++) { ri.push(si);}
  1605. if (d==="random") ri = shuffleArray(ri);
  1606. break;
  1607. case "backward":
  1608. for (var si=0;si<=alen;si++) { ri.push(alen-si); }
  1609. break;
  1610. case "middletoedge":
  1611. var cc = Math.ceil(alen/2),
  1612. mm = cc-1,
  1613. pp = cc+1;
  1614. ri.push(cc);
  1615. for (var si=0;si<cc;si++) {
  1616. if (mm>=0) ri.push(mm);
  1617. if (pp<=alen) ri.push(pp);
  1618. mm--;
  1619. pp++;
  1620. }
  1621. break;
  1622. case "edgetomiddle":
  1623. var mm = alen,
  1624. pp = 0;
  1625. for (var si=0;si<=Math.floor(alen/2);si++) {
  1626. ri.push(mm);
  1627. if (pp<mm) ri.push(pp);
  1628. mm--;
  1629. pp++;
  1630. }
  1631. break;
  1632. }
  1633. return ri;
  1634. }
  1635. //////////////////////////////////////////////
  1636. // - GET SPLITTEXT CYCLES ANIMATION - //
  1637. /////////////////////////////////////////////
  1638. function getCycles(anim) {
  1639. var _ = {};
  1640. for (var a in anim) {
  1641. if (typeof anim[a] === "string" && anim[a].indexOf("|")>=0) {
  1642. if (_[a]===undefined) _[a] = {index:0};
  1643. _[a].values = ((anim[a].replace("[","")).replace("]","")).split("|");
  1644. _[a].len = _[a].values.length-1;
  1645. }
  1646. }
  1647. return _;
  1648. }
  1649. function theLayerInAnimation(nextcaption) {
  1650. var sl = nextcaption.closest('.slide_layer'),
  1651. id = u.getSerialFromID(sl.attr('id')),
  1652. params = new Object();
  1653. params=jQuery.extend(true,{},params, u.getLayer(id));
  1654. if (sl.children(".tp-mask-wrap").length==0)
  1655. sl.wrapInner('<div style="width:100%;height:100%;position:relative;" class="tp-mask-wrap"></div>');
  1656. var mask = sl.find('.tp-mask-wrap'),
  1657. anim = params.animation,
  1658. colbg = sl.hasClass("slide_layer_type_column") ? sl.find('.column_background').first() : undefined,
  1659. speed = params.frames["frame_0"].speed/1000,
  1660. easedata = params.frames["frame_0"].easing,
  1661. mdelay = params.frames["frame_0"].splitdelay/100,
  1662. $split = params.frames["frame_0"].split,
  1663. $endsplit = params.frames["frame_999"].split,
  1664. animobject = nextcaption,
  1665. thesource = new Object(),
  1666. theresult = new Object(),
  1667. $splitdir = params.frames["frame_0"].split_direction;
  1668. thesource.transx = 0;
  1669. thesource.transy = 0;
  1670. thesource.transz = 0;
  1671. thesource.rotatex = 0;
  1672. thesource.rotatey = 0;
  1673. thesource.rotatez = 0;
  1674. thesource.scalex = 1;
  1675. thesource.scaley = 1;
  1676. thesource.skewx = 0;
  1677. thesource.skewy = 0;
  1678. thesource.opac = 0;
  1679. thesource.tper = parseFloat(params.deformation.pers);
  1680. thesource.origin = "center,center";
  1681. //parseInt(u.getVal(ss,"font-size"),0)+"px",
  1682. theresult.transx = 0;
  1683. theresult.transy = 0;
  1684. theresult.transz = parseFloat(params.deformation.z);
  1685. theresult.rotatex = parseFloat(params.deformation.xrotate);
  1686. theresult.rotatey = parseFloat(params.deformation.yrotate);
  1687. theresult.rotatez = parseFloat(params["2d_rotation"]);
  1688. theresult.scalex = parseFloat(params.deformation.scalex);
  1689. theresult.scaley = parseFloat(params.deformation.scaley);
  1690. theresult.skewx = parseFloat(params.deformation.skewx);
  1691. theresult.skewy = parseFloat(params.deformation.skewy);
  1692. theresult.opac = parseFloat(params.deformation.opacity);
  1693. theresult.tper = parseFloat(params.deformation.pers);
  1694. thesource['-webkit-filter'] = "";
  1695. thesource['filter'] = "";
  1696. theresult['-webkit-filter'] = "";
  1697. theresult['filter'] = "";
  1698. //FILTERS
  1699. if ((params.deformation.blurfilter!==undefined && parseInt(params.deformation.blurfilter,0)>0) || (params.blurfilter_start!==undefined && parseInt(params.blurfilter_start,0)>0)) {
  1700. var bfidle = 'blur('+parseInt(params.deformation.blurfilter,0)+'px)',
  1701. bf = params.blurfilter_start==="inherit" ? bfidle : 'blur('+parseInt(params.blurfilter_start,0)+'px)';
  1702. thesource['-webkit-filter'] = bf;
  1703. thesource['filter'] = bf;
  1704. theresult['-webkit-filter'] = bfidle;
  1705. theresult['filter'] = bfidle;
  1706. }
  1707. if ((params.deformation.grayscalefilter!==undefined && parseInt(params.deformation.grayscalefilter,0)>0) || (params.grayscalefilter_start!==undefined && parseInt(params.grayscalefilter_start,0)>0)) {
  1708. var gfidle = 'grayscale('+parseInt(params.deformation.grayscalefilter,0)+'%)',
  1709. gf = params.grayscalefilter_start==="inherit" ? gfidle : 'grayscale('+parseInt(params.grayscalefilter_start,0)+'%)';
  1710. thesource['-webkit-filter'] = thesource['-webkit-filter']==="" ? gf : thesource['-webkit-filter']+' '+gf;
  1711. thesource['filter'] = thesource['filter']==="" ? gf: thesource['filter']+' '+gf;
  1712. theresult['-webkit-filter'] = theresult['-webkit-filter']==="" ? gfidle : theresult['-webkit-filter']+' '+gfidle;
  1713. theresult['filter'] = theresult['filter']==="" ? gfidle: theresult['filter']+' '+gfidle;
  1714. }
  1715. if ((params.deformation.brightnessfilter!==undefined && parseInt(params.deformation.brightnessfilter,0)!=100) || (params.brightnessfilter_start!==undefined && parseInt(params.brightnessfilter_start,0)!=100)) {
  1716. var brfidle = 'brightness('+parseInt(params.deformation.brightnessfilter,0)+'%)',
  1717. brr = params.brightnessfilter_start==="inherit" ? brfidle : 'brightness('+parseInt(params.brightnessfilter_start,0)+'%)';
  1718. thesource['-webkit-filter'] = thesource['-webkit-filter']==="" ? brr : thesource['-webkit-filter']+' '+brr;
  1719. thesource['filter'] = thesource['filter']==="" ? brr: thesource['filter']+' '+brr;
  1720. theresult['-webkit-filter'] = theresult['-webkit-filter']==="" ? brfidle : theresult['-webkit-filter']+' '+brfidle;
  1721. theresult['filter'] = theresult['filter']==="" ? brfidle: theresult['filter']+' '+brfidle;
  1722. }
  1723. var originx = params["layer_2d_origin_x"]+"%",
  1724. originy = params["layer_2d_origin_y"]+"%",
  1725. origin = originx+" "+originy;
  1726. if (nextcaption.data('mySplitText') != undefined)
  1727. if ($split !="none" || $endsplit !="none")
  1728. try{nextcaption.data('mySplitText').revert();} catch(e) {}
  1729. if ($split == "chars" || $split == "words" || $split == "lines" || $endsplit == "chars" || $endsplit == "words" || $endsplit == "lines" ) {
  1730. if (nextcaption.find('a').length>0)
  1731. nextcaption.data('mySplitText',new SplitText(nextcaption.find('a'),{type:"lines,words,chars"}));
  1732. else
  1733. nextcaption.data('mySplitText',new SplitText(nextcaption,{type:"lines,words,chars"}));
  1734. } else {
  1735. nextcaption.data('mySplitText',"none");
  1736. }
  1737. switch($split) {
  1738. case "chars":
  1739. animobject = nextcaption.data('mySplitText').chars;
  1740. break;
  1741. case "words":
  1742. animobject = nextcaption.data('mySplitText').words;
  1743. break;
  1744. case "lines":
  1745. animobject = nextcaption.data('mySplitText').lines;
  1746. break;
  1747. }
  1748. var timedelay=((animobject.length*mdelay) + speed)*1000;
  1749. punchgs.TweenLite.killTweensOf(nextcaption,false);
  1750. punchgs.TweenLite.killTweensOf(animobject,false);
  1751. punchgs.TweenLite.set(mask,{clearProps:"transform"});
  1752. punchgs.TweenLite.set(nextcaption,{clearProps:"transform"});
  1753. punchgs.TweenLite.set(animobject,{clearProps:"transform"});
  1754. var tl = new punchgs.TimelineLite(),
  1755. tt = new punchgs.TimelineLite();
  1756. if (animobject != nextcaption) {
  1757. tl.add(punchgs.TweenLite.set(nextcaption, { scaleX:theresult.scalex, scaleY:theresult.scaley,
  1758. rotationX:theresult.rotatex, rotationY:theresult.rotatey, rotationZ:theresult.rotatez,
  1759. x:theresult.transx, y:theresult.transy, z:theresult.transz+1,
  1760. skewX:theresult.skewx, skewY:theresult.skewy,
  1761. transformPerspective:theresult.tper, transformOrigin:origin,
  1762. autoAlpha:theresult.opac,overwrite:"all"}));
  1763. }
  1764. if (nextcaption.data("timer")) clearTimeout(nextcaption.data('timer'));
  1765. if (nextcaption.data("timera")) clearTimeout(nextcaption.data('timera'));
  1766. var $sfx = checkSFXAnimations(params,params.frames["frame_0"].sfx_effect,mask,mdelay,easedata,speed);
  1767. if ($sfx!==false) {
  1768. if ($sfx.type==="block") {
  1769. $sfx.ft[0].background = window.RevColor.get(params.frames["frame_0"].sfxcolor);
  1770. tl.add(punchgs.TweenLite.fromTo($sfx.bmask_in,speed/2, $sfx.ft[0], $sfx.ft[1] ,mdelay));
  1771. tl.add(punchgs.TweenLite.fromTo($sfx.bmask_in,speed/2, $sfx.ft[1], $sfx.t, (mdelay+speed/2)));
  1772. tl.add(tt.set(animobject,{clearProps:"transform"}),0);
  1773. tl.add(tt.staggerFromTo(animobject,0.05,{ x:0,y:0,scale:1,autoAlpha:0},{x:0,y:0,autoAlpha:1,delay:speed/2},mdelay),0);
  1774. }
  1775. } else {
  1776. thesource.transx = checkAnimValue(params.x_start,theresult.transx,nextcaption,"horizontal",animobject.length);
  1777. thesource.transy = checkAnimValue(params.y_start,theresult.transy,nextcaption,"vertical",animobject.length);
  1778. thesource.transz = checkAnimValue(params.z_start,theresult.transz,nextcaption,undefined,animobject.length);
  1779. thesource.rotatex = checkAnimValue(params.x_rotate_start,theresult.rotatex,nextcaption,undefined,animobject.length);
  1780. thesource.rotatey = checkAnimValue(params.y_rotate_start,theresult.rotatey,nextcaption,undefined,animobject.length);
  1781. thesource.rotatez = checkAnimValue(params.z_rotate_start,theresult.rotatez,nextcaption,undefined,animobject.length);
  1782. thesource.scalex = checkAnimValue(params.scale_x_start,theresult.scalex,nextcaption,undefined,animobject.length);
  1783. thesource.scaley = checkAnimValue(params.scale_y_start,theresult.scaley,nextcaption,undefined,animobject.length);
  1784. thesource.skewx = checkAnimValue(params.skew_x_start,theresult.skewx,nextcaption,undefined,animobject.length);
  1785. thesource.skewy =checkAnimValue( params.skew_y_start,theresult.skewy,nextcaption,undefined,animobject.length);
  1786. thesource.opac = checkAnimValue(params.opacity_start,theresult.opac,nextcaption,undefined,animobject.length);
  1787. thesource.tper = params.deformation.pers;
  1788. tl.add(tt.set(animobject,{clearProps:"transform"}),0);
  1789. var animfrom = { scaleX:thesource.scalex,
  1790. scaleY:thesource.scaley,
  1791. rotationX:thesource.rotatex, rotationY:thesource.rotatey, rotationZ:thesource.rotatez,
  1792. x:thesource.transx, y:thesource.transy, z:thesource.transz,
  1793. skewX:thesource.skewx, skewY:thesource.skewy,
  1794. transformPerspective:thesource.tper, transformOrigin:origin,
  1795. autoAlpha:thesource.opac,
  1796. "-webkit-filter":thesource['-webkit-filter'],
  1797. filter:thesource['filter'],
  1798. },
  1799. animto = { scaleX:theresult.scalex, scaleY:theresult.scaley,
  1800. rotationX:theresult.rotatex, rotationY:theresult.rotatey, rotationZ:theresult.rotatez,
  1801. x:theresult.transx, y:theresult.transy, z:theresult.transz,
  1802. skewX:theresult.skewx, skewY:Number(theresult.skewy),
  1803. transformPerspective:theresult.tper, transformOrigin:origin,
  1804. ease:easedata,
  1805. autoAlpha:theresult.opac,overwrite:"all",
  1806. force3D:"auto",
  1807. "-webkit-filter":theresult['-webkit-filter'],
  1808. filter:theresult['filter'],
  1809. };
  1810. if (params.frames["frame_0"].use_text_c) {
  1811. animfrom.color = params.frames["frame_0"].text_c;
  1812. animto.color = window.RevColor.get(u.getVal(params["static_styles"],"color"));
  1813. }
  1814. if (params.frames["frame_0"].use_bg_c) {
  1815. animfrom.backgroundColor = params.frames["frame_0"].bg_c;
  1816. animto.backgroundColor = window.RevColor.get(params.deformation["background-color"]);
  1817. }
  1818. if (animobject.length>1) {
  1819. var ri = getSplitTextDirs(animobject.length-1, $splitdir),
  1820. cycles = {from:getCycles(jQuery.extend({},animfrom,true)), to:getCycles(jQuery.extend({},animto,true))};
  1821. for (var si in animobject) {
  1822. var $fanim = jQuery.extend({},animfrom,true),
  1823. $tanim = jQuery.extend({},animto,true);
  1824. for (var k in cycles.from) {
  1825. $fanim[k] = parseInt(cycles.from[k].values[cycles.from[k].index],0);
  1826. cycles.from[k].index = cycles.from[k].index < cycles.from[k].len ? cycles.from[k].index+1 : 0;
  1827. }
  1828. tl.add(tt.fromTo(animobject[ri[si]],speed,$fanim,$tanim,mdelay*si),0);
  1829. }
  1830. } else {
  1831. tl.add(tt.staggerFromTo(animobject,speed, jQuery.extend({},animfrom,true),jQuery.extend({},animto,true),mdelay));
  1832. }
  1833. }
  1834. // COLUMN BG ANIMATION
  1835. if (colbg!=undefined) {
  1836. tl.add(punchgs.TweenLite.fromTo(colbg,speed,
  1837. { scaleX:thesource.scalex,
  1838. scaleY:thesource.scaley,
  1839. rotationX:thesource.rotatex, rotationY:thesource.rotatey, rotationZ:thesource.rotatez,
  1840. x:thesource.transx, y:thesource.transy, z:thesource.transz,
  1841. skewX:thesource.skewx, skewY:thesource.skewy,
  1842. transformPerspective:thesource.tper, transformOrigin:origin,
  1843. autoAlpha:thesource.opac
  1844. },
  1845. { scaleX:theresult.scalex, scaleY:theresult.scaley,
  1846. rotationX:theresult.rotatex, rotationY:theresult.rotatey, rotationZ:theresult.rotatez,
  1847. x:theresult.transx, y:theresult.transy, z:theresult.transz,
  1848. skewX:theresult.skewx, skewY:Number(theresult.skewy),
  1849. transformPerspective:theresult.tper, transformOrigin:origin,
  1850. ease:easedata,
  1851. autoAlpha:theresult.opac,overwrite:"all",
  1852. force3D:"auto"
  1853. }),0);
  1854. }
  1855. // MASK ANIMATION
  1856. if (!params.mask_start) tl.add(punchgs.TweenLite.set(mask,{overflow:"visible"}),0);
  1857. // MASK ANIMATION
  1858. if (params.mask_start) {
  1859. var maskp = new Object();
  1860. maskp.x = checkAnimValue(params.mask_x_start,params.mask_x_start,nextcaption,"horizontal");
  1861. maskp.y = checkAnimValue(params.mask_y_start,params.mask_y_start,nextcaption,"vertical");
  1862. tl.add(punchgs.TweenLite.fromTo(mask,speed,{overflow:"hidden",x:maskp.x,y:maskp.y},{x:0,y:0,ease:easedata}),0);
  1863. }
  1864. if (params.mask_start || params.mask_end)
  1865. mask.addClass('tp-showmask');
  1866. else
  1867. mask.removeClass('tp-showmask');
  1868. nextcaption.data('startanimobj',thesource);
  1869. tl.add(punchgs.TweenLite.fromTo(jQuery('#startanim_wrapper'),tt.totalDuration(),{autoAlpha:1,width:0},{width:67,ease:easedata}),0);
  1870. if (animobject != nextcaption)
  1871. tl.add(punchgs.TweenLite.fromTo(nextcaption.parent(), 0.2,{autoAlpha:0},{autoAlpha:1}),0);
  1872. return tl;
  1873. }
  1874. /***************************************
  1875. - BUILD OUT ANIMATION TIMELINE -
  1876. ****************************************/
  1877. function theLayerOutAnimation(nextcaption) {
  1878. var sl = nextcaption.closest('.slide_layer'),
  1879. id = u.getSerialFromID(sl.attr('id')),
  1880. params = new Object();
  1881. params=jQuery.extend(true,{},params, u.getLayer(id));
  1882. var mask = sl.find('.tp-mask-wrap'),
  1883. colbg = sl.hasClass("slide_layer_type_column") ? sl.find('.column_background').first() : undefined,
  1884. anim = params.frames["frame_999"].animation,
  1885. speed = params.frames["frame_999"].speed/1000,
  1886. easedata = params.frames["frame_999"].easing,
  1887. mdelay = params.frames["frame_999"].splitdelay/100,
  1888. $split = params.frames["frame_999"].split,
  1889. animobject = nextcaption;
  1890. theanim = new Object(),
  1891. theresult = new Object(),
  1892. originx = params["layer_2d_origin_x"]+"%",
  1893. originy = params["layer_2d_origin_y"]+"%",
  1894. origin = originx+" "+originy,
  1895. $splitdir = params.frames["frame_999"].split_direction;
  1896. easedata = easedata=="nothing" ? params.frames["frame_999"].easing : easedata;
  1897. theanim.transx = 0;
  1898. theanim.transy = 0;
  1899. theanim.transz = 0;
  1900. theanim.rotatex = 0;
  1901. theanim.rotatey = 0;
  1902. theanim.rotatez = 0;
  1903. theanim.scalex = 1;
  1904. theanim.scaley = 1;
  1905. theanim.skewx = 0;
  1906. theanim.skewy = 0;
  1907. theanim.opac = 0;
  1908. theanim.tper = parseFloat(params.deformation.pers);;
  1909. theresult.transx = 0;
  1910. theresult.transy = 0;
  1911. theresult.transz = parseFloat(params.deformation.z);
  1912. theresult.rotatex = parseFloat(params.deformation.xrotate);
  1913. theresult.rotatey = parseFloat(params.deformation.yrotate);
  1914. theresult.rotatez = parseFloat(params["2d_rotation"]);
  1915. theresult.scalex = parseFloat(params.deformation.scalex);
  1916. theresult.scaley = parseFloat(params.deformation.scaley);
  1917. theresult.skewx = parseFloat(params.deformation.skewx);
  1918. theresult.skewy =parseFloat( params.deformation.skewy);
  1919. theresult.opac = parseFloat(params.deformation.opacity);
  1920. theresult.tper = parseFloat(params.deformation.pers);
  1921. theanim['-webkit-filter'] = "";
  1922. theanim['filter'] = "";
  1923. theresult['-webkit-filter'] = "";
  1924. theresult['filter'] = "";
  1925. //FILTERS
  1926. if ((params.deformation.blurfilter!==undefined && parseInt(params.deformation.blurfilter,0)>0) || (params.blurfilter_start!==undefined && parseInt(params.blurfilter_start,0)>0)) {
  1927. var bfidle = 'blur('+parseInt(params.deformation.blurfilter,0)+'px)',
  1928. bf = params.blurfilter_end==="inherit" ? bfidle : 'blur('+parseInt(params.blurfilter_end,0)+'px)';
  1929. theanim['-webkit-filter'] = bf;
  1930. theanim['filter'] = bf;
  1931. theresult['-webkit-filter'] = bfidle;
  1932. theresult['filter'] = bfidle;
  1933. }
  1934. if ((params.deformation.grayscalefilter!==undefined && parseInt(params.deformation.grayscalefilter,0)>0) || (params.grayscalefilter_end!==undefined && parseInt(params.grayscalefilter_end,0)>0)) {
  1935. var gfidle = 'grayscale('+parseInt(params.deformation.grayscalefilter,0)+'%)',
  1936. gf = params.grayscalefilter_end==="inherit" ? gfidle : 'grayscale('+parseInt(params.grayscalefilter_end,0)+'%)';
  1937. theanim['-webkit-filter'] = theanim['-webkit-filter']==="" ? gf : theanim['-webkit-filter']+' '+gf;
  1938. theanim['filter'] = theanim['filter']==="" ? gf: theanim['filter']+' '+gf;
  1939. theresult['-webkit-filter'] = theresult['-webkit-filter']==="" ? gfidle : theresult['-webkit-filter']+' '+gfidle;
  1940. theresult['filter'] = theresult['filter']==="" ? gfidle: theresult['filter']+' '+gfidle;
  1941. }
  1942. if ((params.deformation.brightnessfilter!==undefined && parseInt(params.deformation.brightnessfilter,0)!=100) || (params.brightnessfilter_end!==undefined && parseInt(params.brightnessfilter_end,0)!=100)) {
  1943. var brfidle = 'brightness('+parseInt(params.deformation.brightnessfilter,0)+'%)',
  1944. brf = params.brightnessfilter_end==="inherit" ? brfidle : 'brightness('+parseInt(params.brightnessfilter_end,0)+'%)';
  1945. theanim['-webkit-filter'] = theanim['-webkit-filter']==="" ? brf : theanim['-webkit-filter']+' '+brf;
  1946. theanim['filter'] = theanim['filter']==="" ? brf: theanim['filter']+' '+brf;
  1947. theresult['-webkit-filter'] = theresult['-webkit-filter']==="" ? brfidle : theresult['-webkit-filter']+' '+brfidle;
  1948. theresult['filter'] = theresult['filter']==="" ? brfidle: theresult['filter']+' '+brfidle;
  1949. }
  1950. switch($split) {
  1951. case "chars":
  1952. animobject = nextcaption.data('mySplitText').chars;
  1953. break;
  1954. case "words":
  1955. animobject = nextcaption.data('mySplitText').words;
  1956. break;
  1957. case "lines":
  1958. animobject = nextcaption.data('mySplitText').lines;
  1959. break;
  1960. }
  1961. var timedelay=((animobject.length*mdelay) + speed)*1000;
  1962. var tl = new punchgs.TimelineLite(),
  1963. tt = new punchgs.TimelineLite();
  1964. if (anim == null) anim = "auto";
  1965. // MASK ANIMATION
  1966. if (!params.mask_end || (anim==="auto" && !params.mask_start))
  1967. tl.add(punchgs.TweenLite.set(mask,{overflow:"visible"}));
  1968. var $sfx = checkSFXAnimations(params,params.frames["frame_999"].sfx_effect,mask,mdelay,easedata,speed);
  1969. if ($sfx!==false) {
  1970. if ($sfx.type==="block") {
  1971. $sfx.ft[0].background = window.RevColor.get(params.frames["frame_999"].sfxcolor);
  1972. tl.add(punchgs.TweenLite.fromTo($sfx.bmask_out,speed/2, $sfx.ft[0], $sfx.ft[1] ,mdelay));
  1973. tl.add(punchgs.TweenLite.fromTo($sfx.bmask_out,speed/2, $sfx.ft[1], $sfx.t, (mdelay+speed/2)));
  1974. tl.add(tt.set(animobject,{clearProps:"transform"}),0);
  1975. tl.add(tt.staggerTo(animobject,0.05,{x:0,y:0,autoAlpha:0,delay:speed/2},mdelay),0);
  1976. }
  1977. } else {
  1978. if (anim==="auto") {
  1979. theanim = nextcaption.data('startanimobj');
  1980. } else {
  1981. var mask_is_on = params.mask_end || (anim==="auto" && params.mask_start) ? true : false;
  1982. theanim.transx = checkAnimValue(params.x_end,theresult.transx,nextcaption,"horizontal",animobject.length);
  1983. theanim.transy = checkAnimValue(params.y_end,theresult.transy,nextcaption,"vertical",animobject.length);
  1984. theanim.transz = checkAnimValue(params.z_end,theresult.transz,nextcaption,undefined,animobject.length);
  1985. theanim.rotatex = checkAnimValue(params.x_rotate_end,theresult.rotatex,nextcaption,undefined,animobject.length);
  1986. theanim.rotatey = checkAnimValue(params.y_rotate_end,theresult.rotatey,nextcaption,undefined,animobject.length);
  1987. theanim.rotatez = checkAnimValue(params.z_rotate_end,theresult.rotatez,nextcaption,undefined,animobject.length);
  1988. theanim.scalex = checkAnimValue(params.scale_x_end,theresult.scalex,nextcaption,undefined,animobject.length);
  1989. theanim.scaley = checkAnimValue(params.scale_y_end,theresult.scaley,nextcaption,undefined,animobject.length);
  1990. theanim.skewx = checkAnimValue(params.skew_x_end,theresult.skewx,nextcaption,undefined,animobject.length);
  1991. theanim.skewy =checkAnimValue( params.skew_y_end,theresult.skewy,nextcaption,undefined,animobject.length);
  1992. theanim.opac = checkAnimValue(params.opacity_end,theresult.opac,nextcaption,undefined,animobject.length);
  1993. theanim.tper = params.deformation.pers;
  1994. }
  1995. tl.add(tt.staggerTo(animobject,0.001,
  1996. { "-webkit-filter":theresult['-webkit-filter'],
  1997. filter:theresult['filter']
  1998. },(mdelay-0.001)));
  1999. var animto = {
  2000. scaleX:theanim.scalex,
  2001. scaleY:theanim.scaley,
  2002. rotationX:theanim.rotatex,
  2003. rotationY:theanim.rotatey,
  2004. rotationZ:theanim.rotatez,
  2005. x:theanim.transx,
  2006. y:theanim.transy,
  2007. z:theanim.transz+1,
  2008. skewX:theanim.skewx,
  2009. skewY:theanim.skewy,
  2010. opacity:theanim.opac,
  2011. transformPerspective:theanim.tper,
  2012. transformOrigin:origin,
  2013. ease:easedata,
  2014. "-webkit-filter":theanim['-webkit-filter'],
  2015. filter:theanim['filter'],
  2016. };
  2017. if (params.frames["frame_999"].use_text_c)
  2018. animto.color = params.frames["frame_999"].text_c;
  2019. if (params.frames["frame_999"].use_bg_c)
  2020. animto.backgroundColor = params.frames["frame_999"].bg_c;
  2021. if (animobject.length>1) {
  2022. var ri = getSplitTextDirs(animobject.length-1, $splitdir),
  2023. cycles = {to:getCycles(jQuery.extend({},animto,true))};
  2024. for (var si in animobject) {
  2025. var $fanim = jQuery.extend({},animto,true);
  2026. for (var k in cycles.to) {
  2027. $fanim[k] = parseInt(cycles.to[k].values[cycles.to[k].index],0);
  2028. cycles.to[k].index = cycles.to[k].index < cycles.to[k].len ? cycles.to[k].index+1 : 0;
  2029. }
  2030. tl.add(tt.to(animobject[ri[si]],speed,$fanim,mdelay*si),0);
  2031. }
  2032. } else {
  2033. tl.add(tt.staggerTo(animobject,speed,jQuery.extend({},animto,true),mdelay));
  2034. }
  2035. }
  2036. // COLUMN BG ANIMATION
  2037. if (colbg!=undefined)
  2038. tl.add(punchgs.TweenLite.to(colbg,speed,
  2039. {
  2040. scaleX:theanim.scalex,
  2041. scaleY:theanim.scaley,
  2042. rotationX:theanim.rotatex,
  2043. rotationY:theanim.rotatey,
  2044. rotationZ:theanim.rotatez,
  2045. x:theanim.transx,
  2046. y:theanim.transy,
  2047. z:theanim.transz+1,
  2048. skewX:theanim.skewx,
  2049. skewY:theanim.skewy,
  2050. opacity:theanim.opac,
  2051. transformPerspective:theanim.tper,
  2052. transformOrigin:origin,
  2053. ease:easedata
  2054. },mdelay),0);
  2055. // MASK ANIMATION
  2056. if (params.mask_end) {
  2057. var maskp = new Object();
  2058. maskp.x = checkAnimValue(params.mask_x_end,params.mask_x_end,nextcaption);
  2059. maskp.y = checkAnimValue(params.mask_y_end,params.mask_y_end,nextcaption);
  2060. tl.add(punchgs.TweenLite.to(mask,speed,{x:maskp.x,y:maskp.y,ease:easedata,overflow:"hidden"},mdelay),0);
  2061. } else
  2062. if (anim==="auto" && params.mask_start) {
  2063. var maskp = new Object();
  2064. maskp.x = checkAnimValue(params.mask_x_start,params.mask_x_start,nextcaption);
  2065. maskp.y = checkAnimValue(params.mask_y_start,params.mask_y_start,nextcaption);
  2066. tl.add(punchgs.TweenLite.to(mask,speed,{x:maskp.x,y:maskp.y,ease:easedata},mdelay),0);
  2067. }
  2068. tl.add(punchgs.TweenLite.fromTo(jQuery('#endanim_timerunnerbox'),tt.totalDuration(),{x:0},{x:-67,ease:easedata}),0);
  2069. tl.add(punchgs.TweenLite.fromTo(jQuery('#endanim_timerunner'),tt.totalDuration(),{x:0},{x:-67,ease:easedata}),0);
  2070. if (animobject != nextcaption)
  2071. tl.add(punchgs.TweenLite.fromTo(nextcaption.parent(), 0.2,{autoAlpha:1},{autoAlpha:0}),(tt.totalDuration()-0.2));
  2072. return tl;
  2073. }
  2074. /******************************************************************************************
  2075. - PUT THE BLUE TIMER LINE IN POSITION BASED ON DEFAULT OR PREDEFINED VALUES -
  2076. ******************************************************************************************/
  2077. var initSlideDuration = function() {
  2078. // SET MAXTIME POSITION
  2079. var duration = jQuery('#delay').val();
  2080. if (duration==undefined || duration==0 || duration=="undefined")
  2081. duration = g_slideTime;
  2082. jQuery('#mastertimer-maxtime').css({left:duration/10});
  2083. }
  2084. /******************************************************************************************
  2085. - EVENT LISTENER FOR MASTER TIME POSITION CHANGE, ALL ANIMATION MOVE IN POSTION -
  2086. ********************************************************************************************/
  2087. t.masterTimerPositionChange = function(recreatetimers) {
  2088. var mp = jQuery(document.getElementById('mastertimer-position')),
  2089. tpos = (((mp[0].getBoundingClientRect().left - document.getElementById('master-rightheader').getBoundingClientRect().left+t.timercorrectur))/100),
  2090. mst = jQuery(document.getElementById('divbgholder')).data('slidetimeline');
  2091. mp[0].className = mp[0].classList.contains("hovering") ? mp[0].className : mp[0].className + " hovering";
  2092. if (tpos<=0 && (mp.data('wasidle')=="wasnotidle" || mp.data('wasidle')==undefined)) {
  2093. t.stopAllLayerAnimation();
  2094. mp.data('wasidle',"wasidle");
  2095. if (mp.data('tl')!=undefined) {
  2096. mp.data('tl').kill();
  2097. }
  2098. if (mst!=undefined) {
  2099. mst.stop();
  2100. mst.seek(100000);
  2101. }
  2102. t.allLayerToIdle();
  2103. }
  2104. if (tpos>0 && (mp.data('wasidle')=="wasidle" || mp.data('wasidle')==undefined)) {
  2105. mp.data('wasidle','wasnotidle');
  2106. createGlobalTimeline(true);
  2107. document.getElementById('mastertimer-playpause-wrapper').innerHTML = '<i class="eg-icon-play"></i><span>PLAY</span>';
  2108. mp[0].className = mp[0].classList.contains('inaction') ? mp[0].className : mp[0].className+" inaction";
  2109. }
  2110. if (tpos>0 && mp.data('wasidle')=="wasnotidle") {
  2111. if (recreatetimers) createGlobalTimeline(false);
  2112. var mtl = mp.data('tl');
  2113. mtl.stop();
  2114. mst.stop();
  2115. mtl.seek(tpos);
  2116. mst.seek(tpos);
  2117. }
  2118. if (tpos>0) {
  2119. var mpst = document.getElementById('mastertimer-poscurtime');
  2120. mpst.className = mpst.classList.contains('movedalready') ? mpst.className : mpst.className+' movedalready';
  2121. mpst.innerHTML = t.convToTime(tpos*100);
  2122. mp.removeClass("timerinidle");
  2123. } else {
  2124. var mpst = document.getElementById('mastertimer-poscurtime');
  2125. if (mpst.classList.contains('movedalready')) {
  2126. mpst.innerHTML = "Idle";
  2127. mp.addClass("timerinidle");
  2128. }
  2129. }
  2130. mp.trigger('poschanged');
  2131. }
  2132. t.convToTime = function(tpos) {
  2133. var min = Math.floor(tpos/6000),
  2134. sec = Math.floor(Math.ceil(tpos - (min*6000))/100),
  2135. ms = Math.round(tpos-(sec*100)-(min*6000));
  2136. if (min==0) min = "00"
  2137. else
  2138. if (min<10) min = "0"+min.toString();
  2139. if (sec==0) sec = "00"
  2140. else
  2141. if (sec<10) sec = "0"+sec.toString();
  2142. if (ms==0) ms = "00"
  2143. else
  2144. if (ms<10) ms = "0"+ms.toString()
  2145. return min.toString()+":"+sec.toString()+"."+ms.toString();
  2146. }
  2147. t.allLayerToIdle = function(obj) {
  2148. var search = obj!=undefined && obj.type!=undefined ? 'slide_layer_type_'+obj.type : 'slide_layer';
  2149. elements = document.getElementsByClassName(search);
  2150. for (var i=0;i<elements.length;i++) {
  2151. t.rebuildLayerIdle(jQuery(elements[i]));
  2152. }
  2153. }
  2154. /***********************************
  2155. - INIT THE MASTER TIMER -
  2156. ************************************/
  2157. var initMasterTimer = function() {
  2158. var mw = jQuery('#master-rightheader');
  2159. // CHANGE THE POSITION OF THE TIME LINE
  2160. jQuery('#mastertimer-position').on("poschanged",function() {
  2161. var mp = jQuery(this),
  2162. tpos = Math.round((mp.position().left+t.timercorrectur)),
  2163. str = t.convToTime(tpos);
  2164. if (tpos<0) str="IDLE";
  2165. document.getElementById('master-timer-time').innerHTML = str;
  2166. });
  2167. // BACK TO IDLE
  2168. jQuery('#mastertimer-backtoidle').click(function() {
  2169. jQuery('#mastertimer-position').removeClass("inaction");
  2170. document.getElementById('mastertimer-playpause-wrapper').innerHTML = '<i class="eg-icon-play"></i><span>PLAY</span>';
  2171. document.getElementById('master-timer-time').innerHTML = 'IDLE';
  2172. t.stopAllLayerAnimation();
  2173. var mp = jQuery('#mastertimer-position'),
  2174. mst = jQuery('#divbgholder').data('slidetimeline');
  2175. mp.css({left:"-15px"});
  2176. if (mp.data('tl')!=undefined) {
  2177. mp.data('tl').kill();
  2178. }
  2179. if (mst!=undefined) {
  2180. mst.stop();
  2181. mst.seek(100000);
  2182. }
  2183. t.allLayerToIdle();
  2184. })
  2185. // HOVER OUT OF MASTERTIMER SHOULD RESET ANY SETTINGS
  2186. jQuery('#divLayers').hover(function() {
  2187. var mp = jQuery(document.getElementById('mastertimer-position')),
  2188. mpw = document.getElementById('mastertimer-playpause-wrapper'),
  2189. mst = jQuery(document.getElementById('divbgholder')).data('slidetimeline');
  2190. if (mp.data('tl')!=undefined)
  2191. mp.data('tl').stop();
  2192. if (mst!=undefined) {
  2193. mst.stop();
  2194. mst.seek(100000);
  2195. }
  2196. mp.removeClass("inaction");
  2197. mpw.innerHTML = '<i class="eg-icon-play"></i><span>PLAY</span>';
  2198. if (mp.hasClass("hovering")) {
  2199. mp.removeClass("hovering");
  2200. t.stopAllLayerAnimation();
  2201. t.allLayerToIdle();
  2202. // Click on LayerAnimation Button the current Selected Layer should be Animated
  2203. if (!jQuery('#layeranimation-playpause').hasClass("inpuase")) {
  2204. if (t.checkAnimationTab())
  2205. t.animateCurrentSelectedLayer(1);
  2206. }
  2207. if (!jQuery('#loopanimation-playpause').hasClass("inpuase")) {
  2208. if (t.checkLoopTab())
  2209. t.animateCurrentSelectedLayer(2);
  2210. }
  2211. }
  2212. });
  2213. // HOVER ON THE ANIMATION PART, SHOULD START THE ANIMATION MODE AGAIN
  2214. jQuery('#mastertimer-wrapper').hover(function() {
  2215. if (!jQuery(this).hasClass("overme")) {
  2216. jQuery(this).addClass("overme");
  2217. t.masterTimerPositionChange(true);
  2218. }
  2219. }, function() {
  2220. jQuery(this).removeClass("overme");
  2221. })
  2222. // DRAG THE MASTER TIMER SHOULD ANIMATE THINGS IN POSITION
  2223. jQuery('#mastertimer-position').draggable({
  2224. axis:"x",
  2225. start:function(event,ui) {
  2226. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime'),{autoAlpha:0,x:-3,y:-10});
  2227. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime-b'),{autoAlpha:0});
  2228. t.deactivatePerfectScrollBars();
  2229. },
  2230. drag:function(event,ui) {
  2231. ui.position.left = Math.max(-15,ui.position.left);
  2232. t.masterTimerPositionChange(false);
  2233. },
  2234. stop:function(event,ui) {
  2235. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime'),{autoAlpha:1,x:-1,y:0,ease:punchgs.Power2.easeInOut});
  2236. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime-b'),{autoAlpha:1});
  2237. }
  2238. });
  2239. // CLICK SOMEWHERE ON THE LINEAR
  2240. jQuery('#mastertimer-linear').click(function(e) {
  2241. var lo = jQuery('#mastertimer-linear').offset().left,
  2242. sl = jQuery('#master-rightheader').scrollLeft();
  2243. jQuery('#mastertimer-position').css({left:(e.pageX-lo + sl)+"px"});
  2244. t.masterTimerPositionChange();
  2245. })
  2246. jQuery('#mastertimer-maxtime').draggable({
  2247. axis:"x",
  2248. containment:"#master-rightheader",
  2249. create:function(event,ui) {
  2250. t.mainMaxTimeLeft = jQuery('#mastertimer-maxtime').position().left;
  2251. document.getElementById('mastertimer-maxcurtime').innerHTML = t.convToTime(t.mainMaxTimeLeft);
  2252. t.setIdleZones();
  2253. },
  2254. start:function(event,ui) {
  2255. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime'),{autoAlpha:0,x:-3,y:-10});
  2256. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime-b'),{autoAlpha:0});
  2257. document.getElementById('mastertimer-maxcurtime').innerHTML = t.convToTime(t.mainMaxTimeLeft);
  2258. t.setIdleZones();
  2259. t.deactivatePerfectScrollBars();
  2260. },
  2261. drag:function(event,ui) {
  2262. t.mainMaxTimeLeft = ui.position.left;
  2263. document.getElementById('mastertimer-maxcurtime').innerHTML = t.convToTime(t.mainMaxTimeLeft);
  2264. document.getElementById('delay').value = t.mainMaxTimeLeft*10;
  2265. t.setIdleZones();
  2266. t.compareLayerEndsVSSlideEnd();
  2267. t.setSlideTransitionTimerBar();
  2268. },
  2269. stop:function(event,ui) {
  2270. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime'),{autoAlpha:1,x:-1,y:0,ease:punchgs.Power2.easeInOut});
  2271. punchgs.TweenLite.set(document.getElementById('mastertimer-curtime-b'),{autoAlpha:1});
  2272. t.mainMaxTimeLeft = ui.position.left;
  2273. document.getElementById('mastertimer-maxcurtime').innerHTML = t.convToTime(t.mainMaxTimeLeft);
  2274. document.getElementById('delay').value = t.mainMaxTimeLeft*10;
  2275. t.setIdleZones();
  2276. g_slideTime = t.mainMaxTimeLeft*10;
  2277. u.setMaintime(g_slideTime);
  2278. t.compareLayerEndsVSSlideEnd();
  2279. t.rerenderAllAudioMap();
  2280. t.setSlideTransitionTimerBar();
  2281. }
  2282. });
  2283. __ctime = jQuery('#mastertimer-curtime');
  2284. __ctimeb = jQuery('#mastertimer-curtime-b');
  2285. __ctimei = jQuery('#mastertimer-curtimeinner');
  2286. function checklroffset() {
  2287. __coffset = parseInt(jQuery('#layers-right').offset().left,0);
  2288. }
  2289. jQuery(window).resize(function() {
  2290. checklroffset();
  2291. });
  2292. checklroffset();
  2293. __ctime.data('offset',0);
  2294. jQuery('.master-rightcell').on('mousemove',function(e) {
  2295. var x = (e.pageX-__coffset)-jQuery(document.getElementById('master-rightheader')).data('left');
  2296. if (__ctime.data('offset') ==0) {
  2297. punchgs.TweenLite.set(__ctime,{left:x});
  2298. punchgs.TweenLite.set(__ctimeb,{left:x+15});
  2299. __ctimei[0].innerHTML = t.convToTime(x-10);
  2300. }
  2301. });
  2302. // CLICK ON PLAY/PAUSE BUTTON SHOULD PLAY OR RESET THINGS
  2303. jQuery('#mastertimer-playpause-wrapper').click(function() {
  2304. var mpw = jQuery(this);
  2305. punchgs.TweenLite.to(jQuery('#mastertimer-poscurtime'),0.3,{autoAlpha:0,x:-3,y:-10,ease:punchgs.Power2.easeInOut});
  2306. if (mpw.find('.eg-icon-pause').length>0) {
  2307. document.getElementById('mastertimer-playpause-wrapper').innerHTML = '<i class="eg-icon-play"></i><span>PLAY</span>';
  2308. t.stopAllLayerAnimation();
  2309. var mp = jQuery('#mastertimer-position');
  2310. if (mp.data('tl')!=undefined) {
  2311. mp.data('tl').kill();
  2312. }
  2313. } else {
  2314. createGlobalTimeline(true);
  2315. document.getElementById('mastertimer-playpause-wrapper').innerHTML ='<i class="eg-icon-pause"></i><span>PAUSE</span>';
  2316. jQuery('#mastertimer-position').addClass("inaction");
  2317. var mp = jQuery('#mastertimer-position'),
  2318. mtl = mp.data('tl'),
  2319. mst = jQuery('#divbgholder').data('slidetimeline'),
  2320. tpos = (mp.position().left)/100;
  2321. mtl.play(tpos);
  2322. mst.play(tpos);
  2323. jQuery('#divbgholder').data('slidetimeline').play(tpos);
  2324. mtl.eventCallback("onComplete",function() {
  2325. mtl.play(0);
  2326. mst.play(0);
  2327. });
  2328. mtl.eventCallback("onUpdate",function() {
  2329. mp.css({left:((mtl.time()*100))});
  2330. mp.trigger('poschanged');
  2331. })
  2332. }
  2333. })
  2334. }
  2335. t.setIdleZones = function() {
  2336. var el = document.getElementsByClassName('slide-idle-section');
  2337. for (var i=0;i<el.length;i++) {
  2338. el[i].style.left = (t.mainMaxTimeLeft+15)+"px";
  2339. }
  2340. }
  2341. /**********************************
  2342. - BUILD GLOBAL TIMELINE -
  2343. ***********************************/
  2344. function createGlobalTimeline(firsttime,animsaregenerated) {
  2345. if (firsttime) t.stopAllLayerAnimation();
  2346. var mp = jQuery('#mastertimer-position');
  2347. if (mp.data('tl')!=undefined) {
  2348. mp.data('tl').kill();
  2349. }
  2350. var mtl = new punchgs.TimelineLite();
  2351. mtl.pause();
  2352. jQuery(' .slide_layer .innerslide_layer').each(function() {
  2353. var nextcaption = jQuery(this);
  2354. nextcaption.data('inanim',theLayerInAnimation(nextcaption));
  2355. nextcaption.data('outanim',theLayerOutAnimation(nextcaption));
  2356. var id = u.getSerialFromID(nextcaption.closest('.slide_layer').attr('id'));
  2357. params=u.getLayer(id);
  2358. mtl.add(nextcaption.data('inanim'),params.frames["frame_0"].time/1000);
  2359. var endspeed = params.frames["frame_999"].endspeed;
  2360. if (endspeed==undefined) endspeed = params.frames["frame_0"].speed;
  2361. mtl.add(nextcaption.data('outanim'),(params.frames["frame_999"].time/1000));
  2362. });
  2363. mp.data('tl',mtl);
  2364. }
  2365. var setFakeAnim = function() {
  2366. var found=false,
  2367. li = jQuery('.slide-trans-cur-ul li').first();
  2368. var comingtransition = li.data('animval'),
  2369. comingtext = li.text();
  2370. if (comingtransition == "random-selected" || comingtransition == "random" || comingtransition == "random-static" || comingtransition == "random-premium") {
  2371. comingtransition = "fade";
  2372. comingtext = "Fade";
  2373. }
  2374. document.getElementById('fake-select-label').innerHTML = '"'+comingtext+'"';
  2375. jQuery('#fake-select-label').data('valu',comingtransition);
  2376. removeAllSlots();
  2377. slideAnimation();
  2378. found=true;
  2379. if (found) return false;
  2380. }
  2381. /**************************************
  2382. - ADD SLIDE MAIN TO SORTBOX -
  2383. **************************************/
  2384. t.setSlideTransitionTimerBar = function() {
  2385. var sist = document.getElementById('slide_in_sort_time'),
  2386. speed = sist.getElementsByClassName('timeline_frame')[0],
  2387. cont = sist.getElementsByClassName('timeline_full')[0],
  2388. dur = document.getElementById('transition_duration') ? document.getElementById('transition_duration').value : 0,
  2389. durcont = sist.getElementsByClassName('duration_cont')[0];
  2390. durcont.innerHTML = dur;
  2391. if (!jQuery.isNumeric(dur)) dur = 500;
  2392. punchgs.TweenLite.set(speed,{width:dur/10});
  2393. punchgs.TweenLite.set(cont,{left:15,width:t.mainMaxTimeLeft});
  2394. }
  2395. var addSlideToSortbox = function() {
  2396. t.setSlideTransitionTimerBar();
  2397. var sist = document.getElementById('slide_in_sort_time'),
  2398. speed = sist.getElementsByClassName('timeline_frame')[0],
  2399. durcont = sist.getElementsByClassName('duration_cont')[0];
  2400. jQuery(speed).resizable({
  2401. minWidth:0,
  2402. handles:"e",
  2403. start:function(event,ui) {
  2404. },
  2405. stop:function(event,ui) {
  2406. document.getElementById('transition_duration').value = ui.size.width*10;
  2407. durcont.innerHTML = (ui.size.width*10);
  2408. jQuery('.slide-trans-cur-ul li.selected').data('duration', (ui.size.width*10));
  2409. t.resetSlideAnimations(true);
  2410. },
  2411. resize:function(event,ui) {
  2412. document.getElementById('transition_duration').value = ui.size.width*10;
  2413. jQuery('.slide-trans-cur-ul li.selected').data('duration', (ui.size.width*10));
  2414. durcont.innerHTML = (ui.size.width*10);
  2415. }
  2416. //snap:".tl-fullanim"
  2417. });
  2418. }
  2419. //////////////////////////////////
  2420. // SET AUDIO MAP //
  2421. //////////////////////////////////
  2422. t.rerenderAllAudioMap = function() {
  2423. jQuery.each(u.arrLayers,function(i,objLayer) {
  2424. if (objLayer.type == "audio") {
  2425. t.drawAudioMap(objLayer);
  2426. }
  2427. });
  2428. };
  2429. t.drawAudioMap = function(objLayer) {
  2430. // try {
  2431. var li = objLayer.references.sorttable.timeline;
  2432. if (li.data('lastaudio') == objLayer.video_data.urlAudio && li.data('audiobuffer')!=undefined) {
  2433. displayAudioBuffer(objLayer,li.data('audiobuffer'));
  2434. } else {
  2435. loadMusicTimeLine(objLayer,objLayer.video_data.urlAudio);
  2436. }
  2437. li.data('lastaudio',objLayer.video_data.urlAudio);
  2438. if (!AudioContext) {
  2439. console.log('Audio Map cannot be drawn in your Browser. Try a recent Chrome or Firefox. ');
  2440. return false;
  2441. }
  2442. // } catch(e) { console.log("Drwaring of Audio Map Failer at Initialisation");}
  2443. }
  2444. // MUSIC LOADER + DECODE
  2445. function loadMusicTimeLine(objLayer,url) {
  2446. if (audioContext === null || !AudioContext) return false;
  2447. var req = new XMLHttpRequest(),
  2448. li = objLayer.references.sorttable.timeline,
  2449. currentBuffer = null;
  2450. req.open( "GET", url, true );
  2451. req.responseType = "arraybuffer";
  2452. req.onreadystatechange = function (e) {
  2453. if (req.readyState == 4) {
  2454. if(req.status == 200)
  2455. audioContext.decodeAudioData(req.response,
  2456. function(buffer) {
  2457. currentBuffer = buffer;
  2458. li.data('audiobuffer',buffer);
  2459. displayAudioBuffer(objLayer,buffer);
  2460. }, onDecodeError);
  2461. else
  2462. console.log('error during the load.Wrong url or cross origin issue');
  2463. }
  2464. } ;
  2465. req.send();
  2466. }
  2467. function onDecodeError() { alert('error while decoding your Audio file.'); }
  2468. function getStartSec(st) {
  2469. return st == undefined ? -1 : st=="" ? -1 : st==" " ? -1 : jQuery.isNumeric(st) ? st : st.split(":").length>1 ? parseInt(st.split(":")[0],0)*60 + parseInt(st.split(":")[1],0) : st;
  2470. };
  2471. function displayAudioBuffer(objLayer,buff) {
  2472. try {
  2473. var li = objLayer.references.sorttable.timeline,
  2474. leftChannel = buff.getChannelData(0), // Float32Array describing left channel
  2475. wr = li.find('.timeline_full'),
  2476. canvasWidth =buff.duration*100,
  2477. canvasHeight = 19,
  2478. shift = objLayer.video_data.start_at,
  2479. s = getStartSec(objLayer.video_data.start_at),
  2480. e = getStartSec(objLayer.video_data.end_at)
  2481. s= s==-1 ? 0 : s;
  2482. e= e==-1 ? 999999999 : e;
  2483. s= s /60;
  2484. e= e /60;
  2485. e = e>buff.duration ? buff.duration : e;
  2486. s = s*buff.sampleRate;
  2487. e = e*buff.sampleRate;
  2488. canvasWidth = ((e-s)/buff.sampleRate)*100;
  2489. li.find('canvas').remove();
  2490. // CANVAS
  2491. var newCanvas = document.createElement('canvas');
  2492. newCanvas.width = ((t.mainMaxTimeLeft));
  2493. newCanvas.height = canvasHeight;
  2494. li.append('<div class="timeline_audio"></div>');
  2495. li.find('.timeline_audio').append(newCanvas);
  2496. var jc = li.find('canvas');
  2497. punchgs.TweenLite.set(jc,{zIndex:2,top:3,left:0,position:"absolute"});
  2498. var context = newCanvas.getContext('2d'),
  2499. lineOpacity = canvasWidth / leftChannel.length;
  2500. context.save();
  2501. context.fillStyle = 'transparent' ;
  2502. context.fillRect(0,0,canvasWidth,canvasHeight );
  2503. context.strokeStyle = '#333';
  2504. context.translate(0,canvasHeight / 2);
  2505. context.globalAlpha = 0.5 ; // lineOpacity ;
  2506. var pl = 0,
  2507. seglength = e-s;
  2508. for (var i=0; i<e-s; i=i+200) {
  2509. // on which line do we get ?
  2510. var x = Math.floor (canvasWidth * i / seglength );
  2511. var y = leftChannel[s+i] * canvasHeight;
  2512. context.beginPath();
  2513. context.moveTo( x , 0 );
  2514. context.lineTo( x+1, y );
  2515. context.stroke();
  2516. pl++;
  2517. }
  2518. if (objLayer.video_data.videoloop!="none") {
  2519. var imgdata = context.getImageData(0, 0, canvasWidth, canvasHeight),
  2520. lmult = (((t.mainMaxTimeLeft)) / canvasWidth);
  2521. for (var i=0;i<lmult;i++) {
  2522. context.beginPath();
  2523. context.moveTo(i*canvasWidth,-50);
  2524. context.lineTo(i*canvasWidth,canvasHeight);
  2525. context.lineWidth = 3;
  2526. context.strokeStyle = "#c0392b";
  2527. context.stroke();
  2528. context.putImageData(imgdata,i*canvasWidth,0);
  2529. }
  2530. }
  2531. //playSound(buff);
  2532. context.restore();
  2533. audio = jQuery(objLayer.references.sorttable.timeline[0]).find('.timeline_audio');
  2534. if (audio!==undefined && audio.length>0)
  2535. punchgs.TweenLite.set(audio,{left:15+(objLayer.frames["frame_0"].time/10), width:((objLayer.frames["frame_999"].time - objLayer.frames["frame_0"].time) + objLayer.frames["frame_999"].split_extratime + objLayer.frames["frame_999"].speed)/10});
  2536. } catch(e) { console.log("Drawing of Audio Map failed !")}
  2537. }
  2538. /******************************
  2539. - ADD LAYER TO SORTBOX -
  2540. ********************************/
  2541. t.addToSortbox = function(serial,objLayer){
  2542. if (document.getElementById('layers-right-ul').children.length===1)
  2543. addSlideToSortbox();
  2544. if (serial===undefined) return false;
  2545. var endslideclass = "",
  2546. isVisible = t.isLayerVisible(objLayer.references.htmlLayer),
  2547. classLI = "",
  2548. classDrop = "",
  2549. sortboxText = t.getSortboxText(objLayer.alias),
  2550. depth = Number(objLayer.order)+5,
  2551. htmlSortbox = "",
  2552. quicksb = ""
  2553. visibleclass = "in-on",
  2554. groupLink = objLayer.groupLink !==undefined ? objLayer.groupLink : 0;
  2555. switch (objLayer.type) {
  2556. case "group":
  2557. classLI=" sortable_elements sortable_group";
  2558. classDrop = " droppable_sortable_group";
  2559. break;
  2560. case "row":
  2561. classLI=" sortable_elements sortable_group sortable_row";
  2562. classDrop = " droppable_sortable_row";
  2563. break;
  2564. case "column":
  2565. classLI=" sortable_elements sortable_column";
  2566. classDrop = " droppable_sortable_column";
  2567. break;
  2568. default:
  2569. classLI=" sortable_elements sortable_layers";
  2570. break;
  2571. }
  2572. if (objLayer.deleted) classLI=classLI+" layer-deleted";
  2573. htmlSortbox += '<li data-uniqueid="'+objLayer.unique_id+'" id="layer_sort_'+serial+'" data-type="'+objLayer.type+'" class="mastertimer-layer ui-state-default'+classLI+'" data-grouptype="'+objLayer.grouptype+'" data-pid="'+objLayer.p_uid+'">';
  2574. htmlSortbox += ' <div class="layer_sort_inner_wrapper '+classDrop+'">';
  2575. htmlSortbox += ' <span class="mastertimer-timeline-selector-row tipsy_enabled_top" title="Select Layer in Timeline">';
  2576. htmlSortbox += ' <input data-uniqueid="'+objLayer.unique_id+'" id="lots_id_'+objLayer.unique_id+'" class="layer-on-timeline-selector" style="margin:0px" type="checkbox"/>';
  2577. htmlSortbox += ' </span>';
  2578. htmlSortbox += ' <span data-uniqueid="'+objLayer.unique_id+'" class="list-of-layer-links tipsy_enabled_top" title="Choose Layers Group Link">';
  2579. htmlSortbox += ' <span class="layer-link-type-element layer-link-type-element-cs layer-link-type-'+groupLink+'"></span>';
  2580. htmlSortbox += ' <span class="list-of-layer-links-inner">';
  2581. htmlSortbox += ' <span data-linktype="1" class="layer-link-type-element layer-link-type-1"></span>';
  2582. htmlSortbox += ' <span data-linktype="2" class="layer-link-type-element layer-link-type-2"></span>';
  2583. htmlSortbox += ' <span data-linktype="3" class="layer-link-type-element layer-link-type-3"></span>';
  2584. htmlSortbox += ' <span data-linktype="4" class="layer-link-type-element layer-link-type-4"></span>';
  2585. htmlSortbox += ' <span data-linktype="5" class="layer-link-type-element layer-link-type-5"></span>';
  2586. htmlSortbox += ' <span data-linktype="0" class="layer-link-type-element layer-link-type-0"></span>';
  2587. htmlSortbox += ' </span>';
  2588. htmlSortbox += ' </span>';
  2589. if (objLayer.type!="column") {
  2590. if (objLayer.type!=="row") {
  2591. htmlSortbox += ' <span class="mastertimer-timeline-zindex-row tipsy_enabled_top" title="z-Index">';
  2592. htmlSortbox += ' <i style="margin-left:15px;margin-right:0px;" class="layersortclass eg-icon-sort"></i>';
  2593. htmlSortbox += ' <span class="sortbox_depth" title="z-Index">'+depth+'</span>';
  2594. htmlSortbox += ' </span>';
  2595. } else {
  2596. htmlSortbox += ' <span class="mastertimer-timeline-zindex-row tipsy_enabled_top" style="cursor:default !important" title="z-Index"></span>';
  2597. }
  2598. } else {
  2599. htmlSortbox += ' <span class="column_sort_row_spacer"></span>';
  2600. }
  2601. htmlSortbox += ' <span class="mastertimer-timeline-tillendcontainer" style="">';
  2602. htmlSortbox += ' <span data-uniqueid="'+objLayer.unique_id+'" data-serial="'+serial+'" class="till_slideend tipsy_enabled_top '+endslideclass+'" title="Wait till Slides End / Custom End"><i class="eg-icon-back-in-time"></i><i class="eg-icon-download-2"></i></span>';
  2603. htmlSortbox += ' </span>';
  2604. htmlSortbox += ' <span class="sort-hover-part layer_sort_layer_text_field">';
  2605. htmlSortbox += ' <span class="sortbox_text"><i class="layertypeclass ';
  2606. switch (objLayer.type) {
  2607. case "group":
  2608. htmlSortbox += 'fa-icon-object-group';
  2609. break;
  2610. case "row":
  2611. htmlSortbox += 'rs-icon-layergroup';
  2612. break;
  2613. case "column":
  2614. htmlSortbox += 'rs-icon-layercolumns';
  2615. break;
  2616. case "text":
  2617. htmlSortbox += 'rs-icon-layerfont';
  2618. break;
  2619. case "image":
  2620. htmlSortbox += 'rs-icon-layerimage';
  2621. break;
  2622. case "video":
  2623. htmlSortbox += 'rs-icon-layervideo';
  2624. break;
  2625. case "audio":
  2626. htmlSortbox += 'rs-icon-layeraudio';
  2627. break;
  2628. case "button":
  2629. htmlSortbox += 'rs-icon-layerbutton';
  2630. break;
  2631. case "shape":
  2632. htmlSortbox += 'rs-icon-layershape';
  2633. break;
  2634. case "svg":
  2635. htmlSortbox += 'rs-icon-layersvg';
  2636. break;
  2637. }
  2638. htmlSortbox += '"></i>';
  2639. htmlSortbox += ' <input class="timer-layer-text" style="margin-top:-1px !important" type="text" enabled value="'+sortboxText + '">';
  2640. htmlSortbox += ' </span>';
  2641. htmlSortbox += ' </span>';
  2642. if (objLayer.type=="group" || objLayer.type=="row" || objLayer.type=="column")
  2643. htmlSortbox += ' <span class="sort_group_collapser"><i class="eg-icon-down-dir"></i><i class="eg-icon-right-dir"></i></span>'
  2644. if (objLayer.type!="column")
  2645. htmlSortbox += ' <span class="timer-manual-edit"><i class="eg-icon-pencil"></i></span>'
  2646. htmlSortbox += ' </div>';
  2647. if (objLayer.type=="group" || objLayer.type=="row")
  2648. htmlSortbox += '<ul id="sortable_group_'+objLayer.unique_id+'" class="sortable_groups_wrap sgw_def"></ul>';
  2649. if (objLayer.type=="column")
  2650. htmlSortbox += '<ul id="sortable_columns_'+objLayer.unique_id+'" class="sortable_layers_in_columns sgw_def"></ul>';
  2651. htmlSortbox += '</li>';
  2652. var quickClassE = "";
  2653. if (objLayer.p_uid!=undefined && objLayer.p_uid !==-1 && objLayer.type!=="row" && objLayer.type!=="group") quickClassE = " quick_in_group";
  2654. if (objLayer.type==="row") quickClassE +=" quick_in_row"
  2655. quicksb += '<li id="layer_quicksort_'+serial+'" data-serial="'+serial+'" class="quicksortlayer ui-state-default layer-toolbar-li'+quickClassE+'">';
  2656. var btlist ='<span class="quick-edit-toolbar-in-list">';
  2657. switch (objLayer.type) {
  2658. case "text":
  2659. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layerfont_n"></i>';
  2660. btlist += '<span id="button_edit_layer_'+serial+'" class="button_edit_layer layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2661. btlist += '<span id="button_reset_size_'+serial+'" class="button_reset_size layer-short-tool revblue"><i class="eg-icon-resize-normal"></i></span>';
  2662. break;
  2663. case "group":
  2664. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="fa-icon-object-group"></i>';
  2665. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2666. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2667. break;
  2668. case "row":
  2669. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layergroup_n"></i>';
  2670. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2671. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2672. break;
  2673. case "column":
  2674. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layercolumns_n"></i>';
  2675. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2676. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2677. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2678. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2679. break;
  2680. case "shape":
  2681. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layershape_n"></i>';
  2682. btlist += '<span id="button_edit_shape_'+serial+'" class="button_edit_shape layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2683. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2684. break;
  2685. case "button":
  2686. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layerbutton_n"></i>';
  2687. btlist += '<span id="button_edit_layer_'+serial+'" class="button_edit_layer layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2688. btlist += '<span id="button_reset_size_'+serial+'" class="button_reset_size layer-short-tool revblue"><i class="eg-icon-resize-normal"></i></span>';
  2689. break;
  2690. case "image":
  2691. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layerimage_n"></i>';
  2692. btlist += '<span id="button_change_image_source_'+serial+'" class="button_change_image_source layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2693. btlist += '<span id="button_reset_size_'+serial+'" class="button_reset_size layer-short-tool revblue"><i class="eg-icon-resize-normal"></i></span>';
  2694. break;
  2695. case "video":
  2696. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layervideo_n"></i>';
  2697. btlist += '<span id="button_change_video_settings_'+serial+'" class="button_change_video_settings layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2698. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2699. break;
  2700. case "audio":
  2701. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layeraudio_n"></i>';
  2702. btlist += '<span id="button_changeaudio_settings_'+serial+'" class="button_change_audio_settings layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2703. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2704. classLI = " layer-sort-audio-item"
  2705. break;
  2706. case "svg":
  2707. quicksb += '<span class="layer-short-tool revdarkgray layer-title-with-icon"><i class="rs-icon-layersvg_n"></i>';
  2708. btlist += '<span id="button_changesvg_settings_'+serial+'" class="button_change_svg_settings layer-short-tool revblue"><i class="eg-icon-pencil"></i></span>';
  2709. btlist += '<span class="layer-short-tool revdarkgray"></span>';
  2710. break;
  2711. }
  2712. quicksb += '<input type="text" class="layer-title-in-list" value="'+sortboxText+'"></span>';
  2713. quicksb += btlist;
  2714. if (objLayer.type!=="column") {
  2715. quicksb += '<span id="button_delete_layer_'+serial+'" class="button_delete_layer layer-short-tool revred"><i class="rs-lighttrash"></i></span>';
  2716. quicksb += '<span id="button_duplicate_layer_'+serial+'" class="button_duplicate_layer layer-short-tool revyellow" data-isstatic=""><i class="rs-lightcopy"></i></span>';
  2717. }
  2718. quicksb += '<span style="display:block;float:none;clear:both"></span></span>';
  2719. quicksb += '<span class="quick-layer-view layer-short-tool revdarkgray '+visibleclass+'"><i class="eg-icon-eye"></i></span>';
  2720. quicksb += '<span class="quick-layer-lock layer-short-tool revdarkgray"><i class="eg-icon-lock-open"></i></span>';
  2721. quicksb += '<div style="clear:both;display:block"></div>';
  2722. quicksb +='</li>';
  2723. if (document.getElementById('quick-layers-list-id').childNodes.length>1) document.getElementById('nolayersavailable').style.display='none';
  2724. var htmlTimeline = "",
  2725. grouptypeclass = objLayer.grouptype === "logical_o" ? " hide_timeline" : "";
  2726. htmlTimeline += '<li data-uniqueid="'+objLayer.unique_id+'" data-serial="'+serial+'" id="layer_sort_time_'+serial+'" class="sortable_elements mastertimer-layer ui-state-default'+classLI+grouptypeclass+'" data-grouptype="'+objLayer.grouptype+'" data-pid="'+objLayer.p_uid+'">';
  2727. htmlTimeline += ' <div class="timeline_full"></div>';
  2728. htmlTimeline += ' <div class="timeline">';
  2729. htmlTimeline += ' <div class="timeline-relative-marker trm-groupandrowmarker"></div>';
  2730. htmlTimeline += ' <div data-frameindex="0" id="tl_'+objLayer.unique_id+'_frame_0" class="timeline_frame tf_startframe tl_layer_frame" data-uniqueid="'+objLayer.unique_id+'" data-serial="'+serial+'" style="z-index:50;">';
  2731. htmlTimeline += ' <span class="timebefore_cont"></span>';
  2732. htmlTimeline += ' <div class="tl_speed_wrapper">';
  2733. htmlTimeline += ' <div class="tlf_speed"><span class="duration_cont"></span></div>';
  2734. htmlTimeline += ' <div class="tlf_splitdelay"></div>';
  2735. htmlTimeline += ' </div>';
  2736. htmlTimeline += ' <span class="show_timeline_helper">EDIT</span>';
  2737. htmlTimeline += ' </div>';
  2738. htmlTimeline += ' <div data-frameindex="999" id="tl_'+objLayer.unique_id+'_frame_999" class="timeline_frame tf_endframe tl_layer_frame" data-uniqueid="'+objLayer.unique_id+'" data-serial="'+serial+'" style="z-index:48;">';
  2739. htmlTimeline += ' <span class="timebefore_cont"></span>';
  2740. htmlTimeline += ' <div class="tl_speed_wrapper">';
  2741. htmlTimeline += ' <div class="tlf_speed"><span class="duration_cont"></span></div>';
  2742. htmlTimeline += ' <div class="tlf_splitdelay"></div>';
  2743. htmlTimeline += ' </div>';
  2744. htmlTimeline += ' <span class="show_timeline_helper">EDIT</span>';
  2745. htmlTimeline += ' </div>';
  2746. htmlTimeline += ' </div>';
  2747. htmlTimeline += ' <div class="slide-idle-section"></div>';
  2748. htmlTimeline += '</li>';
  2749. var inserttoend = true;
  2750. if (objLayer.type==="row" && document.getElementById('layers-left-ul').getElementsByClassName('sortable_row').length>0) {
  2751. inserttoend = false;
  2752. document.getElementById('layers-left-ul').getElementsByClassName('sortable_row')[0].insertAdjacentHTML('afterend',htmlSortbox);
  2753. document.getElementById('quick-layers-list-id').getElementsByClassName('quick_in_row')[0].insertAdjacentHTML('afterend',quicksb);
  2754. document.getElementById('layers-right-ul').getElementsByClassName('sortable_row')[0].insertAdjacentHTML('afterend',htmlTimeline);
  2755. }
  2756. if (inserttoend) {
  2757. document.getElementById('layers-left-ul').insertAdjacentHTML('beforeend',htmlSortbox);
  2758. document.getElementById('quick-layers-list-id').insertAdjacentHTML('beforeend',quicksb);
  2759. document.getElementById('layers-right-ul').insertAdjacentHTML('beforeend',htmlTimeline);
  2760. }
  2761. jQuery('#layer_quicksort_'+serial).on('mouseenter',function(event) {
  2762. jQuery('.layer_due_list_element_selected').removeClass('layer_due_list_element_selected');
  2763. jQuery('#slide_layer_'+jQuery(this).data('serial')).addClass("layer_due_list_element_selected");
  2764. });
  2765. jQuery('#layer_quicksort_'+serial).on('mouseleave',function(event) {
  2766. jQuery('.layer_due_list_element_selected').removeClass('layer_due_list_element_selected');
  2767. });
  2768. jQuery("#layers-left .tipsy_enabled_top").tipsy({
  2769. gravity:"s",
  2770. delayIn: 70
  2771. });
  2772. reinitSortBox();
  2773. var liel= document.getElementById('layer_sort_time_'+serial),
  2774. li = jQuery(liel),
  2775. curel = liel.getElementsByClassName("timeline")[0],
  2776. cur = jQuery(curel);
  2777. objLayer.references.sorttable = objLayer.references.sorttable === undefined ? {} : objLayer.references.sorttable;
  2778. objLayer.references.sorttable.layer = jQuery(document.getElementById('layer_sort_'+serial));
  2779. objLayer.references.sorttable.timeline = li;
  2780. objLayer.references.quicklayer = jQuery(document.getElementById('layer_quicksort_'+serial));
  2781. if (objLayer.type=="audio") {
  2782. li.data('objref',objLayer);
  2783. t.drawAudioMap(objLayer);
  2784. li.on('mousemove',function(e) {
  2785. try{
  2786. var li = jQuery(this),
  2787. objLayer = li.data('objref'),
  2788. serial = li.data('serial'),
  2789. player = jQuery('#slide_layer_'+serial+" audio")[0];
  2790. if (!li.hasClass("ui-state-hover")) return false;
  2791. clearTimeout(li.data('audiopreview'));
  2792. li.find('.audio-progress').remove();
  2793. player.pause();
  2794. li.data('audiopreview',setTimeout(function() {
  2795. var tf = li.find('.timeline_full'),
  2796. dl = tf.position().left,
  2797. dw = tf.width(),
  2798. mousex = (e.pageX-li.offset().left),
  2799. time = mousex-dl;
  2800. if (mousex <dl || mousex>(dl+dw)) return;
  2801. li.find('.audio-progress').remove();
  2802. li.append('<div class="audio-progress"></div>');
  2803. var ap = li.find('.audio-progress'),
  2804. _s = getStartSec(objLayer.video_data.start_at),
  2805. _e = getStartSec(objLayer.video_data.end_at);
  2806. _s= _s==-1 ? 0 : _s;
  2807. _e= _e==-1 ? 999999999 : _e;
  2808. _s= _s /60;
  2809. _e= _e /60;
  2810. _e = _e>player.duration ? player.duration : _e;
  2811. var segment = _e-_s,
  2812. shift = Math.floor((time / (segment*100)));
  2813. if (time>segment*100)
  2814. time = time - ((segment*100)*shift);
  2815. if (time>0) {
  2816. restw = (segment-time/100) * 100;
  2817. punchgs.TweenLite.fromTo(ap,(segment-time/100),{left:(dl+time+(shift*(segment*100))),transformOrigin:"0% 50%", width:restw,scaleX:0},{scale:1,ease:punchgs.Linear.easeNone, onUpdate:function() {}, onComplete:function() {
  2818. player.pause();
  2819. }});
  2820. }
  2821. if (time>0) {
  2822. player.play();
  2823. player.currentTime = time/100;
  2824. }
  2825. },400));
  2826. } catch(er) {
  2827. }
  2828. });
  2829. li.on('mouseleave',function(e) {
  2830. try {
  2831. var li = jQuery(this),
  2832. serial = li.data('serial'),
  2833. player = jQuery('#slide_layer_'+serial+" audio")[0];
  2834. clearTimeout(li.data('audiopreview'));
  2835. li.find('.audio-progress').remove();
  2836. player.pause();
  2837. } catch(er) { }
  2838. });
  2839. }
  2840. var el = liel.getElementsByClassName('timeline_frame');
  2841. for (var i=0;i<el.length;i++) {
  2842. jQuery(el[i]).resizable({
  2843. handles: 'e,w',
  2844. minWidth:1,
  2845. create: function(event,ui) {
  2846. var a = this;
  2847. t.setTLFrame(a);
  2848. setTimeout(function() {
  2849. t.frameLimitations(a);
  2850. },25);
  2851. },
  2852. start: function(event,ui) {
  2853. t.deactivatePerfectScrollBars();
  2854. t.updateTLFrame(this,"trigger",undefined,ui.size.width);
  2855. },
  2856. resize: function(event,ui) {
  2857. t.updateTLFrame(this,"trigger",undefined,ui.size.width);
  2858. },
  2859. stop: function(event,ui) {
  2860. t.updateTLFrame(this,"trigger");
  2861. }
  2862. });
  2863. jQuery(el[i]).draggable({
  2864. axis:"x",
  2865. start:function(event,ui) {
  2866. t.recordFrameStatus(this,ui);
  2867. },
  2868. drag:function(event,ui) {
  2869. t.frameLimitations(this,ui);
  2870. t.updateTLFrame(this,"trigger");
  2871. t.updateAllSelectedLayerTimeline(this);
  2872. },
  2873. stop:function(event,ui) {
  2874. t.frameLimitations(this,ui);
  2875. t.updateTLFrame(this,"trigger");
  2876. t.updateAllSelectedLayerTimeline(this);
  2877. }
  2878. });
  2879. }
  2880. t.resetTimeLineHeight();
  2881. t.setIdleZones();
  2882. }
  2883. /**
  2884. Deactivate the Perfect Scroll bars for a while, since elements just simple slow down
  2885. */
  2886. t.deactivatePerfectScrollBars = function() {
  2887. jQuery('.revolution-template-groups').perfectScrollbar("destroy");
  2888. }
  2889. t.activatePerfectScrollBars = function() {
  2890. jQuery('.revolution-template-groups').perfectScrollbar();
  2891. }
  2892. /**
  2893. check if the Layer should go till Slide End, or should animate our before.
  2894. if objLayer.endWithSlide == true -> the Layer should not get any "data-end" output !!
  2895. */
  2896. var checkTillSlideEnd = function(objLayer) {
  2897. var maxtime = ((t.mainMaxTimeLeft))*10,
  2898. li = document.getElementById('layer_sort_'+objLayer.serial);
  2899. if ( objLayer.frames["frame_999"].time >= maxtime) {
  2900. objLayer.endWithSlide = true;
  2901. if (!li.classList.contains("tillendon"))
  2902. li.className += " tillendon";
  2903. } else {
  2904. objLayer.endWithSlide = false;
  2905. jQuery(li).removeClass("tillendon");
  2906. }
  2907. }
  2908. t.setTLFrame = function(frame) {
  2909. var speedcont = frame.getElementsByClassName('tlf_speed')[0],
  2910. splitcont = frame.getElementsByClassName('tlf_splitdelay')[0],
  2911. durcont = frame.getElementsByClassName('duration_cont')[0],
  2912. timecont = frame.getElementsByClassName('timebefore_cont')[0],
  2913. trm = frame.parentNode.parentNode.getElementsByClassName('timeline-relative-marker')[0],
  2914. frame=jQuery(frame),
  2915. objLayer = u.getLayerByUniqueId(frame.data('uniqueid')),
  2916. triggered = u.checkLayerTriggered(objLayer),
  2917. frameslength = u.getObjectLength(objLayer.frames);
  2918. objLayer.frames["frame_0"].time = Math.max(0,objLayer.frames["frame_0"].time);
  2919. objLayer.frames["frame_999"].time = Math.min(t.mainMaxTimeLeft*10,objLayer.frames["frame_999"].time);
  2920. var fi = frame.data('frameindex'),
  2921. speed = objLayer.frames["frame_"+fi].speed,
  2922. time = objLayer.frames["frame_"+fi].time,
  2923. splitdelay = getSplitCounts(objLayer.text,objLayer.frames["frame_"+fi].split,objLayer.frames["frame_"+fi].splitdelay),
  2924. timedif = time;
  2925. objLayer.frames["frame_"+fi].split_extratime = splitdelay;
  2926. if (splitdelay!==0) {
  2927. punchgs.TweenLite.set(speedcont,{width:(speed/10)-splitdelay});
  2928. punchgs.TweenLite.set(splitcont,{width:splitdelay});
  2929. } else {
  2930. punchgs.TweenLite.set(speedcont,{width:speed/10});
  2931. punchgs.TweenLite.set(splitcont,{width:0});
  2932. }
  2933. punchgs.TweenLite.set(frame,{left:time/10, width:(splitdelay+(speed/10))});
  2934. durcont.innerHTML = speed;
  2935. if (objLayer.p_uid!==undefined && objLayer.p_uid!==-1 && u.getLayerByUniqueId(objLayer.p_uid) !==undefined && (typeof u.getLayerByUniqueId(objLayer.p_uid)==='object')) {
  2936. var p_objLayer = u.getLayerByUniqueId(objLayer.p_uid);
  2937. trm.style.display="block";
  2938. trm.style.width = ((p_objLayer.frames["frame_0"].time/10)-1)+"px";
  2939. timedif = time - p_objLayer.frames["frame_0"].time;
  2940. } else {
  2941. trm.style.display="none";
  2942. trm.style.width = "0px";
  2943. if (fi!==0) {
  2944. var prevframe = fi===999 ? objLayer.frames["frame_"+(frameslength-2)] : objLayer.frames["frame_"+(fi-1)];
  2945. if (prevframe!==undefined)
  2946. timedif = time - (prevframe.time + prevframe.speed + (prevframe.split_extratime*10));
  2947. }
  2948. }
  2949. if (time == t.mainMaxTimeLeft * 10)
  2950. timecont.innerHTML = '<span class="wait_slide_end">WAIT</span>';
  2951. objLayer.frames["frame_"+fi].time_relative = timedif;
  2952. if (fi==0 && triggered.in) timecont.innerHTML = '<span class="triggered_layer_on_timeline">a</span>';
  2953. if (fi==999 && triggered.out) timecont.innerHTML = '<span class="triggered_layer_on_timeline">a</span>';
  2954. t.updateFullTime(objLayer);
  2955. checkTillSlideEnd(objLayer);
  2956. }
  2957. t.updateTLFrame = function(frame,source,ignorerecursive,resizewidth) {
  2958. if (t.recordFrameStatusForce)
  2959. t.recordFrameStatus(frame);
  2960. var curserial = u.getCurrentLayer().serial,
  2961. speedcont = frame.getElementsByClassName('tlf_speed')[0],
  2962. splitcont = frame.getElementsByClassName('tlf_splitdelay')[0],
  2963. durcont = frame.getElementsByClassName('duration_cont')[0],
  2964. timecont = frame.getElementsByClassName('timebefore_cont')[0],
  2965. trm = frame.parentNode.parentNode.getElementsByClassName('timeline-relative-marker')[0],
  2966. frame=jQuery(frame),
  2967. objLayer = u.getLayerByUniqueId(frame.data('uniqueid')),
  2968. objUpdate = {frames:{}},
  2969. frameslength = u.getObjectLength(objLayer.frames),
  2970. triggered = u.checkLayerTriggered(objLayer);
  2971. fi = frame.data('frameindex'),
  2972. speed = frame.outerWidth()*10,
  2973. time = frame.position().left*10,
  2974. splitdelay = getSplitCounts(objLayer.text,objLayer.frames["frame_"+fi].split,objLayer.frames["frame_"+fi].splitdelay),
  2975. currentframe = objLayer.frames["frame_"+fi],
  2976. updateTimerText = true,
  2977. timedif = time;
  2978. objUpdate.frames["frame_"+fi] = {};
  2979. if ((speed-(splitdelay*10))<0) {
  2980. speed = splitdelay*10;
  2981. punchgs.TweenLite.set(frame,{width:(splitdelay)});
  2982. }
  2983. if (splitdelay!==0) {
  2984. punchgs.TweenLite.set(speedcont,{width:(speed/10)-splitdelay});
  2985. punchgs.TweenLite.set(splitcont,{width:splitdelay});
  2986. } else {
  2987. punchgs.TweenLite.set(speedcont,{width:speed/10});
  2988. punchgs.TweenLite.set(splitcont,{width:0});
  2989. }
  2990. durcont.innerHTML = speed;
  2991. if ((time == t.mainMaxTimeLeft * 10) || (fi==0 && triggered.in) || (fi==999 && triggered.out))
  2992. updateTimerText = false;
  2993. // CALCULATE THE DELAYS BETWEEN FRAMES OR PARRENT ELEMENTS
  2994. if (objLayer.p_uid!==undefined && objLayer.p_uid!==-1 && u.getLayerByUniqueId(objLayer.p_uid) !==undefined && (typeof u.getLayerByUniqueId(objLayer.p_uid)==='object')) {
  2995. var p_objLayer = u.getLayerByUniqueId(objLayer.p_uid);
  2996. timedif = time - p_objLayer.frames["frame_0"].time;
  2997. trm.style.display="block";
  2998. } else {
  2999. trm.style.display="none";
  3000. trm.style.width="0px";
  3001. if (fi!==0) {
  3002. var prevframe = fi===999 ? objLayer.frames["frame_"+(frameslength-2)] : objLayer.frames["frame_"+(fi-1)];
  3003. if (prevframe)
  3004. timedif = time - (prevframe.time + prevframe.speed + (prevframe.split_extratime*10));
  3005. }
  3006. }
  3007. // SET TO "WAIT" IF ELEMENT IS BIGGER THAN SLIDE LENGTH
  3008. if (time == t.mainMaxTimeLeft * 10) timecont.innerHTML = '<span class="wait_slide_end">WAIT</span>';
  3009. // DRAW AN "A" IF LAYER ACTION TRIGGERED
  3010. if (fi==0 && triggered.in) timecont.innerHTML = '<span class="triggered_layer_on_timeline">a</span>';
  3011. if (fi==999 && triggered.out) timecont.innerHTML = '<span class="triggered_layer_on_timeline">a</span>';
  3012. currentframe.time_relative = timedif;
  3013. objUpdate.frames["frame_"+fi].speed = speed-(splitdelay*10);
  3014. objUpdate.frames["frame_"+fi].time = time;
  3015. objUpdate.frames["frame_"+fi].time_relative=timedif;
  3016. objUpdate.frames["frame_"+fi].split_extratime = splitdelay;
  3017. if (objLayer.serial == curserial) {
  3018. if (fi===0) document.getElementById('layer_speed').value = objUpdate.frames["frame_0"].speed;
  3019. if (fi===999) document.getElementById('layer_endspeed').value = objUpdate.frames["frame_999"].speed;
  3020. }
  3021. if (source!=="trigger") {
  3022. currentframe.speed = objUpdate.frames["frame_"+fi].speed;
  3023. currentframe.time = objUpdate.frames["frame_"+fi].time;
  3024. }
  3025. // MOVE ALL CHILDREN ELEMENTS TOGETHER WITH THE FIRST FRAME
  3026. if (fi===0) {
  3027. if (objLayer.type==="row" || objLayer.type==="column" || objLayer.type=="group") {
  3028. var _list = u.getLayersInGroup(objLayer.unique_id);
  3029. for (var i=0;i<_list.columns.length;i++) {
  3030. var l_tl = _list.columns[i].references.sorttable.timeline,
  3031. trm = l_tl[0].getElementsByClassName('timeline-relative-marker')[0];
  3032. trm.style.width = ((time/10)-1)+"px";
  3033. }
  3034. for (i=0;i<_list.layers.length;i++) {
  3035. var l_tl = _list.layers[i].references.sorttable.timeline,
  3036. trm = l_tl[0].getElementsByClassName('timeline-relative-marker')[0];
  3037. if (objLayer.type==="row") {
  3038. var p_tl = document.getElementById("tl_"+_list.layers[i].p_uid+"_frame_0");
  3039. if (p_tl!==null && p_tl!==undefined) {
  3040. trm.style.width = p_tl.style.left;
  3041. }
  3042. } else {
  3043. trm.style.width = ((time/10)-1)+"px";
  3044. }
  3045. }
  3046. }
  3047. }
  3048. // UPDATE DELAYS ON EACH FRAMES COMING AFTER THE CURRENT FRAME
  3049. if (fi!==999) {
  3050. var nfi = fi+1>=frameslength-1 ? 999 : fi+1,
  3051. nextframe = objLayer.frames["frame_"+nfi];
  3052. if (nextframe!=undefined) {
  3053. nextframe.time_relative = nextframe.time - (currentframe.time+currentframe.speed+(currentframe.split_extratime*10));
  3054. objUpdate.frames["frame_"+nfi] = {time_relative : nextframe.time_relative};
  3055. objLayer.frames["frame_"+nfi].time_relative =nextframe.time_relative;
  3056. }
  3057. } else {
  3058. var nfi="frame_0";
  3059. for (var fri in objLayer.frames) {
  3060. if (fri!=="frame_999")
  3061. nfi = fri;
  3062. }
  3063. var prevframe = objLayer.frames[nfi];
  3064. if (prevframe!=undefined) {
  3065. var time_relative = objLayer.frames["frame_"+fi].time - (prevframe.time+prevframe.speed+(prevframe.split_extratime*10));
  3066. objUpdate.frames.frame_999.time_relative = time_relative;
  3067. objLayer.frames.frame_999.time_relative =time_relative;
  3068. }
  3069. }
  3070. if (source=="trigger") {
  3071. u.updateLayer(objLayer.serial,objUpdate);
  3072. } else
  3073. currentframe.split_extratime = objUpdate.frames["frame_"+fi].split_extratime;
  3074. t.frameLimitations(frame,false,ignorerecursive,{update:updateTimerText,triggered:triggered,timecont:timecont});
  3075. t.updateFullTime(objLayer);
  3076. checkTillSlideEnd(objLayer);
  3077. }
  3078. t.addLayersColumnsToSelectedElements = function(objLayer,fi) {
  3079. var temp = u.getLayersInGroup(objLayer.unique_id)
  3080. if (objLayer.type==="row" || objLayer.type=="column" || objLayer.type==="group") {
  3081. for (var sfi=0;sfi<=temp.layers.length-1;sfi++) {
  3082. var _pid = temp.layers[sfi].unique_id;
  3083. if (jQuery.inArray(_pid,u.selectedLayers) == -1 && jQuery.inArray(_pid,u.currentGroupElements) == -1) {
  3084. var _pel = document.getElementById('tl_'+_pid+'_frame_'+fi);
  3085. u.currentGroupElementsPositionLeftReset.push(parseInt(_pel.style.left,0));
  3086. u.currentGroupElements.push(_pid);
  3087. }
  3088. }
  3089. if (objLayer.type==="row")
  3090. for (var sfi=0;sfi<=temp.columns.length-1;sfi++) {
  3091. var _pid = temp.columns[sfi].unique_id;
  3092. if (jQuery.inArray(_pid,u.selectedLayers) == -1 && jQuery.inArray(_pid,u.currentGroupElements) == -1) {
  3093. var _pel = document.getElementById('tl_'+_pid+'_frame_'+fi);
  3094. u.currentGroupElementsPositionLeftReset.push(parseInt(_pel.style.left,0));
  3095. u.currentGroupElements.push(_pid);
  3096. }
  3097. }
  3098. }
  3099. return true;
  3100. }
  3101. // Record the last known Position of Elements before Drag
  3102. t.recordFrameStatus = function(frame,ui) {
  3103. var frame=jQuery(frame),
  3104. fi = frame.data('frameindex'),
  3105. objLayer = u.getLayerByUniqueId(frame.data('uniqueid'));
  3106. objLayer.positionLeftReset = ui!==undefined ? ui.position.left : frame.position().left;
  3107. u.selectedLayersPositionLeftReset = [];
  3108. u.currentGroupElements = [];
  3109. u.currentGroupElementsPositionLeftReset = [];
  3110. for (var sfi=0;sfi<=u.selectedLayers.length-1;sfi++) {
  3111. var _pid = u.selectedLayers[sfi],
  3112. _obj = _pid!==-1 ? u.getLayerByUniqueId(_pid) : -1,
  3113. _pel = document.getElementById('tl_'+_pid+'_frame_'+fi);
  3114. u.selectedLayersPositionLeftReset.push(parseInt(_pel.style.left,0));
  3115. if (_obj!==-1)
  3116. t.addLayersColumnsToSelectedElements(_obj,0);
  3117. }
  3118. t.addLayersColumnsToSelectedElements(objLayer,0);
  3119. t.recordFrameStatusForce=false;
  3120. }
  3121. // CHECK IF LEFT OR RIGHT SIDE OF FRAME ALREADY REACHED, REPRINT DELAYS AND POSITIONS
  3122. t.frameLimitations = function(frame,ui,ignorerecursive,_tc) {
  3123. if (t.recordFrameStatusForce)
  3124. t.recordFrameStatus(frame);
  3125. var frame=jQuery(frame),
  3126. objLayer = u.getLayerByUniqueId(frame.data('uniqueid')),
  3127. pframe = frame.prev(),
  3128. nframe = frame.next(),
  3129. nframei = nframe.data('frameindex'),
  3130. fi = frame.data('frameindex'),
  3131. fl = ui!==undefined && ui!==false ? ui.position.left : frame.position().left,
  3132. fw = frame.outerWidth(),
  3133. frameslength = u.getObjectLength(objLayer.frames),
  3134. currentframe = objLayer.frames["frame_"+fi];
  3135. // LEFT CHECK
  3136. if (pframe.length>0)
  3137. fl = Math.max((pframe.position().left+pframe.outerWidth()), fl);
  3138. fl = Math.max(0,fl);
  3139. // RIGHT CHECK
  3140. if (nframe.length>0 && fi!==999)
  3141. fl = Math.min(nframe.position().left-fw, fl);
  3142. fl = Math.min(t.mainMaxTimeLeft,fl);
  3143. // REWRITE TIME INFO'S
  3144. if (_tc!==undefined && _tc.update) {
  3145. var timedif = 0;
  3146. if (objLayer.p_uid!==undefined && fi===0 && objLayer.p_uid!==-1 && u.getLayerByUniqueId(objLayer.p_uid) !==undefined && (typeof u.getLayerByUniqueId(objLayer.p_uid)==='object')) {
  3147. var p_objLayer = u.getLayerByUniqueId(objLayer.p_uid);
  3148. timedif = (fl*10) - p_objLayer.frames["frame_0"].time;
  3149. } else
  3150. if (fi!==0) {
  3151. var prevframe = fi===999 ? objLayer.frames["frame_"+(frameslength-2)] : objLayer.frames["frame_"+(fi-1)];
  3152. if (prevframe)
  3153. timedif = (fl*10) - (prevframe.time + prevframe.speed + (prevframe.split_extratime*10));
  3154. }
  3155. if (t.timelinetype==="absolute")
  3156. _tc.timecont.innerHTML = fl*10;
  3157. else
  3158. _tc.timecont.innerHTML = timedif;
  3159. }
  3160. if (fi!==999 && t.timelinetype!=="absolute") {
  3161. var nextframe = objLayer.frames["frame_"+nframei];
  3162. nextframe.time_relative = nextframe.time - (currentframe.time+(currentframe.split_extratime*10)+currentframe.speed);
  3163. nframe.find('.timebefore_cont').html(nextframe.time_relative);
  3164. }
  3165. if (ui!==undefined && ui!==false) ui.position.left = fl;
  3166. punchgs.TweenLite.set(frame,{left:fl});
  3167. // Check if more than one Layer selected, and move all Layer parallel to the Master layer
  3168. if ((u.selectedLayers.length>0 && !ignorerecursive) || (u.currentGroupElements!=undefined && u.currentGroupElements.length>0 && !ignorerecursive)) {
  3169. var dragdif = fl - (objLayer.positionLeftReset);
  3170. for (var sfi=0;sfi<=u.selectedLayers.length-1;sfi++) {
  3171. var _pid = u.selectedLayers[sfi];
  3172. if (_pid != objLayer.unique_id) {
  3173. var _pel = document.getElementById('tl_'+_pid+'_frame_'+fi);
  3174. _pel.style.left = (u.selectedLayersPositionLeftReset[sfi] + dragdif)+"px";
  3175. t.updateFullTime(u.getLayerByUniqueId(_pid),(u.selectedLayersPositionLeftReset[sfi] + dragdif));
  3176. }
  3177. }
  3178. if (fi===0 && u.currentGroupElements!==undefined && u.currentGroupElements.length>0)
  3179. for (var sfi=0;sfi<=u.currentGroupElements.length-1;sfi++) {
  3180. var _pid = u.currentGroupElements[sfi];
  3181. if (_pid != objLayer.unique_id) {
  3182. var _pel = document.getElementById('tl_'+_pid+'_frame_'+fi);
  3183. _pel.style.left = (u.currentGroupElementsPositionLeftReset[sfi] + dragdif)+"px";
  3184. t.updateFullTime(u.getLayerByUniqueId(_pid),(u.currentGroupElementsPositionLeftReset[sfi] + dragdif) );
  3185. }
  3186. }
  3187. }
  3188. t.updateFullTime(objLayer);
  3189. checkTillSlideEnd(objLayer);
  3190. }
  3191. t.updateFullTime = function(objLayer,left) {
  3192. var fullcont = objLayer.references.sorttable.timeline[0].getElementsByClassName('timeline_full')[0],
  3193. audio = jQuery(objLayer.references.sorttable.timeline[0]).find('.timeline_audio'),
  3194. left = left === undefined ? 15+(objLayer.frames["frame_0"].time/10) : left+15,
  3195. newtime = (left - 15) * 10;
  3196. punchgs.TweenLite.set(fullcont,{left:left, width:((objLayer.frames["frame_999"].time - newtime) + objLayer.frames["frame_999"].split_extratime + objLayer.frames["frame_999"].speed)/10});
  3197. if (audio!==undefined && audio.length>0)
  3198. punchgs.TweenLite.set(audio,{left:left, width:((objLayer.frames["frame_999"].time - newtime) + objLayer.frames["frame_999"].split_extratime + objLayer.frames["frame_999"].speed)/10});
  3199. }
  3200. t.updateLayerTimeline = function(objLayer) {
  3201. var tf = objLayer.references.sorttable.timeline[0].getElementsByClassName('timeline_frame');
  3202. for (var i=0;i<tf.length;i++) {
  3203. t.setTLFrame(tf[i]);
  3204. t.updateTLFrame(tf[i],false,true);
  3205. }
  3206. }
  3207. t.updateCurrentLayerTimeline = function() {
  3208. var el = document.getElementById('layer_sort_time_'+u.getCurrentLayer().serial),
  3209. tf = el.getElementsByClassName('timeline_frame');
  3210. for (var i=0;i<tf.length;i++) {
  3211. t.setTLFrame(tf[i],false,true);
  3212. }
  3213. };
  3214. t.updateAllLayerTimeline = function() {
  3215. var tf = document.getElementsByClassName('timeline_frame tl_layer_frame');
  3216. for (var i=0;i<tf.length;i++) {
  3217. t.updateTLFrame(tf[i],false,true);
  3218. }
  3219. }
  3220. t.updateAllSelectedLayerTimeline = function(frame) {
  3221. var frame=jQuery(frame),
  3222. frameid = frame.data('uniqueid'),
  3223. fi = frame.data('frameindex');
  3224. if (u.selectedLayers.length>0)
  3225. for (var i=0;i<=u.selectedLayers.length-1;i++) {
  3226. var _pid = u.selectedLayers[i];
  3227. if (_pid != frameid)
  3228. t.updateTLFrame(document.getElementById('tl_'+_pid+'_frame_'+fi),false,true);
  3229. }
  3230. if (fi===0 && u.currentGroupElements!==undefined && u.currentGroupElements.length>0)
  3231. for (var i=0;i<=u.currentGroupElements.length-1;i++) {
  3232. var _pid = u.currentGroupElements[i];
  3233. if (_pid != frameid)
  3234. t.updateTLFrame(document.getElementById('tl_'+_pid+'_frame_'+fi),false,true);
  3235. }
  3236. }
  3237. t.showTimeLineDirectInput = function(objLayer) {
  3238. // SET CURRENT TIMING HELPERS
  3239. jQuery('#clayer_start_time').val(objLayer.time);
  3240. jQuery('#clayer_start_speed').val(objLayer.speed);
  3241. }
  3242. t.manageTimeLineDirectInput = function() {
  3243. jQuery('#clayer_start_time, #clayer_end_time').on("change blur", function() {
  3244. var objLayer = t.getLayer(selectedLayerSerial);
  3245. objLayer.time = jQuery('#clayer_start_time').val();
  3246. objLayer.frames["frame_999"].time = jQuery('#clayer_end_time').val();
  3247. objLayer.speed = jQuery('#clayer_start_speed').val();
  3248. objLayer.frames["frame_999"].speed = jQuery('#clayer_end_speed').val();
  3249. jQuery('#layer_speed').val(objLayer.speed);
  3250. jQuery('#layer_endspeed').val(objLayer.frames["frame_999"].speed);
  3251. t.updateLayerFromFields();
  3252. u.updateCurrentLayerTimeline();
  3253. });
  3254. }
  3255. /**
  3256. CALCULATE WIDTH TO TIME
  3257. */
  3258. var msToSec = function(ms) {
  3259. var s = Math.floor(ms / 1000);
  3260. ms = ms - (s*1000);
  3261. var str = s+".";
  3262. if (ms<100)
  3263. str=str+"0";
  3264. str = str+Math.round(ms/10);
  3265. return str;
  3266. }
  3267. // COUNT THE AMOUNT OF CHARS, WORDS, LINES IN A TEXT
  3268. var getSplitCounts = function(txt,split,splitdelay) {
  3269. if (txt==undefined) return 0;
  3270. var splitted = new Object();
  3271. ht = jQuery('<div>'+txt+'</div>'),
  3272. w = 1;
  3273. splitted.c = ht.text().replace(/ /g, "").length;
  3274. splitted.w = txt.split(" ").length;
  3275. splitted.l = txt.split('<br').length;
  3276. switch (split) {
  3277. case "chars":
  3278. w = splitted.c;
  3279. break;
  3280. case "words":
  3281. w = splitted.w;
  3282. break;
  3283. case "lines":
  3284. w = splitted.l;
  3285. break;
  3286. }
  3287. return (w -1) * splitdelay;
  3288. }
  3289. /**
  3290. Show / HIde The Timelines
  3291. */
  3292. var showHideTimeines = function() {
  3293. /* HIDE / SHOW TIMELINES */
  3294. jQuery('#button_sort_timing').click(function() {
  3295. var bst = jQuery(this);
  3296. if (bst.hasClass("off")) {
  3297. bst.removeClass("off");
  3298. bst.find('.onoff').html('- on');
  3299. punchgs.TweenLite.to(jQuery('.sortlist .timeline'),0.5,{autoAlpha:0.5,overwrite:"auto"});
  3300. } else {
  3301. punchgs.TweenLite.to(jQuery('.sortlist .timeline'),0.5,{autoAlpha:0,overwrite:"auto"});
  3302. bst.addClass("off");
  3303. bst.find('.onoff').html('- off');
  3304. }
  3305. })
  3306. }
  3307. /**
  3308. *
  3309. * delete layer from sortbox
  3310. */
  3311. t.deleteLayerFromSortbox = function(serial){
  3312. var sortboxLayer = t.getHtmlSortItemFromSerial(serial),
  3313. sortboxTimeLayer = t.getHtmlSortTimeItemFromSerial(serial),
  3314. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3315. try{
  3316. sortboxLayer.remove();
  3317. sortboxTimeLayer.remove();
  3318. quickItem.remove();
  3319. } catch(e) {
  3320. }
  3321. if (jQuery('.quick-layers-list li').length<2) jQuery('.nolayersavailable').show();
  3322. }
  3323. /**
  3324. *
  3325. * unselect all items in sortbox
  3326. */
  3327. t.unselectSortboxItems = function(){
  3328. jQuery(".sortlist li,#layers-right li, .quick-layers-list li").removeClass("ui-state-hover").addClass("ui-state-default");
  3329. }
  3330. /**
  3331. * Organise groups and objects *
  3332. * This will move one Single Layer into its Group / Row / Column *
  3333. */
  3334. t.organiseGroupsAndLayer = function(editorupdate,demo,ignore_timelines) {
  3335. var _A_ = demo ? u.arrLayersDemo : u.arrLayers,
  3336. sortchanged = false;
  3337. for (var i in _A_) {
  3338. var objLayer = _A_[i];
  3339. if (objLayer.type!="group" && objLayer.type!="row" && objLayer.p_uid!=undefined && objLayer.p_uid!=-1) {
  3340. var sortelement = demo ? null : objLayer.references.sorttable.layer,
  3341. j_gpel = u.getLayerByUniqueId(objLayer.p_uid),
  3342. groupelement = !demo && j_gpel ? j_gpel.references.sorttable.layer[0].getElementsByClassName("sgw_def")[0] : undefined,
  3343. htmllayer = objLayer.references.htmlLayer,
  3344. grouplayer = j_gpel ? j_gpel.references.htmlLayer : undefined;
  3345. if (grouplayer && htmllayer && !grouplayer[0].contains(htmllayer[0])) {
  3346. var g = grouplayer[0].getElementsByClassName('tp_layer_group_inner_wrapper')[0];
  3347. if (g!==undefined && htmllayer[0]!==undefined) {
  3348. if (objLayer.type!=="column") {
  3349. var noelement = true,
  3350. so = 99999,
  3351. ib;
  3352. for (var j in _A_) {
  3353. var objComp = _A_[j];
  3354. if (objLayer.p_uid === objComp.p_uid && objComp.references.htmlLayer!==undefined && objComp.groupOrder!==undefined && objComp.groupOrder > objLayer.groupOrder && objComp.groupOrder<so) {
  3355. so = objComp.groupOrder;
  3356. noelement = false;
  3357. ib = objComp.references.htmlLayer;
  3358. }
  3359. }
  3360. if (ib!==undefined && so<99999) {
  3361. if (ib[0].parentNode == g)
  3362. g.insertBefore(htmllayer[0],ib[0]);
  3363. else
  3364. g.appendChild(htmllayer[0])
  3365. }
  3366. else
  3367. g.appendChild(htmllayer[0]);
  3368. } else {
  3369. //console.log("Add Column with ID:"+objLayer.unique_id+" into Group:"+objLayer.p_uid);
  3370. g.appendChild(htmllayer[0])
  3371. }
  3372. }
  3373. }
  3374. if (!demo && !editorupdate && groupelement!==undefined && !groupelement.contains(sortelement[0])) {
  3375. sortchanged = true;
  3376. groupelement.appendChild(sortelement[0]);
  3377. }
  3378. if (!demo && groupelement===undefined && objLayer.type==="column") u.deleteLayer(objLayer.serial);
  3379. } else {
  3380. objLayer.p_uid = -1;
  3381. var htmllayer = objLayer.references.htmlLayer,
  3382. sortelement = demo ? null : objLayer.references.sorttable.layer;
  3383. if (objLayer.type==="row") {
  3384. // PUT IN THE RIGHT ORDER THE ROW IN TO THE ZONE
  3385. var _zone = "row-zone-"+u.getVal(objLayer, 'align_vert'),
  3386. _znoelement = true,
  3387. _zso = 99999,
  3388. _zib,
  3389. _zg = document.getElementById(_zone);
  3390. //if (htmllayer[0].parentNode.id===_zone) return false;
  3391. for (var _j in _A_) {
  3392. var objComp = _A_[_j];
  3393. if (objComp.type==="row" && objComp.unique_id !== objLayer.unique_id && u.getVal(objLayer, 'align_vert') === u.getVal(objComp, 'align_vert') && objComp.references.htmlLayer!==undefined && objComp.groupOrder!==undefined && objComp.groupOrder >= objLayer.groupOrder && objComp.groupOrder<_zso) {
  3394. _zso = objComp.groupOrder;
  3395. _znoelement = false;
  3396. _zib = objComp.references.htmlLayer;
  3397. }
  3398. }
  3399. if (_zib!==undefined && _zso<99999) {
  3400. if (_zib[0].parentNode == _zg)
  3401. _zg.insertBefore(htmllayer[0],_zib[0]);
  3402. else
  3403. _zg.appendChild(htmllayer[0])
  3404. }
  3405. else
  3406. _zg.appendChild(htmllayer[0]);
  3407. u.checkRowZoneContents();
  3408. } else {
  3409. if (htmllayer[0].parentNode.id!='divLayers') document.getElementById("divLayers").appendChild(htmllayer[0]);
  3410. }
  3411. if (!demo && sortelement[0].parentNode.id!='layers-left-ul') {
  3412. document.getElementById('layers-left-ul').insertBefore(sortelement[0],document.getElementById("last_drop_zone_layers"));
  3413. sortchanged = true;
  3414. }
  3415. }
  3416. }
  3417. u.setMiddleRowZone();
  3418. if (sortchanged) t.updateOrderFromSortbox(ignore_timelines);
  3419. }
  3420. /**
  3421. * update layers order from sortbox elements
  3422. */
  3423. t.updateOrderFromSortbox = function(ignore_timelines){
  3424. // RESET GROUP AND COLUMN REFERENCES
  3425. for (i in u.arrLayers) {
  3426. var objLayer = u.arrLayers[i];
  3427. if (objLayer.type!="column" && objLayer.type != "row" && objLayer.type != "group") {
  3428. var _t = objLayer.references.sorttable.layer,
  3429. cc = _t[0].parentNode.parentNode.classList.contains("sortable_column"),
  3430. gg = _t[0].parentNode.parentNode.classList.contains("sortable_group"),
  3431. uqid = -1;
  3432. if ((!cc && !gg) || _t[0].parentNode.parentNode.id == "layers-left-ul") {
  3433. // IGNORE ITEM HERE
  3434. } else {
  3435. var c = jQuery(_t[0].parentNode.parentNode);
  3436. if (!cc) {
  3437. _t.data('pid',c.data('uniqueid'));
  3438. var gtype = c.data('type');
  3439. if (gtype==="row") {
  3440. c = _t.prev();
  3441. if (c.length==0) c = _t.next();
  3442. c[0].getElementsByClassName("sortable_layers_in_columns")[0].appendChild(_t[0]);
  3443. } else {
  3444. //c[0].getElementsByClassName("sortable_groups_wrap")[0].appendChild(_t[0]);
  3445. }
  3446. }
  3447. uqid = c.data('uniqueid');
  3448. }
  3449. _t.data('pid',uqid);
  3450. _t.attr('pid',uqid);
  3451. if (objLayer.p_uid != uqid) {
  3452. objLayer.p_uid = uqid;
  3453. u.add_layer_change();
  3454. }
  3455. }
  3456. }
  3457. var arrSortLayers = jQuery( "#layers-left-ul" ).sortable("toArray",{attribute:"data-uniqueid"});
  3458. for(var i=0;i<arrSortLayers.length;i++){
  3459. var objLayer = u.getLayerByUniqueId(arrSortLayers[i]),
  3460. depth = i+5,
  3461. objUpdate = {order:i,zIndex:depth};
  3462. u.arrLayers[objLayer.serial].order = i;
  3463. u.arrLayers[objLayer.serial].zIndex = depth;
  3464. //update sortbox order input
  3465. if (objLayer.references.sorttable.layer[0].getElementsByClassName("sortbox_depth")[0])
  3466. objLayer.references.sorttable.layer[0].getElementsByClassName("sortbox_depth")[0].innerHTML = depth;
  3467. document.getElementById("layers-right-ul").appendChild(objLayer.references.sorttable.timeline[0]);
  3468. document.getElementById('quick-layers-list-id').appendChild(objLayer.references.quicklayer[0]);
  3469. if (objLayer.p_uid!=-1 && objLayer.p_uid!==undefined && objLayer.type!=="row" && objLayer.type!=="group")
  3470. objLayer.references.quicklayer.addClass("quick_in_group")
  3471. else
  3472. objLayer.references.quicklayer.removeClass("quick_in_group")
  3473. }
  3474. //update z-index of the html window by order
  3475. t.updateZIndexByOrder();
  3476. if (ignore_timelines!=true) t.updateAllLayerTimeline();
  3477. }
  3478. t.resetTimeLineHeight = function() {
  3479. // SET HEIGHT OF MASTERTIMER
  3480. var maxh = document.getElementById('layers-right-ul').clientHeight;
  3481. punchgs.TweenLite.set(jQuery('#mastertimer-position'),{height:maxh+40});
  3482. }
  3483. t.timeLineTableDimensionUpdate = function() {
  3484. clearTimeout(timeline_timer);
  3485. timeline_timer = setTimeout(function() {
  3486. t.resetTimeLineHeight();
  3487. var maxh = ((jQuery('#layers-right ul li').length+1)*30) - ((jQuery('#layers-right ul li.layer-deleted').length+1)*30);
  3488. punchgs.TweenLite.set(jQuery('.layers-wrapper'),{height:maxh+3});
  3489. punchgs.TweenLite.set(jQuery('#mastertimer-wrapper'),{height:maxh+3})
  3490. jQuery('.master-rightcell .layers-wrapper, .master-leftcell .layers-wrapper, #divLayers-wrapper, .quick-layers-list').perfectScrollbar("update");
  3491. },50);
  3492. }
  3493. /**
  3494. * update z-index of the layers by order value
  3495. */
  3496. t.updateZIndexByOrder = function(){
  3497. for (var i in u.arrLayers) {
  3498. var objLayer = u.arrLayers[i],
  3499. depth = objLayer.order!==undefined ? objLayer.order+5 : 5,
  3500. objUpdate = {zIndex:depth};
  3501. if (objLayer.order !==undefined)
  3502. punchgs.TweenLite.set(objLayer.references.htmlLayer,{zIndex:(Number(objLayer.order)+100)});
  3503. u.updateLayer(objLayer.serial,objUpdate,false,true);
  3504. }
  3505. }
  3506. /**
  3507. * shift order among all the layers, push down all order num beyong the given
  3508. * need to redraw after this function
  3509. */
  3510. var shiftOrder = function(orderToFree){
  3511. for(key in u.arrLayers){
  3512. var obj = u.arrLayers[key];
  3513. if(obj.order >= orderToFree){
  3514. obj.order = Number(obj.order)+1;
  3515. u.arrLayers[key] = obj;
  3516. }
  3517. }
  3518. }
  3519. /**
  3520. * get sortbox text from layer html
  3521. */
  3522. t.getSortboxText = function(text){
  3523. sorboxTextSize = 20;
  3524. var textSortbox = text===undefined ? "NoText" : UniteAdminRev.stripTags(text);
  3525. //if no content - escape html
  3526. if(textSortbox.length < 2)
  3527. textSortbox = UniteAdminRev.htmlspecialchars(text);
  3528. //short text
  3529. if(textSortbox.length > sorboxTextSize)
  3530. textSortbox = textSortbox.slice(0,sorboxTextSize)+"...";
  3531. return(textSortbox);
  3532. }
  3533. /**
  3534. *
  3535. * redraw the sortbox
  3536. */
  3537. t.redrawSortbox = function(mode){
  3538. if(mode == undefined)
  3539. mode = sortMode;
  3540. emptySortbox();
  3541. var layers_array = getLayersSorted("depth");
  3542. if(layers_array.length == 0) {
  3543. return(false);
  3544. }
  3545. for(var i=0; i<layers_array.length;i++){
  3546. var objLayer = layers_array[i];
  3547. t.addToSortbox(objLayer.serial,objLayer);
  3548. }
  3549. if(u.selectedLayerSerial != -1)
  3550. t.setSortboxItemSelected(u.selectedLayerSerial);
  3551. }
  3552. var reinitSortBox = function(sortable) {
  3553. jQuery('#last_drop_zone_layers').appendTo('#layers-left-ul');
  3554. //set the sortlist sortable
  3555. if (sortable) {
  3556. jQuery('.layer_sortbox ul').sortable({
  3557. //axis:'y',
  3558. refreshPositions:true,
  3559. placeholder:"silent-placeholder",
  3560. cancel:"#slide_in_sort, input",
  3561. handle:".mastertimer-timeline-zindex-row",
  3562. items:".sortable_elements",
  3563. //toleranceElement: '> div',
  3564. connectWith:"#layers-left-ul, .sortable_groups_wrap, .sortable_layers_in_columns",
  3565. update: function(event,ui){
  3566. var src = jQuery(ui.item);
  3567. // CANCEL IF ELEMENT IS A ROW
  3568. if (src.hasClass("sortable_row")) jQuery(this).sortable("cancel");
  3569. // CANCEL CHANGE IF GROUP MOVED INTO OTHER GROUP
  3570. var tg = src.parent(),
  3571. mg = tg.closest('.sortable_group'),
  3572. telement = jQuery('#layers-left-ul');
  3573. if ((tg.hasClass("sortable_groups_wrap") || tg.hasClass("sortable_layers_in_columns")) && !src.hasClass("sortable_layers")) {
  3574. if (src.index()<tg.children().length/2)
  3575. src.insertBefore(mg);
  3576. else
  3577. src.insertAfter(mg);
  3578. }
  3579. // PUT ITEM BEFORE OR AFTER ROWS IN CASE THE ROW
  3580. if (tg.attr("id")==="layers-left-ul" || tg.parent().attr('id')==="layers-left-ul" || src.hasClass("sortable_group")) {
  3581. var rows = telement.find('.sortable_row'),
  3582. fr = rows.first().index(),
  3583. lr = rows.last().index(),
  3584. si = src.index();
  3585. if (si>fr && si<lr)
  3586. src.insertAfter(rows.last());
  3587. }
  3588. onSortboxSorted();
  3589. t.organiseGroupsAndLayer();
  3590. }
  3591. });
  3592. }
  3593. jQuery('.droppable_sortable_group,.droppable_sortable_row, .droppable_sortable_column').droppable({
  3594. tolerance:"intersect",
  3595. greedy:true,
  3596. over:function(ui) {
  3597. jQuery(ui.target).addClass("readytodrop")
  3598. },
  3599. out:function(ui) {
  3600. jQuery(ui.target).removeClass("readytodrop")
  3601. },
  3602. drop:function(ui,a) {
  3603. var ul = jQuery('#layers-left-ul');
  3604. jQuery(ui.target).removeClass("readytodrop");
  3605. var cl = jQuery(ui.target).attr('class'),
  3606. src = jQuery(ui.srcElement).closest('.sortable_elements.sortable_layers'),
  3607. tg;
  3608. if (!src.length) return false;
  3609. // ADD TO GROUP
  3610. if (cl.indexOf('droppable_sortable_group')>=0)
  3611. tg = jQuery(ui.target).closest('li.sortable_group').find('.sortable_groups_wrap');
  3612. // ADD TO FIRST COLUMN IN ROW
  3613. if (cl.indexOf('droppable_sortable_row')>=0)
  3614. tg = jQuery(ui.target).closest('li.sortable_group.sortable_row').find('.sortable_layers_in_columns').first();
  3615. // ADD TO COLUMN
  3616. if (cl.indexOf('droppable_sortable_column')>=0)
  3617. tg = jQuery(ui.target).closest('li.sortable_column').find('.sortable_layers_in_columns').first();
  3618. setTimeout(function(){
  3619. src.appendTo(tg);
  3620. onSortboxSorted();
  3621. t.organiseGroupsAndLayer();
  3622. },50);
  3623. }
  3624. })
  3625. }
  3626. //======================================================
  3627. // Sortbox Functions
  3628. //======================================================
  3629. var initSortbox = function(){
  3630. t.redrawSortbox();
  3631. reinitSortBox(true);
  3632. //set click event on full row
  3633. jQuery("body").delegate(".layer_sort_inner_wrapper","mousedown",function(e){
  3634. var li = jQuery(this).closest('.sortable_elements');
  3635. if (li.hasClass("ui-state-hover")) return true;
  3636. if (!li.hasClass("mastertimer-slide")) {
  3637. var serial = u.getSerialFromSortID(li.attr('id'));
  3638. u.setLayerSelected(serial);
  3639. return false;
  3640. }
  3641. });
  3642. //set click event on collapser
  3643. jQuery("body").on("click",".sort_group_collapser",function(e){
  3644. var t = jQuery(this),
  3645. c = t.closest('.sortable_column'),
  3646. g = c.length ? c : t.closest('.sortable_group'),
  3647. cenv = c.length? g.find('.sortable_layers_in_columns') : g.find('.sortable_groups_wrap');
  3648. t.toggleClass("collapsed");
  3649. if (t.hasClass("collapsed"))
  3650. cenv.css({maxHeight:"0px", overflow:"hidden"});
  3651. else
  3652. cenv.css({maxHeight:"none", overflow:"visible"});
  3653. cenv.find('.sortable_elements').each(function(i,a) {
  3654. var a = jQuery(a),
  3655. uid = a.data('uniqueid');
  3656. if (t.hasClass("collapsed"))
  3657. jQuery('#layers-right-ul li[data-uniqueid="'+uid+'"]').addClass("unvisibletimeline");
  3658. else
  3659. jQuery('#layers-right-ul li[data-uniqueid="'+uid+'"]').removeClass("unvisibletimeline");
  3660. });
  3661. });
  3662. //set click event on timelines
  3663. jQuery("#layers-right").delegate("li","mousedown",function(e){
  3664. var li = jQuery(this);
  3665. t.recordFrameStatusForce = true;
  3666. if (li.hasClass("ui-state-hover")) return true;
  3667. if (!li.hasClass("mastertimer-slide")) {
  3668. var serial = u.getSerialFromSortID(this.id);
  3669. u.setLayerSelected(serial);
  3670. return false;
  3671. }
  3672. });
  3673. jQuery('.quick-layer-all-lock').click(function() {
  3674. var b = jQuery(this),
  3675. i = b.find('i');
  3676. if (i.hasClass("eg-icon-lock")) {
  3677. jQuery('.quick-layer-lock i').each(function() {
  3678. jQuery(this).removeClass("eg-icon-lock-open").addClass("eg-icon-lock");
  3679. });
  3680. i.addClass("eg-icon-lock-open").removeClass("eg-icon-lock");
  3681. u.lockAllLayers();
  3682. } else {
  3683. jQuery('.quick-layer-lock i').each(function() {
  3684. jQuery(this).removeClass("eg-icon-lock").addClass("eg-icon-lock-open");
  3685. });
  3686. i.removeClass("eg-icon-lock-open").addClass("eg-icon-lock");
  3687. u.unlockAllLayers();
  3688. }
  3689. })
  3690. jQuery('.quick-layer-all-view').click(function() {
  3691. var b = jQuery(this),
  3692. i = b.find('i');
  3693. if (i.hasClass("eg-icon-eye")) {
  3694. jQuery('.quick-layer-view i').each(function() {
  3695. jQuery(this).addClass("eg-icon-eye").removeClass("eg-icon-eye-off");
  3696. });
  3697. i.removeClass("eg-icon-eye").addClass("eg-icon-eye-off");
  3698. u.showAllLayers();
  3699. } else {
  3700. jQuery('.quick-layer-view i').each(function() {
  3701. jQuery(this).removeClass("eg-icon-eye").addClass("eg-icon-eye-off");
  3702. });
  3703. i.addClass("eg-icon-eye").removeClass("eg-icon-eye-off");
  3704. u.hideAllLayers();
  3705. }
  3706. })
  3707. //on show / hide layer icon click - show / hide layer
  3708. jQuery(".sortlist").delegate(".till_slideend","mousedown",function(event){
  3709. var button = jQuery(this),
  3710. li = button.closest('li'),
  3711. serial = button.data('serial'),
  3712. objLayer = u.getLayer(serial),
  3713. maxtime = (t.mainMaxTimeLeft)*10;
  3714. if (li.hasClass("tillendon")) {
  3715. li.removeClass("tillendon")
  3716. objLayer.frames["frame_999"].time = objLayer.frames["frame_999"].time-200;
  3717. t.updateLayerTimeline(objLayer);
  3718. } else {
  3719. li.addClass("tillendon");
  3720. objLayer.frames["frame_999"].time = maxtime;
  3721. t.updateLayerTimeline(objLayer);
  3722. }
  3723. });
  3724. }
  3725. /***********************************
  3726. order layers by time
  3727. type can be [time] or [order]
  3728. ************************************/
  3729. var getLayersSorted = function(type){
  3730. if(type == undefined)
  3731. type = "time";
  3732. //convert to array
  3733. var layers_array = [];
  3734. for(key in u.arrLayers){
  3735. var obj = u.arrLayers[key];
  3736. obj.serial = key;
  3737. layers_array.push(obj);
  3738. }
  3739. if(layers_array.length == 0)
  3740. return(layers_array);
  3741. //sort layers array
  3742. layers_array.sort(function(layer1,layer2){
  3743. switch(type){
  3744. case "time":
  3745. if(Number(layer1.time) == Number(layer2.time)){
  3746. if(layer1.order == layer2.order)
  3747. return(0);
  3748. if(layer1.order > layer2.order)
  3749. return(1);
  3750. return(-1);
  3751. }
  3752. if(Number(layer1.time) > Number(layer2.time))
  3753. return(1);
  3754. break;
  3755. case "depth":
  3756. if(layer1.order == layer2.order)
  3757. return(0);
  3758. if(layer1.order > layer2.order)
  3759. return(1);
  3760. break;
  3761. default:
  3762. trace("wrong sort type: "+type);
  3763. break;
  3764. }
  3765. return(-1);
  3766. });
  3767. return(layers_array);
  3768. }
  3769. /**
  3770. * hide in html and sortbox
  3771. */
  3772. t.hideLayer = function(objLayer,skipGlobalButton){
  3773. if (objLayer.references===undefined || objLayer.references.htmlLayer===undefined) return;
  3774. var htmlLayer = objLayer.references.htmlLayer;
  3775. htmlLayer.css({visibility:"hidden"});
  3776. htmlLayer.addClass("currently_not_visible");
  3777. if (!objLayer.isDemo)
  3778. setSortboxItemHidden(objLayer.serial);
  3779. if(skipGlobalButton != true){
  3780. if(t.isAllLayersHidden())
  3781. jQuery("#button_sort_visibility").addClass("e-disabled");
  3782. }
  3783. }
  3784. /**
  3785. * show layer in html and sortbox
  3786. */
  3787. t.showLayer = function(objLayer,skipGlobalButton){
  3788. if (objLayer.references===undefined || objLayer.references.htmlLayer===undefined) return;
  3789. var htmlLayer = objLayer.references.htmlLayer;
  3790. htmlLayer.css({visibility:"visible"});
  3791. htmlLayer.removeClass("currently_not_visible");
  3792. if (!objLayer.isDemo)
  3793. setSortboxItemVisible(objLayer.serial);
  3794. if(skipGlobalButton != true)
  3795. jQuery("#button_sort_visibility").removeClass("e-disabled");
  3796. }
  3797. /**
  3798. * get true / false if the layer is hidden
  3799. */
  3800. t.isLayerVisible = function(htmlLayer){
  3801. var isVisible = true;
  3802. if (htmlLayer!=undefined && htmlLayer[0].classList.contains("currently_not_visible"))
  3803. isVisible = false;
  3804. return(isVisible);
  3805. }
  3806. /**
  3807. * get true / false if all layers hidden
  3808. */
  3809. t.isAllLayersHidden = function(){
  3810. var i=0;
  3811. for(serial in u.arrLayers){
  3812. if(u.arrLayers[i]!==undefined && t.isLayerVisible(u.arrLayers[i].references.htmlLayer) == true) return(false);
  3813. i++;
  3814. }
  3815. return(true);
  3816. }
  3817. /**
  3818. * get true / false if the layer can be moved
  3819. */
  3820. t.isLayerLocked = function(htmllayer){
  3821. return htmllayer.hasClass("layer_on_lock");
  3822. }
  3823. /**
  3824. * hide in html and sortbox
  3825. */
  3826. t.lockLayer = function(serial){
  3827. setSortboxItemLocked(serial);
  3828. var layer = u.getHtmlLayerFromSerial(serial);
  3829. layer.addClass("layer_on_lock");
  3830. }
  3831. /**
  3832. * show layer in html and sortbox
  3833. */
  3834. t.unlockLayer = function(serial){
  3835. setSortboxItemUnlocked(serial);
  3836. var layer = u.getHtmlLayerFromSerial(serial);
  3837. layer.removeClass("layer_on_lock");
  3838. }
  3839. /**
  3840. * set sortbox items selected
  3841. */
  3842. t.setSortboxItemSelected = function(serial){
  3843. var sortItem = t.getHtmlSortItemFromSerial(serial),
  3844. sortTimeItem = t.getHtmlSortTimeItemFromSerial(serial),
  3845. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3846. t.unselectSortboxItems();
  3847. if (sortItem)
  3848. sortItem.removeClass("ui-state-default").addClass("ui-state-hover");
  3849. if (sortTimeItem)
  3850. sortTimeItem.removeClass("ui-state-default").addClass("ui-state-hover");
  3851. if (quickItem)
  3852. quickItem.removeClass("ui-state-default").addClass("ui-state-hover");
  3853. }
  3854. /**
  3855. * set sortbox item hidden mode
  3856. */
  3857. var setSortboxItemHidden = function(serial){
  3858. var sortItem = t.getHtmlSortItemFromSerial(serial),
  3859. sortTimeItem = t.getHtmlSortTimeItemFromSerial(serial),
  3860. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3861. if (sortItem)
  3862. sortItem.addClass("sortitem-hidden");
  3863. if (sortTimeItem)
  3864. sortTimeItem.addClass("sortitem-hidden");
  3865. if (quickItem) {
  3866. quickItem.addClass("sortitem-hidden");
  3867. quickItem.find('.eg-icon-eye').addClass("eg-icon-eye-off").removeClass('eg-icon-eye');
  3868. quickItem.find('.quick-layer-view').addClass("in-off");
  3869. }
  3870. }
  3871. /**
  3872. * set sortbox item visible mode
  3873. */
  3874. var setSortboxItemVisible = function(serial){
  3875. var sortItem = t.getHtmlSortItemFromSerial(serial),
  3876. sortTimeItem = t.getHtmlSortTimeItemFromSerial(serial),
  3877. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3878. if (sortItem)
  3879. sortItem.removeClass("sortitem-hidden");
  3880. if (sortTimeItem)
  3881. sortTimeItem.removeClass("sortitem-hidden");
  3882. if (quickItem)
  3883. quickItem.removeClass("sortitem-hidden");
  3884. }
  3885. /**
  3886. * set sortbox item locked mode
  3887. */
  3888. var setSortboxItemLocked = function(serial){
  3889. var sortItem = t.getHtmlSortItemFromSerial(serial),
  3890. sortTimeItem = t.getHtmlSortTimeItemFromSerial(serial),
  3891. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3892. if (sortItem)
  3893. sortItem.addClass("sortitem-locked");
  3894. if (sortTimeItem)
  3895. sortTimeItem.addClass("sortitem-locked");
  3896. if (quickItem)
  3897. quickItem.addClass("sortitem-locked");
  3898. }
  3899. /**
  3900. * set sortbox item unlocked mode
  3901. */
  3902. var setSortboxItemUnlocked = function(serial){
  3903. var sortItem = t.getHtmlSortItemFromSerial(serial),
  3904. sortTimeItem = t.getHtmlSortTimeItemFromSerial(serial),
  3905. quickItem = t.getHtmlQuickTimeItemFromSerial(serial);
  3906. if (sortItem)
  3907. sortItem.removeClass("sortitem-locked");
  3908. if (sortTimeItem)
  3909. sortTimeItem.removeClass("sortitem-locked");
  3910. if (quickItem)
  3911. quickItem.removeClass("sortitem-locked");
  3912. }
  3913. /**
  3914. * get sort field element from serial
  3915. */
  3916. t.getHtmlSortItemFromSerial = function(serial){
  3917. var htmlSortItem = jQuery("#layer_sort_"+serial);
  3918. if(htmlSortItem.length == 0){
  3919. UniteAdminRev.showErrorMessage("Html sort field with serial: "+serial+" not found!");
  3920. return(false);
  3921. }
  3922. return(htmlSortItem);
  3923. }
  3924. t.getHtmlSortTimeItemFromSerial = function(serial){
  3925. var htmlSortItem = jQuery("#layer_sort_time_"+serial);
  3926. if(htmlSortItem.length == 0){
  3927. UniteAdminRev.showErrorMessage("Html sort field with serial: "+serial+" not found!");
  3928. return(false);
  3929. }
  3930. return(htmlSortItem);
  3931. }
  3932. t.getHtmlQuickTimeItemFromSerial = function(serial){
  3933. var htmlSortItem = jQuery("#layer_quicksort_"+serial);
  3934. if(htmlSortItem.length == 0){
  3935. UniteAdminRev.showErrorMessage("Html sort field with serial: "+serial+" not found!");
  3936. return(false);
  3937. }
  3938. return(htmlSortItem);
  3939. }
  3940. /**
  3941. * remove all from sortbox
  3942. */
  3943. var emptySortbox = function(){
  3944. jQuery(".sortlist ul").find('.sortable_elements').remove();
  3945. jQuery('#layers-right ul').find('.sortable_elements').remove();
  3946. }
  3947. /**
  3948. * on sortbox sorted event.
  3949. */
  3950. var onSortboxSorted = function(){
  3951. t.updateOrderFromSortbox();
  3952. }
  3953. //======================================================
  3954. // Sortbox Functions End
  3955. //======================================================
  3956. ///////////////////////
  3957. // PREPARE THE SLIDE //
  3958. //////////////////////
  3959. var prepareOneSlide = function(slotholder,opt,visible,vorh,w,h) {
  3960. var sh=slotholder,
  3961. img = sh.find('.defaultimg'),
  3962. scalestart = sh.data('zoomstart'),
  3963. rotatestart = sh.data('rotationstart'),
  3964. src = sh.find('.defaultimg').css("backgroundImage"),
  3965. bgcolor=sh.find('.defaultimg').css('backgroundColor'),
  3966. off=0,
  3967. bgfit = sh.find('.defaultimg').css("backgroundSize"),
  3968. bgrepeat = sh.find('.defaultimg').css("backgroundRepeat"),
  3969. bgposition = sh.find('.defaultimg').css("backgroundPosition");
  3970. src=src.replace('"','');
  3971. src=src.replace('"','');
  3972. if (bgfit==undefined) bgfit="cover";
  3973. if (bgrepeat==undefined) bgrepeat="no-repeat";
  3974. if (bgposition==undefined) bgposition="center center";
  3975. var w= w !=undefined ? w : jQuery('#divbgholder').width(),
  3976. h= h !=undefined ? h : jQuery('#divbgholder').height();
  3977. opt.slotw=Math.ceil(w/opt.slots),
  3978. opt.sloth=Math.ceil(h/opt.slots);
  3979. // SET THE MINIMAL SIZE OF A BOX
  3980. var basicsize = 0,
  3981. x = 0,
  3982. y = 0;
  3983. if (opt.sloth>opt.slotw)
  3984. basicsize=opt.sloth
  3985. else
  3986. basicsize=opt.slotw;
  3987. opt.slotw = basicsize;
  3988. opt.sloth = basicsize;
  3989. var x=0,
  3990. y=0,
  3991. fulloff = 0,
  3992. fullyoff = 0;
  3993. switch (vorh) {
  3994. // BOX ANIMATION PREPARING
  3995. case "box":
  3996. for (var j=0;j<opt.slots;j++) {
  3997. y=0;
  3998. for (var i=0;i<opt.slots;i++) {
  3999. sh.append('<div class="slot" '+
  4000. 'style="position:absolute;'+
  4001. 'top:'+(fullyoff+y)+'px;'+
  4002. 'left:'+(fulloff+x)+'px;'+
  4003. 'width:'+basicsize+'px;'+
  4004. 'height:'+basicsize+'px;'+
  4005. 'overflow:hidden;">'+
  4006. '<div class="slotslide" data-x="'+x+'" data-y="'+y+'" '+
  4007. 'style="position:absolute;'+
  4008. 'top:'+(0)+'px;'+
  4009. 'left:'+(0)+'px;'+
  4010. 'width:'+basicsize+'px;'+
  4011. 'height:'+basicsize+'px;'+
  4012. 'overflow:hidden;">'+
  4013. '<div class="slotslidebg" style="position:absolute;'+
  4014. 'top:'+(0-y)+'px;'+
  4015. 'left:'+(0-x)+'px;'+
  4016. 'width:'+w+'px;'+
  4017. 'height:'+h+'px;'+
  4018. 'background-color:'+bgcolor+';'+
  4019. 'background-image:'+src+';'+
  4020. 'background-repeat:'+bgrepeat+';'+
  4021. 'background-size:'+bgfit+';background-position:'+bgposition+';">'+
  4022. '</div></div></div>');
  4023. y=y+basicsize;
  4024. }
  4025. x=x+basicsize;
  4026. }
  4027. break;
  4028. // SLOT ANIMATION PREPARING
  4029. case "vertical":
  4030. case "horizontal":
  4031. if (vorh == "horizontal") {
  4032. if (!visible) var off=0-opt.slotw;
  4033. for (var i=0;i<opt.slots;i++) {
  4034. sh.append('<div class="slot" style="position:absolute;'+
  4035. 'top:'+(0+fullyoff)+'px;'+
  4036. 'left:'+(fulloff+(i*opt.slotw))+'px;'+
  4037. 'overflow:hidden;width:'+(opt.slotw+0.6)+'px;'+
  4038. 'height:'+h+'px">'+
  4039. '<div class="slotslide" style="position:absolute;'+
  4040. 'top:0px;left:'+off+'px;'+
  4041. 'width:'+(opt.slotw+0.6)+'px;'+
  4042. 'height:'+h+'px;overflow:hidden;">'+
  4043. '<div class="slotslidebg" style="background-color:'+bgcolor+';'+
  4044. 'position:absolute;top:0px;'+
  4045. 'left:'+(0-(i*opt.slotw))+'px;'+
  4046. 'width:'+w+'px;height:'+h+'px;'+
  4047. 'background-image:'+src+';'+
  4048. 'background-repeat:'+bgrepeat+';'+
  4049. 'background-size:'+bgfit+';background-position:'+bgposition+';">'+
  4050. '</div></div></div>');
  4051. }
  4052. } else {
  4053. if (!visible) var off=0-opt.sloth;
  4054. for (var i=0;i<opt.slots+2;i++) {
  4055. sh.append('<div class="slot" style="position:absolute;'+
  4056. 'top:'+(fullyoff+(i*opt.sloth))+'px;'+
  4057. 'left:'+(fulloff)+'px;'+
  4058. 'overflow:hidden;'+
  4059. 'width:'+w+'px;'+
  4060. 'height:'+(opt.sloth)+'px">'+
  4061. '<div class="slotslide" style="position:absolute;'+
  4062. 'top:'+(off)+'px;'+
  4063. 'left:0px;width:'+w+'px;'+
  4064. 'height:'+opt.sloth+'px;'+
  4065. 'overflow:hidden;">'+
  4066. '<div class="slotslidebg" style="background-color:'+bgcolor+';'+
  4067. 'position:absolute;'+
  4068. 'top:'+(0-(i*opt.sloth))+'px;'+
  4069. 'left:0px;'+
  4070. 'width:'+w+'px;height:'+h+'px;'+
  4071. 'background-image:'+src+';'+
  4072. 'background-repeat:'+bgrepeat+';'+
  4073. 'background-size:'+bgfit+';background-position:'+bgposition+';">'+
  4074. '</div></div></div>');
  4075. }
  4076. }
  4077. break;
  4078. }
  4079. }
  4080. //////////////////////////////
  4081. // SWAP SLIDE PROGRESS //
  4082. //////////////////////////////
  4083. var slideAnimation = function(nextsh,actsh,comingtransition,givebackmtl,smallpreview) {
  4084. if (nextsh!=undefined) {
  4085. var nextli = nextsh,
  4086. actli = actsh,
  4087. container = new Object(),
  4088. opt = new Object();
  4089. opt.width = nextsh.width();
  4090. opt.height = nextsh.height();
  4091. } else {
  4092. var nextsh = nextli = jQuery('#divbgholder').find('.slotholder'),
  4093. actsh = actli = jQuery('#divbgholder').find('.oldslotholder'),
  4094. container = new Object(),
  4095. comingtransition = jQuery('#fake-select-label').data('valu'),
  4096. opt = new Object();
  4097. opt.width = jQuery('#divbgholder').width();
  4098. opt.height = jQuery('#divbgholder').height();
  4099. }
  4100. if (comingtransition=="slidingoverlayvertical")
  4101. comingtransition = "slidingoverlayup"
  4102. if (comingtransition=="slidingoverlayhorizontal")
  4103. comingtransition = "slidingoverlayleft"
  4104. if (comingtransition=="slideoverhorizontal")
  4105. comingtransition = "slideoverleft"
  4106. if (comingtransition=="slideoververtical")
  4107. comingtransition = "slideoverup"
  4108. if (comingtransition=="slideremovehorizontal")
  4109. comingtransition = "slideremoveleft"
  4110. if (comingtransition=="slideremovevertical")
  4111. comingtransition = "slideremoveup"
  4112. if (comingtransition=="slidehorizontal")
  4113. comingtransition = "slideleft"
  4114. if (comingtransition=="slidevertical")
  4115. comingtransition = "slideup"
  4116. if (comingtransition=="parallaxhorizontal")
  4117. comingtransition = "parallaxtoleft"
  4118. if (comingtransition=="parallaxvertical")
  4119. comingtransition = "parallaxtotop"
  4120. var p1i = punchgs.Power1.easeIn,
  4121. p1o = punchgs.Power1.easeOut,
  4122. p1io = punchgs.Power1.easeInOut,
  4123. p2i = punchgs.Power2.easeIn,
  4124. p2o = punchgs.Power2.easeOut,
  4125. p2io = punchgs.Power2.easeInOut,
  4126. p3i = punchgs.Power3.easeIn,
  4127. p3o = punchgs.Power3.easeOut,
  4128. p3io = punchgs.Power3.easeInOut,
  4129. flatTransitions = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],
  4130. premiumTransitions = [16,17,18,19,20,21,22,23,24,25,27],
  4131. nexttrans =0,
  4132. specials = 1,
  4133. STAindex = 0,
  4134. indexcounter =0,
  4135. STA = new Array,
  4136. transitionsArray = [['boxslide' , 0, 1, 10, 0,'box',false,null,0,p1o,p1o,500,6],
  4137. ['boxfade', 1, 0, 10, 0,'box',false,null,1,p1io,p1io,700,5],
  4138. ['slotslide-horizontal', 2, 0, 0, 200,'horizontal',true,false,2,p2io,p2io,700,3],
  4139. ['slotslide-vertical', 3, 0,0,200,'vertical',true,false,3,p2io,p2io,700,3],
  4140. ['curtain-1', 4, 3,0,0,'horizontal',true,true,4,p1o,p1o,300,5],
  4141. ['curtain-2', 5, 3,0,0,'horizontal',true,true,5,p1o,p1o,300,5],
  4142. ['curtain-3', 6, 3,25,0,'horizontal',true,true,6,p1o,p1o,300,5],
  4143. ['slotzoom-horizontal', 7, 0,0,400,'horizontal',true,true,7,p1o,p1o,300,7],
  4144. ['slotzoom-vertical', 8, 0,0,0,'vertical',true,true,8,p2o,p2o,500,8],
  4145. ['slotfade-horizontal', 9, 0,0,500,'horizontal',true,null,9,p2o,p2o,500,25],
  4146. ['slotfade-vertical', 10, 0,0 ,500,'vertical',true,null,10,p2o,p2o,500,25],
  4147. ['fade', 11, 0, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4148. ['crossfade', 11, 1, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4149. ['fadethroughdark', 11, 2, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4150. ['fadethroughlight', 11, 3, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4151. ['fadethroughtransparent', 11, 4, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4152. ['slideleft', 12, 0,1,0,'horizontal',true,true,12,p3io,p3io,1000,1],
  4153. ['slideup', 13, 0,1,0,'horizontal',true,true,13,p3io,p3io,1000,1],
  4154. ['slidedown', 14, 0,1,0,'horizontal',true,true,14,p3io,p3io,1000,1],
  4155. ['slideright', 15, 0,1,0,'horizontal',true,true,15,p3io,p3io,1000,1],
  4156. ['slideoverleft', 12, 7,1,0,'horizontal',true,true,12,p3io,p3io,1000,1],
  4157. ['slideoverup', 13, 7,1,0,'horizontal',true,true,13,p3io,p3io,1000,1],
  4158. ['slideoverdown', 14, 7,1,0,'horizontal',true,true,14,p3io,p3io,1000,1],
  4159. ['slideoverright', 15, 7,1,0,'horizontal',true,true,15,p3io,p3io,1000,1],
  4160. ['slideremoveleft', 12, 8,1,0,'horizontal',true,true,12,p3io,p3io,1000,1],
  4161. ['slideremoveup', 13, 8,1,0,'horizontal',true,true,13,p3io,p3io,1000,1],
  4162. ['slideremovedown', 14, 8,1,0,'horizontal',true,true,14,p3io,p3io,1000,1],
  4163. ['slideremoveright', 15, 8,1,0,'horizontal',true,true,15,p3io,p3io,1000,1],
  4164. ['papercut', 16, 0,0,600,'',null,null,16,p3io,p3io,1000,2],
  4165. ['3dcurtain-horizontal', 17, 0,20,100,'vertical',false,true,17,p1io,p1io,500,7],
  4166. ['3dcurtain-vertical', 18, 0,10,100,'horizontal',false,true,18,p1io,p1io,500,5],
  4167. ['cubic', 19, 0,20,600,'horizontal',false,true,19,p3io,p3io,500,1],
  4168. ['cube',19,0,20,600,'horizontal',false,true,20,p3io,p3io,500,1],
  4169. ['flyin', 20, 0,4,600,'vertical',false,true,21,p3o,p3io,500,1],
  4170. ['turnoff', 21, 0,1,500,'horizontal',false,true,22,p3io,p3io,500,1],
  4171. ['incube', 22, 0,20,200,'horizontal',false,true,23,p2io,p2io,500,1],
  4172. ['cubic-horizontal', 23, 0,20,500,'vertical',false,true,24,p2o,p2o,500,1],
  4173. ['cube-horizontal', 23, 0,20,500,'vertical',false,true,25,p2o,p2o,500,1],
  4174. ['incube-horizontal', 24, 0,20,500,'vertical',false,true,26,p2io,p2io,500,1],
  4175. ['turnoff-vertical', 25, 0,1,200,'horizontal',false,true,27,p2io,p2io,500,1],
  4176. ['fadefromright', 12, 1,1,0,'horizontal',true,true,28,p2io,p2io,1000,1],
  4177. ['fadefromleft', 15, 1,1,0,'horizontal',true,true,29,p2io,p2io,1000,1],
  4178. ['fadefromtop', 14, 1,1,0,'horizontal',true,true,30,p2io,p2io,1000,1],
  4179. ['fadefrombottom', 13, 1,1,0,'horizontal',true,true,31,p2io,p2io,1000,1],
  4180. ['fadetoleftfadefromright', 12, 2,1,0,'horizontal',true,true,32,p2io,p2io,1000,1],
  4181. ['fadetorightfadefromleft', 15, 2,1,0,'horizontal',true,true,33,p2io,p2io,1000,1],
  4182. ['fadetobottomfadefromtop', 14, 2,1,0,'horizontal',true,true,34,p2io,p2io,1000,1],
  4183. ['fadetotopfadefrombottom', 13, 2,1,0,'horizontal',true,true,35,p2io,p2io,1000,1],
  4184. ['parallaxtoright', 12, 3,1,0,'horizontal',true,true,36,p2io,p2i,1500,1],
  4185. ['parallaxtoleft', 15, 3,1,0,'horizontal',true,true,37,p2io,p2i,1500,1],
  4186. ['parallaxtotop', 14, 3,1,0,'horizontal',true,true,38,p2io,p1i,1500,1],
  4187. ['parallaxtobottom', 13, 3,1,0,'horizontal',true,true,39,p2io,p1i,1500,1],
  4188. ['scaledownfromright', 12, 4,1,0,'horizontal',true,true,40,p2io,p2i,1000,1],
  4189. ['scaledownfromleft', 15, 4,1,0,'horizontal',true,true,41,p2io,p2i,1000,1],
  4190. ['scaledownfromtop', 14, 4,1,0,'horizontal',true,true,42,p2io,p2i,1000,1],
  4191. ['scaledownfrombottom', 13, 4,1,0,'horizontal',true,true,43,p2io,p2i,1000,1],
  4192. ['zoomout', 13, 5,1,0,'horizontal',true,true,44,p2io,p2i,1000,1],
  4193. ['zoomin', 13, 6,1,0,'horizontal',true,true,45,p2io,p2i,1000,1],
  4194. ['slidingoverlayup', 27, 0,1,0,'horizontal',true,true,47,p1io,p1o,2000,1],
  4195. ['slidingoverlaydown', 28, 0,1,0,'horizontal',true,true,48,p1io,p1o,2000,1],
  4196. ['slidingoverlayright', 30, 0,1,0,'horizontal',true,true,49,p1io,p1o,2000,1],
  4197. ['slidingoverlayleft', 29, 0,1,0,'horizontal',true,true,50,p1io,p1o,2000,1],
  4198. ['notransition',26,0,1,0,'horizontal',true,null,46,p2io,p2i,1000,1],
  4199. ['grayscale', 11, 5, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4200. ['grayscalecross', 11, 6, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4201. ['brightness', 11, 7, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4202. ['brightnesscross', 11, 8, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4203. ['blurlight', 11, 9, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4204. ['blurlightcross', 11, 10, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4205. ['blurstrong', 11, 9, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1],
  4206. ['blurstrongcross', 11, 10, 1 ,300,'horizontal',true,null,11,p2io,p2io,1000,1]
  4207. ];
  4208. // RANDOM TRANSITIONS
  4209. if (comingtransition == "random-selected" || comingtransition == "random" || comingtransition == "random-static" || comingtransition == "random-premium")
  4210. comingtransition = 11;
  4211. function findTransition() {
  4212. // FIND THE RIGHT TRANSITION PARAMETERS HERE
  4213. if (transitionsArray)
  4214. jQuery.each(transitionsArray,function(inde,trans) {
  4215. if (trans[0] == comingtransition || trans[8] == comingtransition) {
  4216. nexttrans = trans[1];
  4217. specials = trans[2];
  4218. STAindex = indexcounter;
  4219. }
  4220. indexcounter = indexcounter+1;
  4221. })
  4222. }
  4223. findTransition();
  4224. var direction = -1,
  4225. masterspeed = jQuery('#transition_duration').val();
  4226. if (nexttrans>30) nexttrans = 30;
  4227. if (nexttrans<0) nexttrans = 0;
  4228. // PREPARED DEFAULT SETTINGS PER TRANSITION
  4229. STA = transitionsArray[STAindex];
  4230. ///////////////////////////////
  4231. // MAIN TIMELINE DEFINITION //
  4232. ///////////////////////////////
  4233. var mtl = new punchgs.TimelineLite();
  4234. //SET DEFAULT IMG UNVISIBLE AT START
  4235. mtl.add(punchgs.TweenLite.set(nextsh.find('.defaultimg'),{autoAlpha:0}));
  4236. mtl.pause();
  4237. mtl.add(punchgs.TweenLite.set(actsh,{autoAlpha:1,force3D:"auto",zIndex:0}),0);
  4238. mtl.add(punchgs.TweenLite.set(nextsh,{autoAlpha:1,force3D:"auto",zIndex:1}),0);
  4239. // ADJUST MASTERSPEED
  4240. /*masterspeed = masterspeed + STA[4];
  4241. if ((nexttrans==4 || nexttrans==5 || nexttrans==6) && opt.slots<3 ) opt.slots=3;
  4242. // ADJUST SLOTS
  4243. if (STA[3] != 0) opt.slots = Math.min(opt.slots,STA[3]);
  4244. if (nexttrans==9) opt.slots = opt.width/20;
  4245. if (nexttrans==10) opt.slots = opt.height/20;*/
  4246. opt.slots = jQuery('#slot_amount').val();
  4247. opt.rotate = jQuery('#transition_rotation').val();
  4248. masterspeed = masterspeed==="default" ? STA[11] : masterspeed==="random" ? Math.round(Math.random()*1000+300) : masterspeed!=undefined ? parseInt(masterspeed,0) : STA[11];
  4249. masterspeed = masterspeed > opt.delay ? opt.delay : masterspeed;
  4250. // ADJUST MASTERSPEED
  4251. masterspeed = masterspeed + STA[4];
  4252. ///////////////////////
  4253. // ADJUST SLOTS //
  4254. ///////////////////////
  4255. opt.slots = opt.slots==undefined || opt.slots=="default" ? STA[12] : opt.slots=="random" ? Math.round(Math.random()*12+4) : STA[12];
  4256. opt.slots = opt.slots < 1 ? comingtransition=="boxslide" ? Math.round(Math.random()*6+3) : comingtransition=="flyin" ? Math.round(Math.random()*4+1) : opt.slots : opt.slots;
  4257. opt.slots = (nexttrans==4 || nexttrans==5 || nexttrans==6) && opt.slots<3 ? 3 : opt.slots;
  4258. opt.slots = STA[3] != 0 ? Math.min(opt.slots,STA[3]) : opt.slots;
  4259. opt.slots = nexttrans==9 ? opt.width/20 : nexttrans==10 ? opt.height/20 : opt.slots;
  4260. /////////////////////////////////////////////
  4261. // SET THE ACTUAL AMOUNT OF SLIDES !! //
  4262. // SET A RANDOM AMOUNT OF SLOTS //
  4263. ///////////////////////////////////////////
  4264. opt.rotate = opt.rotate==undefined || opt.rotate=="default" ? 0 : opt.rotate==999 || opt.rotate=="random" ? Math.round(Math.random()*360) : opt.rotate;
  4265. opt.rotate = (!jQuery.support.transition || opt.ie || opt.ie9) ? 0 : opt.rotate;
  4266. opt.slotw=Math.ceil(opt.width/jQuery('#slot_amount').val()),
  4267. opt.sloth=Math.ceil(opt.height/jQuery('#slot_amount').val());
  4268. if (STA[7] !=null) prepareOneSlide(actsh,opt,STA[7],STA[5],opt.width,opt.height);
  4269. if (STA[6] !=null) prepareOneSlide(nextsh,opt,STA[6],STA[5],opt.width,opt.height);
  4270. var ei= jQuery('select[name=transition_ease_in]').val(),
  4271. eo =jQuery('select[name=transition_ease_out]').val(),
  4272. slidedirection = 1;
  4273. ei = ei==="default" ? STA[9] || punchgs.Power2.easeInOut : ei || STA[9] || punchgs.Power2.easeInOut;
  4274. eo = eo==="default" ? STA[10] || punchgs.Power2.easeInOut : eo || STA[10] || punchgs.Power2.easeInOut;
  4275. /////////////////////////////////////
  4276. // THE SLOTSLIDE - TRANSITION I. //
  4277. ////////////////////////////////////
  4278. if (nexttrans==0) { // BOXSLIDE
  4279. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4280. var maxz = Math.ceil(opt.height/opt.sloth);
  4281. var curz = 0;
  4282. nextsh.find('.slotslide').each(function(j) {
  4283. var ss=jQuery(this);
  4284. curz=curz+1;
  4285. if (curz==maxz) curz=0;
  4286. mtl.add(punchgs.TweenLite.from(ss,(masterspeed)/600,
  4287. {opacity:0,top:(0-opt.sloth),left:(0-opt.slotw),rotation:opt.rotate,force3D:"auto",ease:ei}),((j*15) + ((curz)*30))/1500);
  4288. });
  4289. }
  4290. /////////////////////////////////////
  4291. // THE SLOTSLIDE - TRANSITION I. //
  4292. ////////////////////////////////////
  4293. if (nexttrans==1) {
  4294. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4295. var maxtime,
  4296. maxj = 0;
  4297. nextsh.find('.slotslide').each(function(j) {
  4298. var ss=jQuery(this),
  4299. rand=Math.random()*masterspeed+300,
  4300. rand2=Math.random()*500+200;
  4301. if (rand+rand2>maxtime) {
  4302. maxtime = rand2+rand2;
  4303. maxj = j;
  4304. }
  4305. mtl.add(punchgs.TweenLite.from(ss,rand/1000,
  4306. {autoAlpha:0, force3D:"auto",rotation:opt.rotate,ease:ei}),rand2/1000);
  4307. });
  4308. }
  4309. /////////////////////////////////////
  4310. // THE SLOTSLIDE - TRANSITION I. //
  4311. ////////////////////////////////////
  4312. if (nexttrans==2) {
  4313. var subtl = new punchgs.TimelineLite();
  4314. // ALL OLD SLOTS SHOULD BE SLIDED TO THE RIGHT
  4315. actsh.find('.slotslide').each(function() {
  4316. var ss=jQuery(this);
  4317. subtl.add(punchgs.TweenLite.to(ss,masterspeed/1000,{left:opt.slotw,ease:ei, force3D:"auto",rotation:(0-opt.rotate)}),0);
  4318. mtl.add(subtl,0);
  4319. });
  4320. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4321. nextsh.find('.slotslide').each(function() {
  4322. var ss=jQuery(this);
  4323. subtl.add(punchgs.TweenLite.from(ss,masterspeed/1000,{left:0-opt.slotw,ease:ei, force3D:"auto",rotation:opt.rotate}),0);
  4324. mtl.add(subtl,0);
  4325. });
  4326. }
  4327. /////////////////////////////////////
  4328. // THE SLOTSLIDE - TRANSITION I. //
  4329. ////////////////////////////////////
  4330. if (nexttrans==3) {
  4331. var subtl = new punchgs.TimelineLite();
  4332. // ALL OLD SLOTS SHOULD BE SLIDED TO THE RIGHT
  4333. actsh.find('.slotslide').each(function() {
  4334. var ss=jQuery(this);
  4335. subtl.add(punchgs.TweenLite.to(ss,masterspeed/1000,{top:opt.sloth,ease:ei,rotation:opt.rotate,force3D:"auto",transformPerspective:600}),0);
  4336. mtl.add(subtl,0);
  4337. });
  4338. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4339. nextsh.find('.slotslide').each(function() {
  4340. var ss=jQuery(this);
  4341. subtl.add(punchgs.TweenLite.from(ss,masterspeed/1000,{top:0-opt.sloth,rotation:opt.rotate,ease:eo,force3D:"auto",transformPerspective:600}),0);
  4342. mtl.add(subtl,0);
  4343. });
  4344. }
  4345. /////////////////////////////////////
  4346. // THE SLOTSLIDE - TRANSITION I. //
  4347. ////////////////////////////////////
  4348. if (nexttrans==4 || nexttrans==5) {
  4349. setTimeout(function() {
  4350. actsh.find('.defaultimg').css({opacity:0});
  4351. },100);
  4352. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4353. var cspeed = (masterspeed)/1000,
  4354. ticker = cspeed,
  4355. subtl = new punchgs.TimelineLite();
  4356. actsh.find('.slotslide').each(function(i) {
  4357. var ss=jQuery(this);
  4358. var del = (i*cspeed)/opt.slots;
  4359. if (nexttrans==5) del = ((opt.slots-i-1)*cspeed)/(opt.slots)/1.5;
  4360. subtl.add(punchgs.TweenLite.to(ss,cspeed*3,{transformPerspective:600,force3D:"auto",top:0+opt.height,opacity:0.5,rotation:opt.rotate,ease:ei,delay:del}),0);
  4361. mtl.add(subtl,0);
  4362. });
  4363. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4364. nextsh.find('.slotslide').each(function(i) {
  4365. var ss=jQuery(this);
  4366. var del = (i*cspeed)/opt.slots;
  4367. if (nexttrans==5) del = ((opt.slots-i-1)*cspeed)/(opt.slots)/1.5;
  4368. subtl.add(punchgs.TweenLite.from(ss,cspeed*3,
  4369. {top:(0-opt.height),opacity:0.5,rotation:opt.rotate,force3D:"auto",ease:punchgs.eo,delay:del}),0);
  4370. mtl.add(subtl,0);
  4371. });
  4372. }
  4373. /////////////////////////////////////
  4374. // THE SLOTSLIDE - TRANSITION I. //
  4375. ////////////////////////////////////
  4376. if (nexttrans==6) {
  4377. if (opt.slots<2) opt.slots=2;
  4378. if (opt.slots % 2) opt.slots = opt.slots+1;
  4379. var subtl = new punchgs.TimelineLite();
  4380. //SET DEFAULT IMG UNVISIBLE
  4381. setTimeout(function() {
  4382. actsh.find('.defaultimg').css({opacity:0});
  4383. },100);
  4384. actsh.find('.slotslide').each(function(i) {
  4385. var ss=jQuery(this);
  4386. if (i+1<opt.slots/2)
  4387. var tempo = (i+2)*90;
  4388. else
  4389. var tempo = (2+opt.slots-i)*90;
  4390. subtl.add(punchgs.TweenLite.to(ss,(masterspeed+tempo)/1000,{top:0+opt.height,opacity:1,force3D:"auto",rotation:opt.rotate,ease:ei}),0);
  4391. mtl.add(subtl,0);
  4392. });
  4393. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4394. nextsh.find('.slotslide').each(function(i) {
  4395. var ss=jQuery(this);
  4396. if (i+1<opt.slots/2)
  4397. var tempo = (i+2)*90;
  4398. else
  4399. var tempo = (2+opt.slots-i)*90;
  4400. subtl.add(punchgs.TweenLite.from(ss,(masterspeed+tempo)/1000,
  4401. {top:(0-opt.height),opacity:1,force3D:"auto",rotation:opt.rotate,ease:eo}),0);
  4402. mtl.add(subtl,0);
  4403. });
  4404. }
  4405. ////////////////////////////////////
  4406. // THE SLOTSZOOM - TRANSITION II. //
  4407. ////////////////////////////////////
  4408. if (nexttrans==7) {
  4409. masterspeed = masterspeed *2;
  4410. if (masterspeed>opt.delay) masterspeed=opt.delay;
  4411. var subtl = new punchgs.TimelineLite();
  4412. //SET DEFAULT IMG UNVISIBLE
  4413. setTimeout(function() {
  4414. actsh.find('.defaultimg').css({opacity:0});
  4415. },100);
  4416. // ALL OLD SLOTS SHOULD BE SLIDED TO THE RIGHT
  4417. actsh.find('.slotslide').each(function() {
  4418. var ss=jQuery(this).find('div');
  4419. subtl.add(punchgs.TweenLite.to(ss,masterspeed/1000,{
  4420. left:(0-opt.slotw/2)+'px',
  4421. top:(0-opt.height/2)+'px',
  4422. width:(opt.slotw*2)+"px",
  4423. height:(opt.height*2)+"px",
  4424. opacity:0,
  4425. rotation:opt.rotate,
  4426. force3D:"auto",
  4427. ease:ei}),0);
  4428. mtl.add(subtl,0);
  4429. });
  4430. //////////////////////////////////////////////////////////////
  4431. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT //
  4432. ///////////////////////////////////////////////////////////////
  4433. nextsh.find('.slotslide').each(function(i) {
  4434. var ss=jQuery(this).find('div');
  4435. subtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4436. {left:0,top:0,opacity:0,transformPerspective:600},
  4437. {left:(0-i*opt.slotw)+'px',
  4438. ease:eo,
  4439. force3D:"auto",
  4440. top:(0)+'px',
  4441. width:opt.width,
  4442. height:opt.height,
  4443. opacity:1,rotation:0,
  4444. delay:0.1}),0);
  4445. mtl.add(subtl,0);
  4446. });
  4447. }
  4448. ////////////////////////////////////
  4449. // THE SLOTSZOOM - TRANSITION II. //
  4450. ////////////////////////////////////
  4451. if (nexttrans==8) {
  4452. masterspeed = masterspeed * 3;
  4453. if (masterspeed>opt.delay) masterspeed=opt.delay;
  4454. var subtl = new punchgs.TimelineLite();
  4455. // ALL OLD SLOTS SHOULD BE SLIDED TO THE RIGHT
  4456. actsh.find('.slotslide').each(function() {
  4457. var ss=jQuery(this).find('div');
  4458. subtl.add(punchgs.TweenLite.to(ss,masterspeed/1000,
  4459. {left:(0-opt.width/2)+'px',
  4460. top:(0-opt.sloth/2)+'px',
  4461. width:(opt.width*2)+"px",
  4462. height:(opt.sloth*2)+"px",
  4463. force3D:"auto",
  4464. ease:ei,
  4465. opacity:0,rotation:opt.rotate}),0);
  4466. mtl.add(subtl,0);
  4467. });
  4468. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT //
  4469. ///////////////////////////////////////////////////////////////
  4470. nextsh.find('.slotslide').each(function(i) {
  4471. var ss=jQuery(this).find('div');
  4472. subtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4473. {left:0, top:0,opacity:0,force3D:"auto"},
  4474. {'left':(0)+'px',
  4475. 'top':(0-i*opt.sloth)+'px',
  4476. 'width':(nextsh.find('.defaultimg').data('neww'))+"px",
  4477. 'height':(nextsh.find('.defaultimg').data('newh'))+"px",
  4478. opacity:1,
  4479. ease:eo,rotation:0,
  4480. }),0);
  4481. mtl.add(subtl,0);
  4482. });
  4483. }
  4484. ////////////////////////////////////////
  4485. // THE SLOTSFADE - TRANSITION III. //
  4486. //////////////////////////////////////
  4487. if (nexttrans==9 || nexttrans==10) {
  4488. var ssamount=0;
  4489. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4490. nextsh.find('.slotslide').each(function(i) {
  4491. var ss=jQuery(this);
  4492. ssamount++;
  4493. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,{autoAlpha:0,force3D:"auto",transformPerspective:600},
  4494. {autoAlpha:1,ease:ei,delay:(i*5)/1000}),0);
  4495. });
  4496. }
  4497. ///////////////////////////
  4498. // SIMPLE FADE ANIMATION //
  4499. ///////////////////////////
  4500. if (nexttrans==11 || nexttrans==26) {
  4501. var ssamount=0,
  4502. bgcol = specials == 2 ? "#000000" : specials == 3 ? "#ffffff" : "transparent";
  4503. if (nexttrans==26) masterspeed=0;
  4504. if (smallpreview) {
  4505. mtl.add(punchgs.TweenLite.set(nextsh.parent(),{backgroundColor:bgcol,force3D:"auto"}),0);
  4506. switch (specials) {
  4507. case 0:
  4508. mtl.add(punchgs.TweenLite.fromTo(actsh,masterspeed/1000,{autoAlpha:0,zIndex:1},{autoAlpha:1,zIndex:1,force3D:"auto",ease:ei}),0);
  4509. mtl.add(punchgs.TweenLite.set(nextsh,{autoAlpha:1,force3D:"auto",zIndex:0}),0);
  4510. break;
  4511. case 1:
  4512. mtl.add(punchgs.TweenLite.fromTo(actsh,masterspeed/1000,{autoAlpha:0},{autoAlpha:1,force3D:"auto",ease:ei}),0);
  4513. mtl.add(punchgs.TweenLite.fromTo(nextsh,masterspeed/1000,{autoAlpha:1},{autoAlpha:0,force3D:"auto",ease:ei}),0);
  4514. break;
  4515. case 2:
  4516. case 3:
  4517. case 4:
  4518. mtl.add(punchgs.TweenLite.fromTo(nextsh,masterspeed/2000,{autoAlpha:1},{autoAlpha:0,force3D:"auto",ease:ei}),0);
  4519. mtl.add(punchgs.TweenLite.set(actsh,{autoAlpha:0,force3D:"auto"}),0);
  4520. mtl.add(punchgs.TweenLite.fromTo(actsh,masterspeed/2000,{autoAlpha:0},{autoAlpha:1,force3D:"auto",ease:ei}),masterspeed/2000);
  4521. break;
  4522. case 5: // GRAYSCALE
  4523. case 6: // GRAYSCALECROSS
  4524. case 7: // BRIGHTNESS
  4525. case 8: // BRIGHTNESSCROSS
  4526. case 9: // BLUR LIGHT
  4527. case 10: // BLUR LIGHT CROSS
  4528. case 11: // BLUR STRONG
  4529. case 12: // BLUR STRONG CROSS
  4530. var _blur = jQuery.inArray(specials,[9,10])>=0 ? 5 : jQuery.inArray(specials,[11,12])>=0 ? 10 : 0,
  4531. _gray = jQuery.inArray(specials,[5,6,7,8])>=0 ? 100 : 0,
  4532. _bright = jQuery.inArray(specials,[7,8])>=0 ? 300 : 0,
  4533. __ff = "blur("+_blur+"px) grayscale("+_gray+"%) brightness("+_bright+"%)",
  4534. __ft = "blur(0px) grayscale(0%) brightness(100%)";
  4535. mtl.add(punchgs.TweenLite.fromTo(nextsh,masterspeed/1000,{autoAlpha:0,filter:__ff, "-webkit-filter":__ff},{autoAlpha:1,filter:__ft, "-webkit-filter":__ft,force3D:"auto",ease:ei}),0);
  4536. if (jQuery.inArray(specials,[6,8,10])>=0)
  4537. mtl.add(punchgs.TweenLite.fromTo(actsh,masterspeed/1000,{autoAlpha:1,filter:__ft, "-webkit-filter":__ft},{autoAlpha:0,force3D:"auto",ease:ei,filter:__ff, "-webkit-filter":__ff}),0);
  4538. break;
  4539. }
  4540. } else {
  4541. nextsh.find('.slotslide').each(function(i) {
  4542. var ss=jQuery(this);
  4543. if (specials<5)
  4544. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,{autoAlpha:0},{autoAlpha:1,force3D:"auto",ease:ei}),0);
  4545. else {
  4546. var _blur = jQuery.inArray(specials,[9,10])>=0 ? 5 : jQuery.inArray(specials,[11,12])>=0 ? 10 : 0,
  4547. _gray = jQuery.inArray(specials,[5,6,7,8])>=0 ? 100 : 0,
  4548. _bright = jQuery.inArray(specials,[7,8])>=0 ? 300 : 0,
  4549. __ff = "blur("+_blur+"px) grayscale("+_gray+"%) brightness("+_bright+"%)",
  4550. __ft = "blur(0px) grayscale(0%) brightness(100%)";
  4551. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,{autoAlpha:0,filter:__ff, "-webkit-filter":__ff},{autoAlpha:1,filter:__ft, "-webkit-filter":__ft,force3D:"auto",ease:ei}),0);
  4552. }
  4553. });
  4554. }
  4555. }
  4556. //////////////////////
  4557. // SLIDING OVERLAYS //
  4558. //////////////////////
  4559. if (nexttrans==27||nexttrans==28||nexttrans==29||nexttrans==30) {
  4560. var slot = nextsh.find('.slot'),
  4561. nd = nexttrans==27 || nexttrans==28 ? 1 : 2,
  4562. mhp = nexttrans==27 || nexttrans==29 ? "-100%" : "+100%",
  4563. php = nexttrans==27 || nexttrans==29 ? "+100%" : "-100%",
  4564. mep = nexttrans==27 || nexttrans==29 ? "-80%" : "80%",
  4565. pep = nexttrans==27 || nexttrans==29 ? "80%" : "-80%",
  4566. ptp = nexttrans==27 || nexttrans==29 ? "10%" : "-10%",
  4567. fa = {overwrite:"all"},
  4568. ta = {autoAlpha:0,zIndex:1,force3D:"auto",ease:punchgs.Power1.easeInOut},
  4569. fb = {position:"inherit",autoAlpha:0,overwrite:"all"},
  4570. tb = {autoAlpha:1,force3D:"auto",ease:punchgs.Power1.easeOut},
  4571. fc = {overwrite:"all",zIndex:2},
  4572. tc = {autoAlpha:1,force3D:"auto",overwrite:"all",ease:punchgs.Power1.easeInOut},
  4573. fd = {overwrite:"all",zIndex:2},
  4574. td = {autoAlpha:1,force3D:"auto",ease:punchgs.Power1.easeInOut},
  4575. at = nd==1 ? "y" : "x";
  4576. fa[at] = "0px";
  4577. ta[at] = mhp;
  4578. fb[at] = ptp;
  4579. tb[at] = "0%";
  4580. fc[at] = php;
  4581. tc[at] = mhp;
  4582. fd[at] = mep;
  4583. td[at] = pep;
  4584. slot.append('<span style="background-color:rgba(0,0,0,0.6);width:100%;height:100%;position:absolute;top:0px;left:0px;display:block;z-index:2"></span>');
  4585. mtl.add(punchgs.TweenLite.fromTo(actsh,masterspeed/1000,fa,ta),0);
  4586. mtl.add(punchgs.TweenLite.fromTo(nextsh.find('.defaultimg'),masterspeed/2000,fb,tb),masterspeed/2000);
  4587. mtl.add(punchgs.TweenLite.fromTo(slot,masterspeed/1000,fc,tc),0);
  4588. mtl.add(punchgs.TweenLite.fromTo(slot.find('.slotslide div'),masterspeed/1000,fd,td),0);
  4589. }
  4590. if (nexttrans==12 || nexttrans==13 || nexttrans==14 || nexttrans==15) {
  4591. masterspeed = masterspeed;
  4592. if (masterspeed>opt.delay) masterspeed=opt.delay;
  4593. //masterspeed = 1000;
  4594. setTimeout(function() {
  4595. punchgs.TweenLite.set(actsh.find('.defaultimg'),{autoAlpha:0});
  4596. },100);
  4597. var oow = opt.width,
  4598. ooh = opt.height,
  4599. ssn=nextsh.find('.slotslide'),
  4600. twx = 0,
  4601. twy = 0,
  4602. op = 1,
  4603. scal = 1,
  4604. fromscale = 1,
  4605. speedy = masterspeed/1000,
  4606. speedy2 = speedy;
  4607. if (opt.sliderLayout=="fullwidth" || opt.sliderLayout=="fullscreen") {
  4608. oow=ssn.width();
  4609. ooh=ssn.height();
  4610. }
  4611. if (nexttrans==12)
  4612. twx = oow;
  4613. else
  4614. if (nexttrans==15)
  4615. twx = 0-oow;
  4616. else
  4617. if (nexttrans==13)
  4618. twy = ooh;
  4619. else
  4620. if (nexttrans==14)
  4621. twy = 0-ooh;
  4622. // DEPENDING ON EXTENDED SPECIALS, DIFFERENT SCALE AND OPACITY FUNCTIONS NEED TO BE ADDED
  4623. if (specials == 1) op = 0;
  4624. if (specials == 2) op = 0;
  4625. if (specials == 3) speedy = masterspeed / 1300;
  4626. if (specials==4 || specials==5)
  4627. scal=0.6;
  4628. if (specials==6 )
  4629. scal=1.4;
  4630. if (specials==5 || specials==6) {
  4631. fromscale=1.4;
  4632. op=0;
  4633. oow=0;
  4634. ooh=0;twx=0;twy=0;
  4635. }
  4636. if (specials==6) fromscale=0.6;
  4637. var dd = 0;
  4638. if (specials==7) {
  4639. oow = 0;
  4640. ooh = 0;
  4641. }
  4642. var inc = nextsh.find('.slotslide'),
  4643. outc = actsh.find('.slotslide');
  4644. mtl.add(punchgs.TweenLite.set(actli,{zIndex:15}),0);
  4645. mtl.add(punchgs.TweenLite.set(nextli,{zIndex:20}),0);
  4646. if (specials==8) {
  4647. mtl.add(punchgs.TweenLite.set(actli,{zIndex:20}),0);
  4648. mtl.add(punchgs.TweenLite.set(nextli,{zIndex:15}),0);
  4649. mtl.add(punchgs.TweenLite.set(inc,{left:0, top:0, scale:1, opacity:1,rotation:0,ease:ei,force3D:"auto"}),0);
  4650. } else {
  4651. mtl.add(punchgs.TweenLite.from(inc,speedy,{left:twx, top:twy, scale:fromscale, opacity:op,rotation:opt.rotate,ease:ei,force3D:"auto"}),0);
  4652. }
  4653. if (specials==4 || specials==5) {
  4654. oow = 0; ooh=0;
  4655. }
  4656. if (specials!=1)
  4657. switch (nexttrans) {
  4658. case 12:
  4659. mtl.add(punchgs.TweenLite.to(outc,speedy2,{'left':(0-oow)+'px',force3D:"auto",scale:scal,opacity:op,rotation:opt.rotate,ease:eo}),0);
  4660. break;
  4661. case 15:
  4662. mtl.add(punchgs.TweenLite.to(outc,speedy2,{'left':(oow)+'px',force3D:"auto",scale:scal,opacity:op,rotation:opt.rotate,ease:eo}),0);
  4663. break;
  4664. case 13:
  4665. mtl.add(punchgs.TweenLite.to(outc,speedy2,{'top':(0-ooh)+'px',force3D:"auto",scale:scal,opacity:op,rotation:opt.rotate,ease:eo}),0);
  4666. break;
  4667. case 14:
  4668. mtl.add(punchgs.TweenLite.to(outc,speedy2,{'top':(ooh)+'px',force3D:"auto",scale:scal,opacity:op,rotation:opt.rotate,ease:eo}),0);
  4669. break;
  4670. }
  4671. }
  4672. //////////////////////////////////////
  4673. // THE SLOTSLIDE - TRANSITION XVI. //
  4674. //////////////////////////////////////
  4675. if (nexttrans==16) { // PAPERCUT
  4676. var subtl = new punchgs.TimelineLite();
  4677. mtl.add(punchgs.TweenLite.set(actli,{'position':'absolute','z-index':20}),0);
  4678. mtl.add(punchgs.TweenLite.set(nextli,{'position':'absolute','z-index':15}),0);
  4679. // PREPARE THE CUTS
  4680. actli.wrapInner('<div class="tp-half-one" style="position:relative; width:100%;height:100%"></div>');
  4681. actli.find('.tp-half-one').clone(true).appendTo(actli).addClass("tp-half-two");
  4682. actli.find('.tp-half-two').removeClass('tp-half-one');
  4683. var oow = opt.width,
  4684. ooh = opt.height;
  4685. if (opt.autoHeight=="on")
  4686. ooh = container.height();
  4687. actli.find('.tp-half-one .defaultimg').wrap('<div class="tp-papercut" style="width:'+oow+'px;height:'+ooh+'px;"></div>')
  4688. actli.find('.tp-half-two .defaultimg').wrap('<div class="tp-papercut" style="width:'+oow+'px;height:'+ooh+'px;"></div>')
  4689. actli.find('.tp-half-two .defaultimg').css({position:'absolute',top:'-50%'});
  4690. actli.find('.tp-half-two .tp-caption').wrapAll('<div style="position:absolute;top:-50%;left:0px;"></div>');
  4691. mtl.add(punchgs.TweenLite.set(actli.find('.tp-half-two'),
  4692. {width:oow,height:ooh,overflow:'hidden',zIndex:15,position:'absolute',top:ooh/2,left:'0px',transformPerspective:600,transformOrigin:"center bottom"}),0);
  4693. mtl.add(punchgs.TweenLite.set(actli.find('.tp-half-one'),
  4694. {width:oow,height:ooh/2,overflow:'visible',zIndex:10,position:'absolute',top:'0px',left:'0px',transformPerspective:600,transformOrigin:"center top"}),0);
  4695. // ANIMATE THE CUTS
  4696. var img=actli.find('.defaultimg'),
  4697. ro1=Math.round(Math.random()*20-10),
  4698. ro2=Math.round(Math.random()*20-10),
  4699. ro3=Math.round(Math.random()*20-10),
  4700. xof = Math.random()*0.4-0.2,
  4701. yof = Math.random()*0.4-0.2,
  4702. sc1=Math.random()*1+1,
  4703. sc2=Math.random()*1+1,
  4704. sc3=Math.random()*0.3+0.3;
  4705. mtl.add(punchgs.TweenLite.set(actli.find('.tp-half-one'),{overflow:'hidden'}),0);
  4706. mtl.add(punchgs.TweenLite.fromTo(actli.find('.tp-half-one'),masterspeed/800,
  4707. {width:oow,height:ooh/2,position:'absolute',top:'0px',left:'0px',force3D:"auto",transformOrigin:"center top"},
  4708. {scale:sc1,rotation:ro1,y:(0-ooh-ooh/4),autoAlpha:0,ease:ei}),0);
  4709. mtl.add(punchgs.TweenLite.fromTo(actli.find('.tp-half-two'),masterspeed/800,
  4710. {width:oow,height:ooh,overflow:'hidden',position:'absolute',top:ooh/2,left:'0px',force3D:"auto",transformOrigin:"center bottom"},
  4711. {scale:sc2,rotation:ro2,y:ooh+ooh/4,ease:ei,autoAlpha:0,onComplete:function() {
  4712. // CLEAN UP
  4713. punchgs.TweenLite.set(actli,{'position':'absolute','z-index':15});
  4714. punchgs.TweenLite.set(nextli,{'position':'absolute','z-index':20});
  4715. if (actli.find('.tp-half-one').length>0) {
  4716. actli.find('.tp-half-one .defaultimg').unwrap();
  4717. actli.find('.tp-half-one .slotholder').unwrap();
  4718. }
  4719. actli.find('.tp-half-two').remove();
  4720. }}),0);
  4721. subtl.add(punchgs.TweenLite.set(nextsh.find('.defaultimg'),{autoAlpha:1}),0);
  4722. if (actli.html()!=null)
  4723. mtl.add(punchgs.TweenLite.fromTo(nextli,(masterspeed-200)/1000,
  4724. {scale:sc3,x:(opt.width/4)*xof, y:(ooh/4)*yof,rotation:ro3,force3D:"auto",transformOrigin:"center center",ease:eo},
  4725. {autoAlpha:1,scale:1,x:0,y:0,rotation:0}),0);
  4726. mtl.add(subtl,0);
  4727. }
  4728. ////////////////////////////////////////
  4729. // THE SLOTSLIDE - TRANSITION XVII. //
  4730. ///////////////////////////////////////
  4731. if (nexttrans==17) { // 3D CURTAIN HORIZONTAL
  4732. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4733. nextsh.find('.slotslide').each(function(j) {
  4734. var ss=jQuery(this);
  4735. mtl.add(punchgs.TweenLite.fromTo(ss,(masterspeed)/800,
  4736. {opacity:0,rotationY:0,scale:0.9,rotationX:-110,force3D:"auto",transformPerspective:600,transformOrigin:"center center"},
  4737. {opacity:1,top:0,left:0,scale:1,rotation:0,rotationX:0,force3D:"auto",rotationY:0,ease:ei,delay:j*0.06}),0);
  4738. });
  4739. }
  4740. ////////////////////////////////////////
  4741. // THE SLOTSLIDE - TRANSITION XVIII. //
  4742. ///////////////////////////////////////
  4743. if (nexttrans==18) { // 3D CURTAIN VERTICAL
  4744. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4745. nextsh.find('.slotslide').each(function(j) {
  4746. var ss=jQuery(this);
  4747. mtl.add(punchgs.TweenLite.fromTo(ss,(masterspeed)/500,
  4748. {autoAlpha:0,rotationY:110,scale:0.9,rotationX:10,force3D:"auto",transformPerspective:600,transformOrigin:"center center"},
  4749. {autoAlpha:1,top:0,left:0,scale:1,rotation:0,rotationX:0,force3D:"auto",rotationY:0,ease:ei,delay:j*0.06}),0);
  4750. });
  4751. }
  4752. ////////////////////////////////////////
  4753. // THE SLOTSLIDE - TRANSITION XIX. //
  4754. ///////////////////////////////////////
  4755. if (nexttrans==19 || nexttrans==22) { // IN CUBE
  4756. var subtl = new punchgs.TimelineLite();
  4757. //SET DEFAULT IMG UNVISIBLE
  4758. mtl.add(punchgs.TweenLite.set(actli,{zIndex:20}),0);
  4759. mtl.add(punchgs.TweenLite.set(nextli,{zIndex:20}),0);
  4760. setTimeout(function() {
  4761. actsh.find('.defaultimg').css({opacity:0});
  4762. },100);
  4763. var rot = 90,
  4764. op = 1,
  4765. torig ="center center ";
  4766. if (slidedirection==1) rot = -90;
  4767. if (nexttrans==19) {
  4768. torig = torig+"-"+opt.height/2;
  4769. op=0;
  4770. } else {
  4771. torig = torig+opt.height/2;
  4772. }
  4773. // ALL NEW SLOTS SHOULD BE SLIDED FROM THE LEFT TO THE RIGHT
  4774. punchgs.TweenLite.set(container,{transformStyle:"flat",backfaceVisibility:"hidden",transformPerspective:600});
  4775. nextsh.find('.slotslide').each(function(j) {
  4776. var ss=jQuery(this);
  4777. subtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4778. {transformStyle:"flat",backfaceVisibility:"hidden",left:0,rotationY:opt.rotate,z:10,top:0,scale:1,force3D:"auto",transformPerspective:600,transformOrigin:torig,rotationX:rot},
  4779. {left:0,rotationY:0,top:0,z:0, scale:1,force3D:"auto",rotationX:0, delay:(j*50)/1000,ease:ei}),0);
  4780. subtl.add(punchgs.TweenLite.to(ss,0.1,{autoAlpha:1,delay:(j*50)/1000}),0);
  4781. mtl.add(subtl);
  4782. });
  4783. actsh.find('.slotslide').each(function(j) {
  4784. var ss=jQuery(this);
  4785. var rot = -90;
  4786. if (slidedirection==1) rot = 90;
  4787. subtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4788. {transformStyle:"flat",backfaceVisibility:"hidden",autoAlpha:1,rotationY:0,top:0,z:0,scale:1,force3D:"auto",transformPerspective:600,transformOrigin:torig, rotationX:0},
  4789. {autoAlpha:1,rotationY:opt.rotate,top:0,z:10, scale:1,rotationX:rot, delay:(j*50)/1000,force3D:"auto",ease:eo}),0);
  4790. mtl.add(subtl);
  4791. });
  4792. mtl.add(punchgs.TweenLite.set(actli,{zIndex:18}),0);
  4793. }
  4794. ////////////////////////////////////////
  4795. // THE SLOTSLIDE - TRANSITION XX. //
  4796. ///////////////////////////////////////
  4797. if (nexttrans==20 ) { // FLYIN
  4798. setTimeout(function() {
  4799. actsh.find('.defaultimg').css({opacity:0});
  4800. },100);
  4801. if (slidedirection==1) {
  4802. var ofx = -opt.width
  4803. var rot =80;
  4804. var torig = "20% 70% -"+opt.height/2;
  4805. } else {
  4806. var ofx = opt.width;
  4807. var rot = -80;
  4808. var torig = "80% 70% -"+opt.height/2;
  4809. }
  4810. nextsh.find('.slotslide').each(function(j) {
  4811. var ss=jQuery(this),
  4812. d = (j*50)/1000;
  4813. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4814. {left:ofx,rotationX:40,z:-600, opacity:op,top:0,scale:1,force3D:"auto",transformPerspective:600,transformOrigin:torig,transformStyle:"flat",rotationY:rot},
  4815. {left:0,rotationX:0,opacity:1,top:0,z:0, scale:1,rotationY:0, delay:d,ease:ei}),0);
  4816. });
  4817. actsh.find('.slotslide').each(function(j) {
  4818. var ss=jQuery(this),
  4819. d = (j*50)/1000;
  4820. d = j>0 ? d + masterspeed/9000 : 0;
  4821. if (slidedirection!=1) {
  4822. var ofx = -opt.width/2
  4823. var rot =30;
  4824. var torig = "20% 70% -"+opt.height/2;
  4825. } else {
  4826. var ofx = opt.width/2;
  4827. var rot = -30;
  4828. var torig = "80% 70% -"+opt.height/2;
  4829. }
  4830. eo=punchgs.Power2.easeInOut;
  4831. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4832. {opacity:1,rotationX:0,top:0,z:0,scale:1,left:0, force3D:"auto",transformPerspective:600,transformOrigin:torig, transformStyle:"flat",rotationY:0},
  4833. {opacity:1,rotationX:20,top:0, z:-600, left:ofx, force3D:"auto",rotationY:rot, delay:d,ease:eo}),0);
  4834. });
  4835. }
  4836. ////////////////////////////////////////
  4837. // THE SLOTSLIDE - TRANSITION XX. //
  4838. ///////////////////////////////////////
  4839. if (nexttrans==21 || nexttrans==25) { // TURNOFF
  4840. //SET DEFAULT IMG UNVISIBLE
  4841. setTimeout(function() {
  4842. actsh.find('.defaultimg').css({opacity:0});
  4843. },100);
  4844. var rot = 90,
  4845. ofx = -opt.width,
  4846. rot2 = -rot;
  4847. if (slidedirection==1) {
  4848. if (nexttrans==25) {
  4849. var torig = "center top 0";
  4850. rot = opt.rotate;
  4851. } else {
  4852. var torig = "left center 0";
  4853. rot2 = opt.rotate;
  4854. }
  4855. } else {
  4856. ofx = opt.width;
  4857. rot = -90;
  4858. if (nexttrans==25) {
  4859. var torig = "center bottom 0"
  4860. rot2 = -rot;
  4861. rot = opt.rotate;
  4862. } else {
  4863. var torig = "right center 0";
  4864. rot2 = opt.rotate;
  4865. }
  4866. }
  4867. nextsh.find('.slotslide').each(function(j) {
  4868. var ss=jQuery(this),
  4869. ms2 = ((masterspeed/1.5)/3);
  4870. mtl.add(punchgs.TweenLite.fromTo(ss,(ms2*2)/1000,
  4871. {left:0,transformStyle:"flat",rotationX:rot2,z:0, autoAlpha:0,top:0,scale:1,force3D:"auto",transformPerspective:1200,transformOrigin:torig,rotationY:rot},
  4872. {left:0,rotationX:0,top:0,z:0, autoAlpha:1,scale:1,rotationY:0,force3D:"auto",delay:ms2/1000, ease:ei}),0);
  4873. });
  4874. if (slidedirection!=1) {
  4875. ofx = -opt.width
  4876. rot = 90;
  4877. if (nexttrans==25) {
  4878. torig = "center top 0"
  4879. rot2 = -rot;
  4880. rot = opt.rotate;
  4881. } else {
  4882. torig = "left center 0";
  4883. rot2 = opt.rotate;
  4884. }
  4885. } else {
  4886. ofx = opt.width;
  4887. rot = -90;
  4888. if (nexttrans==25) {
  4889. torig = "center bottom 0"
  4890. rot2 = -rot;
  4891. rot = opt.rotate;
  4892. } else {
  4893. torig = "right center 0";
  4894. rot2 = opt.rotate;
  4895. }
  4896. }
  4897. actsh.find('.slotslide').each(function(j) {
  4898. var ss=jQuery(this);
  4899. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4900. {left:0,transformStyle:"flat",rotationX:0,z:0, autoAlpha:1,top:0,scale:1,force3D:"auto",transformPerspective:1200,transformOrigin:torig,rotationY:0},
  4901. {left:0,rotationX:rot2,top:0,z:0,autoAlpha:1,force3D:"auto", scale:1,rotationY:rot,ease:eo}),0);
  4902. });
  4903. }
  4904. ////////////////////////////////////////
  4905. // THE SLOTSLIDE - TRANSITION XX. //
  4906. ///////////////////////////////////////
  4907. if (nexttrans==23 || nexttrans == 24) { // cube-horizontal - inboxhorizontal
  4908. //SET DEFAULT IMG UNVISIBLE
  4909. setTimeout(function() {
  4910. actsh.find('.defaultimg').css({opacity:0});
  4911. },100);
  4912. var rot = -90,
  4913. op = 1,
  4914. opx=0;
  4915. if (slidedirection==1) rot = 90;
  4916. if (nexttrans==23) {
  4917. var torig = "center center -"+opt.width/2;
  4918. op=0;
  4919. } else
  4920. var torig = "center center "+opt.width/2;
  4921. punchgs.TweenLite.set(container,{transformStyle:"preserve-3d",backfaceVisibility:"hidden",perspective:2500});
  4922. nextsh.find('.slotslide').each(function(j) {
  4923. var ss=jQuery(this);
  4924. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4925. {left:opx,rotationX:opt.rotate,force3D:"auto",opacity:op,top:0,scale:1,transformPerspective:1200,transformOrigin:torig,rotationY:rot},
  4926. {left:0,rotationX:0,autoAlpha:1,top:0,z:0, scale:1,rotationY:0, delay:(j*50)/500,ease:ei}),0);
  4927. });
  4928. rot = 90;
  4929. if (slidedirection==1) rot = -90;
  4930. actsh.find('.slotslide').each(function(j) {
  4931. var ss=jQuery(this);
  4932. mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/1000,
  4933. {left:0,rotationX:0,top:0,z:0,scale:1,force3D:"auto",transformStyle:"flat",transformPerspective:1200,transformOrigin:torig, rotationY:0},
  4934. {left:opx,rotationX:opt.rotate,top:0, scale:1,rotationY:rot, delay:(j*50)/500,ease:eo}),0);
  4935. if (nexttrans==23) mtl.add(punchgs.TweenLite.fromTo(ss,masterspeed/2000,{autoAlpha:1},{autoAlpha:0,delay:(j*50)/500 + masterspeed/3000,ease:eo}),0);
  4936. });
  4937. }
  4938. // SHOW FIRST LI && ANIMATE THE CAPTIONS
  4939. mtl.add(punchgs.TweenLite.set(nextsh.find('.defaultimg'),{autoAlpha:1}));
  4940. mtl.add(punchgs.TweenLite.set(nextsh.find('.slot'),{autoAlpha:0}));
  4941. mtl.seek(100000);
  4942. if (givebackmtl!=undefined)
  4943. return mtl;
  4944. else
  4945. jQuery('#divbgholder').data('slidetimeline',mtl);
  4946. }
  4947. ///////////////////////
  4948. // REMOVE SLOTS //
  4949. /////////////////////
  4950. var removeAllSlots = function() {
  4951. if (jQuery('#divbgholder').data('slidetimeline')!=undefined) {
  4952. jQuery('#divbgholder').data('slidetimeline').kill();
  4953. jQuery('#divbgholder').find('.slot').each(function() {
  4954. jQuery(this).remove();
  4955. });
  4956. }
  4957. }
  4958. t.resetSlideAnimations = function(seekinpos) {
  4959. removeAllSlots();
  4960. slideAnimation();
  4961. var mst = jQuery('#divbgholder').data('slidetimeline'),
  4962. mp = jQuery('#mastertimer-position'),
  4963. tpos = (mp.position().left)/100;
  4964. if (mst!=undefined) {
  4965. mst.stop();
  4966. if (seekinpos) mst.seek(tpos);
  4967. }
  4968. }
  4969. }