﻿var searchSetup = {

	configholder: {},

	updatePropertyCount: function() {

		//alert("updaing property count");
		var config = searchSetup.configholder;
		var randomnumber = Math.floor(Math.random() * 11);

		//ok here we need to get our selected items to pass through our search
		var typeID = config.ddlType.options[config.ddlType.options.selectedIndex].value;
		var saleLetID = config.ddlSaleLet.options[config.ddlSaleLet.options.selectedIndex].value;
		var locationID = config.ddlLocation.options[config.ddlLocation.options.selectedIndex].value;
		var sizeID = config.ddlSize.options[config.ddlSize.options.selectedIndex].value;
		var useID = config.ddlUse.options[config.ddlUse.options.selectedIndex].value;

		var url = config.ServiceURL;
		var qs = "?typeid=" + typeID + "&saleletid=" + saleLetID + "&locationid=" + locationID + "&sizeid=" + sizeID + "&useid=" + useID;

		var request;
		var reponse;

		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			request = new ActiveXObject("Msxml2.XMLHTTP");
			if (!request) {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}

		try {

			request.open("GET", url + qs, false);
			request.send();

			reponse = request.responseText;


			if (reponse != "0") {
				config.divPropertyCount.innerHTML = "Results: " + reponse;
			} else {
				config.divPropertyCount.innerHTML = "No results";
			}

			if (typeID == 0) {
				config.divPropertyCount.innerHTML = "";
			}

		} catch (err) {
			//alert("error: " + err);
		}





	},

	updateFields: function() {

		var config = searchSetup.configholder;
		var id = config.ddlType.options[config.ddlType.options.selectedIndex].value;

		config.ddlLocation.options.length = 1;
		config.ddlSize.options.length = 1;
		config.ddlUse.options.length = 1;

		//searchSetup.updatePropertyCount();

		for (var i = 0; i < config.Options.types.length; i++) {

			if (config.Options.types[i].id == id) {
				var type = config.Options.types[i];

				if (type.locations) {
					for (var ii = 0; ii < type.locations.length; ii++) {
						//config.ddlLocation.add(new Option(type.locations[ii].title, config.Options.types[i].locations[ii].id), null);
						config.ddlLocation.options[config.ddlLocation.length] = new Option(type.locations[ii].title, config.Options.types[i].locations[ii].id);

						if (config.Options.types[i].locations[ii].id == config.LocationIDSelected) {
							config.ddlLocation.options[ii + 1].selected = true;
						}
					}
				}

				if (type.sizes) {
					for (var ii = 0; ii < type.sizes.length; ii++) {
						//config.ddlSize.add(new Option(type.sizes[ii].title, config.Options.types[i].sizes[ii].id), null);
						config.ddlSize.options[config.ddlSize.length] = new Option(type.sizes[ii].title, config.Options.types[i].sizes[ii].id);

						if (config.Options.types[i].sizes[ii].id == config.SizeIDSelected) {
							config.ddlSize.options[ii + 1].selected = true;
						}
					}
				}

				if (type.uses) {
					for (var ii = 0; ii < type.uses.length; ii++) {
						//config.ddlUse.add(new Option(type.uses[ii].title, config.Options.types[i].uses[ii].id), null);
						config.ddlUse.options[config.ddlUse.length] = new Option(type.uses[ii].title, config.Options.types[i].uses[ii].id);

						if (config.Options.types[i].uses[ii].id == config.UseIDSelected) {
							config.ddlUse.options[ii + 1].selected = true;
						}
					}
				}
			}
		}

	},

	setupList: function(config) {

		//setup the type first
		for (var i = 0; i < config.Options.types.length; i++) {
			if (config.Options.types[i].title != undefined) {

				config.ddlType.options[config.ddlType.length] = new Option(config.Options.types[i].title, config.Options.types[i].id);

				if (config.Options.types[i].id == config.typeIDSelected) {
					config.ddlType.options[i + 1].selected = true;
					this.updateFields();
				}
			}
		}

		for (var i = 0; i < config.ddlSaleLet.length; i++) {

			if (config.ddlSaleLet.options[i].value == config.SaleLetIDSelected) {
				config.ddlSaleLet.options[i].selected = true;
				this.updateFields();
			}

		}

		searchSetup.updatePropertyCount();

		/*bind onclick here*/	

		/*config.ddlType.setAttribute("onChange", "searchSetup.updateFields(); searchSetup.updatePropertyCount(); ");

		config.ddlSaleLet.setAttribute("onChange", "searchSetup.updatePropertyCount();");
		config.ddlLocation.setAttribute("onChange", "searchSetup.updatePropertyCount();");
		config.ddlSize.setAttribute("onChange", "searchSetup.updatePropertyCount();");
		config.ddlUse.setAttribute("onChange", "searchSetup.updatePropertyCount();");*/

	},

	setup: function(config) {

		config.ddlType = document.getElementById(config.typeID);
		config.ddlSaleLet = document.getElementById(config.SaleLetID);
		config.ddlLocation = document.getElementById(config.LocationID);
		config.ddlSize = document.getElementById(config.SizeID);
		config.ddlUse = document.getElementById(config.UseID);
		config.divPropertyCount = document.getElementById(config.PropertyCount);


		searchSetup.configholder = config;
		searchSetup.setupList(config);

	}

};



