	var swzSelectOptions = Class.create({
	
		initialize:function(options){
			
			//default values
			if(options.method==null){options.method='post'};
			if(options.preserve==null){options.preserve=false};
		
			//setup!
			this.setup(options);
			
		},
		
		setup:function(options){
			
			//create reference for this object
			obj = this;
			
			//check if there's an image for loading!
			if(options.loading != ''){
				image = '<span id=\"' + options.id + '-Loading\" style=\"display:none;\">' + options.loading + '</span>';
				$(options.id).insert({after:image});
			}
			//load the options
			obj.loadOptions(options);
		},
		
		
		loadOptions:function(options){
						
			//create reference for this object
			obj = this;
			
			//disable the select
			$(options.id).disable();

			//create the ajax request!
			new Ajax.Request(options.url,{
			
				method		:options.method,
				parameters	:options.parameters,
				
				onCreate:function(){					
					//show the loading image!
					if(options.loading != ''){
						$(options.id + '-Loading').show();
					}
				},
				
				onSuccess:function(transport){
					//set the data!
					options.data = transport.responseXML;
			
					//process the options
					obj.processOptions(options);
				},
				
				onFailure:function(transport){
					//hide the loading image!
					if(options.loading != ''){
						$(options.id + '-Loading').hide();
					}
				}
			});
		},
		
		processOptions:function(options){
		
			//create reference for this object
			obj = this;
			
			//are we preserving
			if(options.preserve == false){
				$(options.id).options.length=0;
			}			
			
			//create the xml object
			obj.optionXML = '';
			obj.optionXML = new swzXML(options.data);
			optionCount = $(options.id).options.length;
			
			
			//create the options!
			for(i=0;i<obj.optionXML.getTagLength('option');i++){
				thisLabel		= obj.optionXML.getTagValue('label',i);
				thisValue 		= obj.optionXML.getTagValue('value',i);
				thisSelected 	= obj.optionXML.getTagValue('selected',i);
				
				$(options.id).options[i+optionCount] = new Option(thisLabel,thisValue);
			}

			//hide the loading image!
			if(options.loading != ''){
				$(options.id + '-Loading').hide();
			}
			
			//enable the select
			$(options.id).enable();
		}
		
	});