// validate the form data
function validate(form, step) {
	var rv = true;
	var vals = associate($(form).formToArray());
	validate_before();
	
	rv = eval('validate_step' + step + '(form, vals);');
	
	validate_after();
	return rv;
}

function validate_step0(form, vals) {
	var rv = true;
	switch (parseInt(vals['data[Sellapart][type]'])) {
		case 1:
			if (vals['data[Sellapart][partnumber]'] == '') {
				validate_error('Part Number cannot be empty', 'data[Sellapart][partnumber]');
				rv = false;
			}
			if (vals['data[Sellapart][manufacturer]'] == '') {
				validate_error('Manufacturer cannot be empty', 'data[Sellapart][manufacturer]');
				rv = false;
			}
			break;
		case 2:
			if (vals['data[Sellapart][findyear]'] == '') {
				validate_error('Year cannot be empty', 'data[Sellapart][findyear]');
				rv = false;
			}
			if (vals['data[Sellapart][findmake]'] == '') {
				validate_error('Make cannot be empty', 'data[Sellapart][findmake]');
				rv = false;
			}
			if (vals['data[Sellapart][findmodel]'] == '') {
				validate_error('Model cannot be empty', 'data[Sellapart][findmodel]');
				rv = false;
			}
			if (vals['data[Sellapart][findsubmodel]'] == '') {
				validate_error('SubModel cannot be empty', 'data[Sellapart][findsubmodel]');
				rv = false;
			}
			break;
		case 3:
			if (vals['data[Sellapart][engine]'] == '') {
				validate_error('Engine cannot be empty', 'data[Sellapart][engine]');
				rv = false;
			}
			break;
	}
	return rv;
}

function validate_step1(form, vals) {
	var rv = true;
	
	if (vals['data[Listing][title]'] == '') {
		validate_error('Title cannot be empty', 'data[Listing][title]');
		rv = false;
	}
	var price = parseFloat(vals['data[Listing][price]']);
	if (!(price > 0)) {
		validate_error('Price must be a number greater than zero.', 'data[Listing][price]');
		rv = false;
	}
	if (vals['data[Listing][currency]'] == '') {
		validate_error('Please select a currency', 'data[Listing][currency]');
		rv = false;
	}
	if (vals['data[Listing][description]'] == '') {
		validate_error('Description cannot be blank', 'data[Listing][description]');
		rv = false;
	}
	return rv;
}
function validate_step2(form, vals) {
	var rv = true;
	if ((vals['image_ids'] === undefined) || (vals['image_ids'] == '')) {
		rv = confirm('You have not uploaded any images.  Are you sure you want to proceed?');
	}
	return rv;
}
function validate_step3(form, vals) {
	var rv = true;
	return rv;
}
function validate_step4(form, vals) {
	var rv = true;
	if (vals['data[Mapping][PartTerminologyID]'] == 0) {
		validate_error('Please select a Part Type', 'data[Mapping][PartTerminologyID]');
		rv = false;
	}
	return rv;
}
function validate_step5(form, vals) {
	var rv = true;
	return rv;
}


// validate the form data
function validate_step0(form) {
	var rv = true;
	var vals = associate($(form).formToArray());
	validate_before();
	switch (parseInt(vals['data[Sellapart][type]'])) {
		case 1:
			if (vals['data[Sellapart][partnumber]'] == '') {
				validate_error('Part Number cannot be empty', 'data[Sellapart][partnumber]');
				rv = false;
			}
			if (vals['data[Sellapart][manufacturer]'] == '') {
				validate_error('Manufacturer cannot be empty', 'data[Sellapart][manufacturer]');
				rv = false;
			}
			break;
		case 2:
			if (vals['data[Sellapart][findyear]'] == '') {
				validate_error('Year cannot be empty', 'data[Sellapart][findyear]');
				rv = false;
			}
			if (vals['data[Sellapart][findmake]'] == '') {
				validate_error('Make cannot be empty', 'data[Sellapart][findmake]');
				rv = false;
			}
			if (vals['data[Sellapart][findmodel]'] == '') {
				validate_error('Model cannot be empty', 'data[Sellapart][findmodel]');
				rv = false;
			}
			if (vals['data[Sellapart][findsubmodel]'] == '') {
				validate_error('SubModel cannot be empty', 'data[Sellapart][findsubmodel]');
				rv = false;
			}
			break;
		case 3:
			if (vals['data[Sellapart][engine]'] == '') {
				validate_error('Engine cannot be empty', 'data[Sellapart][engine]');
				rv = false;
			}
			break;
	}
	validate_after();
	return rv;
}

var validate_errors;
function validate_before() {
	$('#validate_errors').hide();
	validate_errors = [];
}

function validate_after() {
	var num_errors = validate_errors.length;
	var html = '';
	
	if (num_errors > 0) {
		html += '<h4>Errors:</h4>';
		html += '<ul>';
		for(i = 0; i < num_errors; i++) {
			html += '<li>' + validate_errors[i] + '</li>';
		}
		html += '</ul>';
		$('#validate_errors').html(html).show();
	}
}

function validate_error(text, elementid) {
	validate_errors.push(text); 
}