// 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       !1AQa"q2B#R3$brCS!1A"Q2aq#3 ?abk#]_Kf"gΧZo)ca$Vw} CmUD Nc/uW?_bMUmG77&i0.:D<6(\x!yu$C1ߎ|Zrunw;uwk;P*E&L4E7{M^oGIlGYIIj 3 뽷;³,& lC*ƒB3\wd*&vVxQi%҇T,=Q2`~|x ]R>-UF15/%քcw7nmץ&}UH:C _MqexknSկ} WrnݵHo&gLA!WZR_-}ɣY:ͱz٦\f0O*s/*_2 ܻvu kaSpޓʫsAh239 M^ #m Tg_/|n)|4՘`g!K$)컔,IMjtQ8ӭ!z,Oc91ſ1)8LWP#0>)I>պ?qa$31.k?U}oԈȧJ&:P;TfFT2_طX M+#]ի%fP5+r^Xk2GvHtҮ2& ;[Z2Lʚr>*%L~7lmRIuoָ4ެTPi|q?iJD2'\K5 FĂRp+Aj0 $= Z-hHt&vh6ȭsM]ue0f,-f2A#VՔWI#b\I!I]@1J#5'Li #4[ ?´cF%)uFm&UA<)DDїYA@*)KHS_ qy㣷$L]GwamSڱI^ >xݮ-!h}mM{1n #hXBOt ZM't,mHOsݔt mnv^7AO#jE{@ѐWk uI45(j׶IDw߮ߵ^K&N hlVVǸmmw9iV 1j| k>tai ˳7^6iqjy }(]E1^E@<>xuASNϷm mtZG} |N^8[P®Wq˲]Gje[Gc2wkǵ]]mfihpG ർKY USV ߄)ryⷹ+&Jsk<鏷<ƇUid{! rb,jC{Z[XA qL R5HW~T?ֆQVM2zg\j1"ȝ,t4?*q:PgcD$0^Kr> 6*Pc T~y+u*5kJGN2DHi牲@̊ X Xܷ2D`Uϥ#iDeJ-#:WPSQoVpmp-8mUKm۰.'Nwv'bC:LV!y1zez@*ѵO~~2\5WcAݷu¶G1=Ht)by 7o_ $>LrZ&o![95?6|eޕzwU1/Ul tk>3iM#퍲v۔}1VI=xзRc'+icIjdrŖR!mm$ڮXn\j08<6Ja7(7ZMiFYHxe^Mk?Sujd6K<F5ȲЏõ As$S+]Lh~pf:szꗶF9^C14.msyl+wRk*ktJxau 2׳DC4 4 D f3KiֱܫG>T:,{s1[CP1|GXd'@` E h(yg11,7 W*HaBJ0" Ľ~_Vt.MsjA4TD1]zO<=ɓ-nn8g{̧%b߹v׶jp*Ojى>XŸZvnc)_8`*6&~(-I}nxT}U\OhБ,ZiNbUF5#}CbW-ۋmIoj]Yt C!M6S1MXGZp`_ɡ{&zM LdilڭX<0v~nem{2R@⩭b34LJon⸖l@ ]2R` fңC]^>c$Mzȟ Zͣ9/Ʃ-'Z:i_T%[}k%HL7 #T>YC"|b< mf!L( EkAO/;2Gp#\|}gHK22L$7Z%[e-멫^bvlUkvcmЃnKշ;PIR<egɣV#_ۗnYKs>l|WQݡCdžlt6콣ֻlqIvJ1\G կpe6K}k%496ГBPe F&.Vk˵ٞAin4ar$fcimޤոZ[n== +0(q{nM$r=t;FYbwcz. C)*cXGmG m.L\|OZܒ E`br\pÚ [yj0(\}rͦy.tv>~mM܊.ћJq KTm릌抜U|8%6zF,u⦭S&h< ؄î #P*T7b8Դ܁R~Gsquaqj6B7mg%эgBzZZ2 L+[5# mW[oɾfo`PPD 卿K5*y鈞>ѧ(_E[mkJE4hGf԰k-ٺ)c殕$ 6eSۻLpbI%Kفjuqk{:Ѧ +HA50;p VTII5e&qsbkf;޻1xir+2 pr}fʮ9|3̈́%@Guy5dЍi!4 5?b>Bv#E jEh XClpYkvi4ި$j*8 -4mdjCa (CoWZ{gFjܣb@J{~wZ90+Ei%#KBXHW1gm۷DV%i"-,_E+. Gw72mn,j1IjYKml++" E5A+l1ip!c V}g;!w]n,= c0qKFH'a#޺s.Ƕ*Ofb<={SdVAr4lC'86RLXb}y7IK9q64oxu,Nl6y5ҏs=9M#18[f%eB W(ͫCHcE^cܥY-[L=Z9(X:W&䱸*ƒ,Ϩ<d$ {Ku,D%`H:JSn/ #&Fj)+i$jIF>jGQXeIM3l;nи:q?q[7|ۓ0ůݱj9$0oZ+WfTqĥnnfj讕JLC- ?c6j\0x n%=9 tS<ubw[vnaRI:W„1e#vs Hmn/+rZK*3$ 3H7}k$Kߺ} l{N$=%Uj8ceSNZMgon}[gs< =.@]V3]y9]*8C65p3ٚ4|*dmsb9ofvmr$]t8R: us\[Ho,/"c֮jZ2j%t<1<2 N/-w[XB7P1! ǔ (n[=Xc1SXyv[SF"bY#sVy g$7pZRF$sSuH`xC'^kbħ6>۠lk.T$ AM~:댂{ڷcGsm2Yk`zIˎ.N g 33¿珣'Fxbdu!Y aH.l$Hm\$N7SL_JV,%cwh/*#s4!Gqs cz٧]JT火v{e~}ղ 4>r)Zƀ))ڢz)۴ǭdґ:fk}"Fĉ<MbT"zg4mAohtZ[k,Ei:7: iuY]hKm4.Tgi5fr1'ᄲ'[De p_[\ZOc")˖<׻ _=wo5s *? ,iiXyI q<+z乵d柷wo"/8 j.c7 Rj\t>C%'ʫ 1 =XibGH)EjH X[";貶lROLZuryxۍ) p"Ö&'7!kJ\?Iۤ295G, W|0XD5(+,^ L"?TZQ|džVkrx6eSa& g(Rb2bin' + mW[嶍K&fE↠xq緺+FSO=bbpގۤmn+>? u}(>XrBZ,7#ϣBK~TcpIJ(u8u|4AKGԶV&ܫ氎c.9`5YN!o B 5lyV,NL1ik1NV` ?Ck[f-cv\1o~Md],* ?Vq|l]tR,BdKݾkmY$jXRo?R 5p'MzaJf2i0=.Pe@>QoB$#f2ɤJ⌧0I ‡MNHrfTXBTdA.Ԑ~t(Q%bUllG]D.8|>x9`B+#Ι`V"]_*&79|p6 SՌo`IX@H2ቇm bQme_PGbk\ucm ҒP"wQu pŏ م X݅\VqjjHS YB E=0Ư>ȷǖ%p "{ON,T|r+W;]mUR%қy* dj #Kr5mTI+Sy5AXJ"*iT|y父a 6-|/LƩ"?A}m^M~ M$3H7x`w逖e\H iZ]ʅ> 3v>gW`V!XQ5*aV[ oأu7FA!㌫'23VB`$JPq}uH ^8a}r_R(ڡ=1\ʺ Yc4`W[׭,;SPGԦ (HQE>6rME)&Ku-uNՌJh!)FJ2<M:C(<?MuUv9#}ݭbei);(Iwi!7ㆹ@v-4ʐALrb푁ֆu 5Of1Dv6Pt`hңIJ |UZ \L 5xi: $)II2)9Y5t2d.(CANdrVJ.WC@-j f~XF쾶Ps8LZ&hזƘgGB&%HK:yq ;˻T BC>X"u۳plc(uuƍ|m ܌n݈B =۶vًm 3 h:5{;|^f 2?YeU`|m Wd7-mw"\\b1+Z,ƴlWG?\>Kޭ1QXmiqS7ҤyVW}.9KUn}uCF BsEiˆ<\li_{K5FqtƘYa+ ŴptTAAUs'V{ov(Txeܧ[Ŋ^ۺ5Ax!o5tL,$s%XܺFDW,+}o_JY)"yp}S93pEoը^҃Pʜ9uS9c~9`"鐕=, si4.5=4&VdCouJÞy9?3zm+@Vӣ&kʼnI g}l c%` .#5"tHs{l"FwI Z/1<]]-Y&& =s1b*Ҝ?,h46\G3J@a㄀{axë)$môԕAnr.YG@C~b8'JLŝzrɲ8<~o[b{eG1'ٯ\vgN #,gK8%aboV;1kIz(2*¹`}^Ukj['#Y^H5&>ޝ.N Kq=ziS^|qu:#kJÏ5CF~~㭫Nz^T|KۿrV⇥Ӧ.?<H=%iM5|.`;kow<&"mi:5S=+o:`2 'OW,_P%+Ċ}S{_.JU305!C?۵/G^ZzOg`aOi