Merged r1559:r1587 from source:/sandbox/crschmidt/noprototype. OpenLayers is now Prototype-free(tm).

git-svn-id: http://svn.openlayers.org/trunk/openlayers@1588 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Schuyler Erle
2006-10-05 14:50:47 +00:00
parent 33c37ef78b
commit 67ced536c0
51 changed files with 688 additions and 1963 deletions

View File

@@ -7,6 +7,34 @@
*/
OpenLayers.Util = new Object();
/* from Prototype.js */
if ($ == null) {
var $ = function () {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
}
/* from Prototype.js */
OpenLayers.Util.extend = function(destination, source) {
for (property in source) {
destination[property] = source[property];
}
return destination;
};
/**
* @param {String} id
* @param {OpenLayers.Pixel} px
@@ -105,9 +133,9 @@ OpenLayers.Util.createImage = function(id, px, sz, imgURL, position, border,
if(delayDisplay) {
image.style.display = "none";
Event.observe(image, "load",
OpenLayers.Event.observe(image, "load",
OpenLayers.Util.onImageLoad.bindAsEventListener(image));
Event.observe(image, "error",
OpenLayers.Event.observe(image, "error",
OpenLayers.Util.onImageLoadError.bindAsEventListener(image));
}
@@ -244,9 +272,9 @@ OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL,
if (delayDisplay) {
img.style.display = "none";
Event.observe(img, "load",
OpenLayers.Event.observe(img, "load",
OpenLayers.Util.onImageLoad.bindAsEventListener(div));
Event.observe(img, "error",
OpenLayers.Event.observe(img, "error",
OpenLayers.Util.onImageLoadError.bindAsEventListener(div));
}
@@ -275,7 +303,7 @@ OpenLayers.Util.upperCaseObject = function (object) {
};
/** Takes a hashtable and copies any keys that don't exist from
* another hashtable, by analogy with Object.extend() from
* another hashtable, by analogy with OpenLayers.Util.extend() from
* Prototype.js.
*
* @param {Object} to
@@ -318,6 +346,21 @@ OpenLayers.Util.getImagesLocation = function() {
return OpenLayers._getScriptLocation() + "img/";
};
/* Originally from Prototype */
OpenLayers.Util.Try = function() {
var returnValue;
for (var i = 0; i < arguments.length; i++) {
var lambda = arguments[i];
try {
returnValue = lambda();
break;
} catch (e) {}
}
return returnValue;
}
/** These could/should be made namespace aware?
@@ -328,7 +371,7 @@ OpenLayers.Util.getImagesLocation = function() {
* @return {Array}
*/
OpenLayers.Util.getNodes=function(p, tagName) {
var nodes = Try.these(
var nodes = OpenLayers.Util.Try(
function () {
return OpenLayers.Util._getNodes(p.documentElement.childNodes,
tagName);
@@ -392,7 +435,7 @@ OpenLayers.Util.getTagText = function (parent, item, index) {
*/
OpenLayers.Util.getXmlNodeValue = function(node) {
var val = null;
Try.these(
OpenLayers.Util.Try(
function() {
val = node.text;
if (!val)
@@ -573,3 +616,26 @@ OpenLayers.Util.safeStopPropagation = function(evt) {
}
evt.cancelBubble = true;
};
OpenLayers.Util.pagePosition = function(forElement) {
var valueT = 0, valueL = 0;
var element = forElement;
do {
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
// Safari fix
if (element.offsetParent==document.body)
if (OpenLayers.Element.getStyle(element,'position')=='absolute') break;
} while (element = element.offsetParent);
element = forElement;
do {
valueT -= element.scrollTop || 0;
valueL -= element.scrollLeft || 0;
} while (element = element.parentNode);
return [valueL, valueT];
};