on run argv
    set vButtons to { "OK" }
    set vButtonCodes to { 0 }
    set vDbutton to "OK"
    set vText to ""
    set vTitle to ""
    set vTimeout to -1

    repeat with i from 1 to length of argv
        try
            set vArg to item i of argv
            if vArg = "-buttons" then
                set vButtonsAndCodes to my fSplit(item (i + 1) of argv, ",")
                set vButtons to {}
                set vButtonCodes to {}
                repeat with j from 1 to length of vButtonsAndCodes
                    set vBtn to my fSplit(item j of vButtonsAndCodes, ":")
                    copy (item 1 of vBtn) to the end of the vButtons
                    copy (item 2 of vBtn) to the end of the vButtonCodes
                end repeat
            else if vArg = "-title" then
                set vTitle to item (i + 1) of argv
            else if vArg = "-center" then
                -- not supported
            else if vArg = "-default" then
                set vDbutton to item (i + 1) of argv
            else if vArg = "-geometry" then
                -- not supported
            else if vArg = "-nearmouse" then
                -- not supported
            else if vArg = "-timeout" then
                set vTimeout to item (i + 1) of argv as integer
            else if vArg = "-file" then
                set vText to read (item (i + 1) of argv) as string
            else if vArg = "-text" then
                set vText to item (i + 1) of argv
            end if
        end try
    end repeat

    set vDlg to display dialog vText buttons vButtons default button vDbutton with title vTitle giving up after vTimeout with icon stop
    set vRet to button returned of vDlg
    repeat with i from 1 to length of vButtons
        set vBtn to item i of vButtons
        if vBtn = vRet
            return item i of vButtonCodes
        end if
    end repeat

    return 0
end run

on fSplit(vString, vDelimiter)
    set oldDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to vDelimiter
    set vArray to every text item of vString
    set AppleScript's text item delimiters to oldDelimiters
    return vArray
end fSplit