#!/bin/bash

getsel()
{
    window=$(which window 2>/dev/null)
    test -n "$window" || return 1
    sel=$(window -getsel 2>/dev/null)
    if [ -n "$sel" ]; then
        echo $sel
        return 0
    else
        return 1
    fi
}

case "$1" in
    --netscape) shift; exec netscape "$@" ;;
    --galeon) shift; exec galeon ${@:+-x "$@"} 2>/dev/null;;
    --mozilla) shift; exec mozilla "$@" ;;
    --opera) shift; exec opera "$@" ;;
    --konqueror) shift; exec konqueror "$@" ;;
    --lynx) shift; exec ${XTERM:-xterm} -e lynx "$@" ;;
    --email) shift; exec ${XTERM:-xterm} -e pine "$(getsel)" ;;
    -*) exit 1 ;;
esac

if [ $# -gt 0 ]; then
    if [ -d "$1" ]; then
        cd "$1"
        shift
    else
	cd "$(dirname "$1")"
    fi
    shopt -sq nocaseglob
    case "$1" in
        *.htm|*.html) exec ${BROWSER:-netscape} "$@" ;;
        *.url|*.uri) exec rox "$@" ;;
        *) exit 1 ;;
    esac
else
    url=$(getsel)
    test -n "$url" && exec ${BROWSER:-netscape} "$url" \
      || exec ${BROWSER:-netscape}
fi
