/**
 * @author Abraham Thomas, Sepia Catalyst Technologies, Bangalore, India
 */

      $(document).ready(function(){

		var tmpMrks = [];		// list of visible markers to be removed
		var infoWindow; // google maps currently allows only one infowindow hence this reusable variable
	  	var map = new GMap2(document.getElementById('locationmapbox'));
	    var rsuPoint = new GLatLng(13.027823, 77.633729);
		var rsuZoom = 13; //default zoom level
		//put a marker on Royal Suites
		var rsuHtml = '<div class="maptext">\
					  		<strong>Royal Suites</strong><br/>\
							Phone: +91 80 4019 9999, +91 98450 81006<br/>\
							Email: sales@royalsuites.in <br/>\
						</div>';
		
				  
		//FUNCTION: set markers with click and mouseover pop ups
	       function createMarker(thePoint, theHtml, theIcon) {
		        var marker = new GMarker(thePoint, {icon:theIcon});
				
		        // The new marker "click" listener        
		        GEvent.addListener(marker, "click", function() {
		          marker.openInfoWindowHtml(theHtml);
		        });

		        // The new marker "mouseover" listener        
		        GEvent.addListener(marker, "mouseover", function() {
		          marker.openInfoWindowHtml(theHtml);
		        });        

		        return marker;
	      }

		//FUNCTION: set markers with click and mouseover pop ups and default pop-up
	       function createTaggedMarker(thePoint, theHtml, theIcon) {
		        var marker = new GMarker(thePoint, {icon:theIcon});

		        // The new marker "click" listener        
		        GEvent.addListener(marker, "click", function() {
		          marker.openInfoWindowHtml(theHtml);
		        });

		        // The new marker "mouseover" listener        
		        GEvent.addListener(marker, "mouseover", function() {
		          marker.openInfoWindowHtml(theHtml);
		        });        

		        return marker;
	      }

		 //FUNCTION: clear old markers and add new
		 /* FORMAT:
		  *    NameOfFacility: 
		  *    One line description of facility
		  *    Dist: N kms, WalkTimeIcon: N mins, DriveTimeIcon: N mins
		  */
		 function createInfoWinHtml(mText){
			  var mHtml = '<div class="maptext">\
							  <strong>' + mText.mId + ': </strong>'+ mText.mDesc+'<br/>\
							  Distance: '+ mText.mDist + '&nbsp;&nbsp;&nbsp;'+ 
							  '<img class="mapicons" src="./images/mapicons/drive2-24.png" width="24" height="24" alt="Drive:" />&nbsp;' + mText.mDt + '&nbsp;'+ 
							  '<img class="mapicons" src="./images/mapicons/walker2-24.png" width="24" height="24" alt="Walk:" />&nbsp;' + mText.mWt + '&nbsp;'+ '\
						</div>';
			  return mHtml;
		 }		  
		  
		 //FUNCTION: clear old markers and add new
		 function clearAddMarkers(mList,mIcon){
			var i;
			var bounds = new GLatLngBounds(rsuPoint, rsuPoint);
			
			//remove all temporary markers first
			for (i = 0; i < tmpMrks.length; i++) {
				map.removeOverlay(tmpMrks[i]);
			}			
			tmpMrks.length = 0;		 	

			for (i=0; i<mList.length; i++){
		      var mP = new GLatLng(mList[i].mLat, mList[i].mLng);
			  var mHtml = createInfoWinHtml(mList[i]);
		      var mM = createMarker(mP, mHtml, mIcon);
		      map.addOverlay(mM);	
			  bounds.extend(mP);
			  tmpMrks[i] = mM;			
			}
			map.setZoom(map.getBoundsZoomLevel(bounds));
			map.setCenter(bounds.getCenter());
		 }

		 //FUNCTION: clear old markers and add new
		 function clearAddTaggedMarker(mList,mIcon){
			var i;
			var bounds = new GLatLngBounds(rsuPoint, rsuPoint);

			map.setZoom(rsuZoom);

			//remove all temporary markers first
			for (i = 0; i < tmpMrks.length; i++) {
				map.removeOverlay(tmpMrks[i]);
			}			
			tmpMrks.length = 0;		 	

    	    var mP = new GLatLng(mList[0].mLat, mList[0].mLng);
			var mHtml = createInfoWinHtml(mList[0]);
	        var mM = createTaggedMarker(mP, mHtml, mIcon);
	        map.addOverlay(mM);	
			bounds.extend(mP);
			map.setCenter(bounds.getCenter());
		    tmpMrks[0] = mM;			
		 }
		 
		// FUNCTION: Sample custom marker code created with Google Map Custom Marker Maker
		// http://www.powerhut.co.uk/googlemaps/custom_markers.php
		function createCustomIcon(fnamePart){
			var fNamePrefix = './images/mapicons/';
			var fName = fNamePrefix+fnamePart+'/';
			var myIcon = new GIcon(G_DEFAULT_ICON);
			myIcon.image = fName + 'image.png';
			myIcon.shadow = fName + 'shadow.png';
			myIcon.iconSize = new GSize(32, 37);
			myIcon.shadowSize = new GSize(51, 37);
			myIcon.iconAnchor = new GPoint(16, 37);
			myIcon.infoWindowAnchor = new GPoint(16, 8);
			myIcon.printImage = fName + 'printImage.gif';
			myIcon.mozPrintImage = fName + 'mozPrintImage.gif';
			myIcon.printShadow = fName + 'printShadow.gif';
			myIcon.transparent = fName + 'transparent.png';
			myIcon.imageMap = [29, 0, 30, 1, 31, 2, 31, 3, 31, 4, 31, 5, 31, 6, 31, 7, 31, 8, 31, 9, 31, 10, 31, 11, 31, 12, 31, 13, 31, 14, 31, 15, 31, 16, 31, 17, 31, 18, 31, 19, 31, 20, 31, 21, 31, 22, 31, 23, 31, 24, 31, 25, 31, 26, 31, 27, 31, 28, 31, 29, 30, 30, 29, 31, 23, 32, 22, 33, 21, 34, 20, 35, 19, 36, 12, 36, 11, 35, 10, 34, 9, 33, 8, 32, 2, 31, 1, 30, 0, 29, 0, 28, 0, 27, 0, 26, 0, 25, 0, 24, 0, 23, 0, 22, 0, 21, 0, 20, 0, 19, 0, 18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 1, 1, 2, 0];
			return myIcon;
		}

		//create the base map object and put the home marker - Royal Suites custom icon
		var rsuIcon = createCustomIcon('rsuites');
	    var rsuMarker = createMarker(rsuPoint, rsuHtml, rsuIcon);
        map.setCenter(rsuPoint, rsuZoom);
		map.setUIToDefault();
	    map.addOverlay(rsuMarker);
		 
		 //handle the click-to-see facilities - restuarants
		 $('#restuarants').bind('click', function(){
		 	var mList = [
				 { mLat:13.026161, mLng:77.635843,
				 	mId:"Pizza Hut", mDesc:"Pizzas", mDist:"100 meters", mWt:"4 mins", mDt:"2 mins"
				 },
				 { mLat:13.022262, mLng:77.639555,
				 	mId:"Dominos Pizza", mDesc:"Pizzas", mDist:"900 meters", mWt:"8 mins", mDt:"4 mins"
				 },
				 { mLat:13.015437, mLng:77.635918,
				 	mId:"Nandhana Palace", mDesc:"Andhra Style Cuisine", mDist:"1.3 km", mWt:"13 mins", mDt:"6 mins" 
				 },
				 //{ mLat:13.022074, mLng:77.639673,
				 	//mId:"Coffee Day", mDesc:"Beverages & Snacks", mDist:"500 meters", mWt:"5 mins", mDt:"2 mins"
				 //},
				 //{ mLat:13.021719, mLng:77.639780,
				 	//mId:"Barista", mDesc:"Beverages & Snacks", mDist:"1 km", mWt:"10 mins", mDt:"5 mins"
				 //},
				 { mLat:13.021834, mLng:77.639898,
				 	mId:"Chungs", mDesc:"Chinese Cuisine", mDist:"1 km", mWt:"10 mins", mDt:"4 mins"
				 },
				 { mLat:13.017527, mLng:77.636293,
				 	mId:"Kalpakka", mDesc:"Kerala Style Cuisine", mDist:"1.2 km", mWt:"12 mins", mDt:"4 mins" 
				 },
				 { mLat:13.023412, mLng:77.635424,
				 	mId:"Casa Picola", mDesc:"Italian Cuisine", mDist:"800 meters", mWt:"8 mins", mDt:"3 mins" 
				 },
				 { mLat:13.021573, mLng:77.640531,
				 	mId:"Osteria", mDesc:"Italian Cuisine", mDist:"1 km", mWt:"10 mins", mDt:"5 mins" 
				 },
				 //{ mLat:13.021834, mLng:77.639995,
				 	//mId:"Baskin Robbins", mDesc:"Icecream Parlour", mDist:"1 km", mWt:"10 mins", mDt:"5 mins" 
				 //},
				 //{ mLat:13.024625, mLng:77.637237,
				 	//mId:"Goldline Bakery", mDesc:"Breads and Pastries", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins" 
				 //},
				 //{ mLat:13.022085, mLng:77.638729,
				 	//mId:"Sweet Chariot", mDesc:"Cakes and Pastries", mDist:"800 meters", mWt:"8 mins", mDt:"4 mins" 
				 //},
				 { mLat:13.020663, mLng:77.636755,
				 	mId:"Sukh Sagar", mDesc:"South/North Indian (Veg) Cuisine", mDist:"600 meters", mWt:"6 mins", mDt:"5 mins" 
				 },
				 //{ mLat:13.024552, mLng:77.637227,
				 	//mId:"South Spice", mDesc:"Tamil Nadu Style (Veg) Cuisine", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins" 
				 //},
				 { mLat:13.021029, mLng:77.642516,
				 	mId:"Corner House", mDesc:"Icecream Parlour", mDist:"1 km", mWt:"10 mins", mDt:"5 mins" 
				 }
			]
			// Create custom marker icon
			var mIcon = createCustomIcon('restaurant');
			clearAddMarkers(mList, mIcon);
		 });
		 
		 //handle the click on facilities - banks and ATMs
		 $('#atms').bind('click', function(){
		 	var mList = [
				 { mLat:13.024322, mLng:77.637237,
				 	mId:"HDFC Bank", mDesc:"Branch & ATM", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins" 
				 },
				 { mLat:13.024698, mLng:77.636873,
				 	mId:"ICICI Bank", mDesc:"Branch & ATM", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins" 
				 },
				 { mLat:13.027060, mLng:77.632409,
				 	mId:"SBI Bank", mDesc:"Branch & ATM", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins" 
				 },
				 { mLat:13.021478, mLng:77.640767,
				 	mId:"Axis Bank", mDesc:"Branch & ATM", mDist:"1 km", mWt:"10 mins", mDt:"5 mins" 
				 },
				 { mLat:13.016973, mLng:77.636132,
				 	mId:"ICICI Bank", mDesc:"ATM", mDist:"1.2 kms", mWt:"12 mins", mDt:"5 mins"
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('bank');
			clearAddMarkers(mList, mIcon);
		 });

		 //handle the click on facilities - grocery stores
		 $('#grocery').bind('click', function(){
		 	var mList = [
				 { mLat:13.024437, mLng:77.636926,
				 	mId:"Food World", mDesc:"Groceries", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins"
				 },
				 {  mLat:13.029945, mLng:77.634459,
				 	mId:"Shobha Retail", mDesc:"Groceries", mDist:"200 meters", mWt:"3 mins", mDt:"2 mins" 
				 },
				 {  mLat:13.031576, mLng:77.635735,
				 	mId:"Reliance Fresh", mDesc:"Groceries", mDist:"300 meters", mWt:"4 mins", mDt:"2 mins"
				 },
				 //{  mLat:13.029778, mLng:77.634662,
				 	//mId:"Smart Retail", mDesc:"Groceries", mDist:"200 meters", mWt:"3 mins", mDt:"2 mins"
				 //},
				 {  mLat:13.022639, mLng:77.637731,
				 	mId:"Shobha Retail", mDesc:"Groceries", mDist:"500 meters", mWt:"6 mins", mDt:"3 mins"
				 },
				 {  mLat:13.020485, mLng:77.636787,
				 	mId:"7 Days Super Market", mDesc:"Groceries", mDist:"600 meters", mWt:"7 mins", mDt:"3 mins" 
				 },
				 {  mLat:13.020715796882715, mLng:77.65284776687622,
				 	mId:"M K Ahmed Retail", mDesc:"Groceries", mDist:"1.5 kms", mWt:"15 mins", mDt:"5 mins"
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('grocery');
			clearAddMarkers(mList, mIcon);
		 });

		 //handle the click on facilities - BIAL
		 $('#bial').bind('click', function(){
		 	var mList = [
				 {  mLat:13.199956, mLng:77.701664,
				 	mId:"Airport", mDesc:"Bangalore International Airport", mDist:"32 kms", mWt:"320 mins", mDt:"40 mins" 
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('airport');
			clearAddMarkers(mList, mIcon);
		 });

		 //handle the click on facilities - Railway Stations
		 $('#rail').bind('click', function(){
		 	var mList = [
				 {  mLat:12.976534, mLng:77.568369,
				 	mId:"Bangalore City Railway Station", mDesc:"", mDist:"18 kms", mWt:"180 mins", mDt:"45 mins" 
				 },
				 {  mLat:12.993324, mLng:77.599847,
				 	mId:"Cantonment Railway Station", mDesc:"", mDist:"9 kms", mWt:"80 mins", mDt:"30 mins" 
				 },
				 {  mLat:13.006036, mLng:77.627656,
				 	mId:"Banaswadi Railway Station", mDesc:"", mDist:"6 kms", mWt:"60 mins", mDt:"20 mins" 
				 },
				 {  mLat:13.000684, mLng:77.676945,
				 	mId:"KR Puram Railway Station", mDesc:"", mDist:"6 kms", mWt:"60 mins", mDt:"20 mins" 
				 },
				 {  mLat:13.001457, mLng:77.617872,
				 	mId:"Bangalore East Railway Station", mDesc:"", mDist:"7 kms", mWt:"70 mins", mDt:"22 mins" 
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('railway');
			clearAddMarkers(mList, mIcon);
		 });


		 //handle the click on facilities - airport shuttle (VOLVO)
		 $('#vayu').bind('click', function(){
		 	var mList = [
				 {  mLat:13.025691367012538, mLng:77.63795614242554,
				 	mId:"Shuttle (to Airport)", mDesc:"BMTC Vayu Vajra Service", mDist:"200 meters", mWt:"4 mins", mDt:"2 mins" 
				 },
				 {  mLat:13.027614669857508, mLng:77.63379335403442,
				 	mId:"Shuttle (from Airport)", mDesc:"BMTC Vayu Vajra Service", mDist:"25 meters", mWt:"1 mins", mDt:"0 mins" 
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('shuttle');
			clearAddMarkers(mList, mIcon);
		 });

		 //handle the click on facilities - Hospitals
		 $('#hospitals').bind('click', function(){ 	
		 	var mList = [
				 {  mLat:13.020130, mLng:77.651056,
				 	mId:"Banaswadi Hospital", mDesc:"Hospital", mDist:"1.5 kms", mWt:"14 mins", mDt:"5 mins" 
				 },
				 {   mLat:13.018437, mLng:77.636422,
				 	mId:"Satya Hospital", mDesc:"Hospital", mDist:"750 meters", mWt:"8 mins", mDt:"4 mins"
				 }
			]

			// Create custom marker code
			var mIcon = createCustomIcon('hospital');
			clearAddMarkers(mList, mIcon);
		 });
		 

		//Manyata Tech Park
		 $('#mtp').bind('click', function(){ 	
		 	var mList = [
				 {  mLat:13.041537264413618, mLng:77.62070417404175,
				 	mId:"Manyata Tech Park", mDesc:"IT Companies - IBM, Philips, NXP, etc.", mDist:"2.5 kms", mWt:"22 mins", mDt:"7 mins"
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		
		//Campus Crusade for Christ(CCCI) 
		 $('#ccci').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.015489250067553, mLng:77.62937307357788,	
			 	   mId:"India Campus Crusade For Christ (ICCC)", mDesc:"Christian Mission", mDist:"2 kms", mWt:"18 mins", mDt:"5 mins" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		
		//Valsalya Trust
		 $('#vals').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.022827, mLng:77.644072,		
			 	   mId:"Valsalya Charitable Trust", mDesc:"NGO", mDist:"1.5 kms", mWt:"15 mins", mDt:"6 mins" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		 
		//SABC 
		 $('#sabc').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.071135851375276, mLng:77.6509165763855,		
			 	   mId:"South Asia Bible College (SABC)", mDesc:"Christian Seminary", mDist:"5.5 kms", mWt:"45 mins", mDt:"13 mins" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		 
		//Biozene 
		 $('#bioz').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.060433946755174, mLng:77.64847040176392,		
			 	   mId:"Biozene", mDesc:"Biotech Research", mDist:"4 kms", mWt:"30 mins", mDt:"12 mins" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		 
		 
		//Indo-Asian Academy 
		 $('#indas').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.027363805116117, mLng:77.63503789901733,		
			 	   mId:"Indo-Asian Academy", mDesc:"College", mDist:"50 meters", mWt:"2 mins", mDt:"1 min" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });
		 
		//Kristu Jayanti College			
		 $('#krij').bind('click', function(){ 	
		 	var mList = [
				 { mLat:13.061019219154057, mLng:77.64477968215942,		
			 	   mId:"Kristu Jayanti College", mDesc:"College", mDist:"4.5 kms", mWt:"35 mins", mDt:"14 mins" 
				 }
			]
			clearAddTaggedMarker(mList);
		 });

		//Show All
		/*
		 $('#landmarks').bind('click', function(){ 	
		 	var mList = [
				 { mId :"Manyata Tech Park (2.5 kms)", mLat:13.041537264413618, mLng:77.62070417404175},	
				 { mId :"Campus Crusade For Christ India (2.0 kms)", mLat:13.015489250067553, mLng:77.62937307357788},		
				 { mId :"South Asia Bible College (SABC) (5.5 kms)", mLat:13.071135851375276, mLng:77.6509165763855},		
				 { mId :"Biozene(4.0 kms)", mLat:13.060433946755174, mLng:77.64847040176392},		
				{ mId :"Indo-Asian Academy (50 meters)", mLat:13.027363805116117, mLng:77.63503789901733},		
				{ mId :"Indian Academy Institutions (100 meters)", mLat:13.029914251477344, mLng:77.63495206832886},		
				{ mId :"Kristu Jayanti College (4.5 kms)", mLat:13.061019219154057, mLng:77.64477968215942},		
				 { mId :"Vatsalya Charitable Trust (5.0 kms)", mLat:13.060350336299269, mLng:77.65362024307251}		
			]
			clearAddMarkers(mList);
		 });
		 */
		 
      });

