﻿/********/

var number_type = {
	integer:0,
	decimal:1,
	currency:2
}// number_type;

var blank = "";

/********/

function numeric_only (sender, type) {
	var key = window.event.keyCode;
	if (!type) type = number_type.integer;
	if ((key == 8) || (key == 9) || (key == 46) || (key == 189)) return true;
	if ((key == 37) || (key == 39)) return true;
	if (((key >= 48) && (key <= 57)) || ((key >= 96) && (key <= 105))) {
		if (type != number_type.currency) return true;
		if (sender.value.indexOf (".") == -1) return true;
		if (sender.value.length - sender.value.indexOf (".") < 3) return true;
	}// if;
	if (key == 190) {
		if (type == number_type.integer) return false;
		if ((sender.value.indexOf (".") == -1) && (sender.value.length > 0)) return true;
	}// if;
	return false;
}// numeric_only;

/********/

function validate_discount (sender, percent_radio) {
	if (percent_radio.checked) return numeric_only (sender, number_type.decimal);
	return numeric_only (sender, number_type.currency);
}/* validate_discount */

/********/

function show_empty_fields (fields) {
	var text = blank;
	for (var x = 0; x < fields.length; x++) {
		if (text != blank) text += "\n";
		text += fields [x];
	}// for;
	alert ("The following are required fields:\n\n" + text);
	return false;
}// show_empty_fields;

/********/

function radio_value(control) {
	for (var x = 0; x < document.forms.length; x++) {
		for (var y = 0; y < document.forms[x].elements.length; y++) {
			var form_control = document.forms[x].elements[y];
			if (form_control.name != control.name) continue;
			if (form_control.checked) return form_control.value;
		} // for;
	} // for;
	return blank;
} // radio_value;

/********/

function field_value(element) {
	if (!element.type) return null;
	switch (element.type.toLowerCase()) {
		case "textarea": return element.innerText;
		case "checkbox": return element.checked;
		case "radio": return radio_value(element);
		default: return element.value;
	} // switch;
	return blank;
} // field_value;

/********/

function required_fields_complete () {
	var field_list = new Array;
	for (var x = 0; x < document.forms.length; x++) {
		for (var y = 0; y < document.forms [x].elements.length; y++) {
			var field = document.forms [x].elements [y];
			if (field.getAttribute ("required") == undefined) continue;
			if ((field_value (field) == blank) || (field_value (field) == 0)) field_list.push (field.getAttribute ("required"));
		}// for;
	}// for;
	if (field_list.length == 0) return true;
	return show_empty_fields (field_list);
}/* required_fields_complete */

/********/

function validate_email (first_address, second_address) {
	if (first_address.trim ().toLowerCase () == second_address.trim ().toLowerCase ()) return true;
	alert ("Email addresses do not match!\nPlease try again.");
	return false;
}// validate_email;

/********/
