/* main */
function onOff(id,state) {
	objElement = document.getElementById(id);
	obj = objElement.style;
	if ((state == 'show') || (state == '' && obj.display == 'none')) {
		if (objElement.nodeName == 'TR')
			if (navigator.appName != 'Netscape')
				obj.display = 'block';
			else
				obj.display = 'table-row';
		else
			obj.display = 'block';
	} else if ((state == 'hide') || (state == '' && (obj.display == '' || obj.display == 'block' || obj.display == 'table-row'))) {
		obj.display = 'none';
	} 
	return false;
}

function swapAdPhoto(source,idTarget)
{
	var element = document.getElementById('adPhoto'+idTarget);
	if (!element) return;
	
	if (source == '')
	{
		element.src = element.getAttribute('src2');
	} 
	else
		element.src = source;
	return;
}

function onOffFilterButton(name,state)
{
	var button = document.getElementById(name+'Button');
	if (viewState == name || state == 'on') 
		button.src = button.getAttribute('path')+name+'_btn_on.gif';
	else
		button.src = button.getAttribute('path')+name+'_btn_off.gif';
	return false;
}		
		
function onOffSection(listOn,tableOn,galleryOn,mapOn)
{
	var list = document.getElementById('sectionsList');
	var table = document.getElementById('sectionsTable');
	var gallery = document.getElementById('sectionsGallery');
	var map = document.getElementById('sectionsMap');
	
	var temp = viewState;
	
	if (listOn)
	{
		list.style.display = 'block';
		viewState = 'list';
	}
	else
		list.style.display = 'none';
	if (tableOn)
	{
		table.style.display = 'block';
		viewState = 'table';
	}
	else
		table.style.display = 'none';
	if (galleryOn)
	{
		gallery.style.display = 'block';
		viewState = 'gallery';
	}
	else
		gallery.style.display = 'none';
	if (mapOn && map)
	{
		map.style.display = 'block';
		viewState = 'map';
	}
	else if (map)
		map.style.display = 'none';
	
	if (temp != viewState) {
		onOffFilterButton(temp,'off');
		prevViewState = temp;
	}
	
	return false;
}

function showViewState(viewState)
{
	if (viewState == 'table')
		onOffSection(false,true,false,false);
	else if (viewState == 'gallery')
		onOffSection(false,false,true,false);
	else if (viewState == 'map')
		onOffSection(false,false,false,true);
	else 
		onOffSection(true,false,false,false);
}

function filterResults(url)
{
	window.location = url + '&viewState=' + viewState + ((viewSortState)?'&sort=' + viewSortState:'') + ((viewFilterState)?'&filter=' + viewFilterState:'');
	return false;
}

// google maps
var map = null;
var geocoder = null;
var markers = null;
var markersMapped= new Array();

function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setUIToDefault();
		geocoder = new GClientGeocoder();
		geocoder.setCache(null);
		if (mapAd && markers[0].lat != '' && markers[0].lon != '')
		{
			map.setCenter(new GLatLng(markers[0].lat,markers[0].lon), 9);
		}
		else
			comSwiftCenterMap();

		for(id in markers)
			comSwiftAddPoint(id,markers[id].lat,markers[id].lon,markers[id].zip);
	}
}

function comSwiftCenterMap() {
  var zip = comSwiftGetSiteZip();
  if (geocoder) {
    geocoder.getLatLng(
      zip,
      function(point) {
    	if (!point)
    	  alert('Unable to locate address.');
	    else {
	      map.setCenter(point, 9);
	    }
	  }
	);
  }
}

function comSwiftCountZips(zip)
{
	var count = 0;
	for(id in markers)
		if (markers[id].zip == zip)
			count++;
	return count;
}

function comSwiftAddPoint(id, lat, lon, zip)
{
	if (lat == '' || lon == '')
	{
		markersMapped[id] = null;
		return;
	}
	if (markersMapped[id] == null) {
		markersMapped[id] = new Array();
		markersMapped[id][0] = new GMarker(new GLatLng(lat,lon));
		markersMapped[id][1] = null;
		markersMapped[id][2] = false;
	}
	if (!mapAd)
	{
		var details = markers[id].details;
		if (markers[id].verified != 1)
			details = details+'<br /><b><span style="color: #f00;">UNABLE TO MAP ADDRESS. ONLY SHOWING CITY</span></b>';
		GEvent.addListener(markersMapped[id][0],'click',
				function() {
					markersMapped[id][0].openInfoWindowHtml(details);
				}
		);
	}
	map.removeOverlay(markersMapped[id][0]);
	map.addOverlay(markersMapped[id][0]);
}

function comSwiftPanToMarker(id) {
	if (markersMapped[id] == null) {
		alert('We are unable to locate this address on the map.');
		return;
	}
	
	var description = markers[id].details;
	if (markers[id].verified != 1)
		description = description+'<br /><b><span style="color: #f00;">UNABLE TO MAP ADDRESS. ONLY SHOWING CITY</span></b>';
	map.panTo(markersMapped[id][0].getPoint());
	markersMapped[id][0].openInfoWindowHtml(description);

}

var currentPlaceAdAdditional = "";
function showPlaceAdAdditional(clickedPlaceAdAdditional) {
	var placeAdAdditional = document.getElementById('helpFlyOutFree');
	placeAdAdditional.style.display = "none";
	placeAdAdditional = document.getElementById('helpFlyOutDiscount');
	placeAdAdditional.style.display = "none";
	placeAdAdditional = document.getElementById('helpFlyOutProof');
	placeAdAdditional.style.display = "none";
	if (document.getElementById('helpFlyOutHome')) {
		placeAdAdditional = document.getElementById('helpFlyOutHome');
		placeAdAdditional.style.display = "none";
	}
	if (currentPlaceAdAdditional != clickedPlaceAdAdditional) {
		placeAdAdditional = document.getElementById(clickedPlaceAdAdditional);
		placeAdAdditional.style.display = "block";
		currentPlaceAdAdditional = clickedPlaceAdAdditional;
	} else {
		currentPlaceAdAdditional = "";
		if (document.getElementById('helpFlyOutHome')) {
			placeAdAdditional = document.getElementById('helpFlyOutHome');
			placeAdAdditional.style.display = "block";
		}
	}
	return false;
}
function closePlaceAdAdditional() {
	var placeAdAdditional = document.getElementById('helpFlyOutFree');
	placeAdAdditional.style.display = "none";
	placeAdAdditional = document.getElementById('helpFlyOutDiscount');
	placeAdAdditional.style.display = "none";
	placeAdAdditional = document.getElementById('helpFlyOutProof');
	placeAdAdditional.style.display = "none";
	currentPlaceAdAdditional = "";
	if (document.getElementById('helpFlyOutHome')) {
		placeAdAdditional = document.getElementById('helpFlyOutHome');
		placeAdAdditional.style.display = "block";
	}
	return false;
}

function showDisplayAd(id)
{
	if ($(id) && $(id).is(":hidden"))
		$(id).slideDown('fast');
	return false;
}
function hideDisplayAd(id)
{
	if ($(id))
		$(id).slideUp('normal');
	return false;
}
