var ajax1;
var result;
var vis_id;
var sec1 = "sec1";
var sec2 = "sec2";
var sec3 = "sec3";
var sec4 = "sec4";
var sec5 = "sec5";
var sec6 = "sec6";
var sec7 = "sec7";
var sec8 = "sec8";
var validate_errormsg = 'The following required fields have not been completed:\n\n';
var validate_success = true;
var selection; //used for checking select boxes in old browsers
var selectInput; // ^

var monthc1, monthc2, monthc3, monthc4, dayc1, dayc2, dayc3, dayc4, yearc1, yearc2, yearc3, yearc4;
//declaring globals here allows for their use in every function!

function openclose(element) {
var type = "click";
var bubbling = false;
var open = "";
var close = "";

	if(window.addEventListener) { // Standard
		
		element.addEventListener(type, expression, bubbling);
		return true;
	
	} 
	else if(window.attachEvent) { // IE
	
		element.attachEvent('on' + type, expression);
		return true;
	
	} 
	else return false;

}
function timestamp() {
	var currentTime = new Date();
	var hours = currentTime.getHours();
	var minutes = currentTime.getMinutes();
	var ampm = '';
	var month = currentTime.getMonth() + 1
	var day = currentTime.getDate()
	var year = currentTime.getFullYear()
	if (minutes < 10) {
		minutes = "0" + minutes;
	}
	if(hours > 11){
		ampm = 'PM';
	} else {
		ampm = 'AM';
	}	
	if (hours == 0) {
		hours += 12;
	}
	if (hours > 12) {
		hours -= 12;
	}
	var time = hours + ':' + minutes + ampm + ' ';
	var date = month + '/' + day + '/' + year;
	var result = time + date;
	return result;	
}

function show_ifinput(div_id) {
	switch(div_id)
		{
		case 'ifinput0':
		  document.getElementById(div_id).innerHTML = 
			'<textarea type="text" class="longinput"  maxlength="256" name="no_twentyfour_notified"></textarea>';
		  break;   
		case 'ifinput1':
		  document.getElementById(div_id).innerHTML = 
			'<textarea type="text" class="longinput"  maxlength="256" name="accident_no_SOP_follow"></textarea>';
		  break;    
		case 'ifinput2':
		  document.getElementById(div_id).innerHTML = 
			'<textarea type="text" class="longinput"  maxlength="256" name="accident_no_PPE"></textarea>';
		  break;
		case 'ifinput3':
		  document.getElementById(div_id).innerHTML = 
			'<textarea type="text" class="longinput"  maxlength="256" name="accident_concern_yes"></textarea>';
		  break;
		default:
			return;
		}
	return;
}

function hide_ifinput(div_id) {
	switch(div_id)
		{
		case 'ifinput0':
		  document.getElementById(div_id).innerHTML = '';
		  break;   
		case 'ifinput1':
		  document.getElementById(div_id).innerHTML = '';
		  break;    
		case 'ifinput2':
		  document.getElementById(div_id).innerHTML = '';
		  break;
		case 'ifinput3':
		  document.getElementById(div_id).innerHTML = '';
		  break;
		default:
			return;
		}
	return;
}
function fillna() {
	var len = document.air.length;
	with (document.air) {
		var i;
		i = 0;
		while (i < length) {
			if (elements[i].value == '') {
				alert(i);
				elements[i].value = "n/a";
				i++;
			}
			else {
				i++;
			}
		}
	}
}
function check_dates(){
	var datec1, datec2, datec3, datec4 = '';
	var comps = new Array('0', '0', '0', '0');
	with (document.air) {
		if (date_of_hire.value != 'mm/dd/yyyy') {
			datec1 = date_of_hire.value.split("/");
			monthc1 = parseInt(datec1[0]);
			dayc1 = parseInt(datec1[1]);
			yearc1 = parseInt(datec1[2]);
			comps[0] = 1;
		}
		else {
			comps[0] = 0;
		}
		if (date_notification.value != 'mm/dd/yyyy') {
			datec2 = date_notification.value.split("/");
			monthc2 = parseInt(datec2[0]);
			dayc2 = parseInt(datec2[1]);
			yearc2 = parseInt(datec2[2]);
			comps[1] = 1;
		}
		else {
			comps[1] = 0;
		}
		if (date_incident.value != 'mm/dd/yyyy') {
			datec3 = date_incident.value.split("/");
			monthc3 = parseInt(datec3[0]);
			dayc3 = parseInt(datec3[1]);
			yearc3 = parseInt(datec3[2]);
			comps[2] = 1;
		}
		else {
			comps[2] = 0;
		}
		if (date_retraining.value != 'mm/dd/yyyy') {
			datec4 = date_retraining.value.split("/");
			monthc4 = parseInt(datec4[0]);
			dayc4 = parseInt(datec4[1]);
			yearc4 = parseInt(datec4[2]);
			comps[3] = 1;
		}
		else {
			comps[3] = 0;
		}
	}

	if (comps[1] != 0 && comps[0] != 0) {
		if (yearc2 < yearc1) {
			validate_errormsg += "Error: Your date of notification is earlier than your date of hire\n"
			validate_success = false;
		}
		if (yearc2 == yearc1) {
			if (monthc2 < monthc1) {
				validate_errormsg += "Error: Your date of notification is earlier than your date of hire\n"
				validate_success = false;
			}
			if (monthc2 == monthc1) {
				if (dayc2 < dayc1) {
					validate_errormsg += "Error: Your date of notification is earlier than your date of hire\n"
					validate_success = false;
				}
			}
		}
	}
	if (comps[2] != 0 && comps[0] != 0) {
		if (yearc3 < yearc1) {
			validate_errormsg += "Error: Your date of incident is earlier than your date of hire\n"
			validate_success = false;
		}
		if (yearc3 == yearc1) {
			if (monthc3 < monthc1) {
				validate_errormsg += "Error: Your date of incident is earlier than your date of hire\n"
				validate_success = false;
			}
			if (monthc3 == monthc1) {
				if (dayc3 < dayc1) {
					validate_errormsg += "Error: Your date of incident is earlier than your date of hire\n"
					validate_success = false;
				}
			}
		}
		if (comps[1] != 0) {
			if (yearc2 < yearc3) {
				validate_errormsg += "Error: Your date of notification is earlier than your date of incident\n"
				validate_success = false;
			}
			if (yearc2 == yearc3) {
				if (monthc2 < monthc3) {
					validate_errormsg += "Error: Your date of notification is earlier than your date of incident\n"
					validate_success = false;
				}
				if (monthc2 == monthc3) {
					if (dayc2 < dayc3) {
						validate_errormsg += "Error: Your date of notification is earlier than your date of incident\n"
						validate_success = false;
					}
				}
			}
		}
		if (comps[3] != 0) {
			if (yearc3 < yearc4) {
				validate_errormsg += "Error: Your date of incident is earlier than your date of training\n"
				validate_success = false;
			}
			if (yearc3 == yearc4) {
				if (monthc2 < monthc3) {
					validate_errormsg += "Error: Your date of incident is earlier than your date of training\n"
					validate_success = false;
				}
				if (monthc3 == monthc4) {
					if (dayc3 < dayc4) {
						validate_errormsg += "Error: Your date of incident is earlier than your date of training\n"
						validate_success = false;
					}
				}
			}
			if (comps[1] != 0) {
				
				if (yearc2 < yearc4) {
					validate_errormsg += "Error: Your date of notification is earlier than your date of training\n"
					validate_success = false;
				}
				if (yearc2 == yearc4) {
					if (monthc2 < monthc3) {
						validate_errormsg += "Error: Your date of notification is earlier than your date of training\n"
						validate_success = false;
					}
					if (monthc2 == monthc4) {
						if (dayc2 < dayc4) {
							validate_errormsg += "Error: Your date of notification is earlier than your date of training\n"
							validate_success = false;
						}
					}
				}
				
			}
			if (yearc4 < yearc1) {
				validate_errormsg += "Error: Your date of training is earlier than your date of hire\n"
				validate_success = false;
			}
			if (yearc4 == yearc1) {
				if (monthc4 < monthc1) {
					validate_errormsg += "Error: Your date of training is earlier than your date of hire\n"
					validate_success = false;
				}
				if (monthc4 == monthc1) {
					if (dayc4 < dayc1) {
						validate_errormsg += "Error: Your date of training is earlier than your date of hire\n"
						validate_success = false;
					}
				}
			}
		}
	}
}
	
function validate(section) {
	switch(section)
	{
	case 'sec1':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			selection = person_completing;
			selectInput = selection.options[selection.selectedIndex].text;
			if (selectInput == '') {
				validate_errormsg += 'Your name\n';
				validate_success = false;
			}
			selection = department1;
			selectInput = selection.options[selection.selectedIndex].text;
			if (selectInput == '') {
				validate_errormsg += 'Your department\n';
				validate_success = false;
			}
			if (first_name.value == '') {
				validate_errormsg += 'Injured party\'s first name\n';
				validate_success = false;
			}
			if (date_of_hire.value == 'mm/dd/yyyy') {
				validate_errormsg += 'Injured party\'s date of hire\n';
				validate_success = false;
			}
			if (last_name.value == '') {
				validate_errormsg += 'Injured party\'s last name\n';
				validate_success = false;
			}
			if (injured_netid.value == '') {
				validate_errormsg += 'Injured party\'s NetID\n';
				validate_success = false;
			}
			if (injured_n_number.value == '') {
				validate_errormsg += 'Injured party\'s N number\n';
				validate_success = false;
			}
			selection = department2;
			selectInput = selection.options[selection.selectedIndex].text;
			if (selectInput == '') {
				validate_errormsg += 'Injured party\'s department';
				validate_success = false;
			}
		}
		break;
	case 'sec2':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			if (date_incident.value == 'mm/dd/yyyy') {
				validate_errormsg += 'Date of the incident\n';
				validate_success = false;
			}
			if (time_incident.value == '') {
				validate_errormsg += 'Time of the incident\n';
				validate_success = false;
			}
			if (ampm[0].checked == false && ampm[1].checked == false) {
				validate_errormsg += 'Time of the incident (AM/PM)\n';
				validate_success = false;
			}
			if (twentyfour_notified[0].checked == false && twentyfour_notified[1].checked == false) {
				validate_errormsg += '24 hour notification\n';
				validate_success = false;
			}	
			if (date_notification.value == 'mm/dd/yyyy') {
				validate_errormsg += 'Date of notification\n';
				validate_success = false;
			}
			if (date_incident.value == 'mm/dd/yyyy') {
				validate_errormsg += 'Date of incident\n';
				validate_success = false;
			}
			check_dates();		
		}
		break;
	case 'sec3':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			if (accident_location.value == '') {
				validate_errormsg += 'Accident location\n';
				validate_success = false;
			}
			if (accident_description.value == '') {
				validate_errormsg += 'Accident description\n';
				validate_success = false;
			}			
		}
		break;
	case 'sec5':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			if (date_retraining.value != 'mm/dd/yyyy') {
				check_dates();
			}			
		}
		break;
	case 'sec7':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			if (public_safety_report[0].checked == false && public_safety_report[1].checked == false) {
				validate_errormsg += 'Public safety report\n';
				validate_success = false;
			}
			if (public_safety_report[0].checked == true) {
				if (report_num.value == '') {
					validate_errormsg += 'Report Number\n';
					validate_success = false;
				}			
			}
		}
		break;
	case 'sec8':
		with (document.air) {
		validate_errormsg = 'The following required fields have not been completed:\n\n';
		validate_success = true;
			if (completed_by_netid.value == '') {
				validate_errormsg += 'Your NetID\n';
				validate_success = false;
			}
			if (completed_by_n_number.value == '') {
				validate_errormsg += 'Your N number\n';
				validate_success = false;
			}			
		}
		break;
	default:
		return;
	}
	return;
}
	
function update(id, html, reentry) {
//var reentry prevents multiple iterations of the same update, which prevents multiple updates of the same breadcrumb entry, for example
	if (id == 0) {
		return;
	}
	if (document.getElementById(reentry).title == "opened") {
		return;
	}
	document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + html + '';
	document.getElementById(reentry).title = "opened";
	return;
}

function show(id) {
	if (id != 'sec1' && vis_id < id && id != 'sec5') {
		validate(vis_id);
		if (validate_success == false) {
			show(vis_id);
			alert(validate_errormsg);
			return;
		}
	}
	var id = id+'';
	document.getElementById(id).style.visibility='visible';
	vis_id = id;
	var idbc = id + 'bc';
	document.getElementById(idbc).style.background='#e6f99b';
	return;
}

function hide(id) {

	var id = id+'';
	document.getElementById(id).style.visibility='hidden';
	var idbc = id + 'bc';
	document.getElementById(idbc).style.background='none';
	return;
}

//
////
//////
/* AJAX code block begins here */
//////
////
//

function expand(url, receptacle){
	var url = url+'';
	callAJAX(url, receptacle, '', '', ajax1, 'openclose');
}

function expand_noclose(url, receptacle){
	var url = url+'';
	callAJAX(url, receptacle, '', '', ajax1, 'noclose');
}

function clear(element) {
	document.getElementById(element).innerHTML='';
	return;
}

function callAJAX(url, pageElement, callMessage, errorMessage, ajaxobj, type) {
	if (document.getElementById(pageElement).title=='open' && type == 'openclose') {
		document.getElementById(pageElement).title='closed';
		document.getElementById(pageElement).innerHTML="";
		return;
	}
	document.getElementById(pageElement).innerHTML = callMessage;
	try {
		ajaxobj = new XMLHttpRequest();
		/* e.g. Firefox */
	} catch (e) {
		try {
			ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
			/* some versions IE */
		} catch (e) {
			try {
				ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
				/* some versions IE */
			} catch (e) {
				ajaxobj = false;
			}
		}
	}
	if (ajaxobj) {
		ajaxobj.onreadystatechange
		= function() {responseAJAX(pageElement, errorMessage, ajaxobj);};
		ajaxobj.open("GET",url,true);
		ajaxobj.send(null);
	}
}

function responseAJAX(pageElement, errorMessage, ajaxobj) {
	if(ajaxobj.readyState == 4) {
		if(ajaxobj.status == 200) {
			output = ajaxobj.responseText;
			document.getElementById(pageElement).innerHTML
			= output;
			document.getElementById(pageElement).title = "open";
			
		} else {
			document.getElementById(pageElement).innerHTML
			= errorMessage+"\n"+responseText;
		}
	}
}