Date Formatting

HTML

<script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script>
<input type=button id="theButton" value="run test" class="runButton">

<div id="log" class="log"></div>

CSS

.runButton {
    width:   125px;
    margin:  20px;
}
.log {
   padding:10px; 
    margin: 20px; 
    border: 1px dotted #ccc; 
    color:#888; 
    font-face: arial; 
    font-size:12px; 
    background: #fbfbfb; 
}

JavaScript

/* ************************************ */

function runTest() {
    debug("test running");

    var date = new Date();
    debug("the date is", date);

    debug("default", date.format("ddd mmm dd yyyy HH:MM:ss"));
    debug("default", date.format("h:MM TT"));
    debug("default", date.format("h:MM tt"));
    debug("default", date.format("h:MM tt S"));
    debug("default", date.format("yyyy-mm-dd'T'HH:MM:ss"));
    debug("default", date.format("yyyy-mm-dd'T'HH:MM:ss Z"));
    debug("default", date.format("dd / mm / yyyy"));

}

Date.prototype.format = function (mask, utc) {
    return dateFormat(this, mask);
};

var dayNames = [
                 "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
                 "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"
             ];

var monthNames =  [
                  "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct","Nov", "Dec",
                  "January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December"
            ];

var dateFormats = {
        "default":      "ddd mmm dd yyyy HH:MM:ss",
        shortDate:      "m/d/yy",
        mediumDate:     "mmm d, yyyy",
        longDate:       "mmmm d, yyyy",
        fullDate:       "dddd, mmmm d, yyyy",
        shortTime:      "h:MM TT",
        mediumTime:     "h:MM:ss TT",
        longTime:       "h:MM:ss TT Z",
        isoDate:        "yyyy-mm-dd",
        isoTime:        "HH:MM:ss",
        soDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
        isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

function zeroPad(n) {
    return (n < 10 ? '0' : '') + n;
}

function dateFormat(date1, format, options) {
    options = options ||dateFormats;
    var date = date1,
        i, len = format.length, token,
        i2, formatter,
        res = '';
    for (i=0; i<len; i++) {
        token = format.charAt(i);
            for (i2=len; i2>i; i2--) {
                if (formatter =...