// various scripts

var faqlastopen;
var emsg1, emsg2;

function chkNotEmpty(x,y)
{
	if (x.value.length<3)
	{
		alert("Sorry, "+y+" muss mindestens 3 Zeichen haben!");
		return false;
	}
	return true;
}
function setFieldValue(id,val)
{
	var f=document.getElementById(id);
	f.value=val;
}
function addToCombo(id,list,cnt)
{
	var box = document.getElementById(id);
	var entries=list.split(',');
	if (box) for (var ix=0; ix<entries.length;ix++)
	{
		var op = document.createElement("option");
		op.text = entries[ix];
		if (cnt) op.value = ix;
		else op.value = entries[ix];
		if (navigator.appName == "Netscape")
			box.add (op, null);
		else
			box.add (op, box.length);
	}
}
function setCombo(id,val)
{
	var box = document.getElementById(id);
	if (box) for (var i=0; i<box.length; i++)
	{
		if (box.options[i].text == val)
			box.selectedIndex = i;
	}
}
// this funtion writes the selected value into a span, additionally
function setBoxVal(box,val,ix, s)
{
	var sp = document.getElementById(s);
	var i;
	if (box) for (i=0; i<box.length; i++)
	{
		if (box.options[i].value == val)
		{
			if (ix>0) box.options[i].selected = true;
			else box.selectedIndex = i;
			if (sp) sp.firstChild.data = box.options[i].text;
			return true;
		}
	}
	var ne = new Option (val,val);
	box.options[i]=ne;
	box.options[i].selected = true;
	box.selectedIndex=i;
	return true;
}
function setComboVal(id,val, s)
{
	if (val=="") val="0";
	var box = document.getElementById(id);
	if (!box) return;
	var sval=val.split(',');
	val=false;
	for (var ix=0; ix<sval.length;ix++)
	{
		if (setBoxVal(box,sval[ix],ix, s)) val=true;
	}
	if (!val) box.selectedIndex=-1;
}
function copyToggleVal(id,t)
{
	var toggle = document.getElementById(id);
	var tg = document.getElementById(t);
	tg.value=(toggle.checked)?"on":"off";
}
function checkPWDF()
{
	var u = document.getElementById('oldpw');
	var p1 = document.getElementById('npw1');
	var p2 = document.getElementById('npw2');
	if (p1.value.length < 3) return setErrMsg (emsg1);
	if (p1.value != p2.value) return setErrMsg (emsg2);
	u.value = hex_md5(u.value);
	p1.value = hex_md5(p1.value);
	p2.value = "";
	return true;
}
function chkRegEntry(x)
{
	return (x.value.indexOf('/') >= 0 ||
		x.value.indexOf('%') >= 0 ||
		x.value.indexOf('<') >= 0 ||
		x.value.indexOf('>') >= 0);
}
function setErrMsg (msg)
{
	var f=document.getElementById("emsg");
	f.innerHTML = msg;
	return false;
}
function changeValue (msg, translation)
{
	var ttab=translation.split(',');
	var f=document.getElementById(msg);
	if (f)
	{
		var ix=f.firstChild.data;
		f.innerHTML = ttab[ix];
	}
	return false;
}
function checkRegForm()
{
	var ok;
	var u = document.getElementById("ru");
	var n = document.getElementById("rn");
	var e = document.getElementById("re");
	if (u.value.length < 3) return setErrMsg (emsg2);
	if (chkRegEntry (u)) return setErrMsg (emsg1);
	if (chkRegEntry (n)) return setErrMsg (emsg1);
	if (chkRegEntry (e)) return setErrMsg (emsg1);
	return true;
}
function setVal(x)
{
	n = document.getElementById('value');
	n.value=x;
}
function setStatusValue(field,value)
{
	var f=document.getElementById(field);
	if (f)
	{
		f.firstChild.data=value;
		f.className="errormsg";
	}
}
function faqInit()
{
	tbls = document.getElementsByTagName("span");
	for (ti=0;ti<tbls.length;ti++)
	{
		thisTbl = tbls[ti];
		if (((' '+thisTbl.className+' ').indexOf("faqitem") != -1) && (thisTbl.id))
			setFaqVisibility(thisTbl.id, false);
	}
}
function setFaqVisibility(x, v)
{
	n = document.getElementById(x);
	if (n) n.style.display=(v)?"":"none";
}
function faqswitch(x)
{
	if (faqlastopen != 0)
	{
		setFaqVisibility ('faq'+faqlastopen+'a', false);
		setFaqVisibility ('faq'+faqlastopen+'b', false);
	}
	if (faqlastopen != x)
	{
		setFaqVisibility ('faq'+x+'a', true);
		setFaqVisibility ('faq'+x+'b', true);
		faqlastopen = x;
	}
	else faqlastopen = 0;
}
function charCount(field)
{
	t=document.getElementById(field);
	var len = t.value.length;
	document.getElementById("cnt-"+field).firstChild.data = len;
}
var charcountsumfieldlist;
function charCountSummary(fieldlist)
{
	if (fieldlist) charcountsumfieldlist=fieldlist.split(',');
	var len=0;
	var t;
	for (var ix=0; ix<charcountsumfieldlist.length;ix++)
	{
		t=document.getElementById(charcountsumfieldlist[ix]);
		if (t) len += t.value.length;
	}
	document.getElementById("cnt-summary").firstChild.data = len;
}
function addSmilie(x,s)
{
	u = document.getElementById(x);
	u.focus();
	// internet explorer:
	if (typeof document.selection != 'undefined')
	{
		var range = document.selection.createRange();
		range.text=s;
		range = document.selection.createRange();
		range.move('character', s.length);
	}
	// gecko-engine (firefox)
	else if (typeof u.selectionStart != 'undefined')
	{
		var start = u.selectionStart;
		u.value = u.value.substr(0, start)+s+u.value.substr(start);
		u.selectionStart=u.selectionEnd=start+s.length;
	}
	else
	{
		u.value=u.value+s;
	}
}

