// 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"a2q#BWb3$VRrC4t6F%Ss&  !1AQ"Taq2BRbS#4D$r3c6 ?t%iQ+ sKz\A[aI*n:5)%$ 8N̝Y]ӝMswYA=՞8JdyjL qOs ֟ ђ.˸Fr$׊r%9^dۚH^Z~z/6iMl֛;ZSW (:(4Ti\ӌ7u4EnYŷa%2TB(hݫش:+Y|M躳n1[#$) WM@8uDd.i ioZ)6&! qO&]{Nfԅy:T8scѫk[i:$Hw[ZJV LcEس|wIZu1U%&N+eU5ʧz ̛d4:G9fG9ii%(˴[Zm0a߯%Ai /*5 \A<1e%S>9҃qkOwmw2(94伅 (59W8zg}c-HeEhSzZSUPfN)9$QO$&MEJ $Jf=4JqhPږ , fy bJ5ֶu9~JW|ycE}fS"iR28QQ{ih7hYQTI*&f kh,?)M3I},zc DiiQ ]u)ڦdңWGFb A2XQ4  %iFBj2%-C)ݼP&3 Rt!Dg&_shd,︢_\zm:q-ݯxy΄QiĬ`*RqT-h/4v16ݟ8E*mK R\p%*t2*JڄRg7 HKَum(4}88[[(u&+/P.TXp+,{y}0(,V*pJjMF%w^Ul!1ukSh!c5˼acn+ǗV% rM:L۪lqy9Z"a[U4B}׈k}ّ%6)M0*&nGEnpbߤI1.nU"#yX-2gRWF5R3堖Ԛ Ϡk"sIl (bݹԂhߥ7ٔ6e^W!PN'زQ=Z-JR ˖]i_a*=t UCN֎GIꤰ.X. 2,0ȍTY=֮W.L415)M qVF#nݬDL ϋs_Id/[I9P*VڕfZxjv芄1"VRT T9ҙbzPʻY|K;˾MA]YvFU:*CH) K#mڏr|.Νe>gEiR)ӦI pgې=חS";@&&#CDUuqօ:i:RtrX5YIԎH\Fڛ۴DneEj42q-H4%$\f⌛B<CvK[#PPj{qqovVIK{K\!ZR[Bub$SΥGjm82-xҊ8W=-Y1]`ܭ7dޭo*[y (hڜvUBg(r3| \o̹e l8@HFIJR fc<u ܥv#ԡn"H)9jQ)'o!ޓ8+YCW9Qd^b]Uk6{8RiuII<"+D(ύ4[Ү۠5Ι1|R &Q$@0[[[trɐ1d+6(:AJT cwx+յVOortEai["K0J9=t:,U;r=ihO m#d"-! 35J=dMh8y*(x`Gl@P儂8ŋ_X|b .$ևFu"PPm= h[nZA]F>8&ն"=m$&tF s[!FCydū9J✐A6$̅YSjac8S*P #ם ['vZ D]:~DX d2}5R J"TTJX[*ޣ5Րym?c/0.觾SƒW-47]um_:iz߈ -ւy8 9{"n C7=QeE#inTdIW6RH?N:,9iTbZOr$dBijMEf:y Ҳ̅Rëm<$bo/RGܲoٌ7hJ{A[|(vrtK ;ZqŨV"sx\N*"ț*@oɆTAI+/SZ,q# \9XerXo bX[\y8xrs)|jiY^z;:G;I}) +!݌oV;\\rUly\:mP%]eMm( $z-].=D)6;"sjo5r.8x!( Y̕נmډxݳ\CWVϤ:SNiŜW3λsKj%HDkZ[TEt.?0z$cȒ6q2T{2"#5PzuBe\^ kL>"oʸ_qqJmاJ倶uMQNv|F\ƮKjBmU59d gN M~:6j[@DR\p rMAYO@Cm8)Dbb#&˺X0a1 CL7P-uj*JAq5p=>v[aohiHHıQC%Qw& |@:ʜҮ].Ɣ˱-(•J] I(AG in%>Q :P x%q tjumަ R$]hצfr)*R$T Y̱n=+nZڷ ֨N5R+m!MeUOMz? ڭ= >rgr{vkuNq71rw),W|>cʑ:p'KJa8I) (TN(\\g{ ȓfG*ꥦ:dJRe:XjLnÿ@Tƒ;jRΔ(qatF|ۈ) [|PRHr.C<ԷX+R)iH{?A_x U2s{^Ov}ƞo? ONrG\N/fn79N#}^~Cg~ ݂~~Cӫ/$}3'l'8/ u!^&8$$~(3v .LWfB~ >݁o('|a>`\|Oˏ ծwq-EZ+XI9jGw li6S-Mӷ{DqynF8":VtКQG*{RiN)2r\ N6l ݎ`v.Wr¼fY]qS"{imj98uqؾWbm5c55/[NŻ*]Zm _}#퉶\- hNLU8ԝ:>LBwOHadǐs*2t:Li6VU1VhZ:RmƝÉfӖХ:KY# vz+6s͢nSJHZBn+ϞWLy8GNUݯJ;7OڤDKZeKRS$$J*|&cJߊ.88Zk j2u]K?.4* [U*iN$$\5:Lbx`E%n>mih_h yIhjhJl0P*J c @Ԩh1Z0hI] ՗6{:IO]Ճ8Bl +GIi?X>]=ÒBMI]Շ/wy \oi \w.?V)wWl >zU_X_\y 7__X_zU%Ճ7ALoi FJk?7GӡV\Mk7؊g_S=he?h!1/Îo)~O-7yxo0zҪoO09T;?[AXY#7[O\tyjSmBN&ʕ8>uyDG~B|a[^{G3m<-Gi&O: ֨mv~z5 !K[WҊj)Юm}&w3sb3v=AuHyPUJIn"wG:w,+gje :P"0> 0żzy6LAKO71;zx xjƽ7? ]C۹} w/2un_Q.~ܾ??ݻ`~}Gr /Pv_ae0? ]C۹} w/2un_Q.ܾ~X ]=.er|g,2*+ KVW -p1U9eD^ ?t"2#sl$R$p];-+[ TnIW .-Lv1DԗF.X^vå uJjNkeF2/-ٮ0$)g^کm.%i%iޤ-i7x2$HvC *IYN|@-}rl-jܒӼmˮє;arM1syy/!S Jm%4tG_Pl=<..fn.$߮hmjpmSRI 듧Nd^5dލf".WH Td| %@mXZ-0.ϻm{\˄*D"qkq->DwRBA wf׵O.r܊ᆨW%[JJ5hL+[.$Yz#+$)Lwuܘg)*JZ,$y۽SV;rY66|[uPYi(6yžb>VVhX75tη?ڍpJ|B[Sm* $+-JHFe׈Vk n-%qƨ܈e@nF h```````````(FNzawT͋dfy%rn9%e/ eM]ܟ''rum%rz2+ףfS::?P%l7EٸOcnYX+ʩVSQJ2R{X8Ft_s5ZեÎuάzS~f߱ī ݗ;n#memMZHIyCm^փ<ϕ,U$]znv=z.7>FJmjbD^}>M>v*[ bާCA*J91-P=*[he\&- kij!OФTUO &/0'*UC~܋E^jq)oMΘ;unڻ/e\m7gd/qD>ՎTE| Iӳ_NsJuW0TI[%rC⵩P5(Ѩv?A&nh;!N/Q1\iOp=謴ߓ'{a. nd}s'!^LK<'Z.j]n͵l;:b0˲BP Ɩ3J&FO؛6n표[V\tAlK)eն2RD}杍bEWt % \!QB0^}````m5uÒn .%Xe,)H$h/bFI̘%Jl)$$+PJ1iyuÐljOWcS-FS91>e[O֛XRt+X#`9>|r`1Q]tҝ48cӠ;X\x{p- +JTH5)$Tݑ)7?~kUN:~3ɎꬫlLi_W8{g܏/W<>cQux)^}(۽GᲟUd?=~)wrruSLJVxtcx?XMiOX_q^_žM|ߚ4yg^_^+L<(מ yZ}V~)J=?;#OH<)W=*p?wwg:ur+3#oWMu{Wmy[ۀ99h'ժf!|[tܔkZ^O3MyW^X|>揀#j+߉Zy]\x5`Ny?ynG/_-WO|wݿm>kɩ?|'GS^-|^6|nC??> ^Rrs{wm|_3TyL5p|3Os?t>?Zk~1ԯ~11>N\iGǙ/v-x