function buttonMouseOver(button){
	if(buttons[button][0].length==0){
		var overlay = document.getElementById(buttons[button][6]);
		if(overlay!=null){
			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.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.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.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 = 'visible';
			}
			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.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.width = buttons[bid][9]+'px';
					overlay.style.height = buttons[bid][10]+'px';
				}
				else{
					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 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 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;
}

