// 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$b4rC Scs5Td%!1AQaq"2BR#r3$bC4%5 ?[H h 593$Cd) di,y%`ӆC}I-H%^0`Nn_0R}2JpBCo *d8EtWx#ۊqΔ+nJri9$x3jm (rV[ĎsPSOޖ;%ޗ4 TĞlS*OXf4[Rn Yj} UO=?Xn.Q.Rˍ6<n;u=4XuJLK<5"3<ĢfLfCRA˰8bIiyOUʀNgIWuu!-毻 djlmET|ՙ L>ө ֕xN̲͔:)Dxؒ0dۺd={nh& ioIVРkaG4K3$7☮dxy 4;P?8B욜;%%Ž̈JĄ@ؒ%ES(hISRJ1'ISC @HVATZkҁN`/KQl=~)Ԫ%їWBZZ%Z)M)JJVy'ɒe:XdE'IZΒJ*{$fJA=HۇtcCG:IlZL${u$R{U<=$6@RIω?لnU)!\(S@IlM$+~K\ <5>'0X˃4 f\pM=7pbMUVӟћWQ.6żJAC[e89g,E6F[S赒HO&E)mp m=aJhRu \Ť զ6s1mB:l^iäTϰqE;y:Ē^|ݵA)C0@ƸI,WwsHkBr'X NS f|NKOat uj3߳|ZkA٨OQᄓ+M D%j$eX´} ,Kl8iv['t)j 2R U7=읣 M<ۣ Ja]2ڒrtfSE@8IAۚay1n`Е:Τa\[6CpYJ|3wu(H8QǢJB[ !MPs$'^uRc4u"FeKRTO`tC{i6+ytIƿq$zZc%t] iemE)P+ 6ҵ0.@L%{;^g5((n2M4ȹمӇ 0M'$ *jL7BKRs%qJQܝe1o h.(<,Ҥ-<+\FS2vsmHqVUUw?7Z?gL"n^, hR; Of>&rK;he欨:'Wۅ<(WĒAA`g\ģ7} :aA}ӭ}1<$ppɒV# qI.[!EM1'N 8RJsOIBMp,p\qv>k$gZpE1 TlXHUrùI-wb mPrE`w AIm29ߴ[uV$TOgwn$"wfF؎)y lIfxLs8L%9b)ִQ?iۆ*A,CO@[&QmmYCt LJkB ΝFvح AjiGꔆ[2ETrN;q+dbŹTnYI#WR TRR(iL%"&dYvի= $h2F^TuHB@n \49C3^{ۥ߭ƒ'SI5ӅqLN aOV6UBJ$rb bDjqԒXI5 gٖ5i%]er'ѵHnnɈGQPRZԭ@9P:x[Vj~#+$ 1lF)SlGW kXiCN&Y>Hr[N; H_AH#QPMk&.Lα:Υҗtq!Dڗm.+lKaI^A9V;5{HմuKj$& ESKzbGS~*:@ UOJu'HRpkYJI Mi+HG58 M-W}Љ.MSnZ @Z ̞{w{!-0]Wk:۲ 7sӤmrj0 DTgLǷ\ܚG H[[Φ$p@^u*`98ۏer2r؈jYRBGgǼq@SSܦͫ\yHv$z2PK.#>FYQ8+Bvƌ! \HzХf.ĕ|ňqJHB! k\CUec8&M[Jԝ});|[eQh@ aҖIֵ߈RH0T;RLrF>+{O!%Dk_Kf6ѥZG,+\suŰcD]:LRNy =9)3TpoJ7WV4nMx~J,+N[Mh:e:Ө#3WݭhД/#,M ԥiaUj#b"b; ӵIR6В+Қ㞮r\BeLF)!)] i*I55J%вJ@IXΪ#dRuXn;n6Qs]Oy182AE}(ޓv;֖[mÓKʕvK j:(Q\J0ۊ:nfnɛWgmeruطi| SPGC^Jݰ-K/(f2!53@Lv!IR!ÜTZRRjT TFmڵ"p'I9"h }RU>D#1YԄԵbɠIU?Nb4"H*-8r`>JGmm-mڷEY~bP5Bt^Z6F=Q>ajv- 2ގx7l}q T^dA|B5PBvӷܙqm,,BE5ņ$Y78 `B׶èj֨?Զ-ĂHR^Ѳ-nNY*TĮZ߲Dc$hUƆ04)N`NcBHDŢpCtKm1Pl x*c'[2P5Ck A9ҹZn*4c0.^Zİ;XwCl;l P9I/4$->E6PrOWb׵?TC?usub=Lk%ЕԠ Z4&žXuk %yGHԻ?lF:AAPr @S$,CIum޲M1uu~̹KL%-TJJuQ4㟻^cܪ]@ɘ 7\_eϹ_!OeTE5xW,mю]T3"wNݻj}1sHk*p"l! ꊅSG '8/ ,msk*t 2]RR)!*R}kA"wkH<ƛ 3SizToޥZh퀃2IEw?a ;Mq>[A|LiW:`j̞HOuR9Du մjh|栋piW;7cGͨa--M5J$dc|yR-IQ@'8*rJ~4XaŶVJ(1sBPHMsw48`SiR k)PȨeO(!_-=7r4юź*)!-hoJCl PO䅨&\ZJYJ2BsgA{r)@&^vMqI43!|gxV^m]=))ˁUYCo%ɗ*O[RYԒ FkgVSbuJaq_!Y(d)`Đ/;ku: s/MHQ@C08 L"sAM`.76ʄniz{ J# NVPqH]ӨcR*5\Io-q SE)()p MFa 'qD]ˍŹ1>'_-Z@ő8 ꐨ}$) dLO5m&=#*}MISJJH'4qȾc*E;TP:`8U))NteoөMⰷo7n:+Y('Qe.iW1>ϤHMiTD, @vH$1oUĂjӴ~Zn[+zDd8P%%FľL(|gB.w^[j\VyUR9{#"{]@Sk6m"=ju*-&cB ܳnnI 7j/ S(5MC؜T*ѯb& ^ 㥅ƀGJ#ٌ˨i%lTH/֝n &|dC!AR}(30#PנWɪRbZChX꫋.T! PMhS#_Zvo-H]|B*@ ʱTȻRu\]㖲ZFRufGN8īKDB٥ST7TVfmc"9Tj eJr&/U]B#H.N|`yMh4rY`Z,!.{s0B(q&S ;E هI@.jbާfo6̤>C*| !à+D *pq>JE#PYaAR)\L#uسj >&K`ΔRñmE 8FG$E"@N]'6T4®n(qI^xSB6 `pb_R[HCO"8ؠUpLcUVt]C+ Uۚٔrܢq %|q"і\At?WnݷwD>m:muy{KaLynW$S̓1VA8F]>Worbc.SsLiW}C[fB51)yDZP19w}X ܟۯ1Rǐ^6^zgZ0Eݱڜ1[ C m UW˭'rV+=E܁2[76Kt-qmC@'RF1T9JQo'"JYy⌽=޻vn9MsUaM)RHf))R,zr6ޥYSj޲/P_ [$HB@R#Ue#:⻡s7h_L>,4?XiNIE W*"3A`U K\(۪ꔕ(hr$9|BXqnJO /<xXi%T'{øy[ނ3)Srf:Ԗh7CLaD4%y 44˒(8pdOFvOne4p){a.E]^V*kIH X+R)P+) 9* G[i{WMaP g}Xla Wf#JD8:G jHϢ=rOx* r%.;(qT-JIVN0⯣ p tҽ)O< /rIQZSqŴV̑czڰ݉"l+~XB)KcY4M@4wY= æXNqJm荴Ұdv-.aB^EO?S._)ZT2Wy o~cVb[b [ %9WxO\\,"t={+RLIAY-@O\LJ"=j`cV'h MNA楷EGPJ L4B[0T#V͓`Z#ϷgUA$ 0|)()̒堄 G[ev$ Z;5q DӸp9 S( aJwkPUiTJIjХ>*eLT\4-śl"D&t:HeQ򟊊rn5pj3k1-=1ml-)Z(n/' U@%0.8D蘿P(Pۈuq KtaG\JJ5P)C8hS1.O3&&Zz#7VJu))PA9gȘ$,]IA2ڑXpޠGxSیjSnuCL2t)J  s璮}i\v?N/[fiRyjsJ+ҪiX֚OuH!svZuvmh).7p+-m:!咒Fu1*\a٧B.i zdeV p*^Zo28T9)gD6vH{kĹ#Ved/s@4[wvqgM+|9vx%1##(ѓu5k~L)[d{T\-e.r4UzR(Q1Uf%>qzؠ:|HJ*[S\;WDUK=m֔'T"He "Cpq[vV_H>huVmTeK Ľ7tx^PR+Ly==ʘGxr Lequ=s^Q~ܛ%Qj>|'Z%@d3ֱo*TBlDc`Yr#Sl b q\ ʒ8R89j m};ZuCEKПF:WEjI#"RR yG/Nu!DSGӃAVl.] sX-[se72"Aerd66$D5*x&:0VCJ#G.6En/0fm75%X-"L4梸 @!g&%-K?O}D/tHVrl)ѧY9~;b}7qz"64ko+];GMgqnIժI%,*|90$=bFp-qiSquqJRZdQM9聹Z d/̶ZB IlىU`اw)ˬNnW!ĨY$(*S*pƘ.f#Ei%i)%*N0=C-[*"At@SN,TZ8Q!:.ٷǢRb+ɠKtNi:CumidZ]fG'aEgu2ޮ]A.Z\>(@ (KEչ6Mg!uwKZThh)`RbM.>SHУ!c%2  (=$"k-FJŇhv4W 6yTE88Hpcڶ{?q@8H1NfS-Wn#dC<8"'C\,pk8e^'콾ve=zd%wS[i-J'zhށIW-u %`{R\k,}4n%_6KMDg`m'%I I=b 0>}:Lϥ.FyMi͇2I@ze\+CzuSh_yr7uvS3yzJK5U!(UDb*d uQN3h?^?;O$ wL%*#r#۶-⺼OHsSVV:NuR+tYT 2 w+ZKE9iYME}쪇N[wҕqKL[xϹ^m%e5`q$e $ ؋1_U5ӯ[vNºT-ђOo%ה;x\Rq'%]A _`mHsnR{GO\4{1 \b26R_ުnH͘[qMM'rukSRJI* P =Ϙ*FR=jumh39\8q= o+et&U3rn%<W2NҺqusXp2=Im6qiՑ gMEۓK63Q$%ġu)$N#}i*1JP-;[Όb $%!f*z.6߸ݞ[Eَ-LҐRҭiUEf si"p9JDcBgq°% 9$W*pB1Xң pL*Qb_wyફ SmcMjNŲbDI ѱZ ӡ<*&H1b1TLI }dbܸbEIMjRL:p.Ne;rАD,ljH͹6iAUĭ"K5@lSW6v%]!'P$ӎ#'0pfoKR1#tdΙupB<48-j4A9b;}"!ww;=k>۳ߐ„Vte&F҈;>JtnO }uo^ W*䜀G 5NN?x̖`BnQT+Bxc"itiihZA:AVB\?:e9l *NI9v z`m.!Fr;"})E>yiG}WRRVy@ˎ={D  */r`oJR·(Up#'9!n>>Iœ/sl;A)q) Y'̓Z~{]aӎ߄/h3GD^m<\r F拽 ˴:б)5iUQ BIRRGSF42ڵnj]TTdlzV򹫡d;%dzlI6er/Vk%*M-m,e>8:ӓG7p ǜ-q?j Ph8Nyw-=~m2=cP70v6zCY$%J!59b-\2 Ȧ"yA~agŚ(mEhyai_5DS*$ۊjcԃȾG/ * uNz{ySFٟp.K3 k+PI AGE+۞:ojB33d9s\}uVqIm>(n~Ÿ4M$5d9˵*%{hwTA˻5 m,ȄDhʜMIW`i>>Nn<ݸ:}xѕfJ^q٨BX?z_Q i VPk);|4}v5%*qLzB`Q M?U(!Y鏩JUr")b%Tܐ\ӗ-vZ.Wˊ ,)H5I-'%jp&2Ay%6Ly6{N!DKe^HTF$eC#87eKe=+R~H>T k6Rݡw&Ӷ.d.O{,Q>0sKD%?}SB$:~bJhFU'>]m(sBOUrrϥ+]=1SV, ֮OBء+CJT˥^~g_IF_ş.?ǦsƯdݧmew*}[}K7O~ySܞ^i֮^o>k>gF?3y/z^G]j)u։)*:=?jixcF:ܲzCS?EV|z85eNj}[Ӻ>";!>Wܡh(G9эrէO_?? sy=ɯ>m-sOБ}fr!si]_eZ(yj?paAʮŨ=_W^g8jSW{߇9y5P^_(Qɢ9\W,l(ߛ@7OےRv(?Gj5qcR:ٟԲ{/7ɋ]K|rܽGOr tuu4f\o#L[Sukm~\3ϾNmt ˷CbW~aOӹ:OM?)Zǰ}/W݂:9ugf_6gأѾG/оI:Zj˿k~ڧ[_NǞ-ɖOVHz|^RGӯ]|k݀cXN{/ vArSs+WϯVx:VE%{=oÕi\Z