
function initFuncs() {
	if (document.getElementById('inMemory')) {
		var inM = document.getElementById('inMemory');
		inM.style.display = 'none';
		var letterDiv = document.getElementById('sendLetter');
		letterDiv.style.display = 'none';
		var inMSwitch = document.getElementById('formMemory');
		addEvent(inMSwitch,'click',setMemory,false);
		var letterSwitch = document.getElementById('formHLetter');
		addEvent(letterSwitch,'click',setLetter,false);
		var theForm = document.getElementById('onlineDonation');
		theForm.onsubmit = validateDonate;
	}
	
	if(document.getElementById('regForm')) {
		var form = document.getElementById('regForm')
		hideGuests(form);
		
		var gSelect = document.getElementById('guests');
		addEvent(gSelect,'change',showGuests,false);
		
		var inputs = form.getElementsByTagName('input');
		var area = form.getElementsByTagName('textarea');	
		var sel = form.getElementsByTagName('select');		
		for (var i=0;i<inputs.length;i++) {
			if (inputs[i].id == 'sbmtBtn') continue;
			addEvent(inputs[i],'focus',highlight,false);
			addEvent(inputs[i],'blur',unhighlight,false);		
		}
		for (var i=0;i<area.length;i++) {
			addEvent(area[i],'focus',highlight,false);
			addEvent(area[i],'blur',unhighlight,false);		
		}				
	}	
}

function setMemory() {
	var thisswitch = document.getElementById('formMemory');
	if (thisswitch.checked) {
		document.getElementById('inMemory').style.display = 'block';
	} else {
		document.getElementById('inMemory').style.display = 'none';
		if (document.getElementById('sendLetter').style.display == 'block') {
			var letterSwitch = document.getElementById('formHLetter');
			letterSwitch.checked = false;					
			document.getElementById('sendLetter').style.display = 'none'
		}
	}
}
function setLetter() {
	var thisswitch = document.getElementById('formHLetter');
	if (thisswitch.checked) {
		document.getElementById('sendLetter').style.display = 'block';
	} else {
		document.getElementById('sendLetter').style.display = 'none';
	}
}

function validateDonate() {
	if (document.getElementById('formFName').value == '') {
		alert('You must provide your first name');
		document.getElementById('formFName').focus();		
		return false;				
	}
	if (document.getElementById('formLName').value == '') {
		alert('You must provide your last name');
		document.getElementById('formLName').focus();
		return false;				
	}
	if (document.getElementById('formEmail').value == '') {
		alert('You must provide your email address');
		document.getElementById('formEmail').focus()
		return false;		
	}
	if (document.getElementById('formEmail').value.indexOf('@') == -1) {
		alert('Please verify your email address');
		document.getElementById('formEmail').focus();
		return false;
	}
	if (document.getElementById('formMemory').checked) {
		if (document.getElementById('formHName').value == '') {
			alert("You must provide the Honoree's name");
			document.getElementById('formMemory').focus();
			return false;
		}
		if (!document.getElementById('yesMemory').checked) {
			if (!document.getElementById('yesHonor').checked) {
				alert('You must select either "In Memory of" or "In Honor of"');
				return false;
			}
		}
	}
	if (document.getElementById('formHLetter').checked) {
		if (document.getElementById('formHAddy').value == '') {
			alert('You must provide an address to send the acknowledgment letter');
			document.getElementById('formHAddy').focus();
			return false;
		}
	}
	if (document.getElementById('secureNumber').value == '') { 
		alert('You must answer the security math question');
		document.getElementById('secureNumber').focus();
		return false;
	}
	return true;
}


/* RSVP form stuff */

function hideGuests(form) {
	var fieldsets = document.getElementsByTagName('fieldset');
	for(var i=0;i<fieldsets.length;i++) {
		if (fieldsets[i].className == 'innerFS') {
			fieldsets[i].style.display = 'none';
		}
	}
}

function showGuests() {
	var form = document.getElementById('regForm');
	hideGuests(form);
	var select = form.guests;
	
  if(select.selectedIndex == 0) {	return; }
  
	var count = select.selectedIndex;
	count = count + 1; 	   // to compensate for the first fieldset....
	var fieldsets = document.getElementsByTagName('fieldset');	
	for(var i=0;i<fieldsets.length;i++) {
		if (i == count) return;
		if(fieldsets[i].className == 'innerFS') {
			fieldsets[i].style.display = 'block';
		}
	}
	
}

function highlight(e) {
	if (!e) e = window.event;
	var target = e.srcElement || e.target;
	target.style.background = '#ffc';	
}
function unhighlight(e) {
	if (!e) e = window.event;
	var target = e.srcElement || e.target;
	target.style.background = '#eee';	
	target.className = 'noerror';
}

function checkRegForm(form) {
	if (form.fname.value == '') {
		alert('You must provide your first name.');	
		form.fname.className = 'formError';		
		form.fname.focus();
		return false;
	}
	if (form.lname.value == '') {
		alert('You must provide your last name.');	
		form.lname.className = 'formError';		
		form.lname.focus();
		return false;
	}	
	if ((form.email.value == '') || (form.email.value.indexOf('@') == -1)) {
		alert('You must to provide an email address.');	
		form.email.className = 'formError';		
		form.email.focus();
		return false;	
	}
	if(form.phone.value == '') {
		alert('You must provide your phone number');
		form.phone.className = 'formError';
		form.phone.focus();
		return false;
	}
	if(form.addy.value == '') {
		alert('You must provide your mailing address');
		form.addy.className = 'formError';
		form.addy.focus();
		return false;
	}	
	if(form.guests.selectedIndex > 0) {
		var count = form.guests.selectedIndex;
		var count = count + 1;
		var fs = form.getElementsByTagName('fieldset');
		for(var i=0;i<fs.length;i++) {
			if (i == 0) continue;
			if (i >= count) continue;
			
			var Gfname = document.getElementById('g'+i+'FName');
			var Glname = document.getElementById('g'+i+'LName');
			
			if(Gfname.value == '') {
				alert('You must provide the guest\'s first name');
				Gfname.className = 'formError';
				Gfname.focus();
				return false;
			}
			if(Glname.value == '') {
				alert('You must provide the guest\'s last name');
				Glname.className = 'formError';
				Glname.focus();
				return false;
			}			
		}
	}
	
	return true;
}

/* End of RSVP */





addEvent(window,'load',initFuncs,false);
function addEvent(elm, type, fn, cap) {
	if (elm.addEventListener) {
		elm.addEventListener(type,fn,cap);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on'+type,fn);
		return r;
	}
	else {
		elm['on'+type] = fn;
	}
}