var popSet=new Array();
var actionCallBack={};
var actionSet='';
var isEntity=false;
var rememberPos=null;

function waitMapReady(obj){
	if(typeof(omapApi)!='undefined'&&omapApi.getMapStatus()=='ready')return true;
	utils.common.delay(500,obj,1);
	return false;
}
function getMapId(){
	return map;
}
function getD(){
	return popomap.getD(1);
}
function go2xy(x,y){
	if(!waitMapReady())return;
	popomap.go2xy(x,y);
}
function go2xyS(x,y){
	if(!waitMapReady())return;
	popomap.go2xyS(x,y);
}
function selectMode(mode){
	if(!waitMapReady())return;
	popomap.selectMode(mode);
}
function showUserPop(arr){
	if(!waitMapReady())return;
	popomap.addUserPop(arr);
}
function cleanUserPop(){
	if(!waitMapReady())return;
	popomap.addUserPop();
}
function addNumberUserPop(arr){
	if(!waitMapReady())return;
	omapApi.addUserPop(arr,'numberSign');
}
function cleanNumberUserPop(){
	if(!waitMapReady())return;
	omapApi.addUserPop(null,'numberSign');
}
function showFlag(x,y,title){
	var id='posFlag';
	title=title||'';
	omapApi.removePop(id);
	omapApi.createPop(id,'<div title="'+title+'" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=/images/map/flag2.png);width:24px;height:33px"></div>',x,y,12,33,5);
}
function showPop(x,y,content){
	if(!waitMapReady())return;
	var sy=35*Math.pow(2,popomap.getZoom()-1);
	var htmlStr='<div style="border: 1px solid #209FE2;background-color:#59D2FF;padding:3px;font-size:12px;" nowrap>'+content+'</div><img src="images/map/point.gif" width="17px" height="17px">';
	popomap.removePop('tempPop');
	popomap.go2xy(x,y);
	popomap.createPopT('tempPop',htmlStr,x,y-sy,0,0,5);
}

function myCustomFun(evt,sign){
	switch(sign){
		case 'removeAll':
			removeAll();
			break;
		case 'removePop_addNote':
			removePop_addNote();
			break;
		case 'removePop_showNote':
			removePop_showNote();
			break;
		case 'removePop_editNote':
			removePop_editNote();
			break;
		case 'removePop_addPost':
			removePop_addPost();
			break;
		case 'removePop_showPost':
			removePop_showPost();
			break;
		case 'removePop_addErr':
			removePop_addErr();
			break;
		case 'removePop_showInfo':
			removePop_showInfo();
			break;
		case 'addErr':
			addErr();
			break;
		case 'howArrive':
			howArrive();
			break;
		default:
			alert('custom');
	}
}
function getMapRange(){
	var centerX=popomap.getCenterX();
	var centerY=popomap.getCenterY();
	var mapWidth=popomap.getMapWidth();
	var mapHeight=popomap.getMapHeight();
	var zz=Math.pow(2,popomap.getZoom()-1);
	var startX=centerX-Math.floor(mapWidth/2)*zz;
	var startY=centerY-Math.floor(mapHeight/2)*zz;
	var endX=startX+mapWidth*zz;
	var endY=startY+mapHeight*zz;
	return {centerX:centerX,centerY:centerY,mapWidth:mapWidth,mapHeight:mapHeight,startX:startX,startY:startY,endX:endX,endY:endY};
}
function getCoor(){
	var x=popomap.getAreaUnitInfo().x;
	var y=popomap.getAreaUnitInfo().y;
	x=Math.floor(x/2);
	y=Math.floor(y/2);
	return {x:x,y:y};
}
function getEUInfo(){
	var x=popomap.getAreaUnitInfo().x;
	var y=popomap.getAreaUnitInfo().y;
	var areaId=popomap.getAreaUnitInfo().AreaID;
	var areaName=popomap.getAreaUnitInfo().AreaName;
	var unitId=popomap.getAreaUnitInfo().UnitId;
	var unitName=popomap.getAreaUnitInfo().UnitName;
	var id=0;
	var name='';
	var flag=0;
	if(areaId){
		id=areaId;
		name=areaName;
	}
	else{
		id=unitId;
		name=unitName;
		flag=1;
	}
	return {id:id,name:name,x:x,y:y,flag:flag};
}


function removePop_All(){
	popomap.removePop('addNote');
	popomap.removePop('addErr');
	popomap.removePop('addPost');
	popomap.removePop('showPost');
	popomap.removePop('showNote');
	return false;
}


function setActionSet(value){
	actionSet=value;
}
function getActionSet(){
	return actionSet;
}
function cleanActionSet(){
	actionSet='';
	popomap.setMapTip();
}
function addNoteOpen(){
	setActionSet('addNote');
	popomap.setMapTip('<img src="/images/map/rightTip.gif">');
	popomap.selectMode(0);
}
function addNote(x,y,url){
	var htmlStr=htmlManager.getHtml('map','addNote');
	if(!htmlStr) return;
	var sx=150*Math.pow(2,popomap.getZoom()-1);
	var sy=150*Math.pow(2,popomap.getZoom()-1);
	//var htmlStr=popSet['addNote'];
	var flag=false;
	if(!x||!y){
		x=popSet['X'];
		y=popSet['Y'];
		flag=true;
	}
	var params={x:x,y:y};
	var w=320;
	var h=250;
	if(typeof(url)=='undefined') url=urlManager.getUrl('addNote',params);
	htmlStr=htmlStr.replace('@{w1}',w+20);
	htmlStr=htmlStr.replace('@{h1}',h+50);
	htmlStr=htmlStr.replace('@{w2}',w);
	htmlStr=htmlStr.replace('@{h2}',h);
	htmlStr=htmlStr.replace('@{url}',url);
	removePop_addNote();
	if(flag)popomap.go2xyS(parseInt(x)+sx,y+sy,null,createPop_addNote);
	else{
		popomap.go2xy(parseInt(x)+sx,y+sy);
		createPop_addNote();
	}
	function createPop_addNote(){
		cleanActionSet();
		//navUtils.addNoteClose();
		popomap.createPop('addNote',htmlStr,x,y,-13,46,100);
	}
}
function removePop_addNote(){
	popomap.removePop('addNote');
	return false;
}
function editNote(id){
	var url='/note.shtml?id='+id;
	postData(url,null,parseData);

	function parseData(value){
		var o={};
		try{
			if(value){
				o=eval('('+value+')');
				x=parseInt(o.x);
				y=parseInt(o.y);
			}
			else{
				return;
			}
		}
		catch(e){
			return;
		}
		removePop_All();
		//popomap.invokeFun('removeNote',o.id);

		var params={x:x,y:y};
		var htmlStr=htmlManager.getHtml('map','editNote');
		if(!htmlStr) return;
		var w=320;
		var h=250;		
		htmlStr=htmlStr.replace('@{w1}',w+70);
		htmlStr=htmlStr.replace('@{h1}',h+50);
		htmlStr=htmlStr.replace('@{w2}',w);
		htmlStr=htmlStr.replace('@{h2}',h);
		htmlStr=htmlStr.replace('@{ico}',o.ico);
		htmlStr=htmlStr.replace('@{url}','/member/note.shtml?_flowId=mine-edit&uuid='+id);
		//popomap.invokeFun('removeNote',o.id);
		popomap.invokeFun('createFloatPop','noteedit',htmlStr,parseInt(o.x),parseInt(o.y),103,106,5);
	}
	//popomap.invokeFun('removeNote',d.id);
	//var htmlStr='<img src="http://'+domain_config.api+'/images/skin3/icon/note_'+d.ico+'.gif" width="27" height="37" border="0">';
	//popomap.invokeFun('createFloatPop','noteedit',htmlStr,parseInt(d.x),parseInt(d.y),14,37,5);
}
function showNoteAfterEdit(id){
	removePop_addNote();
	popomap.removePop('noteedit');
	removeNote(id);
	showNote(id);
	try{
		if(rightPanel1TargetIfr.reload_minelist){
			rightPanel1TargetIfr.reload_minelist();
		}
	}
	catch(e){
	}
}
function choiceNoteIco(index){
	var src='http://'+domain_config.api+'/images/skin3/icon/note_'+index+'.gif';
	var id="noteEditIco";
	popomap.getMap().uHtml.changeAttribute(id,'src',src);
}
function createNote(o){
	popomap.createSignExt('note',o);
}
function removeNote(id){
	var handler=popomap.getInnerInstances().dataLoader.getSignHandler('note');
	handler.removeNote(id);
}
function removePop_editNote(){
	popomap.invokeFun('removeFloatPop','noteedit');
}
function showNote(id,type,temp){
	if(!waitMapReady())return;
	var readOnly=false;
	isDoMapInit=true;

	var url='/newmap/note.shtml?id='+id;
	if(type){
		readOnly=true;
		url+='&type='+type;
	}
	postData(url,null,parseData);

	function parseData(value){
		var o={};
		try{
			if(value){
				o=eval('('+value+')');
			}
			else{
				popomap.init(0,0,true);
				alert("您所查看的便签不存在或已被删除！");
				return;
			}
		}
		catch(e){
			popomap.init(x,y,true);
			return;
		}
		
		createPop_showNote(o);
	}

	function createPop_showNote(o){
		try{switchNavView(0);}
		catch(e){}
		if(typeof loginStatus=='undefined') var loginStatus='';
		if(typeof pageMapType=='undefined') var pageMapType='';
		var sx=150*Math.pow(2,popomap.getZoom()-1);
		var sy=150*Math.pow(2,popomap.getZoom()-1);
		var htmlStr=htmlManager.getHtml('map','showNote');
		if(!htmlStr) return;
		var x=parseInt(o.x);
		var y=parseInt(o.y);
		var params={x:x,y:y,id:id,type:type};
		var w=320;
		var h=200;		
		htmlStr=htmlStr.replace('@{w1}',w+20);
		htmlStr=htmlStr.replace('@{h1}',h+50);
		htmlStr=htmlStr.replace('@{w2}',w);
		htmlStr=htmlStr.replace('@{h2}',h);
		htmlStr=htmlStr.replace('@{url}',urlManager.getUrl('showNote',params));
		if(loginStatus!=''&&loginStatus==o.creatorUsername)htmlStr=htmlStr.replace('@{edit}','&nbsp;<a href="#" onclick="parent.editNote(\''+id+'\')" class="cWhite" style="font-weight:normal;">[编辑]</a>&nbsp;<a href="#" onclick="parent.hiddenNote(\''+id+'\')" class="cWhite" style="font-weight:normal;">[隐藏]</a>');
		else if(pageMapType=='index') htmlStr=htmlStr.replace('@{edit}','&nbsp;<a href="#" onclick="parent.transformNote2Note(\''+id+'\')" class="cWhite" style="font-weight:normal;">[转为便签]</a>');
		else htmlStr=htmlStr.replace('@{edit}','');
		htmlStr=htmlStr.replace('@{ico}',o.ico);
		removePop_showNote();
		popomap.go2xy(x+sx,y+sy);
		popomap.createPop('showNote',htmlStr,x,y,-13,46,100);
		popomap.init(x+sx,y+sy);

		if(!temp)createNote(o);
	}
}
function removePop_showNote(){
	popomap.removePop('showNote');
	return false;
}
function hiddenNote(id){
	var url='member/note.shtml?_flowId=mine-set&state=false&uuid='+id;
	postData(url,null,fun);

	function fun(data){
		if(data!=null){
			removePop_showNote();
			removeNote(id);
		}
	}
}

function addErrOpen(){
	setActionSet('addErr');
	popomap.setMapTip('<img src="/images/map/rightTip.gif">');
	popomap.selectMode(0);
}
function addErr(x,y){
	if(!x||!y) {
		x=popomap.getAreaUnitInfo().x;
		y=popomap.getAreaUnitInfo().y;
	}
	var sx=150*Math.pow(2,popomap.getZoom()-1);
	var htmlStr=htmlManager.getHtml('map','addError');
	if(!htmlStr) return;
	if(!x)x=popSet['X'];
	if(!y)y=popSet['Y'];
	var params={x:x,y:y};
	htmlStr=htmlStr.replace('@{url}',urlManager.getUrl('addError',params));
	popomap.setMapTip();
	removePop_addErr();
	popomap.go2xyS(parseInt(x)+sx,y,null,createPop_addErr);
	function createPop_addErr(){
		cleanActionSet();
		popomap.createPop('addErr',htmlStr,x,y,-13,46,100);
	}
}
function removePop_addErr(){
	popomap.removePop('addErr');
	return false;
}
function addPostOpen(){
	setActionSet('addPost');
	popomap.setMapTip('<img src="/images/map/rightTip.gif">');
}


function getPosXYOpen(callback){
	actionCallBack['getPosXY']=callback;
	crossApi.setCfg('callback',callback);
	setActionSet('getPosXY');
	alert('点右键获取地址');
	popomap.setMapTip('<span style="color:red;font-size:12px;">点右键获取地址</span>');
}
function getPosXYClose(){
	actionCallBack['getPosXY']='';
	popomap.removePop('popAnchor');
	cleanActionSet();
}
function getPosXY(){
	//ifrRight.document.forms[0].x.value=popSet['X'];
	//ifrRight.document.forms[0].y.value=popSet['Y'];
	var params={x:popSet['X'],y:popSet['Y']};
	var fun=actionCallBack['getPosXY'];
	if(typeof fun=='function')fun(params);
	else if(typeof fun=='string') {
		crossApi.setCfg('callback',fun);
		crossApi.execute(params);
	}
	popomap.removePop('popAnchor');
	popomap.createPopT('popAnchor','<img src="/images/map/anchor.gif">',popSet['X'],popSet['Y'],12,12,5);
}
function getPtInfoOpen(){
	isEntity=false;
	setActionSet('getPtInfo');
	alert('点右键获取地址');
	popomap.setMapTip('<span style="color:red;font-size:12px;">点右键获取地址</span>');
}
function getPtInfo(){
	if(confirm('您确定设置该点吗?')){
		var x=Math.floor(popSet['X']/2);
		var y=Math.floor(popSet['Y']/2);
		var id='';
		var name='';
		if(isEntity){
			id=popomap.getAreaUnitInfo().AreaID;
			name=popomap.getAreaUnitInfo().AreaName;
		}
		ifrRight.document.forms[0].centerX.value=x;
		ifrRight.document.forms[0].centerY.value=y;
		ifrRight.document.forms[0].entity.value=id;
		ifrRight.document.forms[0].entityName.value=name;
		cleanActionSet();
		popomap.setMapTip();
	}
}
function getPointInfoOpen(fun){
	isEntity=false;
	actionCallBack['getPointInfo']=fun;
	setActionSet('getPointInfo');
	//national.showMsg('%{MousePointInfo:点右键获取地址}');
	popomap.setMapTip('<img src="/images/map/rightTip2.gif">');
}
function getPointInfo(){
	if(confirm('您确定设置该点吗?')){
		var x=popSet['X'];
		var y=popSet['Y'];
		var id='';
		var name='';
		if(isEntity){
			id=popomap.getAreaUnitInfo().AreaID;
			name=popomap.getAreaUnitInfo().AreaName;
		}
		var zoom=popomap.getZoom();
		var o={entityId:id,entityName:name,x:x,y:y,zoom:zoom};
		var fun=actionCallBack['getPointInfo'];
		if(typeof fun=='function'){
			fun(o);
		}
		else if(typeof fun=='string'){
			crossApi.setCfg('callback',fun);
			crossApi.execute(o);
		}
		cleanActionSet();
		popomap.setMapTip();
		return true;
	}
	return false;
}
function openSelectArea(fun){
	actionCallBack['SelectArea']=fun;
	omapApi.selectMode(6,{callback:getSelectArea});
}
function getSelectArea(){
	if(confirm('确定此区域吗？')){
		var data=omapApi.getD();
		omapApi.selectMode(0);
		var fun=actionCallBack['SelectArea'];
		if(typeof fun=='function'){
			fun(data);
		}
		else if(typeof fun=='string'){
		}
	}
	return false;
}
function openAroundArea(fun,center,distance,targetZ){
	distance=parseInt(distance);
	var z=3;
	if(!targetZ){
		if(distance>=1200)z=5;
		else if(distance>=600)z=4;
	}
	else z=targetZ;
	omapApi.zoomto(z);
	omapApi.selectMode(31,{callback:getAroundArea,center:center,radius:distance});
	actionCallBack['SelectArea']=fun;
}
function getAroundArea(data){
	if(confirm('确定此范围吗？')){
		omapApi.selectMode(0);
		var fun=actionCallBack['SelectArea'];
		if(typeof fun=='function'){
			fun(data);
		}
		else if(typeof fun=='string'){
			crossApi.setCfg('callback',fun);
			crossApi.execute(data);
		}
	}
	return false;
}

function backPos(){
	if(rememberPos)showResult(rememberPos.id,rememberPos.type);
}
function showResult(id,type){
	if(!waitMapReady())return;
	var mapData={};
	mapData.entity={};
	mapData.unit={};

	var url='';
	if(type==1)
		url='/resource/js/entity/'+map+'/'+Math.floor(id/1000)+'/'+id+'.js';
	else if(type==2) 
		url='/map/unitjs.shtml?id='+id;
	else if(type==3)
		url='/info/json.shtml?id='+id;
	postData(url,null,parsexml,'GET');


	function parsexml(value){
		var x=0,y=0;
		try{
			if(value){
				var o=eval('('+value+')');
				x=o.x;
				y=o.y;
			}
			else{
				popomap.init(x,y,true);
				return;
			}
		}
		catch(e){
			popomap.init(x,y,true);
			return;
		}
		//popomap.go2xy(x,y);
		var noSlowF=false;
		if(getNavStatus()) {switchNavView(0);noSlowF=true;}
		popomap.init(x,y);
		if(type==1)
			popomap.showOCInfo(x,y,id,0,false,noSlowF);
		else if(type==2) 
			popomap.showOCInfo(x,y,0,id,true,noSlowF);
		else if(type==3)
			showInfo(o.id,o.x,o.y,o.type);
	}
}
function showResult2(id,x,y,type,name){
	//alert(id+','+x+','+y+','+type+','+name);
	/*if(getNavStatus()) {switchNavView(0);switchMapView(1);popomap.init(x,y);noSlowF=true;}
	if(type==1)
		popomap.showOCInfo(x,y,id,0,false,false);
	else if(type==2)
		popomap.showOCInfo(x,y,0,id,true,false);
	else*/
		showPop(x,y,name);
}
function showInfo(id,x,y,type,subtype){
	if(getNavStatus()) {switchNavView(0);popomap.init(x,y);}
	var sx=180*Math.pow(2,popomap.getZoom()-1);
	var sy=220*Math.pow(2,popomap.getZoom()-1);
	var urlParams={};
	urlParams.id=id;
	var htmlParams={};
	if(type=='HOUSE')	{
		htmlParams.url=urlManager.getUrl('showHouse',urlParams);
		htmlParams.title='房产信息定位';
	}
	else if(type=='PRODUCT'){
		htmlParams.url=urlManager.getUrl('showProduct',urlParams);
		htmlParams.title='网络商城产品定位';
	}
	else {
		htmlParams.url=urlManager.getUrl('showInfo',urlParams);
		htmlParams.title='生活分类信息定位';
	}

	var htmlStr=htmlManager.getHtml('map','showInfo',null,htmlParams);
	if(!htmlStr) return;
	if(!x||!y){
		htmlStr=popSet['showInfo1'];
		x=popomap.getCenterX()-sx;
		y=popomap.getCenterY()+sy;
	}
	removePop_showInfo();
	popomap.go2xy(parseInt(x)+sx,parseInt(y)+sy);
	createPop_showInfo();

	function createPop_showInfo(){
		popomap.createPop('showInfo',htmlStr,x,y,0,0,6);
		//mapInit();
	}
}
function removePop_showInfo(){
	popomap.removePop('showInfo');
	return false;
}
function gotoTarget(x,y,id,cid){
	//popomap.removePop('his');
	//popomap.go2xyS(x,y,null,null);
	//popomap.createPopT('his',name,x,y,0,0,5);
	popomap.showOCInfo(x,y,id,cid,true);
}


popSet['iframePop']='<div class="Mapinfo_min" style="width:!{w1};height:!{h1}">  <div class="pointer"><img src="../../images/map/popwin/ui_point.gif"></div>  <div class="con">   <div class="name">      <div class="icon"><img src="../../images/map/popwin/getblog2.gif" width="14" height="14"></div>  <div class="closebt"><a href="#" onclick="Instances.map.removePop(\'!{id}\');return false;"></a></div>  <div class="info_h2">!{title}</div>   </div>   <div class="box"><iframe id="user_iframe" name="user_iframe" style="WIDTH:!{w2}px;HEIGHT:!{h2}px" scrolling="no" frameborder="no" src="!{url}"></iframe></div>  </div></div>';
