function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "." + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}




var xmlhttp

function loadXMLDoc(){
	
	if (document.loan.pris && document.loan.ekstraudstyr) {
	document.loan.totalpris.value = Number(document.loan.pris.value) + Number(document.loan.ekstraudstyr.value);
	}
	formen = document.loan;
	formIsValid = true;
	
	xml = "<form>"
	for (i=0;i<formen.elements.length;i++){
		if (formen.elements[i].name != '') {
			if (formen.elements[i].required == 'true' && formen.elements[i].value == ''){
				formIsValid = false
			}
			if (formen.elements[i].value == ''){
			}else{
				xml += "<"+formen.elements[i].name+" value='"+formen.elements[i].value+"'"
				xml += "></"+formen.elements[i].name+">\n"
			}
		}
	}
	xml += "</form>"
	//alert(xml);
	xmlDoc = new ActiveXObject('MSXML2.DOMDocument');
	xmlDoc.async = false;
	xmlDoc.loadXML(xml);
	url = "/loanCalc.asp";
	
	//alert(formIsValid);
	
// code for Mozilla, etc.
document.body.style.cursor="wait";
if (window.XMLHttpRequest && formIsValid)
  {
  xmlhttp=new XMLHttpRequest()
  xmlhttp.onreadystatechange=state_Change
  xmlhttp.open("POST",url,true)
  xmlhttp.send(xmlDoc)
    //alert("FF:" + url);
  }
// code for IE
else if (window.ActiveXObject && formIsValid)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
    if (xmlhttp)
    {
    //alert("IE:" + url);
    xmlhttp.onreadystatechange=state_Change
    xmlhttp.open("POST",url,true)
    xmlhttp.send(xmlDoc)
    }
  }
}

function state_Change() {
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4) {
	  // if "OK"
		if (xmlhttp.status==200) {
			//alert(xmlhttp.responseText);
			result = xmlhttp.responseText;
			returnResult(result)
		} else {
			alert("Problem retrieving data:" + xmlhttp.statusText)
		}
	}
}

function returnResult(result){
/*
'Private Const RET_BilPris = 1
'Private Const RET_DwnPmt = 6
'Private Const RET_LoanNeed = 7
'Private Const RET_StempKont = 8
'Private Const RET_StempTrans = 9
'Private Const RET_TingProcAfgift = 9
'Private Const RET_Ting = 10
'Private Const RET_PantDek = 11
'Private Const RET_StiftPov = 12
'Private Const RET_EkspGeb = 13
'Private Const RET_OmKostTot = 15
'Private Const RET_LoanTot = 16
'Private Const RET_Pmt = 17 ' Monthly Payment
'Private Const RET_Rent = 18
'Private Const RET_RentNom = 19
'Private Const RET_AOP = 20
'Private Const RET_LeverOmKost = 21
'Private Const RET_UdBetProc = 22
'Private Const RET_UdBetKr = 23
*/
	formen = document.loan;
	result = result.split(',');
	//alert(result.length);
	//formen.bil_alder.value = result[27];
	
	if (document.loan.forventetkm.value == ''){
		alert('Du skal udfylde forventet kilometer/år.');
		document.loan.forventetkm.focus();
		allowAnsoegning = false;
	}else if (document.loan.totalpris.value == ''){
		alert('Du skal udfylde pris');
		document.loan.totalpris.focus();
		allowAnsoegning = false;
	}else if (result[0]!=0){
		alert(result[1]);
		allowAnsoegning = false;
		document.loan.ansoegombillaan.disabled = true;
	}else{
		allowAnsoegning = true;
		document.loan.ansoegombillaan.disabled = false;
		if (document.loan.FraCarConfig.value==1){
		formen.r1.value = FormatNumber(result[1]-result[21], 0, false, false, true) + ' Kr.';
		}
		if (document.loan.FraCarConfig.value==0){
		formen.r1.value = FormatNumber(result[1], 0, false, false, true) + ' Kr.';
		}
		formen.r7.value = FormatNumber(result[7], 0, false, false, true) + ' Kr.';
		/*formen.r9.value = FormatNumber(result[9], 0, false, false, true) + ' Kr.';
		formen.r10.value = FormatNumber(result[10], 0, false, false, true) + ' Kr.';
		formen.r11.value = FormatNumber(result[11], 0, false, false, true) + ' Kr.';
		formen.r12.value = FormatNumber(result[12], 0, false, false, true) + ' Kr.';
		formen.r13.value = FormatNumber(result[13], 0, false, false, true) + ' Kr.';*/
		formen.r15.value = FormatNumber(result[15], 0, false, false, true) + ' Kr.';
		formen.r16.value = FormatNumber(result[16], 0, false, false, true) + ' Kr.';
		formen.r17.value = FormatNumber(result[17], 0, false, false, true) + ' Kr.';
		formen.r18.value = FormatNumber(result[18], 2, false, false, true) + ' %';
		//formen.r19.value = FormatNumber(result[19], 2, false, false, true) + ' %';
		formen.r20.value = FormatNumber(result[20], 2, false, false, true) + ' %';
		if (document.loan.FraCarConfig.value==1){
			formen.r21.value = FormatNumber(result[21], 0, false, false, true) + ' Kr.';
		}
		if (document.loan.FraCarConfig.value==0){ // Leveringsomkostninger skal ikke vises hvis udregning kommer fra car config
			formen.r21.value = '0 Kr.';
			//document.all('tr21').style.display = 'none'
		}
		formen.r22.value = '' + FormatNumber(result[22], 2, false, false, true) + '%';
		formen.r23.value = FormatNumber(result[23], 0, false, false, true) + ' Kr.';
		//formen.r24.value = FormatNumber(result[24], 0, false, false, true) + ' Kr.';
		
		//formen.rentetype.value = document.loan.rentetype.options[document.loan.rentetype.selectedIndex].text;
	}
	document.body.style.cursor="default";
}

function checkUdbetaling() {
	formen = document.loan;
	udbetaling = formen.udbetaling.value;
	udbetalingstype = formen.udbetalingstype.value;
	if (udbetalingstype == 'kr'){
		udbetalingstype = 0;
		udbetalingstype_text = ' kr';
	} else {
		udbetalingstype = 1;
		udbetalingstype_text = '%';
	}
	biltype = formen.biltype.value;
	if (udbetaling != '') {
		if (udbetaling >= eval(biltype+'_Satser[udbetalingstype]')) {
			return true;
		} else {
			alert('Udbetalingen er for lav. Den skal min. være '+eval(biltype+'_Satser[udbetalingstype]') + udbetalingstype_text);
			//formen.udbetaling.focus();
			return false;
		}
	}
}




function validateCalc(){
	
	formen = document.loan;
	if (formen.forventetkm.value == ''){
		alert('Du skal udfylde forventet kilometer/år.');
		formen.forventetkm.focus();
		return false;
	}
	if (formen.pris.value == '' || isNaN(formen.pris.value)){
		alert('Du skal udfylde pris. Prisen skal være numerisk.');
		formen.pris.focus();
		return false;
	}
	if (formen.udbetaling.value == '' || isNaN(formen.udbetaling.value)){
		alert('Du skal udfylde udbetaling. Udbetalingen skal være numerisk.');
		formen.udbetaling.focus();
		return false;
	}
	
	datransferForm = document.transferForm;
	
	datransferForm.Gruppenr.value = formen.Gruppenr.value;
	datransferForm.afgift.value = formen.afgift.value;
	datransferForm.reg.value = formen.reg.value;
	datransferForm.nyBil.value = formen.nyBil.value;
	datransferForm.biltype.value = formen.biltype.value;
	datransferForm.forventetkm.value = formen.forventetkm.value;
	datransferForm.pris.value = formen.pris.value;
	datransferForm.ekstraudstyr.value = formen.ekstraudstyr.value;
	datransferForm.totalpris.value = formen.totalpris.value;
	datransferForm.Laanetype.value = formen.Laanetype.value;
	datransferForm.loebetid.value = formen.loebetid.value;
	datransferForm.udbetaling.value = formen.udbetaling.value;
	datransferForm.udbetalingstype.value = formen.udbetalingstype.value;
	datransferForm.rentetype.value = formen.rentetype.value;
	
	datransferForm.action = "290_32.asp";
	datransferForm.submit();
	
	return false;
}


function validatePerson(){
	formen = document.loan;
	datransferForm = document.transferForm;
	
	if (formen.Fabrikat.value == ''){
		alert('Du skal udfylde fabrikat.');
		formen.Fabrikat.focus();
		return false;
	}
	if (formen.Model.value == ''){
		alert('Du skal udfylde model.');
		formen.Model.focus();
		return false;
	}
	if (formen.Motor.value == ''){
		alert('Du skal udfylde motor.');
		formen.Motor.focus();
		return false;
	}
	if (formen.BilVariant.value == ''){
		alert('Du skal udfylde variant.');
		formen.BilVariant.focus();
		return false;
	}
	if (formen.Modelaar.value == '' || isNaN(formen.Modelaar.value)){
		alert('Du skal udfylde model år. Skal være numerisk.');
		formen.Modelaar.focus();
		return false;
	}
	if ((formen.Kmstand.value == '' || isNaN(formen.Kmstand.value)) && datransferForm.nyBil.value == 1){
		alert('Du skal udfylde km stand. Skal være numerisk.');
		formen.Kmstand.focus();
		return false;
	}

	if (formen.Cprnr.value == ''){ // && formen.Cvrnr.value == ''
		alert('Du skal udfylde CPR-nr.');// eller CVR-nr.
		formen.Cprnr.focus();
		return false;
	}
	if (formen.Cprnr.value != ''){ // && formen.Cvrnr.value == ''
		if(cprCheck(formen.Cprnr) == false){
			alert('CRP nr. er ikke korrekt.');
			formen.Cprnr.focus();		
			return false;	
		}
	}
	if (formen.email.value == '' && formen.Telefon.value == ''){
		alert('Du skal udfylde enten telefonnr eller e-mail.');
		formen.email.focus();
		return false;
	}
	if (formen.SamleverCprAktiv[0].checked) {
		if (formen.SamleverCpr.value == ''){
			alert('CPR-nr. på meddebitor skal udfyldes.');
			formen.SamleverCpr.focus();
			return false;
		}
		if (formen.SamleverCpr.value != ''){
			if(cprCheck(formen.SamleverCpr) == false){
				alert('CRP nr. på meddebitor er ikke korrekt.');
				formen.SamleverCpr.focus();		
				return false;	
			}
		}
	}
	

	datransferForm.Fabrikat.value = formen.Fabrikat.value;
	datransferForm.Model.value = formen.Model.value;
	datransferForm.Motor.value = formen.Motor.value;
	datransferForm.BilVariant.value = formen.BilVariant.value;
	datransferForm.Modelaar.value = formen.Modelaar.value;
	datransferForm.Kmstand.value = formen.Kmstand.value;
	datransferForm.Stelnummer.value = formen.Stelnummer.value;
	datransferForm.Cprnr.value = formen.Cprnr.value;
	datransferForm.Telefon.value = formen.Telefon.value;
	datransferForm.email.value = formen.email.value;
	datransferForm.SamleverCprAktiv.value = formen.SamleverCprAktiv.value;
	datransferForm.SamleverCpr.value = formen.SamleverCpr.value;

	if (formen.showExtraTab.value == 1){
		datransferForm.action = "291_32.asp";
	}else{
		datransferForm.redirect.value = "292_32.asp";
		datransferForm.action = "loan_apply_new.asp";
	}
	datransferForm.submit();
	
	return false;
}


function validateExtra(){
	formen = document.loan;
	datransferForm = document.transferForm;
	
	if (formen.stilling.value == ''){
		alert('Du skal udfylde stilling.');
		formen.stilling.focus();
		return false;
	}
	if (formen.hjemmeboende_boern.value == '' || isNaN(formen.hjemmeboende_boern.value)){
		alert('Du skal udfylde antal hjemmeboende børn. Skal være numerisk.');
		formen.hjemmeboende_boern.focus();
		return false;
	}
	if (formen.arbejdsgiver.value == ''){
		alert('Du skal udfylde arbejdsgiver.');
		formen.arbejdsgiver.focus();
		return false;
	}
	if (formen.ansat_siden.value == ''){
		alert('Du skal udfylde ansat siden.');
		formen.ansat_siden.focus();
		return false;
	}
	if (formen.indkomst.value == '' || isNaN(formen.indkomst.value)){
		alert('Du skal udfylde indkomst. Skal være numerisk.');
		formen.indkomst.focus();
		return false;
	}
	if (formen.indkomst_efter_skat.value == '' || isNaN(formen.indkomst_efter_skat.value)){
		alert('Du skal udfylde indkomst efter skat. Skal være numerisk.');
		formen.indkomst_efter_skat.focus();
		return false;
	}
	if (formen.tidl_arbejdsgiver_1.value == ''){
		alert('Du skal udfylde tidligere arbejdsgiver.');
		formen.tidl_arbejdsgiver_1.focus();
		return false;
	}
	if (formen.privatstand.selectedIndex != 2){
		if (formen.samlever_stilling.value == ''){
			alert('Du skal udfylde stilling.');
			formen.samlever_stilling.focus();
			return false;
		}
		if (formen.samlever_arbejdsgiver.value == ''){
			alert('Du skal udfylde arbejdsgiver.');
			formen.samlever_arbejdsgiver.focus();
			return false;
		}
		if (formen.samlever_ansat_siden.value == ''){
			alert('Du skal udfylde ansat siden.');
			formen.samlever_ansat_siden.focus();
			return false;
		}
		if (formen.samlever_indkomst.value == '' || isNaN(formen.samlever_indkomst.value)){
			alert('Du skal udfylde indkomst. Skal være numerisk.');
			formen.samlever_indkomst.focus();
			return false;
		}
		if (formen.samlever_indkomst_efter_skat.value == '' || isNaN(formen.samlever_indkomst_efter_skat.value)){
			alert('Du skal udfylde indkomst efter skat. Skal være numerisk.');
			formen.samlever_indkomst_efter_skat.focus();
			return false;
		}
	}
	if (formen.omk_1.value == '' || isNaN(formen.omk_1.value)){
		alert('Du skal udfylde boligudgifter. Skal være numerisk.');
		formen.omk_1.focus();
		return false;
	}
	if (formen.omk_2.value == '' || isNaN(formen.omk_2.value)){
		alert('Du skal udfylde lys og varme udgifter. Skal være numerisk.');
		formen.omk_2.focus();
		return false;
	}
	if (formen.omk_3.value == '' || isNaN(formen.omk_3.value)){
		alert('Du skal udfylde forsikringsudgifter. Skal være numerisk.');
		formen.omk_3.focus();
		return false;
	}
	if (formen.omk_4.value == '' || isNaN(formen.omk_4.value)){
		alert('Du skal udfylde øvrige udgifter. Skal være numerisk.');
		formen.omk_4.focus();
		return false;
	}
	if (formen.omk_5.value == '' || isNaN(formen.omk_5.value)){
		alert('Du skal udfylde låneudgifter. Skal være numerisk.');
		formen.omk_5.focus();
		return false;
	}
	

	datransferForm.stilling.value = formen.stilling.value;
	datransferForm.privatstand.value = formen.privatstand.options[formen.privatstand.selectedIndex].text;
	datransferForm.boligforhold.value = formen.boligforhold.options[formen.boligforhold.selectedIndex].text;
	datransferForm.a_kassemedlem.value = formen.a_kassemedlem.checked;
	datransferForm.hjemmeboende_boern.value = formen.hjemmeboende_boern.value;
	datransferForm.arbejdsgiver.value = formen.arbejdsgiver.value;
	datransferForm.ansat_siden.value = formen.ansat_siden.value;
	datransferForm.indkomst.value = formen.indkomst.value;
	datransferForm.indkomst_efter_skat.value = formen.indkomst_efter_skat.value;
	datransferForm.tidl_arbejdsgiver_1.value = formen.tidl_arbejdsgiver_1.value;
	datransferForm.samlever_stilling.value = formen.samlever_stilling.value;
	datransferForm.samlever_a_kassemedlem.value = formen.samlever_a_kassemedlem.checked;
	datransferForm.samlever_arbejdsgiver.value = formen.samlever_arbejdsgiver.value;
	datransferForm.samlever_ansat_siden.value = formen.samlever_ansat_siden.value;
	datransferForm.samlever_indkomst.value = formen.samlever_indkomst.value;
	datransferForm.samlever_indkomst_efter_skat.value = formen.samlever_indkomst_efter_skat.value;
	datransferForm.omk_1.value = formen.omk_1.value;
	datransferForm.omk_2.value = formen.omk_2.value;
	datransferForm.omk_3.value = formen.omk_3.value;
	datransferForm.omk_4.value = formen.omk_4.value;
	datransferForm.omk_5.value = formen.omk_5.value;
	datransferForm.redirect.value = "292_32.asp";
	datransferForm.action = "loan_apply_new.asp";
	datransferForm.submit();
	
	return false;
}

function cprCheck(flt){
	var cpr = flt.value;
	match = false
	if(cpr.match(/[0-9]{6}\-?[0-9]{4}/)){
		cpr = cpr.replace(/\-/g,"");
		var chk = 0;
		for(i=9;i>-1;i--){
			chk += (+cpr.charAt(i))*((i>2)?(10-i):(4-i));
		}
		if(chk%11==0)match = true;
		var dag = new Date(+cpr.substring(4,2),+cpr.substring(2,2),+cpr.substring(0,2));
		if(dag.getTime() > new Date().getTime() || !match){
			return false; //alert("Ugyldigt Cpr nr.");
		}else{
			return true; //alert("Gyldigt Cpr nr. (Køn: " + ((cpr.match(/[13579]$/))?"Mand":"Kvinde") + ")");
		}
	}else{
		return false; //alert((cpr.length>0)?"Validerer ...":"<-- Indtast CPR nr.");
	}
}

function isValidDate(day,month,year){
	var dteDate;
	dteDate=new Date(year,month,day);
	return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getYear()));
}




function changeLaanetype(formen,targ){
	udbetaling = formen.udbetaling.value;
	udbetalingstype = formen.udbetalingstype.options[formen.udbetalingstype.selectedIndex].value;
	laanetype = formen.Laanetype.options[formen.Laanetype.selectedIndex].value;
	totalpris = formen.totalpris.value;
	if (totalpris != ''){
		if (udbetalingstype == 'kr'){
			udbetalingPct = (udbetaling / totalpris) * 100;
		} else {
			udbetalingPct = udbetaling;
		}
		if (targ == 'Laanetype') { // Hvis feltet der skal påvirkes er Laanetype
			if (udbetalingPct < 20) {
				formen.Laanetype.selectedIndex = 0; // Guldlån
			} else {
				formen.Laanetype.selectedIndex = 1; // Lån med udbetaling
			}
		}
		if (targ == 'Laanetype_autohuset') { // Hvis feltet der skal påvirkes er Laanetype
			if (udbetalingPct < 20) {
				formen.Laanetype.selectedIndex = 0; // Guldlån
				formen.Gruppenr.value = '42'; // Guldlån				
			} else {
				formen.Laanetype.selectedIndex = 1; // Lån med udbetaling
				formen.Gruppenr.value = '41'; // Købekontrakt				
			}

}

if (targ == 'Laanetype_leasingpartner') { // Hvis feltet der skal påvirkes er Laanetype
    if (udbetalingPct < 20) {
        formen.Laanetype.selectedIndex = 0; // Guldlån
        formen.Gruppenr.value = '49'; // Elitelån				
    } else {
        formen.Laanetype.selectedIndex = 1; // Lån med udbetaling
        formen.Gruppenr.value = '45'; // Købekontrakt				
    }
}			
	
		if (targ == 'udbetaling') { // Hvis feltet der skal påvirkes er udbetaling
			if (laanetype == 1 && udbetalingPct >= 20) {
				formen.udbetaling.value = '19'; // Indsæt 19% (skal være under 20%)
				formen.udbetalingstype.selectedIndex = 1; // Vælg %
			}
			if (laanetype == 2 && udbetalingPct < 20) {
				formen.udbetaling.value = '20'; // Indsæt 20%
				formen.udbetalingstype.selectedIndex = 1; // Vælg %
			}

}

if (targ == 'udbetaling_leasingpartner') { // Hvis feltet der skal påvirkes er udbetaling
    if (laanetype == 1 && udbetalingPct >= 20) {
        formen.udbetaling.value = '19'; // Indsæt 19% (skal være under 20%)
        formen.udbetalingstype.selectedIndex = 1; // Vælg %
        formen.Gruppenr.value = '49'; // Elitelån
    }
    if (laanetype == 2 && udbetalingPct < 20) {
        formen.udbetaling.value = '20'; // Indsæt 20%
        formen.udbetalingstype.selectedIndex = 1; // Vælg %
        formen.Gruppenr.value = '45'; // Købekontrakt
    }
}
		
		if (targ == 'udbetaling_autohuset') { // Hvis feltet der skal påvirkes er udbetaling
			if (laanetype == 1 && udbetalingPct >= 20) {
				formen.udbetaling.value = '19'; // Indsæt 19% (skal være under 20%)
				formen.udbetalingstype.selectedIndex = 1; // Vælg %
				formen.Gruppenr.value = '42'; // Guldlån
			}
			if (laanetype == 2 && udbetalingPct < 20) {
				formen.udbetaling.value = '20'; // Indsæt 20%
				formen.udbetalingstype.selectedIndex = 1; // Vælg %
				formen.Gruppenr.value = '41'; // Købekontrakt
			}
		}
	}
}

function showAnsoegning(){
	if (allowAnsoegning) {
		document.all('ansoegning').style.display = 'block';
	} else {
		alert('Du kan ikke ansøge før du har lavet en beregning. For at lave en beregning skal du udfylde alle felter i beregningsformen');
		document.all('ansoegning').style.display = 'none';
	}
}


/***********************************************
* Disable "Enter" key in Form script- By Nurul Fadilah(nurul@REMOVETHISvolmedia.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
                
function handleEnter (field, event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			var i;
			for (i = 0; i < field.form.elements.length; i++){
				if (field == field.form.elements[i]){
					break;
				}
			}
			i = (i + 1) % field.form.elements.length;
			return false;
		} 
		else
		return true;
	}      
	
	
	
	

