var ddRegion = null;
var ddCity = null;
var ddDistrict = null;

function setupStoreLocatorCombos(){
	
	var comboboxClasses = {
			comboboxContainerClass: "comboboxContainer",
			comboboxValueContentContainerClass: "comboboxValueContainer",
			comboboxValueContentClass: "comboboxValueContent",
			comboboxDropDownClass: "comboboxDropDownContainer",
			comboboxDropDownButtonClass: "comboboxDropDownButton",
			comboboxDropDownItemClass: "comboboxItem",
			comboboxDropDownItemHoverClass: "comboboxItemHover",
			comboboxDropDownGroupItemHeaderClass: "comboboxGroupItemHeader",
			comboboxDropDownGroupItemContainerClass: "comboboxGroupItemContainer"
		};
		var comboboxSettings = {
			animationType: "none",
			width: 210
		};
	
	//turn list into drop down lists
	dropdown("regions", $("#labelSelectRegion").html()); 
	dropdown("cities", $("#labelSelectCity").html());
	dropdown("districts", $("#labelSelectAllDistricts").html());
	
	$("#call-to-action").css("visibility", "hidden");
	
	/*regions*/
	ddRegion = $('#dd-regions').combobox(comboboxClasses, comboboxSettings);
	ddRegion.combobox.onChange = function() {
		$('#dealer-card').fadeOut("fast");
		//populate city dropdown
		$('#dd-cities').html("");
		ddCity.combobox.update();
		$('#breadcrumbRegion').html($('#dd-regions option:selected').text());
		$('#breadcrumbCountry').attr("class", "")
		$('#breadcrumbRegion').attr("class", "last");
		$('#breadcrumbRegion').show();
		$('#breadcrumbCity').hide();
		$('#breadcrumbDistrict').hide();
		$.get("/"+lang+"/includes/store-locator/ajax-city.jsp?lang="+lang+"&region="+ddRegion.val(), function(data){
			$('#dd-cities').append('<option value="Choose">'+$("#labelSelectCity").html()+'</option>');
			$('#dd-cities').append(data)
			ddCity.combobox.update();
			ddCity.combobox.toggle();
		});
		
		return false;
	}
	
	/*cities*/
	ddCity = $('#dd-cities').combobox(comboboxClasses, comboboxSettings);
	ddCity.combobox.onChange = function() {
		$('#dealer-card').fadeOut("fast");
		//populate or hide district dropdown
		$('#dd-districts').html("");
		ddDistrict.combobox.update();
		$('#breadcrumbCity').html($('#dd-cities option:selected').text());
		$('#breadcrumbRegion').attr("class", "");
		$('#breadcrumbCity').attr("class", "last");
		$('#breadcrumbCity').show();
		$.get("/"+lang+"/includes/store-locator/ajax-dealers.jsp?lang="+lang+"&city="+ddCity.val(), function(data){
			$('#dealer-card').remove();
			$('#location').append(data);
			$('#dealers-info').jScrollPane();
			document.jsAPI.trackOfficialDealersEvent("dealer-shown",ddCity.val());
			$('#dealers-info div div p a').each(function(){
				$(this).click(function(){
					document.jsAPI.trackOfficialDealersEvent("affiliate-clickthrough");
				});
			});
		});
		$.get("/"+lang+"/includes/store-locator/ajax-district.jsp?lang="+lang+"&city="+ddCity.val(), function(data){
			if (data.indexOf('option') > -1){
				$('#districts-header p').css("visibility","visible");
				$('#districts').css("visibility","visible");
				ddDistrict.combobox.update();
				$('#dd-districts').append('<option value="Choose">'+$("#labelSelectAllDistricts").html()+'</option>');
				$('#dd-districts').append(data)
				ddDistrict.combobox.update();
			} else {
				$('#districts-header p').css("visibility", "hidden");
				$('#districts').css("visibility", "hidden");
			}
		});
		document.jsAPI.trackOfficialDealersEvent("city-changed",ddCity.val());
		document.jsAPI.addHistory('/'+lang+'/store-locator/'+countryName+'/'+$('#dd-regions option:selected').attr('id')+'/'+$('#dd-cities option:selected').attr('id')+'/'+'dealers/');
	}
	
	/*districts*/
	ddDistrict = $('#dd-districts').combobox(comboboxClasses, comboboxSettings);
	ddDistrict.combobox.onChange = function() {
		if ($('#dd-districts').val() != "Choose") {
			$('#breadcrumbDistrict').html($('#dd-districts option:selected').text());
			$('#breadcrumbDistrict').css("visibility","visible");
			$('#breadcrumbCity').attr("class", "");
		} else { 
			$('#breadcrumbCity').attr("class", "last");
			$('#breadcrumbDistrict').css("visibility","hidden"); 
		}
		$('#breadcrumbDistrict').show()
		$.get("/"+lang+"/includes/store-locator/ajax-dealers.jsp?lang="+lang+"&region="+ddRegion.val()+"&city="+ddCity.val()+"&district="+ddDistrict.val(), function(data){
			$('#dealer-card').remove();
			$('#location').append(data);
			$('#dealers-info').jScrollPane();
			$('#dealers-info div div p a').each(function(){
				$(this).click(function(){
					document.jsAPI.trackOfficialDealersEvent("affiliate-clickthrough");
				});
			});
		});
		document.jsAPI.trackOfficialDealersEvent("district-changed",ddCity.val()=="Choose"?"0":ddCity.val());
		document.jsAPI.addHistory('/'+lang+'/store-locator/'+countryName+'/'+$('#dd-regions option:selected').attr('id')+'/'+$('#dd-cities option:selected').attr('id')+'/'+$('#dd-districts option:selected').attr('id')+'/'+'dealers/');
		
	}
	
	//initial load
	if ($('#dd-cities option:selected').val() != "Choose"){
		$.get("/"+lang+"/includes/store-locator/ajax-dealers.jsp?lang="+lang+"&country="+countryId+"&region="+ddRegion.val()+"&city="+ddCity.val(), function(data){
			document.jsAPI.addHistory('/'+lang+'/store-locator/'+countryName+'/'+regionName+'/'+cityName+'/'+(districtName == "" ? "" : districtName + '/')+'dealers/');
			$('#dealer-card').remove();
			$('#location').append(data);
			$('#dealers-info').jScrollPane();
			document.jsAPI.trackOfficialDealersEvent("dealer-shown",ddCity.val());
			$('#dealers-info div div p a').each(function(){
				$(this).click(function(){
					document.jsAPI.trackOfficialDealersEvent("dealer-clickthrough");
				});
			});
		});
	} else if ($('#dd-regions option:selected').val() != "Choose" && $('#dd-cities option:selected').val() == "Choose" && $('#dd-cities option').length < 2){
		//if preselected region and city has no entries, try to populate it again
		$('#dd-cities').html("");
		$.get("/"+lang+"/includes/store-locator/ajax-city.jsp?lang="+lang+"&region="+ddRegion.val(), function(data){
						$('#dd-cities').append('<option value="Choose">'+$("#labelSelectCity").html()+'</option>');
						$('#dd-cities').append(data);
						ddCity.combobox.update();
						ddCity.combobox.toggle();
					});
	}
	if ($('#dd-regions option:selected').val() == "Choose"){
			ddRegion.combobox.toggle();
	} else if ($('#dd-cities option:selected').val() == "Choose"){
			ddCity.combobox.toggle();
	}
}

function processDeepLinks() {
	var url = window.location.href;
	if (url.indexOf('#') > -1) {
		var hash = url.substring(url.indexOf('#')+1);
		window.location = hash;
	}
	
	
}

function removeCombos(){
	//remove combos in flash because they get rendered above the movie
	$('#regions').remove();
	$('#cities').remove();
	$('#districts').remove();	
}

function removeResults(){
	if ($('#dealers-info').length > 0){
		$('#dealers-info').remove();	
	}
}

function setupOmnitureClicks(){
	if ($('#bottom-links').length > 0){
		$('#bottom-links li a').each(function(){
			$(this).click(function(){document.jsAPI.trackOfficialDealersClick(s.pageName,this.id);});
		});
	}
}


//register
onloadHTMLHandlers[onloadHTMLHandlers.length] = 'processDeepLinks();setupStoreLocatorCombos();setupOmnitureClicks();';
onloadFlashHandlers[onloadFlashHandlers.length] = 'removeCombos();removeResults();';