



/*** Property functions ***/
function loadGoogleMap(lat, lon, address, citystate, dir)
{
  if (GBrowserIsCompatible())
  {
    var width  = 242;
    var height = 226;

    map = new GMap2(document.getElementById("propMap"), { size: new GSize(width,height) } );
    map.setUIToDefault();

    // Make info window content
    var fullAddress = address + ' ' + citystate;
    var dirLink = "http://maps.google.com/maps?f=q&q=" + fullAddress;
    var balloonText  = '<div style="margin-bottom: 5px;"><b>' + address + "</b></div>";
    balloonText += citystate;

    if (dir == true)
    {
      balloonText += '<br /><br /><a href="' + dirLink + '" target="_blank">Get Directions</a>';
    }

    map.setCenter(new GLatLng(lat, lon), 16);
    var marker = new GMarker(map.getCenter());

    GEvent.addListener(marker, 'click', function(){
      marker.openExtInfoWindow(
        map,
        "extInfoWindow",
        balloonText,
        {beakOffset: 2}
      );
    });
    map.addOverlay(marker);
  }
}

function showAddress(address, balloonText)
{
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          // Crap, it's not there, erase the map!
          document.getElementById("propMap").style.display = 'none';
        } else {
          map.setCenter(point, 15);
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.bindInfoWindowHtml(balloonText);
        }
      }
    );
  }
}

// AJAX live search results
function updateLiveResults()
{
  jQuery('.live_listings').html('<img src="'+jQuery('#searchForm').attr('ajax_img_src')+'" style="margin: 5px 15px 0 0;">')

  // Serialize our form and submit it via ajax
  var mrForm = jQuery('#searchForm');
  jQuery.ajax({
    data: mrForm.serialize(),
    url: jQuery('#searchForm').attr('qs_target'),
    type: 'POST',
    timeout: 8000,
    error: function() {
      jQuery('.live_listings').html('<div style="font-size: 0.4em; margin-top: 5px;">Busy, try&nbsp;again</div>');
    },
    success: function(r) {
      if (r == '')
        jQuery('.live_listings').html('0');
      else
      {
        jQuery('.live_listings').html(r);
      }
    }
  }); // ajax
}

function updateMapCount()
{
  updateLiveResults();
}

/*********************/

// Everybody's friend, the Dreamweaver Image Preloader
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}



// For popup thing
function isIE()
{
	//Detect IE5.5+
	version=0;
	if (navigator.appVersion.indexOf("MSIE")!=-1) {
		temp=navigator.appVersion.split("MSIE");
		version=parseFloat(temp[1]);
	}
	if (version >= 5.5)
	{ //NON IE browser will return 0
		return true;
	} else {
		return false;
	}
}

function isIE6()
{
	//Detect <= IE6
	version=0;
	if (navigator.appVersion.indexOf("MSIE")!=-1) {
		temp=navigator.appVersion.split("MSIE");
		version=parseFloat(temp[1]);
		if (version <= 6)
		{
			return true;
		}

	}
	return false;
}
function isIE7()
{
  //Detect <= IE7
  version=0;
  if (navigator.appVersion.indexOf("MSIE")!=-1) {
    temp=navigator.appVersion.split("MSIE");
    version=parseFloat(temp[1]);
    if (version <= 7)
    {
      return true;
    }

  }
  return false;
}


/*jQuery.noConflict()(function () {
	jQuery(document).ready(function(){
    	jQuery('.share_social li').css('opacity', .7);
      	jQuery('.share_social li').hover(
			function(){
        		jQuery(this).fadeTo(350, 1);
      		},
			function(){
        		jQuery(this).fadeTo(250, .7);
      		}
		);
		jQuery('.hover').live('mouseenter mouseleave',function(event){
			if(event.type == 'mouseover')
				jQuery(this).css("cursor","pointer");
			else
				jQuery(this).css("cursor","default");
		});
		jQuery('.show-hide').live('focusin focusout',function(event){
			if(event.type == 'focusin')
			{
				if(jQuery(this).attr("value") == jQuery(this).attr("default"))
					jQuery(this).attr("value","");
			}
			else
			{
				if(!jQuery(this).attr("value"))
					jQuery(this).attr("value",jQuery(this).attr("default"));
			}
		});
		jQuery("ul.tabs li a").click(function(){
			if(!jQuery(this).parent().hasClass("selected_tab"))
			{
				jQuery(this).parent().parent().children("li").removeClass("selected_tab");
				jQuery(this).parent().addClass("selected_tab");
				jQuery(".area_info_details div.section").hide();
				jQuery(".area_info_details #"+jQuery(this).attr("id")+"_section").show();
			}
		});
	});
});*/

function submitForm(form,callBackFunction,urlOverride)
{
	var formObj = jQuery("#"+form);
	var url = jQuery(formObj).attr("action");
	if(urlOverride)
		url = urlOverride;

	jQuery.ajax({
		data: formObj.serialize(),
		url: url,
		type: 'POST',
		timeout: 2000,
		error: function() {
			//alert("ERROR: Could not submit form.");
		},
		success: function(r) {
			if(callBackFunction)
				return callBackFunction(r);
			else
			{
				var response = eval('('+r+')');

				if(response.Error)
					alert(response.ErrorMessage);
				else
					alert(response.Message);
			}
		}
	}); // ajax
}




// From http://develobert.blogspot.com/2008/06/random-color-generation-with-javascript.html
function random_color()
{
 var rint = Math.round(0x999999 * Math.random());
 return ('#0' + rint.toString(16)).replace(/^#0([0-9a-f]{6})$/i, '#$1');
}

// Get URL Paramater - from http://www.netlobo.com/url_query_string_javascript.html
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}





// Map functions
function loadMap(id)
{
  if (id == undefined) id = "mapProps";
  map = new GMap2(document.getElementById(id));
  map.setCenter(new GLatLng(40.637144, -111.489258), 13);
  map.setMapType(G_NORMAL_MAP);
  map.addControl(new GSmallZoomControl3D());
  map.enableContinuousZoom();
  map.enableScrollWheelZoom();
}

function openMarker(id)
{
  if (GBrowserIsCompatible() && map.isLoaded())
  {
    if (window[id] != undefined)
    {
      GEvent.trigger(window[id], 'click');
    }
  }
}

function zoomAndFit(points) {
   var bounds = new GLatLngBounds();
   for (var i=0; i< points.length; i++) {
      bounds.extend(points[i]);
   }
   map.setZoom(map.getBoundsZoomLevel(bounds));
   map.setCenter(bounds.getCenter());
}

function hiliteProp(id)
{
  jQuery('.listing_results .property_result').removeClass('active');
  jQuery('.thumbnail_results .gallery_result').removeClass('active');
  if (id != undefined) jQuery('#'+id).addClass('active');
}

