// 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 ? 9^pMڌKƹ-VP2 Ffol{a*>'muHKq&X= .ƳLwЖ^gKi|䈶IIQU~MOmǔK#QcʤLmOEQQA2MRj i:F7yxs226D.x$xim9Yw0S8)\űZdJV1UUPFa$/XvJ Q,7eKUuH_\m (#;fHIUvQd^)޻}AW"&=6J@;"dEPEO dΗ#ná*Tt=݂-+kB;oJ -U"!SC|ԎZm/)9|@i"$Mp oJ#2rg{S\g8!c~h>ym[ZT+G$)SW fN(Gv%>@dXY..&hWG4Qs,s ;(0>ah^lXr2yszuk"]@twnz {uzML&%,}_;UiZ7m]R+{(vjy)%S gxp'He~By 7O+~G.x=mח)-0%zUޙp~ =H%7{sP14[0wV_Lǐ EU:~#)2/~5^xcJt?j]o%hncPvTYqav=3H34$#dY nq=,pP>;u]ij;=hi(Lb5,S,Ǜ6M>eYGhL%a(6k!iGOl]h˘|[-m aF-QO"B:m͛lc~Q7:,<$xOKTCQ8Iќ"Y[@]e ,wfZgFĈi^s[R !d 3b/Xw×xz/}pE,j_VQk|"WQ:n.ZHmÀ^F5iTh2 XGC і\LJ~>g<wP]fˑ @s #OKO ߭%Fa1äb"5n(b9'Q@z x"m钵\ER%YH>ǦH)e!I+R{$+fm zԞxգ"SRiFcNLh*UWNfj5p[8Y}9.HĞwv{H^pӴ4{"!L1}5ɝ x?a!xOK}_@Ws1D]a|x5;ƛCbh9įr@Zd>t[²^]̻Pͪ]ki֖G* PŨQUsf4y1@K n YFiwiWF {a˟8ʡjs[ǏE1QR##;3I6A#1lp-fPD1-BRefZt=V _RvwݣM[QGmzW|yF%& 5RGmE!◐z<׋(p@$~=7ڍ< K'ґܐTqڋѐe!ɆYDwe~l'֯TGh1ʟTZrQ1 'iÍkmC~ogt\p*2Ww#^W2+&5 WR[HL^*ej#!~v\9ČG چ߀1()l;v`-y^LזP[ cWlCSM&H.\V]V$oyddWT!´9F&y2Ka N4hn̑k\ eP ǖ4lGh}CP5*ҋyPG !BiNw7N"CeҀmA8%c+@'sc1#pg%{Oc3J>":FَjU!!~;oX\:?ݪ|cd0pdb|26o6Nɧ>H<lXүռ>-ʎ/owzǬzgnXeBB7 ^\xd4Cx?i鳂=e MĖK5R݅:r؆/#6k7XYV#ԈxXW+q^hK~8}q⏢\KI!LsȒOn9.X|$_n0w: jA ^sҴ4N֮=b[-i SP!ez.ў'>?jh! !5NXFZBXH7N<:.蝊]os{!Ӧ YQN 1> TSڳǃ:]VXbң- 10 Y/1h3X0e;>62rEWїMTHזߚzsG8i#1[9H;=ACou(6o]:qAES4;BhJ|cZ:GeA,$bi) $ 652pg8Vz8p&uE[.;M* |I@)a.$؜ZX~i\y4-uC 2E&4PXݥ8Rˊp~^^_nN<#N>\ ~nYr3j:趎J2kNum3λsYŏW{}?)B0*>w;ˉcTf纄Tl:<]rp ~I7Nt[yԀ)"})S5H'.Y 9HN4zte#\51GDeJӯ"NC$Lزo.0ֲyxxBjJu"OXiV[sRU* ir1(lCDe ^ovNym)HGOP,eם{ëXh/lBᑨZbs*=j2a!z;85n'x2]0Evme+F+ YM?d'n+I< oGY: üt{~VSW9f<$+.=c9>n?C]İ,4}*\ Fw"΃Aߙ2(yd^b_bz khbR>ض@0vT$lͱQdH7t n 4Wi0VkDN?L뽞,8l9]}Ǖo#s΁[gs{|%F% OFm{G٣bYvSK10DŽ "qO,.*B^;fX#üWuRH{f[8sd'c~~aifbhM~Du#D^vBǥP-"aАxs΁f; I`+, b?8gNsHOIϐFW[Ԛ&q%{q=nLZLd|<;┼{ &jٕ֚f?njrraL&A!O>_u;l?5k Gé%z3e5߅eafC9:.ˎ[{/$mD2\Z9TXLqH-\l ! ;+IYy+H MA]Aa>̄N<&wzNԒg:"G‡i+648I䌷;HcE7$9G/_&^ ޽7*֪c˥ r2kH\N9P}˜D@!I( +m\  $_BnWr~C(+]k_ҭpcvsh/6\8dz{S cYſ항ʷ)"{]سX/|YO;N֟l]_YFM%+T/xy}_/C1Rؼg,TL}!_6Tͯf`qVHsm9$RNI= (|n:Br G>ݝ b9{L?O]_t_J=OgES`UA xF9i o9qo0Nk^[!o"a_`qz;ibGfCkt94$/E7] \GdȮƇ1R~GC!ýQogcV+ɫ^1ԛf@@if1ݕu&.>-1;JLpzww/'_/š8Լr/v!551ƒ%~gU3"}}K<06͏+Vmֻj}+;G!v)H73^5Y&"Gi8Aj=_)y}}itlp$}\r\,qʄ{ԝ9HB>&?zS\2wuFyU|o'x v[Ri9c>A;&"}∮#[Ȟ|>Y[mF,~2\^/lԥw)`=O4`8S@XI>+gjuvv[{<{<'4{}k. kXS7+VBpa-/}w}G翫y{&ot{_UbB9/L\Vv{%▧&̿zAXb<26?z>UMQɉw3b'Ry"gUd¼e> qP)cv,v Y<.+Cop%i=ť*2(^'f|' a9RմPrᣕy'EPOɚ?*Gp% JS:.M%`JUmGc JaYE`cZQX{d;|)ŃL@? Q'jnv|p fwy'dzjYD /Ky㚎1iĿ|=XtŊ +E!_zO1;' O@vhFk>E& S^P|\y)Z|_Y_A:"O%dAfF'ur:^OOWX-[`>$##la3gkE侻o<Ɨ(RFRGڮhA#0ˏQdKd0?mF; FѮࡸX! áZҙ!\sd#^IVo-2@.,WcC鋊JvpFf2qn?ofGFε4C~Dk>f$N.Yȫ.NX0r<=9u%"IchRqoX*v6}ȋ%_촽VDnXͰi=Ʊ5) T(C+P5٭6H׫×n=CxRQz:?f4?J:Py4c&)OAژCT̼2.yjS A\; ÄF\GGdLYF-v oo1Hvӛe%Fy &0B]St {gu9x7s|]|cxE SasUS_)ͨSm~b=&pzDy*ƊhăOx ;UW?,魟yg[ [Iҡ~Ȋ 1}9iOQ\=^aOx(?olߜ\ qsz v9䯪t 1d69`7Qޣ+A3k0lMou"*:jb uCZtāsOt};-:w=]۫3w'7QqF#`gYde#Pt u%Y@a>.%hxH cgڸImf ,#2"qF( 2hI!QABcjoaz00BZhr+G,̳$nH$Lf31i ֠{PO",M PY yuOcTZHm&':ee1@ ~^Oi',~.#^lڏ,ⶐ| n=iw74yNY9 y͝ۻڌ|:x BG .coJV֝-mYT}bJJ i~Y/P;D{7ᘜ5өGV[ ^Xbh0$xExWzt/1Kf{.;PDNӞ8eTƓ3JJPjTmC6yo:ך/l̴f? P>~G<`/QǂZ/5;ii׶E4#A鞍T3 =Q26k؎ɋ7BMuri}2_.+#'/sˇDXv!7I {|iλPf%=9GM9֞_G1ʋNaq{Ώ9v|ge>_5&V@6~,4e> j҄[9UOA $n0A^|[,"$c`Aִ2;~eu2Tn۬o1ڲF JA. HM62k{zwpڛrȗV0:7ٍ iҸO0Z}WGm Jc( :9C&$"K>hj{ e.H3yEGp-0do[!ce{@,qO,wΚGqk5ޑfKbniӋ%:xr;ulqC֓Z.t+iiڽƶ %鏳<3|tya<;~]--T' qoĵgSҵ,y~—d%i*:4 $f<1U:s'8}G;ϼ8rǫ`+G ,gvh{5?ʹkzYc /dK{z_+yBBFo7+KXr@ryJO+#59Lf^'$aŰ|mu&jk1n!VHah#I sZ=D*[Mɧ/ ι ZgC{z*xz,Fsvv]1q}wZ\yhO-UjŶ{;tMC 4<ެ׆/N?T?(Ǥ[0GYlyUgmc;\8!<0;6i͔yw +}N$l2iB]j1@*8Ơt'a+tgqwQZE@$}#da|瓠|9%Nѭ4zt H#kZ7mֹu8Y#C/>A,k}2}ApQ=Sո?@bNTw2FQL53&fj=>[v6}l浢[V_$ )V=6VueJ=WPfغlKN›7&8ڜofv#-ds#槾X6zhM5FFr./T$CtQ?揖1kh@mjLۙF~/c?I1z9/۲*@+=\kigDeL~ =gʿ?iFݏo嵝@)%f== Hm6L[VV [r=\bF0u=:Mj,IJ!=A?r]G!)u_?]|`|]=.>2G:fpwᝋI!1j"ٚZm_vۨ~+i,ZZb^Uy-EG qpnmvP~w-yr+o"I.A&kɈډrI/5YiztpnĢ qFc q$}͘p$ =ύ%u=(ƛ,2LҘ &/**6߮Sٝ8*<'y99nYIauwgki1ѴH"@"\rˈsyBτ~ d=Izrzj|=h7ߦxUz+IqS2Uӝm6R@OcX";}CV2(RO&,x]ţO>0ۍ#SR(?{M ᐷy\O2EsnQ.DifTaF힅,Zq#Gݝ<F'a(Ӽۙt˄[M3SWN8ey}&A)J69X+}18̚N9j\yS^ʖ) $?SQz,kGǥ!>f1?9!6R{ kAAIC݇_/&Z\VbyST{0uzQDܻ2jO(Tϩ>ݵ#Gj#ȃFp:~L(aD,{;Wa-4/ca'KL󞐗cΝ/g.~:+m7X0kO;otLria w  COl\$HX2hN}B+/Q1;Z\I^(~ |'Ď8Qܷ1C(:9f6()|}Vqۍvo2È#C Q{ݼp]He}sR&&HXY*58Sɉ~oѴiyOoLYNȰKU<%\;!oK  Wer&F:ncAUF;dIciIўVH"'e`̟53&yt}M m{\OMuZ  ]3eg /~s"i_O?g7)o/އR~\dm Jy;۫ZaГJ9ô5#zDGHaWW+rB9:|5}svd>ggep͈#<˾tzbC})9ϱC$Ka؁~R ߒߙ\]S \K+VYBaâ+.C ϖ51Fmrԭ"w49>,tݣ)1=ymWg->A!wW[}_TSmB8 =6vJOlvlG0n"Y"'/O. Z>)y1MߡyK$9ѣt=XP/8$:8Bp1,df/oƂh|4oK$gC^G~lVX繆0BM э~A+Ѭyme1"܎Fjww;ڄ̎a;)jz.N,j)n$j ^ G CgȴSj.^z RB& K~{$D&g> N LjԂ30HM"z/iW-`5 ++zlD)ݬgzc+PFٯ~e<0L˗]/ltJ-y G+FԯPr_P!=)sg!0GWhr 0D69;oiy;F +A 9:qQ.u0ߚPf򌃄e~Z/0es(:*(NӠ??kt|]֏P$O\@."+MsYѷc(dЍ>9>yzנ{{[ {oawsf7\{3\3$û~M5Пz>k!D:ʪ\귮K0|\T}~$:h0`נo9.Y^s@t /;yK/wE-6}9iW!2OCI>ڇGr)Yy'KuL.u%v?nA_띑Y1HQ}S{sAٚ=Q#*gէXn4$E&%!1\N1o>xZ)[e-Bi#PTn*}f$"OwWbe{1fOEYGr*i|D' cϽ0O^Ml.blG >H׾U]bB^Ԭ]SM( [> Ɨl.oOw73Uqqu2=ko<?5>]Xީl:-O:75~׫h~T`t,/b=78FG"5#?}ɿwyG'Xzinb1\UrjYdxQ# <\r[BIkuHc"Copѕ=曧jW\{yU^Z}9l\O9<H<%/ˑ ?Nddѐ?vyL1?"sJ(߯߯2gC{Ye@|RoK$Y+(]j=򬼙ž8,n!R "\s RF۶i5V~0L.NYe ƨZ5m׏9u˴<+u G{HjX3H3`8|$ky5HHGQ혢Drox NUFfG%Kc8ֽ3\ qDKxRi @qLե˰4Ϭǽ= 4[>^n@Aa A]!ן@{7G<#<Fe?H<7Z/ $ƭ% d%hS]Wo6OZ)=@:GX{VG[i.ePd{;\OM^ϊ? `eM,]ޓdӈ?hq4HvPMW=Y2A)c6;'Fֶb q`$d_ e-Lw23džG?rG=ڲ+Yc^*f3WI>s0j1X_Bb\iZn[q˿,,_VmBJF>ubS?lWZ_1?3 #v b>Uc?hLl+_{|w2pPH䳳ʛ* ǨFCC~7YIUk޻g}C}19 ӯ#{Il=NB{W\ʏ'"iUߧ˽1L4zpoRA#!wS?okJrڼ{9O |wח pp.wգ?ڏ/־WW7دpû:OTZz{n_1K£g-ljO{թMÈ:z~& |oM}t~^~z~]8y{wtύ{S7^5NJ~j75ȷ?