function executeAjaxStrutsAction(action, actionMethod, containerId, subContainerId, errorHandler, successHandler) {
	var submit_param;
	if (actionMethod == null) {
		actionMethod = $("#defaultMethod").val();
	}
	if (actionMethod != null && actionMethod.length > 1) {
		submit_param = "rand=" + Math.random() + "&method:" + actionMethod
				+ "=" + actionMethod
				+ getAllPaprametersFromContainer(containerId);
	} else {
		submit_param = "rand=" + Math.random()
				+ getAllPaprametersFromContainer(containerId);
	}
	if (subContainerId != null) {
		submit_param += getAllPaprametersFromContainer(subContainerId);
	}
	var conId = "#" + containerId;
	$.ajax( {
		type : "POST",
		url : action,
		dataType : "html",
		data : submit_param,
		success : function(data) {
			$(conId).html(data);
			fixQaDiv();
			if (successHandler != undefined) {
				successHandler();
			}
		},
		error : errorHandler
	});
}

function fixQaDiv() {
	// resolve bug in IE.
	if ($.browser.msie) {
		$("#adminQuestionLi").hide();
		$("#adminQuestionLi").show();
	}
}

function getAllPaprametersFromContainer(containerId) {
	var submit_param = "";
	var conId = "#" + containerId;
	$(conId).find("input").each(
			function() {
				if ($(this).attr("name").length > 0
						&& $(this).attr("type") != "submit"
						&& $(this).attr("type") != "button"
						&& !$(this).attr("disabled")
						&& ($(this).attr("type") != "checkbox" || $(this).attr("checked"))) {
					submit_param += "&" + $(this).attr("name") + "="
							+ encodeURIComponent($(this).val());
				}
			});
	$(conId).find("select").each(
			function() {
				if ($(this).attr("name").length > 0
						&& !$(this).attr("disabled")) {
					submit_param += "&" + $(this).attr("name") + "="
							+ encodeURIComponent($(this).val());
				}
			});
	$(conId).find("textarea").each(
			function() {
				if ($(this).attr("name").length > 0
						&& !$(this).attr("disabled")) {
					submit_param += "&" + $(this).attr("name") + "="
							+ encodeURIComponent($(this).val());
				}
			});
	return submit_param;
}

function disableElement(submitElId) {
	$("#" + submitElId).attr("disabled", "disabled");
}

function enableElement(submitElId) {
	$("#" + submitElId).removeAttr("disabled");
}

function disableAHrefElement(submitElId) {
	var element = $("#" + submitElId);
	element.unbind("click");
}

function enableAHrefElement(submitElId, func) {
	var element = $("#" + submitElId);
	element.unbind("click");
	element.click(func);
}

function scrollToDiv(elementId, elemTopOffsert) {
	var element = $("#" + elementId)[0];
	var top = (elemTopOffsert && (elemTopOffsert != null))  ? elemTopOffsert : 0; 
	var left = 0;
	while(element != null) {
	    left += element.offsetLeft;
	    top += element.offsetTop;
	    element = element.offsetParent;
	}
	window.scrollTo(left,top);
}

function roundNumber(a){
   var b = a * 1000;
   var c = b % 10;
   var d = (b - c)/10;
   if(c >= 5) d = d + 1;
   var e = d / 100;
   return new Number(e).toFixed(2);
}
