Files
2025-05-12 15:45:17 +00:00

130 lines
2.3 KiB
JavaScript
Executable File

/*
j123 -- JavaScript common library
mail: sebastian.hanula@gmail.com
www: http://www.hanula.com/lab/j123
j123 core library
*/
j123 = {
ver : { major:0,minor:1},
onInitFunctions:[],
registerOnInit : function(fn) {
this.onInitFunctions.push(fn);
},
init: function() {
for(var i=0;i<this.onInitFunctions.length;i++) {
this.onInitFunctions[i]();
}
}
};
j123.browser = {
isIE : null,
isOpera:null,
init : function() {
var ua = navigator.userAgent.toLowerCase();
j123.browser.isIE = (ua.indexOf('msie') != -1);
j123.browser.isOpera = (ua.indexOf('opera') != -1);
}
};
j123.registerOnInit(j123.browser.init);
j123.common = {
each : function(arr,fn) {
for(var i=0;i<arr.length;i++) fn(arr[i]);
},
init: function() {
}
};
j123.registerOnInit(j123.common.init);
/////////// HTML
function $(x){ return document.getElementById(x);}
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;
};
j123.HTML = {
showElement : function(el) {
if(j123.browser.isIE) {
}
el.style.visibility.display = 'visible';
},
hideElement: function(el) {
el.style.visiblity = 'hidden';
},
removeElement: function(el) {
if(el.parentNode) el.parentNode.removeChild(el);
},
// a przed b
moveBefore: function(a,b) {
b.parentNode.insertBefore(a,b);
j123.HTML.removeElement(a);
},
// a za b
moveAfter : function(a,b) {
a.parentNode.insertBefore(a, a ? b.nextSibling :null);
ji123.HTML.removeElement(a);
},
findPosY : function(el) {
var curtop = 0;
if (el.offsetParent) {
while (el.offsetParent) {
curtop += el.offsetTop
el = el.offsetParent;
}
}
else if (el.y)
curtop += el.y;
return curtop;
},
findPosX : function(el) {
var curleft = 0;
if (el.offsetParent) {
while (el.offsetParent) {
curleft += el.offsetLeft
el = el.offsetParent;
}
}
else if (el.x)
curleft += el.x;
return curleft;
},
setTextContent :function(el,content) {
if(j123.browser.isIE || j123.browser.isOpera) el.innerText = content;
else el.textContent = content;
},
getTextContent :function(el) {
if(j123.browser.isIE || j123.browser.isOpera) return el.innerText;
else return el.textContent;
}
// TODO CSS
};