if (!window.site) window.site = {};

site.SearModuleHelper = function () {};
coss.extend(site.SearModuleHelper, coss.ModuleHelper);

site.SearModuleHelper.prototype.syncControlsToQuickSearchTypeSelect = function () {
	var k, i, el, searchType, searchProvince;
	var selectableSearchTypes = this.getParent().getModel().get('selectableSearchTypes');
	var selectableSearchProvinces = this.getParent().getModel().get('selectableSearchProvinces');
	var provinceSelectList = document.getElementById('provinceSelectList');
	var typeSelectList = document.getElementById('typeSelectList');
	
	$('#provinceSelectList').selectBox('destroy');
	
	//remove existing options
	for (k = provinceSelectList.options.length - 1; k >= 0; k--) {
		if (provinceSelectList.options[k].value != '') {
			provinceSelectList.removeChild(provinceSelectList.options[k]);
		}
	}
	
	//get selected search type
	searchType = null;
	for (k in selectableSearchTypes) {
		if (selectableSearchTypes[k].value == typeSelectList.value) {
			searchType = selectableSearchTypes[k];
			break;
		}
	}
	
	if (searchType) {
		for (k in selectableSearchProvinces) {
			searchProvince = selectableSearchProvinces[k];
			
			if (searchProvince[searchType.buildingTypeFlag] == true) {
				el = provinceSelectList.ownerDocument.createElement('option');
				provinceSelectList.appendChild(el);
				el.value = searchProvince.abbreviation;
				el.text = searchProvince.name;
			}
		}
	}
	
	$('#provinceSelectList').selectBox();
};

site.SearModuleHelper.prototype.hookUp = function () {
	this.getParent().getMainConduit().addDataBinder(function (aData) {
		if (coss.arrayGet(aData, 'doBindQuickSearchData') == true) {
			gModule.getModel().set('selectableSearchTypes', aData.selectableSearchTypes);
			gModule.getModel().set('selectableSearchProvinces', aData.selectableSearchProvinces);
			gModule.getHelper('site.search').syncControlsToQuickSearchTypeSelect();
		}
	});
	
	$( '#typeSelectList' ).change(function() {
		$( '#siteQuickSearchArea' ).attr( 'action', $(this).val());
		gModule.getHelper('site.search').syncControlsToQuickSearchTypeSelect();
	});

	$( '#searchMoveInDate' ).datepicker();

	$( "#priceRangeSlider" ).slider({
		range: true,
		min: 250,
		max: 4000,
        values: [ 275, 2000 ],
		slide: function( event, ui ) {
			$( "#priceRangeStartLabel" ).html( "$" + ui.values[ 0 ] );
			$( "#priceRangeStart" ).val( ui.values[ 0 ] );
			$( "#priceRangeEndLabel" ).html( "$" + ui.values[ 1 ] );
			$( "#priceRangeEnd" ).val( ui.values[ 1 ] );
		}
	});

	$( "#priceRangeStart" ).val( $( "#priceRangeSlider" ).slider( "values", 0 ) );
	$( "#priceRangeStartLabel" ).html( "$" + $( "#priceRangeSlider" ).slider( "values", 0 ) );

	$( "#priceRangeEnd" ).val( $( "#priceRangeSlider" ).slider( "values", 1 ) );
	$( "#priceRangeEndLabel" ).html( "$" + $( "#priceRangeSlider" ).slider( "values", 1 ) );
};
