// 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 DRIVER EVENT
var addADriver = document.getElementById('Add_A_Driver_Button');
if(addADriver) {
	addADriver.onclick = function() {
		addADriverAdd();
	}
}


// ADD DRIVER ADD
function addADriverAdd() {
  var myAddADriverSpan = document.getElementById('addADriver');
  var theAddDriverValue = document.getElementById('theAddDriverValue');
  var theNewAddDriverValue = (document.getElementById('theAddDriverValue').value -1)+ 2;
  theAddDriverValue.value = theNewAddDriverValue;
  var newAddADriverSpan = document.createElement('span');
  var addADriverSpanIdName = 'AddADriverSpan'+theNewAddDriverValue;
  newAddADriverSpan.setAttribute('id',addADriverSpanIdName);
  newAddADriverSpan.innerHTML = "<br /><label for=\"Add_A_Driver_" + theNewAddDriverValue + "\">Add A Driver " + theNewAddDriverValue + "</label><br /><input type=\"text\" id=\"Add_A_Driver_" + theNewAddDriverValue + "\" name=\"Add_A_Driver_" + theNewAddDriverValue + "\" /><br /><label for=\"Add_A_Driver_License_" + theNewAddDriverValue + "\">Add A Driver License " + theNewAddDriverValue + "</label><br /><input type=\"text\" id=\"Add_A_Driver_License_" + theNewAddDriverValue + "\" name=\"Add_A_Driver_License_" + theNewAddDriverValue + "\" /> &nbsp; <input type=\"button\" value=\"-\" onclick='addADriverRemove(\""+ addADriverSpanIdName +"\")' style=\"width:25px; margin:0\" /><br />";
  myAddADriverSpan.appendChild(newAddADriverSpan);
}

// ADD DRIVER REMOVE
function addADriverRemove(addADriverSpanNum) {
  var d = document.getElementById('addADriver');
  var oldAddADriverSpan = document.getElementById(addADriverSpanNum);
  d.removeChild(oldAddADriverSpan);
}

// REMOVE DRIVER EVENT
var removeADriver = document.getElementById('Remove_A_Driver_Button');
if(removeADriver) {
	removeADriver.onclick = function() {
		removeADriverAdd();
	}
}

// REMOVE DRIVER ADD
function removeADriverAdd() {
  var myRemoveADriverSpan = document.getElementById('removeADriver');
  var theRemoveDriverValue = document.getElementById('theRemoveDriverValue');
  var theNewRemoveDriverValue = (document.getElementById('theRemoveDriverValue').value -1)+ 2;
  theRemoveDriverValue.value = theNewRemoveDriverValue;
  var newRemoveADriverSpan = document.createElement('span');
  var removeADriverSpanIdName = 'RemoveADriverSpan'+theNewRemoveDriverValue;
  newRemoveADriverSpan.setAttribute('id',removeADriverSpanIdName);
  newRemoveADriverSpan.innerHTML = "<br /><label for=\"Remove_A_Driver_" + theNewRemoveDriverValue + "\">Remove A Driver " + theNewRemoveDriverValue + "</label><br /><input type=\"text\" id=\"Remove_A_Driver_" + theNewRemoveDriverValue + "\" name=\"Remove_A_Driver_" + theNewRemoveDriverValue + "\" /><br /><label for=\"Remove_A_Driver_License_" + theNewRemoveDriverValue + "\">Remove A Driver License " + theNewRemoveDriverValue + "</label><br /><input type=\"text\" id=\"Remove_A_Driver_License_" + theNewRemoveDriverValue + "\" name=\"Remove_A_Driver_License_" + theNewRemoveDriverValue + "\" /> &nbsp; <input type=\"button\" value=\"-\" onclick='removeADriverRemove(\""+ removeADriverSpanIdName +"\")' style=\"width:25px; margin:0\" /><br />";
  myRemoveADriverSpan.appendChild(newRemoveADriverSpan);
}

// REMOVE DRIVER REMOVE
function removeADriverRemove(removeADriverSpanNum) {
  var d = document.getElementById('removeADriver');
  var oldRemoveADriverSpan = document.getElementById(removeADriverSpanNum);
  d.removeChild(oldRemoveADriverSpan);
}

//Display ot Hide Add/Remove Driver Form
function toggleDriverForm(){
	if(document.insuranceForm.By_Clicking.checked){
		document.getElementById('addRemoveDriver_table').style.display = "block";
		document.getElementById('formDivider').style.display = "block";
	}else{
		document.getElementById('addRemoveDriver_table').style.display = "none";
		document.getElementById('formDivider').style.display = "none";
	}
}
