﻿// JScript File
var GMAP = null;
var GEOCODER = null;
var result = null;
var point1;
var point2;
var tempAddress;
var address1;
var address2;
var snapToRoute = null;
var dragMarker = null;
var SNAP = true;
var popupStatus = 0;
//var DATA;
var MARKERS;
var POINTS;
var IS_SAFARI = false;
var IS_IE = false;
var HOVER_PT = null;
var PLACE_SELECTED;
var FEATURED_PLACES;
var _DIRECTIONS;
var FirstAttempt;
var pointI;
var hover_html;
var INDEX;
var MULT_EMAIL;
var TriedTrvlTimeCount = 0;
var $filterSort;
var $applications;
var TriedTrvlTimeThreshold = 100;

function SetFeaturedPlaces()
{
	FEATURED_PLACES = jQuery.parseJSON('[{"Name" : "Red Frog Coffee, Longmont, CO","Text" : "<i>Promotion: Get $1 off when you mention that you found us on RendezvousSpot.com!</i>", "ImgPath":"/includes/images/featured/Red-Frog-Coffee.png"},{"Name" : "Ventura\'s, Toledo, OH" ,"Text":"", "ImgPath":"/includes/images/featured/Venturas.gif"}]');
}

function IsFeaturedPlace(place)
{
	for(var i = 0;i < FEATURED_PLACES.length;i++)
	{
		if(FEATURED_PLACES[i].Name == place)
			return true;
	}
	return false;
}
function GetFeaturedHTML(place)
{
	for(var i = 0;i < FEATURED_PLACES.length;i++)
	{
		if(FEATURED_PLACES[i].Name == place)
			return "<div><strong>" + FEATURED_PLACES[i].Text + "</strong><br/><img alt='"+place + "' src='"+  FEATURED_PLACES[i].ImgPath+ "'/></div>";
	}
	return "";
}
function GetFeaturedIMAGE(place)
{
	for(var i = 0;i < FEATURED_PLACES.length;i++)
	{
		if(FEATURED_PLACES[i].Name == place)
			return "<img alt='"+place + "' src='"+  FEATURED_PLACES[i].ImgPath+ "'/>";
	}
	return "";
}
function GetFeaturedTEXT(place)
{
	for(var i = 0;i < FEATURED_PLACES.length;i++)
	{
		if(FEATURED_PLACES[i].Name == place)
			return "<strong>" + FEATURED_PLACES[i].Text + "</strong>";
	}
	return "";
}

(function($) {
  $.fn.sorted = function(customOptions) {
    var options = {
      reversed: false,
      by: function(a) { return a.text(); }
    };
    $.extend(options, customOptions);
    $data = $(this);
    arr = $data.get();
    arr.sort(function(a, b) {
      var valA = options.by($(a));
      var valB = options.by($(b));
      if (options.reversed) {
        return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;				
      } else {		
        return (valA < valB) ? -1 : (valA > valB) ? 1 : 0;	
      }
    });
    return $(arr);
  };
})(jQuery);

function loadGoogleMap()
{
    if (GBrowserIsCompatible())
    {
        var curLat = 42.33256007536625;
        var curLong = -83.07037353515625;
        if(google.loader.ClientLocation)
        {
            curLat = google.loader.ClientLocation.latitude;
            curLong = google.loader.ClientLocation.longitude;
        }
        GMAP = new GMap2(document.getElementById("map"));
        GMAP.setCenter(new GLatLng(curLat, curLong), 11);
        GMAP.addControl(new GLargeMapControl());
        GMAP.addControl(new GMapTypeControl());
        GEOCODER = new GClientGeocoder();
    }
}
function DisplayPopup()
{
    centerPopup();
    loadPopup();    
}
function loadPopup()
{  
    //loads popup only if it is disabled  
    if(popupStatus==0)
    {  
        $("#backgroundPopup").css({  
        "opacity": "0.7"  
        });  
        $("#backgroundPopup").fadeIn("slow");  
        $("#places_popup").fadeIn("slow");  
        popupStatus = 1;  
    } 
    $("#calcDistance_popup").html("");
} 
    //disabling popup with jQuery magic!  
function disablePopup()
{  
    //disables popup only if it is enabled  
    if(popupStatus==1)
    {  
        $("#backgroundPopup").fadeOut("slow");  
        $("#places_popup").fadeOut("slow");  
        popupStatus = 0;
		if(dragMarker)
			dragMarker.openInfoWindowHtml(getpopuphtml());
    }  
}
//centering popup  
function centerPopup(shack)
{  
    //request data for centering  
    var windowWidth = document.documentElement.clientWidth;  
    var windowHeight = document.documentElement.clientHeight;
    var scrollPos = document.documentElement.scrollTop;
    var popupHeight = $("#places_popup").height();  
    var popupWidth = $("#places_popup").width();  
    var top = ((windowHeight/2)-(popupHeight/2))+scrollPos;
    if(shack)
    {
        top += 300;
    }
    if(IS_IE)
    {
        //centering  
        $("#places_popup").css({  
            "position": "absolute",  
            "top": top,  
            "left": windowWidth/2-popupWidth/2,
            "width": "790px"
        });  
    }
    else
    {
        //centering  
        $("#places_popup").css({  
            "position": "absolute",  
            "top": top,  
            "left": windowWidth/2-popupWidth/2 
        }); 
    }
    //only need force for IE6
    $("#backgroundPopup").css({  
        "height": windowHeight + scrollPos + $("#places").height() + $("#footer").height(),
        "width" : windowWidth  
    });
}
function setAddress(num)
{
    tempAddress = $('input[name=Address]').val();
    _setAddress(tempAddress,num,false,false);
}
function trim(s) {
	s = s.replace(/(^\s*)|(\s*$)/gi,"");
	s = s.replace(/[ ]{2,}/gi," ");
	s = s.replace(/\n /,"\n");
	return s;
}

function standardize(a)
{
     var standards = [   ["road","rd"],   
                        ["street","st"], 
                        ["avenue","ave"], 
                        ["av","ave"], 
                        ["drive","dr"],
                        ["saint","st"], 
                        ["north","n"],   
                        ["south","s"],    
                        ["east","e"], 
                        ["west","w"],
                        ["expressway","expy"],
                        ["parkway","pkwy"],
                        ["terrace","ter"],
                        ["turnpike","tpke"],
                        ["highway","hwy"],
                        ["lane","ln"],
                        ["township","twp"]
                     ];
    for (var i=0; i<standards.length; i++) 
    {
        if (a == standards[i][0])
        {
            a = standards[i][1];
        }
    }
    return a;
}
function different(a,b)
{
      // only interested in the bit before the first comma in the reply
      var c = b.split(",");
      b = c[0];
      // convert to lower case
      a = a.toLowerCase();
      b = b.toLowerCase();
      // remove apostrophies
      a = a.replace(/'/g ,"");
      b = b.replace(/'/g ,"");
      // replace all other punctuation with spaces
      a = a.replace(/\W/g," ");
      b = b.replace(/\W/g," ");
      // replace all multiple spaces with a single space
      a = a.replace(/\s+/g," ");
      b = b.replace(/\s+/g," ");
      // split into words
      awords = a.split(" ");
      bwords = b.split(" ");
      // perform the comparison
      var reply = false;
      for (var i=0; i<bwords.length; i++) 
      {
        //GLog.write (standardize(awords[i])+"  "+standardize(bwords[i]))
        if (standardize(awords[i]) != standardize(bwords[i])) 
        {
            reply = true
        }
      }
      //GLog.write(reply);
      return (reply);
}
function putmarker(lat,lng,num,query,address,edit) 
{
    $("#page_status").html("");
    var point = new GLatLng(lat,lng);
    GMAP.setCenter(point,14); 
    GMAP.addOverlay(new GMarker(point));
    if(num == "1")
    {    
        point1 = point;
        $("#btnSetAddress").unbind().click(function(){
            setAddress(2);
        });
        $('h2').html("enter second address:");
        $('#address1').html("Address 1: " + address + "&nbsp;&nbsp;&nbsp;<a href=\"javascript:editAddress('1')\">Edit</a>");
        $('#address1').fadeIn("slow");
        address1 = address;
        if(query)
        {
            var ad2 = getQueryVariable("ad2");
            if(ad2 != "~#@")
            {
                ad2 = Url.decode(ad2);
                _setAddress(ad2,2,true,edit);
            }
        }
        $('input[name=Address]').val('');
        $("#txtAddress").focus();
        if(edit && address2 != null && address2.length > 0)
            getdirections(query);
    }
    else
    {
        point2 = point;
        $("#btnSetAddress").unbind().click(function(){
            setAddress(1);
        });
        $('#address2').html("Address 2: " + address  + "&nbsp;&nbsp;&nbsp;<a href=\"javascript:editAddress('2')\">Edit</a><br/>");
        $('#address2').fadeIn("slow");
        $('#inputs').fadeOut("slow");
        address2 = address;
        $('h2').html("<a href='' name=></a>What are you meeting for?");
        $('#snap').show().html(getsnaphtml());
        $('#mapstatus').show().html("<span class='smallft'>Please wait...</span>");
        getdirections(query);
    }
}
function canceleditAddress(addNum)
{
    if(addNum == 1)
        $('#address1').html("Address 1: " + address1 + "&nbsp;&nbsp;&nbsp;<a href=\"javascript:editAddress('1')\">Edit</a>");
    else
        $('#address2').html("Address 2: " + address2 + "&nbsp;&nbsp;&nbsp;<a href=\"javascript:editAddress('2')\">Edit</a>");
}
function updateeditAddress(addNum)
{
    PLACE_SELECTED = {"data":[{"Type" : "food","Selected" : false},
                        {"Type" : "shopping","Selected" : false},
                        {"Type" : "movie","Selected" : false},
                        {"Type" : "bar","Selected" : false},
                        {"Type" : "coffee","Selected" : false},
                        {"Type" : "hotel","Selected" : false},
                        {"Type" : "library","Selected" : false},
                        {"Type" : "museum","Selected" : false}]}
    _setAddress($("input#txtEditAddress"+addNum).val(),addNum,false,true)
}
function editAddress(addNum)
{
    if(addNum == 1)
    {
        $('#address1').html("<input id='txtEditAddress1' size='69' value=\""+address1+"\"/>&nbsp;&nbsp;&nbsp;<a href=\"javascript:updateeditAddress('1')\">Update</a>&nbsp;&nbsp;<a href=\"javascript:canceleditAddress('1')\">Cancel</a>");
		$('#txtEditAddress1').keypress(function (e) {
			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {   
				updateeditAddress('1');
				return false;   
			} else {   
				return true;   
			}   
		});
		$('#txtEditAddress1').focus(function(){
			this.select();
		});
		$('#txtEditAddress1').focus();
    }
    else
    {
        $('#address2').html("<input id='txtEditAddress2' size='69' value=\""+address2+"\"/>&nbsp;&nbsp;&nbsp;<a href=\"javascript:updateeditAddress('2')\">Update</a>&nbsp;&nbsp;<a href=\"javascript:canceleditAddress('2')\">Cancel</a>");
		$('#txtEditAddress2').keypress(function (e) {
			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {   
				updateeditAddress('2');
				return false;   
			} else {   
				return true;   
			}   
		});
		$('#txtEditAddress2').focus(function(){
			this.select();
		});
		$('#txtEditAddress2').focus();
    }
}
function _setAddress(tempAddress,num,query,edit)
{    
    if (!GEOCODER) 
    {
		GEOCODER = new GClientGeocoder();
	}
	result = null;
	
	GEOCODER.getLocations(tempAddress,function(result) {
			if (result.Status.code != G_GEO_SUCCESS) 
			{
				$("#page_status").html(tempAddress + " not found");
				if(num == "1")
				{
					$('#address1').html("");
					$('h2').html("enter first address again:");
					$("#btnSetAddress").unbind().click(function(){
						setAddress(1);
					});
				}
				else
				{
					$('#address2').html("");
					$('h2').html("enter second address again:");
					$("#btnSetAddress").unbind().click(function(){
						setAddress(2);
					});
					$('#inputs').fadeIn("slow");
				}
				$('input[name=Address]').val('');
				$("#txtAddress").focus();
				GMAP.clearOverlays();
				disablePopup();
			}
			else if(result.Placemark.length > 1)
			{
				var html = "Did you mean?";
				
				// Loop through the results
				for (var i=0; i<result.Placemark.length; i++) 
				{
				  var p = result.Placemark[i].Point.coordinates;
				  html += "<br/>"+(i+1)+": <a href='javascript:putmarker(" +p[1]+","+p[0]+","+num+","+query+",\""+result.Placemark[0].address+"\")'>"+ result.Placemark[i].address+"<\/a>";
				}
				$("#page_status").html(html);
				$('html, body').animate({scrollTop:0},'slow');
			}
			else 
			{
				if(different(result.Placemark[0].address,tempAddress))
				{
					var p = result.Placemark[0].Point.coordinates;
					$("#page_status").html("Did you mean?<br/><a href='javascript:putmarker(" +p[1]+","+p[0]+","+num+","+query+",\""+result.Placemark[0].address+"\","+edit+")'>"+ result.Placemark[0].address+"<\/a>");
					$('html, body').animate({scrollTop:0},'slow');
				}
				else
				{
					$("#page_status").html("");
					var p = result.Placemark[0].Point.coordinates;
					putmarker(p[1],p[0],num,query,result.Placemark[0].address,edit);
				}
			}
		});
    return false;
}
function togglesnap()
{
    SNAP = !SNAP;
    if(SNAP)
    {
        GMAP.closeInfoWindow();
        var latlng = snapToRoute.getClosestLatLng(dragMarker.getLatLng());
        dragMarker.setLatLng(latlng);
        dragMarker.openInfoWindowHtml(getpopuphtml());
        changeQuery("s","on");
    }
    else
    {
        changeQuery("s","off");
    }
    $('#snap').html(getsnaphtml());
}
function Midpoint(points) 
{
  var lat = 0.0;
  var lng = 0.0;
  for (var i = 0; i < points.length; i++) 
  {
    lat += parseFloat(points[i].lat());
    lng += parseFloat(points[i].lng());
  }
  lat /= parseFloat(points.length);
  lng /= parseFloat(points.length);
  return (new GLatLng(lat, lng));
}
function getDragIcon()
{
    var dragIcon = new GIcon();
    dragIcon.image = "http://www.google.com/mapfiles/dd-start.png";
    dragIcon.iconSize = new GSize(20, 34);
    return dragIcon;
}

function getdirections(query)
{
    //PageMethods.GetAddress(1,OnGetDirComplete,OnTimeOut,OnError);
    //var directionsPanel = document.getElementById("route");
    //$('#route').css("display","none");
    GMAP.clearOverlays();
	directions = null;
    directions = new GDirections(GMAP);
    GEvent.addListener(directions,"error", function() {
        //GLog.write("Failed: "+directions.getStatus().code);
        restart();
        $("#page_status").html("An error occurred getting route.  Please re-enter addresses.");
      });
    
    
    GEvent.addListener(directions,"load", function() {
        dothemagic(directions,query);
        $("#page_status").html("");
        $('#mapstatus').html("<span class='smallft'>* the blue line is path to drive from Pt A to Pt B</span>");
        
        if(!query)
        {
            //changeQuery("ad1",Url.encode(address1));
            //changeQuery("ad2",Url.encode(address2));
            
            window.location = "#ad1="+Url.encode(address1)+"&ad2="+Url.encode(address2);
        }
            //GLog.writeHtml("The distance is "+directions.getDistance().html);
      }); 
    directions.load("from: "+ address1 + " to: "+ address2);
}

function OnComplete(args)
{
    
}
function OnTimeOut(args)
{
    $("#page_status").html('Timeout occurred');
}
function OnError(args)
{
    $("#page_status").html('Error occurred');
}

function select(place)
{
    var other;
    if(place.indexOf("|") > -1)
    {
        other = place.substr(place.indexOf("|")+1);
        place = "other";
    }
    else
        other = $("input#txtOtherSearch").val();
	$("#contactArea").html("<div>"+getsearchhtml()+"</div><div id='results'></div>")
	$("#results").html("<div align='center'><img alt='Loading' src='/includes/images/global/ajax-loader.gif'/></div>");
    if(place == "other")
        $("#showpopupbtn").html("<strong><a href=\"javascript:select('other|" + other+"');\">Show Results</a></strong>");
    else
        $("#showpopupbtn").html("<strong><a href=\"javascript:select('"+place+"');\">Show Results</a></strong>");
    $('#legend').fadeIn('slow');
    GMAP.closeInfoWindow();
    var localSearch = new google.search.LocalSearch();
    localSearch.setCenterPoint(dragMarker.getLatLng());
    localSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);
    var tinyIcon = new GIcon(G_DEFAULT_ICON);
    var search;
    if(place == "food")
    {
        $("#places_popup h1").html("Places to Eat:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
        search = "food restaurant";
    }
    else if(place == "shopping")
    {
        $("#places_popup h1").html("Places to Shop:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
        search = "shopping store mall";
    }
    else if(place == "movie")
    {
        $("#places_popup h1").html("Movie Theaters:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
        search = "movie theater";
    }
    else if(place == "bar")
    {
        $("#places_popup h1").html("Bars:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_black.png";
        search = "bars pubs";
    }
    else if(place =="coffee")
    {
        $("#places_popup h1").html("Coffee Shop:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
        search = "coffee espresso";
    }
    else if(place == "hotel")
    {
        $("#places_popup h1").html("Hotels:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_brown.png";
        search = "hotel lodging motel";
    }
    else if(place == "library")
    {
        $("#places_popup h1").html("Libraries:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_gray.png";
        search = "library";
    }
    else if(place == "museum")
    {
        $("#places_popup h1").html("Museums:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_purple.png";
        search = "museum";
    }
    else if(place == "golf")
    {
        $("#places_popup h1").html("Golf Courses:");
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_white.png";
        search = "golf course";
    }
    else if(place == "other")
    {
        search = other;
        $("#places_popup h1").html(search);
        tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_orange.png";
    }
    tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    tinyIcon.iconSize = new GSize(12, 20);
    tinyIcon.shadowSize = new GSize(22, 20);
    
    localSearch.setSearchCompleteCallback(localSearch,function(){
        var res = this.results;
        $("#searchingIMG").hide();
        if(res && res.length>0)
        {
          //DATA = new Array();
          MARKERS = new Array();
          POINTS = new Array();
          for(var i=0; i<res.length; i++)
          {
            MARKERS[i] = (function(pt){
              var marker = new GMarker(new GLatLng(pt.lat,pt.lng),{icon:tinyIcon});
              GEvent.addListener(marker,'click',function(){
                marker.openInfoWindowHtml(getpthtml(pt,i,true));
              });
              GMAP.addOverlay(marker);
              POINTS[i] = pt;
              //DATA[i] = [getpthtml(pt,i) ];
              return marker;
            })(res[i]);};putDataOnPopup();
        }
    });
    GMAP.setCenter(dragMarker.getLatLng());
    GMAP.setZoom(12);
    localSearch.execute(search);
    if(place == "other")
        changeQuery("t",place + "|" + other);
    else
        changeQuery("t",place);
}

function putDataOnPopup(title)
{
    if(POINTS)
    {
        var x;
        var count=0;
        $("#results").html("&nbsp;");
		/*for(var i=0;i<POINTS.length;i++)
        {
            var text = getfullpthtml(POINTS[i],i,1);
            $("#results").append("<li id='id-"+i+"' class='item set"+count+"' data-type='points'>"+text+"<span class='hidnum' style='display:none;'>"+i+"</span><div class='tdbottom' align='right'><input type='checkbox' class='spotcheckbox' id='cb_"+i+"'/></div></li>");
        }
        $("#results").wrapInner("<ul id='spots' class='result-grid'></ul>");*/
        for(var i=0;i<POINTS.length;i++)
        {
            x = i % 4;
            if(i > 0 && x == 0)
            {
                $(".set"+count).wrapAll("<tr id='set"+count+"_wrapper'></tr>");
                count = count +1;
            }
            var text = getfullpthtml(POINTS[i],i,1);
            $("#results").append("<td id='set"+count+"_item"+i+"' class='item set"+count+"'>"+text+"<span class='hidnum' style='display:none;'>"+i+"</span><div class='tdbottom' align='right'><input type='checkbox' class='spotcheckbox' id='cb_"+i+"'/></div></td>");
        }
        x = i % 4;
        if(x == 0)
        {
            $(".set"+count).wrapAll("<tr id='set"+(count+1)+"_wrapper'></tr>");
            //$(".pset"+count).wrapAll("<tr id='pset"+(count+1)+"_wrapper'></tr>");
        }
        $("#results").wrapInner("<table id='spots' cellpadding='3'></table>");
        var browser=navigator.appName;
        var b_version=navigator.appVersion;
        var version=parseFloat(b_version);
        if ((browser=="Netscape"||browser=="Microsoft Internet Explorer")
        && (version>=4))
        {
            $("#results").html($("#results").html());
        }
        if(title != null)
            $("#places_popup h1").html(title);
		$(".featured_place").parent().css("background", "#FEF5CA");
    }
    
    $('.itemdetailpara').hide();
    $('.itemdetail').addClass('pointer');
    $('#places_popup .itemdetail').click(function() {
        itemDetail($(this).attr('id'),true);
    });
    $(".spotcheckbox").click(function(){
        var num = this.id.substr(3);
        $("#cb2_"+num).attr('checked', $(this).attr('checked'));
        $("#places_popup_status").html("<h3><a href=\"javascript:email();\">Email Selected Places</a></h3>");
    });
    $(".spotcheckbox2").click(function(){
        var num = this.id.substr(4);
        $("#cb_"+num).attr('checked', $(this).attr('checked'));
        $("#places_popup_status").html("<h3><a href=\"javascript:email();\">Email Selected Places</a></h3>");
    });
    DisplayPopup();
	/*
	//From http://razorjack.net/quicksand/demos/one-set-clone.html
	// bind radiobuttons in the form
	$filterSort = $('#filtersort input[name="sort"]');
	$applications = $('#spots');
	  

	  // attempt to call Quicksand on every form change
	  $filterSort.change(function(e) {
		// get the first collection
		

		// clone applications to get a second collection
		var $data = $applications.clone();
		var $filteredData = $data.find('li');
		 
		// if sorted by Address1
		if ($('#filtersort input[name="sort"]:checked').val() == "dAdd1") {
		  var $sortedData = $filteredData.sorted({
			by: function(v) {
			  return parseFloat($(v).find('span[class="add1time"]').text());
			}
		  });
		} else if ($('#filtersort input[name="sort"]:checked').val() == "dAdd2") {
		  // if sorted by Address2
		  var $sortedData = $filteredData.sorted({
			by: function(v) {
			  return parseFloat($(v).find('span[class="add2time"]').text());
			}
		  });
		} else {
			// if sorted by name
		  var $sortedData = $filteredData.sorted({
			by: function(v) {
			  return $(v).find('a[class="PlaceName"]').text().toLowerCase();
			}
		  });
		}

		// finally, call quicksand
		$applications.quicksand($sortedData, {
		  duration: 800,
		  easing: 'easeInOutQuad'
		});

	  });*/

}

function calcdistancetopoint(idtarget,addressFrom,addressTo,ptnum)
{
    var id="#"+idtarget+ptnum;
    $(id).html("<img alt='' src='includes/images/global/indicator.gif' />");
    var a=function(arg){return function(evt){
		var time = Math.round(temp.getDuration().seconds / 60);
		var displayTime = "";
		if(time > 60)
		{
			var hours, mins;
			hours = Math.floor(time / 60);
			mins = time % 60
			if(hours > 0)
			{
				displayTime = hours + " hour";
				if(hours>1)
					displayTime = displayTime + "s";
			}
			if(mins > 0)
			{
				displayTime = displayTime + " and " + mins + " min";
				if(mins>1)
					displayTime = displayTime + "s";
			}
			
		}
		else
		{
			displayTime = time + " mins";
		}
        $(arg).html(displayTime + " ("+temp.getDistance().html+")");  //<span class='add"+arg.substr(4,1)+"time'>"+  + "</span>
        };};
    var er=function(idtarg,addFrom,addTo,pnum){return function(evt){
		if(TriedTrvlTimeCount < TriedTrvlTimeThreshold)
		{
			calcdistancetopoint(idtarg,addFrom,addTo,pnum);
			TriedTrvlTimeCount++;
		}
		else
		{	
			$("#"+idtarg+pnum).html("Travel Time unavailable");
		}
        };};
    var temp = new GDirections();
    GEvent.addListener(temp,"error", er(idtarget,addressFrom,addressTo,ptnum));
    GEvent.addListener(temp,"load", a(id)); 
    temp.load("from: "+ addressFrom + " to: "+ addressTo);
}
function _getExactMidPoint(directions)
{
    var gdis = directions.getDistance();
    var pt1;
    var diskm = (gdis.meters * 0.001) / 2;
    var pt2;
    var disCalc = 0;
    var polyline = directions.getPolyline();
    for(var i = 0;i<polyline.getVertexCount()-1;i++)
    {
        pt1 = polyline.getVertex(i);
        pt2 = polyline.getVertex(i+1);
        
        disCalc += _getDistBetweenPts(pt1,pt2);
        if(disCalc > diskm)
        {
            break;
        }
    }
    return Midpoint([pt1,pt2]);
}
function _getDistBetweenPts(pt1,pt2)
{
    var R = 6371; // km
    var dLat = (pt2.lat()-pt1.lat())* Math.PI / 180;
    var dLon = (pt2.lng()-pt1.lng())* Math.PI / 180; 
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.cos(pt1.lat()* Math.PI / 180) * Math.cos(pt2.lat()* Math.PI / 180) * 
            Math.sin(dLon/2) * Math.sin(dLon/2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c;
    return d;
}
function itemDetail(ID,popup)
{
    var _show;
    if(popup)
    {
        _show = "#places_popup";
    }
    else
    {
        _show = "#places";
    }
    var _id = _show + ' .gs-address_' + ID;
    $(_id).slideToggle();
    if($(_show+" #"+ID).html() == "Hide Details...")
        $(_show+" #"+ID).html("Show Details...");
    else
        $(_show+" #"+ID).html("Hide Details...");
}
function showpointonmap(pt)
{
    disablePopup();
    MARKERS[pt].openInfoWindowHtml(getpthtml(POINTS[pt],pt,true));
    $('html, body').animate({scrollTop:164},'slow');
}
function getfullpthtml(pt,num)
{
    var phone = "Not Found";
    if(pt.phoneNumbers != null && pt.phoneNumbers[0] != null)
        phone = pt.phoneNumbers[0].number;
    var title = pt.title;
    //title = title.replace("&amp;"," and ");
    var url1 = "http://maps.google.com/maps?f=d&hl=en&geocode=&saddr="+Url.encode(address1)+"&daddr="+Url.encode(pt.addressLines[0])+","+Url.encode(pt.addressLines[1])+"("+Url.encode(title)+")";
	var url2 = "http://maps.google.com/maps?f=d&hl=en&geocode=&saddr="+Url.encode(address2)+"&daddr="+Url.encode(pt.addressLines[0])+","+Url.encode(pt.addressLines[1])+"("+Url.encode(title)+")";
	TriedTrvlTimeCount = 0;
    calcdistancetopoint("add1_dist",address1,pt.addressLines[0]+", "+pt.addressLines[1],num);
	calcdistancetopoint("add2_dist",address2,pt.addressLines[0]+", "+pt.addressLines[1],num);
	var featured = '';
	var placeToCheck = pt.titleNoFormatting + ", " + pt.addressLines[1]
	var html = "";
	if(IsFeaturedPlace(placeToCheck))
	{
		featured = ' featured_place'
	}
    html = "<div class='clearfix gs-title" + featured + "'>"
	if(featured != "")
	{
		html += "<div class='clearfix'><div class='floatleft'>Featured Location:</div></div><div class='clearfix featured_wrapper'><div class='leftside'>" + GetFeaturedIMAGE(placeToCheck);
		html += "</div><div class='rightside'>"
	}
	
    html +="<a target='_blank' class='gs-title' href='"+pt.url+"'>"+pt.titleNoFormatting+"</a>";
    html += "<div align='center' id='"+num+"' class='itemdetail smallft'>Show Details...</div><div id='detail_"+num+"' class='itemdetailpara gs-address_"+num+"'>"+
    "<div class='gs-street gs-addressLine'>"+pt.addressLines[0]+"</div>"+
    "<div class='gs-city gs-addressLine'>"+pt.addressLines[1]+"</div>"+
    "<div class='gs-country'>"+pt.country+"</div>"+
    "</div>";
html += "<div class='gs-phone'>"+phone+"</div><br/>"+
"<div class='gs-label'><u>" + address1 +"</u><br/><a target='_blank' class='gs-secondary-link' href="+url1+">Directions to Here</a></div>"+
"<div id='add1_dist"+num+"'></div><br/>"+
"<div class='gs-label'><u>" + address2 +"</u><br/><a target='_blank' class='gs-secondary-link' href="+url2+">Directions to Here</a></div>"+
"<div id='add2_dist"+num+"'></div>"+
"<div align='center'><div class='clearfix iconwrap'>";
html = html + "<div class='emailimg'><a title='Email This Place' href='javascript:email("+num+");'><img src='includes/images/email_blend.gif' alt='Email This Place' /></a></div>";
html = html + "<div class='showimg'><a title='Show on Map' href='javascript:showpointonmap("+num+");'><img src='includes/images/show_blend.gif' alt='Show on Map' /></a></div>";
html += "</div>";
if(featured != "")
{
	html += "</div></div></div><p>" + GetFeaturedTEXT(placeToCheck); + "</p>"
}
else
{
html += "</div>";
}
return html;
}



function getpthtml(pt,num,marker,email)
{
    var phone = "Not Found";
    if(pt.phoneNumbers != null && pt.phoneNumbers[0] != null)
        phone = pt.phoneNumbers[0].number;
    var title = pt.title;
    title = title.replace("&amp;"," and ");
    var url1 = "http://maps.google.com/maps?f=d&hl=en&geocode=&saddr="+Url.encode(address1)+"&daddr="+Url.encode(pt.addressLines[0])+","+Url.encode(pt.addressLines[1])+"("+Url.encode(title)+")";
    var url2 = "http://maps.google.com/maps?f=d&hl=en&geocode=&saddr="+Url.encode(address2)+"&daddr="+Url.encode(pt.addressLines[0])+","+Url.encode(pt.addressLines[1])+"("+Url.encode(title)+")";
    var html = "<div class='gs-title'>"+
"<a target='_blank' class='gs-title' href='"+pt.url+"'>"+pt.titleNoFormatting+"</a>"+
"</div>";
if(email == null && !marker)
{
    html += "<div align='center' id='"+num+"' class='itemdetail smallft'>Show Details...</div><div id='detail_"+num+"' class='itemdetailpara gs-address_"+num+"'>"+
    "<div class='gs-street gs-addressLine'>"+pt.addressLines[0]+"</div>"+
    "<div class='gs-city gs-addressLine'>"+pt.addressLines[1]+"</div>"+
    "<div class='gs-country'>"+pt.country+"</div>"+
    "</div>";
}
else
{
    html += "<div class='gs-address'>"+
    "<div class='gs-street gs-addressLine'>"+pt.addressLines[0]+"</div>"+
    "<div class='gs-city gs-addressLine'>"+pt.addressLines[1]+"</div>"+
    "<div class='gs-country'>"+pt.country+"</div>"+
    "</div>";
}
html += "<div class='gs-phone'>"+phone+"</div>"+
"<div class='gs-directions-to-from'>"+
"<div class='gs-label'>Get directions From:</div>"+
"<div class='gs-secondary-link'>"+
"<a target='_blank' class='gs-secondary-link' href="+url1+">"+address1+"</a>"+
"</div>"+
//"<div class='gs-spacer'>&nbsp;</div>"+
"<div class='gs-secondary-link'>"+
"<a target='_blank' class='gs-secondary-link' href="+url2+">"+address2+"</a>"+
"</div></div><div align='center'><div class='clearfix iconwrap'>";
if(email == null)
{
    if(!marker)
        html = html + "<div class='emailimg'><a title='Email This Place' href='javascript:email("+num+");'><img src='includes/images/email_blend.gif' alt='Email This Place' /></a></div>";
    else
        html = html + "<div class='emailimg'><a title='Email This Place' href='javascript:email("+num+");'><img src='includes/images/email.gif' alt='Email This Place' /></a></div>";
}
if(!marker)
    html = html + "<div class='showimg'><a title='Show on Map' href='javascript:showpointonmap("+num+");'><img src='includes/images/show_blend.gif' alt='Show on Map' /></a></div>";
html += "</div></div>";
return html;
}


function email(i)
{
    //$('#contactArea').fadeOut("slow");
    if(i == null)
    {
        var result = "";
        $(".spotcheckbox").each( function () {
          if(this.checked == true) 
          {
            var num  = this.id.substr(3);
            if(result.indexOf(num) < 0)
                result += num + "|";
          }
        });
        $(".spotcheckbox2").each( function () {
          if(this.checked == true) 
          {
            var num = this.id.substr(4);
            if(result.indexOf(num) < 0)
                result += num + "|";
          }
        });
        i = result;
        MULT_EMAIL = true;
    }
    else 
        MULT_EMAIL = false;
    $("#places_popup_status").html("");
    $("#calcDistance_popup").html("");
    $('#contactArea').fadeIn("slow");
    $('#contactArea').html("<div><span class='smallft'><a href='javascript:select(\""+getQueryVariable("t")+"\");'><< BACK</a></span>"+
        "<table id='emailtable'>"+
            "<tr><td><p class='tblFont'>Your Name:</p></td><td><p><input id='urname' type='text' size='75' /></p></td><td width='10' align='left'><p id='urname_error'></p></td></tr>"+
            "<tr><td><p class='tblFont'>Your Email:</p></td><td><p><input id='email' type='text' size='75' /></p></td><td width='10' align='left'><p id='email_error'></p></td></tr>"+            
            "<tr><td><p class='tblFont'>Recipient's Name:</p></td><td><p><input id='name' type='text' size='75' /></p></td><td width='10' align='left'><p id='name_error'></p></td></tr>"+            
            "<tr><td><p class='tblFont'>Recipient's Email:</p></td><td><p><input id='emailTO' type='text' size='75' /></p></td><td width='10' align='left'><p id='emailTO_error'></p></td></tr>"+
            "<tr><td><p class='tblFont'>Message:</p></td><td><p><textarea id='message' wrap='hard' style='height:50px;width:490px;'></textarea></p></td><td width='10' align='left'><p id='message_error'></p></td></tr>"+
            "<tr><td>&nbsp;</td><td><p>&nbsp;</p></td><td>&nbsp;</td></tr>"+
            "<tr><td><p><input id='btnSend' type='button' value='Send' /></p></td><td align='left'><p><input id='btnClear' type='button' value='Clear' /><span id='status'></span></p></td><td></td></tr>"+
            "</table>*note for multiple emails, separate Recipient's Name and Email with a semi-colon (;).</div>");
    $("#places_popup h1").html("Email:");
    INDEX = i;
    $("#btnSend").click(function(){  
        EmailPlace(); 
    });  
    $("#btnClear").click(function(){  
        clearform(); 
    });
    $("#name").change(function(){
        Error('name',($("#name")[0].value.length > 0));
    });
    $("#email").change(function(){
        Error('email',($("#email")[0].value.length > 0));
    });
    $("#emailTO").change(function(){
        Error('emailTO',($("#emailTO")[0].value.length > 0));
    });
    $("#message").change(function(){
        Error('message',($("#message")[0].value.length > 0));
    });
    $("#urname").change(function(){
        Error('urname',($("#urname")[0].value.length > 0));
    });
    clearform();
    DisplayPopup();
}

function EmailPlace()
{
    disableBtn('btnSend',true);
    disableBtn('btnClear',true);
    if(validate())
    {
        $('#status').html("<img alt='' src='/includes/images/global/indicator.gif'/>");
//        var j = getJSONVals(POINTS[INDEX]);
        var j = getJSONVals();
//        var jStr = JSON.stringify(j, function (key, value) {
//                 return value;
//                    });
        var tempurl = "";
        tempurl = ""+window.location;
        FirstAttempt = true;
        //jPageMethod("default.aspx","EmailPlace",jStr,onSuccess,onFail);
        PageMethods.EmailPlace(j,$('input#urname').val(),$('input#name').val(),$('input#emailTO').val(),$('input#email').val(),$('textarea#message').val(),tempurl,onSuccess,onFail);
    }
    else
    {   
        disableBtn('btnSend',false);
        disableBtn('btnClear',false);
    }
    return false;
}
function getJSONVals(pt)
{
//    var retVal = '';
//    var tempurl = ""+window.location;
//    retVal = {"place" : getpthtml(pt,INDEX,true,true) ,
//                "fromname" : $('input#urname').val() ,
//                "toname" : $('input#name').val() ,
//                "to" : $('input#emailTO').val() ,
//                "from" : $('input#email').val() ,
//                "msg" : $('textarea#message').val() ,
//                "url" : tempurl };
    if(MULT_EMAIL)
    {
        var nums = INDEX.split("|");
        var html = "";
        for(var i = 0;i < nums.length -1;i++)
        {
            if(i>0)
                html += "<br/>";
            html += getpthtml(POINTS[nums[i]],nums[i],true,true);
        }
        return html;
    }
    else
        return getpthtml(POINTS[INDEX],INDEX,true,true);
    //return retVal;
}
function disableBtn(btn,disable)
{
    if(disable)
        $('#'+btn).attr('disabled','disabled');
    else
        $('#'+btn).removeAttr('disabled');
}
function onTimeOut(args)
{
    $('#status').html("<span style='color:red;'> Time out occurred.  Please wait then try again.</span>");
    disableBtn('btnSend',false);
    disableBtn('btnClear',false);
}
function onFail(args)
{
    if(FirstAttempt)
    {
        FirstAttempt = false;
        var j = getJSONVals(POINTS[INDEX]);
//        var jStr = JSON.stringify(j, function (key, value) {
//                 return value;
//                    });
        var tempurl = "";
//        if($("#cbSendlink:checked").val() == "on")
            tempurl = ""+window.location;
        PageMethods.EmailPlace(j,$('input#urname').val(),$('input#name').val(),$('input#emailTO').val(),$('input#email').val(),$('textarea#message').val(),tempurl,onSuccess,onFail);
    }
    else
    {   
        $('#status').html("<span style='color:red;'> An error occurred.  Please try again.</span>");
        disableBtn('btnSend',false);
        disableBtn('btnClear',false);
    }
}
function onSuccess(args)
{
    disableBtn('btnSend',false);
    disableBtn('btnClear',false);
    if(args == 'Sent' || args == "\"Sent\"")
    {
        $('#status').html("");
        var t = getQueryVariable("t");
        if(t != "~#@")
            $('#contactArea').html("<div align='center'>Your Email Has Been Sent.  <a href=\"javascript:select('"+t+"');\">Click Here to go back to results</a>.</div>");
        else
            $('#contactArea').html("<div align='center'>Your Email Has Been Sent. Please close this window."); 
    }
    else
        $('#status').html("<span style='color:red;'> " + args +"</span>");
}
function validate()
{
    var retVal = true;
    if($('input#name').val() == '')
    {
        retVal = false;
        Error('name',false);
    }
    if($('input#email').val()== '')
    {
        retVal = false;
        Error('email',false);
    }
    if($('input#emailTO').val() == '')
    {
        retVal = false;
        Error('emailTO',false);
    }
    if($('input#urname').val() == '')
    {
        retVal = false;
        Error('urname',false);
    }
    var name = $('input#name').val();
    name = name.split(';');
    var emails = $('input#emailTO').val();
    emails = emails.split(';');
    if(name.length != emails.length)
    {
        retVal = false;
        $('#status').html("<span style='color:red;'> **Error: Number of Names to Emails do not match</span>");
    }
        
    return retVal;
}
function clearform()
{
    $('input#urname').val('');
   $('input#name').val('');
   $('input#email').val('');
   $('input#emailTO').val('');
   $('textarea#message').val('');
   $('#status').html('');
   $('#urname').focus();
}
function Error(val,clear)
{
    if(clear)
        $('#'+val+'_error').html("");
    else
        $('#'+val+'_error').html("<span style='color:red;'>*</span>");
}
function dothemagic(directions,query)
{
    //_DIRECTIONS = directions;
    var qLat = getQueryVariable("lat");
    var qLng = getQueryVariable("lng");
    if(query && qLat != "~#@" && qLng != "~#@")
    {
        pointI = new GLatLng(qLat, qLng)
        var s = getQueryVariable("s");
        if(s != "~#@" && s == "on")
            SNAP = true;
        else
            SNAP = false;
        $('#snap').html(getsnaphtml());
    }
    else
        pointI = _getExactMidPoint(directions);//Midpoint([point1,point2]);
    var position = new GLatLng(pointI.lat(),pointI.lng());
    var dragIcon = new GIcon();
    dragIcon.image = "http://www.google.com/mapfiles/dd-start.png";
    dragMarker = new GMarker(position, {draggable: true});
    snapToRoute = new SnapToRoute(GMAP,dragMarker,directions.getPolyline());
    GEvent.addListener(dragMarker, "dragstart", function() {
      dragMarker.closeInfoWindow();
    });
    GEvent.addListener(dragMarker, "click", function() {
      dragMarker.openInfoWindowHtml(getpopuphtml());
    });

    GEvent.addListener(dragMarker, "dragend", function() {
      if(SNAP)
      {
          var latlng = snapToRoute.getClosestLatLng(dragMarker.getLatLng());
          dragMarker.setLatLng(latlng);
      }
      dragMarker.openInfoWindowHtml(getpopuphtml());
      GMAP.setCenter(dragMarker.getLatLng());
      var ll = dragMarker.getLatLng();
      if(ll != null)
      {
        var lat = ll.lat();
        var lng = ll.lng();
        var s = "off";
        if(SNAP)
            s = "on";
        changeQuery("s",s);
        changeQuery("lat",lat);
        changeQuery("lng",lng);
      }
    });
//    if(SNAP)
//    {
//        var latlng = snapToRoute.getClosestLatLng(dragMarker.getLatLng());
//        dragMarker.setLatLng(latlng);
//    }
    GMAP.addOverlay(dragMarker);
    dragMarker.openInfoWindowHtml(getpopuphtml());
    if(query)
    {
        var type = getQueryVariable("t");
        if(type != "~#@")
        {
            type = Url.decode(type);
            select(type);
        }
        else
        {
            disablePopup();
            $('html, body').animate({scrollTop:164},'slow');
        }
    }
    else
        $('html, body').animate({scrollTop:164},'slow');
//    GMAP.savePosition();
}
function getpopuphtml()
{
    return getsearchhtml(true)+"<br /><br /><span class='smallft'>* If you don't like this spot, simply drag this marker somewhere else.<br/>&nbsp;&nbsp;&nbsp;Check out the <a href=\"javascript:openhelp('snap');\">snapping feature</a>!<br/>** points may not be visible at this zoom</span>";
}
function getsearchhtml(val)
{
    if(val)
    return "<div id='searchhtmldiv' class='clearfix'><div class=''>Search:<br/><a href=\"javascript:select('food');\">Food</a> , <a href=\"javascript:select('shopping');\">Shopping</a> , <a href=\"javascript:select('movie');\">Movie</a>, <a href=\"javascript:select('bar');\">Bars</a>, <a href=\"javascript:select('coffee');\">Coffee</a>, <a href=\"javascript:select('hotel');\">Hotels</a>, <a href=\"javascript:select('library');\">Library</a>, <a href=\"javascript:select('museum');\">Museum</a>, <a href=\"javascript:select('golf');\">Golf</a>,</div><div class=''><div class='clearfix'><div id='otherlink'><a href=\"javascript:toggleOther();\">Other</a></div><div id='othersearch'><input id='txtOtherSearch' size='6' type='text'/>&nbsp;<a href=\"javascript:select('other');\">></a></div></div></div></div>";
    else
    return "<div id='searchhtmldiv' class='clearfix'><div class='floatleft'>Search:<br/><a href=\"javascript:select('food');\">Food</a> , <a href=\"javascript:select('shopping');\">Shopping</a> , <a href=\"javascript:select('movie');\">Movie</a>, <a href=\"javascript:select('bar');\">Bars</a>, <a href=\"javascript:select('coffee');\">Coffee</a>, <a href=\"javascript:select('hotel');\">Hotels</a>, <a href=\"javascript:select('library');\">Library</a>, <a href=\"javascript:select('museum');\">Museum</a>, <a href=\"javascript:select('golf');\">Golf</a>,</div><div class='floatleft'><div class='clearfix'><div id='otherlink'><a href=\"javascript:toggleOther();\">Other</a></div><div id='othersearch'><input id='txtOtherSearch' size='6' type='text'/>&nbsp;<a href=\"javascript:select('other');\">></a></div></div></div></div>";
}
function getsnaphtml(v)
{
    if(!SNAP)
        return "<a href='javascript:restart(\"true\");'>Start Over</a>&nbsp;&nbsp;|&nbsp;&nbsp;Snap to Line: <a href=\"javascript:togglesnap();\">OFF</a> <span class='smallft super'><a href=\"javascript:openhelp('snap');\">?</a></span> | <a id='link2Map' href='javascript:showLink();'>Link</a>";
    else
        return "<a href='javascript:restart(\"true\");'>Start Over</a>&nbsp;&nbsp;|&nbsp;&nbsp;Snap to Line: <a href=\"javascript:togglesnap();\">ON</a> <span class='smallft super'><a href=\"javascript:openhelp('snap');\">?</a></span> | <a id='link2Map' href='javascript:showLink();'>Link</a>";
}
function showLink()
{
    $("#linkPopup").show();
    $("input#txtLink2Map").val(window.location);
    $("#txtLink2Map").focus(function() { $(this).select()});
}
function toggleOther()
{
    $("#othersearch").toggle();
	if($('#txtOtherSearch').is(':visible'))
	{
		$("#txtOtherSearch").focus();
		$('#txtOtherSearch').keypress(function (e) {
			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {   
				select('other');
				return false;   
			} else {   
				return true;   
			}   
		});
	}
}
function closeLinkPop()
{
    $("#linkPopup").hide();
}
function openhelp(v)
{
    if(v == "snap")
    {
        $("#places_popup h1").html("Help on - \"Snap to Line\"");
        $("#contactArea").html("Snap to Line <i><strong>ON</strong></i>: When you the drag midpoint, it will drop to the closest point on the blue line.<br /><br />Snap to Line <strong><i>OFF</i></strong>:  Allows you to drop the midpoint anywhere on the map.");
		$("#searchingIMG").hide();
    }
    DisplayPopup();
}
function restart(click)
{
	SetFeaturedPlaces();
    HOVER_PT = null;
    MARKERS = null;
    POINTS = null;
    _DIRECTIONS = null;
    MULT_EMAIL = false;
	result = null;
point1 = null;
point2 = null;
tempAddress = null;
address1 = null;
address2 = null;
snapToRoute = null;
dragMarker = null;
SNAP = true;
popupStatus = 0;
//DATA;
IS_SAFARI = false;
IS_IE = false;
FirstAttempt = null;
pointI = null;
hover_html = null;
INDEX = null;
GMAP = null;
    GEOCODER = null;
    PLACE_SELECTED = {"data":[{"Type" : "food","Selected" : false},
                        {"Type" : "shopping","Selected" : false},
                        {"Type" : "movie","Selected" : false},
                        {"Type" : "bar","Selected" : false},
                        {"Type" : "coffee","Selected" : false},
                        {"Type" : "hotel","Selected" : false},
                        {"Type" : "library","Selected" : false},
                        {"Type" : "museum","Selected" : false}]}
	
    $("#btnSetAddress").click(function(){
                setAddress(1);
            });
    $("#address1").hide();
    $("#address2").hide();
    $('#inputs').fadeIn("slow");
    $('h2').html("enter an address to begin:");
    $('#snap').hide();
    $('#mapstatus').html("");
    $('#showpopupbtn').html("");
    $('#legend').hide();
    $("#txtAddress").focus();
    $("#places").html("");
    $("#page_status").html("");
    $("#calcDistance").html("");
    $('input[name=Address]').val('');
    closeLinkPop();
    $('html, body').animate({scrollTop:0},'slow');
    if(click)
    {
        var url = "" +window.location;
        var index = -1;
        index = url.indexOf('#');
        if(index > 0)
            window.location = url.substring(0,index+1);
    }
	loadGoogleMap();
}
function checkURL()
{
    var ad1 = getQueryVariable("ad1");
    var ad2 = getQueryVariable("ad2");
    if(ad1 != "~#@" && ad2 != "~#@")
    {
        DisplayPopup();
        $('#contactArea').html("Please wait while your Rendezvous Spot is loading...");
        $("#places_popup h1").html("Loading...");
        ad1 = Url.decode(ad1);
        _setAddress(ad1,1,true,false);
        $('html, body').animate({scrollTop:0},'slow');
    }
}

function getQueryVariable(variable) {
  var query;// = window.location.search.substring(1);
  var url = "" +window.location;
  var index = -1;
  index = url.indexOf('#');
  if(index > 0)
  {
    query = url.substring(index+1);
    var vars = query.split("&");
      for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
          return pair[1];
        }
      }
  }
  
  return "~#@";
} 
function changeQuery(param,newvar)
{
    var query;// = window.location.search.substring(1);
    var url = "" +window.location;
    var index = -1;
    index = url.indexOf('#');
    if(index > 0)
    {
        query = url.substring(index+1);
        var vars = query.split("&");
        var found = false;
        for (var i=0;i<vars.length;i++) 
        {
            var pair = vars[i].split("=");
            if (pair[0] == param) 
            {
                vars[i] = param + "=" + newvar;
                found = true;
                break;
            }
        }
        if(!found)
        {
            vars[vars.length] = param + "=" + newvar;
        }
        url = "#";
        for (var i=0;i<vars.length;i++)
        {
            if(i > 0)
                url += "&";
            url += vars[i];
        }
        window.location = url;
    }
}
function jPageMethod(pagePath, fn, paramArray, successFn, errorFn)
{
// var pagePath = window.location.pathname;
// var paramList = '';
// if (paramArray.length > 0)
// {
// for (var i=0; i<paramArray.length; i++)
// {
//   if (paramList.length > 0) paramList += ',';
//   paramList += paramArray[i];
//   }
// }
// paramList = '{' + paramList + '}';
 //Call the page method
 $.ajax({
   type: "POST",
   url: pagePath + "/" + fn,
   contentType: "application/json; charset=utf-8",
   data: paramArray,
   dataType: "JSON",
   success: successFn,
   error: errorFn
 })
;}
$(document).ready(function() {
    jQuery.each(jQuery.browser, function(i, val) {
        if(i == "safari" && val)
            IS_SAFARI = true;
        else if(i == "msie" && val)
            IS_IE = true;
    });
    //$.preloadImages("includes/images/email_blend.gif", "includes/images/show_blend.gif"); form input
   
    restart(false);
	
    $("#txtAddress").keypress(function (e) {   
        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {   
            $('#btnSetAddress').click();   
            return false;   
        } else {   
            return true;   
        }   
    });   
   $("#MainHtmlBody").unload(function(){
            GUnload();
        });
   $("#places_popupClose").click(function(){  
    disablePopup();  
    });  
    //Click out event!  
    $("#backgroundPopup").click(function(){  
    disablePopup();  
    });  
    //Press Escape event!  
    $(document).keypress(function(e){  
    if(e.keyCode==27 && popupStatus==1){  
    disablePopup();  
    }  });
    checkURL();
});