var map,ol_wms,markers,poi_layer,district_layer,dengue;var road_closure;var totalZoomLevel=5;var time_out=null;var total_poi_1=0;var total_poi_5=0;var total_poi_6=0;var total_poi_2=0;var total_poi_10=0;var total_poi_4=0;var total_poi_7=0;var total_poi_9=0;var total_poi_8=0;var total_poi_3=0;var selected_poi=null;var size_default=new OpenLayers.Size(24,24);var offset_default=new OpenLayers.Pixel(-(size_default.w/2),-size_default.h);var default_symbol=new OpenLayers.Icon('img/tag_blank.png',size_default,offset_default);var size_camera=new OpenLayers.Size(35,34);var offset_camera=new OpenLayers.Pixel(-(size_camera.w/2),-size_camera.h);var camera_symbol=new OpenLayers.Icon('img/camera.png',size_camera,offset_camera);OpenLayers.IMAGE_RELOAD_ATTEMPTS=5;var f1track,f1closure;function init(){AutoSizeFramedCloud=OpenLayers.Class(OpenLayers.Popup.FramedCloud,{'autoSize':true});AutoSizeAnchored=OpenLayers.Class(OpenLayers.Popup.Anchored,{'autoSize':true});var options_val={'numZoomLevels':totalZoomLevel,'maxResolution':0.0006866455078125,'resolutions':[0.0006866455078125,4.291534423828125e-005,1.0728836059570313e-005,5.3644180297851563e-006,2.6822090148925781e-06],controls:[new OpenLayers.Control.PanZoomBar(),new OpenLayers.Control.Attribution(),new OpenLayers.Control.Navigation({'zoomWheelEnabled':true})],eventListeners:{"zoomend":mapZoomEvent,"moveend":mapMoveEvent}};map=new OpenLayers.Map('map',options_val);SPH_Layers=new OpenLayers.Layer.WMS("V3SPH",tileIp+"/tilecache.py?",{layers:'V3SPH'},{'buffer':0,'displayInLayerSwitcher':false,'attribution':''});map.addLayer(SPH_Layers);f1closure=new OpenLayers.Layer.WMS("NDP",tileIp+"/tilecache.py?",{service:'WMS',version:'1.1.1',transparent:'true',layers:'NDP'},{'buffer':0,'displayInLayerSwitcher':false});f1closure.setVisibility(true);map.addLayer(f1closure);markers=new OpenLayers.Layer.Markers("Markers");map.addLayer(markers);if(lat!=0&&lon!=0){addDistrict(false);var set_zoom=3;if(zoom>-1){set_zoom=zoom}map.setCenter(new OpenLayers.LonLat(lon,lat),set_zoom);var mrkrlonLat=new OpenLayers.LonLat(lon,lat);addLocateMarker(mrkrlonLat,tooltip_info,img_src,img_call,call_link,true)}else{addDistrict(true);map.setCenter(new OpenLayers.LonLat(103.85713,1.29330),3)}addDengue();if(query_input == "YOG"){document.getElementById("poi_select_10").checked = true;yog_check()}}function addDistrict(val){district_layer=new OpenLayers.Layer.GML("KML","kml/SPH_DISTRICT2.kml",{format:OpenLayers.Format.KML,formatOptions:{extractStyles:true,extractAttributes:true}});map.addLayer(district_layer);if(!val){district_layer.setVisibility(false)}}function myStyle(feature){feature.style.cursor='pointer'}function addRoadBlock(){if(road_closure!=null){map.removeLayer(road_closure);road_closure=null}road_closure=new OpenLayers.Layer.GML("KML","kml/StanChart.kml",{format:OpenLayers.Format.KML,formatOptions:{extractStyles:true,extractAttributes:true}});road_closure.preFeatureInsert=myStyle;map.addLayer(road_closure);roadControl=new OpenLayers.Control.SelectFeature(road_closure,{hover:true,onSelect:onRoadSelect,onUnselect:onRoadUnselect});map.addControl(roadControl);roadControl.activate()}function onRoadSelect(feature){map.setLayerZIndex(markers,0);document.getElementById("map").style.cursor="default";selectedRoadFeature=feature;var content=trim(feature.attributes.descriptions);var type=trim(feature.attributes.type);if(content.search("<script")!=-1){content="Content contained Javascript! Escaped content below.<br />"+content.replace(/></g,"&lt;")}if(type!="ndpline"){content="<table cellpadding='0' border='0' cellspacing='0'><tr><td>"+trim(feature.attributes.name)+"</td></tr><tr style='height:8px'><td></td></tr><tr><td>"+content+"</td></tr></table>";popup=new OpenLayers.Popup.FramedCloud("chicken",feature.geometry.getBounds().getCenterLonLat(),new OpenLayers.Size(100,100),content,null,true,onPopupCloseRoad);feature.popup=popup;map.addPopup(popup)}}function IsNumeric(sText){var ValidChars="0123456789.";var IsNumber=true;var Char;for(i=0;i<sText.length&&IsNumber==true;i++){Char=sText.charAt(i);if(ValidChars.indexOf(Char)==-1){IsNumber=false}}return IsNumber}function onRoadUnselect(feature){map.setLayerZIndex(markers,1000);document.getElementById("map").style.cursor="url(openhand.Cur),default";if(feature.popup!=null){map.removePopup(feature.popup);feature.popup.destroy();feature.popup=null}}function onPopupCloseRoad(evt){roadControl.unselect(selectedRoadFeature)}function chkDengue(){if(dengue!=null&&document.getElementById("dengue_chk").checked){dengue.setVisibility(true);map.setCenter(new OpenLayers.LonLat(103.88,1.33),0)}else{dengue.setVisibility(false)}}function addDengue(){dengue=new OpenLayers.Layer.GML("KML","kml/SPH_DENGUE.kml",{format:OpenLayers.Format.KML,formatOptions:{extractStyles:true,extractAttributes:true}});dengue.preFeatureInsert=myStyle;map.addLayer(dengue);dengue.setVisibility(false);dengueControl=new OpenLayers.Control.SelectFeature(dengue,{hover:true,onSelect:onDengueSelect,onUnselect:onDengueUnselect});map.addControl(dengueControl);dengueControl.activate()}function trim(passedVal){var i,j;for(i=0;i<passedVal.length;i++){if(passedVal.charAt(i)!=" ")break}for(j=passedVal.length-1;j>=0;j--){if(passedVal.charAt(j)!=" ")break}if(i>j)passedVal="";else passedVal=passedVal.substring(i,j+1);return(passedVal)}function onDengueSelect(feature){map.setLayerZIndex(markers,0);document.getElementById("map").style.cursor="pointer";selectedDengueFeature=feature;var content="<table cellpadding='0' cellspacing='0' border='0' width='200'><tr><td>";content+="21 areas* NEA will focus on:<br>("+feature.attributes.name+")<br><br>";content+=feature.attributes.description;content+="</td></tr></table>";if(content.search("<script")!=-1){content="Content contained Javascript! Escaped content below.<br />"+content.replace(/></g,"&lt;")}popup=new OpenLayers.Popup.FramedCloud("chicken",feature.geometry.getBounds().getCenterLonLat(),new OpenLayers.Size(100,100),content,null,true,onPopupCloseDengue);feature.popup=popup;map.addPopup(popup)}function onDengueUnselect(feature){map.setLayerZIndex(markers,1000);document.getElementById("map").style.cursor="url(openhand.Cur),default";map.removePopup(feature.popup);feature.popup.destroy();feature.popup=null}function onPopupCloseDengue(evt){dengueControl.unselect(selectedDengueFeature)}function recordLog(oldx,oldy,newx,newy,action,zoom_val){document.getElementById("recLogPanel").src="http://map.sphsearch.com/mapguide/Map_Logging/record_log.php?rec_log_stat=1&oldX="+oldx+"&oldY="+oldy+"&newX="+newx+"&newY="+newy+"&action="+action+"&value1="+zoom_val+"&value2=map_search&ruid="+ruid}function mapMoveEvent(event){var tempval=map.getCenter();if(tempval.lon<=103.87966&&tempval.lon>=103.8483&&tempval.lat<=1.31120&&tempval.lat>=1.27790&&(document.getElementById("F109_legend").style.visibility=="hidden"||document.getElementById("F109_legend").style.visibility=="")){document.getElementById("F109_tab").style.visibility="visible"}else{document.getElementById("F109_tab").style.visibility="hidden";document.getElementById("F109_legend").style.visibility="hidden"}/*if(tempval.lon<=103.8632&&tempval.lon>=103.8606&&tempval.lat<=1.2965&&tempval.lat>=1.2894&&(document.getElementById("Chingay_legend").style.visibility=="hidden"||document.getElementById("Chingay_legend").style.visibility=="")){document.getElementById("Chingay_tab").style.visibility="visible"}else{document.getElementById("Chingay_tab").style.visibility="hidden";document.getElementById("Chingay_legend").style.visibility="hidden"}*/if(map.getZoom()<2){if(district_layer!=null){district_layer.setVisibility(true)}if(dengue!=null&&document.getElementById("dengue_chk").checked){dengue.setVisibility(true)}for(var i=1;i<=9;i++){document.getElementById("poi_select_"+i).disabled=true;document.getElementById("poi_legend_"+i).innerHTML=""}setPOI();return false}else{if(district_layer!=null){district_layer.setVisibility(false)}if(dengue!=null){dengue.setVisibility(false);document.getElementById("dengue_chk").checked=false}time_out=setTimeout("getPOICount()",5000)}}function getPOICount(){var mapBounds=new OpenLayers.Bounds();mapBounds=map.getExtent();var min_x=mapBounds.left;var min_y=mapBounds.bottom;var max_x=mapBounds.right;var max_y=mapBounds.top;if(time_out!=null){clearTimeout(time_out)}var url=publicIp+"SPH_OL/count_poi.php";var params="max_x="+max_x+"&max_y="+max_y+"&min_x="+min_x+"&min_y="+min_y;if(window.XMLHttpRequest){req=new XMLHttpRequest();req.onreadystatechange=getPOICountResult;req.open("POST",url,true);req.setRequestHeader("Content-type","application/x-www-form-urlencoded");req.setRequestHeader("Content-length",params.length);req.setRequestHeader("Connection","close");req.send(params)}else if(window.ActiveXObject){req=new ActiveXObject("Microsoft.XMLHTTP");if(req){req.onreadystatechange=getPOICountResult;req.open("POST",url,true);req.setRequestHeader("Content-type","application/x-www-form-urlencoded");req.setRequestHeader("Content-length",params.length);req.setRequestHeader("Connection","close");req.send(params)}}}function getPOICountResult(){if(req.readyState==4){if(req.status==200){var response=req.responseXML.documentElement;var status=response.getElementsByTagName('searchstatus')[0].childNodes[0].nodeValue;total_poi_1=0;total_poi_5=0;total_poi_6=0;total_poi_2=0;total_poi_10=0;total_poi_4=0;total_poi_7=0;total_poi_9=0;total_poi_8=0;total_poi_3=0;if(status=="success"){var total_result=response.getElementsByTagName('totalInfo').length;for(var i=0;i<total_result;i++){var poi_type=response.getElementsByTagName('tradecode')[i].childNodes[0].nodeValue;var current_val=parseInt(response.getElementsByTagName('totalpoi')[i].childNodes[0].nodeValue);store_total_val(poi_type,current_val)}for(var i=1;i<=9;i++){if(get_total_val(i)>0){document.getElementById("poi_select_"+i).disabled=false;document.getElementById("poi_legend_"+i).innerHTML="("+get_total_val(i)+")"}else{document.getElementById("poi_select_"+i).disabled=true;document.getElementById("poi_legend_"+i).innerHTML=""}}}else{for(var i=1;i<=9;i++){document.getElementById("poi_select_"+i).disabled=true;document.getElementById("poi_legend_"+i).innerHTML=""}}setPOI()}}}function get_total_val(val){switch(val){case 1:return total_poi_1;break;case 2:return total_poi_2;break;case 3:return total_poi_3;break;case 4:return total_poi_4;break;case 5:return total_poi_5;break;case 6:return total_poi_6;break;case 7:return total_poi_7;break;case 8:return total_poi_8;break;case 9:return total_poi_9;break;case 10:return total_poi_10;break}}function store_total_val(val,total_val){switch(val){case"MRT":total_poi_1=total_poi_1+total_val;break;case"TAXI":total_poi_2=total_poi_2+total_val;break;case"ERP":total_poi_3=total_poi_3+total_val;break;case"PETROL":total_poi_4=total_poi_4+total_val;break;case"HOTEL":total_poi_5=total_poi_5+total_val;break;case"4D":total_poi_6=total_poi_6+total_val;break;case"SHOPPING":total_poi_7=total_poi_7+total_val;break;case"CLINIC":total_poi_8=total_poi_8+total_val;break;case"SCHOOL":total_poi_9=total_poi_9+total_val;break}}function setPOI(){try{if(map.getZoom()<2){if(road_closure!=null){road_closure.setVisibility(true)}}if(poi_layer!=null){map.removeLayer(poi_layer)}poi_layer=null;if(map.popups.length>0){for(var i=0;i<map.popups.length;i++){if(map.popups[i].type=="kml"){map.removePopup(map.popups[i])}}}poi_layer=null;var mapBounds=new OpenLayers.Bounds();mapBounds=map.getExtent();var min_x=mapBounds.left;var min_y=mapBounds.bottom;var max_x=mapBounds.right;var max_y=mapBounds.top;selected_poi=new Array();for(var i=1;i<=10;i++){if(document.getElementById("poi_select_"+i).checked){selected_poi.push(document.getElementById("poi_select_"+i).value)}}var poilist="-";if(selected_poi.length>0){poilist=selected_poi.join(",")}poi_layer=new OpenLayers.Layer.GML("KML","get_poi.php?max_x="+max_x+"&max_y="+max_y+"&min_x="+min_x+"&min_y="+min_y+"&poi_list="+poilist+"&zoom="+map.getZoom()+"&dummy="+new Date().getTime(),{format:OpenLayers.Format.KML,formatOptions:{extractStyles:true,extractAttributes:true}});map.addLayer(poi_layer);selectControl=new OpenLayers.Control.SelectFeature(poi_layer,{hover:true,onSelect:onFeatureSelect,onUnselect:onFeatureUnselect});poi_layer.preFeatureInsert=myStyle;map.addControl(selectControl);selectControl.activate();map.setLayerZIndex(markers,1000)}catch(err){}}function onPopupClose(evt){selectControl.unselect(selectedFeature)}function onFeatureSelect(feature){map.setLayerZIndex(markers,0);document.getElementById("map").style.cursor="default";selectedFeature=feature;var poi_tp=feature.attributes.type;var content="<table cellpadding='0' cellspacing='0' border='0'><tr><td>";switch(poi_tp){case"MRT":content+=feature.attributes.name;content+="</td></tr></table>";break;case"TAXI":content+="-";content+="</td></tr></table>";break;case"ERP":content="<iframe src ='ERP_DATA.php?gantry_no="+feature.attributes.description+"&gantry_name="+feature.attributes.name+"' width='400px' height='250px'></iframe><br><font face='tahoma' size='1' color='red'><sup>*</sup> Note: <br>HGV = Heavy Goods Vehicle<br>VHGV = Very Heavy Goods Vehicle</font>";break;case"PETROL":content+="<b>"+feature.attributes.name+"</b><br>"+feature.attributes.description;content+="</td></tr></table>";break;case"RB":content=trim(feature.attributes.description);break;case"F1Track":content+="<table cellpadding='0' cellspacing='0' border='0' width='358'><tr><td>"+trim(feature.attributes.name)+"</td></tr></table></td></tr></table>";break;case"F1":content+=trim(feature.attributes.name)+"</td></tr></table>";break;case"news":content+="<table cellpadding='0' cellspacing='0' border='0' width='358'><tr><td>"+trim(feature.attributes.description)+"</td></tr></table></td></tr></table>";break;default:content+="<b>"+feature.attributes.name+"</b><br>"+feature.attributes.description;if (feature.attributes.postalcode != "-"){content += "<br>S "+feature.attributes.postalcode;}content+="</td></tr></table>";break}feature.type=poi_tp;if(poi_tp!="TAXI"&&poi_tp!="ndpline"){if(content.search("<script")!=-1){content="Content contained Javascript! Escaped content below.<br />"+content.replace(/></g,"&lt;")}if(!IsNumeric(content)){popup=new OpenLayers.Popup.FramedCloud("chicken",feature.geometry.getBounds().getCenterLonLat(),new OpenLayers.Size(100,100),content,null,true,onPopupClose);feature.popup=popup;popup.type="kml";map.addPopup(popup)}}}function onFeatureUnselect(feature){if(feature.type=="news"){var map_coord_old=map.getCenter();var old_lon=map_coord_old.lon;var old_lat=map_coord_old.lat;recordLog(old_lon,old_lat,old_lon,old_lat,"news-click",map.getZoom())}map.setLayerZIndex(markers,1000);document.getElementById("map").style.cursor="url(openhand.Cur),default";if(feature.popup!=null){map.removePopup(feature.popup);feature.popup.destroy();feature.popup=null}}function mapZoomEvent(event){return}function openCall(val){window.open(val,'insert','resizable=yes,scrollbars=no,titlebar=no,width=400,height=200')}function addLocateMarker(lonLat,fullname,image,image_call,call_url,closeBox,overflow){popupClass=AutoSizeFramedCloud;var feature;var maptip_info=fullname.replace(/&lt;br&gt;/g,"<br/>");popupContentHTML="<table cellpadding='0' cellspacing='0' border='0'>";if(image!="-"){if(image_call!="-"){popupContentHTML+="<tr><td>"+maptip_info+"</td><td valign='bottom' align='right' width='25%'><br><a href='#' onClick='openCall(\""+call_url+"\")'><img border = '0' src='"+image_call+"'></a></td></tr>"}else{popupContentHTML+="<tr><td colspan='2'>"+maptip_info+"</td></tr>"}popupContentHTML+="<tr><td colspan='2'><img src="+image+" ></td></tr>";feature=new OpenLayers.Feature(markers,lonLat,{icon:camera_symbol})}else{if(image_call!="-"){popupContentHTML+="<tr><td>"+maptip_info+"</td><td valign='bottom' align='right' width='25%'><br><a href='#' onClick='openCall(\""+call_url+"\")'><img border = '0' src='"+image_call+"'></a></td></tr>"}else{popupContentHTML+="<tr><td colspan='2'>"+maptip_info+"</td></tr>"}feature=new OpenLayers.Feature(markers,lonLat,{icon:default_symbol})}popupContentHTML+="</table>";var marker=feature.createMarker();if(maptip_info!="-"){feature.closeBox=closeBox;feature.popupClass=popupClass;feature.data.popupContentHTML=popupContentHTML;feature.data.overflow=(overflow)?"auto":"hidden";var markerClick=function(evt){document.getElementById("map").style.cursor="pointer";if(this.popup==null){this.popup=this.createPopup(this.closeBox);map.addPopup(this.popup);this.popup.show()}else{this.popup.toggle()}currentPopup=this.popup;OpenLayers.Event.stop(evt)};var markerOut=function(evt){document.getElementById("map").style.cursor="url(openhand.Cur),default";return};marker.events.register("mouseover",feature,markerClick);marker.events.register("mouseout",feature,markerOut)}markers.addMarker(marker)}function chkF1(){if(document.getElementById("F1_chk").checked){f1closure.setVisibility(true)}else{f1closure.setVisibility(false)}}function chkChingay(){if(document.getElementById("Chingay_chk").checked){f1closure.setVisibility(true)}else{f1closure.setVisibility(false)}}function yog_check(){if (document.getElementById("poi_select_10").checked){map.setCenter(new OpenLayers.LonLat(103.88,1.33),0);}setPOI();}