my($self, $cgi, $config) = @_;
# evil.
sub regexp_parse {
my $have_entities = eval { require HTML::Entities; };
my $string = shift;
$string =~ s/(?
EOF
if($::config->{smilies_popup}) {
my $smilies = ::parse_config($::config->{smilies});
my %smilies;
for(keys %$smilies) {
$smilies{regexp_parse($_)} = $smilies->{$_};
}
$smilies = _outputhash(\%smilies);
$config->{smilies_perrow} = 5 unless exists $config->{smilies_perrow};
print <
var swin;
function smilies() {
if(!swin) {
swin = document.createElement("table");
swin.className = "main-smilies";
var smilies = $smilies;
var c = 0, tr;
for(var i in smilies) {
if((c++ % $config->{smilies_perrow}) == 0) {
tr = document.createElement("tr");
swin.appendChild(tr);
}
var cont = document.createElement("td");
cont.width = "@{[int(100 / $config->{smilies_perrow})]}%";
var p = document.createElement("img");
p.title = i;
p.src = "$config->{image_path}/" + smilies[i] + ".gif";
cont.appendChild(p);
cont.onclick = function() {
parent.fform.append(this.firstChild.title + " ");
this.parentNode.parentNode.style.display = 'none';
}
tr.appendChild(cont);
}
document.body.appendChild(swin);
}
swin.style.display = '';
}
EOF
}
print <
EOF