var gMap;
var gLatlng;
var map_div_id;
var gMarkers;
var biggestZIndex;
var lastMarked;
var imgBase;
var placesInfo;

function mapComboInit(div_id, lat, long, places, img_base) {

	if (places.length == 0) {
		return false;
	}
	map_div_id = div_id;
	imgBase = img_base;
	placesInfo = places;
	
//	console.log(places);
	
	gLatlng = new google.maps.LatLng(lat, long);
	var myOptions = {
	  zoom: 13,
	  center: gLatlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP};
	
	var bounds = new google.maps.LatLngBounds();

	gMap = new google.maps.Map(document.getElementById(map_div_id), myOptions);
	
	gMarkers = [];
	
	var places_length = places.length;
	for(var i = 0; i < places_length; i++) {
		var lat = places[i][0];
		var long = places[i][1];
		var icon_type = places[i][2];
		var mLatlng = new google.maps.LatLng(lat, long);
		var icon_image = imgBase+'pin_'+ icon_type +'.png';
		
		gMarkers.push(
			new google.maps.Marker({
		      position: mLatlng, 
		      map: gMap,
		      icon: icon_image,
		      zIndex: i}
			)
		);
		biggestZIndex = i;
		bindMarkerEvent(gMarkers[i], i);
		bounds.extend(mLatlng);
	}
	gMap.fitBounds(bounds);
}

function markListing(number, stopAnimation){
	
	if (element = document.getElementById('rl'+number)) {
		element.className='regionlistinghover';
	}
	gMarkers[number].setAnimation(google.maps.Animation.BOUNCE);

	biggestZIndex++;
	gMarkers[number].setZIndex(biggestZIndex);
	
	if (typeof stopAnimation != 'undefined') {
		setTimeout(function() {
			gMarkers[number].setAnimation(null);
		}, 5000);
	}

}

function unmarkListing(number){
	
	if (element = document.getElementById('rl'+number)) {
		if (number%2 == 0) {
			element.className='regionlisting';
		}
		else {
			element.className='regionlisting2';
		}
	}
	
	gMarkers[number].setAnimation(null);
}

function bindMarkerEvent(marker, markerNum){
	
	google.maps.event.addListener(marker, 'click', function() {
	   gMap.setCenter(marker.getPosition());
	
	   markListing(markerNum, true);
	   
	   numberPropsPage = 25;
	   pagenum = Math.floor( markerNum / numberPropsPage );
	   propScroll = (markerNum - (pagenum  * numberPropsPage));
	   offset = propScroll *150 + (markerNum - (pagenum  * numberPropsPage));
		
		//scroll to the current property with the scrollbar
		if( document.getElementById( "pane1" ) != null ){
			$('#pane1')[0].scrollTo( offset );
		}
		else {
			var listingUrl = placesInfo[markerNum][3];
			window.location.href = listingUrl; 
		}

	});
}
