function handleValidation(http_request, params) { 
        if (http_request.status == 200) {
		invalidFields = http_request.responseText.replace(/\s+/g,"");
		params.isValid = (invalidFields.length==0);
		if (params.isValid) {
			form.submit();
		} else {
			updatePage(invalidFields.split(","), params);
		}
	}
}

function validateForm(url, params) {

	if (params.isValid) {
		return true;
	}
	// collect field values for request
	i = 0;
	form = params.form;
	requestParams = "_action=validate";
	for (i = 0; i < form.elements.length; i++) {
		if (form.elements[i].name != "") {
			requestParams = requestParams.concat("&");
			requestParams = requestParams.concat(form.elements[i].name);
			requestParams = requestParams.concat("=");
			requestParams = requestParams.concat(form.elements[i].value);
			var p = form.elements[i].className.indexOf("invalid");
			if (p >= 0) {
				form.elements[i].className = form.elements[i].className.substring(0, p);
			}
		}
	}
	// send validation request
	doHttpRequest(url, requestParams, handleValidation, params);
	return false;
}

function appendMessage(http_request, section) {
	var text = http_request.responseText;
	text = text.replace(/^\s+/g,"");
	text = text.replace(/\s+$/g,"");
	text = text.replace(/\s+/g," ");
	var message = document.createElement("p");
	message.width = 80;
	message.appendChild(document.createTextNode(text));
	section.appendChild(message);
	section.style.display="block";
}

function updatePage(invalidFields, params) {
	if (invalidFields == null) {
		params.message.style.display = "none";
		return;
	} else {
		params.message.style.display = "block";
		for (i = 0; i < invalidFields.length; i++) {
			field = document.getElementsByName(invalidFields[i]);
			for (f = 0; f < field.length; f++) {
				field[f].className=field[f].className.concat(" invalid");
			}
		}
		window.location.href=params.anchor;
		return;
	}
}


function currentFolderUri() {
	uri = window.location.href;
	if (uri.lastIndexOf('#')>=0) {
		uri = uri.substring(0, uri.lastIndexOf('#'));
	}
	if (uri.match(/^(.*)html$/)) {	
		return uri.substring(0, uri.lastIndexOf("/")+1);
	} else if (uri.charAt(uri.length-1) != '/') {
		return uri.concat('/');
	} else {
		return uri;
	}
}
