// global variables
var editDebiteurenWizard = null;
var editInterneContactpersonenWizard = null;
var editExterneContactpersonenWizard = null;
var editAdressenWizard = null;
var editGebruikersWizard = null;
var editAfsprakenWizard = null;
var editBidataWizard = null;
var editContractenWizard = null;
var editTakenWizard = null;
var editBezoekrapportenWizard = null;
var editIncidentenWizard = null;
var editAccountsWizard = null;
var globalDebXHRDataSource = null;
var gebruikerXHRDataSource = null;
var globalIncDatasource = null;
var globalIncDatatable = null;
var queryappend = '';
var biDataGroepnr = null;
var loadingDebiteur = false;
var crmTabs = null;
var biTabs = null;
var printOfEmailDialog = null;
var showAccountPassword = null;
var notitie_counter=0;
var dialogueClosed = true;
function initCrmCached() {
	// If already loaded, don't init again.
	if (!editDebiteurenWizard) {
		initCrm();
	}
}

function onPageLoad_intranet_crm_crm(argObj){
	initCrmCached();
	var debnr = getParameter('debnr',currentState);
	var type = getParameter('type',currentState);	
	setDebiteur(debnr,type);
}

// common
function feedback(text, duration) {
	var fb = document.getElementById("bncfeedback");
	fb.innerHTML = text;
	fb.style.display="block";
	fb.style.top=10+document.body.scrollTop+"px";
	var millisecs = 2000;
	if(duration != null) {
		millisecs = duration;
	}
	setTimeout(hideBncFeedback,millisecs);	
}
function hideBncFeedback() {
	document.getElementById("bncfeedback").style.display="none";
}
function onFailure(o) {
	YAHOO.util.Connect.resetFormState();
	if(o.status==-1){
		alert("Er kan geen verbinding gemaakt worden met de server. Ververs de pagina en probeer het opnieuw.");
	}else{
		alert(o.statusText);
	}
	loadingDebiteur = false;
}
function myescape(text) {
	text=escape(text);
	// escape doet niks met +
	while(text.indexOf('+')!=-1) {
		text = text.replace('+','%2B');
	}
	return text;
}
// -- debiteuren
function onLoadDebiteurEdit() {
	if(document.getElementById("edit_gradondatum")!=null) {
		Calendar.setup({
	        inputField : "edit_gradondatum",
	        ifFormat : "%d-%m-%Y",
	        showsTime : false,
	        timeFormat : "24",
	        mondayFirst : false,
	        weekNumbers: true
	        });
	}
}
/**
 * selecteer een verkoper
 * @param {Object} vknr: 1 -  hoofdverkoper, 2 - subverkoper
 * @param {Object} teamnr
 * @param {Object} idx:  de index van de te selecteren verkoper; de checkbox value is de userid
 */
function setVK(vknr, teamnr, idx) {
	var selectorid = "check_vk"+vknr+"_"+teamnr+"_"+idx;
	var selector = document.getElementById(selectorid);
	if(selector!=null) {
		if(!selector.checked) {
			document.getElementById("edit_vk"+vknr+"_id").value = "";	
		} else {
			clearVKTeam(vknr, teamnr, selectorid);			
			document.getElementById("edit_vk"+vknr+"_id").value = selector.value;	
		}	
	}
}
function clearVKTeam(vknr, teamnr, selectorid) {
	var aselectors = YAHOO.util.Selector.query(".vk"+vknr+"class_"+teamnr);
	for(var i=0; i<aselectors.length; i++) {
		if(aselectors[i].id != selectorid) {
			aselectors[i].checked = false;
		}
	}
}
function validateDebiteur(curPanel) {
	var el_btwnr = document.getElementById("edit_btwnummer");
	if(el_btwnr!=null) {
		el_btwnr.value = el_btwnr.value.toUpperCase();
	}
	var isProspect = (document.getElementById("edit_prospectcheckbox")!=null &&
				document.getElementById("edit_prospectcheckbox").checked);
	var requestActivation = (document.getElementById("edit_request_activation")!=null &&
				document.getElementById("edit_request_activation").checked);
	if(curPanel==null||curPanel==1) {
		if (document.getElementById("edit_naam").value == "") {
			alert("Naam moet worden ingevuld");
			return false;
		}
		if (document.getElementById("edit_adres").value == "") {
			alert("Adres moet worden ingevuld");
			return false;
		}
		if (document.getElementById("edit_postcode").value == "") {
			alert("Postcode moet worden ingevuld");
			return false;
		}
		if (document.getElementById("edit_plaats").value == "") {
			alert("Plaats moet worden ingevuld");
			return false;
		}
		if (document.getElementById("edit_telefoon").value == "") {
			alert("Telefoon moet worden ingevuld");
			return false;
		}
		if (document.getElementById("edit_email").value == "") {
			alert("Email moet worden ingevuld");
			return false;
		}
		var el_webcheckbox = document.getElementById("webcheckbox");
		if (el_webcheckbox!=null && el_webcheckbox.checked) {
			if(document.getElementById("gebruikersnaam").value == "") {
				alert("Gebruikersnaam moet worden ingevuld");
				return false;
			}
			if(document.getElementById("webtav").value == "") {
				alert("T.a.v. moet worden ingevuld");
				return false;
			}
		}
	}
	if(!isProspect||requestActivation) {
		var bVerkopersToewijzen = (document.getElementById("edit_verkoperid")!=null);
		if(bVerkopersToewijzen&&(curPanel==null||curPanel==2)) {
			if((document.getElementById("edit_verkoperid").selectedIndex!=0&&document.getElementById("edit_verkoperid").selectedIndex==document.getElementById("edit_vk1_id").selectedIndex) ||
				(document.getElementById("edit_verkoperid").selectedIndex!=0&&document.getElementById("edit_verkoperid").selectedIndex==document.getElementById("edit_vk2_id").selectedIndex) ||
				(document.getElementById("edit_vk1_id").selectedIndex!=0&&document.getElementById("edit_vk1_id").selectedIndex==document.getElementById("edit_vk2_id").selectedIndex)) {
				alert("Er mogen geen verkopers dubbel worden ingesteld");
				return false;	
			}
		}
		if(curPanel==null||(bVerkopersToewijzen&&curPanel==3)||(!bVerkopersToewijzen&&curPanel==2)) {
			if(document.getElementById("edit_prijslijstcode").value=="") {
				alert("Prijslijstcode moet worden ingesteld");
				return false;
			}
			if(document.getElementById("edit_betalingsconditie").value=="") {
				alert("Betalingsconditie moet worden ingesteld");
				return false;
			}
			if(document.getElementById("edit_factuurcode").value=="") {
				alert("Factuur moet worden ingesteld");
				return false;
			}
			if(document.getElementById("edit_bezorgkosten").value=="") {
				alert("Bezorgkosten moet worden ingevuld");
				return false;
			}
			if(document.getElementById("edit_src_code").value=="") {
				alert("Zoekcode moet worden ingevuld");
				return false;
			}
		}
		if(curPanel==null||(bVerkopersToewijzen&&curPanel==4)||(!bVerkopersToewijzen&&curPanel==3)) {
			if (document.getElementById("edit_kredietlimiet")!=null&&document.getElementById("edit_kredietlimiet").value == ""&&document.getElementById("websiteoption").style.display!="none") {
				alert("Kredietlimiet moet worden ingevuld");
				return false;
			}
		}
	}
	return true;
};
function checkAdres() {
	var postcode = document.getElementById("edit_postcode").value.toUpperCase().replace(' ','');
	var aadres = document.getElementById("edit_adres").value.split(" ");
	var now = new Date();
	if(aadres.length!=0) {
		var huisnummer = aadres[aadres.length-1].toUpperCase();
//		var callback =
//		{
//			success:onLoadCheckAdres,
//			failure:onFailure
//		}
		var query = "select debiteuren.nr, debiteuren.naam, debiteuren.debcode, debiteuren.adres, debiteuren.postcode from debiteuren where UCASE(REPLACE(postcode,' ',''))='"+postcode+"' and UCASE(adres) LIKE '% "+huisnummer+"' and nr!="+document.getElementById("edit_debiteurid").value+" order by naam";
//		YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.applicatie.common.BWAppQuery&json=1&menuid="+menuid+"&connection=bncweb&fn=execute&query="+myescape(query)+"&noCache="+now.getTime(), callback, "");
		bncAjaxConnection({
	 		url:gateway+"?appclass=nl.bnc.bncweb.system.applicatie.common.BWAppQuery&json=1&menuid="+menuid+"&connection=bncweb&fn=execute&query="+myescape(query),
	 		method:'GET',
	 		success:onLoadCheckAdres,
			failure:onFailure
	 	});
	}
	/*
	 * check cebuco
	 */
//	var callback =
//	{
//	  success: onLoadCebuco,
//	  failure: onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Cebuco&zoek="+postcode.substring(0,4)+"&fields=cebuco.postcode&order=cebuco.postcode&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Cebuco&zoek="+postcode.substring(0,4)+"&fields=cebuco.postcode&order=cebuco.postcode&json=1&translatejson=1&menuid="+menuid,
 		method:'GET',
 		 success: onLoadCebuco,
 		  failure: onFailure
 	});
}
function onLoadCheckAdres(o) {
	var obj=eval("("+o.responseText+")");
	if(obj["xml.rows"]!=null&&obj["xml.rows"].length>0) {
		var melding = "Deze postcode + huisnummer komen al voor bij de volgende debiteur:\n\n";
		for(var i=0; i<obj["xml.rows"].length; i++) {
			melding += (obj["xml.rows"][i]["xml.row.debcode"]+" - "+obj["xml.rows"][i]["xml.row.naam"]+"\n");
		}
		alert(melding);
	}
}
function onLoadCebuco(o) {
	var obj=eval("("+o.responseText+")");
	if(obj["zoekresultaten"]!=null&&obj["zoekresultaten"].length>0) {
		var cebucocode = obj["zoekresultaten"][0].xml_cebuco_cebucocode;
		document.getElementById("edit_cebucocode").value = cebucocode;
	} else {
		document.getElementById("edit_cebucocode").value = "";
	}
}
function selectDebiteurCRM(debnr,type) {
	loadingDebiteur = true;
	
	var now = new Date();
	document.getElementById("gebruikersframe").innerHTML = "";
	document.getElementById("afsprakenframe").innerHTML = "";
	document.getElementById("bidataframe").innerHTML = "";
	document.getElementById("communicatieframe").innerHTML = "";
	document.getElementById("incidentenframe").innerHTML = "";
	var now = new Date();
	var callback =
	{
		success:onLoadContactgegevens,
		failure:onFailure,
		timeout:180000
	}
	if(type==0) {
		YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens?HttpProxy_fn=select&HttpProxy_debnr="+debnr+"&noCache="+now.getTime(), callback, "");
	} else {
		YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens?HttpProxy_fn=selectdebcode&HttpProxy_debcode="+debnr+"&noCache="+now.getTime(), callback, "");
	}
}
function selectDebiteur(debnr,type) {
	document.location.href="#location="+escape("/intranet/crm/crm?debnr="+debnr+"&type="+type);
}
	
function setDebiteur(debnr,type) {
	if(crmTabs==null) {
		crmTabs = new bncTabs("crm");
		crmTabs.addTabId("contactgegevens");
		crmTabs.addTabId("gebruikers");
		crmTabs.addTabId("afspraken");
		crmTabs.addTabId("bidata");
		crmTabs.addTabId("communicatie");
		crmTabs.addTabId("incidenten");
		if(document.getElementById("tabaccounts")!=null) {
			crmTabs.addTabId("accounts");
		}
		crmTabs.initTabs();
	}
	initAutocompletes("crmdeb","crmgebruiker","crmzoekcode", selectDebiteurCRM);

	if(debnr!=null) {
		document.getElementById("tabcontactgegevens").onclick();
		loadingDebiteur = true;
		
		var now = new Date();
		document.getElementById("gebruikersframe").innerHTML = "";
		document.getElementById("afsprakenframe").innerHTML = "";
		document.getElementById("bidataframe").innerHTML = "";
		document.getElementById("communicatieframe").innerHTML = "";
		document.getElementById("incidentenframe").innerHTML = "";
		var now = new Date();
		var callback =
		{
			success:onLoadContactgegevens,
			failure:onFailure,
			timeout:180000
		}
		if(type==0) {
			YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens?HttpProxy_fn=select&HttpProxy_debnr="+debnr+"&noCache="+now.getTime(), callback, "");
		} else {
			YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens?HttpProxy_fn=selectdebcode&HttpProxy_debcode="+debnr+"&noCache="+now.getTime(), callback, "");
		}
	}
}
function loadContactgegevens() {
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadContactgegevens,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens?noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:"/wobjects/crm/contactgegevens",
 		method:'GET',
 		success:onLoadContactgegevens,
		failure:onFailure
 	});
}
function onLoadContactgegevens(o) {
	document.getElementById("contactgegevensframe").innerHTML = o.responseText;
	loadingDebiteur = false;
}
function onLoadIncidentenEmail(o) {
	var obj=eval("("+o.responseText+")");
	if(obj["xml.error"] != null) {
		alert(obj["xml.error"]);
	} else {
		alert("E-mail verstuurd naar " + document.getElementById("inc_emailadressen").value);
		printOfEmailDialog.hide();
		dialogueClosed = true;
	}
}
function loadContactgegevensEdit(nieuw) {
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadDialog,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contactgegevens-edit?HttpProxy_nieuw="+nieuw+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:"/wobjects/crm/contactgegevens-edit?HttpProxy_nieuw="+nieuw,
 		method:'GET',
 		success:onLoadDialog,
		failure:onFailure
 	});
}
// -- contactpersonen
function validateExternContactpersoon(curPanel) {
	if(document.getElementById("ecp_gebruikernr").value=="x") {
		if(document.getElementById("ecp_achternaam").value=="") {
			alert("Achternaam moet worden ingevuld");
			return false;
		}
		if(document.getElementById("ecp_telefoon").value=="") {
			alert("Telefoon moet worden ingevuld");
			return false;
		}
		if(document.getElementById("ecp_email").value=="") {
			alert("Email moet worden ingevuld");
			return false;
		}
	}
	return true;
}
// -- adressen
function validateAdres(curPanel) {
	if(document.getElementById("ae_adres").value == "") {
		alert("Straat + nr worden ingevuld");
		return false;
	}
	if(document.getElementById("ae_postcode").value == "") {
		alert("Postcode moet worden ingevuld");
		return false;
	}
	if(document.getElementById("ae_plaats").value == "") {
		alert("Plaats moet worden ingevuld");
		return false;
	}
	return true;
}
function calcAfstand(target) {
	var el_postcodechanged = document.getElementById("ae_postcodechanged");
	if (el_postcodechanged.value=="1") {
		el_postcodechanged.value = "";
//		var now = new Date();
//		var callback =
//		{
//			success:onLoadCalcAfstand,
//			failure:onFailure
//		}
//		YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.utils.BWAppDirections&json=1&menuid="+menuid+"&from=9723JD&to="+target+"&noCache="+now.getTime(), callback, "");
		bncAjaxConnection({
	 		url:gateway+"?appclass=nl.bnc.bncweb.system.utils.BWAppDirections&json=1&menuid="+menuid+"&from=9723JD&to="+target,
	 		method:'GET',
	 		success:onLoadCalcAfstand,
			failure:onFailure
	 	});
	}
}
function onLoadCalcAfstand(o) {
	var obj=eval("("+o.responseText+")");
	if(obj["xml.error"] != null||obj["xml.afstand"] == '0') {
		document.getElementById("ae_afstand").value = "0";
		//document.getElementById("ae_reistijd").value = "0";
		//alert(obj["xml.error"]);
		//GRIP - when the distance can not be determined then it can be entered manually
		document.getElementById("ae_afstand").readOnly=false;
		document.getElementById("ae_reistijd").readOnly=false;
	} else {
		document.getElementById("ae_afstand").value = obj["xml.afstand"];
		//document.getElementById("ae_reistijd").value = obj["xml.reistijd"];
	}
}
// -- gebruikers
function loadGebruikers() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(document.getElementById("deb_code").innerHTML=="") {
		alert("Bij prospects en niet-actieve debiteuren kunnen geen gebruikers worden aangemaakt");
		return false;	
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadGebruikers,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/gebruikers?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:"/wobjects/crm/gebruikers?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value,
 		method:'GET',
 		success:onLoadGebruikers,
		failure:onFailure
 	});
	return true;
}
function onLoadGebruikers(o) {
	document.getElementById("gebruikersframe").innerHTML = o.responseText;
}
function onLoadGebruikersEdit() {
	/*
	 * de debiteuren autocomplete definieren
	 */
	if(document.getElementById("gebruikersDebInput")!=null) {
		var debSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_debcode"];
		var debXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
		// disable the cache 
		debXHRDataSource.maxCacheEntries = 0;	
	    debXHRDataSource.connXhrMode = "queueRequests";	
		debXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		debXHRDataSource.scriptQueryParam = "zoek";
		debXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=debiteuren.debcode,debiteuren.src_code,debiteuren.naam,debiteuren.adres,debiteuren.postcode,debiteuren.plaats,debiteuren.email,debiteuren.telefoon,adressen.naam&distinct=debiteuren.nr,debiteuren.debcode,debiteuren.naam,debiteuren.src_code,debiteuren.plaats&joinclause=left join bncweb.adressen on adressen.debcode=debiteuren.debcode&filter="+myescape("debiteuren.actief=1")+"&order=debiteuren.naam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var debAutoCompCRM = new YAHOO.widget.AutoComplete("gebruikersDebInput","gebruikersDebContainer", debXHRDataSource);
		debAutoCompCRM.minQueryLength = 2;
		debAutoCompCRM.maxResultsDisplayed = 25;
		debAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var naam = aResultItem[0];
			var debcode = aResultItem[1];
			var aMarkup = ["<div>",
				debcode,
				": <b>",
				naam,
				"</b>",
				"</div>"];
			return (aMarkup.join(""));
		};
		var debSelectHandler = function(sType, aArgs) {
			autoSelectDebiteur(aArgs[2][1],aArgs[2][0]);
		};
		debAutoCompCRM.itemSelectEvent.subscribe(debSelectHandler);
	}
	/*
	 * nu de crediteuren autocomplete definieren als we rechten hebben en creInput bestaat
	 */
	if(document.getElementById("creInput")!=null) {
		var creSchema = ["zoekresultaten", "xml_contact_acct_name", "xml_contact_con_uniek"];
		var creXHRDataSource = new YAHOO.widget.DS_XHR(gateway, creSchema);
		// disable the cache 
		creXHRDataSource.maxCacheEntries = 0;	
	    creXHRDataSource.connXhrMode = "queueRequests";	
		creXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		creXHRDataSource.scriptQueryParam = "zoek";
		creXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.foxpro.accview.Contact&fields=acct_name,con_uniek,sub_nr&filter="+myescape("cred_show=.T. and rec_blk=.F.")+"&order=acct_name&limit=25&json=1&translatejson=1&menuid="+menuid;
		var creAutoComp = new YAHOO.widget.AutoComplete("creInput","creContainer", creXHRDataSource);
		creAutoComp.minQueryLength = 2;
		creAutoComp.maxResultsDisplayed = 25;
		creAutoComp.formatResult = function(aResultItem, sQuery) {
			var naam = aResultItem[0];
			var crecode = aResultItem[1];
			var aMarkup = ["<div>",
				crecode,
				": <b>",
				naam,
				"</b>",
				"</div>"];
			return (aMarkup.join(""));
		};
		var creSelectHandler = function(sType, aArgs) {
			autoSelectCrediteur(aArgs[2][1],aArgs[2][0]);
		};
		creAutoComp.itemSelectEvent.subscribe(creSelectHandler);
	}
}
function autoSelectDebiteur(debcode,debnaam) {
	document.getElementById("gebruikersDebcode").value = debcode;
	document.getElementById("gebruikersDebnaam").value = debnaam;
	document.getElementById("gebruikersShowdebnaam").innerHTML = debnaam;
	document.getElementById("gebruikersDebInput").value = "";
	document.getElementById("gebruikersDebInput").style.display = "none";
}
function autoSelectCrediteur(crecode,crenaam) {
	document.getElementById("crecode").value = crecode;
	document.getElementById("crenaam").value = crenaam;
	document.getElementById("showcrenaam").innerHTML = crenaam;
	document.getElementById("creInput").value = "";
	document.getElementById("creInput").style.display = "none";
}
function validateGebruiker(curPanel) {
	if(document.getElementById("gebruikersDebcode")!=null&&document.getElementById("gebruikersDebcode").value=="") {
		alert("Debiteur moet worden ingevuld");
		return false;
	}
	if(document.getElementById("gebruikersGebruikersnaam").value == "") {
		alert("Gebruikersnaam moet worden ingevuld");
		return false;
	}
	if(document.getElementById("gebruikersAchternaam").value == "") {
		alert("Achternaam moet worden ingevuld");
		return false;
	}
	if(document.getElementById("gebruikersEmail").value == "") {
		alert("Email moet worden ingevuld");
		return false;
	}
	if(document.getElementById("gebruikersTelefoon").value == "") {
		alert("Telefoon moet worden ingevuld");
		return false;
	}
	return true;
}

function getRandomNum(lbound, ubound) {
	return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}

// Password generator.
function getPassword() {
	var numberChars = "0123456789";
	var lowerChars = "abcdefghijklmnopqrstuvwxyz";
	var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
	var charSet;
	charSet += numberChars;
	charSet += lowerChars;
	charSet += upperChars;
	var rc = "";
	for (var idx = 0; idx < 8; ++idx) {
		rc = rc + charSet.charAt(getRandomNum(0, charSet.length));
	}
	return rc;
}

function zetNaam() {
	var voornaam = document.getElementById('gebruikersVoornaam').value+" ";
	var tussenvoegsel = document.getElementById('gebruikersTussenvoegsel').value;
	if(tussenvoegsel !="") {
		tussenvoegsel=tussenvoegsel+" ";
	}
	var achternaam = document.getElementById('gebruikersAchternaam').value;
	var debiteur = " ("+document.getElementById('gebruikersDebiteur').value+")";
	if(debiteur.match("B & C BV Intern gebruik")) {
		debiteur = " (Bossers & Cnossen)";
	}
	document.getElementById('gebruikersFullEmail').value=voornaam+tussenvoegsel+achternaam+debiteur;
	document.getElementById('gebruikersAflevernaam').value=voornaam+tussenvoegsel+achternaam
}

// -- afspraken
function loadAfspraken(o,debnr,targetid) {
	if(!debnr) {
		if(document.getElementById("deb_nr").value=="") {
			alert("Selecteer eerst een debiteur");
			return false;
		}
		debnr = document.getElementById("deb_nr").value;	
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadAfspraken,
//		failure:onFailure,
//		argument:{targetid:targetid}
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/afspraken?HttpProxy_fn=select&HttpProxy_debnr="+debnr+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:"/wobjects/crm/afspraken?HttpProxy_fn=select&HttpProxy_debnr="+debnr,
 		method:'GET',
 		success:onLoadAfspraken,
		failure:onFailure,
		argument:{targetid:targetid}
 	});
	return true;
}
function onLoadAfspraken(o) {
	var targetid = "afsprakenframe";
	if(o.argument.targetid)  {
		targetid = o.argument.targetid;
	}
	document.getElementById(targetid).innerHTML = o.responseText;
}
function validateAfspraak(curPanel) {
	if(document.getElementById("afspraak_omschrijving").value == "") {
		alert("Omschrijving moet worden ingevuld");
		return false;
	}
	if(document.getElementById("afspraak_type").value != "4" && document.getElementById("afspraak_type").value != "5" && document.getElementById("afspraak_tekst").value == "") {
		alert("Tekst moet worden ingevuld");
		return false;
	}
	if(document.getElementById("afspraak_type").value == "2" && document.getElementById("afspraak_sleutel").value == "") {
		alert("Productcode moet worden ingevuld");
		return false;
	}
	if(document.getElementById("afspraak_type").value == "5") {
		if(document.getElementById("afspraak_aantal_kms").value == "") {
			alert("Eerste kilometers moet worden ingevuld");
			return false;
		}
		if(document.getElementById("afspraak_voorrij_tarief").value == "") {
			alert("Voorrij tarief moet worden ingevuld");
			return false;
		}
		if(document.getElementById("afspraak_km_prijs").value == "") {
			alert("Prijs per kilometer moet worden ingevuld");
			return false;
		}
	}
	return true;
}
function onLoadAfspraakEdit() {
	/*
	 * init calendars
	 */
	Calendar.setup({
        inputField : "afspraak_einddatum",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });
	calcAfspraakNiveauTarief();
}	
//GRIP - new fields added to afspraak to set scheme ,maandfacturatie and set the min and max block hours for work and remote hours as well
function selectAfspraakType(typenr) {
	switch(typenr) {
		case "0":
			document.getElementById("afspraak_sleuteltitel").style.display="none";
			document.getElementById("afspraak_sleutelinvoer").style.display="none";
			document.getElementById("afspraak_artikelgroepen").style.display="none";
			document.getElementById("afspraak_productgroepen").style.display="none";
			document.getElementById("afspraak_niveaus").style.display="none";
			document.getElementById("afspraak_teksttitel").style.display="block";
			document.getElementById("afspraak_tekstdiv").style.display="block";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="block";
			document.getElementById("afspraak_toonbijoffertediv").style.display="block";
			document.getElementById("afspraak_kortingtitel").style.display="none";
			document.getElementById("afspraak_kortingdiv").style.display="none";
			document.getElementById("afspraak_minimumtijdtitel").style.display="none";
			document.getElementById("afspraak_minimumtijddiv").style.display="none";
			document.getElementById("afspraak_blokgroottetitel").style.display="none";
			document.getElementById("afspraak_blokgroottediv").style.display="none";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="none";
			document.getElementById("afspraak_schemetitel").style.display="none";
			document.getElementById("afspraak_schemediv").style.display="none";
			document.getElementById("afspraak_maandfacturatietitel").style.display="none";
			document.getElementById("afspraak_maandfacturatiediv").style.display="none";
			break;
		case "1":
			document.getElementById("afspraak_sleutelinvoer").style.display="none";
			document.getElementById("afspraak_sleutel").value=document.getElementById("afspraak_selectartikelgroep").value;
			document.getElementById("afspraak_artikelgroepen").style.display="block";
			document.getElementById("afspraak_sleuteltitel").innerHTML="Artikelgroep:";
			document.getElementById("afspraak_sleuteltitel").style.display="block";
			document.getElementById("afspraak_productgroepen").style.display="none";
			document.getElementById("afspraak_niveaus").style.display="none";
			document.getElementById("afspraak_teksttitel").innerHTML="Tekst:";
			document.getElementById("afspraak_teksttitel").style.display="block";
			document.getElementById("afspraak_tekstdiv").style.display="block";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="block";
			document.getElementById("afspraak_toonbijoffertediv").style.display="block";
			document.getElementById("afspraak_kortingtitel").style.display="none";
			document.getElementById("afspraak_kortingdiv").style.display="none";
			document.getElementById("afspraak_minimumtijdtitel").style.display="none";
			document.getElementById("afspraak_minimumtijddiv").style.display="none";
			document.getElementById("afspraak_blokgroottetitel").style.display="none";
			document.getElementById("afspraak_blokgroottediv").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotetitel").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotediv").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotetitel").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotediv").style.display="none";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="none";
			document.getElementById("afspraak_schemetitel").style.display="none";
			document.getElementById("afspraak_schemediv").style.display="none";
			document.getElementById("afspraak_maandfacturatietitel").style.display="none";
			document.getElementById("afspraak_maandfacturatiediv").style.display="none";
			break;
		case "2":
			document.getElementById("afspraak_sleutel").value="";
			document.getElementById("afspraak_sleutelinvoer").style.display="block";
			document.getElementById("afspraak_artikelgroepen").style.display="none";
			document.getElementById("afspraak_sleuteltitel").innerHTML="Productcode:";
			document.getElementById("afspraak_sleuteltitel").style.display="block";
			document.getElementById("afspraak_productgroepen").style.display="none";
			document.getElementById("afspraak_niveaus").style.display="none";
			document.getElementById("afspraak_teksttitel").innerHTML="Tekst:";
			document.getElementById("afspraak_teksttitel").style.display="block";
			document.getElementById("afspraak_tekstdiv").style.display="block";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="block";
			document.getElementById("afspraak_toonbijoffertediv").style.display="block";
			document.getElementById("afspraak_kortingtitel").style.display="none";
			document.getElementById("afspraak_kortingdiv").style.display="none";
			document.getElementById("afspraak_minimumtijdtitel").style.display="none";
			document.getElementById("afspraak_minimumtijddiv").style.display="none";
			document.getElementById("afspraak_blokgroottetitel").style.display="none";
			document.getElementById("afspraak_blokgroottediv").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotetitel").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotediv").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotetitel").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotediv").style.display="none";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="none";
			document.getElementById("afspraak_schemetitel").style.display="none";
			document.getElementById("afspraak_schemediv").style.display="none";
			document.getElementById("afspraak_maandfacturatietitel").style.display="none";
			document.getElementById("afspraak_maandfacturatiediv").style.display="none";
			break;
		case "3":
			document.getElementById("afspraak_sleutelinvoer").style.display="none";
			document.getElementById("afspraak_sleutel").value=document.getElementById("afspraak_selectproductgroep").value;
			document.getElementById("afspraak_artikelgroepen").style.display="none";
			document.getElementById("afspraak_sleuteltitel").innerHTML="Productgroep:";
			document.getElementById("afspraak_sleuteltitel").style.display="block";
			document.getElementById("afspraak_productgroepen").style.display="block";
			document.getElementById("afspraak_niveaus").style.display="none";
			document.getElementById("afspraak_teksttitel").innerHTML="Tekst:";
			document.getElementById("afspraak_teksttitel").style.display="block";
			document.getElementById("afspraak_tekstdiv").style.display="block";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="block";
			document.getElementById("afspraak_toonbijoffertediv").style.display="block";
			document.getElementById("afspraak_kortingtitel").style.display="none";
			document.getElementById("afspraak_kortingdiv").style.display="none";
			document.getElementById("afspraak_minimumtijdtitel").style.display="none";
			document.getElementById("afspraak_minimumtijddiv").style.display="none";
			document.getElementById("afspraak_blokgroottetitel").style.display="none";
			document.getElementById("afspraak_blokgroottediv").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotetitel").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotediv").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotetitel").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotediv").style.display="none";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="none";
			document.getElementById("afspraak_schemetitel").style.display="none";
			document.getElementById("afspraak_schemediv").style.display="none";
			document.getElementById("afspraak_maandfacturatietitel").style.display="none";
			document.getElementById("afspraak_maandfacturatiediv").style.display="none";
			break;
		case "4":
			document.getElementById("afspraak_sleutel").value=document.getElementById("afspraak_selectniveau").value
			document.getElementById("afspraak_sleutelinvoer").style.display="none";
			document.getElementById("afspraak_artikelgroepen").style.display="none";
			document.getElementById("afspraak_sleuteltitel").innerHTML="Niveau:";
			document.getElementById("afspraak_sleuteltitel").style.display="block";
			document.getElementById("afspraak_productgroepen").style.display="none";
			document.getElementById("afspraak_niveaus").style.display="block";
			document.getElementById("afspraak_teksttitel").style.display="none";
			document.getElementById("afspraak_tekstdiv").style.display="none";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="none";
			document.getElementById("afspraak_toonbijoffertediv").style.display="none";
			document.getElementById("afspraak_kortingtitel").style.display="block";
			document.getElementById("afspraak_kortingdiv").style.display="block";
			document.getElementById("afspraak_minimumtijdtitel").style.display="block";
			document.getElementById("afspraak_minimumtijddiv").style.display="block";
			document.getElementById("afspraak_blokgroottetitel").style.display="block";
			document.getElementById("afspraak_blokgroottediv").style.display="block";
			document.getElementById("afspraak_minimumtijd_remotetitel").style.display="block";
			document.getElementById("afspraak_minimumtijd_remotediv").style.display="block";
			document.getElementById("afspraak_blokgrootte_remotetitel").style.display="block";
			document.getElementById("afspraak_blokgrootte_remotediv").style.display="block";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="none";
			document.getElementById("afspraak_schemetitel").style.display="block";
			document.getElementById("afspraak_schemediv").style.display="block";
			document.getElementById("afspraak_maandfacturatietitel").style.display="block";
			document.getElementById("afspraak_maandfacturatiediv").style.display="block";
			calcAfspraakNiveauTarief();
			break;
		case "5":
			document.getElementById("afspraak_sleutel").value="";
			document.getElementById("afspraak_sleutelinvoer").style.display="none";
			document.getElementById("afspraak_artikelgroepen").style.display="none";
			document.getElementById("afspraak_sleuteltitel").innerHTML="Voorrij tarief:";
			document.getElementById("afspraak_sleuteltitel").style.display="block";
			document.getElementById("afspraak_productgroepen").style.display="none";
			document.getElementById("afspraak_niveaus").style.display="none";
			document.getElementById("afspraak_teksttitel").style.display="none";
			document.getElementById("afspraak_tekstdiv").style.display="none";
			document.getElementById("afspraak_toonbijoffertetitel").style.display="none";
			document.getElementById("afspraak_toonbijoffertediv").style.display="none";
			document.getElementById("afspraak_kortingtitel").style.display="none";
			document.getElementById("afspraak_kortingdiv").style.display="none";
			document.getElementById("afspraak_minimumtijdtitel").style.display="none";
			document.getElementById("afspraak_minimumtijddiv").style.display="none";
			document.getElementById("afspraak_blokgroottetitel").style.display="none";
			document.getElementById("afspraak_blokgroottediv").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotetitel").style.display="none";
			document.getElementById("afspraak_minimumtijd_remotediv").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotetitel").style.display="none";
			document.getElementById("afspraak_blokgrootte_remotediv").style.display="none";
			document.getElementById("afspraak_voorrij_tariefdiv").style.display="block";
			document.getElementById("afspraak_schemetitel").style.display="none";
			document.getElementById("afspraak_schemediv").style.display="none";
			document.getElementById("afspraak_maandfacturatietitel").style.display="none";
			document.getElementById("afspraak_maandfacturatiediv").style.display="none";
			break;
	}
}
function calcAfspraakNiveauTarief() {
	// als het type niet Incidenten is, dan niks doen
	if(document.getElementById("afspraak_type").options[document.getElementById("afspraak_type").selectedIndex].value!=4) {
		return;
	}
	var korting = 0;
	var kobj = document.getElementById("afspraak_korting");
	var tobj = document.getElementById("afspraak_tekst");
	try {
		korting = parseFloat(kobj.value.replace(",","."));
		tobj.value = kobj.value;
		if(isNaN(korting)) {
			kobj.value = "0,00";
			tobj.value = "0,00";
			korting = 0;
		}
		if(korting>100) {
			alert("Korting mag niet groter dan 100% zijn!");	
			kobj.value = "0,00";
			tobj.value = "0,00";
			korting = 0;
		}
	} catch(e){
		kobj.value = "0,00";
		tobj.value = "0,00";
	}
	var selniv = document.getElementById("afspraak_selectniveau");
	var niveaunr = selniv.options[selniv.selectedIndex].value;
	var tariefspan = document.getElementById("afspraak_calculated_niveautarief");
	try {
		var tarief = document.getElementById("afspraak_niveautarief_"+niveaunr).value;
		document.getElementById("afspraak_standaard_niveautarief").innerHTML = tarief;
		var calctarief = Math.round((100-korting)*parseFloat(tarief.replace(",",".")));
		var fcalc = "";
		if(calctarief<10) {
			fcalc = "0,0"+calctarief;
		} else if(calctarief<100) {
			fcalc = "0,"+calctarief;
		} else {
			fcalc = "" + calctarief; // toString
			fcalc = fcalc.substring(0,fcalc.length-2) + "," + fcalc.substring(fcalc.length-2,fcalc.length); 			
		}
		tariefspan.innerHTML = fcalc;
	} catch(e) {
		tariefspan.innerHTML = "???";		
	}
}
// -- BI data
function loadBidata() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadBidata,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/bidata?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: "/wobjects/crm/bidata?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value,
 		method:'GET',
 		success:onLoadBidata,
		failure:onFailure
 	});
	return true;
}
function onLoadBidata(o) {
	document.getElementById("bidataframe").innerHTML = o.responseText;
	// initialize tabs for each department
	var depnr = 1;
	biTabs = new bncTabs("bi");
	while(document.getElementById("tabcontentbi_"+depnr)!=null) {
		biTabs.addTabId("bi_"+depnr);
		initInlineEdit({
			id: "tabcontentbi_"+depnr,
			hover: false,
			url: gateway + "?appclass=nl.bnc.lib.ajax.BWAppInlineEdit&json=1&translatejson=1",
			success: function(obj) {
				loadBidata();
			},
			parameters: [
				{
					name: "dbclass",
					value: "nl.bnc.db.mysql.bncweb.Bi_signalering"
				},
				{
					name: "pkfields",
					value: "nr"
				}
			
			]
		});
		depnr++;
	}
	biTabs.initTabs();
}
function onLoadBidataEdit() {
	document.getElementById("groep"+biDataGroepnr).style.display = 'block';
	document.getElementById("biselectedgroep").value = biDataGroepnr;
}	

function validateBidata(curPanel) {
	return true;
}

function signBidata(afdelingnr) {
//	var now = new Date();
	var debiteurnr = document.getElementById("deb_nr").value;
//	var callback =
//	{
//		success:onLoadSignBidata,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.applicatie.crm.stamgegevens.BWAppBIGroepen&json=1&fn=sign&debiteurnr="+debiteurnr+"&afdelingnr="+afdelingnr+"&menuid="+menuid+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: gateway+"?appclass=nl.bnc.bncweb.system.applicatie.crm.stamgegevens.BWAppBIGroepen&json=1&fn=sign&debiteurnr="+debiteurnr+"&afdelingnr="+afdelingnr+"&menuid="+menuid,
 		method:'GET',
 		success:onLoadSignBidata,
		failure:onFailure
 	});
}
function onLoadSignBidata(o) {
	loadBidata();	
}

// -- contracten
function onLoadContractEdit() {
	/*
	 * init calendars
	 */
	Calendar.setup({
        inputField : "begindatum",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });
	Calendar.setup({
        inputField : "einddatum",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });
	for (var i = 1; i < 6; i++) {
		Calendar.setup({
			inputField: "alarmdatum"+i,
			ifFormat: "%d-%m-%Y",
			showsTime: false,
			timeFormat: "24",
			mondayFirst: false,
			weekNumbers: true
		});
	}
}	
function loadContracten() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadContracten,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/contracten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: "/wobjects/crm/contracten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value,
 		method:'GET',
 		success:onLoadContracten,
		failure:onFailure
 	});
	return true;
}
function onLoadContracten(o) {
	document.getElementById("contractenframe").innerHTML = o.responseText;
}
function validateContract(curPanel) {
	if(curPanel==null||curPanel==1) {
		if(document.getElementById("contract_naamnr").value == "0" && document.getElementById("contract_naam").value == "") {
			alert("Kies een contractnaam of vul een nieuwe in");
			return false;
		}
		if(document.getElementById("contract_typenr").value == "0" && document.getElementById("contract_typeomschrijving").value == "") {
			alert("Kies een contracttype of vul een nieuwe in");
			return false;
		}
	}
	if(curPanel==null||curPanel==2) {
		if(document.getElementById("omschrijving").value == "") {
			alert("Omschrijving moet worden ingevuld");
			return false;
		}
	}
	if(curPanel==null||curPanel==3) {
		if(document.getElementById("checkboxalarm1").checked&&document.getElementById("actie1").value == "") {
			alert("Actie 1 moet worden ingevuld");
			return false;
		}
		if(document.getElementById("checkboxalarm2").checked&&document.getElementById("actie2").value == "") {
			alert("Actie 2 moet worden ingevuld");
			return false;
		}
		if(document.getElementById("checkboxalarm3").checked&&document.getElementById("actie3").value == "") {
			alert("Actie 3 moet worden ingevuld");
			return false;
		}
		if(document.getElementById("checkboxalarm4").checked&&document.getElementById("actie4").value == "") {
			alert("Actie 4 moet worden ingevuld");
			return false;
		}
		if(document.getElementById("checkboxalarm5").checked&&document.getElementById("actie5").value == "") {
			alert("Actie 5 moet worden ingevuld");
			return false;
		}
	}	
	return true;
}
function vulContractNamen() {
	var i = 1;
	var typenr = document.getElementById("type").value;
	var naamobj = document.getElementById("contract_naamnr");
	naamobj.options.length = 0;
	var opt = document.createElement("OPTION");
	opt.value = "0";
	opt.text = "Selecteer..";	
	naamobj.options.add(opt);
	opt = document.createElement("OPTION");
	opt.value = "0";
	opt.text = "Nieuwe overeenkomst -->";
	naamobj.options.add(opt);
	document.getElementById('contract_naam').style.display='none';
	while(true) {
		var tst = document.getElementById("cn_type"+i);
		if(tst==null) {
			break;
		}
		if(tst.value==typenr) {
			opt = document.createElement("OPTION");
			opt.value = document.getElementById("cn_nr"+i).value;
			opt.text = document.getElementById("cn_naam"+i).value;
			naamobj.options.add(opt);
		}
		i++;
	}
}
function vulContractTypes() {
	var i = 1;
	var naamnr = document.getElementById("contract_naamnr").value;
	var typeobj = document.getElementById("contract_typenr");
	typeobj.options.length = 0;
	var opt = document.createElement("OPTION");
	opt.value = "0";
	opt.text = "Selecteer..";
	typeobj.options.add(opt);	
	opt = document.createElement("OPTION");
	opt.value = "0";
	opt.text = "Nieuw type -->";
	typeobj.options.add(opt);
	document.getElementById('contract_typeomschrijving').style.display='none';	
	while(true) {
		var tst = document.getElementById("ct_cn_nr"+i);
		if(tst==null) {
			break;
		}
		if(tst.value==naamnr) {
			opt = document.createElement("OPTION");
			opt.value = document.getElementById("ct_nr"+i).value;
			opt.text = document.getElementById("ct_omschrijving"+i).value;
			typeobj.options.add(opt);
		}
		i++;	/*
	 * init calendars
	 */
	Calendar.setup({
        inputField : "begindatum",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });

	}
	if(document.getElementById("contract_naamnr").selectedIndex==1) {
		typeobj.selectedIndex=1;
		document.getElementById('contract_typeomschrijving').style.display='inline';
	}
}
function setContractSpecificaties(obj) {
	if(obj.id=="type") {
		vulContractNamen();
		vulContractTypes();
	} else {
		vulContractTypes();
	}
}
// -- taken
function onLoadTakenEdit() {
	/*
	 * init calendars
	 */
	Calendar.setup({
        inputField : "takenUitvoerdatum",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });
		
	/*
	 * de debiteuren autocomplete definieren
	 */
	if(document.getElementById("takenDebInput")!=null) {
		var debSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_debcode", "xml_debiteuren_nr"];
		var debXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
		// disable the cache 
		debXHRDataSource.maxCacheEntries = 0;	
	    debXHRDataSource.connXhrMode = "queueRequests";	
		debXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		debXHRDataSource.scriptQueryParam = "zoek";
		debXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=debiteuren.debcode,debiteuren.src_code,debiteuren.naam,debiteuren.adres,debiteuren.postcode,debiteuren.plaats,debiteuren.email,debiteuren.telefoon&filter="+myescape("(debiteuren.actief=1 or debiteuren.prospect=1)")+"&order=debiteuren.naam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var debAutoCompCRM = new YAHOO.widget.AutoComplete("takenDebInput","takenDebContainer", debXHRDataSource);
		debAutoCompCRM.minQueryLength = 2;
		debAutoCompCRM.maxResultsDisplayed = 25;
		debAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var naam = aResultItem[0];
			var debcode = aResultItem[1];
			var aMarkup = ["<div>",
				debcode,
				" <b>",
				naam,
				"</b>",
				"</div>"];
			return (aMarkup.join(""));
		};
		var debSelectHandler = function(sType, aArgs) {
			var debiteurnr = aArgs[2][2];
			var debnaam = aArgs[2][0];
			document.getElementById("takenDebiteurnr").value = debiteurnr;
			document.getElementById("takenShowdebnaam").innerHTML = debnaam;
			document.getElementById("takenDebInput").value = "";
			document.getElementById("takenDebInput").style.display = "none";
			
			var onLoadContactpersonen = function(o) {
				var obj = eval("("+o.responseText+")");
				var selcpobj = document.getElementById("takenContactnr");
				for(var i=0; i<obj["zoekresultaten"].length; i++) {
					/*
					 * nieuwe option aanmaken per contactpersoon
					 */
					var nopt = document.createElement("option");
					nopt.value = obj["zoekresultaten"][i]["xml_gebruikers_nr"];
					nopt.text =
						((obj["zoekresultaten"][i]["xml_gebruikers_voornaam"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_voornaam"] + " ":"") +
						((obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"] + " ":"") +
									obj["zoekresultaten"][i]["xml_gebruikers_achternaam"];
					selcpobj.options.add(nopt);
				}
			};
//			var now = new Date();
//			var callback =
//			{
//				success:onLoadContactpersonen,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debiteurnr+"&fields=gebruikers.debiteurnr&filter="+myescape("gebruikers.debiteurnr='"+debiteurnr+"' and gebruikers.deactivated=0")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
			bncAjaxConnection({
		 		url: gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debiteurnr+"&fields=gebruikers.debiteurnr&filter="+myescape("gebruikers.debiteurnr='"+debiteurnr+"' and gebruikers.deactivated=0")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid,
		 		method:'GET',
		 		success:onLoadContactpersonen,
				failure:onFailure
		 	});
		};
		debAutoCompCRM.itemSelectEvent.subscribe(debSelectHandler);
	}
	/*
	 * autocomplete uitvoerder
	 */
	if(document.getElementById("takenUseridInput")!=null) {
		var usrSchema = ["zoekresultaten", "xml_gebruikers_voornaam", "xml_gebruikers_tussenvoegsel", "xml_gebruikers_achternaam", "xml_gebruikers_userid"];
		var usrXHRDataSource = new YAHOO.widget.DS_XHR(gateway, usrSchema);
		// disable the cache 
		usrXHRDataSource.maxCacheEntries = 0;	
	    usrXHRDataSource.connXhrMode = "queueRequests";	
		usrXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		usrXHRDataSource.scriptQueryParam = "zoek";
		usrXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&fields=gebruikers.voornaam,gebruikers.achternaam,gebruikers.email&filter="+myescape("gebruikers.deactivated=0 and gebruikers.debcode='30325'")+"&order=gebruikers.voornaam,gebruikers.achternaam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var usrAutoCompCRM = new YAHOO.widget.AutoComplete("takenUseridInput","takenUseridContainer", usrXHRDataSource);
		usrAutoCompCRM.minQueryLength = 2;
		usrAutoCompCRM.maxResultsDisplayed = 25;
		usrAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var voornaam = (aResultItem[0]||"");
			var tussenvoegsel = (aResultItem[1]||"");
			var achternaam = (aResultItem[2]||"");
			return (voornaam+" "+tussenvoegsel+" "+achternaam);
		};
		var usrSelectHandler = function(sType, aArgs) {
			var userid = aArgs[2][3];
			var naam = (aArgs[2][0]||"")+" "+(aArgs[2][1]||"")+" "+(aArgs[2][2]||"");
			document.getElementById("takenUserid").value = userid;
			document.getElementById("takenShowUserid").innerHTML = naam;
			document.getElementById("takenUseridInput").value = "";
			document.getElementById("takenUseridInput").style.display = "none";
		};
		usrAutoCompCRM.itemSelectEvent.subscribe(usrSelectHandler);
	}
}
/*
 * taken DataTable in CRM
 */
function initTakenDataTable() {
	var takenColumnDefs = [
		{key:"xml_taken_uitvoerdatum", label:"Datum", sortable:true, width:80},
		{key:"xml_eigenaren_voornaam", label:"Door", formatter:"CRMTaakDoor", sortable:true, width:140},
		{key:"xml_gebruikers_voornaam", label:"Contactpersoon", formatter:"CRMTaakContactpersoon", sortable:true, width:140},
		{key:"xml_taken_omschrijving", label:"Omschrijving", formatter:"CRMTaakOmschrijving", sortable:true},
		{key:"xml_uitvoerders_voornaam", label:"Taak voor", formatter:"CRMTaakVoor", sortable:true, width:140},
		{key:"xml_taken_done", label:"",formatter:"CRMTaakStatus", sortable:true}
	];
    YAHOO.widget.DataTable.Formatter.CRMTaakDoor = function(elCell, oRecord, oColumn, oData) {
    	elCell.innerHTML = (oRecord.getData("xml_eigenaren_voornaam")||'')+' '+(oRecord.getData("xml_eigenaren_tussenvoegsel")||'')+' '+(oRecord.getData("xml_eigenaren_achternaam")||'')+' ';
    }
    YAHOO.widget.DataTable.Formatter.CRMTaakContactpersoon = function(elCell, oRecord, oColumn, oData) {
    	elCell.innerHTML = (oRecord.getData("xml_gebruikers_voornaam")||'')+' '+(oRecord.getData("xml_gebruikers_tussenvoegsel")||'')+' '+(oRecord.getData("xml_gebruikers_achternaam")||'')+' ';
    }
    YAHOO.widget.DataTable.Formatter.CRMTaakVoor = function(elCell, oRecord, oColumn, oData) {
		if(!oRecord.getData("xml_taken_geentaak")) {
	    	elCell.innerHTML = (oRecord.getData("xml_uitvoerders_voornaam")||'')+' '+(oRecord.getData("xml_uitvoerders_tussenvoegsel")||'')+' '+(oRecord.getData("xml_uitvoerders_achternaam")||'')+' ';
		}
    }
    YAHOO.widget.DataTable.Formatter.CRMTaakStatus = function(elCell, oRecord, oColumn, oData) {
		if(oRecord.getData("xml_taken_done")) {
	    	elCell.innerHTML = '<img src="/uploads/KP/Hh/KPHh8C2Ik6lQnkSMZDX43w/actief.png" style="border-style:none;" alt="Vinkje" id="vI3Z9kwN_TfQjMgJbo2cXw" />';
		}
    }
    YAHOO.widget.DataTable.Formatter.CRMTaakOmschrijving = function(elCell, oRecord, oColumn, oData) {
		var taaknr = oRecord.getData("xml_taken_nr");
		var omschrijving = (oRecord.getData("xml_taken_omschrijving")||'');
		var notitie = (oRecord.getData("xml_taken_notitie_html")||'');
		elCell.innerHTML = "<a onmouseover=\"document.getElementById('crmtaakhover"+taaknr+"').style.display='block';\" onmouseout=\"document.getElementById('crmtaakhover"+taaknr+"').style.display='none';\">"+omschrijving+"</a>" +
			"<div style=\"display: none;\" id=\"crmtaakhover"+taaknr+"\" class=\"hoverHelp\">"+notitie+"</div>";
	}
    var takenDataSource = new YAHOO.util.DataSource(gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWTakenWizardBean&fn=select&debnr="+document.getElementById("deb_nr").value+"&json=1&translatejson=1&menuid=1");
    takenDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
    takenDataSource.connXhrMode = "queueRequests";
    takenDataSource.responseSchema = {
    resultsList: "xml_taken",
    fields: [
            {key:"xml_taken_omschrijving"},
            {key:"xml_taken_notitie_html"},
            {key:"xml_taken_ownerid"},
            {key:"xml_taken_userid"},
            {key:"xml_taken_uitvoerdatum"},
            {key:"xml_taken_nr"},
            {key:"xml_eigenaren_voornaam"},
            {key:"xml_eigenaren_tussenvoegsel"},
            {key:"xml_eigenaren_achternaam"},
            {key:"xml_gebruikers_voornaam"},
            {key:"xml_gebruikers_tussenvoegsel"},
            {key:"xml_gebruikers_achternaam"},
            {key:"xml_uitvoerders_voornaam"},
            {key:"xml_uitvoerders_tussenvoegsel"},
            {key:"xml_uitvoerders_achternaam"},
            {key:"xml_taken_done"},
            {key:"xml_taken_geentaak"}
        ]         
     };

	try {       
        var oConfigs = {
                paginator: new YAHOO.widget.Paginator({
                    rowsPerPage: 10,
                    containers : "takenPaginatorContainer",
                    // Options for FirstPageLink component
                    firstPageLinkLabel : "&lt;&lt; ",
                    // Options for LastPageLink component
                    lastPageLinkLabel : "&gt;&gt;",
                    // Options for PreviousPageLink component
                    previousPageLinkLabel : "&lt; Vorige",
                    // Options for NextPageLink component
                    nextPageLinkLabel : "Volgende &gt;" // default
                }),
				initialRequest: ""
        };
	    // DataTable instance
	    var takenDataTable = new YAHOO.widget.DataTable("takenDataContainer",
	                                                takenColumnDefs, takenDataSource, oConfigs);
	} catch(e) {
		alert(e);
	}
}
/*
 * EOF taken DataTable stuff
 */
function loadTaken() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
	initTakenDataTable();
	return true;
}
function onLoadTaken(o) {
	document.getElementById("takenframe").innerHTML = o.responseText;
}
function validateTaak(curPanel) {
	if(curPanel==null||curPanel==1) {
		if(document.getElementById("takenDebiteurnr").value == "0") {
			alert("Debiteur moet worden ingevuld");
			return false;
		}
		if(document.getElementById("takenOmschrijving").value == "") {
			alert("Omschrijving moet worden ingevuld");
			return false;
		}
		if(document.getElementById("taakCheckbox").checked && document.getElementById("takenUserid").value == "") {
			alert("Taak voor moet worden ingevuld");
			return false;
		}
	}
	return true;
}
// -- bezoekrapporten
function onLoadBezoekrapportenEdit() {
	/*
	 * init calendars
	 */
	Calendar.setup({
        inputField : "bezoekrapportenAanvang",
        ifFormat : "%d-%m-%Y",
        showsTime : false,
        timeFormat : "24",
        mondayFirst : false,
        weekNumbers: true
        });
		
	/*
	 * de debiteuren autocomplete definieren
	 */
	if(document.getElementById("bezoekrapportenDebInput")!=null) {
		var debSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_debcode", "xml_debiteuren_nr"];
		var debXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
		// disable the cache 
		debXHRDataSource.maxCacheEntries = 0;	
	    debXHRDataSource.connXhrMode = "queueRequests";	
		debXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		debXHRDataSource.scriptQueryParam = "zoek";
		debXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=debiteuren.debcode,debiteuren.src_code,debiteuren.naam,debiteuren.adres,debiteuren.postcode,debiteuren.plaats,debiteuren.email,debiteuren.telefoon&filter="+myescape("(debiteuren.actief=1 or debiteuren.prospect=1)")+"&order=debiteuren.naam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var debAutoCompCRM = new YAHOO.widget.AutoComplete("bezoekrapportenDebInput","bezoekrapportenDebContainer", debXHRDataSource);
		debAutoCompCRM.minQueryLength = 2;
		debAutoCompCRM.maxResultsDisplayed = 25;
		debAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var naam = aResultItem[0];
			var debcode = aResultItem[1];
			var aMarkup = ["<div>",
				debcode,
				" <b>",
				naam,
				"</b>",
				"</div>"];
			return (aMarkup.join(""));
		};
		var debSelectHandler = function(sType, aArgs) {
			var debiteurnr = aArgs[2][2];
			var debnaam = aArgs[2][0];
			document.getElementById("bezoekrapportenDebiteurnr").value = debiteurnr;
			document.getElementById("brShowdebnaam").innerHTML = debnaam;
			document.getElementById("bezoekrapportenDebInput").value = "";
			document.getElementById("bezoekrapportenDebInput").style.display = "none";
			
			var onLoadContactpersonen = function(o) {
				var obj = eval("("+o.responseText+")");
				var selcpobj = document.getElementById("brContactnr");
				for(var i=0; i<obj["zoekresultaten"].length; i++) {
					/*
					 * nieuwe option aanmaken per contactpersoon
					 */
					var nopt = document.createElement("option");
					nopt.value = obj["zoekresultaten"][i]["xml_gebruikers_nr"];
					nopt.text =
						((obj["zoekresultaten"][i]["xml_gebruikers_voornaam"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_voornaam"] + " ":"") +
						((obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"] + " ":"") +
									obj["zoekresultaten"][i]["xml_gebruikers_achternaam"];
					selcpobj.options.add(nopt);
				}
			};
//			var now = new Date();
//			var callback =
//			{
//				success:onLoadContactpersonen,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debiteurnr+"&fields=gebruikers.debiteurnr&filter="+myescape("gebruikers.debiteurnr='"+debiteurnr+"' and gebruikers.deactivated=0")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
			bncAjaxConnection({
		 		url:  gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debiteurnr+"&fields=gebruikers.debiteurnr&filter="+myescape("gebruikers.debiteurnr='"+debiteurnr+"' and gebruikers.deactivated=0")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid,
		 		method:'GET',
		 		success:onLoadContactpersonen,
				failure:onFailure
		 	});
		};
		debAutoCompCRM.itemSelectEvent.subscribe(debSelectHandler);
	}
	/*
	 * autocomplete uitvoerder
	 */
	if(document.getElementById("takenUseridInput")!=null) {
		var usrSchema = ["zoekresultaten", "xml_gebruikers_voornaam", "xml_gebruikers_tussenvoegsel", "xml_gebruikers_achternaam", "xml_gebruikers_userid"];
		var usrXHRDataSource = new YAHOO.widget.DS_XHR(gateway, usrSchema);
		// disable the cache 
		usrXHRDataSource.maxCacheEntries = 0;	
	    usrXHRDataSource.connXhrMode = "queueRequests";	
		usrXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		usrXHRDataSource.scriptQueryParam = "zoek";
		usrXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&fields=gebruikers.voornaam,gebruikers.achternaam,gebruikers.email&filter="+myescape("gebruikers.deactivated=0 and gebruikers.debcode='30325'")+"&order=gebruikers.voornaam,gebruikers.achternaam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var usrAutoCompCRM = new YAHOO.widget.AutoComplete("takenUseridInput","takenUseridContainer", usrXHRDataSource);
		usrAutoCompCRM.minQueryLength = 2;
		usrAutoCompCRM.maxResultsDisplayed = 25;
		usrAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var voornaam = (aResultItem[0]||"");
			var tussenvoegsel = (aResultItem[1]||"");
			var achternaam = (aResultItem[2]||"");
			return (voornaam+" "+tussenvoegsel+" "+achternaam);
		};
		var usrSelectHandler = function(sType, aArgs) {
			var userid = aArgs[2][3];
			var naam = (aArgs[2][0]||"")+" "+(aArgs[2][1]||"")+" "+(aArgs[2][2]||"");
			document.getElementById("takenUserid").value = userid;
			document.getElementById("takenShowUserid").innerHTML = naam;
			document.getElementById("takenUseridInput").value = "";
			document.getElementById("takenUseridInput").style.display = "none";
		};
		usrAutoCompCRM.itemSelectEvent.subscribe(usrSelectHandler);
	}
}
function loadBezoekrapporten() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadBezoekrapporten,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/bezoekrapporten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: "/wobjects/crm/bezoekrapporten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value,
 		method:'GET',
 		success:onLoadBezoekrapporten,
		failure:onFailure
 	});
	return true;
}
function onLoadBezoekrapporten(o) {
	document.getElementById("bezoekrapportenframe").innerHTML = o.responseText;
}
function validateBezoekrapport(curPanel) {
	if(curPanel==null||curPanel==1) {
		if(document.getElementById("bezoekrapportenDebiteurnr").value == "0") {
			alert("Debiteur moet worden ingevuld");
			return false;
		}
		if(document.getElementById("bezoekrapportenOmschrijving").value == "") {
			alert("Omschrijving moet worden ingevuld");
			return false;
		}
	}
	return true;
}
// -- accounts
function loadAccounts() {
	if(document.getElementById("deb_nr").value=="") {
		alert("Selecteer eerst een debiteur");
		return false;
	}
	if(loadingDebiteur) {
		alert("Debiteur wordt ingelezen, moment A.U.B.");
		return;
	}
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadAccounts,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/accounts?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: "/wobjects/crm/accounts?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value,
 		method:'GET',
 		success:onLoadAccounts,
		failure:onFailure
 	});
	return true;
}
function onLoadAccounts(o) {
	document.getElementById("accountsframe").innerHTML = o.responseText;
	if (document.getElementById("showAccountPassword") != null) {
		showAccountPassword = new YAHOO.widget.SimpleDialog('showAccountPassword', {
			width: "400px",
			fixedcenter: true,
			modal: true,
			visible: false,
			draggable: false
		});
		showAccountPassword.render(document.getElementById("accountsframe"));
	}
}
function onLoadAccountsEdit() {
	if(document.getElementById("account_users_autocomplete")!=null) {
		var usrSchema = ["zoekresultaten", "xml_gebruikers_voornaam", "xml_gebruikers_tussenvoegsel", "xml_gebruikers_achternaam", "xml_gebruikers_userid"];
		var usrXHRDataSource = new YAHOO.widget.DS_XHR(gateway, usrSchema);
		// disable the cache 
		usrXHRDataSource.maxCacheEntries = 0;	
	    usrXHRDataSource.connXhrMode = "queueRequests";	
		usrXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		usrXHRDataSource.scriptQueryParam = "zoek";
		usrXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&fields=gebruikers.voornaam,gebruikers.achternaam,gebruikers.email&filter="+myescape("gebruikers.deactivated=0 and gebruikers.debcode='30325'")+"&order=gebruikers.voornaam,gebruikers.achternaam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var usrAutoCompCRM = new YAHOO.widget.AutoComplete("account_users_autocomplete","account_users_container", usrXHRDataSource);
		usrAutoCompCRM.minQueryLength = 2;
		usrAutoCompCRM.maxResultsDisplayed = 25;
		usrAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var voornaam = (aResultItem[0]||"");
			var tussenvoegsel = (aResultItem[1]||"");
			var achternaam = (aResultItem[2]||"");
			return (voornaam+" "+tussenvoegsel+" "+achternaam);
		};
		var usrSelectHandler = function(sType, aArgs) {
			var userid = aArgs[2][3];
			var naam = (aArgs[2][0]||"")+" "+(aArgs[2][1]||"")+" "+(aArgs[2][2]||"");
			var ntr = document.createElement("tr");
			ntr.id = "new_account_tr_"+userid;
			var ntd1 = document.createElement("td");
			ntr.appendChild(ntd1);
			ntd1.innerHTML = naam + "<input type=\"hidden\" name=\"new_account_user\" value=\""+userid+"\"/>";
			var ntd2 = document.createElement("td");
			ntr.appendChild(ntd2);
			ntd2.innerHTML = "<img src=\"/media/afbeeldingen/layout/buttons/inactief2.png\" onclick=\"this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);\" border=\"0\" />";
			document.getElementById("account_users_table").appendChild(ntr);
			document.getElementById("account_users_autocomplete").value = "";
			 
		};
		usrAutoCompCRM.itemSelectEvent.subscribe(usrSelectHandler);
	}
}
//GRIP - notities manipulations
function deleteExistingNote(elem,notitiesNr) {
	if (confirm('Weet je zeker dat je deze notitie wilt verwijderen?')) {
		elem.parentNode.parentNode.removeChild(elem.parentNode);
		var delElement = document.createElement("input");
		delElement.type="hidden";
		delElement.value="yes";
		delElement.name="del_notitie_"+notitiesNr;
		document.getElementById('notitieContainer').appendChild(delElement);
	}
} 


function addNewNotitiesCounter() {
	var counter=parseInt(document.getElementById("notitie_counter").value);
	counter=counter+1;
	document.getElementById("notitie_counter").value = counter;
	return counter;
}

//new notities added dynamically Grip no:75
function addNewNotities(){
	var ntext = document.getElementById("incidentNotes");
	var ndiv = document.createElement("li");
	var noteId = addNewNotitiesCounter();
	ndiv.innerHTML = "<span class=\"incidentNoteDate\">Nieuw</span><span class=\"incidentNoteUser\">&nbsp;</span><span class=\"incidentNoteText\"><textarea name=\"notitie_" + noteId + "\"  style=\"height:65px; width:450px;\"></textarea></span><span class=\"incidentNoteDelete\" onclick=\"if(confirm('Weet je zeker dat je deze notitie wilt verwijderen?')){this.parentNode.parentNode.removeChild(this.parentNode);}\"><img src=\"/framework/afbeeldingen/layout/icons/verwijder-blauw.png\" /></span><div class=\"cleaner\"></div>";
	ntext.insertBefore(ndiv,ntext.childNodes[0]);
}

// GRIP - automatic calculation for customer costs no:15
function calculatereparatieKlantkosten(){
	var reparatiekosten_lev = parseFloat(document.getElementById("inc_kosten_leverancier").value.replace(',','.'));
	var overigekosten_lev = parseFloat(document.getElementById("inc_kosten_overige").value.replace(',','.'));
	var reparatie_percent = parseFloat(document.getElementById("inc_reparatiepercent").value.replace(',','.'));
	var reparatie_klant = parseFloat((overigekosten_lev+reparatiekosten_lev)*reparatie_percent);
	
	document.getElementById("inc_reparatiekosten_klant").value =  (reparatie_klant).toFixed(2);
	document.getElementById("inc_reparatiekosten_klant").value = document.getElementById("inc_reparatiekosten_klant").value.replace('.',',');
	
	var verzend_klant = parseFloat(document.getElementById("inc_verzendkosten_klant").value.replace(',','.'));
	var onderzoek_kost = parseFloat(document.getElementById("inc_kosten_onderzoek").value.replace(',','.'));
	var klant_kost = parseFloat(onderzoek_kost+reparatie_klant+verzend_klant);
	document.getElementById("inc_kosten_klant").value = (klant_kost).toFixed(2);
	document.getElementById("inc_kosten_klant").value = document.getElementById("inc_kosten_klant").value.replace('.',',');
}
function calculateverzendKlantkosten(){
	
	var verzendkosten_lev = parseFloat(document.getElementById("inc_verzendkosten_leverancier").value.replace(',','.'));
	var verzend_percent = parseFloat(document.getElementById("inc_verzendpercent").value.replace(',','.'));
	var verzend_klant = parseFloat(verzendkosten_lev*verzend_percent);
	document.getElementById("inc_verzendkosten_klant").value = (verzend_klant).toFixed(2);
	document.getElementById("inc_verzendkosten_klant").value = document.getElementById("inc_verzendkosten_klant").value.replace('.',',');
	
	var reparatie_klant = parseFloat(document.getElementById("inc_reparatiekosten_klant").value.replace(',','.'));
	var onderzoek_kost = parseFloat(document.getElementById("inc_kosten_onderzoek").value.replace(',','.'));
	var klant_kost = parseFloat(onderzoek_kost+reparatie_klant+verzend_klant);
	document.getElementById("inc_kosten_klant").value = (klant_kost).toFixed(2);
	document.getElementById("inc_kosten_klant").value = document.getElementById("inc_kosten_klant").value.replace('.',',');
}
function calculatetotalkosten(){
	var reparatie_klant = parseFloat(document.getElementById("inc_reparatiekosten_klant").value.replace(',','.'));
	var verzend_klant = parseFloat(document.getElementById("inc_verzendkosten_klant").value.replace(',','.'));
	var onderzoek_kost = parseFloat(document.getElementById("inc_kosten_onderzoek").value.replace(',','.'));
	var klant_kost = parseFloat(onderzoek_kost+reparatie_klant+verzend_klant);
	document.getElementById("inc_kosten_klant").value = (klant_kost).toFixed(2);
	document.getElementById("inc_kosten_klant").value = document.getElementById("inc_kosten_klant").value.replace('.',',');
}
function validateAccounts(curPanel) {
	if(curPanel==null||curPanel==0) {
		if(document.getElementById("accountsOmschrijving").value == "") {
			alert("Omschrijving moet worden ingevuld");
			return false;
		}
		if(document.getElementById("accountsUsername").value == "") {
			alert("Gebruikersnaam moet worden ingevuld");
			return false;
		}
		// password is required for new entries only, in that case the keynr element does not exist...
		if(document.getElementById('accountswizardform').elements.keynr==null && document.getElementById("gebruikersPassword").value == "") {
			alert("Wachtwoord moet worden ingevuld");
			return false;
		}
	}
	return true;
}
var accountTimeout = null;
function showAccount() {
	var debiteurnr = document.getElementById("account_password_debnr").value;
	var accountnr = document.getElementById("account_password_accountsnr").value;
	var password = document.getElementById("account_password_password").value;
	document.getElementById("account_password_password").value = "";
	var now = new Date();
	var callback =
	{
		success:function(o) {
			var obj=eval("("+o.responseText+")");
			if(obj["xml_error"]!=null) {
				alert(obj["xml_error"]);	
			} else {
 				showAccountPassword.hide();
 				document.getElementById("accountInfo").innerHTML =
					"<h6>" + obj["xml_accounts_omschrijving"] +
					"</h6><table width=\"100%\"><tr><td width=\"100\">Gebruikersnaam:</td><td><font color=\"red\">" +
					obj["xml_accounts_username_decoded"]+"</font></td></tr><tr><td>Wachtwoord:</td><td><font color=\"red\">" +
					obj["xml_accounts_password_decoded"]+"</font></td></tr>" +
					((obj["xml_accounts_url"])?"<tr><td>URL:</td><td><a href=\"" + obj["xml_accounts_url"]+ "\" target=\"_blank\">"+obj["xml_accounts_url"]+"</a></td></tr>":"&nbsp;") +
					"<tr><td colspan=\"2\"><br />" + (obj["xml_accounts_tekst_html"]||"") 
					"</td></tr></table>";
				document.getElementById('accountInfoContainer').style.display="";
				if(accountTimeout!=null) {
					clearTimeout(accountTimeout);
				}
				accountTimeout = setTimeout("document.getElementById('accountInfo').innerHTML =''; document.getElementById('accountInfoContainer').style.display='none'; accountTimeout=null;",60000);	
			}
		},
		failure:onFailure
	}
	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.applicatie.td.crm.BWAppAccountViewer&accountnr="+accountnr+"&debiteurnr="+debiteurnr+"&password="+myescape(password)+"&json=1&translatejson=1&menuid="+menuid+"&noCache="+now.getTime(), callback, "");
}
// -- incidenten
function loadIncidenten(o) {
	/*
	 * als o==null dan worden de incidenten bij een debiteur in CRM ingelezen, alleen dan controleren
	 */
	if(o == null) {
		if(document.getElementById("deb_nr")!=null && document.getElementById("deb_nr").value=="") {
			alert("Selecteer eerst een debiteur");
			return false;
		}
		if(document.getElementById("deb_code").innerHTML=="") {
			alert("Bij prospects en niet-actieve debiteuren kunnen geen incidenten worden aangemaakt");
			return false;	
		}
		if(loadingDebiteur) {
			alert("Debiteur wordt ingelezen, moment A.U.B.");
			return false;
		}
	} else {
		/*
		 * als o != null dan wordt het gewijzigde incident in de response meegegeven; nu kijken of we
		 * deze eventueel willen printen of emailen
		 */
		// the response is embedded in <pre> tags, so remove them...
		var response = o.responseText.replace(/<pre[^>]*>/gi,"").replace(/<\/pre>/gi,"");
		var obj = eval("("+response+")");
		if(obj["xml.printofemail"]!=null) {
			if(obj["xml.incidenten.editmode.edit"]=="1") {
				printOfEmail("edit",obj["xml.incidenten.incidentnr"],getContactpersoonEmail(obj["xml.incidenten.contactpersonen"]));
			} else {
				var nummers = "";
				var emailadressen_hash = {};
				var emailadressen = "";
				for(var i=0; i<obj["xml.incidenten.uitleveren"].length; i++) {
					nummers += ((i!=0)?"; ":"") +  obj["xml.incidenten.uitleveren"][i]["xml.incidenten.incidentnr"];
					var emailadres = getContactpersoonEmail(obj["xml.incidenten.uitleveren"][i]["xml.incidenten.contactpersonen"]);
					if(emailadres!="" && emailadressen_hash[emailadres]==null) {
						emailadressen_hash[emailadres] = 1;
						emailadressen += ((i!=0)?";":"") + emailadres;
					}
				}
				printOfEmail("uitleveren",nummers,emailadressen);
			}
		}
	}
	if (document.getElementById("deb_nr")) {
//		var now = new Date();
//		var callback = {
//			success: onLoadIncidenten,
//			failure: onFailure,
//			timeout:5000
//		}
//		YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr=" + document.getElementById("deb_nr").value + "&noCache=" + now.getTime(), callback, "");
		bncAjaxConnection({
	 		url: "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr=" + document.getElementById("deb_nr").value,
	 		method:'GET',
	 		success: onLoadIncidenten,
			failure: onFailure
	 	});
		}
	//fix for the deb_nr null issue when editing the incident in some other location other than CRM
	if (document.getElementById("deb_nr")==null && document.getElementById("incidentenoverzicht")) {
//		var now = new Date();
//		var callback = {
//			success: onLoadIncidenten,
//			failure: onFailure
//		}
//		YAHOO.util.Connect.asyncRequest("GET", "/wobjects/technische-dienst/incident-overzicht?HttpProxy_fn=zoek&noCache=" + now.getTime(), callback, "");
		bncAjaxConnection({
	 		url:  "/wobjects/technische-dienst/incident-overzicht?HttpProxy_fn=zoek",
	 		method:'GET',
	 		success: onLoadIncidenten,
			failure: onFailure
	 	});
	}
	return true;
}
function printOfEmail(mode,incidentnrs,emailadressen) {
	createPrintOfEmailDialog();
	document.getElementById("inc_emailtekst").value = "";
	if(mode=="edit") {
		printOfEmailDialog.setHeader("Melding afdrukken of e-mailen");
		document.getElementById("inc_printofemailmode").value = "edit";
		document.getElementById("inc_incidentnummers").innerHTML=incidentnrs;
	} else {
		printOfEmailDialog.setHeader("Uitgeleverde melding afdrukken of e-mailen");
		document.getElementById("inc_printofemailmode").value = "uitleveren";
		document.getElementById("inc_incidentnummers").innerHTML=incidentnrs;
	}
	document.getElementById("inc_emailadressen").value = emailadressen;
	YAHOO.util.Dom.removeClass("printofemaildialog","initialHide");
	printOfEmailDialog.render();
	printOfEmailDialog.show();
	dialogueClosed = false;
}
function getContactpersoonEmail(acontactpersonen,selectedPerson) {
	for(var i=0; i<acontactpersonen.length; i++) {
		if(selectedPerson==acontactpersonen[i]["xml_gebruikers_nr"]) {
			return(acontactpersonen[i]["xml_gebruikers_email"]);
		}
	}
	return "";
}

function onDeleteIncident() {
		addFeedback({
			text: "Het melding is verwijderd."
		});
	loadIncidenten();
}

function deleteIncident(debnr,incidentnr) {
	if (confirm('Weet je zeker dat je dit melding wilt verwijderen?')) {
		var now = new Date();
		var surl = gateway + "?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.td.crm.BWIncidentenWizardBean&json=1&menuid=h0Y_1dQzgF78CZLKtbdGCw&fn=delete&HttpProxy_editmode=edit&debnr=" + debnr + "&selectlist=" + incidentnr;
//		var callback = {
//			success: onDeleteIncident,
//			failure: onFailure
//		}
//		YAHOO.util.Connect.asyncRequest("GET", surl, callback, "");
		bncAjaxConnection({
	 		url: surl,
	 		method:'GET',
	 		success: onDeleteIncident,
			failure: onFailure
	 	});
	}
}

function printOfEmailIncident(incidentnr,email) {
	printOfEmail('edit',incidentnr,email);
}


function showIncident(p_sType, p_aArgs, arguments) {
	document.location.href='#location='+escape('/wobjects/technische-dienst/incident-status?HttpProxy_fn=view&HttpProxy_incidentnr='+arguments.incidentnr);
}

function editIncident(incidentnr,incidentRedirectTo) {
	if(!incidentRedirectTo) {
		var incidentRedirectTo = ""; 
	}
	document.location.href='/framework/assets/intranet/grip/incidenten-edit?HttpProxy_fn=setedit&HttpProxy_keynr='+incidentnr+'&incidentRedirectTo='+incidentRedirectTo;
}

function billIncident(formNumber) {
	document.getElementById('incidentUitleverenForm'+formNumber).submit();
}

function onLoadIncidenten(o) {
	if (document.getElementById("incidentenframe")) {
		document.getElementById("incidentenframe").innerHTML = o.responseText;
		var incidentCounter = 1;
		while (document.getElementById('OverzichtIncidenten'+incidentCounter) != null) {
			var incidentenEditArray = YAHOO.util.Dom.getElementsByClassName('menuitem','option','OverzichtIncidentenSelect'+incidentCounter);
			var config = {
				label: "Openen",
				onclick: showIncident,
				menu: incidentenEditArray,
				containerid: document.getElementById('OverzichtIncidenten' + incidentCounter),
				arguments: {
					debnr: document.getElementById('OverzichtIncidenten' + incidentCounter + '_debnr').value,
					incidentnr: document.getElementById('OverzichtIncidenten' + incidentCounter + '_incidentnr').value,
					email: document.getElementById('OverzichtIncidenten' + incidentCounter + '_email').value
				}
			};
			new bncEditButton(config);
			incidentCounter++;
		}
	}	
	if (document.getElementById("incidentenoverzicht")) {
		document.getElementById("incidentenoverzicht").innerHTML = o.responseText;
	}
}
//GRIP - show all incidents including closed and old incidents no:145
function showAllincidenten() {
	var gripafdeling = document.getElementById("afdelingen").options[document.getElementById("afdelingen").selectedIndex].value;
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadIncidenten,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&HttpProxy_gripafdeling="+gripafdeling+"&HttpProxy_oldlist=1&noCache="+now.getTime(), callback, "");

	bncAjaxConnection({
 		url:   "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&HttpProxy_gripafdeling="+gripafdeling+"&HttpProxy_oldlist=1",
 		method:'GET',
 		success: onLoadIncidenten,
		failure: onFailure
 	});}
//GRIp - prints the deliver form for the incident no:153
function printDeliveryform(incidentnr){
	var now = new Date();
	var callback =
	{
		success:function(o){
			surl = "/wobjects/technische-dienst/deliveryform-print?HttpProxy_fn=print&HttpProxy_incidentnr="+incidentnr+"&op=makePrintable&HttpProxy_print=1&nocache=" + now.getTime();
			popitup(surl);
		},
		upload:function(o){
			surl = "/wobjects/technische-dienst/deliveryform-print?HttpProxy_fn=print&HttpProxy_incidentnr="+incidentnr+"&op=makePrintable&HttpProxy_print=1&nocache=" + now.getTime();
			popitup(surl);
		},
		failure:onFailure,
		timeout:180000
	}
	var surl = gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.td.crm.BWIncidentenWizardBean&json=1&menuid="+menuid+"&fn=update&noCache="+now.getTime();
	var formObject = document.getElementById("incidentenwizardform",true,true);
	YAHOO.util.Connect.setForm(formObject,true,true);
	YAHOO.util.Connect.asyncRequest("POST", surl, callback, null);
}
function selectGripAfdeling(selobj) {
	var gripafdeling = selobj.options[selobj.selectedIndex].value;
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadIncidenten,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&HttpProxy_gripafdeling="+gripafdeling+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url: "/wobjects/crm/incidenten?HttpProxy_fn=select&HttpProxy_debnr="+document.getElementById("deb_nr").value+"&HttpProxy_gripafdeling="+gripafdeling,
 		method:'GET',
 		success: onLoadIncidenten,
		failure: onFailure
 	});
}
function reloadAfdeling(selobj) {
	var gripafdeling = selobj.options[selobj.selectedIndex].value;
	showGripMedewerkers(gripafdeling);
//	var now = new Date();
//	var callback =
//	{
//	  success: onReloadCompetenties,
//	  failure: onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Competenties&zoek=&filter="+myescape("afdelingnr="+gripafdeling)+"&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
//	var callback =
//	{
//	  success: onReloadRepatypes,
//	  failure: onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Repatypes&zoek=&filter="+myescape("afdelingnr="+gripafdeling)+"&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Competenties&zoek=&filter="+myescape("afdelingnr="+gripafdeling)+"&json=1&translatejson=1&menuid="+menuid,
 		method:'GET',
 		success: onReloadCompetenties,
 		failure: onFailure
 	});
	bncAjaxConnection({
 		url: gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Repatypes&zoek=&filter="+myescape("afdelingnr="+gripafdeling)+"&json=1&translatejson=1&menuid="+menuid,
 		method:'GET',
 		 success: onReloadRepatypes,
 		  failure: onFailure
 	});
}
function showGripMedewerkers(gripafdeling) {
	var adivs = YAHOO.util.Selector.query(".gripmedewerkersafdeling");
	for(var i=0; i<adivs.length; i++) {
		adivs[i].style.display = "none";	
	}
	document.getElementById("gripmedewerkersafdeling_"+gripafdeling).style.display = "";
}
function onReloadCompetenties(o) {
	var obj=eval("("+o.responseText+")");
	var cmpobj = document.getElementById("inc_competentienr");
	if(cmpobj) {
		cmpobj.options.length = 1;
		for(var i=0; i<obj["zoekresultaten"].length; i++) {
			var nr = obj["zoekresultaten"][i].xml_competenties_nr;
			var naam = obj["zoekresultaten"][i].xml_competenties_naam;
			var option = document.createElement("option");
			option.value = nr;
			option.text = naam;
			cmpobj.options[cmpobj.options.length] =  option;
		}	
	}
	setIncidentTarief();
}
function onReloadRepatypes(o) {
	var obj=eval("("+o.responseText+")");
	var rtobj = document.getElementById("inc_repatypenr");
	if(rtobj) {
		rtobj.options.length = 1;
		for(var i=0; i<obj["zoekresultaten"].length; i++) {
			var nr = obj["zoekresultaten"][i].xml_repatypes_nr;
			var naam = obj["zoekresultaten"][i].xml_repatypes_naam;
			var option = document.createElement("option");
			option.value = nr;
			option.text = naam;
			rtobj.options[rtobj.options.length] =  option;
		}	
	}
	setIncidentType("0");
}
function onLoadIncidentEdit() {
	// initialiseer incident edit scherm
	if(document.getElementById('inc_uitvoerdatum')!=null) {
		Calendar.setup({
	        inputField : "inc_uitvoerdatum",
	        ifFormat : "%d-%m-%Y %H:%M",
	        showsTime : true,
	        timeFormat : "24",
	        mondayFirst : true,
	        weekNumbers: true
	        });
	}
	if(document.getElementById('inc_datum_gereed')!=null) {
		Calendar.setup({
	        inputField : "inc_datum_gereed",
	        ifFormat : "%d-%m-%Y",
	        showsTime : false,
	        timeFormat : "24",
	        mondayFirst : true,
	        weekNumbers: true
	        });
	}
	// initialiseer de tooltips bij notities
	var tooltipCounter = 1;
	while(document.getElementById("incidentenTooltip"+tooltipCounter)!=null) {
		var incidentenTooltipText = document.getElementById("incidentenTooltipText"+tooltipCounter).innerHTML;
	   	var inctt = new YAHOO.widget.Tooltip("incidentenTooltipDiv"+tooltipCounter,
								{ context:"incidentenTooltip"+tooltipCounter,
								  showDelay: 500,
								  autodismissdelay: 60000,
								  width: "600px",
								  text: incidentenTooltipText,
								  zindex:100001 });
		// tooltip object wordt aan html object gekoppeld om later weer te kunnen verwijderen								 
		document.getElementById("incidentenTooltip"+tooltipCounter).tooltipObj = inctt;
		tooltipCounter++;
	}
	// initialiseer de autocomplete voor debiteuren
	if(document.getElementById("inc_debinput")!=null) {
		var debSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_debcode", "xml_debiteuren_nr"];
		var debXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
		// disable the cache 
		debXHRDataSource.maxCacheEntries = 0;	
	    debXHRDataSource.connXhrMode = "queueRequests";	
		debXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		debXHRDataSource.scriptQueryParam = "zoek";
		debXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=debiteuren.debcode,debiteuren.src_code,debiteuren.naam,debiteuren.adres,debiteuren.postcode,debiteuren.plaats,debiteuren.email,debiteuren.telefoon,adressen.naam&distinct=debiteuren.nr,debiteuren.debcode,debiteuren.naam,debiteuren.src_code,debiteuren.plaats&joinclause=left join bncweb.adressen on adressen.debcode=debiteuren.debcode&filter="+myescape("debiteuren.actief=1")+"&order=debiteuren.naam&limit=25&json=1&translatejson=1&menuid="+menuid;
		var debAutoCompCRM = new YAHOO.widget.AutoComplete("inc_debinput","inc_debcontainer", debXHRDataSource);
		debAutoCompCRM.minQueryLength = 2;
		debAutoCompCRM.maxResultsDisplayed = 25;
		debAutoCompCRM.formatResult = function(aResultItem, sQuery) {
			var naam = aResultItem[0];
			var debcode = aResultItem[1];
			var aMarkup = ["<div>",
				debcode,
				": <b>",
				naam,
				"</b>",
				"</div>"];
			return (aMarkup.join(""));
		};
		var debSelectHandler = function(sType, aArgs) {
			var debnr = aArgs[2][2];
			var debcode = aArgs[2][1];
			var debnaam = aArgs[2][0];
			document.getElementById("inc_debnr").value = debnr;
			document.getElementById("inc_debcode").value = debcode;
			document.getElementById("inc_showdebnaam").innerHTML = debnaam;
			document.getElementById("inc_debinput").value = "";
			document.getElementById("inc_debinput").style.display = "none";
			
			var onLoadContactpersonen = function(o) {
				var obj = eval("("+o.responseText+")");
				var selcpobj = document.getElementById("inc_contactnr");
				for(var i=0; i<obj["zoekresultaten"].length; i++) {
					/*
					 * nieuwe option aanmaken per contactpersoon
					 */
					var nopt = document.createElement("option");
					nopt.value = obj["zoekresultaten"][i]["xml_gebruikers_nr"];
					nopt.text =
						((obj["zoekresultaten"][i]["xml_gebruikers_voornaam"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_voornaam"] + " ":"") +
						((obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"]!=null)?obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"] + " ":"") +
									obj["zoekresultaten"][i]["xml_gebruikers_achternaam"];
					selcpobj.options.add(nopt);
					/*
					 * nieuwe hidden inputs aanmaken per contactpersoon
					 */
					var tdadrinp = document.createElement("input");
					tdadrinp.id = "inc_contactadres_"+nopt.value;
					tdadrinp.type = "hidden";
					tdadrinp.value = (obj["zoekresultaten"][i]["xml_gebruikers_adresnr"] || "0");
					document.getElementById("inc_contactinfocontainer").appendChild(tdadrinp);
					var tdnaaminp = document.createElement("input");
					tdnaaminp.id = "inc_contactnaam_"+nopt.value;
					tdnaaminp.type = "hidden";
					tdnaaminp.value = (obj["zoekresultaten"][i]["xml_gebruikers_voornaam"] || "")+" "+(obj["zoekresultaten"][i]["xml_gebruikers_tussenvoegsel"] || "")+" "+(obj["zoekresultaten"][i]["xml_gebruikers_achternaam"] || "");
					document.getElementById("inc_contactinfocontainer").appendChild(tdnaaminp);
					var tdemailinp = document.createElement("input");
					tdemailinp.id = "inc_contactemail_"+nopt.value;
					tdemailinp.type = "hidden";
					tdemailinp.value = (obj["zoekresultaten"][i]["xml_gebruikers_email"] || "0");
					document.getElementById("inc_contactinfocontainer").appendChild(tdemailinp);
					var tdtelinp = document.createElement("input");
					tdtelinp.id = "inc_contacttelefoon_"+nopt.value;
					tdtelinp.type = "hidden";
					tdtelinp.value = (obj["zoekresultaten"][i]["xml_gebruikers_telefoon"] || "0");
					document.getElementById("inc_contactinfocontainer").appendChild(tdtelinp);
				}
			};
			var onLoadAdressen = function(o) {
				var obj = eval("("+o.responseText+")");
				var seladrobj = document.getElementById("inc_adresnr");
				for(var i=0; i<obj["zoekresultaten"].length; i++) {
					/*
					 * nieuwe option aanmaken per adres
					 */
					var nopt = document.createElement("option");
					nopt.value = obj["zoekresultaten"][i]["xml_adressen_nr"];
					nopt.text =
						obj["zoekresultaten"][i]["xml_adressen_adres"] + ", " +
						((obj["zoekresultaten"][i]["xml_adressen_postcode"]!=null)?obj["zoekresultaten"][i]["xml_adressen_postcode"] + " ":"") +
						obj["zoekresultaten"][i]["xml_adressen_plaats"];
					seladrobj.options.add(nopt);
				}
			};
			onLoadNiveaus = function(o) {
				/*
				 * de niveaus worden opnieuw gelezen om de tarieven opnieuw te bepalen
				 */
				var obj = eval("("+o.responseText+")");
				for(var i=0; i<obj["zoekresultaten"].length; i++) {
					var tip = document.getElementById("inc_niveautarief_"+obj["zoekresultaten"][i].xml_niveaus_nr);
					if(tip!=null) {
						tip.value = obj["zoekresultaten"][i].xml_niveaus_tarief;	
					}
				}
				setIncidentTarief();
			}
//			var now = new Date();
//			var callback =
//			{
//				success:onLoadContactpersonen,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debcode+"&fields=gebruikers.debcode&joinclause=join bnc.groupings on gebruikers.userid=groupings.userid&filter="+myescape("gebruikers.debcode='"+debcode+"' and gebruikers.deactivated=0 and groupings.groupId='bnc-extranet-0008_____'")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
//			callback =
//			{
//				success:onLoadAdressen,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Adressen&zoek="+debcode+"&fields=adressen.debcode&filter="+myescape("adressen.debcode='"+debcode+"' ")+"&order=adressen.plaats,adressen.adres&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
//			callback =
//			{
//				success:onLoadNiveaus,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Niveaus&zoek=&fields=&debcode="+debcode+"&order=niveaus.naam&json=1&translatejson=1&menuid="+menuid+"&nocache="+now.getTime(), callback, "");
			bncAjaxConnection({
		 		url:gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&zoek="+debcode+"&fields=gebruikers.debcode&joinclause=join bnc.groupings on gebruikers.userid=groupings.userid&filter="+myescape("gebruikers.debcode='"+debcode+"' and gebruikers.deactivated=0 and groupings.groupId='bnc-extranet-0008_____'")+"&order=gebruikers.voornaam, gebruikers.achternaam&json=1&translatejson=1&menuid="+menuid,
		 		method:'GET',
		 		success:onLoadContactpersonen,
				failure:onFailure
		 	});
			bncAjaxConnection({
		 		url:gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Adressen&zoek="+debcode+"&fields=adressen.debcode&filter="+myescape("adressen.debcode='"+debcode+"' ")+"&order=adressen.plaats,adressen.adres&json=1&translatejson=1&menuid="+menuid,
		 		method:'GET',
		 		success:onLoadAdressen,
				failure:onFailure
		 	});
			bncAjaxConnection({
		 		url:gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Niveaus&zoek=&fields=&debcode="+debcode+"&order=niveaus.naam&json=1&translatejson=1&menuid="+menuid,
		 		method:'GET',
		 		success:onLoadNiveaus,
				failure:onFailure
		 	});
		};
		debAutoCompCRM.itemSelectEvent.subscribe(debSelectHandler);
	}
	// initialiseer de autocomplete datatable voor serienummers
	if(document.getElementById("inc_serienummer_zoekcontainer")!=null) {
		var incidentnr = 0;
		if(document.getElementById("inc_incidentnr")!=null) {
			incidentnr = document.getElementById("inc_incidentnr").value;
		}
		var serSchema = ["zoekresultaten", "xml_serienummers_serienummer", "xml_serienummers_productcode"];
		var serXHRDataSource = new YAHOO.widget.DS_XHR(gateway, serSchema);
		// disable the cache 
		serXHRDataSource.maxCacheEntries = 0;	
	    serXHRDataSource.connXhrMode = "queueRequests";	
		serXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		serXHRDataSource.scriptQueryParam = "zoek";
		serXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Serienummers&fields=serienummer,productcode&order=serienummers.serienummer&json=1&translatejson=1&menuid="+menuid;
		var serAutoComp = new YAHOO.widget.AutoComplete("inc_serienummer","inc_serienummer_zoekcontainer", serXHRDataSource);
		serAutoComp.minQueryLength = 3;
		serAutoComp.formatResult = function(aResultItem, sQuery) {
			var serienummer = aResultItem[0];
			var productcode = aResultItem[1];
			var aMarkup = ["<div>",
				serienummer,
				" - ",
				productcode,
				"</div>"];
			return (aMarkup.join(""));
		};
		var serSelectHandler = function(sType, aArgs) {
			document.getElementById("inc_productcode").value = aArgs[2][1];
		};
		serAutoComp.itemSelectEvent.subscribe(serSelectHandler);
		
		createSerienummerDatatable();
	}
	// bepaal zichtbaarheid div's m.b.t. hardwarestoring en kosten
	if(document.getElementById('inc_repatypenr')!=null) {
		setIncidentType(document.getElementById('inc_repatypenr').options[document.getElementById('inc_repatypenr').selectedIndex].value);
	}
	autoCompleteArtikelen();
}
function changeInputType(node, type) {
	var nn = document.createElement("input");
	nn.className = "incidentselector";
	nn.type = type;
	node.parentNode.replaceChild(nn, node);
	nn.id = node.id;
	nn.name = node.name;
	nn.value = node.value;
}
function setIncidentEditMode(mode) {
	/*
	 * Door deze functie wordt de editmode gezet op 'edit' of op 'uitleveren'. In het geval
	 * van 'edit' willen we een overzicht van alle incidenten waaruit we via een radiobutton
	 * een kunnen selecteren; in het geval van 'uitleveren' moeten alleen de uit te leveren
	 * incidenten worden getoond met checkboxes, zodat we er meer dan een kunnen selecteren.
	 */
	if(mode=="edit") {
		var aselectors = YAHOO.util.Selector.query(".incidentselector");
		for(var i=0; i<aselectors.length; i++) {
			changeInputType(aselectors[i],"radio");
		}
		// nog een keer opvragen aangezien de oorspronkelijke elementen zijn vervangen
		aselectors = YAHOO.util.Selector.query(".incidentselector");
		if(aselectors.length>0) {
			aselectors[0].checked=true;
		}
		var ashow = YAHOO.util.Selector.query(".incidentenedit");
		for(var i=0; i<ashow.length; i++) {
			ashow[i].style.display="table-row";
		}
	} else {
		var aselectors = YAHOO.util.Selector.query(".incidentselector");
		for(var i=0; i<aselectors.length; i++) {
			changeInputType(aselectors[i],"checkbox");
		}
		var ashow = YAHOO.util.Selector.query(".incidentenedit");
		for(var i=0; i<ashow.length; i++) {
			ashow[i].style.display="none";
		}
	}
}
function readSerienummerDatatable() {
	var zoek = "-1";
	if(document.getElementById("inc_serienummer").value.length>0) {
		zoek = document.getElementById("inc_serienummer").value;
	}
	globalIncDatasource.sendRequest("&zoek="+zoek, globalIncDatatable.onDataReturnInitializeTable, globalIncDatatable);
}
function createSerienummerDatatable() {
		var incidentnr = 0;
		if(document.getElementById("inc_incidentnr")!=null) {
			incidentnr = document.getElementById("inc_incidentnr").value;
		}
        var incidentBekijken = function(elCell, oRecord, oColumn, oData) {
        	 //document.location.href='/#location='+escape('/wobjects/technische-dienst/incident-status?HttpProxy_fn=view&HttpProxy_incidentnr='+incidentnr);
			elCell.innerHTML = '<a onclick="popitup(\'/wobjects/technische-dienst/incident-status?HttpProxy_fn=setedit&HttpProxy_keynr='+oRecord.getData("xml_incidenten_incidentnr")+'\');"><img src="/framework/afbeeldingen/layout/vergrootglas.png" style="border: none;" /></a>';
		}
        var incidentOpenen = function(elCell, oRecord, oColumn, oData) {
			elCell.innerHTML = '<a onclick="editIncident('+oRecord.getData("xml_incidenten_incidentnr")+');"><img src="/framework/afbeeldingen/layout/openen.png" style="border: none;" /></a>';
		}
        var incSerienummersColumnDefs = [
            {key:"xml_incidenten_incidentnr", label:"Meldingnr", sortable:true},
            {key:"xml_incidenten_serienummer", label:"Serienummer", sortable:true},
            {key:"xml_incidenten_omschrijving", label:"Omschrijving", sortable:true},
            {key:"xml_incidenten_invoerdatum", label:"Datum", sortable:true},
            {key:"xml_incidenten_status_tekst", label:"Status", sortable:false},
			{label:"",formatter:incidentBekijken},
			{label:"",formatter:incidentOpenen}
        ];
        globalIncDatasource = new YAHOO.util.DataSource(gateway+"?appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bnctd.Incidenten&fields=incidenten.serienummer&joinclause=left join bnctd.repatypes on incidenten.repatypenr=repatypes.nr&filter="+myescape("incidenten.debcode='"+document.getElementById("inc_debcode").value+"' and incidenten.incidentnr<>"+incidentnr+" and incidenten.deleted=0 and repatypes.hardwarestoring=1")+"&order=incidenten.incidentnr&json=1&translatejson=1&menuid="+menuid);
		globalIncDatasource.responseType = YAHOO.util.DataSource.TYPE_JSON;
		globalIncDatasource.connXhrMode = "queueRequests";
		globalIncDatasource.responseSchema = {
            resultsList: "zoekresultaten",
            fields: [
				{key:"xml_incidenten_incidentnr"},
				{key:"xml_incidenten_serienummer"},
				{key:"xml_incidenten_omschrijving"},
				{key:"xml_incidenten_invoerdatum"},
				{key:"xml_incidenten_status_tekst"}
			],
			metaFields: {
				errorMessage: "xml_error"
			}			
		};					
		var initialZoek = "absolutely_no_match";
		if(document.getElementById("inc_serienummer").value.length>0) {
			initialZoek = document.getElementById("inc_serienummer").value;
		}
		// DataTable instance
		globalIncDatatable = new YAHOO.widget.DataTable("inc_serienummercontainer",
									incSerienummersColumnDefs,
									globalIncDatasource,
									{initialRequest: "&zoek="+initialZoek });
}
function setIncidentType(repatypenr) {
	/*
	 * de prioriteit dropdown box krijgt de waarde die bij het type hoort
	 */
	var prioriteit = "0";
	if(document.getElementById("repatypeprioriteit"+repatypenr)!=null) {
		prioriteit = document.getElementById("repatypeprioriteit"+repatypenr).value;
	}
	var aprioriteiten = document.getElementById("inc_prioriteit").options;
	for(var i=0; i<aprioriteiten.length; i++) {
		if(aprioriteiten[i].value == prioriteit) {
			document.getElementById("inc_prioriteit").selectedIndex = i;
			break;
		}
	}
	/*
	 * als het type 'hardwarestoring' is moet de 'showhardwarevelden' div zichtbaar
	 * zijn, anders niet; als het type 'hardwarestoring' is OF een externe leverancier is
	 * geselecteerd moeten de kosten worden getoond
	 */
	var ishardwarestoring = (document.getElementById("repatypehardwarestoring"+repatypenr)!=null);
	document.getElementById("showhardwarestoring").style.display = (ishardwarestoring)?"block":"none";
	if(document.getElementById("showgeenhardwarestoring")!=null) {
		document.getElementById("showgeenhardwarestoring").style.display = (ishardwarestoring)?"none":"block";
		document.getElementById("inc_showkosten").style.display =
				(ishardwarestoring || document.getElementById("inc_externleveranciernr").selectedIndex!=0)
				?"block":"none";
	}
}
function setIncidentUitvoerdatum(prioriteit) {
	var uitvoerdatum = document.getElementById("inc_prioriteit_tijdstip"+prioriteit).value;
	document.getElementById("inc_uitvoerdatum").value = uitvoerdatum;
}
function setIncidentenInfo(id) {
	/*
	 * toon de info behorende bij geselecteerd id en verberg de rest
	 */
	var seloptions = document.getElementById(id).options;
	var selindex = document.getElementById(id).selectedIndex;
	/*
	 *  optie 0 slaan we over, die geeft aan 'Niet ingesteld'...
	 */
	for(var i=1; i<seloptions.length; i++) {	
		document.getElementById(id+"info"+seloptions[i].value).style.display =
			(i == selindex) ? "block" : "none";
	}
}
function setIncidentenAdres() {
	/*
	 * selecteer het standaard adres dat bij de geselecteerde gebruiker hoort
	 */
	var contactoptions = document.getElementById('inc_contactnr').options;
	var gebruikernr = contactoptions[document.getElementById('inc_contactnr').selectedIndex].value;
	if(gebruikernr!=0) {
		var adresnr = document.getElementById("inc_contactadres_"+gebruikernr).value;
		var naam = document.getElementById("inc_contactnaam_"+gebruikernr).value;
		var email = document.getElementById("inc_contactemail_"+gebruikernr).value;
		var telefoon = document.getElementById("inc_contacttelefoon_"+gebruikernr).value;
		var adresoptions = document.getElementById("inc_adresnr").options;
		for(var i=0; i<adresoptions.length; i++) {
			if(adresoptions[i].value == adresnr) {
				document.getElementById("inc_adresnr").selectedIndex = i;
				break;
			}
		}
		document.getElementById("incidenten_info_header_contactnaam").innerHTML = naam;
		document.getElementById("incidenten_info_header_contactemail").innerHTML = "<a href=\"mailto:"+email+"\">"+email+"</a>";
		document.getElementById("incidenten_info_header_contacttel").innerHTML = telefoon;
	} else {
		document.getElementById("inc_adresnr").selectedIndex = 0;
		document.getElementById("incidenten_info_header_contactnaam").innerHTML = "";
		document.getElementById("incidenten_info_header_contactemail").innerHTML = "";
		document.getElementById("incidenten_info_header_contacttel").innerHTML = "";
	}
	/*
	 * toon de adresinfo van het geselecteerde adres
	 */
	//setIncidentenInfo("inc_adresnr");
}
//GRIp - to set the delfacturatie whent he parent incident is deelfacturatie
function setIncidentDeelfacturatie(id) {
	if ((document.getElementById("inc_parentdeelfacturatie" + id) != null)) {
		document.getElementById("inc_deelfacturatiecheckbox").checked = true;
	}
}
//GRIp - to set the termijn facturatie when the order number is linked to it.
function setIncidentTermijnfacturatie(value) {
	document.getElementById('inc_ordernr').value=value;
	//document.getElementById("inc_termijnfacturatiecheckbox").checked = ((document.getElementById('inc_ordernr').value)!="");
}
/**
 * Bepaal het tarief van het niveau dat aan de geselecteerde competentie is gekoppeld
 */
function setIncidentTarief() {
	var competentieidx = document.getElementById("inc_competentienr").selectedIndex;
	var competentienr = document.getElementById("inc_competentienr").options[competentieidx].value;
	if(competentieidx<=0) {
		document.getElementById("inc_urentarief").value = "0,00";
	} else {
		var niveaunr = document.getElementById("inc_competenties_niveaunr_"+competentienr).value;
		var tariefobj = document.getElementById("inc_niveautarief_"+niveaunr);
		document.getElementById("inc_urentarief").value = tariefobj.value;
	}
}
function validateIncidenten(curPanel) {
	if(curPanel==null||curPanel==1) {
		/*
		 * alleen valideren als inc_debcode bestaat (anders zie je het Uitleveren overzicht)
		 */
		if(document.getElementById("inc_debcode")!=null) {
			if(document.getElementById("inc_debcode").value == "") {
				alert("Debiteur moet worden ingevuld");
				return false;
			}
			if(document.getElementById("inc_omschrijving").value == "") {
				alert("Omschrijving moet worden ingevuld");
				return false;
			}
			if(document.getElementById("inc_adresnr").selectedIndex == 0) {
				alert("Locatie moet worden ingesteld");
				return false;
			}
			if(document.getElementById("inc_competentienr")!=null && document.getElementById("inc_competentienr").selectedIndex == 0) {
				alert("Competentie moet worden ingesteld");
				return false;
			}
			if(document.getElementById("inc_repatypenr")!=null && document.getElementById("inc_repatypenr").selectedIndex == 0) {
				alert("Type werkzaamheden moet worden ingesteld");
				return false;
			}
			if(document.getElementById("inc_klacht").value == "") {
				alert("Klacht moet worden ingevuld");
				return false;
			}
		} else {
			if( document.getElementById("inc_selcode")!=null &&
				document.getElementById("inc_selcode").value == "") {

				alert("Selcode moet worden ingevuld");
				return false;
			}
		}
	}
	if(curPanel==null||curPanel==2) {
		/*
		 * als "showhardwarestoring" bestaat, dan zijn we niet aan het uitleveren; nu
		 * moet e.e.a. worden gevalideerd
		 */
		if(document.getElementById("showhardwarestoring")!=null) {
			if(document.getElementById("showhardwarestoring").style.display != "none") {
				/*if(	document.getElementById("inc_rmaleveranciernr")!=null &&
				   	document.getElementById("inc_rmaleveranciernr").value == "0") {
					alert("Leverancier moet worden geselecteerd");
					return false;
				}*/
				if(document.getElementById("inc_serienummer").value == "") {
					alert("Serienummer moet worden ingevoerd");
					return false;
				}
				if(document.getElementById("inc_productcode").value == "") {
					alert("Productcode moet worden ingevoerd");
					return false;
				}
				if( document.getElementById("inc_sendleverancieremailhardware")!=null &&
					document.getElementById("inc_sendleverancieremailhardware").value == "yes" &&
					document.getElementById("inc_rmaleveranciernr").value == "0") {
					alert("Leverancier moet worden geselecteerd om te kunnen emailen");
					return false;
				}
			} else {
				if( document.getElementById("inc_sendleverancieremailextern")!=null &&
					document.getElementById("inc_sendleverancieremailextern").value == "yes" &&
					document.getElementById("inc_externleveranciernr").value == "0") {
					alert("Leverancier moet worden geselecteerd om te kunnen emailen");
					return false;
				}
			}
		}
	}
	/*
	 * omdat het aantal panels niet altijd gelijk is valideren we verder alleen bij submitten
	 * van de form
	 */
	if(curPanel==null) {
		// minstens 1 medewerker moet zijn geselecteerd, of 'Alle medewerkers'
		/*if(document.getElementById("allemedewerkers")!=null && !document.getElementById("allemedewerkers").checked) {
			var bstatus = false;
			var aboxes = YAHOO.util.Selector.query(".medewerkercheckbox");
			for(var i=0; i<aboxes.length; i++) {
				if(aboxes[i].checked) {
					bstatus = true;
				}
			}
			if(!bstatus) {
				alert("Selecteer minstens ï¿½ï¿½n medewerker");
				return false;
			}
		}*/
	}
	return true;
}
function onCloseIncidentenEdit() {
	/*
	 * als de dialog wordt gesloten moeten de tooltips worden verwijderd
	 */
	var tooltipCounter = 1;
	while(document.getElementById("incidentenTooltip"+tooltipCounter)!=null) {
		document.getElementById("incidentenTooltip"+tooltipCounter).tooltipObj.destroy();
		tooltipCounter++;
	}
}
// als in incident-status is ge-edit, de inhoud van het getoonde incident verversen
function verversIncident(incidentnr) {
//	var now = new Date();
//	var callback =
//	{
//		success:onVerversIncident,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", "/wobjects/technische-dienst/incident-status?HttpProxy_fn=view&HttpProxy_incidentnr="+incidentnr+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:"/wobjects/technische-dienst/incident-status?HttpProxy_fn=view&HttpProxy_incidentnr="+incidentnr,
 		method:'GET',
 		success:onVerversIncident,
		failure:onFailure
 	});
}
function onVerversIncident(o) {
	var container = document.getElementById("pageId_wobjects_technische-dienst_incident-status").childNodes[0];
	container.innerHTML = o.responseText;
}
// -- offertezaken
function kiesGebruikerOfferte(userid) {
//	var now = new Date();
//	var callback =
//	{
//		success:onLoadOfferte,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppOfferte&json=1&menuid="+menuid+"&ac=editofferte&fn=selectgebruiker&userid="+myescape(userid)+"&activearea="+getActivearea()+"&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:gateway+"?appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppOfferte&json=1&menuid="+menuid+"&ac=editofferte&fn=selectgebruiker&userid="+myescape(userid)+"&activearea="+getActivearea(),
 		method:'GET',
 		success:onLoadOfferte,
		failure:onFailure
 	});
}
function onLoadOfferte(o) {
	var obj=eval("("+o.responseText+")");
	feedback("Offerte voor "+obj["xml.users.volledigenaam"]+" van "+obj["xml.users.debnaam"]);
	if(obj["xml.offerteregels.aantal"]!=null && parseInt(obj["xml.offerteregels.aantal"])>0) {
		if(confirm("Prijzen actualiseren?")) {
//			var now = new Date();
//			var callback =
//			{
//				success:onActualiseren,
//				failure:onFailure
//			}
//			YAHOO.util.Connect.asyncRequest("GET", gateway+"?appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppOfferte&json=1&menuid="+menuid+"&ac=editofferte&fn=restaffel&activearea="+getActivearea()+"&noCache="+now.getTime(), callback, "");
			bncAjaxConnection({
		 		url:gateway+"?appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppOfferte&json=1&menuid="+menuid+"&ac=editofferte&fn=restaffel&activearea="+getActivearea(),
		 		method:'GET',
		 		success:onActualiseren,
				failure:onFailure
		 	});
		} else {
			updateOverzichtEnOfferte();
		}
	} else {
		updateOverzichtEnOfferte();
	}
}
function onActualiseren(o) {
	updateOverzichtEnOfferte();
}
function updateOverzichtEnOfferte() {
	if (document.getElementById("pageId_offerte") != null) {
		// offertepagina bestaat, deze verwijderen
		if (document.getElementById("HttpProxy_emailtekst_parent") != null) {
			tinyMCE.execCommand('mceRemoveControl', false, 'HttpProxy_emailtekst');
		}
		document.getElementById("pageId_offerte").parentNode.removeChild(document.getElementById("pageId_offerte"));
	}
	updateOverzicht();
}
// init	
function filterAppend(actief) {
	return "&filter="+myescape("(actief="+actief+" or prospect=1)");
}
function initAutocompletes(pfDeb,pfGebruiker,pfZoekcode,selectDebiteur) {
	// define autocomplete
	var debSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_nr", "xml_debiteuren_debcode", "xml_debiteuren_adres", "xml_debiteuren_postcode", "xml_debiteuren_plaats", "xml_debiteuren_telefoon", "xml_debiteuren_src_code"];
	if(globalDebXHRDataSource==null) {
		globalDebXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
		// disable the cache 
		globalDebXHRDataSource.maxCacheEntries = 0;	
		globalDebXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		globalDebXHRDataSource.scriptQueryParam = "zoek";
	    globalDebXHRDataSource.connXhrMode = "queueRequests";	
		queryappend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=debiteuren.debcode,debiteuren.src_code,debiteuren.naam,debiteuren.adres,debiteuren.postcode,debiteuren.plaats,debiteuren.email,debiteuren.telefoon,adressen.naam&distinct=debiteuren.nr,debiteuren.debcode,debiteuren.naam,debiteuren.src_code,debiteuren.adres,debiteuren.postcode,debiteuren.plaats&joinclause=left join bncweb.adressen on adressen.debcode=debiteuren.debcode&order=debiteuren.naam&limit=25&json=1&translatejson=1&menuid="+menuid;
		globalDebXHRDataSource.scriptQueryAppend = queryappend+filterAppend(1)+" and (adressen.naam<>'' or adressen.standaard=1)";
	}
	var debAutoCompCRM = new YAHOO.widget.AutoComplete(pfDeb+"Input",pfDeb+"Container", globalDebXHRDataSource);
	debAutoCompCRM.minQueryLength = 2;
	debAutoCompCRM.maxResultsDisplayed = 25;
	debAutoCompCRM.formatResult = function(aResultItem, sQuery) {
		var naam = aResultItem[0];
		var debcode = aResultItem[2];
		var srccode = aResultItem[7];
		var adres = (aResultItem[3]!=null)?aResultItem[3]:"";
		var plaats = ((aResultItem[4]!=null)?aResultItem[4]:"")+" "+((aResultItem[5]!=null)?aResultItem[5]:"");
		var aMarkup = ["<div style=\"height: 15px; line-height: 15px;\"><div style=\"float: left; width: 35px;\">",
			debcode,
			"</div><div style=\"float: left; width: 95px; overflow: hidden; padding-left: 5px; \">",
			srccode,
			"</div><div style=\"float: left; font-weight: bold; width: 225px; overflow: hidden; padding-left: 5px; \">",
			naam,
			"</div><div style=\"float: left; width: 175px; overflow: hidden; padding-left: 10px; \">",
			adres,				
			"</div><div style=\"float: left; width: 175px; overflow: hidden; padding-left: 5px; \">",
			plaats,
			"</div></div>"];
		return (aMarkup.join(""));
	};
	var itemSelectHandler = function(sType, aArgs) {
		selectDebiteur(aArgs[2][1],0);
	};
	debAutoCompCRM.itemSelectEvent.subscribe(itemSelectHandler);
	
	// define autocomplete voor zoeken op zoekcode
	var zoekcodeSchema = ["zoekresultaten", "xml_debiteuren_naam", "xml_debiteuren_nr", "xml_debiteuren_debcode", "xml_debiteuren_adres", "xml_debiteuren_postcode", "xml_debiteuren_plaats", "xml_debiteuren_telefoon", "xml_debiteuren_src_code"];
	zoekcodeXHRDataSource = new YAHOO.widget.DS_XHR(gateway, debSchema);
	// disable the cache 
	zoekcodeXHRDataSource.maxCacheEntries = 0;	
    zoekcodeXHRDataSource.connXhrMode = "queueRequests";	
	zoekcodeXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
	zoekcodeXHRDataSource.scriptQueryParam = "zoek";
	zoekcodequeryappend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Debiteuren&fields=src_code&order=src_code&limit=50&json=1&translatejson=1&menuid="+menuid;
	zoekcodeXHRDataSource.scriptQueryAppend = zoekcodequeryappend+filterAppend(1);
	zoekcodeAutoComp = new YAHOO.widget.AutoComplete(pfZoekcode+"Input",pfZoekcode+"Container", zoekcodeXHRDataSource);
	zoekcodeAutoComp.minQueryLength = 2;
	zoekcodeAutoComp.maxResultsDisplayed = 50;
	zoekcodeAutoComp.formatResult = function(aResultItem, sQuery) {
		var naam = aResultItem[0];
		var debcode = aResultItem[2];
		var srccode = aResultItem[7];
		var adres = (aResultItem[3]!=null)?aResultItem[3]:"";
		var plaats = ((aResultItem[4]!=null)?aResultItem[4]:"")+" "+((aResultItem[5]!=null)?aResultItem[5]:"");
		var aMarkup = ["<div><div style=\"float: left; width: 95px; overflow: hidden;\">",
			srccode,
			"</div><div style=\"float: left; width: 35px;\">",
			debcode,
			"</div><div style=\"float: left; font-weight: bold; \">",
			naam,
			"</div><div style=\"float: left; padding-left: 5px; \">",
			adres,				
			"</div><div style=\"float: left; padding-left: 5px; \">",
			plaats,
			"</div><div class=\"cleaner\">&nbsp;</div></div>"];
		return (aMarkup.join(""));
	};
	var zoekcodeSelectHandler = function(sType, aArgs) {
		selectDebiteur(aArgs[2][1],0);
	};
	zoekcodeAutoComp.itemSelectEvent.subscribe(zoekcodeSelectHandler);		

	var gebruikerSchema = ["zoekresultaten", "xml_gebruikers_debnaam", "xml_gebruikers_debcode", "xml_gebruikers_voornaam", "xml_gebruikers_tussenvoegsel", "xml_gebruikers_achternaam"];
	gebruikerXHRDataSource = new YAHOO.widget.DS_XHR(gateway, gebruikerSchema);
	// disable the cache 
	gebruikerXHRDataSource.maxCacheEntries = 0;	
	gebruikerXHRDataSource.connXhrMode = "queueRequests";	
	gebruikerXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
	gebruikerXHRDataSource.scriptQueryParam = "zoek";
	gebruikerXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Gebruikers&joinclause=join bncweb.debiteuren on gebruikers.debiteurnr=debiteuren.nr&fields=gebruikers.debcode,gebruikers.voornaam,gebruikers.achternaam,gebruikers.username,gebruikers.email,gebruikers.telefoon&order=achternaam,voornaam&limit=25&json=1&translatejson=1&menuid="+menuid+"&filter="+myescape("gebruikers.deactivated=0 and debiteuren.actief=1");
	var gebruikerAutoComp = new YAHOO.widget.AutoComplete(pfGebruiker+"Input",pfGebruiker+"Container", gebruikerXHRDataSource);
	gebruikerAutoComp.minQueryLength = 2;
	gebruikerAutoComp.maxResultsDisplayed = 25;
	gebruikerAutoComp.formatResult = function(aResultItem, sQuery) {
		var debcode = aResultItem[1];
		var voornaam = (aResultItem[2]!=null)?aResultItem[2]:"";
		var tussenvoegsel = (aResultItem[3]!=null)?aResultItem[3]:"";
		var naam = aResultItem[4]+", "+voornaam+ " " +tussenvoegsel;
		var debnaam = aResultItem[0];
		var aMarkup = ["<div><div style=\"float: left; width: 35px;\">",
			debcode,
			"</div><div style=\"float: left; font-weight: bold; \">",
			naam,
			"</div><div style=\"float: left; padding-left: 5px; \">",
			debnaam,				
			"</div><div class=\"cleaner\">&nbsp;</div></div>"];
		return (aMarkup.join(""));
	};
	var gebruikerSelectHandler = function(sType, aArgs) {
		selectDebiteur(aArgs[2][1],1);
	};
	gebruikerAutoComp.itemSelectEvent.subscribe(gebruikerSelectHandler);
	
}
function createPrintOfEmailDialog() {
	if(document.getElementById("printofemaildialog")==null || printOfEmailDialog!=null) {
		return;
	}
	/*
	 * definieer dialog voor afdrukken/emailen
	 */
	var handleCancel = function() {
		this.cancel();
		dialogueClosed = true;
	}
	var handleOk = function() {
/*
* enkele bon raadplegen via:
* https://www.bnc.nl/wobjects/technische-dienst/incident-bon?HttpProxy_fn=setedit&HttpProxy_keynr=5910000&HttpProxy_menuid=1
*/				
/*
* meerdere bonnen raadplegen via:
* https://www.bnc.nl/wobjects/technische-dienst/incident-bon?HttpProxy_fn=setedit&HttpProxy_editmode=uitleveren&HttpProxy_selectlist=5910000&HttpProxy_selectlist=5910005&HttpProxy_menuid=1
*/				
		if(document.getElementById("inc_radioprint").checked) {
			if(document.getElementById("inc_printofemailmode").value == "edit") {
				popitup("/wobjects/technische-dienst/incident-bon?op=makePrintable&HttpProxy_fn=setedit&HttpProxy_menuid=1&HttpProxy_keynr="+document.getElementById("inc_incidentnummers").innerHTML);
			} else {
				var url = "/wobjects/technische-dienst/incident-bon?op=makePrintable&HttpProxy_fn=setedit&HttpProxy_menuid=1&HttpProxy_editmode=uitleveren";
				var anummers = document.getElementById("inc_incidentnummers").innerHTML.split("; ");
				for(var i=0; i<anummers.length; i++) {
					url += "&HttpProxy_selectlist="+anummers[i];
				}
				popitup(url);
			}
			this.cancel();
			dialogueClosed = true;
		} else {
			/*
			 * de e-mail tekst moet UTF-8 gecodeerd worden om rare chars goed naar de server
			 * te krijgen
			 */
			var emailtekst = myescape(document.getElementById("inc_emailtekst").value.replace(/\n/g,"<br />"));
			var url = gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.td.crm.BWIncidentenWizardBean&fn=setedit&menuid="+menuid+"&sendmail=1&emailtekst="+emailtekst+"&emailto="+myescape(document.getElementById("inc_emailadressen").value)+"&emailcc="+myescape(document.getElementById("inc_emailcc").value)+"&json=1";
			if(document.getElementById("inc_printofemailmode").value == "edit") {
				url += "&keynr="+document.getElementById("inc_incidentnummers").innerHTML;
			} else {
				url += "&editmode=uitleveren";
				var anummers = document.getElementById("inc_incidentnummers").innerHTML.split("; ");
				for(var i=0; i<anummers.length; i++) {
					url += "&selectlist="+anummers[i];
				}
			}
			var now = new Date();
			var callback =
			{
				success:onLoadIncidentenEmail,
				failure:onFailure,
				timeout:180000
			}
			YAHOO.util.Connect.initHeader('Content-type', 'text/plain; charset=utf-8');
			YAHOO.util.Connect.asyncRequest("GET", url + "&noCache="+now.getTime(), callback, "");
		}
	}
	var printofemailButtons = [
			{ text: "Afbreken", handler: handleCancel },
			{ text: "Ok", handler: handleOk }
		];
	printOfEmailDialog = new YAHOO.widget.Dialog("printofemaildialog",
		{
			fixedcenter: true,
			modal: true,
			width: "450px",
			constraintoviewport : true,
			visible:false,
			draggable:true,
			close:true,
			zindex: 100000
		});
	printOfEmailDialog.cfg.queueProperty("buttons", printofemailButtons);
	printOfEmailDialog.render();
}
function selectIncidentTders(obj) {
	var aselectors = YAHOO.util.Selector.query(".inc_selecttders");
	var werkids = "";
	for(var i=0; i<aselectors.length; i++) {
		if(aselectors[i].checked) {
			if(i!=0) {
				werkids += ";";
			}
			werkids += aselectors[i].value;
		}
	}
	document.getElementById("inc_werkids").value = werkids;
	//GRIP  - set the latest assinged person for the incident
	var geplandetder = document.getElementById("geplandetderid");
	if (obj.checked) {
		//remove the classname from the list
		for (var k = 0; k < aselectors.length; k++) {
			YAHOO.util.Dom.removeClass("span_"+aselectors[k].id, 'geplandetder');
		}
		YAHOO.util.Dom.addClass("span_"+obj.id, 'geplandetder');
		geplandetder.value = obj.value;
	}else{	
		if(geplandetder.value==obj.value){
			for (var k = 0; k < aselectors.length; k++) {
			YAHOO.util.Dom.removeClass("span_"+aselectors[k].id, 'geplandetder');
			}
			for(var j=0; j<aselectors.length; j++) {
				if(aselectors[j].checked) {
					YAHOO.util.Dom.addClass("span_"+aselectors[j].id, 'geplandetder');
					geplandetder.value = aselectors[j].value;
					break;
				}
			}
		}
	}
}
function initCrm() {
	editDebiteurenWizard = new bncWizard("debiteurenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWDebiteurenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/debiteuren-edit",
		"Debiteur",loadContactgegevens,onLoadDebiteurEdit,validateDebiteur);
	editInterneContactpersonenWizard = new bncWizard("internecontactpersonenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWInterneContactpersonenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/interne-contactpersonen-edit",
		"Intern contactpersoon",loadContactgegevens);
	editExterneContactpersonenWizard = new bncWizard("externecontactpersonenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWExterneContactpersonenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/externe-contactpersonen-edit",
		"Extern contactpersoon",loadContactgegevens,null,validateExternContactpersoon);
	editAdressenWizard = new bncWizard("adressenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWAdressenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/adressen-edit",
		"Extra adres",loadContactgegevens,null,validateAdres);
	editGebruikersWizard = new bncWizard("gebruikerswizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWGebruikersWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/gebruikers-edit",
		"Gebruiker",loadGebruikers,onLoadGebruikersEdit,validateGebruiker);
	editAfsprakenWizard = new bncWizard("afsprakenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWAfsprakenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/afspraken-edit",
		"Afspraak",loadAfspraken,onLoadAfspraakEdit,validateAfspraak);
	editBidataWizard = new bncWizard("bidatawizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWBIDataWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/bidata-edit",
		"Business Intelligence gegevens",loadBidata, onLoadBidataEdit);
	editContractenWizard = new bncWizard("contractenwizard",
		gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWContractenWizardBean&json=1&menuid="+menuid,
		"/wobjects/crm/contracten-edit",
		"Overeenkomst",loadContracten,onLoadContractEdit,validateContract);
	editTakenWizard = new bncWizard({
		id:"takenwizard",
		actionUrl:gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWTakenWizardBean&json=1&menuid="+menuid,
		layoutUrl:"/wobjects/crm/taken-edit",
		title:"Taak / Notitie",
		onDone:loadTaken,
		onLoadPanels:onLoadTakenEdit,
		onValidate:validateTaak
		});
	editBezoekrapportenWizard = new bncWizard({
		id:"bezoekrapportenwizard",
		actionUrl:gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.crm.BWBezoekrapportenWizardBean&json=1&menuid="+menuid,
		layoutUrl:"/wobjects/crm/bezoekrapporten-edit",
		title:"Bezoekrapport",
		onDone:loadBezoekrapporten,
		onLoadPanels:onLoadBezoekrapportenEdit,
		onValidate:validateBezoekrapport
		});
	editAccountsWizard = new bncWizard({
		id:"accountswizard",
		actionUrl:gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.td.crm.BWAccountsWizardBean&json=1&menuid="+menuid,
		layoutUrl:"/wobjects/crm/accounts-edit",
		title:"Accounts",
		onDone:loadAccounts,
		onLoadPanels:onLoadAccountsEdit,
		onValidate:validateAccounts,
		width:"675px"
		});
}
function initIncidentenWizard() {
	editIncidentenWizard = new bncWizard({
		id:"incidentenwizard",
		actionUrl:gateway+"?appclass=nl.bnc.lib.ajax.BWAppWizard&iwbclass=nl.bnc.bncweb.system.applicatie.td.crm.BWIncidentenWizardBean&json=1&menuid="+menuid,
		layoutUrl:"/wobjects/crm/incidenten-edit",
		title:"Melding",
		onDone:loadIncidenten,
		onLoadPanels:onLoadIncidentEdit,
		onValidate:validateIncidenten,
		onClose:onCloseIncidentenEdit,
		width:"960px"
		});
}
//GRIP  - to seacrh for the articles to fill the article description
function autoCompleteArtikelen(){
		if(document.getElementById("inc_artikelnaam")!=null){
		// define autocomplete
		var artikelSchema = ["zoekresultaten", "xml_artikelen_productcode", "xml_artikelen_omschrijving"];
		var artikelXHRDataSource = new YAHOO.widget.DS_XHR(gateway, artikelSchema);
		// disable the cache
		artikelXHRDataSource.maxCacheEntries = 0;
		artikelXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
		artikelXHRDataSource.scriptQueryParam = "zoek";
		artikelXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppArtikelzoeker&json=1&translatejson=1&fn=zoek&menuid=1";
		//artikelXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.lib.ajax.BWAppAutocomplete&dbclass=nl.bnc.db.mysql.bncweb.Artikelen&fields=uniek,productcode,naam&order=productcode&limit=25&json=1&translatejson=1&menuid="+menuid;
		var artikelAutoComp = new YAHOO.widget.AutoComplete("inc_artikelnaam", "inc_artikelnaam_zoekcontainer", artikelXHRDataSource);
		artikelAutoComp.minQueryLength = 2;
		artikelAutoComp.maxResultsDisplayed = 25;
		artikelAutoComp.formatResult = function(aResultItem, sQuery){
			var productcode = aResultItem[0];
			var omschrijving = aResultItem[1];
			var aMarkup = ["<div>", productcode, " - ", omschrijving, "</div>"];
			return (aMarkup.join(""));
		};
		var itemSelectHandler = function(sType, aArgs){
			var code = aArgs[2][1];
			document.getElementById("inc_artikelnaam").value = code;
		};
		artikelAutoComp.itemSelectEvent.subscribe(itemSelectHandler);
	}
}
//GRIP  -to get details for new incident from already existing incident
function create_incidenttemplate(incidentnr){
	var url = gateway+"?appclass=nl.bnc.bncweb.system.applicatie.td.raadplegen.BWAppIncidentenoverzicht&fn=view&incidentnr="+incidentnr+"&json=1&translatejson=1&menuid="+menuid;
//	var now = new Date();
//	var callback =
//	{
//		success:onCreate_template,
//		failure:onFailure
//	}
//	YAHOO.util.Connect.asyncRequest("GET", url + "&noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
 		url:url,
 		method:'GET',
 		success:onCreate_template,
		failure:onFailure
 	});
}
function onCreate_template(o){
	var obj = eval("("+o.responseText+")");
	var omschrijving = document.getElementById("inc_omschrijving");
	document.getElementById("inc_omschrijving").value = obj["xml_incidenten_omschrijving"];
	for(var i=0;i<document.getElementById("inc_contactnr").options.length;i++){
		if(document.getElementById("inc_contactnr").options[i].value==obj["xml_incidenten_contactnr"]){
			document.getElementById("inc_contactnr").options[i].selected="selected";
			setIncidentenAdres();
			break;
		}
	}
	for(var i=0;i<document.getElementById("inc_competentienr").options.length;i++){
		if(document.getElementById("inc_competentienr").options[i].value==obj["xml_incidenten_competentienr"]){
			document.getElementById("inc_competentienr").options[i].selected="selected";
			setIncidentTarief();
			break;
		}
	}
	for(var i=0;i<document.getElementById("inc_repatypenr").options.length;i++){
		if(document.getElementById("inc_repatypenr").options[i].value==obj["xml_incidenten_repatypenr"]){
			document.getElementById("inc_repatypenr").options[i].selected="selected";
			setIncidentType(obj["xml_incidenten_repatypenr"]);
			break;
		}
	}
	for(var i=0;i<document.getElementById("inc_prioriteit").options.length;i++){
		if(document.getElementById("inc_prioriteit").options[i].value==obj["xml_incidenten_prioroteit"]){
			document.getElementById("inc_prioriteit").options[i].selected="selected";
			setIncidentUitvoerdatum(obj["xml_incidenten_prioroteit"]);
			break;
		}
	}
	for(var i=0;i<document.getElementById("inc_parentincidentnr").options.length;i++){
		if(document.getElementById("inc_parentincidentnr").options[i].value==obj["xml_incidenten_parentincidentnr"]){
			document.getElementById("inc_parentincidentnr").options[i].selected="selected";
			setIncidentDeelfacturatie(obj["xml_incidenten_parentincidentnr"]);
			break;
		}
	}
	document.getElementById("inc_klacht").value = obj["xml_incidenten_klacht"];
	document.getElementById("inc_referentie").value = obj["xml_incidenten_referentie"];
	
	if(document.getElementById("inc_externleveranciernr")){
		for(var i=0;i<document.getElementById("inc_externleveranciernr").options.length;i++){
			if(document.getElementById("inc_externleveranciernr").options[i].value==obj["xml_incidenten_externleveranciernr"]){
				document.getElementById("inc_externleveranciernr").options[i].selected="selected";
				setIncidentType(obj["xml_incidenten_repatypenr"]);
				break;
			}
		}
	}
	if(document.getElementById("inc_rmaleveranciernr")){
		for(var i=0;i<document.getElementById("inc_rmaleveranciernr").options.length;i++){
			if(document.getElementById("inc_rmaleveranciernr").options[i].value==obj["xml_incidenten_rmaleveranciernr"]){
				document.getElementById("inc_rmaleveranciernr").options[i].selected="selected";
				setIncidentenInfo("inc_rmaleveranciernr");
				break;
			}
		}
	}
	document.getElementById("inc_serienummer").value = obj["xml_incidenten_serienummer"];
	document.getElementById("inc_productcode").value = obj["xml_incidenten_productcode"];
	for(var i=0;i<document.getElementById("inc_operating_systeem").options.length;i++){
		if(document.getElementById("inc_operating_systeem").options[i].value==obj["xml_incidenten_operating_systeem"]){
			document.getElementById("inc_operating_systeem").options[i].selected="selected";
			break;
		}
	}
	createSerienummerDatatable();
}
//GRIP  -set the reparatie kostto 0 when werkloon is set
function setReparatiekosten(){
	var value = 0;
	var werkloon = document.getElementById("inc_werkloon");
	if (werkloon.checked) {
		document.getElementById("inc_kosten_leverancier").value = value.toFixed(2);
		document.getElementById("inc_kosten_leverancier").value = document.getElementById("inc_kosten_leverancier").value.replace('.',',');
		calculateKlantkosten();
	}
}
//GRIP  -set the verzend  kost to 0 when voorrijkosten is set
function setVerzendkosten(){
	var value = 0;
	var voorrijkosten = document.getElementById("inc_voorrijkosten");
	if(voorrijkosten.checked){
		document.getElementById("inc_verzendkosten_leverancier").value=value.toFixed(2);
		document.getElementById("inc_verzendkosten_leverancier").value = document.getElementById("inc_verzendkosten_leverancier").value.replace('.',',');
		calculateKlantkosten();
	}
}
function setFaktuurinwerklines(faktuur_value){
	var faktuurwerk = YAHOO.util.Selector.query(".faktuursoortwerk");
	for(var i=0;i<faktuurwerk.length;i++){
		if(faktuur_value==0){
			faktuurwerk[i].selectedIndex = 0;
		}else if(faktuur_value==1){
			faktuurwerk[i].selectedIndex = 1;
		}else if(faktuur_value==2){
			faktuurwerk[i].selectedIndex = 2;
		}
	}
}
//YAHOO.util.Event.onDOMReady(initIncidentenWizard);


