var Page = {
	options: {
		root: '/'
	},
	getOptions: {},
	get: function(page, options)
	{
		this.getOptions = Object.extend({
			section: '',
			sections: false,
			onComplete: Prototype.Emptyfunction,
			onFailure: Prototype.Emptyfunction
		}, (options || {}));
		
		new Ajax.Request(this.options.root, {
			method: 'get',
			parameters: {
				'm':'frontend',
				'p':page,
				'section':this.getOptions.section,
				'sections[]':this.getOptions.sections,
				'return':'json'
			},
			onSuccess: this.handleGetReply.bind(this)
		});
	},
	handleGetReply: function(transport)
	{
		if ((response = this.evalJSON(transport)))
			this.getOptions.onComplete(response);
		else
			this.getOptions.onFailure(transport);
	},
	setOptions: function(options)
	{
		Object.extend(this.options, (options || {}));
	},
	// JSON helpers
	isJSON : function(transport)
	{
		return (transport.responseText.substring(0,1) == '{');
	},
	evalJSON: function(transport, callback)
	{
		if (!this.isJSON(transport)) return false;
		
		var response = transport.responseText.evalJSON();
		return response;
	}
};
