var isComplete=false;
var mapAction={action:'',argu:[]};
var map=o_mapid;
var loginStatus='';

/*
ui
*/
var Elm=function(obj,defStyle){
	this.init(obj,defStyle);
};
Elm.prototype={
	init:function(obj,defStyle){
		this.obj=obj;
		this.childElms={};
		this.defStyle={};
		if(defStyle){
			this.setDefStyle(defStyle);
		}
	},
	setStyle:function(name,value){
		if(!this.obj) return;
		var style=this.obj.style;
		if(style[name]!=value) style[name]=value;
	},
	getStyle:function(name){
		if(!this.obj) return;
		return this.obj.style[name];
	},
	setDefStyle:function(defStyle){
		if(typeof defStyle=='object'){
			for(var name in defStyle){
				this.defStyle[name]=defStyle[name];
			}
		}
	},
	getDefStyle:function(name){
		return this.defStyle[name];
	},
	reSetStyle:function(names){
		var defStyle=this.defStyle;
		var style=this.obj.style;
		if(!names){
			for(var name in defStyle){
				style[name]=defStyle[name];
			}
		}
		else{
			for(var i=0;i<names.length;i++){
				var name=names[i];
				style[name]=defStyle[name];
			}
		}
	},
	setAttribute:function(name,value){
		if(!this.obj) return;
		this.obj[name]=value;
	},
	getAttribute:function(name){
		if(!this.obj) return;
		return this.obj[name];
	},
	setWidth:function(w){
		this.obj.style.width=w;
	},
	getWidth:function(){
		if(this.obj) return this.obj.offsetWidth;
		return 0;
	},
	setHeight:function(h){
		this.obj.style.height=h;
	},
	getHeight:function(){
		if(this.obj)return this.obj.offsetHeight;
		else return 0;
	},
	hidden:function(){
		if(!this.obj) return;
		if(this.obj.style.display!='none') this.obj.style.display='none';
	},
	show:function(){
		if(!this.obj) return;
		if(this.obj.style.display!='') this.obj.style.display='';
	},
	isHidden:function(){
		var display=this.obj.style.display;
		return display=='none'?true:false;
	},
	addChild:function(name,obj){
		this.childElms[name]=obj;
	},
	getChild:function(name){
		return this.childElms[name];
	},
	hiddenChild:function(names){
		this.hidden();
		var childElms=this.childElms;
		if(!names){
			for(var name in childElms){
				childElms[name].hidden();
			}
		}
		else{
			for(var i=0;i<names.length;i++){
				var name=names[i];
				childElms[name].hidden();
			}
		}
	},
	showChild:function(names){
		this.show();
		var childElms=this.childElms;
		if(!names){
			for(var name in childElms){
				childElms[name].show();
			}
		}
		else{
			for(var i=0;i<names.length;i++){
				var name=names[i];
				childElms[name].show();
			}
		}
	}
};

var ui={
	init:function(){
		this.rightShow=true;
		this.allShow=true;
		this.top=null;
		this.left=null;
		this.right=[];
		this.rightArgs=[];
		this.rightCurrent=0;
		this.args={};
		this.initElms();
		this.initArgs();
		this.isInit=true;
	},
	initElms:function(){
		var rightPanelBtn=new Elm($('rightPanelBtnDiv'));

		var rightPanel0=new Elm($('rightPanelDiv'));
		var rightPanel0Btn=new Elm($('rightPanel0Btn'));
		var rightPanel0Main=new Elm($('rightPanel0MainDiv'));
		var rightPanel0Tool=new Elm(null);
		var rightPanel0TargetCon=new Elm($('rightPanel0TargetConDiv'));
		var rightPanel0Target=new Elm($('rightPanel0TargetIfr'));
		rightPanel0.addChild('viewBtn',rightPanelBtn);
		rightPanel0.addChild('btn',rightPanel0Btn);
		rightPanel0.addChild('main',rightPanel0Main);
		rightPanel0.addChild('tool',rightPanel0Tool);
		rightPanel0.addChild('targetCon',rightPanel0TargetCon);
		rightPanel0.addChild('target',rightPanel0Target);
		this.right[0]=rightPanel0;

		var rightPanel1=new Elm($('rightPanelDiv'));
		var rightPanel1Btn=new Elm($('rightPanel1Btn'));
		var rightPanel1Main=new Elm($('rightPanel0MainDiv'));
		var rightPanel1Tool=new Elm(null);
		var rightPanel1TargetCon=new Elm($('rightPanel0TargetConDiv'));
		var rightPanel1Target=new Elm($('rightPanel0TargetIfr'));
		rightPanel1.addChild('viewBtn',rightPanelBtn);
		rightPanel1.addChild('btn',rightPanel1Btn);
		rightPanel1.addChild('main',rightPanel1Main);
		rightPanel1.addChild('tool',rightPanel1Tool);
		rightPanel1.addChild('targetCon',rightPanel1TargetCon);
		rightPanel1.addChild('target',rightPanel1Target);
		this.right[1]=rightPanel1;

		var rightPanel2=new Elm($('rightPanelDiv'));
		var rightPanel2Btn=new Elm($('rightPanel2Btn'));
		var rightPanel2Main=new Elm($('rightPanel1MainDiv'));
		var rightPanel2Tool=new Elm($('rightPanel2ToolDiv'));
		var rightPanel2TargetCon=new Elm($('rightPanel1TargetConDiv'));
		var rightPanel2Target=new Elm($('rightPanel1TargetIfr'));
		rightPanel2.addChild('viewBtn',rightPanelBtn);
		rightPanel2.addChild('btn',rightPanel2Btn);
		rightPanel2.addChild('main',rightPanel2Main);
		rightPanel2.addChild('tool',rightPanel2Tool);
		rightPanel2.addChild('targetCon',rightPanel2TargetCon);
		rightPanel2.addChild('target',rightPanel2Target);
		this.right[2]=rightPanel2;

		var rightPanel3=new Elm($('rightPanelDiv'));
		var rightPanel3Btn=new Elm($('rightPanel3Btn'));
		var rightPanel3Main=new Elm($('rightPanel1MainDiv'));
		var rightPanel3Tool=new Elm($('rightPanel3ToolDiv'));
		var rightPanel3TargetCon=new Elm($('rightPanel1TargetConDiv'));
		var rightPanel3Target=new Elm($('rightPanel1TargetIfr'));
		rightPanel3.addChild('viewBtn',rightPanelBtn);
		rightPanel3.addChild('btn',rightPanel3Btn);
		rightPanel3.addChild('main',rightPanel3Main);
		rightPanel3.addChild('tool',rightPanel3Tool);
		rightPanel3.addChild('targetCon',rightPanel3TargetCon);
		rightPanel3.addChild('target',rightPanel3Target);
		this.right[3]=rightPanel3;

		var rightPanel4=new Elm($('rightPanelDiv'));
		//var rightPanel4Tool=new Elm($('rightPanel4ToolDiv'));
		rightPanel4.addChild('viewBtn',rightPanelBtn);
		rightPanel4.addChild('btn',new Elm());
		rightPanel4.addChild('main',rightPanel0Main);
		rightPanel4.addChild('tool',new Elm());
		rightPanel4.addChild('targetCon',rightPanel0TargetCon);
		rightPanel4.addChild('target',rightPanel0Target);
		this.right[4]=rightPanel4;

		var rightPanel5=new Elm($('rightPanelDiv'));
		var rightPanel5Tool=new Elm($('rightPanel5ToolDiv'));
		rightPanel5.addChild('viewBtn',rightPanelBtn);
		rightPanel5.addChild('btn',new Elm());
		rightPanel5.addChild('main',rightPanel3Main);
		rightPanel5.addChild('tool',rightPanel5Tool);
		rightPanel5.addChild('targetCon',rightPanel3TargetCon);
		rightPanel5.addChild('target',rightPanel3Target);
		this.right[5]=rightPanel5;

		var rightPanel6=new Elm($('rightPanelDiv'));
		rightPanel6.addChild('viewBtn',rightPanelBtn);
		rightPanel6.addChild('btn',new Elm(null));
		rightPanel6.addChild('main',rightPanel0Main);
		rightPanel6.addChild('tool',new Elm(null));
		rightPanel6.addChild('targetCon',rightPanel0TargetCon);
		rightPanel6.addChild('target',rightPanel0Target);
		this.right[6]=rightPanel6;

		var rightPanel7=new Elm($('rightPanelDiv'));
		rightPanel7.addChild('viewBtn',rightPanelBtn);
		rightPanel7.addChild('btn',new Elm(null));
		rightPanel7.addChild('main',rightPanel0Main);
		rightPanel7.addChild('tool',new Elm(null));
		rightPanel7.addChild('targetCon',rightPanel0TargetCon);
		rightPanel7.addChild('target',rightPanel0Target);
		this.right[7]=rightPanel7;

		this.top=new Elm($('topDiv'));
		this.left=new Elm($('leftDiv'));
		this.main=new Elm($('mainDiv'));
		this.map=new Elm($('mapDiv'));
		this.nav=new Elm($('divMapNav'));
	},
	initArgs:function(){
		var domain=city_domain;
		this.infoDomain='info'+city_domain+'.'+domain_config.main;
		this.newsDomain='news'+city_domain+'.'+domain_config.main;
		this.gameDomain='game.'+domain+'.'+domain_config.main;
		this.specialDomain='special.'+domain+'.'+domain_config.main;


		this.rightArgs[0]={url:''};
		this.rightArgs[0].urls={'default':'channel.jspa?locale=!{locale}&city=!{city}&map=!{map}'};
		this.rightArgs[0].menuId='default';

		this.rightArgs[1]={url:''};
		this.rightArgs[1].urls={'default':'http://!{newsDomain}/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}'};
		this.rightArgs[1].menuId='default';

		this.rightArgs[2]={url:''};
		this.rightArgs[2].urls={'default':'newmap/yp.jspa?_flowId=indexType&subType=!{id}&yx=0&expand=1&map=!{map}&city=!{city}'};
		this.rightArgs[2].urls[10000]='newmap/yp.jspa?_flowId=index&yx=0&expand=1&map=!{map}&city=!{city}';
		this.rightArgs[2].menuId=10000;

		this.rightArgs[3]={url:'',urls:{}};
		this.rightArgs[3].urls['default']='';
		this.rightArgs[3].urls[0]='http://!{infoDomain}/mapIndex.jspa?locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[1]='http://!{infoDomain}/house/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[2]='http://!{infoDomain}/job/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[3]='http://!{infoDomain}/food/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[4]='http://!{infoDomain}/love/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[5]='http://!{infoDomain}/life/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].urls[6]='http://!{infoDomain}/tour/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.rightArgs[3].menuId=0;

		this.rightArgs[4]={url:'',urls:{}};
		this.rightArgs[4].urls['default']='/member/enterprise.jspa?_flowId=list';
		this.rightArgs[4].urls[1]='';
		this.rightArgs[4].menuId='default';

		this.rightArgs[5]={url:'',urls:{}};
		this.rightArgs[5].urls['default']='';
		this.rightArgs[5].urls[1]='member/note.jspa?_flowId=mine-list&map=!{map}';
		this.rightArgs[5].urls[2]='member/friend.jspa?_flowId=friend-list';
		this.rightArgs[5].urls[3]='member/info.jspa?map=!{map}&domain='+domain;
		this.rightArgs[5].urls[4]='member/message.jspa?_flowId=list';
		this.rightArgs[5].urls[5]='member/favorite.jspa?_flowId=list&map=!{map}';
		this.rightArgs[5].urls[6]='member/datum.jspa';
		this.rightArgs[5].menuId=1;

		this.rightArgs[6]={url:''};
		this.rightArgs[6].urls={'default':'login.jsp?map=!{map}'};
		this.rightArgs[6].menuId='default';

		this.rightArgs[7]={url:''};
		this.rightArgs[7].urls={'default':'/newmap/yp.jspa?_flowId=indexType&map=!{map}&city=!{city}&subType=343&yx=0&expand=0&parentID=10'};
		this.rightArgs[7].menuId='default';

		this.args.urls={};
		this.args.urls['index']='channel.jspa?locale=!{locale}&city=!{city}&map=!{map}';
		this.args.urls['mapSearch']='newmap/map.jspa';
		this.args.urls['infoSearch']='http://!{infoDomain}/index.jspa';
		this.args.urls['busline']='newmap/busline.jspa';
		this.args.urls['smart']='traffic/search.jspa?_flowId=smartSearch&map=!{map}&locale=!{locale}';
		this.args.urls['addNote']='member/note.jspa?_flowId=mine-edit&map=!{map}&x=!{x}&y=!{y}&locale=!{locale}';
		this.args.urls['showNote']='note.jspa?_flowId=view-ui&noteid=!{id}&type=!{type}';
		this.args.urls['addError']='newmap/mistake.jspa?_flowId=edit&map=!{map}&x=!{x}&y=!{y}&locale=!{locale}';
		this.args.urls['around']='newmap/yp.jspa?_flowId=around&map=!{map}&range=!{range}&x=!{x}&y=!{y}&type=!{type}&locale=!{locale}';
		this.args.urls['infoaround']='newmap/info.jspa?_flowId=around&map=!{map}&range=!{range}&x=!{x}&y=!{y}&type=!{type}&locale=!{locale}';
		this.args.urls['showInfo']='http://!{infoDomain}/!{type}/index.jspa?_flowId=view&type=!{type}&subtype=!{subtype}&id=!{id}&locale=!{locale}';
		this.args.urls['showNews']='http://!{newsDomain}/index.jspa?_flowId=view&uuid=!{id}&locale=!{locale}';
		this.args.urls['unitjoin']='member/enterprise/join.jspa?_flowId=edit&entity=!{entity}&entityName=!{entityName}&centerX=!{centerX}&centerY=!{centerY}&map=!{map}&city=!{city}&locale=!{locale}';
		this.args.urls['unitjoin2']='newmap/unitjoin.jspa?map=!{map}&city=!{city}&locale=!{locale}';
		this.args.urls['unitjoin3']='member/enterprise/join.jspa?_flowId=edit&unitId=!{unit}';
		this.args.urls['arrive']='traffic/search.jspa';
		this.args.urls['typelist']='http://!{infoDomain}/typelist.jspa?locale=!{locale}&host=!{host}&curtype=!{curtype}&province=!{province}&city=!{city}&map=!{map}';
		this.args.urls['houseList']='http://!{infoDomain}/house/index.jspa?_flowId=search&locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
		this.args.urls['infoIndex']='http://!{infoDomain}/mapIndex.jspa?locale=!{locale}&host=!{host}&province=!{province}&city=!{city}&map=!{map}';
	},
	getInfoDomain:function(){
		return this.infoDomain;
	},
	getNewsDomain:function(){
		return this.newsDomain
	},
	showRight:function(view){
		if(!this.isInit) return;
		var right=this.right[this.rightCurrent];

		if(right.isHidden()){
			right.show();
			if(this.rightShow) this.left.setStyle('marginRight','373px');
			else{
				var w1=right.getChild('viewBtn').getWidth();
				var w2=right.getChild('tool').getWidth();
				var w=w1+w2+'px';
				this.left.setStyle('marginRight',w);
			}
		}
		var flag=0;
		if(typeof(view)!='undefined') {
			if(this.rightShow==view) return;
			else if(view) flag=1;
			else flag=2;
		}

		if(this.rightShow||flag==2){
			var w1=right.getChild('viewBtn').getWidth();
			var w2=right.getChild('tool').getWidth();
			var w=w1+w2+'px';
			right.setWidth(w);
			this.left.setStyle('marginRight',w);
			this.rightShow=false;
		}
		else{
			right.setWidth('373px');
			this.left.setStyle('marginRight','373px');
			this.rightShow=true;
		}
	},
	fullScreen:function(o){
		if(!this.isInit) return;
		if(!o) o=MainMenu.getMenuItemById('fullScreen');
		var right=this.right[this.rightCurrent];
		if(this.allShow){
			this.top.hidden();
			right.hidden();			
			this.main.setStyle('top','0px');			
			this.left.setStyle('marginRight','0px');
			h=this.bodyHeight;
			o.setState(true);
			o.setName('返回');
			this.allShow=false;
		}
		else{
			this.top.show();
			right.show();
			this.main.setStyle('top','88px');
			if(this.rightShow)this.left.setStyle('marginRight','373px');
			else{
				var right=this.right[this.rightCurrent];
				var w1=right.getChild('viewBtn').getWidth();
				var w2=right.getChild('tool').getWidth();
				var w=w1+w2+'px';
				this.left.setStyle('marginRight',w);
			}
			h=this.bodyHeight-90;
			o.setState(false);
			o.setName('全屏');
			this.allShow=true;
		}
		this.adjustHeight(h);
	},
	setEvent:function(event,fun){
		switch(event){
			case 'onChange':
				this.myChange=function(oldPanelId,newPanelId){
					fun(oldPanelId,newPanelId);
				};
				break;
			default:
				break;
		}
	},
	isFullScren:function(){
		return !this.allShow;
	},
	getCurrentPanelId:function(){
		return this.rightCurrent;
	},
	changePanel:function(i){
		if(!this.isInit) return;
		if(!this.rightShow||!this.allShow) this.showRight(true);
		if(this.rightCurrent==i) return;

		var right=this.right[this.rightCurrent];
		right.getChild('tool').hidden();
		right.getChild('btn').setAttribute('className','');
		right.getChild('target').setAttribute('src','');
		right.getChild('main').hidden();
		var oldPanelId=this.rightCurrent;

		var right2=this.right[i];
		right2.getChild('main').show();
		right2.getChild('tool').show();
		right2.getChild('btn').setAttribute('className','menu_bg_hit');
		right2.getChild('target').setAttribute('src',this.getPanelUrl(i));
		this.rightCurrent=i;

		if(this.myChange) this.myChange(oldPanelId,i);
	},
	changeTarget:function(panel,id,url){
		if(!this.isInit) return;
		if(!this.rightShow||!this.allShow) this.showRight(true);
		var right=this.right[panel];
		
		if(this.rightCurrent!=panel) this.changePanel(panel);
		right.getChild('target').setAttribute('src',this.getPanelUrl(panel,id,url));

		if(typeof(id)!='undefined'&&id!=null&(id+'x')!='x') this.changeIco(panel,id);
		if(this.myChange) this.myChange();
	},
	changeIco:function(panel,id){
		var menuId=this.rightArgs[panel].menuId;
		var oldIco=$('ico_'+panel+'_'+menuId);
		var newIco=$('ico_'+panel+'_'+id);
		this.rightArgs[panel].menuId=id;
		oldIco.className='';
		newIco.className='hit';
	},
	reloadPanel:function(panel){
		if(!panel) panel=this.rightCurrent;
		var url=this.rightArgs[panel].url
		var right=this.right[panel];
		this.changeTarget(panel,null,url);
	},
	getPanelUrl:function(panel,id,url){
		var urls=this.rightArgs[panel].urls;
		var url2='';
		if(typeof(id)=='undefined') id=this.rightArgs[panel].menuId;
		if(url){
			url2=url;
		}
		else if(urls[id]){
			url2=urls[id];
		}
		else{
			url2=urls['default'];
		}
		url2=this.processUrl(url2,{id:id});
		this.rightArgs[panel].url=url2;
		return url2;
	},
	getUrl:function(type,params){
		var url=this.args.urls[type];
		if(!url){
			alert('url error');
			return;
		}
		return this.processUrl(url,params);
	},
	processUrl:function(url,params){
		var re=/!{(\w+)}/g;
		params=params||{};
		params['map']=map;
		params['province']=province;
		params['city']=city;
		params['host']=host;
		params['locale']=locale;
		params['infoDomain']=this.infoDomain;
		params['newsDomain']=this.newsDomain;
		params['gameDomain']=this.gameDomain;
		params['specialDomain']=this.specialDomain;
		return url.replace(re,function(mstr,m1){return params[m1]});
	},
	adjustHeight:function(h){
		var right=this.right[this.rightCurrent];
		this.setMapHeight(h+'px');
		this.main.setHeight(h+'px');
		this.map.setHeight(h+'px');
		this.left.setHeight(h+'px');
		right.setHeight(h+'px');
		if(!this.nav.isHidden())this.nav.setHeight(h+'px');
		var rights=this.right;
		for(var i=0;i<rights.length;i++){
			rights[i].getChild('targetCon').setHeight(h-20+'px');
			rights[i].getChild('target').setHeight(h-20+'px');
		}
		this.adjustTool(h);
	},
	adjustTool:function(h){
		if(h>520){
			$('rightPanel2ToolMainDiv').style.height=h+'px';
			$('rightPanel2ToolBodyDiv').style.top='0px';
			$('rightPanel2ToolBtnDiv').style.display='none';
		}
		else{
			$('rightPanel2ToolMainDiv').style.height=h-35+'px';
			$('rightPanel2ToolBtnDiv').style.display='';
		}
		if(h>336){
			$('rightPanel3ToolMainDiv').style.height=h+'px';
			$('rightPanel3ToolBodyDiv').style.top='0px';
			$('rightPanel3ToolBtnDiv').style.display='none';
		}
		else{
			$('rightPanel3ToolMainDiv').style.height=h-35+'px';
			$('rightPanel3ToolBtnDiv').style.display='';
		}
	},
	ajustNav:function(){
		var w=navUtils1.getWidth();
		var h=navUtils1.getHeight();
		var mapW=this.map.getWidth();
		var mapH=this.map.getHeight();
		$('divMapNavContent').style.left=Math.floor((mapW-w)/2)+'px';
		$('divMapNavContent').style.top=Math.floor((mapH-h)/2)+'px';
	},
	shiftTool:function(panel,state){
		var objMain=$('rightPanel'+panel+'ToolMainDiv');
		var objBody=$('rightPanel'+panel+'ToolBodyDiv');
		var sh=objBody.offsetHeight-objMain.offsetHeight;
		var top=objBody.offsetTop;
		if(state==0){
			if(top+sh>0){
				objBody.style.top=top-60+'px';
			}
		}
		else{
			if(top<0){
				objBody.style.top=top+60+'px';
			}
		}
	},
	setMapHeight:function(h){
		try{
			popomap.setHeight(h);
		}
		catch(e){}
	},
	resize:function(){
		this.bodyWidth=document.documentElement.clientWidth;
		this.bodyHeight=document.documentElement.clientHeight;
		var right=this.right[this.rightCurrent];
		$('cityDiv').style.display='none';
		if(this.bodyWidth<998){
			this.top.setWidth('998px');
			this.main.setWidth('998px');
		}
		else{
			this.top.setWidth('100%');
			this.main.setWidth('100%');
		}
		var h=this.main.getHeight();
		if(this.allShow){
			h=this.bodyHeight-90;
		}
		else{
			h=this.bodyHeight;
		}
		this.adjustHeight(h);
		this.ajustNav();
	}
};

var navUtils={
	loadNote:function(flag){
		if(typeof(flag)=='undefined') return;
		if(flag){
			if(this.loadNoteFlag) return;
			//popomap.setValue('isLoadScreenInfo',true);
			popomap.loadScreenSign('note');
			this.loadNoteFlag=true;
			//utils.html.swapImages(null,'nav3Img','images/skin3/index/nav/navbg2a_sel.gif');
			//utils.html.swapImages(null,'nav4Img','images/skin3/index/nav/navbg2b_hover.gif');
		}
		else{
			if(!this.loadNoteFlag) return;
			//popomap.setValue('isLoadScreenInfo',false);
			popomap.removeScreenSign('note');
			this.loadNoteFlag=false;
			//utils.html.swapImages(null,'nav3Img','images/skin3/index/nav/navbg2a.gif');
			//utils.html.swapImages(null,'nav4Img','images/skin3/index/nav/navbg2b.gif');
		}
	},
	loadScreenInfo:function(){
		popomap.loadScrenSign('note');
	},
	gameOnMin:function(){
		utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlmm.gif');
		this.gameIsMin=true;
	},
	gameOnMax:function(){
		this.gameIsMin=false;
		utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlbut1.gif');
	},
	gameOnClose:function(){
		this.gameIsOpen=false;
		this.gameIsMin=false;
		utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlbut1.gif');
		if(ui.isFullScren()) ui.fullScreen();
	},
	openGame:function(){
		if(!isBodyLoadedWithMessage()) return;
		if(getNavStatus()) {switchNavView(0);}
		if(!this.gameIsOpen){
			this.gameIsOpen=true;
		}
		if(this.gameIsMin) gameLib.show();
		else{
			if(!Ogame_Contrl) Ogame_Contrl=new Ogame.Contrl();
			Ogame_Contrl.Ogame_show(true);
			utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlbut1.gif');
		}
		if(!ui.isFullScren()) ui.fullScreen();
	},
	closeGame:function(){
		if(!this.gameIsOpen) return;
		gameLib.preClose(true);
	},
	over3:function(){
		if(this.gameIsOpen) return;
		utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlbut2.gif');
	},
	out3:function(){
		if(this.gameIsOpen) return;
		utils.html.swapImages(null,'gameNavBtn','images/skin3/index/nav/mlbut1.gif');
	}
}
var gameObj={
	btnSelect:function(){
		$('gameBtn').className='unity_hit';
	},
	btnUnSelect:function(){
		$('gameBtn').className='unity';
	}
}
function body_onload(){
	ui.init();
	ui.resize();
	ui.setEvent('onChange',myUIChange);
	ui.rightArgs[0].urls={'default':rightUrl};
	//setGame();
	ifrRight=rightPanel0TargetIfr;//for old
	mapSearchTip=new SearchTip(document.forms['mapForm'].keyword,'newmap/map.jspa?_flowId=top&map='+map,10,mapKeywordClick);
	mapSearchTip.setDataHandler(tipDataHandler);
	infoSearchTip=new SearchTip(document.forms['infoForm'].keyword,'newmap/info.jspa?_flowId=top&map='+map,10,infoKeywordClick);
	infoSearchTip.setDataHandler(tipDataHandler);
	//setTimeout('loadend()',2000);
	loadend();
	mapLoader();
	document.body.onmouseup=function(){hiddenCityDiv();mapSearchTip.hidden();infoSearchTip.hidden();};
	//if(loginStatus) $('noteNav').show();
	$('cityDiv').onmouseup=function(evt){evt.cancelBubble=true;return false}.bindAsEventListener(this);
}
function setGame(){
	if(!gameMap[domain]) return;
	try{
		gameLib.addEvent('onMin',navUtils.gameOnMin.bind(navUtils));
		gameLib.addEvent('onClose',navUtils.gameOnClose.bind(navUtils));
		gameLib.addEvent('onMax',navUtils.gameOnMax.bind(navUtils));
	}
	catch(e){
	}
	$('gameNav').show();
}
function doc_resize(){
	ui.resize();
}
function myUIChange(oldPanelId,newPanelId){
	if(oldPanelId==7){
		gameObj.btnUnSelect();
	}
	if(newPanelId==7){
		gameObj.btnSelect();
	}
	cleanActionSet();
}
function hiddenCityDiv(){
	var obj=$('cityDiv');
	if(obj.style.display=='none') return;
	obj.style.display='none';
}
window.onresize=doc_resize;

function textEvent(obj,type){
	switch(type){
		case 'focus':
			obj.isfocus=true;
			utils.html.cleanText(obj,1);
		case 'mouseover':
			utils.html.changeStyle(obj,'borderColor','#91cf0f');
			break;
		case 'blur':
			obj.isfocus=false;
			utils.html.cleanText(obj,0);
		case 'mouseout':
			if(!obj.isfocus) utils.html.changeStyle(obj,'borderColor','#b4b4b4');
			break;
	}
}

/*for old*/
function showRight(flag){
	ui.showRight(flag);
}
function fullScreen(o){
	ui.fullScreen(o);
}
function changePanel(panel){
	ui.changePanel(panel);
}
function changeIfr_info(id,url){
	if(url&&url!='undefined'){
		if(url&&url.indexOf('http')==-1){
			url='http://'+ui.getInfoDomain()+url;
		}
	}
	else{
		url='';
	}
	ui.changeTarget(3,id,url);
}

function rightOpen(url,panel,type){
	if(typeof(panel)!='number') panel=0;
	if(typeof(type)!='number') type=null;
	ui.changePanel(panel);
	ui.changeTarget(panel,type,url);
}
function loadend(){
	isComplete=true;
	switchObjView('loading',false);
}
function isBodyLoaded(){
	return isComplete;
}
function isBodyLoadedWithMessage(action){
	if(!isComplete) {
		alert('请在地图加载完以后再操作!');
		return false;
	}
	return true;
}
function changeMapType(o){
	switch(o.id){
		case 'D1':
			MainMenu.getMenuItemById('D1').setState(true);
			MainMenu.getMenuItemById('D2').setState(false);
			MainMenu.getMenuItemById('D3').setState(false);
			popomap.changeMapType(1);
			break;
		case 'D2':
			MainMenu.getMenuItemById('D1').setState(false);
			MainMenu.getMenuItemById('D2').setState(true);
			MainMenu.getMenuItemById('D3').setState(false);
			popomap.changeMapType(2);
			break;
		case 'D3':
			MainMenu.getMenuItemById('D1').setState(false);
			MainMenu.getMenuItemById('D2').setState(false);
			MainMenu.getMenuItemById('D3').setState(true);
			popomap.changeMapType(3);
			break;
	}
}
var isloadSign={};
isloadSign['BusStation']=false;
isloadSign['SubwayStation']=false;
isloadSign['3']=false;
function loadSign(o){
	var id=o.data.englishName;
	if(isloadSign[id]) isloadSign[id]=false;
	else isloadSign[id]=true;
	var value=isloadSign[id];
	
	if(value) popomap.loadSign(id);
	else popomap.removeSign(id);
	/*for(var item in isloadSign){
		if(isloadSign[item]&&item!=id){
			isloadSign[item]=false;
			popomap.removeSign(item);
		}
	}*/
}
function doScale(o){
	popomap.selectMode(1);
}
function switchObjView(id,flag){
	if(!$(id))return false;
	if(flag=='undefined'){
		with($(id).style){
			display=display==''?'none':'';
		}
	}
	else{
		if(flag){
			$(id).style.display='';
		}
		else{
			$(id).style.display='none';
		}
	}
}
function switchCity(){
	var obj=$('cityDiv');
	if(obj.style.display==''){
		obj.style.display='none';
	}
	else{
		obj.style.display='';
		//obj.style.left=bodyWidth-300;
	}
}
function getNavStatus(){
	if($('divMapNav').style.display=='')
		return true;
	else 
		return false;
}
function switchNavView(flag){
	navUtils1.switchNavViewOut(flag);
}
function switchNavView2(){
	if(!isBodyLoaded()) return false;
	switchNavView();
}
function writeLocaleSwitch(){
	var str1='<a href="http://'+host+'/index.jsp?locale=zh_cn">'+national.getStr('Common','GB','简')+'</a>/<a href="http://'+host+'/index.jsp?locale=zh_tw">'+national.getStr('Common','BIG5','繁')+'</a>';
	var str2='/<a href="http://en.'+domain+domain_config.main+'/index.jspa">English</a>';
	document.write(str1);
	if(domain=='yiwu'){
		document.write(str2);
	}
}
function changeLocale(){
	if(locale=='zh_cn'){
		location.href='index.jsp?locale=zh_tw';
	}
	else{
		location.href='index.jsp?locale=zh_cn';
	}
}
function wrightGzEnglistSite(){
	if(domain!='gz') return;
	var html='<a href="http://www.gz2010.cn/special/0078002M/emapen.html" target="_blank">Asian Games</a>/';
	document.write(html);
}
function showBBS(){
	switch (domain){
		case 'macau':
	  	window.open('http://bbs.yeahmacau.com');
		break;
	  case 'gy':
	  	window.open('http://www.vcovc.com/bbs');
		break;
	  default:
	  	window.open('http://bbs.o.cn');
		break;
	}
}
function postInfo (curtype) {
    changePanel(6);
    ui.changeTarget(6,null,ui.getUrl('typelist',{curtype:curtype}));
}



function isEmpty(fieldValue)
{
	var regEx = /\S+/i;
	if(regEx.test(fieldValue))
		return false;
	else
		return true;
}
function setMapValue(form){
	var flag=true;
	if(form&&form.locale){
		if(typeof(o_locale)=='string')form.locale.value=o_locale;
	}
	if(form&&form.map){
		if(typeof(map)=='number'){
			form.map.value=map;
		}
		else{
			national.showMsg('%{NoMap:没有找到地图}');
			flag=false;
		}
	}
	if(flag)switchNavView(false);
	return flag;
}
function dosearch(form,keyword,initKey)
{
	if(!keyword&&(isEmpty(form.keyword.value)||form.keyword.value==initKey)){
	  national.showMsg('%{EnterKeyword:请输入关键字}');
	  form.keyword.focus();
	  return false;
	}
	if(!setMapValue(form)) return false;
	ui.changePanel(0);
	//setPanel2Style();
	if(keyword){
		form.keyword.value=keyword;
		form.submit();
	}
	return true;
}
function dosearch1(keyword){
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
	var form=document.mapForm;
	form.action = ui.getUrl('mapSearch');
	form.target = 'rightPanel0TargetIfr';
	if(form.screen){
		var d=getMapRang();
		form.lx.value=Math.floor(d.startX/2);
		form.ly.value=Math.floor(d.startY/2);
		form.ux.value=Math.floor(d.endX/2);
		form.uy.value=Math.floor(d.endY/2);
	}
	mapSearchTip.hidden();
	var initKey=national.getStr('Common','MapSearchValue','楼房实体 / 道路 / 河流');
	return dosearch(form,keyword,initKey);
}
function dosearch2(keyword){
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
	var form=document.ypForm;
	form.action = 'newmap/yp.jspa';
	form.target = 'ifrRight';
	var initKey='医疗保健 / 维修中心 / 企业服务 / 美容健身 / 运动休闲...';
	return dosearch(form,keyword,initKey);
}
function dosearch3(keyword){
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
	var form=document.infoForm;
	form.map.value=map;
	form.host.value=host;
	form.action = ui.getUrl('infoSearch');
	form.target = 'rightPanel0TargetIfr';
	infoSearchTip.hidden();
	var initKey=national.getStr('Common','InfoSearchValue','房产 / 工作 / 美食 / 购物 / 旅游 / 交友 / 本地新闻...');
	return dosearch(form,keyword,initKey);
}
function doquerySmart(){
	rightOpen(ui.getUrl('smart'));
}
function doquery1(form)
{
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
    if (isEmpty(form.start.value)||form.start.value=='所在地')
	{
   	   national.showMsg('%{EmptyFrom:起始不能为空}');
	   form.start.focus();
      return false;
     }
	 else if (isEmpty(form.end.value )||form.end.value=='目的地')
	 {
   	   national.showMsg('%{EmptyTo:终点不能为空}');
	   form.end.focus();
       return false;
     }else
	 {
	    //form.action = ui.getUrl('busline');
		form.target = 'rightPanel0TargetIfr';
		ui.changePanel(0);
		//setPanel2Style();
		//menuSwitch('search');
	 }
	 return setMapValue(form);
 } 
function doquery2(form)
{  
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
     if (isEmpty(form.name.value )||form.name.value==national.getStr('Common','StationSearchValue','例如:体育中心'))
	{
   	   national.showMsg('%{EmptyStation:站点不能为空}');
	   form.name.focus();
       return false;
     }else
	 {
	    //form.action = ui.getUrl('busline');
		form.target = 'rightPanel0TargetIfr';
		ui.changePanel(0);
		//setPanel2Style();
		//menuSwitch('search');
	 }
	 return setMapValue(form);
 }
function doquery3(form)
{
	if(!isComplete) {
		national.showMsg('%{WaitMap:请在加载完以后再搜索,谢谢}!');
		return false;
	}
     if (isEmpty(form.name.value )||form.name.value==national.getStr('Common','LineSearchValue','例如:178'))
	 {
   	   national.showMsg('%{EmptyLine:路线不能为空}');
	   form.name.focus();
      return false;
     }else
	 {
	    //form.action = ui.getUrl('busline');
		form.target = 'rightPanel0TargetIfr';
		ui.changePanel(0);
		//setPanel2Style();
		//menuSwitch('search');
	 }
	 return setMapValue(form);
 }
function mapKeywordClick(d){
	var re=/(<font.*?>)|(<\/font.*?>)/g;
	var keyword=d.name.replace(re,'');
	dosearch1(keyword);
}
function infoKeywordClick(d){
	var re=/(<font.*?>)|(<\/font.*?>)/g;
	var keyword=d.name.replace(re,'');
	dosearch3(keyword);
}
function tipDataHandler(list){
	if(!list) return;
	for(var i=0;i<list.length;i++){
		//alert(list[i].name+':'+hightlightSustr(list[i].name,20));
		list[i].title=hightlightSustr(list[i].name,20);
	}
}
function hightlightSustr(str,len){
	var re=/<.*?>(.*?)<\/.*?>/g;
	var num=0,keyMap={};
	str=str.replace(re,function(mstr,m1){keyMap[m1]=mstr;return m1;});
	var strlen=str.length;
	str=str.substr(0,len);
	if(strlen>=len) str+='  ...';
	for(var item in keyMap){
		str=str.replace(item,keyMap[item]);
	}
	//alert(str);
	return str;
}
function openLogonWin(){
	//ui.changePanel(6);
	ui.changeTarget(6);
}
function showLoginPanel(returnPanel,returnSubPanel,returnUrl){
	var url='/login.jsp?map='+map;
	if(typeof(returnPanel)!='undefined'){
		url+='&returnUrl='+encodeURIComponent(returnUrl)+'&returnPanel='+returnPanel+'&returnSubPanel='+returnSubPanel;
		ui.changeTarget(6,null,url);
	}
	else{
		ui.changePanel(0);
	}
}
function regUser(){
	var url='/person.jspa?_flowId=reg&map='+map;
	ui.changeTarget(6,null,url);
}



 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);
  }

  return elements;
}
//PngHandler();
LinkHandler();