﻿/*Config对象
接受参数:无
返回类型:无

应用技术：
javascript,ajax

制作人：
黄若儒 Roy.Huang

注意:
1、全部采用静态写法，方便继承且减少资源耗损
2、本类为全局管理类（类似于工厂类），用于全局控制所有已经注册的类
3、若要增加类，请在CLASS_REGISTER中添加
*/
var Config=function(){}

Config.getFileByPath=function(p){//获取该路径中的所有类路径
	var rst=[];
	try{
		var isFile=false;
		if(p.lastIndexOf("/")!=p.length-1)
			isFile=true;
		for(var i=0;i<this.CLASS_REGISTER.length;i++){
			var filePath=this.CLASS_REGISTER[i].filePath;
			if(!isFile)
				filePath=filePath.substring(0,filePath.lastIndexOf("/")+1);
			if(p==filePath){
				if(isFile)
					return this.CLASS_REGISTER[i].filePath;
				else
					rst.push(this.CLASS_REGISTER[i].filePath);
			}
		}
	}
	catch(e){
		this.onError(0);
	}
	return rst;
};

Config.getFileByNameSpace=function(ns){//获取该命名空间中的类路径
	var rst=[];
	try{
		var isClass=true;
		if(ns.lastIndexOf(".*")==ns.length-2){
			ns=ns.substring(0,ns.lastIndexOf("."));
			isClass=false;
		}
		for(var i=0;i<this.CLASS_REGISTER.length;i++){
			var nameSpace=this.CLASS_REGISTER[i].nameSpace;
			if(!isClass)
				nameSpace=nameSpace.substring(0,nameSpace.lastIndexOf("."));
			if(ns==nameSpace)
				if(isClass)
					return this.CLASS_REGISTER[i].filePath;
				else
					rst.push(this.CLASS_REGISTER[i].filePath);
		}
	}
	catch(e){
		this.onError(1);
	}
	return rst;
};

Config.getFileByName=function(n){//获取该名中的类路径
	var rst=[];
	try{
		for(var i=0;i<this.CLASS_REGISTER.length;i++){
			if(n==this.CLASS_REGISTER[i].name)
				rst.push(this.CLASS_REGISTER[i].filePath);
		}
	}
	catch(e){
		this.onError(1);
	}
	return rst;
};

Config.getFile=function(){//获取所有已注册的类路径
	var rst=[];
	for(var i=0;i<this.CLASS_REGISTER.length;i++)
		st.push(this.CLASS_REGISTER[i].filePath);
	return rst;
};

Config.onError=function(e){//错误处理
	switch(e){
		case 0:alert("getPathClass:"+e.message);break;
		case 1:alert("getNameSpaceClass:"+e.message);break;
		default:alert(e);
	}
	return false;
};

Config.CLASS_REGISTER=[//类注册
	/********************System********************/
	{name:"Class",nameSpace:"Class",filePath:"/SCRIPT/Class.js"},
	{name:"Config",nameSpace:"Config",filePath:"/SCRIPT/Config.js"},
	
	/********************com.gzgi.ad********************/
	{name:"Float",nameSpace:"com.gzgi.ad.Float",filePath:"/SCRIPT/com/gzgi/ad/Float.js"},
	{name:"FloatCollision",nameSpace:"com.gzgi.ad.FloatCollision",filePath:"/SCRIPT/com/gzgi/ad/FloatCollision.js"},
	{name:"Suspend",nameSpace:"com.gzgi.ad.Suspend",filePath:"/SCRIPT/com/gzgi/ad/Suspend.js"},
	
	/********************com.gzgi.eff********************/
	{name:"Roll",nameSpace:"com.gzgi.eff.Roll",filePath:"/SCRIPT/com/gzgi/eff/Roll.js"},
	{name:"Slides",nameSpace:"com.gzgi.eff.Slides",filePath:"/SCRIPT/com/gzgi/eff/Slides.js"},
	
	/********************com.gzgi.ctrl********************/
	{name:"PageControl",nameSpace:"com.gzgi.ctrl.PageControl",filePath:"/SCRIPT/com/gzgi/ctrl/PageControl.js"},
	
	/********************com.gzgi.media********************/
	{name:"Player",nameSpace:"com.gzgi.media.Player",filePath:"/SCRIPT/com/gzgi/media/Player.js"},
	
	/********************com.gzgi.net********************/
	{name:"AjaxControl",nameSpace:"com.gzgi.net.AjaxControl",filePath:"/SCRIPT/com/gzgi/net/AjaxControl.js"},
	{name:"AjaxApp",nameSpace:"com.gzgi.net.AjaxApp",filePath:"/SCRIPT/com/gzgi/net/AjaxApp.js"},
	{name:"Cookies",nameSpace:"com.gzgi.net.Cookies",filePath:"/SCRIPT/com/gzgi/net/Cookies.js"},
	{name:"XmlApp",nameSpace:"com.gzgi.net.XmlApp",filePath:"/SCRIPT/com/gzgi/net/XmlApp.js"},
	
	/********************com.gzgi.event********************/
	{name:"WheelListen",nameSpace:"com.gzgi.event.WheelListen",filePath:"/SCRIPT/com/gzgi/event/WheelListen.js"},
	
	/********************com.gzgi.util********************/
	{name:"Method",nameSpace:"com.gzgi.util.Method",filePath:"/SCRIPT/com/gzgi/util/Method.js"},
	{name:"Validate",nameSpace:"com.gzgi.util.Validate",filePath:"/SCRIPT/com/gzgi/util/Validate.js"},
	
	/********************com.gzgi.gui********************/
	{name:"Graphics",nameSpace:"com.gzgi.gui.Graphics",filePath:"/SCRIPT/com/gzgi/gui/Graphics.js"}
];