	var Classes = {
		Property: {
			effect: null,
			stars: 0,
			typeHotel: 0,
			typeCondo: 0,
			typeCabin: 0,
			typeHome: 0,
			slopeside: 0,
			owned: 0,
			canyon: 0,
			meadow: 0,
			hideCount: 0,
			initiate: function() {
				this.hideFor = new Object();
				if (this.stars == '') this.stars = 0;
				else this.stars = parseInt(this.stars);
			},
			update: function(settings) {
				if (this.typeHotel == true && settings.typeHotel == true ||
					this.typeCabin == true && settings.typeCabin == true ||
					this.typeCondo == true && settings.typeCondo == true ||
					this.typeHome == true && settings.typeHome == true) this.hideManage('type', false);
				else this.hideManage('type', true);
				
				if (this.stars == 2 && settings.stars2 == true ||
					this.stars == 3 && settings.stars3 == true ||
					this.stars == 4 && settings.stars4 == true ||
					this.stars == 5 && settings.stars5 == true) this.hideManage('stars', false);
				else this.hideManage('stars', true);
				
				if (this.slopeside == false && settings.slopeside == true) this.hideManage('slopeside', true);
				else this.hideManage('slopeside', false);
				
				if (this.meadow == false && settings.meadow == true) this.hideManage('meadow',true);
				else this.hideManage('meadow',false);
				
				if (this.canyon == false && settings.canyon == true) this.hideManage('canyon',true);
				else this.hideManage('canyon',false);
			},
			hideManage: function(hideReason, becomeHidden) {
				if (becomeHidden) {
					if (!this.hideFor[hideReason]) {
						if (this.effect) this.effect.cancel();
						this.style.backgroundColor = "#E6E9F1";
						this.hideFor[hideReason] = true; 
						if (this.hideCount == 0) this.addClassName('hidden'); //this.effect = new Effect.BlindUp(this); 
						this.hideCount++;
					}
				}
				else {
					if (this.hideFor[hideReason] == true) {
						this.hideFor[hideReason] = null;
						this.hideCount--;
						if (this.hideCount == 0) {
							this.removeClassName('hidden');
							this.effect = new Effect.Highlight(this, {startcolor:'#ffffff'});
						}
					}
				}
			},
			onclick: function() {
				getURL(this.link);
			}
		},
		Pool: {
			list: null,
			settings: {stars2: 1, stars3: 1, stars4: 1, stars5: 1, typeHotel: 1, typeCondo: 1, typeCabin: 1, typeHome: 1, slopeside: false, canyon:false, meadow:false},
			initiate: function() {
				Pool = this;
				this.list = this.childElements();
			},
			update: function(updatedField, newValue) {
				this.settings[updatedField] = newValue;
				for(var c=0;c<this.list.length;c++) this.list[c].update(this.settings);
			}
		},
		VideoThumb: {
			path: null,
			title: null,
			caption: null,
			initiate: function() {
				this.title = this.getElementsByTagName('h1')[0].innerHTML;
				pElements = this.getElementsByTagName('div');
				this.caption = pElements[pElements.length-1].textContent || pElements[pElements.length-1].firstChild.innerHTML || pElements[pElements.length-1].innerHTML;
				//if (this.caption == '') this.caption = this.getElementsByTagName('p')[1].innerHTML;
			},
			onclick: function() { 
				var newVideo = this.path;
				this.setHtml();
				document.videoPlayer.SetVariable('playNewVideo', newVideo);
			},
			setHtml: function() {
				$('videoTitle').innerHTML = this.title;
				$('videoCaption').innerHTML = this.caption;
			}
		},
		DropDown: {
			onmouseover: function() {
				this.addClassName('hover');
			},
			onmouseout: function() {
				this.removeClassName('hover');
			}
		},
		
		DiningPool: {
			list:null,
			settings:{location_meadow:true, location_canyon:true, location_mountain:true, location_moonlight:true, sort_takeOut:false, sort_casual:false, sort_coffee:false},
			initiate:function(){
				DiningPool = this;
				this.list = this.childElements();
			},
			update:function(updatedField,newValue){
				this.settings[updatedField] = newValue;
				for(var d=0;d<this.list.length;d++) this.list[d].update(this.settings);
			}	
		},
		
		DiningLocation: {
			effect:null,
			dining_location:'',
			casual:0,
			takeOut:0,
			coffee:0,
			hideCount:0,
			
			initiate:function(){
				this.hideFor = new Object();
			},
			
			update:function(settings){
				if (this.dining_location == 'Meadow' && settings.location_meadow == true ||
					this.dining_location == 'Canyon' && settings.location_canyon == true ||
					this.dining_location == 'Mountain Village' && settings.location_mountain == true ||
					this.dining_location == 'Moonlight Basin' && settings.location_moonlight == true) this.hideManage('dining_location', false);
				else this.hideManage('dining_location', true);
				
				if (this.casual == false && settings.sort_casual == true) this.hideManage('casualDining', true);
				else this.hideManage('casualDining', false);
				
				if (this.takeOut == false && settings.sort_takeOut == true) this.hideManage('takeOut', true);
				else this.hideManage('takeOut',false);
				
				if (this.coffee == false && settings.sort_coffee == true) this.hideManage('coffee', true);
				else this.hideManage('coffee', false);
			},
			
			hideManage: function(hideReason, becomeHidden) {
				if (becomeHidden) {
					if (!this.hideFor[hideReason]) {
						if (this.effect) this.effect.cancel();
						this.style.backgroundColor = "#E6E9F1";
						this.hideFor[hideReason] = true; 
						if (this.hideCount == 0) ; this.effect = this.addClassName('hidden')
						this.hideCount++;
					}
				}
				else {
					if (this.hideFor[hideReason] == true) {
						this.hideFor[hideReason] = null;
						this.hideCount--;
						if (this.hideCount == 0) {
							this.removeClassName('hidden');
							this.effect = new Effect.Highlight(this, {startcolor:'#ffffff'});
						}
					}
				}
			}
		}
	}