// 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         !1"AQ2SaB#3$ԕXqRf 4%CsT(  !1AQaqђSTBR"2r#3b ?Ox!/r\1&^ymZyZi^@*fdQ$P<|OQد~SR]g>YE5ȸ ڍn?jŻuNG+ѯ ՒTwLYqM56lV%Dv[Z(<VrLU^n2jh2/nn ]X1ZEZP-: rn"*PT3wRdW5z"EJ6oӯCƭ7~gi<,-īr-}r:T?Nr}qE ?iImI'7nTZbǾ-3r2>n|đ4M+G=:< $q[<-Y9AF7zxJjINg~8(y[|G=WuhgصfjTz1z(,LJiFM ,hIVզ&VWp!"5oqMWܼޚ}}ߦ`nSUc=˻UoE+4A*[P]v/^(YRE;axX$!e7 vTOtݤ*?*yܵHe'GLWY@MD I]4Mh*_*vhd,zBrҝd +PI}D}7^~UT5!ѓ "jY&M@0S_ro=>/05'D] ?0T'8"jeVeGΫH~IEfj*?*W2qp^Vl<ߪj7iOoU}ͼ`-;N@|T:s}/^ e?${CxtOuf_NoM>K״?O94}/^ e?${J2- vĦFvOO94}/^O/x?ܯǧ/!%ܡD;^0Cj}ձZĈJlQ:giwd)8|T 1؊(fpWC- [tZ?֤a-[!>7R4,**Dqy(꼅`7j:>Y~m9F<'fR4T#&+<rU,ٯuj/?y7V+ZOL_NWn^`У Pwt!Wl2|3cj9_rJ5,XjMYb+tmV^0M8ӮLbtlEVDiZvLVH{.Èq$H?Y| mk'O0[Q~_B%uBkf꯻0{܍no8;ˊA^xFJz//K6wFXT;W/s]/_zz<57>coI06O6қH}N_/|Mß3G/O}<MwĞ[~vI70uQ֟.-|MV<o_2{=h{}FIG:'P~.s_{/?ߗ<57x _|좔_HBO] 9%bNשo˽#s_W/sP/QQyo+؇><57;O}<Mwynknwbyo??7幯?;so˽#s_pw7ߗ{|G&|o/S.-|M|y2,o= QYuԕ,]`'a+O^[r\N,/!?=~P@t@t@t@t@t@t2<+xZO)mpAϢ]J-:`׍ZNg)O310q锯4~.g zK擇V:W6L@ꕽ߯G%.nWW ª{BL*GfT:jPӆЙq*!$БS#uE,G1:zĒ9 usl)hOaЃ d`}#xbxTm#0(>Ӡ'Ӡ.UKϨ@OjttSMxiH!nY*I'@:uat˸utm,hȌ)b$(}=uM 0P*N5:eE,TN$!JT6 }`Az~m&c %Wۨt3=1}Gs#,M1śZc;SM9؊*taL2{x"Ŭ'1N35MKejJ}>^cMN|UQOyŞ705+JLz7B`8>O_^TҦ{?Z g]1q|g5ܦݱjciEJHlגe!\u`ߏU>i~lj۸ʕ~a2*˖ڒw@d-fAU-e.51e|)Mo1:哓,+RgjM%Xˉ#N]_XaqS FM3=_ӮJ,yuf܊Kn!?#4-fЎ)Q%ixϑ0^eZ? NJZJXciRYy-DqF\m1b~4D %t)dfgBRs\$KI1@>Muo%*̳]f1>:G+I,O=> ygFR{dާp©qLY4(z}2Ҝ;D$+VTBY94r^:6s0f|,ْQ_Gz97NƌEm:wEegC0sORP~A<bb,VxRgkۅʅQ5b?qB0!ør{le^ bk.5xercAv4۲TDf[Ys͏< =ܮTf6mqEZVyeH5"\/''4<檞/&W`jT_71e;z6++hAf<Ŧj\e,OkcQMJa%iт5*̧.6{2fSɜi?iBEaNI#Y9NP,luS.JŖV o&gqʼbY%ZP* cYӸ [O[ƥcQ?QSC "O~Nθ=Vy^ǵ;wPSXn-*;[>kdnbtp~Oq}X)Jdl[2oxax>Ҵ=VrULQbfǙ=ֆw Wr6ٹeiP փEͰp,ChKOmڜOb7w'G BV!=ȯ90׳ jǦu;ZO®3<1|-YܘNIxL#gI v5ብ`׬T;SE/Zt⼏~~Qn38#/7Va~ܪ+wFESJ1_֏q\4+3XĝYv馄zue/O0JFM[@Tj@t^*QIYwa^ Gp>CiqL c {%mԨIzD (Raم U75_CA.#8O0Đomڃ6, |BaNֈ>:]AޜOI!>J%~䣴Nuczlqd88ڤH$>u@;vSnv#W:o}xtF tpU:j>}1D`z5-0b^mMZuUUUPT~?=v;m@~sm9ߜwoz?=v;m@~sm9ߜwoz?=v;m@~sm9ߜw8VY+c"{ّbI$rU@ԒtF7YSݧ*YSnuѮ$ש$IDx2$3}lm?zH"b\:_EB$2GBMAߣ' uOY޾#^o< J䛶=eز{~==D" N@j~:ܾ3߿^yKݑWW(>ݨOt_f\nH"YGSGPہB֪bbPQu0dInjv*LTn]uIbTql@7k4ckVhu_;#g'1W՚T 0Ő0@*kNz5m*ViS"< 4ԝ[b-^oBC̕jby6(6믽$,x:RQJn#bbE^"B񘤒G4uVeڣ_yu´k+,*`X^)XFI޺^Oh/1Yb%V%a!U2Dg;jzlN/qfodwy2~SC'tzې,(iKV+2'k/B&;vjxSJQGЅdĊ+3j_i_=XY/yKBĹI,TMGbLm,߳+v7oq6pOpk^\.2;$ѵw+֪cRSLYR< ^kZ1&|ڜY&-enS,2$(\Y->0}\0t nX4nn&$YHB3 -낷9vB;TcRk5垵Oz*"PTFP4,@^2q, j;ǜڮD%`IU"u&nuQ.M$qyS5(87y9:Om4vI hAui3?xeKVLS)#EvW2Nrx,3U)|<NJx1oS?5mfߊWyыti#X 1ˋAkdnPCx@#Si2"|6²qTօ| %6_=ӭ6ے Mc%>^~9+24I4Uʠ)cM޽e(,nk?s8nMm眼!t]eЩ}X">>#Vxư̂7Q $h[w 2COG{ lnȳM$ɬd@,C{FR,~H>-$εu؆SMTߠ߻AY Xb1V ~1u]f&d  #G]Iʬ2$8u SUA5tX7oWА7=7,cbc`(& JHUEzu#. r1Ҋ()Jʉ)DQe!zVl{v.9ګT5)zt`T$B=/eLJ+OޱIiаV>tztoxl<ȭܰA+JЂAduHe)Ȳq+O<۪u}Q|KY(bgi+$y+֚)*0VYVx>J:i9c#]QthZ% rP5ܱ#ZF3f)q93ǙlQΜfG&U̳6i;aJ{#ͬ8a"/g2C%qM^5ZO1HCg7A \^X]ZFnTpv)Be'Av%^ɼD,_fҽWt H IRŷoB6[Q7ёᜧírNZt^>ΐ2G Щ'CجNJp3I0?඿yl͞IVxl8J!٦0lr);Y2/<ْ9nEX{apĄ>huZVI[O4gfG܁{êe:k5a2~B[)jG!r=P#m!΁nk,,6wEgMdc󘱖L=>=רҳYޙ s ==3NQl'2rnp/k'r(C XEFbFtMfCeU)Cuj3 Uf]7=޵RQe`h.S3V1D*N?F_f)Tۋq8&QˢHQ-R%:w#.U^54KpGRiRRyΐX_b}q@VrGy켯QXR|{m>hGۺB3}vzuo+_rx&"> sؗD@tS2h8*:{EYy QKJkh]Aq.'A%]WR)C:{{r$Le`Awi:mMsUmSSXFX1DxUIB#H_`l ^W\7!584U6`GHRJ7Z3k-5~J{%$XFt(&eESXy?*6b~&-Q5zvy&fnʈDm5Skgk42ۉmRǏhq!#]S#MvrQ~QiUӿQxK)f2W'h IuPTjtdFC:#@ E0 h7 OUPT*bz2\27bHaFGn3K,3Ub69PQ!C{)S0`k@OԒ%)~+Y(F {->VYv2`i+Ax@v:%$<Q݁}T*}5`dmq8w*akQ¶)HH)'q&@{ ̨ENЮ夷Ky<01%Eiqe2G/,@PhJiU?$ef-mb;2A8IHch7Ȃ'գhƫ%w]X#rHG΢)3^?q{R׶ 6c;3GjIUH՜oxݷmdf_nBֲ]m@UMev$>[ψ5ORN+NjXYtvTF`t$"Ř~=<)Uކ 2ɘA,:mפqyvǴ[wptIHػv<LѮd*P6cֵfgN: ӭ׭ d>*@Ӓ7ch 訉$h5 =@t@t@tfc^G𝏆|&͇^>ֿGP߸[5}:},G}0뷹6~B ?'鿺> ;]=;Zm٧BEz_b/oߧϣM66&aq{wBvߧ|.iz>@OߧoLïo?wzE=𿻟Ov߷ݮD1"/[N~{==t_Pw_`v5_cS3Owgzt@t@t@t