/*

This file will provide functions that extend or override functionality shipped with HTML DB.
This file is built only for Carl Backstrom for his personal use and there is no 
warranty or support provided for this file.
You use this file at your own risk.

*/
/* Basic general ISB-functions  */

function first(field1){
	var theField;
  if(document.getElementById(field1)){
    theField = document.getElementById(field1);
		if((theField.type!="hidden")&&(!theField.disabled)){
			theField.focus();
		}
		return true;
	}
}

function first_multi(field1, field2){
	var theField;
  if(document.getElementById(field1)){
    theField = document.getElementById(field1);
		if((theField.type!="hidden")&&(!theField.disabled)){
			theField.focus();
		} else {
		  if(document.getElementById(field2)){
		    theField = document.getElementById(field2);
				if((theField.type!="hidden")&&(!theField.disabled)){
					theField.focus();
				} 
			}
		} 
		return true;
	}
}


function checkEnter(event, prequest){
  var code = 0;
  if(!prequest){
  	prequest = 'SUBMIT';
  }
  
  if (NS4)
    code = event.which;
  else
    code = event.keyCode;
  if (code==13)
    doSubmit(prequest);
}

function onEnterDo(event, pfunction){
  var code = 0;
    
  if (NS4)
    code = event.which;
  else
    code = event.keyCode;
    
  if (code == 13){
    setTimeout(pfunction, 1);
	event.returnValue = false;
    return false; 
  }
}

function to_number(pNum){
	//Vervangt zowel punt (tussen duizendtallen) als komma (decimaal teken) om mee te kunnen rekenen.
	//Laat echter niet toe dat de gebruiker zowel punt als komma gebruikt als decimaal teken.
   return Number(pNum.toString().replace('.','').replace(',','.'));
}    

function nvl(pvalue, preturn){
   return pvalue == ''?preturn:(pvalue == null?preturn:pvalue);
}

function IsNumeric(strString){
   //  check for valid numeric strings	

   var strValidChars = "0123456789-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++){
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1){
         blnResult = false;
      }
   }
   return blnResult;
}


function lpad(pstring, paantal, ptoken){
  var lengte = pstring.toString().length;
  if (!ptoken){
	ptoken = '0';
  }
	
  for(i = 0; i < paantal - lengte; i++){
    pstring = ptoken + pstring;
  }
  return pstring;
}

function ISB_toggle(pEl){
/*Verbergt tds van zowel label als element waardoor alles weer aansluit*/
	var hrij = $x_UpTill(pEl, 'TR');
	var labels = hrij.getElementsByTagName('label');
	var hlabel;	

	for (i=0; i<labels.length; i++) {
		if (labels[i].htmlFor == $x(pEl).id) {
			hlabel = labels[i];
		}
	}

	if(hlabel){
		var htdlbl = $x_UpTill(hlabel, 'TD');
		$x_Toggle(htdlbl);
	}
	var htdel = $x_UpTill(pEl, 'TD')
	$x_Toggle(htdel);
}

function ISB_hide(pEl){
/*Verbergt td's van zowel label als element waardoor alles weer aansluit*/
	var hrij = $x_UpTill(pEl, 'TR');
	var labels = hrij.getElementsByTagName('label');
	var hlabel;	

	for (i=0; i<labels.length; i++) {
		if (labels[i].htmlFor == $x(pEl).id) {
			hlabel = labels[i];
		}
	}

	if(hlabel){
		var htdlbl = $x_UpTill(hlabel, 'TD')
		$x_Hide(htdlbl);
	}
	var htdel = $x_UpTill(pEl, 'TD')
	$x_Hide(htdel);
}

function ISB_show(pEl){
/*Toont tds van zowel label als element waardoor alles weer aansluit*/
	var hrij = $x_UpTill(pEl, 'TR');
	var labels = hrij.getElementsByTagName('label');
	var hlabel;

	for (i=0; i<labels.length; i++) {
		if (labels[i].htmlFor == $x(pEl).id) {
			hlabel = labels[i];
		}
	}

	if(hlabel){
		var htdlbl = $x_UpTill(hlabel, 'TD')
		$x_Show(htdlbl);
	}		
	var htdel = $x_UpTill(pEl, 'TD')
	$x_Show(htdel);
}

function lov_allowed(pEl, pAlert){
  if ($x(pEl).disabled == true || $x(pEl).type == 'hidden' || $x(pEl).nodeName == 'SPAN'){
  	if (pAlert){
  		alert('Wijziging niet toegestaan');
  	}
    return false;
  }
  return true;
}

function refresh_iframe(pframe){
  frames[pframe].location.href = frames[pframe].location.href;
}

function setField(pVeld, pWaarde){
    <!--var bVeld = document.getElementById(pVeld);-->
    if (pWaarde == '%null%'){
        html_GetElement(pVeld).value = '';
    }else{
        html_GetElement(pVeld).value = pWaarde;
    }
}

/****************************************************
Functies voor bewerkingen op formvelden in grids
******************************************************/
function getRowIdxFrom(pEl, pIndexEl) {
   var parentRow = html_CascadeUpTill(pEl, 'TR');
   var parentInputs = parentRow.getElementsByTagName('input');

   for (i=0; i<parentInputs.length; i++) {
      if (parentInputs[i].name == pIndexEl) {
         return parentInputs[i].value - 1;
      }
   }
   return;
}

function getIndexedReturnFld(ret_fld, rowidx) {
  var ret = "";
//alert(ret_fld + " idx: " + rowidx + "-" + eval("document.all."+ret_fld+"["+rowidx+"]").nodeName);

  if (eval("document.all."+ret_fld+".length")) {
<!-- vangt op: 1 lijn, ret_fld = selectlist --> 
    if (eval("document.all."+ret_fld+"["+rowidx+"]").nodeName == 'OPTION'){
      ret = eval("document.all."+ret_fld);
    }else{
      ret = eval("document.all."+ret_fld+"["+rowidx+"]");
    }
  } else {
      ret = eval("document.all."+ret_fld);
  }  
  return ret;
}

/********************************************************/

function showHideRegio(pregio){
 html_HideElement(pregio);
}

function confirm_delete_final(pRequest, pString){
  if ($v('P0_TAAL') == 'FR')
  {
    hmessage = "Vous \352tes s\373re que vous voulez continuer avec la suppression?";
  }
  else
  {
    hmessage = "Bent u zeker dat u " + pString + " wil verwijderen?";
  }

  if (confirm(hmessage))
  {
     for (var i=2; i < arguments.length; i++){
          $x('P' + page() + '_DELETE' + (i-1)).value = arguments[i];
          $x('P0_DELETE' + (i-1)).value = arguments[i];
     }
     doSubmit(pRequest);
  }
}

function confirm_delete_msg(pRequest, pString){
  if (confirm(pString))
  {
     for (var i=2; i < arguments.length; i++){
          $x('P' + page() + '_DELETE' + (i-1)).value = arguments[i];
          $x('P0_DELETE' + (i-1)).value = arguments[i];
     }
     doSubmit(pRequest);
  }
}

function f_delete_final(pproc, pregio){
  var delay = function() {color_regio(pregio); };

  if ($v('P0_TAAL') == 'FR')
  {
    hmessage = "Vous \352tes s\373re que vous voulez continuer avec la suppression?";
  }
  else
  {
    hmessage = "Bent u zeker dat u wil doorgaan met het verwijderen?";
  }

  if(confirm(hmessage)){
    var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=isb_xml',page());
    get.add('P0_APP_PROC', pproc);
    for (var i=2; i < arguments.length; i++){
      get.add('P0_DELETE' + (i-1), arguments[i]);
    }
    gReturn = get.get('XML');

    if(gReturn){
      if (gReturn.getElementsByTagName("FOUT").length > 0) {
        alert($xml(gReturn, "FOUT"));
      }else{
      	if (pregio != 'NO'){
        	refresh_regio(pregio);
			setTimeout(delay, 100);
        }
      }
    }
    get = null;
  }
}

function f_delete_msg(pproc, pregio, pString){
  var delay = function() {color_regio(pregio); };

  if (confirm(pString)){
    var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=isb_xml',page());
    get.add('P0_APP_PROC', pproc);
    for (var i=3; i < arguments.length; i++){
      get.add('P0_DELETE' + (i-2), arguments[i]);
    }
    gReturn = get.get('XML');

    if(gReturn){
      if (gReturn.getElementsByTagName("FOUT").length > 0) {
        alert($xml(gReturn, "FOUT"));
		return -1;
      }else{
      	if (pregio != 'NO'){
        	refresh_regio(pregio);
			setTimeout(delay, 100);
        }
      }
    }
    get = null;
  }else{
    return -1;
  }
}

function f_delete_final_refresh(pproc, pregio){
  var delay = function() {color_regio(pregio); };

  if ($v('P0_TAAL') == 'FR')
  {
    hmessage = "Vous \352tes s\373re que vous voulez continuer avec la suppression?";
  }
  else
  {
    hmessage = "Bent u zeker dat u wil doorgaan met het verwijderen?";
  }

  if(confirm(hmessage)){
    var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=isb_xml',page());
	var aregio = get_region(pregio).id;
	
    get.add('P0_APP_PROC', pproc);
    for (var i=2; i < arguments.length; i+=2){
      get.add('P0_DELETE' + (i/2), arguments[i+1]);
	  //alert('P0_DELETE' + (i/2) + ' - ' + arguments[i+1]);
    }
	for (var i=2; i < arguments.length; i+=2){
	  get.add(arguments[i], arguments[i+1]);
	  //alert(arguments[i] + ' - ' + arguments[i+1]);
	}
    gReturn = get.get('XML');

    if(gReturn){
      if (gReturn.getElementsByTagName("FOUT").length > 0) {
        alert($xml(gReturn, "FOUT"));
      }else{
      	if (pregio != 'NO'){
        	html_PPR_Report_Page(null, aregio,'f?p='+App_Id()+':'+page()+':'+session()+':pg_R_' + aregio + ':NO:RP');
			setTimeout(delay, 100);
        }
      }
    }
    get = null;
  }
}

function f_delete_final2(pproc, pregio){
  var delay = function() {color_regio2(pregio); };

  if ($v('P0_TAAL') == 'FR')
  {
    hmessage = "Bent u zeker dat u wil doorgaan met het verwijderen?";
  }
  else
  {
    hmessage = "Bent u zeker dat u wil doorgaan met het verwijderen?";
  }

  if(confirm(hmessage)){
    //var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=isb_xml_debug',page());
    var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=isb_xml',page());
    get.add('P0_APP_PROC', pproc);
    for (var i=2; i < arguments.length; i++){
      get.add('P0_DELETE' + (i-1), arguments[i]);
    }
    gReturn = get.get();
    alert(gReturn);
    //gReturn = get.get('XML');

    if(gReturn){
      if (gReturn.getElementsByTagName("FOUT").length > 0) {
        alert($xml(gReturn, "FOUT"));
      }else{
      	if (pregio != 'NO'){
        	refresh_regio(pregio);
			setTimeout(delay, 100);	
			
        }
      }
    }
    get = null;
  }
}

function f_isb_xml(pproc, pregio){
  var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=isb_xml',page());
  get.add('P0_APP_PROC', pproc);
  for (var i=2; i < arguments.length; i++){
  	if ($x('P0_PAR_' + (i-1))){
    	get.add('P0_PAR_' + (i-1), arguments[i]);
    }
    get.add('P201_PAR_' + (i-1), arguments[i]);
  }
  gReturn = get.get('XML');

  if(gReturn){
    if (gReturn.getElementsByTagName("FOUT").length > 0) {
      alert($xml(gReturn, "FOUT"));
    }else{
    	if (pregio != 'NO'){
    		if (pregio == 'KALENDER'){
    			ajax_calendar('S','same');
    	  }else{
      		refresh_regio(pregio);
      	}
      }
    }
  }
  get = null;
}

function confirm_delete(pString, pitem_back){
  if ($v('P0_TAAL') == 'FR')
  {
    hmessage = "Bent u zeker dat u " + pString + " wil verwijderen?";
  }
  else
  {
    hmessage = "Bent u zeker dat u " + pString + " wil verwijderen?";
  }
  
  var hitem_back = document.getElementById(pitem_back);

  var r = confirm(hmessage);
  if (r==true)
  {
     html_GetElement(hitem_back).value = '-10';
  }else{
     html_GetElement(hitem_back).value = '1';
  }
}

function confirm_delete_button(pstring,presult){
<!--wrapper voor confirm_delete functie met submit-->
  confirm_delete(pstring, presult);
  if (html_GetElement(presult).value == -10){
     doSubmit('DELETE')
  }
}


function get_omschr_lo2(var_sql_code, pzoek, par1,par2,par3,par4,par5,par6,par7) { 
	pstatus = 0;
// Lege zoek wordt opgevangen in de databasefunctie isb.ae_get_omschr. De returnvelden worden namelijk leeggemaakt.
  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_omschr_lov',page(),session());

  getList.add('P201_ZOEK', '');
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  
  alert ('par1'+html_GetElement(par1).value);
  alert ('par2'+html_GetElement(par2).value);
  
  if (par7 != undefined){
  	getList.add('P201_PAR_7', par7?html_GetElement(par7).value:'');
 	}
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);

  getResult = getList.get();
//  alert(getResult);
  if(getResult) {
  	alert('getResult: ' + getResult)
  	getResult = decodeXML(getResult);
  	alert(getResult)
    if (getResult.substr(0,4) == 'Fout') {
    	pstatus = -1;
      alert(getResult) ;
      document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName == 'INPUT'){
      	//Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
 	   		setTimeout("$x('"+pzoek+"').select()", 10); 
      }
    }else {
      var empArray = getResult.split("~itemsep~");
      if (empArray[0]) {
      	$x(empArray[0]).value = empArray[1]; 
      	if($x(empArray[0]).tagName == 'SPAN'){
      		$x(empArray[0]).innerText = empArray[1];
      	}
      }
      if (empArray[2]) {
      	$x(empArray[2]).value = empArray[3]; 
      	if($x(empArray[2]).tagName == 'SPAN'){
      		$x(empArray[2]).innerText = empArray[3];
      	}
      }
      if (empArray[4]) {
      	$x(empArray[4]).value = empArray[5]; 
      	if($x(empArray[4]).tagName == 'SPAN'){
      		$x(empArray[4]).innerText = empArray[5];
      	}
      }
      if (empArray[6]) {
      	$x(empArray[6]).value = empArray[7]; 
      	if($x(empArray[6]).tagName == 'SPAN'){
      		$x(empArray[6]).innerText = empArray[7];
      	}
      }
      if (empArray[8]) {
      	$x(empArray[8]).value = empArray[9]; 
      	if($x(empArray[8]).tagName == 'SPAN'){
      		$x(empArray[8]).innerText = empArray[9];
      	}
      }
      if (empArray[10]) {
      	$x(empArray[10]).value = empArray[11]; 
      	if($x(empArray[10]).tagName == 'SPAN'){
      		$x(empArray[10]).innerText = empArray[11];
      	}
      }
      if (empArray[12]) {
      	$x(empArray[12]).value = empArray[13]; 
      	if($x(empArray[12]).tagName == 'SPAN'){
      		$x(empArray[12]).innerText = empArray[13];
      	}
      }
      if (empArray[14]) {
      	$x(empArray[14]).value = empArray[15]; 
      	if($x(empArray[14]).tagName == 'SPAN'){
      		$x(empArray[14]).innerText = empArray[15];
      	}
      }
      if (empArray[16]) {
      	$x(empArray[16]).value = empArray[17]; 
      	if($x(empArray[16]).tagName == 'SPAN'){
      		$x(empArray[16]).innerText = empArray[17];
      	}
      } 
      if (empArray[18]) {
      	$x(empArray[18]).value = empArray[19]; 
      	if($x(empArray[18]).tagName == 'SPAN'){
      		$x(empArray[18]).innerText = empArray[19];
      	}
      }                                               
   }
  } 
  
  if (typeof f_after_passBack=="function"){
  	f_after_passBack(var_sql_code, pstatus);
 	} 
}


function decodeXML(pString){
	uriDecoded = decodeURI(pString);
	
	uriDecoded = uriDecoded.replace( /%23/gi, "#" );
	uriDecoded = uriDecoded.replace( /&quot;/gi, "\"" );
	uriDecoded = uriDecoded.replace( /&amp;/gi, "&" );
	uriDecoded = uriDecoded.replace( /&apos;/gi, "'" );
	uriDecoded = uriDecoded.replace( /&lt;/gi, "<" );
	uriDecoded = uriDecoded.replace( /&gt;/gi, ">" );
	
	return uriDecoded;
	//uriDecoded = uriDecoded.replace( /%3A/gi, ":" );
	//uriDecoded = uriDecoded.replace( /%3F/gi, "?" );
}

function encodeXML(pString){
	uriEncoded = encodeURI(pString);
	
	uriEncoded = uriEncoded.replace( /#/gi, "%23" );
	uriEncoded = uriEncoded.replace( /\"/gi, "&quot;" );
	uriEncoded = uriEncoded.replace( /&/gi, "&amp;" );
	uriEncoded = uriEncoded.replace( /\'/gi, "&apos;" );
	uriEncoded = uriEncoded.replace( /</gi, "&lt;" );
	uriEncoded = uriEncoded.replace( />/gi, "&gt;" );
	
	/*	if (pString != ""){
		alert(pString +' - '+ uriEncoded)
	}*/
	
	return uriEncoded;
	//uriDecoded = uriDecoded.replace( /%3A/gi, ":" );
	//uriDecoded = uriDecoded.replace( /%3F/gi, "?" );
}

function replaceXML(pString){	
	//Werkt enkel voor strings -> eerst converteren
	pString = "" + pString;
	uriEncoded = pString.replace( /&/gi, "&amp;" ); //Als eerste amp vervangen, anders worden de &'s van de codes vervangen!
	uriEncoded = uriEncoded.replace( /\"/gi, "&#034;" );
	uriEncoded = uriEncoded.replace( /\'/gi, "&apos;" );
	uriEncoded = uriEncoded.replace( /</gi, "&lt;" );
	uriEncoded = uriEncoded.replace( />/gi, "&gt;" );
	
	return uriEncoded;
}

function get_omschr_status(var_sql_code, pzoek, par1, par2, par3, par4, par5, par6, par7) { 
  pstatus = 0;
// Lege zoek wordt opgevangen in de databasefunctie isb.ae_get_omschr. De returnvelden worden namelijk leeggemaakt.
  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_omschr_lov',page(),session());

  getList.add('P201_ZOEK', '');
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  if (par7 != undefined){
  	getList.add('P201_PAR_7', par7?html_GetElement(par7).value:'');
 	}
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);

  getResult = getList.get();
//  alert(getResult);
  if(getResult) {
  	getResult = decodeXML(getResult);
    if (getResult.substr(0,4) == 'Fout') {
      pstatus = -1;
    }else {
      var empArray = getResult.split("~itemsep~");
      if (empArray[0]) {
      	$x(empArray[0]).value = empArray[1]; 
      	if($x(empArray[0]).tagName == 'SPAN'){
      		$x(empArray[0]).innerText = empArray[1];
      	}
      }
      if (empArray[2]) {
      	$x(empArray[2]).value = empArray[3]; 
      	if($x(empArray[2]).tagName == 'SPAN'){
      		$x(empArray[2]).innerText = empArray[3];
      	}
      }
      if (empArray[4]) {
      	$x(empArray[4]).value = empArray[5]; 
      	if($x(empArray[4]).tagName == 'SPAN'){
      		$x(empArray[4]).innerText = empArray[5];
      	}
      }
      if (empArray[6]) {
      	$x(empArray[6]).value = empArray[7]; 
      	if($x(empArray[6]).tagName == 'SPAN'){
      		$x(empArray[6]).innerText = empArray[7];
      	}
      }
      if (empArray[8]) {
      	$x(empArray[8]).value = empArray[9]; 
      	if($x(empArray[8]).tagName == 'SPAN'){
      		$x(empArray[8]).innerText = empArray[9];
      	}
      }
      if (empArray[10]) {
      	$x(empArray[10]).value = empArray[11]; 
      	if($x(empArray[10]).tagName == 'SPAN'){
      		$x(empArray[10]).innerText = empArray[11];
      	}
      }
      if (empArray[12]) {
      	$x(empArray[12]).value = empArray[13]; 
      	if($x(empArray[12]).tagName == 'SPAN'){
      		$x(empArray[12]).innerText = empArray[13];
      	}
      }
      if (empArray[14]) {
      	$x(empArray[14]).value = empArray[15]; 
      	if($x(empArray[14]).tagName == 'SPAN'){
      		$x(empArray[14]).innerText = empArray[15];
      	}
      }
      if (empArray[16]) {
      	$x(empArray[16]).value = empArray[17]; 
      	if($x(empArray[16]).tagName == 'SPAN'){
      		$x(empArray[16]).innerText = empArray[17];
      	}
      } 
      if (empArray[18]) {
      	$x(empArray[18]).value = empArray[19]; 
      	if($x(empArray[18]).tagName == 'SPAN'){
      		$x(empArray[18]).innerText = empArray[19];
      	}
      }                                               
   }
  } 
  
  if (typeof f_after_passBack=="function"){
  	f_after_passBack(var_sql_code, pstatus);
  } 
}

function get_omschr_lov(var_sql_code, pzoek, par1,par2,par3,par4,par5,par6,par7) { 
	pstatus = 0;
// Lege zoek wordt opgevangen in de databasefunctie isb.ae_get_omschr. De returnvelden worden namelijk leeggemaakt.
  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_omschr_lov',page(),session());

  getList.add('P201_ZOEK', '');
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  if (par7 != undefined){
  	getList.add('P201_PAR_7', par7?html_GetElement(par7).value:'');
 	}
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);

  getResult = getList.get();
//  alert(getResult);
  if(getResult) {
  	getResult = decodeXML(getResult);
    if (getResult.substr(0,4) == 'Fout') {
    	pstatus = -1;
      alert(getResult) ;
      document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName == 'INPUT'){
      	//Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
 	   		setTimeout("$x('"+pzoek+"').select()", 10); 
      }
    }else {
      var empArray = getResult.split("~itemsep~");
      if (empArray[0]) {
      	$x(empArray[0]).value = empArray[1]; 
      	if($x(empArray[0]).tagName == 'SPAN'){
      		$x(empArray[0]).innerText = empArray[1];
      	}
      }
      if (empArray[2]) {
      	$x(empArray[2]).value = empArray[3]; 
      	if($x(empArray[2]).tagName == 'SPAN'){
      		$x(empArray[2]).innerText = empArray[3];
      	}
      }
      if (empArray[4]) {
      	$x(empArray[4]).value = empArray[5]; 
      	if($x(empArray[4]).tagName == 'SPAN'){
      		$x(empArray[4]).innerText = empArray[5];
      	}
      }
      if (empArray[6]) {
      	$x(empArray[6]).value = empArray[7]; 
      	if($x(empArray[6]).tagName == 'SPAN'){
      		$x(empArray[6]).innerText = empArray[7];
      	}
      }
      if (empArray[8]) {
      	$x(empArray[8]).value = empArray[9]; 
      	if($x(empArray[8]).tagName == 'SPAN'){
      		$x(empArray[8]).innerText = empArray[9];
      	}
      }
      if (empArray[10]) {
      	$x(empArray[10]).value = empArray[11]; 
      	if($x(empArray[10]).tagName == 'SPAN'){
      		$x(empArray[10]).innerText = empArray[11];
      	}
      }
      if (empArray[12]) {
      	$x(empArray[12]).value = empArray[13]; 
      	if($x(empArray[12]).tagName == 'SPAN'){
      		$x(empArray[12]).innerText = empArray[13];
      	}
      }
      if (empArray[14]) {
      	$x(empArray[14]).value = empArray[15]; 
      	if($x(empArray[14]).tagName == 'SPAN'){
      		$x(empArray[14]).innerText = empArray[15];
      	}
      }
      if (empArray[16]) {
      	$x(empArray[16]).value = empArray[17]; 
      	if($x(empArray[16]).tagName == 'SPAN'){
      		$x(empArray[16]).innerText = empArray[17];
      	}
      } 
      if (empArray[18]) {
      	$x(empArray[18]).value = empArray[19]; 
      	if($x(empArray[18]).tagName == 'SPAN'){
      		$x(empArray[18]).innerText = empArray[19];
      	}
      }                                               
   }
  } 
  
  if (typeof f_after_passBack=="function"){
  	f_after_passBack(var_sql_code, pstatus);
 	} 
}

function get_lov(var_sql_code, pzoek, pToonNull,par1,par2,par3,par4,par5,par6,par7) {
 if (html_GetElement(pzoek).value != ''){
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov',page());
  getList.add('P201_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  if (par7 != undefined){
  	getList.add('P201_PAR_7', par7?html_GetElement(par7).value:'');
 	}
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);
  getResult = getList.get();

  if(getResult) {
    if (getResult.substr(0,4) == 'Fout') {
       alert(getResult) ;
       document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName=='INPUT'){
      	//Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
 	   		setTimeout("$x('"+pzoek+"').select()", 10); 
      }
    }else{
       var empArray = getResult.split("~itemsep~");
       var selectListObj = document.getElementById(empArray[0]);
       if(empArray[1]){
          empArray[1] = empArray[1].substr(0, empArray[1].length - 3);
          selectListObj.options.length = 0;
          if (pToonNull == 1){
            selectListObj.options[0] = new Option(' ', '%null%');
          }
          var selectArray = empArray[1].split("~r~");
          for(var i=0; i < selectArray.length; i++) {
            var colArray = selectArray[i].split("~c~");
            selectListObj.options[i + pToonNull] = new Option(colArray[1],
            colArray[0]);
          }
          selectListObj.selectedIndex = pToonNull;
          if(html_GetElement(pzoek).nodeName == 'INPUT'){
             setField(pzoek,document.getElementById(empArray[0]).value);
          }else if(html_GetElement(pzoek).nodeName == 'SELECT'){
             null;
          }
       }else{
          selectListObj.options.length = 0;
       }
   }
  }
  if (typeof f_after_passBack=="function"){
  	f_after_passBack(var_sql_code);
 	} 
 }
}

function get_lov_xml(var_sql_code, pzoek, pToonNull) {
  var j;
  var aantal_pars;
  var l_Count;
  
  if ($x('P201_PAR_7')){
    aantal_pars = 7;
  }else{
    aantal_pars = 6;
  }
  
  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov_xml',page());
  getList.add('P201_CODE', var_sql_code);
  for (var i=3; i < arguments.length; i++){
    j = i-2;
    getList.add('P201_PAR_' + j, $v(arguments[i]));
  }
  for(var k = j+1; k <= aantal_pars; k++){
    getList.add('P201_PAR_' + k, '');
  }
  getList.add('P201_TAAL', $v('P0_TAAL'));
  //getResult = getList.get();
  //alert(getResult);
  getResult = getList.get('XML');

  if (getResult.getElementsByTagName("FOUT").length > 0) {
    alert($xml(getResult, "FOUT"));
    //Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
    if($x(pzoek) && $x(pzoek).nodeName == 'INPUT'){
      setTimeout("$x('"+pzoek+"').select()", 10); 
    }
  }else{ 
    var selectListObj = $x($xml(getResult, 'FIELD'));
    selectListObj.options.length = 0;
    if (pToonNull == 1){
      selectListObj.options[0] = new Option(' ', '%null%');
    }        
    l_Count = getResult.getElementsByTagName('VALUE').length;
    for(var a = 0; a < l_Count; a++){
      selectListObj.options[a + Number(pToonNull)] = new Option(decodeXML($xml(getResult, 'DISPLAY', a)), decodeXML($xml(getResult, 'RETURN', a)));
    }
    //selectListObj.selectedIndex = pToonNull;
  }
}

function get_lov_xml2(var_sql_code, pzoek, pToonNull) {
  var j;
  var aantal_pars;
  var l_Count;
  
  if ($x('P201_PAR_7')){
    aantal_pars = 7;
  }else{
    aantal_pars = 6;
  }
  
  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov_xml',page());
  getList.add('P201_CODE', var_sql_code);
  alert('var_sql_code: '+var_sql_code);
  for (var i=3; i < arguments.length; i++){
    j = i-2;
    getList.add('P201_PAR_' + j, $v(arguments[i]));
	alert ('P201_PAR_' + j + '='+ $v(arguments[i]));
  }
  for(var k = j+1; k <= aantal_pars; k++){
    getList.add('P201_PAR_' + k, '');
  }
  getList.add('P201_TAAL', $v('P0_TAAL'));
  getResult = getList.get();
  alert(getResult);
  getResult = getList.get('XML');

  if (getResult.getElementsByTagName("FOUT").length > 0) {
    alert($xml(getResult, "FOUT"));
    //Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
    setTimeout("$x('"+pzoek+"').select()", 10); 
  }else{ 
    var selectListObj = $x($xml(getResult, 'FIELD'));
    selectListObj.options.length = 0;
    if (pToonNull == 1){
      selectListObj.options[0] = new Option(' ', '%null%');
    }        
    l_Count = getResult.getElementsByTagName('VALUE').length;
    for(var a = 0; a < l_Count; a++){
      selectListObj.options[a + Number(pToonNull)] = new Option(decodeXML($xml(getResult, 'DISPLAY', a)), decodeXML($xml(getResult, 'RETURN', a)));
    }
    //selectListObj.selectedIndex = pToonNull;
  }
}

function get_lo2(var_sql_code, pzoek, pToonNull,par1,par2,par3,par4,par5,par6,par7) {
 if (html_GetElement(pzoek).value != ''){
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov',page());
  getList.add('P201_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  if (par7 != undefined){
  	getList.add('P201_PAR_7', par7?html_GetElement(par7).value:'');
  }
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);
  getResult = getList.get();

alert($x(par1).value + $x(par2).value + $v(par3))

  if(getResult) {
  	alert(getResult)
    if (getResult.substr(0,4) == 'Fout') {
       alert(getResult) ;
       document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName=='INPUT'){
      	//Indien op onchange geïmplementeerd, timeout vereist om automatisch getriggerde onblur te omzeilen
 	   		setTimeout("$x('"+pzoek+"').select()", 10); 
      }
    }else{
       var empArray = getResult.split("~itemsep~");
       var selectListObj = document.getElementById(empArray[0]);
 //      alert(selectListObj.id)
       alert(empArray[1] + ' - ' + decodeXML(empArray[1]))
       if(empArray[1]){
          empArray[1] = empArray[1].substr(0, empArray[1].length - 3);
          selectListObj.options.length = 0;
          if (pToonNull == 1){
            selectListObj.options[0] = new Option(' ', '%null%');
          }
          var selectArray = empArray[1].split("~r~");
          for(var i=0; i < selectArray.length; i++) {
            var colArray = selectArray[i].split("~c~");
            selectListObj.options[i + pToonNull] = new Option(colArray[1],
            colArray[0]);
          }
          selectListObj.selectedIndex = pToonNull;
          if(html_GetElement(pzoek).nodeName == 'INPUT'){
             setField(pzoek,document.getElementById(empArray[0]).value);
          }else if(html_GetElement(pzoek).nodeName == 'SELECT'){
             null;
          }
       }else{
          selectListObj.options.length = 0;
       }
   }
  }
  if (typeof f_after_passBack=="function"){
  	f_after_passBack(var_sql_code);
 	} 
 }
}

function get_lov2(var_sql_code, pzoek, pToonNull,par1,par2,par3,par4,par5,par6) {
 if (html_GetElement(pzoek).value != ''){
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov',page());
  getList.add('P201_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_PAR_1', par1?html_GetElement(par1).value:'');
  getList.add('P201_PAR_2', par2?html_GetElement(par2).value:'');
  getList.add('P201_PAR_3', par3?html_GetElement(par3).value:'');
  getList.add('P201_PAR_4', par4?html_GetElement(par4).value:'');
  getList.add('P201_PAR_5', par5?html_GetElement(par5).value:'');
  getList.add('P201_PAR_6', par6?html_GetElement(par6).value:'');
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);
  getResult = getList.get();

  if(getResult) {
    if (getResult.substr(0,4) == 'Fout') {
       alert(getResult) ;
       document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName=='INPUT'){
 	   document.getElementById(pzoek).select(); 
      }
    }else{
       var empArray = getResult.split("~itemsep~");
       var selectListObj = document.getElementById(empArray[0]);
       if(empArray[1]){
          empArray[1] = empArray[1].substr(0, empArray[1].length - 3);
          selectListObj.options.length = 0;
          if (pToonNull == 1){
            selectListObj.options[0] = new Option(' ', '%null%');
          }
          var selectArray = empArray[1].split("~r~");
          for(var i=0; i < selectArray.length; i++) {
            var colArray = selectArray[i].split("~c~");
            selectListObj.options[i + pToonNull] = new Option(colArray[1],
            colArray[0]);
          }
          selectListObj.selectedIndex = 0;
          if(html_GetElement(pzoek).nodeName == 'INPUT'){
             setField(pzoek,document.getElementById(empArray[0]).value);
          }else if(html_GetElement(pzoek).nodeName == 'SELECT'){
             null;
          }
       }else{
          selectListObj.options.length = 0;
       }
   }
  } 
 }
}

function get_lov_lob(var_sql_code, pzoek, pToonNull,par1,par2,par3,par4,par5,par6) {
<!-- ajax_div wordt in pagina 0 aangemaakt (zie TIB) -->
  var result = document.getElementById("ajax_div");

 if (html_GetElement(pzoek).value != '' && html_GetElement(pzoek).value.length >= 3){
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov_lob',page());
  getList.add('P201_ZOEK', html_GetElement(pzoek).value);
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', html_GetElement(pzoek).value);
  if (par1) {getList.add('P201_PAR_1', html_GetElement(par1).value)}
  else{getList.add('P201_PAR_1', '')};
  if (par2) {getList.add('P201_PAR_2', html_GetElement(par2).value)}
  else{getList.add('P201_PAR_2', '')};
  if (par3) {getList.add('P201_PAR_3', html_GetElement(par3).value)}
  else{getList.add('P201_PAR_3', '')};
  if (par4) {getList.add('P201_PAR_4', html_GetElement(par4).value)}
  else{getList.add('P201_PAR_4', '')};
  if (par5) {getList.add('P201_PAR_5', html_GetElement(par5).value)}
  else{getList.add('P201_PAR_5', '')};
  if (par6) {getList.add('P201_PAR_6', html_GetElement(par6).value)}
  else{getList.add('P201_PAR_6', '')};
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);
  getResult = getList.get();

  if(getResult){
    result.innerHTML = getResult;
  }
  getResult = null;

  if(result.innerHTML) {
    if (result.innerHTML.substr(0,4) == 'Fout') {
       alert(result.innerHTML) ;
       document.getElementById(pzoek).focus(); 
      if(html_GetElement(pzoek).nodeName=='INPUT'){
 	   document.getElementById(pzoek).select(); 
      }
    }else{
       var empArray = result.innerHTML.split("~itemsep~");
       var selectListObj = document.getElementById(empArray[0]);
       if(empArray[1]){
          empArray[1] = empArray[1].substr(0, empArray[1].length - 3);
          selectListObj.options.length = 0;
          if (pToonNull == 1){
            selectListObj.options[0] = new Option(' ', '%null%');
          }
          var selectArray = empArray[1].split("~r~");
          for(var i=0; i < selectArray.length; i++) {
            var colArray = selectArray[i].split("~c~");
            selectListObj.options[i + pToonNull] = new Option(colArray[1],
            colArray[0]);
          }
          selectListObj.selectedIndex = pToonNull;
          if(html_GetElement(pzoek).nodeName == 'INPUT'){
             setField(pzoek,'');
          }else if(html_GetElement(pzoek).nodeName == 'SELECT'){
             null;
          }
       }else{
          selectListObj.options.length = 0;
       }
   }
  } 
 }
 html_GetElement('P0_READY').value = 1;
}


function callMyPopup (var_sql_code,par1,par2,par3,par4,par5,par6,par7) {
/*    var url;
    var parr1;
    var pass1;
    var parr2;
    var pass2;
    var parr3;
    var pass3;
    var parr4;
    var pass4;
    var parr5;
    var pass5;
    var parr6;
    var pass6;

  if (par1==null)
  {pass1 = '';}
  else
  {parr1 = par1 ;
   pass1 = document.getElementById(parr1).value;}

  if (par2==null)
  {pass2 = '';}
  else
  {parr2 = par2 ;
   pass2 = document.getElementById(parr2).value;}

  if (par3==null)
  {pass3 = '';}
  else
  {parr3 = par3 ;
   pass3 = document.getElementById(parr3).value;}

  if (par4==null)
  {pass4 = '';}
  else
  {parr4 = par4 ;
   pass4 = document.getElementById(parr4).value;}

  if (par5==null)
  {pass5 = '';}
  else
  {parr5 = par5 ;
   pass5 = document.getElementById(parr5).value;}

  if (par6==null)
  {pass6 = '';}
  else
  {parr6 = par6 ;
   pass6 = document.getElementById(parr6).value;}*/
   
  pass1 = $x(par1).value == '%null%'||!par1?'':$x(par1).value;
  pass2 = $x(par2).value == '%null%'||!par2?'':$x(par2).value;
  pass3 = $x(par3).value == '%null%'||!par3?'':$x(par3).value;
  pass4 = $x(par4).value == '%null%'||!par4?'':$x(par4).value;
  pass5 = $x(par5).value == '%null%'||!par5?'':$x(par5).value;
  pass6 = $x(par6).value == '%null%'||!par6?'':$x(par6).value;
  if (par7 != undefined){
  	pass7 = $x(par7).value == '%null%'||!par7?'':$x(par7).value;
  	url = 'f?p='+App_Id()+':201:'+session()+'::201:201,RP:TEMP_ZOEK,P201_CODE,P201_PAR_1,P201_PAR_2,P201_PAR_3,P201_PAR_4,P201_PAR_5,P201_PAR_6,P201_PAR_7:,' + var_sql_code +','+pass1+','+pass2+','+pass3+','+pass4+','+pass5+','+pass6+','+pass7;
  }else{
  	url = 'f?p='+App_Id()+':201:'+session()+'::201:201,RP:TEMP_ZOEK,P201_CODE,P201_PAR_1,P201_PAR_2,P201_PAR_3,P201_PAR_4,P201_PAR_5,P201_PAR_6:,' + var_sql_code +','+pass1+','+pass2+','+pass3+','+pass4+','+pass5+','+pass6;
  }
  
  //Voor applicaties met session state protection enabled
  url = $url(url);
/*
  if (var_sql_code == 'MARKER') {
  	alert(url);
  }
*/
  w = open(url,"winLov","dependent=yes,location=0,Scrollbars=1,resizable=1,width=500,height=500");
  if (w.opener == null)
  w.opener = self;

  w.focus();
}

function callBranchPopup (var_sql_code,par1,par2,par3,par4,par5,par6) {
    var url;

  if (par1==null)
  {pass1 = '';}
  else
  { pass1 = document.getElementById(par1).value;}

  if (par2==null)
  {pass2 = '';}
  else
  { pass2 = document.getElementById(par2).value;}

  if (par3==null)
  {pass3 = '';}
  else
  { pass3 = document.getElementById(par3).value;}

  if (par4==null)
  {pass4 = '';}
  else
  { pass4 = document.getElementById(par4).value;}

  if (par5==null)
  {pass5 = '';}
  else
  { pass5 = document.getElementById(par5).value;}

  if (par6==null)
  {pass6 = '';}
  else
  { pass6 = document.getElementById(par6).value;}
 
  url = 'f?p=&APP_ID.:203:&APP_SESSION.::203:203,RP:P203_CODE,P203_PAR_1,P203_PAR_2,P203_PAR_3,P203_PAR_4,P203_PAR_5,P203_PAR_6:' + var_sql_code + ',' + pass1 + ',' + pass2 + ',' + pass3 + ',' + pass4 + ',' + pass5 + ',' + pass6;
  w = open(url,"winLov","dependent=yes,location=0,Scrollbars=1,resizable=1,width=800,height=600");
  if (w.opener == null)
  w.opener = self;

  w.focus();
}


function error_alert(){
  if (html_GetElement('P' + page() + '_MODE').value == -1){
     alert(html_GetElement('P' + page() + '_COMMENT').value);
     html_GetElement('P' + page() + '_MODE').value = '';
  }
}

function delete_apex_upload(pvolgnr){
 confirm_delete('de upload', 'P' + page() + '_MODE');
 if(html_GetElement('P' + page()  + '_MODE').value == -10){
  html_GetElement('P' + page()  + '_MODE').value = 0;
  var aregio = get_regio(1,'P' + page()  );

  var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=del_apex_upload',page() );
  getList.add('P'+ page() + '_VOLGNR', pvolgnr);
  getResult = getList.get();
//  alert(getResult);
  if(getResult){
     if(!getResult.match("succes")){
        alert(getResult);
     }else{
// alert(aregio+' ' +session());
        html_PPR_Report_Page(null,aregio,'f?p=' + App_Id()+ ':' +page()+':'+session()+':pg_R_' + aregio + ':NO:');
     }
  }else{
     alert('Probleem in verwijderfunctie');
  }
  getList = null;
 }
}




/* Extended Javscript Functions */
/*override basic element functions so pNd can be array of strings or elements*/
function html_HideElement(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			if (node) {node.style.display = "none"};
		}
		return pNd;
	}else{
		var node = html_GetElement(pNd);
		if (node) {node.style.display = "none"};
		return node;
	}
}

function html_ShowElement(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			if (node) {node.style.display = ""};
		}
		return pNd;
	}else{
		var node = html_GetElement(pNd);
		if (node) {node.style.display = ""};
		return node;
	}
}


function html_ToggleElement(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			if(node){
				if(node.style.display == "none"){html_ShowElement(node)}
				else{html_HideElement(node)}
			}
		}
		return pNd;
	}else{
		var node = html_GetElement(pNd);
		if(node){
			if(node.style.display == "none"){html_ShowElement(node)}
			else{html_HideElement(node)}
		}
		return node;
	}
}

function html_HideItemRow(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			var lTr = html_CascadeUpTill(node,'TR');
			html_HideElement(lTr);
		}
		return;
	}else{
		var node = html_GetElement(pNd);
		var lTr = html_CascadeUpTill(node,'TR');
		html_HideElement(lTr);
		return;
	}
}

function html_ShowItemRow(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			var lTr = html_CascadeUpTill(node,'TR');
			html_ShowElement(lTr);
		}
		return;
	}else{
		var node = html_GetElement(pNd);
		var lTr = html_CascadeUpTill(pNd,'TR');
		html_ShowElement(lTr);
		return;
	}
}

function html_ToggleItemRow(pNd){
	if(pNd.constructor == Array){
		for(var i=0;i<pNd.length;i++){
			var node = html_GetElement(pNd[i]);
			var lTr = html_CascadeUpTill(node,'TR');
			html_ToggleElement(lTr);
		}
		return;
	}else{
		var node = html_GetElement(pNd);
		var lTr = html_CascadeUpTill(pNd,'TR');
		html_ToggleElement(lTr);
		return;
	}
}


function html_SetSelectValue(pId,pValue){
 var lSelect = html_GetElement(pId);
 if(lSelect.nodeName == 'SELECT'){  
  for(var i=0,l=lSelect.options.length;i<l;i++){
    if(lSelect.options[i].value == pValue){lSelect.options[i].selected=true;}
		else{lSelect.options[i].selected=false;}
  }
 }
}

function html_SetMultiSelectValue(pId,pValues){
	var lSelect = html_GetElement(pId);
	var hvalues = pValues.split(":");

	if(lSelect.nodeName == 'SELECT'){  
	  for(var i=0,l=lSelect.options.length;i<l;i++){
	  	lSelect.options[i].selected=false;
  		for(var x=0; x < hvalues.length; x++) {
		    if(lSelect.options[i].value == hvalues[x]){
		    	lSelect.options[i].selected=true;
		    }
	  	}
	  }
	}
}


/* New Javscript Functions */


function f_Hide_On_Value(pThis,pValue,pThat){
	var l_Value;
	if(html_GetElement(pThat)){
		if(html_GetElement(pThis).nodeName=='SELECT'){
			l_Value = html_SelectValue(pThis);
            }else{
			l_Value = html_GetElement(pThis).value
		}
		if(l_Value==pValue){
			html_HideElement(pThat);
		}else{
			html_ShowElement(pThat)
		}

	}
}

function f_Hide_From_Checkbox(pThis,pValue,pThat){
	var l_Value;
	if($x(pThat)){
		if (typeof $x(pThis).checked == 'undefined'){
			l_Value = $x(pThis).children[0].checked
		}else{
	    l_Value = $x(pThis).checked;
	  }
		if(l_Value==pValue){
			html_HideElement(pThat);
		}else{
			html_ShowElement(pThat)
		}
	}
}

function f_Hide_From_Checkbox_Item_Row(pThis,pValue,pThat){
	var l_Value;
	if($x(pThat)){
		if (typeof $x(pThis).checked == 'undefined'){
			l_Value = $x(pThis).children[0].checked
		}else{
	    l_Value = $x(pThis).checked;
	  }
		if(l_Value==pValue){
			html_HideItemRow(pThat);
		}else{
			html_ShowItemRow(pThat)
		}
	}
}

function f_Hide_On_Value_Item_Row(pThis,pValue,pThat){
	var l_Value;
	if(html_GetElement(pThat)){
		if(html_GetElement(pThis).nodeName=='SELECT'){
			l_Value = html_SelectValue(pThis);
		}else{
			l_Value = html_GetElement(pThis).value
		}
		if(l_Value==pValue){
			html_HideItemRow(pThat);
		}else{
			html_ShowItemRow(pThat)
		}

	}
}

function f_Hide_On_Any_Value_Item_Row(pThis,pThat){

	var l_Value;
	if(html_GetElement(pThat)){
		if(html_GetElement(pThis).nodeName=='SELECT'){
			l_Value = html_SelectValue(pThis) != '%null%';
		}else{
			l_Value = html_GetElement(pThis).value
		}

		if(l_Value){
			html_HideItemRow(pThat);
		}else{
			html_ShowItemRow(pThat)
		}

	}
}

function f_Disable_On_Value(pThis,pValue,pThat){
	var lTest;
                if(pThis.nodeName == 'SELECT'){
			lTest = html_SelectValue(pThis) == pValue;
	        }else{
			lTest = html_GetElement(pThis).value == pValue;
	        }
	        if(pThat){
		        for (var i=2;i <= arguments.length; i++){
		 	    html_disableItem(arguments[i],lTest)
		        }
                }
	return;
}


function f_Disable_on_Any_Value(pThis,pThat){
	var lTest;
	if(pThis.nodeName == 'SELECT'){
			lTest = html_SelectValue(pThis) != '%null%';
	}else{
			lTest = html_GetElement(pThis).value != '';
	}
        if(pThat){
		 for (var i=1;i <= arguments.length; i++){
		 		 html_disableItem(arguments[i],lTest)
		 }
  	}
	return;
}


function html_AddTableRow(pThis,pThat,pNum){
        var tt = html_GetElement(pThat);
        var l_newRows = new Array();
        for(i=0;i<pNum;i++){
          var ogTR = tt.rows[tt.rows.length -1];
          var trClone = ogTR.cloneNode(true);
          if(document.all){
            myNewRow = tt.insertRow(tt.rows.length);
            oReplace = myNewRow.replaceNode(trClone);
          }else{
            tt.appendChild(trClone);
          }
          l_newRows[l_newRows.length] = trClone;
          
          var tSelects = trClone.getElementsByTagName('select');
          for(var iSelects=0;iSelects<tSelects.length;iSelects++){
              tSelects[iSelects].selectedIndex = 0;
              tSelects[iSelects].disabled="";
           }
          var tInputs = trClone.getElementsByTagName('input');
          for(var iInputs=0;iInputs<tInputs.length;iInputs++){
            if(tInputs[iInputs].type=="text"){
            tInputs[iInputs].value="";
            tInputs[iInputs].disabled="";
            }
          }
        }
  return l_newRows;
}




/* Extended Javscript Objects */
/* 
this adds better aysnc functionality 
to the htmldb_Get object 
pVar is the function that you want to call when the xmlhttp state changes
in the function specified by pVar the xmlhttp object can be referenced by the variable p
*/
htmldb_Get.prototype.GetAsync = function(pVar){
   try{
      p = new XMLHttpRequest();
    }catch(e){
      p = new ActiveXObject("Msxml2.XMLHTTP");
    }
    try {
    	var startTime = new Date();
			p.open("POST", this.base, true);
			if(p) {
					p.onreadystatechange = pVar;
					p.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					p.send(this.queryString == null ? this.params : this.queryString );
					return p;
			} 
		}catch(e){
      return false;
    }
 }







function $a_Pagination(pThis,pRid,pURL){
    var l = new $d_PageObject();
    l.page_init(pThis,pRid,pURL);
}



function $d_PageObject(){
this.page_init = function(pThis,pRid,pURL){
	var l_pRid = html_CleanRegionId(pRid);
	document.body.style.cursor = 'wait';
    var l_URL = pURL;
    var start = l_URL.indexOf('?');
    l_URL = l_URL.substring(start + 1);
    l_URL = html_replace(l_URL,'pg_R_','FLOW_PPR_OUTPUT_'+l_pRid+'_pg_R_');
    l_URL = html_replace(l_URL,'fsp_sort_','FLOW_PPR_OUTPUT_'+l_pRid+'_fsp_sort_');
    var get = new htmldb_Get('report'+ l_pRid,null,null,null,null,'f',l_URL);
	var lp = get.GetAsync(page_return);
    lp.pHeader = '<htmldb:'+l_pRid+'>';
    lp.pFooter = '</htmldb:'+l_pRid+'>';
	lp.pID = l_pRid;
    return;
}
page_return = function(){
		if(p.readyState == 1){
		}else if(p.readyState == 2){
		}else if(p.readyState == 3){
		}else if(p.readyState == 4){
		$x('report'+ p.pID).innerHTML = $x_Trim(p.responseText,p.pHeader,p.pFooter);
		init_htmlPPRReport(p.pID);
		document.body.style.cursor = '';
		}else{return false;}

}
}


function $x_Trim(pThis,pStart,pEnd){
       var start = pThis.indexOf(pStart);
       pThis  = pThis.substring(start+pStart.length);
       var end   = pThis.indexOf(pEnd); 
       pThis  = pThis.substring(0,end);
	   console.log('pThis',pThis);
	   return pThis
}


/* 
these two functions extend the 
dhtml_ShuttleObject to add move_all 
and remove_all methods
*/
dhtml_ShuttleObject.prototype.move_all = function(){
	for (var i=0;i<this.Select1.options.length;i++){
			this.Select1.options[i].selected=true;
	}
	this.move()
}
dhtml_ShuttleObject.prototype.remove_all = function(){
	for (var i=0;i<this.Select2.options.length;i++){
			this.Select2.options[i].selected=true;
	}
	this.remove();
}

dhtml_ShuttleObject.prototype.sort1 = function(pDir){
	this.sort(this.Select1,pDir);
}

dhtml_ShuttleObject.prototype.sort2 = function(pDir){
	this.sort(this.Select2,pDir);
}

dhtml_ShuttleObject.prototype.sort = function(pShuttle,pDir){
	var nextOption;
	var lLength = pShuttle.options.length;
	if(pDir == 'U'){
		for (var i=0;i<pShuttle.options.length;i++){
			if(pShuttle.options[i].selected==true){
				if(pDir == 'U'){
					if(i!=0){pShuttle.insertBefore(pShuttle.options[i], pShuttle.options[i-1]);}
				}
			}
		}
	}else if(pDir == 'D'){
		for (var i=pShuttle.options.length-1;i>=0;i--){
			if(pShuttle.options[i].selected==true){
				if(pDir == 'D'){
					if(i!=pShuttle.options.length-1){pShuttle.insertBefore(pShuttle.options[i], pShuttle.options[i+2]);}
				}
			}
		}
	}else{
		var l_Opt = new Array();
			for (var i=0;i<pShuttle.options.length;i++){
				if(pShuttle.options[i].selected==true){
					l_Opt[l_Opt.length] = pShuttle.options[i];
				}
			}
		if(pDir == 'B'){
			for (var i=0;i<l_Opt.length;i++){
				pShuttle.appendChild(l_Opt[i]);
			}
		}else if(pDir == 'T'){
			for (var i=l_Opt.length-1;i>=0;i--){
				pShuttle.insertBefore(l_Opt[i],pShuttle.firstChild);
			}
		}
	}
}

/* New Javscript Objects */


function splitandsubmit(pThis){
   var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'SAVE',6, null, 'wwv_flow.accept');
   var lSplitter = html_GetElement('P3_TEXTAREA');
   var lSplitterValue = lSplitter.value;
   $x('P3_COUNT').value = lSplitter.value.length;
   var i=0;
   
   if (lSplitterValue.length<=4000) {
     get.addParam('f01',lSplitterValue);
   } else {
     while (lSplitterValue.length>4000) {
       get.addParam('f01',lSplitterValue.substr(0,4000));
       lSplitterValue = lSplitterValue.substr(4000,lSplitterValue.length-4000);
       i++;
     }
     get.addParam('f01',lSplitterValue);
   }
   get.get('FULL');
   get=null;
}


function splitandsubmitget(pThis){
   var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'GET',6, null, 'wwv_flow.accept');
   var lSplitter = html_GetElement('P3_TEXTAREA');
   var x = get.get('FULL');
   $x('P3_COUNT').value = x.length;
   lSplitter.value = x;
   get = null;
   x = null;
}

function callColorPicker (srcFld) {
	var pUrl;

  pUrl = 'f?p='+App_Id()+':303:'+session()+'::303:303,RP:P303_VELD_TERUG:' + srcFld;

  w = open(pUrl,"winLov","dependent=yes,location=0,Scrollbars=1,resizable=1,width=450,height=350");
  if (w.opener == null)
  w.opener = self;

  w.focus();
//  popUp2(pUrl,450,350);
  
}

function $style(Element, CssProperty){
  if(Element.currentStyle){
    var convertToCamelCase = CssProperty.replace(/\-(.)/g, function(m, l){return l.toUpperCase()});
    return Element.currentStyle[convertToCamelCase];
  }else if (window.getComputedStyle){
    var elementStyle = window.getComputedStyle(Element, "");
    return elementStyle.getPropertyValue(CssProperty);
  }
}

function colorTable(pregio)
{
//This function will change the color of the tablerows
//Requirements:
// - a report-template wherein the id of the table is set to "to_format"
// - a region-template containing the following script
//		<script type="text/javascript">
//		  colorTable('#REGION_ID#');
//		</script>
//   ór a custom-call: colorTable(get_region(regionStaticId).id);
//In the current version it is possible to pass the static_id from the region to be formatted
//Insert following script in the region footer
//<script type="text/javascript">
//formatTable();
//</script>
//and if you want to change the color of the td's, a div element with the id 'kleur' must be present 
//in the first column which isn't a link
//formatted like: ''<div id="kleur" style="display:none" class="className"></div>''
	var tableToFormat;
	
  if (!pregio){
    alert('colorTable: Gelieve het region_id van de regio te specifiëren.');
    return;
  }else{
  	regionToFormat = $x(pregio);
  	tableToFormat = getElementsByAttribute(regionToFormat, 'table', 'id', 'to_format')[0];
  }
  var tableRow;
  var tableCell;
  var x;
  var hkleur;
  
  if (tableToFormat){ 
		for (i=1; i < tableToFormat.rows.length; i++){
			tableRow = tableToFormat.rows[i];
			hkleur = "";
			for (j=0; j < tableRow.cells.length; j++) {
				tableCell = tableRow.cells[j];
				x = 0;
				while (x < tableRow.cells.length && hkleur == ""){
					if(tableRow.cells[x].childNodes.length >= 1 && tableRow.cells[x].firstChild.id == "kleur"){
						hkleur = $style(tableRow.cells[x].firstChild, 'color');
					}else{
						x = x + 1;
					}
				}
				if (hkleur && x < tableRow.cells.length){		//"kleur"-div found
						tableCell.style.color = hkleur;
				}
			}
		}
  }
}

function colorTable2(pregio)
{
//To debug colorTable
	var tableToFormat;
	
  if (!pregio){
    alert('colorTable: Gelieve het region_id van de regio te specifiëren.');
    return;
  }else{
  	regionToFormat = $x(pregio);
  	tableToFormat = getElementsByAttribute(regionToFormat, 'table', 'id', 'to_format')[0];
  }
  var tableRow;
  var tableCell;
  var x;
  var hkleur;
  
alert('color')
  if (tableToFormat){
  alert('Tabletoformat'+tableToFormat.rows.length);
		for (i=1; i < tableToFormat.rows.length; i++){
			tableRow = tableToFormat.rows[i];
			hkleur = "";
			for (j=0; j < tableRow.cells.length; j++) {
				tableCell = tableRow.cells[j];
		    x = 0;
	    	while (x < tableRow.cells.length && hkleur == ""){
	    		if(tableRow.cells[x].childNodes.length >= 1 && tableRow.cells[x].firstChild.id == "kleur"){
	    			hkleur = $style(tableRow.cells[x].firstChild, 'color');
	    		}else{
						x = x + 1;
					}
	    	}
		    if (hkleur && x < tableRow.cells.length){		//"kleur"-div found
					alert(' Kleur gevonden ('+tableCell.innerHTML+')' + hkleur);
					tableCell.style.color = hkleur;
		    }
			}
		}
  }
}

function color_regio(pregio){
	//This function will change the color of the tablerows making use of the static_id
	 colorTable(get_region(pregio).id);
}

function color_regio2(pregio){
	//This function will change the color of the tablerows making use of the static_id
	 colorTable2(get_region(pregio).id);
}

function formatTable(pregio)
{
//This function will change the color of the tablerows
//In the reporttemplate the table must have the id 'to_format' => reportTemplate "colorGrid"
//Insert following script in the region footer
//<script type="text/javascript">
//formatTable();
//</script>
//and if you want to change the color of the td's, a div element with the id 'kleur' must be present in the first column
//formatted like: ''<div id="kleur" style="display:none">#000000</div>''
	var tableToFormat;
	
  tableToFormat = $x('to_format');
  var tableRow;
  var tableCell;
  var x;

  if (tableToFormat){
		for (i=1; i < tableToFormat.rows.length; i++){
			tableRow = tableToFormat.rows[i];
			for (j=0; j < tableRow.cells.length; j++) {
				tableCell = tableRow.cells[j];
				if (tableRow.cells[j].childNodes.length >= 1) {
			    x = 0;
		    	while (x < tableRow.cells.length && tableRow.cells[x].firstChild.id != "kleur"){
						x = x + 1;
		    	}
			    if (x < tableRow.cells.length){		//"kleur"-div found
						tableCell.style.color = tableRow.cells[x].firstChild.innerHTML;
			    }
				}
			}
		}
  }
}

function get_lov_grd(var_sql_code, pzoek, prownum, pToonNull,par1,par2,par3,par4,par5,par6) {
 var lName;

 if (pzoek.value != ''){
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_lov',page());
  getList.add('P201_ZOEK', pzoek.value);
  getList.add('P201_CODE', var_sql_code);
  getList.add('TEMP_ZOEK', pzoek.value);
  if (par1) {getList.add('P201_PAR_1', par1)};
  if (par2) {getList.add('P201_PAR_2', par2)};
  if (par3) {getList.add('P201_PAR_3', par3)};
  if (par4) {getList.add('P201_PAR_4', par4)};
  if (par5) {getList.add('P201_PAR_5', par5)};
  if (par6) {getList.add('P201_PAR_6', par6)};
  getList.add('P201_TAAL',html_GetElement('P0_TAAL').value);
  getResult = getList.get();

  if(getResult) {
    if (getResult.substr(0,4) == 'Fout') {
       alert(getResult) ;
       pzoek.focus(); 
       if(pzoek.nodeName=='INPUT'){
 	   pzoek.select(); 
       }
    }else{
       var empArray = getResult.split("~itemsep~");

       lName = empArray[0].substr(empArray[0].indexOf("_")+1,empArray[0].length);
       var selectListObj = getIndexedReturnFld(lName, prownum);
       if(empArray[1]){
          empArray[1] = empArray[1].substr(0, empArray[1].length - 3);
          selectListObj.options.length = 0;
          if (pToonNull == 1){
            selectListObj.options[0] = new Option(' ', '%null%');
          }
          var selectArray = empArray[1].split("~r~");
          for(var i=0; i < selectArray.length; i++) {
            var colArray = selectArray[i].split("~c~");
            selectListObj.options[i + pToonNull] = new Option(colArray[1],
            colArray[0]);
          }
          selectListObj.selectedIndex = pToonNull;
          if(pzoek.nodeName == 'INPUT'){
             pzoek.value = selectListObj.value;
          }else if(pzoek.nodeName == 'SELECT'){
             null;
          }
       }else{
          selectListObj.options.length = 0;
       }
   }
  } 
 }
}



function divAdd(divId, divText, divAppend) {
	var el = $x(divId)
	if (el) {
		if (divAppend && divAppend == 0) {
			el.innerHTML = divText;
		} else {
			el.innerHTML = el.innerHTML  + '<BR>' + divText;
		}
	}
}

  function zoek_regio(pregio){
  	//Geeft alle invoervelden van een bepaalde regio (adhv het static_id) de checkenter functionaliteit.
  	//Ontwikkeld ivm compatibiliteit get_search_lov
     var table = get_region(pregio);
     var velden = $x(table).getElementsByTagName('input');
     for(var i=0;i<velden.length;i++){
       if (velden[i].type != "hidden"){
	   		 if (document.all) {
           velden[i].onkeydown = function () {checkEnter(event, pregio);};
         }else{
           velden[i].onkeydown = function (e) {checkEnter(E, pregio);};
         }
       }
     } 
  }
  
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){ 
	//Laat toe elementen uit een bepaald document, form, ...(oElm) op te halen adhv hun strTagName ('input', 'table',...)
	//en strAttributeName (id, height, sid, ...) en de waarde voor dit attribuut (= strAttributeValue).
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all	: oElm.getElementsByTagName(strTagName); 
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new	RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)", "i") : null; 
	var oCurrent;
	var oAttribute; 
	for(var i=0; i<arrElements.length; i++){ 
		oCurrent = arrElements[i]; 
		oAttribute = oCurrent.getAttribute &&	oCurrent.getAttribute(strAttributeName); 
		if(typeof oAttribute == "string" &&	oAttribute.length > 0){ 
			if(typeof strAttributeValue == "undefined" ||(oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent); 
			}
		}
	}
	return arrReturnElements; 
}

function getElementsByAttribute2(oElm, strTagName, strAttributeName, strAttributeValue){ 
	//Laat toe elementen uit een bepaald document, form, ...(oElm) op te halen adhv hun strTagName ('input', 'table',...)
	//en strAttributeName (id, height, sid, ...) en de waarde voor dit attribuut (= strAttributeValue).
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all	: oElm.getElementsByTagName(strTagName); 
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new	RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)", "i") : null; 
	var oCurrent;
	var oAttribute; 
	alert(arrElements.length)
	for(var i=0; i<arrElements.length; i++){ 
		oCurrent = arrElements[i]; 
		oAttribute = oCurrent.getAttribute &&	oCurrent.getAttribute(strAttributeName); 
		if(typeof oAttribute == "string" &&	oAttribute.length > 0){ 
			if(typeof strAttributeValue == "undefined" ||(oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent); 
			}
		}
	}
	return arrReturnElements; 
}

function get_region(pregio){
	//Haalt de regio op adhv het static_id (pregio) dat gezet kan worden vanaf apex 3.1
   var table = getElementsByAttribute(document, 'table', 'sid', pregio)[0];
   if (table){
   	 return table;
   }else{
   	 return getElementsByAttribute(document, 'div', 'sid', pregio)[0];
   }
}


function addParam(pvar, ptype, pvalue, pparamTag) {
	//Functie voor het samenstellen van de parameterlijst die wordt doorgegeven aan de ae_report-functie.
	  if (pvalue== '%null%') {
      pvalue = '';
    }else{
    	//gevaarlijke XML-tekens vervangen
    	pvalue = replaceXML(pvalue);
    }
    
    return pvar + '<'+pparamTag+'><tp>' + ptype + '</tp><val>' + pvalue + '</val></'+pparamTag+'>';
}

function addField(pname, pvalue){
  document.reportform.innerHTML = document.reportform.innerHTML + '<input type="hidden" id="'+pname+'" name="'+pname+'" value="'+pvalue+'">';
}

function addFormField(pform, pname, pvalue){
  pform.innerHTML = pform.innerHTML + '<input type="hidden" id="'+pname+'" name="'+pname+'" value="'+pvalue+'">';
}

function checksum(ptekst) { 
	var checksum;
	
    var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=isb_xml',page(),session());
	getList.add('P0_APP_PROC', 'GET_CHECKSUM');
	getList.add('TEMP_CHECKSUM_TEKST', ptekst);
	getResult = getList.get('XML');
  
	if(getResult) {
		if (getResult.getElementsByTagName('FOUT').length > 0) {
			alert($xml(getResult, 'FOUT'));
			checksum = '';
		}else {
			checksum = $xml(getResult, 'CHECKSUM');
		}
	} 
	return checksum;
}

function get_checksum(ptekst) { 
	 var checksum;
	 var tmp;
   var getList = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_checksum',page(),session());
//alert('1' + ptekst);
//   tmp = ptekst.replace(/</gi,'a').replace(/>/gi,'a').replace(/ /gi,'a').replace(/%20/gi,'a');
     tmp = ptekst.replace(/</gi,'a').replace(/>/gi,'a');
   getList.add('TEMP_CHECKSUM_TEKST', tmp);
//alert('2' + tmp);

  getResult = getList.get();
//alert('3' + getResult);
  if(getResult) {
    if (getResult.substr(0,4) == 'Fout') {
      alert(getResult) ;
      checksum = getResult;
    }else {
      checksum = getResult;
   }
  } 
  return checksum;
}

function arrayIndexOf(arr, el, startidx) {
		if (typeof startidx == 'undefined') startidx = 0;
		for (var i = startidx; i < arr.length; i++) {
			if (el === arr[i]) return i;
		}
		return -1;
}

function writeBarNot0(val) {
	if (val == '0') {
	  document.write('-');
	} else {
	  document.write(val);
	}
}

function writeBarNot0Score(val,stijl) {
	if (val == '0') {
	  document.write('-');
	} else {
	  document.write('<div class="'+stijl+'">'+val+'</div>');
	}
}

function refresh_regio(pRegio){  <!-- algemene PPR-functie -->
	//pRegio is de static_id van de te refreshen regio. Region-template met static_id-attibuut en htmldb-tags vereist (zie oa TIB)
	var aregio = get_region(pRegio).id;
	//alert(aregio)
	
  var getList = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=dummy_proces', page(),session());
  for (var i=1; i < arguments.length; i+=2){
		getList.add(arguments[i], arguments[i+1]);
		//alert(arguments[i] + ' - ' + arguments[i+1]);
	}
  getList.get();

  html_PPR_Report_Page(null, aregio,'f?p='+App_Id()+':'+page()+':'+session()+':pg_R_' + aregio + ':NO:RP');
}

function refresh_regio2(pRegio){
	//DEBUGGING
	//pRegio is de static_id van de te refreshen regio. Region-template met static_id-attibuut en htmldb-tags vereist (zie oa TIB)
	var aregio = get_region(pRegio).id;
//	alert(aregio)
	
  var getList = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=dummy_proces', page(),session());
  for (var i=1; i < arguments.length; i+=2){
		getList.add(arguments[i], arguments[i+1]);
		alert(arguments[i] + ' - ' + arguments[i+1]);
		
	}
//	getList.clear(page());
  getList.get();

  html_PPR_Report_Page(null, aregio,'f?p='+App_Id()+':'+page()+':'+session()+':pg_R_' + aregio + ':NO:RP');
}

//It will simply return 999 if the browser is non-IE
var Browser = {
  Version: function() {
    var version = 999; // we assume a sane browser
    if (navigator.appVersion.indexOf("MSIE") != -1)
      // bah, IE again, lets downgrade version number
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}

function checked_old(pEl){
  //LR, 07/06/2011, onderstaande check werkt niet meer voor ie9
  //if(document.all)  {
  if(Browser.Version() < 9)  {
    return $x(pEl).firstChild.checked;
  } else {
    return $x(pEl).childNodes[1].checked;
  }
}

function checked(pEl){
  //LR, 07/06/2011, onderstaande check werkt niet meer voor ie9
  //if(document.all)  {
  if(Browser.Version() < 9)  {
    return $x(pEl).firstChild.checked;
  } else {
  
//BDLR, 14/06/2011 we controleren of de node effectief een element is. 
//		Een "empty text node" is bijvoorbeeld geen correct element en dit kunnen we dan skippen
	tmpNode = $x(pEl).childNodes[0];
	while (tmpNode.nodeType!=1)
	{
		tmpNode=tmpNode.nextSibling;
	}
    return tmpNode.checked;
  }
}

function set_checked(pEl, pvalue){
  //LR, 07/06/2011, onderstaande check werkt niet meer voor ie9
  //if(document.all)  {
  if(Browser.Version() < 9)  {
    $x(pEl).firstChild.checked = pvalue;
  } else {
//BDLR, 14/06/2011 we controleren of de node effectief een element is. 
//		Een "empty text node" is bijvoorbeeld geen correct element en dit kunnen we dan skippen
//    $x(pEl).childNodes[1].checked = pvalue;
	tmpNode = $x(pEl).childNodes[0];
	while (tmpNode.nodeType!=1)
	{
		tmpNode=tmpNode.nextSibling;
	}

    tmpNode.checked = pvalue;

  }
}

function checked2(pEl){
  //LR, 07/06/2011, onderstaande check werkt niet meer voor ie9
  //if(document.all)  {
  if(Browser.Version() < 9)  {
  	if ($x(pEl).firstChild.checked) {
    	return 1;
    } else {
    	return 0;
    }
  } else {
//BDLR, 14/06/2011 we controleren of de node effectief een element is. 
//		Een "empty text node" is bijvoorbeeld geen correct element en dit kunnen we dan skippen
	tmpNode = $x(pEl).childNodes[0];
	while (tmpNode.nodeType!=1)
	{
		tmpNode=tmpNode.nextSibling;
	}

    if (tmpNode.checked) {
    	return 1;
    } else {
    	return 0;
    }
  }
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(fieldsetObj, newValue) {
	if(!fieldsetObj)
		return;
	var radioObj = fieldsetObj.getElementsByTagName('input');
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function $xml(pXmlObject, pTagname, pcol){
	if (!pcol){
		pcol = 0;
	}
	
	if(document.all)  {
    return pXmlObject.getElementsByTagName(pTagname)[pcol].text;
  } else {
    return pXmlObject.getElementsByTagName(pTagname)[pcol].textContent;
  }
}

function $xml2(pXmlObject, pTagname){
	if (pXmlObject.getElementsByTagName(pTagname).length > 0) {
		if(document.all)  {
	    return pXmlObject.getElementsByTagName(pTagname)[0].text;
	  } else {
	    return pXmlObject.getElementsByTagName(pTagname)[0].textContent;
	  }
	} else {
		return '';
	}
}


function checkAll(field) {
	if (!field.length) {
			field.checked = true ;		
	} else {
		for (i = 0; i < field.length; i++) {
			field[i].checked = true ;
		}
	}
}

function uncheckAll(field) {
	if (!field.length) {
			field.checked = false ;
	} else {
		for (i = 0; i < field.length; i++) {
			field[i].checked = false ;
		}
	}
}

function debug() {
//This function will alert the ID's and their values of all input elements
	var regexpr=new RegExp("^(P"+page()+")|(P0)","i") ; // This will validate all strings that begin with P0 or current page, i indicaties case insesitive
	var inputs = document.getElementsByTagName('input'); 
	var strLog = '';
	for(var k=0;k<inputs.length;k++) { 
		var input = inputs[k];
		if (input.id.search(regexpr) != -1) {
			if (input.id == '') {
				strLog = strLog + input.name +'('+input.type+') = ' + input.value + '\n';
			} else {
				strLog = strLog + input.id +'('+input.type+') = ' + input.value + '\n';
			}
		}
	} 
	alert(strLog);
}

function debug() {
//This function will alert the ID's and their values of all input elements
	var regexpr=new RegExp("^(P"+page()+")|(P0)","i") ; // This will validate all strings that begin with P0 or current page, i indicaties case insesitive
	var inputs = document.getElementsByTagName('input'); 
	var strLog = '';
	for(var k=0;k<inputs.length;k++) { 
		var input = inputs[k];
		if (input.id.search(regexpr) != -1) {
			if (input.id == '') {
				strLog = strLog + input.name +'('+input.type+') = ' + input.value + '\n';
			} else {
				strLog = strLog + input.id +'('+input.type+') = ' + input.value + '\n';
			}
		}
	} 
	alert(strLog);
}

/*
function filter_checkboxes(pElFilter, pElValueFilter) {
	//pEl ==> String for the sort of element eg: INPUT, LABEL, ...
//This function will alert the ID's and their values of all input elements
	var regexpr=new RegExp("^("+pElFilter+")","i") ; 
	var inputs = document.getElementsByTagName('input'); 
	var strLog = '';
	for(var k=0;k<inputs.length;k++) { 
		var input = inputs[k];
		if (input.id.search(regexpr) != -1) {
			strLog = strLog + input.id +'('+input.type+') = ' + input.value + '\n';
		}
	} 
	alert(strLog);
}
*/

function win_popup(p_url) {
  w = open(p_url,"_blank","dependent=yes,location=no,Scrollbars=1,resizable=1,width=860,height=400");

  if (w.opener == null)
    w.opener = self;

  w.focus();

}

function win_popup2(p_url) {
	alert(p_url)
  w = open(p_url,"_blank","dependent=yes,location=yes,Scrollbars=1,resizable=1,width=860,height=400");

  if (w.opener == null)
    w.opener = self;

  w.focus();

}

function checkbox_values(pList){
  var c_value = "";
  if (eval('document.wwv_flow.'+pList+'.length')){    <!--Indien slechts 1 element: length is undefined.-->
    for (var i=0; i < eval('document.wwv_flow.'+pList+'.length'); i++){
      if (eval('document.wwv_flow.'+pList+'['+i+'].checked')){
        c_value = c_value + ','+ eval('document.wwv_flow.'+pList+'['+i+'].value');
      }
    }
    c_value = c_value.substring(1,c_value.length);
  }else{
    if(document.wwv_flow.f01.checked){
        c_value = eval('document.wwv_flow.'+pList+'.value');
    }
  }
  return(c_value);
}

function $url(purl){
	 var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=prepare_url',page());
   get.add('TEMP_URL', purl);
   gReturn = get.get('XML');
   
   if(gReturn){
     if (gReturn.getElementsByTagName("FOUT").length > 0) {
       alert($xml(gReturn, "FOUT"));
     }else{
//     alert($xml(gReturn, "DEBUG") + ' - ' + $xml(gReturn, "COMMENT"));
       if (gReturn.text != ""){
         return decodeURI($xml(gReturn, "URL"));
       }else{
       	 return purl;
       }
     }
   }else{
   	 return purl;
   }
   get = null;
}

function getCursorPosition(e) {
  var cursor = {x:0, y:0};
  e = e || window.event;

  if(e){
    if (e.pageX || e.pageY) {
      cursor.x = e.pageX;
      cursor.y = e.pageY;
    }else{
      var de = document.documentElement;
      var b = document.body;
      cursor.x = e.clientX + (de.scrollLeft||b.scrollLeft)-(de.clientLeft|| 0);
      cursor.y = e.clientY + (de.scrollTop||b.scrollTop)-(de.clientTop || 0);
    }
  }
  return cursor;
}


/* Pagina onbewerkbaar maken bijvoorbeeld bij het aanroepen van een popUp 
Volgende divs moet je nog in je pagina(template) zetten:
	<div id="modalState" style="display:none; position:absolute; width:100%; height:100%; top:0px; left:0px;">
	  <div class="modalBackground"></div>
	</div>
	
En deze klasse (eventueel, moest ze nog niet op het hoogste niveau bestaan) in je css-file:
	.modalBackground {
    filter: Alpha(Opacity=40); -moz-opacity:0.4; opacity: 0.4;
    width: 100%; height: 100%; background-color: #999999;
    position: fixed;
    z-index: 500;
    top: 0px; left: 0px;
  }
*/
var hOverflow;

function set_modalState(pState){
	if(pState == 1){
		hOverflow = document.body.style.overflow;
	  $x('modalState').style.display = "block";
    $x('modalState').style.top = parent.document.body.scrollTop;
    document.body.style.overflow = "hidden";
  }else{
  	$x('modalState').style.display = "none";
    document.body.style.overflow = hOverflow;
  }
}

/*Om het popupWindow modulair (niet te verlaten) te maken:
Volgende variabelen in de pagina(template)
	var active_element;
	var bIsMSIE;
Functie set_modalPopup() oproepen in de onLoad van de popup
*/
function set_modalPopup() {
  if (navigator.appName == "Microsoft Internet Explorer") {
    active_element = document.activeElement;
    document.onfocusout = blurWindow;
    bIsMSIE = true;
  }else{ 
    window.onblur = blurWindow;
  }
}

function blurWindow() {
  if (window.opener != null) {
    if(bIsMSIE && (active_element != document.activeElement)) {
      active_element = document.activeElement;
    }else{
      document.onfocusout = '';
      window.onblur = '';
     // remove the event to stop an infinite loop!
      window.focus();
      window.onblur = set_modalPopup;
    }
  }
}
/**************************************************************************/

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function vrn(pId) {
	pWaarde = $v(pId);
	if (pWaarde == '%null%'){
		return '';
	}else{
		return pWaarde;
	}

}

function format_uur(pveld){
//Uurveld naar analogie met forms: Mogelijk om enkel het uur in te geven, uur zonder voorloopnul, ...
//Indien geldig is het weergegeven formaat HH24:MI, zoniet komt de focus weer op het veld.
  var strString = $v(pveld);
  var strValidChars = "0123456789:";
  var strSeparator = ":";
  var strChar;
  var blnResult = true;
  var intSeparatorPos;
  var huur;
  var hmin;

  if (strString.length > 5){
    alert('Ongeldige uurnotatie, te veel karakters. \nL\'heure donnée est incorrecte, trop de caractères.');
    $x(pveld).focus();
    $x(pveld).select();
    return false;
  }
  if (strString.length == 0){
    alert('Gelieve een tijdstip op te geven. \nVeuillez remplir l\'heure.');
    $x(pveld).focus();
    $x(pveld).select();
    return false;
  }

  //  test strString consists of valid characters listed above
  for (i = 0; i < strString.length && blnResult == true; i++){
    strChar = strString.charAt(i);
    if (strValidChars.indexOf(strChar) == -1){
      alert('Ongeldig teken / Caractère invalide: "' + strChar + '"');
      $x(pveld).focus();
      $x(pveld).select();
      return false;
    }
  }

  intSeparatorPos = strString.indexOf(strSeparator);
  if (intSeparatorPos == -1){
    huur = lpad(strString.substr(0, 2), 2);
    hmin = nvl(strString.substr(2, 2), '00');
  }else{
    huur = lpad(strString.substr(0, intSeparatorPos), 2);
    hmin = nvl(strString.substr(Number(intSeparatorPos) + 1, 2), '00');
  }

  if (huur.length != 2 || Number(huur) > 23){
    alert('Ongeldig uur / l\'heure donnée est invalide: "' + huur + '"');
    $x(pveld).focus();
    $x(pveld).select();
    return false;
  }
  if (hmin.length != 2 || Number(hmin) > 59){
    alert('Ongeldig aantal minuten / les minutes donnée sont invalides: "' + hmin + '"');
    $x(pveld).focus();
    $x(pveld).select();
    return false;
  }

  $x(pveld).value = huur + strSeparator + hmin;
}

function is_chrome(){
  return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
}

function toonPopup(e, pto_cursor, ppopupRegion, poffset_el, poffX, poffY){
/*
	Deze function zal een popupwindow tonen.
	
	!!! Initialisatie van de popup zelf moet in de pagina zelf nog gedaan worden.
		Alsook het includen van de popup javascript files:
			<!-- Files for popup -->
			<script src="/i/javascript/popup/PopupWindow.js" type="text/javascript"></script>

		vb initialisatie:
			var filterGebruikerPopupRegion = new PopupWindow("Hier komt de SID van de popupregio");
			filterGebruikerPopupRegion.autoHide();
	
	******
	Params
	******
	
	e => Event
	pto_cursor => positie tov cursor 1 of 0
	ppopupRegion => PopupWindow object
	poffset_el => id van het offset_element
	poffX => Offset X correctie + of - getal
	poffY => Offset Y correctie + of - getal
	
*/

    if (pto_cursor){    /* positie tov cursor */
        var offset = getAnchorPosition(poffset_el);
        var pointer = getCursorPosition(e);

        ppopupRegion.offsetX = pointer.x - offset.x + poffX;
        ppopupRegion.offsetY = pointer.y - offset.y + poffY;
    }else{              /* postie tov item */
        ppopupRegion.offsetX = poffX;
        ppopupRegion.offsetY = poffY;
    }
    ppopupRegion.showPopup(poffset_el);
}

function getSelected(plijst) {
/*Geselecteerde waarden van een multiSelectList ophalen en teruggeven in tabelvorm die dan als volgt kan worden aangesproken.
   var selected = getSelected($x('P'+page()+'_STATUS'));
   for (var i = 0; i < selected.length; i++) { 
     hstatus = hstatus + '|' + selected[i].value; 
   }
*/

	var selected = new Array();
	var index = 0;
	for (var intLoop=0; intLoop < plijst.length; intLoop++) {
		if (plijst[intLoop].selected) {
			index = selected.length;
			selected[index] = new Object;
			selected[index].value = plijst[intLoop].value;
			selected[index].index = intLoop;
		}
	}
	return selected;
}

function prepared_win_popup(p_url, pwidth, pheight) {
	p_url = $url(p_url);
	if (!pwidth){
		pwidth = 860;
	}
	if (!pheight){
		pheight = 410;
	}
  w = open(p_url,"_blank","dependent=yes,location=no,Scrollbars=1,resizable=1,width="+pwidth+",height="+pheight);

  if (w.opener == null)
    w.opener = self;

  w.focus();
}
