
	//addJavascript('http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2','head');

	var map = null;
	var polygon = null;
	var points = new Array();
	var all_points = new Array();
	var moving = false;
	var currentHandle = null;
	var _previousCenterHandlePosition = null;
	var _previousDragHandlePosition = null;
	var pointIndex = 90;
	var loc;
	var latVariance = 0;
	var longVariance = 0;
	var	currentPoints = null;
	var earthRadius = 3959;	//	3959 radius in m | 6371 radius in km
	var _maxLat = null;
	var _maxLong = null;
	var _minLat = null;
	var _minLong = null;
	var overview_status = false;
	//DEFAULTS
	var _radius = 1;
	
	var _radiusLayer = null;
	var _loadingLayer = null;
	var _circleShape = null;
	var _handleLayer = null;
	var _dragHandle;
	var _dragHandlePosition;
	var _centerHandle;
	var _centerHandlePosition;
	var _propertiesLayer = null;
	var _propertyPrimLayer = null;
	var _propertyShape = null;
	var propertyPoints = Array();
	
	//SIDEBAR
	var currentShape = null;
	var notOver = true;

	function GetMap() {         
		map = new VEMap('map');   
		map.LoadMap();         
		map.SetMapStyle(VEMapStyle.Shaded);
		map.SetMouseWheelZoomToCenter(false);
		map.SetCenterAndZoom(_centerPt, _zoomlevel);	
		
		
		$("MSVE_navAction_modeCell").className = 'close';
		$("MSVE_navAction_View3DMapMode").className = 'close';
		$("MSVE_navAction_ObliqueMapView").className = 'close';
		$("MSVE_navAction_showLabels").className = 'close';
		$("MSVE_navAction_separator0").className = 'close';
		//$("MSVE_navAction_separator2").className = 'close';
		$("MSVE_navAction_separator3").className = 'close';	
		//$("MSVE_PoweredByLogo").className = 'close';	
		
	
		var MSVE_navAction_separator1 = ' <div id="MSVE_navAction_separator1" class="MSVE_navAction_separator"></div> ';
		$('MSVE_navAction_styleGroup').insert(MSVE_navAction_separator1);

		var mini_map = ' <div id="MSVE_navAction_MiniMap" class="MSVE_MapStyle" onClick="showMiniMap()">Overview</div> ';
		$('MSVE_navAction_styleGroup').insert(mini_map);
		
		var radius_map = ' <div id="MSVE_navAction_SearchRadius" class="MSVE_MapStyle"></div> ';
		$('MSVE_navAction_styleGroup').insert(radius_map);
		
		var radius_val = ' <div id="MSVE_navAction_Radius" class="MSVE_MapStyle"></div> ';
		$('MSVE_navAction_styleGroup').insert(radius_val);
		
		//filterProperties();
		var load_right = Math.round((map.GetLeft() / 2 )-110);
		var pixel = map.LatLongToPixel(map.GetCenter(), map.GetZoomLevel());
		var loading_status = '<div id="loading_status" style="visibility:hidden; right:' + Math.round(pixel.x - 110) + 'px; top:' + Math.round(pixel.y - 22) + 'px;"></div>';
		$('map').insert(loading_status);
				
		// Attach the event handlers to the mouse 
		map.AttachEvent("onmousemove", mouseMoveHandler);
		map.AttachEvent("onmousedown", mouseDownHandler);
		map.AttachEvent("onmouseup", mouseUpHandler);
		map.AttachEvent("onmouseover", mouseOverHandler);
		map.AttachEvent("onmouseout", mouseOutHandler);	            
		//map.DetachEvent("onclick", onClickHandler);
		
	}  
	
	function ptDistance(point1, point2) {
		var lon1 = point1.Longitude * Math.PI / 180;
		var lat1 = point1.Latitude * Math.PI / 180;
		var lon2 = point2.Longitude * Math.PI / 180;
		var lat2 = point2.Latitude * Math.PI / 180;	
		var deltaLat = lat1 - lat2
		var deltaLon = lon1 - lon2	
		var formula1 = Math.pow(Math.sin(deltaLat/2), 2) + Math.cos(lat2) * Math.cos(lat1) * Math.pow(Math.sin(deltaLon/2), 2);
		var formula2 = 2 * Math.atan2(Math.sqrt(formula1), Math.sqrt(1 - formula1));
		var totDistance = formula2 * earthRadius;

		return totDistance;
	}	
	
	function setRadPoints() {		
		var _radLat = (_centerHandlePosition.Latitude*Math.PI)/180; 	///latitude in radians			
		var _radLon = (_centerHandlePosition.Longitude*Math.PI)/180; 	///longitude in radians			
		var _radDistance = parseFloat(_radius)/earthRadius; ///angular distance covered on earth's surface
		
		for (i = 0; i <= 360; i++) { 
				var point = new VELatLong(0,0)     				     
				var bearing = i * Math.PI / 180; //rad  
				point.Latitude = Math.asin(Math.sin(_radLat)*Math.cos(_radDistance) + Math.cos(_radLat)*Math.sin(_radDistance)*Math.cos(bearing));
				point.Longitude = ((_radLon + Math.atan2(Math.sin(bearing)*Math.sin(_radDistance)*Math.cos(_radLat), Math.cos(_radDistance)-Math.sin(_radLat)*Math.sin(point.Latitude))) * 180) / Math.PI;
				point.Latitude = (point.Latitude * 180) / Math.PI;
				points[i] = point;
				if( i == pointIndex ) {
					_dragHandlePosition = point;
				}
		}		
	}
	
	function initializeSearch() {
		if( $('map_status').value == '0' ) {
/*			_radiusLayer = document.createElement('div');
		
			_radiusLayer.style.position = "absolute";
			_radiusLayer.style.margin="0px";
			_radiusLayer.style.padding="0px";
			_radiusLayer.style.top="0px";
			_radiusLayer.style.left="195px";
			_radiusLayer.style.width = "90px";
			_radiusLayer.style.height = "27px";
			_radiusLayer.style.zIndex = 200;
			_radiusLayer.style.backgroundColor="#235087";
			_radiusLayer.style.opacity = ".7";	
			
			_radiusLayer.className = "rad_cont";
			//_radiusLayer.innerHTML = "Radius: ";
			_radiusLayer.innerHTML = "<div id='MSVE_navAction_Radius'>" + _radius.toFixed(2) + "</div>";
			//map.AddCustomLayer(_radiusLayer);
*/
			

			map.DeleteAllShapeLayers();						
			$('MSVE_navAction_SearchRadius').innerHTML = "Radius";
			$('MSVE_navAction_Radius').innerHTML = _radius.toFixed(2);
			_centerPt = map.GetCenter();
			_centerHandlePosition = _centerPt;
			
			drawCircle();

		} else {
			map.DeleteAllShapeLayers();
			//map.RemoveCustomLayer(_radiusLayer);
		}

	}
	function drawCircle() {
	
		setRadPoints();
		
		//Create drag handles
		_handleLayer = new VEShapeLayer();
		map.AddShapeLayer(_handleLayer);
		
		_dragHandle = new VEShape(VEShapeType.Pushpin, _dragHandlePosition);
		//_dragHandle.SetTitle('Stretch Search Area');
		//_dragHandle.SetDescription('Hold down the right mouse button and drag me to change the search area.');
		_dragHandle.SetZIndex(1001, null);
		_dragHandle.SetCustomIcon('/images/GreenDot.png');
		_dragHandle.SetIconAnchor(_dragHandlePosition); 
		_handleLayer.AddShape(_dragHandle);		
		
		_centerHandle = new VEShape(VEShapeType.Pushpin, _centerHandlePosition);
		//_centerHandle.SetTitle('Move Search Area');
		//_centerHandle.SetDescription('Hold down the right mouse button and drag me to change the search area.');	
		_centerHandle.SetZIndex(1001, null);
		_centerHandle.SetCustomIcon('/images/GreenDot.png');
		_centerHandle.SetIconAnchor(_centerHandlePosition); 
		_handleLayer.AddShape(_centerHandle);		
		
		//Create circle area set inner drag handle	
		_circleShape = new VEShape(VEShapeType.Polygon, points);
		_circleShape.SetLineWidth(1);
		_circleShape.SetLineColor(new VEColor(0,0,0,1.0));
		_circleShape.SetFillColor(new VEColor(0,100,150,0.5));
		_circleShape.HideIcon();
		map.AddShape(_circleShape);
		
		_circleShape.SetPoints(points);	
		_centerHandle.SetPoints(_centerHandlePosition);	
		_dragHandle.SetPoints(_dragHandlePosition);	
		
		map.SetMapView(points);											
	} 
	
	function DeleteShapeLayer(layer) {
		map.DeleteShapeLayer(layer);
	}
	
	function onClickHandler(e) {
		//alert(e.eventName);
	}
	
	//onmousedown handler
	function mouseDownHandler(e) {
		
		currentHandle = map.GetShapeByID(e.elementID);

		if ( e.elementID && currentHandle.GetType() == 'Point' ) {
			//a-zA-Z
			var mls_num = String((currentHandle.GetDescription()).match(/mls_[a-zA-Z0-9]*/));
			var mls_src = String((currentHandle.GetDescription()).match(/src_[0-9]*/));
			//$('mouse_data').innerHTML = mls_num;
			if( e.leftMouseButton && ( mls_num.length > 5) ) {	
				var mls_src_arr = mls_src.split("_");
				var mls_src_str = mls_src != '' ? "&src=" + mls_src_arr[1] : "" ;
				//window.location="property-details?mls="+mls_num.substr(4) + mls_src_str;	
			} else if ( e.leftMouseButton && currentHandle.GetID() == _dragHandle.GetID() ) {
				moving = true;
				map.vemapcontrol.EnableGeoCommunity(true);               					
				_previousDragHandlePosition = map.PixelToLatLong(new VEPixel(e.mapX, e.mapY));
				document.getElementById("map").style.cursor = 'Move';
			} else if( e.leftMouseButton && currentHandle.GetID() == _centerHandle.GetID() ) {
				moving = true;
				map.vemapcontrol.EnableGeoCommunity(true);
				_previousCenterHandlePosition = map.PixelToLatLong(new VEPixel(e.mapX, e.mapY));
				document.getElementById("map").style.cursor = 'Move';					
			} 
				
		} 
			
/*			
		
			var thisview = map.GetMapView();
			$('mouse_data').innerHTML = "mapX: " + e.mapX + 
																"<br> mapY: " + e.mapY + 
																"<br> GetTop: " + map.GetTop() + 
																"<br> GetLeft: " + map.GetLeft() +
																"<br> TopLeftLatLong: " +String(thisview.TopLeftLatLong) + 
																"<br> BottomRightLatLong: " + String(thisview.BottomRightLatLong) + 
																"<br> GetZoomLevel: " + map.GetZoomLevel() + 
																"<br> GetVersion: " + VEMap.GetVersion() +
																"<br> GetType: " + currentHandle.GetType();
*/																	
	}
	
	//onmousemove handler
	function mouseMoveHandler(e) {	
		if (moving) {	
			loc = map.PixelToLatLong(new VEPixel(e.mapX, e.mapY));
			
			if ( currentHandle.GetID() == _dragHandle.GetID() ) {			
				currentPoints = currentHandle.GetPoints();					
				_dragHandlePosition = loc;			
				_dragHandle.SetPoints(loc);			
				_radius = ptDistance(_centerHandlePosition,_dragHandlePosition);
				$('MSVE_navAction_Radius').innerHTML = _radius.toFixed(2);
				
				setRadPoints();	
	
				_circleShape.SetPoints(points);			
			} else if( currentHandle.GetID() == _centerHandle.GetID() ) {
				latVariance = loc.Latitude - _previousCenterHandlePosition.Latitude;
				longVariance = loc.Longitude - _previousCenterHandlePosition.Longitude;		
				currentPoints = _circleShape.GetPoints();
				_centerHandlePosition.Latitude += latVariance;
				_centerHandlePosition.Longitude += longVariance;
							
				for (var i = 0; i < currentPoints.length ; i++){
						currentPoints[i].Latitude += latVariance;
						currentPoints[i].Longitude += longVariance;
						if( i == 90 ) {
							_dragHandlePosition.Latitude += latVariance;
							_dragHandlePosition.Longitude += longVariance;
						}
				}
				
				points = currentPoints;
				_circleShape.SetPoints(currentPoints);
				_dragHandle.SetPoints(_dragHandlePosition);
				_centerHandle.SetPoints(_centerHandlePosition);
			}
			_previousCenterHandlePosition = _centerHandlePosition;
			_previousDragHandlePosition = _dragHandlePosition;		
		} 
	}

	//onmouseup handler
	function mouseUpHandler(e) {
		loc = map.PixelToLatLong(new VEPixel(e.mapX, e.mapY));
				
		if (moving) {
			moving = false;
			map.vemapcontrol.EnableGeoCommunity(false);
			document.getElementById("map").style.cursor = '';
			if ( currentHandle.GetID() == _dragHandle.GetID() ) {
				_dragHandlePosition = loc;		
				_dragHandle.SetPoints(loc);			
				_circleShape.SetPoints(points);	
				_centerHandle.SetPoints(_centerHandlePosition);							
			} else if( currentHandle.GetID() == _centerHandle.GetID() ) {
				_centerHandlePosition = loc;	
				_centerHandle.SetPoints(_centerHandlePosition);	
				_circleShape.SetPoints(points);	
			}	
			filterProperties();
			currentHandle = null;
		}
	}
////////////////////////////////////////////////////////////////////
	function mouseOverHandler(e) {
		if (e.elementID && notOver){
			mouseOverSidebarItem(e.elementID)
			notOver = false;
		}
	}
	
	function mouseOutHandler(e){
		if (e.elementID && !notOver){
			mouseOutSidebarItem(e.elementID)
			notOver = true;
		}
	}
	
	function mouseOverSidebarItem(markerId){
		//Update pushpin
		currentShape = map.GetShapeByID(markerId);
		currentIcon = currentShape.GetCustomIcon();
		currentShape.SetCustomIcon(currentIcon.replace('pinPrimStyle', 'pinPrimHoverStyle'));
		currentShape.SetCustomIcon(currentIcon.replace('pinSecStyle', 'pinSecHoverStyle'));
		map.ShowInfoBox(currentShape);		
		
		//Update Visuals
		//$('sideBarMarker_' + currentShape.GetID()).className = 'pinHoverStyle';
		$('property_' + currentShape.GetID()).className = 'activeProperty';
		
		//property_
	}
	
	function mouseOutSidebarItem(markerId){
		//Update pushpin
		currentShape = map.GetShapeByID(markerId);
		currentIcon = currentShape.GetCustomIcon();
		currentShape.SetCustomIcon(currentIcon.replace('pinPrimHoverStyle', 'pinPrimStyle'));
		currentShape.SetCustomIcon(currentIcon.replace('pinSecHoverStyle', 'pinSecStyle'));
		map.HideInfoBox(currentShape);
		
		//Update Visuals
		//$('sideBarMarker_' + currentShape.GetID()).className = 'pinStyle';
		$('property_' + currentShape.GetID()).className = '';
	}	
////////////////////////////////////////////////////////////////////////			
	function isNumber(n) {
		if( !isNaN(parseFloat(n)) && isFinite(n) ) {
  		return true;
		} else if( Object.isString( n )) {
			return true;
		} else {
			return false;
		}
	}
	
	function filterProperties() {	
	
		var thisview = map.GetMapView();
		
		var params = $('search_criteria').serialize(true);
		params.api = "mapManager"; 
		params.radius = _radius;
		params.radius_center = String(_centerHandlePosition);
		params.mls_prim = mls_prim;
		params.mls_sec = mls_sec;		
		params.mls_systems = mls_systems;		
		params.topleft = String(thisview.TopLeftLatLong);
		params.bottomright = String(thisview.BottomRightLatLong);
		params.src = src;
		var src_id = (src != 'default') ? src.split("_") : '' ;

		new Ajax.Request( "/services.php", {
										method: "post",
										parameters: params,		
										onLoading: function() { 
										
											$('loading_status').style.visibility = "visible";
											$('loading_status').innerHTML = "Loading Properties<br><img src='/images/progress.gif'>";
										},
										onSuccess: function(transport){
											//$("map_data").innerHTML = "Success";
											//$("map_data").innerHTML = transport.responseText;
										
											response = eval(transport.responseText);
											var thisProperty = '';
											var popup = '';
											var prop_detail = '';
											var prop_summary = '';
											var propCt = 0;				
											var cols = 1;
											//[{"mls_num":"925932","longitude":"-111.887812","latitude":"40.898269","photos":"http:\/\/photo.wfrmls.com\/280x210\/925932.jpg","beds":"4","baths":"3.00","acres":"0.16","square_feet":"2363","Dist":"0.06812272753956"}
											if( _propertiesLayer ) {
												DeleteShapeLayer(_propertiesLayer);	
											}	
											_propertiesLayer = new VEShapeLayer();
											map.AddShapeLayer(_propertiesLayer); 	
											propertyPoints.length = 0;
											$('prop_detail').innerHTML = "";
											$('prop_prim').innerHTML = "";
											
											var currentMarkerID = "";
											
											for( var p in response ) {
												if( isNumber(response[p]['mls_num']) ) {
													
													var insert_area = 'prop_detail';//default for backwards compatibility
													var pin_style = 'pinSecStyle';
													var propcheck = '';
													var main_thumb = '';
													var main_photo = '';
													
													//IF USING TABLE ALL_RELISTINGDATA, CREATES LIST OF PROPERTIES BY MLS
													if( response[p]['mls_id'] != undefined) {
														if($('prop_detail_' + response[p]['mls_id'] ) == undefined) {
															var curr_width = $('prop_detail').getWidth();
															var mls_name = (response[p]['mls_name'] != null) ? response[p]['mls_name'] : ''; 
															curr_width = cols == 1 ? curr_width : curr_width + 436 + "px";														
															cols += 1;
															$('prop_detail').setStyle({ 'width': curr_width });													
															insert_area = 'prop_detail_' + response[p]['mls_id'];
															var new_pd_header = new Element( 'div', {'class': 'prop_detail_header' } );
															var new_pd_listing = new Element( 'div', {'name':insert_area, 'id':insert_area, 'class': 'prop_detail_listing' } );
															$('prop_detail').insert({'bottom':new_pd_listing});
															$(new_pd_listing).insert({'top':new_pd_header});
															new_pd_header.update(mls_name);

														} else {
															insert_area = 'prop_detail_' + response[p]['mls_id'];
														}
													}


													if( mls_prim == response[p]['mls_num'] ) {
														insert_area = 'prop_prim';
														pin_style = 'pinPrimStyle';
														propcheck = 'close';
													} 
																
													if( disable_search ) {
														propcheck = 'close';
													}
													

													var photoArr = response[p]['photos'].split(","); 
													main_thumb = "<img src='" + photoArr[0] + "' style='width:112px; height:84px;'>";
													main_photo = '<img height="115" border="0" width="150" src="' + photoArr[0] + '"/>';
		
													//var currObj = response[p];
													var thisProp = new VELatLong( response[p]['latitude'],response[p]['longitude']);
													propertyPoints.push(thisProp);
													_propertyShape = new VEShape(VEShapeType.Pushpin, thisProp);
													var itemHTML = '';
													var property_type = (response[p]['property_type'] != null) ? response[p]['property_type'] + '<br />' : ''; 													
													var beds_ps = (response[p]['beds'] != null) ? response[p]['beds'] + ' beds, ' : ''; 													
													var beds_pu = (response[p]['beds'] != null) ? response[p]['beds'] + ' beds, ' : ''; 
													var baths = (response[p]['baths'] != null) ? response[p]['baths'] + ' baths<br />' : ''; 
													var sq_ft_pu = (response[p]['square_feet'] != null) ? response[p]['square_feet'] + ' sq ft<br /> ' : ''; 
													var sq_ft_ps = (response[p]['square_feet'] != null) ? response[p]['square_feet'] + ' square feet (approx), ' : ''; 
													var acres = (response[p]['acres'] != null) ? response[p]['acres'] + ' acres <br />' : ''; 
													var year_built = (response[p]['year_built'] != null) ? 'Year Built ' + response[p]['year_built'] : ''; 
													var address_str = (response[p]['address'] + response[p]['city'] + response[p]['zip']).length >= 30 ? "<br>" : ", ";
													var full_address = response[p]['address'] + address_str + response[p]['city'] + ', ' + response[p]['state'] + ' ' + response[p]['zip'];
													var mls_id = (response[p]['mls_id']!= null) ? "&src=" + response[p]['mls_id'] : (src != 'default') ? "&src=" + src_id[0] : '';
													var mls_src = (response[p]['mls_id']!= null) ? "_src_" + response[p]['mls_id'] : (src != 'default') ? "_src_" + src_id[0] : '';
													
													var pinHTML = "<div class='" + pin_style + "' id='" + response[p]['mls_num'] + "'></div>";
													//var pinHTML = "<a href='property-details?mls=" + response[p]['mls_num'] + "' onClick='window.location=this.href'> <div class='" + pin_style + "'></div> </a>";
													//var currentPinHTML = pinHTML.replace('{0}', p); //p);
													//&hide_menus=1 prop_detail
													popup = "<div class='popup_window' id='mls_" + response[p]['mls_num'] + mls_src + "'>" +
																	"	 <div> " +
																	"  	<div style='position:absolute; float:left; left:0px;'><a class='cb_prop_detail' title='" + full_address + "' href='property-details?mls=" + response[p]['mls_num'] + mls_id + "&hide_menus=1'>" + main_thumb + "</a></div>" +
																	"  	<div style='position:absolute; float:right; left:115px;'>" +
																	"			<div class='pop_detail'> " + 
																	"				<b>" + response[p]['price_format'] + "</b><br /><br /> " + 
																	"				MLS # " + response[p]['mls_num'] + "<br />" +
																					beds_pu +
																					baths +
																					sq_ft_pu +
																					acres +
																	"  		</div>" +
																	"  	</div>" +
																	"	 </div>" +
																	"</div>";	
																													
													_propertyShape.SetTitle(full_address);
													_propertyShape.SetDescription(popup);
													//_propertyShape.SetCustomIcon('http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + propCt + '|7799DD|FFFFFF');	
													
													//new VECustomIconSpecification() Look into this
													//add icons 
													_propertyShape.SetCustomIcon(pinHTML);
													
													//_propertyShape.SetCustomIcon('http://chart.apis.google.com/chart?chst=d_map_xpin_icon&chld=pin_star|home|7799DD|FF0000');	
													//USING NUMBER IDS i.e. #189
													//http://chart.apis.google.com/chart?chst=d_map_xpin_letter&chld=pin_star|189|00FFFF|000000|FF0000
													_propertiesLayer.AddShape(_propertyShape);
													currentMarkerID = _propertyShape.GetID();
													//////////////////////////////////////////////////
													//Build out sidebar
													//currentPinHTML = currentPinHTML.replace('<div ', '<div id=\'sideBarMarker_' + currentMarkerID+ '\' '); 										 
													prop_summary = '<div onmouseover="mouseOverSidebarItem(\'' + currentMarkerID + '\');" onmouseout="mouseOutSidebarItem(\'' + currentMarkerID + '\');" class="prop_info" style="position:relative"> ' +
																				 '<div id="property_' + currentMarkerID + '" style="position:relative"><div class="prop-summary"> ' +
																				 '	<div class="prop-check"> ' +
																				 '		<input type="checkbox" id="property_list" name="property_list[]" value="' + response[p]['mls_num'] + '" class="'+ propcheck +'"> ' +
																				 '	</div> ' +
																				 '	<div class="prop-thumb"> <a class="cb_prop_detail" title="' + full_address + '" href="property-details?mls=' + response[p]['mls_num'] + mls_id + '&hide_menus=1" >' + main_photo + '</a> </div> ' +
																				 '	<div class="prop-detail"> ' +
																				 '		<div class="prop-title"> ' +
																				 '			<div class="prop-address"> <a class="cb_prop_detail" title="' + full_address + '" href="property-details?mls=' + response[p]['mls_num'] + mls_id + '&hide_menus=1" >' + full_address + '</a> </div> ' +
																				 '			<div class="prop-price"> ' + response[p]['price_format'] +  ' </div> ' +
																				 '			<div class="clearboth"> </div> ' +
																				 '		</div> ' +
																				 '		<div class="prop-photos"></div>	' +
																				 '		<div class="clearboth"></div> ' +
																				 '		<div class="prop-info">' + 
																				 				property_type + 
																								beds_ps + 
																								baths + 
																								sq_ft_ps +
																								acres +
																								year_built + 
																				 ' 		</div> ' + 
																				 '	</div> ' +
																				 '</div></div> ' +
																				 '</div> ';													
	
													$(insert_area).insert(prop_summary);

													propCt++;
												}	
											} //END onSucess
											
											updPropView();		
											$('loading_status').style.visibility = "hidden";
											
											map.SetMapView(propertyPoints);
											_centerPt = map.GetCenter();											
										}, 
										onFailure: function(){
											$("map_data").innerHTML = "There seemed to be a problem with your search, please try again.";
										}
		});
	}

	function addJavascript(jsname,pos) {
		var th = document.getElementsByTagName(pos)[0];
		var s = document.createElement('script');
		s.setAttribute('type','text/javascript');
		s.setAttribute('src',jsname);
		th.appendChild(s);
	} 
	function toggleMapSearch() {				
		if( $('map_status').value == '1' ) {
			$('map_status').value = '0';
			$('use_map').value = 'Start Radius Search';
			$('MSVE_navAction_SearchRadius').innerHTML = '';
			$('MSVE_navAction_Radius').innerHTML = '';
		} else {
			$('map_status').value = '1';
			$('use_map').value = 'Stop Radius Search';
		}
	}
	function toggleSearchPanel(element, timeout) {

		timeout = isNaN(timeout) ? 0 : timeout;
		var elementArr = element.split("_");
		var curImg = $('icon_' + elementArr[1]).src.substring($('icon_' + elementArr[1]).src.lastIndexOf('/') + 1);
	
		if( curImg == 'max.gif' ) {
			$('icon_'+elementArr[1]).src = '/images/min.gif';
		} else if( curImg == 'min.gif' ){
			$('icon_'+elementArr[1]).src = '/images/max.gif';
		}
					
		Effect.toggle('panel_'+elementArr[1], 'appear', {duration:.3, delay: timeout });

	}

	function setInputHint( i , eAction, defaultVal ) {
		/*
		Variables:
		i = this input object
		eAction = mouse event
		defaultVal = temporary value
		*/
		if( i.value == '' && eAction == 'onblur' ) {
			i.value = defaultVal; 
			$(i).className = 'temp_text';
		}else if( i.value == defaultVal && eAction == 'onfocus' ) {
			i.value = ''; 
			$(i).className = '';
		}
	}	
	
	function checkDefaults() {
		//CHECK DEFAULTS
		if( $("qry").value != '(Keyword search: for example, enter a Street, City, Zip Code, Area or MLS Number)' ) {
			$("qry").className = '';
		}		
		if( $("search_price_min").value != 'MIN' ) {
			$("search_price_min").className = '';
		}
		if( $("search_price_max").value != 'MAX' ) {
			$("search_price_max").className = '';
		}
		if( $("search_sq_ft").value != 'MIN' ) {
			$("search_sq_ft").className = '';
		}
		if( $("search_acres").value != 'MIN' ) {
			$("search_acres").className = '';
		}
	}
	function clearForm(formIdent) { 
		var form, elements, i, elm; 
		form = document.getElementById ? document.getElementById(formIdent) : document.forms[formIdent]; 
	
		if (document.getElementsByTagName) {				
			elements = form.getElementsByTagName('input');
			for( i=0, elm; elm=elements.item(i++); ) {
				if (elm.getAttribute('type') == "text") {
					elm.value = '';
				} else if (elm.getAttribute('type') == "checkbox" || elm.getAttribute('type') == "radio") {
					elm.checked = false;
				} 
			}
			
			elements = form.getElementsByTagName('select');
			for( i=0, elm; elm=elements.item(i++); ) {
				elm.options.selectedIndex=-1;
			}
			
			elements = form.getElementsByTagName('textarea');		
			for( i=0, elm; elm=elements.item(i++); ) {
				elm.value='';
			}
			
		} else {
			elements = form.elements;
			
			for( i=0, elm; elm=elements[i++]; ) {
				if (elm.type == "text") {
					elm.value ='';
				} else if (elm.type == "checkbox" || elm.type == "radio") {
					elm.checked = false;
				}
			}
		}
		//SET DEFAULTS
		$("qry").value = '(Keyword search: for example, enter a Street, City, Zip Code, Area or MLS Number)';
		$("search_price_min").value = "MIN";
		$("search_price_max").value = "MAX";
		$("search_sq_ft").value = "MIN";
		$("search_acres").value = "MIN";		
	}	
	
	function getSelectedProperties() {
		var property_string=""
		for(var i=0; i < document.search_criteria.property_list.length; i++){
			if(document.search_criteria.property_list[i].checked)
				property_string += document.search_criteria.property_list[i].value + ","
		}
		
		$('mls_sec').value = property_string.substring(0,(property_string.length-1));
	}
	
	function setMCPOptions( opt ) {

		switch( opt ) {
			case "mls":
				$('opt_area').style.display = "none";
				$('opt_default').style.display = "none";
				$('opt_property').style.display = "block";				
				$('default_search').value = '';			
				$('zoomlevel').value = '';		
				break;
			case "area":
				$('opt_area').style.display = "block";
				$('opt_default').style.display = "none";
				$('opt_property').style.display = "none";				
				$('default_search').value = '';
				$('mls_prim').value = '';
				$('mls_sec').value = '';
				break;
			case "default":
				$('opt_area').style.display = "none";
				$('opt_default').style.display = "block";
				$('opt_property').style.display = "none";
				$('mls_prim').value = '';
				$('mls_sec').value = '';
				break;
		}

	}
	
	function setMapArea() {
		$('ll').value = String(map.GetCenter());
		$('zoomlevel').value = map.GetZoomLevel(); 		
	}
	
	function saveSearch() {
		var qry = (($('qry').value != undefined) && ($('qry').value != '(Keyword search: for example, enter a Street, City, Zip Code, Area or MLS Number)')) ? $('qry').value : '';
		var search_price_min = (($('search_price_min').value != undefined) && ($('search_price_min').value != 'MIN')) ? $('search_price_min').value : '';
		var search_price_max = (($('search_price_max').value != undefined) && ($('search_price_max').value != 'MAX')) ? $('search_price_max').value : '';
		var search_sq_ft = (($('search_sq_ft').value != undefined) && ($('search_sq_ft').value != 'MIN')) ? $('search_sq_ft').value : '';
		var search_acres = (($('search_acres').value != undefined) && ($('search_acres').value != 'MIN')) ? $('search_acres').value : '';
											
		$('default_search').value = 'qry||' + qry + 
																'##search_price_min||' + search_price_min + 
																'##search_price_max||' + search_price_max + 
																'##search_sq_ft||' + search_sq_ft + 
																'##search_acres||' + search_acres;											
	}
	
	function disableSearch() {
		if( $('mls_sec').value.length >= 3 ) {
			$('disable_search').checked = true;
			//$('disable_search').disabled = true;			
		} else {
			$('disable_search').checked = false;
			//$('disable_search').disabled = false;	
		}
	}
	
	function showMiniMap() {	
		if( overview_status ) {
			map.HideMiniMap();
			overview_status = false;
		} else {
			map.ShowMiniMap(5, 245);
			overview_status = true;
		}
	}
	function updPropView() {
						
		var pdc_width = $('prop_detail_cont').getWidth(),
				pd_width = $('prop_detail').getWidth(),
				scroll_index = 1;

//		if( parseInt(pd_width) > parseInt(pdc_width) ) {
			
//			$('.slider').setStyle({ visibility:'visible' });	
					
			var s1 = new Control.Slider($('slider_1').down('.slider_handle'), $('slider_1'), {
				range: $R(1, pdc_width),
				sliderValue: 1,
				onSlide: function(value) {
					scroll_index = (pd_width / pdc_width) * value;
					$('prop_detail').setStyle({ left: '-' + scroll_index + 'px' });
					s2.setValue(value);
				},
				onChange: function(value) {
					scroll_index = (pd_width / pdc_width) * value;
					$('prop_detail').setStyle({ left: '-' + scroll_index + 'px' });
					s2.setValue(value);
				}
			});
			
			var s2 = new Control.Slider($('slider_2').down('.slider_handle'), $('slider_2'), {
				range: $R(1, pdc_width),
				sliderValue: 1,
				onSlide: function(value) {
					scroll_index = (pd_width / pdc_width) * value;
					$('prop_detail').setStyle({ left: '-' + scroll_index + 'px' });
					s1.setValue(value);
				},
				onChange: function(value) { 
					scroll_index = (pd_width / pdc_width) * value;
					$('prop_detail').setStyle({ left: '-' + scroll_index + 'px' });
					s1.setValue(value);
				}
			});	
		//} else {
		//	$('.slider').setStyle({ visibility:'hidden' });			
		//}
	}
		

