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/themes/Avada/includes
/srv/http/adent.cz/kvfinal.cz/wp-content/themes/Avada/includes/
Upload File:
Current File : /srv/http/adent.cz/kvfinal.cz/wp-content/themes/Avada/includes/class-avada-nav-walker.php
<?php
/**
 * The main navwalker.
 *
 * @author     ThemeFusion
 * @copyright  (c) Copyright by ThemeFusion
 * @link       http://theme-fusion.com
 * @package    Avada
 * @subpackage Core
 */

// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
	exit( 'Direct script access denied.' );
}

// Dont duplicate me!
if ( ! class_exists( 'Avada_Nav_Walker' ) ) {

	/**
	 * The main navwalker.
	 */
	class Avada_Nav_Walker extends Walker_Nav_Menu {

		/**
		 * Do we use default styling or a button?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_style = '';

		/**
		 * Are we currently rendering a mega menu?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_status = '';

		/**
		 * Use full width mega menu?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_width = '';

		/**
		 * How many columns should the mega menu have?
		 *
		 * @access  private
		 * @var int
		 */
		private $num_of_columns = 0;

		/**
		 * Mega menu allow for 6 columns at max.
		 *
		 * @access  private
		 * @var int
		 */
		private $max_num_of_columns = 6;

		/**
		 * Total number of columns for a single megamenu?
		 *
		 * @access  private
		 * @var int
		 */
		private $total_num_of_columns = 0;

		/**
		 * Number of rows in the mega menu.
		 *
		 * @access  private
		 * @var int
		 */
		private $num_of_rows = 1;

		/**
		 * Holds number of columns per row.
		 *
		 * @access  private
		 * @var array
		 */
		private $submenu_matrix = array();

		/**
		 * How large is the width of a column?
		 *
		 * @access  private
		 * @var int|string
		 */
		private $menu_megamenu_columnwidth = 0;

		/**
		 * How large is the width of each row?
		 *
		 * @access  private
		 * @var array
		 */
		private $menu_megamenu_rowwidth_matrix = array();

		/**
		 * How large is the overall width of a column?
		 *
		 * @access  private
		 * @var int
		 */
		private $menu_megamenu_maxwidth = 0;

		/**
		 * Should a colum title be displayed?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_title = '';

		/**
		 * Should one column be a widget area?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_widget_area = '';

		/**
		 * Does the item have an icon?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_icon = '';

		/**
		 * Does the item have a thumbnail?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_thumbnail = '';


		/**
		 * Does the item have a background image?
		 *
		 * @access  private
		 * @var string
		 */
		private $menu_megamenu_background_image = '';

		/**
		 * Middle logo menu breaking point
		 *
		 * @access  private
		 * @var init
		 */
		private $middle_logo_menu_break_point = null;

		/**
		 * Middle logo menu number of top level items displayed
		 *
		 * @access  private
		 * @var init
		 */
		private $no_of_top_level_items_displayed = 0;

		/**
		 * Sets the overall width of the megamenu wrappers
		 */
		private function set_megamenu_max_width() {

			// Set overall width of megamenu.
			$site_width         = (int) str_replace( 'px', '', Avada()->settings->get( 'site_width' ) );
			$megamenu_max_width = (int) Avada()->settings->get( 'megamenu_max_width' );
			$megmanu_width      = 0;

			$megamenu_width = $megamenu_max_width;
			// Site width in px.
			if ( false !== strpos( Avada()->settings->get( 'site_width' ), 'px' ) && false === strpos( Avada()->settings->get( 'site_width' ), 'calc' ) ) {
				$megamenu_width = $site_width;
				if ( $site_width > $megamenu_max_width && 0 < $megamenu_max_width ) {
					$megamenu_width = $megamenu_max_width;
				}
			}

			$this->menu_megamenu_maxwidth = $megamenu_width;
		}

		/**
		 * Start level.
		 *
		 * @see Walker::start_lvl()
		 * @since 3.0.0
		 *
		 * @param string $output Passed by reference. Used to append additional content.
		 * @param int    $depth Depth of page. Used for padding.
		 * @param  array  $args Not used.
		 */
		public function start_lvl( &$output, $depth = 0, $args = array() ) {
			if ( 0 === $depth && 'enabled' === $this->menu_megamenu_status ) {
				// Set overall width of megamenu.
				if ( ! $this->menu_megamenu_maxwidth ) {
					$this->set_megamenu_max_width();
				}
				$output .= '{first_level}';
				$output .= '<div class="fusion-megamenu-holder" {megamenu_final_width}><ul role="menu" class="fusion-megamenu {megamenu_border}">';
			} elseif ( 2 <= $depth && 'enabled' === $this->menu_megamenu_status ) {
				$output .= '<ul role="menu" class="sub-menu deep-level">';
			} else {
				$output .= '<ul role="menu" class="sub-menu">';
			}

		}

		/**
		 * End level.
		 *
		 * @see Walker::end_lvl()
		 * @since 3.0.0
		 *
		 * @param string $output Passed by reference. Used to append additional content.
		 * @param int    $depth Depth of page. Used for padding.
		 * @param  array  $args Not used.
		 */
		public function end_lvl( &$output, $depth = 0, $args = array() ) {

			$row_width = '';

			if ( 0 === $depth && 'enabled' === $this->menu_megamenu_status ) {

				$output .= '</ul></div><div style="clear:both;"></div></div></div>';

				$col_span = ' col-span-' . $this->max_num_of_columns * 2;
				if ( $this->total_num_of_columns < $this->max_num_of_columns ) {
					$col_span = ' col-span-' . $this->total_num_of_columns * 2;
				}

				// Calc overall megamenu wrapper width in px.
				$wrapper_width = max( $this->menu_megamenu_rowwidth_matrix ) * $this->menu_megamenu_maxwidth;
				if ( 'fullwidth' === $this->menu_megamenu_width ) {
					$col_span = ' col-span-12 fusion-megamenu-fullwidth';
					// Overall megamenu wrapper width in px is max width for fullwidth megamenu.
					$wrapper_width = $this->menu_megamenu_maxwidth;
				}

				$background_image = '';
				if ( ! empty( $this->menu_megamenu_background_image ) ) {
					$background_image = 'background-image: url(' . $this->menu_megamenu_background_image . ');';
				}

				$output = str_replace( '{first_level}', '<div class="fusion-megamenu-wrapper {fusion_columns} columns-' . $this->total_num_of_columns . $col_span . '" data-maxwidth="' . $this->menu_megamenu_maxwidth . '"><div class="row">', $output );
				$output = str_replace( '{megamenu_final_width}', 'style="width:' . $wrapper_width . 'px;' . $background_image . '" data-width="' . $wrapper_width . '"', $output );

				$replacement = ( $this->total_num_of_columns > $this->max_num_of_columns ) ? 'fusion-megamenu-border' : '';
				$output = str_replace( '{megamenu_border}', $replacement, $output );

				foreach ( $this->submenu_matrix as $row => $columns ) {
					$layout_columns = 12 / $columns;
					$layout_columns = ( '5' == $columns ) ? 2 : $layout_columns;

					if ( $columns < $this->max_num_of_columns ) {
						$row_width = 'style="width:' . $columns / $this->max_num_of_columns * 100 . '% !important;"';
					}

					$output = str_replace( '{row_width_' . $row . '}', $row_width, $output );

					$replacement  = 'fusion-megamenu-row-columns-' . $columns;
					$replacement .= ( ( $row - 1 ) * $this->max_num_of_columns + $columns < $this->total_num_of_columns ) ? ' fusion-megamenu-border' : '';
					$output = str_replace( '{row_number_' . $row . '}', $replacement, $output );

					$output = str_replace( '{current_row_' . $row . '}', 'fusion-megamenu-columns-' . $columns . ' col-lg-' . $layout_columns . ' col-md-' . $layout_columns . ' col-sm-' . $layout_columns, $output );

					$output = str_replace( '{fusion_columns}', 'fusion-columns-' . $columns . ' columns-per-row-' . $columns, $output );
				}
			} else {
				$output .= '</ul>';
			} // End if().
		}

		/**
		 * Start element.
		 *
		 * @see Walker::start_el()
		 * @since 3.0.0
		 *
		 * @param string $output Passed by reference. Used to append additional content.
		 * @param object $item Menu item data object.
		 * @param int    $depth Depth of menu item. Used for padding.
		 * @param array  $args The arguments.
		 * @param int    $id Menu item ID.
		 */
		public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {

			$item_output          = '';
			$class_columns        = '';
			$menu_highlight_label = '';

			$is_rtl                          = is_rtl();
			$header_layout                   = Avada()->settings->get( 'header_layout' );
			$header_position                 = Avada()->settings->get( 'header_position' );
			$menu_icon_position              = Avada()->settings->get( 'menu_icon_position' );
			$menu_display_dropdown_indicator = Avada()->settings->get( 'menu_display_dropdown_indicator' );
			$menu_highlight_style            = Avada()->settings->get( 'menu_highlight_style' );

			if ( null === $item->menu_item_parent ) {
				$item->menu_item_parent = '0';
			}

			if ( 'v7' === $header_layout ) {
				if ( ! isset( $this->middle_logo_menu_break_point ) ) {

					$is_search_icon_enabled = Avada()->settings->get( 'main_nav_search_icon' );
					$is_cart_icon_enabled   = Avada()->settings->get( 'woocommerce_cart_link_main_nav' );

					$middle_logo_menu_elements           = wp_get_nav_menu_items( $args->menu );
					$middle_logo_menu_top_level_elements = 0;

					foreach ( $middle_logo_menu_elements as $menu_element ) {
						if ( null === $menu_element->menu_item_parent ) {
							$menu_element->menu_item_parent = '0';
						}

						if ( '0' === $menu_element->menu_item_parent ) {
							$middle_logo_menu_top_level_elements++;
						}
					}

					if ( $is_search_icon_enabled ) {
						$middle_logo_menu_top_level_elements++;
					}

					if ( $is_cart_icon_enabled ) {
						$middle_logo_menu_top_level_elements++;
					}

					$top_level_menu_items_count = $middle_logo_menu_top_level_elements;

					if ( 0 === $top_level_menu_items_count ) {
						$this->middle_logo_menu_break_point = $middle_logo_menu_top_level_elements / 2;
					} else {
						$this->middle_logo_menu_break_point = ceil( $middle_logo_menu_top_level_elements / 2 );
						if ( $is_search_icon_enabled || $is_cart_icon_enabled ) {
							$this->middle_logo_menu_break_point = floor( $middle_logo_menu_top_level_elements / 2 );
						}
					}
				}
			}

			// Set some vars.
			$meta_data  = get_post_meta( $item->ID );
			$avada_meta = ! empty( $meta_data['_menu_item_fusion_megamenu'][0] ) ? maybe_unserialize( $meta_data['_menu_item_fusion_megamenu'][0] ) : array();

			$this->menu_style               = isset( $avada_meta['style'] ) ? $avada_meta['style'] : '';
			$this->menu_megamenu_icon       = isset( $avada_meta['icon'] ) ? $avada_meta['icon'] : '';
			$this->menu_megamenu_modal      = isset( $avada_meta['modal'] ) ? $avada_meta['modal'] : '';
			$this->menu_title_only          = isset( $avada_meta['icononly'] ) ? $avada_meta['icononly'] : '';

			$this->fusion_highlight_label               = isset( $avada_meta['highlight_label'] ) ? $avada_meta['highlight_label'] : '';
			$this->fusion_highlight_label_background    = isset( $avada_meta['highlight_label_background'] ) ? $avada_meta['highlight_label_background'] : '';
			$this->fusion_highlight_label_color         = isset( $avada_meta['highlight_label_color'] ) ? $avada_meta['highlight_label_color'] : '';
			$this->fusion_highlight_label_border_color  = isset( $avada_meta['highlight_label_border_color'] ) ? $avada_meta['highlight_label_border_color'] : '';

			if ( ! empty( $item->fusion_highlight_label ) ) {

				$highlight_style  = '';

				if ( ! empty( $item->fusion_highlight_label_background ) ) {
					$highlight_style .= 'background-color:' . $item->fusion_highlight_label_background . ';';
				}

				if ( ! empty( $item->fusion_highlight_label_border_color ) ) {
					$highlight_style .= 'border-color:' . $item->fusion_highlight_label_border_color . ';';
				}

				if ( ! empty( $item->fusion_highlight_label_color ) ) {
					$highlight_style .= 'color:' . $item->fusion_highlight_label_color . ';';
				}

				$menu_highlight_label = '<span class="fusion-menu-highlight-label" style="' . esc_attr( $highlight_style ) . '">' . esc_html( $item->fusion_highlight_label ) . '</span>';
			}

			// Megamenu is enabled.
			if ( Avada()->settings->get( 'disable_megamenu' ) && 'top_navigation' !== $args->theme_location ) {
				if ( 0 === $depth ) {
					$this->menu_megamenu_status = isset( $avada_meta['status'] ) ? $avada_meta['status'] : 'disabled';
					$this->menu_megamenu_width  = isset( $avada_meta['width'] ) ? $avada_meta['width'] : '';
					$allowed_columns            = isset( $avada_meta['columns'] ) ? $avada_meta['columns'] : '';
					if ( 'auto' !== $allowed_columns ) {
						$this->max_num_of_columns = $allowed_columns;
					}
					$this->num_of_columns                                      = 0;
					$this->total_num_of_columns                                = 0;
					$this->num_of_rows                                         = 1;
					$this->menu_megamenu_rowwidth_matrix                       = array();
					$this->menu_megamenu_rowwidth_matrix[ $this->num_of_rows ] = 0;

					$this->menu_megamenu_background_image  = isset( $avada_meta['background_image'] ) ? $avada_meta['background_image'] : '';
				} elseif ( 1 === $depth ) {
					$megamenu_column_background_image  = isset( $avada_meta['background_image'] ) ? $avada_meta['background_image'] : '';
				}

				$this->menu_megamenu_title      = isset( $avada_meta['title'] ) ? $avada_meta['title'] : '';
				$this->menu_megamenu_widgetarea = isset( $avada_meta['widgetarea'] ) ? $avada_meta['widgetarea'] : '';

				if ( ! empty( $avada_meta['thumbnail'] ) ) {
					$thumbnail_data = Avada()->images->get_attachment_data_from_url( $avada_meta['thumbnail'] );

					if ( $thumbnail_data ) {
						$this->menu_megamenu_thumbnail  = '<img src="' . $thumbnail_data['url'] . '" alt="' . $thumbnail_data['alt'] . '" title="' . $thumbnail_data['title'] . '">';
					} else {
						$this->menu_megamenu_thumbnail  = '<img src="' . $avada_meta['thumbnail'] . '">';
					}
				} else {
					$this->menu_megamenu_thumbnail = '';
				}

				// Megamenu is disabled.
			} else {
				$this->menu_megamenu_status = 'disabled';
			}

			// We are inside a megamenu.
			if ( 1 === $depth && 'enabled' === $this->menu_megamenu_status ) {

				if ( isset( $avada_meta['columnwidth'] ) && $avada_meta['columnwidth'] ) {
					$this->menu_megamenu_columnwidth = $avada_meta['columnwidth'];
				} else {
					$this->menu_megamenu_columnwidth = '16.6666%';
					if ( 'fullwidth' === $this->menu_megamenu_width && $this->max_num_of_columns ) {
						$this->menu_megamenu_columnwidth = 100 / $this->max_num_of_columns . '%';
					} elseif ( '1' == $this->max_num_of_columns ) {
						$this->menu_megamenu_columnwidth = '100%';
					}
				}

				$this->num_of_columns++;
				$this->total_num_of_columns++;

				// Check if we need to start a new row.
				if ( $this->num_of_columns > $this->max_num_of_columns ) {
					$this->num_of_columns = 1;
					$this->num_of_rows++;

					// Start new row width calculation.
					$this->menu_megamenu_rowwidth_matrix[ $this->num_of_rows ] = floatval( $this->menu_megamenu_columnwidth ) / 100;

					$output .= '</ul><ul role="menu" class="fusion-megamenu fusion-megamenu-row-' . $this->num_of_rows . ' {row_number_' . $this->num_of_rows . '}" {row_width_' . $this->num_of_rows . '}>';
				} else {
					$this->menu_megamenu_rowwidth_matrix[ $this->num_of_rows ] += floatval( $this->menu_megamenu_columnwidth ) / 100;
				}

				$this->submenu_matrix[ $this->num_of_rows ] = $this->num_of_columns;

				if ( $this->max_num_of_columns < $this->num_of_columns ) {
					$this->max_num_of_columns = $this->num_of_columns;
				}

				$title = apply_filters( 'the_title', $item->title, $item->ID );

				if ( ! ( ( empty( $item->url ) || '#' === $item->url || 'http://' === $item->url ) && 'disabled' === $this->menu_megamenu_title ) ) {
					$heading      = do_shortcode( $title );
					$link         = '';
					$link_closing = '';
					$target       = '';
					$link_class   = '';

					if ( ! empty( $item->url ) && '#' !== $item->url && 'http://' !== $item->url ) {

						if ( ! empty( $item->target ) ) {
							$target = ' target="' . $item->target . '"';
						}
						if ( 'disabled' === $this->menu_megamenu_title ) {
							$link_class = ' class="fusion-megamenu-title-disabled"';
						}

						$link         = '<a href="' . $item->url . '"' . $target . $link_class . '>';
						$link_closing = '</a>';
					}

					// Check if we need to set an image.
					$title_enhance = '';
					if ( ! empty( $this->menu_megamenu_thumbnail ) ) {
						$title_enhance = '<span class="fusion-megamenu-icon fusion-megamenu-thumbnail">' . $this->menu_megamenu_thumbnail . '</span>';
					} elseif ( ! empty( $this->menu_megamenu_icon ) ) {
						$title_enhance = '<span class="fusion-megamenu-icon"><i class="glyphicon ' . avada_font_awesome_name_handler( $this->menu_megamenu_icon ) . '"></i></span>';
					} elseif ( 'disabled' === $this->menu_megamenu_title ) {
						$title_enhance = '<span class="fusion-megamenu-bullet"></span>';
					}

					$heading = $link . $title_enhance . $title . $menu_highlight_label . $link_closing;
					$menu_icon_right = ( ( ! $is_rtl && 'right' === $menu_icon_position ) || ( $is_rtl && 'left' === $menu_icon_position ) );
					// If we have an icon or thumbnail and the position is not left, then change order.
					if ( 0 === $depth && ( ! empty( $this->menu_megamenu_icon ) || ! empty( $this->menu_megamenu_thumbnail ) ) && $menu_icon_right ) {
						$heading = $link . $title . $title_enhance . $link_closing;
					}
					if ( 'disabled' !== $this->menu_megamenu_title ) {
						$item_output .= "<div class='fusion-megamenu-title'>" . $heading . '</div>';
					} else {
						$item_output .= $heading;
					}
				} // End if().

				if ( $this->menu_megamenu_widgetarea && is_active_sidebar( $this->menu_megamenu_widgetarea ) ) {
					ob_start();
					dynamic_sidebar( $this->menu_megamenu_widgetarea );
					$item_output .= '<div class="fusion-megamenu-widgets-container second-level-widget">' . ob_get_clean() . '</div>';
				}

				$class_columns = ' {current_row_' . $this->num_of_rows . '}';

			} elseif ( 2 === $depth && 'enabled' === $this->menu_megamenu_status && $this->menu_megamenu_widgetarea ) {

				if ( is_active_sidebar( $this->menu_megamenu_widgetarea ) ) {
					ob_start();
					dynamic_sidebar( $this->menu_megamenu_widgetarea );
					$item_output .= '<div class="fusion-megamenu-widgets-container third-level-widget">' . ob_get_clean() . '</div>';
				}
			} else {

				$atts = array();
				$atts['title']  = ! empty( $item->attr_title ) ? esc_attr( $item->attr_title ) : '';
				$atts['target'] = ! empty( $item->target ) ? esc_attr( $item->target ) : '';
				$atts['rel']    = ! empty( $item->xfn ) ? esc_attr( $item->xfn ) : '';
				$atts['href']   = ! empty( $item->url ) ? esc_attr( $item->url ) : '';
				$atts['class']  = array();

				if ( 'v7' === $header_layout && '0' === $item->menu_item_parent ) {
					$atts['class'][] = 'fusion-top-level-link';
				}

				if ( 'icononly' === $this->menu_title_only && 0 === $depth ) {
					$atts['class'][] = 'fusion-icon-only-link';
				}

				if ( ( ! empty( $this->menu_megamenu_icon ) || ! empty( $this->menu_megamenu_thumbnail ) || $item->description ) && ! $this->menu_style && 0 === $depth ) {
					$atts['class'][] = 'fusion-flex-link';
					if ( 'top' === $menu_icon_position || 'bottom' === $menu_icon_position ) {
						$atts['class'][] = 'fusion-flex-column';
					}
				}

				$atts['class'][] = 'fusion-' . $menu_highlight_style . '-highlight';

				if ( 0 === $depth && $item->description ) {
					$atts['class'][] = 'fusion-has-description';
				}

				if ( '_blank' === $atts['target'] ) {
					$atts['rel'] = ( ( $atts['rel'] ) ? $atts['rel'] . ' noopener noreferrer' : 'noopener noreferrer' );
				}

				if ( '' !== $this->menu_megamenu_modal ) {
					$atts['data-toggle'] = 'modal';
					$atts['data-target'] = '.' . $this->menu_megamenu_modal;
				}

				$atts['class'] = implode( ' ', $atts['class'] );
				$atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );

				$attributes = '';
				foreach ( $atts as $attr => $value ) {
					if ( ! empty( $value ) ) {
						$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
						$attributes .= ' ' . $attr . '="' . $value . '"';
					}
				}

				$item_output .= $args->before . '<a ' . $attributes . '>';

				// For right side header add the caret icon at the beginning.
				if ( $args->has_children && ( ( 'parent' === $menu_display_dropdown_indicator && 0 === $depth ) || 'parent_child' === $menu_display_dropdown_indicator ) && 'v6' !== $header_layout && 'Right' === $header_position && ! $this->menu_style ) {
					$item_output .= ' <span class="fusion-caret"><i class="fusion-dropdown-indicator"></i></span>';
				}

				// Check if we need to set an image.
				$icon_wrapper_class = 'fusion-megamenu-icon';

				if ( 0 === $depth ) {
					if ( $is_rtl && 'left' === Avada()->settings->get( 'menu_icon_position' ) ) {
						$icon_wrapper_class .= ' fusion-megamenu-icon-left';
					}

					if ( $this->menu_style ) {
						$icon_wrapper_class = ( $is_rtl ) ? 'button-icon-divider-right' : 'button-icon-divider-left';
					}
				}

				$icon = '';

				// If its a side header, make sure icons are fixed size.
				if ( ! empty( $this->menu_megamenu_icon ) && 'Top' !== $header_position ) {
					$this->menu_megamenu_icon .= ' fa-fw';
				}
				if ( ! empty( $this->menu_megamenu_thumbnail ) && 'enabled' === $this->menu_megamenu_status ) {
					$icon = '<span class="' . $icon_wrapper_class . ' fusion-megamenu-image">' . $this->menu_megamenu_thumbnail . '</span>';
				} elseif ( ! empty( $this->menu_megamenu_icon ) ) {
					$icon = '<span class="' . $icon_wrapper_class . '"><i class="glyphicon ' . avada_font_awesome_name_handler( $this->menu_megamenu_icon ) . '"></i></span>';
				} elseif ( 0 !== $depth && 'enabled' === $this->menu_megamenu_status ) {
					$icon = '<span class="fusion-megamenu-bullet"></span>';
				}

				$classes = '';
				// Check if we have a menu button.
				if ( 0 === $depth ) {
					$classes = 'menu-text';
					if ( $this->menu_style ) {
						$classes .= ' fusion-button button-default ' . str_replace( 'fusion-', '', $this->menu_style );
						// Button should have 3D effect.
						if ( '3d' === Avada()->settings->get( 'button_type' ) ) {
							$classes .= ' button-3d';
						}
					}
				}

				$title = $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;

				// If we are top level, not using a button and have a description, then add that to the title.
				if ( $item->description && 0 === $depth && ! $this->menu_style ) {
					$title .= '<span class="fusion-menu-description">' . $item->description . '</span>';
				}

				if ( ! empty( $menu_highlight_label ) ) {
					$title .= $menu_highlight_label;
				}

				if ( false !== strpos( $icon, 'button-icon-divider-left' ) ) {
					$title = '<span class="fusion-button-text-left">' . $title . '</span>';
				} elseif ( false !== strpos( $icon, 'button-icon-divider-right' ) ) {
					$title = '<span class="fusion-button-text-right">' . $title . '</span>';
				} else if ( 'icononly' === $this->menu_title_only && 0 === $depth ) {
					$title = '<span class="menu-title">' . $title . '</span>';
				}

				// SVG creation for menu item hover/active.
				if ( 0 === $depth && ( ! $this->menu_style || $args->has_children ) ) {
					$title = apply_filters( 'avada_menu_arrow_hightlight', $title, $args->has_children );
				}

				$menu_icon_right = ( ( ! $is_rtl && 'right' === $menu_icon_position ) || ( $is_rtl && 'left' === $menu_icon_position ) );

				$opening_span = ( $classes ) ? '<span class="' . $classes . '">' : '<span>';

				// If we have an icon or thumbnail and the position is not left, then change order.
				if ( ( ! empty( $this->menu_megamenu_icon ) || ! empty( $this->menu_megamenu_thumbnail ) ) &&
					 ( $menu_icon_right || 'bottom' === $menu_icon_position )
					 && ! $this->menu_style && 0 === $depth ) {
					$item_output = $item_output . $opening_span . $title . '</span>' . $icon;
				} elseif ( $this->menu_style || 0 !== $depth ) {
					$item_output = $item_output . $opening_span . $icon . $title . '</span>';
				} else {
					$item_output = $item_output . $icon . $opening_span . $title . '</span>';
				}

				// For top header and left side header add the caret icon at the end.
				if ( $args->has_children && ( ( 'parent' === $menu_display_dropdown_indicator && 0 === $depth ) || 'parent_child' === $menu_display_dropdown_indicator ) && 'v6' !== $header_layout && 'Right' !== $header_position && ! $this->menu_style ) {
					$item_output .= ' <span class="fusion-caret"><i class="fusion-dropdown-indicator"></i></span>';
				}

				$item_output .= '</a>' . $args->after;

			} // End if().

			// Check if we need to apply a divider.
			if ( 'enabled' !== $this->menu_megamenu_status && ( ( 0 == strcasecmp( $item->attr_title, 'divider' ) ) || ( 0 == strcasecmp( $item->title, 'divider' ) ) ) ) {

				$output .= '<li role="presentation" class="divider">';

			} else {

				$class_names  = '';
				$column_width = '';
				$style        = '';
				$custom_class_data = '';
				$classes      = empty( $item->classes ) ? array() : (array) $item->classes;
				$classes[]    = 'menu-item-' . $item->ID;

				$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) );

				if ( 0 === $depth && $args->has_children ) {
					$class_names .= ( 'enabled' === $this->menu_megamenu_status ) ? ' fusion-megamenu-menu' : ' fusion-dropdown-menu';
				}

				if ( 0 === $depth && $this->menu_style ) {
					$class_names .= ' fusion-menu-item-button';
				}

				if ( 1 === $depth ) {

					if ( 'enabled' === $this->menu_megamenu_status ) {
						$class_names .= ' fusion-megamenu-submenu';

						if ( 'disabled' === $this->menu_megamenu_title ) {
							$class_names .= ' fusion-megamenu-submenu-notitle';
						}

						if ( ! empty( $megamenu_column_background_image ) ) {
							$style .= 'background-image: url(' . $megamenu_column_background_image . ');';
						}

						if ( 'fullwidth' !== $this->menu_megamenu_width ) {
							$width        = $this->menu_megamenu_maxwidth * floatval( $this->menu_megamenu_columnwidth ) / 100;
							$column_width = 'data-width="' . $width . '"';
							$style       .= 'width:' . $width . 'px;max-width:' . $width . 'px;';
						}
					} else {
						$class_names .= ' fusion-dropdown-submenu';
					}
				}

				if ( isset( $item->classes[0] ) && ! empty( $item->classes[0] ) ) {
					$custom_class_data = ' data-classes="' . $item->classes[0] . '"';
				}

				$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . $class_columns . '"' : '';

				$style = $style ? ' style="' . esc_attr( $style ) . '"' : '';

				$id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $item->ID, $item, $args );
				$id = $id ? ' id="' . esc_attr( $id ) . '"' : '';

				$output .= '<li role="menuitem" ' . $id . ' ' . $class_names . ' ' . $column_width . $custom_class_data . $style . ' >';
				$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
			} // End if().
		}

		/**
		 * End Element.
		 *
		 * @see Walker::end_el()
		 *
		 * @param string $output Passed by reference. Used to append additional content.
		 * @param object $item Page data object. Not used.
		 * @param int    $depth Depth of page. Not Used.
		 * @param  array  $args Not used.
		 */
		public function end_el( &$output, $item, $depth = 0, $args = array() ) {
			$output .= '</li>';

			if ( null === $item->menu_item_parent ) {
				$item->menu_item_parent = '0';
			}

			if ( '0' === $item->menu_item_parent ) {
				$this->no_of_top_level_items_displayed++;
			}

			if ( 'v7' === Avada()->settings->get( 'header_layout' ) && ( '' !== Avada()->settings->get( 'logo', 'url' ) || '' !== Avada()->settings->get( 'logo_retina', 'url' ) ) && 'Top' === Avada()->settings->get( 'header_position' ) && $this->middle_logo_menu_break_point == $this->no_of_top_level_items_displayed && '0' === $item->menu_item_parent ) {
				ob_start();
				get_template_part( 'templates/logo' );
				$output .= ob_get_clean();
			}
		}

		/**
		 * Traverse elements to create list from elements.
		 *
		 * Display one element if the element doesn't have any children otherwise,
		 * display the element and its children. Will only traverse up to the max
		 * depth and no ignore elements under that depth.
		 *
		 * This method shouldn't be called directly, use the walk() method instead.
		 *
		 * @see Walker::start_el()
		 * @since 2.5.0
		 *
		 * @param object $element Data object.
		 * @param array  $children_elements List of elements to continue traversing.
		 * @param int    $max_depth Max depth to traverse.
		 * @param int    $depth Depth of current element.
		 * @param array  $args The arguments.
		 * @param string $output Passed by reference. Used to append additional content.
		 * @return null Null on failure with no changes to parameters.
		 */
		public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
			if ( ! $element ) {
				return;
			}

			$id_field = $this->db_fields['id'];

			// Display this element.
			if ( is_object( $args[0] ) ) {
				$args[0]->has_children = ! empty( $children_elements[ $element->$id_field ] );
			}

			parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
		}

		/**
		 * Menu Fallback
		 * =============
		 * If this function is assigned to the wp_nav_menu's fallback_cb variable
		 * and a manu has not been assigned to the theme location in the WordPress
		 * menu manager the function with display nothing to a non-logged in user,
		 * and will add a link to the WordPress menu manager if logged in as an admin.
		 *
		 * @param array $args passed from the wp_nav_menu function.
		 */
		public static function fallback( $args ) {
			if ( current_user_can( 'manage_options' ) ) {
				return null;
			}
		}
	}
} // End if().

/* Omit closing PHP tag to avoid "Headers already sent" issues. */