/*******************************************************************************/
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement)
{
	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
	{
		switch (where)
		{
		case 'beforeBegin':
			this.parentNode.insertBefore(parsedNode,this)
			break;
		case 'afterBegin':
			this.insertBefore(parsedNode,this.firstChild);
			break;
		case 'beforeEnd':
			this.appendChild(parsedNode);
			break;
		case 'afterEnd':
			if (this.nextSibling) 
				this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else
				this.parentNode.appendChild(parsedNode);
			break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML)
	}

	HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
	{
		var parsedText = document.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}
}
/*******************************************************************************/

function HelpWide(tablerow, helptitel, helptekst)
{
	//Deze functie vult de helptabel met de parameters helptitel en helptekst.
	//Vervolgens wordt de helptabel zichtbaar gemaakt en gepositioneerd 
	//tov het parameter-element tablerow.
	//Indien x een waarde hebben, worden deze opgeteld bij de bepaalde
	//coordinaten van de helptabel.

	//Bij teveel scrollen kan de browser over de flos gaan tav coordinaten.
	//Hiertoe roepen we de functie doXY aan.
	tablerow=doXY(tablerow);
	table_HelpWide.style.visibility = '';
	table_HelpWide.style.display = '';
//		table_HelpWide.style.top = tablerow.offsetTop;
	table_HelpWide.style.top = tablerow.y;
	table_HelpWide.style.left=tablerow.x -167;
//		alert(table_HelpWide.style.left);
	
	cell_HelptopicWide.innerText = helptitel;
	cell_HelptekstWide.innerText = helptekst;

	LaatsteTR = tablerow;
}

/*******************************************************************************/


function Help(strTableRowID, helptitel, helptekst)
{
	//Bij teveel scrollen kan de browser over de flos gaan tav coordinaten.
	//Hiertoe roepen we de functie doXY aan.
	
	objTableRow=doXY(document.getElementById(""+strTableRowID));
	if(objTableRow.x == 0)
		objTableRow=doXY(strTableRowID);
	
	//alert('x: ' + objTableRow.x);
	//alert('y: ' + objTableRow.y);
	
	document.getElementById("table_Help").style.visibility = '';
	document.getElementById("table_Help").style.display = '';
	document.getElementById("table_Help").style.top = objTableRow.y;
//	document.getElementById("cell_Helptopic").insertAdjacentText("afterBegin",helptitel);
//	document.getElementById("cell_Helptekst").insertAdjacentText("afterBefin",helptekst);
	document.getElementById("cell_Helptopic").innerText = helptitel;
	document.getElementById("cell_Helptekst").innerText = helptekst;
	table_Help.style.left=51;
	//alert(document.getElementById("table_Help").style.left);
	
	LaatsteTR = objTableRow;
}

function HelpHerpositie()
{
	if (document.LaatsteTR)
	{
		document.getElementById("table_Help").style.top = LaatsteTR.offsetTop;
	}
}

function InitScherm(strSrcImgUitroepTeken)
{
	document.getElementById("span_Foutmelding").style.display = 'none';
	document.getElementById("span_Foutmelding").style.visibility = '';
	document.getElementById("imgUitroepTeken").src = strSrcImgUitroepTeken;
}

// Door de csstekst van de terugknop te forceren wordt automatisch de css van de printknop ook opnieuw uitgevoerd!
/* =======================================================	*/
/* Description:							*/
/*	. Fonction called on 'onscroll' and 'onresize' page events		*/
/*	. Force the positioning of 'Terug' and 'PrintPreview' buttons (bottom ones)	*/
/* Note:								*/
/*	. 'knopTerugOnder' is IMG id of bottom 'Terug' button (2nd button)		*/
/*	. 'knopPrintOnder' is IMG id of bottom 'PrintPreview' button (2nd button)	*/
/* =======================================================	*/

function PlaatsKnoppen()
{
	try { document.getElementById("knopTerugOnder").style.cssText = "position:absolute; left:10px"; } catch(e) {}
	try { document.getElementById("knopPrintOnder").style.cssText = "position:absolute; bottom:10px; right:40px"; } catch(e) {}
}


/* =======================================================	*/
/* Description: 							*/
/*	. Handles display of left navigation menu in page 			*/
/*	. Note: menu is generated separately on page under the 'MyData' tag 	*/
/* =======================================================	*/

function GenerateLeftMenu()
{
	strTmp  = '';
	objData = document.getElementById("MyData");
	if(objData != null) {
		colDivs = objData.childNodes;
	}
	else {
		colDivs = 0;
	}
		
	// enumerates <DIV> (direct) children of <DIV> tag with ID='MyData'
	// and build the HTNL string for outputing navigation left menu
	
	for(intI=0;intI<colDivs.length;intI++)
	{
		objDiv	=	colDivs.item(intI);
		if(objDiv.tagName!="DIV")
			continue;
                                arTmp = objDiv.title.split("|"); // title="name|href"
		strTmp	+=	'<a id="X'+intI+'" href="'+arTmp[1]+'">'+arTmp[0]+'</a><br>\n';
		strTmp	+=	'<div id="Y'+intI+'">\n';
		colA	=	objDiv.childNodes;
		// enumerates children of the current <DIV> tag and filter on A elements
		for(intJ=0;intJ<colA.length;intJ++)
		{
			objA = colA.item(intJ);
			if(objA.tagName=="A")
				strTmp += '<a href="'+objA.href+'">'+objA.innerHTML+'</a><br/>\n';
		}	
		strTmp += '</div>\n';
	}
	
	/*	for(intI=0;intI<colDivs.length;intI++)
		{
			objDiv	=	colDivs.item(intI);
			strTmp	+=	'<a id="X'+intI+'" href="'+objDiv.href+'">'+objDiv.name+'</a><br>\n';
			strTmp	+=	'<div id="Y'+intI+'" style="display:none">\n';
			colA	=	objDiv.children;
			// enumerates <A> tags chidren of the current <DIV> tag
			for(intJ=0;intJ<colA.length;intJ++)
			{
				strTmp += colA.item(intJ).outerHTML+'<br>\n';
			}	
			strTmp += '</div>\n';
		}
                */

	// set HTML for navigation menu

	if(document.getElementById("MyNavigatie") != null) {
		document.getElementById("MyNavigatie").innerHTML = strTmp;
	}

	if (!isPensioenPlannerPage && colDivs != 0) 
	{ 
		strTmp = '<img id="MyBullit" src="' + gStrImgBullitSrc + '">';
		document.body.insertAdjacentHTML("beforeEnd",strTmp);
		document.getElementById("MyLijntje").src = gStrImgLijntjeSrc;
	}
	else 
	{
		strTmp = '<img id="MyBullit" src="' + gStrImgSpacerSrc + '">';
		document.body.insertAdjacentHTML("beforeEnd",strTmp);

		if(document.getElementById("MyLijntje") != null) {
			document.getElementById("MyLijntje").src = gStrImgSpacerSrc;
		}
	}
}



/* =====================================================================	*/
/* Description:									*/
/*	. Expand&close left navigation menu depending on the active navigation item			*/
/*	. Active navigation item specified using a 'navigitem' parameter in query string		*/
/*  Example:									*/
/*	 http://vlepont/werknemers//ontslag_krijgen/index.asp?navigitem=030_Ontslag%20krijgen&	*/
/* =====================================================================	*/
function ClickMe()
{
	var strConstUndefined = "@#$%|^&*()"
	var strPageUrl = document.location.href;
	var strSearch	=	"navigitem="
			
	//	alert("strPageUrl=" + strPageUrl)
	//	alert("index=" + strPageUrl.indexOf(strSearch))
		
	// if	--> found 'navig item' item = extract 'navigitem' parameter value from query string
	// else --> fallback to first item in menu
	if (strPageUrl.indexOf(strSearch)>0)
	{
		var intStartAt	=	strPageUrl.indexOf(strSearch) + strSearch.length - 1
		var strQuery	=	strPageUrl.substring(intStartAt)
		var intEndAd	=	strPageUrl.indexOf("&") + 1
		var strUrl		=	strQuery.substring(0, intEndAd)

		// alert("valid URL=" + strUrl)	
	}
	//strUrl = strUrl.substring(intI+1);
	else
	{
		var strUrl = strConstUndefined
		// alert("fallback URL=" + strUrl)	

		// test RMuts, 05-04-2004
		strUrl = strNavigItem;
	}

	// retrieve collection of <A> links in navigation menu
	if(document.getElementById("MyNavigatie") != null) {
		var colA = document.getElementById("MyNavigatie").getElementsByTagName("A");
	}
	else {
		var colA = '';
	}

	// enumerates <A> navigation item links
	var boolSetBullit = false
	for(intI=0;intI<colA.length;intI++)
	{
		objA = colA.item(intI);
		objA.className = ""; // reset all selected links
		strId = "" + objA.id;
		if (strId.charAt(0) == "X")
		{
			document.getElementById("Y"+strId.substring(1)).style.display="none";
			//  alert("href=" + objA.href)
		}
		if(objA.href.indexOf(strUrl)>=0)
		{
			objA.className = "Selected";
			if(strId.charAt(0) == "X")
			{
				document.getElementById("Y" + strId.substring(1)).style.display = "";
			}
			else
			{	
				objA.parentNode.style.display = "";
			}
			document.getElementById("MyBullit").style.top = 1*doXY(objA).y + 5;
			boolSetBullit = true;				
		}
	}	// end For
		
	// FT (20 Nov 03): fix to place 'Bullit' image on the top
	// when we are on a Index.asp page which has no entry in the
	// left navigation menu ('for' loop did nothing in this case)
	if (boolSetBullit == false)
	{
	    // RMuts 27-05-2004: extra controle, als helemaal geen navigatie beschikbaar
	    // dan bullet hardcoded op 197 hoog.
	 if(colA != '') {
	    if (colA.item(0) == null)
	    {
	        //alert('geen navitem beschikbaar...');
	        document.all.MyBullit.style.top = 197;
	    } else {
	        document.all.MyBullit.style.top = 1*doXY(colA.item(0)).y + 5
	    }
	 }
	}			
}

/*=====================================================================	*/
/* Description:									*/
/*	. Funcion called on page onload() event						*/
/*	. Initialize left navigation menu (display+active item)					*/
/*=====================================================================	*/
function PrivateInit()
{
	PlaatsKnoppen()
	GenerateLeftMenu();
		
	// handle conditional positioning of left navig. menu
	// escape it in 'print preview' mode
	var strConstUndefined = "@#$%|^&*()"		
	if (getTypeParameterValue() == strConstUndefined)
	{		
		ClickMe();
	}
	else
	{
		if (isPensioenPlannerPage)
		{ 
			document.getElementById("MyBullit").style.display = "none";
		}
	}		
	//	alert(document.getElementById("MyNavigatie").outerHTML)
}

function getTypeParameterValue()
{
	var strConstUndefined = "@#$%|^&*()"
	var strPageUrl = unescape(document.location.href)
	var strSearch = "?type="
		
	// if	--> found 'navig item' item = extract 'navigitem' parameter value from query string
	// else --> fallback to first item in menu
	if (strPageUrl.indexOf(strSearch)>0)
	{
		var intStartAt	=	strPageUrl.indexOf(strSearch) + strSearch.length - 1
		var strQuery	=	strPageUrl.substring(intStartAt)
		var intEndAt	=	strQuery.indexOf("&")
			
		// to handle the case when 'type' is the only parameter in query string
		if (intEndAt == -1)
		{
			intEndAt = strPageUrl.length
		} 
		var strUrl = strQuery.substring(0, intEndAt)
	}
	else
	{
		var strUrl = strConstUndefined
	}
	return strUrl
}

function newImage(arg)
{
	if (document.images)
	{
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

/*====================================================================	*/
/* Description:									*/
/*	. Function called on 'onmouseover()' and 'onmouseout()' event on IMG tags			*/
/*	. Replaces active image with its couterpart (standard image or image over)			*/
/*====================================================================	*/
function changeImages()
{
/*	if (document.images)
	{
		for (var i=0; i<changeImages.arguments.length; i+=2)
		{
			var Name;
			Name=document[changeImages.arguments[i]].src;
			var Aanwezig=Name.indexOf('Uitroepteken');
			if(Aanwezig == -1)
			{
				document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
			}
		}
	}
*/
}

/*=====================================================================	*/
/* functions used by the begrippen form							*/
/*=====================================================================	*/
function doMyLettersOver(strImgURL,e)
{
	if(document.all)
		objE = event.srcElement;
	else
		objE = e.target;
	if(objE.tagName!="TD") return;
	objE.style.color="white";
	objE.style.backgroundImage = "URL(" + strImgURL + ")";
}

function doMyLettersOut(strImgURL,e)
{
	if(document.all)
		objE = event.srcElement;
	else
		objE = e.target;
	if(objE.tagName!="TD") return;
	objE.style.color="#A7007E";
	objE.style.backgroundImage = "URL(" + strImgURL + ")";
}

function doOut(objTable)
{
	intQU=window.setTimeout("document.getElementById('" + objTable.id + "').style.display='none'",250)
}

function doOver()
{
	try { window.clearTimeout(intQU); } catch(e) {}
}

function doXY(objE)
{
	var intX=0;
	var intY=0;
	while (objE != null)
	{
		intX += objE.offsetLeft;
		intY += objE.offsetTop;
		objE = objE.offsetParent;
	}
	var objE = new Object();
	objE.x = intX;
	objE.y = intY;
	return objE;
}

function Over_Event(objE, objTable)
{
	Positie = doXY(objE);
	objTable.style.left = Positie.x-5; // x positie iets fijn tunen
	objTable.style.top  = Positie.y-7; // y positie iets fijn tunen
	objTable.style.display=""; // zichtbaar maken
}

function Uit_Event(objTable)
{
	objTable.style.display="none"; // onzichtbaar maken
}

// This function will open printable popup window
function printPage()
{
	// Open new window with some (editable) parameters
	var newWindow = window.open("", "", "width=600,height=600;status=no,scrollbars=yes,resizable=yes,top=50,left=50");
	var newDoc = newWindow.document;
	var printButton = "<P width=100% align=center style='height:25;'><img src='/images/printdezepagina_active.gif' onmouseover=\"this.src='/images/printdezepagina_hover.gif'\" onmouseout=\"this.src='/Images/printdezepagina_active.gif'\" style='cursor:hand;' value='Print deze pagina' onclick='window.print();'></P>";
	// The html of the current page will be placed in the popup, 
	// including filled in values
	// Here the stylesheet will be replaced with a printable stylesheet
	//We disabelen alle inputvelden door onderstaande javascript toe te voegen.												
	newDoc.write("\n<script language=javascript> \n" );
	newDoc.write("function setElementsPrintOff() { \n" );
	newDoc.write("	   var objInput=document.getElementsByTagName(\"INPUT\");\n");
	newDoc.write("	   for (var iInp=0;iInp < objInput.length;iInp++)\n");
	newDoc.write("	   {\n");
	newDoc.write("	    	objInput[iInp].disabled=true;\n");
	newDoc.write("	   }\n");
	newDoc.write("}\n");
    	newDoc.write("</script>\n");
                newDoc.write("<link rel='stylesheet' type='text/css' href='/include/css/print.css'/>");
                var strBody = document.body.innerHTML.replace("/Portal.css","/include/css/print.css") 
	newDoc.write("<body onload=javascript:setElementsPrintOff();>" + printButton + strBody + printButton + "</body>");
	newDoc.close();
}
function checkDate(dd, mm, yyyy){
var checkstr = "0123456789";
//var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
   err = 0;
   DateValue = dd + mm + yyyy;
 
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
 //alert(DateValue);
 //alert(DateValue.length );
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;
//alert('error=' + err);       
      }
      
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
//   /* if 00 ist entered, no error, deleting the entry */
//   if ((day == 0) && (month == 0) && (year == 00)) {
//      err = 0; day = ""; month = ""; year = ""; seperator = "";
//   }
//   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
//   if (err == 0) {
//      DateField.value = day + seperator + month + seperator + year;
//   }
   /* Error-message if err != 0 */
//   else {
//     alert("Date is incorrect!");
//      DateField.select();
//	  DateField.focus();
	return (err == 0);
}
function CheckNumeric(value, max, min, checkmax, checkmin, fract)
{
	var checkOK = "0123456789";
	var numberOfDecimalsAllowed = 1;
	
	var checkStr = value;
	var checkNum;
	var result=true;
	var commaFound=false;
	var numberOfDecimals=0;
	
	//alert(value);
	//alert(max);
	//alert(min);
	//alert(checkmax);
	//alert(checkmin);
	
	//Controleren of het uberhaupt een numerieke waarde is.
	checkNum = parseInt(checkStr);
	if(isNaN(checkNum))
	{
		result=false;
	}
	
	//Indien gebroken getallen zijn toegestaan, breiden we checkOK uit met en punt en een komma
	if(fract==true)checkOK=checkOK + ",";
	
	//Controleren op diacrieten.
	if(result==true)
	{
		for (i = 0;  i < checkStr.length;  i++)
		{
			if(commaFound==true)
			{
				//Hier bepalen we het aantal decimalen dat is toegestaan
				numberOfDecimals++;
				if(numberOfDecimals>numberOfDecimalsAllowed)
				{
					result = false;
					break;
				}
			}
			
			ch = checkStr.charAt(i);
			
			//komma gevonden
			if(ch=="." || ch==",")
			{
				commaFound=true;
			}

			for (j = 0;  j <= checkOK.length;  j++)
			{
				if (ch == checkOK.charAt(j))
				break;
				if (j == checkOK.length)
				{
					result = false;
					break;
				}
			}
		}
	}
	
	//Controleren op minimum en maximum waarde.
	if(result==true)
	{
	
	//DEBUG
	//alert('checkNum=' + checkNum);
	//alert('max=' + max);
	//alert('checkmax=' + checkmax);
	//alert(checkNum > max);
	
	//DEBUG
			
		if(checkNum>max && checkmax==true)
		{
			result=false;
		}
		if(checkNum<min && checkmin==true)
		{
			result=false;
		}
	}
	return result;
}

// function for showing a breadcrumb on the printpreview and printed pages.
function PrintUrl()
{
	var gUrl = document.location.href;
	var teller1 = 0;
	var teller2 = 0;
	var teller3 = 0;
	var i = 1;
	var j = 0;
	var sUrl = new Array();

	teller1 = gUrl.lastIndexOf("/");
	teller2 = gUrl.lastIndexOf(".aspx");
	sUrl[1] = gUrl.substring(teller1+1,teller2);

	while(teller1 != (teller3 + 1)) {
		i++;
		teller2 = teller1;
		teller1 = gUrl.lastIndexOf("/", teller2 - 1);
		teller3 = gUrl.lastIndexOf("/", teller1 - 1);
		sUrl[i] = gUrl.substring(teller1 + 1, teller2);
	}

	for (j=(i-1);j>=1;j--) {
		document.write (" > " + sUrl[j]);
	}
}