/**
 * PageRequest
 * 
 * This class manages the page requests.
 */
jQuery.PageRequest = {
	
	onLoadEventList : new Array(),
	
	onResizeEventList : new Array(),
	
	onMouseMoveEventList : new Array(),
	
	onPageStructureEventList : new Array(),
	
	addOnPageStructureChangeEvent : function(eventDef) {
		if (typeof(eventDef) != 'undefined')  {
			$.PageRequest.onPageStructureEventList[$.PageRequest.onPageStructureEventList.length] = eventDef;
		}
	},
	
	evalFunctionList : function(list, event) {
		var current;
		for(var i in list) {
			current = list[i];
			if (typeof(current)=='function') {
				current(event);
			} else {
				eval(list[i]);
			}
		}
	},
	
	init : function() {
		$.PageRequest.evalFunctionList(PageRequest.onLoadEventList);
		$.PageRequest.evalFunctionList(PageRequest.onPageStructureEventList, new PageStructureChangeEvent(document));

		$(window).resize(function() {
			$.PageRequest.evalFunctionList($.PageRequest.onResizeEventList);
		});

		$(window).mousemove(function() {
			$.PageRequest.evalFunctionList($.PageRequest.onMouseMoveEventList);
		});
	},

	pageStructureChangeEvent: function(event) {
		$.PageRequest.evalFunctionList($.PageRequest.onPageStructureEventList, event);
	}
}
	
function PageStructureChangeEvent(element) {
	this.element = element;

	this.getElement = function() {
		return this.element;
	};

	this.setElement = function(element) {
		this.element = element;
	};
}
PageRequest = $.PageRequest;
