function llx_fx() { var This = this; //positioning this.setPUPos = function(element, x, y, relativeEl) { element = GetElement(element); relativeEl = GetElement(relativeEl); var left = This.getDEPosX(relativeEl) + x + 'px'; var top = This.getDEPosY(relativeEl) + y + 'px'; if (element.parentNode != document.body) document.body.appendChild(element); if (element.style.positione != 'absolute') element.style.position = 'absolute'; element.style.left = left; element.style.top = top; } function GetElement(elOrId) { if (elOrId.tagName) {return elOrId } else { return document.getElementById(elOrId) }; } this.getDEPosX = function(element) { var o = element; var x = 0; while (o.offsetParent) { x += o.offsetLeft; o = o.offsetParent }; return x; } this.getDEPosY = function(element) { var o = element; var y = 0; while (o.offsetParent) { y += o.offsetTop; o = o.offsetParent }; return y; } //fading fadingElements = new Array() fadingOpacity = new Array() this.fadeIn = function(name, element, startOp, endOp, startInterval) { element = GetElement(element); if (startOp == undefined) { startOp = 0 } if (endOp == undefined) { endOp = 100 } fadingElements[name] = element; if (fadingOpacity[name] == undefined) fadingOpacity[name] = startOp; function setOpacity() { if (fadingOpacity[name] >= endOp) { return true }; if (element.style.display != 'block') { element.style.display = 'block' }; if (element.filters) { element.filters.alpha.opacity = fadingOpacity[name] } else { element.style.opacity = fadingOpacity[name] / 100 }; fadingOpacity[name] += 5; if (fadingOpacity[name] < endOp) { This.addStep(name, setOpacity, 10); } else { } } This.setStep(name, setOpacity, startInterval); } this.fadeOut = function(name, element, startOp, endOp, startInterval) { element = GetElement(element); if (startOp == undefined) { startOp = 0 } if (endOp == undefined) { endOp = 100 } fadingElements[name] = element; if (fadingOpacity[name] == undefined) fadingOpacity[name] = startOp; function setOpacity() { if (fadingOpacity[name] <= endOp) { return true }; if (element.style.display != 'block') { element.style.display = 'block' }; if (element.filters) { element.filters.alpha.opacity = fadingOpacity[name] } else { element.style.opacity = fadingOpacity[name] / 100 }; fadingOpacity[name] += -5; if (fadingOpacity[name] > endOp) { This.addStep(name, setOpacity, 10); } else { element.style.display = 'none' } } This.setStep(name, setOpacity, startInterval); } //steps this.steps = null this.setStep = function(name, method, interval) { if (This.steps == null) { This.steps = new Array(); }; //if (This.steps[name] == undefined) { This.steps[name] = new fxSteps(); } This.steps[name] = new fxSteps(); This.steps[name].addStep( method, interval) } this.addStep = function(name, method, interval) { if (This.steps == null) { This.steps = new Array(); }; if (This.steps[name] == undefined) { This.steps[name] = new fxSteps(); } This.steps[name].addStep(method, interval) } this.reSet = function(name) {This.steps[name] = new fxSteps();} function fxSteps() { var methods = new Array(); var intervals = new Array(); this.addStep = function(method, interval) { methods.push(method); intervals.push(interval); } this.execute = function() { if (methods.length == 0) return true; intervals[0] += -10; if (intervals[0] <= 0) { try { methods[0](); } catch (e) { }; methods.splice(0, 1); intervals.splice(0,1)} } } //exec function exec() { for (name in This.steps) { This.steps[name].execute(); } } this.executing = function(name) { if (This.steps[name] == undefined) return false; if (This.steps[name].steps.length == 0) return false; return true; } //init if (document.all) { window.attachEvent('onload', function() { setInterval(exec, 10); }); } else { window.addEventListener('load', function() { setInterval(exec, 10); }, true); } }