var getSrvFormSpecial;
var readyForSubmit;
var setFieldFocus;
var samenvattingGezien=0;
var afhandelingsWijze=1;
var logReason="1";
var logErrorField="";

// FIELD CHECK
function hofFieldCheck(field)
{
    var pl = new SOAPClientParameters();
    if(field.value){
      if(sesId>0)pl.add("sesId", "0"+sesId);
      pl.add("fieldName", field.id);
      if(field.type&&(field.type=="checkbox")){
      	if(field.checked) {
      		pl.add("fieldValue", field.value);
      	} else {
      		pl.add("fieldValue", "0");
      	}
      } else {
        pl.add("fieldValue", field.value);
      }

      if(readyForNewPremie())pl.add("sendPremie", "1");
      SOAPClient.invoke(hsWebsrvServer+getSrvForm(field.id), "checkField", pl, true, hofFieldCheckResp);
	  
	  samenvattingGezien=0;
    }
}

function getSrvForm(oID)
{
  if(getSrvFormSpecial){
    return getSrvFormSpecial(oID);
  } else {
  	return srvForm;
  }
}

function hofFieldCheckResp(r)
{
	if(r == null) {
		alert("Error: de server heeft geen resultaat gestuurd!");
	} else {
	    if(document.getElementById(r.fieldName)) {
		  if(r.errorField){
		  //alert(r.errorField+" "+r.fieldName+" "+r.Result+" "+r.Error);
	  		changeClassAddStr(r.errorField+"Lbl", "E");
	  		showFieldError(r.errorField+"E", "<p>"+r.Error+"</p>");
			if(setFieldFocus)setFieldFocus(r.errorField);
		  }
		  
		  // status=0, veld is NIET OK!
	      if((r.Result==0)&&!r.errorField){
			// het is mogelijk dat het veld wel gewijzigd is
			if(r.NewValue!=null)document.getElementById(r.fieldName).value=r.NewValue;
	  		changeClassAddStr(r.fieldName+"Lbl", "E");
	  		showFieldError(r.fieldName+"E", "<p>"+r.Error+"</p>");
	      }

	      // status=1, veld is OK, maar gewijzigd.
	      if(r.Result==1){
	        if(r.NewValue!=null)document.getElementById(r.fieldName).value=r.NewValue;
	      }

	      if(r.Result>0){
	        var o=document.getElementById(r.fieldName);
	        if(o.type=="radio") {
	          r.fieldName=o.name;
	        }
	        changeClassDelStr(r.fieldName+"Lbl", "E");
	        hideFieldError(r.fieldName+"E");
	      }

	       if(r.calcPremieDisabled==1){
	       	 hsSetCalcPremieDisabled(r.redenCalcPremieDisabled);
	       }
		   if((r.calcPremieDisabled==0)&&(lastFaseNr>1)){
	       	 hsSetCalcPremieEnabled();
	       }
	       if(r.premies&&(!r.calcPremieDisabled||(r.calcPremieDisabled==-1))) {
	       	 setNewPremies(r.premies);
	       } else {
	         if(!r.calcPremieDisabled||(r.calcPremieDisabled==-1)){ //document.getElementById("hsPremieTotPrS").innerHTML!='<span class="hsESign">&euro;</span><span class="hsEMon">0,00</span>'
	           clearPremies();
	         }
	       }		   
		   if(r.acceptatieCorrect!=-1){
		     r.acceptatieCorrect==1?hideField("showIfNotAccept"):showField("showIfNotAccept");
		   }

	       if(r.SessionID)sesId=r.SessionID;
	    }
   }
}

function setGeneralPremies(premies)
{
    setPremieField("hsPremieBrutPrS", premies.p_subtot - premies.p_pakketkorting);
    setPremieField("hsPremieAssurantiePrS", premies.p_assbel);
    setPremieField("hsPremieTotPrS", premies.p_totmod);

    setPremieField("hsSubtotPrS", premies.p_subtot + premies.p_colkorting);
	
	if (loggedInCollectiviteit)
	{
		setPremieField("hsCollKortingPrS", premies.p_colkorting);
		if (!premies.p_colkortingperc || premies.p_colkortingperc>=0) setInnerHtml("hsCollKortingPr", Math.round(premies.p_colkortingperc) + " %");
		else hideField("hsCollKortingPr");
	}
}

function clearGeneralPremies()
{
    setInnerHtml("hsCollKortingPr", "0 %");
    setPremieField("hsCollKortingPrS", "0");
	
    setPremieField("hsSubtotPrS", "0");
      setPremieField("hsPremieBrutPrS", "0");
      setPremieField("hsPremieAssurantiePrS", "0");
      setPremieField("hsPremieTotPrS", "0");
}

// INITIALIZATION

function hsSetForms() {
  
	if (typeof(backoffice)!="undefined" && !backoffice)
	{
		// wachtwoordvelden uitzetten
		hideField("hsSet180");
	}
  
  hideField("hsPrintButton");
  var x = document.getElementById('hsForm');
  if (!x) return;
  var y = x.getElementsByTagName('input');
  for (var i=0;i<y.length;i++) {
  	switch(y[i].type) {
           case "checkbox":
               y[i].onclick = function() { hofFieldCheck(this); }
               break;
           case "radio":
               y[i].onclick = function() { hofFieldCheck(this); }
               break;
           default:
               y[i].onblur = function() { hofFieldCheck(this); }
        }
 //  if(y[i].type=="text"){
 //  	 y[i].onkeypress=function() { enterToTab(this); }
 //  }
  }
  var y = x.getElementsByTagName('select');
  for (var i=0;i<y.length;i++) {
    y[i].onchange = function() { hofFieldCheck(this); }
  }

  // loop the textarea's (used for slotopmerking, medicijnverklaring and ziekteverklaring)
  var y = x.getElementsByTagName('textarea');
  for (var i=0;i<y.length;i++) {
    y[i].onblur = function() { hofFieldCheck(this); }
  }

  var u = document.getElementById("hsGebruikersnaam");
	var p = document.getElementById("hsWachtwoord");
	if(u)u.onblur="";
	if(p)p.onblur="";

  if(sesId>0){
    var pl = new SOAPClientParameters();
    pl.add("sesId", "0"+sesId);
    SOAPClient.invoke(hsWebsrvServer+getSrvForm(), "getFieldsFromSession", pl, true, hsFieldsFromSessionResp);
  }
  
  // zorgen dat de sessie open blijft
  //setTimeout("pingServerAsp()",300000);
  //setTimeout("pingServerAspx()",300000);
}

function hsRelatieFieldsFromSessionBasis(r) {
    setRadioFromValue("hsLooptijd", r.Looptijd);

	loggedInCollectiviteit = r.relatieGegevens.ColId;
	if (loggedInCollectiviteit) 
	{
		var o = document.getElementById("hsCollKorting");
		if (o) o.innerHTML = getCollectiviteitName(loggedInCollectiviteit);
		showField("showCollKorting");
	}

	
	if(r.Ingangsdatum)document.getElementById("hsDIngDek").value=r.Ingangsdatum;

	afhandelingsWijze=r.afhandelingswijze;
    hsSetAfhandelingswijze(r.afhandelingswijze, "");	

	if(r.calcPremieDisabled){
      hsSetCalcPremieDisabled(r.redenCalcPremieDisabled);
    }

    if(r.acceptatieCorrect!=-1){
	  r.acceptatieCorrect==1?hideField("showIfNotAccept"):showField("showIfNotAccept");
    }
	
	if(r.fixedLooptijd)
	{
		disableField('hsLooptijd12');
		disableField('hsLooptijd60');
	}

	hsRelatieFieldsFromSession(r.relatieGegevens);

    readyForNewPremie()?getNewPremies():clearPremies();
}

function hsSetCalcPremieDisabled(s) {
	hsSetAfhandelingswijze(0, s);
}

function hsSetCalcPremieEnabled() {
	hsSetAfhandelingswijze(afhandelingsWijze, "");
}

function hsSetAfhandelingswijze(wijze, s) {
  switch(wijze) {
    case 0:
		if(s){
			setInnerHtml("hsFooterText", s);
			showField("hsSet81");
		}

		if(dekkingFaseNr)setInnerHtml("hsFase"+dekkingFaseNr+"ButSpan", "Bepaal dekking");
		setInnerHtml("hsFase"+lastFaseNr+"ButSpan", "Offerte aanvragen");
		setInnerHtml("hsSubmitButton", "Versturen");

		for(i=0;i<aRekenDivs.length;i++){
		  hideField(aRekenDivs[i]);
		}
		hideField("hsHidePremiesSv");
		
		hideField("hsVerzekeringAanvragen");
		showField("hsOfferteAanvragen");
		calcPremieDisabled=true;
		break;
	case 1:
		hideField("hsSet81");
		
		if(dekkingFaseNr)setInnerHtml("hsFase"+dekkingFaseNr+"ButSpan", "Bereken premie");
		setInnerHtml("hsFase"+lastFaseNr+"ButSpan", "Versturen");

		setInnerHtml("hsAfsluitenOfAanvragenTitel", "aanvragen - Versturen");
		setInnerHtml("hsAfsluitenOfAanvragenSlot", "de aanvraag ");
		setInnerHtml("hsSubmitButton", "Versturen");

		for(i=0;i<aRekenDivs.length;i++){
		  showField(aRekenDivs[i]);
		}
		showField("hsHidePremiesSv");
	
		showField("hsVerzekeringAanvragen");
		hideField("hsOfferteAanvragen");
		calcPremieDisabled=false;
		break;
	case 2:
		hideField("hsSet81");
		
		if(dekkingFaseNr)setInnerHtml("hsFase"+dekkingFaseNr+"ButSpan", "Bereken premie");
		setInnerHtml("hsFase"+lastFaseNr+"ButSpan", "Afsluiten");

		setInnerHtml("hsAfsluitenOfAanvragenTitel", "afsluiten");
		setInnerHtml("hsAfsluitenOfAanvragenSlot", "het afsluiten ");
		setInnerHtml("hsSubmitButton", "Verzekering afsluiten");
		
		for(i=0;i<aRekenDivs.length;i++){
		  showField(aRekenDivs[i]);
		}
		showField("hsHidePremiesSv");
	
		showField("hsVerzekeringAanvragen");
		hideField("hsOfferteAanvragen");
		calcPremieDisabled=false;
		break;
	}
}

function hsRelatieFieldsFromSession(r) {
  if(r.ANaam)document.getElementById("hsAchternaam").value=r.ANaam;
  if(r.VLetters)document.getElementById("hsVoorletters").value=r.VLetters;
  if(r.Titel)document.getElementById("hsTitle").value=r.Titel;
  if(r.Tussenv)document.getElementById("hsTussenvoegsels").value=r.Tussenv;
  if(r.Geslacht)setRadioFromValue("hsGeslacht", r.Geslacht);
  setTextFromValue(document.getElementById("hsGeboortedatum"), r.d_geb_dat);
  setTextFromValue(document.getElementById("hsPostcode"), r.i_postcode);
  if(r.HuisNr)document.getElementById("hsHuisnummer").value=r.HuisNr;
  if(r.HuisNrExt)document.getElementById("hsHuisnummerToev").value=r.HuisNrExt;
  //if(r.Straat)document.getElementById("hsStraat").value=r.Straat;
  //if(r.Plaats)document.getElementById("hsPlaats").value=r.Plaats;
  //if(r.Telefoon)document.getElementById("hsTelefoon").value=r.Telefoon;
  if(r.TelWerk)document.getElementById("hsTelWerk").value=r.TelWerk;
  if(r.Mobiel)document.getElementById("hsTelMobiel").value=r.Mobiel;
  if(r.TelPrive)document.getElementById("hsTelPrive").value=r.TelPrive;
  document.getElementById("hsTelPrive").onchange = function() { hideFieldError("hsTelE"); }
  document.getElementById("hsTelMobiel").onchange = function() { hideFieldError("hsTelE"); }
  document.getElementById("hsTelWerk").onchange = function() { hideFieldError("hsTelE"); }
  if(r.Email)document.getElementById("hsEmail").value=r.Email;
  if(r.BankNr)document.getElementById("hsBank").value=r.BankNr;
  if(r.GiroNr)document.getElementById("hsGiro").value=r.GiroNr;
  document.getElementById("hsBank").onchange = function() { hideFieldError("hsRekE"); }
  document.getElementById("hsGiro").onchange = function() { hideFieldError("hsRekE"); }
  setTextFromValue("hsBurgerSN", r.burgerservicenummer);

  if((r.RelId>0)||(r.WebId>0)){
    hideField("hsUserGetInfoBut");
	
	// wachtwoord kunnen we niet wijzigen, alleen nieuw...
	hideField("hsSet180");
	
	if(r.ANaam&&r.VLetters&&r.Geslacht&&r.d_geb_dat&&r.Email&&r.i_postcode&&r.HuisNr&&(r.TelWerk||r.Mobiel||r.TelPrive)&&(r.BankNr||r.GiroNr)){
		hideField("hsSet70");
		hideField("hsSet80");
	}

	showField("hsSaveButton");
	showField("loggedInName2li");
	document.getElementById("loggedInName2").innerHTML=top.loggedInName;
  } else {
	showField("hsUserGetInfoBut");
  }
}

function hsPartnerFieldsFromSession(r) {
  setTextFromValue("hsPartnerNaam", r.P_ANaam);
  setTextFromValue("hsPartnerVoorl", r.P_VLetters);
  setTextFromValue("hsPartnerVoorv", r.P_Tussenv);
  if(r.P_Geslacht)setRadioFromValue("hsPartnerGesl", r.P_Geslacht);
  setTextFromValue("hsPartnerGebDat", r.P_GebDat);
}

var maxKinderenVolgnr = 1;

function hsKinderenFieldsFromSession(r) {
  for(var i = 0; i < r.lstKinderen.length; i++) {
    if(i>0)hsMeerKinderen();

    if(i<9) {
      kindVolgnr="0"+(i+1);
    } else {
      kindVolgnr=""+(i+1);
    }

    setTextFromValue("hsKind"+kindVolgnr+"Naam", r.lstKinderen[i].ANaam);
    setTextFromValue("hsKind"+kindVolgnr+"Voorl", r.lstKinderen[i].VLetters);
    setTextFromValue("hsKind"+kindVolgnr+"Voorv", r.lstKinderen[i].Tussenv);
    if(r.lstKinderen[i].Geslacht)setSelectFromValue("hsKind"+kindVolgnr+"Gesl", r.lstKinderen[i].Geslacht);
    setTextFromValue("hsKind"+kindVolgnr+"GebDat", r.lstKinderen[i].GebDat);
  }
}

function hsMeerKinderen() {
  if(maxKinderenVolgnr==1)showField("showKinderenButton");

  maxKinderenVolgnr++;

  if(maxKinderenVolgnr<10) {
    kindVolgnr="0"+maxKinderenVolgnr;
  } else {
    kindVolgnr=""+maxKinderenVolgnr;
  }

  var o = document.getElementById("kinderenToevoegen");
  if(o){
    o.innerHTML = o.innerHTML +
                  "<span class=\"kinderenSpan\" id=\"kinderSpanKind"+kindVolgnr+"\">"+
                     "<table class=\"kinderenTable\"><tr>"+
                     "<td class=\"kinderenTd1\"><span id=\"hsKind"+kindVolgnr+"NaamLbl\" class=\"hsLbl1\">Achternaam*</span></td>"+
                     "<td class=\"kinderenTd2\"><span id=\"hsKind"+kindVolgnr+"VoorvLbl\" class=\"hsLbl3\">Tussenvoegsels</span></td>"+
                     "<td class=\"kinderenTd3\"><span id=\"hsKind"+kindVolgnr+"VoorlLbl\" class=\"hsLbl2\">Voorletters*</span></td>"+
                     "<td class=\"kinderenTd4\"><span id=\"hsKind"+kindVolgnr+"GeslLbl\" class=\"hsLbl4\">Geslacht*</span></td>"+
                     "<td class=\"kinderenTd5\"><span id=\"hsKind"+kindVolgnr+"GebDatLbl\" class=\"hsLbl5\">Geboorte datum*</span></td>"+
                     "</tr><tr>"+
                     "<td class=\"kinderenTd1\"><input name=\"hsKind"+kindVolgnr+"Naam\" id=\"hsKind"+kindVolgnr+"Naam\" tabindex=\"27\" onblur=\"hofFieldCheck(this)\" /></td>"+
                     "<td class=\"kinderenTd2\"><input name=\"hsKind"+kindVolgnr+"Voorv\" id=\"hsKind"+kindVolgnr+"Voorv\" tabindex=\"27\" onblur=\"hofFieldCheck(this)\" /></td>"+
                     "<td class=\"kinderenTd3\"><input name=\"hsKind"+kindVolgnr+"Voorl\" id=\"hsKind"+kindVolgnr+"Voorl\" tabindex=\"27\" onblur=\"hofFieldCheck(this)\" /></td>"+
                     "<td class=\"kinderenTd4\"><select name=\"hsKind"+kindVolgnr+"Gesl\" id=\"hsKind"+kindVolgnr+"Gesl\" tabindex=\"27\" onchange=\"hofFieldCheck(this)\" ><option value=\"V\">Vrouw</option><option value=\"M\">Man</option></select></td>"+
                     "<td class=\"kinderenTd5\"><input name=\"hsKind"+kindVolgnr+"GebDat\" id=\"hsKind"+kindVolgnr+"GebDat\" tabindex=\"27\" onblur=\"hofFieldCheck(this)\" /></td>"+
                     "</tr></table>"+
                     "<span class=\"hsErrorBg\" id=\"hsKind"+kindVolgnr+"NaamE\" style=\"display: none;\"><p></p></span>"+
                     "<span class=\"hsErrorBg\" id=\"hsKind"+kindVolgnr+"VoorvE\" style=\"display: none;\"><p></p></span>"+
                     "<span class=\"hsErrorBg\" id=\"hsKind"+kindVolgnr+"VoorlE\" style=\"display: none;\"><p></p></span>"+
                     "<span class=\"hsErrorBg\" id=\"hsKind"+kindVolgnr+"GeslE\" style=\"display: none;\"><p></p></span>"+
                     "<span class=\"hsErrorBg\" id=\"hsKind"+kindVolgnr+"GebDatE\" style=\"display: none;\"><p></p></span>"+
                  "</span>";
  }
  var o = document.getElementById("kinderenToevoegenSv");
  if(o){
    o.innerHTML = o.innerHTML +
               "<span id=\"kinderSpanKind"+kindVolgnr+"Sv\">"+
               "<p>Naam</p><span class=\"linespan\"><span id=\"hsKind"+kindVolgnr+"VoorlSv\"></span><span id=\"hsKind"+kindVolgnr+"VoorvSv\"></span><span id=\"hsKind"+kindVolgnr+"NaamSv\"></span></span>"+
               "<p>Geslacht</p><span class=\"linespan\"><span id=\"hsKind"+kindVolgnr+"GeslSv\"></span></span>"+
               "<p>Geboortedatum</p><span class=\"linespan\"><span id=\"hsKind"+kindVolgnr+"GebDatSv\"></span></span></span>";
  }
}

function hsMinderKinderen() {
  if(maxKinderenVolgnr<10) {
    kindVolgnr="0"+maxKinderenVolgnr;
  } else {
    kindVolgnr=""+maxKinderenVolgnr;
  }

  var o=document.getElementById("kinderSpanKind"+kindVolgnr);
  if(o){
    o.removeNode(true);
  }

  var o=document.getElementById("kinderSpanKind"+kindVolgnr+"Sv");
  if(o){
    o.removeNode(true);
  }

  var pl = new SOAPClientParameters();
  pl.add("sesId", "0"+sesId);
  pl.add("volgnr", kindVolgnr);
  SOAPClient.invoke(hsWebsrvServer+srvForm, "minderKinderen", pl, true, hsMinderKinderenResp);

  maxKinderenVolgnr--;
}

function hsMinderKinderenResp() {
  // niets doen
}

function hsRelatieUpdateSamenvatting(r) {
    	if(r.ANaam)
            setInnerHtml("hsAchternaamSv", r.ANaam);
	if(r.VLetters)
            setInnerHtml("hsVoorlettersSv", r.VLetters+" ");
	//if(r.Titel)
            //setInnerHtml("hsTitleSv", r.Titel);
	if(r.Tussenv)
            setInnerHtml("hsTussenvoegselsSv", r.Tussenv+" ");
	if(r.Geslacht)
            setInnerHtml("hsGeslachtSv", r.Geslacht);
	if(r.HuisNr)
            setInnerHtml("hsHuisnummerSv", r.HuisNr);
	//if(r.HuisNrExt)document.getElementById("hsHuisnummerextentie").value=r.HuisNrExt;
//	if(r.Straat)
  //          setInnerHtml("hsStraatSv", r.Straat);
//	if(r.Plaats)
  //          setInnerHtml("hsPlaatsSv", r.Plaats);
	//if(r.Telefoon)document.getElementById("hsTelefoon").value=r.Telefoon;
	if(r.TelWerk)
            setInnerHtml("hsTelWerkSv", r.TelWerk);
	if(r.Mobiel)
            setInnerHtml("hsTelMobielSv", r.Mobiel);
	if(r.TelPrive)
            setInnerHtml("hsTelPriveSv", r.TelPrive);
	if(r.Email)
            setInnerHtml("hsEmailSv", r.Email);
	if(r.BankNr) {
            setInnerHtml("hsBankSv", r.BankNr);
            setInnerHtml("hsBankGiroSv", r.BankNr);
        } else {
            setInnerHtml("hsBankGiroSv", r.GiroNr);
        }
	if(r.GiroNr)
            setInnerHtml("hsGiroSv", r.GiroNr);
	if(r.burgerservicenummer)
            setInnerHtml("hsBurgerSNSv", r.burgerservicenummer);
	if(r.d_geb_dat)
            setInnerHtml("hsGeboortedatumSv", r.d_geb_dat);
            
	if(r.i_postcode){
	    var pl = new SOAPClientParameters();
	    pl.add("inPostcode", r.i_postcode);
	    SOAPClient.invoke(hsWebsrvServer+getSrvForm(), "getStraatPlaatsFromPostcode", pl, true, hsRelatieUpdateSamenvattingAdrResp);
	}
 }

function hsPartnerUpdateSamenvatting(r) {
    if(r.P_ANaam)setInnerHtml("hsPartnerNaamSv", r.P_ANaam);
    if(r.P_VLetters)setInnerHtml("hsPartnerVoorlSv", r.P_VLetters+" ");
    if(r.P_Tussenv)setInnerHtml("hsPartnerVoorvSv", r.P_Tussenv+" ");
    if(r.P_Geslacht)setInnerHtml("hsPartnerGeslSv", r.P_Geslacht);
    if(r.P_GebDat)setInnerHtml("hsPartnerGebDatSv", r.P_GebDat);
}

function hsKinderenUpdateSamenvatting(r) {
  for(var i = 0; i < r.lstKinderen.length; i++) {
    if(i<9) {
      kindVolgnr="0"+(i+1);
    } else {
      kindVolgnr=""+(i+1);
    }

    if(r.lstKinderen[i].ANaam)setInnerHtml("hsKind"+kindVolgnr+"NaamSv", r.lstKinderen[i].ANaam);
    if(r.lstKinderen[i].VLetters)setInnerHtml("hsKind"+kindVolgnr+"VoorlSv", r.lstKinderen[i].VLetters+" ");
    if(r.lstKinderen[i].Tussenv)setInnerHtml("hsKind"+kindVolgnr+"VoorvSv", r.lstKinderen[i].Tussenv+" ");
    setInnerHtml("hsKind"+kindVolgnr+"GeslSv", getTxtFromSelect("hsKind"+kindVolgnr+"Gesl"));
    if(r.lstKinderen[i].GebDat)setInnerHtml("hsKind"+kindVolgnr+"GebDatSv", r.lstKinderen[i].GebDat);
  }
}

function hsRelatieUpdateSamenvattingAdrResp(r) {
     if(r == null) {
       alert("Error: de server heeft geen resultaat gestuurd!");
     } else {
       var o = document.getElementById("hsHuisnummerSv");
       var s="";
       if(o){
         s=" "+o.innerHTML;
       }
       if(r.Straat)setInnerHtml("hsHuisnummerSv", r.Straat+s);
       if(r.Plaats) {
         setInnerHtml("hsPlaatsSv", r.Postcode+" "+r.Plaats);
       } else {
         if(r.Postcode)setInnerHtml("hsPlaatsSv", r.Postcode);
       }
     }
}
function hsUpdateSamenvattingBasis(r) {
    //Persoonlijke gegevens:
    hsRelatieUpdateSamenvatting(r.relatieGegevens);

	if(r.firstToday==1){
	  showField("showPerDay");
	} else {
	  hideField("showPerDay");
	}

	if(r.hasApp==1){
	  hideField("showIfNotApp");
	  showField("showIfApp");
	  setInnerHtml("hsBetaalPeriode2", "Per " + r.betaalPeriode + " maanden");
	  if(r.incassowijzeDesc){
	    setInnerHtml("hsBetalingswijze", r.incassowijzeDesc);
	  } else {
	    setInnerHtml("hsBetalingswijze", "Automatische overschrijving");
	  }
	} else {
	  hideField("showIfApp");
	  showField("showIfNotApp");
	  if(r.betaalPeriode)setSelectFromValue("hsBetaalPeriode", r.betaalPeriode);
	}
	
    if(r.Ingangsdatum)setInnerHtml("hsIngDekSv", r.Ingangsdatum);
  
    if(r.i_premieper)
        setInnerHtml("hsIPremiePerSv", getTxtFromSelect("hsIPremiePer").toLowerCase());
    else
        setInnerHtml("hsIPremiePerSv", "jaar");
    setInnerHtml("hsLooptijdSv", r.Looptijd/12 + " jaar");
}

function fullCheckFieldsResp(r) {
  if(r.errorField == null) {

  var pl = new SOAPClientParameters();
    pl.add("sesId", "0"+sesId);
    SOAPClient.invoke(hsWebsrvServer+getSrvForm(), "getFieldsFromSession", pl, true, updateSamenvattingResp);
	samenvattingGezien=1;
  } else {
	changeClassAddStr(r.errorField+"Lbl", "E");
	showFieldError(r.errorField+"E", "<p>"+r.Error+"</p>");
	if(setFieldFocus)setFieldFocus(r.errorField);
  }
}

function hsPremiesUpdateSamenvattingResp(r) {
     if(r == null) {
       alert("Error: de server heeft geen resultaat gestuurd!");
     } else {
        setInnerHtml("hsPremieBrutPrSSv", "&euro; " + fmtMoney(r.p_subtot));
        setInnerHtml("hsPremieKortingPrSSv", "&euro; " + fmtMoney(r.p_pakketkorting));
        setInnerHtml("hsPremieAssurantiePrSSv", "&euro; " + fmtMoney(r.p_assbel));
        setInnerHtml("hsPremieTotPrSSv", "&euro; " + fmtMoney(r.p_totmod));
     }
}

// USER LOGIN FORM

function hsSwitchUserGetInfoDiv() {
	var o=document.getElementById("hsUserGetInfoDiv");
  var o_but=document.getElementById("hsUserGetInfoBut");
	if(o){
		if(o.style.display=="block"){
			o.style.display="none";
			o_but.className="hsUserGetInfoBut";
		} else {
			o.style.display="block";
			o_but.className="hsUserGetInfoButActive";
		}
	}
}

function hsGetUserInfo() {
	var u = document.getElementById("hsGebruikersnaam");
	var p = document.getElementById("hsWachtwoord");
	if(u.value&&p.value){
    var pl = new SOAPClientParameters();
    pl.add("sesId", "0"+sesId);
    pl.add("userName", u.value);
    pl.add("password", p.value);
    SOAPClient.invoke(hsWebsrvServer+srvForm, "loginUser", pl, true, hsGetUserInfoResp);
	} else {
		// melden dat ze beide verplicht zijn
	}
}

function hsGetUserInfoResp(r) {
     if(r == null) {
       alert("Error: de server heeft geen resultaat gestuurd!");
     } else {
       // status=0, username/password is NIET OK!
			 if(r.Result==0){
				 alert(r.Error);
			 }
       // status=2, veld is OK.
       if(r.Result==2){
       	 hsSwitchUserGetInfoDiv();
       	 hideField("hsUserGetInfoBut");

    		 loggedIn = true;
    		 top.loggedInName = r.volNaam;
    		 setLoggedIn();

    		 var pl = new SOAPClientParameters();
    		 pl.add("sesId", "0"+sesId);
    		 SOAPClient.invoke(hsWebsrvServer+getSrvForm(), "getFieldsFromSession", pl, true, hsFieldsFromSessionResp);
       }
     }
}

function hsGetPdf() {
  if(srvEpId){
    var s = "/server/hspdf"+srvEpId+".aspx?sesId="+sesId;
    document.location = s;
  }
}

function hsGetPrint() {
  hsGetPdf();
}

function hsGetSave() {
  var pl = new SOAPClientParameters();
  pl.add("sesId", "0"+sesId);
  SOAPClient.invoke(hsWebsrvServer+srvForm, "saveForm", pl, true, hsGetSaveResp);
}

function hsGetSaveResp(r) {
  if(r == null) {
    alert("Error: de server heeft geen resultaat gestuurd!");
  } else {
    // status=0, username/password is NIET OK!
    if(r.Result==0){
      alert(r.Error);
    }
    // status=2, veld is OK.
    if(r.Result==2){
      alert("Uw berekening is opgeslagen");
    }
  }
}

// OFFERTE OF DIRECT AANVRAGEN
var calcPremieDisabled=false;

// omzetten formulieren vindt plaats in de js van het form

// FASE MANAGEMENT

var curFase=1;
var arFaseEnabled; // hierin wordt aangegeven of een fase toegestaan is!

function hsNextFase() {
  if(eval("fase"+(curFase)+"Ready()")){
    if(updateSamenvatting)updateSamenvatting(curFase+1);
	hsSetLoginAtFase(curFase+1);
  	changeFase("hsFase"+curFase, "hsFase"+(curFase+1), curFase+1);
  	curFase++;
  	if(readyForNewPremie())getNewPremies();
  }
}

function hsPrevFase() {
	if(hsIsLastFase(curFase))samenvattingGezien=1;
	hsSetLoginAtFase(curFase-1);
	changeFase("hsFase"+curFase, "hsFase"+(curFase-1), curFase-1);
	if(curFase>1)curFase--;
}

function hsGoToFase(nr) {
	if(nr==1||eval("fase"+(nr-1)+"Ready()")){
      nr=hsGotoVersturenCheck(nr);
	  if(updateSamenvatting)updateSamenvatting(nr);

	  if(hsIsLastFase(curFase))samenvattingGezien=1;
	  hsSetLoginAtFase(nr);
	  
	  changeFase("hsFase"+curFase, "hsFase"+nr, nr);
	  curFase=nr;

	if(readyForNewPremie())getNewPremies();
	}
}

function hsSetLoginAtFase(nr) {
	if(hsIsLastFase(nr)){
		hideField("hsUserGetInfoBut");
	} else if (hsIsLastFase(nr+1)) {
	    hideField("hsUserGetInfoBut");
	} else {
		if(!loggedIn)showField("hsUserGetInfoBut");
	}
}

function hsGotoVersturenCheck(nr) {
   if(hsIsLastFase(nr)){
    if(samenvattingGezien!=1) {
	  logReason = "3";
	  nr--;
	}
  }
  return nr;
}

function hsIsLastFase(nr) {
  var extraFase = nr+1;
  if(!document.getElementById("hsFase"+(extraFase)+"Div")){
    return true;
  } else {
    return false;
  }
}

function hsIsSamenvattingFase(nr) {
	if (hsIsLastFase(nr)) return false;
	
  var extraFase = nr+2;
  if(!document.getElementById("hsFase"+(extraFase)+"Div")){
    return true;
  } else {
    return false;
  }
}

function changeFase(oldFase, newFase, newFaseNr) {
  var fs_cur=document.getElementById(oldFase+"Div");
  var fs_new=document.getElementById(newFase+"Div");
  if(fs_cur&&fs_new){
  	fs_cur.style.display="none";
  	fs_new.style.display="block";

  	// buttons uit en aan zetten
  	changeClassDelStr(oldFase+"But", "Active");
  	changeClassAddStr(newFase+"But", "Active");
	  
	  if (newFaseNr) changeDisplayOfDivWithClassName("hsVerplichtUitleg", hsIsSamenvattingFase(newFaseNr) ? "none" : "block");
	}
  logFaseChange(newFase.substr(6))  
}

function hsFaseAlgGegevens(faseId) {		
  if(loggedIn==false){
    if(fieldIsVisible("hsSet70")&&fieldIsVisible("hsSet80"))
	{
		if(!checkFieldValid("hsAchternaam", false, faseId))return false;
		if(!checkFieldValid("hsVoorletters", false, faseId))return false;
		if(!checkFieldValid("hsGeslachtV", false, faseId))return false;
		if(!checkFieldValid("hsGeboortedatum", false, faseId))return false;
		if(!checkFieldValid("hsEmail", false, faseId))return false;
		if(!checkFieldValid("hsPostcode", false, faseId))return false;
		if(!checkFieldValid("hsHuisnummer", false, faseId))return false;

		var tel1=document.getElementById("hsTelPrive");
		var tel2=document.getElementById("hsTelMobiel");
		var tel3=document.getElementById("hsTelWerk");
		if(!tel1.value&&!tel2.value&&!tel3.value){
		  hsGoToFase(faseId);
		  showFieldError("hsTelE", "<p>Om verder te gaan moet u minimaal 1 telefoonnummer invullen.</p>");
		  return false;
		}

		var b=document.getElementById("hsBank");
		var g=document.getElementById("hsGiro");
		if(!b.value&&!g.value){
		  hsGoToFase(faseId);
		  showFieldError("hsRekE", "<p>Om verder te gaan moet u minimaal 1 rekeningnummer invullen.</p>");
		  return false;
		}
	}

    if(fieldIsVisible("hsSet180")){
		if(!checkFieldValid("hsWachtwoordNew", false, faseId))return false;
	    if(!checkFieldValid("hsWachtwoordNewCheck", false, faseId))return false;
	}
  }

  return true;
}

function hsFasePartnerGegevens(faseId) {
    if(!checkFieldValid("hsPartnerNaam", false, faseId))return false;
    if(!checkFieldValid("hsPartnerVoorl", false, faseId))return false;
    if(!checkFieldValid("hsPartnerGeslV", false, faseId))return false;
    if(!checkFieldValid("hsPartnerGebDat", false, faseId))return false;

    return true;
}

function hsFaseKinderenGegevens(faseId) {
  for(var i = 0; i < maxKinderenVolgnr; i++) {
      if(i<9) {
        kindVolgnr="0"+(i+1);
      } else {
        kindVolgnr=""+(i+1);
      }

      if(!checkFieldValid("hsKind"+kindVolgnr+"Naam", false, faseId))return false;
      if(!checkFieldValid("hsKind"+kindVolgnr+"Voorl", false, faseId))return false;
      if(!checkFieldValid("hsKind"+kindVolgnr+"Gesl", false, faseId))return false;
      if(!checkFieldValid("hsKind"+kindVolgnr+"GebDat", false, faseId))return false;
  }
    return true;
}

function hsSubmit() {
  // checken van de checkboxen
  if(calcPremieDisabled) {
  //  if(!checkFieldValid("hsAkkoordOfferte", false))return;
  } else {
    if(typeof(readyForSubmit)=="function"){if(!readyForSubmit())return;} // wordt gebruikt door o.a. monuta
    if(fieldIsVisible("showPerDay")){
		if(!checkFieldValid("hsAcceptatieVraag001Nee", false))return;
		if(!checkFieldValid("hsAcceptatieVraag002Nee", false))return;
		if(!checkFieldValid("hsAcceptatieVraag003Nee", false))return;
		if(!checkFieldValid("hsAcceptatieVraag004Nee", false))return;
		if(!checkFieldValid("hsAcceptatieVraag005Nee", false))return;
    }
	if(fieldIsVisible("showIfNotApp")){
	  if(!checkFieldValid("hsMachtiging", false))return;
    }
	if(!checkFieldValid("hsAkkoord", false))return;
  }

  var pl = new SOAPClientParameters();
  pl.add("sesId", "0"+sesId);
  SOAPClient.invoke(hsWebsrvServer+getSrvForm(), "submitForm", pl, true, hsSubmitResp);
}

function hsSubmitResp(r) {
  if(r.Result==2){
    document.location=r.page;
	// 20070105 top. weggehaald!
  }
}
// FIELD CHECKS

function checkFieldValid(fieldName, allowNul, fasenr) {

	var o = document.getElementById(fieldName);
	var selectOK=true;
	if(o){
		if(o.type=="select-one"){
			if((o.value==0)&&!allowNul)selectOK=false;
		}
		if(o.type=="radio"){
                        var rg = document.getElementsByName(o.name);
                        if(rg) {
                          selectOK=false;
                          fieldName=o.name;
                          for (var i=0;i<rg.length;i++){
                            if(rg[i].checked)selectOK=true;
                          }
                        }
                }
		if(o.type=="checkbox"){
		  if(!getValueFromCheckbox(document.getElementById(fieldName)))selectOK=false;
		}
		if(o.value&&selectOK){
			var p = document.getElementById(fieldName+"E");
			if(p){
				if(p.style.display=="none"){
					return true;
				}
			} else {
				return true;
			}
		}
	}
    if(fasenr)hsGoToFase(fasenr);
	setFieldInValid(fieldName);
	return false;
}

function setFieldInValid(fieldName) {
	changeClassAddStr(fieldName+"Lbl", "E");
	showFieldError(fieldName+"E", "<p>Om verder te gaan moet dit veld ingevuld worden.</p>");
	setFocus(fieldName);
}

function setPremieField(fieldName, premie, clearIfNul) {
	var o = document.getElementById(fieldName);
	if(o) {
	  if(!isNaN(premie)){
	    if((premie!=0)||(!clearIfNul)){
	  	  o.innerHTML="<span class=\"hsESign\">&euro;</span><span class=\"hsEMon\">"+fmtMoney(premie)+"</span>"
		} else {
		  o.innerHTML="";
		}
	  } else {
	  	if(clearIfNul)o.innerHTML="";
	  }
	}
}

function logFaseChange(targetFase)
{
    var pl = new SOAPClientParameters();
    pl.add("sesId", "0"+sesId);
    pl.add("targetFase", "0"+targetFase);
    pl.add("reason", "0"+logReason);
	logReason="1";
    if(logErrorField){
	  pl.add("errorField", logErrorField);
	  logErrorField="";
	} else {
	  pl.add("errorField", "");
	}
    SOAPClient.invoke(hsWebsrvServer+getSrvForm("ForLogging"), "LogFaseChange", pl, true);

}

function setMoneyFormatRemove(oID) {
	o = document.getElementById(oID) ;
	if(o){
    try {
     	o.onfocus = function() { hsMoneyFocus(this); }
    }
    catch(e) {

    }
  }
}

function hsMoneyFocus(o) {

}


// server ping
var timeoutCheckedTime="";

function pingServerAsp() {
  	var head = document.getElementsByTagName('head').item(0);
  	var old  = document.getElementById('pingServerAspJs');
  	if (old) head.removeChild(old);
  	script = document.createElement('script');
  	script.src = '/client/js/pingserver.asp?now='+timeoutCheckedTime;
  	script.type = 'text/javascript';
  	script.defer = true;
  	script.id = 'pingServerAspJs';
  	void(head.appendChild(script));

  	setTimeout("pingServerAsp();",300000);
}

function pingServerAspx() {
  	var head = document.getElementsByTagName('head').item(0);
  	var old  = document.getElementById('pingServerAspxJs');
  	if (old) head.removeChild(old);
  	script = document.createElement('script');
  	script.src = '/server/pingserver.aspx?now='+timeoutCheckedTime;
  	script.type = 'text/javascript';
  	script.defer = true;
  	script.id = 'pingServerAspxJs';
  	void(head.appendChild(script));

  	setTimeout("pingServerAspx();",300000);
}

