6
addClass: function(element, name){
7
var classList = (element.className ? element.className : '');
8
if (_.include(classList.split(/\s+/g), name)) return;
9
element.className = (classList ? classList + ' ' : '') + name;
14
create: function(tag){
15
return document.createElement(tag);
17
node: function(html) {
18
var div = Flotr.DOM.create('div'), n;
25
* Remove all children.
27
empty: function(element){
28
element.innerHTML = '';
31
_.each(element.childNodes, function (e) {
33
element.removeChild(e);
37
hide: function(element){
38
Flotr.DOM.setStyles(element, {display:'none'});
42
* @param {Element} element
43
* @param {Element|String} Element or string to be appended.
45
insert: function(element, child){
47
element.innerHTML += child;
48
else if (_.isElement(child))
49
element.appendChild(child);
51
// @TODO find xbrowser implementation
52
opacity: function(element, opacity) {
53
element.style.opacity = opacity;
55
position: function(element, p){
56
if (!element.offsetParent)
57
return {left: (element.offsetLeft || 0), top: (element.offsetTop || 0)};
59
p = this.position(element.offsetParent);
60
p.left += element.offsetLeft;
61
p.top += element.offsetTop;
64
removeClass: function(element, name) {
65
var classList = (element.className ? element.className : '');
66
element.className = _.filter(classList.split(/\s+/g), function (c) {
67
if (c != name) return true; }
70
setStyles: function(element, o) {
71
_.each(o, function (value, key) {
72
element.style[key] = value;
75
show: function(element){
76
Flotr.DOM.setStyles(element, {display:''});
79
* Return element size.
81
size: function(element){
83
height : element.offsetHeight,
84
width : element.offsetWidth };