// 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*DuckyF,http://ns.adobe.com/xap/1.0/ Adobed      s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?:_t9nI۸*;<W5*ͷsHotMgH:5q\[2_IXW`s}M$:ܙLf@Lf]Tks $r#PAF#y'm')3jt{a}o|XfT%V%jHO]n?15MTt1IЈ$& F?j>Pk?'|q۴=և(D7#)Њxq%)F$K|ëy~(&帉&@*+&JwR2ċ:a.3iD Aq!%!GܖjEkx^#%R f,S'/9"N]+KMA= X9UXtص'p_ע?Iq tjM٥όX"qݎl}>RDƵ~&L"فTz%Z'hI,93oÎsoV\qzǖl+hm*!t/.$WB;5տŜ /ˍ*H:mq.@UgzffgF$dumb_T{KSj0@Iq;Xcob[@y5I" -1UM+̝,zs@f%YvNMNwgaL6 2 ZޡkրUBW2&<16K-.HidԼtjqUK٦{-Αٚ5%,ny㈺S3$(8tsʓjI ke!nn>l-|zLdvV@}FC{k"ON9%M>/bn`P-kM6]QiH"4"Lixg8,r#y$'˾\Qk 5mLBȀȯCQ#N1u65xc^uw5oҬB@v *~!tu]uJl|.>w XcexU +ܚWwǷu~Hg֏R]˦6ڶ{0P3Qk5>]ޭg:C6zZR$ 2yrDTdC^LxQAZo5J0cW)_Q%"1c>A]wѡV:|~]OgBnUnHS"y_;^鴭?H/%d-HcB+3T#9 b6H+cu}A4MԳg+NAj>gjvl0F`\\r̠h;ޟsEc敤Eֱ׌*(«¿h1㔹t/&[0J"-΋T1]&q̎b^^jV:-wcVRӅDtӵ2uL^3)ϚW^ e fjhqB%9 |k+XPW{?&#F$_̓~UyէlnڄpC}#ާ3S#FTg[hZշ1㰝rz|7&Ze9x/9Z9W:56g5 ӹʶޜQ*#:uW$v9c{w4$ה4!*(DM+@ۧ\[2!4QU'z{ -O g۸fG ,W~~aQ21ڞumhnKI-ۊjxъ*m/~kl3bb^r_䣶`a[8IҭSq<0XX^GpbEVKxMX7=pxvzL ~k~[FH]~v9'œ#lӘ3k\u+R`д]?5jsI 68.qgsd9x'_ jf1ԭ!I/dsi,!PwFrkqJ1]I3r6?2k jMk=-`;fe-gQ/ vlw[7YG,<.XXC~zV(+mNr&_λKo&kwVQfPR$ r 5|ѩjVQܱvBXU@$3 9M/Z!uh+ޑM{Q~4JY_VK-b4e+ȫFaGwOm.=kQ VoCJkAcdiOpm-AJ# nxYc&+/8k-*KEQll?& vLMN62'ϺKk /Yd@`1ͯ]27QldfٗјcɠqO7yߙOi22k*WԂ1SC.✍9"`y >'gkj_WiL{ݞu _@~\y\ m;u-,aY^@>:0A<s5t=΄`ד?3|uK5u=B]#DךmTNTjQz~Yibç3)NS1@yV6 pO/uH%yAnt۩4P%Kg !x6W6ZN _xO_1 >]?f3X .GijtI*8ZfF-ǚ.u)GOD3}^Q@>UI9hu2On^8߼I1_yyۜ/. s2TH?0b L[ !yb/2%ⓖ<\c~#68E83J3O-~LO7S5seH=xH">#Ol5NN\GqkQGT"--eF/*[[[`}f@v'΋Qǚ4E'_z.6jʴ)xنqK- $=_ 2٫@L<VQ7]ܼ.42H!U4vcY/b+;O /d|ZO$}W?/9PS33&;v8cG~=W4;t+5iY&jK׋tza].9 D{ޕkjv5柧kka=9[M 0$SGj=_Z/$Rw3\Ў1YlTRʹ o/=.l{!^ik($W ̞ :Sg{;]N8r+}#rj3’$Elx-9x}bP<9 dp$Xk{"Ԕ\ʀBU]rE'b~A__YWZN,$]ZIȈVh)lk'<2"~d ㉐6MBo6_OW`4²۰5GPq,A b|Ɠ GSΉ]joij.3Kq2F/WH` )e{.?%FhfC8eScCN$sJBF1v]RL-]b#3J2,85嚭_;8uf|pQ=‚J*]ꆕ>y:r{韕7 - -b*@RfNcB/d3OEo!FMB @ZS1ODi]V(Kq#~ju3K<+e$WVN[@5I3jm7a~I?4|mc#(R4,ı&I81kqtNmqɯ~ǟDi[Y6fլ+҉5=t9iQhgaoo5͵~%63\<0 >e Hڀ?kf>@/+EiǯiW >Une<|A7s9HprW׻̝~+$]k%^- pB̜rSz,e[4hѤu;6}^Pa|Evݫ)&}6qѿ-Xb'%ۉX'\Xg0?gC_" Du{VoAoo"$NSBw/,i!FӨh5ŌD+ ɐy\Yz:eyFт1Z&(cztݏSgD~7Va6P4kIu{Huh /,O{hu$ zW4թŧi:e̗}1﴿1j7?ڭ?i7WD%&'cE$w>/eWk3N.B $~]ٮ.H?>KfmBh:?QNkNpI39ɍ mN\D T;2?9LG>OiIq)GZd/44h3h8.o/hlDk5VԘԎ)gwu1_=;+C:̀Jc$\*=k 6A)Gqv %Duz̚>4yѭKDH!+V7e^㡮l(5ى\#=GBaIfF .nDܓDA(HJS.GO&.,k_?F֤ק*W|C4ayç\\:pjQ<\Hjn%3 v+}]}Q ? e捦Qa1եrN+ӓ,B)͒cHϤ鑬/̦NDؑ~x̸ё!^hӬ[icfSm8S.:(iީUS!+"JH Ƶ' $:2P4FuG@BDy;Yts!%ޙq P|Y?n 8yۡhaMkyG8a`V4"+w=4 g) }d/ 3ʺȪ-.K,Y'{|#77];qcutD~kޜ672ەf6wpS'ً}O.W</{Y侚y4dxMl"6~-g[P"I05-T'~RzOgeUF_N!T,s#S+w4G¼])5Q㟦Xf)KYiaqeoJD j 3OЭMM59oqH]})`b?;4}ROH} @ DTnO#lQps#{ Ѡ6~f5]VX﬜ X1sRC Tu7~C!cddyZDI/ :%v5DT$`)ṿ1<#4̵1 Hՙ^{>"Դ}k]u )e(DF('g*$CE1=zXk9!+G<I5 v9+6:;wa5/8ݴfX' V8`ǧS'9 'K?4-4:[Oq05hj~5^txb@pe ;Z_c׼tۨW6F辔ux@}gqO0`'7Fßh䁷Cv(320ۗ\ig|_C <bHXۤq/`O3jɌdy?}OOHмhtcs#,F#FforFwu2|euw'LmɁW/Xefթ@Ӂ,D\#4yS c.T (n,wgUZ%DiC6/#[q>̱rt9:|縬J4FYnlKl74Ź} Ó1?k0G ѲA,-c ^}\O$ =V[0=xUde6$ s+k/Qޞo[<"UϣzΧEZ<(m,k'*;~9i^gjza׽O{%8Z(0 vn+*!R̚隄R7IQ QPF⧑̬3{uzk5R1Q}fF?䧕l>RkOуk+( P:oӲ.S~vPkĩ 8HJGR 7O6Qup" tEdOI塪K#{"O"sG qRv(x2D{7Ǐh,.E$FcO2s^G w6/)55h%JR)"Pժ VD({yQV[koAk gᐳȏ4zXBw}/7Hm5hbߜƟp!Q<Vx#,nC:6:@\8Ib$=gv"= Q]8,M)OaLRY埛$E4Do)C0`}Ndd"q(1[C̎usZqF,5^u\rߥ46pR0|z>'Fg*b~T+-1Vw$גHo_r$K[5$57)$l^$1BD ?4\z5&V&މWoTvZ%ґ9we,b=MR2K̐ayyݯ 9 -AckpU I5¾ o/_|(A`տ74IIycC Pd&H!!P@I$QUj1.ۀk"s;╗1 (O:D1Ӿbo5G<WcȤߔߕ,zpz`vf#va3H R>;yo[jWy71nPq?!1<n_/idn/Ee#e T,Jb|iJfV(2ht56#9-0\Ǔ&ܖ-/#c$83 xm,|a!o=KMo4) k/N%yu^4|HyYmjr% jNR?P*2<Ѩq_TO.I5#+:iڴշYN2o<#XfdK(15&Y;ۙ]X+Ӣ2*yeGzrͨu"(u4kQ =L$ 1'iK?L;u9p&ńeF]^7enFE Eߓ?9^Nze(bV9eZTLbV w4 A($wnYrxͤH&znE8:Qs5."yHrQA1pm7%*3ȥE@HH1eu5IPq=߄*x܈+|RT 6d^DrQ/ٮ\ޝt.WJYD'QJ iJn[pQJ\5 |MVkD514BR.G.,tR{Mɚe B#t"=1PwO<YaHREڌl鯙=wMӭ<5'dIRA,HeYmtXEK\Z3[2iabq&6_lViZ(wV)!C fy,cg>ǜǘt]Jm=V9nw$9J*s"vezƙ.$r\D]BIY FdS ^; E_WCInt+9o"idۉ5gbTPM)̸!o,<1{A#*xxҿL ~H@y+\sh6H,cIy}FQM޹^fD0dn./ͩ?oRbR1&zw|^ia-Q§}'ѱ,>LoCUS8{% ɞ*@#%:gC՚+8 ed4 ϶[)Q6SqVi}jtβNoQQ ?딌=Yr=~O~ayjNM1}1 B|U 4]rKXђ^Kh>Eyc"y0o= ̟Bo*K }ZPSp(NvH nZG䆳go<~-YcT[8EN 3W+eٵq6;82] yϭ6W~Cym1_of *L(qYi /Oo7՗Z9J6ҙ.89 VROA_#,>19~f~M_wߠ=BQ}V!:{I'&/AUhzؚr|5=ͫ٭ŴQS*S~>F0~Io]yww}gU$L5~@*?HeAѭkoas-kqdFz')]0􊤉`;ŠDpeڡ'VȾ-NڵE,o+ϑA4p\7/<>u~LQ,p,DVp;Sbr-ZZtq^Np+vFECsyX5ˍBm'Pci .KT1+F.<}Ka:uη\슗z|1@y7Y ֕o;F1UFzo<2RUɽOSo4XhĄ} hm&q6g~OXԿ(kQ;f'0NIeˌDv [ʟ>^82jԆ^%] rrq@ii^G5W,Si=a;3{2+ e~$'] R畳  8.mIW@i9$x g(Og(jZޣ'?C Gܲ+{Nb0*,ה4]K6fխI2Kii7QMA޹19DlXJ1쯼7vHK7RHGZR:aǖQ|c%h=Լkk_\aJt#2̅ZxMxa^ڳvyD@`fK5Ӽ\)eBI$Fff=r[Cy>Mx;>'.n._1T7=Y<کb/:޷u(UPMTQf1u9$e-ޝ~H177V.cKW:ryT=E UbZ~&u={َa "->LK2gf1D2;LtBU]ObTu vy<[rբ^c$qPnS`&ą̀faX~LW~ n@|hiTMNG&S/ 7n{Fc746­ Jzޗ!7ZYOM @%m@{fy 2тg8w?ml.R09hKɁO} .f'\{w!nіJ"z+fhGr;5~h?V/"+9 M0~Xw^j :dZ0tbrI,RcXv#܁#ޙ2zrjWTS2=Iw$zv>'YhIfG!m1 ak-nL~kI"\FyJ?y`L|?k3ۘ.n*fd%P)S0Gc,xQE QaP 鶡=9UQޝ|s2ytpgrp9Sj^+]-O$]%>E)^Gl(lru_~[h7i?(p= k(Uk_*>"?N)*4V[WA]zxw=K_I>~J_&pDx