Files @ 7fe9c07cebc4
Branch filter:

Location: website/www/conservancy/static/admin/js/core.js - annotation

7fe9c07cebc4 4.8 KiB application/javascript Show Source Show as Raw Download as Raw
Bradley M. Kuhn
Add holiday card to banner at top for next few days

Also, fix a few URLs .
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
6b0577b5052d
// Core javascript helper functions

// Cross-browser event handlers.
function addEvent(obj, evType, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        return false;
    }
}

function removeEvent(obj, evType, fn) {
    if (obj.removeEventListener) {
        obj.removeEventListener(evType, fn, false);
        return true;
    } else if (obj.detachEvent) {
        obj.detachEvent("on" + evType, fn);
        return true;
    } else {
        return false;
    }
}

// quickElement(tagType, parentReference, textInChildNode, [, attribute, attributeValue ...]);
function quickElement() {
    var obj = document.createElement(arguments[0]);
    if (arguments[2] != '' && arguments[2] != null) {
        var textNode = document.createTextNode(arguments[2]);
        obj.appendChild(textNode);
    }
    var len = arguments.length;
    for (var i = 3; i < len; i += 2) {
        obj.setAttribute(arguments[i], arguments[i+1]);
    }
    arguments[1].appendChild(obj);
    return obj;
}

// ----------------------------------------------------------------------------
// Cross-browser xmlhttp object
// from http://jibbering.com/2002/4/httprequest.html
// ----------------------------------------------------------------------------
var xmlhttp;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
@else
    xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  xmlhttp = new XMLHttpRequest();
}

// ----------------------------------------------------------------------------
// Find-position functions by PPK
// See http://www.quirksmode.org/js/findpos.html
// ----------------------------------------------------------------------------
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    } else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    } else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

//-----------------------------------------------------------------------------
// Date object extensions
// ----------------------------------------------------------------------------
Date.prototype.getCorrectYear = function() {
    // Date.getYear() is unreliable --
    // see http://www.quirksmode.org/js/introdate.html#year
    var y = this.getYear() % 100;
    return (y < 38) ? y + 2000 : y + 1900;
}

Date.prototype.getTwoDigitMonth = function() {
    return (this.getMonth() < 9) ? '0' + (this.getMonth()+1) : (this.getMonth()+1);
}

Date.prototype.getTwoDigitDate = function() {
    return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();
}

Date.prototype.getTwoDigitHour = function() {
    return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();
}

Date.prototype.getTwoDigitMinute = function() {
    return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();
}

Date.prototype.getISODate = function() {
    return this.getCorrectYear() + '-' + this.getTwoDigitMonth() + '-' + this.getTwoDigitDate();
}

Date.prototype.getHourMinute = function() {
    return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute();
}

// ----------------------------------------------------------------------------
// String object extensions
// ----------------------------------------------------------------------------
String.prototype.pad_left = function(pad_length, pad_string) {
    var new_string = this;
    for (var i = 0; new_string.length < pad_length; i++) {
        new_string = pad_string + new_string;
    }
    return new_string;
}

// ----------------------------------------------------------------------------
// Get the computed style for and element
// ----------------------------------------------------------------------------
function getStyle(oElm, strCssRule){
    var strValue = "";
    if(document.defaultView && document.defaultView.getComputedStyle){
        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
    }
    else if(oElm.currentStyle){
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        strValue = oElm.currentStyle[strCssRule];
    }
    return strValue;
}