PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/home/cloudtechtree.com/www/wp-content/plugins/Ultimate_VC_Addons/modules/
Upload File :
Current File : //home/cloudtechtree.com/www/wp-content/plugins/Ultimate_VC_Addons/modules/ultimate_parallax.php
<?php
/**
 * Add-on Name: Ultimate Parallax Background for WPBakery Page Builder
 * Add-on URI: http://dev.brainstormforce.com
 *
 *  @package UAVC Ultimate Parallax
 */

$ultimate_row = get_option( 'ultimate_row' );
if ( 'enable' != $ultimate_row ) {
	return false;
}
if ( ! class_exists( 'VC_Ultimate_Parallax' ) ) {
	/**
	 * Function that initializes  Ultimate Parallax.
	 *
	 * @class VC_Ultimate_Parallax
	 */
	class VC_Ultimate_Parallax {
		/**
		 * Constructor function that constructs default values for the Ultimate Parallax.
		 *
		 * @method __construct
		 */
		public function __construct() {
			add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
			add_action( 'admin_init', array( $this, 'parallax_init' ) );
			$ultimate_row = get_option( 'ultimate_row' );
			if ( 'enable' == $ultimate_row ) {
				if ( defined( 'WPB_VC_VERSION' ) && version_compare( WPB_VC_VERSION, '4.4', '>=' ) ) {
					add_filter( 'vc_shortcode_output', array( $this, 'execute_ultimate_vc_shortcode' ), 10, 3 );
				}
			}
		}//end __construct()

		/**
		 * Execute shortcode.
		 *
		 * @since ----
		 * @param mixed $output output.
		 * @param mixed $obj object.
		 * @param mixed $attr attributes.
		 * @access public
		 */
		public function execute_ultimate_vc_shortcode( $output, $obj, $attr ) {
			if ( $obj->settings( 'base' ) == 'vc_row' ) {
				$output .= $this->parallax_shortcode( $attr, '' );
			}
			return $output;
		}
		/**
		 * Execute Parallax shortcode.
		 *
		 * @since ----
		 * @param mixed $atts atts variable.
		 * @param mixed $content contents.
		 * @access public
		 */
		public static function parallax_shortcode( $atts, $content ) {
			$bsf_img_repeat = '';
			$overlay        = '';

			$seperator_html        = '';
			$seperator_bottom_html = '';
			$seperator_top_html    = '';
			$seperator_css         = '';

			$ult_parallax_settings = shortcode_atts(
				array(
					'bg_type'                        => '',
					'bg_image'                       => '',
					'bg_image_new'                   => '',
					'bg_image_repeat'                => '',
					'bg_image_size'                  => '',
					'parallax_style'                 => '',
					'parallax_sense'                 => '30',
					'video_opts'                     => '',
					'bg_image_posiiton'              => '',
					'video_url'                      => '',
					'video_url_2'                    => '',
					'video_poster'                   => '',
					'u_video_url'                    => '',
					'bg_cstm_size'                   => '',
					'bg_override'                    => '0',
					'bg_img_attach'                  => '',
					'u_start_time'                   => '',
					'u_stop_time'                    => '',
					'layer_image'                    => '',
					'bg_grad'                        => '',
					'bg_color_value'                 => '',
					'bg_fade'                        => '',
					'css'                            => '',
					'viewport_vdo'                   => '',
					'enable_controls'                => '',
					'controls_color'                 => '',
					'animation_direction'            => 'left-animation',
					'animation_type'                 => 'false',
					'horizontal_animation'           => '',
					'vertical_animation'             => '',
					'animation_speed'                => '',
					'animation_repeat'               => 'repeat',
					'animated_bg_color'              => '',
					'fadeout_row'                    => '',
					'fadeout_start_effect'           => '30',
					'parallax_content'               => '',
					'parallax_content_sense'         => '30',
					'disable_on_mobile'              => '',
					'disable_on_mobile_img_parallax' => 'off',
					'enable_overlay'                 => '',
					'overlay_color'                  => '',
					'overlay_pattern'                => '',
					'overlay_pattern_opacity'        => '80',
					'overlay_pattern_size'           => '',
					'overlay_pattern_attachment'     => 'scroll',
					'multi_color_overlay'            => '',
					'multi_color_overlay_opacity'    => '60',
					'seperator_enable'               => '',
					'seperator_type'                 => 'none_seperator',
					'seperator_position'             => 'top_seperator',
					'seperator_shape_size'           => '40',
					'seperator_shape_background'     => '#fff',
					'seperator_shape_border'         => 'none',
					'seperator_shape_border_color'   => '',
					'seperator_shape_border_width'   => '1',
					'seperator_svg_height'           => '60',
					'icon_type'                      => 'no_icon',
					'icon'                           => '',
					'icon_color'                     => '',
					'icon_style'                     => 'none',
					'icon_color_bg'                  => '',
					'icon_border_style'              => '',
					'icon_color_border'              => '#333333',
					'icon_border_size'               => '1',
					'icon_border_radius'             => '500',
					'icon_border_spacing'            => '50',
					'icon_img'                       => '',
					'img_width'                      => '48',
					'icon_size'                      => '32',
					'ult_hide_row'                   => '',
					'ult_hide_row_large_screen'      => '',
					'ult_hide_row_desktop'           => '',
					'ult_hide_row_tablet'            => '',
					'ult_hide_row_tablet_small'      => '',
					'ult_hide_row_mobile'            => '',
					'ult_hide_row_mobile_large'      => '',
					'video_fixer'                    => 'true',
				),
				$atts
			);

			if ( '' === $ult_parallax_settings['bg_type'] ) {
				$ult_parallax_settings['bg_type'] = 'no_bg';
			}
			if ( '' === $ult_parallax_settings['parallax_style'] ) {
				$ult_parallax_settings['parallax_style'] = 'vcpb-default';
			}
			if ( '' === $ult_parallax_settings['bg_image_repeat'] ) {
				$ult_parallax_settings['bg_image_repeat'] = 'repeat';
			}
			if ( '' === $ult_parallax_settings['bg_image_size'] ) {
				$ult_parallax_settings['bg_image_size'] = 'cover';
			}
			if ( '' === $ult_parallax_settings['bg_img_attach'] ) {
				$ult_parallax_settings['bg_img_attach'] = 'scroll';
			}

			$bsf_dev_mode = bsf_get_option( 'dev_mode' );
			if ( 'enable' === $bsf_dev_mode ) {
				$js_path  = UAVC_URL . 'assets/js/';
				$css_path = UAVC_URL . 'assets/css/';
				$ext      = '';
			} else {
				$js_path  = UAVC_URL . 'assets/min-js/';
				$css_path = UAVC_URL . 'assets/min-css/';
				$ext      = '.min';
			}

			/* enqueue scripts */
			if ( ( 'enable' == get_option( 'ultimate_row' ) && '' !== $ult_parallax_settings['bg_type'] ) || '' != $ult_parallax_settings['parallax_content'] || '' != $ult_parallax_settings['fadeout_row'] ) {

				$ultimate_js = get_option( 'ultimate_js' );

				if ( 'enable' != $ultimate_js ) :
					if ( 'no_bg' == $ult_parallax_settings['bg_type'] && ( '' != $ult_parallax_settings['parallax_content'] || '' != $ult_parallax_settings['fadeout_row'] ) ) { // @codingStandardsIgnoreLine.
					} elseif ( 'no_bg' != $ult_parallax_settings['bg_type'] && ( '' != $ult_parallax_settings['parallax_content'] || '' != $ult_parallax_settings['fadeout_row'] ) ) {
						wp_enqueue_script( 'ultimate-appear' );
						wp_enqueue_script( 'ultimate-row-bg', $js_path . 'ultimate_bg' . $ext . '.js', null, ULTIMATE_VERSION, false );
						wp_enqueue_script( 'ultimate-custom' );
					} elseif ( 'no_bg' != $ult_parallax_settings['bg_type'] && ( '' == $ult_parallax_settings['parallax_content'] || '' == $ult_parallax_settings['fadeout_row'] ) ) {
						wp_enqueue_script( 'ultimate-appear' );
						wp_enqueue_script( 'ultimate-row-bg', $js_path . 'ultimate_bg' . $ext . '.js', null, ULTIMATE_VERSION, false );
						wp_enqueue_script( 'ultimate-custom' );
					}
				endif;

				$html                   = '';
				$autoplay               = '';
				$muted                  = '';
				$loop                   = '';
				$pos_suffix             = '';
				$bg_img                 = '';
				$bg_img_id              = '';
				$icon_inline            = '';
				$commom_data_attributes = '';
				$vc_version             = '';

				$ultimate_custom_vc_row = get_option( 'ultimate_custom_vc_row' );
				$ultimate_theme_support = get_option( 'ultimate_theme_support' );

				if ( defined( 'WPB_VC_VERSION' ) ) {
					$vc_version = WPB_VC_VERSION;
				}

				$is_vc_4_4 = ( version_compare( $vc_version, '4.4', '<' ) ) ? true : false;

				$commom_data_attributes                        .= ' data-custom-vc-row="' . esc_attr( $ultimate_custom_vc_row ) . '" ';
				$commom_data_attributes                        .= ' data-vc="' . esc_attr( $vc_version ) . '" ';
				$commom_data_attributes                        .= ' data-is_old_vc="' . esc_attr( $is_vc_4_4 ) . '" ';
				$commom_data_attributes                        .= ' data-theme-support="' . esc_attr( $ultimate_theme_support ) . '" ';
					$ult_parallax_settings['disable_on_mobile'] = 'true';

				if ( 'off' == $ult_parallax_settings['disable_on_mobile_img_parallax'] || '' == $ult_parallax_settings['disable_on_mobile_img_parallax'] ) {
					$ult_parallax_settings['disable_on_mobile_img_parallax'] = 'true';
				} else {
					$ult_parallax_settings['disable_on_mobile_img_parallax'] = 'false';
				}
				// for overlay.
				if ( 'enable_overlay_value' == $ult_parallax_settings['enable_overlay'] ) {
					if ( 'transperant' != $ult_parallax_settings['overlay_pattern'] && '' != $ult_parallax_settings['overlay_pattern'] ) {
						$pattern_url = UAVC_URL . 'assets/images/patterns/' . $ult_parallax_settings['overlay_pattern'];
					} else {
						$pattern_url = '';
					}
					if ( preg_match( '/^#[a-f0-9]{6}$/i', $ult_parallax_settings['overlay_color'] ) ) { // hex color is valid.
						$ult_parallax_settings['overlay_color'] = hex2rgbUltParallax( $ult_parallax_settings['overlay_color'], $opacity = 0.2 );
					}

					if ( strpos( $ult_parallax_settings['overlay_pattern_opacity'], '.' ) === false ) {
						$ult_parallax_settings['overlay_pattern_opacity'] = $ult_parallax_settings['overlay_pattern_opacity'] / 100;
					}

					$overlay = ' data-overlay="true" data-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-overlay-pattern="' . esc_attr( $pattern_url ) . '" data-overlay-pattern-opacity="' . esc_attr( $ult_parallax_settings['overlay_pattern_opacity'] ) . '" data-overlay-pattern-size="' . esc_attr( $ult_parallax_settings['overlay_pattern_size'] ) . '" data-overlay-pattern-attachment="' . esc_attr( $ult_parallax_settings['overlay_pattern_attachment'] ) . '" ';

					if ( 'uvc-multi-color-bg' == $ult_parallax_settings['multi_color_overlay'] ) {
						$ult_parallax_settings['multi_color_overlay_opacity'] = $ult_parallax_settings['multi_color_overlay_opacity'] / 100;
						$overlay .= ' data-multi-color-overlay="' . esc_attr( $ult_parallax_settings['multi_color_overlay'] ) . '" data-multi-color-overlay-opacity="' . esc_attr( $ult_parallax_settings['multi_color_overlay_opacity'] ) . '" ';
					}
				} else {
					$overlay = ' data-overlay="false" data-overlay-color="" data-overlay-pattern="" data-overlay-pattern-opacity="" data-overlay-pattern-size="" ';
				}

				// for seperator.
				if ( 'seperator_enable_value' == $ult_parallax_settings['seperator_enable'] ) {
					$seperator_bottom_html  = ' data-seperator="true" ';
					$seperator_bottom_html .= ' data-seperator-type="' . esc_attr( $ult_parallax_settings['seperator_type'] ) . '" ';
					$seperator_bottom_html .= ' data-seperator-shape-size="' . esc_attr( $ult_parallax_settings['seperator_shape_size'] ) . '" ';
					$seperator_bottom_html .= ' data-seperator-svg-height="' . esc_attr( $ult_parallax_settings['seperator_svg_height'] ) . '" ';
					$seperator_bottom_html .= ' data-seperator-full-width="true"';
					$seperator_bottom_html .= ' data-seperator-position="' . esc_attr( $ult_parallax_settings['seperator_position'] ) . '" ';

					if ( '' != $ult_parallax_settings['seperator_shape_background'] ) {
						if ( 'multi_triangle_seperator' == $ult_parallax_settings['seperator_type'] ) {
							preg_match( '/\(([^)]+)\)/', $ult_parallax_settings['seperator_shape_background'], $output_temp );
							if ( isset( $output_temp[1] ) ) {
								$rgba = explode( ',', $output_temp[1] );
								$ult_parallax_settings['seperator_shape_background'] = rgbaToHexUltimate( $rgba[0], $rgba[1], $rgba[2] );
							}
						}
						$seperator_bottom_html .= ' data-seperator-background-color="' . esc_attr( $ult_parallax_settings['seperator_shape_background'] ) . '" ';
					}
					if ( 'none' != $ult_parallax_settings['seperator_shape_border'] ) {
						$seperator_bottom_html .= ' data-seperator-border="' . esc_attr( $ult_parallax_settings['seperator_shape_border'] ) . '" ';
						$bwidth                 = ( '' == $ult_parallax_settings['seperator_shape_border_width'] ) ? '1' : $ult_parallax_settings['seperator_shape_border_width'];
						$seperator_bottom_html .= ' data-seperator-border-width="' . esc_attr( $bwidth ) . '" ';
						$seperator_bottom_html .= ' data-seperator-border-color="' . esc_attr( $ult_parallax_settings['seperator_shape_border_color'] ) . '" ';
					}

					if ( 'no_icon' != $ult_parallax_settings['icon_type'] ) {
						$icon_animation = '';
						$alignment      = 'center';
						$icon_inline    = do_shortcode( '[just_icon icon_align="' . esc_attr( $alignment ) . '" icon_type="' . esc_attr( $ult_parallax_settings['icon_type'] ) . '" icon="' . esc_attr( $ult_parallax_settings['icon'] ) . '" icon_img="' . esc_attr( $ult_parallax_settings['icon_img'] ) . '" img_width="' . esc_attr( $ult_parallax_settings['img_width'] ) . '" icon_size="' . esc_attr( $ult_parallax_settings['icon_size'] ) . '" icon_color="' . esc_attr( $ult_parallax_settings['icon_color'] ) . '" icon_style="' . esc_attr( $ult_parallax_settings['icon_style'] ) . '" icon_color_bg="' . esc_attr( $ult_parallax_settings['icon_color_bg'] ) . '" icon_color_border="' . esc_attr( $ult_parallax_settings['icon_color_border'] ) . '"  icon_border_style="' . esc_attr( $ult_parallax_settings['icon_border_style'] ) . '" icon_border_size="' . esc_attr( $ult_parallax_settings['icon_border_size'] ) . '" icon_border_radius="' . esc_attr( $ult_parallax_settings['icon_border_radius'] ) . '" icon_border_spacing="' . esc_attr( $ult_parallax_settings['icon_border_spacing'] ) . '" icon_animation="' . esc_attr( $icon_animation ) . '"]' );
					}
					$seperator_bottom_html .= ' data-icon="' . htmlentities( $icon_inline ) . '" '; // @codingStandardsIgnoreLine.
				}

				$seperator_html = $seperator_top_html . ' ' . $seperator_bottom_html;

				// for hide row.
				$device_message    = '';
				$ult_hide_row_data = '';
				if ( 'ult_hide_row_value' == $ult_parallax_settings['ult_hide_row'] ) {
					if ( 'large_screen' == $ult_parallax_settings['ult_hide_row_large_screen'] ) {
						$ult_hide_row_data .= ' uvc_hidden-lg ';
					}
					if ( 'desktop' == $ult_parallax_settings['ult_hide_row_desktop'] ) {
						$ult_hide_row_data .= ' uvc_hidden-ml ';
					}
					if ( 'tablet' == $ult_parallax_settings['ult_hide_row_tablet'] ) {
						$ult_hide_row_data .= ' uvc_hidden-md ';
					}
					if ( 'xs_tablet' == $ult_parallax_settings['ult_hide_row_tablet_small'] ) {
						$ult_hide_row_data .= ' uvc_hidden-sm ';
					}
					if ( 'mobile' == $ult_parallax_settings['ult_hide_row_mobile'] ) {
						$ult_hide_row_data .= ' uvc_hidden-xs ';
					}
					if ( 'xl_mobile' == $ult_parallax_settings['ult_hide_row_mobile_large'] ) {
						$ult_hide_row_data .= ' uvc_hidden-xsl ';
					}

					if ( '' != $ult_hide_row_data ) {
						$ult_hide_row_data = ' data-hide-row="' . esc_attr( $ult_hide_row_data ) . '" ';
					}
				}

				// RTL.
				$rtl = 'false';
				if ( is_rtl() ) {
					$rtl = 'true';
				}
				if ( 'false' === $rtl || false === $rtl ) {
					$ultimate_rtl_support = get_option( 'ultimate_rtl_support' );
					if ( 'enable' == $ultimate_rtl_support ) {
						$rtl = 'true';
					}
				}

				$output = '<!-- Row Backgrounds -->';
				if ( '' != $ult_parallax_settings['bg_image_new'] ) {
					$bg_img_id = $ult_parallax_settings['bg_image_new'];
				} elseif ( '' != $ult_parallax_settings['bg_image'] ) {
					$bg_img_id = $ult_parallax_settings['bg_image'];
				} else {
					if ( '' !== $ult_parallax_settings['css'] ) {
						$arr = explode( '?id=', $ult_parallax_settings['css'] );
						if ( isset( $arr[1] ) ) {
							$arr       = explode( ')', $arr[1] );
							$bg_img_id = $arr[0];
						}
					}
				}
				if ( '' != $ult_parallax_settings['bg_image_posiiton'] ) {
					if ( strpos( $ult_parallax_settings['bg_image_posiiton'], 'px' ) ) {
						$pos_suffix = 'px';
					} elseif ( strpos( $ult_parallax_settings['bg_image_posiiton'], 'em' ) ) {
						$pos_suffix = 'em';
					} else {
						$pos_suffix = '%';
					}
				}
				if ( 'no_bg' == $ult_parallax_settings['bg_type'] ) { // @codingStandardsIgnoreLine.
				} elseif ( 'image' == $ult_parallax_settings['bg_type'] ) {
					if ( 'cstm' == $ult_parallax_settings['bg_image_size'] ) {
						if ( '' != $ult_parallax_settings['bg_cstm_size'] ) {
							$ult_parallax_settings['bg_image_size'] = $ult_parallax_settings['bg_cstm_size'];
						}
					}
					if ( 'vcpb-fs-jquery' == $ult_parallax_settings['parallax_style'] || 'vcpb-mlvp-jquery' == $ult_parallax_settings['parallax_style'] ) {
						if ( 'vcpb-fs-jquery' == $ult_parallax_settings['parallax_style'] ) {
							wp_enqueue_script( 'jquery.shake', $js_path . 'jparallax' . $ext . '.js', null, ULTIMATE_VERSION, false );
						}

						if ( 'vcpb-mlvp-jquery' == $ult_parallax_settings['parallax_style'] ) {
							wp_enqueue_script( 'jquery.vhparallax', $js_path . 'vhparallax' . $ext . '.js', null, ULTIMATE_VERSION, false );
						}
						$imgs                                 = explode( ',', $ult_parallax_settings['layer_image'] );
						$ult_parallax_settings['layer_image'] = array();
						foreach ( $imgs as $value ) {
							$ult_parallax_settings['layer_image'][] = wp_get_attachment_image_src( $value, 'full' );
						}
						foreach ( $ult_parallax_settings['layer_image'] as $key => $value ) {
							$bg_imgs[] = $ult_parallax_settings['layer_image'][ $key ][0];
						}
						$html .= '<div class="upb_bg_img" data-ultimate-bg="' . esc_attr( implode( ',', $bg_imgs ) ) . '" data-ultimate-bg-style="' . esc_attr( $ult_parallax_settings['parallax_style'] ) . '" data-bg-img-repeat="' . esc_attr( $ult_parallax_settings['bg_image_repeat'] ) . '" data-bg-img-size="' . esc_attr( $ult_parallax_settings['bg_image_size'] ) . '" data-bg-img-position="' . esc_attr( $ult_parallax_settings['bg_image_posiiton'] ) . '" data-parallx_sense="' . esc_attr( $ult_parallax_settings['parallax_sense'] ) . '" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-bg_img_attach="' . esc_attr( $ult_parallax_settings['bg_img_attach'] ) . '" data-upb-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-upb-bg-animation="' . esc_attr( $ult_parallax_settings['bg_fade'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '" data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . '></div>';
					} else {
						if ( 'vcpb-vz-jquery' == $ult_parallax_settings['parallax_style'] || 'vcpb-hz-jquery' == $ult_parallax_settings['parallax_style'] ) {
							wp_enqueue_script( 'jquery.vhparallax', $js_path . 'vhparallax' . $ext . '.js', null, ULTIMATE_VERSION, false );
						}

						if ( $bg_img_id ) {
							if ( '' == $ult_parallax_settings['animation_direction'] && 'false' != $ult_parallax_settings['animation_type'] ) {
								if ( 'h' == $ult_parallax_settings['animation_type'] ) {
									$animation = $ult_parallax_settings['horizontal_animation'];
								} else {
									$animation = $ult_parallax_settings['vertical_animation'];
								}
							} else {
								if ( 'top-animation' == $ult_parallax_settings['animation_direction'] || 'bottom-animation' == $ult_parallax_settings['animation_direction'] ) {
									$ult_parallax_settings['animation_type'] = 'v';
								} else {
									$ult_parallax_settings['animation_type'] = 'h';
								}
									$animation = $ult_parallax_settings['animation_direction'];
								if ( '' == $animation ) {
									$animation = 'left-animation';
								}
							}

							$bg_img = apply_filters( 'ult_get_img_single', $bg_img_id, 'url' );
							$html  .= '<div class="upb_bg_img" data-ultimate-bg="url(' . esc_url( $bg_img ) . ')" data-image-id="' . esc_attr( $bg_img_id ) . '" data-ultimate-bg-style="' . esc_attr( $ult_parallax_settings['parallax_style'] ) . '" data-bg-img-repeat="' . esc_attr( $ult_parallax_settings['bg_image_repeat'] ) . '" data-bg-img-size="' . esc_attr( $ult_parallax_settings['bg_image_size'] ) . '" data-bg-img-position="' . esc_attr( $ult_parallax_settings['bg_image_posiiton'] ) . '" data-parallx_sense="' . esc_attr( $ult_parallax_settings['parallax_sense'] ) . '" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-bg_img_attach="' . esc_attr( $ult_parallax_settings['bg_img_attach'] ) . '" data-upb-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-upb-bg-animation="' . esc_attr( $ult_parallax_settings['bg_fade'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-bg-animation="' . esc_attr( $animation ) . '" data-bg-animation-type="' . esc_attr( $ult_parallax_settings['animation_type'] ) . '" data-animation-repeat="' . esc_attr( $ult_parallax_settings['animation_repeat'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '" data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . '></div>';
						}
					}
				} elseif ( 'video' == $ult_parallax_settings['bg_type'] ) {
					$v_opts = explode( ',', $ult_parallax_settings['video_opts'] );
					if ( is_array( $v_opts ) ) {
						foreach ( $v_opts as $opt ) {
							if ( 'muted' == $opt ) {
								$muted .= $opt;
							}
							if ( 'autoplay' == $opt ) {
								$autoplay .= $opt;
							}
							if ( 'loop' == $opt ) {
								$loop .= $opt;
							}
						}
					}
					if ( 'viewport_play' == $ult_parallax_settings['viewport_vdo'] ) {
						$enable_viewport_vdo = 'true';
					} else {
						$enable_viewport_vdo = 'false';
					}

					$video_fixer_option = get_option( 'ultimate_video_fixer' );
					if ( $video_fixer_option ) {
						if ( 'enable' == $video_fixer_option ) {
							$ult_parallax_settings['video_fixer'] = 'false';
						}
					}

					$ult_parallax_settings['u_stop_time']  = ( '' != $ult_parallax_settings['u_stop_time'] ) ? $ult_parallax_settings['u_stop_time'] : 0;
					$ult_parallax_settings['u_start_time'] = ( '' != $ult_parallax_settings['u_stop_time'] ) ? $ult_parallax_settings['u_start_time'] : 0;
					$v_img                                 = apply_filters( 'ult_get_img_single', $ult_parallax_settings['video_poster'], 'url' );
					$html                                 .= '<div class="upb_content_video" data-controls-color="' . esc_attr( $ult_parallax_settings['controls_color'] ) . '" data-controls="' . esc_attr( $ult_parallax_settings['enable_controls'] ) . '" data-viewport-video="' . esc_attr( $enable_viewport_vdo ) . '" data-ultimate-video="' . esc_attr( $ult_parallax_settings['video_url'] ) . '" data-ultimate-video2="' . esc_attr( $ult_parallax_settings['video_url_2'] ) . '" data-ultimate-video-muted="' . esc_attr( $muted ) . '" data-ultimate-video-loop="' . esc_attr( $loop ) . '" data-ultimate-video-poster="' . esc_attr( $v_img ) . '" data-ultimate-video-autoplay="autoplay" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-upb-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-upb-bg-animation="' . esc_attr( $ult_parallax_settings['bg_fade'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '" data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . ' data-video_fixer="' . esc_attr( $ult_parallax_settings['video_fixer'] ) . '"></div>';

					if ( 'display_control' == $ult_parallax_settings['enable_controls'] ) {
						wp_enqueue_style( 'ultimate-vidcons', UAVC_URL . 'assets/fonts/vidcons.css', null, ULTIMATE_VERSION );
					}
				} elseif ( 'u_iframe' == $ult_parallax_settings['bg_type'] ) {
					wp_enqueue_script( 'jquery.ytplayer', $js_path . 'mb-YTPlayer' . $ext . '.js', null, ULTIMATE_VERSION, false );
					$v_opts = explode( ',', $ult_parallax_settings['video_opts'] );
					$v_img  = apply_filters( 'ult_get_img_single', $ult_parallax_settings['video_poster'], 'url' );
					if ( is_array( $v_opts ) ) {
						foreach ( $v_opts as $opt ) {
							if ( 'muted' == $opt ) {
								$muted .= $opt;
							}
							if ( 'autoplay' == $opt ) {
								$autoplay .= $opt;
							}
							if ( 'loop' == $opt ) {
								$loop .= $opt;
							}
						}
					}
					if ( 'viewport_play' === $ult_parallax_settings['viewport_vdo'] ) {
						$enable_viewport_vdo = 'true';
					} else {
						$enable_viewport_vdo = 'false';
					}

					$video_fixer_option = get_option( 'ultimate_video_fixer' );
					if ( $video_fixer_option ) {
						if ( 'enable' == $video_fixer_option ) {
							$ult_parallax_settings['video_fixer'] = 'false';
						}
					}

					$html .= '<div class="upb_content_iframe" data-controls="' . esc_attr( $ult_parallax_settings['enable_controls'] ) . '" data-viewport-video="' . esc_attr( $enable_viewport_vdo ) . '" data-ultimate-video="' . esc_attr( $ult_parallax_settings['u_video_url'] ) . '" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-start-time="' . esc_attr( $ult_parallax_settings['u_start_time'] ) . '" data-stop-time="' . esc_attr( $ult_parallax_settings['u_stop_time'] ) . '" data-ultimate-video-muted="' . esc_attr( $muted ) . '" data-ultimate-video-loop="' . esc_attr( $loop ) . '" data-ultimate-video-poster="' . esc_attr( $v_img ) . '" data-upb-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-upb-bg-animation="' . esc_attr( $ult_parallax_settings['bg_fade'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '"  data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . ' data-video_fixer="' . esc_attr( $ult_parallax_settings['video_fixer'] ) . '"></div>';
				} elseif ( 'grad' == $ult_parallax_settings['bg_type'] ) {
					$html .= '<div class="upb_grad" data-grad="' . esc_attr( $ult_parallax_settings['bg_grad'] ) . '" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-upb-overlay-color="' . esc_attr( $ult_parallax_settings['overlay_color'] ) . '" data-upb-bg-animation="' . esc_attr( $ult_parallax_settings['bg_fade'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '" data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . '></div>';
				} elseif ( 'bg_color' == $ult_parallax_settings['bg_type'] ) {
					$html .= '<div class="upb_color" data-bg-override="' . esc_attr( $ult_parallax_settings['bg_override'] ) . '" data-bg-color="' . esc_attr( $ult_parallax_settings['bg_color_value'] ) . '" data-fadeout="' . esc_attr( $ult_parallax_settings['fadeout_row'] ) . '" data-fadeout-percentage="' . esc_attr( $ult_parallax_settings['fadeout_start_effect'] ) . '" data-parallax-content="' . esc_attr( $ult_parallax_settings['parallax_content'] ) . '" data-parallax-content-sense="' . esc_attr( $ult_parallax_settings['parallax_content_sense'] ) . '" data-row-effect-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile'] ) . '" data-img-parallax-mobile-disable="' . esc_attr( $ult_parallax_settings['disable_on_mobile_img_parallax'] ) . '" data-rtl="' . esc_attr( $rtl ) . '" ' . $commom_data_attributes . ' ' . $overlay . ' ' . $seperator_html . ' ' . $ult_hide_row_data . '></div>';
				}
				$output .= $html;
				if ( 'no_bg' == $ult_parallax_settings['bg_type'] ) {
					return '';
				} else {
					self::front_scripts();
					return $output;
				}
			}
		} /* end parallax_shortcode */
		/**
		 * Initialize the parallax.
		 *
		 * @since ----
		 * @access public
		 */
		public function parallax_init() {
			$group_name    = 'Background';
			$group_effects = 'Effect';
			if ( function_exists( 'vc_remove_param' ) ) {
				vc_remove_param( 'vc_row', 'bg_image_repeat' );
			}

			$pluginname = dirname( dirname( plugin_basename( __FILE__ ) ) );

			$patterns_path = realpath( dirname( plugin_dir_path( __FILE__ ) ) . '/assets/images/patterns' );
			$patterns_list = glob( $patterns_path . '/*.*' );
			$patterns      = array();

			foreach ( $patterns_list as $pattern ) {
				$patterns[ basename( $pattern ) ] = UAVC_URL . '/assets/images/patterns/' . basename( $pattern );
			}
			if ( function_exists( 'vc_add_param' ) ) {
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'admin_label' => true,
						'heading'     => __( 'Background Style', 'ultimate_vc' ),
						'param_name'  => 'bg_type',
						'value'       => array(
							__( 'Default', 'ultimate_vc' ) => '',
							__( 'Single Color', 'ultimate_vc' ) => 'bg_color',
							__( 'Gradient Color', 'ultimate_vc' ) => 'grad',
							__( 'Image / Parallax', 'ultimate_vc' ) => 'image',
							__( 'YouTube Video', 'ultimate_vc' ) => 'u_iframe',
							__( 'Hosted Video', 'ultimate_vc' ) => 'video',
						),
						'description' => __( 'Select the kind of background would you like to set for this row.', 'ultimate_vc' ) . ' ' . __( 'Not sure?', 'ultimate_vc' ) . ' ' . __( 'See Narrated', 'ultimate_vc' ) . " <a href='https://www.youtube.com/watch?v=Qxs8R-uaMWk&list=PL1kzJGWGPrW981u5caHy6Kc9I1bG1POOx' target='_blank' rel='noopener'>" . __( 'Video Tutorials', 'ultimate_vc' ) . '</a>',
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'gradient',
						'class'       => '',
						'heading'     => __( 'Gradient Type', 'ultimate_vc' ),
						'param_name'  => 'bg_grad',
						'description' => __( 'At least two color points should be selected.', 'ultimate_vc' ) . ' <a href="https://www.youtube.com/watch?v=yE1M4AKwS44" target="_blank" rel="noopener">' . __( 'Video Tutorial', 'ultimate_vc' ) . '</a>',
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'grad' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'colorpicker',
						'class'      => '',
						'heading'    => __( 'Background Color', 'ultimate_vc' ),
						'param_name' => 'bg_color_value',
						'dependency' => array(
							'element' => 'bg_type',
							'value'   => array( 'bg_color' ),
						),
						'group'      => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Parallax Style', 'ultimate_vc' ),
						'param_name'  => 'parallax_style',
						'value'       => array(
							__( 'No Parallax', 'ultimate_vc' ) => '',
							__( 'Simple Background Image', 'ultimate_vc' ) => 'vcpb-default',
							__( 'Auto Moving Background', 'ultimate_vc' ) => 'vcpb-animated',
							__( 'Vertical Parallax On Scroll', 'ultimate_vc' ) => 'vcpb-vz-jquery',
							__( 'Horizontal Parallax On Scroll', 'ultimate_vc' ) => 'vcpb-hz-jquery',
							__( 'Interactive Parallax On Mouse Hover', 'ultimate_vc' ) => 'vcpb-fs-jquery',
							__( 'Multilayer Vertical Parallax', 'ultimate_vc' ) => 'vcpb-mlvp-jquery',
						),
						'description' => __( 'Select the kind of style you like for the background.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'image' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'ult_img_single',
						'class'       => '',
						'heading'     => __( 'Background Image', 'ultimate_vc' ),
						'param_name'  => 'bg_image_new',
						'value'       => '',
						'description' => __( 'Upload or select background image from media gallery.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-default', 'vcpb-animated', 'vcpb-vz-jquery', 'vcpb-hz-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'attach_images',
						'class'       => '',
						'heading'     => __( 'Layer Images', 'ultimate_vc' ),
						'param_name'  => 'layer_image',
						'value'       => '',
						'description' => __( 'Upload or select background images from media gallery.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-fs-jquery', 'vcpb-mlvp-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Background Image Repeat', 'ultimate_vc' ),
						'param_name'  => 'bg_image_repeat',
						'value'       => array(
							__( 'Repeat', 'ultimate_vc' ) => '',
							__( 'Repeat X', 'ultimate_vc' ) => 'repeat-x',
							__( 'Repeat Y', 'ultimate_vc' ) => 'repeat-y',
							__( 'No Repeat', 'ultimate_vc' ) => 'no-repeat',
						),
						'description' => __( 'Options to control repeatation of the background image.', 'ultimate_vc' ) . ' ' . __( 'Learn on', 'ultimate_vc' ) . " <a href='http://www.w3schools.com/cssref/playit.asp?filename=playcss_background-repeat' target='_blank' rel='noopener'>" . __( 'W3School', 'ultimate_vc' ) . '</a>',
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-default', 'vcpb-fix', 'vcpb-vz-jquery', 'vcpb-hz-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Background Image Size', 'ultimate_vc' ),
						'param_name'  => 'bg_image_size',
						'value'       => array(
							__( 'Cover - Image to be as large as possible', 'ultimate_vc' ) => '',
							__( 'Contain - Image will try to fit inside the container area', 'ultimate_vc' ) => 'contain',
							__( 'Initial', 'ultimate_vc' ) => 'initial',
						),
						'description' => __( 'Options to control repeatation of the background image.', 'ultimate_vc' ) . ' ' . __( 'Learn on', 'ultimate_vc' ) . " <a href='http://www.w3schools.com/cssref/playit.asp?filename=playcss_background-size&preval=50%25' target='_blank' rel='noopener'>" . __( 'W3School', 'ultimate_vc' ) . '</a>',
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-default', 'vcpb-animated', 'vcpb-fix', 'vcpb-vz-jquery', 'vcpb-hz-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'textfield',
						'class'       => '',
						'heading'     => __( 'Custom Background Image Size', 'ultimate_vc' ),
						'param_name'  => 'bg_cstm_size',
						'value'       => '',
						'description' => __( 'You can use initial, inherit or any number with px, em, %, etc. Example- 100px 100px', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_image_size',
							'value'   => array( 'cstm' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Scroll Effect', 'ultimate_vc' ),
						'param_name'  => 'bg_img_attach',
						'value'       => array(
							__( 'Move with the content', 'ultimate_vc' ) => '',
							__( 'Fixed at its position', 'ultimate_vc' ) => 'fixed',
						),
						'description' => __( 'Options to set whether a background image is fixed or scroll with the rest of the page.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-default', 'vcpb-animated', 'vcpb-hz-jquery', 'vcpb-vz-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Parallax Speed', 'ultimate_vc' ),
						'param_name'  => 'parallax_sense',
						'value'       => '',
						'max'         => '100',
						'description' => __( 'Control speed of parallax. Enter value between 1 to 100 (Default 30)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-vz-jquery', 'vcpb-animated', 'vcpb-hz-jquery', 'vcpb-vs-jquery', 'vcpb-hs-jquery', 'vcpb-fs-jquery', 'vcpb-mlvp-jquery' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'textfield',
						'class'       => '',
						'heading'     => __( 'Background Image Posiiton', 'ultimate_vc' ),
						'param_name'  => 'bg_image_posiiton',
						'value'       => '',
						'description' => __( 'You can use any number with px, em, %, etc. Example- 100px 100px.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-default', 'vcpb-fix' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'dropdown',
						'class'      => '',
						'heading'    => __( 'Animation Direction', 'ultimate_vc' ),
						'param_name' => 'animation_direction',
						'value'      => array(
							__( 'Left to Right', 'ultimate_vc' ) => '',
							__( 'Right to Left', 'ultimate_vc' ) => 'right-animation',
							__( 'Top to Bottom', 'ultimate_vc' ) => 'top-animation',
							__( 'Bottom to Top', 'ultimate_vc' ) => 'bottom-animation',

						),
						'dependency' => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-animated' ),
						),
						'group'      => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'dropdown',
						'class'      => '',
						'heading'    => __( 'Background Repeat', 'ultimate_vc' ),
						'param_name' => 'animation_repeat',
						'value'      => array(
							__( 'Repeat', 'ultimate_vc' ) => '',
							__( 'Repeat X', 'ultimate_vc' ) => 'repeat-x',
							__( 'Repeat Y', 'ultimate_vc' ) => 'repeat-y',
						),
						'dependency' => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-animated' ),
						),
						'group'      => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'textfield',
						'class'      => '',
						'heading'    => __( 'Link to the video in MP4 Format', 'ultimate_vc' ),
						'param_name' => 'video_url',
						'value'      => '',
						'dependency' => array(
							'element' => 'bg_type',
							'value'   => array( 'video' ),
						),
						'group'      => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'textfield',
						'class'       => '',
						'heading'     => __( 'Link to the video in WebM / Ogg Format', 'ultimate_vc' ),
						'param_name'  => 'video_url_2',
						'value'       => '',
						'description' => __( 'IE, Chrome & Safari', 'ultimate_vc' ) . " <a href='http://www.w3schools.com/html/html5_video.asp' target='_blank' rel='noopener'>" . __( 'support', 'ultimate_vc' ) . '</a> ' . __( 'MP4 format, while Firefox & Opera prefer WebM / Ogg formats.', 'ultimate_vc' ) . ' ' . __( 'You can upload the video through', 'ultimate_vc' ) . " <a href='" . home_url() . "/wp-admin/media-new.php' target='_blank' rel='noopener'>" . __( 'WordPress Media Library', 'ultimate_vc' ) . '</a>.',
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'video' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'textfield',
						'class'       => '',
						'heading'     => __( 'Enter YouTube URL of the Video', 'ultimate_vc' ),
						'param_name'  => 'u_video_url',
						'value'       => '',
						'description' => __( 'Enter YouTube url. Example - YouTube (https://www.youtube.com/watch?v=tSqJIIcxKZM) ', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'u_iframe' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'checkbox',
						'class'       => '',
						'heading'     => __( 'Extra Options', 'ultimate_vc' ),
						'param_name'  => 'video_opts',
						'value'       => array(
							__( 'Loop', 'ultimate_vc' )  => 'loop',
							__( 'Muted', 'ultimate_vc' ) => 'muted',
						),
						'description' => __( 'Muted autoplay is always allowed in chrome.', 'upb_parallax' ) . " <a href='https://developers.google.com/web/updates/2017/09/autoplay-policy-changes' target='_blank' rel='noopener'>" . __( 'Refer this link', 'upb_parallax' ) . '</a>.',
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'video', 'u_iframe' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'ult_img_single',
						'class'       => '',
						'heading'     => __( 'Placeholder Image', 'ultimate_vc' ),
						'param_name'  => 'video_poster',
						'value'       => '',
						'description' => __( 'Placeholder image is displayed in case background videos are restricted (Ex - on iOS devices).', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'video', 'u_iframe' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'number',
						'class'      => '',
						'heading'    => __( 'Start Time', 'ultimate_vc' ),
						'param_name' => 'u_start_time',
						'value'      => '',
						'suffix'     => 'seconds',
						'dependency' => array(
							'element' => 'bg_type',
							'value'   => array( 'u_iframe' ),
						),
						'group'      => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Stop Time', 'ultimate_vc' ),
						'param_name'  => 'u_stop_time',
						'value'       => '',
						'suffix'      => 'seconds',
						'description' => __( 'You may start / stop the video at any point you would like.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'u_iframe' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'ult_switch',
						'class'       => '',
						'heading'     => __( 'Play video only when in viewport', 'ultimate_vc' ),
						'param_name'  => 'viewport_vdo',
						'value'       => '',
						'options'     => array(
							'viewport_play' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'description' => __( 'Video will be played only when user is on the particular screen position. Once user scroll away, the video will pause.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'video', 'u_iframe' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'ult_switch',
						'class'       => '',
						'heading'     => __( 'Display Controls', 'ultimate_vc' ),
						'param_name'  => 'enable_controls',
						'value'       => '',
						'options'     => array(
							'display_control' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'description' => __( 'Display play / pause controls for the video on bottom right position.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'video' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'class'       => '',
						'heading'     => __( 'Color of Controls Icon', 'ultimate_vc' ),
						'param_name'  => 'controls_color',
						'description' => __( 'Display play / pause controls for the video on bottom right position.', 'upb_parallax' ),
						'dependency'  => array(
							'element' => 'enable_controls',
							'value'   => array( 'display_control' ),
						),
						'group'       => $group_name,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Background Override (Read Description)', 'ultimate_vc' ),
						'param_name'  => 'bg_override',
						'value'       => array(
							__( 'Default Width', 'ultimate_vc' ) => '',
							__( "Apply 1st parent element's width", 'ultimate_vc' ) => '1',
							__( "Apply 2nd parent element's width", 'ultimate_vc' ) => '2',
							__( "Apply 3rd parent element's width", 'ultimate_vc' ) => '3',
							__( "Apply 4th parent element's width", 'ultimate_vc' ) => '4',
							__( "Apply 5th parent element's width", 'ultimate_vc' ) => '5',
							__( "Apply 6th parent element's width", 'ultimate_vc' ) => '6',
							__( "Apply 7th parent element's width", 'ultimate_vc' ) => '7',
							__( "Apply 8th parent element's width", 'ultimate_vc' ) => '8',
							__( "Apply 9th parent element's width", 'ultimate_vc' ) => '9',
							__( 'Full Width', 'ultimate_vc' ) => 'full',
							__( 'Maximum Full Width', 'ultimate_vc' ) => 'ex-full',
							__( 'Browser Full Dimension', 'ultimate_vc' ) => 'browser_size',
						),
						'description' => __( "By default, the background will be given to the WPBakery Page Builder row. However, in some cases depending on your theme's CSS - it may not fit well to the container you are wishing it would. In that case you will have to select the appropriate value here that gets you desired output..", 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'bg_type',
							'value'   => array( 'u_iframe', 'image', 'video', 'grad', 'bg_color', 'animated' ),
						),
						'group'       => $group_name,
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'       => 'ult_switch',
						'class'      => '',
						'heading'    => __( 'Activate on Mobile', 'ultimate_vc' ),
						'param_name' => 'disable_on_mobile_img_parallax',
						'value'      => '',
						'options'    => array(
							'disable_on_mobile_img_parallax_value' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'      => $group_name,
						'dependency' => array(
							'element' => 'parallax_style',
							'value'   => array( 'vcpb-animated', 'vcpb-vz-jquery', 'vcpb-hz-jquery', 'vcpb-fs-jquery', 'vcpb-mlvp-jquery' ),
						),
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'class'            => '',
						'heading'          => __( 'Easy Parallax', 'ultimate_vc' ),
						'param_name'       => 'parallax_content',
						'value'            => '',
						'options'          => array(
							'parallax_content_value' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'edit_field_class' => 'uvc-divider last-uvc-divider vc_column vc_col-sm-12',
						'description'      => __( 'If enabled, the elements inside row - will move slowly as user scrolls.', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'textfield',
						'class'       => '',
						'heading'     => __( 'Parallax Speed', 'ultimate_vc' ),
						'param_name'  => 'parallax_content_sense',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'Enter value between 0 to 100 (Default 30)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'parallax_content',
							'value'   => array( 'parallax_content_value' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'class'            => '',
						'heading'          => __( 'Fade Effect on Scroll', 'ultimate_vc' ),
						'param_name'       => 'fadeout_row',
						'value'            => '',
						'options'          => array(
							'fadeout_row_value' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'edit_field_class' => 'uvc-divider last-uvc-divider vc_column vc_col-sm-12',
						'description'      => __( 'If enabled, the the content inside row will fade out slowly as user scrolls down.', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Viewport Position', 'ultimate_vc' ),
						'param_name'  => 'fadeout_start_effect',
						'suffix'      => '%',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'The area of screen from top where fade out effect will take effect once the row is completely inside that area. (Default 30)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'fadeout_row',
							'value'   => array( 'fadeout_row_value' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => __( 'Enable Overlay', 'ultimate_vc' ),
						'param_name'       => 'enable_overlay',
						'value'            => '',
						'options'          => array(
							'enable_overlay_value' => array(
								'label' => '',
								'on'    => __( 'Yes', 'ultimate_vc' ),
								'off'   => __( 'No', 'ultimate_vc' ),
							),
						),
						'edit_field_class' => 'uvc-divider last-uvc-divider vc_column vc_col-sm-12',
						'group'            => $group_effects,
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'heading'     => __( 'Color', 'ultimate_vc' ),
						'param_name'  => 'overlay_color',
						'value'       => '',
						'group'       => $group_effects,
						'dependency'  => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
						'description' => __( 'Select RGBA values or opacity will be set to 20% by default.', 'ultimate_vc' ),
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'       => 'radio_image_box',
						'heading'    => __( 'Pattern', 'ultimate_vc' ),
						'param_name' => 'overlay_pattern',
						'value'      => '',
						'options'    => $patterns,
						'css'        => array(
							'width'             => '40px',
							'height'            => '35px',
							'background-repeat' => 'repeat',
							'background-size'   => 'cover',
						),
						'group'      => $group_effects,
						'dependency' => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'number',
						'heading'          => __( 'Pattern Opacity', 'ultimate_vc' ),
						'param_name'       => 'overlay_pattern_opacity',
						'value'            => '',
						'max'              => '100',
						'suffix'           => '%',
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
						'description'      => __( 'Enter value between 0 to 100 (0 is maximum transparency, while 100 is minimum & default is 80)', 'ultimate_vc' ),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'number',
						'heading'          => __( 'Pattern Size', 'ultimate_vc' ),
						'param_name'       => 'overlay_pattern_size',
						'value'            => '',
						'suffix'           => 'px',
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
						'description'      => __( 'This is optional; sets the size of the pattern image manually.', 'ultimate_vc' ),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'dropdown',
						'heading'          => __( 'Pattern Scroll Effect', 'ultimate_vc' ),
						'param_name'       => 'overlay_pattern_attachment',
						'value'            => array(
							__( 'Move with the Content', 'ultimate_vc' ) => '',
							__( 'Fixed at its position', 'ultimate_vc' ) => 'fixed',
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'checkbox',
						'heading'          => __( 'Fancy Multi Color Overlay', 'ultimate_vc' ),
						'param_name'       => 'multi_color_overlay',
						'value'            => array(
							__( 'Enable', 'ultimate_vc' ) => 'uvc-multi-color-bg',
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'enable_overlay',
							'value'   => array( 'enable_overlay_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4 clear',
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'number',
						'heading'          => __( 'Multi Color Overlay Opacity', 'ultimate_vc' ),
						'param_name'       => 'multi_color_overlay_opacity',
						'value'            => '',
						'suffix'           => '%',
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'multi_color_overlay',
							'value'   => array( 'uvc-multi-color-bg' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-8',
						'description'      => __( 'Default 60', 'ultimate_vc' ),
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => __( 'Separator ', 'ultimate_vc' ),
						'param_name'       => 'seperator_enable',
						'value'            => '',
						'options'          => array(
							'seperator_enable_value' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'edit_field_class' => 'uvc-divider last-uvc-divider vc_column vc_col-sm-12',
						'group'            => $group_effects,
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'dropdown',
						'heading'          => __( 'Type', 'ultimate_vc' ),
						'param_name'       => 'seperator_type',
						'value'            => array(
							__( 'None', 'ultimate_vc' )   => '',
							__( 'Triangle', 'ultimate_vc' ) => 'triangle_svg_seperator',
							__( 'Big Triangle', 'ultimate_vc' ) => 'xlarge_triangle_seperator',
							__( 'Big Triangle Left', 'ultimate_vc' ) => 'xlarge_triangle_left_seperator',
							__( 'Big Triangle Right', 'ultimate_vc' ) => 'xlarge_triangle_right_seperator',
							__( 'Half Circle', 'ultimate_vc' ) => 'circle_svg_seperator',
							__( 'Curve Center', 'ultimate_vc' ) => 'xlarge_circle_seperator',
							__( 'Curve Left', 'ultimate_vc' ) => 'curve_up_seperator',
							__( 'Curve Right', 'ultimate_vc' ) => 'curve_down_seperator',
							__( 'Tilt Left', 'ultimate_vc' ) => 'tilt_left_seperator',
							__( 'Tilt Right', 'ultimate_vc' ) => 'tilt_right_seperator',
							__( 'Round Split', 'ultimate_vc' ) => 'round_split_seperator',
							__( 'Waves', 'ultimate_vc' )  => 'waves_seperator',
							__( 'Clouds', 'ultimate_vc' ) => 'clouds_seperator',
							__( 'Multi Triangle', 'ultimate_vc' ) => 'multi_triangle_seperator',
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'seperator_enable',
							'value'   => array( 'seperator_enable_value' ),
						),
						'edit_field_class' => 'uvc-divider-content-first vc_column vc_col-sm-12',
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'dropdown',
						'heading'          => __( 'Position', 'ultimate_vc' ),
						'param_name'       => 'seperator_position',
						'value'            => array(
							__( 'Top', 'ultimate_vc' )    => '',
							__( 'Bottom', 'ultimate_vc' ) => 'bottom_seperator',
							__( 'Top & Bottom', 'ultimate_vc' ) => 'top_bottom_seperator',
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'seperator_enable',
							'value'   => array( 'seperator_enable_value' ),
						),
						'edit_field_class' => 'uvc-divider-content-first vc_column vc_col-sm-12',
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'heading'     => __( 'Size', 'ultimate_vc' ),
						'param_name'  => 'seperator_shape_size',
						'value'       => '',
						'suffix'      => 'px',
						'group'       => $group_effects,
						'dependency'  => array(
							'element' => 'seperator_type',
							'value'   => array( 'triangle_seperator', 'circle_seperator', 'round_split_seperator' ),
						),
						'description' => __( 'Default 40', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'heading'     => __( 'Height', 'ultimate_vc' ),
						'param_name'  => 'seperator_svg_height',
						'value'       => '',
						'suffix'      => 'px',
						'group'       => $group_effects,
						'dependency'  => array(
							'element' => 'seperator_type',
							'value'   => array( 'xlarge_triangle_seperator', 'curve_up_seperator', 'curve_down_seperator', 'waves_seperator', 'clouds_seperator', 'xlarge_circle_seperator', 'triangle_svg_seperator', 'circle_svg_seperator', 'xlarge_triangle_left_seperator', 'xlarge_triangle_right_seperator', 'tilt_left_seperator', 'tilt_right_seperator', 'multi_triangle_seperator' ),
						),
						'description' => __( 'Default 60', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'heading'     => __( 'Background', 'ultimate_vc' ),
						'param_name'  => 'seperator_shape_background',
						'value'       => '',
						'group'       => $group_effects,
						'dependency'  => array(
							'element' => 'seperator_type',
							'value'   => array( 'xlarge_triangle_seperator', 'triangle_seperator', 'circle_seperator', 'curve_up_seperator', 'curve_down_seperator', 'round_split_seperator', 'waves_seperator', 'clouds_seperator', 'xlarge_circle_seperator', 'triangle_svg_seperator', 'circle_svg_seperator', 'xlarge_triangle_left_seperator', 'xlarge_triangle_right_seperator', 'tilt_left_seperator', 'tilt_right_seperator', 'multi_triangle_seperator' ),
						),
						'description' => __( 'Mostly, this should be background color of your adjacent row section. (Default - White)', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'dropdown',
						'heading'    => __( 'Border', 'ultimate_vc' ),
						'param_name' => 'seperator_shape_border',
						'value'      => array(
							__( 'None', 'ultimate_vc' )   => '',
							__( 'Solid', 'ultimate_vc' )  => 'solid',
							__( 'Dotted', 'ultimate_vc' ) => 'dotted',
							__( 'Dashed', 'ultimate_vc' ) => 'dashed',
						),
						'group'      => $group_effects,
						'dependency' => array(
							'element' => 'seperator_type',
							'value'   => array( 'triangle_seperator', 'circle_seperator', 'round_split_seperator' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'       => 'colorpicker',
						'heading'    => __( 'Border Color', 'ultimate_vc' ),
						'param_name' => 'seperator_shape_border_color',
						'value'      => '',
						'group'      => $group_effects,
						'dependency' => array(
							'element' => 'seperator_type',
							'value'   => array( 'triangle_seperator', 'circle_seperator', 'round_split_seperator' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'             => 'number',
						'heading'          => __( 'Border Width', 'ultimate_vc' ),
						'param_name'       => 'seperator_shape_border_width',
						'value'            => '',
						'suffix'           => 'px',
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'seperator_type',
							'value'   => array( 'triangle_seperator', 'circle_seperator', 'round_split_seperator' ),
						),
						'edit_field_class' => 'uvc-divider-content-last vc_column vc_col-sm-12',
						'description'      => __( 'Default 1px', 'ultimate_vc' ),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Icon to display:', 'ultimate_vc' ),
						'param_name'  => 'icon_type',
						'value'       => array(
							__( 'None', 'ultimate_vc' ) => '',
							__( 'Font Icon Manager', 'ultimate_vc' ) => 'selector',
							__( 'Custom Image Icon', 'ultimate_vc' ) => 'custom',
						),
						'group'       => $group_effects,
						'description' => __( 'Use an existing font icon or upload a custom image.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'seperator_enable',
							'value'   => array( 'seperator_enable_value' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'icon_manager',
						'class'       => '',
						'heading'     => __( 'Select Icon ', 'ultimate_vc' ),
						'param_name'  => 'icon',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( "Click and select icon of your choice. If you can't find the one that suits for your purpose", 'ultimate_vc' ) . ', ' . __( 'you can', 'ultimate_vc' ) . " <a href='admin.php?page=bsf-font-icon-manager' target='_blank' rel='noopener'>" . __( 'add new here', 'ultimate_vc' ) . '</a>.',
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'selector' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Size of Icon', 'ultimate_vc' ),
						'param_name'  => 'icon_size',
						'value'       => '',
						'max'         => 72,
						'suffix'      => 'px',
						'group'       => $group_effects,
						'description' => __( 'How big would you like it? (Default 32)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'selector' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'class'       => '',
						'heading'     => __( 'Color', 'ultimate_vc' ),
						'param_name'  => 'icon_color',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'Give it a nice paint!', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'selector' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Icon Style', 'ultimate_vc' ),
						'param_name'  => 'icon_style',
						'value'       => array(
							__( 'Simple', 'ultimate_vc' ) => '',
							__( 'Circle Background', 'ultimate_vc' ) => 'circle',
							__( 'Square Background', 'ultimate_vc' ) => 'square',
							__( 'Design your own', 'ultimate_vc' ) => 'advanced',
						),
						'group'       => $group_effects,
						'description' => __( 'We have given three quick preset if you are in a hurry. Otherwise, create your own with various options.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'selector' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'class'       => '',
						'heading'     => __( 'Background Color', 'ultimate_vc' ),
						'param_name'  => 'icon_color_bg',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'Select background color for icon.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_style',
							'value'   => array( 'circle', 'square', 'advanced' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'dropdown',
						'class'       => '',
						'heading'     => __( 'Icon Border Style', 'ultimate_vc' ),
						'param_name'  => 'icon_border_style',
						'value'       => array(
							__( 'None', 'ultimate_vc' )   => '',
							__( 'Solid', 'ultimate_vc' )  => 'solid',
							__( 'Dashed', 'ultimate_vc' ) => 'dashed',
							__( 'Dotted', 'ultimate_vc' ) => 'dotted',
							__( 'Double', 'ultimate_vc' ) => 'double',
							__( 'Inset', 'ultimate_vc' )  => 'inset',
							__( 'Outset', 'ultimate_vc' ) => 'outset',
						),
						'group'       => $group_effects,
						'description' => __( 'Select the border style for icon.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_style',
							'value'   => array( 'advanced' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'colorpicker',
						'class'       => '',
						'heading'     => __( 'Border Color', 'ultimate_vc' ),
						'param_name'  => 'icon_color_border',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'Select border color for icon. (Default - #333333)', 'ultimate_vc' ),
						'dependency'  => array(
							'element'   => 'icon_border_style',
							'not_empty' => true,
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Border Width', 'ultimate_vc' ),
						'param_name'  => 'icon_border_size',
						'value'       => '',
						'max'         => 10,
						'suffix'      => 'px',
						'group'       => $group_effects,
						'description' => __( 'Thickness of the border. (Default - 1px)', 'ultimate_vc' ),
						'dependency'  => array(
							'element'   => 'icon_border_style',
							'not_empty' => true,
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Border Radius', 'ultimate_vc' ),
						'param_name'  => 'icon_border_radius',
						'value'       => '',
						'max'         => 500,
						'suffix'      => 'px',
						'group'       => $group_effects,
						'description' => __( '0 pixel value will create a square border. As you increase the value, the shape convert in circle slowly. (Default 500).', 'ultimate_vc' ),
						'dependency'  => array(
							'element'   => 'icon_border_style',
							'not_empty' => true,
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Background Size', 'ultimate_vc' ),
						'param_name'  => 'icon_border_spacing',
						'value'       => '',
						'max'         => 500,
						'suffix'      => 'px',
						'group'       => $group_effects,
						'description' => __( 'Spacing from center of the icon till the boundary of border / background (Default - 50)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_style',
							'value'   => array( 'advanced' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'ult_img_single',
						'class'       => '',
						'heading'     => __( 'Upload Image Icon:', 'ultimate_vc' ),
						'param_name'  => 'icon_img',
						'value'       => '',
						'group'       => $group_effects,
						'description' => __( 'Upload the custom image icon.', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'custom' ),
						),
					)
				);
				vc_add_param(
					'vc_row',
					array(
						'type'        => 'number',
						'class'       => '',
						'heading'     => __( 'Image Width', 'ultimate_vc' ),
						'param_name'  => 'img_width',
						'value'       => '',
						'max'         => 512,
						'suffix'      => 'px',
						'group'       => $group_effects,
						'description' => __( 'Provide image width (Default - 48)', 'ultimate_vc' ),
						'dependency'  => array(
							'element' => 'icon_type',
							'value'   => array( 'custom' ),
						),
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => __( 'Hide Row', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row',
						'value'            => '',
						'options'          => array(
							'ult_hide_row_value' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'edit_field_class' => 'uvc-divider last-uvc-divider vc_column vc_col-sm-12',
						'group'            => $group_effects,
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-welcome-view-site"></i> ' . __( 'Large Screen', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_large_screen',
						'value'            => '',
						'options'          => array(
							'large_screen' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-desktop"></i> ' . __( 'Desktop', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_desktop',
						'value'            => '',
						'options'          => array(
							'desktop' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-tablet" style="transform: rotate(90deg);"></i> ' . __( 'Tablet', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_tablet',
						'value'            => '',
						'options'          => array(
							'tablet' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-tablet"></i> ' . __( 'Tablet Portrait', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_tablet_small',
						'value'            => '',
						'options'          => array(
							'xs_tablet' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-smartphone"></i> ' . __( 'Mobile', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_mobile',
						'value'            => '',
						'options'          => array(
							'mobile' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_switch',
						'heading'          => '<i class="dashicons dashicons-smartphone" style="transform: rotate(90deg);"></i> ' . __( 'Mobile Landscape', 'ultimate_vc' ),
						'param_name'       => 'ult_hide_row_mobile_large',
						'value'            => '',
						'options'          => array(
							'xl_mobile' => array(
								'on'  => __( 'Yes', 'ultimate_vc' ),
								'off' => __( 'No', 'ultimate_vc' ),
							),
						),
						'group'            => $group_effects,
						'dependency'       => array(
							'element' => 'ult_hide_row',
							'value'   => array( 'ult_hide_row_value' ),
						),
						'edit_field_class' => 'vc_column vc_col-sm-4',
					)
				);

				vc_add_param(
					'vc_row',
					array(
						'type'             => 'ult_param_heading',
						'text'             => __( 'In order for Effects below to work, you must select something except "default" in background tab.', 'ultimate_vc' ) . ' ' . __( 'May be single color.' ) . ' <br> ' . __( 'Screenshot', 'ultimate_vc' ) . ' - <a href="https://cloudup.com/cc1J8ZlcdZW" target="_blank" rel="noopener">https://cloudup.com/cc1J8ZlcdZW</a>',
						'param_name'       => 'notification',
						'edit_field_class' => 'ult-param-important-wrapper ult-dashicon vc_column vc_col-sm-12',
						'group'            => $group_effects,
					)
				);
			}
		} /* parallax_init*/
		/**
		 * Admin Scripts.
		 *
		 * @since ----
		 * @param mixed $hook hooks.
		 * @access public
		 */
		public function admin_scripts( $hook ) {
			if ( 'post.php' == $hook || 'post-new.php' == $hook ) {
				wp_register_script( 'ult-colorpicker', UAVC_URL . 'admin/js/jquery-colorpicker.js ', array( 'jquery' ), ULTIMATE_VERSION, false );
				wp_register_script( 'ult-classygradient', UAVC_URL . 'admin/js/jquery-classygradient-min.js', array( 'jquery' ), ULTIMATE_VERSION, false );

				Ultimate_VC_Addons::ultimate_register_style( 'ult-classycolorpicker-style', UAVC_URL . 'admin/css/jquery-colorpicker.css', true );

				Ultimate_VC_Addons::ultimate_register_style( 'ult-classygradient-style', UAVC_URL . 'admin/css/jquery-classygradient-min.css', true );

				$bsf_dev_mode = bsf_get_option( 'dev_mode' );
				if ( 'enable' === $bsf_dev_mode ) {
					wp_enqueue_script( 'ult-colorpicker' );
					wp_enqueue_script( 'ult-classygradient' );

					wp_enqueue_style( 'ult-classycolorpicker-style' );
					wp_enqueue_style( 'ult-classygradient-style' );
				}
			}
		}//end admin_scripts()
		/**
		 * Initialize Font scrips.
		 *
		 * @since ----
		 * @access public
		 */
		public static function front_scripts() {
			$bsf_dev_mode = bsf_get_option( 'dev_mode' );
			if ( 'enable' === $bsf_dev_mode ) {
				$js_path  = '../assets/js/';
				$css_path = '../assets/css/';
				$ext      = '';
			} else {
				$js_path  = '../assets/min-js/';
				$css_path = '../assets/min-css/';
				$ext      = '.min';
			}
			$ultimate_css = get_option( 'ultimate_css' );
			if ( 'enable' != $ultimate_css || 'enable' === $bsf_dev_mode ) {
				Ultimate_VC_Addons::ultimate_register_style( 'ult-background-style', 'background-style' );
				wp_enqueue_style( 'ult-background-style' );
			}
		} /* end front_scripts */
	}
	new VC_Ultimate_Parallax();
}
$ultimate_row = get_option( 'ultimate_row' );
if ( ( defined( 'WPB_VC_VERSION' ) && ( ! version_compare( WPB_VC_VERSION, '4.4', '>=' ) ) ) && 'enable' == $ultimate_row ) {
	if ( ! function_exists( 'vc_theme_after_vc_row' ) ) {
		/**
		 * For the animation in the module
		 *
		 * @since ----
		 * @param array  $atts represts module attribuits.
		 * @param string $content value has been set to null.
		 * @access public
		 */
		function vc_theme_after_vc_row( $atts, $content = null ) {
			return VC_Ultimate_Parallax::parallax_shortcode( $atts, $content );
		}
	}
}
if ( ! function_exists( 'hex2rgbUltParallax' ) ) {
	/**
	 * Hex to Rgb
	 *
	 * @since ----
	 * @param mixed $hex hex number.
	 * @param mixed $opacity color opacity.
	 * @access public
	 */
	function hex2rgbUltParallax( $hex, $opacity ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		$hex = str_replace( '#', '', $hex );
		if ( preg_match( '/^([a-f0-9]{3}|[a-f0-9]{6})$/i', $hex ) ) :      // check if input string is a valid hex colour code.
			if ( strlen( $hex ) == 3 ) { // three letters code.
				$r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) );
				$g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) );
				$b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) );
			} else { // six letters coode.
				$r = hexdec( substr( $hex, 0, 2 ) );
				$g = hexdec( substr( $hex, 2, 2 ) );
				$b = hexdec( substr( $hex, 4, 2 ) );
			}
			return 'rgba(' . implode( ',', array( $r, $g, $b ) ) . ',' . $opacity . ')';// returns the rgb values separated by commas, ready for usage in a rgba( rr,gg,bb,aa ) CSS rule.
		else :
			return '';  // input string is not a valid hex color code - return a blank value; this can be changed to return a default colour code for example.
		endif;
	}
}
if ( ! function_exists( 'rgbaToHexUltimate' ) ) {
	/**
	 * Rgba to Hex
	 *
	 * @since ----
	 * @param mixed $r red.
	 * @param mixed $g green.
	 * @param mixed $b blue.
	 * @access public
	 */
	function rgbaToHexUltimate( $r, $g, $b ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		$hex  = '#';
		$hex .= str_pad( dechex( $r ), 2, '0', STR_PAD_LEFT );
		$hex .= str_pad( dechex( $g ), 2, '0', STR_PAD_LEFT );
		$hex .= str_pad( dechex( $b ), 2, '0', STR_PAD_LEFT );
		return $hex;
	}
}