var errorList;
var postcodeSearchElement;
var procWin;
var xPos = 0;
var yPos = 0;

function delegateChangeHandler(list, method) {
	var l = list.length, id, el;
	while (l--) {
		id = list[l];
		el = document.getElementById(id);
		if (el) {
			(function (el) {
				el.onchange = window[method];
				el = null;
			})(el);
		}
		el = null;
	}
}

function init() {
	var invoke = [
		"DateOfBirth",
		"DateOfBirthSpouse",
		"AddressPostcode",
		"AddressHouseNumber",
		"FormerAddressPostcode",
		"FormerAddressHouseNumber",
		"CardInsuranceMarker",
		"CPIMarker"
	];
	var arrange = [
		"EmploymentHours",
		"EmploymentHoursSpouse",
		"AddressSinceYear",
		"PermitNumber"
	];
	delegateChangeHandler(invoke, 'invokeUpdateMethod');
	delegateChangeHandler(arrange, 'arrangeFormFields');
	prepareForm();
}

function updatePermitOtherBoolean(el) {
	var name = el.name;
	var value = el.value;
	el.form.elements[name][0].value = value;
	if ('1' === value) {
		moveToMainForm('drPermit');
	} else {
		moveToCubbyForm('drPermit');
	}
}

function updatePermit(obj) {
	var permType = new String(obj.value).toUpperCase().substr(0, 1);
	if (permType == '1')
		return true;
	else
		return false;
}
function updateAdditionalBenefit(obj) {
	if (obj.value <= 20 && obj.value != '')
		return true;
	else
		return false;
}
function updateAddress() {
	var currDate = new Date();
	var monthObj = document.getElementById("AddressSinceMonth");
	var yearObj = document.getElementById("AddressSinceYear");
	var addrDate = new Date((Number(yearObj.value) + 1), monthObj.options[monthObj.selectedIndex].value, 1);

	if (currDate < addrDate)
		return true;
	else
		return false;
}
function invokeUpdateMethod(e) {
	if (!e) e = window.event;
	var element = (e.target) ? e.target : e.srcElement;
	invokeUpdate(element);
}

function queryPostcode(postcode, housenumber, addrCode) {
	/*
	getAddressFromPostcode(postcode, housenumber, addrCode,
	  "<%= response.encodeURL( contextPath + "/Main.ctrl?command=searchPostcode") %>"
	  + "&postcode=" + postcode + "&houseNumber=" + housenumber)
*/
}
function getAddressFromPostcode(postcode, housenumber, addrCode, url) {
	if (postcode != "" && housenumber != "") {
		g_ajax_obj.CallXMLHTTPObjectGETParam ( url, setPostcodeAddress, addrCode);
	} else {
		var result = "1,,," + postcode + "," + housenumber;
		setPostcodeAddress(result, addrCode);
	}
}
function setPostcodeAddress(result, addrCode) {
	var parms = result.split(",");
	if (addrCode == 0) {
		idAddressStreet = "AddressStreet";
		idAddressTown   = "AddressTown";
	}
	if (addrCode == 1) {
		idAddressStreet = "FormerAddressStreet";
		idAddressTown   = "FormerAddressTown";
	}

	byId(idAddressStreet).value = parms[1]; // Street
	byId(idAddressTown).value = parms[2]; // Town
	if (parms[0].substr(parms[0].length-1) == '0')
		alert("geen straat/plaats gevonden voor postcode");

}

function updateConsumerFee(obj, consumerFeeObj) {
	consumerFeeObj.value="EUR "+obj.options[obj.selectedIndex].getAttribute("consumerFee");
}
function updateDeferredLease(obj, consumerFeeObj, deferredTermObj) {
	deferredTermObj.value=obj.options[obj.selectedIndex].getAttribute("deferredTerm") + " maanden";
	consumerFeeObj.value="EUR "+obj.options[obj.selectedIndex].getAttribute("consumerFee");
}
function updatePurchaseAmount(obj) {
	purchaseAmountElement = document.getElementById("PurchaseAmount");
	purchaseAmountElement.setAttribute("minAmount", obj.options[obj.selectedIndex].getAttribute("minAmount"));
	purchaseAmountElement.setAttribute("maxAmount", obj.options[obj.selectedIndex].getAttribute("maxAmount"));
	return true;
}
function updateComfortCompleet() {
	var cardInsuranceMarkerObj = document.getElementById("CardInsuranceMarker");
	if (cardInsuranceMarkerObj.checked) {
		cardInsuranceMarkerObj.value = 1;
	} else {
		cardInsuranceMarkerObj.value = 0;
	}
	return true;
}
function updatePayOffService() {
	var payOffServiceObj = document.getElementById("PayOffService");
	if (payOffServiceObj.checked) {
		payOffServiceObj.value = 1;
	} else {
		payOffServiceObj.value = 0;
	}
	return true;
}
function updatePlusPakket() {
	var CPIMarkerObj = document.getElementById("CPIMarker");
	if (CPIMarkerObj.checked) {
		CPIMarkerObj.value = 2;
	} else {
		CPIMarkerObj.value = 0;
	}
	moveToMainForm('drPlusPakket');
	return true;
}
function updateBirthDate(obj) {
	if (obj.value!='') {
		var birthDateTmp = "";
		birthDateComps = obj.value.split('-');
		if(birthDateComps[0]) {
			if (birthDateComps[0].length == 1) {
				birthDateTmp = birthDateTmp + '0';
			}
			birthDateTmp = birthDateTmp + birthDateComps[0];
		}
		if(birthDateComps[1]) {
			if (birthDateComps[1].length == 1) {
				birthDateTmp = birthDateTmp + '0';
			}
			birthDateTmp = birthDateTmp + birthDateComps[1];
		}
		if(birthDateComps[2]) {
			if (birthDateComps[2].length == 1)
				birthDateTmp = birthDateTmp + '0';
			birthDateTmp = birthDateTmp + birthDateComps[2];
		}
		var birthDateDay = birthDateTmp.substr(0,2);
		var birthDateMonth = birthDateTmp.substr(2,2);
		var birthDateYear = birthDateTmp.substr(4,4);
		var currDate = new Date();
		var currDay = currDate.getDate();
		var currMonth = currDate.getMonth();
		var currYear = currDate.getYear();
		var currAge = currYear - birthDateYear;
		if (birthDateMonth = currMonth && birthDateDay > currDay) {
			currAge = currAge - 1;
		} if (birthDateMonth > currMonth) {
			currAge = currAge - 1;
		}
		if (currAge < 74) {
			moveToMainForm('drPlusPakket');
		} else {
			moveToCubbyForm('drPlusPakket');
		}
		birthDateStr = birthDateTmp.substr(0,2) + '-' + birthDateTmp.substr(2,2) + '-' + birthDateTmp.substr(4,4);
		obj.value = birthDateStr;
	}
}
function showMessageOLD(fieldName, message) {
	procWin.close();
	if (document.getElementById(fieldName) != null)
		setTimeout("document.getElementById('" + fieldName + "').focus();alert('" + message + "');", 250);
	else
		setTimeout("alert('" + message + "');", 250);
}
function calculateInstallment(installmentobj, creditamountobj, cardtypeobj) {
	if (creditamountobj.value!='') {
		if (validateAmount(installmentobj)&&validateAmount(creditamountobj)) {
			if (cardtypeobj.value==1) {
				if (creditamountobj.value.lastIndexOf(',') == -1)
					tmpamount=((Number(creditamountobj.value)/100)*3);
				else
					tmpamount=((Number(creditamountobj.value.substr(0, creditamountobj.value.lastIndexOf(',')))/100)*3);

				if (tmpamount<10)
					mininstallmentamount=10;
				else
					mininstallmentamount=(tmpamount-(tmpamount%2));
			} else {
				if (creditamountobj.value.lastIndexOf(',') == -1)
					tmpamount=((Number(creditamountobj.value)/100)*5);
				else
					tmpamount=((Number(creditamountobj.value.substr(0, creditamountobj.value.lastIndexOf(',')))/100)*5);

				if (tmpamount<15)
					mininstallmentamount=15;
				else
					mininstallmentamount=(tmpamount-(tmpamount%2));
			}
			if (Number(installmentobj.value) < mininstallmentamount) {
				installmentobj.value = mininstallmentamount;
			}
		}
	}
	return true;
}
function showWindow(url, windowName, screenWidth, screenHeight, resizable) {
	if (resizable == true)
		resize = 'yes';
	else
		resize = 'no';
	window.open(url, windowName, 'Width=' + screenWidth + ',Height=' + screenHeight +
		',resizable=' + resize + ',scrollbars=yes,dependent=yes,status=no,toolbar=no,menubar=no');
}
