function sei_get_layer_list (node, regularstring){
var layerlist="";
if (node.id>""){
if (regularstring>""){
lastpos=regularstring.indexOf("*");
if (node.id.substr(0,lastpos)==regularstring.substr(0,lastpos))
layerlist+=node.id;}
else
layerlist=node.id;}
if (node.hasChildNodes()){
for (var counter = 0; counter < node.childNodes.length; counter++){
newlayerlist=sei_get_layer_list(node.childNodes[counter], regularstring);
if (newlayerlist>""){
if (layerlist>"")
layerlist += ",";
layerlist += newlayerlist;}}}
return layerlist;}
function sei_layer_process_regular(regularstring, dofunc, htmltagname){
if (htmltagname>""){
elementarray=document.getElementsByTagName(htmltagname);
lastpos=regularstring.indexOf("*");
layerlist=new Array();
layercount=0;
for (currlayer in elementarray){
if (document.getElementsByTagName(htmltagname)[currlayer].id>""){
checklayer=document.getElementsByTagName(htmltagname)[currlayer].id;
if (checklayer.substr(0,lastpos)==regularstring.substr(0,lastpos)){
layerlist[layercount]=checklayer;
layercount++;}}}}
else{
layerlist = sei_get_layer_list(document.documentElement,regularstring);
if (layerlist>"")
layerlist=layerlist.split(",");}
if (layerlist.length>0){
for (layerid in layerlist)
eval(dofunc.split("<#layerid#>").join(layerlist[layerid]));}}
function sei_layer_show(layerid){
if (document.getElementById(layerid)){
switch(document.getElementById(layerid).tagName){
case "DIV":
document.getElementById(layerid).style.display='block';
break;
case "SPAN":
document.getElementById(layerid).style.display='inline';
break;
case "TD":
document.getElementById(layerid).style.display='table-cell';
break;
default:
document.getElementById(layerid).style.display='block';
break;}}
else if (layerid.indexOf("*")>=0)
sei_layer_process_regular(layerid, "sei_layer_show('<#layerid#>')");
else
alert ("sei_layer_show: Layer '"+layerid+"' nicht definiert");}
function sei_layer_hide(layerid){
if (document.getElementById(layerid))
document.getElementById(layerid).style.display='none';
else if (layerid.indexOf("*")>=0)
sei_layer_process_regular(layerid, "sei_layer_hide('<#layerid#>')");
else
alert ("sei_layer_hide: Layer '"+layerid+"' nicht definiert");}
function sei_layer_checkvisible(layerid){
if (document.getElementById(layerid)){
if (document.getElementById(layerid).style.display=='none')
return false;
else
return true;}
else if (layerid.indexOf("*")>=0)
sei_layer_process_regular(layerid, "sei_layer_checkvisible('<#layerid#>')");
else
alert ("sei_layer_checkvisible: Layer '"+layerid+"' nicht definiert");}
function sei_layer_write(layerid, content){
if (document.getElementById(layerid))
document.getElementById(layerid).innerHTML=content;
else
alert ("sei_layer_write: Layer '"+layerid+"' nicht definiert");}
function sei_layer_addcontent(layerid, content){
if (document.getElementById(layerid))
document.getElementById(layerid).innerHTML=document.getElementById(layerid).innerHTML+content;
else
alert ("sei_layer_addcontent: Layer '"+layerid+"' nicht definiert");}
function sei_layer_getcontent(layerid){
if (document.getElementById(layerid))
return document.getElementById(layerid).innerHTML;
else
alert ("sei_layer_getcontent: Layer '"+layerid+"' nicht definiert");}
function sei_layer_move(layerid, xpos, ypos){
if (document.getElementById(layerid)){
if (xpos!==false)
document.getElementById(layerid).style.left=xpos+"px";
if (ypos!==false)
document.getElementById(layerid).style.top=ypos+"px";}
else
alert ("sei_layer_move: Layer '"+layerid+"' nicht definiert");}
function sei_layer_resize(layerid, w, h){
if (typeof(w)=="undefined") w=false;
if (typeof(h)=="undefined") h=false;
if (document.getElementById(layerid)){
if (w!==false){
if (w==Number(w))
document.getElementById(layerid).style.width=w+"px";
else
document.getElementById(layerid).style.width=w;}
if (h!==false){
if (h==Number(h))
document.getElementById(layerid).style.height=h+"px";
else
document.getElementById(layerid).style.height=h;}}
else
alert ("sei_layer_resize: Layer '"+layerid+"' nicht definiert");}
function sei_layer_set_class(layerid, classkey){
if (document.getElementById(layerid))
document.getElementById(layerid).className=classkey;}
function sei_layer_set_style(layerid, stylekey, stylevalue){
if (document.getElementById(layerid)){
if (stylekey!==false && stylevalue!==false){
switch(stylekey){
case "background":
stylevalue="url("+stylevalue+")";
stylekey="backgroundImage";
break;}
while (stylekey.indexOf("-")>=0){
pos=stylekey.indexOf("-");
stylekey=stylekey.substr(0,pos)+stylekey.substr(pos+1,1).toUpperCase()+stylekey.substr(pos+2);}
switch(stylekey){
case "marginTop":
case "marginLeft":
case "marginRight":
case "marginBottom":
if (Number(stylevalue)==stylevalue)
stylevalue+="px";
break;}
eval("document.getElementById('"+layerid+"').style."+stylekey+"='"+stylevalue+"';");}}
else
alert ("sei_layer_set_style: Layer '"+layerid+"' nicht definiert");}
function sei_layer_set_title(layerid, layertitle){
if (document.getElementById(layerid))
document.getElementById(layerid).title=layertitle;}
function sei_layer_get_style(layerid, stylekey){
if (document.getElementById(layerid)){
if (stylekey!==false){
switch(stylekey){
case "background":
stylekey="backgroundImage";
break;}
if (stylekey.indexOf("-")>=0){
pos=stylekey.indexOf("-");
stylekey=stylekey.substr(0,pos)+stylekey.substr(pos+1,1).toUpperCase()+stylekey.substr(pos+2);}
eval("dummy = document.getElementById('"+layerid+"').style."+stylekey+";");
return dummy;}}
else
alert ("sei_layer_get_style: Layer '"+layerid+"' nicht definiert");}
function sei_layer_del_style(layerid, stylekey){
if (document.getElementById(layerid)){
if (stylekey!==false){
switch(stylekey){
case "background":
stylekey="backgroundImage";
break;}
if (stylekey.indexOf("-")>=0){
pos=stylekey.indexOf("-");
stylekey=stylekey.substr(0,pos)+stylekey.substr(pos+1,1).toUpperCase()+stylekey.substr(pos+2);}
eval("document.getElementById('"+layerid+"').style."+stylekey+"='';");}}
else
alert ("sei_layer_del_style: Layer '"+layerid+"' nicht definiert");}
function sei_layer_transparency(layerid, alpha){
alpha=Math.round(alpha);
if (alpha<0) alpha=0;
if (alpha>100) alpha=100;
if (document.getElementById(layerid)){
document.getElementById(layerid).style.filter="Alpha(opacity: "+alpha+")";
document.getElementById(layerid).style.MozOpacity=(Number(alpha)/100);
document.getElementById(layerid).style.opacity=(Number(alpha)/100);}
else
alert ("sei_layer_transparency: Layer '"+layerid+"' nicht definiert");}
function sei_layer_zindex(layerid, zvalue){
if (document.getElementById(layerid))
document.getElementById(layerid).style.zIndex=zvalue;
else
alert ("sei_layer_zindex: Layer '"+layerid+"' nicht definiert");}
function sei_layer_exists(layerid){
if (document.getElementById(layerid)==null)
return false;
else
return true;}
function sei_layer_create(layerid, appendobject){
var newlayer=document.createElement("div");
newlayer.id=layerid;
newlayer.style.display="none";
if (typeof(appendobject)=="undefined"){
newlayer.style.position="absolute";
document.body.appendChild( newlayer );
sei_layer_move(layerid, 0, 0);}
else
appendobject.appendChild( newlayer );}
function sei_layer_destroy(layerid){
if (document.getElementById(layerid))
document.getElementById(layerid).parentNode.removeChild(document.getElementById(layerid));
else
alert ("sei_layer_destroy: Layer '"+layerid+"' nicht definiert");}
function sei_layer_get_offset(layerid, offsettype, absolute){
if (typeof(absolute)=="undefined")
absolute = true;
if (offsettype.replace("offset","")==offsettype)
offsettype="offset"+offsettype;
offsettype=offsettype.substr(0,6).toLowerCase()+offsettype.substr(6,1).toUpperCase()+offsettype.substr(7).toLowerCase();
if (document.getElementById(layerid)){
currlayer = document.getElementById(layerid);
if (offsettype=="offsetLeft" || offsettype=="offsetTop" || offsettype=="offsetWidth" || offsettype=="offsetHeight"){
if (absolute==true){
switch(offsettype){
case "offsetTop":
case "offsetLeft":
offsetreturn = 0;
while(currlayer){
offsetreturn += currlayer[offsettype];
currlayer = currlayer.offsetParent;}
return offsetreturn;
break;
default:
return currlayer[offsettype];
break;}}
else
return currlayer[offsettype];}
else
alert ("Offsettyp '"+offsettype+"' unbekannt");}
else
alert ("sei_layer_get_offset: Layer '"+layerid+"' nicht definiert");}
moveprocess=new Array();
function sei_layer_toggle(layer1, layer2, duration, fademode){
if (typeof(duration)=="undefined")
duration=0;
if (typeof(fademode)=="undefined")
fademode="scroll";
if (duration==0){
sei_layer_hide(layer1);
sei_layer_show(layer2);}
else{
dofade=true;
if (typeof(moveprocess[layer1])=="undefined"){
moveprocess[layer1]=true;
moveprocess[layer2]=true;}
else{
if (moveprocess[layer1]==true || moveprocess[layer2]==true)
dofade=false;
else{
moveprocess[layer1]=true;
moveprocess[layer2]=true;}}
if (dofade==true){
document.getElementById(layer2).style.visibility='hidden';
document.getElementById(layer2).style.display='';
destwidth=document.getElementById(layer2)["offsetWidth"];
destheight=document.getElementById(layer2)["offsetHeight"];
document.getElementById(layer2).style.display='none';
document.getElementById(layer2).style.visibility='visible';
sourcetop=sei_layer_get_offset(layer1, "top");
sourceleft=sei_layer_get_offset(layer1, "left");
sourcewidth=sei_layer_get_offset(layer1, "width");
sourceheight=sei_layer_get_offset(layer1, "height");
layerdummy=layer1+"_dummy";
var newlayer=document.createElement("div");
newlayer.id=layerdummy;
newlayer.innerHTML="<img src='' width=1 height=1>";
newlayer.visibility="hidden";
document.getElementById(layer1).parentNode.insertBefore(newlayer, document.getElementById(layer1));
layer1cloneobject=document.getElementById(layer1).cloneNode(true);
layer1cloneobject.id=layer1+"clone";
layer1cloneobject.style.display="none";
layer1cloneobject.style.position="absolute";
document.body.appendChild(layer1cloneobject);
layer1clone=layer1+"clone";
layer2cloneobject=document.getElementById(layer2).cloneNode(true);
layer2cloneobject.id=layer2+"clone";
layer2cloneobject.style.display="none";
layer2cloneobject.style.position="absolute";
document.body.appendChild(layer2cloneobject);
layer2clone=layer2+"clone";
sei_layer_set_style(layer1clone, "top", sourcetop);
sei_layer_set_style(layer1clone, "left", sourceleft);
sei_layer_set_style(layer1clone, "width", sourcewidth);
sei_layer_set_style(layer1clone, "height", sourceheight);
sei_layer_set_style(layer2clone, "top", sourcetop);
sei_layer_set_style(layer2clone, "left", sourceleft);
sei_layer_set_style(layer2clone, "width", destwidth);
sei_layer_set_style(layer2clone, "height", destheight);
sei_layer_hide(layer1);
sei_layer_hide(layer2);
sei_layer_set_style(layerdummy, "height", sourceheight);
sei_layer_transparency(layer1clone,100);
sei_layer_transparency(layer2clone,0);
sei_layer_show(layer1clone);
sei_layer_show(layer2clone);
currdate=new Date();
window.setTimeout("sei_layer_toggle_action('"+layer1+"','"+layer2+"',"+sourceheight+","+sourcewidth+","+destheight+","+duration+",currdate.getTime(),'"+fademode+"')",10);}}}
function sei_layer_toggle_action(layer1,layer2,sourceheight,sourcewidth,destheight,duration,starttime,fademode){
layerdummy=layer1+"_dummy";
layer1clone=layer1+"clone";
layer2clone=layer2+"clone";
currdate=new Date();
currtime=currdate.getTime();
currstep=(currtime-starttime)/duration;
currstep=Math.log((currstep*25))/Math.log(25);
if (currstep>1) currstep=1;
if (currstep<0) currstep=0;
currheight=Math.round(sourceheight+((destheight-sourceheight)*currstep));
if (destheight!=sourceheight){
sei_layer_set_style(layerdummy, "height", currheight);
if (fademode=="scroll"){
if (destheight>sourceheight){
sei_layer_set_style(layer2clone, "clip", "rect("+(destheight-currheight)+"px, "+sourcewidth+"px, "+destheight+"px, 0px)");
sei_layer_set_style(layer2clone, "top", sourcetop-destheight+currheight);}
else{
sei_layer_set_style(layer1clone, "clip", "rect("+(sourceheight-currheight)+"px, "+sourcewidth+"px, "+sourceheight+"px, 0px)");
sei_layer_set_style(layer1clone, "top", sourcetop-sourceheight+currheight);}}
else{
if (destheight>sourceheight)
sei_layer_set_style(layer2clone, "clip", "rect(0px, "+sourcewidth+"px, "+currheight+"px, 0px)");
else
sei_layer_set_style(layer1clone, "clip", "rect(0px, "+sourcewidth+"px, "+currheight+"px, 0px)");}}
sei_layer_transparency(layer2clone,(100*currstep));
sei_layer_transparency(layer1clone,100-(100*currstep));
if (currstep<1)
window.setTimeout("sei_layer_toggle_action('"+layer1+"','"+layer2+"',"+sourceheight+","+sourcewidth+","+destheight+","+duration+","+starttime+",'"+fademode+"')",10);
else{
document.getElementById(layerdummy).style.display='none';
document.getElementById(layer1).style.display='none';
document.getElementById(layer2).style.display='';
document.getElementById(layer1clone).style.display='none';
document.getElementById(layer2clone).style.display='none';
window.setTimeout("document.getElementById('"+layerdummy+"').parentNode.removeChild(document.getElementById('"+layerdummy+"')); document.getElementById('"+layer1clone+"').parentNode.removeChild(document.getElementById('"+layer1clone+"')); document.getElementById('"+layer2clone+"').parentNode.removeChild(document.getElementById('"+layer2clone+"')); moveprocess['"+layer1+"']=false; moveprocess['"+layer2+"']=false;",10);}}
function sei_layer_fadein(layerid, duration, fademode){
sei_layer_fade(layerid, "fadein", duration, fademode);}
function sei_layer_fadeout(layerid, duration, fademode){
sei_layer_fade(layerid, "fadeout", duration, fademode);}
function sei_layer_fade(layerid, direction, duration, fademode){
if (typeof(direction)=="undefined")
direction="fadein";
if (typeof(duration)=="undefined")
duration=500;
if (typeof(fademode)=="undefined")
fademode="scroll";
if (direction=="fadeout" && document.getElementById(layerid).style.display=="none")
return false;
if (direction=="fadein" && document.getElementById(layerid).style.display=="")
return false;
if (duration==0){
if (direction=="fadein")
sei_layer_show(layerid);
else
sei_layer_hide(layerid);}
else{
dofade=true;
if (typeof(moveprocess[layerid])=="undefined")
moveprocess[layerid]=true;
else{
if (moveprocess[layerid]==true)
dofade=false;
else
moveprocess[layerid]=true;}
if (dofade==true){
if (direction=="fadein"){
document.getElementById(layerid).style.visibility='hidden';
document.getElementById(layerid).style.display='';
destwidth=document.getElementById(layerid)["offsetWidth"];
destheight=document.getElementById(layerid)["offsetHeight"];
document.getElementById(layerid).style.display='none';
document.getElementById(layerid).style.visibility='visible';}
else{
desttop=sei_layer_get_offset(layerid, "top");
destleft=sei_layer_get_offset(layerid, "left");
destwidth=sei_layer_get_offset(layerid, "width");
destheight=sei_layer_get_offset(layerid, "height");}
layerdummy=layerid+"_dummy";
var newlayer=document.createElement("div");
newlayer.id=layerdummy;
newlayer.innerHTML="<img src='' width=1 height=1>";
newlayer.visibility="hidden";
document.getElementById(layerid).parentNode.insertBefore(newlayer, document.getElementById(layerid));
if (direction=="fadein"){
desttop=sei_layer_get_offset(layerdummy, "top");
destleft=sei_layer_get_offset(layerdummy, "left");}
layeridcloneobject=document.getElementById(layerid).cloneNode(true);
layeridcloneobject.id=layerid+"clone";
layeridcloneobject.style.display="none";
layeridcloneobject.style.position="absolute";
document.body.appendChild(layeridcloneobject);
layeridclone=layerid+"clone";
sei_layer_set_style(layeridclone, "top", desttop);
sei_layer_set_style(layeridclone, "left", destleft);
sei_layer_set_style(layeridclone, "width", destwidth);
sei_layer_set_style(layeridclone, "height", destheight);
sei_layer_hide(layerid);
if (direction=="fadein"){
sei_layer_set_style(layerdummy, "height", 0);
sei_layer_transparency(layeridclone,0);}
else{
sei_layer_set_style(layerdummy, "height", destheight);
sei_layer_transparency(layeridclone,100);}
sei_layer_show(layeridclone);
currdate=new Date();
window.setTimeout("sei_layer_fade_action('"+layerid+"',"+desttop+","+destwidth+","+destheight+","+duration+",currdate.getTime(),'"+direction+"','"+fademode+"')",10);}}}
function sei_layer_fade_action(layerid,layertop,layerwidth,layerheight,duration,starttime,direction,fademode){
layerdummy=layerid+"_dummy";
layeridclone=layerid+"clone";
currdate=new Date();
currtime=currdate.getTime();
currstep=(currtime-starttime)/duration;
currstep=Math.log((currstep*25))/Math.log(25);
if (currstep>1) currstep=1;
if (currstep<0) currstep=0;
currheight=Math.round(layerheight*currstep);
if (direction=="fadein"){
sei_layer_set_style(layerdummy, "height", currheight);
if (fademode=="scroll"){
sei_layer_set_style(layeridclone, "clip", "rect("+(layerheight-currheight)+"px, "+layerwidth+"px, "+layerheight+"px, 0px)");
sei_layer_set_style(layeridclone, "top", layertop-layerheight+currheight);}
else
sei_layer_set_style(layeridclone, "clip", "rect(0px, "+layerwidth+"px, "+currheight+"px, 0px)");}
else{
sei_layer_set_style(layerdummy, "height", layerheight-currheight);
if (fademode=="scroll"){
sei_layer_set_style(layeridclone, "clip", "rect("+(currheight)+"px, "+layerwidth+"px, "+layerheight+"px, 0px)");
sei_layer_set_style(layeridclone, "top", layertop-currheight);}
else
sei_layer_set_style(layeridclone, "clip", "rect(0px, "+layerwidth+"px, "+layerheight-currheight+"px, 0px)");}
if (direction=="fadein")
sei_layer_transparency(layeridclone,(100*currstep));
else
sei_layer_transparency(layeridclone,100-(100*currstep));
if (currstep<1)
window.setTimeout("sei_layer_fade_action('"+layerid+"',"+layertop+","+layerwidth+","+layerheight+","+duration+","+starttime+",'"+direction+"','"+fademode+"')",10);
else{
if (direction=="fadein"){
document.getElementById(layerdummy).style.display='none';
document.getElementById(layerid).style.display='';
document.getElementById(layeridclone).style.display='none';}
else{
document.getElementById(layerdummy).style.display='none';
document.getElementById(layerid).style.display='none';
document.getElementById(layeridclone).style.display='none';}
window.setTimeout("document.getElementById('"+layerdummy+"').parentNode.removeChild(document.getElementById('"+layerdummy+"')); document.getElementById('"+layeridclone+"').parentNode.removeChild(document.getElementById('"+layeridclone+"')); moveprocess['"+layerid+"']=false; moveprocess['"+layerid+"']=false;",10);}}
function sei_alternatives_register(key,subkey,divid){
if (typeof sei_alternatives != 'object')
sei_alternatives = new Array();
if (typeof sei_alternatives[key] != 'object')
sei_alternatives[key] = new Array();
sei_alternatives[key][subkey] = divid;}
function sei_switch_alternative(key,subkey){
if (typeof subkey == 'object')
subkey = subkey.value;
if (typeof sei_alternatives[key] != 'undefined' && typeof sei_alternatives[key][subkey] != 'undefined'){
for (i in sei_alternatives[key])
if (i == subkey)
document.getElementById(sei_alternatives[key][i]).style.display = 'block';
else
document.getElementById(sei_alternatives[key][i]).style.display = 'none';}
else
alert('There is no alternative block called "'+key+' -> '+subkey+'"');}
function sei_optional_register(key,divid){
if (typeof sei_optionals != 'object')
sei_optionals = new Array();
if (typeof sei_optionals[key] != 'object')
sei_optionals[key] = new Array();
sei_optionals[key].push(divid);}
function sei_switch_optional(key,state){
if (typeof state == 'object')
state = state.checked;
if (typeof sei_optionals[key] != 'undefined'){
for (i in sei_optionals[key]){
if (typeof state == 'undefined')
document.getElementById(sei_optionals[key][i]).style.display = ( (document.getElementById(sei_optionals[key][i]).style.display == 'none') ? 'block' : 'none' );
else{
if (state)
document.getElementById(sei_optionals[key][i]).style.display = 'block';
else
document.getElementById(sei_optionals[key][i]).style.display = 'none';}}}
else
alert('There is no optional block called "'+key+'"');}
