/*
	user_adjusted_date.js
	gameskimo.com 2006
*/


function padZeros(toPad, count) {
    toPad = toPad.toString();
    while (toPad.length < count) {
        toPad = '0' + toPad;
    }
    return toPad;
};

function adjustDate(date, formatString) {


    var d = new Date(new Date() - date * 1000);
    
    var o = '';
        
    for (var i = 0; i < formatString.length; ++i) {
        var c = formatString.charAt(i);
        switch (c) {
            case '\\':
                o += formatString.charAt(++i);                
                break;
            case 'a':
                o += (d.getHours()) % 24 < 12 ? 'am' : 'pm';
                break;
            case 'A':
                o += (d.getHours()) % 24 < 12 ? 'AM' : 'PM';
                break;
            case 'd':
                o += padZeros(d.getDate(), 2);
                break;
            case 'D':
                o += new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[d.getDay()];
                break;
            case 'F':
                o += new Array('January','February','March','April','May','June','July','August','September','October','November','December')[d.getMonth()];
                break;
            case 'g':
                o += ((d.getHours() + 23) % 12) + 1;
                break;
            case 'G':
                o += d.getHours();
                break;
            case 'h':
                o += padZeros(((d.getHours() + 23) % 12) + 1, 2);
                break;
            case 'H':
                o += padZeros(d.getHours(), 2);
                break;
            case 'i':
                o += padZeros(d.getMinutes(), 2);
                break;
            case 'j':
                o += d.getDate();
                break;
            case 'l':
                o += new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[d.getDay()];
                break;
            case 'L':
                o += (d.getYear() % 4 == 0) ? 1 : 0;
                break;
            case 'm':
                o += padZeros(d.getMonth() + 1, 2);
                break;
            case 'M':
                o += new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[d.getMonth()];
                break;
            case 'n':
                o += d.getMonth() + 1;
                break;
            case 'O':
                o += (d.getTimezoneOffset() <= 0 ? '+' : '-') + padZeros(Math.floor(Math.abs(-d.getTimezoneOffset() / 60)), 2) + padZeros(Math.abs(d.getTimezoneOffset() % 60), 2);
                break;
            case 'r':
                formatstring = formatString.substring(0, i) + 'D, d M Y H:i:s O' + formatString.substring(i + 1);
                --i;
                break;
            case 's':
                o += padZeros(d.getSeconds(), 2);
                break;
            case 'S':
                switch (d.getDate() % 10) {
                    case 1:  o += 'st'; break;
                    case 2:  o += 'nd'; break;
                    case 3:  o += 'rd'; break;
                    default: o += 'th'; break;
                }
                break;
            case 't': {
                var g = new Date(d);
                g.setMonth((g.getMonth() + 1) % 12);
                g.setDate(1);
                g.setHours(0);
                g = new Date(g - 3600000);
                o += g.getDate();
                break; }
            case 'U':
                o += Math.floor(d.getTime() / 1000);
                break;
            case 'w':
                o += d.getDay();
                break;            
            case 'Y':
                o += d.getFullYear();
                break;
            case 'y':
                o += padZeros(d.getYear() % 100, 2);
                break;
            case 'Z':
                o += d.getTimezoneOffset() * -60;
                break;
            default:
                o += c;
                break;            
        }
    }
    document.write('<span title="Time relative to your PC">' + o + '</span>');
}