/* MAP STUFF */

var mapPoint = new Array; 
var mapLabel = new Array();	
var mapHTML = new Array();
var mapLocation = new Array();
	
var mapMarker = new Array();	
	
function markerCreate(i, icon, point, label, html, single) {
	var marker = new GMarker(point, markerIcon( icon, single ));

	GEvent.addListener(marker, "click", ( function(j){ return function(){ markerClick( j ); } } )(i));
	
	mapMarker[i] = marker;
	
	return marker;
}	

function markerIcon( num, single ){
	var tinyIcon = new GIcon();
		if( single ){
			tinyIcon.image = "/map_icons/a.png";
			tinyIcon.shadow = "";
			tinyIcon.iconSize = new GSize(45, 45);
			//tinyIcon.shadowSize = new GSize(45, 38);
			tinyIcon.iconAnchor = new GPoint(0, 0);
			tinyIcon.infoWindowAnchor = new GPoint(30, 20);
			tinyIcon.infoShadowAnchor = new GPoint(18, 25);
		}else{
			tinyIcon.image = "/map_icons/"+num+".png";
			//tinyIcon.shadow = "/map_icons/shadow.png";
			//tinyIcon.shadow = "";
			tinyIcon.iconSize = new GSize(35, 30);
			//tinyIcon.shadowSize = new GSize(45, 38);
			tinyIcon.iconAnchor = new GPoint(0, 0);
			tinyIcon.infoWindowAnchor = new GPoint(30, 20);
			tinyIcon.infoShadowAnchor = new GPoint(18, 25);
		}
		
		return tinyIcon;
}	

function markerClick( marker_num ){
	//set the active background color of the current selected
	for( var i = 0; i < mapLabel.length; i++ ){
		var marker_item = document.getElementById('marker_'+i);
		
		if( i == marker_num ){
			marker_item.className = 'location_sel_active';
			marker_item.onmouseover = function(){ return; }
			marker_item.onmouseout = function(){ return; }
		}else{
			marker_item.className = 'location_sel';
			marker_item.onmouseover = function(){ this.className='location_sel_hover'; }
			marker_item.onmouseout = function(){ this.className='location_sel'; }
		}
	}

	mapMarker[ marker_num ].openInfoWindowHtml( mapHTML[ marker_num ] );
}


function executeAJAXMap( categoryId, propertyId, page ){
	var show_map = true;
    
    var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
    var urlString = 'id='+categoryId+(propertyId ? '&pid='+propertyId : '')+'&page='+page;
    
    var fnWhenDone = function (oXML){ 
        if( oXML.responseXML ){
            var location 	= oXML.responseXML.getElementsByTagName('locations')[0];
   
            if( location.selectNodes("location")[0] ){            
                var locations = location.selectNodes("location");

                for(var i = 0; i < locations.length; i++){
					var icon_id 		= ( locations[i].selectSingleNode("icon_id/text()") 	!= null ? locations[i].selectSingleNode("icon_id/text()").nodeValue : '' );

            		var property_image 	= ( locations[i].selectSingleNode("address_1/text()") 	!= null ? '<div id="prop_image_map"><img src="'+locations[i].selectSingleNode("property_image/text()").nodeValue+'" border="0" width="90" height="60" /></div>' : '');
                    var url 			= ( locations[i].selectSingleNode("url/text()") 		!= null ? locations[i].selectSingleNode("url/text()").nodeValue : '' );
					var address_1 		= ( locations[i].selectSingleNode("address_1/text()") 	!= null ? locations[i].selectSingleNode("address_1/text()").nodeValue : '' );
                    var city 			= ( locations[i].selectSingleNode("city/text()") 		!= null ? locations[i].selectSingleNode("city/text()").nodeValue : '' );
                    var state 			= ( locations[i].selectSingleNode("state/text()") 		!= null ? locations[i].selectSingleNode("state/text()").nodeValue : '' );
                    var zip 			= ( locations[i].selectSingleNode("zip/text()") 		!= null ? locations[i].selectSingleNode("zip/text()").nodeValue : '' );
					var county 			= ( locations[i].selectSingleNode("county/text()") 		!= null ? locations[i].selectSingleNode("county/text()").nodeValue : '' );
                
                	var daddress = address_1+' '+city+', '+state+' '+zip;
                
                    var html 			= property_image+'<br /><div style="float:left; text-align:left; width:145px;">'+address_1+'<br />'+city+' - '+county+'</div> '+( propertyId == '' ? '<span style="clear:both;"><a href="'+url+'"><img src="image.php?img=images/view_details_sm.gif" border="0" /></a></span>' : '');
                    var latitude 		= ( locations[i].selectSingleNode("latitude/text()") 		!= null ? locations[i].selectSingleNode("latitude/text()").nodeValue : '');
                    var longitude 		= ( locations[i].selectSingleNode("longitude/text()") 		!= null ? locations[i].selectSingleNode("longitude/text()").nodeValue : '');

                    if( document.getElementById('map') ){                        
                        mapLocation[i] = icon_id;
                        mapPoint[i] = new GLatLng(latitude, longitude);
                        //mapLabel[i] = label;
                        mapHTML[i] 	= html;
                        
                        show_map = true;
                    }
                }
            }
    
    		if( show_map ){
                var map = new GMap2(document.getElementById("map"));
                map.addControl(new GLargeMapControl());
                map.addControl(new GMapTypeControl(1));
				
				// get type of map here//
				map.setMapType(G_SATELLITE_MAP);

                if( propertyId != '' ){
					//map.panTo(mapPoint[0]); 
					//map.setZoom(16); //
					map.setCenter(mapPoint[0], 16); 
				}else{ 
					
					map.setCenter(mapPoint[0], 11); 
				}
				
				//map.checkResize();
                map.enableContinuousZoom();
                map.enableDoubleClickZoom();
                //map.enableScrollWheelZoom();
				
                // create the markers
                for(var i = 0; i < mapPoint.length; i++){
                    var marker = markerCreate(i, mapLocation[i], mapPoint[i], mapLabel[i], mapHTML[i], (propertyId != '' ? true : false));
                    map.addOverlay( marker );
    
                    if( i == 0 ) mapMarker[ i ].openInfoWindowHtml( mapHTML[ i ] );
                }
           	}
        }		
    }
    
    myConn.connect("/_includes/xml.map_addresses.php", "GET", urlString, fnWhenDone);
}  

function change_img( img ){
	document.getElementById('img_large').innerHTML = '<div class="loader_ajax"><img src="image.php?img=images/loading.gif" border="0" class="loader" /></div>';

    var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
    var urlString = 'img='+img;
    
    var fnWhenDone = function (oXML){ 
		document.getElementById('img_large').innerHTML = '<img src="'+oXML.responseText+'" border="0" class="img_home_border" />';
    }
    
    myConn.connect("/_includes/xml.property_image.php", "GET", urlString, fnWhenDone);
}