// ==UserScript==
// @name           TextMeeting
// @namespace      http://ejohn.org/
// @description    Figure out meeting times.
// @include        *
// ==/UserScript==

(function() {
    // Constants
    var SEC = 1000;
    var MIN = 60 * SEC;
    var HOUR = 60 * MIN;
    var DAY = 24 * HOUR;
    var WEEK = 7 * DAY;
    
    var NOW = new Date();
    
    Date.prototype.addTime = function( t ) {
        return new Date( this.getTime() + t );
    };
    
    var day = {
      "today": 0,
      "tomorrow": DAY,
      "day after next": DAY * 2,
      "next week": WEEK,
      "week after next": WEEK * 2,
    };
    
    var time = {
        "morning": 10,
        "brunch": 11,
        "noon": 12,
        "lunch": 12,
        "dinner": 18,
        "evening": 20,
        "night": 22
    };
    
    window.onmouseup = function( e ) {
        if ( e.altKey ) {
            var found = NOW;
            var t = window.getSelection().toString().toLowerCase();
            for ( var i in day ) {
                if ( t.indexOf( i ) != -1 )
                  found.addTime( day[i] );
            }
            
            for ( var i in time ) {
                if ( t.indexOf( i ) != -1 ) {
                    found.setMinutes( 0 );
                    found.setSeconds( 0 );
                    found.setMilliseconds( 0 );
                    found.setHours( time[i] );
                }
            }
            alert( found );
        }
    }
})();

