// genericUtils.js

// This method requires the field to have
// an id. This is done by the id attribute
function SetFieldValue(fieldId, value) {

 var elem = window.document.getElementById(fieldId);
 elem["value"] = value;

}

function SubmitForm(form) {
 document.forms[form].submit();
}

/**
 * Submit a form with the given action
 */
function SubmitFormWithAction(form, action) {
 
 document.forms[form].action=action;
 document.forms[form].submit();
}

function SetAction(FieldId, Action) {

 var elem = window.document.getElementById(FieldId);
 elem["value"] = Action;

}

/**
 * these arrays contain references
 * to running timeout id's
 * these are used to clear timeouts 
 * this is used cancel the 
 * hiding and showing of elements if the mouse left (or visited) the
 * element only shortly.
 */
var runningRemoveEditable = new Array();
var runningSetEditable = new Array();
var idCounter = 0;

/**
 * adds the style class 'action-pane-trigger' to the class of the element
 */
function addEditableNow(element)
{
 if(element.className.indexOf('action-pane-trigger') == -1) element.className += (element.className) ? ' action-pane-trigger' : 'action-pane-trigger';
}

var addClassElement = null;
var addClassStyleClass = null ;
function addClassDeferred(element, styleClass, timeOut)
{
	if (addClassElement != null) {
		addClassElement = element;
		addClassStyleClass = styleClass;
		window.setTimeout("addClassDeferred_go()", timeOut);
	}
}

function addClassDeferred_go()
{
	addClass( addClassElement, addClassStyleClass );
	addClassElement = null;
	addClassStyleClass = null;	
}

function addClass(element, styleClass)
{

 var classNames = element.className.split(' ');
 var hasClass = false;
 
 for(var i = 0; i < classNames.length; i++){
  if (classNames[i] == styleClass) {
   hasClass = true;
  } 
 }

 if(!hasClass) element.className += (element.className) ? (' ' + styleClass) : styleClass;

	addClassElement = null;
	addClassStyleClass = null ;
 
}

/*
 * if the element does not contain the given style class
 * the style class is added. If it does it is removed
 */
function toggleClass(element, styleClass)
{

 var classNames = element.className.split(' ');
 var hasClass = false;
 
 for(i = 0; i < classNames.length; i++){
  if (classNames[i] == styleClass) {
   hasClass = true;
  } 
 }

 if(hasClass) {
  removeClass(element, styleClass);
 } else {
  element.className += (element.className) ? (' ' + styleClass) : styleClass;
 }
 
}

function hasClass(element, styleClass1)
{
 var classNames = element.className.split(' ');
 for(i = 0; i < classNames.length; i++){
  if (classNames[i] == styleClass1) {
   return true;
  } 
 }
 
 return false;
}

/**
 * returns the class name that starts with the specified prefix
 */
function getClassStartingWith(element, prefix)
{
 var classNames = element.className.split(' ');
 for(i = 0; i < classNames.length; i++){
  if (classNames[i].indexOf(prefix) == 0) {
   return classNames[i];
  } 
 }
 
 return false;
}

function toggleClass(element, styleClass1, styleClass2)
{

 var classNames = element.className.split(' ');
 var hasClass1 = false;
 
 for(i = 0; i < classNames.length; i++){
  if (classNames[i] == styleClass1) {
   hasClass1 = true;
  }
 }

 if(hasClass1) {
  removeClass(element, styleClass1);
  element.className += (element.className) ? (' ' + styleClass2) : styleClass2;  
  if (element.id != null) {
   createCookie(element.id + '_className', styleClass2, 1);
  }  
 } else {
  removeClass(element, styleClass2);
  element.className += (element.className) ? (' ' + styleClass1) : styleClass1;
  if (element.id != null) {
   createCookie(element.id + '_className', styleClass1, 1);
  }
 }
 
 
 
}

function removeClass(element, styleClass)
{
 var classNames = element.className.split(' ');
  for(var i = 0; i < classNames.length; i++){
   if (classNames[i] == styleClass) {
    classNames[i] = null;
   } 
  }
 element.className = classNames.join(' ');
}


function elementIndexCounter(element) {
 var actionPaneId = element.actionPaneId;
 if (actionPaneId == null) {
  element.actionPaneId = idCounter++;
  actionPaneId = element.actionPaneId ;
 }
 return actionPaneId;
}

/**
 * adds the style class 'action-pane-trigger' to the class of the element
 * a time delay is built in for ie
 */
function displayEditPane(element)
{
 
 if (element.uniqueID) {
  //for ie only
  window.clearTimeout(runningRemoveEditable[element.uniqueID]);
  runningSetEditable[element.uniqueID] = setTimeout('addEditableNow('+element.uniqueID+')',125);
 } else {
  addEditableNow(element)
//  DOEs NOT WORK:
//  e = element;
//  var elementId = elementIndexCounter(e);
//  if (runningSetEditable[elementId] == null) {
//   var timeOutId = runningRemoveEditable[elementId];
//   runningRemoveEditable[elementId] = null;
//   if (timeOutId !=null) {
//    window.clearTimeout(timeOutId, 0);
//   }
//   runningSetEditable[elementId] = setTimeout('addEditableNow(e)',1250);
//  }
 }
}


/**
 * removes the style class 'editable' from the class of the element
 */
function removeEditableNow(element)
{
 element.className = element.className.replace(/\s?action-pane-trigger/g,'');
}

/**
 * removes the style class 'editable' from the class of the element
 * a time delay is built in for ie
 */
function hideEditPane(element)
{
 if (element.uniqueID) {
  //for ie only
  window.clearTimeout(runningSetEditable[element.uniqueID]);
  runningRemoveEditable[element.uniqueID] = setTimeout('removeEditableNow('+element.uniqueID+')',125);
 } else {
  removeEditableNow(element);
 }

}


/**
 * Deze functie verbergt en toont een element
 * ook wordt er een cookie geschreven waarin te state wordt bewaard
 * voor cookie accepterende browsers betekent dit dat de state bewaard wordt. 
 */
function switchDisplayById(id) {
 var elem = document.getElementById(id);
 if (elem.style.display == "none") {
  elem.style.display = "block";
  elem.parentNode.className = "shown";
  createCookie( id, "expanded", 1) ;
 } else {
  elem.style.display = "none";
  elem.parentNode.className = "hidden";
  eraseCookie( id ) ;
 }
}

function toggleExpand(element) {
 var currentState = element.parentNode.className;
 
 var id = element.id;
 if (currentState == 'shown') {
  element.parentNode.className = 'hidden';
  createCookie( id, "expanded", 1) ;
 } else {
  element.parentNode.className = 'shown';
  eraseCookie( id ) ;
 } 
}

/**
 * Deze functie verbergt of toont
 * het menu afhankelijk van wat er in het cookie staat.
 */
function restoreDisplayById(id, defaultShow) {
 var elem = document.getElementById(id);
 if (readCookie( id) != null) {
  elem.parentNode.className = "shown";
 } else { 
  if  (defaultShow) {
   elem.parentNode.className = "shown";
  } else {
   elem.parentNode.className = "hidden";
  }
 } 
}

/**
 * deze functie maakt een cookie aan met de opgegeven waarde voor het opgegeven aantal dagen
 */
function createCookie(name,value,days) {
 if (days) {
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }
 else var expires = "";
 document.cookie = name+"="+value+expires+"; path=/";
}

/**
 * deze functie leest een cookie met de gegeven naam
 */
function readCookie(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
 }
 return null;
}

/**
 * deze functie leest een cookie met de gegeven naam
 */
function eraseCookie(name) {
 createCookie(name,"",-1);
}


/*
 * initializes all pagers that are registred in the pagers array
 */
var pagers = [];
var contextPaths = [];
var pageSizes = [];
var pagedTags = [];
var maxOffset = [];
function initPagers() {
 
 for (var i=0;i<pagers.length;i++)
 { 
  initPager(pagers[i], contextPaths[i], pageSizes[i], pagedTags[i], 2);  
 }
}

if (window.addEventListener) window.addEventListener('load',initPagers,false);     
if (window.attachEvent) window.attachEvent('onload',initPagers);     

/**
 * initialize the pager with the passed element id
 */
function initPager(elementId, contextPath, pageSize, pagedTag, maxOffset) {
 
 var pager = window.document.getElementById(elementId);
   
 if (pageSize == null) pageSize = 3;
 if (pagedTag == null) pagedTag = 'p';
 var classPrefix = 'page';
 var classHidden = 'hidden';
 
 //
 //alert(pager.parentNode + ' ' + pager.parentNode.innerHTML);
 
 var pageRows = getPageRows(pager.parentNode , pagedTag, elementId);
 var intRowCounter = 0;
 var intPageCounter = 1;
 
 var className = classPrefix + '_1';
 for (var i=0;i<pageRows.length;i++)
 { 
  /* assign the page class */
  addClass(pageRows[i], className);
  
  /* hide all pages not being the first */
  if (intPageCounter > 1) {
   //addClass(pageRows[i], classHidden);
   pageRows[i].style.display='none';
  }
  
  intRowCounter++;
  if (intRowCounter >= pageSize) {
   intPageCounter++;
   intRowCounter = 0;
   className = classPrefix + '_' + intPageCounter;
  }  
 }
 
 //alert('pageSize: ' + pageSize + ' pagedTag: ' + pagedTag + ' pageRows: ' + pageRows + ' pageRows.length: ' + pageRows.length + ' intRowCounter: ' + intRowCounter + ' intPageCounter: ' + intPageCounter);
  
 /*
  * if last page is empty don't display it
  */
 if (intRowCounter == 0 && intPageCounter > 1) {
  intPageCounter = intPageCounter - 1;
 }
 
 /*
  * do not print a pager for one page
  */
 if (intPageCounter <= 1) {
  //addClass(pager, classHidden);
  //remove the pager
  pager.parentNode.removeChild(pager);
  return;
 } else {
  pager.removeAttribute('style'); //remove display 'none' that is in style to display the pagewr
 }

 var anchorTags = []; 
 anchorTags.push('<table width="100%"><tr><td width="33%"><a class="PageNavLink page_previous PageNavInactive"  href="javascript:void(0)" onclick="gotoPage(this, 1, ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlHelemaalLinksInactief" style="margin-left: 1px; margin-right: 6px;" src="');
 anchorTags.push(contextPath);
 anchorTags.push('/images/FirstPageButton.gif" border="0" width="13" height="13" alt="&lt;&lt;"></a>'); 
 anchorTags.push('<a class="PageNavLink page_previous PageNavInactive" href="javascript:void(0)" onclick="gotoPage(this, \'previous\', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlLinksInactief" style="margin-left: 6px; margin-right: 6px;" src="');
 anchorTags.push(contextPath);
 anchorTags.push('/images/PreviousPageButton.gif" border="0" width="13" height="13" alt="&lt;"></a>');
 anchorTags.push('</td><td class="Paging" width="33%px">pagina <b><span id="vragenVanTot">1</span></b>');
 //for (var intPage=1;intPage<=intPageCounter;intPage++)
 for (var intPage=1;intPage<=0;intPage++)
 {
  if ( inRange(1 , intPage, maxOffset) ) {
   anchorTags.push('<a class="page_' + intPage);
   if (intPage==1)anchorTags.push(' current');
   anchorTags.push('" href="javascript:void(0)" onclick="gotoPage(this, ' + intPage + ', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset);
   anchorTags.push(');return false">- ' + intPage);
   anchorTags.push('</a> - ');
  } else {
   anchorTags.push('<a class="page_' + intPage);
   if (intPage==1)anchorTags.push(' current');
   anchorTags.push('" style="display:none;" href="javascript:void(0)" onclick="gotoPage(this, ' + intPage + ', ' + pageSize + ', \'' + pagedTag + '\'');
   anchorTags.push(');return false">' + intPage);
   anchorTags.push('</a> -');
  }
 }
 anchorTags.push(' van <b>' + intPageCounter + '</b></td><td width="33%px" align="right">');
/**
 * als er minder vragen zijn dan de stapgrootte moet ook volgende inactief zijn
 */
 if (intPageCounter==1) {
  //anchorTags.push('<a class="PageNavLink page_next PageNavInactive" href="javascript:void(0)" onclick="gotoPage(this, \'next\', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false">Volgende ' + pageSize + '<img class="FunctionPijlRechtsInactief" style="margin-left: 6px; margin-right: 6px;" src="');
  anchorTags.push('<a class="PageNavLink page_next PageNavInactive" href="javascript:void(0)" onclick="gotoPage(this, \'next\', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlRechtsInactief" style="margin-left: 6px; margin-right: 6px;" src="');
  anchorTags.push(contextPath);
  anchorTags.push('/images/NextPageButton.gif" border="0" width="13" height="13" alt="&gt;"></a>');
  anchorTags.push('&nbsp;<a class="PageNavLink page_next PageNavInactive" href="javascript:void(0)" onclick="gotoPage(this, ' + intPageCounter + ', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlHelemaalRechtsInactief" style="margin-left: 6px; margin-right: 1px;" src="');
  anchorTags.push(contextPath);
  anchorTags.push('/images/LastPageButton.gif" border="0" width="13" height="13" alt=""></a></td></tr></table>');
 } else { 
  anchorTags.push('<a class="PageNavLink page_next" href="javascript:void(0)" onclick="gotoPage(this, \'next\', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlRechts" style="margin-left: 6px; margin-right: 6px;" src="');
  anchorTags.push(contextPath);
  anchorTags.push('/images/NextPageButton.gif" border="0" width="13" height="13" alt="&gt;&gt;"></a>');
  anchorTags.push('&nbsp;<a class="PageNavLink page_next" href="javascript:void(0)" onclick="gotoPage(this, ' + intPageCounter + ', ' + pageSize + ', \'' + pagedTag + '\', ' + maxOffset + ');return false"><img class="FunctionPijlHelemaalRechts" style="margin-left: 6px; margin-right: 1px;" src="');
  anchorTags.push(contextPath);
  anchorTags.push('/images/LastPageButton.gif" border="0" width="13" height="13" alt=""></a></td></tr></table>');
 }
 pager.innerHTML = anchorTags.join('');

 
  
}

function inRange(currentPage , loopedPage , maxOffset) {
 var offSet = Math.abs(currentPage - loopedPage);
 //alert('offSet ' + offSet);
 return (offSet <= maxOffset);
}

function removeElement(element) {
  var d = document.getElementById('myDiv');
  var olddiv = document.getElementById(divNum);
  d.removeChild(olddiv);
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

/**
 * this function returns the elements that need paging
 * the pagedTags provides the tag name
 * if you need to have tags that are nested specify the path using a slash
 * e.g. table/tbody/tr pages only the tr tags that are under the body element
 */
function getPageRows(element, pagedTag, pagedId){
/* var lastTag = pagedTag;
 if (pagedTag.indexOf('/') >= 0) {
  pagedTag = pagedTag.split('/');
  for (var i=0;i<pagedTag.length;i++)
  { 
   lastTag = pagedTag[i];
   if (i != pagedTag.length -1 ) {
    element = element.getElementsByTagName(lastTag)[0];
   }
  }
 } */ 
 
 if (!element.id) {
 	element.id = pagedId + '_parent';
 } 
 var pagedElements = [];
// alert("XPathResult.TYPE [" + XPathResult.ORDERED_NODE_SNAPSHOT_TYPE + "]");
	//alert("pagedTag: " + pagedTag);
 var xPathResult = document.evaluate(pagedTag, element, null, XPathResult.ANY_TYPE, null);
//alert("pagedTag: " + xPathResult);
	//alert("xPathResult.getSnapshotLength" + xPathResult.getSnapshotLength());
// for (var i=0 ; i <  xPathResult.snapshotLength ; i++) {
 	//alert("thisElement: " + xPathResult.snapshotItem(i));
// 	pagedElements.push(xPathResult.snapshotItem(i));
// }
var thisElement;
//alert('iterate!');
while (thisElement = xPathResult.iterateNext()) {
 	pagedElements.push(thisElement);	
}
//alert("pagedElements: " + pagedElements);
 return pagedElements;
// return element.getElementsByTagName(lastTag);  
}

/**
 * This function implements client side paging functionality
 * it is only advised in case of small pages
 * for a larger amount of pages, You must use serverside paging
 *
 * The function relies on a strict HTML format for the pages
 * and the pages themselves are defined server side.
 */
function gotoPage(element, pageNo, pageSize , pagedTag, maxOffset, classPrefix) {
 if (pagedTag == null) pagedTag = 'p';
 if (classPrefix == null) classPrefix = 'page';
 if (maxOffset == null) maxOffset = 3 ;
 
 if (hasClass(element, "PageNavInactive")) {
 // we mogen niets doen
 return;
 }

 var pageName = classPrefix + '_' + pageNo;
 var divElement = element.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
 //var pageRows = element.parentNode.parentNode.getElementsByTagName(pagedTag);
 //var pageRows = getPageRows(element.parentNode.parentNode , pagedTag, elementId);
 var pageRows = getPageRows(divElement , pagedTag, element.id);
   
 var isFirst = false;
 var isLast = false;
 
 var intRowCounter = 0;
 var intPageCounter = 1;
 
 /**
  * assign the classnames that define the pages
  * (do this only one time)
  * we could do without this, but not now.
  */
 var className = classPrefix + '_1';
 if (!hasClass(pageRows[0], className)) {
  for (var i=0;i<pageRows.length;i++)
  { 
   addClass(pageRows[i], className);   
   intRowCounter++;
   if (intRowCounter >= pageSize) {
    intPageCounter++;
    intRowCounter = 0;
    className = classPrefix + '_' + intPageCounter;
   }   
  }
 } 
 
 /* 
  * determine the current page
  */
 var currentPage = null;
 var currentPageNumber;
 for (var i=0;i<pageRows.length;i++)
 { 
  if (pageRows[i].getAttribute('style') == null || pageRows[i].style.display != 'none') {
   var className = getClassStartingWith(pageRows[i],classPrefix);
   currentPageNumber = Number(className.substring(classPrefix.length + 1));
   currentPage = classPrefix + '_' + currentPageNumber;
   break;   
  } 
 } 

 /*
  * check if previous or next was clicked
  */
 if (pageName == classPrefix + '_next') {
  pageNo = currentPageNumber + 1;
  pageName = classPrefix + '_' + pageNo;
 } else if (pageName == classPrefix + '_previous') {
  pageNo = currentPageNumber - 1; 
  pageName = classPrefix + '_' + pageNo;
 }

 /*
 * wijzig het nummer van de huidige pagina in de navigatie
 */
 var lijstje = divElement.getElementsByTagName("span");
 for (i=0; i<lijstje.length; i++) {
  if (lijstje[i].id == "vragenVanTot") {
   lijstje[i].innerHTML = pageName.substr(pageName.indexOf("_") + 1);
  }
 }
  
 /*
  * display only paragraph tags of the specified page 
  */
 for (var i=0;i<pageRows.length;i++)
 { 
  if (hasClass(pageRows[i], pageName)) {
   //removeClass(pageRows[i], classHidden);
   //liever: style.removeProperty('display'); maar IE kent dit niet
   pageRows[i].style.display = '';
   if (i == 1) {
    isFirst = true;   
   }
   if (i == pageRows.length -1) {
    isLast = true; 
   }
  } else {
   pageRows[i].style.display = 'none';
   //addClass(pageRows[i], classHidden);
  }
 }
 
 /*
 * possibly hide previous or next links
 */

 var anchors = divElement.getElementsByTagName(element.tagName);
 var isAnchorPrevious = false;
 var isAnchorNext = false;  
 for (var i=0;i<anchors.length;i++)
 { 
  isAnchorPrevious = hasClass(anchors[i], classPrefix + '_previous');
  isAnchorNext = hasClass(anchors[i], classPrefix + '_next');
  var linkies = anchors[i].getElementsByTagName("img")
   for (tel=0; tel<linkies.length; tel++){

  if (isLast && isAnchorNext) {
   addClass(anchors[i], "PageNavInactive");
    if (hasClass(linkies[tel], "FunctionPijlRechts")) {
     toggleClass(linkies[tel], "FunctionPijlRechts", "FunctionPijlRechtsInactief");
    } else  {
     toggleClass(linkies[tel], "FunctionPijlHelemaalRechts", "FunctionPijlHelemaalRechtsInactief");
    }
  } else if (isFirst && isAnchorPrevious) {
   addClass(anchors[i], "PageNavInactive")
    if (hasClass(linkies[tel], "FunctionPijlLinks")) {
     toggleClass(linkies[tel], "FunctionPijlLinks", "FunctionPijlLinksInactief");
    } else  {
     toggleClass(linkies[tel], "FunctionPijlHelemaalLinks", "FunctionPijlHelemaalLinksInactief");
    }
  } else {
   removeClass(anchors[i], "PageNavInactive")
   //plaatjes weer actief maken
   var plaatjeKlas = linkies[tel].className;
   if (plaatjeKlas.indexOf("Inactief")>0){
    linkies[tel].className = plaatjeKlas.substr(0, plaatjeKlas.indexOf("Inactief"));
   }
  }
   }

 }
}




/*
 * this function opens a popup 
*/
function popUp(strUrl){
    window.open(strUrl,'window','width=924,height=688,resizable=0,scrollbars=1,toolbar=0'); 
}


/* 
 * this function prints the print version in the popup
*/

function printArtikel(){
	window.print();
}

/*
* functies voor bij de banners
*/

function bannerOut(naam, afbOut) {document.getElementById(naam).src=afbOut;}

function bannerOver(naam, afbOver) {document.getElementById(naam).src=afbOver;}


/**
 * Set focus functionality
 */
var focusFieldId = null;
function setFieldFocus() {
	if (focusFieldId != null) {
		if (document.getElementById(focusFieldId)) {
			document.getElementById(focusFieldId).focus();
		}
	}
}
 
if (window.addEventListener) window.addEventListener('load',setFieldFocus,false);     
if (window.attachEvent) window.attachEvent('onload',setFieldFocus);     
 
var menuMouseOverThinSkinDeferred_t = null
var menuMouseOverThinSkinDeferred_id = null;
var menuMouseOverThinSkinDeferred_selectedImage = null;
var menuMouseOverThinSkinDeferred_minimized = null;
function menuMouseOverThinSkinDeferred(id, selectedImage, minimized){
	window.clearTimeout(menuMouseOutThinSkinDeferred_t);
	menuMouseOverThinSkinDeferred_id = id;
	menuMouseOverThinSkinDeferred_selectedImage = selectedImage;
	menuMouseOverThinSkinDeferred_minimized = minimized;
	menuMouseOverThinSkinDeferred_t = window.setTimeout("menuMouseOverThinSkinDeferred_go()", 2000);
}
function menuMouseOverThinSkinDeferred_go(){
	menuMouseOverThinSkin(menuMouseOverThinSkinDeferred_id, menuMouseOverThinSkinDeferred_selectedImage, menuMouseOverThinSkinDeferred_minimized);
	menuMouseOverThinSkinDeferred_t = null;
	menuMouseOverThinSkinDeferred_id = null;
	menuMouseOverThinSkinDeferred_selectedImage = null;
	menuMouseOverThinSkinDeferred_minimized = null;
}

var menuMouseOutThinSkinDeferred_t = null;
var menuMouseOutThinSkinDeferred_id = null
var menuMouseOutThinSkinDeferred_disabledImage = null
var menuMouseOutThinSkinDeferred_minimized = null
function menuMouseOutThinSkinDeferred(id, disabledImage, minimized) {
	//menuMouseOutThinSkinDeferred_id = id;
	//menuMouseOutThinSkinDeferred_disabledImage = disabledImage;
	//menuMouseOutThinSkinDeferred_minimized = minimized;
	//menuMouseOutThinSkinDeferred_t = window.setTimeout("menuMouseOutThinSkinDeferred_go()", 2000);
}
function menuMouseOutThinSkinDeferred_go() {
	menuMouseOutThinSkin(menuMouseOutThinSkinDeferred_id, menuMouseOutThinSkinDeferred_disabledImage, menuMouseOutThinSkinDeferred_minimized);
	menuMouseOutThinSkinDeferred_t = null;
	menuMouseOutThinSkinDeferred_id = null;
	menuMouseOutThinSkinDeferred_disabledImage = null;
	menuMouseOutThinSkinDeferred_minimized = null;
}

function showFormProgress(form,message) {
	var x=0,y=0,fn=form,body=document.getElementsByTagName("BODY").item(0);
	while(fn){
		x+=fn.offsetLeft;y+=fn.offsetTop;
		fn=fn.offsetParent;
	}
	var overlay = document.createElement("DIV");
	overlay.className="progress";
	overlay.style.left=x+'px';
	overlay.style.top=y+'px';
	overlay.style.width=form.offsetWidth+'px';
	overlay.style.height=form.offsetHeight+'px';

	var msg = document.createElement("DIV");
	msg.innerHTML=message||"Uw verzoek wordt verwerkt, dit kan enige tijd duren.";
	msg.className="progress-message";
	msg.style.top="-99px";

	body.appendChild(overlay);
	body.appendChild(msg);
	window.setTimeout(function(){
		msg.style.left=parseInt(x+(form.offsetWidth-msg.offsetWidth)/2)+'px';
		msg.style.top=parseInt(y+(form.offsetHeight-msg.offsetHeight)/2)+'px';
	}, 10);
}

