////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var normal = function(outputId) {
	var count = 0;
	return function() {
	 	$(outputId).set({ "html" : "Executed " + (++count) + " times." });
	};
};

var end = function(outputId) {
	var count = 0, delay = 50, executionTimer;
	return function() {
		if (!!executionTimer) {
			clearTimeout(executionTimer);
		}
		executionTimer = setTimeout(function() {
			$(outputId).set({ "html" : "Executed " + (++count) + " times." });
		}, delay);
	};
};

////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
$("onScrollEndDemoButton_Off").addEvent("click", function(event) {
	$("onScrollEndDemoButton_On").removeClass("buttonListOn");
	$("onScrollEndDemoButton_Off").addClass("buttonListOn");
	$("onScrollEndDemoDiv").set({ "html" : "Executed 0 times." });
	$("onScrollEndDemo").onscroll = normal("onScrollEndDemoDiv");
});

$("onScrollEndDemoButton_On").addEvent("click", function(event) {
	$("onScrollEndDemoButton_Off").removeClass("buttonListOn");
	$("onScrollEndDemoButton_On").addClass("buttonListOn");
	$("onScrollEndDemoDiv").set({ "html" : "Executed 0 times." });
	$("onScrollEndDemo").onscroll = end("onScrollEndDemoDiv");
});

$("onMouseMoveEndDemoButton_Off").addEvent("click", function(event) {
	$("onMouseMoveEndDemoButton_On").removeClass("buttonListOn");
	$("onMouseMoveEndDemoButton_Off").addClass("buttonListOn");
	$("onMouseMoveEndDemoDiv").set({ "html" : "Executed 0 times." });
	document.onmousemove = normal("onMouseMoveEndDemoDiv");
});

$("onMouseMoveEndDemoButton_On").addEvent("click", function(event) {
	$("onMouseMoveEndDemoButton_Off").removeClass("buttonListOn");
	$("onMouseMoveEndDemoButton_On").addClass("buttonListOn");
	$("onMouseMoveEndDemoDiv").set({ "html" : "Executed 0 times." });
	document.onmousemove = end("onMouseMoveEndDemoDiv");
});

$("onResizeEndDemoButton_Off").addEvent("click", function(event) {
	$("onResizeEndDemoButton_On").removeClass("buttonListOn");
	$("onResizeEndDemoButton_Off").addClass("buttonListOn");
	$("onResizeEndDemoDiv").set({ "html" : "Executed 0 times." });
	window.onresize = normal("onResizeEndDemoDiv");
});

$("onResizeEndDemoButton_On").addEvent("click", function(event) {
	$("onResizeEndDemoButton_Off").removeClass("buttonListOn");
	$("onResizeEndDemoButton_On").addClass("buttonListOn");
	$("onResizeEndDemoDiv").set({ "html" : "Executed 0 times." });
	window.onresize = end("onResizeEndDemoDiv");
});
