//____________________________________________________________________
function AttendeeSet(xEvent,EVDBServer){
	
	var self				= this;
	
	var attendees_arr		= new Array();

	var broadcaster			= new Broadcaster(self);
	broadcaster.createEventType('load');
	
	xEvent.id.addEventListener('valueChange',handleIdChange);
	
	this.__defineGetter__('attendees',function(){return attendees_arr;});
	//----------------------------------------------------------------
	//----------------------------------------------------------------
	function handleAttendeeLoad(data_xdoc){
		
		// initialise item
		var people_xpr			= data_xdoc.firstChild.xPathQuery('going/user');
		var person_xml			= people_xpr.iterateNext();
		var newPerson			= null;
		attendees_arr			= new Array();
		while(person_xml){
			newPerson			= new Attendee(person_xml);
			attendees_arr.push(newPerson);
			person_xml			= people_xpr.iterateNext();	
		}
		broadcaster.triggerEvent('load');
	};
	//----------------------------------------------------------------
	function handleIdChange(){
		
		EVDBServer.event.loadAttendees(handleAttendeeLoad,xEvent.id.value);
	};
	//________________________________________________________________
};	//________________________________________________________________
//____________________________________________________________________
function Attendee(person_xml){
	
	var self					= this;
	
	exposeProperty('username');
	exposeProperty('bio');
	exposeProperty('first_name');
	exposeProperty('last_name');
	exposeProperty('link_url');
	exposeProperty('link_type');
	exposeProperty('link_description');
	
	//----------------------------------------------------------------
	function exposeProperty(property_str){
		
		var value_str			= person_xml.xPathQuery(property_str,'string');
		self[property_str]		= value_str;
	};
};	//________________________________________________________________
//____________________________________________________________________