var bWebDialog = false;
var bDialogVisible = false;
var bFading = false;
var mouseX=-1;
var mouseY=-1;
var thisX=-1;
var thisY=-1;
var iOpacity = 0;
var iTrigger = 10;	// Aantal pixels dat de muis moet bewegen of aantal seconden dat er moet gewacht worden om de dialoog te verbergen
var maxOpacity = 90;
var bTriggerMouse = false;


// === Afhandeling van errors ============================ 
function findRow(elementName)
{
	var x = document.getElementById(elementName);
	if(!x)
		return;
	while(x.tagName.toUpperCase()!="TR" && x.tagName.toUpperCase()!="BODY")
		x = x.parentNode;
	return x;
}
function ParseErrors(strError)
{
	//alert(strError);
	var errStr = "";
	if(strError!="")
	{
		strError = strError.replace("'","&acute;");
		var names = strError.split("<BR>");
		for(i=0;i<names.length-1;i++)
		{
			if(names[i]!="")
			{
				var x = findRow(names[i]);
				if(x)
				{
					x.className="error";
					var el = document.getElementById(names[i]);
					if(el.type.toLowerCase()=="radio") el.style.borderWidth=0;
				}
				else
				{
					if(names[i].indexOf("|")>0)
					{
						var arr = names[i].split("|");
						for(j=0;j<arr.length-1;j++)
						{
							//alert(arr[j]);
							el = findRow(arr[j]);
							if(el)
							{
								//--- Veld ----------------------------------------------
								var field = document.getElementById(arr[j]);
								field.title = arr[arr.length-1];
								if(field.type.toLowerCase()=="radio") field.style.borderWidth=0;
								//--- TabelRij ------------------------------------------
								el.title = arr[arr.length-1];
								el.className="error";
							}
						}
						errStr += "<li>"+arr[arr.length-1]+"</li>";
					}
					else
						errStr += "<li>"+names[i]+"</li>";
				}
			}
		}
		if(errStr!="" && (bWebDialog || document.getElementById("customErrors")))
			if(bWebDialog)
			{
				document.write(CreateDialog(errStr));
				if(bTriggerMouse) 
					AttachEvent();
				else
					setTimeout("hideDialog()", iTrigger*1000);
				bDialogVisible = true;
				showDialog();
			}
			else
				document.getElementById("customErrors").innerHTML = "<ul class='OptzUl'>"+errStr+"</ul>";
	}
}
function CreateDialog(errStr)
{
	var style = "style='position:absolute;top:100px;left:180px;background-color:#FF9900; margin:0 auto; width:600px;text-align:left; color:#FF0000; padding-top:10px; padding-bottom:10px; color:#000'"
	return "<div id='maDivDialog' "+style+"><ul class='OptzUl'>"+errStr+"</ul></div>"
}
function out(txt)
{
	document.write(txt);
}
function getMousePos (e) 
{
	if(bDialogVisible && !bFading)
	{
	
		var posx = 0;
		var posy = 0;
	
		if (document.layers) { //Netscape
			posx = e.pageX;
			posy = e.pageY;
		} else if (document.all) { //IE
			posx = window.event.x+document.body.scrollLeft;
			posy = window.event.y+document.body.scrollTop;
		} else if (document.getElementById) {
			// Netscape 6 behaves the same as Netscape 4 in this regard
			posx = e.pageX;
			posy = e.pageY;
		}
		
		if(parseInt(mouseX,10)<0 || parseInt(mouseY,10)<0)
		{
			mouseX = posx;
			mouseY = posy;
			thisX = posx;
			thisY = posy;
		}
		else
		{
			thisX = posx;
			thisY = posy;
		}
		
		checkPos();
	}
}
function checkPos ()
{
	if(!bFading && (Math.abs(mouseX-thisX)>iTrigger || Math.abs(mouseY-thisY)>iTrigger))
		hideDialog();
}
function hideDialog ()
{
	bFading = true;
	if(iOpacity==0)
	{
		bDialogVisible = false;
		bFading = false;
	}
	else
	{
		iOpacity -= 10;
		setOpacity(iOpacity);
		setTimeout("hideDialog()", 100);
	}
}
function showDialog()
{
	bFading = true;
	if(iOpacity<=maxOpacity)
	{
		iOpacity += 10;
		setOpacity(iOpacity);
		setTimeout("showDialog()", 100);
	}
	else
		bFading = false;
}
function setOpacity()
{
	var dDialog = document.getElementById("maDivDialog");
	if(!dDialog)
		return false;
    if (navigator.appName.indexOf("Netscape")!=-1&&parseInt(navigator.appVersion)>=5)
    	dDialog.style.MozOpacity=iOpacity/100;
	else
		dDialog.style.filter = 'alpha(opacity='+iOpacity+')';
}
function AttachEvent()
{
	if (document.layers) { // Netscape
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = getMousePos;
	} else if (document.all) { // Internet Explorer
		document.onmousemove = getMousePos;
	} else if (document.getElementById) { // Netcsape 6
		document.onmousemove = getMousePos;
	}
}
// =======================================================
function CreateDropdown(elementName, startVal, endVal, defaultValue, step, dummy) 
{
	if(typeof(elementName)=="undefined")
		return "- Error - no elementName defined -";
	if(typeof(startVal)=="undefined")
		startVal=1;
	if(typeof(endVal)=="undefined")
		endVal = 10;
	if(typeof(step)=="undefined")
		step=1;
	if(typeof(defaultValue)=="undefined")
		defaultValue = "";
	if(typeof(dummy)=="undefined")
		dummy = true;

	sReturn = "";
	sReturn += "<select id='"+elementName+"' name='"+elementName+"'>\n";
	if(dummy)
		sReturn += "	<option value='' selected='selected'>"+dummy+"</option>\n";
	if(startVal<=endVal)
	{
		for(i=startVal;i<=endVal;i+=step)
		{
			if(i<10)
				j="0"+i;
			else
				j=i;
			if(i==defaultValue)
				sReturn += "	<option selected='selected' value='"+j+"'>"+j+"</option>\n";
			else
				sReturn += "	<option value='"+j+"'>"+j+"</option>\n";
		}
	}
	else
	{
		for(i=startVal;i>=endVal;i-=step)
		{
			if(i<10)
				j="0"+i;
			else
				j=i;
			if(i==defaultValue)
				sReturn += "	<option selected='selected' value='"+j+"'>"+j+"</option>\n";
			else
				sReturn += "	<option value='"+j+"'>"+j+"</option>\n";
		}
	}
	sReturn += "</select>\n";
	out(sReturn);
}
function CreateArrayDropdown(elementName, elements, defaultValue, dummy) 
{
	if(typeof(elementName)=="undefined")
		return "- Error - no elementName defined -";
	if(typeof(elements)=="undefined")
		return "- Error - no elements defined -";
	if(typeof(defaultValue)=="undefined")
		defaultValue = "";
	if(typeof(dummy)=="undefined")
		dummy = true;
	
	var arrElements = elements.split(",");
	
	sReturn = "";
	sReturn += "<select id='"+elementName+"' name='"+elementName+"'>\n";
	if(dummy)
		sReturn += "	<option value='' selected='selected'>"+dummy+"</option>\n";
	for(i=0;i<=arrElements.length/2;i+=2)
		if(arrElements[i]==defaultValue)
			sReturn += "	<option selected='selected' value='"+arrElements[i+1]+"'>"+arrElements[i]+"</option>\n";
		else
			sReturn += "	<option value='"+arrElements[i+1]+"'>"+arrElements[i]+"</option>\n";
	sReturn += "</select>\n";
	out(sReturn);
}
function PopUp(url) {
	window.open(url);
}
function PreFill(field, value) {
	var x = document.getElementById(field);
	if(x && value!="")
		x.value = value;
}
function PreFillBirthDate(dayfield, monthfield, yearfield, value) {
	var dag, maand, jaar;
	jaar	= value.substring(0, 4);
	maand	= value.substring(4, 6);
	dag		= value.substring(6, 8);
	PreFill(dayfield, dag);
	PreFill(monthfield, maand);
	PreFill(yearfield, jaar);
	
	//alert(dayfield+" - "+dag+"\n"+monthfield+" - "+maand+"\n"+yearfield+" - "+jaar+"\n");
}
function PreFillZipCode(value) {
	var deel1, deel2;
	deel1 = value.substring(0,4);
	deel2 = value.substring(4);
	PreFill("POSTCODE_4", deel1);
	PreFill("POSTCODE_2", deel2);
}
function Checkall(form, reference){  
	for (var i = 0; i < form.elements.length; i++)
		eval("form.elements[" + i + "].checked ="+reference);   
}  
