
var phpxml = web_addr+'phpxml/';
/* Constructor */
var mgr;
var locationMarker = [];
var small = [];
var medium = [];
var big = [];

var mapLoadType;
var handler = new Array();

var icon_0 = new GIcon();

function createMarker( mapicon, point, xmldata ) {
	var markerme = 0;

	var markerOptions = {
		icon:mapicon,
		labelText: xmldata.name,
		labelClass: 'markerLabel',
		labelOffset: new GSize(-20, 6),
		title:xmldata.name,
		zIndexProcess:landmark_zIndex
	};

 	markerme = new LabeledMarker( point, markerOptions );

 	var html = '<form class="map_info_box">';
//	html += '<div style="width:300px;">';
//
//	html += '<div style="margin:5px 0"><b>'+data.name+'</b></div>';


	html += '<b>'+xmldata.name+'</b>';
	html += '<div class="infoseperator"></div>';

	if(xmldata.description) {
		html += xmldata.description;
		html += '<div class="infoseperator"></div>';
	}

	if(xmldata.link) {
		html += '<a href="http://'+xmldata.link+'" target="_blank">'+xmldata.link+'</a>';
		html += '<div class="infoseperator"></div>';
	}

	if(xmldata.photo_id) {
		html += '<div>';
		html += '<img style="border: medium none;" width="'+xmldata.photo_width+'" height="'+xmldata.photo_height+'" src="'+web_addr+'/photos/web/marker/markerweb_'+xmldata.photo_id+'.jpg" />';
		html += '</div>';
		html += '<div class="infoseperator"></div>';
	}


	html += '</form>';

	GEvent.addListener(markerme, 'click', function() {

		markerme.openInfoWindow(html,{maxWidth:300});
	});

	return markerme;

}

/*-----Get goto marker------------*/
function pan_markers(loadType) {
	if(loadType != 3) {

	var goto_marker = {'toShunyi':[],'toCity':[]};

	goto_marker['toShunyi']['lat'] = 39.968009;
	goto_marker['toShunyi']['lng'] = 116.454000;
	goto_marker['toShunyi']['destinationLat'] = 40.048936;
	goto_marker['toShunyi']['destinationLng'] = 116.544662;
	goto_marker['toShunyi']['image'] = 'shunyi3';
	goto_marker['toShunyi']['tooltip'] = 'Click to go to Shunyi';
	goto_marker['toShunyi']['imagewidth'] = 137;
	goto_marker['toShunyi']['imageheight'] = 75;

	goto_marker['toCity']['lat'] = 40.02354;
	goto_marker['toCity']['lng'] = 116.521851;
	goto_marker['toCity']['destinationLat'] = 39.937958;
	goto_marker['toCity']['destinationLng'] = 116.449577;
	goto_marker['toCity']['image'] = 'city';
	goto_marker['toCity']['tooltip'] = 'Click to go to City';
	goto_marker['toCity']['imagewidth'] = 136;
	goto_marker['toCity']['imageheight'] = 75;

	var group = new Array();
	group = arrayKeys( goto_marker );

	for(i in group) {

		var c = group[i];

		if(typeof(goto_marker[c]) == 'object') {
			var point = new GLatLng(goto_marker[c]['lat'],goto_marker[c]['lng']);
			var destination = new GLatLng(goto_marker[c]['destinationLat'],goto_marker[c]['destinationLng']);
			var mapmarker = new goto_markers(point,destination,goto_marker[c]['image'],goto_marker[c]['imagewidth'],goto_marker[c]['imageheight'],goto_marker[c]['tooltip']);

			mgr.addMarker(mapmarker,12);
		}
		else break;

	}
	}
}

function goto_markers(point,destination,image,imagewidth,imageheight,tooltip) {

	iconmap = new GIcon();

	iconmap.image =  web_addr + 'images/map/goto_'+ image +'.gif';
	iconmap.iconSize = new GSize(imagewidth,imageheight);
	iconmap.iconAnchor = new GPoint(50,50);

	mapmarker = new GMarker(point, {icon:iconmap,title:tooltip,zIndexProcess:goto_zIndex} );

	GEvent.addListener(mapmarker, 'click', function() {
		map.panTo(destination);
	});
	return mapmarker
}

function location_markers(loadType) {

	GDownloadUrl(phpxml+"mapmarker.php", function(data) {
 	 	var xml = GXml.parse(data);

		var locationList = xml.documentElement.getElementsByTagName("location");
  		var icon;

  		for ( var a = 0; a < locationList.length; a++) {

	  	var xmldata = [];
	  	xmldata.type = (locationList[a].getAttribute('type') ? locationList[a].getAttribute('type'):'');
			xmldata.name = (locationList[a].getAttribute('name') ? locationList[a].getAttribute('name'):'');
			xmldata.lat = (locationList[a].getAttribute('lat') ? parseFloat(locationList[a].getAttribute('lat')):'');
			xmldata.lng = (locationList[a].getAttribute('lng') ? parseFloat(locationList[a].getAttribute('lng')):'');
			xmldata.description = (locationList[a].getAttribute('description') ? locationList[a].getAttribute('description'):'');
		 	xmldata.link = (locationList[a].getAttribute('link') ? locationList[a].getAttribute('link'):'');
		 	xmldata.photo_id = (locationList[a].getAttribute('photo_id') ? locationList[a].getAttribute('photo_id'):'');
		 	xmldata.photo_dimension = (locationList[a].getAttribute('photo_dimension') ? locationList[a].getAttribute('photo_dimension'):'');
		 	xmldata.photo_width = (locationList[a].getAttribute('photo_width') ? locationList[a].getAttribute('photo_width'):'');
		 	xmldata.photo_height = (locationList[a].getAttribute('photo_height') ? locationList[a].getAttribute('photo_height'):'');
		 	xmldata.zoom = (locationList[a].getAttribute('zoom') ? locationList[a].getAttribute('zoom'):'');
		 	xmldata.marker_id = (locationList[a].getAttribute('marker_id') ? locationList[a].getAttribute('marker_id'):'');


		 	if(loadType == 3 && ( xmldata.type == 'school' || xmldata.type == 'kindergarten')) continue;

			var point = new GLatLng(xmldata.lat,xmldata.lng);
			var iconmap = new GIcon();
			switch(xmldata.type) {
		 		case 'subway':
		 		iconmap.image =  web_addr + 'images/map/subway.gif';
				iconmap.iconSize = new GSize(12,12);
				iconmap.iconAnchor = new GPoint(6,6);
				iconmap.infoWindowAnchor = new GPoint(6,6);
				xmldata.subway_line = (locationList[a].getAttribute('marker_id') ? locationList[a].getAttribute('subway_line'):'');

				var subwayLine = xmldata.subway_line.replace(',',' + ')
				xmldata.name = xmldata.name + ' [ Subway Line ' + subwayLine + ' ] ';
				break;

				case 'landmark':
				iconmap.image =   web_addr + 'images/map/landmark.gif';
				iconmap.iconSize = new GSize(11,11);
				iconmap.iconAnchor = new GPoint(5,5);
				iconmap.infoWindowAnchor = new GPoint(5, 5);
				break;

				default:
				iconmap.image =   web_addr + 'images/map/' + xmldata.type + '.gif';
			 	iconmap.shadow =  web_addr + 'images/map/shadow.png';
				iconmap.iconSize = new GSize(23,42);
				iconmap.shadowSize = new GSize(43,38);
				iconmap.iconAnchor = new GPoint(11,40);
				iconmap.infoWindowAnchor = new GPoint(11, 11);
				break;
			}




			if (xmldata.type == 'landmark') {
// 				var mapmarker = createMarker( iconmap, point, data );
			 	var mapmarker = createMarker( iconmap, point, xmldata );
			}
			else {
				var mapmarker = school_marker( point, xmldata, iconmap);
			}

//			map.addOverlay(mapmarker);
			mgr.addMarker(mapmarker,xmldata.zoom);
//			switch(xmlzoom) {
//				case '13': small.push(mapmarker);break;
//				case '14': medium.push(mapmarker);break;
//				case '15': big.push(mapmarker);break;
//			}
  		}


	});

}


/*----------------Add school marker------------------------*/
function school_marker( point_2, xmldata, icon_2) {
	switch(xmldata.type) {
		case 'school':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:school_zIndex} );
		break;
		case 'subway':


			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:subway_zIndex} );
		break;
		case 'gym':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:gym_zIndex} );
		break;
		case 'kindergarten':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:kindergarten_zIndex} );
		break;
		case 'grocery':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:grocery_zIndex} );
		break;
		case 'hospital':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:hospital_zIndex} );
		break;
		case 'info':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:info_zIndex} );
		break;
		case 'embassy':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:embassy_zIndex} );
		break;
		case 'shopping':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:shopping_zIndex} );
		break;
		case 'cafe':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:cafe_zIndex} );
		break;
		case 'restaurant':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:restaurant_zIndex} );
		break;
		case 'other':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:other_zIndex} );
		break;
		case 'hotel':
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:hotel_zIndex} );
		break;
		default:
			var marker_2 = new GMarker( point_2, {icon: icon_2,title:xmldata.name,zIndexProcess:hotel_zIndex} );
		break;
	}

//	var marker_2 = new GMarker( point_2, {icon: icon_2,title:data.name} );

 	var html = '<form class="map_info_box">';
//	html += '<div style="width:300px;">';
//
//	html += '<div style="margin:5px 0"><b>'+data.name+'</b></div>';


	html += '<b>'+xmldata.name+'</b>';
	html += '<div class="infoseperator"></div>';

	if(xmldata.description) {
		html += xmldata.description;
		html += '<div class="infoseperator"></div>';
	}

	if(xmldata.link) {
		html += '<a href="http://'+xmldata.link+'" target="_blank">'+xmldata.link+'</a>';
		html += '<div class="infoseperator"></div>';
	}

	if(xmldata.photo_id) {
		html += '<div>';
		html += '<img style="border: medium none;" width="'+xmldata.photo_width+'" height="'+xmldata.photo_height+'" src="'+web_addr+'/photos/web/marker/markerweb_'+xmldata.photo_id+'.jpg" />';
		html += '</div>';
		html += '<div class="infoseperator"></div>';
	}


	html += '</form>';

	GEvent.addListener(marker_2, 'click', function() {
		marker_2.openInfoWindowHtml(html);
	});

	return marker_2;



}

/*-----Load google map when map link clicked-----*/
function load_map(loadType) {

	mapLoadType = loadType;

	$("center_wrapper5").innerHTML = '';

	$("center_wrapper5").className = 'map_canvas';

	if (GBrowserIsCompatible()) {

	    map = new GMap2(document.getElementById("center_wrapper5"));


	    map.addControl(new GLargeMapControl());
			map.addControl(
          new DragZoomControl(
            {},
            { buttonStartingStyle: {display:"block",color:"black",background:"white",width:"7em",textAlign:"center",paddingTop:"1px",
                paddingBottom:"1px",fontFamily:"Arial, FreeSans, SimSun",fontSize:"12px",fontWeight:"bold",border:"1px solid black",cursor:"pointer"},
              buttonHTML: "Drag Zoom",
              buttonZoomingHTML: 'Drag a region on the map (click here to reset)',
              buttonZoomingStyle: {background:"yellow"},
              backButtonHTML: "Drag Zoom Back",
              backButtonStyle: {display:"none",marginTop:"3px",background:"#FFFFC8"},
              backButtonEnabled: true,
              overlayRemoveTime: 1500},
            {}),
          new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(70,7)));


			map.enableScrollWheelZoom();


			//var opoint = new GLatLng( 39.9385, 116.429 );
		switch(loadType) {
			case 3:
			var opoint = new GLatLng( 39.931755, 116.452202 );
			break;
			default:
			var opoint = new GLatLng( 39.937958, 116.449577 );
			break;
		}


    map.setCenter( opoint, 13);
	  map.setMapType( G_SATELLITE_MAP );
		map.addControl(new GScaleControl());
		map.addControl(new AskQuestionButton());

		// WHAT IS THIS FOR??
		tooltip = document.createElement("div");
		map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(tooltip);

	   mgr = new GMarkerManager(map);
		location_markers(loadType);
//  		mgr.addMarkers(small,13);
//		mgr.addMarkers(medium,14);
//		mgr.addMarkers(big,15);
//		mgr.refresh();

//		GEvent.addListener(map, 'zoomend', function(oldZoom,newZoom) {
//			if(oldZoom < newZoom) {
//				location_markers(loadType,oldZoom,newZoom,'add');
//			}
//			else if(newZoom < oldZoom) {
//				location_markers(loadType,newZoom,newZoom,'del');
//			}
//		});
		pan_markers(loadType);
		get_complex(loadType);


	}

}

//Set the current map url and show it
function get_map_link(loadType) {

	var lat = map.getCenter().lat();
	var lng = map.getCenter().lng();
	var zoom = map.getZoom();

	$("link_box").innerHTML = '<div class="info_close"><a href="javascript: void(0)" onclick="hide_element(\'link_box\')"><img src="'+web_addr+'images/www/close.jpg" alt="Close button"></a></div>Copy the link below:<input size="60" value="http://lihong.biz/map-link.php?t='+loadType+'&lat='+lat+'&lng='+lng+'&z='+zoom+'" style="width:400px" >';

	$("link_box").className = "link_box";
	show_element('link_box');

}

function show_email(loadType) {

	var lat = map.getCenter().lat();
	var lng = map.getCenter().lng();
	var zoom = map.getZoom();

	$("my_note").value = "Hi, I'd like to share a Property Map link with you.\nLink:\n http://lihong.biz/map-link.php?t="+loadType+"&lat="+lat+"&lng="+lng+"&z="+zoom;

	show_element('refer_box');

}

function show_legend() {
	toggle_visibility('map_legend');
}

//For office-info-print.php and unit-info-print.php
function map_print( lat, lon, zoom, loadType ) {

	if (GBrowserIsCompatible() && lat && lon) {

	map = new GMap2(document.getElementById("satellite_map"));
// 	map.addControl(new GLargeMapControl());
// 	map.enableScrollWheelZoom();
//	mgr = new GMarkerManager(map);
	var point = new GLatLng( lat, lon );
    	map.setCenter( point, zoom);
	map.setMapType( G_SATELLITE_MAP );
// 	map.addControl(new GScaleControl());
	var iconmap = new GIcon();

	iconmap.image =  web_addr + 'images/map/' + ( loadType == 3 ? 'c1.gif':'r1.gif' );

	iconmap.shadow =  web_addr + 'images/map/shadow.png';
	iconmap.iconSize = new GSize(23,42);
	iconmap.shadowSize = new GSize(43,38);
	iconmap.iconAnchor = new GPoint(11,40);
	iconmap.infoWindowAnchor = new GPoint(11, 11);
	iconmap.infoShadowAnchor = new GPoint(18, 25);
	var sign = new GMarker( point, {icon:iconmap} );

// 	GEvent.addListener(sign, 'click', function() {
// 	 sign.openInfoWindow(name);
// 	});



	map.addOverlay(sign);

	tooltip = document.createElement("div");
	map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(tooltip);


	}

}
//For map-link.php
function map_link( loadType, lat, lng, zoom ) {
	mapLoadType = loadType;

	$("center_wrapper5").innerHTML = '';

	$("center_wrapper5").className = 'map_canvas';

	if (GBrowserIsCompatible()) {

    	map = new GMap2(document.getElementById("center_wrapper5"))

	map.addControl(new GLargeMapControl());
	map.enableScrollWheelZoom();

	map.addControl(
          new DragZoomControl(
            {},
            { buttonStartingStyle: {display:"block",color:"black",background:"white",width:"7em",textAlign:"center",paddingTop:"1px",
                paddingBottom:"1px",fontFamily:"Arial, FreeSans, SimSun",fontSize:"12px",fontWeight:"bold",border:"1px solid black",cursor:"pointer"},
              buttonHTML: "Drag Zoom",
              buttonZoomingHTML: 'Drag a region on the map (click here to reset)',
              buttonZoomingStyle: {background:"yellow"},
              backButtonHTML: "Drag Zoom Back",
              backButtonStyle: {display:"none",marginTop:"3px",background:"#FFFFC8"},
              backButtonEnabled: true,
              overlayRemoveTime: 1500},
            {}),
          new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(70,7)));

		var opoint = new GLatLng( lat, lng );

  		map.setCenter( opoint, zoom );
    	map.setMapType( G_SATELLITE_MAP );
		map.addControl(new GScaleControl());

		// WHAT IS THIS FOR??
		tooltip = document.createElement("div");
		map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(tooltip);

	   mgr = new GMarkerManager(map);
		location_markers(loadType);
//  		mgr.addMarkers(small,13);
//		mgr.addMarkers(medium,14);
//		mgr.addMarkers(big,15);
//		mgr.refresh();

//		GEvent.addListener(map, 'zoomend', function(oldZoom,newZoom) {
//			if(oldZoom < newZoom) {
//				location_markers(loadType,oldZoom,newZoom,'add');
//			}
//			else if(newZoom < oldZoom) {
//				location_markers(loadType,newZoom,newZoom,'del');
//			}
//		});

		get_complex(loadType);



	}



}

//unit info or office info location "tab"
function location_map( name, lat, lon, loadType ) {
	mapLoadType = loadType;

	if (GBrowserIsCompatible() && name && lat && lon) {

	    map = new GMap2(document.getElementById("satellite_map"))
	    map.addControl(new GLargeMapControl());
		 map.enableScrollWheelZoom();

				map.addControl(
          new DragZoomControl(
            {},
            { buttonStartingStyle: {display:"block",color:"black",background:"white",width:"7em",textAlign:"center",paddingTop:"1px",
                paddingBottom:"1px",fontFamily:"Arial, FreeSans, SimSun",fontSize:"12px",fontWeight:"bold",border:"1px solid black",cursor:"pointer"},
              buttonHTML: "Drag Zoom",
              buttonZoomingHTML: 'Drag a region on the map (click here to reset)',
              buttonZoomingStyle: {background:"yellow"},
              backButtonHTML: "Drag Zoom Back",
              backButtonStyle: {display:"none",marginTop:"3px",background:"#FFFFC8"},
              backButtonEnabled: true,
              overlayRemoveTime: 1500},
            {}),
          new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(70,7)));

		var point = new GLatLng( lat, lon );
    	map.setCenter( point, 14);
	   map.setMapType( G_SATELLITE_MAP );
		map.addControl(new GScaleControl());

		var iconmap = new GIcon();

		iconmap.image =  web_addr + 'images/map/' + ( loadType == 3 ? 'c1.gif':'r1.gif' );

		iconmap.shadow =  web_addr + 'images/map/shadow.png';
		iconmap.iconSize = new GSize(23,42);
		iconmap.shadowSize = new GSize(43,38);
		iconmap.iconAnchor = new GPoint(11,40);
		iconmap.infoWindowAnchor = new GPoint(11, 11);
		iconmap.infoShadowAnchor = new GPoint(18, 25);


		var sign = new GMarker( point, {icon:iconmap,zIndexProcess:complex_zIndex} );

		GEvent.addListener(sign, 'click', function() {
		  sign.openInfoWindow(name);
		});

	   mgr = new GMarkerManager(map);
		location_markers(loadType);

		map.addOverlay(sign);
	   tooltip = document.createElement("div");
	  	map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(tooltip);

	}
}

var gmarkers = [];
var gmarkersImage = [];

/*-----Get complex coordinates from database-----*/
function get_complex(loadType) {

	new Ajax.Request(ajax_addr + 'all_complex.php', {
		parameters: {t: loadType},
		onSuccess: function(resp)
		{
//			alert(mgr);
			json_markers = resp.responseText.evalJSON();

			for( var i = 0; i< json_markers.length; i++ ) {

				var coor = new GLatLng( json_markers[i].latitude, json_markers[i].longitude );

				var title = json_markers[i].compound;

				var c_id = json_markers[i].c_id;

				var marker = add_marker( coor, title, c_id, i, loadType );

//			mgr.addMarker(marker,13);
				map.addOverlay(marker);
			}

		}
	});
}

/*-----Add marker to map-----*/
function add_marker( coor, title, c_id, i, loadType ) {

	var iconmap = new GIcon();

	iconmap.image =  web_addr + 'images/map/' + ( loadType == 3 ? 'c2.gif':'r2.gif' );

	iconmap.shadow =  web_addr + 'images/map/shadow.png';
//	iconmap.iconSize = new GSize(20, 34);
//	iconmap.shadowSize = new GSize(37, 34);
//	iconmap.iconAnchor = new GPoint(9, 34);
//	iconmap.infoWindowAnchor = new GPoint(9, 12);
//	iconmap.infoShadowAnchor = new GPoint(18, 25);
	iconmap.iconSize = new GSize(23,42);
	iconmap.shadowSize = new GSize(43,38);
	iconmap.iconAnchor = new GPoint(11,40);
	iconmap.infoWindowAnchor = new GPoint(11, 11);
	iconmap.infoShadowAnchor = new GPoint(18, 25);

//	complexMarker[c_id].image = 'images/map/02.gif';

	var marker = new GMarker( coor, {icon:iconmap,zIndexProcess:complex_zIndex} );

  	marker.tooltip = '<div class="tooltip">'+title+'</div>';

  	gmarkers[c_id] = marker;
//	gmarkersImage[c_id] = 'images/map/02.gif';

	handler[c_id] =	GEvent.addListener(marker, 'click', function() {

		if(loadType == 3) {

			complex_window_com( c_id );
		}
		else {

			complex_window_res( c_id, loadType );

		}

	});


//  //  ======  The new marker "mouseover" and "mouseout" listeners  ======
  GEvent.addListener(marker,"mouseover", function() {
//		alert(c_id);
//		if(map.openInfo)
		highlight_search( c_id, 0 );
  });

  GEvent.addListener(marker,"mouseout", function() {

		unhighlight_search( c_id );

  });

  GEvent.addListener(marker,'infowindowopen',function() {
 		if($('goToReviewTab')) {
 			GEvent.addDomListener($('goToReviewTab'), 'click', function() {
					map.getInfoWindow().selectTab(4);
			});
 		}


  });

  return marker;
}

/*----Change marker's infoWindow from complex to unit------------*/
function change_marker( c_id, id ) {

	var marker_n = new gmarkers[c_id];

	GEvent.addListener( marker_n, 'click', function() {
		unit_window( c_id, id);
	});

  return marker_n;
}

/*-----Change unit info back to complex info window-----*/
function complex_window_change( c_id, searchMode ) {
	//~ For client map type on click

	new Ajax.Request(ajax_addr + 'complex_window.php', {

		parameters:{ c_id:c_id, t:searchMode, map:mapmode},

		onSuccess: function(resp)
		{
			json_complex = resp.responseText.evalJSON();

			var firstTab = new GInfoWindowTab( json_complex.tab1_title,'<div id="infoTab1" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab1+'</div>');
			var secondTab = new GInfoWindowTab( json_complex.tab2_title,'<div id="infoTab2" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab2+'</div>');
			var thirdTab = new GInfoWindowTab( json_complex.tab3_title,'<div id="infoTab3" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab3+'</div>');
			var fourthTab = new GInfoWindowTab( json_complex.tab4_title,'<div id="infoTab4" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab4+'</div>');
			var fifthTab = new GInfoWindowTab( json_complex.tab5_title,'<div id="infoTab5" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab5+'</div>');

			var html = [firstTab,secondTab,thirdTab,fourthTab,fifthTab];

			gmarkers[c_id].bindInfoWindowTabsHtml(html);

				}
			});

			tooltip.style.visibility="hidden";

}

/*-----Show complex info window when marker clicked-----*/
function complex_window_res( c_id, loadType ) {

	var mapmode;
	if($('client_map')) {
		if($('client_map').style.display == 'block')	mapmode = 'client';
		else mapmode = 0;
	}
	else mapmode = 0;


	new Ajax.Request(ajax_addr + 'complex_window.php', {

		parameters:{ c_id:c_id, t: loadType, map:mapmode },

		onSuccess: function(resp)
		{
			json_complex = resp.responseText.evalJSON();

			var firstTab = new GInfoWindowTab( json_complex.tab1_title,'<div id="infoTab1" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab1+'</div>');
			var secondTab = new GInfoWindowTab( json_complex.tab2_title,'<div id="infoTab2" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab2+'</div>');
			var thirdTab = new GInfoWindowTab( json_complex.tab3_title,'<div id="infoTab3" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab3+'</div>');
			var fourthTab = new GInfoWindowTab( json_complex.tab4_title,'<div id="infoTab4" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab4+'</div>');
			var fifthTab = new GInfoWindowTab( json_complex.tab5_title,'<div id="infoTab5" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab5+'</div>');

			var html = [secondTab,firstTab,thirdTab,fourthTab,fifthTab];


			gmarkers[c_id].openInfoWindowTabsHtml(html);




			}
		});

			// WHAT THIS ONE DOES??????
		tooltip.style.visibility="hidden";
}

function complex_window_com( c_id ) {

	new Ajax.Request(ajax_addr + 'complex_window.php', {

		parameters:{ c_id : c_id },

		onSuccess: function(resp)
		{

			json_complex = resp.responseText.evalJSON();

			var html = '<div id="infoTab2" class="unit_info" style="margin-right:10px;width:300px;height:225px;overflow:auto">'+json_complex.tab2+'</div>';

			//gmarkers[c_id].openInfoWindowTabsHtml(html);

			gmarkers[c_id].openInfoWindowHtml(html);
		}
	});

	// WHAT THIS ONE DOES??????
	tooltip.style.visibility="hidden";
}

/*-----Show unit info window when marker clicked-----*/
function unit_window( c_id, id) {

	new Ajax.Request(ajax_addr + 'unit_window.php', {

		parameters:{ id : id },

		onSuccess: function(resp)
		{
			json_unit = resp.responseText.evalJSON();

			var firstTab = new GInfoWindowTab( json_unit.tab1_title,'<div id="infoTab1" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab1+'</div>');
			var secondTab = new GInfoWindowTab( json_unit.tab2_title,'<div id="infoTab2" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab2+'</div>');
			var thirdTab = new GInfoWindowTab( json_unit.tab3_title,'<div id="infoTab3" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab3+'</div>');
			var fourthTab = new GInfoWindowTab( json_unit.tab4_title,'<div id="infoTab4" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab4+'</div>');
			var fifthTab = new GInfoWindowTab( json_unit.tab5_title,'<div id="infoTab5" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab5+'</div>');

			var html = [firstTab,secondTab,thirdTab,fourthTab,fifthTab];

  		gmarkers[c_id].openInfoWindowTabsHtml(html);

			hightlight_selected_unit(id);
		}
	});
}

/*-----Show unit info window when marker clicked-----*/
function unit_window_change( c_id, id) {

	new Ajax.Request(ajax_addr + 'unit_window.php', {

		parameters:{ id : id },

		onSuccess: function(resp)
		{

			json_unit = resp.responseText.evalJSON();

			var firstTab = new GInfoWindowTab( json_unit.tab1_title,'<div id="infoTab1" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab1+'</div>');
			var secondTab = new GInfoWindowTab( json_unit.tab2_title,'<div id="infoTab2" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab2+'</div>');
			var thirdTab = new GInfoWindowTab( json_unit.tab3_title,'<div id="infoTab3" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab3+'</div>');
			var fourthTab = new GInfoWindowTab( json_unit.tab4_title,'<div id="infoTab4" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_unit.tab4+'</div>');
			var fifthTab = new GInfoWindowTab( json_complex.tab5_title,'<div id="infoTab5" class="unit_info" style="margin-right:10px;width:430px;height:225px;overflow:auto">'+json_complex.tab5+'</div>');

			var html = [firstTab,secondTab,thirdTab,fourthTab,fifthTab];

			gmarkers[c_id].openInfoWindowTabsHtml(html);

		}
	});
}
/*-----Show complex name when hovering the marker-----*/
function highlight_search( c_id, unit_id) {
//alert(unit_id);


//if(gmarkers[id] != null) {
tooltip.innerHTML = gmarkers[c_id].tooltip;
//alert(tooltip.innerHTML);
//alert(id);
var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(gmarkers[c_id].getPoint(),map.getZoom());
//alert(gmarkers[c_id].getIcon().iconSize.width);
var anchor=gmarkers[c_id].getIcon().iconAnchor;
var width=gmarkers[c_id].getIcon().iconSize.width;
var height=tooltip.clientHeight;
var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height));

pos.apply(tooltip);
//alert(tooltip.innerHTML);
tooltip.style.visibility="visible";
//alert(id);

//}
}

/*-----Hide complex name when mouse out the marker-----*/
function unhighlight_search( c_id, unit_id ) {

	tooltip.style.visibility="hidden";

}


    // ====== This function displays the tooltip ======
    // it can be called from an icon mousover or a side_bar mouseover
    function show_tooltip( marker, unit_id ) {

	$('unit_'+unit_id).className = "box_3_ov";

    	tooltip.innerHTML = marker.tooltip;
var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
var anchor=marker.getIcon().iconAnchor;
var width=marker.getIcon().iconSize.width;
var height=tooltip.clientHeight;
var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height));

pos.apply(tooltip);
//alert(tooltip);
tooltip.style.visibility="visible";
    }

function marker_click() {

	new Ajax.Request(ajax_addr + 'marker_info.php', {

		onSuccess: function(resp)
		{

			json_marker = resp.responseText.evalJSON();


		}
	});

}
function marker_window( i, id ) {

GEvent.trigger(gmarkers[unit_id], "click");
}


//Marker ZIndex ORder max zindex 9000000 min zindex -9000000
function complex_zIndex(marker) {
		  //~ return 9000000;
			return GOverlay.getZIndex(marker.getLatLng().lat()) + 10000;
}

function goto_zIndex(marker) {
		  //~ return 9999950;
			return GOverlay.getZIndex(marker.getLatLng().lat()) + 24;
}

function school_zIndex(marker) {
        //~ return 8999900;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 23;
}

function landmark_zIndex(marker) {
        //~ return 8999800;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 22;
}

function subway_zIndex(marker) {
        //~ return 8999700;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 21;
}

function gym_zIndex(marker) {
        //~ return 8999600;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 20;
}

function kindergarten_zIndex(marker) {
        //~ return 8999500;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 19;
}

function grocery_zIndex(marker) {
        //~ return 8999400;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 18;
}

function hospital_zIndex(marker) {
        //~ return 8999300;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 17;
}

function info_zIndex(marker) {
        //~ return 8999200;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 16;
}

function embassy_zIndex(marker) {
        //~ return 8999100;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 15;
}

function shopping_zIndex(marker) {
        //~ return 8999000;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 14;
}

function cafe_zIndex(marker) {
        //~ return 8998900;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 13;
}

function restaurant_zIndex(marker) {
        //~ return 8998800;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 12;
}

function other_zIndex(marker) {
        //~ return 8998700;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 11;
}

function hotel_zIndex(marker) {
        //~ return 8998600;
				return GOverlay.getZIndex(marker.getLatLng().lat()) + 10;
}

//function hotel_zIndex(marker) {
//        return GOverlay.getZIndex(marker.getPoint().lat()) -8500000;
//}
function arrayKeys( input, search_value, argStrict ) {

    var tmp_arr = {}, strict = !!argStrict, include = true, cnt = 0;
    var key = '';

    for (key in input) {
        include = true;
        if (search_value != undefined) {
            if( strict && input[key] !== search_value ){
                include = false;
            } else if( input[key] != search_value ){
                include = false;
            }
        }

        if (include) {
            tmp_arr[cnt] = key;
            cnt++;
        }
    }

   return tmp_arr;
}

