#### bucky's cheezy default headers! use RGB; our $SEEN_HEADER = 0; sub header { # my ($title, $subtitle, $sticky, $color, $sidetitle) = @_; my ($args) = @_; my $title = ref($args) ? $args->{title} : $args; my $color = exists $args->{color} ? $args->{color} : "plain"; if ($SEEN_HEADER == 1) { # probably having an error if this has already been called # already seen content-type so . . . print <
$title
ERRORHEADER return; } $SEEN_HEADER = 1; print "Content-type: text/html\n\n"; my $buhtitle = $title; $buhtitle =~ s/<(([^ >]|\n)*)>//g; $color = $COLORS{$color} if exists $COLORS{$color}; my $rgb = RGB->new($color); $rgb->perturb([4,4,8]); $rgb->add(nighttime_quotient()); my $rgb_out = $rgb->hex(); print < $BUCKY_NAME [$buhtitle] head print qq( \n) if $color eq "black"; if ($0 =~ /login/) { print qq[\n]; print qq! \n\n\n!; } else { print qq! \n\n\n!; } if ($BUCKY_CONFIG->{SNOWBALL_MACHINE} eq "on" && $0 =~ /index/ && (time % 13) < 7) { do_snowfall(); $title = "ACTIVATE SNOWBALL MACHINE !!!"; print <<__CSS__; __CSS__ } print <
mid # print the header text. as these variables lie in different quadrants of a table, # all may not exist, so here's some business logic! # title sidetitle (nb: there must always be a title) # subtitle sidesubtitle print qq(); print qq(); if (exists $args->{sidetitle}) { print qq(); } if (exists $args->{subtitle} || exists $args->{sidesubtitle}) { print qq!\n!; } if (exists $args->{subtitle}) { print qq!!; } if (exists $args->{sidesubtitle}) { print qq!!; } print qq!\n!; print qq!
{sidetitle} && exists $args->{sidesubtitle}) { print qq( colspan=2); } print qq(>); print qq($title); print qq({subtitle} && ! exists $args->{sidesubtitle}) { print qq( rowspan=2); } print qq(>); print $args->{sidetitle}; print qq(
{sidetitle} && ! exists $args->{sidesubtitle}) { print qq( colspan=2); } print qq(>); print qq!! . $args->{subtitle} . qq!{sidetitle} && ! exists $args->{subtitle}) { print qq( colspan=2); } print qq(>); print qq!! . $args->{sidesubtitle} . qq!
!; } # sticky_button($args->{sticky}) if (($args->{sticky}) && ($USER != -1)); sub menu { my ($args) = @_; my $kw = $args->{keywords}; my $ftp = $BUCKY_CONFIG->{FTP_ENABLED} && $args->{ftp}; my $loggedin = ($USER != -1); my $keyed = (defined($kw) && ($kw->{public} || check_op($kw))); print <
bigtitle if ( $loggedin ) { print qq!home!; print qq! | !; # print qq!dump |\n! if ($USER->{ulevel} > 1); print qq!search | !; if ($keyed) { print qq!post |\n!; } else { print qq!post |\n!; } if (defined($ftp) && $ftp > 0) { if ($ftp < 5) { print qq(ftp here |\n); } else { print qq(ftp here |\n); } } elsif ($ftp == 0) { print qq(ftp |\n); } elsif ($keyed) { print qq(ftp |\n); } else { print qq(ftp |\n); } my $newmsg = count_new_messages($USER->{username}); if ($newmsg > 0) { print qq[inbox ($newmsg new) |\n]; } else { print qq[inbox |\n]; } print qq[message |\n]; print <profile | logout $lastlog | userlist bigfoot } else { # else: logged out, only display "login" print <home | login bigfeet } print <
bighonk } sub footer { print <
foot print < foot } sub send_welcome_message { my $id = shift; my $uname = get_username($id); new_message("$uname.inbox", {sender => "system", recipient => $uname, unread => 1, subject => $BUCKY_WELCOME_SUBJECT, body => $BUCKY_WELCOME_BODY}); return 1; } sub do_snowfall { print < // *********HAPPY WINTER F-A-G-S********* // Distributed by http://www.hypergurl.com // Set the number of snowflakes (more than 30 - 40 not recommended) var snowmax=40; // Set the colors for the snow. Add as many colors as you like var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD") //shitballs //var snowcolor=new Array("#C8A46E","#A9834F","#5B3714") // Set the fonts, that create the snowflakes. Add as many fonts as you like var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS","Georgia","Trebuchet MS") // Set the letter that creates your snowflake (recommended:*) var snowletter="*" // Set the speed of sinking (recommended values range from 0.3 to 2) var sinkspeed=0.6 // Set the maximal-size of your snowflaxes var snowmaxsize=43 // Set the minimal-size of your snowflaxes var snowminsize=16 // Set the snowing-zone // Set 1 for all-over-snowing, set 2 for left-side-snowing // Set 3 for center-snowing, set 4 for right-side-snowing var snowingzone=1 /////////////////////////////////////////////////////////////////////////// // CONFIGURATION ENDS HERE /////////////////////////////////////////////////////////////////////////// // Do not edit below this line var snow=new Array() var marginbottom var marginright var timer var i_snow=0 var x_mv=new Array(); var crds=new Array(); var lftrght=new Array(); var browserinfos=navigator.userAgent var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/) var ns6=document.getElementById&&!document.all var opera=browserinfos.match(/Opera/) var browserok=ie5||ns6||opera function randommaker(range) { rand=Math.floor(range*Math.random()) return rand } function initsnow() { if (ie5 || opera) { marginbottom = document.body.clientHeight marginright = document.body.clientWidth } else if (ns6) { marginbottom = window.innerHeight marginright = window.innerWidth } var snowsizerange=snowmaxsize-snowminsize for (i=0;i<=snowmax;i++) { crds[i] = 0; lftrght[i] = Math.random()*15; x_mv[i] = 0.03 + Math.random()/10; snow[i]=document.getElementById("s"+i) snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)] snow[i].size=randommaker(snowsizerange)+snowminsize snow[i].style.fontSize=snow[i].size + "px" snow[i].style.color=snowcolor[randommaker(snowcolor.length)] snow[i].sink=sinkspeed*snow[i].size/5 if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} snow[i].posy=randommaker(6*marginbottom-marginbottom-6*snow[i].size) snow[i].style.left=snow[i].posx + "px" snow[i].style.top=snow[i].posy + "px" } movesnow() } function movesnow() { for (i=0;i<=snowmax;i++) { crds[i] += x_mv[i]; snow[i].posy+=snow[i].sink snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]) + "px"; snow[i].style.top=snow[i].posy + "px" if (snow[i].posy>=marginbottom-6*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){ if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} snow[i].posy=0 } } var timer=setTimeout(movesnow,50) } for (i=0;i<=snowmax;i++) { document.write(""+snowletter+"") } if (browserok) { window.addEventListener("DOMContentLoaded", initsnow) } snowfall } 1;