window.loginPath = "/";

//与后端交互的请求对象
function XmlRequest(isAsync){
	this.isAsync=isAsync;
	this.callback=null;
	this.Handler=null;

    this.createXMLRequest = function() {
        if (window.XMLHttpRequest) {
            this.xmlReq = new XMLHttpRequest();
        } else {
            if (window.ActiveXObject) {
                try {
                    this.xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
                    return this.xmlReq;
                }
                catch (e) {
                    try {
                        this.xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
                        return this.xmlReq;
                    }
                    catch (e) {
                        try {
                            this.xmlReq = new ActiveXObject("MSXML2.ServerXMLHTTP");
                            return this.xmlReq;
                        }
                        catch (e) {
                            return false;
                        }
                    }
                }
            } else {
                return false;
            }
        }
    }

    this.init = function(){
        var owner = this;
        this.createXMLRequest();
        if (this.isAsync){
	        this.xmlReq.onreadystatechange = function(){
	            owner.stateChange.call(owner);
	        };
        }
    }
    
    //处理POST请求
    this.postRequest = function(url, callback, requestProperties, Handler){
    	this.callback = callback;
    	this.Handler = Handler;
        this.xmlReq.open("POST", url, this.isAsync);
        //this.xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

        this.xmlReq.send(requestProperties);
        
    }

    //处理GET请求
    this.getRequest = function(url, callback, Handler){
    	this.callback = callback;
    	this.Handler = Handler;
        this.xmlReq.open("GET", url, this.isAsync);
        this.xmlReq.send(null);
    }

    this.stateChange = function(){
        var readyState = this.xmlReq.readyState;
        if(readyState == 4){
          this.callback.call(null,this.xmlReq.responseXML, this.xmlReq.responseText, this.Handler); 
        }
    }
    
    this.init();
}

var ServiceChannel = {
	SendMsg : function (channel, event, eventinfo, callback){
		var my = new XmlRequest(true);
		my.postRequest("SOA?AppName="+channel+"&Service="+event,callback,Obj2DWXML(eventinfo));
	},
	
	SynchronizedSendMsg : function (channel, event, eventinfo){
		var my = new XmlRequest(false);
		//alert(Obj2DWXML(eventinfo));
		my.postRequest("SOA?AppName="+channel+"&Service="+event,null,Obj2DWXML(eventinfo));
		var eventinfo=_eval(my.xmlReq.responseText);
		//alert(my.xmlReq.responseText);
		
		if (eventinfo["sysAvilable"] == "false"){
			alert("对不起，您的会话已超时，请重新登录！");
			top.location.href = loginPath;
			return [];
		}

		return eventinfo;
	}
}


var CodeManager = {
	getValueMap : function(businessid){
		var business = {};
		business["businessid"] = businessid;
		
		var theValueMap = ServiceChannel.SynchronizedSendMsg("vmapMgrService","queryValueMap",business);
		
		return theValueMap;
	},
	
	getTreeData : function(businessid){
		var business = {};
		business["businessid"] = businessid;
		
		var theValueMap = ServiceChannel.SynchronizedSendMsg("vmapMgrService","queryTreeinfo",business);
		
		var theTree = isc.Tree.create({
	        modelType: "parent",
	        rootValue: "0",
	        nameProperty: "VALUE",
	        idField: "ID",
	        parentIdField: "PARENTID",
	        data:theValueMap
    	})
		
		return theTree;
	}
}


function _eval(responseText){
		var eventinfo=[];
		if (responseText.length > 0 &&
		    responseText.charAt(0) == "["){
			eventinfo = eval(responseText);
		} else if (responseText.length > 0) {
			eventinfo = eval("["+responseText+"]")[0];
		}
		eval(eval(eventinfo[1]))
		return eventinfo[0];
}

var ApplicationLoader = {
	loadJSFiles : function (filename,callback){
//		IncludeJSbyURL(filename);
//		
//		if (callback.constructor == String)
//		{	
//			eval(callback);
//		} else {
//			callback.call();
//		}
//		var my = new XmlRequest(true);
//		
//		my.getRequest(filename,function (xmlDoc, xmlText){
//			try {
//				eval(xmlText);
//				
//				if (callback.constructor == String)
//				{	
//					eval(callback);
//				} else {
//					callback.call();
//				}
//			} catch(e){
//				throw (e);
//			}
//		});
//		

		isc.XMLTools.loadXML(filename, function (xmlDoc, xmlText){
			try {
				//isc.clearPrompt();
				//isc.globalsSnapshot=[];
				//alert(xmlText);
				eval(xmlText);
				if (callback.constructor == String)
				{	
					eval(callback);
				} else {
					callback.call();
				}
				
			} catch(e){
				if(xmlText.indexOf('NotLogin_TimeOut')!=-1){
					alert('对不起，您的会话已超时，请重新登录！');
					top.location.href = loginPath;
				}else if(xmlText==''){
					alert('对不起，系统暂停服务，请稍候重新登录或咨询系统管理员！');
					return;
				}else{
					throw (e);
				}
			}
		});
	},
	loadComponent: function(strURL, strID, strPARENT, strPARAMs, strCALLBACK, showItems){
		if (showItems == undefined ||
			showItems == null){
			showItems = "";
		}
		
		if (eval("window.fastaccess_SectionStack0_report")) {
			if (strID != "isd_report_reportview"){
				fastaccess_SectionStack0_report.hide();
			} else {
				fastaccess_main.addMember(fastaccess_SectionStack0_report,0);
				fastaccess_SectionStack0_report.show();
			}
		}
		
		if (eval(strPARENT) != undefined &&
			eval(strPARENT) != null){
			var container = eval(strPARENT);
			
			var arrComponent = eval(strPARENT).children;
			
			if (arrComponent){
				for (var i=0; i < arrComponent.length; i++)
				{
					if (showItems.indexOf(arrComponent[i].getID()) < 0){
						arrComponent[i].delayCall("hide",null,0);
					} else {
						arrComponent[i].delayCall("show",null,0);
					}
				}
			}
		}
			
		var addcommand = "";
		var paramstr = "";
		
		if (strPARENT != null &&
			strPARENT != ""){
			//addcommand = strPARENT+".addMember("+strID+");";
			addcommand = strPARENT+".delayCall(\"addMember\",["+strID+"],0);"
			//addcommand = strPARENT+".delayCall(\"addChild\",["+strID+"],0);"
			//alert(addcommand);
		}
		
		if (strPARAMs != null &&
			strPARAMs != ""){
			if (strURL.indexOf("?") < 0){
				//之前没有设置参数
				paramstr = "?strPARAMs="+strPARAMs;
			} else {
				//之前已经设置参数了
				paramstr = "&strPARAMs="+strPARAMs;
			}
		} else {
			strPARAMs = "";
		}
		
		var thecomponent = null;
		try {
			thecomponent = eval(strID);
		} catch(e){}
		
		if (thecomponent != null){
			try {
				if (showItems.indexOf(strID) >= 0){
					//thecomponent.show();
					thecomponent.delayCall("show",null,0)
				}
			} catch(e){
				
			}
			
			eval("window."+strID+".initCurDataFunc("+strPARAMs+");");
			eval("window."+strID+".initSubComponentFunc("+strPARAMs+");");
			if (strCALLBACK != null &&
				strCALLBACK != ""){
				eval(strCALLBACK);
			}
		} else {
			if (strCALLBACK == null){
				strCALLBACK = "";
			}
			
			ApplicationLoader.loadJSFiles(strURL+paramstr,addcommand+strID+".initCurComponentFunc("+strPARAMs+");"+strID+".initCurDataFunc("+strPARAMs+");"+"window.setTimeout(\""+strID+".initSubComponentFunc("+strPARAMs+")\",1);"+strCALLBACK);
		}

	},
	loadComponentDontCallback: function(strURL, strID, strPARENT, strPARAMs, strCALLBACK, showItems){
		if (showItems == undefined ||
			showItems == null){
			showItems = "";
		}
		
		if (eval("window.fastaccess_SectionStack0_report")) {
			if (strID != "isd_report_reportview"){
				fastaccess_SectionStack0_report.hide();
			} else {
				fastaccess_main.addMember(fastaccess_SectionStack0_report,0);
				fastaccess_SectionStack0_report.show();
			}
		}
		
		if (eval(strPARENT) != undefined &&
			eval(strPARENT) != null){
			var container = eval(strPARENT);
			
			var arrComponent = eval(strPARENT).children;
			
			if (arrComponent){
				for (var i=0; i < arrComponent.length; i++)
				{
					if (showItems.indexOf(arrComponent[i].getID()) < 0){
						arrComponent[i].delayCall("hide",null,0);
					} else {
						arrComponent[i].delayCall("show",null,0);
					}
				}
			}
		}
			
		var addcommand = "";
		var paramstr = "";
		
		if (strPARENT != null &&
			strPARENT != ""){
			//addcommand = strPARENT+".addMember("+strID+");";
			addcommand = strPARENT+".delayCall(\"addMember\",["+strID+"],0);"
			//addcommand = strPARENT+".delayCall(\"addChild\",["+strID+"],0);"
			//alert(addcommand);
		}
		
		var paramsAndcallback = "";
		var paramsAndcallback_str = "";

		if (strPARAMs != null &&
			strPARAMs != ""){
			if (strURL.indexOf("?") < 0){
				//之前没有设置参数
				paramstr = "?strPARAMs="+strPARAMs;
			} else {
				//之前已经设置参数了
				paramstr = "&strPARAMs="+strPARAMs;
			}
			paramsAndcallback = strPARAMs+", \""+strCALLBACK+"\"";
			paramsAndcallback_str = strPARAMs+", \\\""+strCALLBACK+"\\\"";
		} else {
			strPARAMs = "";
			paramsAndcallback = "\""+strCALLBACK+"\"";
			paramsAndcallback_str = "\\\""+strCALLBACK+"\\\"";
		}
		
		
		
		var thecomponent = null;
		try {
			thecomponent = eval(strID);
		} catch(e){}
		
		if (thecomponent != null){
			try {
				if (showItems.indexOf(strID) >= 0){
					//thecomponent.show();
					thecomponent.delayCall("show",null,0)
				}
			} catch(e){
				
			}
			
			eval("window."+strID+".initCurDataFunc("+paramsAndcallback+");");
			eval("window."+strID+".initSubComponentFunc("+paramsAndcallback+");");

		} else {
			if (strCALLBACK == null){
				strCALLBACK = "";
			}
			
			ApplicationLoader.loadJSFiles(strURL+paramstr,addcommand+strID+".initCurComponentFunc("+paramsAndcallback+");"+strID+".initCurDataFunc("+paramsAndcallback+");"+"window.setTimeout(\""+strID+".initSubComponentFunc("+paramsAndcallback_str+")\",1);");
		}

	},
	initData : function (strID, strPARAMs){
		if (strPARAMs == null){
			strPARAMs = "";
		}
		
		if (eval("window."+strID) != undefined &&
		    eval("window."+strID) != null) {
			eval("window."+strID+".initCurDataFunc("+strPARAMs+");");
		}
	},
	registerComponent:function (___param){
		if (eval("window."+___param.ID) == undefined ||
		    eval("window."+___param.ID) == null) {
			eval("window."+___param.ID+"= ___param;");
		} else {
			if (___param.initCurComponentFunc != null) {
				eval("window."+___param.ID+".initCurComponentFunc=___param.initCurComponentFunc;");
			} else {
				eval("window."+___param.ID+".initCurComponentFunc=function(){};");
			}
			
			if (___param.initCurDataFunc != null) {
				eval("window."+___param.ID+".initCurDataFunc=___param.initCurDataFunc;");
			} else {
				eval("window."+___param.ID+".initCurDataFunc=function(){};");
			}
			
			if (___param.initSubComponentFunc != null) {
				eval("window."+___param.ID+".initSubComponentFunc=___param.initSubComponentFunc;");
			} else {
				eval("window."+___param.ID+".initSubComponentFunc=function(){};");
			}
		}
	},
	createInitPanel:function (idstr, style, width, height){
		if (width == undefined ||
			width == null){
			width = "100%";
		}
		
		if (height == undefined ||
			height == null){
			height = "100%";
		}
		
		var initPanel = isc.VLayout.create({
							ID: idstr+"___initlayout",
				            width: width,
				            height: height,
				            styleName: style,
				            members: [
				               isc.Img.create({autoDraw: false, width: 24, height: 24, src: "accessloading.gif"}) 
				            ]
				        });
				        
		return initPanel;
	},
	instanceInitPanel:function (idstr, position){
			if (position == undefined ||
				position == null){
				var str = idstr+".hide();"+idstr+"___initlayout.parentElement.addMember("+idstr+");"+idstr+"___initlayout.parentElement.showMember("+idstr+");"+idstr+"___initlayout.destroy ();";
			} else {
				var str = idstr+".hide();"+idstr+"___initlayout.parentElement.addMember("+idstr+","+position+");"+idstr+"___initlayout.parentElement.showMember("+idstr+");"+idstr+"___initlayout.destroy ();";
			}
			
			window.setTimeout(str, 1);
		
	}
//	,
//	loadJSFilestest : function (filename,callback){
//		var my = new XmlRequest(true);
//		
//		my.getRequest(filename,function (xmlDoc, xmlText){
//			try {
//				//eval(xmlText);
//				//alert("test");
//				if (callback.constructor == String)
//				{	
//					//eval(callback);
//				} else {
//					//callback.call();
//				}
//			} catch(e){
//				throw (e);
//			}
//		});
		
//		isc.XMLTools.loadXML(filename, function (xmlDoc, xmlText){
//			try {
//				eval(xmlText);
//				
//				if (callback.constructor == String)
//				{	
//					eval(callback);
//				} else {
//					callback.call();
//				}
//			} catch(e){
//				throw (e);
//			}
//		});
//		LoadScript( filename );
//		
//		if (callback.constructor == String)
//		{	
//			eval(callback);
//		} else {
//			callback.call();
//		}
//	}
}


function IncludeJS(source) { 
	var oHead = document.getElementsByTagName('HEAD').item(0); 
	var oScript = document.createElement( "script" ); 
	oScript.language = "javascript"; 
	oScript.type = "text/javascript"; 
	oScript.defer = true; 
	oScript.text = source; 
	oHead.appendChild( oScript ); 
} 

function IncludeJSbyURL(url) { 
	var oHead = document.getElementsByTagName('HEAD').item(0); 
	var oScript = document.createElement( "script" ); 
	oScript.language = "javascript"; 
	oScript.type = "text/javascript"; 
	oScript.defer = true; 
	oScript.src = url; 
	oHead.appendChild( oScript ); 
} 


function LoadScript( url )
{
	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
}

function Obj2XML(obj){
	var returnxml = "";

	if (obj.constructor == Array)
	{
		returnxml += "<list>";


		for (var key=0; key<obj.length; key++)
		{
			var thevalue = obj[key];
			
			if (thevalue.constructor==Object ||
				thevalue.constructor==Array){
					returnxml += Obj2XML(thevalue);
			} else if (thevalue.constructor == String){
					returnxml += "<string><![CDATA[";
					returnxml += thevalue;
					returnxml += "]]></string>";
			}else if (thevalue.constructor == Date){
				returnxml += "<"+key+">";
				var tmp = new Date(thevalue);
				//alert("Date="+tmp+" y="+tmp.getFullYear()+" m="+tmp.getMonth()+" d="+tmp.getDate());
				var year = tmp.getFullYear();
				var month = tmp.getMonth() + 1;
				if(month< 10) month = '0' + month;
				var day = tmp.getDate() < 10 ? ('0'+tmp.getDate()) : tmp.getDate();
				returnxml += year+"-"+month+"-"+day;
				returnxml += "</"+key+">";
			} else if (thevalue.constructor == Number){
					returnxml += "<number>";
					returnxml += thevalue;
					returnxml += "</number>";
			} else if (thevalue.constructor == Boolean){
					returnxml += "<bool>";
					returnxml += thevalue;
					returnxml += "</bool>";
			} else {
					returnxml += "<string></string>";
			}
		}
		
		returnxml += "</list>";
	}
	//else if (obj.constructor==Object)
	else
	{
		returnxml += "<obj>";

		for (var key in obj)
		{
			var thevalue = obj[key];
			
			if (thevalue.constructor==Object ||
				thevalue.constructor==Array){
					returnxml += "<map key=\""+key+"\">";
					returnxml += Obj2XML(thevalue);
					returnxml += "</map>";
			} else if (thevalue.constructor == String){
					returnxml += "<string key=\""+key+"\"><![CDATA[";
					returnxml += thevalue;
					returnxml += "]]></string>";
			}else if (thevalue.constructor == Date){
				returnxml += "<"+key+">";
				var tmp = new Date(thevalue);
				//alert("Date="+tmp+" y="+tmp.getFullYear()+" m="+tmp.getMonth()+" d="+tmp.getDate());
				var year = tmp.getFullYear();
				var month = tmp.getMonth() + 1;
				if(month< 10) month = '0' + month;
				var day = tmp.getDate() < 10 ? ('0'+tmp.getDate()) : tmp.getDate();
				returnxml += year+"-"+month+"-"+day;
				returnxml += "</"+key+">";
			} else if (thevalue.constructor == Number){
					returnxml += "<number key=\""+key+"\">";
					returnxml += thevalue;
					returnxml += "</number>";
			} else if (thevalue.constructor == Boolean){
					returnxml += "<bool key=\""+key+"\">";
					returnxml += thevalue;
					returnxml += "</bool>";
			} else {
					returnxml += "<string key=\""+key+"\"></string>";
			}
		}

		
		returnxml += "</obj>";
		
	}

	return returnxml;
}


function Obj2DWXML(obj){
	
	//alert("xyz = "+obj["BD"]+"         "+obj.constructor);

	var returnxml = "";
	
	if (obj == null){
		return returnxml;
	}
	
	//alert(obj + "     xyz      "+obj.constructor);
	//alert(obj + "     xyz   Array    "+(obj.constructor == Array));
	//alert(obj + "     xyz   Object    "+(obj.constructor == Object));
	
	if (obj.constructor == Array)
	{
		for (var key=0; key<obj.length; key++)
		{
			var thevalue = obj[key];

			if (thevalue == null ||
			    thevalue == undefined ||
			    key == "children"){
			    
			} else if (thevalue.constructor==Object ||
				thevalue.constructor==Array){
					returnxml += "<obj>";
					returnxml += Obj2DWXML(thevalue);
					returnxml += "</obj>";
			} else if (thevalue.constructor == String){
				if (thevalue != null &&
					thevalue != ""){
					returnxml += "<"+key+"><![CDATA[";
					thevalue = encode4json(thevalue);
					returnxml += thevalue;
					returnxml += "]]></"+key+">";
				}
			} else if (thevalue.constructor == Number){
					returnxml += "<"+key+">";
					returnxml += thevalue;
					returnxml += "</"+key+">";
			} else if (thevalue.constructor == Date){
				returnxml += "<"+key+">";
				var tmp = new Date(thevalue);
				//alert("Date="+tmp+" y="+tmp.getFullYear()+" m="+tmp.getMonth()+" d="+tmp.getDate());
				var year = tmp.getFullYear();
				var month = tmp.getMonth() + 1;
				if(month< 10) month = '0' + month;
				var day = tmp.getDate() < 10 ? ('0'+tmp.getDate()) : tmp.getDate();
				returnxml += year+"-"+month+"-"+day;
				returnxml += "</"+key+">";
			}else if (thevalue.constructor == Boolean){
					returnxml += "<"+key+">";
					returnxml += thevalue;
					returnxml += "</"+key+">";
			} else if (!thevalue) {
					returnxml += "<"+key+"></"+key+">";
			} else {
				//alert("["+thevalue.constructor + ']  ==' + thevalue);
					//thevalue = encode4json(thevalue);
					//returnxml += "<"+key+"><![CDATA["+thevalue+"]]></"+key+">";
			}
		}
	}
	//else if (obj.constructor==Object)
	else
	{
		
		for (var key in obj)
		{
			var thevalue = obj[key];
			
			//alert("key = "+key+"   value = "+thevalue+"  "+thevalue.constructor);
			
			if (thevalue == null ||
			    thevalue == undefined ||
			    key == "children"){
			    
			} else if (thevalue.constructor==Object ||
				thevalue.constructor==Array){
					returnxml += "<"+key+">";
					returnxml += Obj2DWXML(thevalue);
					returnxml += "</"+key+">";
			} else if (thevalue.constructor == String){
				if (thevalue != null &&
					thevalue != ""){
					thevalue = thevalue.replace(/[\"]/g,"＂");
					thevalue = thevalue.replace(/[\']/g,"＇");
					returnxml += "<"+key+"><![CDATA[";
					thevalue = encode4json(thevalue);
					returnxml += thevalue;
					returnxml += "]]></"+key+">";
				}
			} else if (thevalue.constructor == Number){
					returnxml += "<"+key+">";
					returnxml += thevalue;
					returnxml += "</"+key+">";
			} else if (thevalue.constructor == Boolean){
					returnxml += "<"+key+">";
					returnxml += thevalue;
					returnxml += "</"+key+">";
			} else if (thevalue.constructor == Date){
					returnxml += "<"+key+">";
					var tmp = new Date(thevalue);
					//alert("Date="+tmp+" y="+tmp.getFullYear()+" m="+tmp.getMonth()+" d="+tmp.getDate());
					var year = tmp.getFullYear();
					var month = tmp.getMonth() + 1;
					if(month< 10) month = '0' + month;
					var day = tmp.getDate() < 10 ? ('0'+tmp.getDate()) : tmp.getDate();
					returnxml += year+"-"+month+"-"+day;
					returnxml += "</"+key+">";
			}else if (!thevalue) {
					returnxml += "<"+key+"></"+key+">";
			} else {
				//alert(thevalue);
					//thevalue = encode4json(thevalue);
					//returnxml += "<"+key+"><![CDATA["+thevalue+"]]></"+key+">";
			}
		}
	}

	return returnxml;
}


function encode4json(str){
	var encoder = str;
	
	if (encoder == null){
		encoder = "";
	}
	
	encoder = encoder.replace(/\r\n|\n/g,"\\r\\n");
	encoder = encoder.replace(/[\"]/g,"\\\"");
	encoder = encoder.replace(/[\']/g,"\\\'");
	
	return encoder;
}

//读取Cookie文件
function getCookie(key){
    var cookieString = new String(document.cookie);
    var cookieHeader = key+"=";
    var DispNext=0;
    var beginPosition = cookieString.indexOf(cookieHeader);
    if (beginPosition != -1){
         DispNext=(cookieString.substring(beginPosition + cookieHeader.length));
         DispNext=DispNext.substring(0,DispNext.indexOf("&&"));
    }
    return DispNext;
}

//写Cookie文件
function setCookie(key,str) {
  var Cookie_DispNext_Dclrw;
  Cookie_DispNext_Dclrw = key+"="+str;

  Cookie_DispNext_Dclrw=Cookie_DispNext_Dclrw+"&&;expires=SunDay,30 Jan 2101 00:00:00 GMT.";
  document.cookie =Cookie_DispNext_Dclrw;
}


/**
 * {
 * 		businessid:{
 * 			form__fieldname: {
 * 				form:"",
 * 				fieldname:""
 * 			},
 * 			form__fieldname: {
 * 				form:"formid",
 * 				fieldname:"fieldname"
 * 			}
 * 		}
 * }
 * 
 */
var FormValueMapContainer = {};	//注册所有Form用到的代码表

function registerFormValueMap(businessid,formid,fieldname){
	if (FormValueMapContainer[businessid] == null) {
		FormValueMapContainer[businessid] = {};
	}
	
	if (FormValueMapContainer[businessid][formid+"__"+fieldname] == null){
		var onefield = {};
		onefield["form"] = formid;
		onefield["fieldname"] = fieldname;
		FormValueMapContainer[businessid][formid+"__"+fieldname] = onefield;
	}
}
function reloadFormValueMap(businessid){
	var allimpactForm = FormValueMapContainer[businessid];
	
	if (allimpactForm != null){
		var valueMap = CodeManager.getValueMap(businessid);
		
		for (var key in allimpactForm){
			var onefield = allimpactForm[key];
			
			var form = onefield["form"];
			var fieldname = onefield["fieldname"];
			
			try {
				eval(form+".setValueMap(\""+fieldname+"\",valueMap);");
			} catch(e){
				alert(e);
			}
		}
	}
}
/**
 * {
 * 		businessid:{
 * 			grid__fieldname: {
 * 				grid:"",
 * 				fieldname:""
 * 			},
 * 			grid__fieldname: {
 * 				grid:"gridid",
 * 				fieldname:"fieldname"
 * 			}
 * 		}
 * }
 * 
 */
var GridValueMapContainer = {};	//注册所有Grid用到的代码表

function registerGridValueMap(businessid,gridid,fieldname){
	if (GridValueMapContainer[businessid] == null) {
		GridValueMapContainer[businessid] = {};
	}
	
	if (GridValueMapContainer[businessid][gridid+"__"+fieldname] == null){
		var onefield = {};
		onefield["grid"] = gridid;
		onefield["fieldname"] = fieldname;
		GridValueMapContainer[businessid][gridid+"__"+fieldname] = onefield;
	}
}

function reloadGridValueMap(businessid){
	var allimpactGrid = GridValueMapContainer[businessid];
	
	if (allimpactGrid != null){
		var valueMap = CodeManager.getValueMap(businessid);
		
		for (var key in allimpactGrid){
			var onefield = allimpactGrid[key];
			
			var grid = onefield["grid"];
			var fieldname = onefield["fieldname"];
			
			try {
				eval(grid+".setValueMap(\""+fieldname+"\",valueMap);");
			} catch(e){
				alert(e);
			}
		}
	}
}

/**
 * 触发码表重新加载
 */
function fireRloadValueMap(businessid){
	reloadFormValueMap(businessid);
	reloadGridValueMap(businessid);
}

