function isAllNum(value, signed) {
	var i=0;

	while (i<value.length) {
		if (value.charAt(i)<'0' || value.charAt(i)>'9' || (i==0 && value.charAt(i)=='-' && signed!=0))
			return false;
		i++;
	}

	return true;
}

function checkFormName(name) {
	var form=eval("document." + name);
	checkForm(form, '');
}

function checkForm(form, onsubmit) {
	var i=0, field, error=false, j;
	var num;

	if (form.submited.value==1) {
		return false;
	}

	if (form.name.form) {
		while (document.forms[i]) {
			if (form==document.forms[i]) {
				formName='forms[' + i + ']';
				break;
			}

			i++;
		}

		i=0;

	} else {
		formName=form.name;
	}

	while (form.elements[i] && !error) {
		field=form.elements[i];

		switch(field.type) {
			case 'radio':
				var j;
				if (field.name.indexOf('[')>=0) {
					field=eval ("document." + formName + ".elements['" + field.name + "']");
				} else {
					field=eval ("document." + formName + "." + field.name);
				}

				if (!field.alreadychecked && field.errorString) {
					error=true;

					if (!field.length && field.checked) {
						error=false;

					} else {
						for (j=0; j<field.length; j++) {
							if (field[j].checked) {
								error=false;
								break;
							}
						}
					}

					if (error==false) {
						field.alreadychecked=true;
					}
				}

				break;

			case 'text':
			case 'password':
			case 'textarea':
				if (field.minlength>field.value.length) {
					error=true;
				} else if (field.maxlength && field.maxlength<field.value.length) {
					error=true;
				}

				if (field.numeric) {
					if (!isAllNum(field.value, field.numeric==2)) {
						error=true;
					}

					j=0;

					while (j<field.value.length && field.value.charAt(j)=='0') {
						j++;
					}

					if (j>0 && j<field.value.length) {
						num=parseInt(field.value.substring(j, field.value.length));
					} else {
						num=parseInt(field.value);
					}

					if (field.minvalue && num<field.minvalue) {
						error=true;
					}

					if (field.maxvalue && num>field.maxvalue) {
						error=true;
					}
				}
				break;

			default:
				break;
		}

		i++;
	}

	if (!error) {
		if (onsubmit) {
			if (eval(onsubmit)) {
				form.submited.value=1;
				return true;
			}

		} else {
			form.submited.value=1;
			return true;
		}

	} else {
		alert(field.errorString);

		if (field.errorScript!='') {
			eval(field.errorScript);
		}
	}

	i=0;

	while (form.elements[i]) {
		field=form.elements[i];

		if (field.type=='radio') {
			field.alreadychecked=false;
		}

		i++;
	}

	return false;
}

function cancelForm(newLocation) {
	window.location.href=newLocation;
}

function gotoWithConfirm(text, url) {
	if (confirm(text)) {
		window.location.href=url;
	}
}