function blankAll(element, checks, texts) {
    //This function will make all the fields in a particular group blank or unchecked when the OK button is clicked. It also makes it so that the OK box cannot be unselected if another box is not clicked.
    //You will find this function on each of the OK checkboxes
    //the name of the group (kitchen, hall, etc.) as written in the form, how many checkboxes are used in the group, how many text boxes are used in the group
    if (document.getElementById(element + '0').checked == true) {
	for(i = 1; i <= checks; i++) {
	    document.getElementById(element + 'c-' + i).checked = false;
	}
	for(i = 1; i <= texts; i++) {
	    document.getElementById(element + 't-' + i).value = '';
	}
    }

    //will recheck the OK box if no other elements are checked
    if (document.getElementById(element + '0').checked == false) {
	document.getElementById(element + '0').checked = true;
    }
}

function blankOK(element, checks, texts, check, text) {
    //This function will uncheck the OK checkbox when another checkbox is checked.
    //the name of the form group (kitchen, hall, etc.) as written in the form, how many checkboxes are used to describe damages in the group, howmany text boxes are used, and which checkbox and text box this is applied to
    if(check != 0) {
	if(document.getElementById(element + 'c-' + check).checked == false) {
	    document.getElementById(element + 't-' + text).value = "";
	}
    }

    var booleon = false;
    for(i = 1; i <= checks; i++) {
	if (document.getElementById(element + 'c-' + i).checked != false) {
	    booleon = true;
	}
    }
    for(i = 1; i <= texts; i++) {
	if (document.getElementById(element + 't-' + i).value != '') {
	    booleon = true;
	}
    }

    if(booleon == true) {
	document.getElementById(element + '0').checked = false;
    }
    else {
	document.getElementById(element + '0').checked = true;
    }
}

function check(element, check, text) {
    //This function will check the corresponding checkbox when the descriptive textbox has been changed.
    //form group, checkbox number, textbox number
    if (document.getElementById(element + 'c-' + check).checked == false && document.getElementById(element + 't-' + text).value != "") {
	    document.getElementById(element + 'c-' + check).checked = true;
	    document.getElementById(element + '0').checked = false;
	}
}

function changeWhite(field) {
    //This function is used when someone has attempted to enter or submit data that was blank or incorrect in required fields (the field's background will change color). This function will change the color back to white.
    if(document.getElementById(field).value != "" && document.getElementById(field).value != null) {
	document.getElementById(field).style.background = "White";
	document.getElementById('tenant_f_name').style.borderColor = '#ffffff';
    }
}

function noBlanks() {
    //This will ensure that all required fields are not left blank and will change the color's background if neccasary.'
    //form information, ensure that all unit and tenant information is there and accurate and creats an alert if there is a problem
    var message = "";
    if (document.getElementById('tenant_f_name').value == "" || document.getElementById('tenant_f_name').value == null) {
	message += "You must enter a first name value.\n";
	document.getElementById('tenant_f_name').style.background = "#ffff00";
	document.getElementById('tenant_f_name').style.borderColor = '#ff0000';
    }
    if (document.getElementById('tenant_l_name').value == "" || document.getElementById('tenant_l_name').value == null) {
	document.getElementById('tenant_l_name').style.background = "#ffff00";
	document.getElementById('tenant_l_name').style.borderColor = '#ff0000';
	message += "You must enter a last name value.\n";
    }
    if (document.getElementById('email').value == "" || document.getElementById('tenant_f_name').value == null) {
	document.getElementById('email').style.background = "#ffff00";
	document.getElementById('email').style.borderColor = '#ff0000';
	message += "You must enter an email address.\n";
    }
    else {
	$email = document.getElementById('email').value;
	$bool = validateEmail($email);
	if($bool == false) {
	    document.getElementById('email').style.background = "#ffa500";
	    document.getElementById('email').style.borderColor = '#ff0000';
	    message += "The email address you entered is invalid.\n";
	}
    }
    if (document.getElementById('unit_number').value == "" || document.getElementById('tenant_l_name').value == null) {
	document.getElementById('unit_number').style.background = "#ffff00";
	document.getElementById('unit_number').style.borderColor = '#ff0000';
	message += "You must enter an apartment number.\n";
    }
    if (document.getElementById('apartment_keys').value == "" || document.getElementById('tenant_l_name').value == null) {
	document.getElementById('apartment_keys').style.background = "#ffff00";
	document.getElementById('apartment_keys').style.borderColor = '#ff0000';
	message += "You must enter a number of apatment keys you recieved.\n";
    }
    else if (isNaN(document.getElementById('apartment_keys').value) || document.getElementById('apartment_keys').value % 1 != 0){
	document.getElementById('apartment_keys').style.background = "#ffa500";
	document.getElementById('apartment_keys').style.borderColor = '#ff0000';
	message += "The number of apartment keys you entered is invalid.\n";
    }
    if (document.getElementById('mail_keys').value == "" || document.getElementById('tenant_f_name').value == null) {
	document.getElementById('mail_keys').style.background = "#ffff00";
	document.getElementById('mail_keys').style.borderColor = '#ff0000';
	message += "You must enter a number of mail keys you recieved.\n";
    }
    else if (isNaN(document.getElementById('mail_keys').value) || document.getElementById('mail_keys').value % 1 != 0){
	document.getElementById('mail_keys').style.background = "#ffa500";
	document.getElementById('mail_keys').style.borderColor = '#ff0000';
	message += "The number of mail keys you entered is invalid.\n";
    }
    if (document.getElementById('laundry_keys').value == "" || document.getElementById('tenant_l_name').value == null) {
	document.getElementById('laundry_keys').style.background = "#ffff00";
	document.getElementById('laundry_keys').style.borderColor = '#ff0000';
	message += "You must enter a number of laundry room keys you recieved.\n";
    }
    else if (isNaN(document.getElementById('laundry_keys').value) || document.getElementById('laundry_keys').value % 1 != 0){
	document.getElementById('laundry_keys').style.background = "#ffa500";
	document.getElementById('laundry_keys').style.borderColor = '#ff0000';
	message += "The number of laundry room keys you entered is invalid.\n";
    }
    
    if(message != "") {
	alert(message);
	return false;
    }
    else {
	return true;
    }

}

function checkEmail() {//calls valicateEmail creats an alert if there is an error
    var email = document.getElementById('email').value;

    var bool = validateEmail(email);
    if(bool == false) {
	document.getElementById('email').style.background = "#ffa500";
        document.getElementById('email').style.borderColor = '#ff0000';

	alert('The email you entered if invalid.');
	return false;
    }
    else {
	return true;
    }
}

function validateEmail(emailAddress) {//validates email and returns true or false
    var message = "";
    var at="@";
    var dot=".";
    var lat=emailAddress.indexOf(at);
    var lstr=emailAddress.length;
    var ldot=emailAddress.indexOf(dot);
    if (emailAddress.indexOf(at)==-1){
       return false;
    }

    if (emailAddress.indexOf(at)==-1 || emailAddress.indexOf(at)==0 || emailAddress.indexOf(at)==lstr){
       return false;
    }

    if (emailAddress.indexOf(dot)==-1 || emailAddress.indexOf(dot)==0 || emailAddress.indexOf(dot)==lstr){
	return false;
    }

     if (emailAddress.indexOf(at,(lat+1))!=-1){
	return false;
     }

     if (emailAddress.substring(lat-1,lat)==dot || emailAddress.substring(lat+1,lat+2)==dot){
	return false;
     }

     if (emailAddress.indexOf(dot,(lat+2))==-1){
	return false;
     }

     if (emailAddress.indexOf(" ")!=-1){
	return false;
     }

     return true;
}

function checkNum(field, fieldName) {//validates that fields are a whole number (number or keys)
    if(isNaN(document.getElementById(field).value) || document.getElementById(field).value % 1 != 0) {
	document.getElementById(field).style.background = '#ffa500';
	document.getElementById(field).style.borderColor = '#ff0000';
	alert('Please enter a valid number in the ' + fieldName + "box.")
    }
}