// 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*Ducky<,http://ns.adobe.com/xap/1.0/ Adobed       !1A"Qaq2B#Rbr3ѢS$4Cs!1AQa"2qBRb3r#C4 ?'Kot ,P4bFRmR:<8s2ĺ&#r*Yc6FƢ AjhX s4 }:EN[!)<*O\t_2whXMͽͅϨI4S$2/V'>//߽^b<<+nlO$нoYD)vuVک0t3}67y";trātC=[e$/y5uKX UɡPiEA=AdZ5ũ-`%O5Ą$KoR REW;\q,֨ɻ۲#[eIJ{6sRhGJp&6}Ȳ*g/.0B|Ft4٤q~b>/`.:8{//7g-2($5v=s-%T&>\k$pE~EzȷrwnyjX-3u"fmNMi24_ [1pE=d0?}tKE/'[z)_~k0jJG;}F_"|  H"!rOjEI^?~ >iKd(iWu[#I3uRy|~Q?!l|QD~N%buFnG䏋j1jӾvӬQI~]HFȊA#ğO{10)O*GO`?~єisdWwؤk\1,`&W$$s xݵο-/[_=۲b?xS5l$>YIZn 'GUцL&xKQGc%4GKl;3k ǀJ=+]]Sfmh _v\yN1~$Ĭykc1mָLB1F-9 !%$/Z^ޚG:"ͅdrx90N'(?Dܚ>p"O MM JOSSj+qbZN Gj:n>)@*6q0_>;I:GUԦkiOά>[SaS1k5U%>45؋HQPy0?b1ǎQҟ 561_XxZ|Y㩱s=yډtqv6JmU'T)f[^ʵճdVHe~}6_!<5d_.'K:۪+l1^ b;1;7+AnJ .gU1!p`7^/ox/Q4iPU),ܮ mwѻomN+E^MZhN.\#k Bz BĒ^z̖/≹r;+Ewb1exL챗E5=Ԙ_q}[18Zt"K]_JZM {IubZXܶ Ē*"6#`Tֆ޾Z6ocY5e hXCˆՁɊc+<2 Ep&zyYԊ1$ҺUo[^80jTp`iA~,GF"~ ;[8e ,z(H*7i xⅉD["VEd jTQ`_u ٞg,;3/S 42P@o79mEp֯X*Y)DPT |)[9V(?I%LK*A H+kx:|p$,d&$9Q{dZml33Ϗ{ YTЎ|4;esoٽ\@뽭-*8HŖ^:ŵ_{f vGw ÔB$ GpjmC ՐZj~Q759B`xCRj| Ր||Sh\+RAYMetȭb9݌Xh\:t#tjypkli6.,=~ F+!D`$ OmfܝxhBkMhm Y c hhAv?lfn, tRB R#W%F|Zs܋p)yp]ջٽ%5۟fsչYUn)o˘ֺgz9] _yuL{X4iQ;?-(Wr[-+:@q*(iNϷ-V֤zVs:r!3i6]mdP"#qZV3ɾ;UQloKb@ ٛ!ǥj:+_K'X8ɬ6X B >ՐEp:)Kolo'.gb-?´^jYG[yb%*k[$Ӎ˯B.=wUݏ/ݚƲy)֖/6[Lѷj|!{,}okB ^ ϫ`qk۫[qb,n ow6EF~  , BDu?Eo/53698ɌKIĄ̮n erk 9۔^ e`m#^#]T \L\ T3ӖzzgjX=n٬t+y@!ȴ_NƫTG+.|N.z%m7V$UҝMiZcOR2ŭ%em! +J$xi<}'c9g[uE߻RH;beDV$VC:}R/]=W L%H`Y#%&ڱ}Lk+gEgcmoƵM9O' J*:rƝ@'^c^ፊ2==P6*¼θra=?х`P(PS3l ˼8$77y|ŘHP[엀BXxY+r֮AhaxN j4yd26F`JYR7y|+f2d3 AE'N$I^_JP%.FR|F4I; \Bm[K8fRhmS |ڗtŖ^%>O9⬾*tM8aSc q^KesrQaU`l˸0mobj0Fբ&NX,kߨYw]_>ȑY#EiȔ b5#{mV;N%m,o}` W[+v1 Ic© Bīn.QEAx1q!lD  ‡A˂|k-M'teKm2IrMSIBy)Wh\;<`"WRdj땗z=KzjzDr9Rx:UAAV[?7{{@ndwp>T-ĶN:{.2ZWpe"^9.o.HuRǚ8k<4Ȧ|xoK}>e[K 6F˗5k*F]y6OZ? Ґޠ\9bB]Ɇ+ZIeW`*Z5)SxyZً%.Jg!2IӦ$d>c@:x ;mR>vBoAԁ4jզ+QMd* 'e⾎7K(V`7FZ}چql?ږk|d'cPq )x-bHC.ѷxЙ'p#=N6YyI;cS,E~ZVid>r~dg-쒷6-=Q;8[r u6ۊ;bܾcSHuqefC7Xd(6@* TLw'>Վ׷p-fIxВcsy8UmaasJnD/?õAc "cK@hvn2lݜ7w)5E۱5WgqYK߲X# ;y6@FiEڣ*+dcXqjg)D|k)eV}놩ψkr.7b0d12Y-}D)yc0'_ݳvBL/ FD $U1=ƲWnǼ0Wdd;{8='$PT|iwXI<.>_jYY-|i.PrN΁WRtZSjh"ߙ;~nDw1Zя[ hzͷh& +{-rbHlh#*>jsɲ)P|>djFB _r1׉B$u :24j@HPp?W>ߖK"UUve ƊƇ'8A%GxSLJӪ!BK>$؃{p` 9s:4gQ uhd#=YEg9֓K-?e!?9c ѝ/9@lBK$nI[^ۛ1v/l/gĀT(5q[2Ϋ~d̹{L^1`p?z.jn դ{û!8-&K,<<榹8v[//efSon/m&} ,qJ;Iy}ҵIu=?Qdmw(21YJޒE̱:gv$lzik>\*)B܇IAFjX{owoq8]H-"維2YKlj\<>:хPp]&&deth^ ^Sl4?~$K!* JYr[1J 5I kbee?TRpo1VM ұn_TB.='n* NuXH5nPdžkT?V1\t`kB5kd*$WwYgSmԂIB҉T *tҟ岕%3!& z#Td\Uj6jky1ʦ޵ H8r4d^É5L)K|]^0{UDS{fF[VYͼy7YoM#&&w5kuY߶&> ?/OrMt\6Nf{g]p:bW>ޭu G+A,a+OxpQLۡmmeɻX}>4*;֛*q3|Cj߫}ۗ 8FkEE,VYJ*(G/ʖ;Ǣۡ{D6SNTMU5 jL )/Oiu=]]Pn;cbG«2rnZqij$}dU {2h#sNyPi<=U)`B _h OG:2]+m*6#(7n1%x$+GVSh|YCLnP4 2+Y8Ff4 d?eb}p$yFp7-k}p\CyM{!>I pX0UsyJl{ ^np:H#UQޥO5 EI&2=8|L~`ܩ[mzhm9~1CԂm-^[1(v .RՄee]EJ|>=s9Q|N[a~Hp 'VbHxI9KݜGGyXF;i,F-$a^&Za֔-$%bۈJSD˛uB+22 \y )' Oӡeލ16T$\K4W(UAO-仳o~:-N!˽v,&'*>~Z&JHLWG!&/aedc䨔Q6levČLa#k]qgz~{)R7 *_Lq8Su0̥|pBCA!~vw3˝C K0FY#px9U¶ً!o=un>J&n 'ALCGTT(5xkx^!;(dd<ܷc]tkl&#+QȃkMr׶SOr0kJ* 6* A똲Wleܗɫ~Y]Ih`lQK4zp< ޴ɫoyҳOq!:EifYXnWk7_h'qR5UNo-lgp"cBw0dR7ԧv0{Lԗ^mpgD$of;ᮏk|>S1nfu= Idz-ŌX13 eCD>GGWaƭ]XGL6!.7E,:ġ851vԬ}e;1oeu40vbE_~w: X}qH{߲5-bH'R1KWNW_6_"7tl_!BiQcH֊ICr7?;~9k}m+w]]&NE4őbʩOJ{k]Z{ )m[>2nY6pvW_ |Q,e*AkgKq,QŐn,R ?)/?/?3q{YZ^`˲mnc8&NmkkaedTBh|tn3n#V 2'!9NH2ͱ6 5w0 *]\rY.¸K;>Ҏ,87Ƥij㵺"D=tn9'>yi@.XiJ!5Qc,2FYg q=mb\jeI (52NFc﮹2w`\zTr/ó=偗Lw{Ź%`˺tYLqPqX1u(-E9uSoӬ}_K'Gzim-m$(G{RoJ`(O$*IVڵ]ns|N7rmt{*K!&Ap31@!xU*fJVsD iWRɥ*"0?kh~  =f)dҜeqCSR8] WeZUXfp5ԙ(wL/mhA}ƟC{;8e_J{N:&ɾhT%Q? MNt+) ȫeFs%;"k[e-ۋa M(ՒQ}=757FM1sUrǽ6' uȑMS@<# W<ը dZ,Z_.?r0Awi_F&]շh;ɉքf=ߦeۑzSr+UJׇ-p;ކ1]8pɹ $5 Y"zx)2gniu_Zݰc0B\F UBդnR5#e@eYfCÝANt7&ƺ ~ЃBi.kizT7 nA;3&xudl~ߘ嬲rGY4l [KXYTȏ~9l#(ڵA6c/\ݶd-ˉ]6{zƱvhZ6\U%t"6j=׬~ z.zyѾZW奫>ۉz=s 0=>⦹7|?OUѯ^fyvӝ4j:󸟧\^G>7qvֲִ:vΛ|NozOmk;#=_06ºm;[GIz^T|n)ϥ_-Χk/=Kwu5tlu@qaߧ޳%z޳ө_㮯.aCƉ^`H[>NO:}.OǻNl=>գl