function updateHypotheekTab(e,c)
{
  //e = active number
  //c = count of tabs
  urchinTracker('Zoek/House/Tab4/'+e);

  for(i=1;i<c+1;i++)
  {
    da('HypTab'+i).className = "HdTab";
    da('HypBarDetail'+i).className = "dn";
  }
  da('HypTab'+e).className = "HdTabActive";
  da('HypBarDetail'+e).className = "db";
  if ( e != 1)
    hideNode('mortgageDetails');
  //TODO:
  //document.getElementById('hiddenCurrentHistoryTab').value = e;
}

function hidediv(id)
{
  if (document.getElementById) {
    document.getElementById(id).style.display = 'none';
  }
  else {
    if (document.layers) {
      document.id.display = 'none';
    }
    else {
      document.all.id.style.display = 'none';
    }
  }
}

function berekenmaximalehypotheek()
{
  if(validateMortgage('MaxMonthlyMortgageInput'))
  {
    showWait(3);
    var age = da('LeeftijdAanvrager');
    var income = da('InkomenAanvrager');

    var valid =true;
    valid  = validate(age);
    valid = valid && validate(income);
    var parameters = 'age=' + age.value + '&income=' + income.value

    if(da('ja').checked) {
      var ageP =  da('LeeftijdPartner');
      var incomeP = da('InkomenPartner');

      valid = valid && validate(ageP);
      valid = valid && validate(incomeP);

      parameters= + '&ageP=' +ageP.value
                  + '&incomeP=' + incomeP.value
                  + '&hasP=ja';
    }

    //if(!valid) return;
    //hideWait(3);

    var url= baseUrl + "/ajax/Housing/calcHypotheek.aspx?tm=" + new Date().getTime() + "&" + parameters;
    xmlHttp = GetXmlHttpObject(gotmaximalehypotheek);
    xmlHttp.open("GET", url , true)
    xmlHttp.send(null);
  }
}

function gotmaximalehypotheek()
{
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
  {
    if(xmlHttp.responseText != "")
    {
      var respons = xmlHttp.responseText.split('||') ;
      da('B_InkomenAanvrager').innerHTML = respons[0];
      da('B_InkomenPartner').innerHTML = respons[1];
      da('B_GezinsInkomen').innerHTML = respons[2];
      da('B_MaximaleHypotheekTot').innerHTML = respons[3];

      da('B_MaximaleKoopsomTotBestaandeBouw').innerHTML = respons[4];
      da('B_MaximaleKoopsomTotNieuwbouw').innerHTML = respons[5];
      da('MaximaleHypotheekTotImg').innerHTML = respons[3];
      if(da('MaximaleHypotheekTot2') != null) {
        da('MaximaleHypotheekTot2').innerHTML = respons[3];
      }
      da('MaximaleHypotheekTot').innerHTML = respons[3];
    }
  }
  //hideNode('pleasewait1');
  //setTimeout(hideNode('pleasewait1'),10);
  setTimeout(function(){
    hideWait(3);
    showNode('hypodetails');
  },1500);

}

/*MONTHLY MORTGAGE*/
function calculateMonthlyMortgage()
  {
    if(validateMortgage('MonthlyMortgageInput'))
    {

      var age = da('ageRequest').value;
      var grossIncome = da('incomeRequest').value;
      var partner = da('Yes').value;
      var housePrice = da('housePrice').value;
      var ownInvest = da('ownInvest').value;
      var newOrExisting = da('NewOrExisting').value;
      var url = "ajax/Housing/getMonthlyMortgage.aspx?dt=" + new Date().getTime() + "&age=" + age + "&grossInc=" + grossIncome + "&partner="+ partner +"&housePrice=" + housePrice + "&ownInvest=" + ownInvest + "&newOrExt=" + newOrExisting;
      if (partner == "ja")
        {
          var incomePartner = da('IncomePartner').value;
          url = url + "&partnerIncome=" + incomePartner;
        }
      //showNode('pleasewait2');
      showWait(4);

      xmlHttp = GetXmlHttpObject(gotCalulateMonthlyMortgage);
      xmlHttp.open("GET", url, true);
      xmlHttp.send(null);
    }
  }

  function gotCalulateMonthlyMortgage()
  {
  if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
    {
      if(xmlHttp.responseText != "")
      {
        setTimeout(function(){
          hideWait(4);
          var response = xmlHttp.responseText;
          responseRows = response.split("||");
          var netMonthCharge = responseRows[0];
          var grossMonthCharge = responseRows[1];
          var neededMortgage = responseRows[2];
          var yearIncome = responseRows[3];
          var age = responseRows[4];
          var housePrice = responseRows[5];
          var ownIncome = responseRows[6];
          var ownInvest = responseRows[7];
          var realestate = responseRows[8];
          var interest = responseRows[9];
          if (realestate == 1)
          realestate = "Bestaande bouw";
          else
          realestate = "Nieuwbouw";

          showNode("mortgageDetails");
          da('GrossMonthCharge').innerHTML = grossMonthCharge;
          da('NetMonthCharge').innerHTML = netMonthCharge;
          da('calcage').innerHTML = age;
          da('calcownIncome').innerHTML = ownIncome;
          da('calcyearIncome').innerHTML = yearIncome;
          da('calchousePrice').innerHTML = housePrice;
          da('KoopsomWoning2').innerHTML = housePrice;
          da('KoopsomWoning3').innerHTML = housePrice;
          da('calcownInvest').innerHTML = ownInvest;
          da('calcnewOrExist').innerHTML = realestate;
          da('NieuwbouwOfBestaand2').innerHTML = realestate;
          da('calcneededMortage').innerHTML = neededMortgage;
          da('BrutoMaandlasten').innerHTML = grossMonthCharge;
          da('NettoMaandlasten').innerHTML = netMonthCharge;
          da('ActueleRente').innerHTML = interest;
        },1500);
        //hideNode('pleasewait2');
        //setTimeout(function(){hideNode('pleasewait2')},1000);

        }
    }
  }

function hidepopup(e)
{
  hideWait(6)
  hidediv(e);
}

function showpopup(e)
{
  showWait(6)
	showdiv(e);
	var scrollY = scrollPos();
	var scrollH = document.documentElement.scrollHeight;
	var pos = scrollY + 100;

	var popup = document.getElementById(e);
	popup.style.paddingTop = pos+'px';
	popup.style.height = scrollH+'px';

	var links = document.getElementsByTagName('link');
	for(var i=0;i<links.length;i++)
	{
		if(links[i].getAttribute('media') == 'print')
		{
			if(links[i].getAttribute('href') == baseUrl + '/common/css/print.css')
				links[i].disabled = true;
		}
	}
}

function validateMortgage(MortageInput)
{
	var isValid = false;
		if(validateCurrentContainer(MortageInput))
		{
      isValid = true;
    }
  return isValid
}

function calculateIncome(f)
{
  if(document.getElementById('helpBox').style.display=='block')
  {
    document.getElementById('helpBox').style.display='none';
    hideWait(5);
  }
  else
  {
    document.getElementById('helpBox').style.display='block';
    showWait(5);
  }
  document.getElementById('helpBox').width = "473px";
  document.getElementById('helpBox').height = "217px";
  document.getElementById('helpBox').style.top = 250 + document.body.scrollTop + "px" ;
  document.getElementById('helpBox').style.left = (document.body.clientWidth - 200) / 2.5 + "px" ;
  document.getElementById('helpBox').src = baseUrl + "/common/iframe/incomeCalculator.aspx?field="+f;
  document.getElementById('helpBox').style.border = "0px solid #999999";
}
 /*END OF MONTHLY MORTGAGE*/

function ClearMaandlastenFields(){
   da('GrossMonthCharge').innerHTML = '';
   da('NetMonthCharge').innerHTML = '';
   hideNode('mortgageDetails')
 }
 function ClearMaxHypFields()
 {
   da('MaximaleHypotheekTotImg').innerHTML = '';
   da('MaximaleHypotheekTot').innerHTML = '';
   if (da('MaximaleHypotheekTot2')!=null)
     da('MaximaleHypotheekTot2').innerHTML = '';
   da('hypodetails').style.display = 'none';
 }

 // Valideer formulieritem
function validate(element) {
	var className = element.className;
	if ((element.value) == '' && className.indexOf('empty-valid-int') ==-1) {
		showerror(element,'Dit veld mag niet leeg zijn.');
		return false;
	} else if (className.indexOf('valid-int') !=-1) {

    isValidInteger = "1";
    if(className.indexOf('empty-valid-int') !=-1 && element.value == "")
    {
      element.value = "0";
    }
    else
    {
      if (!isInteger(element.value))
        isValidInteger = "0";
    }

		if (isValidInteger == "0") {
			showerror(element,'Dit veld moet getallen bevatten.');
			return false;
		}
    else
    {
      if(className.indexOf('leeftijd') > -1)
      {
        var intValue = parseInt(element.value);
        if(intValue < 18 || intValue > 65)
        {
          showerror(element,'Voer een leeftijd tussen de 18 en 65 in a.u.b.');
          return false;
        }
      }
      else if(className.indexOf('rentevast') > -1)
      {
        var intValue = parseInt(element.value);
        if(intValue < 0 || intValue > 30)
        {
          showerror(element,'Voer een rentevaste periode tussen 0 en 30 jaar in a.u.b.');
          return false;
        }
      }
      else if(className.indexOf('koopsom') > -1)
      {
        var intValue = parseInt(element.value);
        if(intValue < 10000 || intValue > 10000000)
        {
          showerror(element,'Dit veld moet een re&euml;le koopsom bevatten.');
          return false;
        }
      }
      else if(className.indexOf('inkomen') > -1)
      {
        var intValue = parseInt(element.value);
        if(intValue < 0 || intValue > 10000000)
        {
          showerror(element,'Dit veld moet een re&euml;el inkomen bevatten.');
          return false;
        }
      }
      else if(className.indexOf('overwaarde') > -1 || className.indexOf('verbouwing') > -1)
      {
        var intValue = parseInt(element.value);
        if(intValue < 0 || intValue > 10000000)
        {
          showerror(element,'Dit veld moet re&euml;le waarde bevatten.');
          return false;
        }
      }
    }
	} else if (className.indexOf('valid-rente') !=-1) {
		if (!isRente(element.value)) {
			showerror(element,'Dit veld moet een rente waarde hebben. (xx,x)');
			return false;
		}
    else
    {
      var parsed = element.value.replace(',', '.');
      var fltValue = parsed;
      if(fltValue < 2.0 || fltValue > 12.0)
      {
        showerror(element,'Dit veld moet een re&euml;le rente waarde bevatten.');
        return false;
      }
    }
	}
	hideerror(element);
	return true;
}
// Toon error in formulier
function showerror(element,msg) {
    var row = element;
    while (row = row.parentNode) {
		if (row.tagName.toLowerCase() == 'form')  break;
        if (row.className.indexOf('row') != -1) {
			    row.className += ' error';
          break;
        }
    }
	var divs = row.getElementsByTagName('div');
	for(var i=0;i<divs.length;i++) {
		if (divs[i].className.indexOf('errorTxt') != -1) {
			divs[i].innerHTML = msg;
			break;
		}
	}
}

// Verberg error in formulier
function hideerror(element) {
    var row = element;
    while (row = row.parentNode) {
		if (row.tagName.toLowerCase() == 'form')  break;
        if (row.className.indexOf('row') != -1) {
			if (row.className.indexOf('error') != -1) {
				row.className = row.className.replace('error','');
			}
            break;
        }
    }
}

function isInteger(val) {
	return (val.match("^[0-9]+$") != null);
}

function isRente(val) {
	return ((val.match("^([0-9]{1,2}),[0-9]$") != null) || (val.match("^([0-9]{1,2})$") != null));
}
