var DOMAIN           = '//www.frangelico.com.au';
//var DOMAIN           = '//frangelico.staging.komodocms.com';
var FACEBOOK_APP_ID  = '217668524966620'; // production
//var FACEBOOK_APP_ID  = '117296095046751'; // staging
var FACEBOOK_PAGE_ID = '176581655757080'; // http://www.facebook.com/Frangelico.Australia

var closeLikeButton = function() {
   kQuery('#fbLikeButton, #_logging_in, #_button').hide();
};

var handleFBLogin = function() {
   check_user_has_liked = userHasLiked();
   check_user_has_liked.wait(function(response){
      if (response) {
         registerUserLike();
         closeLikeButton();
      } else {
         showLikeButton();
      }
   });
}

var registerUserLike = function() {
   kQuery('.checkFBLike')
      .attr('checked',  'checked')
      .attr('disabled', 'disabled')
      .attr('title', "You've already liked us!");
}

var showLikeButton = function() {
   kQuery('#_logging_in').hide();
   kQuery('#fbLikeButton, #_button').show();
};

var userHasLiked = function() {
   var query = FB.Data.query('SELECT page_id FROM page_fan WHERE uid = me()');
   
   return FB.Data.waitOn([query], function() {
      var user_has_liked = false;
      FB.Array.forEach(query.value, function(row) {
         if (row.page_id == FACEBOOK_PAGE_ID) {
            user_has_liked = true;
            return;
         }
      });
      return user_has_liked;
   });
};

window.fbAsyncInit = function() {
   FB.init({
      appId      : FACEBOOK_APP_ID,
      channelURL : DOMAIN+"/system/inc/custom/fb/channel.html",
      status     : true,
      cookie     : true,
      oauth      : true,
      xfbml      : true
   });
   // IE hack to correct FB bug
   FB.UIServer.setLoadedNode = function (a, b) { FB.UIServer._loadedNodes[a.id] = b; };
   FB.UIServer.setActiveNode = function(a, b) { FB.UIServer._active[a.id]=b; };
   
   FB.Event.subscribe('edge.create', function(response) {
      registerUserLike();
      closeLikeButton();
   });
   
   FB.getLoginStatus(function(response) {
      if (response.authResponse) {
         check_user_has_liked = userHasLiked();
         check_user_has_liked.wait(function(response){
            if (response) registerUserLike();
         });
      }
   });
};

function doCheckBoxNow(){
   registerUserLike();
   var newwindow = window.open('http://www.facebook.com/frangelico.australia','frangelico','height=495,width=1024');   
}

kQuery(function(){
   // Facebook login does not work properly in IE7/8 with Flash 10.1 - so skip the process in these browsers
   // http://bugs.developers.facebook.net/show_bug.cgi?id=12112

   
   kQuery('.checkFBLike').click(function(e){  
	  if (kQuery.browser.msie && parseFloat(kQuery.browser.version) < 9) {
		 try{
			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;
			var minorVersion = playerVersion.minor;
			var releaseVersion = playerVersion.release;
			//return;
		 }catch(err){
		 }

		 if('undefined'==playerVersion || majorVersion > 9){
			// broken FB connect - just let them go by!
			if(kQuery(this).attr('checked')==true){
			   window.open('http://www.facebook.com/frangelico.australia','frangelico','height=495,width=1024');
			}
			return true;
		 }
	  }else{
	      e.preventDefault();
      
	      FB.getLoginStatus(function(response) {
	         if (!response.authResponse) {
	            FB.login(function(response) {
	               if (response.authResponse) {
	                  FB.api('/me', function(response) {
	                     handleFBLogin();
	                  });
	               } else {
	                  closeLikeButton();
	               }
	            }, {scope: 'user_likes'});
	         } else {
	            handleFBLogin();
	         }
	      });
	  }
   });
});   

(function(d){
   var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   d.getElementsByTagName('head')[0].appendChild(js);
}(document));
