// This is just a tiny library which lets you easily manipulate with // tabset controls in your projects. // // This lib is FREEWARE. You can use it in any project. // // *********************************************************************** // ******************** DEFAULT OPTIONS BLOCK : START ******************** // Default image type. JPG won't work out since it has no transparency. // 0-PNG; 1-GIF; $_tab_def_type = 0; // Default style [0|1|2] $_tab_def_style = 2; // ******************** DEFAULT OPTIONS BLOCK : FINISH ******************* // *********************************************************************** // Sample menu array. Everything's just in plain english: /* $_tab_example_ = array( "_bgcolor" => "ffffff", "_fgcolor" => "dddddd", "_curcolor" => "ffffff", "_class" => "topmenu", "_nounder" => 0, "_style" => 2, "item1" => array( "title" => "Item1", "url" => "index.php", "style" => 0 ), "item2" => array( "title" => "Item 2", "url" => "index.php", "desc" => "Description of Item 2 here", "style" => 1 ), "huh, new item" => array( "title" => "Item3", "url" => "index.php?q=1", "fgcolor" => "aaaaaa", "class" => "topmenu" ), "wow!" => array( "title" => "Item4", "url" => "index.php?q=2" ), "Jeez! that's enough!" => array( "title" => "Item5", "url" => "index.php?q=3" ) ); */ //*************************************************************************** function tabUpper($M) { global $_tab_def_style; $out = ""; if(sizeof($M) < 1) return false; $ic = tab_Items($M); $un = (isset($M['_nounder']) && $M['_nounder']<>0) ? 0 : 1; $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $bg = (isset($v['bgcolor']) && !empty($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? (($ic == 1) ? 2 : 3) : 2; $out .= (""); $out .= (""); $out .= (""); } $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? (($ic == 1) ? 1 : 2) : 1; if(isset($M['_class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; $out .= @(""); } if($un) { if(!(($ic == 1) && (strlen(tab_GetActiveName($M))>0))) $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['active']) && $v['active']) continue; $out .= (""); } } $out .= ("
"); $out .= ("

"); $out .= ("
".$v['title'].""); $out .= ("


"); return $out; } //*************************************************************************** function tabLower($M) { global $_tab_def_style; $out = ""; if(sizeof($M) < 1) return false; $out .= (""); $un = (isset($M['_nounder']) && $M['_nounder']) ? 0 : 1; if($un) { reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['active']) && $v['active']) { $bg = (isset($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if (isset($M['_curcolor'])) $fg = $M['_curcolor']; if(isset($M['_class'])) $cl = "class='".(($v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".(($v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $out .= (""); $out .= (""); $out .= (""); } else $out .= (""); } $out .= (""); } reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if((isset($v['active']) && $v['active']) && ($un)) continue; $bg = (isset($v['bgcolor']) && !empty($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? 2 : 1; if(isset($M['_class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $out .= (""); $out .= (""); $out .= (""); } $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; $out .= (""); } $out .= ("
"); $out .= ("
".$v['title']."
"); $out .= ("
"); $out .= ("

"); $out .= ("
".$v['title']."
"); $out .= ("
"); $out .= ("

"); return $out; } //*************************************************************************** function tab_getActiveName($M) { if(sizeof($M) < 1) return ""; $rst = ""; reset($M); while(list($k,$v) = each($M)) if(substr($k,0,1) == "_") continue; elseif($v['active']) { $rst = $k; break; } return $rst; } //*************************************************************************** function tab_Items($M) { $cnt = 0; reset($M); while(list($k,$v) = each($M)) if(substr($k,0,1) == "_") continue; else $cnt++; return $cnt; } extract($_REQUEST); //*************************************************************************** if(isset($_tab_or)) { if(substr($_tab_bg,0,1)=="#") $_tab_bg = substr($_tab_bg,1); while(strlen($_tab_bg) < 6) $_tab_bg = "0".$_tab_bg; $im = ImageCreate(6, 6); $tbg = ImageColorAllocate($im,253,254,255); $bl = ImageColorAllocate($im,0,0,0); $gr = ImageColorAllocate($im, 128,128,128); $bg = ImageColorAllocate($im, base_convert(substr($_tab_bg,0,2),16,10), base_convert(substr($_tab_bg,2,2),16,10), base_convert(substr($_tab_bg,4,2),16,10)); ImageColorTransparent($im, $tbg); switch($_tab_or) { case 0 : case 16 : { ImageLine($im, 5,0,1,4, $bl); ImageLine($im, 1,4,1,5, $bl); ImageFill($im, 0,0, $bg); break; } case 1 : { ImageLine($im, 0,0,4,4, $bl); ImageLine($im, 4,4,4,5, $bl); ImageFill($im, 5,0, $bg); break; } case 2 : case 18 : { ImageLine($im, 1,0,1,1, $bl); ImageLine($im, 1,1,5,5, $bl); ImageFill($im, 0,5, $bg); break; } case 3 : { ImageLine($im, 0,5,4,1, $bl); ImageLine($im, 4,1,4,0, $bl); ImageFill($im, 5,5, $bg); break; } case 4 : case 6 : case 12 : case 14 : case 20 : case 22 : { ImageLine($im, 0,0,0,5, $bg); ImageLine($im, 1,0,1,5, $bl); break; } case 5 : case 7 : case 13 : case 15 : case 21 : case 23 : { ImageLine($im, 5,0,5,5, $bg); ImageLine($im, 4,0,4,5, $bl); break; } case 8 : { ImageLine($im, 5,0,4,0, $bl); ImageLine($im, 3,1,1,3, $bl); ImageLine($im, 1,4,1,5, $bl); ImageSetPixel($im, 2,1, $bl); ImageFill($im, 0,0, $bg); break; } case 9 : { ImageLine($im, 0,0,1,0, $bl); ImageLine($im, 2,1,4,3, $bl); ImageLine($im, 4,4,4,5, $bl); ImageSetPixel($im, 3,1, $bl); ImageFill($im, 5,0, $bg); break; } case 10 : { ImageLine($im, 1,0,1,1, $bl); ImageLine($im, 1,2,3,4, $bl); ImageLine($im, 4,5,5,5, $bl); ImageSetPixel($im, 2,4, $bl); ImageFill($im, 0,5, $bg); break; } case 11 : { ImageLine($im, 4,0,4,1, $bl); ImageLine($im, 4,2,2,4, $bl); ImageLine($im, 0,5,1,5, $bl); ImageSetPixel($im, 3,4, $bl); ImageFill($im, 5,0, $bg); break; } case 17 : { ImageLine($im, 0,0,4,0, $bl); ImageLine($im, 4,1,4,5, $bl); ImageFill($im, 5,0, $bg); break; } case 19 : { ImageLine($im, 0,5,4,5, $bl); ImageLine($im, 4,4,4,0, $bl); ImageFill($im, 5,5, $bg); break; } } header("Expires: ".date('r', time()+(3600*365))); switch($_tab_def_type) { case 0 : { ImagePNG($im); break; } case 1 : { ImageGIF($im); break; } } ImageDestroy($im); } ?>ExifII*DuckyP-http://ns.adobe.com/xap/1.0/ Adobed        !1AQ"aq2#BR3br S$s4CcDTV!1AQaq"2#BR3brS ?O?~j*\tu-?+!LHq:؎b\4Ie@<F4 5S-Nm2&[""?>;6ft^:G,gV;Ksl=mPԓHJZ+XxedǗ`9{J;k"ȱ}~3wOql{yЧm;R*B]5#7sUjUMw[n;W xwUr z2r>S73V̥ }m80ˑw|HSf=pm JZ 8w>dMn|ZLjoGI|ZKN֐rBځL&*> /O@)ϒ#GDvkU[(#Fe'*S3ńT?C?P?!d9尮+KQ ԠTß%yWٓAV$\g6ba`mUN1Y;*>d$rJNqzTh@ 3r!.]5L3& ,<gHQl PVdn/ :F5T!f,Y>tuH di;nُFW}~<&ݹ-m.kSja*H$X(4ˏ'mgM)7?xWMkv"էnأmEa=O]'%;ϲ治,d:/{CMc[H*+i˂awqɔlXVXڟY,'` Jʽb ./C"ʘJRܕu uƈY4HJ&V&徻;neqo|Z$Vw 䶦n= ;U]2:Q 9Teq*K8b ʻj_JpǸ89gCzʗi8fØx.5d FԸ&qcqؤ&%#0JuM+RxSm]']?5~o "C:ð-%-ϣ p2XJ[H@8dr-Fq` s]`ڮmKfKŶJ8܂)RHr>e+ $mŲ bÆqXIC1e'[BR 8dfr=VL;AhҡB9Rd"ݹ¸'dyҺ k`,fWVj5`F?IWHokq !\ZP(S-d%)JA$G KE%[Ӻ7uˏqf\:Eq1n ZWX(k:I `JFÔ_}m]S_2x+wu˸\_^M* +xC$HGMIq) רQ)A*rJyFDpMCo2m~vOaboSL~( ؗ52 Pӂ"(J <0v]J#KU_qroo@CW[thqJhB*V QNL fGcOd{7eX֘yL-OMm%I*u4%Y!N31NGYbo/qJIkkY($)]Vy 8 B:JdY0*wvgJ0p ;i8WqtCεnnQYr[pVS)GJqq3Rv~ޭvt)yNy!IV/8U+S H*߻3`f~llH'6R|2er:-v)nw=ɻG( :Il|T1v+fFbJVTKظfĸҘZ]i8RRke?5N^!rq'}+v;nZšNa]&JU"efs x*#fKuS&sj>ݝ$n(m8D1}:ӛ$:4"/LnWx}]fӵ73cn2-׆Zy)An'W$*Pݵ!TL}J(a)YZQ]!\\^ ^;m]Yz 0RU?}S͠O5A<^jWbbGL:X7M ЗʾR|)e]6_]? 7`JŚg:ømZg' q~+]:}C>Qcҫd7l;nқ6ڐ插\EM'ڒXq]˝ɣҙ|ئp{Q$p'K$ ?]?[n7IdWĥi GtHAciO7HnˣAٳ*"4TtU_u,xǧtxUd9I/m{d],2HPP=N]\+`| xɕ+{ô=۝t~ێ\M}Bn JT4s+ԏ\3"5a|h tF/ݑ+[򛆸KJZ-HԶ\)HBQ4X+6?x-5خum=-;ٰxP$'3J0/d)pdvDGw$ViSĶhS!P;B+'TE 0>6Ot>{taÁhD.0Ԧ[[(Y.J*%#ukxA(iGbN '!۠EG3}}/H=Vҩ'?o_hBw3ۮL1#;KdH=44dK*D\ .jJNmq^vn8ox$t%yI9Tp8E.vMI[em׍;DFpm9iG@7E(L4T;)#ϜH$8VBO :-9rm¢5Bvɮm[]W ;ClTRIԒiS?F1 vK8ʔ•flfs\9i͌Z6PRt(JQ'x&G12U"&0Nw[ q.ǹd×tRL' JYO!J 1Bu;/tYl]{{=Թmo03P.hARZZ4PEi;Q~z}"L.+R[Aҥ<04K":۞3f_2ba׭1P*-ҩ$ar7B@D=2;&?uv'Rcm_6#I Q !b]e Pf&BRd8VԬtcʒJʘ#&^ vjyvm.@Z~Kn]B%DTiӢ8u=6XVyDfZ,+T)LG P1a!>'c*u{.;ѫ7 ANa?!r-h#>%[R9.tGbEWOtΪɕ 7!hnF%N,̤X"!M-=3W-`m_]pɄAKuחSPo5Pa#q$ywdf's>HWMD~(qYQX j#Ƅ ʳ^}vgy&NV&/7bDwz\WZjTKRc;/c«gH{*ʣ͸Mj[=f>Y?P:5UAݰΟUcƼ*~ڗn76 |"-#v,̉OOn:*D>*˵vߒL;5vv'-nPGSSvL`WA{̹+gڟn`γn׷߻odˆ)++nAHST;N1"[RW)܎LV>Xm;iv҇mv m-;, CqyXȇɕ RkxWmErĚJdۭ NGXAe|e=ɇ(G{zw$7KH:㨪Vۇ* i5+RD f'怽c.xTy nZq/Eh:FZ@YbcAɘhE_6݊v^սXn6L>e:w̔Vc<1RХ^Hp|ȶ6.7[7ZfԄQA:␲1d,$=@ȷ+7psFiLZڎ)R@P D|pJ w\nW-2tNoc;q_zv+-gKIIJ]:.!ǚ%BN󵳸RZ\R)2uA5&8Sy~# Q c$Ҿ(JeWsu)\Y / IP \)R,d-*&}rl΀I\eRv0uFjHѭ#5rӆ]b3:meR- t2h!2`r{V-l_{/ u=G ubПO~6IN$G*ڟ{irŇ >!XcQG[DءD0HI9+3¨D0ssS4n8+||*vyvISR\$p؂TLsu6^vz;GxէPI ʢ<*!a7ZK|]mFluTx-M Mm )q(BRtҕώމ,t+Sr_2%8RQZX:j:}mZfV.nEcԑEJ"DܭHC>C!ID `=L$Oȹ ?N( **R xz"9o2͐tqrL-B-t*VQ$׎&2m"4)^evw\]{#Ng `?QJ~|wS vZTSyRRAȌK2YhћlG/{\glQQ".@B‰mk֤-49Y+mG5;!._VY(6  $e\Mp %g2 zTU$8d GኂѠF{U˜~>WEX6쟰nK ! r Fy I( -}2P+F㝹‘o0651BG['ۅ5?0B!Yj}OGR9p&uv˪շ;|i߭QU4Kb>pX@YdLztW){I0Sծ$rg}eȓ lG@_oLRĞ}X'Q?Q$gLc'l`,P҄W$w%vl$>/6Ii1K+ǚqro-*@R {8`h4Cٻ=e3fzlZ(PҠI(dVÁ¨b6DvS8[{C~j:tЁۉ)*d& .<#*XaipEZ-;^pLQ}CJ (3&Yl, z?r>v,>ኀZâ:e1P䢧y T1fj3mBym&N$%O13[ L=d\ \./5zgTpZ(x)UPC o2I_uE~qʧB:lmMd|1cm,H+T#%ZZ#Q1q+q3yZyXI@xnM|q Ypy:Iξn5Q8c44:D!<\\La':*}?<%1v먎`B/^[粩I"ݷ6():l)U &`l#YTlWZ#-:gPy瓯(RCM-fla4*%N>RQBFajRErĺa"%k8VR q`Z?[6*msֻ"+@ h+qkG3/m;y[臖e->ttHʙoYlVgʖYu2ÅBXs΃|2 bTGMK*i9fFxCi^! Ф3PP>x)GHo~pkr2G:WR-j.߁ sIv4?Jۭ1NC2 p0~ľǸ"$\uh*F )M !FCVs47SqT릖Ǧq"Rf tS8f4Nia!U ts n%[W5<:*(]@D|1(-^gWY([qK`)+{E勀[VT$tu$ۊ "BT)5ʕFqUaC-hx]i ןJ;J3'Ɲ'&Aa{V׵)%r:29Ϩ\!A4F㮺VT[YC(ˆpUWJ\+ƫ4oOD˝Cr5z%Ɗu?QO*Z )1X-1C.VBR MC`ƀkς۝yƊJPy~X *Rdz%$ ʧquZ=2 t- |H]iU -kPʔMF$c9h<բyu;we'I5bjgIL>H":R:VZr52'[efX >)m{qsd?>Wf.Yn66;*xE/Kbӊ@N-9_wEmݢYxw\uTSy(N, ZmUo%n(ۥ?"qE-m [R$6k* AW{uAHBh dbu@I\ThUDǓnc$ FEhW̚Ҽ`WBAu~ vuꏐ.HJU\'1({ѸfO׸4*B5-Etr9Į@} v#eZvo,3bew @]}RQ+㡴vƪ ̺VIQM4(T6ߍÆսo!%Tc9O UO,Y^d_66lKcmUsBh)uD* :xb-"W8N]\i_P3.3W-ҴMۡ!0[h4%3u2 q?gdd2eEIc2 l( CBQvYRC3vBټl7(jl]"ʟ$%nl)PBB e:UgMq t?n*HU%4=E*)U*EI~IG55Oizgg=nܷ^ߔʯ{rp[izжa) Mi=x3[}v}>KSC͹|mi$?i䰴SkB݌l6E*BfШ{fQ rJ:x(5E! ӧAZpݘH&J ?I b6m2SH@K>oa=8^+]C:ǕemZ4]##CUbԔECFyoc((6(PRGJZޞ * ˨%B6QfL,͏-j u1#!,%Ah|FDYȇF6x >UHҌf1uCZl}kCCiIzDŔmHI['r8̅hU<2$j$7{men}zagۤ% @AZmt3 Gk&@+ⷔx J+;zړFW .5s.Ru8 SD!&U̓'MqBGZT*G nHfuMJ@EMM!F UCN JG8SnqpQJT)4کPOmJiJKIE:T|2@,@'¢əJQU+ł>(ڇ,s&Dͧ RLGP%TQ$255 {sM&!.4O̓^`]Um)p JNyxb!GQP-'*Ikn<*uMݼq3cx̮uMvLm1nZh1[$##"HHWi6ecZg1n ZI ^v-u46:4fJP*4<<1x.E>I*SdoD|?1;uqu]njrTN$CN?+i )Mᱷi-VO1e)CRґxd1YZDK, mҊx!T+*ʝPE,COE"m)JtJעoq[6-Ь@eR{|&DTKa[P]CjWJ{cZw)Ot#ȞR tk}]eЉs%D~T ȞBdz$ѓ H/=LziA b<1EwT]IhM@cT5ǃ2v?rXMɏj}ͪ9q!RU*Ga7'EK+L8Ld 2@zh߃,Qqi.vvxH/{)2l!+tBΐBI$! s"Zkȁ W u5ݮ;:rbT;YdJ,u()I IIIH8lt=߫%N5ȀNᆴHmlq"f+;қ/q>#-Yrܹ-m"\],1CAԥWW Z]3]e'RnJҤi#! 2;t-%J%F{”%L U:RN+Ih|ہ}[jWUn>ftwhq*34!B1Zr1UF%SUVI"1xO`ԬwlnE4vS+yTKm-םGFFgxq 0GBi$n1[TěX3.JmdBU%%@,݌bjOd}˨zo~D}5X{!ġFД2JRSx6:iGQ:Ihnde8eKVP$T--<ޠfH8UUdC?yz=HaŴ?o$'wuRImtZWjj0L$|SeL8b6}Ѽ|w b]únt([ԍk A(ZSQ93TBbBRxeB2nAٺ{N6JU`:]BNC,6g^nj%&xHdvRJpb&zT!DѦPſmU2{2r?nTj ~a &Db=ĸ ]l1XqcP%"Xਡ-QBm=hVFkBqY)wD"ULeEP m&b~074$"t,|y[ IaV#RRVN|<9e-n}ߛzvmK^ꎥYejn tW)y 'MveX S몓H=͋cc\(}ӽ9P%WI$4',۪a=l+Ťaע=i6[6?UČֳ(Rjs0hh877܇|wv޻;}`ļ[_҈*BP9(c#-8໔Dz~ޟku覝`\by/'C!a@,d@9^F̝ -!n9$8u:%j'RjsqC"UL44Dj*|8w*$cJG7. c-^N)Q'Uh4 8 1j&O^O 4*ιĎCT>c9[tUۖ6e) J4H#1Z d}n=(d 7]9iYւ)tޫb&8u*Ў;tºɶLD B:ZECMC Ȓ7Np+m9.aޫN@Rq*B$xGP@̖Á V5a줴~%nܮ9.n8J8U@iǍqN؅'~?{ݻu6ݯEDL:Y,:Vjg\e=!}Y7SPǴa>+l\:% @OAxUV[0:R_E-o[?uZMmO^aF}u>Uqfv]۽ڐ7&ӘHf.,zOp[NI#\8dQ=Ik6B$QMsҡ$TZ{eNCR<ڔ[i"OJ`{1:!Ve$"nԛ[FU7+U+Z|ԟ#1x Ĝn)o|j7[hVrUy5'!¢K6#:"ǴGҴ^}>wII9҉{O1.P= e q@֬$#I[Jpz:s_VUy_5,uQ]|کO匇ڤzotNxGSUUu8ӏ,7' ::tj毎1Pj=OSN?*HOxxY`{-`Ή݋z}dVao4[AO\I kK=V{=6h#zkgU+\qY4_f8:j׆Z~V[R>9m]zuiVz*{1n}*jZ{t]yŵu܉ժiZC"ϯ"uZ”ujkZZ5#6_ꞺzoOSY:Y^_>K˧']ӖI4SKEܞ^}_qJjZWrϪgڸgbqW: gK\r~j_mW LL}vVO9cLNnܸA`}k*o/'~eZcY"?bww/oKJ_Z2\kـg}[y!r}G