function isblank(obj) {
	if(obj.value.search(/\S/)==-1)
		return true;
	else
		return false;
}
function datebad(obj, title, blankok) {
	if(blankok && isblank(obj))
		return false;
	if(obj.value.search(/^\s*\d\d?\/\d\d?\/\d+\s*$/)==-1) {
		window.alert(title+': "'+obj.value+'" is not a valid date');
		obj.select();
		obj.focus();
		return true;
	}
	return false;
}
function lenbad(obj, title) {
	if(isblank(obj)) {
		window.alert(title+': must not be blank');
		obj.select();
		obj.focus();
		return true;
	} else
		return false;
}
function moneybad(obj, title, blankok) {
	if(blankok && isblank(obj))
		return false;
	if(obj.value.search(/^\s*-?[0-9,]*(\.\d\d)?\s*$/)==-1) {
		window.alert(title+': "'+obj.value+'" is not a valid number');
		obj.select();
		obj.focus();
		return true;
	}
	return false;
}
function checkform() {
	var e = document.forms[0].elements;

	if(datebad(e['datefiled'], 'Date Claim Filed with GEM Member', false))
		return false;
	if(datebad(e['birthdate'], 'Date of Birth', true)) return false;
	if(moneybad(e['propamt'], 'Probable Amt. entire loss', true))
		return false;
	if(datebad(e['d1dob'], 'Dependent 1 Date of Birth', true)) return false;
	if(datebad(e['d2dob'], 'Dependent 2 Date of Birth', true)) return false;
	if(datebad(e['d3dob'], 'Dependent 3 Date of Birth', true)) return false;
	if(datebad(e['valdate'], 'Valued as of', true)) return false;
	if(moneybad(e['ilres'], 'Indemnity/Loss Reserves', true)) return false;
	if(moneybad(e['ilpaid'], 'Indemnity/Loss PTD', true)) return false;
	if(moneybad(e['ilrec'], 'Indemnity/Loss Recoveries', true)) return false;
	if(moneybad(e['mres'], 'Medical Reserves', true)) return false;
	if(moneybad(e['mpaid'], 'Medical PTD', true)) return false;
	if(moneybad(e['mrec'], 'Medical Recoveries', true)) return false;
	if(moneybad(e['lres'], 'Legal Reserves', true)) return false;
	if(moneybad(e['lpaid'], 'Legal PTD', true)) return false;
	if(moneybad(e['lrec'], 'Legal Recoveries', true)) return false;
	if(moneybad(e['eres'], 'Expense Reserves', true)) return false;
	if(moneybad(e['epaid'], 'Expense PTD', true)) return false;
	if(moneybad(e['erec'], 'Expense Recoveries', true)) return false;
	return window.confirm('Are you ready to submit this data to GEM?');
}
function makenum(f) {
	var t = f.value.replace(/[^-0-9.]/g, '');
	var n = parseFloat(t);
	if(isNaN(n))
		n = 0;
	return n;
}
function calcincurred(e,s) {
	return makenum(e[s+'res'])+makenum(e[s+'paid'])-makenum(e[s+'rec']);
}
function calctotal(e,s) {
	return makenum(e['il'+s])+makenum(e['m'+s])+makenum(e['l'+s])+makenum(e['e'+s]);
}
function settd(td,v) {
	var tdn = document.getElementById(td);
	var tn = document.createTextNode(v.toFixed(2));
	if(tdn.hasChildNodes())
		tdn.replaceChild(tn,tdn.firstChild);
	else
		tdn.appendChild(tn);
}
function calcfields() {
	var e = document.forms[0].elements;
	var inct = 0;
	var t;
	t = calcincurred(e,'il');
	settd('ilinc',t);
	inct += t;
	t = calcincurred(e,'m');
	settd('minc',t);
	inct += t;
	t = calcincurred(e,'l');
	settd('linc',t);
	inct += t;
	t = calcincurred(e,'e');
	settd('einc',t);
	inct += t;
	settd('restot',calctotal(e,'res'));
	settd('paidtot',calctotal(e,'paid'));
	settd('rectot',calctotal(e,'rec'));
	settd('inctot',inct);
}

