PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i5h-3LL

HOME


5h-3LL 1.0
DIR: /srv/http/adent.cz/kvfinal.cz/wp-content/plugins/fusion-builder/inc
/srv/http/adent.cz/kvfinal.cz/wp-content/plugins/fusion-builder/inc/
Upload File:
Current File : /srv/http/adent.cz/kvfinal.cz/wp-content/plugins/fusion-builder/inc/layouts.php
<?php

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Register the layouts.
 */
function fusion_builder_register_layouts() {

	$labels = array(
		'name'               => _x( 'Fusion Templates', 'Layout type general name', 'fusion-builder' ),
		'singular_name'      => _x( 'Layout', 'Layout type singular name', 'fusion-builder' ),
		'add_new'            => _x( 'Add New', 'Layout item', 'fusion-builder' ),
		'add_new_item'       => esc_attr__( 'Add New Layout', 'fusion-builder' ),
		'edit_item'          => esc_attr__( 'Edit Layout', 'fusion-builder' ),
		'new_item'           => esc_attr__( 'New Layout', 'fusion-builder' ),
		'all_items'          => esc_attr__( 'All Layouts', 'fusion-builder' ),
		'view_item'          => esc_attr__( 'View Layout', 'fusion-builder' ),
		'search_items'       => esc_attr__( 'Search Layouts', 'fusion-builder' ),
		'not_found'          => esc_attr__( 'Nothing found', 'fusion-builder' ),
		'not_found_in_trash' => esc_attr__( 'Nothing found in Trash', 'fusion-builder' ),
		'parent_item_colon'  => '',
	);

	$args = array(
		'labels'              => $labels,
		'public'              => true,
		'publicly_queryable'  => true,
		'can_export'          => true,
		'query_var'           => true,
		'has_archive'         => false,
		'capability_type'     => 'post',
		'map_meta_cap'        => true,
		'exclude_from_search' => true,
		'hierarchical'        => false,
		'show_in_nav_menus'   => false,
		'show_ui'             => true,
		'show_in_menu'        => false,
		'supports'            => array( 'title', 'editor', 'revisions' ),
	);

	register_post_type( 'fusion_template', apply_filters( 'fusion_layout_template_args', $args ) );

	$labels = array(
		'name'               => _x( 'Fusion Elements', 'element type general name', 'fusion-builder' ),
		'singular_name'      => _x( 'Element', 'Element type singular name', 'fusion-builder' ),
		'add_new'            => _x( 'Add New', 'Element item', 'fusion-builder' ),
		'add_new_item'       => esc_attr__( 'Add New Element', 'fusion-builder' ),
		'edit_item'          => esc_attr__( 'Edit Element', 'fusion-builder' ),
		'new_item'           => esc_attr__( 'New Element', 'fusion-builder' ),
		'all_items'          => esc_attr__( 'All Elements', 'fusion-builder' ),
		'view_item'          => esc_attr__( 'View Element', 'fusion-builder' ),
		'search_items'       => esc_attr__( 'Search Elements', 'fusion-builder' ),
		'not_found'          => esc_attr__( 'Nothing found', 'fusion-builder' ),
		'not_found_in_trash' => esc_attr__( 'Nothing found in Trash', 'fusion-builder' ),
		'parent_item_colon'  => '',
	);

	$args = array(
		'labels'             => $labels,
		'public'             => false,
		'publicly_queryable' => false,
		'can_export'         => true,
		'query_var'          => false,
		'has_archive'        => false,
		'capability_type'    => 'post',
		'map_meta_cap'       => true,
		'hierarchical'       => false,
		'supports'           => array( 'title', 'editor', 'revisions' ),
		'show_ui'            => true,
		'capabilities'       => array(
			'create_posts' => 'do_not_allow',
		),
	);

	register_post_type( 'fusion_element', apply_filters( 'fusion_layout_element_args', $args ) );

	$labels = array(
		'name' => esc_attr__( 'Category', 'fusion-builder' ),
	);

	register_taxonomy(
		'element_category', array( 'fusion_element' ), array(
			'hierarchical'      => true,
			'labels'            => $labels,
			'show_ui'           => false,
			'show_admin_column' => true,
			'query_var'         => true,
			'show_in_nav_menus' => false,
		)
	);

	$labels = array(
		'name' => esc_attr__( 'Category', 'fusion-builder' ),
	);

	register_taxonomy(
		'template_category', array( 'fusion_template' ), array(
			'hierarchical'      => true,
			'labels'            => $labels,
			'show_ui'           => false,
			'show_admin_column' => false,
			'query_var'         => true,
			'show_in_nav_menus' => false,
		)
	);
}
add_action( 'admin_init', 'fusion_builder_register_layouts' );

/**
 * Delete custom template or element.
 */
function fusion_builder_delete_layout() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( isset( $_POST['fusion_layout_id'] ) && '' !== $_POST['fusion_layout_id'] ) {

		$layout_id = (int) $_POST['fusion_layout_id'];

		if ( '' === $layout_id ) {
			die( -1 );
		}

		wp_delete_post( $layout_id, true );
	}

	die();
}
add_action( 'wp_ajax_fusion_builder_delete_layout', 'fusion_builder_delete_layout' );

/**
 * Add custom template or element.
 *
 * @param string $post_type The post-type.
 * @param string $name      The post-title.
 * @param string $content   The post-content.
 * @param array  $meta      The post-meta.
 * @param array  $taxonomy  Taxonomies.
 * @param string $term      Term.
 */
function fusion_builder_create_layout( $post_type, $name, $content, $meta = array(), $taxonomy = array(), $term = '' ) {

	$layout = array(
		'post_title'   => sanitize_text_field( $name ),
		'post_content' => $content,
		'post_status'  => 'publish',
		'post_type'    => $post_type,
	);

	$layout_id = wp_insert_post( $layout );

	if ( ! empty( $meta ) ) {
		foreach ( $meta as $meta_key => $meta_value ) {
			add_post_meta( $layout_id, $meta_key, sanitize_text_field( $meta_value ) );
		}
	}

	if ( '' !== $term ) {
		wp_insert_term( $term, $taxonomy );
		$term_id = term_exists( $term, $taxonomy );
		wp_set_post_terms( $layout_id, $term_id, $taxonomy );
	}

	do_action( 'fusion_builder_create_layout_after' );

	return $layout_id;
}


/**
 * Display library tab content.
 */
function fusion_builder_display_library_content() {
	global $post;
	$saved_post = $post;
	?>
	<div class="fusion_builder_modal_settings">
		<div class="fusion-builder-modal-top-container">
			<div class="fusion-builder-modal-close fusiona-plus2"></div>
			<h2 class="fusion-builder-settings-heading"><?php esc_attr_e( 'Library', 'fusion-builder' ); ?></h2>
			<ul class="fusion-tabs-menu">
				<?php if ( current_theme_supports( 'fusion-builder-demos' ) ) : ?>
					<li><a href="#fusion-builder-layouts-demos" id="fusion-builder-layouts-demos-trigger"><?php esc_attr_e( 'Demos', 'fusion-builder' ); ?></a></li>
				<?php endif; ?>
				<li><a href="#fusion-builder-layouts-templates" id="fusion-builder-layouts-templates-trigger"><?php esc_attr_e( 'Templates', 'fusion-builder' ); ?></a></li>
				<li><a href="#fusion-builder-layouts-sections" id="fusion-builder-layouts-sections-trigger"><?php esc_attr_e( 'Containers', 'fusion-builder' ); ?></a></li>
				<li><a href="#fusion-builder-layouts-columns" id="fusion-builder-layouts-columns-trigger"><?php esc_attr_e( 'Columns', 'fusion-builder' ); ?></a></li>
				<li><a href="#fusion-builder-layouts-elements" id="fusion-builder-layouts-elements-trigger"><?php esc_attr_e( 'Elements', 'fusion-builder' ); ?></a></li>
			</ul>
		</div>

		<div class="fusion-layout-tabs">
			<?php if ( current_theme_supports( 'fusion-builder-demos' ) ) : // Display demos tab. ?>
				<div id="fusion-builder-layouts-demos" class="fusion-builder-layouts-tab">
					<div class="fusion-builder-layouts-header">
						<?php $fusion_builder_demos = apply_filters( 'fusion_builder_get_demo_pages', array() ); ?>

						<div class="fusion-builder-layouts-header-fields">
							<?php if ( $fusion_builder_demos ) : ?>
								<?php asort( $fusion_builder_demos ); ?>
								<select class="fusion-builder-demo-select">
									<?php foreach ( $fusion_builder_demos as $key => $fusion_builder_demo ) : ?>
										<option value="<?php echo esc_attr( $key ); ?>">
											<?php echo esc_html( $fusion_builder_demo['category'] ); ?>
										</option>
									<?php endforeach; ?>
								</select>
							<?php endif; ?>
						</div>

						<div class="fusion-builder-layouts-header-info">
							<h2><?php echo apply_filters( 'fusion_builder_import_title', esc_html__( 'Select a demo to view the pages you can import', 'fusion-builder' ) ); // WPCS: XSS ok. ?></h2>
							<span class="fusion-builder-layout-info">
								<?php echo apply_filters( 'fusion_builder_import_message', esc_attr__( 'Select a demo and the pages that are available to import will display.', 'fusion-builder' ) ); // WPCS: XSS ok. ?>
							</span>
						</div>
					</div>

					<?php foreach ( $fusion_builder_demos as $key => $fusion_builder_demo ) : ?>

						<ul class="fusion-page-layouts demo-<?php echo esc_attr( $key ); ?>">

							<?php if ( isset( $fusion_builder_demo['pages'] ) && ! empty( $fusion_builder_demo['pages'] ) ) : ?>
								<?php asort( $fusion_builder_demo['pages'] ); ?>
								<?php foreach ( $fusion_builder_demo['pages'] as $page_key => $page ) : ?>
									<li class="fusion-page-layout" data-layout_id="<?php echo esc_attr( $page['name'] ); ?>">
										<h4 class="fusion-page-layout-title"><?php echo esc_html( ucwords( strtolower( $page['name'] ) ) ); ?></h4>
										<span class="fusion-layout-buttons">
											<a href="#" class="fusion-builder-demo-button-load" data-page-name="<?php echo esc_attr( $page_key ); ?>" data-demo-name="<?php echo esc_attr( $key ); ?>" data-post-id="<?php echo esc_attr( get_the_ID() ); ?>">
												<?php esc_html_e( 'Load', 'fusion-builder' ); ?>
											</a>
										</span>
									</li>
								<?php endforeach; ?>
							<?php else : ?>
								<li><p><?php esc_html_e( 'There are no demos in your library', 'fusion-builder' ); ?></p></li>
							<?php endif; ?>

						</ul>

					<?php endforeach; ?>

				</div>

			<?php endif; ?>

			<?php
			// Display containers tab.
			?>

			<div id="fusion-builder-layouts-sections" class="fusion-builder-layouts-tab">

				<div class="fusion-builder-layouts-header">
					<div class="fusion-builder-layouts-header-fields fusion-builder-layouts-header-element-fields"></div>
					<div class="fusion-builder-layouts-header-info">
						<h2><?php esc_attr_e( 'Saved Containers', 'fusion-builder' ); ?></h2>
						<?php // @codingStandardsIgnoreStart ?>
						<span class="fusion-builder-layout-info"><?php
						/* translators: The "Fusion Documentation" link. */
						printf( __( 'Manage your saved containers. Containers cannot be inserted from the library window. The globe icon indicates the element is a <a href="%s" target="_blank">global element</a>.', 'fusion-builder' ), 'https://theme-fusion.com/documentation/fusion-builder/technical/page-content-not-parsable-fusion-builder/' );
						?></span>
						<?php // @codingStandardsIgnoreEnd ?>
					</div>
				</div>

				<?php
				// Query containers.
				$query = fusion_cached_query(
					array(
						'post_status'    => 'publish',
						'post_type'      => 'fusion_element',
						'posts_per_page' => '-1',
						'tax_query'      => array(
							array(
								'taxonomy' => 'element_category',
								'field'    => 'slug',
								'terms'    => 'sections',
							),
						),
					)
				);
				?>

				<?php if ( $query->have_posts() ) : ?>

					<ul class="fusion-page-layouts fusion-layout-sections">

						<?php
						while ( $query->have_posts() ) :
							$query->the_post();
							$is_global = ( 'yes' === get_post_meta( get_the_ID(), '_fusion_is_global', true ) ? 'fusion-global' : '' );
							global $post;
							?>

							<li class="<?php echo esc_attr( $is_global ); ?> fusion-page-layout" data-layout_id="<?php echo get_the_ID(); ?>">
								<h4 class="fusion-page-layout-title"><?php echo get_the_title(); ?>
									<?php if ( '' !== $is_global ) : ?>
										<div class="fusion-global-tooltip-wrapper"><span class="fusion-global-tooltip"><?php esc_attr_e( 'This is a global container.', 'fusion-builder' ); ?></span></div>
									<?php endif; ?>
								</h4>
								<span class="fusion-layout-buttons">
									<a href="#" class="fusion-builder-layout-button-delete"><?php esc_attr_e( 'Delete', 'fusion-builder' ); ?></a>
									<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $post->ID ) ) ); ?>" class="fusion-builder-layout-button-edit" target="_blank"><?php esc_attr_e( 'Edit', 'fusion-builder' ); ?></a>
								</span>
							</li>
						<?php endwhile; ?>

					</ul>

				<?php else : ?>
					<ul class="fusion-page-layouts fusion-layout-sections">
						<p class="fusion-empty-library-message"><?php esc_attr_e( 'There are no custom containers in your library', 'fusion-builder' ); ?></p>
					</ul>

				<?php endif; ?>

				<?php
				$post = $saved_post ? $saved_post : $post;
				wp_reset_postdata();
				?>

			</div>

			<?php
			// Display columns tab.
			?>

			<div id="fusion-builder-layouts-columns" class="fusion-builder-layouts-tab">

				<div class="fusion-builder-layouts-header">
					<div class="fusion-builder-layouts-header-fields fusion-builder-layouts-header-element-fields"></div>
					<div class="fusion-builder-layouts-header-info">
						<h2><?php esc_attr_e( 'Saved Columns', 'fusion-builder' ); ?></h2>
						<?php // @codingStandardsIgnoreStart ?>
						<span class="fusion-builder-layout-info"><?php
						/* translators: The "Fusion Documentation" link. */
						printf( __( 'Manage your saved columns. Columns cannot be inserted from the library window and they must always go inside a container. The globe icon indicates the element is a <a href="%s" target="_blank">global element</a>.', 'fusion-builder' ), 'https://theme-fusion.com/documentation/fusion-builder/technical/page-content-not-parsable-fusion-builder/' );
						?></span>
						<?php // @codingStandardsIgnoreEnd ?>
					</div>
				</div>

				<?php
				// Query columns.
				$query = fusion_cached_query(
					array(
						'post_status'    => 'publish',
						'post_type'      => 'fusion_element',
						'posts_per_page' => '-1',
						'tax_query'      => array(
							array(
								'taxonomy' => 'element_category',
								'field'    => 'slug',
								'terms'    => 'columns',
							),
						),
					)
				);
				?>

				<?php if ( $query->have_posts() ) : ?>

					<ul class="fusion-page-layouts fusion-layout-columns">

						<?php while ( $query->have_posts() ) : ?>
							<?php
							$query->the_post();
							$is_global = ( 'yes' === get_post_meta( get_the_ID(), '_fusion_is_global', true ) ? 'fusion-global' : '' );
							global $post;
							?>

							<li class="<?php echo esc_attr( $is_global ); ?> fusion-page-layout" data-layout_id="<?php echo get_the_ID(); ?>">
								<h4 class="fusion-page-layout-title"><?php echo get_the_title(); ?>
									<?php if ( '' !== $is_global ) : ?>
										<div class="fusion-global-tooltip-wrapper"><span class="fusion-global-tooltip"><?php esc_attr_e( 'This is a global column.', 'fusion-builder' ); ?></span></div>
									<?php endif; ?>
								</h4>
								<span class="fusion-layout-buttons">
									<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $post->ID ) ) ); ?>" class="fusion-builder-layout-button-edit" target="_blank"><?php esc_attr_e( 'Edit', 'fusion-builder' ); ?></a></a>
									<a href="#" class="fusion-builder-layout-button-delete"><?php esc_attr_e( 'Delete', 'fusion-builder' ); ?></a>
								</span>
							</li>
						<?php endwhile; ?>

					</ul>

				<?php else : ?>
					<ul class="fusion-page-layouts fusion-layout-columns">
						<p class="fusion-empty-library-message"><?php esc_attr_e( 'There are no custom columns in your library', 'fusion-builder' ); ?></p>
					</ul>

				<?php endif; ?>

				<?php
				$post = $saved_post ? $saved_post : $post;
				wp_reset_postdata();
				?>

			</div>

			<?php
			// Display elements tab.
			?>

			<div id="fusion-builder-layouts-elements" class="fusion-builder-layouts-tab">

				<div class="fusion-builder-layouts-header">
					<div class="fusion-builder-layouts-header-fields fusion-builder-layouts-header-element-fields"></div>
					<div class="fusion-builder-layouts-header-info">
						<h2><?php esc_attr_e( 'Saved Elements', 'fusion-builder' ); ?></h2>
						<?php // @codingStandardsIgnoreStart ?>
						<span class="fusion-builder-layout-info"><?php
						/* translators: The "Fusion Documentation" link. */
						printf( __( 'Manage your saved elements. Elements cannot be inserted from the library window and they must always go inside a column. The globe icon indicates the element is a <a href="%s" target="_blank">global element</a>.', 'fusion-builder' ), 'https://theme-fusion.com/documentation/fusion-builder/technical/page-content-not-parsable-fusion-builder/' );
						?></span>
						<?php // @codingStandardsIgnoreEnd ?>
					</div>
				</div>

				<?php
				// Query elements.
				$query = fusion_cached_query(
					array(
						'post_status'    => 'publish',
						'post_type'      => 'fusion_element',
						'posts_per_page' => '-1',
						'tax_query'      => array(
							array(
								'taxonomy' => 'element_category',
								'field'    => 'slug',
								'terms'    => 'elements',
							),
						),
					)
				);
				?>

				<?php if ( $query->have_posts() ) : ?>

					<ul class="fusion-page-layouts fusion-layout-elements">

						<?php
						while ( $query->have_posts() ) :
							$query->the_post();
							$is_global = ( 'yes' === get_post_meta( get_the_ID(), '_fusion_is_global', true ) ? 'fusion-global' : '' );
							global $post;
							$element_type = esc_attr( get_post_meta( $post->ID, '_fusion_element_type', true ) );
							?>

							<li class="<?php echo esc_attr( $is_global ); ?> fusion-page-layout" data-layout_type="<?php echo esc_attr( $element_type ); ?>" data-layout_id="<?php echo esc_attr( get_the_ID() ); ?>">
								<h4 class="fusion-page-layout-title"><?php echo get_the_title(); ?>
									<?php if ( '' !== $is_global ) : ?>
										<div class="fusion-global-tooltip-wrapper"><span class="fusion-global-tooltip"><?php esc_attr_e( 'This is a global element.', 'fusion-builder' ); ?></span></div>
									<?php endif; ?>
								</h4>
								<span class="fusion-layout-buttons">
									<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $post->ID ) ) ); ?>" class="fusion-builder-layout-button-edit" target="_blank"><?php esc_attr_e( 'Edit', 'fusion-builder' ); ?></a></a>
									<a href="#" class="fusion-builder-layout-button-delete"><?php esc_attr_e( 'Delete', 'fusion-builder' ); ?></a>
								</span>
							</li>
						<?php endwhile; ?>

					</ul>

				<?php else : ?>
					<ul class="fusion-page-layouts fusion-layout-elements">
						<p class="fusion-empty-library-message"><?php esc_attr_e( 'There are no custom elements in your library', 'fusion-builder' ); ?></p>
					</ul>

				<?php endif; ?>

				<?php
				$post = $saved_post ? $saved_post : $post;
				wp_reset_postdata();
				?>

			</div>

			<?php
			// Display templates tab.
			?>
			<div id="fusion-builder-layouts-templates" class="fusion-builder-layouts-tab">
				<div class="fusion-builder-layouts-header">

					<div class="fusion-builder-layouts-header-fields">
						<a href="#" class="fusion-builder-layout-button-save"><?php esc_attr_e( 'Save Template', 'fusion-builder' ); ?></a>
						<input type="text" id="new_template_name" value="" placeholder="<?php esc_attr_e( 'Custom template name', 'fusion-builder' ); ?>" />
					</div>

					<div class="fusion-builder-layouts-header-info">
						<h2><?php esc_attr_e( 'Save current page layout as a template', 'fusion-builder' ); ?></h2>
						<span class="fusion-builder-layout-info"><?php esc_attr_e( 'Enter a name for your template and click the Save button. This will save the entire page layout, page template from the page attributes box, custom css and Fusion Page Options. IMPORTANT: when loading a saved template, everything will load except for Fusion Page Options. The only time Fusion Page Options will load is if you choose to "Replace All Content".', 'fusion-builder' ); ?></span>
					</div>

				</div>

				<?php
				// Query page templates.
				$query = fusion_cached_query(
					array(
						'post_status'    => 'publish',
						'post_type'      => 'fusion_template',
						'posts_per_page' => '-1',
					)
				);
				?>

				<ul class="fusion-page-layouts fusion-layout-templates">

					<?php if ( $query->have_posts() ) : ?>

						<?php while ( $query->have_posts() ) : ?>
							<?php $query->the_post(); ?>
							<?php global $post; ?>
							<li class="fusion-page-layout" data-layout_id="<?php echo get_the_ID(); ?>">
								<h4 class="fusion-page-layout-title"><?php echo get_the_title(); ?></h4>
								<span class="fusion-layout-buttons">
									<a href="javascript:void(0)" class="fusion-builder-layout-button-load-dialog">
										<?php
										printf(
											esc_html__( 'Load %s', 'fusion-builder' ),
											'<div class="fusion-builder-load-template-dialog-container"><div class="fusion-builder-load-template-dialog"><span class="fusion-builder-save-element-title">' . esc_html__( 'How To Load Template?', 'fusion-builder' ) . '</span><div class="fusion-builder-save-element-container"><span class="fusion-builder-layout-button-load" data-load-type="replace">' . esc_attr__( 'Replace all page content', 'fusion-builder' ) . '</span><span class="fusion-builder-layout-button-load" data-load-type="above">' . esc_attr__( 'Insert above current content', 'fusion-builder' ) . '</span><span class="fusion-builder-layout-button-load" data-load-type="below">' . esc_attr__( 'Insert below current content', 'fusion-builder' ) . '</span></div></div></div>'
										);
										?>
									</a>
									<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $post->ID ) ) ); ?>" class="" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Edit', 'fusion-builder' ); ?></a>
									<a href="#" class="fusion-builder-layout-button-delete"><?php esc_html_e( 'Delete', 'fusion-builder' ); ?></a>
								</span>
							</li>
						<?php endwhile; ?>

					<?php else : ?>

						<p class="fusion-empty-library-message"><?php esc_attr_e( 'There are no custom templates in your library', 'fusion-builder' ); ?></p>

					<?php endif; ?>

					<?php wp_reset_postdata(); ?>

				</ul>

			</div>

		</div>

	</div>

	<?php
	if ( $saved_post ) {
		$post = $saved_post;
	}
}


/**
 * Load custom elements.
 */
function fusion_load_custom_elements() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( isset( $_POST['cat'] ) && '' !== $_POST['cat'] ) {

		$cat = $_POST['cat'];

		// Query elements.
		$query = fusion_cached_query(
			array(
				'post_status'    => 'publish',
				'post_type'      => 'fusion_element',
				'posts_per_page' => '-1',
				'tax_query'      => array(
					array(
						'taxonomy' => 'element_category',
						'field'    => 'slug',
						'terms'    => $cat,
					),
				),
			)
		);
		?>

		<?php if ( $query->have_posts() ) : ?>

			<ul class="fusion-builder-all-modules">
				<?php while ( $query->have_posts() ) : ?>
					<?php $query->the_post(); ?>
					<?php global $post; ?>
					<?php $element_type = esc_attr( get_post_meta( $post->ID, '_fusion_element_type', true ) ); ?>
					<?php $element_type_class = ( isset( $element_type ) && '' != $element_type ) ? 'fusion-element-type-' . $element_type : ''; ?>

					<li class="fusion-page-layout fusion_builder_custom_<?php echo esc_attr( $cat ); ?>_load <?php echo esc_attr( $element_type_class ); ?>" data-layout_id="<?php echo get_the_ID(); ?>">
						<h4 class="fusion_module_title"><?php echo get_the_title(); ?></h4>
					</li>

				<?php endwhile; ?>
			</ul>

		<?php else : ?>

			<p class="fusion-empty-library-message"><?php esc_attr_e( 'There are no custom elements in your library', 'fusion-builder' ); ?></p>

		<?php endif; ?>
		<?php
		wp_reset_postdata();
	}

	die();
}
add_action( 'wp_ajax_fusion_load_custom_elements', 'fusion_load_custom_elements' );


/**
 * Load custom page layout.
 */
function fusion_builder_load_layout() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( ! isset( $_POST['fusion_layout_id'] ) && '' === $_POST['fusion_layout_id'] ) {
		die( -1 );
	}

	$data      = array();
	$layout_id = (int) $_POST['fusion_layout_id'];
	$layout    = get_post( $layout_id );

	// Globals.
	if ( isset( $_POST['fusion_is_global'] ) && 'false' !== $_POST['fusion_is_global'] ) {
		$position = strpos( $layout->post_content, ']' );
		if ( false !== $position ) {
			$layout->post_content = apply_filters( 'content_edit_pre', $layout->post_content, $layout->post_content, $layout_id );
			$layout->post_content = substr_replace( $layout->post_content, ' fusion_global="' . $layout_id . '"]', $position, 1 );
		}
	}

	if ( $layout ) {

		// Set page content.
		$data['post_content'] = apply_filters( 'content_edit_pre', $layout->post_content, $layout_id );

		// Set page template.
		if ( 'fusion_template' == get_post_type( $layout_id ) ) {

			$page_template = get_post_meta( $layout_id, '_wp_page_template', true );

			if ( isset( $page_template ) && ! empty( $page_template ) ) {
				$data['page_template'] = $page_template;
			}

			$custom_css = get_post_meta( $layout_id, '_fusion_builder_custom_css', true );

			$data['post_meta'] = get_post_meta( $layout_id );

			if ( isset( $custom_css ) && ! empty( $custom_css ) ) {
				$data['custom_css'] = $custom_css;
			}
		}
	}

	$json_data = wp_json_encode( $data );

	die( $json_data ); // XPCS: XSS ok.

}
add_action( 'wp_ajax_fusion_builder_load_layout', 'fusion_builder_load_layout' );


/**
 * Load custom page layout.
 */
function fusion_builder_load_demo() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( ! isset( $_POST['page_name'] ) && '' === $_POST['page_name'] ) {
		die( -1 );
	}

	if ( ! isset( $_POST['demo_name'] ) && '' === $_POST['demo_name'] ) {
		die( -1 );
	}

	if ( ! isset( $_POST['post_id'] ) && '' === $_POST['post_id'] ) {
		die( -1 );
	}

	$data      = array();
	$page_name = $_POST['page_name'];
	$demo_name = $_POST['demo_name'];
	$post_id   = (int) $_POST['post_id'];

	$fusion_builder_demos = apply_filters( 'fusion_builder_get_demo_pages', array() );

	if ( isset( $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ] ) && ! empty( $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ] ) ) {

		// Set page content.
		$data['post_content'] = $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ]['content'];

		// Set page template.
		$page_template = $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ]['page_template'];

		if ( isset( $page_template ) && ! empty( $page_template ) ) {
			$data['page_template'] = $page_template;
		}
	}

	if ( isset( $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ]['meta'] ) && ! empty( $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ]['meta'] ) ) {

		$data['meta'] = $fusion_builder_demos[ $demo_name ]['pages'][ $page_name ]['meta'];
	}

	$json_data = wp_json_encode( $data );

	die( $json_data ); // XPCS: XSS ok.

}
add_action( 'wp_ajax_fusion_builder_load_demo', 'fusion_builder_load_demo' );

/**
 * Save custom layout.
 */
function fusion_builder_save_layout() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( isset( $_POST['fusion_layout_name'] ) && '' !== $_POST['fusion_layout_name'] ) {

		$layout_name = $_POST['fusion_layout_name'];
		$taxonomy    = 'element_category';
		$term        = '';
		$meta        = array();
		$layout_type = '';
		$global_data = '';
		$global_type = array(
			'elements' => 'element',
			'columns'  => 'column',
			'sections' => 'container',
		);

		if ( isset( $_POST['fusion_layout_post_type'] ) && '' !== $_POST['fusion_layout_post_type'] ) {

			$post_type = $_POST['fusion_layout_post_type'];

			if ( isset( $_POST['fusion_current_post_id'] ) && '' !== $_POST['fusion_current_post_id'] ) {
				$post_id = $_POST['fusion_current_post_id'];
			}

			if ( isset( $_POST['fusion_layout_element_type'] ) && '' !== $_POST['fusion_layout_element_type'] ) {
				$meta['_fusion_element_type'] = $_POST['fusion_layout_element_type'];
				$layout_type = ' fusion-element-type-' . $_POST['fusion_layout_element_type'];
			}

			if ( 'fusion_template' == $post_type ) {
				$meta['fusion_builder_status'] = 'active';

				// Save custom css.
				if ( isset( $_POST['fusion_custom_css'] ) && '' !== $_POST['fusion_custom_css'] ) {
					$meta['_fusion_builder_custom_css'] = $_POST['fusion_custom_css'];
				}

				// Save page template.
				if ( isset( $_POST['fusion_page_template'] ) && '' !== $_POST['fusion_page_template'] ) {
					$meta['_wp_page_template'] = $_POST['fusion_page_template'];
				}

				// Save globals. @codingStandardsIgnoreLine
				$_POST['fusion_layout_content'] = apply_filters( 'content_save_pre', $_POST['fusion_layout_content'] );
			}

			// Globals.
			if ( isset( $_POST['fusion_save_global'] ) && 'false' !== $_POST['fusion_save_global'] ) {
				$meta['_fusion_is_global'] = 'yes';
				$global_data               = 'fusion-global';
			} else {
				$position = false;
				if ( isset( $_POST['fusion_layout_content'] ) ) {
					$position = strpos( $_POST['fusion_layout_content'], 'fusion_global' );
				}

				if ( false !== $position ) {
					// Remove fusion_global attributes from content if it is simple library element. @codingStandardsIgnoreLine
					$_POST['fusion_layout_content'] = preg_replace( '/fusion_global=[^][^][0-9]*[^][^]/' , '', $_POST['fusion_layout_content'] );
				}
			}

			// Add Fusion Options to meta data.
			if ( isset( $_POST['fusion_options'] ) && '' !== $_POST['fusion_options'] && is_array( $_POST['fusion_options'] ) ) {
				foreach ( $_POST['fusion_options'] as $option ) {
					$meta[ $option[0] ] = $option[1];
				}
			}
			// Post category.
			if ( isset( $_POST['fusion_layout_new_cat'] ) && '' !== $_POST['fusion_layout_new_cat'] ) {
				$term = $_POST['fusion_layout_new_cat'];
				$global_type = $global_type[ $term ];
			}

			$post_fusion_layout_content = ( isset( $_POST['fusion_layout_content'] ) ) ? $_POST['fusion_layout_content'] : '';
			$new_layout_id = fusion_builder_create_layout( $post_type, $layout_name, $post_fusion_layout_content, $meta, $taxonomy, $term );
			?>

			<?php if ( 'fusion_element' == $post_type ) : ?>

				<li class="<?php echo esc_attr( $global_data ); ?> fusion-page-layout<?php echo esc_attr( $layout_type ); ?>" data-layout_id="<?php echo esc_attr( $new_layout_id ); ?>">
					<h4 class="fusion-page-layout-title"><?php echo get_the_title( $new_layout_id ); ?>
						<?php if ( 'false' !== $_POST['fusion_save_global'] ) : ?>
							<div class="fusion-global-tooltip-wrapper"><span class="fusion-global-tooltip"><?php printf( esc_attr__( 'This is a global %s.', 'fusion-builder' ), esc_attr( $global_type ) ); ?></span></div>
						<?php endif; ?>
					</h4>
					<span class="fusion-layout-buttons">
						<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $new_layout_id ) ) ); ?>" class="" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Edit', 'fusion-builder' ); ?></a>
						<a href="#" class="fusion-builder-layout-button-delete"><?php esc_html_e( 'Delete', 'fusion-builder' ); ?></a>
					</span>
				</li>

			<?php elseif ( 'fusion_template' == $post_type ) : ?>

				<li class="<?php echo esc_attr( $global_data ); ?> fusion-page-layout" data-layout_id="<?php echo esc_attr( $new_layout_id ); ?>">
					<h4 class="fusion-page-layout-title"><?php echo get_the_title( $new_layout_id ); // WPCS: XSS ok. ?></h4>
					<span class="fusion-layout-buttons">
						<a href="javascript:void(0)" class="fusion-builder-layout-button-load-dialog">
							<?php
							printf(
								esc_html__( 'Load %s', 'fusion-builder' ),
								'<div class="fusion-builder-load-template-dialog-container"><div class="fusion-builder-load-template-dialog"><span class="fusion-builder-save-element-title">' . esc_attr__( 'How To Load Template?', 'fusion-builder' ) . '</span><div class="fusion-builder-save-element-container"><span class="fusion-builder-layout-button-load" data-load-type="replace">' . esc_attr__( 'Replace all page content', 'fusion-builder' ) . '</span><span class="fusion-builder-layout-button-load" data-load-type="above">' . esc_attr__( 'Insert above current content', 'fusion-builder' ) . '</span><span class="fusion-builder-layout-button-load" data-load-type="below">' . esc_attr__( 'Insert below current content', 'fusion-builder' ) . '</span></div></div></div>'
							);
							?>
						</a>
						<a href="<?php echo esc_url_raw( htmlspecialchars_decode( get_edit_post_link( $new_layout_id ) ) ); ?>" class="" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Edit', 'fusion-builder' ); ?></a>
						<a href="#" class="fusion-builder-layout-button-delete"><?php esc_html_e( 'Delete', 'fusion-builder' ); ?></a>
					</span>
				</li>
			<?php
			endif;
		}
	}

	die();
}
add_action( 'wp_ajax_fusion_builder_save_layout', 'fusion_builder_save_layout' );

/**
 * Save custom layout.
 */
function fusion_builder_update_layout() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( isset( $_POST['fusion_layout_id'] ) && '' !== $_POST['fusion_layout_id'] ) {

		$layout_id  = $_POST['fusion_layout_id'];
		$content    = isset( $_POST['fusion_layout_content'] ) ? $_POST['fusion_layout_content'] : '';

		$to_replace = addslashes( ' fusion_global="' . $layout_id . '"' );
		$content    = str_replace( $to_replace, '', $content );

		// Filter nested globals.
		$content   = apply_filters( 'content_save_pre', $content, $content, $layout_id );

		$post = array(
			'ID'           => $layout_id,
			'post_content' => $content,
		);

		wp_update_post( $post );

	}
	die();
}
add_action( 'wp_ajax_fusion_builder_update_layout', 'fusion_builder_update_layout' );
/**
 * Get image URL from image ID.
 */
function fusion_builder_get_image_url() {

	check_ajax_referer( 'fusion_load_nonce', 'fusion_load_nonce' );

	if ( ! isset( $_POST['fusion_image_ids'] ) && '' === $_POST['fusion_image_ids'] ) {
		die( -1 );
	}

	$data      = array();
	$image_ids = $_POST['fusion_image_ids'];
	foreach ( $image_ids as $image_id ) {
		if ( '' !== $image_id ) {
			$image_url = wp_get_attachment_url( $image_id, 'thumbnail' );
			$image_html = '<div class="fusion-multi-image" data-image-id="' . $image_id . '">';
			$image_html .= '<img src="' . $image_url . '"/>';
			$image_html .= '<span class="fusion-multi-image-remove dashicons dashicons-no-alt"></span>';
			$image_html .= '</div>';
			$data['images'][] = $image_html;
		}
	}
	$json_data = wp_json_encode( $data );

	die( $json_data ); // WPCS: XSS ok.

}
add_action( 'wp_ajax_fusion_builder_get_image_url', 'fusion_builder_get_image_url' );

/**
 * Process action for trash element.
 *
 * @since 1.0
 * @return void
 */
function fusion_library_trash_element() {
	if ( current_user_can( 'manage_options' ) ) {
		$element_ids = '';

		if ( isset( $_GET['post'] ) ) {
			$element_ids = wp_unslash( $_GET['post'] ); // WPCS: sanitization ok.
		}

		if ( '' !== $element_ids ) {
			$element_ids = (array) $element_ids;
		}

		if ( ! empty( $element_ids ) ) {
			foreach ( $element_ids as $id ) {
				wp_trash_post( $id );
			}
		}
	}

	if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
		wp_safe_redirect( sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) );
	}
}
add_action( 'admin_action_fusion_trash_element', 'fusion_library_trash_element' );

/**
 * Process action for restore element.
 *
 * @since 1.0
 * @return void
 */
function fusion_library_restore_element() {
	if ( current_user_can( 'manage_options' ) ) {
		$element_ids = '';

		if ( isset( $_GET['post'] ) ) {
			$element_ids = wp_unslash( $_GET['post'] ); // WPCS: sanitization ok.
		}

		if ( '' !== $element_ids ) {
			$element_ids = (array) $element_ids;
		}

		if ( ! empty( $element_ids ) ) {
			foreach ( $element_ids as $id ) {
				wp_untrash_post( $id );
			}
		}
	}

	if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
		wp_safe_redirect( sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) );
	}
}
add_action( 'admin_action_fusion_restore_element', 'fusion_library_restore_element' );

/**
 * Process action for untrash element.
 *
 * @since 1.0
 * @return void
 */
function fusion_library_delete_element_post() {
	if ( current_user_can( 'manage_options' ) ) {
		$element_ids = '';

		if ( isset( $_GET['post'] ) ) {
			$element_ids = wp_unslash( $_GET['post'] ); // WPCS: sanitization ok.
		}

		if ( '' !== $element_ids ) {
			$element_ids = (array) $element_ids;
		}

		if ( ! empty( $element_ids ) ) {
			foreach ( $element_ids as $id ) {
				wp_delete_post( $id, true );
			}
		}
	}

	if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
		wp_safe_redirect( sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) );
	}
}
add_action( 'admin_action_fusion_delete_element', 'fusion_library_delete_element_post' );