Files
Kundenverwaltung/js/bumpbox/bumpbox-2.1.js
T
adminandClaude Opus 5 e2124220e5 Initialer Commit: Kundenverwaltung (PHP/Smarty)
Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 16:41:18 +02:00

665 lines
24 KiB
JavaScript

/* <![CDATA[ */
// firefox scrolling fix function
Element.implement({
setFocus: function(index) {
this.setAttribute('tabIndex',index || 0);
this.focus();
}
});
evLeftRightKey = function (ev) {
if (ev.key == 'right') {
if($$('#grow #next') && $$('#grow #next').length>0){
$$('#grow #next')[0].fireEvent('click');
}
}
if (ev.key == 'left') {
if($$('#grow #prev') && $$('#grow #prev').length>0){
$$('#grow #prev')[0].fireEvent('click');
}
}
}
function doBump(names, inSpeed, outSpeed, boxColor, backColor, bgOpacity, bRadius, borderWeight, borderColor, boxShadowSize, boxShadowColor, iconSet, effectsIn, effectsOut, bgImage, bgPosition, bgRepeat, noLRcommands, onloadFireEventClass, onloadFireEventDelay, callbackFunc) {
i = 0;
if (!noLRcommands) {
noLRcommands = 0;
}
var nameClass = names.replace(/\./, '');
var imgstore = new Array();
var allBumps = null;
allBumps = $$(names);
allBumps.each(function (e) {
var content = e.get('href');
if (e.get('href').indexOf('^') == 0) {
var id = e.get('href').replace("^", '');
$(id).setStyle('display', 'none');
}
var xid = e.get('href').split("/");
var imgN = xid[xid.length - 1].split(".");
imgN = imgN[0];
if (e.get('href').indexOf('.jpg') != -1 || e.get('href').indexOf('.png') != -1 || e.get('href').indexOf('.gif') != -1) {
var myImage = Asset.image(e.get('href'), {
onLoad: function (myImage, imgN) {
var xid = e.get('href').split("/");
var imgN = xid[xid.length - 1].split(".");
imgN = imgN[0];
if (!$(imgN)) {
myImage.set('id', imgN);
myImage.setStyle('display', 'none');
myImage.inject(document.body);
}
}
});
}
if(noLRcommands > 0){
e.set('id', nameClass + Math.random().toString().substring(2));
} else {
e.set('id', nameClass + '_' + i);
++i;
}
})
var f = "";
var i = 0;
var actualID = 0;
if (!inSpeed) {
inSpeed = 750;
}
if (!outSpeed) {
outSpeed = 250;
}
if (!boxColor) {
boxColor = '000'
}
if (!backColor) {
backColor = '000'
}
if (!bgOpacity || bgOpacity > 1) {
bgOpacity = 0.3
}
if (!bRadius) {
bRadius = 7;
}
if (!borderWeight) {
borderWeight = 2;
}
if (!borderColor) {
borderColor = '303132';
}
if (!boxShadowSize) {
boxShadowSize = 10;
}
if (!boxShadowColor) {
boxShadowColor = '000';
}
if (!iconSet) {
iconSet = 4;
}
if (!effectsIn) {
effectsIn = new Fx.Transition(Fx.Transitions.Quad.easeInOut, inSpeed);
}
if (!effectsOut) {
effectsOut = new Fx.Transition(Fx.Transitions.Quad.easeOut, outSpeed);
}
if (!bgPosition) {
bgPosition = 'center center';
}
if (!bgRepeat) {
bgRepeat = 'no-repeat';
}
if (!bgImage) {
bgImage = 'images/ajax-loader.gif';
}
if (!onloadFireEventClass) {
onloadFireEventClass = 0;
}
if (!onloadFireEventDelay) {
onloadFireEventDelay = 0;
}
var iconPath = 'iconsets/' + iconSet + '/';
// position close button according to border width
closeBtnPos = borderWeight + 10;
closeBtnPos = -closeBtnPos;
nextBtnPos = borderWeight + 20;
prevBtnPos = borderWeight + 20;
prevBtnPos = -prevBtnPos;
$$(names).addEvent('click', function (e) {
if (e){ // this makes fireEvents work ..i.e. fire bumpbox ondomready
e = new Event(e).stop();
}
embeds = document.getElementsByTagName('object');
for(i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'hidden';
}
if ($('grow') != null) {
$('grow').dispose();
}
if (this.get('rev') != null) {
var rev = this.get('rev')
}
var content = this.get('href');
// get the num value from the id
var actualID = this.get('id');
var tmpActual = actualID.split(/_/);
actualID = tmpActual[1];
maxw = 0;
maxh = 0;
var title = "";
//$$('object').setStyle('display', 'none');
if (this.get('rel') != null) {
var tmp = this.get('rel').split("-");
maxw = tmp[0];
maxh = tmp[1];
}
if (this.get('title') != null) {
title = this.get('title');
}
if (this.get('href') != null) {
hr = this.get('href');
}
if (maxw == 0) {
maxw = 880;
}
if (maxh == 0) {
maxh = 600;
}
if (content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1) {
img = new Image();
img.src = content;
maxw = img.width;
maxh = img.height;
}
w = window.getSize().x.toInt();
h = window.getSize().y.toInt();
s = window.getScrollTop();
var middleH = (w) / 2;
var middleV = (h) / 2;
var endleft = (w - maxw) / 2;
var endtop = ((h - maxh) / 2) + s;
var theBorder = borderWeight + 'px solid #' + borderColor;
var theBackground = '#' + boxColor + ' url(' + bgImage + ') ' + bgRepeat + ' ' + bgPosition;
if ($('grow') != null) {
$('grow').dispose();
}
var el = new Element('div', {
'styles': {
width: '1px',
height: '1px',
position: 'absolute',
border: theBorder,
padding: '4px',
background: theBackground,
left: middleH,
top: middleV,
/*cursor: 'pointer',*/
display: 'block',
'z-index': '100000'
},
'id': 'grow'
})
$(el).setStyles({
'-moz-border-radius': bRadius + 'px',
'-webkit-border-radius': bRadius + 'px',
'border-radius': bRadius + 'px'
});
var t = window.getScrollTop();
bg = new Element('div', {
'styles': {
background: '#' + backColor,
width: '100%',
height: '100%',
opacity: bgOpacity,
position: 'absolute',
top: t,
left: 0,
'z-index': '100000'
},
'id': 'bg'
}) /* bg ie 6 fix */
if (Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
var bh = window.getHeight();
$(bg).setStyle('height', bh);
}
var cl = new Element('img', {
'styles': {
width: '24px',
height: '24px',
position: 'absolute',
top: closeBtnPos + 'px',
right: closeBtnPos + 'px',
cursor: 'pointer',
'z-index': '100000'
},
'src': iconPath + 'closed.png',
'id': 'nycloser'
})
//CLOSE by click
cl.addEvent('click', function (e) {
embeds = document.getElementsByTagName('object');
for(i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'visible';
}
bg.setFocus(); // ff scrolling fix
bg.dispose();
// remove left/right key event
window.removeEvent('keyup',evLeftRightKey);
$(el).getChildren().dispose();
w = window.getSize().x.toInt();
h = window.getSize().y.toInt();
s = window.getScrollTop();
var middleH = (w) / 2;
var middleV = (h) / 2;
var endleft = (w - maxw) / 2;
var endtop = ((h - maxh) / 2) + s;
eff2.start({
'width': [maxw, 1],
'height': [maxh, 1],
'left': [endleft, middleH],
'top': [endtop, middleV + s]
})
})
if (Browser.Engine.name != 'trident') {
window.addEvent('keyup', function (e) {
embeds = document.getElementsByTagName('object');
for(i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'visible';
}
//CLOSE by ESC
if (e.key == 'esc') {
bg.setFocus(); //ff scrolling fix
bg.dispose();
// remove left/right key event
window.removeEvent('keyup',evLeftRightKey);
$(el).getChildren().dispose();
w = window.getSize().x.toInt();
h = window.getSize().y.toInt();
s = window.getScrollTop();
var middleH = (w) / 2;
var middleV = (h) / 2;
var endleft = (w - maxw) / 2;
var endtop = ((h - maxh) / 2) + s;
eff2.start({
'width': [maxw, 1],
'height': [maxh, 1],
'left': [endleft, middleH],
'top': [endtop, middleV + s]
})
}
})
} else {
document.addEvent('keyup', function (e) {
embeds = document.getElementsByTagName('object');
for(i = 0; i < embeds.length; i++) {
embeds[i].style.visibility = 'visible';
}
//CLOSE by ESC
if (e.key == 'esc') {
bg.dispose();
// remove left/right key event
window.removeEvent('keyup',evLeftRightKey);
$(el).getChildren().dispose();
w = window.getSize().x.toInt();
h = window.getSize().y.toInt();
s = window.getScrollTop();
var middleH = (w) / 2;
var middleV = (h) / 2;
var endleft = (w - maxw) / 2;
var endtop = ((h - maxh) / 2) + s;
eff2.start({
'width': [maxw, 1],
'height': [maxh, 1],
'left': [endleft, middleH],
'top': [endtop, middleV + s]
})
}
})
}
bg.inject(document.body);
el.injectInside(document.body);
cl.injectInside(el);
window.addEvent('scroll', function () {
$(bg).setStyle('top', window.getScrollTop());
w = window.getSize().x.toInt();
h = window.getSize().y.toInt();
s = window.getScrollTop();
var middleH = (w) / 2;
var middleV = (h) / 2;
var endleft = (w - maxw) / 2;
var endtop = ((h - maxh) / 2) + s;
$(el).setStyle('top', endtop);
})
var eff3 = new Fx.Morph($('grow'), {
transition: effectsIn,
duration: inSpeed,
wait: 'link',
onComplete: function () {
$(el).dispose();
}
});
var eff2 = new Fx.Morph($('grow'), {
transition: effectsOut,
duration: outSpeed,
wait: 'link',
onComplete: function () {
$(el).dispose();
}
});
var eff = new Fx.Morph($('grow'), {
transition: effectsIn,
duration: inSpeed,
wait: 'link',
onComplete: function () {
if (bgImage != null) {
var theBackground = '#' + boxColor + ' url(' + bgImage + ') ' + bgRepeat + ' ' + bgPosition;
$(el).setStyle('background', theBackground);
} else {
$(el).setStyle('background', '#' + boxColor);
}
if ($('prev') != null) {
$('prev').setStyle('display', 'block');
}
if ($('next') != null) {
$('next').setStyle('display', 'block');
}
$('grow').setStyle('-moz-box-shadow', '3px 3px ' + boxShadowSize + 'px #' + boxShadowColor);
$('grow').setStyle('-webkit-box-shadow', '3px 3px ' + boxShadowSize + 'px #' + boxShadowColor);
$('grow').setStyle('box-shadow', '3px 3px ' + boxShadowSize + 'px #' + boxShadowColor);
if (content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1) {
var img = new Element('img');
img.src = content;
maxw = img.width;
maxh = img.height;
document.id(img).inject(el);
} else if (content.indexOf('.flv') == -1 && content.indexOf('.mp3') == -1 && content.indexOf(".pdf") == -1 && content.indexOf(".swf") == -1 && content.indexOf(".jpg") == -1 && content.indexOf(".gif") == -1 && content.indexOf(".png") == -1 && content.indexOf("^") == -1) {
var p = new Element('div');
p.setStyle('display', 'block');
p.setStyle('overflow', 'hidden');
p.setStyle('padding', '20px');
p.setStyle('height', maxh - 40);
p.setStyle('width', maxw - 40);
p.setAttribute('id', 'htmlframe');
p.inject(el);
var x = new IFrame();
x.setStyle('overflow', 'auto');
x.set('frameborder', '0');
x.setStyle('width', maxw - 40);
x.setStyle('height', maxh - 40);
x.src = content;
x.inject(p);
} else if (content.indexOf(".pdf") != -1) {
var div = new Element('div', {
'styles': {
padding: '20px',
height: maxh - 40,
width: maxw - 40
}
})
div.inject(el);
var x = new IFrame();
x.src = content;
x.setStyle('width', maxw - 40);
x.setStyle('height', maxh - 40);
x.inject(div);
} else if (content.indexOf(".swf") != -1) {
var div = new Element('div', {
'styles': {
padding: '20px',
height: maxh - 40,
width: maxw - 40
},
id: 'swf'
})
div.inject(el);
var obj = new Swiff(content, {
id: 'video',
width: maxw - 40,
height: maxh - 40,
container: div
})
} else if (content.indexOf(".flv") != -1) {
var div = new Element('div', {
'styles': {
padding: '20px',
height: maxh - 40,
width: maxw - 40
},
id: 'flowp'
})
div.inject(el);
jwplayer(div).setup({
flashplayer: 'mediaplayer/player.swf',
file: content,
width: maxw,
height: maxh,
wmode:'transparent',
skin: 'skins/glow/glow.zip'
});
} else if (content.indexOf(".mp3") != -1) {
var div = new Element('div', {
'styles': {
padding: '20px',
height: maxh - 50,
width: maxw - 40,
'z-index': '1'
},
id:'flowp'
})
div.inject(el);
jwplayer(div).setup({
flashplayer: 'mediaplayer/player.swf',
type:'sound',
width: maxw,
height: maxh,
file:content,
src:content,
controlbar: 'bottom',
autoplay:'true',
skin: 'skins/glow/glow.zip'
});
} else if (content.indexOf("youtube") == 0 || content.indexOf("vimeo") == 0) {
var p = new Element('div');
p.setStyle('display','block');
p.setStyle('overflow','hidden');
p.setStyle('padding','20px');
p.setStyle('height',maxh-40);
p.setStyle('width',maxw-40);
p.setAttribute('id','htmlframe');
p.inject(el);
jwplayer(p).setup({
flashplayer: 'mediaplayer/player.swf',
width: maxw,
height: maxh,
file:content,
autostart:false,
type:'sound',
controlbar: 'bottom',
'provider':'youtube'
});
} else if (content.indexOf("^") == 0) {
content = content.replace("^", "");
var div = new Element('div', {
'styles': {
padding: '20px',
height: 'auto',
width: 'auto',
overflow: 'hidden'
},'class':'inlineHTMLBox' //added so you can style elements inside with css
})
var c = document.id(content).get('html');
div.set('html', c);
div.inject(el);
}
var titlePlacement = 30 + borderWeight;
titlePlacement = -titlePlacement;
if (title != "") {
var t = new Element('div', {
'styles': {
'height': 'auto',
'line-height': '15px',
'position': 'absolute',
'top': titlePlacement + 'px',
'left': '0px',
'color': '#eee',
'opacity': '0.9',
'z-index': '10000',
'background': '#636363',
'-webkit-border-radius': '5px',
'-moz-border-radius': '5px',
'-border-radius': '5px',
'display': 'block',
'padding': '6px 5px',
'border': '1px solid #' + borderColor
}
})
t.set('html', title);
t.inject(el);
t.set('id', 'maindesc');
}
if (rev != null) {
var x1 = new Element('div', {
'styles': {
'width': 'auto',
'height': '20px',
'position': 'absolute',
'left': '20px',
'bottom': '-41px',
'color': '#eee',
'text-decoration': 'none',
'background': '#000',
'-webkit-border-radius': '5px',
'-moz-border-radius': '5px',
'-border-radius': '5px',
'display': 'block',
'padding': '10px',
'border-bottom': '2px solid #303132',
'border-left': '2px solid #303132',
'border-right': '2px solid #303132'
}
})
x1.inject(el);
x1.set('html', rev);
x1.set('id', 'addondesc');
}
$(el).setStyles({
'background-image': 'none'
});
// added option for onComplete callback function as a new argument
if (callbackFunc != null && typeof window[callbackFunc] == "function") {
window[callbackFunc]();
}
}
});
// add event to the left/right key
window.addEvent('keyup', evLeftRightKey);
$(bg).addEvent('click', function (e) {
bg.setFocus(); // ff scrolling fix
bg.dispose();
// remove left/right key event
window.removeEvent('keyup',evLeftRightKey);
$(el).getChildren().dispose();
eff2.start({
'width': [maxw, 1],
'height': [maxh, 1],
'left': [endleft, middleH],
'top': [endtop, middleV + s]
})
})
var nextID = this.get('id');
var tmp = nextID.split(/_/);
if(tmp[1] != undefined){
tmp = tmp[1].toInt() + 1;
if (allBumps[tmp] != null) {
var middle = (maxh - 30) / 2;
var nx = new Element('a', {
'styles': {
width: '30px',
height: '30px',
background: 'url(' + iconPath + 'next.png) no-repeat center center',
position: 'absolute',
right: -nextBtnPos + 'px',
bottom: middle,
cursor: 'pointer',
'display': 'none'
},
id: 'next'
})
nx.addEvent('click', function (e) {
if (Browser.Engine.trident) {
if (document.id('video') != null) {
document.id('video').stop();
}
if (document.id('swf') != null) {
document.id('swf').dispose();
}
}
document.id('bg').dispose();
document.id('grow').dispose();
var nextID = actualID.toInt() + 1;
var finalID = nameClass + '_' + nextID;
document.id(finalID).fireEvent('click', this);
})
nx.inject(el);
}
var prevID = this.get('id');
var prevTmp = prevID.split('_');
prevTmp = prevTmp[1].toInt() - 1;
if (allBumps[prevTmp] != null) {
var middle = (maxh - 30) / 2;
var nx2 = new Element('a', {
'styles': {
width: '30px',
height: '30px',
background: 'url(' + iconPath + 'prev.png) no-repeat center center',
position: 'absolute',
left: prevBtnPos + 'px',
bottom: middle,
cursor: 'pointer',
'display': 'none'
},
id: 'prev'
})
nx2.addEvent('click', function (e) {
if (Browser.Engine.trident) {
if (document.id('video') != null) {
document.id('video').stop();
}
if (document.id('swf') != null) {
document.id('swf').dispose();
}
}
document.id('bg').dispose();
document.id('grow').dispose();
var previousID = actualID.toInt() - 1;
var previousLnk = nameClass + '_' + previousID;
actualID = previousID;
document.id(previousLnk).fireEvent('click', this);
})
nx2.inject(el);
}
}
eff.start({
'width': [1, maxw],
'height': [1, maxh],
'left': [middleH, endleft],
'top': [middleV + s, endtop]
})
});
if (noLRcommands > 0 && onloadFireEventClass != 0) { //added for autoload bumpbox on domready
window.addEvent('domready', function(){$$(names).each(function(e){if(e.get('class').search(onloadFireEventClass) != -1){e.fireEvent('click',null,onloadFireEventDelay);}});});
}
}
/* ]]> */