// Required YUI modules: 
// Dom, Event, Connection Manager

rratings = {
	_data: {},
	
	setData: function(id, data) {
		this._data[id] = data;
	},
	getData: function(id) {
		return this._data[id];
	},
	
	rate_onSuccess: function(Y, o, id) {
		Y.one('#tx-rratings-'+id).removeClass('tx-rratings-loading');
		Y.one('#tx-rratings-'+id).addClass('tx-rratings-loaded');
		Y.one('#tx-rratings-'+id).set('innerHTML', o.responseText);
	},
	
	rate_onFailure: function(Y, o, id){
		Y.one('#tx-rratings-'+id).removeClass('tx-rratings-loading');
		Y.one('#tx-rratings-'+id).addClass('tx-rratings-error');
		Y.one('#tx-rratings-'+id).set('innerHTML', o.responseText);
	},
	
	rate: function (id, val, check) {
		YUI().use("io-base", "node", function(Y) {
			Y.one('#tx-rratings-'+id).addClass('tx-rratings-loading');
			Y.one('#tx-rratings-'+id).getElementsByTagName('a').set('onclick', null);
			
			Y.on('io:success', function(oId,o,args){ rratings.rate_onSuccess(Y,o,args[0]) }, Y, [id]);
			Y.on('io:failure', function(oId,o,args){ rratings.rate_onFailure(Y,o,args[0]) }, Y, [id]);
			Y.io('index.php?eID=tx_rratings_ajax', {
				method: "POST",
				data: 'id='+id+'&val='+val+'&check='+check+'&data='+rratings.getData(id)
			});
		});
	},
	
	update: function (id) {
		YUI().use("io-base", "node", function(Y) {
			Y.one('#tx-rratings-'+id).addClass('tx-rratings-loading');
			Y.one('#tx-rratings-'+id).getElementsByTagName('a').set('onclick', null);
			
			Y.on('io:success', function(oId,o,args){ rratings.rate_onSuccess(Y,o,args[0]) }, Y, [id]);
			Y.on('io:failure', function(oId,o,args){ rratings.rate_onFailure(Y,o,args[0]) }, Y, [id]);
			Y.io('index.php?eID=tx_rratings_ajax&update=1', {
				method: "POST",
				data: 'id='+id+'&data='+rratings.getData(id)
			});
		});
	},
	
	updateAll: function() {
		YUI().use("io-base", "node", function(Y) {
			// console.log(rratings._data);
			for (var id in rratings._data) {
				// console.log('calling update for id='+id);
				rratings.update(id);
			}
		});
	}
}


