// JavaScript API, collection of javascript functions  

var JAPI = {
	
	common : function(){
		if (!JAPI._commonLibrary) throw "common library missing";
		return JAPI._commonLibrary;	
	}, // end function
	
	div : function(){
		if(!JAPI._divLibrary) throw "div tag library missing";	
		return JAPI._divLibrary;
	}, // end function
	
	fx : function(){
		if(!JAPI._fxLibrary) throw "fx library missing";
		return JAPI._fxLibrary;
	}, // end function
		
	container : function(){
		if(!JAPI._containerLibrary) throw "container library missing";
		return JAPI._containerLibrary;
	}, // end function
	
	coordinate : function(){
		if(!JAPI._coordinateLibrary) throw "coordinate library missing";
		return JAPI._coordinateLibrary;
	}, // end function
	
	validator : function(){
		if(!JAPI._validateLibrary) throw "validate library missing";
		return JAPI._validateLibrary;
	}, // end function
	
	/* CONSOLE FACTORY */
	createConsole : function(w, h){
		if(!JAPI._consoleLibrary) throw "console library missings";
		var c = new Object();
		c = new CONSOLE(w,h);
		c.create();
		return c;
	}, // end function
	
	browser : function(){
		if(!JAPI._browserLibrary) throw "browser library missing";
		return JAPI._browserLibrary;
	}, // end function
	
	popup : function(){
		if(!JAPI._popupLibrary) throw "popup library missing";
		return JAPI._popupLibrary;
	} // end function
	
} // end JAPI


/* CORE JAPI FUNCTIONS */
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	} // end for
	return elements;
} // end function

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		} // end if
	} // end for
	return false;
}; // end function


