// GLOBAL VARIABLES
var x;
var firstName = document.insuranceForm.First_Name;
var lastName = document.insuranceForm.Last_Name;
var email = document.insuranceForm.Email_Address;
var submitButton = document.insuranceForm.Submit;

// VALIDATION CLASS
function Validate(input) {
	this._input = input;
// NAME METHOD
	Validate.prototype.name = function() {	
		var regex = new RegExp("^[a-zA-Z]+(([\'\,\.\-][a-zA-Z])?[a-zA-Z]*)*$");
		if(regex.test(this._input.value) == false) {
		this._input.value = "* REQUIRED";
		this._input.style.background = "#ffffcc";
		return false;
		}
	}
// EMAIL METHOD
	Validate.prototype.email = function() {
		var regex  = new RegExp("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$");
		if (regex.test(this._input.value) == false) {
			this._input.value = "* REQUIRED";
			this._input.style.background = "#ffffcc";
			return false;
		}
	}
}

// INSTANTIATE NEW VALIDATE OBJECT AND LOOP THROUGH ARRAY
function validateAll() {
	var validate = new Validate();
	var newArray = new Array(firstName,lastName,email)
	for(x in newArray) {
		validate._input = newArray[x];
		if(newArray[x] == firstName || newArray[x] == lastName) {
			validate.name();
			if(validate.name() == false) {
				return false;
			}
		}
		if(newArray[x] == email) {
			validate.email();
			if(validate.email() == false) {
				return false;
			}
		}
	}
	submitButton.disabled = true;
}

// FORM STYLES
function formStyle() {
	var newArray = new Array(firstName,lastName,email);
	for(x in newArray) {
		(newArray[x]).style.background = "#ffffcc";
		(newArray[x]).value = "* REQUIRED";
		(newArray[x]).onfocus = function() {
									if(this.value == "* REQUIRED") {
									this.value = "";
									this.style.background = "#ffffff";
									}
								}
	}
	for(x in newArray) {
		(newArray[x]).onblur = function() {
									if(this.value == "") {
									this.value = "* REQUIRED";
									this.style.background = "#ffffcc";
									}
								}
	}
}

// ATTACH VALIDATE EVENT TO FORM TAG
document.forms[0].onsubmit = function() {
	return validateAll();
}

// ATTACH FORM STYLE EVENT
window.onload = function() {
	return formStyle();
}

// DATE PICKER EVENTS
var expirationDate = document.insuranceForm.Expiration_Date;
var dateNeeded = document.insuranceForm.Date_Needed;
var calendarButton = document.insuranceForm.Calendar_Button;
var incidentDate = document.insuranceForm.Incident_Date;

if(expirationDate) {
calendarButton.onclick = function() {
	displayCalendar(expirationDate,'yyyy/mm/dd',this);
	}
}

if(dateNeeded) {
calendarButton.onclick = function() {
	displayCalendar(dateNeeded,'yyyy/mm/dd',this);
	}
}

if(incidentDate) {
calendarButton.onclick = function() {
	displayCalendar(incidentDate,'yyyy/mm/dd',this);
	}
}


// ADD Car EVENT
var addACar = document.insuranceForm.Add_A_Car_Button;
if(addACar) {
	addACar.onclick = function() {
		addACarAdd();
	}
}


// ADD Car ADD
function addACarAdd() {
  var myAddACarSpan = document.getElementById('addACar');
  var theAddCarValue = document.getElementById('theAddCarValue');
  var theNewAddCarValue = (document.getElementById('theAddCarValue').value -1)+ 2;
  theAddCarValue.value = theNewAddCarValue;
  var newAddACarSpan = document.createElement('span');
  var addACarSpanIdName = 'AddACarSpan'+theNewAddCarValue;
  newAddACarSpan.setAttribute('id',addACarSpanIdName);
  newAddACarSpan.innerHTML = "<label for=\"Add_A_Car_" + theNewAddCarValue + "\">Add A Car " + theNewAddCarValue + "</label><input type=\"text\" id=\"Add_A_Car_" + theNewAddCarValue + "\" name=\"Add_A_Car_" + theNewAddCarValue + "\" /><br /><label for=\"Add_A_Car_License_" + theNewAddCarValue + "\">Add A Car License " + theNewAddCarValue + "</label><input type=\"text\" id=\"Add_A_Car_License_" + theNewAddCarValue + "\" name=\"Add_A_Car_License_" + theNewAddCarValue + "\" /><br /><label for=\"Add_A_Car_VIN_" + theNewAddCarValue + "\">Add A Car VIN " + theNewAddCarValue + "</label><input type=\"text\" id=\"Add_A_Car_VIN_" + theNewAddCarValue + "\" name=\"Add_A_Car_VIN_" + theNewAddCarValue + "\" /><input type=\"button\" value=\"-\" onclick='addACarRemove(\""+ addACarSpanIdName +"\")' style=\"width:25px; margin:0\" /><br />";
  myAddACarSpan.appendChild(newAddACarSpan);
}

// ADD Car REMOVE
function addACarRemove(addACarSpanNum) {
  var d = document.getElementById('addACar');
  var oldAddACarSpan = document.getElementById(addACarSpanNum);
  d.removeChild(oldAddACarSpan);
}

// REMOVE Car EVENT
var removeACar = document.insuranceForm.Remove_A_Car_Button;
if(removeACar) {
	removeACar.onclick = function() {
		removeACarAdd();
	}
}

// REMOVE Car ADD
function removeACarAdd() {
  var myRemoveACarSpan = document.getElementById('removeACar');
  var theRemoveCarValue = document.getElementById('theRemoveCarValue');
  var theNewRemoveCarValue = (document.getElementById('theRemoveCarValue').value -1)+ 2;
  theRemoveCarValue.value = theNewRemoveCarValue;
  var newRemoveACarSpan = document.createElement('span');
  var removeACarSpanIdName = 'RemoveACarSpan'+theNewRemoveCarValue;
  newRemoveACarSpan.setAttribute('id',removeACarSpanIdName);
  newRemoveACarSpan.innerHTML = "<label for=\"Remove_A_Car_" + theNewRemoveCarValue + "\">Remove A Car " + theNewRemoveCarValue + "</label><input type=\"text\" id=\"Remove_A_Car_" + theNewRemoveCarValue + "\" name=\"Remove_A_Car_" + theNewRemoveCarValue + "\" /><br /><label for=\"Remove_A_Car_VIN_" + theNewRemoveCarValue + "\">Remove A Car VIN " + theNewRemoveCarValue + "</label><input type=\"text\" id=\"Remove_A_Car_VIN_" + theNewRemoveCarValue + "\" name=\"Remove_A_Car_VIN_" + theNewRemoveCarValue + "\" /><br /><label for=\"Remove_A_Car_License_" + theNewRemoveCarValue + "\">Remove A Car License " + theNewRemoveCarValue + "</label><input type=\"text\" id=\"Remove_A_Car_License_" + theNewRemoveCarValue + "\" name=\"Remove_A_Car_License_" + theNewRemoveCarValue + "\" /> <input type=\"button\" value=\"-\" onclick='removeACarRemove(\""+ removeACarSpanIdName +"\")' style=\"width:25px; margin:0\" /><br />";
  myRemoveACarSpan.appendChild(newRemoveACarSpan);
}

// REMOVE Car REMOVE
function removeACarRemove(removeACarSpanNum) {
  var d = document.getElementById('removeACar');
  var oldRemoveACarSpan = document.getElementById(removeACarSpanNum);
  d.removeChild(oldRemoveACarSpan);
}

