#!/bin/sh

DEFAULT_BROWSER=galeon

if [ ! $BROWSER ]; then
    BROWSER=$DEFAULT_BROWSER
fi

url=$(gdialog --title "PabsOpenURL" --inputbox "Enter URL:" 100 40 2>&1)

if [ "$url" ]; then

    if [ -e "$HOME/.openurl" ]; then
        newurl=$(perl -e 'my ($key,@args) = split / /, "'"$url"'"; exit 0 unless (@args); while (<>) { next if (/^#/ || ! /%s/); if (/^$key=(.+)$/) { my $str = join " ", @args; my $u = $1; $u =~ s/%s/$str/g; print "$u\n"; } }' < $HOME/.openurl);
        if [ ! "x$newurl" = "x" ]; then
           url="$newurl"
        else
            newurl=$(perl -e 'while (<>) { next if (/^#/ || /%s/); print "$1\n" if /^'$url'=(.+)$/; }' < $HOME/.openurl);
            if [ ! "x$newurl" = "x" ]; then
                url="$newurl"
            fi
        fi
    fi

    case "$BROWSER" in
        # silly kde people
        konqueror) dcop $BROWSER KonquerorIface \
                        OpenBrowserWindow "$url"; ;;

        # as usual, opera has it's own silly way of doing things
        opera) opera -newwindow openURL "$url"; ;;

        galeon) $BROWSER "$url"; ;;

        # none of these guys require any magic at all
        links) $BROWSER "$url"; ;;
        lynx) $BROWSER "$url"; ;;
        
        # netscape, mozilla, etc -- these are the defalut right now
        *) $BROWSER -remote 'openURL('"$url"', new-window);'; ;;
    esac
fi

