window.addEvent('domready', function() {
	var selectElements = document.getElementsByTagName('select'), streetEl, houseEl;
	for(var index = 0; index < selectElements.length; index++) {
		switch (selectElements[index].name) {
			case 'street_availability':
				streetEl = selectElements[index];
				break;
			case 'house_availability':
				houseEl = selectElements[index];
				break;
		}
	}
	
	var inputElements = document.getElementsByTagName('input'), socPackageEl, basePackageEl, codePackage1El, codePackage2El, internetTariff1El, internetTariff2El, internetTariff3El, internetTariff4El;
	for(var n = 0; n < inputElements.length; n++) {
		if (inputElements[n].type === 'checkbox') {
			switch (inputElements[n].value) {
				case 'soc_package':
					socPackageEl = inputElements[n];
					break;
				case 'base_package':
					basePackageEl = inputElements[n];
					break;
				case 'code_package1':
					codePackage1El = inputElements[n];
					break;
				case 'code_package2':
					codePackage2El = inputElements[n];
					break;
				case 'tariff_week':
					internetTariff1El = inputElements[n];
					break;
				case 'tariff_standart':
					internetTariff2El = inputElements[n];
					break;
				case 'tariff_business':
					internetTariff3El = inputElements[n];
					break;
				case 'tariff_ultra':
					internetTariff4El = inputElements[n];
					break;
			}
		}
	}
	
	if (streetEl && houseEl) {
		function ajaxLoadHouses(streetId) {
			houseCombobox.disable(true);
			houseCombobox.setComboText('Загрузка...');
			var houseRequestAjax = new Ajax(
				'availability.php?mode=street&streetId=' + streetId,
				{method: 'get'}).request();
				
			houseRequestAjax.addEvent('onComplete', function() {
				houseCombobox.clearAll();
				houseCombobox.setComboText('');
				
				var isSetDefaultValue = false;
				eval('var houses = ' + houseRequestAjax.response.text);
				for(var j = 0; j < houses.length; j++) {
					houseCombobox.addOption(houses[j].id, houses[j].house);
					
					if (document.getElementById('house-select')) {
						if (houses[j].house === document.getElementById('house-select').innerHTML) {
							houseCombobox.setComboValue(houses[j].id);
							houseCombobox.setComboText(houses[j].house);
							
							isSetDefaultValue = true;
						}
					}
				}
				
				if (!isSetDefaultValue) {
					houseCombobox.setComboText('Выберите дом');
				}
				
				houseCombobox.disable(false);
			});
		}
		
		var streetCombobox = dhtmlXComboFromSelect(streetEl);
		//streetCombobox.enableFilteringMode(true)
		streetCombobox.readonly(true, true);
		streetCombobox.clearAll();
		
		var houseCombobox = dhtmlXComboFromSelect(houseEl);
		//houseCombobox.enableFilteringMode(true);
		houseCombobox.readonly(true, true)
		houseCombobox.clearAll();
		houseCombobox.disable(true);
		
		streetCombobox.setComboText('Загрузка...');
		streetCombobox.disable(true);
		var streetsRequestAjax = new Ajax(
			'availability.php?mode=list-streets', {
				method: 'get'
			}
		).request();
		
		streetsRequestAjax.addEvent('onComplete', function() {
			eval('var streets = ' + streetsRequestAjax.response.text);
			var isSetDefaultValue = false;
			for(var i = 0; i < streets.length; i++) {
				streetCombobox.addOption(streets[i].streetId, streets[i].title);
				
				if (document.getElementById('street-select')) {
					if (streets[i].title === document.getElementById('street-select').innerHTML) {
						streetCombobox.setComboValue(streets[i].streetId);
						streetCombobox.setComboText(streets[i].title);
						ajaxLoadHouses(streets[i].streetId);
						
						isSetDefaultValue = true;
					}
				}
			}
			
			if (!isSetDefaultValue) {
				streetCombobox.setComboText('Выберите улицу');
			}
			
			streetCombobox.disable(false);
		});
		
		streetCombobox.attachEvent("onChange", function() {
			ajaxLoadHouses(streetCombobox.getSelectedValue())
			
			if (!document.getElementById('street-select')) {
				streetCombobox.setComboValue(streetCombobox.getComboText());
			}
		});
		
		houseCombobox.attachEvent("onChange", function() {
			if (!document.getElementById('house-select')) {
				houseRequestAjax = new Ajax(
					'availability.php?mode=house&id=' + houseCombobox.getSelectedValue(),
					{method: 'get'}).request();
				
				houseCombobox.setComboValue(houseCombobox.getComboText());
				houseRequestAjax.addEvent('onComplete', function() {
					var values = houseRequestAjax.response.text.split(";");
					if (socPackageEl && basePackageEl && codePackage1El && codePackage2El) {
						socPackageEl.disabled = (!parseInt(values[0]));
						basePackageEl.disabled = (!parseInt(values[1]));
						codePackage1El.disabled = (!parseInt(values[2]));
						codePackage2El.disabled = (!parseInt(values[3]));
					} else {
						if (internetTariff1El && internetTariff2El && internetTariff3El && internetTariff4El) {
							internetTariff1El.disabled = (!parseInt(values[4]));
							internetTariff2El.disabled = (!parseInt(values[4]));
							internetTariff3El.disabled = (!parseInt(values[4]));
							internetTariff4El.disabled = (!parseInt(values[4]));
						}
					}
				})
			}
		})
	}
});

