function trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}

function scrollToElement(theElement) {
	
	theElement.focus();
	
	var selectedPosX = 0;
	var selectedPosY = 0;
	
	while(theElement != null) {
		selectedPosX += theElement.offsetLeft;
		selectedPosY += theElement.offsetTop;
		theElement = theElement.offsetParent;
	}
	
	window.scrollTo(0,selectedPosY);
	
}

function radioValue(radio) {
	var i;
	for (i=0; i<radio.length; i++) {
		if (radio[i].checked) {
			return radio[i].value;
		}
	}
}

function formcheck(form_id,action,list_input,list_radio) {
	var i;
	var hasErrors = false;
	var scrolled = false;

	var f = document.getElementById(form_id);
	
	for (i=0; i<list_input.length; i++) {
		var name = list_input[i];
		var formEl = document.getElementById(name);
		var errorEl = document.getElementById(name + "_error");
		if (!(formEl.value) || trim(formEl.value).length==0) {
			errorEl.className="error-show";
			hasErrors = true;
			if (!scrolled) {
				scrollToElement(errorEl);
				scrolled = true;
			}
		} else {
			errorEl.className="error-hidden";
		}
	}
	
	var j;
	for (j=0; j<list_radio.length; j++) {
		var name = list_radio[j];
		var radio = document.getElementsByName(name);
		var errorEl = document.getElementById(name + "_error");
		if (!radioValue(radio)) {
			errorEl.className="error-show";
			hasErrors = true;
			if (!scrolled) {
				scrollToElement(errorEl);
				scrolled = true;
			}
		} else {
			errorEl.className="error-hidden";
		}
	}
	
	if (!hasErrors) {
		f.action = action; 
		f.method = "POST";
		f.from
		f.submit();
	}
}

