// JavaScript Document
	function RefreshCategory(params)
	{
		var selectObjects = params.selectObjects;
		var data = params.data;
		var selectValues = params.selectValues;
		var defaultValues = params.defaultValues;
		var startIndex = params.startIndex == null ? 0 : params.startIndex;
		var l;
		var totalSelect = selectObjects.length;
		if (defaultValues == null)
		{
			defaultValues = Array(totalSelect);
			for (l=0;l<totalSelect;l++)
				defaultValues[l] = {label:'请选择', value:''};
		}
		for(l=0;l<totalSelect;l++)
			RefreshSingleSelect(selectObjects[l], data, selectValues.slice(0, l + startIndex + 1), defaultValues[l + startIndex]);
	}
	
	function RefreshSingleSelect(object, data, values, defaultValue)
	{
		object.length = 0;
		object.options[0] = new Option(defaultValue.label, defaultValue.value);
		var isArray = false;
		var l;
		var total = values.length - 1;
		var selectedData = data;
		for(l=0;l<total;l++)
		{
			selectedData = selectedData[values[l]];
			if (selectedData == null)
				return;
		}
		var isArray = Object.prototype.toString.apply(selectedData) === '[object Array]';
		for (var value in selectedData)
		{
			var label, value;
			var v;
			if (isArray)
				v = selectedData[value];
			else
				v = value;
			optionData = v.split("_");
			object.options[object.length] = new Option(optionData[0], optionData[1]);
			if (v == values[values.length - 1])
				object.options.selectedIndex = object.length - 1;
		}
	}
	
	function GetSelectTreeByData(data, selectedData)
	{
		var values = null;
		var value, childValue;
		var isArray = Object.prototype.toString.apply(data) === '[object Array]';
		for(var v in data)
		{
			
			if (isArray)
				value = ParseData(data[v]);
			else
				value = ParseData(v);
			
			if (value.data === selectedData)
			{
				values = [value.key];
				break;
			}
			else
			{
				if (!isArray)
				{
					childValue = GetSelectTreeByData(data[v], selectedData);
					if (childValue != null)
					{
						childValue.splice(0, 0, value.key);
						values = childValue;
						break;
					}
				}
			}
		}
		return values;
	}
	
	function ParseData(s)
	{
		var v = s.split("_");
		return {key:s, label:v[0], data:v[1]};
	}
