function swapDealerResults(sValue, sState) {

	if ($("#distanceResults").length != 0) {
		$("#distanceResults").hide();
	}


	sState = typeof(sState) != 'undefined' ? sState : null;
	
	if(sValue != "" && sValue != "UnitedStates")
	{
		toggleUsRegions(false);
	}
	else
	{			
		toggleUsRegions(true);
	}

	if (sValue == "Canada") {
		var sDealerLocaleID = 'CAN';
	} else {
		var sDealerLocaleID = sValue;		
	}

	if (get_url_parameters("debug")=="1") {
		alert(sValue);
	}

	if (sValue == "Canada" || sValue == "CAN") {
//		var iOffset = $("#" + sValue).get(0).offsetTop;	
//		$("#regionResults").get(0).scrollTop = parseInt(iOffset, 10);
//		$("#regionResults").show();

		$(".dealer-listing").each(function() {
			 $(this).hide();
		});
		$(".country-header").each(function() {
			 $(this).hide();
		});
		$(".regionHeader").each(function() {
			 $(this).hide();
		});
		$(".regionHeader."+sValue).show();
		$(".dealer-listing."+sDealerLocaleID).each(function() {
			 $(this).show();
		});
		$(".country-header."+sDealerLocaleID).each(function() {
			 $(this).show();
		});
	} else if (sValue != "UnitedStates") {
//		var iOffset = $("#" + sValue).get(0).offsetTop;	
//		$("#regionResults").get(0).scrollTop = parseInt(iOffset, 10);
//		$("#regionResults").show();

		$(".dealer-listing").each(function() {
			 $(this).hide();
		});
		$(".country-header").each(function() {
			 $(this).hide();
		});
		$(".regionHeader").each(function() {
			 $(this).hide();
		});
		$(".regionHeader."+sValue).show();
		$(".dealer-listing."+sDealerLocaleID).each(function() {
			 $(this).show();
		});
		$(".country-header."+sDealerLocaleID).each(function() {
			 $(this).show();
		});
	} else if (sState!==null) {
		$(".regionHeader").each(function() {
			 $(this).show();
		});
		$(".default-header").each(function() {
			 $(this).hide();
		});
		$(".dealer-listing").each(function() {
			 $(this).hide();
		});
//alert("#state-header-"+sState);
		$("#state-header-"+sState).show();

		$(".dealer-listing."+sState).each(function() {
			 $(this).show();
		});
	} else {
		$(".regionHeader").each(function() {
			 $(this).show();
		});
		$(".country-header").each(function() {
			 $(this).show();
		});
		$(".default-header").each(function() {
			 $(this).show();
		});			
	}
	$("#dealerFlash a").removeClass("selected");
	$("#dealerFlash #map" + sValue + " a").addClass("selected");
}

function swapSECToursResults(sState) {
	
	sState = typeof(sState) != 'undefined' ? sState : null;
	
	$(".sec-tours-listing").each(function() {
		$(this).hide();
	});
	$(".sectours-state-header").each(function() {
		$(this).hide();
	});

	if(sState)
	{
		$(".sec-tours-listing."+sState).each(function() {
			$(this).show();
		});
		$(".sectours-state-header."+sState).each(function() {
			$(this).show();
		});
	} else {
		$(".sec-tours-listing").each(function() {
			$(this).hide();
		});
	}
	var tmp = $("#SECToursResults > .sec-tours-listing."+sState).length;
	if (tmp==0) {
		$("#noResultsNotice").show();
	} else {
		$("#noResultsNotice").hide();		
	}
}

function toggleUsRegions(bShow)
{
	if (bShow)
	{
		$("#overlayResults").show();

		$("#overlayResults .dealer-listing").each(function() {
			$(this).show()														   
		});

		$("#regionResults").hide();	
	}
	else
	{
		$("#overlayResults").hide();		
		$("#regionResults").show();
//		$("#regionResults .dealer-listing").show();
	}
}

function clearUSInputs()
{
	// set state and zip code to default
	$("input[@name='zip']").val("Enter ZIP code");
	$("select[@name='state']").val("");
}

$(document).ready(function() {

	var url = window.location.href;

	if (window.parent && window.parent.sDealerLocatorMode == "SEC") {
	
	} else {

		// zip var submitted, do a zip search
		if (url.indexOf('?zip=') != -1) {
			$("#overlayResults").hide();
			$("#regionResults").hide();
			$("#distanceResults").show();
		} else { // no zip submitted
			if (window.parent && window.parent.sDealerLocatorMode != "US")
			{
				if($("select[@name='state']").val() == "")
				{
					if ($("input[@name='zip']").val().length >= 14)
					{
						toggleUsRegions(false);			
					}
					else
					{
						toggleUsRegions(true);			
					}
				}
				else
				{
					toggleUsRegions(true);
				}
			}
			else
			{
				toggleUsRegions(true);
			}
		}
	}
	

	// link click-- do swap and change select value
	$("#dealerFlash a").click(function(e) {
		e.preventDefault();
		var sId = this.href.match(/#(\w+)/)[1];
//		alert(sId);
		swapDealerResults(sId);
		$(".dealer-listing").each(function() {
//			 $(this).hide();
		});
		$(".country-header").each(function() {
//			 $(this).hide();
		});

		$(".regionHeader").each(function() {
//			 $(this).hide();
		});
		

		$(".dealer-listing."+sId).each(function() {
//			 $(this).show();
		});
		$(".country-header."+sId).each(function() {
//			 $(this).show();
		});

		
//		$("option[@value='" + sId + "']").get(0).selected = true;
		clearUSInputs();
	});
	
// when dropdown changes, show new region and scroll to it
	$("#country").change (function(e) {
		e.preventDefault();
		var sValue = $(this).val();
		swapDealerResults(sValue);
		clearUSInputs();		
    });
	$("#state").change (function(e) {
		e.preventDefault();
		var sValue = $(this).val();
		swapDealerResults('UnitedStates', sValue);
		clearUSInputs();		
    });
	$("#sectours_state").change (function(e) {
		e.preventDefault();
		var sValue = $(this).val();
		swapSECToursResults(sValue);
    });

	// when dropdown changes, clear zip and region
	$("select[@name='state']").change(function(e) {
		e.preventDefault();
		// set region and zip code to default
		sDealerLocatorMode = 'US';
		$("input[@name='zip']").val("Enter ZIP code");
		$("select[@name='country']").val("");
    });
	// when dropdown changes, clear state and region
	$("input[@name='zip']").click(function(e) {
		e.preventDefault();
		// set region and zip code to default
		sDealerLocatorMode = 'US';
		$("input[@name='zip']").val("");
		$("select[@name='state']").val("");
		$("select[@name='country']").val("");
    });
});




function get_url_parameters( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
