window.xonerror = function(a, b, c)
{
	alert(a + ", " + b  + ", " + c);
	return false;
}

function ovr()
{
	window.status = "";
	return true;
}

function show(img, src)
{
	document.images[img].src = "images/" + src + ".gif";
	return ovr();
}

var mismatch = new Array("De nieuwe wachtwoorden zijn niet aan elkaar gelijk", "The newpasswords do not match");
var tooshort = new Array("Het nieuwe wachtwoord is te kort", "pasword too short");

function pwcheck()
{
	if(document.pwd.pwd.value != document.pwd.pwd2.value)
	{
		alert(mismatch[language]);
		return false;
	}
	if(document.pwd.pwd.value.length < 6)
	{
		alert(tooshort[language]);
		return false;
	}
	return true;
}

function emailCheck(error)
{
	if(document.info.email.value != document.info.email2.value)
	{
		alert(error);
		return false;
	}
	return true;
}

function ipopact()
{
	var ipop = document.getElementById("ipopfr");
	var dialog = document.getElementById("dialog");
        if(ipop && dialog)
        {
	// alert(dialog.offsetLeft + " - " + dialog.offsetTop + " +++ " + dialog.offsetWidth + " - " +  dialog.offsetHeight);

                ipop.style.left = dialog.offsetLeft + "px";
                ipop.style.top = dialog.offsetTop + "px";
                ipop.style.width = dialog.offsetWidth + "px";
                ipop.style.height = dialog.offsetHeight + "px";
        }
}

function cal(month, year)
{
	document.cinfo.cmonth.value = month + 1;
	document.cinfo.cyear.value = year;
	document.cinfo.submit();
	return false;
}

function day(date, month, year)
{
	document.cinfo.year.value = year;
	document.cinfo.month.value = month + 1;
	document.cinfo.day.value = date;
	document.cinfo.submit();
	return false;
}
function ouserInBranche(uid, branche)
{
	var r = iuserInBranche(uid, branche);
alert("inbranche(" + uid + ", " + branche + ") => " + r);
	return r;
}

function userInBranche(uid, branche)
{
	if(branche == 0)
	{
		return !ubranche[uid];
	}
	var blist = ubranche[uid];
	if(!blist)
	{
		return true;
	}
	for(var i = 0; i < blist.length; i++)
	{
		if(blist[i] == branche)
		{
			return true;
		}
	}
	return false;
}

function serviceSelect(form)
{
	var id = document.forms[form].service.selectedIndex;
	id = document.forms[form].service.options[id].value;
	document.forms[form].servant.options.length = 1;
	var branche = 0;
	if(document.forms[form].branche)
	{
		if(document.forms[form].branche.options)
		{
			branche = document.forms[form].branche.selectedIndex;
			branche = document.forms[form].branche.options[branche].value;
		}
		else
		{
			branche = document.forms[form].branche.value;
		}
	}

	var userlist = suser[id];
	if(userlist)
	{
		for(var i = 1; i < userlist.length; i++)
		{
			var uid = userlist[i];
			if(userInBranche(uid, branche))
			{
				var uname = user[uid];
				document.forms[form].servant.options[i] = new Option(uname, uid, false, false);
			}
		}
	}
}

function showSwatch(on)
{
	var elem = document.getElementById('eemask');
	
	if(elem)
	{
		elem.style.visibility = on ? 'visible' : 'hidden';
	}
}

function editColour()
{
	showSwatch(true);
/*
	document.info.color.onchange = cchanged;
	colorPicker.show("dmask", "ddiv", document.info.color);
 */
}

function cchanged()
{
	var elem = document.getElementById('serviceColour');
	if(elem)
	{
		elem.style.backgroundColor = document.info.color.value;
	}
}

function setColour(n, clr)
{
	var elem = document.getElementById('serviceColour');
	if(elem)
	{
		elem.style.backgroundColor = clr;
	}
	if(document.info.color)
	{
		document.info.color.value = n;
	}
	showSwatch(false);
}

function cancelColour()
{
	showSwatch(false);
}

function fillSelect(event, fld, limit)
{
	var sel = document.info[fld.name.substr(1)];
	var val = fld.value;
	sel.options.length = 1;
	var elem = document.getElementById('flddiv');
	if(val.length == 0)
	{
		if(elem)
		{
			elem.style.visibility = 'hidden';
		}
		return;
	}
/*
	if(!fillUserRequest("index.php?sessionID=" + sessid + "&function=userlist&start=" + val + "&timespan=" + document.info.timespan.value, sel, elem))
	{
		return;
	}
 */
	var count = 0;
	var pattern = new RegExp('^' + val, 'i');
	for(var e in ue)
	{
		if(e.match(pattern))
		{
			count++;
		}
	}
	if(count > limit)
	{
		if(elem)
		{
			elem.style.visibility = 'hidden';
		}
		return;
	}
	var cur = sel.options[0].value;
	var n = 1;
	for(var e in ue)
	{
		if(e.match(pattern))
		{
			if(ue[e] != cur)
			{
				sel.options[n++] = new Option(e, ue[e], false, false);
			}
		}
	}
	var elem = document.getElementById('flddiv');
	if(elem)
	{
		elem.style.visibility = 'visible';
	}
}

function setSelect(fld)
{
	var sel = fld.selectedIndex;
	var idx = fld.options[sel].value;
	var elem = document.getElementById('cname');
	var nm = un[idx];
	if(!nm)
	{
		nm = "";
	}
	if(elem)
	{
		elem.innerHTML = nm;
	}
	elem = document.getElementById('dosierdiv');
	if(elem)
	{
		var vis = "visible";
		if(idx == 0)
		{
			vis = "hidden";
		}
		elem.style.visibility = vis;
	}
}

function setPerHow(el)
{
	idx = el.selectedIndex;
	for(var i = 0; i < 6; i++)
	{
		var elem = document.getElementById("ppart" + i);
		if(elem)
		{
			elem.innerHTML = p[idx][i];
		}
	}
}

function validDate(date)
{
	if(date == '')
	{
		return true;
	}
	if(date.match(/^\d{1,2}[- ]\d{1,2}[- ]\d{4}$/))
	{
		return true;
	}
	if(date.match(/^\d{4}[- ]\d{1,2}[- ]\d{1,2}$/))
	{
		return true;
	}
	return false;
}

function dateCheck(elem, errtext)
{
	if(document.info)
	{
		if(document.info[elem])
		{
			if(!validDate(document.info[elem].value))
			{
				alert(errtext);
				return false;
			}
		}
	}
	return true;
}

function canScript()
{
	if(document.info)
	{
		if(document.info.script)
		{
			document.info.script.value = 1;
		}
		if(document.info.hasajax)
		{
			var hasxmlhttp = 0;
			if(window.XMLHttpRequest)
			{
				hasxmlhttp = 1;
			}
			else if(window.ActiveXObject)
			{
				try
				{
					var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					if(xmlhttp)
					{
						hasxmlhttp = 1;
					}
				}
				catch(e) {;}
			}
			document.info.hasajax.value = hasxmlhttp;
		}
	}
}

function sjump(state)
{
	document.sb.state.value = state;
	document.sb.submit();
	return false;
}

function isLoaded(name)
{
	var elem = document.getElementById("I" + name);
	if(elem)
	{
		return elem.contentWindow.document.loaded;
	}
	return false;

}
function save_iframe(name)
{
	var elem = document.getElementById("I" + name);
	if(elem)
	{
		if(!elem.contentWindow.document.loaded)
		{
			return false;
		}
		document.info[name].value = elem.contentWindow.document.body.innerHTML.replace(/[\r\n]+/g, " ");
		return true;
	}
	return true;
}

function load_iframe(name)
{
	var elem = document.getElementById("I" + name);
	if(elem)
	{
		if(!elem.contentWindow || !elem.contentWindow.document || !elem.contentWindow.document.loaded)
		{
			window.setTimeout("load_iframe('" + name + "')", 100);
			return;
		}
		var value = document.info[name].value;
//alert("set " + name + " to " + value);
		elem.contentWindow.document.body.innerHTML = document.info[name].value;

	}
}

function saveContents()
{
	var ok = false;
	sanitize();
	//save_iframe("title1");
	if(!save_iframe("title2")) return false;
	if(!save_iframe("column1")) return false;
	if(!save_iframe("column2")) return false;
	if(!save_iframe("column3")) return false;
	return true;
}

function loadContents()
{
	//load_iframe("title1");
	load_iframe("title2");
	load_iframe("column1");
	load_iframe("column2");
	load_iframe("column3");
}

function tjump(tab)
{
	if(document.info && document.info.wantsave && document.info.nextstate)
	{
		document.info.nextstate.value = tab;
		if(document.info.wantsave.value == 2)
		{
			// it is the contents page, save contents
			if(!saveContents())
			{
				// not all columns loaded, do *not* submit
				return;
			}
		}
		document.info.submit();
	}
	else
	{
		document.tb.state.value = tab;
		document.tb.submit();
	}
	return false;
}

function svalcheck(inp)
{
	var name = "txt" + inp.id;
	var elem = document.getElementById(name);
	if(elem)
	{
		elem.style.visibility = inp.checked ? "visible" : "hidden";
	}
	else
	{
		alert("no " + name);
	}
}

var _sv = null;
var _svafter = null;

function showv2()
{
	var show = document.info.showvest2.checked;
	if(show)
	{
		if(_sv)
		{
			_svafter.parentNode.insertBefore(_sv, _svafter);
		}
		// sv.style.visibility = show ? "visible" : "hidden";
	}
	else
	{
		var sv = document.getElementById('v2div');
		if(sv)
		{
			_svafter = sv.nextSibling;
			_sv = sv;
			_svafter.parentNode.removeChild(_sv);
		}
	}
}

function pickdate(minyear, maxyear, dmask, ddiv, field)
{
	datepicker.showCalendar(minyear, maxyear, dmask, ddiv, field);
}

function spmailcheck()
{
	for(var i = 0; i < document.info.elements.length; i++)
	{
		var el = document.info.elements[i];
		if(el.type == "checkbox")
		{
			if(el.checked)
			{
				return true;
			}
		}
	}
	alert(__norecipient);
	return false;
}

function barclick(evnt, slot, date, reservation, ctl)
{
	if(ctl && (evnt.shiftKey || evnt.altKey || evnt.ctrlKey))
	{
		var request = "index.php?sessionID=" + sessid + "&function=slot2&timeslot=" + slot + "&date=" + date + "&reservation=" + reservation;
		if(roomclick(evnt, true, request))
		{
			window.location = request;
		}
		return false;
	}
	else
	{
		return resclick(evnt, false);
	}
	return true;
}

function tsok()
{
	var frm = document.forms["info"];
	var request = "index.php";
	var comma = "?";
	// copy all inputs except "cancel"
	for(var i = 0; i < frm.elements.length; i++)
	{
		var el = frm.elements[i];
		switch(el.type)
		{
			case 'button':
				break;
			case 'submit':
				break;
			default:
				request += comma + el.name + "=" + el.value;
				comma = "&";
				break;
		}
	}
	return resRequest(request, __target);
}

function resclick(evnt)
{
	var src = evnt.srcElement ? evnt.srcElement : evnt.target;
	var href = src;
	while(href && href.tagName != 'A')
	{
		href = href.parentNode;
	}
	if(!href)
	{
		return;
	}
	href = href.href;
	var tgt;
	var p = src;
	while(p && p.className != 'timebar')
	{
		p = p.parentNode;
	}
	tgt = p;
	return resRequest(href, tgt);
}

var __target;

function roomclick(evnt, save, hrf)
{
	var src = evnt.srcElement ? evnt.srcElement : evnt.target;
	var href;
	if(hrf)
	{
		href = hrf;
	}
	else
	{
		href = src;
		while(href && href.tagName != 'A')
		{
			href = href.parentNode;
		}
		if(!href)
		{
			return true;
		}
		href = href.href;
	}
	if(save)
	{
		var t = src;
		while(t && t.className != 'timebar')
		{
			t = t.parentNode;
		}
		__target = t;
	}
	var tgt = document.getElementById('mask');
	if(tgt)
	{
		return roomRequest(href, tgt);
	}
	return true;
}

function ajaxLink(evnt, target)
{
	var src = evnt.srcElement ? evnt.srcElement : evnt.target;
	var href = src;
	while(href && href.tagName != 'A')
	{
		href = href.parentNode;
	}
	if(!href)
	{
		return true;
	}
	href = href.href;
	var tgt = document.getElementById(target);
	if(tgt)
	{
		return roomRequest(href, tgt);
	}
	return true;
}

function ajaxSubmit(item, target)
{
	var frm = item.form;
	var request = "index.php";
	var comma = "?";
	// copy all inputs except buttons and submits
	for(var i = 0; i < frm.elements.length; i++)
	{
		var el = frm.elements[i];
		switch(el.type)
		{
			case 'button':
				break;
			case 'submit':
				if(el == item)
				{
					request += comma + el.name + "=" + el.value;
					comma = "&";
				}
				break;
			case 'select':
				request += comma + el.name + "=" + el.options[el.selectedIndex].value;
				comma = "&";
				break;
			default:
				request += comma + el.name + "=" + el.value;
				comma = "&";
				break;
		}
	}
	var tgt = document.getElementById(target);
	if(tgt)
	{
		return roomRequest(request, tgt);
	}
	return true;
}

function cancelForm(id)
{
	// cancel form handling;
	// retreive function, session and send Ajax request 
	var frm = document.forms[id];
	var request = "index.php?cancel=1";
	// copy all hidden inputs
	for(var i = 0; i < frm.elements.length; i++)
	{
		var el = frm.elements[i];
		switch(el.type)
		{
			case 'hidden':
				request += "&" + el.name + "=" + el.value;
				break;
		}
	}
	var tgt = document.getElementById('mask');
	if(tgt)
	{
		return roomRequest(request, tgt);
	}
	return true;
}

function okForm(button, target)
{
	// submit form 
	// retreive function, session and send Ajax request 
	var frm = button.form;
	var request = "index.php";
	var comma = "?";
	// copy all inputs except "cancel"
	for(var i = 0; i < frm.elements.length; i++)
	{
		var el = frm.elements[i];
		switch(el.type)
		{
			case 'button':
				break;
			case 'submit':
				if(el == button)
				{
					request += comma + el.name + "=" + el.value;
					comma = "&";
				}
				break;
			case 'checkbox':
				if(el.checked)
				{
					request += comma + el.name + "=" + el.value;
				}
				break;
			default:
				request += comma + el.name + "=" + el.value;
				comma = "&";
				break;
		}
	}
	var tgt;
	tgt = document.getElementById(target);
	if(tgt)
	{
		return roomRequest(request, tgt);
	}
	return true;
}

var __starttimeerror = "Illegal starttime";
var __endtimeerror = "Illegal endtime";
var __priceerror = "Illegal price";

function cfieldcheck()
{
	var start = document.info.starttime.value;
	var end = document.info.endtime.value;
	var price = document.info.price.value;
	if(!start.match(/^\d+$/) && !start.match(/^\d*[:\.,]\d{2}$/))
	{
		alert(__starttimeerror);
		return false;
	}
	if(!end.match(/^\d+$/) && !end.match(/^\d*[:\.,]\d{2}$/))
	{
		alert(__endtimeerror);
		return false;
	}
	if(!price.match(/^\d+$/) && !price.match(/^\d*[\.,]\d{2}$/))
	{
		alert(__priceerror);
		return false;
	}
	return true;
}

function showproperty()
{
	var arg = 0;
	var elem = arguments[arg++];
	var value = elem.value
	var name = elem.name;
	var box = document.getElementById("B" + name);
	try
	{
		if(box)
		{
			box.style.backgroundColor = value;
		}
		if(arg < arguments.length)
		{
			while(arg < arguments.length)
			{
				var obj = arguments[arg++].split(".");
				var el = document.getElementById(obj[0]);
				if(el)
				{
					el.style[obj[1]] = value;
				}
			}
		}
	}
	catch(e) { ; }
}

function wiz_service(elem, text, error)
{
	var index = elem.selectedIndex;
	var value = elem.options[index].value;
	if(value == -1)
	{
		var name = prompt(text, "");
		if(name)
		{
			var lname = name.toLowerCase();
			var i = 1;
			while(i < elem.options.length - 1)
			{
				var ltext = elem.options[i].text.toLowerCase();
				if(name == ltext)
				{
					alert(name + ": " + error);
					elem.options[0].selected = true;
					document.dinfo.servicename.value = '';
					return;
				}
				if(name < ltext)
				{
					break;
				}
				i++;
			}
			for(var j = elem.options.length; j > i; j--)
			{
				elem.options[j] = new Option(elem.options[j-1].text, elem.options[j-1].value);
			}
			elem.options[i] = new Option(name, -2, false, true);
		}
		else
		{
			document.dinfo.servicename.value = '';
			return;
		}
		document.dinfo.servicename.value = name;
	}
	else
	{
		document.dinfo.servicename.value = elem.options[index].text;
	}
}

function keycheck()
{
	var txt = document.info.trefwoorden.value;
	var t = txt.split(/\n/);
	var much = t.length > 10;
	{
		document.info.trefwoorden.style.backgroundColor = much ? "#ff8888" : "white";
	}
}

function kwsave(item)
{
	if(!item.oldvalue)
	{
		item.oldvalue = item.value;
	}
}

function kwcheck(item)
{
	var nm = item.id.replace(/key/, "lbl");
	var label = document.getElementById(nm);
	
	if(item.oldvalue != item.value)
	{
		label.innerHTML = "Wijzigen";
	}
	else
	{
		label.innerHTML = "Toevoegen";
	}
	nm = item.name.replace(/key/, "disp");
	document.info[nm][1].checked = true;
}

var scroller = null;
var scrolltop = 0;

function followScroll()
{
	var now = document.documentElement.scrollTop;
	var top = 0;
	if(now > scroller.truetop)
	{
		top = now - scroller.truetop;
	}
	scroller.style.top = top + "px";
}

function initscroll()
{
	var elem = document.getElementById("scroller");
	if(elem)
	{
		scroller = elem;
		var top = 0;
		while(elem)
		{
			top += elem.offsetTop;
			elem = elem.offsetParent;
		}
		scroller.truetop = top;
		window.onscroll = followScroll;
		scrolltop = document.documentElement.scrollTop;
	}
}

function pdfComplete(maxpage)
{
	document.pinfo.pages.value = "0-" + maxpage;
	document.pinfo.nonedit.checked = true;
	document.pinfo.activities.checked = true;
	document.pinfo.actodd.checked = true;
	document.pinfo.keywords.checked = true;
	document.pinfo.keyodd.checked = true;
	var d= new Date();
	var year = d.getFullYear();
	var month = d.getMonth() + 1;
	var day = d.getDate();
	if(month < 10)
	{
		month = "0" + month;
	}
	if(day < 10)
	{
		day = "0" + day;
	}
	var name = year.toString() + month + day + ".pdf";
	document.pinfo.keep.value = name;
}

window.inits = new Object();

function init()
{
	if(window.inits)
	{
		for(var func in window.inits)
		{
			window.inits[func]();
		}
	}
	else	alert("No inits");
}

function xxxxx()
{
	return 1;
}

window.onload = init;
window.focus();

