
function mapLoader(){
	if(!mapConfig)return;
	var omapApi=new omap.Api('map',mapConfig);			//以外部js的方式传递参数
	//popomap.config.setEvent('onmousedown',mymousedown);
	//popomap.setEvent('onmousemove',mymousemove);
	popomap.config.setEvent('onmouseup',mymouseup);
	//popomap.config.setEvent('onAreaClick',myAreaClick);
	//popomap.config.setEvent('onUnitClick',myUnitClick);
	//popomap.config.setEvent('customFun',myCustomFun);
	//popomap.config.setScreenOption({page:'member/note.shtml?_flowId=mine-search',params:[map]});
	popomap.config.addStyle('css1','css/skin/map.css');
	omapApi.onMapStatus('ready',onMapReady);	//当地图准备好以后可以进行一些设置
	omapApi.createMap('mapDiv');					//创建地图
}

//在地图状态为"ready"时
function onMapReady(){
	//omapUtils.setVirtuals();
	idexMenu.regSigns();
	omapUtils.setVirtuals();
	setTimeout(doMap,1);
	//popomap.setMapTip('<img src="images/map/rightTip.gif">');
	//crossApi.init();
	//crossApi.setListener(doAction);
}

//地图加载完成后的一些操作，如显示某个单位
function doMap(){
	switch(mapAction.action){
		case 'showResult':
			showResult(mapAction.argu[0],mapAction.argu[1]);
			break;
		case 'showNote':
			showNote(mapAction.argu[0]);
			break;
		case 'action':
			doMapAction(mapAction.argu);
			break;
		default:
			loadXY();
			break;
	}
	//if(loginStatus){
		//navUtils.loadNote(true);
	//}
}
function doMapAction(argu){
	var action=argu[0];
	var param1=argu[1];
	var param2=argu[2];
	var param3=argu[3];
	switch(action){
		case 'game':
			popomap.init(0,0,true);
			navUtils.openGame();
			break;
		case 'showPop':
			var x=parseInt(param1);
			var y=parseInt(param2);
			var content=param3;
			showPop(x,y,content);
			popomap.init(x,y,true);
			break;
		default:
			popomap.init(0,0,true);
			break;
	}
}
function doChannel(){//切换频道首页
	switch(mapAction.action){
		case 'doRight':
			popomap.init(0,0,true);
			doRight(mapAction.argu);
			break;
		case 'action':
			doChannelAction(mapAction.argu);
			break;
		default:
			break;
	}
}
function doChannelAction(argu){
	var action=argu[0];
	var param1=argu[1];
	var param2=argu[2];
	var param3=argu[3];
	switch(action){
		case 'traffic':
			searchTraffic(param1,param2,param3);
			break;
		case 'yp':
			searchYp(param1);
			break;
		case 'ep':
			searchEp(param1);
			break;
		case 'channel':
			ui.openTarget(param1);
			break;
		case 'userpanel':
			ui.changePanel(7);
			break;
		default:
			break;
	}
}
function doRight(argu){
	var right=argu[0];
	var unit=argu[1];
	var param1=argu[2];
	var params='city='+city+'&province='+province+'&map='+map+'&host='+host;
	switch(right){
		case 'tour':
			var url='gztour.htm?pos='+param1;
			ui.openTarget(url,3,6);
			break;
		default:
			//rightOpen(ui.getUrl('index'));
			break;
	}
}
function searchTraffic(param1,param2,param3){
	var url='';
	switch(param1){
		case 'twoAddress':
			var start=encodeURIComponent(param2);
			var end=encodeURIComponent(param3);
			url='traffic/search.shtml?map='+map+'&startName='+start+'&endName='+end;
			break;
		case 'line':
			var type='b';
			if(param2!='bus') type='s';
			url='traffic/line.shtml?_flowId=viewByName&map='+map+'&type='+type+'&name='+param3;
			break;
		case 'station':
			var station=encodeURIComponent(param2);
			url='traffic/station.shtml?_flowId=listByName&map='+map+'&name='+station;
			break;
		case 'howArrive':
			var entName=encodeURIComponent(param2);
			url='traffic/search.shtml?_flowId=howArrive&map='+map+'&endName='+entName;
			break;	
			}
	ui.openTarget(url);
}
function searchYp(keyword){
	keyword=encodeURIComponent(keyword);
	var url='newmap/map.shtml?_flowId=map&map='+map+'&keyword='+keyword;
	ui.openTarget(url);
}

function searchEp(keyword){
	keyword=encodeURIComponent(keyword);
	var url='yp/yp_search.shtml?_flowId=map&map='+map+'&keyword='+keyword;
	ui.openTarget(url);
}

function loadXY(){
	var str=(document.location.href).split('?');
	var xy=str[1],x=0,y=0;
	if(xy){
		xy=xy.split(',');
		if(xy[0]&&xy[1]){
			x=parseInt(xy[0]);
			y=parseInt(xy[1]);
			//switchNavView(0);
		}
	}
	popomap.init(x,y,true);
	popomap.createPop('popAnchor','<img src="/images/flag.gif">',x,y,0,17,5);
}

//
function mymousedown(evt){
}
function mymousemove(evt){
	window.status=popomap.getCurX(evt)+':'+popomap.getCurY(evt);
}
function mymouseup(evt){
	var actionSet=getActionSet();
	if(actionSet=='') return;
	//var s=60*popomap.getZoom();
	popSet['X']=Math.round(popomap.getCurX(evt));
	popSet['Y']=Math.round(popomap.getCurY(evt));
	if(popSet[actionSet]){
		htmlStr=popSet[actionSet];
		htmlStr=htmlStr.replace('{$X}',popSet['X']);
		htmlStr=htmlStr.replace('{$Y}',popSet['Y']);
	}

	if(evt.button==2){
		switch(actionSet){
			case 'addNote':
				addNote(popSet['X'],popSet['Y']);
				break;
			case 'addErr':
				addErr(popSet['X'],popSet['Y']);
				break;
			case 'addPost':
				addPost();
				break;
			case 'getPosXY':
				getPosXY();
				break;
			case 'setSmart':
				setSmart();
				break;
			case 'getPtInfo':
				getPtInfo();
				break;
			case 'getPointInfo':
				getPointInfo();
				break;
			default:
				break;
		}
	}
	isEntity=false;
}
function myAreaClick(evt){
	isEntity=true;
	return;
	//alert(popomap.getAreaUnitInfo().AreaName+'/'+popomap.getAreaUnitInfo().AreaID+':'+popomap.getAreaUnitInfo().UnitName+'/'+popomap.getAreaUnitInfo().UnitID);
	posx=popomap.getAreaUnitInfo().x;
	posy=popomap.getAreaUnitInfo().y;
	createHistory(popomap.getAreaUnitInfo().AreaID,0,posx,posy,popomap.getAreaUnitInfo().AreaName);
}
function myUnitClick(evt){return;
	//alert(popomap.getAreaUnitInfo().AreaName+'/'+popomap.getAreaUnitInfo().AreaID+':'+popomap.getAreaUnitInfo().UnitName+'/'+popomap.getAreaUnitInfo().UnitID);
	posx=popomap.getAreaUnitInfo().x;
	posy=popomap.getAreaUnitInfo().y;
	createHistory(popomap.getAreaUnitInfo().AreaID,popomap.getAreaUnitInfo().UnitID,posx,posy,popomap.getAreaUnitInfo().UnitName);
}

function around(type){
	var x=popomap.getAreaUnitInfo().x;
	var y=popomap.getAreaUnitInfo().y;
	var name=popomap.getAreaUnitInfo().UnitName||popomap.getAreaUnitInfo().AreaName||'';
	var posid=popomap.getAreaUnitInfo().UnitID||popomap.getAreaUnitInfo().AreaID||0;
	var postype=popomap.getAreaUnitInfo().UnitID?2:1;
	rememberPos={id:posid,type:postype};
	//var params={range:range,x:x,y:y,type:type};
	//var url=urlManager.getUrl('around',params);
	//if(flag=='2') url=urlManager.getUrl('infoaround',params);
	var url='';
	if(type=='yp')url='http://'+citymapDomain+'/yp/yp_search.shtml?nopos=1&around=1000&centerX='+x+'&centerY='+y+'&labelName='+encodeURIComponent(name);
	else if(type=='info') url='http://'+infoDomain+'/facade/leftinfo.shtml?act=searchentity&nopos=1&around='+x+','+y+',1000&name='+encodeURIComponent(name);
	else if(type=='product') url='http://'+infoDomain+'/facade/leftpro.shtml?act=searchByEntity&nopos=1&around='+x+','+y+',1000&name='+encodeURIComponent(name);
	ui.openTarget(url);
}

function howArrive(){
	var x=popomap.getAreaUnitInfo().x;
	var y=popomap.getAreaUnitInfo().y;
	var name=popomap.getAreaUnitInfo().AreaName||popomap.getAreaUnitInfo().UnitName||'';
	var url='http://'+citymapDomain+'/traffic/search.shtml?_flowId=howArrive&endName='+encodeURIComponent(name);
	ui.openTarget(url);
}
function addError(){
	var x=popomap.getAreaUnitInfo().x;
	var y=popomap.getAreaUnitInfo().y;
	addErr(x,y);
}

function map_searchTraffic(from,to){
	alert(from+','+to);
}
function setTrafficStart(x,y){
	var htmlStr='<div style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/map/start.png);width:63px;height:41px"></div>';
	if(!document.all) htmlStr='<img src="images/map/start.png" width=63 height=41 border=0>';
	omapApi.removePop('setTrafficStart');
	omapApi.createPop('setTrafficStart',htmlStr,x,y,20,41,5);
}
function setTrafficEnd(x,y){
	var htmlStr='<div style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/map/end.png);width:63px;height:41px"></div>';
	if(!document.all) htmlStr='<img src="images/map/end.png" width=63 height=41 border=0>';
	omapApi.removePop('setTrafficEnd');
	omapApi.createPop('setTrafficEnd',htmlStr,x,y,20,41,5);
}
function clearPosIco(){
	omapApi.removePop('setTrafficStart');
	omapApi.removePop('setTrafficEnd');
	//omapApi.removePop('posFlag');
}
function showStation(id,x,y,name,signType){
	if(!x||!y) return;
	if(getNavStatus()) {switchNavView(0);}
	popomap.removePop('lineSt2');
	popomap.go2xy(x,y);
	var station={id:id,x:x,y:y,name:name};
	if(signType=='busStation')station.ico='bus2.png';
	else station.ico='sw2.png';
	popomap.createSignExt(signType,station,{global:true,display:true,idStr:'lineSt2'});
}
function showStationById(id){
	var url='json/traffic.shtml?_flowId=viewStation&id='+id;
	postData(url,null,fun);

	function fun(value){
		if(!value) return;
		var o_jsData={};
		var o=eval('('+value+')');
		var signType='busStation';
		if(o.stationType=='SUBWAY') signType='subwayStation';
		showStation(o.id,o.x,o.y,o.name,signType);
	}
}
function showVr(id,title,url,w,h){
	$g('vr').style.display='';
	var l=(omapApi.getMapWidth()-700-150)/2;
	var t=(omapApi.getMapHeight()-392-50)/2;
	var left=ui.leftW+l,top=ui.topH+t;
	$g('vr').style.left=left+'px';
	$g('vr').style.top=top+'px';
	$g('vrtitle').innerHTML=title;
	$g('vrIfr').src=url;
	//$g('vrmain').style.width='500px';
	//$g('vrmain').style.height='200px';
}
function closeVr(){
	$g('vr').style.display='none';
}

function drawRoadLine(id){
	var mapData={simpleLabel:{}};
	switchNavView(0);
	cleanLine();
	$g('divMapClear').style.display='';
	var url='/resource/js/simplelabel/'+map+'/'+Math.floor(id/1000)+'/'+id+'.js';
	var line=eval('('+postData(url)+')');
	var xs=line.xs;
	var ys=line.ys;
	var x=xs.split(',')[0];
	var y=ys.split(',')[0];
	var o={id:id,x:x,y:y,xs:xs,ys:ys,strokeweight:5,autoZoom:true};
	popomap.go2xyS(x,y);
	popomap.drawLine(o);
}

function cleanLine(){
	popomap.destroyAllG();
	$g('divMapClear').style.display='none';
}

var omapUtils={
	isEnableGame:function(){
		if(gameMap[domain]) return true;
		else return false;
	},
	go2Building:function(id,content,times){//for game
		if(!times) times=0;
		times++;
		if(times>100) return;

		var url='/resource/js/entity/'+map+'/'+Math.floor(id/1000)+'/'+id+'.js';
		if(popomap.getMapStatus()){
			postData(url,null,fun);
		}
		else{
			utils.common.setTimeout(this.go2Build.bind(this),100,id,content,times);
		}

		function fun(value){
			var x=0,y=0;
			try{
				if(value){
					var o=eval('('+value+')');
					x=o.x;
					y=o.y;
				}
				else{
					return;
				}
			}
			catch(e){
				return;
			}
			if(getNavStatus()) {switchNavView(0);}
			showPop(x,y,content);
		}
	},
	setVirtuals:function(){
		if(typeof(virtuals)=='object'){
			var gameEntityIds={};
			for(var i=0;i<virtuals.length;i++){
				gameEntityIds[virtuals[i]]=1;
			}
			popomap.setValue('gameEntityIds',gameEntityIds);
		}
	},
	showGameRoom:function(id){
		if(!isBodyLoadedWithMessage()) return;
		if(getNavStatus()) {switchNavView(0);}
		return popomap.showMapInfo(id,1,{panel:2});
	},
	goHouse:function(houseId){
		if(!isBodyLoadedWithMessage()) return;
		//if(!ui.isFullScren()) ui.fullScreen();
		popomap.hiddenMapInfo();
		gameLib.goHouse(houseId);
	},
	buyHouse:function(houseId){
		if(!isBodyLoadedWithMessage()) return;
		//if(!ui.isFullScren()) ui.fullScreen();
		popomap.hiddenMapInfo();
		gameLib.buyHouse(houseId);
	}
};