﻿var map;


var loadbarimg = document.createElement("img");
loadbarimg.src = "http://lawyers.justia.com/images/barload.gif";

var chicon = new GIcon();
chicon.shadow = "";
chicon.image = "http://lawyers.justia.com/images/crosshairs.gif";
chicon.iconSize = new GSize(19,19);
chicon.shadowSize = new GSize(0,0);
chicon.iconAnchor = new GPoint(9,9);
chicon.infoWindowAnchor = new GPoint(9,9);

var loadicon = new GIcon();
loadicon.shadow = "";
loadicon.image = "http://lawyers.justia.com/images/loadindicator.gif";
loadicon.iconSize = new GSize(32,32);
loadicon.iconAnchor = new GPoint(16,16);
loadicon.infoWindowAnchor = new GPoint(16,16);

var crosshairpoint = new GMarker(centerpoint,chicon);

var fpenabled = true;

function showloadbar() {
	document.getElementById("homemaplocation").innerHTML = '';
	document.getElementById("homemaplocation").appendChild(loadbarimg);
}

function practicelink(area,link) {
	if (startcenterpoint.lat() != centerpoint.lat() || startcenterpoint.lng() != centerpoint.lng()) {
		window.location = "http://lawyers.justia.com/practice/"+area+"/";
	} else {
		window.location = link.href;
	}
}

function fetchpoints() {
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var tlat = northEast.lat();
	var blat = southWest.lat();
	var llon = southWest.lng();
	var rlon = northEast.lng();
	zoomlevel = map.getZoom();
	Set_Cookie("savedpoint[zoom]",zoomlevel,60,"/",".justia.com");
	
	if (fpenabled) {
	
		centerpoint = map.getCenter();
		showloadbar();
		Set_Cookie("savedpoint[zoom]",map.getZoom(),60,"/",".justia.com");
		var geturl = "/jsonloc?tlat="+tlat+"&blat="+blat+"&llon="+llon+"&rlon="+rlon;
		GDownloadUrl(geturl,function(data,responseCode) {
			var jsonData = eval('('+data+')');
			currentlocation = jsonData.locstring;
			document.getElementById("mainpracbox").innerHTML = jsonData.pracbox;
			updatelocinfo();
			if (dynamictitles == 1) { 
				document.title = jsonData.pagetitle; 
				document.getElementById("breadcrumbs").innerHTML = jsonData.crumbs;
			}
		});
	}
	changetaburl = "http://lawyers.justia.com/";
}

function makelocform() {
	var curlocstr = document.getElementById("currentlocationstr");
	
	curlocstr.innerHTML  = '<form action="http://lawyers.justia.com/changeloc" name="locchangeform" onsubmit="submitlocform();">';
	curlocstr.innerHTML += '<input type="text" id="lbox" name="lbox" value="'+currentlocation+'" size="20" onclick="this.value=\'\';"/>';
	curlocstr.innerHTML += '<input type="submit" value="Change" onclick="submitlocform();" />';
	curlocstr.innerHTML += '</form>';
	
}

function submitlocform() {
	currentlocation = document.getElementById("lbox").value;
	
	showloadbar();
	
	var geturl = "/jsonloc?location="+window.escape(document.getElementById("lbox").value);
	//document.getElementById("homepagecontent").innerHTML += geturl + "<br />";
	//alert(geturl);
	fpenabled = false;
	GDownloadUrl(geturl,function(data,responseCode) {
		var jsonData = eval('('+data+')');
		currentlocation = jsonData.locstring;
		centerpoint = new GLatLng(jsonData.latitude,jsonData.longitude);
		document.getElementById("mainpracbox").innerHTML = jsonData.pracbox;
		map.removeOverlay(crosshairpoint);
		map.panTo(centerpoint);
		setTimeout("fpenabled = true;",600);
		updatelocinfo();
	});
}

function updatelocation() {
	currentlocation = document.getElementById("locationsearchbox").value;
	
	showloadbar();
	var geturl = "/jsonloc?location="+window.escape(currentlocation);
	fpenabled = false;
	GDownloadUrl(geturl,function(data,responseCode) {
		var jsonData = eval('('+data+')');
		currentlocation = jsonData.locstring;
		centerpoint = new GLatLng(jsonData.latitude,jsonData.longitude);
		document.getElementById("mainpracbox").innerHTML = jsonData.pracbox;
		map.panTo(centerpoint);
		setTimeout("fpenabled = true;",600);
	});	
}


function updatelocinfo() {
	document.searchform.location.value = currentlocation;
	
	/*
	if (document.getElementById("curlocalmsg").innerHTML.length < 50) {
		document.getElementById("curlocalmsg").innerHTML = 'Choose a Practice Area below to find lawyers near <span id="currentlocationstr"><a href="#" onclick="makelocform();return false;">'+currentlocation+'</a></span>, use the map to the right or the Location links below to change this location.';
	} else {	
		var curlocstr = document.getElementById("currentlocationstr");
		curlocstr.innerHTML = '<a href="#" onclick="makelocform();return false;">' + currentlocation + '</a>';
	}
	*/
	document.getElementById("homemaplocation").innerHTML = "&nbsp;";
	document.getElementById("practicearealisthead").innerHTML = 'Find Lawyers by Practice Area <span class="nearword">in the</span> ' + currentlocation + ' <span class="nearword">Area</span>';
	document.getElementById("homemapheader").innerHTML = currentlocation;
}

function loadMap(homepage) {
	map = new GMap2(document.getElementById("browsemap"));
	map.setCenter(centerpoint,zoomlevel);
	setTimeout("map.addControl(new GSmallZoomControl())",700);
	//setTimeout("map.addControl(new GMapTypeControl())",800);
	//setTimeout("map.addControl(new GScaleControl())",500);
	//setTimeout("map.addControl(new GOverviewMapControl())",500);
	
	
	GEvent.addListener(map,'moveend',fetchpoints);
	//fetchpoints();
	//GEvent.addListener(map,'move',setcrosshairs);
	
	GEvent.addListener(map,"click",function(marker, point) {
		if (marker) {
			map.panTo(marker);
		} else {
			map.panTo(point);
		}
	});
	//map.addOverlay(crosshairpoint);
	//updatelocinfo();
	if (homepage == 1) {
		fetchpoints();
	} else {
		updatelocinfo();
	}
}

var changetaburl = location.href;

function changemapmode (mode) {
	Set_Cookie("ldmapmode",mode,60,"/",".justia.com");
	if (changetaburl == location.href) {
		location.reload(true);
	} else {
		location.href = changetaburl;
	}
}

function Set_Cookie( name, value, expires, path, domain, secure ) 
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
