function buttonMouseOver(button){

	if(buttons[button][0].length==0){

		var overlay = document.getElementById(buttons[button][6]);

		if(overlay!=null){

			overlay.style.visibility = 'visible';

			overlay.style.width = buttons[button][9]+'px';	

			overlay.style.height= buttons[button][10]+'px';

		}

	}

	var wantLayer; 

	if(buttons[button][5]) wantLayer = new Array(4,3,1); else wantLayer = new Array(2,1);

	buttonShowLayer(button,wantLayer);

}



function buttonMouseOut(button){

	if(buttons[button][0].length==0){

		var overlay = document.getElementById(buttons[button][6]);

		if(overlay!=null){

			overlay.style.visibility = 'hidden';

			overlay.style.width = '0px';	

			overlay.style.height='0px';

		}

	}

	var wantLayer; 

	if(buttons[button][5]) wantLayer = new Array(3,1); else wantLayer = new Array(1);

	buttonShowLayer(button,wantLayer);

}



function buttonMouseDown(button){

	if(buttons[button][0].length>0 && !buttons[button][7]){

		for(var bid in buttons){

			if(buttons[bid][0]==buttons[button][0] && bid!=button){

				buttons[bid][5] = false; 

				var wantLayer = new Array(1);

				buttonShowLayer(bid,wantLayer);

				var overlay = document.getElementById(buttons[bid][6]);

				if(overlay!=null){

					overlay.style.visibility = 'hidden';

					overlay.style.width = '0px';

					overlay.style.height='0px';

				}

			}

		}

		buttons[button][5] = true; 

		var wantLayer = new Array(4,3,1);

		buttonShowLayer(button,wantLayer);

		var overlay = document.getElementById(buttons[button][6]);

		if(overlay!=null){

			overlay.style.visibility = 'visible';

			overlay.style.width = buttons[button][9]+'px';

			overlay.style.height= buttons[button][10]+'px';

		}

	}

	else{

		var wantLayer = new Array(3,1);

		buttonShowLayer(button,wantLayer);

	}

}



function buttonMouseUp(button){

	if(buttons[button][0].length==0){

		var wantLayer = new Array(2,1);

		buttonShowLayer(button,wantLayer);

	}

}



function buttonShowLayer(button, wantLayer){

	var showLayer = 1; 

	for(var i=0; i<wantLayer.length; i++){

		var layer = document.getElementById(buttons[button][wantLayer[i]]);

		if(layer!=null){

			showLayer = wantLayer[i];

			break;

		}

	}

	var cmd = document.getElementById(button);

	for(var i=1; i<=4; i++){

		var layer = document.getElementById(buttons[button][i]);

		if(layer!=null){

			if(i==showLayer){

				if(buttons[button].length>11){

					if(navigator.userAgent.indexOf("MSIE")>=0){

						layer.style.width = buttons[button][11][i-1][1]+'px';

						layer.style.height = buttons[button][11][i-1][3]+'px';

					}

					else{

						layer.style.width = buttons[button][11][i-1][0]+'px';

						layer.style.height = buttons[button][11][i-1][2]+'px';

					}

				}

				else{

					layer.style.width = '100%';

					layer.style.height = '100%';

				}

				layer.style.visibility = 'inherit';

			}

			else{

				layer.style.width = '0px';

				layer.style.height = '0px';

				layer.style.visibility = 'hidden';

			}

		}

	}

}



var overlayOpen = new Array();



function lwMouseReleased(){

	for(var bid in buttons){

		if(buttons[bid][7]){

			var overlay = document.getElementById(buttons[bid][6]);

			if(overlay!=null){

				overlay.style.visibility = 'hidden';

				overlay.style.width = '0px';

				overlay.style.height='0px';

			}

		}

	}

	overlayOpen = new Array();

}



function lwMouseEntered(obj){

	if(obj!=null){

		var mb = getMenuButton(obj,obj.id);

		if(mb!=null){

			var bg = buttons[mb.id][0];

			setOverlayVis(bg,mb.id);

			addOverlay(bg);

			var lm = getLastOverlay();

			while(overlayOpen.length>0 && lm!=bg){

				setOverlayVis(lm,null);

				overlayOpen.pop();

				lm = getLastOverlay();

			}

		}

	}

}



function getLastOverlay(){

	if(overlayOpen.length>0){

		return overlayOpen[overlayOpen.length-1];

	}

	else{

		return null;

	}

}



function getMenuButton(obj, id){

	var mb = null;

	var found = false;

	for(var bid in buttons){

		if(bid==id){

			found = true;

			mb = document.getElementById(bid);

		}

	}

	if(!found){

		var parent = obj.parentNode;

		if(parent!=null) 

			mb = getMenuButton(parent,parent.id);

	}

	return mb;

}



function addOverlay(bg){

	var isRegistered = false;

	for(var i=0; i<overlayOpen.length; i++){

		if(overlayOpen[i]==bg){

			isRegistered = true;

			break;

		}

	}

	if(!isRegistered) 

		overlayOpen[overlayOpen.length] = bg;

}



function setOverlayVis(bg, exceptID){

	for(var bid in buttons){

		if(buttons[bid][7] && buttons[bid][0]==bg){

			var overlay = document.getElementById(buttons[bid][6]);

			if(overlay!=null){

				if(exceptID!=null && exceptID==bid){

					overlay.style.visibility = 'visible';

					overlay.style.width = buttons[bid][9]+'px';

					overlay.style.height = buttons[bid][10]+'px';

				}

				else{

					overlay.style.visibility = 'hidden';

					overlay.style.width = '0px';

					overlay.style.height = '0px';

				}

			}

		}

	}

}



function rundp(dp){

	var ni = 0; 

	if(dps[dp][1]){

		ni = dps[dp][3]+1;

		if(ni==dps[dp][0]){

			if(dps[dp][4]){

				dps[dp][1] = false;

				ni -= 2;

			}

			else{

				dps[dp][2]++; ni = 0;

			}

		}

	}

	else{

		ni = dps[dp][3] - 1; 

		if(ni<0 && dps[dp][4]){

			dps[dp][2]++; 

			dps[dp][1] = true;

			ni = 1;

		}

	} 

	if(dps[dp][6]==0 || dps[dp][2]<dps[dp][6]){

		var lastDia = document.getElementById(dps[dp][5]);

		lastDia.style.width = '0px';

		lastDia.style.height = '0px';

		dps[dp][5] = dps[dp][7][ni];

		var dia = document.getElementById(dps[dp][7][ni]);

		dia.style.width = '100%';

		dia.style.height = '100%';

		dps[dp][3] = ni; 

		setTimeout("rundp('"+dp+"')",dps[dp][8][ni]);

	}

}



function runWebcam(wc,imgurl,ms){

	var d = new Date();

	d = "?"+d.getTime();

	document.images[wc].src = imgurl+d;

	setTimeout("runWebcam('"+wc+"','"+imgurl+"',"+ms+")",ms)

}



function CXTransform(id,relative,sRect,stepRects,stepFrames,stepPauses){

	this.id = id; 

	this.relative = relative; 

	this.sRect = sRect;

	this.stepRects = stepRects;

	this.stepFrames = stepFrames; 

	this.stepPauses = stepPauses;

	this.stepVector = new Array();

	for(var i=0; i<stepRects.length; i++){

		var r = stepRects[i];

		this.stepVector[this.stepVector.length] = new CXRect(r.x,r.y,r.w,r.h);

	}

	this.curStep = -1;

	this.curScale = -1;

	this.xstep = 0;

	this.ystep = 0;

	this.hstep = 0;

	this.vstep = 0;

}



function CXRect(x,y,w,h){

	if(isNaN(x)) this.x = 0; else this.x = x;

	if(isNaN(y)) this.y = 0; else this.y = y;

	if(isNaN(w)) this.w = 0; else this.w = w;

	if(isNaN(h)) this.h = 0; else this.h = h;

}



function CXGoto(absolute,step,count){

	this.absolute = absolute; 

	this.step = step;

	this.count = count; 

	this.stepped = 0;

}



function cxLink(typ,s1,s2,s3,s4,s5,s6,s7){

	this.typ = typ; 

	this.s1 = s1; 

	this.s2 = s2;

	this.s3 = s3; 

	this.s4 = s4; 

	this.s5 = s5;

	this.s6 = s6; 

	this.s7 = s7;

}



function performLink(cxlink){

	var retVal = true;

	if(cxlink.typ==1 || cxlink.typ==2){

		if(cxlink.s2=='_blank'){

			if(cxlink.s3){

				window.open(cxlink.s1,cxlink.s4,'width='+cxlink.s5+',height='+cxlink.s6+',menubar=no,toolbar=no,status=no,scrollbars=yes');

			}

			else{

				window.open(cxlink.s1);

			}

		}

		else if(cxlink.s2=='_top'){

			top.location.href = cxlink.s1;

		}

		else if(cxlink.s2=='_parent'){

			parent.location.href = cxlink.s1;

		}

		else if(cxlink.s2=='_self' || cxlink.s2==''){

			window.location.href = cxlink.s1;

		}

		else{

			var target = document.getElementById(cxlink.s2);

			if(target!=null){

				target.src = cxlink.s1;

			}

			else{

				target = top.document.getElementById(cxlink.s2);

				if(target!=null)

					target.src = cxlink.s1;

			}

		}

	}

	else if(cxlink.typ==3){

		window.location.href = cxlink.s1;

	}

	else if(cxlink.typ==4){

		var frm = document.getElementById(cxlink.s1);

		if(frm!=null){

			if(checkForm(cxlink)){

				frm.submit();

			}

			else{

				retVal = false;

			}

		}

	}

	else if(cxlink.typ==5){

		var frm = document.getElementById(cxlink.s1);

		if(frm!=null) 

			frm.reset();

	}

	else if(cxlink.typ==9){

		window.print();

	}

	else if(cxlink.typ==10){

		window.close();

	}

	else if(cxlink.typ==6){

		var frmM = document.getElementById(cxlink.s1);

		if(frmM!=null){

			if(checkForm(cxlink)){

				var frmMoldAction = frmM.action;

				frmM.action = cxlink.s7;

				frmM.submit();

				frmM.action = frmMoldAction;

			}

		}

	}

	return retVal;

}



function checkForm(cxlink){

	for(var i=0; i<cxlink.s2.length; i++){

		var ok = true

		if(cxlink.s2[i].indexOf("radio_")==0){

			if(cxlink.s3[i][1]){

				var radios = document.getElementsByName(cxlink.s2[i].substring(6));

				ok = false;

				for(var ri=0; ri<radios.length && ok==false; ri++){

					if(radios[ri].checked){

						ok = true;

					}

				}

			}

		}

		else{

			var cpn = document.getElementById(cxlink.s2[i]);

			if(cpn!=null){

				if(cpn.type=="checkbox"){

					if(cxlink.s3[i][1] && !cpn.checked){

						ok = false;

					}

				}

				else if(cpn.type.indexOf("select")>=0){

					if(cxlink.s3[i][1] && cpn.value.length==0){

						ok = false;

					}

				}

				else{

					if(cxlink.s3[i][1] && cpn.value.length==0){

						ok = false;

					}

					else if(cpn.value.length>0){

						if(cxlink.s3[i][0]==1){	

							if(isNaN(cpn.value)){

								ok = false;

							}

							else{

								var intval = parseInt(cpn.value);

								if(cxlink.s3[i][2] && cxlink.s3[i][4]){

									if(intval<cxlink.s3[i][3] || intval>cxlink.s3[i][5]){

										ok = false;

									}

								}

								else if(cxlink.s3[i][2]){

									if(intval<cxlink.s3[i][3]){

										ok = false;

									}

								}

								else if(cxlink.s3[i][4]){

									if(intval>cxlink.s3[i][5]){	

										ok = false;

									}

								}

							}

						}

						else if(cxlink.s3[i][0]==2){

							var sl = cpn.value.length;

							if(cxlink.s3[i][2] && cxlink.s3[i][4]){

								if(sl<cxlink.s3[i][3] || sl>cxlink.s3[i][5]){

									ok = false;

								}

							}

							else if(cxlink.s3[i][2]){

								if(sl<cxlink.s3[i][3]){

									ok = false;

								}

							}

							else if(cxlink.s3[i][4]){

								if(sl>cxlink.s3[i][5]){

									ok = false;

								}

							}

						}

						else if(cxlink.s3[i][0]==3){

							var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";

							var domain = "([a-zäöüA-ZÄÖÜ0-9][a-zäöüA-ZÄÖÜ0-9._-]*\\.)*[a-zäöüA-ZÄÖÜ0-9][a-zäöüA-ZÄÖÜ0-9._-]*\\.[a-zA-Z]{2,5}";

							var reg = new RegExp("^"+usr+"\@"+domain+"$");

							ok = reg.test(cpn.value);

						}

					}

				}

			}

		}

		

		cpn = document.getElementById(cxlink.s4[i]);

		if(cpn!=null){

			var toVis;

			if(ok){

				cpn.style.width = '0px';

				cpn.style.height = '0px';

				toVis = 'hidden';

			}

			else{

				cpn.style.width = cxlink.s5[i]+'px';

				cpn.style.height = cxlink.s6[i]+'px';

				toVis = 'visible';

			}

			cpn.style.visibility = toVis;

		}

		

		if(!ok)

			return false;

	}

	

	return true;

}



function CXVis(id,type){

	this.id = id; 

	this.type = type;

}



function CXStartPos(id,x,y,w,h){

	this.id = id; 

	this.x = x+'px'; 

	this.y = y+'px'; 

	this.w = w+'px'; 

	this.h = h+'px';

}



function CXSearch(ole,oleDiv,txt,x,y,w,h){

	this.ole = ole; 

	this.oleDiv = oleDiv; 

	this.txt = txt; 

	this.x = x; 

	this.y = y; 

	this.w = w; 

	this.h = h;

}





function CXChange(id,key,val,op){

	this.id = id;

	this.key = key;

	this.val = val;

	this.op = op;

}



function startAction(id){

	var retVal = true;

	if(cxactions[id]!=null && !cxactions[id][3]){

		cxactions[id][3] = true;

		retVal = performAction(id);

	}

	return retVal;

}



function performAction(id){

	var retVal = true;

	if(cxactions[id]!=null){

		var curStep = cxactions[id][2];

		if(cxactions[id][0].length-1>curStep){

			var timeout = 0;

			var nextStep = true;

			var data = cxactions[id][1][curStep];

			switch(cxactions[id][0][curStep]){

			case 0:

				for(var i=0; i<data.length; i++){

					var cxchange = data[i];

					var elem = document.getElementById(cxchange.id);

					if(elem!=null){

						cxchange.val = parseInt(cxchange.val);

						if(cxchange.key=="opacity"){

							if(window.opera){

								if(cxchange.op=="="){

									var opacity = cxchange.val/255;

									if(opacity>=0.0 && opacity<=1.0)

									{

										opacity = String(opacity);

										if(opacity.length>4)

											opacity = opacity.substr(0,4);

										elem.style.opacity = opacity;	

									}

								}

								else{

									var opacity = 1.0;

									if(elem.style.opacity)

										opacity = parseFloat(elem.style.opacity);

									if(cxchange.op=="+")

										opacity += cxchange.val/255;

									else

										opacity -= cxchange.val/255;

									if(opacity>=0.0 && opacity<=1.0){

										opacity = String(opacity);

										if(opacity.length>4)

											opacity = opacity.substr(0,4);

										elem.style.opacity = opacity;	

									}

								}

							}

							else if(navigator.userAgent.indexOf("MSIE")>=0){

								var init = true;

								if(elem.style.filter.length>0){

									var str = elem.style.filter;

									var search = "alpha(opacity=";

									var i = str.indexOf(search);

									if(i>=0){

										init = false;

										var before = str.substr(0,i+search.length);

										var after = str.substr(i+search.length);

										i = after.indexOf(")");

										var opacity = parseFloat(after.substr(0,i));

										after = after.substr(i);

										var val = cxchange.val/255*100;

										if(cxchange.op=="=")

											opacity = val;

										else if(cxchange.op=="+")

											opacity += val;

										else if(cxchange.op=="-")

											opacity -= val;

										if(opacity>=0 && opacity<=100){

											opacity = String(opacity);

											if(opacity.length>5)

												opacity = opacity.substr(0,5);

											elem.style.filter = before+opacity+after;

										}

									}

								}

								if(init){

									var opacity = 100;

									var val = cxchange.val/255*100;

									if(cxchange.op=="=")

										opacity = val;

									else if(cxchange.op=="-")

										opacity -= val;

									if(opacity>=0 && opacity<=100){

										opacity = String(opacity);

										if(opacity.length>5)

												opacity = opacity.substr(0,5);						

										elem.style.filter = "alpha(opacity="+opacity+")";

									}

								}

							}

							else{

								if(cxchange.op=="="){

									var opacity = cxchange.val/255;

									if(opacity>=0.0 && opacity<=1.0){

										opacity = String(opacity);

										if(opacity.length>4)

											opacity = opacity.substr(0,4);

										elem.style.MozOpacity = opacity;	

									}

								}

								else	{

									var opacity = 1.0;

									if(elem.style.MozOpacity)

										opacity = parseFloat(elem.style.MozOpacity);

									if(cxchange.op=="+")

										opacity += cxchange.val/255;

									else

										opacity -= cxchange.val/255;

									if(opacity>=0.0 && opacity<=1.0){

										opacity = String(opacity);

										if(opacity.length>4)

											opacity = opacity.substr(0,4);

										elem.style.MozOpacity = opacity;	

									}

								}

							}

						}

						else if(cxchange.key=="top"){

							var top = parseInt(elem.style.top);

							if(cxchange.op=="=")

								top = cxchange.val;

							else if(cxchange.op=="+")

								top += cxchange.val;

							else if(cxchange.op=="-")

								top -= cxchange.val;

							elem.style.top = top+"px";							

						}

						else if(cxchange.key=="left"){

							var left = parseInt(elem.style.left);

							if(cxchange.op=="=")

								left = cxchange.val;

							else if(cxchange.op=="+")

								left += cxchange.val;

							else if(cxchange.op=="-")

								left -= cxchange.val;

							elem.style.left = left+"px";							

						}

						else if(cxchange.key=="width"){

							var width = parseInt(elem.style.width);

							if(cxchange.op=="=")

								width = cxchange.val;

							else if(cxchange.op=="+")

								width += cxchange.val;

							else if(cxchange.op=="-")

								width -= cxchange.val;

							elem.style.width = width+"px";							

						}

						else if(cxchange.key=="height"){

							var height = parseInt(elem.style.height);

							if(cxchange.op=="=")

								height = cxchange.val;

							else if(cxchange.op=="+")

								height += cxchange.val;

							else if(cxchange.op=="-")

								height -= cxchange.val;

							elem.style.height = height+"px";							

						}

					}

				}

				break;

			case 1:

				if(data.stepRects.length>data.curStep){

					var scpn = document.getElementById(data.id);

					if(scpn!=null){

						nextStep = false;

						timeout = data.stepPauses[data.curStep];

						if(data.curStep<0){

							data.curStep = 0;

							if(data.relative){

								for(var i=0; i<data.stepRects.length; i++){

									var r;

									var _x = 0, _y = 0, _w = 0, _h = 0;

									for(var j=-1; j<=i; j++){

										if(j<0){

											r = new CXRect(parseInt(scpn.style.left),parseInt(scpn.style.top),parseInt(scpn.style.width),parseInt(scpn.style.height));

										}

										else{

											r = data.stepVector[j];

										}

										_x += r.x;

										_y += r.y;

										_w += r.w;

										_h += r.h;

									}

									data.stepRects[i] = new CXRect(_x,_y,_w,_h);

								}

							}

							else{

								scpn.style.left = data.sRect.x+'px';

								scpn.style.top = data.sRect.y+'px';

								scpn.style.width = data.sRect.w+'px';

								scpn.style.height = data.sRect.h+'px';

							}

						}

						if(data.stepFrames[data.curStep]>data.curScale){

							if(data.curScale<0){

								data.curScale = 0;

								var _r = data.stepRects[data.curStep];

								data.r2 = new CXRect(_r.x,_r.y,_r.w,_r.h);	

								if(data.curStep==0){

									data.r1 = new CXRect(parseInt(scpn.style.left),parseInt(scpn.style.top),parseInt(scpn.style.width),parseInt(scpn.style.height));

								}

								else{

									_r = data.stepRects[data.curStep-1];

									data.r1 = new CXRect(_r.x,_r.y,_r.w,_r.h);

								}

								var frames = data.stepFrames[data.curStep];

								data.xstep = (data.r2.x-data.r1.x)/frames;

								data.ystep = (data.r2.y-data.r1.y)/frames;

								data.hstep = (data.r2.w-data.r1.w)/frames;

								data.vstep = (data.r2.h-data.r1.h)/frames;

								if(isNaN(data.xstep)) data.xstep = 0;

								if(isNaN(data.ystep)) data.ystep = 0;

								if(isNaN(data.hstep)) data.hstep = 0;

								if(isNaN(data.vstep)) data.vstep = 0;

							}

							scpn.style.left = Math.round(data.r1.x+data.curScale*data.xstep)+'px';

							scpn.style.top = Math.round(data.r1.y+data.curScale*data.ystep)+'px';

							scpn.style.width = Math.round(data.r1.w+data.curScale*data.hstep)+'px';

							scpn.style.height = Math.round(data.r1.h+data.curScale*data.vstep)+'px';

							data.curScale++;

						}

						else{

							scpn.style.left = data.r2.x+'px';

							scpn.style.top = data.r2.y+'px';

							scpn.style.width = data.r2.w+'px';

							scpn.style.height = data.r2.h+'px';

							data.curScale = -1;data.curStep++;

						}

					}

				}

				else{

					data.curStep = -1;data.curScale = -1;

				}

				break;

			case 2:

				timeout = data;

				break;

			case 3:

				if(data.count<0 || data.stepped<data.count){

					data.stepped++;

					nextStep = false;

					var st = curStep;

					if(data.absolute){

						st = data.step;

					}

					else{

						st = curStep+data.step;

					}

					cxactions[id][2] = st;

				}

				else{

					data.stepped = 0;

				}

				break;

			case 4:

			case 8:

				retVal = performLink(data);

				break;

			case 5:

				var cpn = document.getElementById(data.id);

				if(cpn!=null){

					var str = 'visible';

					if((data.type==2 && cpn.style.visibility=='visible') || data.type==1) 

						str = 'hidden';

					cpn.style.visibility = str;

				}

				break;

			case 6:

				var cpn0 = document.getElementById(data.id);

				if(cpn0!=null){

					cpn0.style.left = data.x;

					cpn0.style.top = data.y;

					cpn0.style.width = data.w;

					cpn0.style.height = data.h;

				}

				break;

			case 7:

				var searchString = document.getElementById(data.txt);

				if(searchString!=null){

					searchString = searchString.value;

					var searchPath = "scripts/search.php?q="+searchString;

					var searchTarget = document.getElementById(data.ole);

					if(searchTarget!=null){

						var oleDiv = document.getElementById(data.oleDiv);

						if(oleDiv!=null){

							oleDiv.style.left = data.x+'px';

							oleDiv.style.top = data.y+'px';

							oleDiv.style.width = data.w+'px';

							oleDiv.style.height = data.h+'px';

						}

						searchTarget.src = searchPath;

					}

					else{

						window.location.href = searchPath

					}

				}

				break;

			}

			if(nextStep) 

				cxactions[id][2]++;

			setTimeout("performAction('"+id+"')",timeout);

		}

		else{

			cxactions[id][2] = 0;cxactions[id][3] = false;

		}

	}

	return retVal;

}


