// 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 ?_NG1<:)EBV%z'[/7Vm9KץkR qA jE{(<0ۖe7ASKx+ޠY.Avd,X9S~S[B'È8U/jZSmJhÁ{A %@j:2EЧMz+ZM6v(B BOQh+=7m,{p$g^%huJ'hJ9hESuB-*5 pBO0j~:td#s^RSPHc^N4u*H#op: iz+MaB)Ơ@62_2PU?ϿHC"(/!PǪP ^ft ~<&Evk\!Sx?,JJ*O+HiAQHYj}8HAțοP\(WC1JB$5BIA MtABM*|,pd OƏEӦ@X &Wb ^(P'ᣉP"jT`׉(#VFVa`- d;ʸ[48^QgOqRDh=J* ]| _q 23@֘8l(*1[,yۦ țX bAdPt4? ,Ċb˱L! B:(B΢m,Pr/$%үQVcЖL>**P96)EȤg堪S*^ ']mc4ۊBHG5$MԀ <>yY ʊ O ȓӦE*L41UV44Xn)P>[P&|iI|6„EI-+^y0S9ZSr>Q)\* E_siPG83+'?qL :R~jkya$yݪҸsi<ŮIMMF]4% qk9u k9z |Y>t$?v=.?Ry@ "Ҿ/)d.)ɺ.5[i&Eڕ&8H+0U3٣IC Fd^)WjL{Lm,Uԑ޽Hۅs:;|+Cb-A2Ȕ6BHXbƌ:R̵ѴYI#>KՏa]1]7]+hwwnZ4֔zxƈ 3KbEm$RsA>s؊!<- iNk[[hiSyn]VIѭ#kCy:Po4ݛCFp|m12Fp/-$4r#psQ8eG{ e߼`HEMrȰ>i%{<PӶ{:,7qNh/{خ.m<2HábhXG \$G)LaJqz]ZJV(YV2'ۋ4f,c|ޘ˸[RҦUOXHJTuI.`3;EFT$R+G_U&g Zh:eЄmKYa|;y4{c-S-xc+?PM |sJg]oR&2) < ǟ 6)3ξ^4hl8$9G|'%ĎxOpSO5ꗖ|څk/e(]JZ6)Le ]]j6P֢h`hkCJ Ik &{ *E=DI"/:pzN0*9D4V[%u(Ym՜30t0NRIo>CvV $֙0J Ɣ˟z |h#L$ޡn@|uL(0r3g=YR G"DؓZmmV<$l!e%#;sةrXkr,4"󈼹jl43}V:O0U ROGkXٱ Cmsz3q ĖNmYe<)*=@hc"/7UԐh$:WhIi2B{%oe` 6쩏VG_$q|q~<1m n49De}#9gjaÔ3I ʼnVM+:?N}CdsZ;.u2 WWBh|URF,VmpvzUeכ<tMm+g9 7ȒHӟǩxFdqtz}4A㶊)H@1R79Ya1L6?}4: f9 L胗w]cx䰣I LSPwAu ZYޢb}?ub=v*F;o˩558$ޯwxy棰q޿I};WS>2Y^2\}^J (ų/ᣓn{C9h(9?;fP@7~qWM-yu7|־V;__> =AɌwڗ4HrIy#hqpĞk*Tæl]Z'R["VN`Ub u-V;~jrRǑz?䯑66#H0Yr䁪Hfe o9,f[~cʯү/)<{HeN[bGGOs0H/ީ?&x^\ )<~,嗢@=-Ș v]VY+JN\xc6tyg-?#i~{еq2>m2 / [z[Nj<~TO$Z {;E0bYg1xML<$28&~z{8=e!SF zf ; q 0еGL56AHdi A}7a7xF<)j{f}}zHUp>yn<喇鯕522s= t|uZ8.'*z0%g ,JhXQ[4D|q )*o*18Eiᘜ :LzSjz],pDa]=lJRM^噎UPȨF*a7$"F! 良ԟz*F$cɸD4R}Sb"(2%h*6ҳvKSD1^EG^;S#0LH ^{7PѢФv6S/Ҋ|ňߒfrȘ;wr~[3>$i>ͣ(4R'9m8.42oK,w2i- k iwYqwz?0q4m2D̉Fj)V^<' (=ssIm#XIDd5m hεL:MͤQ mZSڙÒ<ه2_'~WJ`Lt^CG9pEp֑'W :r~u*f[bCs g0"4y g]FؤjzmQ],uI081R 5]oh7{dt3>*ԅ#犣x P#JEqCR-+\ Cz2q'.1V]O0zf`5=Jk+~l]RȆ14/~|qnơՖ]WձfiGH#õr =J:H#)WVޡCSm \K_seo/M6x-+gi%2/*m;?1fvn@q 40j]ikhd̪wM߶cgUՖ#@OV<%՗$iE^yi_b[(%zO-c _ ˂ b6WUO)P0'/0ZesY; '5}Wh.W8=Of";>G6 _u}ʺMI#/%/-.XUq"r=$=ϕƫt$ڌAQ. zl)X3w^S[,i$W2hѫ dd|KKmB#CA2ZګV(˂`Y}cOQHv /I-|{)ހ?+8 T f2#O+HpN/.6- SH*2ݹe&Ʉ" n2mQ׮E,sR5KVV H𨫐|}C0n+vQR­ G•Ht2J=Kc*[F J\jcsW!mO7(/C"HhTU6E(e BA_˿:tN#6 ºsXźsh*̥WCK{l؎l7ߦBt]즤c kCtxDEv6eo4m^16#P*C$!m>UJZ@Ev=!1uF}1cY,!x,54/y4AF<`1@ڎ,[h!`##ð$meY `=[|Dv)i_1*j\M}ZJ¾٢A7O'?1h;{I,a8U\W/jt)m;҆[\X ⌫U r,- "$VNצsERHNEEs'h`eړF>gvɫ:F2$3|khl ~nrؘXġew+w {v-l vIڢ w=\>\y@iBWE+^;lK(~|p*: _gF4—~Kk8wѬ65fk:rc,p–C'y*_3$7aKy5YJAFt* BA/59a-: 1d䀂>Gxi3h*9F+RM+iV_Q[ۙiTiE%U? {&Y y[c QFrII ˺d =%јi.rbP &j؂:n3'Jl>-pjqvgs]MqoLB)\i/嶈z}Χ]8-f8ӏBbvLGG~I 2yIO5,,nQꇇ"JB*  "kߘz~ub8Ke#1-v`Hcl8TL7Zy<v "ML浺:}d&G-{YӢC'A׶̣q혚I%ȹ(8>z:[Ro t<$ݿ֤<teƘrkqki{V2FyR ²S1(9b"3 u;L(Z A#5QKL~lfq KN R$[ ;]1 K_~ZyL~Oҭ [E$ܻb}c@l)呔yFt,Ԡe#u#h9 B&%y=RDZK%ȌPsyON;*~Ti?~e&z#GvMwr' ܎pB$XBG "(QvtHu;OHeU v`e)l:6! Zm1@murT e3v6C<0nAXEVPM=# 'RB:rbIgBP&M]W4_Mw$RO9ipF R `~Ni|?r?+\1ڽ} fvU,Gmêvv-Dw.N̰󊥜qkۧ-<~0Yi4}ogΤ6c(rSyQC]q!otz)~;Ǣ }bҭ}Dː]$@WOJ_}[ڿ_/ڴyW^CcW?ֿM~)O;21NNb>wUQǠ?Iz־zWz~xqqJ[A#µԧLxSo]雬H: K_jC~9g5OxlōDSOlF6~kN[ۗk1c}rujs-zZGO>6ȿ4=Oƫwq_I}:Wۯp]1+{QZk>3zާչֽ*zޝ~.4O/WLvo8~>E>??I_ oOOϘrڛ;N\15]+}'꾝~?zu_sY)pWӾݮ?c??FkӇ]߯ڮs|{;ǁ&17.iOMѦ&oTϿHy