function addCommas(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


var markerSet = new Array();
var map;

  function handleApiReady(Mlat,Mlng,Mzoom,hId){

	  
	  if(Mlat=='0' || Mlng=='0'){
		  Mlat = 12.352872140986854;
		  Mlng = 99.99760150909424;
		  Mzoom = 10;
	  }
	  
	  var latlng = new google.maps.LatLng(Mlat,Mlng);
	    var mapOptions = {
	      zoom: Mzoom,
	      center: latlng,
	      scrollwheel: false,
	      mapTypeId: google.maps.MapTypeId.ROADMAP
	    };
	    map = new google.maps.Map(document.getElementById("show-gmap"), mapOptions);
	    var Gstart =  google.maps.event.addListener(map, 'tilesloaded', function() {

	    	showMarkerHotel(map.getBounds(),map,hId);
 	
	    });
	    
	    google.maps.event.addListener(map, 'dragend', function() {
	    	google.maps.event.removeListener(Gstart);
	    	showMarkerHotel(map.getBounds(),map,hId);
	    });
	    
	    google.maps.event.addListener(map, 'zoom_changed', function() {
	    	google.maps.event.removeListener(Gstart);
	    	showMarkerHotel(map.getBounds(),map,hId);
	    });
	    
	  
  }
  
  function showMarkerHotel(LatLngBounds,map,hId){
	  
	  var CONFIG_ZOOM = 9;
	  var current_zoom = map.getZoom();
	  
	 
	  
	  //alert('goto' + SouthWest);
	  
	  if(CONFIG_ZOOM < current_zoom  ){
		  hotelMarker(LatLngBounds,map,hId);
	  }else{
		  removeAllMarker();
		  cityMarker(LatLngBounds,map,hId)
	  }
	  
  }
  
  function cityMarker(LatLngBounds,map,hId){
	  var SouthWest = LatLngBounds.getSouthWest();
	  var NorthEast = LatLngBounds.getNorthEast();
	  
	  var file = homePath + "system/local_module/map/getCityInfo.php";
	  
	  $.post(file, { 
          'swLat'	: SouthWest.lat()
         ,'swLong' 	: SouthWest.lng()
         ,'neLat'	: NorthEast.lat()
         ,'neLong'	: NorthEast.lng()
		  },
			function(data){        
			
			if(data.total > 0){
				  removeAllMarker();
				  
				  var image = new google.maps.MarkerImage(homePath+'system/local_module/map/images/city.png',
	        		      new google.maps.Size(20,26),		        		     
     		          new google.maps.Point(0,0),
	        		      new google.maps.Point(10, 26));
	        	 
	        	  var shapeImage = {
	        		      coord: [2,1,19,19],
	        		      type: 'rect'
	        		  };
				  
				  $.each(data.marker, function(c_id,c_ar){
					  
					  setCityMark(c_id,c_ar,map,image,shapeImage);
			 	  
			   });
			}
			},"json");
  }
  
  
  function hotelMarker(LatLngBounds,map,hId){
	  
	  var SouthWest = LatLngBounds.getSouthWest();
	  var NorthEast = LatLngBounds.getNorthEast();
	  
	  var file = homePath + "system/local_module/map/getInfo.php";
	  
	     $.post(file, { 
	    	             'swLat'	: SouthWest.lat()
	    	            ,'swLong' 	: SouthWest.lng()
	    	            ,'neLat'	: NorthEast.lat()
	    	            ,'neLong'	: NorthEast.lng()
	     			  },
	        function(data){        
	         
	     	  if(data.total > 0){
	        	  removeAllMarker();
	        	  var image = new google.maps.MarkerImage(homePath+'system/local_module/map/images/hotel_1.png',
	        		      new google.maps.Size(20,26),		        		     
     		          new google.maps.Point(0,0),
	        		      new google.maps.Point(10, 26));
	        	 
	        	  var shapeImage = {
	        		      coord: [2,1,19,19],
	        		      type: 'rect'
	        		  };

	        	  var imageActive = new google.maps.MarkerImage(homePath+'system/local_module/map/images/Hotel_active.png',
	        		      new google.maps.Size(40,55),		        		     
     		          new google.maps.Point(2,2),
	        		      new google.maps.Point(23,57));
	        	  
	        	  var shapeImageActive = {
	        		      coord: [4,4,39,44],
	        		      type: 'rect'
	        		  };

	        	  
	 	     	  $.each(data.marker, function(h_id,h_ar){
	 	     		  var tmpImg 	= image;
	 	     		  var tmpShape 	= shapeImage;
	 	     		  if(hId == h_id){
	 	     			  tmpImg 	= imageActive;
	 	     			  tmpShape 	= shapeImageActive;
	 	     		  }
		        	  setMark(h_id,h_ar,map,tmpImg,tmpShape);
		        	  
		        	 
		          });
	     	  }
	       },"json");
  }
  
  function setMark(id,detail,map,image,shape){
	
	  
	    var myLatLng = new google.maps.LatLng(detail['lat'], detail['lng']);
	    var marker = new google.maps.Marker({
	        position: myLatLng,
	        
	        icon: image,
	        shape: shape,
	        flat: true,
	        visible: false,
	        title: detail['name']
	    });
	    
	    google.maps.event.addListener(marker, 'mouseover', function(event) {
	    	 showGMapInfo(id,detail,event);
	      });
	    
	    google.maps.event.addListener(marker, 'mouseout', function(event) {
	    	hideGMapInfo();
	      });
	    
	    google.maps.event.addListener(marker, 'click', function(event) {
	    	location.href = detail['url'];
	      });
	    
	    marker.setVisible(true);
	    marker.setMap(map);
	    markerSet.push(marker);
	  
  }
  
  function setCityMark(id,detail,map,image,shape){
		
	    var myLatLng = new google.maps.LatLng(detail['lat'], detail['lng']);
	    var marker = new google.maps.Marker({
	        position: myLatLng,
	        
	        icon: image,
	        shape: shape,
	        flat: true,
	        visible: false,
	        title: detail['name']
	    });
	    
	    google.maps.event.addListener(marker, 'mouseover', function(event) {
	    	 showGMapCityInfo(id,detail,event);
	      });
	    
	    google.maps.event.addListener(marker, 'mouseout', function(event) {
	    	hideGMapCityInfo();
	      });
	    
	    google.maps.event.addListener(marker, 'click', function(event) {
	    	location.href = detail['url'];
	      });
	    
	    marker.setVisible(true);
	    marker.setMap(map);
	    markerSet.push(marker);
	  
}
  
  function removeAllMarker(){
	 
		  for (var i=0; i<markerSet.length; i++) {
			  markerSet[i].setMap(null);
		  }
		  markerSet = new Array();
	 
  }
  
  function showGMapInfo(id,detail,e){
	  var elem = $("#Gmap_info");
	  var x;
	  var y;
	  
	  if (e.pageX || e.pageY)
	    { 
	      x = e.pageX;
	      y = e.pageY;
	    }
	    else if (e.clientX || e.clientY)
	    { 
	      
	      x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	      y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	      
	    }
	  
	  x += 10;
	  y -= 140;
	  
	  elem.css({'left':x+"px",'top':y+"px"});
	  elem.html(gmap_info(id,detail));
	  elem.show();
	  
  }
  
  function showGMapCityInfo(id,detail,e){
	  var elem = $("#Gmap_city_info");
	  var x;
	  var y;
	  var showText;
	  
	  showText = '<div style="color:#000000;"><strong style="color:#000000;">'+detail['name']+'</strong>&nbsp;&nbsp;'+detail['total']+' Hotels</div>'
	  
	  if (e.pageX || e.pageY)
	    { 
	      x = e.pageX;
	      y = e.pageY;
	    }
	    else if (e.clientX || e.clientY)
	    { 
	      
	      x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	      y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	      
	    }
	  
	  x += 10;
	  y -= 10;
	  
	  elem.css({'left':x+"px",'top':y+"px"});
	  elem.html(showText);
	  elem.show();
	  
  }
  
  function hideGMapInfo(){
	  var elem = $("#Gmap_info");
	  elem.hide();
  }
  
  function hideGMapCityInfo(){
	  var elem = $("#Gmap_city_info");
	  elem.hide();
  }
  
  function gmap_info(id,detail){
	  
	  var currency_code_from 	= detail['curr'];
	  var currency_code_to		= $("#select_currency").val();
      
	  
	  var exchange_rate = r_currency[currency_code_from]['rate'] / r_currency[currency_code_to]['rate'];
	  var cal = detail['rate'] * exchange_rate;
	  	  cal = Math.ceil(cal); 
	      cal = addCommas(cal);
	  
	 var cal_full = detail['full_rate'] * exchange_rate;
	     cal_full = Math.ceil(cal_full);
	     cal_full = addCommas(cal_full);
	 
	  var img_thumb ;
	  if(detail['img'] != ''){
		  img_thumb = homePath+'images/hotelPics/'+id+'/'+detail['img'];
	  }else{
		  img_thumb = homePath+'images/thumb2_blank.gif';
	  }
	     
	     
	  var ret =  	'<div style="margin:10px 0;float:left; width:97px; height:83px;background-color:#DDDDDD;"><img src="'+ img_thumb +'" width="97" height="83"></div>'
				  + '<div style="float:left; margin:0 0 0 10px; width:220px;">'
				  +	'<div style="padding:4px;"><strong class="content_01" style="color:#000000;font-size:13px;">'+detail['name']+'</strong></div>'
				  + '<table width="100%" border="0" cellspacing="0" cellpadding="4" >'
				  +		'<tr align="left" valign="top"><td width="31%"><strong class="content_04">Address:</strong></td>'
				  +			'<td width="69%" class="content_04">'+detail['address']+'</td>'
				  +		'</tr>'
				  +		'<tr align="left" valign="top">'
				  +			'<td><strong class="content_04">From:</strong></td>'
				  +			'<td><div style="text-decoration:line-through;" class="content_04">'+currency_code_to+'&nbsp;'+cal_full+'</div>'
				  +				'<strong style="color:#CC0000; font-size:13px;">'+currency_code_to+'</strong>&nbsp;<strong style="color:#CC0000; font-size:18px;">'+cal+'</strong>'
				  +			'</td>'
				  +		'</tr>'
				  +	'</table>'
				  +	'</div>'
				  +	'<div style="height:5px; clear:both;"></div>';
		 
	  return ret;
  }
  
