
var baseUrl = "/validate/";

var xmlHttp

/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
xmlHttp=false
}
}
@else
xmlHttp=false
@end @*/
if (!xmlHttp) {
try {
xmlHttp = new XMLHttpRequest();
}
catch (e) {
xmlHttp=false
}
}

function getFieldValue(obj) {
switch(obj.type){
		case 'radio': case 'checkbox': return obj.checked?obj.value:null;
		case 'text': case 'hidden': case 'textarea': return obj.value;
		case 'password': return obj.value;
		case 'select-one':
			if(obj.options==null || obj.selectedIndex<0 || obj.options.length<=0) {
				return null;
			}
			if(obj.options[obj.selectedIndex].value != null && obj.options[obj.selectedIndex].value != '') {
				return obj.options[obj.selectedIndex].value;
			} else {
				return obj.options[obj.selectedIndex].text;
			}
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if(obj.options[i].selected) {
					if(obj.options[i].value != null && obj.options[i].value != '') {
						values[values.length]=obj.options[i].value;
					} else {
						values[values.length]=obj.options[i].text;
					}
				}
			}
			return values;
		}
	return null;
}
	
function createRequest(theForm) {
	var qs = ''
	for (e=0;e<theForm.elements.length;e++) {
		fieldValue = getFieldValue(theForm.elements[e]);
		if(fieldValue != null) {
			qs += qs==''?'':'&';
			qs += theForm.elements[e].name;
			qs += '=';
			qs += escape(getFieldValue(theForm.elements[e]));
		}
	}
	return qs
}


function validateForm(theForm) {
	if(!xmlHttp)
		return new Array();
	var xmlMessage = createRequest(theForm);
	xmlHttp.open("POST", baseUrl + theForm.name, false);
	xmlHttp.setRequestHeader('Content-Type','text/html');
	xmlHttp.send(xmlMessage + '\n');
	eval("var errors = new Array(" + xmlHttp.responseText + ");");
	return errors;
}

function validate(theForm) {
	var errors = validateForm(theForm);
	var e0 = document.getElementById('formerrors');
	if(e0 != null) {
		if(errors.length > 0) {
			replaceClassName(e0, 'hidden', 'errordisplayvisible');
		} else {
			replaceClassName(e0, 'errordisplayvisible', 'hidden');	
		}
	}
	for (var errorId in formError) {
		var e1 = document.getElementById(errorId);
		if(e1 != null) {
			replaceClassName(e1, 'errordisplayvisible', 'hidden');
		} 
		var e2 = document.getElementById("sum_" + errorId);
		if(e2 != null) {
			replaceClassName(e2, 'errordisplayvisible', 'hidden');
		} 
		var e3 = document.getElementById('iconError_' + formError[errorId]);
		if(e3 != null) {
		 	e3.className='hidden';
			sliceClassName(e3.parentNode, 'error');
		} 
	}
	for(i=0; i<errors.length; i++) {
		var e4 = document.getElementById(errors[i]);
		if(e4 != null) {
			replaceClassName(e4, 'hidden', 'errordisplayvisible');
		} 
		var e5 = document.getElementById("sum_" + errors[i]);
		if(e5 != null) {
			replaceClassName(e5, 'hidden', 'errordisplayvisible');
		} 
		var e6 = document.getElementById('iconError_' + formError[errors[i]]);
		if(e6 != null) {
			e6.className='errorimgvisible';
			appendClassName(e6.parentNode, 'error');
		} 
	}
	return (errors.length == 0);
}





