// 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"AQ2#aqB b3CR$c'!1AQaq"2BR#b3r$ ?m\RV(y:8rSKmlA)hԼ_>UZ7"kVeVKܯҖ4푙YXn7E1}?r[6-Ěxu%DK{I9 iͷtwPҔ)*^KwdrB#B  ۨkd7"*Q~.ӡ,%*W7}~O41,`zI*S_Fl+iFV]3qҫĻ-ݬts}OLiq[f;9%>G8턏&.éxUn\(ZFvWRȤlRl_/3 ,nl~4{ x2b:eAUk;n2W55ʘ{ ,FRuUS-=,۹3"Fq`yƣmA/)h%_\g;it,ڝu^Uo$>=t`v$zy mmG5 ɀ/uT mQL[PE֧v i5Ui^^ՋOU0U+N1l!q6&ܳ [NymT6K;[U-fT1yy ҎQkk '] "0c` Hз&cSUs[l=#&L1i+sP|Y n9&zGqBWJP mu5n..iW[_swg5ڎOîEJ hh\b3Ӌ}޸ǀND vn] J*΅0:„{nP.*[pr֞:S#ͳ-Z k~L+ےX# - Zl@є>NtM-'9Q54Z]p6aV%*Ri58~MQLB}uhN8Q1*&찜Sy%'o$ts}^"N0{([x 8= )$&<k]jo8W/om#55:UgM9ҹӊqǣK~aJ,ďc9YeA`8-FR;/n8&9JT)OLa&_/rdHFoW ( Nض2$ :%uZf2_6fbRsrګMwrhR+z5NaE2 ;ݨjrRui׷p|ZRJC2=*F &ޔf:DhukZ#ueJӳ.,Sͼ)%:|\3!&c m]Uj_fRKeZnrS}#"꪿_֊Q!Ր@@ @(Tݧ^W8fjD~C9Lݹm@qJGsBҽ%4Jd_ꯙ_euַukM;]=fo4+O-d2# e#ڂH:%k^nIc*5^dt6WwkiuOjj587YaN%UȯEdI&@u"An4|}śS4Kc[%(M8U's'{d-dHlHrK(oIЈW5HmZxո-J*4I,p´>I2N3XzOf.%<5W֘rlc2l̗!$Q<eSa=Me89ACSJʚq~~QMVaN] k)z%2=I-.hG"A6ަCV%Zomӥ][KN>RKvjz_m$MO^_8,\="q̉y^F*13q,ctE"jkZ{ع hQ4ͭ8NnArjQnI䚖7tBw6tr?kKsj[)4ރWYOKS?_iϔZe:t^ Xhzr'r 7\4 ]3 7>5- 6dD#oNkVF[x)99EOaP'qAFN%,}:^/襆yLZ9^X5ݪѿMPJؽSIJ;ܕ ߧ Wǹt|+-My&{R \yE嶲4E9w+Cl UtJm^rSL5tr7y;+\j립˧iVĮqiذt⺋) :>6F;e42m67wuӊHW^>u+ { -_Ɩ*wpͨzi ̥[G:T_?CV̾KqCmEgi~ߺlw5 j7,۰\Iի3߹oTu-/&R=57)Qn]ՎZkNpVJ9Oq?n̝ $163[&"!>um-Md1^!;šSҚŪ᪝{+8{- PPP~j'AuU41'V**B X2YYg ,ao6a_NsH:iֶInu=yJJ>ghK t%>c!7 e ۯZۗq8}M'Z#N߸-zܰJRJOU!p;!7!ψy <j*+'Ž:Y>i65TS61LQ.5ű]Z/hUPQ5]WJ.aV}+ gXSSK ҿ#?(cS.X [ސ`R}p|E+;.v\}Tma͕l7j2yvsWY6P,LW冟mIIԈS9J)5­OevIVM*'YQ)SAL[JrܢsKx A!~PT:i\r3ƕI.ntSk-T1*pWxۣڧ[cY[e4W(DE츟F֑Dz詥U}FRm[VbU>ܵn_V@j@"/zМeAFdC@@@@VR.vHiv \yqˇAE{9.ulv4RE7F)~Ucܳ"_#ޞOxTOܖPFB)"P[мzWCmܣ'߅нPSroV t ĝ6s8쓝Hn d$Zl6l0ڶؐi/UÕ Zpq\)IҮ1MXnvqY[wTF$}a3%Z0`'o tʵ̶ f4UVҙ4Gٲd7m3qZ[}p͏Ph膠] %ҳ{24m}5Dl[$xJOsLsXۛIڐZ-m'p5*UZyk$]Wiv6Lz5Нv;UmuM\_o"3\(N pQTMZZ9EJ*J9WĶjr'*OTr\Mۘdɝ( ŽB}I ʮ6yjz_aSo }:sr.corw۞ApG3h# -4):SR^֦uc$y m)6ǢT/ 7B(phPPPPPPPtg~WwFr,|0[> pteTPKfmV-Jm۹zTTEƄdB((( J €j 4?xM}rGn Qұǖ5Gu&jE7V۩bpC>[Oʩb^"h~be2CB_x߄{ݧ:ݩnףGI/^;]nXKSefUau^1r8SP)J5"Iޑp4?N"kP- zp{Vގj "]x+,{x,;x駪i< ͺKOӻ]ݝݘ޳%(MU5|3rކ!(_1-u|kj/"r**kR"!|h)*ʀmP7@{PPPj V*(k߹_qW~7$7 8x^"EQhtEBu<<(dUrqbN{doLPb%aUUi>,}.XQ:W>Cq"e/n7 ,;J+"62n."&{uAN t"'Mk{Qۏj՝Xj|r-1KEa-3*!RK "ySTq_qqKN*d~F9ϴ7K:v4mnʗlگT}ڝm AsDTT$M@ӡ']Q>)8l-OO}׈49]oX&c5׵̓r\^sc;.C{ pt^NOOYZ1QrK#jSRufl< _#.;8BEÝEilK1BF4T!lj etPlr*gdP @%! @@*@5W@%P`%S.a<HCdoGS>Q"aDTʚ"x jeXC9ǺIMӂ8Bĉ Ubcul } "*.Osɗ^JjQ[)*9UE-]*QryT*c'?c2+J6~Zܓ8>{跖̸}e5WxZ.ӽsW͛ע~髓x,̿f+5|XGs M}No^- ڋ oՉ Kq]v'Z*Wʷ}ݝn'џx.{k]bf8Uݏv,bh3ln)AoAydw^ >y kv/ @qF^.R-sQM[.!"MJM{4S ;ƀ( 5ӭ@@fXb21a16uF"'S3UAJ[b3z✅'8#v߇,V[ZBɴ=ͨO8C˹j$,*)C@ +fAOOݢ(:"'Jtsifʢd \lN zr&֩.lc'-UqO#梉r%$kdݽVze瑻`Lr7ݝfdo6OWLQsn}?Gbn-((! D!$T_ҾŃUG]BuVIk[VETB{f+4M Q4 {nk~˥3]$>(o!B(rE-YUrfܤƺohOKOy 5:t$ Ԉ8I SS :( ?@H |(PP @sp"sZ7IwɇzqpjR4mpߌ(J${4sMi., snpqْ%ELto~&Qʹ/hK@lt _[cA2&m7Vw{`9|1H/@b^c ,5 so5rg)/̀ztۖ kΟˎ+%]ӷRH]2QSȉ.9"$EE_R}yU%nk6{rs(HAcu Q|myv_j>9~qWm%f]L7+ZL9o225{0n4K TP2E8Mҿe|Sr׭%z;%%D%tv."Cr͋k84qvNqݙ,D+ŲT.\G0l+f.H6BЅUDqyKmڻ4v-x&olN-g_Jkף2"{҈ Gr(;!Evu_cͨ:!Y )kGcO9)-|9Tf7ۀDiU[`wj%TTd륱u8! @@/ (r:"EE5$'!c^oٺDEr*D C~h _3)GG˽*l0vbxGn l:? Cu4he}hD+ -[f/|϶\O.͢t x<.tNvZ x'(fc܊߁6v|'TݶSi혩@_.ݻMܬ1MVNț m߆/כ{ISIxznlC^7'Ukn7Wq%v\+[?Y*qᰢyEhhh4iMn՘SE9+ܜ%Ȧ[x{&lXf!e-m:H#G%)!%DuB~.[^ce~)ҭģD$gr~myizX3) *kQ۪b{Oc};_H,OpL|kr9Mcjt%Dd|UO;JliDPDDSDDD舉* ̡iAM:&Y*%PPڀ@@@"P E_K( U̶i}&aCDĵBBETT^?"b.~Sp e}RmY.@IH%0^" T<[gmoIXN?vy˕qcr=ntUE J0w_2x;X2L~kgnd,aЕ:ص C.XPm#0HqU,D!qPD@*tZ8?K& z-2,_LT 9W+wIcPM4=;T@sǐ]uw}[?8JТ|EohM @ʒhz9!]@?q/Ƙo1}n8hW4{NYJxj%Nb΂:"VHiut1+@% 7BdO?o :hD((EegqI )oIB@RGM{)@kGiy/8ǰ?l>L9!|ί+rKt%6ۍ.\! x0|i}|2kK Uꍆ-Qb%P6m[!vZڈxTV(a n؟~C  WUրMtJ((B$Q( l!,'(e擋`Z*!.ATj+_}y'J {`U*QUSJZ50*B"j@L?o&PP sZ5@%PPP[N„Mg?oWn_IzMMv=GXd/&|t?ooҲ+$e^B8B!@"h пƀ@@