var global_after_complete = '';

function SetLocationNEW()
{
	selected_country	= $('#country').val();
	selected_state		= ($('#state').length == 0 || $('#divStatesList:visible').length == 0)
							? '' : $('#state').val();
	selected_city		= $('#city').length == 0 ? '' : $('#city').val();
	selected_district	= $('#district').length == 0 ? '' : $('#district').val();

	if(parseInt(selected_district) != 0 && objJSON.district != selected_district)
		objJSON.district = selected_district;

	if(parseInt(selected_city) != 0 && objJSON.city != selected_city)
	{
		objJSON.city = selected_city;
		objJSON.district = '';
		$('#district').attr('disabled', true);
	}

	var inputCity = CreateInputCity();
	inputCity.attr('value', 'Loading...');
	$('#list-cities').html(inputCity);
	$('#city_text').attr('disabled', true);

	if(selected_state != '' && objJSON.state != selected_state)
	{
		objJSON.state = selected_state;
		objJSON.city = '';
		objJSON.district = '';
//		$('#city').attr('disabled', true);
	}

	if(objJSON.country != selected_country)
	{
		objJSON.country = selected_country;
		objJSON.state = '';
		objJSON.city = '';
		objJSON.district = '';
		objJSON.popular = 1;
//		$('#city').attr('disabled', true);
		$('#state').attr('disabled', true);
	}

	if(objJSON.district == -2)
	{
		var inputDistrict = $('<input type="text" />');
		inputDistrict.attr('id', 'district_text');
		inputDistrict.attr('name', 'district_text');
		inputDistrict.addClass('text');
		inputDistrict.attr('value', 'Loading...');
		$('#list-districts').html(inputDistrict);
		$('#district_text').attr('disabled', true);
	}

	$.get("/member/setlocationgetcitiesnew/?json=" + $.toJSON(objJSON), function(data){
		json = $.evalJSON(data);

		has_states = json.hasstates != null && eval(json.hasstates) == 1;
		if(has_states)
		{
			FillSelect('state', objJSON.stateClass, json.states, json.state, SetLocationNEW, $('#list-states'));
			$("#state").removeAttr('disabled');
			$('#divStatesList').show();
		}
		else
		{
			$('#list-states').html("");
			$('#divStatesList').hide();
			objJSON.state = '';
		}

		if(json.cities)
		{
			FillCities(json.cities, json.city);
			$("#city").removeAttr('disabled');
		}
		else if(!has_states || escape($('#state').val()) > 0)
			SetLocationNEW();

		if(json.districts)
		{
			FillSelect('district', objJSON.stateClass, json.districts, json.district, function(){
				var district = $('#district').length == 0 ? '' : $('#district').val();
				if(district == -2)
					SetLocationNEW();
			}, $('#list-districts'));

			$('#divAreasList').show();
		}
		else
			$('#divAreasList').hide();
	});
}

function CreateInputCity()
{
	var inputCity = $('<input type="text" />');
	inputCity.attr('id', 'city_text');
	inputCity.attr('name', 'city_text');
	inputCity.addClass('text');
	return inputCity;
}

function FillSelect(name, nclass, arr, selected, changefn, html_to)
{
	var obj_select = $('<select />');
	obj_select.attr('id', name);
	obj_select.attr('name', name);
	if(nclass != null)
		obj_select.addClass(nclass);

	for (var i = 0; i < arr.length; i++)
	{
		var optionState = $('<option />');
		if(eval(arr[i].id) == eval(selected))
			optionState.attr('selected', 'selected');
		optionState.attr('value', arr[i].id);
		optionState.html(arr[i].name);
		obj_select.append(optionState);
	}

	obj_select.change(changefn);
	html_to.html(obj_select);
	obj_select.focus();
}

function FillCities(arr, city)
{
	if(arr.length > 0)
	{
		obj_select = FillSelect('city', objJSON.cityClass, arr, city, OnChangeCity, $('#list-cities'));

		if(eval(city) == -1)
		{
			createOtherCity($('#list-cities'), objJSON.city_text);
			$('#city').hide();
			$('#divAreasList').hide();
		}
	}
	else
	{
		var inputCity = CreateInputCity();

		if(objJSON.city_text != null)
			inputCity.attr('value', objJSON.city_text);
		if(objJSON.cityClass != null)
			inputCity.addClass(objJSON.cityClass);
		if(global_after_complete.trim() != '')
			inputCity.onblur = function(){ eval(global_after_complete); }

		$('#list-cities').html(inputCity);
		inputCity.focus();
	}
}

function OnChangeCity()
{
	if($('#city').val() == '-1')
	{
		$('#city').hide().val(0);
		if($('#city_text').length == 0 && $('#select_label').length == 0)
			createOtherCity($('#list-cities'), null);
		else
		{
			$('#select_label').show();
			$('#city_text').show();
		}
	}
	else if($('#city').val() == '-2')
	{
//		$('#city').attr('disabled', true);
		objJSON.popular = 0;
		SetLocationNEW();
	}
	else if($('#city').val() == '257')
	{
		objJSON.city = '257';
		SetLocationNEW();
	}
	else
		$('#divAreasList').hide();

	if (global_after_complete.trim() != '')
		eval(global_after_complete);
}

function createOtherCity(appendTo, cityValue)
{
	var inputCity = CreateInputCity();

	if (cityValue != null)
		inputCity.attr('value', cityValue);
	if (global_after_complete.trim() != '')
		inputCity.blur(function(){ eval(global_after_complete); });
	appendTo.append(inputCity);
	var inputText = $('<a href="#" />');
	inputText.attr('id', 'select_label');
	inputText.click(function(){
		$('#select_label').hide();
		$('#city_text').hide();
		$('#city').show().val(0);
		return false;
	});
	inputText.addClass('likehref');
	inputText.html('or select from list');
	appendTo.append(inputText);
	inputCity.focus();
}

function BuildJSON()
{
	objJSON = $.evalJSON($('#locationJSON').html().trim());
}

function SetLocation()
{
	window.location.href = "/member/setlocationdo?" + $('#form_location').serialize();
}
