function doAction(action, validate) {
	if (validate) {
		if (validateRequired()) {
			var caller = document.getElementById("caller");
			for (var i = 0, n = caller.elements.length; i < n; i++) {
				if (caller.elements[i].id == "module") {
					caller.elements[i].value = action;
				}
				else if (caller.elements[i].id == "dxp_data") {
					if (!dxpData.isVoid()) {
						caller.elements[i].value = dxpData.toDXP("data");
						//alert(caller.elements[i].value);
					}			
				}
				else if (caller.elements[i].id == "dxp_state") {
					if (!dxpState.isVoid()) {
						caller.elements[i].value = dxpState.toDXP("state");	
					}
				}
			}
			caller.submit();
		}
	}
	else {
		var caller = document.getElementById("caller");
		for (var i = 0, n = caller.elements.length; i < n; i++) {
			if (caller.elements[i].id == "module") {
				caller.elements[i].value = action;
				break;
			}
		}
		caller.submit();
	}
}

function makeCompliance(value) {
	var result = "";
	for (var i = 0; i < value.length; i++) {
		var chr = value.charCodeAt(i);
		switch(chr) {
			case 8364:	//euro
			case 163:	//£
			case 38:	//&
			case 236:	//ì
			case 232:	//è
			case 233:	//é
			case 242:	//ò
			case 224:	//à
			case 249:	//ù
			case 167:	//§
			case 176:	//°
			case 60:	//<
			case 62:	//>
			case 231: 	//ç
			case 199: 	//ç
				result += "&#" + chr + ";";
				break;
			default:
				result += String.fromCharCode(chr);
				break;
		}
	}
	return result;
}
