
function ImageLevelSelector( on, off, levels, level_0, dimensions ) {
	this.on_image = on;
	this.off_image = off;
	this.levels = levels;
	this.active_level;
	this.selected_level;
	this.level_0 = level_0;
	this.dimensions = dimensions;
	this.images = null;
	
	ImageLevelSelector.prototype.makeSelector = function() {
		this.images = new Array();
		this.active_level = level_0;
		this.selected_level = level_0;
		var div = document.createElement('div');
		
		for ( var i = 0; i < this.levels; ++i ) {
			var image = document.createElement('img');
			image.style.width = this.dimensions.width;
			image.style.height = this.dimensions.height;
			
			image.setAttribute('src',(i<this.active_level?this.on_image:this.off_image));
			//image.src = (i<this.active_level?this.on_image:this.off_image);
			image.onmouseover = this.makeMouseOverFn(i+1);
			image.onmouseout = this.makeMouseOutFn(i+1);
			image.onclick = this.makeClickFn(i+1);
			
			//alert(image.getAttribute('src'));
			
			this.images.push(image);
			div.appendChild(image);
		}
		
		return div;
	};
	
	ImageLevelSelector.prototype.makeMouseOverFn = function( i ) {
		var n_this = this;
		return function() {
			n_this.active_level = i;
			n_this.setImages();
		};
	};
	
	ImageLevelSelector.prototype.makeMouseOutFn = function( i ) {
		var n_this = this;
		return function() {
			if ( i == n_this.active_level ) {
				n_this.active_level = n_this.selected_level;
				n_this.setImages();
			}
		};
	};
	
	ImageLevelSelector.prototype.makeClickFn = function( i ) {
		var n_this = this;
		return function() {
			n_this.selected_level = i;
		};
	};
	
	ImageLevelSelector.prototype.getSelectedLevel = function() {
		return this.selected_level;
	};
	
	ImageLevelSelector.prototype.setImages = function() {
		for ( var i = 0; i < this.images.length; ++i ) {
			this.images[i].setAttribute('src',(i<this.active_level?this.on_image:this.off_image));
		}
	};
}

function FlagSelector() {
	this.flags;
	
	FlagSelector.prototype.makeSelector = function() {
		this.flags = new Array();
		var options = {'p':'Poor pavement',
						't':'Heavy traffic',
						'c':'Cell use limited',
						'w':'High winds',
						'd':'Desolate',
						'n':'Narrow roads'};
		var table = document.createElement('table');
		var tbody = document.createElement('tbody');
		
		var tr0 = document.createElement('tr');
		var tr1 = document.createElement('tr');
		
		for ( var option in options ) {
			var image = document.createElement('img');
			image.setAttribute('src','/inc/images/flag.'+option+'.gif');
			image.setAttribute('title',options[option]);
			var td0 = document.createElement('td');
			td0.appendChild(image);
			tr0.appendChild(td0);
			
			var checkbox = document.createElement('input');
			checkbox.setAttribute('name',option);
			checkbox.setAttribute('type','checkbox');
			var td1 = document.createElement('td');
			td1.appendChild(checkbox);
			tr1.appendChild(td1);
			this.flags.push(checkbox);
		}
		
		tbody.appendChild(tr0);
		tbody.appendChild(tr1);
		table.appendChild(tbody);
		
		return table;
	};
	
	FlagSelector.prototype.getFlags = function() {
		var flagstr = '';
		
		for ( var i = 0; i < this.flags.length; ++i ) {
			var flag = this.flags[i];
			if ( flag.checked )
				flagstr += flag.getAttribute('name');
		}
		
		return flagstr;
	}
}

