/* 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');

	$('#sortLabel').show();
	$('#sortBox').show();

	var temp = viewState;

	if (listOn)
	{
		list.style.display = 'block';
		viewState = 'list';
	}
	else
		list.style.display = 'none';
	if (tableOn)
	{
		table.style.display = 'block';
		viewState = 'table';
		$('#sortLabel').hide();
		$('#sortBox').hide();
		var options3 = {
			zoomWidth: 121,
			zoomHeight: 91,
			xOffset: 20,
			title: false,
			lens:false,
			maxWidth: 121,
			maxHeight: 91,
			forceScaleWidth: 1,
			forceScaleHeight: 1
		}
		$(".imageToZoom").jqzoom(options3);
		var options4 = {
			zoomWidth: 400,
			zoomHeight: 400,
			xOffset: 20,
			title: false,
			lens:false,
			maxWidth: 400,
			maxHeight: 400,
			forceScaleWidth: 1,
			forceScaleHeight: 1
		}
		$(".imageToZoom2").jqzoom(options4);

	}
	else
		table.style.display = 'none';
	if (galleryOn)
	{
		gallery.style.display = 'block';
		viewState = 'gallery';
	}
	else
		gallery.style.display = 'none';
	if (mapOn && map)
	{
		map.style.visibility = 'visible';
		map.style.position = 'relative';
		viewState = 'map';
	}
	else if (map) {
		map.style.visibility = 'hidden';
		map.style.position = 'absolute';
	}

	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)
{
	url = url + '&viewState=' + viewState + 
		((viewSortState)?'&sort=' + viewSortState:'') + 
		((viewFilterState)?'&filter=' + viewFilterState:'') + 
		((viewFattState)?'&fatt=' + viewFattState:'');
	window.location = url;
	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.disableScrollWheelZoom();
		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;
}

function postData(url,formId,elementId)
{
	$('#loader').show();
	$.post(url, $("#"+formId).serialize(),
	   function(data){
	     $("#"+elementId).html(data);
	     $('#loader').hide();
		});
	return false;
}

function getData(url,elementId)
{
	$.get(url, 
	  function(data) {
	    $('#'+elementId).html(data);
	  });
	return false;
}
function displayFeaturedAd(s) {
	if (s == 0 && featuredAdCurrent == 0) 
		featuredAdCurrent = featuredAdCount - 1;
	else if (s == 1 && featuredAdCurrent >= (featuredAdCount - 1))
		featuredAdCurrent = 0;
	else if (s == 1)
		featuredAdCurrent = featuredAdCurrent + 1;
	else
		featuredAdCurrent = featuredAdCurrent - 1;
	$(".featuredAdSection").hide()
	$("#featuredAdSectionId"+featuredAdCurrent).show()
}
