var MyBudujemy = {
	requestUrl: "http://www.mybudujemy.pl/",
	user: null,
	favourities: null,
	_callbacks: {},

	_getUid: function() {
		return new Date().getTime().toString().substr(0, 10) + Math.abs(Math.round(Math.random()*10000000000)).toString().substr(0,6);
	},

	fetchLoginStatus: function(cb) {
		this._getData('userstate', function(data, status) {
			if (status) MyBudujemy.user = data;
		}, cb);
	},

	fetchFavProjects: function(cb) {
		this._getData('favs', function(data, status) {
			if (status) MyBudujemy.favourities = data;
		}, cb);
	},

	_getData: function(type, cbData, cbUser, extData) {
		callid = this._getUid();
		extData = extData || '';
		this._callbacks[callid] = {user: cbUser || function() {}, data: cbData || function() {}};
		s = document.createElement("SCRIPT");
		s.type = "text/javascript";
		s.src = this.requestUrl + "/js/external/getdata.js?type=" + type + "&callid=" + callid + "&ext=" + escape((extData));
		document.getElementsByTagName("body")[0].appendChild(s);

	},

	_processData: function(data, callid, status) {
		this._callbacks[callid].data(data, status);
		this._callbacks[callid].user(data, status);
		delete(this._callbacks[callid]);
	},

	addProjectToFav: function(catalogId, cb) {
		this._getData('addfav', function() {
			if (status) MyBudujemy.favourities.push(catalogId);
		}, cb, '{"catid": "' + catalogId + '"}');
	},

	deleteProjectFromFav: function(catalogId, cb) {
		this._getData('delfav', function() {
			if (status) MyBudujemy.favourities.push(catalogId);
		}, cb, '{"catid": "' + catalogId + '"}');
	}
};
