/*
******************************************************************
** 名: init and bind and pub and view 属于JFC － Jax Foundation Class
** 创建：welsham 2007-10-18  修改: welsham 2007-10-18
** 描述: parser之初始化和绑定模块，绑定数据和界面控件，如列表数据绑定
** 修改描述: 
******************************************************************
*/

//**************初始化parser对象和init/bind对象*************************
if(typeof parser != "object") { var parser={}; }
if(typeof parser.init != "object") { parser.init={}; }
if(typeof parser.bind != "object") { parser.bind={}; }
if(typeof parser.pub != "object") { parser.pub={}; }
if(typeof parser.view != "object") { parser.view={}; }

/****************************************************************** 
** 名: time  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-8  修改: welsham 2006-7-8
** 描述: parser.init的时间初始化函数
** 修改描述: 
******************************************************************/
//**************初始化时间列表框***********************************
parser.init.initTime=function(o,start,end,_default)
{
	var items='',sOption,i;
	removeAllOption(o);
	for(i=start;i<=end;i++) 
	{	
		o.options[o.length]=new Option(i,i);
		if(_default && _default==i) o.options[o.length-1].selected=true;
	}
};
parser.init.getDays=function(year,month)
{
	var days=31;year=parseInt(year);month=parseInt(month);
	switch(month)
	{
		case 4:case 6:case 9:case 11: {days=30;break;}
		case 2:
		{
			if( (year%4==0 && year%100!=0) || year%400==0 ) days=29;
			else days=28;
			break;
		}
	}
	return days;
};

//**************绑定日和月****************************************
parser.init.bindTime=function(oYear,oMonth,oDay)
{
	var year=oYear.options[oYear.selectedIndex].value;
	var month=oMonth.options[oMonth.selectedIndex].value;
	var day=oDay.options[oDay.selectedIndex].value;
	var days=parser.init.getDays(year,month);
  		
	parser.init.initTime(oDay,1,days,day);
};
//**************获取时间段***************************************
parser.init.getTimePart=function(_time,_part)
{
	var times,e,p;
	switch(_part)
	{
		case "date":case "y":case "m":case "d":
		{
			e= "([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})[0-9 :]*";
			p=new RegExp(e);
			times=_time.match(p);
			if( times==null ) return "";
		}
		case "date":
		{
			return times[1]+"-"+times[2]+"-"+times[3];		
		}
		case "y":
		{
			if(times.length>=1) return times[1];
			else return "";
		}
		case "m":
		{
			if(times.length>=2) return times[2];
			else return "";
		}
		case "d":
		{
			if(times.length>=3) return times[3];
			else return "";
		}
		case "time":case "h":case "mm":case "s":
		{
			e= "[0-9 -]*([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})";
			p=new RegExp(e);
			times=_time.match(p);
			if( times==null ) return "";
		}
		case "time":
		{
			return times[1]+":"+times[2]+":"+times[3];		
		}		
		case "h":
		{
			if(times.length>=1) return times[1];
			else return "";
		}
		case "mm":
		{
			if(times.length>=2) return times[2];
			else return "";
		}
		case "s":
		{
			if(times.length>=3) return times[3];
			else return "";
		}		
	}
};

/****************************************************************** 
** 名: list  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-8  修改: welsham 2006-7-8
** 描述: parser.init的列表初始化函数
** 修改描述: 
******************************************************************/
//**************列表初始化****************************************
//参数：DD-数据字典,如place；_key-选中键，不空将填充该键下级键；isStrict-有(false)无(true)“不限”或“所有”项；
//_default-默认键值; list节点对象，可多级
//情形：默认值；DD和_key与节点对应，可选取DD不同层级往下递推；DD子项不完全时，以父项填充；
//设定不同参数，实现list多级之间关联
parser.init.initList=function(DD,_key,isStrict,_default)
{
	var i,j,key,flag,o,pKey=null,childNodes,sOption,defaults=[];
	//默认值的父树计算
	if(_default && DD[_default])
	{
		defaults[0]=_default;
		key=_default;
		while(DD[key].parent&&DD[key].parent!="0"&&DD[key].parent!=_key)
		{
			key=DD[key].parent;defaults[defaults.length]=key;
		}
		defaults.reverse();
	}
	else _default=false;
	//遍历节点，填充数据
	for(i=4;i<arguments.length;i++)
	{
		o=arguments[i];
		removeAllOption(o);
		//遍历数组，寻找子节点填充
		if( i == 4 ) { pKey = _key; }
		else {
			pKey = $$(arguments[i-1].id);
		}
		childNodes=parser.JSON.childNodes(DD,pKey);
		//没有子项，用父项值填充
		if(childNodes.length==0)
		{
			o.options[o.length]=new Option(DD[pKey].value,pKey);
			continue;
		}
		//不限填充
		if(childNodes.length>0 && !isStrict)
		{
			flag=false;
			for(j in childNodes)
			{
				if( childNodes[j]=="0" || childNodes[j]=="0"+pKey ) {flag=true;continue;}
			}
			if(!flag)
			{
				o.options[o.length]=new Option(DD[pKey].value,pKey);
			}
		}
		//循环，填充
		flag=true;
		for(j in childNodes)
		{
			if(isStrict && (childNodes[j]=="0" || childNodes[j]=="0"+pKey) ) continue;
			o.options[o.length]=new Option(DD[childNodes[j]].value,childNodes[j]);	
			if(flag) {pKey=childNodes[j];flag=false;}
			if(_default && i-4<defaults.length && childNodes[j]==defaults[i-4])
			{ o.options[o.length-1].selected=true;pKey=childNodes[j]; }
		}
	}
};

//**************移动列表数据*************************************
//参数：_max-最多可移动个数,0不限; list节点对象，索引1为移动到的目标对象，索引2开始为源对象，多级（低到高）
parser.init.moveList=function(_max)
{
	var i,toO=arguments[1],fromO=arguments[2],toValue,toText="";
	if(fromO.length<=0) return false; //源对象是否有效
	if(fromO.selectedIndex<0) fromO.options[0].selected=true;
	if(_max>0 && toO.length>=_max) {alert("您只能最多选择" + _max + "个!");return false;} //不超过最大可移动数
	//目标对象重复判断
	toValue=fromO.options[fromO.selectedIndex].value;
	for(i=0;i<toO.length;i++)
	{
		if(toValue==toO.options[i].value) return false;
	}
	//获取父树,生成目标文本
	for(i=arguments.length-1;i>2;i--)
	{ 
		if(toText) toText += ">>" + arguments[i].options[arguments[i].selectedIndex].text;
		else toText = arguments[i].options[arguments[i].selectedIndex].text;
	}
	if(toText) toText += ">>" + fromO.options[fromO.selectedIndex].text;
	else toText = fromO.options[fromO.selectedIndex].text;
	toO.options[toO.length]=new Option(toText,toValue);	
	fromO.remove(fromO.selectedIndex);
	fromO.reset;
};

//**************删除列表数据*************************************
//参数：list节点对象，索引0为源对象
parser.init.removeList=function()
{
	var fromO=arguments[0];
	if(fromO.length<=0) return false;
	if(fromO.selectedIndex==-1) fromO.options[0].selected=true;
	fromO.remove(fromO.selectedIndex);
	fromO.reset;
	return true;
};

//**************初始化列表时进行左右数据对比***********************
//list节点对象，索引0为源对象，索引1为目标对象
parser.init.compareList=function()
{
	var i,j,fromO=arguments[0],toO=arguments[1],toValue;
	if(toO.length<=0) return;
	for(i=0;i<toO.length;i++)
	{
		var toValue=toO.options[i].value;
		for(j=0;j<fromO.length;j++)
		{
			if(fromO.options[j].value==toValue)
			{
				fromO.remove(j);fromO.reset;
			}
		}
	}
};

//**************全选列表****************************************
parser.init.selectAll=function()
{
	var i,o=arguments[0];
	for(i=0;i<o.length;i++)
	{
		o.options[i].selected=true;
	}
};

parser.init.initBox=function(DD, isStrict, _key, _default, _boxType, _name, _o)
{
	var key, sHtml = '';
	if( _key )
	{
		_key = _key.replace(new RegExp(",", "g"), ", ");
		_key = " " + _key + ",";
	}
	if( _default )
	{
		_default = _default.replace(new RegExp(",", "g"), ", ");
		_default = " " + _default + ",";
	}
	for(key in DD)
	{
		if( isStrict && key =='0' ) continue;
		if( _key && _key.indexOf(" " + key + ",") == -1 ) continue;
		
		sHtml += '<input type="'+ _boxType +'" name="'+ _name +'" id="'+ _name + key +'" value="'+ key +'"';
		if( _default && _default.indexOf(" " + key + ",") != -1 ) sHtml += ' checked="checked"';
		sHtml += ' />';
		sHtml += '<label for="'+ _name + key +'">'+ DD[key].value +'</label>';
	}
	if( _o ) _o.innerHTML = sHtml;
};
//**************查询****************************************
//(用initList初始化的列表框)oList = [{name:'UtorState',DD:_UtorState, dv:'00'}, {name:'UtorLevel',DD:_UtorLevel}]
//moreSearch，更多选项相关参数：moreSearch = ['moreSearchBtn', 'moreSearch', 'switchDown1', 'switchUp1']－－这也是默认值
parser.init.initQuery = function (searchFormID, query, order, oList, moreSearch)
{
	var i, j, defaultOrder, oSearchForm, oElements, querys;	
	var orders, order2s, url, rUrl, orderField;
	
	if (!moreSearch) moreSearch = ['moreSearchBtn', 'moreSearch', 'switchDown1', 'switchUp1'];
	var isOpen = false;
	//添加事件
	oSearchForm = $(searchFormID);
	if (!oSearchForm) return;
	oElements = oSearchForm.elements;	
	for(i=0;i<oElements.length;i++)
	{
		if (oElements[i].getAttribute('dv'))
		{
			parser.init.addQueryEvents(oElements[i]);
		}
	}
	//初始化
	querys=query.split("&");
	for(i in querys)
	{
		querys[i]=querys[i].split("=");
		if( querys[i][1]!="" && $(querys[i][0]) )
		{
			switch( $(querys[i][0]).nodeName.toLowerCase() ) {
				case "input":{
					switch( $(querys[i][0]).type.toLowerCase() )
					{
						case "text":
						case "hidden":{ $(querys[i][0]).value=querys[i][1];break; }
						case "radio":
						case "checkbox":{ parser.bind.bindBox(querys[i][0], querys[i][1]);break; }
					}
					break;
				}
				case "select":{
						parser.bind.bindList($(querys[i][0]), querys[i][1]);
					break;	
				}
			}
		}
	}
	
	for(i in oList)
	{
		oList[i].value = getQuery(oList[i].name, query);
		if (!oList[i].dv) oList[i].dv = '';
		
		parser.init.initList(oList[i].DD, "", false, oList[i].dv, $(oList[i].name));
		
		oList[i].dv = $$(oList[i].name); //获取默认值从
		
		if (oList[i].value.length>0)
		{			
			parser.bind.bindList($(oList[i].name), oList[i].value);
		}
	}
	
	if ($("order"))
	{
		defaultOrder = $$("order");
		parser.bind.bindList($("order"), order);
	}	
	
	//切换列排序↑↓
	order2s = $n("order2");
	if ( order2s.length == 0 ) return;
	orders = order.split("_");
	
	url = location.href.toString();
	url = url.replace(new RegExp("\\border=[^&]*\\b", "gi"), "");
	url = url.replace("?order=&", "?").replace("&order=&", "&").replace("&order=", "");
	url = url.replace("&&", "&");
	rUrl = url.substring(url.length-1, url.length);
	url += url.indexOf("?") == -1 ? "?" : ( rUrl == "&" ? "" : ( rUrl == "?" ? "" : "&") )
	
	for ( i=0; i<order2s.length;i++ ) {	
		
		orderField = order2s[i].getAttribute("field");
		if (  orderField == orders[0] ) {
			if ( orders[1].toUpperCase() == "ASC" ) {
				order2s[i].href = url + "order=" + orderField + "_DESC";
				order2s[i].innerHTML += '▲';
				order2s[i].title = '点击降序';
			}
			else {
				order2s[i].href = url + "order=" + orderField + "_ASC";
				order2s[i].innerHTML += '▼';
				order2s[i].title = '点击升序';
			}
		} else {			
			order2s[i].href = url + "order=" + orderField + "_DESC";	
		}
	}
	
	//切换更多查询框
	if (!$(moreSearch[1])) return;
	
	oElements = $(moreSearch[1]).getElementsByTagName('input');
	for(i=0;i<oElements.length;i++)
	{
		if ( oElements[i].type.toLowerCase() == "text" && oElements[i].value.length > 0 && oElements[i].value != oElements[i].getAttribute('dv') )
		{
			isOpen = true;
			break;
		}
	}
	oElements = $(moreSearch[1]).getElementsByTagName('select');
	for(i=0;i<oElements.length;i++)
	{
		if ( oElements[i].options[oElements[i].selectedIndex].value != oElements[i].options[0].value )
		{
			isOpen = true;
			break;
		}
	}
	if (!isOpen)
	{
		oElements = $(moreSearch[1]).getElementsByTagName('select');
		for (j in oElements)
		{
			for(i in oList)
			{
				if($(oList[i].name) == oElements[j])
				{
					if (oList[i].value.length>0 && oList[i].value != oList[i].dv)
					{
						isOpen = true;
						break;
					}
				}
			}
			
			if (oElements[j].name == 'order' && order.length>0 && order !=defaultOrder)  isOpen = true;
		}			
	}	
	
	if (isOpen) parser.widget.doSwitch($(moreSearch[0]), moreSearch[1], moreSearch[2], moreSearch[3]);
};
parser.init.checkQuery = function(searchFormID, checkNumber, checkDate)
{
	var i, oSearchForm, oElements, id, checkNumber2 = [], checkDate2 = [];
	
	if(checkNumber)
	{
		checkNumber2[0] = checkNumber[0].split(",");
		checkNumber2[1] = checkNumber[1].split(",");
		for(i=0;i<checkNumber2[0].length;i++)
		{
			id = checkNumber2[0][i];
			if (!$(id).getAttribute('dv') || $(id).value != $(id).getAttribute('dv'))
			{
				if(!parser.check.isNumbers(checkNumber2[0][i], checkNumber2[1][i]) ) return false;
			}
		}
	}
	if(checkDate)
	{
		checkDate2[0] = checkDate[0].split(",");
		checkDate2[1] = checkDate[1].split(",");
		for(i=0;i<checkDate2[0].length;i++)
		{
			id = checkDate2[0][i];
			if (!$(id).getAttribute('dv') || $(id).value != $(id).getAttribute('dv'))
			{
				if(!parser.check.isDates(checkDate2[0][i], checkDate2[1][i]) ) return false;
			}
		}		
	}

	oSearchForm = $(searchFormID);
	oElements=oSearchForm.elements;
	for(var i=0;i<oElements.length;i++)
	{
		if (oElements[i].getAttribute('dv') && oElements[i].value == oElements[i].getAttribute('dv'))
		{
			oElements[i].value = "";
		}
	}
	
	return true;
};
parser.init.addQueryEvents = function(el)
{
	addEventListener(el, 'focus', function(e){ parser.init.onKeyword(el) }, false);
	addEventListener(el, 'blur', function(e){ parser.init.outKeyword(el) }, false);
};
parser.init.onKeyword = function(_o)
{
	if(_o.value==_o.getAttribute('dv')) _o.value="";
	else _o.select();
};
parser.init.outKeyword = function (_o)
{
	if(_o.value=="") _o.value=_o.getAttribute('dv');
};



//**************bind Start*************************

//**************列表绑定******************************************
parser.bind.bindList=function(o,_value)
{
	var i;
	for(i=0;i<o.length;i++)
	{
		if(o.options[i].value==_value) o.options[i].selected=true;
	}
};

//**************单选和多选框绑定************************************
//参数：_oName-对象的name；_value-值如"1, 2",用“, ”分隔多值
parser.bind.bindBox=function(_oName,_value,_disableOther, oForm)
{
	var i, boxs;
	
	if ( _value.indexOf(", ") == -1 && _value.indexOf(",") >=0 ) _value = _value.replace(new RegExp(",", "g"), ", ");	
	_value = " " + _value + ",";
		
	if ( oForm ) {
		for (i = 0; i < oForm.elements.length;i++) {
			if ( oForm.elements[i].name == _oName ) {
				if ( _value.indexOf(" "+ oForm.elements[i].value+",") != -1 ) oForm.elements[i].checked = true;
				else
				{
					oForm.elements[i].checked = false;
					if(_disableOther) oForm.elements[i].disabled = true;
				}
			}
		}
	}
	else {
		boxs = document.getElementsByName(_oName);
		for(i=0;i<boxs.length;i++)
		{
			if ( _value.indexOf(" "+boxs[i].value+",") != -1 ) boxs[i].checked = true;
			else
			{
				boxs[i].checked = false;
				if(_disableOther) boxs[i].disabled = true;
			}
		}
	}
};

//**************列表数据填充绑定************************************
//参数：DD-数据字典；_key-填充键如"1, 2",用“, ”分隔多值;list节点对象,索引2源对象，索引3为对应对象
parser.bind.fillList=function(DD,_key)
{
	if(_key.length==0) return false;
	var i,j,toO=arguments[2],aboutO=arguments[3];
	var keys=_key.split(","),key,text;	
	for(i in keys)
	{
		key=trim(keys[i]);
		if(DD=="")
		{
			for(j=0;j<aboutO.options.length;j++)
			{
				if(aboutO.options[j].value==key) text=	aboutO.options[j].text;
			}
		}
		else
		{
			_key=key;
			if(!DD[_key]) continue;
			text=DD[_key].value;
			while(DD[_key].parent&&DD[_key].parent!="0")
			{
				_key=DD[_key].parent; text = DD[_key].value+">>"+text;
			}
		}
		toO.options[toO.length]=new Option(text,key);
	}
	parser.init.compareList(aboutO,toO);
};
//**************获取DD的名称************************************
parser.bind.bindInnerHTML=function(_id,DD,_key)
{
	if(_key.length==0) return false;
	var i,keys=_key.split(","),key,text,fullText="";
	for(i in keys)
	{
		key=trim(keys[i]);
		_key=key; text = DD[_key].value;
		while(DD[_key].parent&&DD[_key].parent!="0")
		{
			_key=DD[_key].parent; text = DD[_key].value+">>"+text;
		}
		fullText += text+"<br>"
	}
	$(_id).innerHTML=fullText;
};
//**************检测值是否包含在字符串中**************************
//_val：如"1, 2"，检测__val是否在_val中；_view：显示与否
parser.bind.checkValue=function(_val,__val,_view)
{
	_val = " "+_val+",";
	__val= " "+__val+",";
	if(_val.indexOf(__val)>=0)
	{	if(_view) document.write("√"); return true;	}
	else
	{	if(_view) document.write("×"); return false;	}
};

//**************发布时的字段绑定**************************
parser.bind.bindCommon=function(_bindList, _noCovHtmlID, oData, oForm)
{
	var id, i;	
	
	oData = oData ? oData : $("__data");
	var datas = $c(oData);
	
	
	for(i=0;i<datas.length;i++)
	{
		id = datas[i].id;
		id = id.substring(2,id.length);
		
		if(!$(id, oForm)) continue;
		
		
		switch($(id, oForm).nodeName.toLowerCase())
		{
			case "input":
			{
				switch($(id, oForm).type.toLowerCase())
				{
					case "text":
					case "hidden":{ $(id, oForm).value = datas[i].innerHTML;break;}
					case "radio":
					case "checkbox":{ parser.bind.bindBox(id, datas[i].innerHTML, false, oForm);break; }
				}
				break;
			}
			case "textarea":
			{
				if(_noCovHtmlID && _noCovHtmlID.indexOf(id) != -1 )
				{
					$(id, oForm).value = datas[i].innerHTML;
				}
				else
					$(id, oForm).value = unCovHtml(datas[i].innerHTML);
				break;
			}
			case "select":{if(_bindList) parser.bind.bindList($(id, oForm), datas[i].innerHTML);break;}
			case "span":{ $(id, oForm).innerHTML = datas[i].innerHTML;break; }
			case "div":{ $(id, oForm).innerHTML = datas[i].innerHTML;break; }
		}	
	}
};




parser.pub = {};
parser.pub.state = 0;
parser.pub.pubForm = [];
parser.pub.formId = null;
parser.pub.formUrl = null;
parser.pub.dataUrl = null;
parser.pub.left = null;
parser.pub.top = null;
parser.pub.width = null;
parser.pub.initEdit = function( formId, formUrl, dataUrl, left, top, width) {
	
	parser.show.showDiv($('loadBox'), left, top, width, null, "show");
	
	parser.pub.formId = formId;
	parser.pub.formUrl = formUrl;
	parser.pub.dataUrl = dataUrl;
	parser.pub.left = left;
	parser.pub.top = top;
	parser.pub.width = width;
	
	parser.pub.state = 0;
	parser.pub.doEdit();
};
parser.pub.doEdit = function() {
	var formId, left, top, width, pubScript;

	switch( parser.pub.state ) {
		case 0:{
			formId = parser.pub.formId;
			if ( parser.pub.pubForm[formId] ) {
				parser.pub.state = 2;
				parser.load.getHtml(parser.pub.dataUrl, parser.pub.doEdit);
				
			} else {
				parser.pub.state = 1;					
				parser.load.getHtml(parser.pub.formUrl, parser.pub.doEdit);					
			}
			break;

		}
		case 1: {
			formId = parser.pub.formId;
			parser.pub.pubForm[formId] = arguments[0];				
			
			parser.pub.state = 2;
			parser.load.getHtml(parser.pub.dataUrl, parser.pub.doEdit);
			break;
		}
		case 2: {			
			$("dataCache").innerHTML = arguments[0];
			
			parser.pub.state = 3;
			parser.pub.doEdit();
			break;
			
		}
		case 3: {
			formId = parser.pub.formId;
			left = parser.pub.left;
			top = parser.pub.top;
			width = parser.pub.width;
			
			$("pubMain").innerHTML = parser.pub.pubForm[formId];
			$('loadBox').style.display = "none";
			parser.show.showDiv($('pubBox'), left, top, width, null, "show");
			
			var oHead = document.getElementsByTagName('HEAD').item(0);    
			var oScript = document.createElement("script");
			oScript.language = "javascript"; 
			oScript.type = "text/javascript";
			oScript.defer = true;
			oScript.text = $$("pubScript");		   
			oHead.appendChild(oScript);
	
			bindPubForm();
			
			parser.pub.state = 0;
			break;
		}
	}

};
parser.pub.closePub = function() {
	$('pubBox').style.display = 'none';
};
parser.pub.initAdd = function( formId, formUrl, left, top, width) {
	
	parser.show.showDiv($('loadBox'), left, top, width, null, "show");
	
	parser.pub.formId = formId;
	parser.pub.formUrl = formUrl;
	parser.pub.left = left;
	parser.pub.top = top;
	parser.pub.width = width;
	
	parser.pub.state = 0;
	parser.pub.doAdd();
};
parser.pub.doAdd = function() {
	var formId, left, top, width, pubScript;

	switch( parser.pub.state ) {
		case 0:{
			formId = parser.pub.formId;
			if ( parser.pub.pubForm[formId] ) {
				parser.pub.state = 3;
				parser.pub.doAdd();
				
			} else {
				parser.pub.state = 1;					
				parser.load.getHtml(parser.pub.formUrl, parser.pub.doAdd);					
			}
			break;

		}
		case 1: {
			formId = parser.pub.formId;
			parser.pub.pubForm[formId] = arguments[0];
			
			parser.pub.state = 3;
			parser.pub.doAdd();
			break;
		}		
		case 3: {
			formId = parser.pub.formId;
			left = parser.pub.left;
			top = parser.pub.top;
			width = parser.pub.width;
			
			$("pubMain").innerHTML = parser.pub.pubForm[formId];
			$('loadBox').style.display = "none";
			parser.show.showDiv($('pubBox'), left, top, width, null, "show");
			
			var oHead = document.getElementsByTagName('HEAD').item(0);    
			var oScript = document.createElement("script");
			oScript.language = "javascript"; 
			oScript.type = "text/javascript";    
			oScript.defer = true;
			oScript.text = $$("pubScript");
			oHead.appendChild(oScript);
	
			initPubForm();
			
			parser.pub.state = 0;
			break;
		}
	}

};

parser.view = {};
parser.view.state = 0;
parser.view.url = null;
parser.view.left = null;
parser.view.top = null;
parser.view.width = null;
parser.view.initView = function( url, left, top, width) {
	
	parser.show.showDiv($('loadBox'), left, top, width, null, "show");
	
	parser.view.url = url;
	parser.view.left = left;
	parser.view.top = top;
	parser.view.width = width;
	
	parser.view.state = 0;
	parser.view.doView();
};
parser.view.doView = function() {
	var left, top, width;

	switch( parser.view.state ) {
		case 0:{
			parser.view.state = 3;					
			parser.load.getHtml(parser.view.url, parser.view.doView);
			break;

		}
		case 3: {
			left = parser.view.left;
			top = parser.view.top;
			width = parser.view.width;
			
			$("viewMain").innerHTML = arguments[0];
			$('loadBox').style.display = "none";
			parser.show.showDiv($('viewBox'), left, top, width, null, "show");
	
			parser.view.state = 0;
			break;
		}
	}

};
parser.view.closeView = function() {
	$('viewBox').style.display = 'none';
};
parser.view.openPop = function( left, top, width, height )
{
	parser.show.showDiv($('popBox'), left, top, width, height, "show");
}
parser.view.closePop = function()
{
	$('popBox').style.display = 'none';
}

