App-SocialCalc-Multiplayer
view release on metacpan or search on metacpan
socialcalc/socialcalc-3.js view on Meta::CPAN
SocialCalc.setStyles = function (element, cssText) {
var parts, part, pos, name, value;
if (!cssText) return;
parts = cssText.split(";");
for (part=0; part<parts.length; part++) {
pos = parts[part].indexOf(":"); // find first colon (could be one in url)
if (pos != -1) {
name = parts[part].substring(0, pos);
value = parts[part].substring(pos+1);
if (name && value) { // if non-null name and value, set style
element.style[name] = value;
}
}
// namevalue = parts[part].split(":");
// if (namevalue[0]) element.style[namevalue[0]] = namevalue[1];
}
}
//
// GetViewportInfo() - returns object with viewport width and height, and scroll offsets
//
// Flanagan, JavaScript, 5th Edition, page 276
//
SocialCalc.GetViewportInfo = function () {
var result = {};
if (window.innerWidth) { // all but IE
result.width = window.innerWidth;
result.height = window.innerHeight;
result.horizontalScroll = window.pageXOffset;
result.verticalScroll = window.pageYOffset;
}
else {
if (document.documentElement && document.documentElement.clientWidth) {
result.width = document.documentElement.clientWidth;
result.height = document.documentElement.clientHeight;
result.horizontalScroll = document.documentElement.scrollLeft;
result.verticalScroll = document.documentElement.scrollTop;
}
else if (document.body.clientWidth) {
result.width = document.body.clientWidth;
result.height = document.body.clientHeight;
result.horizontalScroll = document.body.scrollLeft;
result.verticalScroll = document.body.scrollTop;
}
}
return result;
}
//
// GetElementPosition(element) - returns object with left and top position of the element in the document
//
// Goodman's JavaScript & DHTML Cookbook, 2nd Edition, page 415
//
SocialCalc.GetElementPosition = function (element) {
var offsetLeft = 0;
var offsetTop = 0;
while (element) {
offsetLeft+=element.offsetLeft;
offsetTop+=element.offsetTop;
element=element.offsetParent;
}
return {left:offsetLeft, top:offsetTop};
}
//
// GetElementPositionWithScroll(element) - returns object with left and top position of the element in the document
//
// Takes into account scroll offsets by going through entire tree
//
SocialCalc.GetElementPositionWithScroll = function (element) {
var offsetLeft = 0;
var offsetTop = 0;
var offsetElement = element;
while (element) {
if (element.tagName=="HTML") break;
if (element == offsetElement) {
offsetLeft+=element.offsetLeft;
offsetTop+=element.offsetTop;
offsetElement = element.offsetParent;
}
if (element.scrollLeft) {
offsetLeft-=element.scrollLeft;
}
if (element.scrollTop) {
offsetTop-=element.scrollTop;
}
element=element.parentNode;
}
return {left:offsetLeft, top:offsetTop};
}
//
// LookupElement(element, array) - returns array element which is an object with "element" of element
//
SocialCalc.LookupElement = function (element, array) {
var i;
for (i=0; i<array.length; i++) {
if (array[i].element == element) return array[i];
}
return null;
}
//
( run in 1.579 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )