/**
 * B11 视频 B12 气象 B14 可变情报板 B2 路政案件 B3 施工占道 B4 养护事件 B5 阻断事件 
 */

ShowOnMap = function() {
	

	// 私有属性、方法

	var dataMap = new HashMap();

	return {
		
		markOnMap : function(obj, type) {
			// debugger;
			var VIDEO = 'B11', WEATHER = 'B12', INFOBOARD = 'B14';
			var EVENT_482 = 'B2', EVENT_437 = 'B3', EVENT_490 = 'B4', EVENT_299 = 'B5'
			switch (type) {				
				case VIDEO :
					var videoobj = new VideoClass();
					var video = obj;
					videoobj.equipmentInfo = video;
					videoobj.interval = 60;
					VideoMap.put(video.SRServerIP, videoobj);
					videoobj.markOnMap();
					break;
				case WEATHER :
					//alert(obj)
					var weatherobj = new WeatherClass();
					var wcs = obj;
					weatherobj.equipmentInfo = wcs;
					weatherobj.interval = 60;
					WeatherMap.put(wcs.id, weatherobj);
					weatherobj.markOnMap();
					break;
				case INFOBOARD :
					var infoBoardobj = new InfoBoardClass();
					var ib = obj;
					infoBoardobj.equipmentInfo = ib;
					infoBoardobj.interval = 60;
					InfoBoardMap.put(ib.id, infoBoardobj);
					infoBoardobj.markOnMap();
					break;
				case EVENT_482 :		
					//alert(obj);
					var temp = show_Event_WithEventType(obj);
					dataMap.put(obj.eventId, temp);
					//alert(dataMap.size());
					break;
				case EVENT_437 :
					//alert(obj);
					var temp = show_Event_WithEventType(obj);
					dataMap.put(obj.eventId, temp);
					//alert(dataMap.size());
					break;
				case EVENT_490 :
					//alert(obj);
					var temp = show_Event_WithEventType(obj);
					dataMap.put(obj.eventId, temp);
					//alert(dataMap.size());
					break;
				case EVENT_299 :
					//alert(obj);
					var temp = show_Event_WithEventType(obj);
					dataMap.put(obj.eventId, temp);
					//alert(dataMap.size());
					break;
			}
		},
		/**
		 * 显示显示窗口 com.lz.sinosoft.road.ShowOnMap.showInfo()
		 */
		showInfo : function(id, type) {
			moveMyMarks = false;
			try {
				if (currentPopup) {
					if (videoActive) {
						GcWebClient.Stop();
					}
					map.removePopup(currentPopup);
					currentPopup.onclosed();
					currentPopup = null;
				}
		
				var VIDEO = 'B11', WEATHER = 'B12', INFOBOARD = 'B14';
				var EVENT_482 = 'B2', EVENT_437 = 'B3', EVENT_490 = 'B4', EVENT_299 = 'B5'
				switch (type) {
					case VIDEO :
						if (VideoMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							if(m==null){
								var temp = VideoMap.get(id);
								mapObjSearch.addOverlay(temp.mark,true);
							}
							mapObjSearch.openOverlayTip(id);
						}
						break;
					case WEATHER :
						if (WeatherMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							if(m==null){
								var temp = WeatherMap.get(id);								
								mapObjSearch.addOverlay(temp.mark,true);
							}
							mapObjSearch.openOverlayTip(id);
						}
						break;			
					case INFOBOARD :
						if (InfoBoardMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							if(m==null){
								var temp = InfoBoardMap.get(id);
								mapObjSearch.addOverlay(temp.mark,true);
							}
							mapObjSearch.openOverlayTip(id);
						}
						break;
					case EVENT_482 :
						if (dataMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							var temp=dataMap.get(id);
							if(temp.lnglat.lngX==0&&temp.lnglat.latY==0)
							{
									alert("无效坐标，无法在地图上标注");
									break;
							}
							if(m==null){	
								mapObjSearch.addOverlay(temp,true);
							}else{							
							//mapObjSearch.removeAllOverlays();
							}						
							setTimeout(showMapTip, 300);
							function showMapTip(){
							    mapObjSearch.openOverlayTip(id);
							}
						}
						break;
					case EVENT_437 :
						if (dataMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							var temp=dataMap.get(id);
							if(temp.lnglat.lngX==0&&temp.lnglat.latY==0)
							{
									alert("无效坐标，无法在地图上标注");
									break;
							}
							if(m==null){	
								mapObjSearch.addOverlay(temp,true);
							}
							setTimeout(showMapTip, 300);
							function showMapTip(){
							    mapObjSearch.openOverlayTip(id);
							}
							
						}
						break;
					case EVENT_490 :
						if (dataMap.containsKey(id)) {
							var m=mapObjSearch.getOverlayById(id);
							var temp=dataMap.get(id);
							if(temp.lnglat.lngX==0&&temp.lnglat.latY==0)
							{
									alert("无效坐标，无法在地图上标注");
									break;
							}
							if(m==null){	
								mapObjSearch.addOverlay(temp,true);
							}
							setTimeout(showMapTip, 300);
							function showMapTip(){
							    mapObjSearch.openOverlayTip(id);
							}
						}
						break;
					case EVENT_299 :
					
						if (dataMap.containsKey(id)) {
							var m =mapObjSearch.getOverlayById(id);	
							var temp=dataMap.get(id);
							if(temp.lnglat.lngX==0&&temp.lnglat.latY==0)
							{
									alert("无效坐标，无法在地图上标注");
									break;
							}
							if(m==null){	
								mapObjSearch.addOverlay(temp,true);
							}
							setTimeout(showMapTip, 300);
							function showMapTip(){
							    mapObjSearch.openOverlayTip(id);
							}							
						}
						break;					
				}
			} catch (e) {
				//alert(e.number + "\n" + e.description);
			}
		}
	}
}();

/**
 * 地图标注类
 */
MarkOnMap = function() {

	var marksMap = new HashMap();
	
	return {
		//地图显示
		show : function(id) {
			if (marksMap.containsKey(id)) {
				var temp = marksMap.get(id);
				temp.icon.imageDiv.click();
			} else {

			}
		}

	}
}();

