//-------------------------------
// Class
//-------------------------------

function RecentActivityDataModel() {
	
	var _self = this;
	
	

	//-------------------------------
	// Constants
	//-------------------------------
	
	_self.DATA_COMPLETE = "data_complete";
	
	//-------------------------------
	// Properties
	//-------------------------------
	
	var _data;
	var _counter = 0;
	var _path;
	
	//-------------------------------
	// Constructor
	//-------------------------------
	
	$j(function() {
		//google.load("feeds", "1");
	});
	
	//-------------------------------
	// Public Methods
	//-------------------------------
	
/*
	_self.loadData = function(path) {
		_path = path;
	
		$j.ajax({ url: path.url, dataType: 'xml', success: function(data) {
			$j(_self).trigger(_self.DATA_COMPLETE, [data, path]);
		}});
	}
*/
	

	_self.loadData = function(path) {
		_path = path;
		
		
		var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + path.url + '"') + '&format=jsonp&_maxage=300';
		$j.ajax({ url: yql, dataType: 'jsonp', jsonp: 'callback', jsonpCallback: 'onRecentActivityDataComplete'});

	}

	
	_self.reset = function() {
		_counter = 0;
	}
	
	//-------------------------------
	// Private Methods
	//-------------------------------
	
	function parseXML(xml) {
		if( window.ActiveXObject && window.GetObject ) {
            var dom = new ActiveXObject( 'Microsoft.XMLDOM' );
            dom.loadXML( xml );
            return dom;
        } if( window.DOMParser )
            return new DOMParser().parseFromString( xml, 'text/xml' ); 

	}
	
	function resolveNameSpace( data ) {

		  data.toString().replace( /(xmlns(:\w*)?=\".*?\")/gim, "").replace(/\w+:/gim,"");
		  
		  return data;
	}



	//-------------------------------
	// Listeners
	//-------------------------------
	
	window.onRecentActivityDataComplete = function(data){
		_counter++;
		
		data = resolveNameSpace((data.results[0]) ? data.results[0] : data.results);

		$j(_self).trigger(_self.DATA_COMPLETE, [parseXML(data), _path, _counter]);
	};
}


