web/static/admin/js/core.js
author ymh <ymh.work@gmail.com>
Mon, 12 Jul 2010 12:03:31 +0200
changeset 58 ec1d0e7dcb53
parent 0 ecdfc63274bf
permissions -rw-r--r--
Added tag V00.09 for changeset 3a3c15c462f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
// Core javascript helper functions
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
// basic browser identification & version
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
var isOpera = (navigator.userAgent.indexOf("Opera")>=0) && parseFloat(navigator.appVersion);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
// Cross-browser event handlers.
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
function addEvent(obj, evType, fn) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    if (obj.addEventListener) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        obj.addEventListener(evType, fn, false);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        return true;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    } else if (obj.attachEvent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        var r = obj.attachEvent("on" + evType, fn);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        return r;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    } else {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
function removeEvent(obj, evType, fn) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    if (obj.removeEventListener) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        obj.removeEventListener(evType, fn, false);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        return true;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    } else if (obj.detachEvent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        obj.detachEvent("on" + evType, fn);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        return true;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    } else {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
// quickElement(tagType, parentReference, textInChildNode, [, attribute, attributeValue ...]);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
function quickElement() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    var obj = document.createElement(arguments[0]);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    if (arguments[2] != '' && arguments[2] != null) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        var textNode = document.createTextNode(arguments[2]);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        obj.appendChild(textNode);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    var len = arguments.length;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    for (var i = 3; i < len; i += 2) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        obj.setAttribute(arguments[i], arguments[i+1]);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    arguments[1].appendChild(obj);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    return obj;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
// Cross-browser xmlhttp object
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
// from http://jibbering.com/2002/4/httprequest.html
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
var xmlhttp;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
/*@cc_on @*/
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
/*@if (@_jscript_version >= 5)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    try {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    } catch (e) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
        try {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
        } catch (E) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            xmlhttp = false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
@else
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
    xmlhttp = false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
@end @*/
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
  xmlhttp = new XMLHttpRequest();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
// Find-position functions by PPK
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
// See http://www.quirksmode.org/js/findpos.html
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
function findPosX(obj) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    var curleft = 0;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
    if (obj.offsetParent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
        while (obj.offsetParent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
            obj = obj.offsetParent;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        // IE offsetParent does not include the top-level
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
        if (isIE && obj.parentElement){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
            curleft += obj.offsetLeft - obj.scrollLeft;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
    } else if (obj.x) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
        curleft += obj.x;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
    return curleft;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
function findPosY(obj) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    var curtop = 0;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    if (obj.offsetParent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        while (obj.offsetParent) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
            curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            obj = obj.offsetParent;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
        // IE offsetParent does not include the top-level
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        if (isIE && obj.parentElement){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
            curtop += obj.offsetTop - obj.scrollTop;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    } else if (obj.y) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
        curtop += obj.y;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
    return curtop;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
//-----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
// Date object extensions
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
Date.prototype.getCorrectYear = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
    // Date.getYear() is unreliable --
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
    // see http://www.quirksmode.org/js/introdate.html#year
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
    var y = this.getYear() % 100;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
    return (y < 38) ? y + 2000 : y + 1900;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
Date.prototype.getTwelveHours = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
    hours = this.getHours();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
    if (hours == 0) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
        return 12;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
    else {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
        return hours <= 12 ? hours : hours-12
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
Date.prototype.getTwoDigitMonth = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
    return (this.getMonth() < 9) ? '0' + (this.getMonth()+1) : (this.getMonth()+1);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
Date.prototype.getTwoDigitDate = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
    return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
Date.prototype.getTwoDigitTwelveHour = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
    return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
Date.prototype.getTwoDigitHour = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
    return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
Date.prototype.getTwoDigitMinute = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
    return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
Date.prototype.getTwoDigitSecond = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
    return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
Date.prototype.getISODate = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
    return this.getCorrectYear() + '-' + this.getTwoDigitMonth() + '-' + this.getTwoDigitDate();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
Date.prototype.getHourMinute = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
Date.prototype.getHourMinuteSecond = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
    return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
Date.prototype.strftime = function(format) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
    var fields = {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
        c: this.toString(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
        d: this.getTwoDigitDate(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        H: this.getTwoDigitHour(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
        I: this.getTwoDigitTwelveHour(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        m: this.getTwoDigitMonth(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        M: this.getTwoDigitMinute(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        p: (this.getHours() >= 12) ? 'PM' : 'AM',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
        S: this.getTwoDigitSecond(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
        w: '0' + this.getDay(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
        x: this.toLocaleDateString(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        X: this.toLocaleTimeString(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
        y: ('' + this.getFullYear()).substr(2, 4),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
        Y: '' + this.getFullYear(),
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
        '%' : '%'
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
    };
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
    var result = '', i = 0;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
    while (i < format.length) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
        if (format.charAt(i) === '%') {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
            result = result + fields[format.charAt(i + 1)];
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
            ++i;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        else {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
            result = result + format.charAt(i);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
        }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        ++i;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
    return result;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
// String object extensions
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
String.prototype.pad_left = function(pad_length, pad_string) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
    var new_string = this;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
    for (var i = 0; new_string.length < pad_length; i++) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
        new_string = pad_string + new_string;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
    return new_string;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
// Get the computed style for and element
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
// ----------------------------------------------------------------------------
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
function getStyle(oElm, strCssRule){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
    var strValue = "";
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
    if(document.defaultView && document.defaultView.getComputedStyle){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
    else if(oElm.currentStyle){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
            return p1.toUpperCase();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
        });
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
        strValue = oElm.currentStyle[strCssRule];
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
    return strValue;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
}