// 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         !1A"Qa2#qBrSRb3sT6 C$4u%&v8!1AQaq"2BR#3brSCs$4& ?%wLja)I*4R4kLT{ZJ@^רisR)")V2rJ6-e܏.PdVj%(65:ԫkTTJK2KqqKu!sAD*e(H֫)2-[K.fKFńEw'R٩5jq.CU^Cpg ܎^ˮ7ӻVQTZw!Rc PpD?;DazDUe#T/KfZ7'.3Õlϗ]b $jp--X)]R9PB/Y}CI!(x 1~7ι(mro-'Zx mJՅJmeG4rہ=1.kFjD>}t'M,bخ7D\ r|D`QwVOy}{{Q5|jm̱Mʙ՘uڊ9R%+U(gyhwF'\Amڎ$E_|:2~Bn-Feha /"JsqB'mU6&6'8eߒHK3pSM&*6Ҟ-Fj^">>mvO.v-;|Jn3$LD";t k:+U|Omg^gnLGEp3tDK1F6M"OoFEѨY|o`;QKm3"KThѕذO4KMQ'h=]G=dDp}#Tީt$$>iIye{@.a ܇@>>mqYۭ0 2vIֻrڇ̝&9h@Td+{xL5/>g`}#Lt7&t[_ngeB(ml*[im2,dž< }!03vWKr.MXńBNx'T?TljoBUt9VmΊ0Ń~ HJnˍ- "a+ T'߫uKE<gtkQcAbVt;O/ԣ堨)q;TPUʨ⇶"Φ*(LJLDP1"H*Spv8KC.-V @PBb%2P$j2fGȉs)-BD_Yo`y) q$xI5IRM0 8 e91LJd~?mrԋֻQ0D} 2RΡDEC/?+CdxI:ݖBfs2F/.Q'Ŕw6$ʹ%ISM+ƔRR+@1$S8V pIIX+2{]$ޗun :?e ))*ZPU'Y7MM M+R4]J\ЀӜg8>( }Sn2!. Z)iRhRڥ_]154I4\s_z7 غΞj;QB8d8'z.2i Caaէj uu&[:c]5RN:|[s&kKH{zPzCk6'cPkLq-[VԠ \5͸PHHg8OWo2G%͖l[q-[!6JJ7huAL Λ_D,77(RDeRy,7qWo08 N6_-m1dȱrs ju쮔8|=1nso7v18{Fj)*:]G$s[K@X=/;׋!!2YmMҐꔲh6PW50B7\^GIzN~nvA[~S?9BRAx]l?Kۯ^Fd)h\o/#bDB[h w&Tq㮧˛@+95Jc<^bڶ&9$g^zǭo]--)w(IqMB^Zکn[IĴ!-no6wU !Q$qq5@j~,Q"4ԆHZ6*hF- D#3Ə @&7t<!k).ǿa<:>c,z.6 ˭0ʖ)Gp)(Tjn)uBIm)Q2 PL 16"5u:_C%}; HqU׿M̚⹌}#O:!g-;Lvqͣ/#*ۏ?~ow*JhUMj?\{FybQ#C8S:tՃ> /Y"!̾q J(#hp\GF1n:tX HF KR _ E<rm5?\#*6;mTiזӥc[YNHͻ_~t׭s.t_&J2A cMr;֮ v$,5?c+izbUۭTߢZ+NH 1HǨG۞P_-.!G?o^E+^;v׻AE3CW>fn9 \$nӀhHQ҈Cؽ9iȺl6(U:7#PXWTPJE[m,64fǩ9=c_}?%5*#(ubRbsRW&!cal=oWuϭ+-[;kDsZu*AO ӁrWs[gt{SFgMk4TI<$s␐ExjmsM!Lp^oճGӥOLJaznEC73-Xh-8:ceZMy.mSø-N>Ӕ67W3uj,j7xh.:ö;FuJ:/<iө m$*I Pd ,^HewM& yY_FewM0<Q_ɣXC(ǡ철̘v&HBJXPsR^p<5w )`x~Ӎ r\PQLdr34ෛ|Ƀ9s--դz˫R\;ʒJM =lhiG♎GUk\ KcKd`˩#ӡ8Eeێێ5%m (UTiv+:/ O'DMҋhs44X IwN aV,^z|:ڤvSe %BxI:mF{"7+gUsK.Ws<0@0#Y_ZzY+4k`CV;?Q_ɠq"gT%2ɲgE]sqM eֺu7M^ҷPuEn:|󸈺LɅ.su8i `)*M#iگ赩㩾vʅ`@dJ^/97L^|v~pL eq.He*JKu*xj)NMvuN ޳'tԏF~hxC]1_r2\mL:H Kh@;MoݭoQG%zՌSS-75Vy $.-$tc?_[|ޣO}ۯ7ndegq}ً,+.HB޵ӥMkott/Ե@n?E3d7΄&y?9C ~щZy֢6$OMko}o==۟ˇŖMە4o<">w7ݭoQDlZǁzWz%ubWszjf" X^T$)a*YJh +nAM*niާ{_]PWyL;t |+RVH JRu=]?Bާ{k3t߬u׍żX>~;-Fِ[|Vx{u\m)HBovmZ5{\C8Ehqg"'򦮙_R!hƭ.+KIp}حed8;k+W*akJ[QRm P40: )U&0~scp4ڜ<5^& (@)ia#׳+5EnMkNh$c/ }@/[@&xioEȭId6M^乴Н;UKh]6+$[NHزlZE-ЋT;#Gq Am*XBc'@DI{\"߱rL36 MiܦJp ) }hMx_lW92wKD86nDg[HmЭIuARk䶟ߵܲnHm +m'i_M'0p4APp]|j'ֵ9b+ C1+:@9~_ЂsN,cWt `s  X?xA9~'B1+:@9~_Ђ7+۠15t)F $ ,5wchޡWhyJF*~jE5BihZP[I) +٧b{KCBgwn5~M#e>ÊM@d. rg@Xuȉf3UC&Z[ڂ\V,zDBM9ٌtUƖJEq=J^ & E0vxPb2@ &'2&Pi)*C*r2 !D)$~TYu 祾9ɻK$)Q&Hq[Sk^⩎cטx^DP{ * q*7IHx*H)&9I*Q@;J$0X2 oZ?LDB4>M %D2 l{N]3-1J}!kBE(8E\8G z?%[WQ7 Oʘ-͛c T‘sRϷEvaųKfzi WC'gߩ9/kHӨP'8/jV{(VQeWkuJ徊9¡|Ls}Ie f܅NˋEhQ`MAuGի-֍CM $qb/Ta>KڬY}XS ҄jR+WC BmB,!C"ԆظHFKAT%NmoƪԻ, jLҍ"(ykշ{ERZSYjpNH1HDzbybLK]V6ҞqPCJQxv׾)YjVBrMe-)3p`~EB\)uWzved;v;JZyicoCdrzVmHw!=yGH{jsEOujЅ6+Q둹e4=^n)LR}i+N#S- QfRvj)TnTsL˲ٌjLr%HRi]j;&խA ;,]yzpk)*^D=|MÌ7!=,A0ى%HmyYZ]%Ĥ(%tڕ8quUةaPE')Wښᴹ<PׂZHqp 9"Dn|)a9n%8.2 JqOa708$aâ8 ]Q$8ӌV7`'#Yw>ؖ鷨C8VVBH4"H0Jд%ev4aF"c;e[{Z=Sfy-7+}# fb4y'i؆Rq{EJcข.1\ NԁIOE*^CRPkŋ)o7y?*Uqk4~FoM Ӫ9tC;|@ǟO%ƹ4D..ڕBH[I8ң8T9;PϏXCu)g-u4Uِل{eDoew~[ޓr$ $:!A5{xMEu\i.DĉO!b}{jmmj/BƸ Ec%LLldZ-S<ɘЛ%-ؚ鷨C%[h3.uHDWf d)A$H4,#ݤ*,E]~QtkY2ecÔƓVOu8#2 vُh8 }v,(s*к-"`6(V!qkTi)+Yqt%)EZš Kz;yvx˵XbLoE!-/-)IKZܵ2#[Sv X-u>sj\ 1$|-H$( MrQz%eoT8zD q1 'J !d{jU剆nO~51X8xeRҦf@qKɡn-8c}Z2--k+u!l {/M 6)QFEtdIe ӓ%|ښ^$ߩ&ȥ]qwK`J1}) *2 9>.ݰ Zz*gClC5zzJ*CzĻEm49̶!"irַ9l₭&], '',2+8hs$(:AXH)(Wθq'Wn.|J-OsRT+oG]d*e0 S>0  3x\Ar}>#Ǖ!HS/r1@ q- ![”)4ۨh؀ޤ s p*ڭzTd儿扊2pű6Z*/.%meo[@ 6~=ǰ{svиqA@`_055ʊx)-RYHu 7+]r(5*EwQbjp QA6WNŎv*%)kh UmPtֵh{H}BѺXG R$Lj:Keoά!JjЧn1s%ASa^{2Ϋ\8tڜQȾLxP`]5J>2\d LX%@oW֣O= 8gL>n {8 ^8X|v$fN\[̆9qT$o 9&#fU䵨\  鉍&e^/9lZsZ֗`J((²x" S RyKJ4:H"t>JģLp\LM-]+W4KmZP"zO]/TaH6~sk8m4 :w`S\Ob4 u\q_œN1Ц!ΘzyU5&Dk415ŷ N*R9r .ș1dY<'$8qAS=_Z`Т: i9ĔXo^sE_8 t$#TE[2^ vS%KQ%)5q,, q/.%\%d\jBB 洴,$% ӅiZZ^CXDvZƅgj{Aj] H1UkS:glU)cN8"Rvk‰ j+" Xbe(|vևS=}q]7jjܨ䲧 'uRe4êo RPݪF4va vcz=PTAOʯR}gAJ}2o .cfm(q s̭Ch+WahP05#qyy8myꢒ)ҟW{*(Ā'{"sCeۯ(:`%b oc8Ф##ZB9;P1Zs~X[o vc1O#)y.7qFL.ǻ)kخJ>vkm1 eF5HOAhXnFF m&ɸZ&7-L8C*XZk8vq""\01[!$UN ĔA:4gJ7ZQBxTws\ZTC\wwěTm#p0>*|GWm)01p^'E z/'֜1Ͱʉy Jm^ ܹ H[h6JˌIR;s' rD(b6햴ՠ$CJAtcbm\WĘrSmHBP @8'.' s&kâx#ZaLGp<]7@h5ܪ#J|~9H:gp<:_/4 b6c!ƙK| $vpܫ]$LLMN3BjCP ] (wYͶp#;\㥴6Rn{z`Del-MB6MoXPNp}ՄHoB5RR􈉻E[Q- nX%oZqNW)KY$jάc! /Q,N&%^eaf5v*-;jXi!U@ٮ'u5.H;DzS۶u)Ƹā Y:}2ĠbdlqfɊvLy`-l%4 p]tmyst>{]5|.DtEM"|T5e[.9@Z*8m[W ]\ҕ6wGOcV*tJY[NSr*M}O{Zp1o]DS~t#eޭ/"Hu$X͋E MGӝtTDpKe_\j]dBSR qm˖Rnz-/[ŒMkWteल'}L%5?..30FnF ڹZB̉*iԀ-8HZÛHXGs *Wz4l(nBP}ƾB D5(UN(j*챚C2L{$ +TCߨ5öd?)g/{Y$\c^R @H4P ExVPjH:銄#LjS\k+yHI qI8  ޭq/2e-4BIp:j >k{eޣU\LX0Vi/V6pxMgju ӸmN9:Pi㺇u!m: JEAkZ<DN~fݯ6d˺DF\p4UI[JR*Iݪ{iP7U)ϰ IѠ5Z2 = \J\%Kj+lw%T44u ꑫgTTh(QBP-j۔ζb @ @ @ @e??h~!E?\i9a/4c-AFbjG=)}CcjӲ-wmA}d;,M*quQ V mm Ӻ+#]ǟ9n2+ FNqa(ئq;ӺofkZ>Ҭژe LˬNǵe^#LR CjBiALQl^܁4B53vuجdD% })(u\=k˪d VֈJS[@+g \;:8W&/C.),QA4F(PM̦̄c lm r@8{xuƆ-" y6E"\7`0/<ʒhxi&mRQ*sKWXU*.MtF2Ԅ *SZ;ʻ..CL-T_}@}@^0eXHzw",Cn) [*Jj-K(uŝjjӁ˶6^,ֻL|w@RBUi8uZD#N 6'ܦ6ӝm HjCx٠29FߪZ1an!v0`ך-pCUP箛Wx{u;d8]9s,@zak#Κܫ] ȳZAJRA)PKk>°~FDqSe2ψLG6}&⳰\C cIRڞ͍5yUS1iuNޓ9td˅;{돵rחp^n켷,@>/9g9cgw.•פnc4}Sy+>#\?~%ũ>g_Z}SW6n߫^m޼ũ{ړ\b-Ǜw7arߢ}yoѼgm_}Ou/z[k7Ge }u(|7of<-Y/p3W1ϴ>j/iy*y{?o߿ogorQE~=ϭ?pZYq}>csG#9+Ƽp-d?>V~8 ~q,7buKN uWnnNDwq߷J{i/*E3p] =o-ܯ'ns