//set up all the variables
//<![CDATA[
try {
function extendOptions(opts1,opts2) {
	arr3 = opts1;
	arr2 = opts2;
	for (property in arr3) {
		if (arr2[property] && arr2[property] != undefined) {
			arr3[property] = arr2[property];
		}
	}
	if (typeof(arr3.center) != 'object') {
		if (arr3.center.lat == 'undefined' || arr3.center.lat == '' || arr3.center.lng == 'undefined' || arr3.center.lng == '') return opts1;
	}
	return arr3;
}
var defaults = {
	center: {
		lat: 37.0403420,
		lng: -95.630909,
		zoom: 4
	},
	services: {
		TB: false,
		CM: false,
		WM: false,
		LJ: false
	},
	filters: {
		filtF: false,
		filtS: false,
		filtR: false
	},
	perPage: 20,
	curPage: 0,
	mapType: 'map',
	view: 'dual'
};
var justLoaded = true;
var mapOpts = {};
var pointBounds;
var boundsMove = false;
var mapDiv;
var sidebarOnDiv;
var sidebarSideDiv;
var sidebarOnHandleDiv;
var sidebarOffDiv;
var sidebarOffHandleDiv;
var sidebarFullDiv;
var searchField;
var mapZoomDiv;
var mapTypeDiv;
var loaderDiv;
var towMapDiv;
var winW;
var winH;
var sidebarStatus;
var map;
var qsParam;
var dzControl;
var dzActive;
var showPoints = true;
var pMarkers = [];
var pIcons = [];
var hasTower = false;
var hasStore =false;
var hasMarina = false;
var hasLJ = false;
var hasFiltF = false;
var hasFiltS = false;
var hasFiltR = false;
var bDateLineHandle = false;
var ajaxMgr;
var bounds;
var appStatus = "load";
var overideError = false;
var tempOverideError = false;
var debugApp = false;
var isClicked = false;
var isDragging= false;
var isMarker = false;
var json;
var iconSRC_bak = "";
var changeType = false;
var curState = '';
var curServ = '';
var printArgs = '';
var printWin;
var printServices = [];
var loadTimeout = 0;
var ajaxError = false;
var pageCount = 0;
var recCount = 0;
var curMax = -1;
var curMin = -1;
var curCol = 1;
var perCol = 1;
var inCol = 0;
var urlParams = [];
var searchDefault = '';
var mapResizeCenter;
var mapResizeZoom;
var welcomeMsg;
var contactFormValidator;
var cellFormValidator;
var maxDialogZ;
var isLoader = false;
var geoTempLoc = {};
var geoFillLoc = {};
var loadFrom = '';
var showFilterMsg;
var scrollSide = false;
var initSplashSearch = false;
var skipSplash = false;
var printArray = {};
var printArrayCount = 0;
$j(document).ready(function() {
	if (GBrowserIsCompatible()) {
		if (screen.width < 1024 || screen.height < 768) {
			alert("Your screen resultion is below 1024x768. You may have problems viewing the Member Services Locator. You may want to change your screen resolution to above 1024x768.");
		}
		$j('#splashSearchButton').hover(function() {
			$j('#splashText').html('<h2>Select the services you want to see, and enter a search location.<h2>');
		}, function() {
			$j('#splashText').html('');
		});
		$j('#splashExploreButton').hover(function() {
			$j('#splashText').html('<h2>Close this splash screen and jump right into the map.<h2>');
		}, function() {
			$j('#splashText').html('');
		});
		$j('#splashHelpButton').hover(function() {
			$j('#splashText').html('<h2>Close this splash screen and open the help window for some quick tips.<h2>');
		}, function() {
			$j('#splashText').html('');
		});
		c_name = 'MSL_DefLoc';
		cV = $j.cookies.get(c_name);
		if (cV != 'XX' && cV != null && cV != '' ) {
			var newOpts = getCookieLoc();
			loadFrom = 'cookie';
		} else if (window.location.hash != '') {
			var newOpts = getStateFromHash();
			loadFrom = 'hash';
		} else if (window.location.search != '' && window.location.hash == '') {
			var newOpts = getStateFromURL();
			loadFrom = 'url';
		}
		//getCookieLoc();
		mapOpts = extendOptions(defaults,newOpts);
		initializer();
   } else {
	   alert("Your browser does not support Google maps. Please upgrade to the latest version.");
   }
});
function initializer() {
	if (GBrowserIsCompatible()) {
		c_name = "MSL_NoSplash";
		if ($j.cookies.get(c_name) == "true" || skipSplash == true) {
			killSplash(true);
			$j('#selectShowSplash').val('0');
		} else {
			$j('#selectShowSplash').val('1');
		}
		//if (loadFrom == 'cookie') getLoc();
		welcomeMsg = $j('#sidebar_content').html();
		pointBounds = new GLatLngBounds();
		preloadImgs();
		qsParam = qs();
		mapDiv = $j("#mapDiv");
		sidebarOnDiv = $j("#sidebar_on");
		sidebarSideDiv = $j("#sidebar_on > #sidebarSide");
		sidebarOnHandleDiv = $j(".sidebarHandle");
		sidebarOffDiv = $j("#sidebar_off");
		sidebarOffHandleDiv = $j(".sidebarHandle");
		sidebarFullDiv = $j("#sidebar_full");
		mapZoomDiv = $j("#mapZoom");
		mapTypeDiv = $j("#mapType");
		searchField = $j("#searchField");
		loaderDiv = $j("#loader");
		towMapDiv = $j("#TowMapDiv");
		sidebarStatus = 1;
		ajaxOpts = {maxReq: 1,blockSameRequest: true,dataType: 'json'};
		ajaxMgr = $j.manageAjax(ajaxOpts);
		contactFormValidator = $j('#contactForm').validate();
		cellFormValidator = $j('#cellForm').validate();
		mapHandlers();
		resizer();
		sidebarHandlers();
		toolbarHandlers();
		zoomHandlers();
		setupDragZoom();
		initIcons();
		initializeCheckboxes();
		justLoaded = false;
		loadMapState(mapOpts);
		$j.historyInit(loadStateFromHash);
		updateHash();
		$j('#sidebar_content').html(welcomeMsg);
		//$j('#tb_searchField').val(searchDefault);
		$j('#tutorialDiv').center({parent: '#mapDiv'});
		$j('#tb_printLink').cluetip({
			local: true,
			sticky: true,
			arrows: true,
			closePosition: 'title',
			cluetipClass: 'jtip',
			activation: 'hover',
			width: 200,
			dropShadow: false,
			titleAttribute: 'name',
			cluezIndex: 10000002,
			mouseOutClose: true,
			hoverIntent: false
		});
		//uncomment to add in support to collapse the service list
		//$j('#serviceListToggle').click(function() {
		//	$j('#serviceListInside').slideToggle("slow", function() {
		//		if ($j('#serviceListInside').css('display') == 'none') {
		//			$j('#serviceListToggle').html('Show Service List');
		//		} else {
		//			$j('#serviceListToggle').html('Hide Service List');
		//		}
		//	});
		//	return false;
		//});
	}
}
function getLoc(override) {
	curCookie = getCookieLoc();
	if (curCookie == 'XX' && override != true) {
		$j('#defLocText').html(geoFillLoc.city + ', ' + geoFillLoc.region);
		$j('#clearLocLink').css('display','inline');
	} else if (typeof(curCookie) != 'object' || override == true) {
		geofill.find({
			callback: function(o) {
				if (o.city != undefined && o.city != '' && o.region != undefined && o.region != '') {
					$j('#locCityName').html(o.city);
					$j('#locStateName').html(o.region);
					dialogHandler('open','locator');
					geoTempLoc = o;
				}
			}
		});
	}
}
function getCurLoc()
{
	if (typeof(geoFillLoc) == "undefined") { geoFillLoc = {}; }
	$j('#defLocText').html('Set by user.');
	c_name = 'MSL_DefLoc';
	geoFillLoc.city = 'Set by user.';
	geoFillLoc.region = '';
	geoFillLoc.zoom = map.getZoom();
	center = map.getCenter().toString();
	center = center.replace("(","");
	center = center.replace(" ","");
	center = center.replace(")","");
	zoom = map.getZoom();
	center = center.split(",");
	geoFillLoc.latitude = center[0];
	geoFillLoc.longitude = center[1];
	value = $j.json.encode(geoFillLoc);
	$j.cookies.set(c_name,value,{hoursToLive: 2400});
}
function saveDefLoc() {
	geoFillLoc = geoTempLoc;
	c_name = 'MSL_DefLoc';
	if (geoFillLoc.perPage == undefined) {
		geoFillLoc.perPage = defaults.perPage;
	}
	if (geoFillLoc.mapType == undefined) {
		geoFillLoc.mapType = defaults.mapType;
	}
	if (geoFillLoc.view == undefined) {
		geoFillLoc.view = defaults.view;
	}
	value = $j.json.encode(geoFillLoc);
	$j.cookies.set(c_name,value,{hoursToLive: 2400});
	opts = getCookieLoc();
	theOpts = extendOptions(defaults,opts);
	loadMapState(theOpts);
	$j('#defLocText').html(geoFillLoc.city + ', ' + geoFillLoc.region);
	$j('#clearLocLink').css('display','inline');
	dialogHandler('close','locator');
}
function dontAskDefLoc() {
	clearDefCookie();
	c_name = 'MSL_DefLoc';
	value = 'XX';
	$j.cookies.set(c_name,value,{hoursToLive: 2400});
	dialogHandler('close','locator');
	$j('#defLocText').html('None selected.');
}
function getCookieLoc(dontMove) {
	c_name = 'MSL_DefLoc';
	cV = $j.cookies.get(c_name);
	if (cV == 'XX') return 'XX';
	if (cV == null || cV == '' || cV == undefined) return false;
	cV += "";
	geoFillLoc = $j.json.decode(cV);
	if (typeof(geoFillLoc) == "undefined") {
		$j.cookies.del(c_name);
		return false;
	}
	if (geoFillLoc.city != '' || geoFillLoc.region != '') {
	
		strNewLocText = geoFillLoc.city;
		if (geoFillLoc.region != '') { strNewLocText += ", " + geoFillLoc.region; }
		$j('#defLocText').html(strNewLocText);
		$j('#clearLocLink').css('display','inline');
	}
	if (geoFillLoc.zoom == null) {
		newZoom = 8;
	} else {
		newZoom = geoFillLoc.zoom;
	}
	newOpts = {
		center: {
			lat: geoFillLoc.latitude,
			lng: geoFillLoc.longitude,
			zoom: newZoom
		}
	};
	return newOpts;
}
function clearDefCookie() {
	c_name = 'MSL_DefLoc';
	$j.cookies.del(c_name);
	$j('#defLocText').html('None set yet');
	$j('#clearLocLink').css('display','none');
	geoFillLoc = {};
	geoTempLoc = {};
	$j('#defLocText').html('None selected.');
}
function subOptions() {
	c_name = 'MSL_DefLoc';
	value = $j.json.encode(geoFillLoc);
	$j.cookies.set(c_name,value,{hoursToLive: 2400});
	showSplash = $j('#selectShowSplash').val();
	c_name = "MSL_NoSplash";
	if (showSplash == 1) {
		$j.cookies.set(c_name,false,{hoursToLive: 2400});
	} else {
		$j.cookies.set(c_name,true,{hoursToLive: 2400});
	}
	dialogHandler('close','options');
}
function killSplash(now) {
	if (now != true) {
		c_name = "MSL_NoSplash";
		if ($j("#neverShowSplash:checked").length > 0) {
			$j.cookies.set(c_name,true,{hoursToLive: 2400});
			$j('#selectShowSplash').val('0');
		} else {
			$j.cookies.set(c_name,false,{hoursToLive: 2400});
		}
	}
	$j("#blackoutSplash").remove();
	$j("#blackout").fadeOut("slow",function() { $j(this).remove(); });
}
function splashToSearch() {
	$j("#splashHome").addClass("noscreen");
	$j("#splashSearch").removeClass("noscreen");
}
function searchToSplash() {
	$j("#splashSearch").addClass("noscreen");
	$j("#splashHome").removeClass("noscreen");
}
function initializeCheckboxes() {
	setTower(false);
	setMarina(false);
	setStore(false);
	setLJ(false);
	setFilterF(false);
	setFilterS(false);
	setFilterR(false);
}
function mapHandlers() {
	map = new GMap2(document.getElementById("mapDiv"));
	map.setCenter(new GLatLng(parseFloat(mapOpts.center.lat), parseFloat(mapOpts.center.lng)), parseFloat(mapOpts.center.zoom));
	map.enableContinuousZoom();
	map.enableScrollWheelZoom();
	map.addControl(new GScaleControl())
	new GKeyboardHandler(map);
	GEvent.addListener(map, "click", function(marker,point) {
		if (boundsMove) { return false; }
		if (marker){
			isMarker = true;
			if (marker.markerID == undefined) return false;
			if (marker.markerID < curMin || marker.markerID > curMax+1) return false;
			$j('li','#searchResultList').removeClass('listingSelected');
			el = $j('#listing_' + marker.markerID + '_elem');
			$j("#sidebar_content", '#sidebar_on').scrollTo(el[0].offsetTop);
			scrollSide = true;
			el.addClass('listingSelected');
		} else {
			isClicked = true;
			thisZoom = map.getZoom();
			centerAndZoom(point,thisZoom);
			//$j('li','#searchResultList').removeClass('listingSelected');
		}
	});
	GEvent.addListener(map, "moveend", function() {
		if (boundsMove) { return false; }
		if (changeType) { changeType = false; return false; }
		if (showPoints && !isMarker && ! isLoader) {
			loadPoints();
		}
		isMarker = false;
	});
	GEvent.addListener(map, "dragend", function() {
		if (boundsMove) { return false; }
		if (changeType) { changeType = false; return false; }
		if (showPoints) {
			loadPoints();
		}
		isDragging = false;
	});
	GEvent.addListener(map, "dragstart", function() {
		if (boundsMove) { return false; }
		if (changeType) { changeType = false; return false; }
		isDragging = true;
		map.clearOverlays();
		clearDialogs();
	});
	GEvent.addListener(map, "zoomend", function() {
		if (boundsMove) { return false; }
		if (changeType) { changeType = false; return false; }
		updateSlider();
		dzControl.resetDragZoom_();
		dragZoomEnd();
		//if (map.getZoom() > mapOpts.center.zoom && showPoints) {
		//	loadPoints();
		//}
		mapOpts.center.zoom = map.getZoom();
	});
	GEvent.addListener(map, "zoomstart", function() {
		if (boundsMove) { boundsMove = false; return false; }
		if (changeType) { changeType = false; return false; }
		clearDialogs();
	});
	GEvent.addListener(map, "infowindowbeforeclose", function() {
		$j('li','#searchResultList').removeClass('listingSelected');
	});
}
function initIcons() {
	//build all the base icon classes
	var baseIcon = new GIcon();
	baseIcon.iconSize = new GSize(25, 28);
	baseIcon.iconAnchor = new GPoint(2, 28);
	baseIcon.infoWindowAnchor = new GPoint(12, 14);	
	var dotIcon = new GIcon();
	dotIcon.iconSize = new GSize(8,8);
	dotIcon.iconAnchor = new GPoint(4,4);
	dotIcon.infoWindowAnchor = new GPoint(4,4);
	tIcon = new GIcon(baseIcon);
	tIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/T_1.gif";
	lIcon = new GIcon(baseIcon);
	lIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/T_1.gif";
	vIcon = new GIcon(baseIcon);
	vIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/T_1.gif";
	cIcon = new GIcon(baseIcon);
	cIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/M_1.gif";
	wIcon = new GIcon(baseIcon);
	wIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/W_1.gif";
	ljIcon = new GIcon(baseIcon);
	ljIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/L_1.gif";
	searchIcon = new GIcon(baseIcon);
	searchIcon.image = "http://www.boatus.com/ServiceLocator/images/markers/Search_Marker.gif";
	towerDot = new GIcon(dotIcon);
	towerDot.image = "http://www.boatus.com/ServiceLocator/images/markers/towerDot.gif";
	marinaDot = new GIcon(dotIcon);
	marinaDot.image = "http://www.boatus.com/ServiceLocator/images/markers/cmDot.gif";
	storeDot = new GIcon(dotIcon);
	storeDot.image = "http://www.boatus.com/ServiceLocator/images/markers/wmDot.gif";
	ljDot = new GIcon(dotIcon);
	ljDot.image = "http://www.boatus.com/ServiceLocator/images/markers/ljDot.gif";
	pIcons["tower"] = tIcon;
	pIcons["listed"] = lIcon;
	pIcons["va"] = vIcon;
	pIcons["marina"] = cIcon;
	pIcons["store"] = wIcon;
	pIcons["lj"] = ljIcon;
	pIcons["search"] = searchIcon;
	pIcons["towerDot"] = towerDot;
	pIcons["marinaDot"] = marinaDot;
	pIcons["storeDot"] = storeDot;
	pIcons["ljDot"] = ljDot;
}
function preloadImgs() {
	//$j.preloadImages("images/toolbar.png");
}
function winSize() {
	if( typeof(window.innerWidth) == 'number') {
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	winW = myWidth;
	winH = myHeight;
}
function resizer() {
	try {
		if (map == undefined) {
			setTimeout("resizer",100);
		}
		winSize();
		mapResizeCenter = map.getCenter();
		mapResizeZoom = map.getZoom();
		if (sidebarStatus == 1) {
			mW = (winW - 345) + 'px';
			mL = "345px";
			zL = "355px";
			tmL = "365px";
			mClass = "dual";
		} else {
			mW = (winW - 8) + 'px';
			mL = "8px";
			zL = "18px";
			tmL = "22px";
			mClass = "map";
		}
		bH = (winH - 140) + 'px';
		cH = (winH - 280) + 'px';
		fcH = (winH - 200) + 'px';
		hY = ((winH / 2) - 50) + 'px';
		mapDiv.css({width:mW, height:bH});
		mapDiv.removeClass("dual");
		mapDiv.removeClass("map");
		mapDiv.addClass(mClass);
		sidebarOnDiv.css({height: bH});
		sidebarSideDiv.css("height",bH);
		sidebarOnHandleDiv.css("margin-top",hY);
		sidebarOffDiv.css("height", bH);
		sidebarOffHandleDiv.css("margin-top",hY);
		sidebarFullDiv.css("height", bH);
		$j("#sidebar_on > #sidebar_content").css("height",cH);
		listW = (winW/3) - 20;
		left2 = (listW+20) + 'px';
		left3 =  (2*listW+40) + 'px';
		$j("#fullList_1").css({height: fcH, width: (listW+'px'), left: '0px'});
		$j("#fullList_2").css({height: fcH, width: listW, left: left2});
		$j("#fullList_3").css({height: fcH, width: listW, left: left3});
		$j('.dialog').center({parent: '#mapDiv'});
		mapZoomDiv.css("left",zL);
		map.checkResize();
		map.setCenter(mapResizeCenter,mapResizeZoom);
	} catch (e) {
		
	}
}
function toggleSidebar() {
	if (sidebarStatus == 1) {
		sidebarStatus = 0;
		sidebarOffDiv.css("display","block");
		sidebarOnDiv.css("display","none");
	} else {
		sidebarStatus = 1;
		sidebarOffDiv.css("display","none");
		sidebarOnDiv.css("display","block");
	}
	resizer();
}
function sidebarHandlers() {
	sidebarSideDiv.bind("click",function(e) {
		setView("map");
	});
	sidebarOffDiv.bind("click",function(e) {
		setView("dual");
	});
}
function rebuildUI(data) {
	if (data == "list") {
		style = {display: "none"};
		mapDiv.css(style);
		sidebarOnDiv.css(style);
		sidebarOffDiv.css(style);
		mapZoomDiv.css(style);
		mapTypeDiv.css(style);
		sidebarFullDiv.css({display: "block"});
	}
	if (data == "map" || data == "dual") {
		style = {display: "block"};
		mapDiv.css(style);
		sidebarOnDiv.css(style);
		sidebarOffDiv.css(style);
		mapZoomDiv.css(style);
		mapTypeDiv.css(style);
		sidebarFullDiv.css({display: "none"});
	}
}
function clearDialogs() {
	$j('.dialog').removeClass('dialogOpen');
	return true;
}
function setView(a,b) {
	$j('.tbViewBtn').parent().removeClass('active');
	switch(a) {
		case "list":
		case 'L':
			$j('#tb_listViewLink').parent().addClass('active');
			if (mapOpts.view == "L") { return true; }
			mapOpts.curPage = 0;
			curMax = -1;
			curMin = -1;
			rebuildUI("list");
			mapOpts.view = "L";
			populateMap();
			strView = 'list';
		break;
		case "map":
		case 'M':
			$j('#tb_mapViewLink').parent().addClass('active');
			if (mapOpts.view == "M") { return true; }
			rebuildUI("map");
			mapOpts.curPage = 0;
			curMax = -1;
			curMin = -1;
			mapOpts.view = "M";
			sidebarStatus = 1;
			toggleSidebar();
			populateMap();
			strView = 'map';
		break;
		case "dual":
		case 'D':
			$j('#tb_dualViewLink').parent().addClass('active');
			if (mapOpts.view == "D") { return true; }
			rebuildUI("dual");
			mapOpts.curPage = 0;
			curMax = -1;
			curMin = -1;
			mapOpts.view = "D";
			sidebarStatus = 0;
			toggleSidebar();
			populateMap();
			strView = 'dual';
		break;
	}
	if (b != false) {
		updateHash();
		dcsClick('setView', strView);
	}
	return false;
}
function setMapType(a,b) {
	$j('.tbTypeBtn').parent().removeClass('active');
	switch(a) {
		case "map":
		case 'M':
			$j('#tb_mapTypeLink').parent().addClass('active');
			mapOpts.mapType = "map";
			changeType = true;
			map.setMapType(G_NORMAL_MAP);
			strMType = 'map';
		break;
		case "sat":
		case 'S':
			$j('#tb_satTypeLink').parent().addClass('active');
			mapOpts.mapType = "sat";
			changeType = true;
			map.setMapType(G_HYBRID_MAP);
			strMType = 'hybrid';
		break;
		case "ter":
		case 'T':
			$j('#tb_terTypeLink').parent().addClass('active');
			mapOpts.mapType = "ter";
			changeType = true;
			map.setMapType(G_PHYSICAL_MAP);
			strMType = 'terrain';
		break;
	}
	if (b != false) {
		updateHash();
		dcsClick('setView', strMType);
	}
	return false;
}
function dialogHandler(a,d) {
	div = '';
	dialogZ = getHighestDialogZ();
	switch (d) {
		case 'embed':
			$j('#embedLinkText').val('http://www.boatus.com' + window.location.pathname + '?' + fetchEmbedArgs());
			div = '#linkDiv';
		break;
		case 'disclaimer':
			div = '#disclaimerDiv';
		break;
		case 'towerServices':
			div = '#towerServiceDiv';
		break;
		case 'serviceFilter':
			loadFilters();
			div = '#serviceFilterDiv';
		break;
		case 'towMap':
			div = '#TowMapDiv';
		break;
		case 'VAMap':
			div = '#VAMapDiv';
		break;
		case 'warning':
			div = '#warningDiv';
		break;
		case 'link':
			div = '#linkDiv';
		break;
		case 'contact':
			div = '#contactDiv';
		break;
		case 'subContact':
			div = '#subContactDiv';
		break;
		case 'subCell':
			div = '#subCellDiv';
		break;
		case 'loader':
			div = '#loader';
		break;
		case 'searching':
		case 'search':
			div = '#searching';
		break;
		case 'searchError':
			div = '#searchErrorDiv';
		break;
		case 'locator':
			div = '#LocatorDiv';
		break;
		case 'options':
			div = '#optionsDiv';
		break;
		case 'sendToCell':
			div = '#sendCellDiv';
		break;
		case 'managePrint':
			div = '#managePrintDiv';
		break;
	}
	contactFormValidator.resetForm();
	if (div == '') { return false; }
	if (a == 'open') {
		$j(div).css('z-index',dialogZ).addClass('dialogOpen');
	} else {
		$j(div).removeClass('dialogOpen');
	}
	$j(div).center({parent:'#mapDiv'});
	return false;
}
function getHighestDialogZ()
{
	var highestZ = 0;
	$j('.dialogOpen').each(function(i) {
		newZ = parseInt($j(this).css('z-index'));
		if (newZ >= highestZ) { highestZ = newZ+1; }
	});
	maxDialogZ = highestZ;
	return highestZ;
}
function printHandler() {
	selectedPrintArgs = stringifyObject(printArray);
	if (curPrintData == undefined || selectedPrintArgs == "") {
		fetchPrintArgs();
		printWin = window.open('print.asp?' + printArgs,'printWin','left=20,top=20,width=800,height=700,toolbar=0,resizable=1,location=0,status=0,scrollbars=1');
	} else {
		$j('#selectedLocations').val(selectedPrintArgs);
		printPopupWindow();
	}
	return false;
}
function printPopupWindow() {
	printWin = window.open('printSelected.asp?firstTime=true',"printPopup",'left=20,top=20,width=800,height=700,toolbar=0,resizable=1,location=0,status=0,scrollbars=1');
	if (printWin.opener == null) { printWin.opener = self; }
	if (printWin.focus) { printWin.focus(); }
	return true;
}
function stringifyObject(obj) {
	if (obj == undefined) { return ""; }
	var resp = "";
	for (var propName in obj) {
		if (!(obj[propName] instanceof Function) && obj[propName] == 1) {
			pN = propName.replace("print_popup_","");
			resp += pN + ",";
		}
	}
	if (resp == "") { return ""; }
	return base64_encode(resp);
}
function subPrintForm() {
	$j('#printForm').submit();
}
function toolbarHandlers() {
	$j("#tb_searchField").keypress(function (e) {
		if (e.which == 13) {
			doSearch();
		}
	});
	$j("#splashSearchField").keypress(function (e) {
		if (e.which == 13) {
			splashSearch();
		}
	});
	$j('#tb_searchField').focus(function() {
		if ($j(this).val() == searchDefault) {
			$j(this).val('');	
		}
	});
	$j('#tb_searchField').blur(function() {
		if ($j(this).val() == '') {
			$j(this).val(searchDefault);	
		}
	});
}
function zoomHandlers() {
	$j("#zm_zmSelLink").bind("click",function() {
		dzControl.initiateZoom();
		$j("#zm_zmSelLink").parent().addClass('active');
		dzActive = (!dzActive);
		return false;
	});
	slideOpts = {};
	slideOpts.stop = function (e,ui) {
		val = ui.value;
		zm = Math.round(19 - val);
		handleZoom(zm);
	};
	slideOpts.cursorAt = {
		left: 4,
		top: 10
	};
	cZ = map.getZoom();
	v = 19 - cZ;
	slideOpts.value = Math.round(v);
	slideOpts.min = 0;
	slideOpts.max = 19;
	$j("#slideBG").slider(slideOpts);
}
function handleZoom(arg) {
	if (typeof(arg) == 'number') {
		map.setZoom(arg);
	}
	if (typeof(arg) == 'string') {
		cZ = map.getZoom();
		switch (arg) {
			case 'In':
				map.setZoom(cZ+1);
			break;
			case 'Out':
				map.setZoom(cZ-1);
			break;
		}
	}
	updateHash();
}
function dragZoomEnd() {
	dzActive = false;
	$j("#zm_zmSelLink").parent().removeClass('active');
}
function setupDragZoom() {
	var boxStyleOpts = {opacity: .2,border: "0px solid blue"};
	var otherOpts = {buttonHTML: "",buttonZoomingHTML: "",buttonStartingStyle: {width: '0px', height: '0px'},overlayRemoveTime: 1000};
	var callOpts = {
		dragend : function() {
			dragZoomEnd();
		}
	};
	dzControl = new DragZoomControl(boxStyleOpts, otherOpts, callOpts);
	map.addControl(dzControl);
	dzActive = false;
}
function updateSlider() {
	cZ = map.getZoom();
	v = 19 - cZ;
	$j("#slideBG").slider('value',v);
}
function towerServices(input) {
	S = input.S;E = input.S;R = input.R;T = input.T;A = input.A;
	op = "";
	if (S == "1" && S != "" && S != "0") {
		op += "<img src=\"http://www.boatus.com/ServiceLocator/images/S.jpg\" alt=\"Salvage\" />&nbsp;";
	}
	if (E == "1" && E != "" && E != "0") {
		op += "<img src=\"http://www.boatus.com/ServiceLocator/images/E.jpg\" alt=\"Spill Cleanup\" />&nbsp;";
	}
	if (R == "1" && R != "" && R != "0") {
		op += "<img src=\"http://www.boatus.com/ServiceLocator/images/R.jpg\" alt=\"Repairs\" />&nbsp;";
	}
	if (T == "1" && T != "" && T != "0") {
		op += "<img src=\"http://www.boatus.com/ServiceLocator/images/T.jpg\" alt=\"Transportation\" />&nbsp;";
	}
	if (A == "1" && A != "" && A != "0") {
		op += "<a href=\"#\" onclick=\"helpPopUp('ACAPT.asp', 850, 500, 0, 0, false); return false;\"><img src=\"http://www.boatus.com/ServiceLocator/images/A.jpg\" alt=\"ACAPT\" border=\"0\" /></a>&nbsp;";
	}
	S = "";E = "";R = "";T = "";A = "";
	return op;
}
function createTowerMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["tower"],title: input.Name});
	marker.cat = "tower";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "T";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.featured = input.Featured;
	marker.point = point;
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "Tower: " + this.title);
		tServ = {S: input.S, E: input.E, R: input.R, T: input.T, A: input.A};
		strServ = towerServices(tServ);
		vCardLink = '<a href="vCard.asp?service=TowBoatUS&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'tower\',\'' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "tower_" + input.ID;
		strElID = "print_popup_tower_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'tower_' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=TowBoatUS&id=" + input.ID +"')\">Print Now</a>";
		strHTML = "<center><img src=\"http://www.boatus.com/ServiceLocator/images/towlogo.gif\" alt=\"TowBoatUS Logo\" width=\"200\" height=\"43\"/></center><font face=Arial, Helvetica, sans-serif size=4><b>" + input.Name + "</b><br /><font size=2><b>" + String(input.City).trim() + ", " + input.State + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone + "<br />";
		if (strServ != "") { strHTML += "<b><a href=\"#\" title=\"whats this?\" onclick=\"dialogHandler('open','towerServices'); return false;\">Services:</a> </b> " + strServ + "<br />"; }
		strHTML += "<b>Unlimited Service Area: </b> " + input.Area + "<br /><a href=\"#\" onclick=\"dialogHandler('open','towMap'); return false;\" style=\"font-size: 10px;\">More about Unlimited Service Area</a><br />" + vCardLink + "<br />" + printLink + "</font></font>";
		marker.openInfoWindowHtml(strHTML);
	});
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID,true);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function createListedMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["listed"],title: input.Name});
	marker.cat = "tower";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "T";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.featured = input.Featured;
	marker.point = point;
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "Tower: " + this.title);
		tServ = {S: input.S, E: input.E, R: input.R, T: input.T, A: input.A};
		strServ = towerServices(tServ);
		vCardLink = '<a href="vCard.asp?service=Listed&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'tower\',\'' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "tower_" + input.ID;
		strElID = "print_popup_tower_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'tower_' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=Listed&id=" + input.ID +"')\">Print Now</a>";
		strHTML = "<font face=Arial, Helvetica, sans-serif size=4><b>" + input.Name + "</b><br /><font size=2><b>" + String(input.City).trim() + ", " + input.State + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone + "<br />";
		if (strServ != "") { strHTML += "<b><a href=\"#\" title=\"whats this?\" onclick=\"dialogHandler('open','towerServices'); return false\">Services:</a> </b> " + strServ + "<br />"; }
		strHTML += "<b>Unlimited Service Area: </b> " + input.Area + "<br /><a href=\"#\" onclick=\"dialogHandler('open','towMap'); return false;\" style=\"font-size: 10px;\">More about Unlimited Service Area</a><br />" + vCardLink + "<br />" + printLink + "</font></font>";
		marker.openInfoWindowHtml(strHTML);
	});
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID,true);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function createVesselMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["va"],title: input.Name});
	marker.cat = "tower";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "T";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.point = point;
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "Tower: " + this.title);
		vCardLink = '<a href="vCard.asp?service=VesselAssist&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'tower\',\'' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "tower_" + input.ID;
		strElID = "print_popup_tower_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'tower_' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=VesselAssist&id=" + input.ID +"')\">Print Now</a>";
		tServ = {S: input.S, E: input.E, R: input.R, T: input.T, A: input.A};
		strServ = towerServices(tServ);
		strHTML = "<center><img src=\"http://www.boatus.com/ServiceLocator/images/vessellogo.gif\" alt=\"Vessel Assist Logo\" width=\"200\" height=\"43\" /></center><font face=Arial, Helvetica, sans-serif size=4><b>" + input.Name + "</b><br /><font size=2><b>" + String(input.City).trim() + ", " + input.State + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone + "<br />";
		if (strServ != "") { strHTML += "<b><a href=\"#\" title=\"whats this?\" onclick=\"dialogHandler('open','towerServices'); return false;\">Services:</a> </b> " + strServ + "<br />"; }
		strHTML += "<b>Unlimited Service Area: </b> " + input.Area + "<br /><a href=\"#\" onclick=\"dialogHandler('open','VAMap'); return false;\" style=\"font-size: 10px;\">More about Unlimited Service Area</a><br />" + vCardLink + "<br />" + printLink + "</font></font>";
		marker.openInfoWindowHtml(strHTML);
	});
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID,true);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function createCoopMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["marina"],title: input.Name});
	marker.cat = "marina";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "M";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.featured = input.Featured;
	marker.point = point;
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "Marina: " + this.title);
		vCardLink = '<a href="vCard.asp?service=Marina&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'marina\',\'' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "marina_" + input.ID;
		strElID = "print_popup_marina_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'marina_' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=Marina&id=" + input.ID +"')\">Print Now</a>";
		var directionsLink = "http://maps.google.com/maps?q=" + input.Address + " " + input.City + ", " + input.State + "&f=d&hl=en";
		strHTML = "<center>";
		if (input.Photo == "") {
			strHTML += "<img src=\"http://www.boatus.com/ServiceLocator/images/cooplogo.gif\" alt=\"Cooperating Marina Logo\" width=\"99\" height=\"76\" />";
		} else {
			strHTML += "<img src=\"" + input.Photo + "\" alt=\"Cooperating Marina\" width=\"272\" height=\"176\" class=\"image\" />";
		}
		strDiscounts = "";
		if (input.DiscountF == "1") {
			strDiscounts += "<img src=\"http://www.boatus.com/ServiceLocator/images/gas.jpg\" alt=\"Fuel Discount\" title=\"Fuel Discount\" />&nbsp;";
		}
		if (input.DiscountS == "1") {
			strDiscounts += "<img src=\"http://www.boatus.com/ServiceLocator/images/anchor.jpg\" alt=\"Slip Discount\" title=\"Slip Discount\" />&nbsp;";
		}
		if (input.DiscountR == "1") {
			strDiscounts += "<img src=\"http://www.boatus.com/ServiceLocator/images/wrench.jpg\" alt=\"Repair Discount\" title=\"Repair Discount\" />&nbsp;";
		}
		if (strDiscounts != "") { strDiscounts = "<b>Discounts:</b>" + strDiscounts + "<br />"; }
		strHTML += "</center><font face=Arial, Helvetica, sans-serif size=4><b>" + input.Name + "</b><br /><font size=2><b>" + input.Address + "<br/>" + input.City + ", " + input.State + " " + input.Zip + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone +"<br/><b><a href=\"" + directionsLink + "\" target=\"blank\" >Get Directions!</a></b><br /><a href=" + input.URL +" target=\'_blank\'>Marina Info</a><br />" + strDiscounts + vCardLink + "<br />" + printLink + "</font></font>";
		marker.openInfoWindowHtml(strHTML);
	});
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID,true);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function createWMMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["store"],title: input.Name});
	marker.cat = "store";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "W";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.featured = input.Featured;
	marker.point = point;
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "Store: " + this.title);
		vCardLink = '<a href="vCard.asp?service=MarineCenter&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'store\',\'' + input.ID + '\',\'' + input.Name + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "store_" + input.ID;
		strElID = "print_popup_store_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'store_' + input.ID + '\',\'' + escape(input.Name) + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=MarineCenter&id=" + input.ID +"')\">Print Now</a>";
		if (input.Address != " " && input.City != " " && input.State != " "){
			var directionsLink = "http://maps.google.com/maps?q=" + input.Address + " " + input.City + ", " + input.State + "&f=d&hl=en";
		}		
		strHTML = "<center><img src=\"http://www.boatus.com/ServiceLocator/images/wmlogo.gif\" alt=\"West Marine Logo\" width=\"200\" height=\"43\" /></center><font face=Arial, Helvetica, sans-serif size=4><b>" + input.Name + "</b><br /><font size=2><b>" + input.Address + "<br/>" + input.City + ", " + input.State + " " + input.Zip + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone +"<br/><b><a href=\"" + directionsLink + "\" target=\"blank\" >Get Directions!</a></b><br /><a href=\"http://www.boatus-store.com/\" target=\"_blank\">Shop Online!</a><br />" + vCardLink + "<br />" + printLink +"</font></font>";
		marker.openInfoWindowHtml(strHTML);
	});
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function createLifeJacketMarker(input,id) {
	point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
	var marker = new GMarker(point, {icon:pIcons["lj"],title: input.Name});
	marker.cat = "lj";
	marker.name = input.Name;
	marker.title = input.Name;
	marker.iconCat = "L";
	marker.iconID = 1;
	marker.markerID = id;
	marker.serviceID = input.ID;
	marker.featured = input.Featured;
	marker.point = point;
	if (input.Address != " " && input.City != " " && input.State != " "){
		var directionsLink = "http://maps.google.com/maps?q=" + input.Address + " " + input.City + ", " + input.State + "&f=d&hl=en";
	}
	GEvent.addListener(marker, "click", function() {
		dcsClick('clickService', "LJLP: " + this.title);
		if (input.Email == "") {
			if (input.LName != "" && input.FName != "") {
				email = "Contact: " + input.FName + " " + input.LName;
			} else {
				email = " ";
			}
		} else {
			if (input.LName != "" && input.FName != "") {
				email = "Contact: <a href=\"mailto:" + input.Email + "\">" + input.FName + " " + input.LName + "</a>";
			} else {
				email = "Contact: <a href=\"mailto:" + input.Email + "\">" + input.Email + "</a>";
			}
		}
		if (input.TBUS == "1") {
			hd = "<span class=\"ljlp-tbusHeader\">TowBoatUS</span><br />";
		}
		if (input.USACE == "1") {
			hd = "<span class=\"ljlp-usaceHeader\">U.S. Army Corps of Engineers</span><br />";
		}
		if (input.TBUS != "1" && input.USACE != "1") {
			hd = '';
		}
		vCardLink = '<a href="vCard.asp?service=LifeJacket&id=' + input.ID + '">Add to Address Book</a><br /><a href="#" onclick="dialogHandler(\'open\',\'sendToCell\'); sendCell(\'lj\',\'' + input.ID + '\',\'' + input.Name + '\'); return false;">Send to Cell Phone or Email</a>';
		printLink = "<br />";
		strPrintID = "lj_" + input.ID;
		strElID = "print_popup_lj_" + input.ID;
		printLink += '<a href="#" onclick="changePrintSel(\'lj_' + input.ID + '\',\'' + input.Name + '\'); return false;" id="' + strElID + '">';
		if (printArray[strPrintID] === true) {
			printLink += ' Remove from Print List';
		} else {
			printLink += ' Add to Print List';
		}
		printLink += '</a><br />';
		printLink += "<a href=\"javascript:popUp('printService.asp?service=LifeJacket&id=" + input.ID +"')\">Print Now</a>";
		strHTML = "<div style=\"max-width: 400px;\"><center><img src=\"http://www.boatus.com/ServiceLocator/images/jacketlogo.gif\" alt=\"BoatUS Foundation Logo\" width=\"200\" height=\"43\" /></center><font size=\"2\">" + hd + "</font><font size=\"4\"><b>" + input.Name + "</b><br /><font size=2><b>"+ input.Address + "<br />" + input.City + ", " + input.State + " " + input.Zip + "</b><br /></font><font size=2><b>Phone: </b> " + input.Phone + "<br />" + email + "<br /><b><a href=\"" + directionsLink + "\" target=\"blank\" >Get Directions!</a></b><br /><a href=\"http://www.boatus.com/foundation/LJLP/index.htm\" target=\"_blank\">More about the Life Jacket Loaner program</a><br/ >" + vCardLink + "<br />" + printLink + "</font></font></div>";
		marker.openInfoWindowHtml(strHTML);
	});
	email = "";
	//GEvent.addListener(marker, "mouseover", function() {
	//	overMarker(marker.markerID);
	//});
	//GEvent.addListener(marker, "mouseout", function() {
	//	outMarker(marker.markerID);
	//});
	pMarkers.push(marker);
	return marker;
}
function setStatus(status) {
	appStatus = status;
	if (appStatus == 'load') {
		dialogHandler('open','loader');
	}
	if (appStatus == 'ready') {
		dialogHandler('close','loader');
		dialogHandler('close','searching');
	}
	if (appStatus == 'searching') {
		dialogHandler('open','searching');
	}
	return true;
}
function chgTower() {
	hasTower = $j("#svcTow").attr('checked');
	loadPoints();
}
function chgStore() {
	hasStore = $j("#svcStore").attr('checked');
	loadPoints();
}
function chgMarina() {
	hasMarina = $j("#svcMarina").attr('checked');
	loadPoints();
}
function chgLJ() {
	hasLJ = $j("#svcLJ").attr('checked');
	loadPoints();
}
function toText(val) {
	if (val == true) {
		return '1';
	}
	return '0';
}
function loadPoints() {
	printArray = {};
	$j('#quickPrintList').empty();
	$j('#selectedLocations').val('');
	$j('.printTooltipText').html('There are no locations in your Quick Print list.');
	printArrayCount = 0;
	if (justLoaded === true || initSplashSearch === true) return false;
	clearDialogs();
	setStatus("load");
	map.clearOverlays();
	resetSidebar();
	if (hasTower != true && hasStore != true && hasMarina != true && hasLJ != true) {
		$j('#sidebar_content').html(welcomeMsg);
		updateHash();
		setStatus("ready");
		return true;
	}
	pointBounds = new GLatLngBounds();
	bounds = map.getBounds();
	southWest = bounds.getSouthWest();
	northEast = bounds.getNorthEast();
	boundsN = northEast.lat();
	boundsS = southWest.lat();
	boundsW = southWest.lng();
	boundsE = northEast.lng();
	pMarkers = [];
	curMax = -1;
	mapOpts.curPage = 0;
	pageCount = 0;
	recCount = 0;
	if (hasTower == true || hasStore == true || hasMarina == true || hasLJ == true) {
		//fix the IDL problem
		saveLng1 = boundsW;
		saveLng2 = boundsE;
		if (boundsW >= 0 && boundsE < 0) {
			bDateLineHandle = true;
			boundsW = -179.999;
		} else {
			bDateLineHandle = false;
		}
		ajaxError = false;
		queryOpts = {
			success: function(json) {
				if (showPoints && ajaxError != true) {
					loadTimeout = setTimeout("timeoutLoad()", 10000);
					parseJson(json);
				}
			},
			url: 'mapData.asp',
			data: {
				'A': 'loadPoints',
				'bN': boundsN,
				'bS': boundsS,
				'bE': boundsE,
				'bW': boundsW,
				'T': toText(hasTower),
				'W': toText(hasStore),
				'M': toText(hasMarina),
				'L': toText(hasLJ),
				'filtF': toText($j('#filter_Fuel').attr('checked')),
				'filtS': toText($j('#filter_Slip').attr('checked')),
				'filtR': toText($j('#filter_Repair').attr('checked')),
				'R': Math.random()
			}
		};
		ajaxMgr.add(queryOpts);
		if (bDateLineHandle) {
			boundsW = saveLng1;
			boundsE = 180.00;
			queryOpts = {
				success: function(json) {
					if (showPoints && ajaxError != true) {
						loadTimeout = setTimeout("timeoutLoad()", 10000);
						parseJson(json);
					}
				},
				url: 'mapData.asp',
				data: {
					'A': 'loadPoints',
					'bN': boundsN,
					'bS': boundsS,
					'bE': boundsE,
					'bW': boundsW,
					'T': toText(hasTower),
					'W': toText(hasStore),
					'M': toText(hasMarina),
					'L': toText(hasLJ),
					'filtF': toText($j('#filter_Fuel').attr('checked')),
					'filtS': toText($j('#filter_Slip').attr('checked')),
					'filtR': toText($j('#filter_Repair').attr('checked')),
					'R': Math.random()
				}
			};
			ajaxMgr.add(queryOpts);
		}
		updateHash();
	} else {
		map.clearOverlays();
		setStatus("ready");
		$j('#sidebar_content').html(welcomeMsg);
	}
}
function parseJson(doc) {
	$j('#filterControls').addClass('noscreen');
	json = doc;
	clearTimeout( loadTimeout );
	if (!json) { setStatus('ready'); return false; }
	recCount = json.markers.length;
	pageCount = Math.ceil(recCount/mapOpts.perPage);
	if (hasMarina) { $j('#filterControls').removeClass('noscreen'); }
	$j('#filterText').empty();
	showFilterMsg = false;
	if (hasMarina && (hasFiltF == true || hasFiltS == true || hasFiltR == true)) {
		fText = "Marinas filtered by: "
		if ($j("#filter_Fuel").attr('checked') == true) { fText += "<strong>Fuel Discount</strong>, "; }
		if ($j("#filter_Slip").attr('checked') == true) { fText += "<strong>Slip Discount</strong>, "; }
		if ($j("#filter_Repair").attr('checked') == true) { fText += "<strong>Repair Discount</strong>, "; }
		fText = fText.substr(0,fText.length-2);
		$j('#filterText').append(fText + ".");
		showFilterMsg = true;
	}
	if (recCount < 1) {
		resetSidebar();
		if (!showFilterMsg) {
			msg = "<h4>No Results!</h4><p>There were no locations returned by your search.</p><p>Try zooming out more, moving to a different location on the map, or changing the services you have selected.</p>";
		} else {
			msg = "<br /><h4>No Results!</h4><p>There were no locations returned by your search.</p><p>Try zooming out more, moving to a different location on the map, or changing the services you have selected.</p><p>You may also want to change the <a href=\"#\" onclick=\"dialogHandler('open','serviceFilter'); return false\">marina filters</a> you have selected, as there may be marinas in the area that offer different services.</p>";
		}
		if (showFilterMsg === true) { $j('#filterControls').removeClass('noscreen'); }
		$j("#searchResultList").append(msg);
		$j("#fullList_0").append(msg);
		setStatus('ready');
		return false;
	}
	if (showPoints) {
		for (var i = 0; i < recCount; i++) {
			si = false;
			switch(json.markers[i].Type) {
				case "Tower":
					si = hasTower;
				break;
				case "Marina":
					si = hasMarina;
				break;
				case "Store":
					si = hasStore;
				break;
				case "LJ":
					si = hasLJ;
				break;
			}
			if(si) {
				var marker = createMarker(json.markers[i],i);
			}
		}
		populateMap();
		if (mapOpts.curPage != undefined) {
			//changePage(parseFloat(mapOpts.curPage));
		}
	}
	lastSearchQuery = "";
}
function populateMap() {
	setStatus('load');
	map.clearOverlays();
	i = curMax + 1;
	curMin = i;
	resetSidebar();
	curCol = 1;
	inCol = 0;
	perCol = Math.floor(recCount/3);
	pageCount = Math.ceil(recCount/mapOpts.perPage);
	x = 1;
	b = 0;
	printServices = [];
	if (mapOpts.view == 'D') {
		while (x <= recCount && b < curMin) {
			if (pMarkers[b] == null) { continue; }
			handleMarkerDot(b);
			map.addOverlay(pMarkers[b],{zIndexProcess:orderDots});
			b++;
			x++;
		}
		bI = curMax+parseInt(mapOpts.perPage)+1;
		while (bI < recCount) {
			if (pMarkers[bI] == null) { continue; }
			handleMarkerDot(bI);
			map.addOverlay(pMarkers[bI],{zIndexProcess:orderDots});
			bI++;
		}
		x = 1;
		while (x <= mapOpts.perPage && i < recCount) {
			if (pMarkers[i] == null) { continue; }
			handleMarkerRenumber(i,x,pMarkers[i].featured);
			map.addOverlay(pMarkers[i],{zIndexProcess:orderFlags});
			buildSidebar(i,x);
			//handleBounds(pMarkers[i].point,i);
			curMax = i-1;
			i++;
			x++;
		}
		printSidebar();
	} else if (mapOpts.view == 'L') {
		i = 0;
		while (i < recCount) {
			buildSidebar(i,i);
			curMax = i-1;
			i++;
		}
	} else if (mapOpts.view == 'M') {
		i = 0;
		while (i < recCount) {
			handleMarkerDot(i);
			map.addOverlay(pMarkers[i]);
			curMax = i-1;
			i++;
		}
	}
	setStatus('ready');
}
function handleMarkerRenumber(i,x,f) {
	mkr = pMarkers[i];
	if (mapOpts.view == 'D') {
		prStr = mkr.iconCat + '_' + mkr.serviceID + '_' + i;
		printServices.push(prStr);
	}
	if (x == 0) {
		img_src = "http://www.boatus.com/ServiceLocator/images/markers/" + mkr.iconCat + '_Blank.gif';
		mkr.iconID = 0;
	} else {
		mkr.iconID = x;
		img_src = "http://www.boatus.com/ServiceLocator/images/markers/" + mkr.iconCat + '_' + x;
		if (f == "1") { img_src += '_F'; }
		img_src += '.gif';
	}
	mkr.onSidebar = true;
	mkr.getIcon().image = img_src;
	mkr.getIcon().iconSize = new GSize(25, 28);
	mkr.getIcon().iconAnchor = new GPoint(2, 28);
	mkr.getIcon().infoWindowAnchor = new GPoint(12, 14);	
}
function handleMarkerDot(i) {
	marker = pMarkers[i];
	switch(marker.iconCat) {
		case "T":
			img_src = "http://www.boatus.com/ServiceLocator/images/markers/towerDot.gif";
		break;
		case "M":
			img_src = "http://www.boatus.com/ServiceLocator/images/markers/cmDot.gif";
		break;
		case "W":
			img_src = "http://www.boatus.com/ServiceLocator/images/markers/wmDot.gif";
		break;
		case "L":
			img_src = "http://www.boatus.com/ServiceLocator/images/markers/ljDot.gif";
		break;
	}
	marker.onSidebar = false;
	marker.getIcon().image = img_src;
	marker.getIcon().iconSize = new GSize(8,8);
	marker.getIcon().iconAnchor = new GPoint(4,4);
	marker.getIcon().infoWindowAnchor = new GPoint(4,4);
}
function orderFlags(marker,b) {
	return GOverlay.getZIndex(marker.getPoint().lat() + marker.iconID*1000000);
}
function orderDots(marker,b) {
	return GOverlay.getZIndex(marker.getPoint().lat() + 100000);
}
function changePage(pg) {
	if (pg < 0) { pg = 0; }
	if (pg > pageCount) { pg = pageCount; }
	curMax = (pg * mapOpts.perPage) - 1;
	mapOpts.curPage = pg;
	populateMap();
}
function createMarker(ip,id) {
	switch(ip.Type) {
		case "Tower":
			switch(ip.TowerType) {
				case "T":
					return createTowerMarker(ip,id);
				break;
				case "L":
					return createListedMarker(ip,id);
				break;
				case "V":
					return createVesselMarker(ip,id);
				break;
			}
		break;
		case "Marina":
			return createCoopMarker(ip,id);
		break;
		case "Store":
			return createWMMarker(ip,id);
		break;
		case "LJ":
			return createLifeJacketMarker(ip,id);
		break;
	}
}
function resetSidebar() {
	$j("#searchResultList").empty();
	$j('#fullList_1').empty();
	$j('#fullList_2').empty();
	$j('#fullList_3').empty();
	$j('#shortListPrintList').empty();
	$j('#fullListPrintList').empty();
}
function buildSidebar(i,x) {
	if (mapOpts.view != "M") {
		buildSBEntry(i,x);
	}
}
function buildSBEntry(id,x) {
	serv = json.markers[id];
	sCat = serv.Type;
	sName = serv.Name;
	sCity = serv.City;
	sState = serv.State;
	sPhone = serv.Phone;
	op = '';
	opB = '';
	curPrintData = $j('#pageMeta').data("printList");
	if (curPrintData === undefined) {
		curPrintData = {};
	}
	switch (sCat) {
		case "Tower":
			if (mapOpts.view == 'L') {
				if (curServ != 'tower') {
					curServ = 'tower';
					op += lookupService('tower');
				}
				if (curState != sState) {
					curState = sState;
					op += lookupState(sState,true);
				}
			}
			op += '<li class="serviceListing';
			if (serv.Featured == "1") { op += " featured "; }
			op += '" id="listing_' + id + '_elem"';
			opB += '<li class="serviceListing">';
			//if (mapOpts.view == 'D') {
			//	op += ' onmouseover="overMarker(' + id + ',false);" onmouseout="outMarker(' + id + ');" onclick="clickMarker(' + id + ');"';
			//}
			op += '>';
			if (mapOpts.view == 'D') {
				op += '<a id="listing_' + id + '_number" class="number towerIcon" >' + x + '</a>';
				opB += '<span class="number towerIcon">' + x + '</span>';
			} else if (mapOpts.view == 'L') {
				op += '<span class="icon"><img height="28" border="0" width="29" alt="Tower" src="images/tow.gif"/></span>';
				opB += '<span class="icon"><img height="28" border="0" width="29" alt="Tower" src="images/tow.gif"/></span>';
			}
			op += '<div class="listing"><h1 id="listing_' + id + '_title">';
			if (mapOpts.view == 'D') {
				op += '<a onclick="clickMarker(' + id + ');">' + sName + '</a>';
			} else if (mapOpts.view == 'L') {
				op += sName;
			}
			op += '</h1><span class="info">' + sCity + ', ' + sState + '<br />' + sPhone + '<br />Service Area: ' + serv.Area + '</span>';
			opB += '<div class="listing"><h1>' + sName + '</h1><br /><span class="info">' + sCity + ', ' + sState + '<br />' + sPhone + '<br />Service Area: ' + serv.Area + '</span>';
			tServ = {S: serv.S, E: serv.E, R: serv.R, T: serv.T, A: serv.A};
			if (serv.S == '1' || serv.E == '1' || serv.R == '1' || serv.T == '1' || serv.A == '1') {
				if (mapOpts.view != 'L') {
					op += "<span class=\"towerServices\"><a href=\"#\" title=\"whats this?\" onclick=\"dialogHandler('open','towerServices'); return false;\">Services:</a> ";
				} else {
					op += "<span class=\"towerServices\">Services: ";
				}
				opB += '<br /><span class="towerServices">Services: ';
				if (serv.S == '1') {
					op += "<strong title=\"Salvage\"> S </strong>";
					opB += "<strong title=\"Salvage\"> S </strong>";
				}
				if (serv.E == '1') {
					op += "<strong title=\"Spill Cleanup Equipment\"> E </strong>";
					opB += "<strong title=\"Spill Cleanup Equipment\"> E </strong>";
				}
				if (serv.R == '1') {
					op += "<strong title=\"Repairs\"> R </strong>";
					opB += "<strong title=\"Repairs\"> R </strong>";
				}
				if (serv.T == '1') {
					op += "<strong title=\"Transportation\"> T </strong>";
					opB += "<strong title=\"Transportation\"> T </strong>";
				}
				if (serv.A == '1') {
					op += "<strong title=\"ACAPT Certified\"> A </strong>";
					opB += "<strong title=\"ACAPT Certified\"> A </strong>";
				}
				op += '</span>';
				opB += '</span>';
			}
			op += "<br />";
			strPrintID = "tower_" + serv.ID;
			strElID = "print_side_tower_" + serv.ID;
			op += '<a href="#" onclick="changePrintSel(\'tower_' + serv.ID + '\',\'' + escape(serv.Name) + '\'); return false;" id="' + strElID + '">';
			if (printArray[strPrintID] === true) {
				op += ' Remove from Print List';
			} else {
				op += ' Add to Print List';
			}
			op += '</a>';
			op += '</div></li>';
			opB += '</div></li>';
		break;
		case "Marina":
			sAddr = serv.Address;
			if (serv.Featured == "1") { sName = sName + " - Featured Marina"; }
			if (mapOpts.view == 'L') {
				if (curServ != 'marina') {
					curServ ='marina';
					op += lookupService('marina');
				}
				if (curState != sState) {
					curState = sState;
					op += lookupState(sState,true);
				}
			}
			op += '<li class="serviceListing';
			if (serv.Featured == "1") { op += " featured "; }
			op += '" id="listing_' + id + '_elem"';
			opB += '<div class="printListing">';
			//if (mapOpts.view == 'D') {
			//	op+= 'onmouseover="overMarker(' + id + ',false);" onmouseout="outMarker(' + id + ');" onclick="clickMarker(' + id + ');"';
			//}
			op += '>';
			if (mapOpts.view == 'D') {
				op += '<a id="listing_' + id + '_number" class="number marinaIcon" >' + x + '</a>';
				opB += '<span class="number marinaIcon" >' + x + '</span>';
			} else if (mapOpts.view == 'L') {
				op += '<span class="icon"><img height="28" border="0" width="29" alt="Marina" src="images/coop.gif"/></span>';
				opB += '<span class="icon"><img height="28" border="0" width="29" alt="Marina" src="images/coop.gif"/></span>';
			}
			op += '<div class="listing" ><h1 id="listing_' + id + '_title">';
			if (mapOpts.view == 'D') {
				op += '<a onclick="clickMarker(' + id + ');">' + sName + '</a>';
			} else if (mapOpts.view == 'L') {
				op += sName;
			}
			op += '</h1><span class="info" id="listing_' + id + '_address">' + sAddr + '<br />' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span>';
			strPrintID = "marina_" + serv.ID;
			strElID = "print_side_marina_" + serv.ID;
			op += '<a href="#" onclick="changePrintSel(\'marina_' + serv.ID + '\',\'' + escape(serv.Name) + '\'); return false;" id="' + strElID + '">';
			if (printArray[strPrintID] === true) {
				op += ' Remove from Print List';
			} else {
				op += ' Add to Print List';
			}
			op += '</a>';
			op += '</div></li>';
			opB += '<div class="listing" ><h1>' + sName + '</h1><br /><span class="info">' + sAddr + '<br />' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span><br /></div></div>';
		break;
		case "Store":
			sAddr = serv.Address;
			if (mapOpts.view == 'L') {
				if (curServ != 'store') {
					curServ ='store';
					op += lookupService('store');
				}
				if (curState != sState) {
					curState = sState;
					op += lookupState(sState,true);
				}
			}
			op += '<li class="serviceListing';
			if (serv.Featured == "1") { op += " featured "; }
			op += '" id="listing_' + id + '_elem" ';
			opB += '<div class="printListing">';
			//if (mapOpts.view == 'D') {
			//	op += 'onmouseover="overMarker(' + id + ',false);" onmouseout="outMarker(' + id + ');" onclick="clickMarker(' + id + ');"';
			//}
			op += '>';
			if (mapOpts.view == 'D') {
				op += '<a id="listing_' + id + '_number" class="number storeIcon">' + x + '</a>';
				opB += '<span class="number storeIcon">' + x + '</span>';
			} else if (mapOpts.view == 'L') {
				op += '<span class="icon"><img height="28" border="0" width="29" alt="Store" src="images/wm.gif"/></span>';
				opB += '<span class="icon"><img height="28" border="0" width="29" alt="Store" src="images/wm.gif"/></span>';
			}
			op += '<div class="listing"><h1 id="listing_' + id + '_title">';
			if (mapOpts.view == 'D') {
				op += '<a onclick="clickMarker(' + id + ');">' + sName + '</a>';
			} else if (mapOpts.view == 'L') {
				op += sName;
			}
			op += '</h1><span class="info" id="listing_' + id + '_address">' + sAddr + '<br />' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span>';
			strPrintID = "store_" + serv.ID;
			strElID = "print_side_store_" + serv.ID;
			op += '<a href="#" onclick="changePrintSel(\'store_' + serv.ID + '\',\'' + escape(serv.Name) + '\'); return false;" id="' + strElID + '">';
			if (printArray[strPrintID] === true) {
				op += ' Remove from Print List';
			} else {
				op += ' Add to Print List';
			}
			op += '</a>';
			op += '</div></li>';
			opB += '<div class="listing"><h1>' + sName +'</h1><br /><span class="info">' + sAddr + '<br />' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span><br /></div></div>';
		break;
		case "LJ":
			sAddr = serv.Address;
			if (mapOpts.view == 'L') {
				if (curServ != 'lj') {
					curServ ='lj';
					op += lookupService('lj');
				}
				if (curState != sState) {
					curState = sState;
					op += lookupState(sState,true);
				}
			}
			op += '<li class="serviceListing';
			if (serv.Featured == "1") { op += " featured "; }
			op += '" id="listing_' + id + '_elem" ';
			opB += '<div class="printListing">';
			//if (mapOpts.view == 'D') {
			//	op += 'onmouseover="overMarker(' + id + ',false);" onmouseout="outMarker(' + id + ');" onclick="clickMarker(' + id + ');"';
			//}
			op += '>';
			if (mapOpts.view == 'D') {
				op += '<a id="listing_' + id + '_number" class="number ljIcon">' + x + '</a>';
				opB += '<span class="number ljIcon">' + x + '</span>';
			} else if (mapOpts.view == 'L') {
				op += '<span class="icon"><img height="28" border="0" width="29" alt="Life Jacket" src="images/lifeJacket.gif"/></span>';
				opB += '<span class="icon"><img height="28" border="0" width="29" alt="Life Jacket" src="images/lifeJacket.gif"/></span>';
			}
			op += '<div class="listing"><h1 id="listing_' + id + '_title">';
			if (mapOpts.view == 'D') {
				op += '<a onclick="clickMarker(' + id + ');">' + sName + '</a>';
			} else if (mapOpts.view == 'L') {
				op += sName;
			}
			op += '</h1><span class="info" id="listing_' + id + '_address">' + sAddr + '<br />' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span>';
			strPrintID = "j_" + serv.ID;
			strElID = "print_side_lj_" + serv.ID;
			op += '<a href="#" onclick="changePrintSel(\'lj_' + serv.ID + '\',\'' + escape(serv.Name) + '\'); return false;" id="' + strElID + '">';
			if (printArray[strPrintID] === true) {
				op += ' Remove from Print List';
			} else {
				op += ' Add to Print List';
			}
			op += '</a>';
			op += '</div></li>';
			opB += '<div class="listing"><h1>' + sName +'</h1><br /><span class="info">' + sAddr + '<br/ >' + sCity + ', ' + sState + ' ' + serv.Zip + '<br />' + sPhone + '</span><br /></div></div>';
		break;
	}
	if (mapOpts.view == 'D') {
		$j("#searchResultList").append(op);
		//$j("#shortListPrintList").append(opB);
	} else if (mapOpts.view == 'L') {
		if (inCol > perCol && curCol != 3) {
			curCol++;
			inCol = 0;
		}
		sel = '#fullList_' + curCol;
		$j(sel).append(op);
		//$j("#fullListPrintList").append(opB);
		inCol++;
	}
	op = null;
	opB = null;
}
function changeResultCount() {
	mapOpts.perPage = $j('#resultCountSelect').val();
	curMax = -1;
	mapOpts.curPage = 0;
	populateMap();
}
function printSidebar() {
	sbHTML = '<div id="paginator_0" class="paginator">';
	if (pageCount > 1) {
		if (mapOpts.curPage > 2) {
			pS = mapOpts.curPage - 1;
		} else {
			pS = 1;
		}
		if (mapOpts.curPage > 0) {
			sbHTML += '<a class="prev" href="javascript:;" onclick="changePage(' + (mapOpts.curPage-1) + ')" title="Prev">Prev</a>';
		}


		for (var x=1; x<6; x++) {
			if (pS <= pageCount) {
				if (pS != (mapOpts.curPage+1)) {
					sbHTML += '<a href="javascript:;" onclick="changePage(' + (pS-1) + ');" title="Page ' + pS + '">' + pS + '</a>';
				} else {
					sbHTML += '<span class="selected">' + pS + '</span>';
				}
			}
			pS++;
		}
		if (mapOpts.curPage < (pageCount-1)) {
			if (mapOpts.curPage+1 != pageCount-1) {
			}
			sbHTML += '<a class="next" href="javascript:;" onclick="changePage(' + (mapOpts.curPage+1) + ')" title="Next">Next</a>';
		}
	}
	sbHTML += '</div>';
	$j("#searchResultList").prepend(sbHTML);
	resHTML = '';
	resHTML = '<span class="resultStat">Showing results ' + (curMin+1) + '-' + (curMax+2) + ' of ' + recCount + '.</span><br />';
	resHTML += "Show <select id=\"resultCountSelect\" onchange=\"changeResultCount();\"><option value=\"5\"";
	if (mapOpts.perPage == 5) { resHTML += "selected=\"selected\""; }
	resHTML += ">5</option><option value=\"10\"";
	if (mapOpts.perPage == 10) { resHTML += "selected=\"selected\""; }
	resHTML += ">10</option><option value=\"15\"";
	if (mapOpts.perPage == 15) { resHTML += "selected=\"selected\""; }
	resHTML += ">15</option><option value=\"20\"";
	if (mapOpts.perPage == 20) { resHTML += "selected=\"selected\""; }
	resHTML += ">20</option></select> results per page.";
	$j("#searchResultList").prepend(resHTML);
	if (showFilterMsg == true) $j('#searchResultList').append('<li id="filterAlert" class="serviceListing"><div class="listing"><h1>Not seeing all the results you expected?</h1><span class="info">Try disabling some of the <a href="#" onclick="dialogHandler(\'open\',\'serviceFilter\'); return false;">marina filters</a> you have selected.</span></div></li>');
	sbHTML = sbHTML.replace("paginator_0","paginator_1");
	$j("#searchResultList").append(sbHTML);
	$j("#sidebar_on > #sidebar_content").scrollTo("0px");
}
function clickMarker(i) {
	$j('li','#searchResultList').removeClass('listingSelected');
	el = $j('#listing_' + i + '_elem');
	el.addClass('listingSelected');
	scrollSide = false;
	//$j('#searchResultList').scrollTo('#listing_' + i + '_elem');
	GEvent.trigger(pMarkers[i],"click");
}
function overMarker(i,fromMarker) {
	mkr = pMarkers[i];
	if (mapOpts.view == 'D') {
		img_src = 'http://www.boatus.com/ServiceLocator/images/markers/O_' + mkr.iconID + '.gif';
	} else {
		img_src = 'http://www.boatus.com/ServiceLocator/images/markers/O_Blank.gif';
	}
	mkr.setImage(img_src);
	if (mapOpts.view == 'D') {
		$j('#listing_' + i + '_elem').addClass("overListing");
		$j('#listing_' + i + '_number').removeClass(mkr.cat + 'Icon');
		$j('#listing_' + i + '_number').addClass('overIcon');
		if (fromMarker == true) {
			el = $j('#listing_' + i + '_elem');
			$j("#sidebar_on > #sidebar_content").scrollTo(el);
		}
	}
	return false;
}
function outMarker(i) {
	mkr = pMarkers[i];
	if (mapOpts.view == 'D') {
		img_src = "http://www.boatus.com/ServiceLocator/images/markers/" + mkr.iconCat + "_" + mkr.iconID + ".gif";
	} else {
		img_src = "http://www.boatus.com/ServiceLocator/images/markers/" + mkr.iconCat + "_Blank.gif";
	}
	mkr.setImage(img_src);
	if (mapOpts.view == 'D') {
		$j('#listing_' + i + '_elem').removeClass("overListing");
		$j('#listing_' + i + '_number').removeClass('overIcon');
		$j('#listing_' + i + '_number').addClass(mkr.cat + 'Icon');
	}
	return false;
}
function centerAndZoom(point,zoom) {
	if (zoom < 16) {
		newZoom = zoom+1;
		map.setCenter(point,newZoom);
	} else {
		alert("Sorry, you cannot zoom in any further");
	}
}
function lookupState(abbr,format) {
	abbr = abbr.trim();
	switch (abbr) {
		case 'AL':
			stName =  'Alabama';
		break;
		case 'AK':
			stName =  'Alaska';
		break;
		case 'AZ':
			stName =  'Arizona';
		break;
		case 'AR':
			stName =  'Arkansas';
		break;
		case 'CA':
			stName =  'California';
		break;
		case 'CO':
			stName =  'Colorado';
		break;
		case 'CT':
			stName =  'Connecticut';
		break;
		case 'DE':
			stName =  'Delaware';
		break;
		case 'DC':
			stName =  'Washington, DC';
		break;
		case 'FL':
			stName =  'Florida';
		break;
		case 'GA':
			stName =  'Georiga';
		break;
		case 'HI':
			stName =  'Hawaii';
		break;
		case 'ID':
			stName =  'Idaho';
		break;
		case 'IL':
			stName =  'Illinois';
		break;
		case 'IN':
			stName =  'Indiana';
		break;
		case 'IA':
			stName =  'Iowa';
		break;
		case 'KS':
			stName =  'Kansas';
		break;
		case 'KY':
			stName =  'Kentucky';
		break;
		case 'LA':
			stName =  'Lousiana';
		break;
		case 'ME':
			stName =  'Maine';
		break;
		case 'MD':
			stName =  'Maryland';
		break;
		case 'MA':
			stName =  'Massachussetts';
		break;
		case 'MI':
			stName =  'Michigan';
		break;
		case 'MN':
			stName =  'Minnesota';
		break;
		case 'MS':
			stName =  'Mississippi';
		break;
		case 'MO':
			stName =  'Missouri';
		break;
		case 'MT':
			stName =  'Montana';
		break;
		case 'NE':
			stName =  'Nebrasks';
		break;
		case 'NV':
			stName =  'Nevada';
		break;
		case 'NH':
			stName =  'New Hampshire';
		break;
		case 'NJ':
			stName =  'New Jersey';
		break;
		case 'NM':
			stName =  'Mexico';
		break;
		case 'NY':
			stName =  'New York';
		break;
		case 'NC':
			stName =  'North Carolina';
		break;
		case 'ND':
			stName =  'North Dakota';
		break;
		case 'OH':
			stName =  'Ohio';
		break;
		case 'OK':
			stName =  'Oklahoma';
		break;
		case 'OR':
			stName =  'Oregon';
		break;
		case 'PA':
			stName =  'Pennsylvania';
		break;
		case 'PR':
			stName =  'Puerto Rico';
		break;
		case 'RI':
			stName =  'Rhode Island';
		break;
		case 'SC':
			stName =  'South Carolina';
		break;
		case 'SD':
			stName =  'South Dakota';
		break;
		case 'TN':
			stName =  'Tennessee';
		break;
		case 'TX':
			stName =  'Texas';
		break;
		case 'UT':
			stName =  'Utah';
		break;
		case 'VT':
			stName =  'Vermont';
		break;
		case 'VI':
			stName =  'Virgin Islands';
		break;
		case 'VA':
			stName =  'Virginia';
		break;
		case 'WA':
			stName =  'Washington';
		break;
		case 'WV':
			stName =  'West Virginia';
		break;
		case 'WI':
			stName =  'Wisconsin';
		break;
		case 'WY':
			stName =  'Wyoming';
		break;
	}
	if (format == true) {
		op = '<li class="stateBoundary">' + stName + '</li>';
	} else {
		op = stName;
	}
	return op;
}
function lookupService(abbr) {
	switch (abbr) {
		case 'tower':
			return '<li class="serviceBoundaryTower">TOWER PORTS</li>';
		break;
		case 'marina':
			return '<li class="serviceBoundaryMarina">COOPERATING MARINAS</li>';
		break;
		case 'store':
			return '<li class="serviceBoundaryStore">WEST MARINE RETAIL STORES</li>';
		break;
		case 'lj':
			return '<li class="serviceBoundaryLJ">LIFE JACKET LOANER LOCATIONS</li>';
		break;
	}
}
function fetchPrintArgs() {
	if (mapOpts.view != "D") {
		bounds = map.getBounds();
		southWest =  bounds.getSouthWest();
		northEast =  bounds.getNorthEast();
		printArgs = base64_encode(mapOpts.view + '|' + northEast.lat() + '|' + southWest.lat() + '|' + southWest.lng() + '|' + northEast.lng() + '|' + toText(hasTower) + '|' + toText(hasStore) + '|' + toText(hasMarina) + '|' + toText(hasLJ) + '|' + toText($j('#filter_Fuel').attr('checked')) + '|' + toText($j('#filter_Slip').attr('checked')) + '|' + toText($j('#filter_Repair').attr('checked')) + '|' + Math.random());
	} else {
		cMin = parseFloat(curMin);
		cMax = parseFloat(curMax);
		printArgs = base64_encode(mapOpts.view + '|' + (cMin+1) + '|' + (cMax+2) + '|' + recCount + '|' + toText($j('#filter_Fuel').attr('checked')) + '|' + toText($j('#filter_Slip').attr('checked')) + '|' + toText($j('#filter_Repair').attr('checked')) + '|' + printServices.join('|'));
	}
}
function fetchEmbedArgs() {
	center = map.getCenter().toString();
	center = center.replace("(","");
	center = center.replace(" ","");
	center = center.replace(")","");
	zoom = map.getZoom();
	embedArgs = "v=" + mapOpts.view + "&mts=" + mapOpts.mapType.toUpperCase().substr(0,1) + "&P=" + center + "&Z=" + zoom + "&TB=" + toText(hasTower) + "&WM=" + toText(hasStore) + "&CM=" + toText(hasMarina) + "&LJ=" + toText(hasLJ) + "&pp=" + mapOpts.perPage +"&cp=" + mapOpts.curPage;
	if ($j('#filter_Fuel').attr('checked') == true) {
		embedArgs += "&filtF=1";
	}
	if ($j('#filter_Slip').attr('checked') == true) {
		embedArgs += "&filtS=1";
	}
	if ($j('#filter_Repair').attr('checked') == true) {
		embedArgs += "&filtR=1";
	}
	embedArgs += "&sS=1";
	return embedArgs;
}
function timeoutLoad() {
	dialogHandler('open','warning');
}
function doSearch() {
	if (($j('#tb_searchField').val() == '' || $j('#tb_searchField').val() == searchDefault) && initSplashSearch != true) { return false; }
	if ($j('#tb_searchField').val() != "") {
		initSplashSearch = false;
		queryOpts = {
			success: function(json) {
				if (!json) { return false; }
				if (json.status == 'OK') {
					dcsClick('search', json.searchTerm);
					input = {"Lat":json.lat,"Lng":json.lng,"Accuracy":json.accuracy};
					point = new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng));
					var marker = new GMarker(point, pIcons["search"]);
					marker.clickable = false;
					map.addOverlay(marker);
					map.setCenter(new GLatLng(parseFloat(input.Lat),parseFloat(input.Lng)), (5+parseFloat(input.Accuracy)));
					updateHash();
					loadPoints();
					//$j('#tb_searchField').val(searchDefault);
				} else {
					dialogHandler('close','search');
					dialogHandler('open','searchError');
				}
				return true;
			},
			url: 'ajaxGateway.asp',
			data: {
				'method': "searchMap",
				'searchTerm':$j('#tb_searchField').val()
			},
			type: "POST"
		};
		ajaxMgr.add(queryOpts);
		$j('#tb_searchField').val('');
		setStatus('searching');
	} else {
		initSplashSearch = false;
		updateHash();
		loadPoints();
	}
}
function splashSearch()
{
	initSplashSearch = true;
	$j('#tb_searchField').val($j('#splashSearchField').val());
	$j("#svcTow").attr('checked', $j("#splTow").attr('checked'));
	chgTower();
	$j("#svcMarina").attr('checked', $j("#splMarina").attr('checked'));
	chgMarina();
	$j("#svcStore").attr('checked', $j("#splStore").attr('checked'));
	chgStore();
	$j("#svcLJ").attr('checked', $j("#splLJ").attr('checked'));
	chgLJ();
	$j('#splashSearchField').effect("transfer", { to: $j("#tb_searchField")}, 1000);
	killSplash();
	doSearch();
}
function dcsClick(ev, evArg)
{
	try {
		_tag.dcsCleanUp();
		//_tag.dcsCollectNoTag();
		dcsMultiTrack('WT.ria_a', 'MSL', 'WT.ria_ev', ev, 'WT.ria_c', evArg);
	} catch (e) {
		
	}
}
function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=400,height=300,left = 600,top = 450');");
}
function qs() {
	q = new Array();
	var query = window.location.search.substring(1);
	var parms = query.split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			q[key] = val;
		}
	}
	return q;
}
function getStateFromURL() {
	//create an options object from the URL querystring
	urlParams = qs();
	var newOpts = {
		center: {},
		services: {},
		filters: {}
	};
	if (urlParams['v'] != undefined) {
		switch(urlParams["v"]) {
			case "M":
				newOpts.view = 'map';
			break;
			case "L":
				newOpts.view = 'list';
			break;
			case "D":
				newOpts.view = 'dual';
			break;
			default:
				newOpts.view = 'map';
			break;
		}
	}
	if (urlParams['fromSite'] != undefined) {
		if (urlParams['fromSite'] == 2) {
			newOpts.services.TB = true;
		}
		if (urlParams['fromSite'] == 3) {
			newOpts.services.CM = true;
		}
		if (urlParams['fromSite'] == 4) {
			newOpts.services.LJ = true;
		}
	}
	if (urlParams['pp'] != undefined) {
		newOpts.perPage = parseFloat(urlParams['pp']);
	}
	if (urlParams['cp'] != undefined) {
		newOpts.curPage = parseFloat(urlParams['cp']);
	}
	if (urlParams['TB'] != undefined) {
		newOpts.services.TB = toBool(urlParams['TB']);
	}
	if (urlParams['CM'] != undefined) {
		newOpts.services.CM = toBool(urlParams['CM']);
	}
	if (urlParams['WM'] != undefined) {
		newOpts.services.WM = toBool(urlParams['WM']);
	}
	if (urlParams['LJ'] != undefined) {
		newOpts.services.TBLJ = toBool(urlParams['LJ']);
	}
	if (urlParams['filtF'] != undefined) {
		newOpts.filters.filtF = toBool(urlParams['filtF']);
	}
	if (urlParams['filtS'] != undefined) {
		newOpts.filters.filtS = toBool(urlParams['filtS']);
	}
	if (urlParams['filtR'] != undefined) {
		newOpts.filters.filtR = toBool(urlParams['filtR']);
	}
	if (urlParams['mts'] != undefined) {
		switch(urlParams["mts"]) {
			case "M":
				newOpts.mapType = 'map';
			break;
			case "S":
				newOpts.mapType = 'sat';
			break;
			case "T":
				newOpts.mapType = 'ter';
			break;
		}
	}
	if (urlParams['P'] != undefined) {
		if (urlParams["Z"] != "") {
			zoom = urlParams["Z"];
		} else {
			zoom = 10;
		}
		point = urlParams["P"].split(',');
		newOpts.center.lat = point[0];
		newOpts.center.lng = point[1];
		newOpts.center.zoom = zoom;
	}
	return newOpts;
}
function loadStateFromURL__ORIG() {
	urlParams = qs();
	if (urlParams['v'] != undefined) {
		switch(urlParams["v"]) {
			case "M":
				setView('map');
			break;
			case "L":
				setView('list');
			break;
			case "D":
				setView('dual');
			break;
			default:
				setView('map');
			break;
		}
	}
	if (urlParams['fromSite'] != undefined) {
		if (urlParams['fromSite'] == 2) {
			hasTower = true;
			$j("#svcTow").attr('checked',true);
		}
		if (urlParams['fromSite'] == 3) {
			hasMarina = true;
			$j("#svcMarina").attr('checked',true);
		}
		if (urlParams['fromSite'] == 4) {
			hasLJ = true;
			$j("#svcLJ").attr('checked',true);
		}
	}
	if (urlParams['pp'] != undefined) {
		perPage = parseFloat(urlParams['pp']);
	}
	if (urlParams['cp'] != undefined) {
		mapOpts.curPage = parseFloat(urlParams['cp']);
	}
	if (urlParams['TB'] != undefined) {
		hasTower = toBool(urlParams['TB']);
		$j("#svcTow").attr('checked',toBool(urlParams['TB']));
	}
	if (urlParams['CM'] != undefined) {
		hasMarina = toBool(urlParams['CM']);
		$j("#svcMarina").attr('checked',toBool(urlParams['CM']));
	}
	if (urlParams['WM'] != undefined) {
		hasStore = toBool(urlParams['WM']);
		$j("#svcStore").attr('checked',toBool(urlParams['WM']));
	}
	if (urlParams['LJ'] != undefined) {
		hasLJ = toBool(urlParams['LJ']);
		$j("#svcLJ").attr('checked',toBool(urlParams['LJ']));
	}
	if (urlParams['filtF'] != undefined) {
		$j("#filter_Fuel").attr('checked',toBool(urlParams['filtF']));
	}
	if (urlParams['filtS'] != undefined) {
		$j("#filter_Slip").attr('checked',toBool(urlParams['filtS']));
	}
	if (urlParams['filtR'] != undefined) {
		$j("#filter_Repair").attr('checked',toBool(urlParams['filtR']));
	}
	map.clearOverlays();
	if (urlParams['mts'] != undefined) {
		switch(urlParams["mts"]) {
			case "M":
				setMapType('map');
			break;
			case "S":
				setMapType('sat');
			break;
			case "T":
				setMapType('ter');
			break;
		}
	}
	if (urlParams['P'] != undefined) {
		if (urlParams["Z"] != "") {
			zoom = urlParams["Z"];
		} else {
			zoom = 10;
		}
		point = urlParams["P"].split(',');
		map.setCenter(new GLatLng(parseFloat(point[0]), parseFloat(point[1])), parseFloat(zoom));
	}
}
function toBool(val) {
	if (val == "1") { return true; }
	return false;
}
function handleBounds(point,x) {
	boundsMove = true;
	pointBounds.extend(point);
	boundsMove = true;
	map.setZoom(map.getBoundsZoomLevel(pointBounds));
	boundsMove = true;
	map.setCenter(pointBounds.getCenter());
}
function subContact() {
	if ($j('#contactForm').valid()) {
		contactFormValidator.resetForm();
		clearDialogs();
		dialogHandler('open','subContact');
		var data = {
			name: $j('#nameField').val(),
			email: $j('#emailField').val(),
			comments: $j('#commentsField').val(),
			method: 'sendComments'
		};
		contactCallback = function(resp) {
			alert(resp);
		};
		$j.post('ajaxGateway.asp',data,contactCallback,'json');
	}
}
function subCell() {
	var cellErr = false;
	$j('#cellEmailField').removeClass('error');
	$j('#phoneField').removeClass('error');
	if (($j('#phoneField').val() != '' && $j('#providerField').val() == 'XX') || $j('#phoneField').val() == '' && $j('#providerField').val() != 'XX') {
		$j('#providerField').addClass('error');
		$j('#phoneField').addClass('error');
		$j('#cellFormListing').html('<span class="errText">You must enter a cell phone number and provider.</span>');
		cellErr = true;
	}
	if ($j('#cellEmailField').val() == '' && $j('#phoneField').val() == '') {
		celllErr = true;
		$j('#cellEmailField').addClass('error');
		$j('#phoneField').addClass('error');
		$j('#cellFormListing').html('<span class="errText">You must enter either a cell phone or email</span>');
	}
	if ($j('#cellEmailField').val() == '' && $j('#phoneField').val() == '' && $j('#providerField').val() == 'XX') {
		cellErr = true;
		$j('#cellEmailField').addClass('error');
		$j('#phoneField').addClass('error');
		$j('#cellFormListing').html('<span class="errText">You must enter either a cell phone or email</span>');
	}
	if (cellErr == true) { return false; }
	if ($j('#cellForm').valid()) {
		var data = {
			provider: $j('#providerField').val(),
			cellNumber: $j('#phoneField').val(),
			type: $j('#cellLocationType').val(),
			ID: $j('#cellLocationID').val(),
			email: $j('#cellEmailField').val(),
			method: 'sendCell'
		};
		cellCallback = function(resp) {};
		clearDialogs();
		dialogHandler('open','subCell');
		cellFormValidator.resetForm();
		$j.post('ajaxGateway.asp',data,cellCallback,'json');
	}
}
function swapZ(obj1,obj2) {
	var z1 = $j(obj1).css('z-index');
	var z2 = $j(obj2).css('z-index');
	if (z1 != 'auto' && z2 != 'auto') {
		$j(obj1).css('z-index',z2);
		$j(obj2).css('z-index',z1);
		return true;
	}
	return false;
}
function getStateFromHash(hash)
{
	if (hash == undefined) { hash = window.location.hash.substring(1) }
	var newOpts = {
		center: {},
		services: {},
		filters: {}
	};
	k = new Array();
	var parms = hash.split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			k[key] = val;
		}
	}
	if (k['v'] != undefined) {
		switch(k["v"]) {
			case "M":
				newOpts.view = 'map';
			break;
			case "L":
				newOpts.view = 'list';
			break;
			case "D":
				newOpts.view = 'dual';
			break;
			default:
				newOpts.view = 'map';
			break;
		}
	}
	if (k['fromSite'] != undefined) {
		if (k['fromSite'] == 2) {
			newOpts.services.TB = true;
		}
		if (k['fromSite'] == 3) {
			newOpts.services.CM = true;
		}
		if (urlParams['fromSite'] == 4) {
			newOpts.services.LJ = true;
		}
	}
	if (k['pp'] != undefined) {
		newOpts.perPage = parseFloat(k['pp']);
	}
	if (k['cp'] != undefined) {
		newOpts.curPage = parseFloat(k['cp']);
	}
	if (k['TB'] != undefined) {
		newOpts.services.TB = toBool(k['TB']);
	}
	if (k['CM'] != undefined) {
		newOpts.services.CM = toBool(k['CM']);
	}
	if (k['WM'] != undefined) {
		newOpts.services.WM = toBool(k['WM']);
	}
	if (k['LJ'] != undefined) {
		newOpts.services.LJ = toBool(k['LJ']);
	}
	if (k['filtF'] != undefined) {
		newOpts.filters.filtF = toBool(k['filtF']);
	}
	if (k['filtS'] != undefined) {
		newOpts.filters.filtS = toBool(k['filtS']);
	}
	if (k['filtR'] != undefined) {
		newOpts.filters.filtR = toBool(k['filtR']);
	}
	if (k['mts'] != undefined) {
		switch(k["mts"]) {
			case "M":
				newOpts.mapType = 'map';
			break;
			case "S":
				newOpts.mapType = 'sat';
			break;
			case "T":
				newOpts.mapType = 'ter';
			break;
		}
	}
	if (k['P'] != undefined) {
		if (k["Z"] != "") {
			zoom = k["Z"];
		} else {
			zoom = 10;
		}
		point = k["P"].split(',');
		newOpts.center.lat = point[0];
		newOpts.center.lng = point[1];
		newOpts.center.zoom = zoom;
	}
	return newOpts;
}
function loadStateFromHash(hash) {
	if (hash.substring(1) == '') {
		loadMapState(defaults);
		loadPoints();
	}
	if (appStatus == 'load' || hash == undefined || hash == '') { return false; }
	opts = getStateFromHash(hash);
	loadMapState(opts);
}
function updateHash()
{
	center = map.getCenter().toString();
	center = center.replace("(","");
	center = center.replace(" ","");
	center = center.replace(")","");
	zoom = map.getZoom();
	hashArgs = "v=" + mapOpts.view + "&mts=" + mapOpts.mapType.toUpperCase().substr(0,1) + "&P=" + center + "&Z=" + zoom + "&TB=" + toText(hasTower) + "&WM=" + toText(hasStore) + "&CM=" + toText(hasMarina) + "&LJ=" + toText(hasLJ) + "&pp=" + mapOpts.perPage +"&cp=" + mapOpts.curPage;
	if (hasFiltF == true) {
		hashArgs += "&filtF=1";
	}
	if (hasFiltS == true) {
		hashArgs += "&filtS=1";
	}
	if (hasFiltR == true) {
		hashArgs += "&filtR=1";
	}
	if ('#' + hashArgs == window.location.hash) { return false; }
	$j.historyLoad(hashArgs);
}
function loadMapState(opts)
{
	logIt(opts);
	if (typeof(opts) != 'object') { return false; }
	isLoader = true;
	//given an options object, load the state into the map
	setView(opts.view,false);
	setMapType(opts.mapType, false);
	map.setCenter(new GLatLng(parseFloat(opts.center.lat), parseFloat(opts.center.lng)), parseFloat(opts.center.zoom));
	mapOpts.curPage = opts.curPage;
	setTower(opts.services.TB);
	setMarina(opts.services.CM);
	setStore(opts.services.WM);
	setLJ(opts.services.LJ);
	setFilterF(opts.filters.filtF);
	setFilterS(opts.filters.filtS);
	setFilterR(opts.filters.filtR);
	if (hasTower == true || hasMarina == true || hasStore == true || hasLJ == true) {
		loadPoints();
	} else {
		map.clearOverlays();
		resetSidebar();
		$j('#sidebar_content').html(welcomeMsg);
	}
	isLoader = false;
}
function setTower(val)
{
	$j("#svcTow").attr('checked',toBool(val));
	hasTower = toBool(val);
}
function setMarina(val)
{
	$j("#svcMarina").attr('checked',toBool(val));
	hasMarina = toBool(val);
}
function setStore(val)
{
	$j("#svcStore").attr('checked',toBool(val));
	hasStore = toBool(val);
}
function setLJ(val)
{
	$j("#svcLJ").attr('checked',toBool(val));
	hasLJ = toBool(val);
}
function setFilterF(val)
{
	$j("#filter_Fuel").attr('checked',toBool(val));
	hasFiltF = toBool(val);
}
function setFilterS(val)
{
	$j("#filter_Slip").attr('checked',toBool(val));
	hasFiltS = toBool(val);
}
function setFilterR(val)
{
	$j("#filter_Repair").attr('checked',toBool(val));
	hasFiltR = toBool(val);
}
function applyFilters() {
	hasFiltF = $j("#filter_Fuel").attr('checked');
	hasFiltS = $j("#filter_Slip").attr('checked');
	hasFiltR = $j("#filter_Repair").attr('checked');
	dialogHandler('close','serviceFilter');
	loadPoints();
}
function loadFilters() {
	$j("#filter_Fuel").attr('checked',hasFiltF);
	$j("#filter_Slip").attr('checked',hasFiltS);
	$j("#filter_Repair").attr('checked',hasFiltR);
}
function logIt(stuff) {
	return false;
	if (console != undefined) {
		console.log(stuff);
	} else {
		$j('#logConsole').html($j.json.encode(stuff));
	}
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
function helpPopUp(URL, width, height, top, left, locationBar) {
	day = new Date();
	id = day.getTime();
	if (width == null) { width = screen.width; }
	if (height == null) { height = screen.height; }
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=" + locationBar + ",statusbar=1,menubar=0,resizable=0,width=" + width + ",height=" + height + ",left = " + left + ",top = " + top + "');");
}
function changePrintSel(ID, title)
{
	popLinkID = "print_popup_" + ID;
	sideLinkID = "print_side_" + ID;
	manageLinkID = "print_manage_" + ID;
	printID = ID;
	if (printArray[printID] == true) {
		//if it was already selected, we are deleting it
		delete printArray[printID];
		$j("#" + popLinkID).html('Add to Print List');
		$j("#" + sideLinkID).html('Add to Print List');
		$j('#' + manageLinkID).remove();
		printArrayCount--;
	} else {
		printArray[printID] = true;
		$j("#" + popLinkID).html('Remove from Print List');
		$j("#" + sideLinkID).html('Remove from Print List');
		title = unescape(title);
		if (title.length > 40) {
			title = title.substring(0, 40) + "...";
		}
		$j('#quickPrintList').append('<li id="' + manageLinkID + '">' + title + '<span class="manageTools"><a href="#" onclick="changePrintSel(\'' + ID + '\',null); return false;" title="Remove from Quick Print list."><img src="images/cross.png" border="0" alt="Remove" /></a></span></li>');
		printArrayCount++;
	}
	strLocations = (printArrayCount > 1 || printArrayCount == 0) ? 'locations' : 'location';
	strIs = (printArrayCount > 1 || printArrayCount == 0) ? 'are' : 'is';
	strCount = printArrayCount > 0 ? printArrayCount : 'no';
	$j('.printTooltipText').html('There ' + strIs + ' ' + strCount + ' ' + strLocations + ' in your Quick Print list.');
	$j('#tb_printLink').trigger('hover');
	$j('#tb_printLink').trigger('mouseenter.cluetip');
	return false;
}
function sendCell(sType, sID, sName)
{
	strVal = "Contact information for " + unescape(sName);
	$j('#cellFormListing').html(strVal);
	$j('#cellLocationType').val(sType);
	$j('#cellLocationID').val(sID);
}
} catch (e) { }
//]]>