/*
 * OpenAjax interface
 * Copyright(c) 2007 OpenAjax Alliance
 * Author: Jonathan Bond-Caron (Goldeneye Solutions)
 * 
 * The following interface is proposed to be used when declaring objects and functions in a javascript file. 
 * This is the start of a proposal (RFC) for the OpenAjax Alliance (http://www.openajax.org/) to 
 * demonstrate how different frameworks could interoperate. 
 * 
 * A javascript source file must declare the resource it provides and the other resources it depends on. 
 * A 'resource' is to be considered abstract, it can be another file (javascript, css, html, image) or even a directory. 
 * 
 * A resourceId is the unique identifier of a resource, more information about the resource can be found (but not always necessary) 
 * in the OpenAjax resource registry (i.e. the URI of the resource)
 *
 * Each toolkit is responsible for their own implementation of how they deal with resources. The goal is use this common
 * interface among javascript toolkits so each toolkit can build a dependency tree of resources required by one or more files. 
 */
if(typeof window.OpenAjax == "undefined") {
	var OpenAjax = {};
	// Basic resource types that must and/or should? be supported
	OpenAjax.types = {css: '.css',
					js: '.js'};

	// What resource does this file provide?
	OpenAjax.provide = function(/*String*/resourceId) {};
	
	// What are the resources this file depends on / requires?
	OpenAjax.require = function(/*String*/resourceId, /*String*/resourceId, /*...*/) {};
	
	// Register a set of resources in the OpenAjax registy
	OpenAjax.registerResource = function(/*Object*/resources, /*Boolean*/forceOverwrite) {};
	
	// Gets information from the registry about a particular resource
	OpenAjax.getResource = function(resourceId) {};
}
