function copyContact(cb, index){
	if(cb.checked){ // Only copy when the checkbox is checked.
		var theForm = cb.form;
		// The number of elements must match in Contact and Supervisor. The type of input element must also match between the arrays.
		var contactFields = new Array('contact_name', 'contact_address', 'contact_phone', 'contact_email', 'contact_position', 'contact_agency_name');
		var supervisorFields = new Array('supervisor_name_'+index, 'supervisor_address_'+index, 'supervisor_phone_'+index, 'supervisor_email_'+index, 'supervisor_position_'+index, 'supervisor_department_'+index);
		
		for(var i=0;i<contactFields.length;i++){
			var contactObj = theForm.elements[contactFields[i]];
			var supervisorObj = theForm.elements[supervisorFields[i]];
			if(contactObj && supervisorObj){
				if(contactObj.tagName){ // non-radio groups
					var tagName = contactObj.tagName.toLowerCase();
					if(tagName == 'select'){
						supervisorObj.selectedIndex = contactObj.selectedIndex;
					}
					else if((contactObj.type && supervisorObj.type ) && (contactObj.type == 'checkbox' || contactObj.type == 'radio')){
						supervisorObj.checked = contactObj.checked;
					}
					else{ // textareas and other inputs
						supervisorObj.value = contactObj.value;
					}					
				}
				else if(contactObj.length){ // radio group
					for(var r=0;r<contactObj.length;r++){
						supervisorObj[r].checked = contactObj[r].checked;
					}
				}
			}
		}
	}
}
