//
// keyboard
//
function chkKeyTyp(e) {		
	var code = '';
	if (Prototype.Browser.IE) {code = event.keyCode;} 
	else if (!Prototype.Browser.IE && !e) {document.onkeypress=chkKeyTyp;}
	else if (!Prototype.Browser.IE && e) {code = e.which;}	
	code = (!code) ? 0 : code;
	return code;
}

//
// show artdetails
//
showArtMoreStatus = new Object();
function showArtMoreInfo(id) {
	if (!showArtMoreStatus[id]) {
		showArtMoreStatus[id] = true;
		new Effect.BlindDown(id, { duration: 0.5, afterFinish: function() {	
				Element.show(id);
			} }  
		);				
	} else {
		showArtMoreStatus[id] = false;	
		new Effect.BlindUp(id, { duration: 0.5, afterFinish: function() {	
				Element.hide(id);
			} }  
		);	
	}
}

//
// box action (radio or checkbox)
//
function getBoxAction(boxid, boxtyp) {
	if (!boxtyp) {boxtyp = "check";}
	var chk = false;
	if ((o=searchObj(boxid))!=null) {
		if (!o.disabled) {
			switch (boxtyp) {		
				case "radio" : 
					chk = true;
					break;
				default : 
					chk = (o.checked) ? false : true;
					break;
			}
			o.checked = chk;
		}
	}	
}

//
// select or deselect all checkboxes (form)
//
function checkAllFormBoxes(frm, box) {
	var obj,dfe = eval("document."+frm+".elements.length");	
	for (i=0; i < dfe; i++) {		
		obj =  eval("document."+frm+".elements["+i+"]");
		if (obj.type == 'checkbox') {obj.checked = box.checked;}		
	}	
}

//
// select or deselect all checkboxes (same id)
//
function checkAllBoxes(boxid, boxcou, boxacter) {
	var boxchk = boxacter.checked;
	for (i=0; i < boxcou; i++) {
		if (d.getElementById(boxid+''+i) != null) {
		 d.getElementById(boxid+''+i).checked = boxchk;	
		}			
	}
}

//
// send all selected boxes
//
function sendAllBoxes(boxid, boxcou, sel, frm, boxact) {			
	var i = 0, objcou = 0; sendchk = false;		
	var selact = d.getElementById(sel).selectedIndex;
	var selarg = d.getElementById(sel).options[selact].value;
	if (selarg!=0) {
		var posarr = selarg.split("@");
		while (i < boxcou) {
			if (d.getElementById(boxid+''+i) != null) {
			 if (d.getElementById(boxid+''+i).checked) {
			  objcou++; sendchk = true;
			 }	
			} 
			i++;
		}
	}
	if (sendchk) {
		checkAskArr(boxcou);
		asknow = unescape(repNewline(d.arrask[posarr[1]]));
		if((askcheck=confirm(asknow)) == true) {
			var sendform = eval("d."+frm);
			sendform.submit(); return false;
		} else {
			if ((bact = searchObj(boxact)) != null) {
				bact.checked = (!bact.checked) ? true : false;
			}
			for (i=0;i<boxcou;i++) {
				if (d.getElementById(boxid+''+i) != null) {
				 if (d.getElementById(boxid+''+i).checked) {
		 		   d.getElementById(boxid+''+i).checked = false;
				 }	
				} 
			}
		}
	}
}
//
// form info
//
function setInfoStatus(err, msg) {
	if (err) {			
		if ((m=searchObj(d.valinfo))!=null) {
			m.className = "x1rt"; m.innerHTML = unescape(msg);
		} else {alert(unescape(msg));} 		
	} else {	
		if ((m=searchObj(d.valinfo))!=null) {
			m.className = "x1gr"; m.innerHTML = unescape(msg);
		}		
	}	
}

//
// control textarea
//
function textCounter(area, show, limit) {
	anzahl = area.value.length;
	stand = parseInt(limit-anzahl);
	if (stand < 0) {stand = 0;}
	d.getElementById(show).value = stand;
	if (anzahl>limit) {
		area_limit = area.value.substring(area.value, limit);
		area.value = area_limit;
	}
}

//
// 
//
function doCLnk(lnk, box, what, frm, pos) {	
	d.getbox = false;	
	getBoxAction(box,'checkbox');
	var doform = eval("d."+frm);
	doform.values.value = d.arrlnk[lnk];	
	if (what == "ask") {
		confirmActionForm(frm, pos);
		if (d.getbox) {getBoxAction(box,'checkbox');}
	} else {
		doform.submit(); return false;
	}
}

//
// confirm - go on link (simple)
//
function confAction(ask, qry) {
	var asknow = repNewline(ask);
	if((askcheck=confirm(asknow))==true) {top.location.replace(d.weburl+"?"+qry);}	
}

//
// confirm - go on link (without value)
// 
function confirmAction(pos, qry) {
	checkAskArr(pos);
	var asknow = repNewline(d.arrask[pos]);
	if((askcheck=confirm(asknow))==true) {top.location.replace(d.weburl+"?"+qry);}	
}

//
// confirm - go on link (with value)
//
function confirmActionValue(val, pos, qry) {
	checkAskArr(pos);
	asknow = repNewline(d.arrask[pos])+repNewline(val);
	if((askcheck=confirm(asknow))==true) {top.location.replace(d.weburl+"?"+qry);}	
}

//
// confirm - go on form
//
function confirmActionForm(frm, pos) {
	checkAskArr(pos);
	asknow = repNewline(d.arrask[pos]);
	askcheck = confirm(asknow);
	if(askcheck == true) {
		var sendform = eval("d."+frm);
		sendform.submit(); return false;
	} else {
		d.getbox = true;
	}
}

//
// form validate (include: fieldcolor, style)
//
function formColorStyle(obj, rgb) {
	obj.style.backgroundColor = rgb;
	return;
}
function formCheckingStyle() {
	d.errview = d.errview+1;
	//d.fld.value = d.errview;
	if (d.ftyp == 's') {
		fsi = d.fld.options[d.fld.selectedIndex].value;
		if (fsi.NaN) {
			if (fsi != "") {
				formColorStyle(d.fld, ""); clearInterval(d.errcount);	
			}
		} else if (fsi != 0) {
			formColorStyle(d.fld, ""); clearInterval(d.errcount);		
		}
	} else if (d.ftyp == 'e') {
		if (d.fld.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i)) {
			formColorStyle(d.fld, ""); clearInterval(d.errcount);				
		}
	} else if (d.ftyp == 'n') {
		if (d.fld.value.length > 0) {
			if (!isNaN(d.fld.value)) {
				formColorStyle(d.fld, ""); clearInterval(d.errcount);	
			}				
		}
	} else if (d.ftyp == 't') {
		if (d.fld.value.length > 0) {	
			formColorStyle(d.fld, ""); clearInterval(d.errcount);
		}
	}
	if (d.errview > 40) {
		formColorStyle(d.fld, ""); clearInterval(d.errcount);		
	}
}
function formErrorStyle(fld, ftyp) {
	try {
		d.fld = fld; d.ftyp = ftyp;
		formColorStyle(d.fld, "#CCFFFF"); //CCFFCC
		d.errview = 0; 
		d.errcount = setInterval("formCheckingStyle()", 100);
	} catch (e) {}
	finally {return;}
}
function formValidate() {

	var i,j=-1,o,a=formValidate.arguments;
	var errmy=true,errbs=false,msg='',otyp='';
	
	d.otyp_bs_rem = "nein";
	
	if (a.length>0) {
		for(i=0;i<a.length;i+=2) {
			j++;		
			if ((o=searchObj(a[i]))!=null) {		
				if (!o.disabled) {

					otyp=a[i+1];
					if (otyp!='ba' && otyp!='bs') {formColorStyle(o, "");}
					
					if (otyp=='e') {		
						
						if (!o.value) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else if (o.value && !o.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i)){
							errmy = true; msg = d.valmsg[j+1]; i=a.length;
						} else if (o.value && o.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i)){
							j++;
						} else {errmy = false;}
								
					} else if (otyp=='t') {
					
						if (!o.value) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else {errmy = false;}		
														
					} else if (otyp=='n') {
					
						if (!o.value || isNaN(o.value)) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else {errmy = false;}					
					
					} else if (otyp=='s') {
						
						var osv = o.options[o.selectedIndex].value;
						
						if (!o.options[o.selectedIndex]) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else if (osv.NaN) {
							if (osv == "") {
								errmy = true; msg = d.valmsg[j]; i=a.length;
							}			
						} else if (osv <= 0) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else {errmy = false;}	
						
					} else if (otyp=='ba') {
					
						if (o.length) {
							tmperrmy = false;
							for (p=0;p<o.length;p++) {
								if (!o[p].checked) {
									tmperrmy = true;
									break;
								}
							}
							if (tmperrmy) {
								errmy = true; msg = d.valmsg[j]; i=a.length;
							}
						} else if (!o.length && !o.checked) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else if (!o.length) {errmy = false;}	
					
					} else if (otyp=='bs') {
				
						d.otyp_bs_rem = "ja";
						
						if (o.length) {
							tmperrmy = true;
							for (p=0;p<o.length;p++) {
								if (o[p].checked) {
									o[p].checked = true;
									tmperrmy = false;
									break;
								}
							}
							if (tmperrmy) {
								errmy = true; msg = d.valmsg[j]; i=a.length;
							}
						} else if (!o.length && !o.checked) {
							errmy = true; msg = d.valmsg[j]; i=a.length;
						} else if (!o.length) {errmy = false;}						
						
						/*		
						if (!errbs && o.checked) {
							o.checked = true;					
							errmy = false; errbs=true;
						} else if (!errbs && !o.checked) {
							errmy = true; msg = d.valmsg[j]; j--;
						}
						*/
						 		
					}
					if (errmy) {break;}
				}
			}
		}		
	} else {
		errmy=false;
	}
	
	if (errmy) {			
		if ((m=searchObj(d.valinfo))!=null) {
			m.className = "error"; 
			try {m.innerHTML = unescape(decodeURI(msg));} catch(e) {m.innerHTML = unescape(msg);}			
		} else {
			try {alert(unescape(decodeURI(msg)));} catch(e) {alert(unescape(msg));}
		} 		
		if (otyp!='ba' && otyp!='bs') {
			o.focus(); formErrorStyle(o, otyp); 
		}		
		return false;		
	} else {	
		if ((m=searchObj(d.valinfo))!=null) {
			m.className = "done"; 
			try {m.innerHTML = unescape(decodeURI(d.saveinfo));} catch(e) {m.innerHTML = unescape(d.saveinfo);}			
		}		
		return true;
	}
}

//
// show layer (func-cadaver? 29.11.06)
//
function showLayer(id, arg, px, py, lid, iid) {
	px = (!px) ? 0 : px; py = (!py) ? 0 : py; 
	if ((lay=searchObj(lid+""+id))!=null) {	
		switch (arg){						
			case "show" :				
				if ((obj=searchObj(iid+""+id))!=null) {
					lay.style.left = parseInt(window.xpos+px)+"px";
					lay.style.top = parseInt(window.ypos+py)+"px";
					lay.style.visibility = "visible";
				}					
			break;
			case "hide" :				
				lay.style.left = "-2000px";
				lay.style.top = "-2000px";
				lay.style.visibility = "hidden";
			break;
		}			
	}	
}

//
// show infolayer (func-cadaver? 29.11.06)
//
function showInfoLayer(arg, text, width, x_offset, y_offset) {
	if (!width)var width = 100;
	if (!x_offset)var x_offset = 0;
	if (!y_offset)var y_offset = 12;
	if ((obj=searchObj("gloInfoLayer"))!=null){
		switch (arg){						
			case "show" :
				if (obj.style.visibility == "hidden"){
					obj.style.left = window.xpos;
					obj.style.top = window.ypos+y_offset;
					obj.style.visibility = "visible";
					obj.style.width = width+2;	
					document.getElementById("InfoLayer_Text").innerHTML = unescape(text);		
				}
			break;
			case "hide" :
				obj.style.left = "-2000px";
				obj.style.top = "-2000px";
				obj.style.visibility = "hidden";
			break;	
		}
	}	
}


//
// newest infolayer (wem 30.11.06)
//

function getPageScroll() {
	var docScroll = document.viewport.getScrollOffsets();		
	return docScroll;
}

function getPageSize() {
	var retSize = [];
	var docSize = document.viewport.getDimensions();
	var docScroll = getPageScroll();		
	retSize[0] = (docSize.width+docScroll[0]);
	retSize[1] = (docSize.height+docScroll[1]);
	return retSize;
}

function checkProtector() {
	if ($('overlay')) {
		var pageOverlay = $('overlay');
	} else {
		createPageProtector();
	}	
	if (!pageOverlay) {
		if ($('pageProtector')){
			var pageOverlay = $('pageProtector');
		} else {
			return null;
		}
	}		
	return pageOverlay;
}

function pageProtector() {
	var docSize = getPageSize();
	var pageOverlay = checkProtector();
	if (!pageOverlay) { return; }	
	if(Prototype.Browser.IE){
		$$('select').each(function(e){
			$(e).setStyle({'visibility':'hidden'});
		});
	}
	$(pageOverlay).setStyle({'height':docSize[1]+'px'}).setOpacity(.05).show();	
	Event.observe(window,"scroll",pageProtectorObserve);
	Event.observe(window,"resize",pageProtectorObserve);	
}

function pageProtectorObserve() {
	var docSize = getPageSize();
	var pageOverlay = checkProtector();
	$(pageOverlay).setStyle({'height':docSize[1]+'px'});
}

objHide = null;
function showAutoLayer(text, width, snickers, top, left) {
	if (!top) var top = 0;
	if (!left) var left = 0;
	if (!width) var width = 100;
	if (!snickers) var snickers = 2000;
	if ((obj = $("gloInfoLayer")) != null){
		var wsize = getPageSize();
		if (snickers > -1 && objHide) clearTimeout(objHide);
		var leftpos = ((window.xpos+left+10+width) > wsize[0]) ? (wsize[0]-(width+25)) : (window.xpos+left+10);
		var toppos = (window.ypos+top-25);
		$(obj).setStyle({'left':leftpos+'px','top':toppos+'px','width':(width+2)+'px'}).update(unescape(text)).show();
		if (snickers > -1) objHide = setTimeout("hideAutoLayer();", snickers);
	}
}
function hideAutoLayer() {
	if ((obj = $("gloInfoLayer")) != null){
		$(obj).setStyle({'left':'-1000px','top':'-1000px','width':'50px'}).update('').hide();
	}	
}

// eof