var fb_session;
var userInfo;
var pictures = new Array();
var picturesLoaded = false;
var infoLoaded = false;
var gpsLoaded = false;
var userOver18 = 0;
var locationName = '';
var countryCode = 'CZ';
var lat = 0;
var lon = 0;
var domainBase = document.domain;
var baseUrl = 'http://' + domainBase + '/';
var gpsScriptUrl = baseUrl + 'flash_exe/ct_getGps.php';
var icoUrl = baseUrl + 'flash_img/ct_icon90x90.png';
var pictureUrl = baseUrl + 'flash_exe/ct_getPicture.php';

	window.fbAsyncInit = function() {
        FB.init({appId: fb_app_id, status: true, cookie: true,
                 xfbml: true});
        FB.Event.subscribe('auth.sessionChange', function(response) {
			if (response.session) {
				fb_session = response.session;
				loadUserBirthday()
			} else {
				// The user has logged out, and the cookie has been cleared
			}
		});




      };
      (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
      }());
      
      
function onFBLoginClick() {
	FB.login(function(response) {
		if (response.session) {
			fb_session = response.session;
			loadUserBirthday();
		} else {
			// user cancelled login
		}
	}, {perms:'user_birthday,user_photos,user_photo_video_tags,friends_photos,friends_photo_video_tags,user_hometown,user_location'});
}

function loadUserBirthday() {
	loadPhotos();

	FB.api('/me', function(response) {
		if (response) {
			userInfo = response;
			
			try {
			 locationName = userInfo.location.name;
  		} catch (e) {
  		}
			
			if (locationName =='') {
        try {
			     locationName = userInfo.hometown.name;
  		  } catch (e) {
  		  }
      }
			
			loadGps();
		}
		if (response && response.birthday) {
			
			var preg;
			var preg2;
 			if (preg = response.birthday.match(/([0-9]+)\/([0-9]+)\/([0-9]+)/)) {
 				var month = parseInt(preg[1],10);
 				var day = parseInt(preg[2],10);
 				var year = parseInt(preg[3],10);
 				
				var bornDate = new Date();
				bornDate.setFullYear(year,month - 1,day);
				var over18 = new Date();
				over18.setFullYear(over18.getFullYear()-18);
				if (bornDate<over18) {
					isOver18();
				} else {
					notOver18();
				}
				return ;
 			} else if (preg2 = response.birthday.match(/([0-9]+)\/([0-9]+)/)) {
 				unknownBornYear(parseInt(preg2[1],10),parseInt(preg2[2],10));
 				return ;
 			}
 		}
 		unknownBornYear();
	});
}

function isOver18() {
	infoLoaded = true;
	userOver18 = 1;
	callFlash(1);
}

function notOver18() {
	infoLoaded = true;
	userOver18 = -1;
	callFlash(-1);
}

function unknownBornYear(month,day) {
	infoLoaded = true;
	userOver18 = 0;
	callFlash(0);
}


function callFlash(isOver18) {
	if (infoLoaded && picturesLoaded && gpsLoaded) {
		var flash = $('#main').get(0);
		var profilePicture = pictureUrl + '?uid='+fb_session.uid;
		
		
		flash.setFBUserInfo(userInfo.name,isOver18,userInfo.birthday,locationName,lat,lon,profilePicture,pictures[0],pictures[1],pictures[2],countryCode);
	}
}

function loadGps() {
	if (locationName == '') {
		gpsLoaded = true;
		callFlash(userOver18);
		return true;
	}
	try {
		jQuery.getJSON(gpsScriptUrl + '?town='+locationName,
			function(data) {
				lat = data.Placemark[0].Point.coordinates[1];
				lon = data.Placemark[0].Point.coordinates[0];
				countryCode = data.Placemark[0].AddressDetails.Country.CountryNameCode;
				gpsLoaded = true;
				callFlash(userOver18);
				
			}
		);
	} catch(e) {
		gpsLoaded = true;
		callFlash(userOver18);
		alert(e.toString());
	}
}

function loadPhotos() {
	FB.api('/me/photos?limit=3', function(response) {
		for (var i = 0; i< response.data.length; i++) {
			pictures.push(response.data[i].source);
		}
		picturesLoaded = true;
		callFlash(userOver18);
	});
}


function publishTrue() { 
    var publish = {
    method: 'stream.publish',
    message: '',
    attachment: {
      name: userInfo.name + ' zjistil pravdu ohledně velkého požáru továrny Fernet Stock.',
      description: '',
      href: baseUrl
    },
    action_links: [
      { text: 'Zjisti pravdu', href: baseUrl }
    ],
    media: [{ 
        'type': 'image', 
        'src': icoUrl, 
        'href': baseUrl
      }] 
  };
  
  FB.ui(publish);
}
