/*
   Core DynAPI Distribution
   Main DynAPI class
*/ 
DynAPI = {
	loaded : false,
	documents : [],
	loadimages : [],
	plugins : [],
	wasDraging : false,
	librarypath : '',
	api : ["dynlayer.js","browser.js","dyndocument.js","events.js","dragevent.js"],
	gui : ["style.js","button.js","checkbox.js","label.js","popup.js","scrollbar.js","toolbar.js","treenode.js"],
	ext : ["inline.js","layer.js","cookies.js","slide.js","dragdrop.js","images.js","functions.js"],
	lite : ["dynlayer.js","browser.js","dyndocument.js","events.js"],
	ibs : ["colorops.js","boldlayer.js","buttonimage.js","scrollwindow.js","scrollbar.js","scroll.js","window.js","toolbar.js","button.js","icon.js","colorselector.js","parallax.js"],
	ocb : ["rollover.js"],
	toString : function() { return "DynAPI" },
	version : function() { return DynAPI.toString()+"2000.10.24" },
	getDocument : function(id) {
		if (!id) return DynAPI.document
		return DynAPI.document[id]
	},
	resizeHandler : function() {
		var w = DynAPI.document.getWidth()
		var h = DynAPI.document.getHeight()
		DynAPI.document.findDimensions()
		if (is.ns4 && (w!=DynAPI.document.getWidth() || h!=DynAPI.document.getHeight())) DynAPI.document.recreateAll()
		if (DynAPI.onResize) DynAPI.onResize()
		for (var i=0;i<DynAPI.plugins.length; i++) if (DynAPI.plugins[i].onResize) DynAPI.plugins[i].onResize()
	},
	loadHandler : function() {
	        if (!DynAPI.document) self.location.href=self.location.href
	        DynAPI.document.findDimensions()
	        if (DynAPI.findLayers) DynAPI.findLayers(DynAPI.document)
    		if (DynAPI.document.captureMouseEvents) DynAPI.document.captureMouseEvents()
    		DynAPI.loaded=false;
    		if (DynAPI.document.invokeEvent) DynAPI.document.invokeEvent('beforeload')
    		if (DynAPI.document.invokeEvent) DynAPI.document.invokeEvent('load')
    		if (DynAPI.onLoad) DynAPI.onLoad()
    		for (var i=0;i<DynAPI.plugins.length; i++) if (DynAPI.plugins[i].onLoad) DynAPI.plugins[i].onLoad()
    		DynAPI.loaded=true
    		if (DynAPI.document.invokeEvent) DynAPI.document.invokeEvent('afterload')
    		if (DynAPI.loaderStart) DynAPI.loaderStart()
	},
	removeFromArray : function(array, index, id) {
		var which = typeof index == "object" ? index : array[index]
		for (var i=0; i < array.length; i++) {
			if (array[i] == which) {
				for(var x = i; x < array.length - 1; x++) 
					array[x] = array[x + 1]
				if (id) delete array[array[i].id]
				delete array[array.length - 1]
				break 
			}
		}
		//if(array.length > 0)		//	array.length -= 1
		return array
	},
	unloadHandler : function() { 
		for (var i=0;i<DynAPI.plugins.length; i++) if (DynAPI.plugins[i].onUnload) DynAPI.plugins[i].onUnload()
		if (DynAPI.onUnload) DynAPI.onUnload() 
	},
	setLibraryPath : function(path) { 
		if (path.substring(path.length-1)!='/') path+='/'
		DynAPI.librarypath=path 
	},
	mountplugin : function (plugin) { 
		if (!plugin.pluginName) alert(DynAPI.toString()+'\n\nError occured\nAn invalid plugin was added to the DynApi code:\n\n'+plugin.constructor.toString())
		else DynAPI.plugins[DynAPI.plugins.length]=plugin 
	},
	include : function(src,path) { 
		if(src.substring(src.length-3)!=".js") src+=".js"
		if (!path) path=DynAPI.librarypath
		groupname=src.substring(src.indexOf('.')+1)
		groupname=groupname.substring(0,groupname.indexOf('.'))
		
		if (src.indexOf('.*')>0) {
			src=src.substring(0,src.indexOf('.*'))
			group=eval('DynAPI.'+groupname)
			if (group) for (var i in group)	document.write('<script language="Javascript1.2" src="'+path+groupname+'/'+src+'.'+group[i]+'"><\/script>')
			else alert(DynAPI.toString()+'\n\nError occured\nThe following package could not be loaded:\n'+src+'\n\nmake sure you specified the correct path.')
		} else document.write('<script language="Javascript1.2" src="'+path+groupname+'/'+src+'"><\/script>') 
	}
}

onload = DynAPI.loadHandler
onunload = DynAPI.unloadHandler
//onresize = DynAPI.resizeHandler

