var IndustryClassSelect = function()
{
	this.initialize.apply(this, arguments);
};

IndustryClassSelect.prototype =
{
	initialize: function(data, industryid, classid, subclassid, forSearch, yid)
	{
		this.ySelectBox	= new SelectBox('y_box_top', 'yid');
                this.y_data  =   [{"id":1,"name":"赠品","classes":[]},{"id":2,"name":"折扣","classes":[]},{"id":3,"name":"返券","classes":[]},{"id":4,"name":"其他","classes":[]}];

		this.industrySelectBox	= new SelectBox('industrySelectBoxTop', 'industryid');
		this.classSelectBox		= new SelectBox('classSelectBoxTop', 'classid');
		this.subclassSelectBox	= new SelectBox('subclassSelectBoxTop', 'subclassid');
		
		this.data		= data;
		this.industryid	= industryid;
		this.classid	= classid;
		this.subclassid	= subclassid;
                this.yid = yid;
		
		this.forSearch			= forSearch;
		this.defaultSearchText	= '不限';
		this.industrySearchText	= '行业';
		this.classSearchText	= '分类';
		this.subclassSearchText	= '子分类';
                this.ySearchText = '类型';
		
		var self = this;
		
		this.industrySelectBox.addEventListener(this.industrySelectBox.textInput, 'change', function()
		{
			self.showClass();
		});
		
		this.classSelectBox.addEventListener(this.classSelectBox.textInput, 'change', function()
		{
			self.showSubclass();
		});
		
		this.showIndustry();
                this.showY();
	},

showY: function() {
           var items = [];

           if (this.forSearch)
               items.push({text: this.ySearchText || this.defaultSearchText, value: 0});

           for (var i = 0, l = this.y_data.length; i < l; i++)
           {
               var row = this.y_data[i];
               items.push({text: row.name, value: row.id, selected: row.id == this.yid});
           }

           this.ySelectBox.setItems(items, true);
       },
	
	showIndustry: function()
	{
		var items = [];
		
		if (this.forSearch)
			items.push({text: this.industrySearchText || this.defaultSearchText, value: 0});
		
		for (var i = 0, l = this.data.length; i < l; i++)
		{
			var row = this.data[i];
			items.push({text: row.name, value: row.id, selected: row.id == this.industryid});
		}
		
		this.industrySelectBox.setItems(items, true);
	},
	
	showClass: function()
	{
		var items = [];
		var industrySelectedIndex = this.industrySelectBox.selectedIndex;
		
		if (this.forSearch)
		{
			industrySelectedIndex--;
			items.push({text: this.classSearchText || this.defaultSearchText, value: 0});
		}
		
		if (industrySelectedIndex > -1)
		{
			var data = this.data[industrySelectedIndex].classes;
			
			for (var i = 0, l = data.length; i < l; i++)
			{
				var row = data[i];
				items.push({text: row.name, value: row.id, selected: row.id == this.classid});
			}
		}
		
		this.classSelectBox.setItems(items, true);
	},
	
	showSubclass: function()
	{
		var items = [];
		var industrySelectedIndex	= this.industrySelectBox.selectedIndex;
		var classSelectedIndex		= this.classSelectBox.selectedIndex;
		
		if (this.forSearch)
		{
			industrySelectedIndex--;
			classSelectedIndex--;
			items.push({text: this.subclassSearchText || this.defaultSearchText, value: 0});
		}
		
		if (classSelectedIndex > -1)
		{
			var data = this.data[industrySelectedIndex].classes[classSelectedIndex].subclasses;;
			
			for (var i = 0, l = data.length; i < l; i++)
			{
				var row = data[i];
				items.push({text: row.name, value: row.id, selected: row.id == this.subclassid});
			}
		}
		
		this.subclassSelectBox.setItems(items, true);
	}
};

var CityDistrictSelect = function()
{
	this.initialize.apply(this, arguments);
};

CityDistrictSelect.prototype =
{
	initialize: function(citySelectBoxId, districtSelectBoxId, data, cityid, districtid, forSearch, citySearchText, districtSearchText)
	{
		this.citySelectBox		= new SelectBox(citySelectBoxId, 'cityid');
		this.districtSelectBox	= new SelectBox(districtSelectBoxId, 'districtid');
		
		this.data		= data;
		this.cityid		= cityid;
		this.districtid	= districtid;
		
		this.forSearch			= forSearch;
		this.defaultSearchText	= '不限';
		this.citySearchText		= citySearchText;
		this.districtSearchText	= districtSearchText;
		
		var self = this;
		
		this.citySelectBox.addEventListener(this.citySelectBox.textInput, 'change', function()
		{
			self.showDistrict();
		});
		
		this.showCity();
	},
	
	showCity: function()
	{
		var items = [];
		
		if (this.forSearch)
			items.push({text: this.citySearchText || this.defaultSearchText, value: 0});
		
		for (var i = 0, l = this.data.length; i < l; i++)
		{
			var row = this.data[i];
			items.push({text: row.name, value: row.id, selected: row.id == this.cityid});
		}
		
		this.citySelectBox.setItems(items, true);
	},
	
	showDistrict: function()
	{
		var items = [];
		var citySelectedIndex = this.citySelectBox.selectedIndex;
		
		if (this.forSearch)
		{
			citySelectedIndex--;
			items.push({text: this.districtSearchText || this.defaultSearchText, value: 0});
		}
		
		if (citySelectedIndex > -1)
		{
			var data = this.data[citySelectedIndex].districts;
			
			for (var i = 0, l = data.length; i < l; i++)
			{
				var row= data[i];
				items.push({text: row.name, value: row.id, selected: row.id == this.districtid});
			}
		}
		
		this.districtSelectBox.setItems(items, true);
	}
};

/************************************ old select functions ************************************/

var showIndustry = function(forSearch, searchText)
{
	var html = forSearch ? '<option value="0">' + (searchText || '不限') + '</option>' : '';
	
	for (var i = 0, l = industryAndClass.length; i < l; i++)
	{
		var industry = industryAndClass[i];
		html += '<option value="' + industry.id + '"' + (industry.id == industryid ? ' selected' : '') + '>' + industry.name + '</option>';
	}
	
	showIndustry.searchText = searchText;
	document.getElementById('industrySelectBox').innerHTML = '<select class="select" id="industrySelect" name="industryid" onchange="showIndustryClasses(this.selectedIndex, ' + forSearch + ', showIndustryClasses.searchText); showSubclasses(document.getElementById(\'classSelect\').selectedIndex, ' + forSearch + ', showSubclasses.searchText);">' + html + '</select>';
};

var showIndustryClasses = function(industrySelectedIndex, forSearch, searchText)
{
	if (industrySelectedIndex == -1)
		return;
	
	if (forSearch)
		industrySelectedIndex--;
	
	if (industrySelectedIndex == -1)
		var html = '<option value="0">' + (searchText || '不限') + '</option>'	;
	else
	{
		var selectedIndustryClasses = industryAndClass[industrySelectedIndex].classes;
		
		var html = forSearch ? '<option value="0">' + (searchText || '不限') + '</option>' : '';
		
		if (selectedIndustryClasses)
		{
			for (var i = 0, l = selectedIndustryClasses.length; i < l; i++)
			{
				var industryClass = selectedIndustryClasses[i];
				html += '<option value="' + industryClass.id + '"' + (industryClass.id == classid ? ' selected' : '') + '>' + industryClass.name + '</option>';
			}
		}
	}
	
	showIndustryClasses.searchText = searchText;
	document.getElementById('classSelectBox').innerHTML = '<select class="select" id="classSelect" name="classid" onchange="showSubclasses(this.selectedIndex, ' + forSearch + ', showSubclasses.searchText);">' + html + '</select>';
};

var showSubclasses = function(classSelectedIndex, forSearch, searchText)
{
	if (classSelectedIndex == -1)
		return;
	
	var industrySelectedIndex = document.getElementById('industrySelect').selectedIndex;
	
	if (forSearch)
	{
		industrySelectedIndex--;
		classSelectedIndex--;
	}
	
	if (classSelectedIndex == -1)
		var html = '<option value="0">' + (searchText || '不限') + '</option>'	;
	else
	{
		var selectedSubclasses = industryAndClass[industrySelectedIndex].classes[classSelectedIndex].subclasses;
		
		var html = forSearch ? '<option value="0">' + (searchText || '不限') + '</option>' : '';
		
		if (selectedSubclasses)
		{
			for (var i = 0, l = selectedSubclasses.length; i < l; i++)
			{
				var subclass = selectedSubclasses[i];
				html += '<option value="' + subclass.id + '"' + (subclass.id == subclassid ? ' selected' : '') + '>' + subclass.name + '</option>';
			}
		}
	}
	
	showSubclasses.searchText = searchText;
	document.getElementById('subclassSelectBox').innerHTML = '<select class="select" id="subclassSelect" name="subclassid">' + html + '</select>';
};

var showCity = function(forSearch, searchText)
{
	var html = forSearch ? '<option value="0">' + (searchText || '不限') + '</option>' : '';
	
	for (var i = 0, l = cityAndDistrict.length; i < l; i++)
	{
		var city = cityAndDistrict[i];
		html += '<option value="' + city.id + '"' + (city.id == cityid ? ' selected' : '') + '>' + city.name + '</option>';
	}
	
	showCity.searchText = searchText;
	document.getElementById('citySelectBox').innerHTML = '<select class="select" id="citySelect" name="cityid" onchange="showCityDistricts(this.selectedIndex, ' + forSearch + ', showCityDistricts.searchText);">' + html + '</select>';
};

var showCityDistricts = function(citySelectedIndex, forSearch, searchText)
{
	if (citySelectedIndex == -1)
		return;
	
	if (forSearch)
		citySelectedIndex--;
	
	if (citySelectedIndex == -1)
		var html = '<option value="0">' + (searchText || '不限') + '</option>'	;
	else
	{
		var selectedCityDistricts = cityAndDistrict[citySelectedIndex].districts;
		
		var html = forSearch ? '<option value="0">' + (searchText || '不限') + '</option>' : '';
		
		for (var i = 0, l = selectedCityDistricts.length; i < l; i++)
		{
			var cityDistrict = selectedCityDistricts[i];
			html += '<option value="' + cityDistrict.id + '"' + (cityDistrict.id == districtid ? ' selected' : '') + '>' + cityDistrict.name + '</option>';
		}
	}
	
	showCityDistricts.searchText = searchText;
	document.getElementById('districtSelectBox').innerHTML = '<select class="select" id="districtSelect" name="districtid">' + html + '</select>';
};
