function onWall(param, link) {
	if(param) {
		f.fb_wall_title = 'Gdzie jest Pan PayPass?';
		f.fb_wall_body 	= 'Znalazłem Pana PayPassa i biegnę po zakupy o wartości 500zł! Zobacz, gdzie jest Pan PayPass i wygraj darmowe zakupy!';
		f.fb_wall_link 	= f.fb_game_url + '/#/' + link;
		f.fb_wall_img 	= f.fb_game_url + '/themes/paypass/images/PayPassMan-icopinezka_114x114.png';
	}
	else {
		f.fb_wall_title = 'Gdzie jest Pan PayPass?';
		f.fb_wall_body  = 'Szukam Pana PayPassa na mapie żeby wygrać zakupy o wartości 500zł!';
		f.fb_wall_link  = f.fb_game_url + '/#/' + link;
		f.fb_wall_img   = f.fb_game_url + '/themes/paypass/images/PayPassMan-icopinezka_114x114.png';
	}
	f.getPerms(f.postOnMyWall);	

}

function facebook() {

	var self = this;
	this.fb_app_id 	 = 198283273531256;
	this.fb_game_url = 'http://www.paypass.pl';
	this.fb_perms 	= 'publish_stream';
	
	this.fb_wall_title = null;
	this.fb_wall_body = null;
	this.fb_wall_link = null;
	this.fb_wall_img = null;

	
	
	function _construct(){
		self.init();	
	}
	
	// sprawdza czy user ma uprawnienia do tej aplikacji, jezeli nie to wywala prompt o nadanie uprawnien
	// a nastepnie wykonuje funkcje z callback_function
	this.getPerms = function(callback_function) {
		//console.log('getPerms:'+self.fb_perms);
		var hasPerms = true;
		FB.api('/me', function(response) {		
			// jezeli brak uprawnien
			if(response.error) self.login(callback_function);
			else {
				//console.log(response.id);
				var query = FB.Data.query('select '+self.fb_perms+' from permissions where uid={0}',response.id);
				query.wait(function(rows) {
					jQuery.each(rows[0], function(name, value) {
						if(value==0) hasPerms = false;
					});
					if(!hasPerms) self.login(callback_function);
					else self.islogged(callback_function);		   
				});
			
			}
		});
	}	
	

	this.init = function() {
		//console.log('init');
		FB.init({appId  : self.fb_app_id, status : true, cookie : true, xfbml  : true});
	}
	
	this.logout = function(callback_function) {
		FB.logout(function(response) {
			//console.log('wylogowuje');
			self.login(callback_function);		
		});
	}
	
	this.islogged = function(callback_function){
		//console.log('check is logged');
		FB.getLoginStatus(function(response) {
		  if (response.session) {				
				//console.log('zalogowany');
				callback_function();
		  } else {
				//console.log('nie zalogowany');
				self.login(callback_function);
		  }
		});
	}
	
	this.login = function(callback_function) {
		//console.log('proba logowania');
		FB.login(function(response) {
			if (response.session) {
				if (response.perms) {
					//console.log('logowanie pomyslne');
					callback_function();
				}
			}
		}, {perms:self.fb_perms});
	}

	this.postOnMyWall = function() {
		//console.log('wysylam na walla');
		FB.api('/me/feed', 'post', { message: self.fb_wall_body, picture: self.fb_wall_img, link:self.fb_wall_link, name: self.fb_wall_title}, function(response){
			//console.log(response);
		});
	}	
	_construct();
}
