
/**
 * Javascript functions for 5starwarranty.com
 */

function validate_quote() {
	var isValid = true;
	var errors = [];
	
	var tfFname = $('lead_first_name');
	var tfLname = $('lead_last_name');
	var tfPhone = $('lead_home_phone');
	var tfEmail = $('lead_email_address');
	var ddVehicleMake = $('lead_vehicle_make_id');
	var tfMileage = $('lead_vehicle_mileage');
	var ddVehicleId = $('lead_vehicle_id');
	
	if (ddVehicleId.selectedIndex == 0) {
		errors.push("Vehicle model is required");
		isValid = false;
	}
	
	if (ddVehicleMake.selectedIndex == 0) {
		errors.push("Vehicle make is required");
		isValid = false;
	}
	
	if (tfMileage.value == "" || parseInt(tfMileage.value) == NaN) {
		errors.push("Please supply a valid mileage value, without commas");
		isValid = false;
	}
	
	if (tfFname.value == "") {
		errors.push("First name is required.");
		isValid = false;
	}
	
	if (tfLname.value == "") {
		errors.push("Last name is required.");
		isValid = false;
	}
	
	if (tfPhone.value == "") {
		errors.push("Your phone number does not appear to be valid.");
		isValid = false;
	}	
	
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (tfEmail.value == "" || !emailFilter.test(tfEmail.value)) {
		errors.push("Your email address does not appear to be valid.");
		isValid = false;
	}
	
	if (!isValid) {
		fillErrorContainer('errorHolder', errors);
		showErrorContainer('errorHolder');
	}
	return isValid;
}

// Adds error messages wrapped in <li> tags into a <ul> container
function fillErrorContainer(errorContainerId, errors) {
	var ec = $$('#' + errorContainerId + " ul.errorList")[0];
	ec.innerHTML = "";
	for(var i=0; i < errors.length; i++)
		ec.appendChild(new Element('li').update(errors[i]));
}

// Animates a hidden error field
function showErrorContainer(errorContainerId) {
	$(errorContainerId).show();
	$(errorContainerId).blindDown({duration: 0.5});
}

function initFaqTree(treeId) {
	links = $$(treeId + " div a");
	links.each(function(name, index) {
		var nodeName = "q" + String(index);
		name.observe('click', function(event){
			var toggleableContent = $(event.target).up().next();
			var toggleableId = toggleableContent.readAttribute("id");
			$(toggleableId).toggle('blind', {duration: 1});
			console.log(toggleableId);
			return false;
		})
	});
}


function restrictPhoneValues(t){
	var allowedChars = "()- .0123456789";
	var w = "";
	for (i=0; i < t.value.length; i++) {
	x = t.value.charAt(i);
	if (allowedChars.indexOf(x,0) != -1)
	w += x;
	}
	t.value = w;
}

// Initializes the question list on the home page which displays a hidden div containing an answer
function initHomeQuestions(listContainer) {
	var listItems = $$('#' + listContainer + " li a");
	listItems.each(function(listItem, index) {
		listItem.writeAttribute('href', 'javascript:void(0)');
		listItem.observe('click', function(event) {
			var elId = event.target.readAttribute('id');
			var targetQuestionId = elId.replace('q','a');
			hideHomeAnswers('answers');
			$('answers').show();
			$('hideAnswer').show();
			$(targetQuestionId).toggle();
		});
	});
	
	$$('#hideAnswer a')[0].observe('click', function(event) {
		$('answers').hide();
	});
}

// Hides all expanded answers on the home page
function hideHomeAnswers(answerContainer) {
	var answers = $$('#' + answerContainer + " div.home_answer");
	answers.each(function(answer, index) {
		$(answer).hide();
	});
	$('hideAnswer').hide();
}

