_package("bjmap.main");

bjmap.main.right=function(){
	
	var $this=this;
	 //初始数值
	 var defitems=[
	 	{text:'周边搜索',value:'near'},
	 	{text:'hr',value:'hr'},
	 	{text:'设定为起点',value:'begin'},
	 	{text:'设定为终点',value:'finish'},
	 	{text:'hr',value:'hr'},
	 	{text:'拉框放大',value:'big'},
	 	{text:'拉框缩小',value:'small'},
	 	{text:'hr',value:'hr'},
	 	{text:'在此居中地图',value:'center'}//,
	 	//{text:'做个标记',value:'flag'}
	 ];
	 
	 var lonlat;
	 var trans=false;
	 //处理
	 function process(text,value,ll){
	 	var target=$this.type||1;		//默认是导航
	 	
 		var poi=new DCI.Pojo.POI();
 		poi.x=ll.lon;
 		poi.y=ll.lat;
	 	if(value=="near"){
	 		poi.name="中心点";
	 		$this.showNear(poi);
     	}else if(value=="finish"){
     		var sp=void(0);
     		poi.name="自定义终点";
     		if(nav.start_poi){
     			 sp=nav.start_poi;
     		}
     		nav.end_poi=poi;
     		nav.poi(target,sp,poi);
//			nav.name(poi,0);
     	}else if(value=="begin"){
     		var ep=void(0);
     		poi.name="自定义起点";
     		if(nav.end_poi){
     			 ep=nav.end_poi;
     		}
     		nav.start_poi=poi;
     		nav.poi(target,poi,ep);
//			nav.name(poi,1);
     	}else if(value=="big"){
     		map.setMouseMode(DMouseMode.ZOOM_IN);
     	}else if(value=="small"){
     		map.setMouseMode(DMouseMode.ZOOM_OUT);
     	}else if(value=="center"){
     		map.panTo(ll);
     	}     	
	 }
     
     /**************************************
      **** 		右键菜单周边功能			****
      *************************************/
     //定义热门分类
     var pop_tree=[
     	{text:'餐饮服务',items:[
     		{text:'火锅'},{text:'烧烤'},{text:'中餐'},{text:'西餐'},{text:'冷饮'},{text:'咖啡馆'},{text:'酒吧'},{text:'宾馆'},{text:'饭店'}
     	]},
     	{text:'生活便利',items:[
     		{text:'银行'},{text:'ATM'},{text:'邮局'},{text:'药店'},{text:'诊所'},{text:'医院'},{text:'超市'},{text:'商场'},{text:'公交车站'}
     	]},
     	{text:'娱乐健身',items:[
     		{text:'KTV'},{text:'歌舞厅'},{text:'影剧院'},{text:'度假村'},{text:'健身场所'},{text:'体育场馆'},{text:'球类场馆'},{text:'游泳馆'}
     	]},
     	{text:'汽车服务',items:[
     		{text:'加油站'},{text:'停车场'},{text:'修理厂'}
     	]}
     ];
              
     var isInit=false;		//代表右键的周边是否初始化过
     var isShow=false;		//是否正在显示
	 var near_el=DCI.get("right_near_box");		//周边查询的div元素
     var dragObject=new DDragObject(near_el);	//注册拖动对象
	 
     var near_center=void(0);
     var right_cen=void(0);
	 var right_cen_title=void(0);
		
     this.showNear=function(poi){
     	//记录poi点
 		if(!poi){
 			return;
 		}
 		near_center=poi;
		$("#right_near_title").find("span").html("坐标周边("+substr(poi.name,15)+")");
 		//添加范围和中心点渲染
		addIcon(poi);
     	//初始化
     	if(!isInit){
     		initNear.call(this);
     		isInit=true;
     	}else{
     		near_el.style.display="block"; 
     	}
     	if(!isShow){
	     	//清空
	     	$("#rightrange").val("500");
	     	$("#rightnearname").val("");
	     	//显示
	     	$(near_el).fadeTo("slow",0.8);
	     	isShow=true;
     	} 
     }
     
     this.hideNear=function(){
     	$(near_el).fadeTo("slow",0,function(){
     		near_el.style.display="none"; 
     	});
		isShow=false;
		clearIcon();
     }
     
	 var isDraw=false;		//是否绘制过图形
     function clearIcon(){
     		if(isDraw){
	 			map.removeOverlay(right_cen);
	 			map.removeOverlay(right_cen_title);
	 			isDraw=false;
     		}
     }
     
     function addIcon(poi){
     	clearIcon();	//清楚之前的图标
 		var lonlat=new DLonLat(poi.x,poi.y)
		right_cen=new DIcon(lonlat,{style:{cursor:"default"},image:"images/main/around.png",width:20,height:20,left:-10,top:-10});
		right_cen_title=new DTitle(lonlat,poi.name,{style:{cursor:"default"},offsety:-10,fontPosition:8,fontColor:"red",borderColor:"red"});
		map.addOverlay(right_cen);
		map.addOverlay(right_cen_title);
		isDraw=true;
     }
     
     function initNear(){
     	//可拖动
 		//dragObject.enabled();  
 		//初始位置 
//        var offsetp=map.getContainerOffset();  	
//        near_el.style.left=(offsetp.x+2)+"px";
//        near_el.style.top=(offsetp.y+2)+"px";  
     	$(near_el).fadeTo(1,0,function(){
     		near_el.style.display="block"; 
     	}); 
     	var sortlist=$("#right_near_sortlist");
     	//添加类别
     	$.each(pop_tree,function(i,iitem){
     		var items=iitem.items;
     		var itext=iitem.text;
     		var igroup=$("<div class='right_near_sort_t'>"+itext+"</div><div class='right_near_sort_c'></div>");
     		$.each(items,function(j,jitem){
     			var jtext=jitem.text;
     			var ja=$("<a href='#'>"+jtext+"</a>");
     			$(igroup[1]).append(ja);
     			ja.bind("click",function(){
     				searchNear(ja.html());
     			});
     		});
     		sortlist.append(igroup);
     	});
     	//绑定基本事件
     	$("#right_near_title_close").bind("click",this.hideNear);
     	$("#right_near_search_btn").bind("click",function(){
     		var value=$("#rightnearname").val();
     		searchNear(value);
     	});
		//阻止事件冒
		DCI.event.bindDom(near_el,"mousedown",DCI.event.stop);
		DCI.event.bindDom(near_el,"mousewheel",DCI.event.stop);
		DCI.event.bindDom(near_el,"DOMMouseScroll",DCI.event.stop);
		DCI.event.bindDom(near_el,"click",DCI.event.stop);
     }
     
     function searchNear(value){
     	if(!value||!near_center)return;
     	var nn=value;
     	var range=$("#rightrange").val();//DCI.get("rightrange").options[DCI.get("rightrange").selectedIndex].value;	
     	poi.nearByPoint(near_center,nn,range);
     	$this.hideNear();
     }
     
     
     
     function substr(str,len){
		if(str.length>len){
			return str.substr(0,len)+"...";
		}
		return str;
	}
     
     
	 var popMenu=new DPopMenu(defitems,process);
	 map.addControl(popMenu);
};
