BOM.SocialLogin = BOM.SocialLogin ? BOM.SocialLogin : {};

BOM.SocialLogin.readyLoader = new Array();

BOM.SocialLogin.launchReadyLoader = function() {
  for(var i=0; i < BOM.SocialLogin.readyLoader.length; i++) {
    BOM.SocialLogin.readyLoader[i]();
  }
};

BOM.SocialLogin.showLoginUI = function(conf,login_params) {
  gigya.services.socialize.showLoginUI(conf,login_params);
};

BOM.SocialLogin.showAddConnectionsUI = function(conf,login_params) {
  gigya.services.socialize.showAddConnectionsUI(conf,login_params);  
};

BOM.SocialLogin.showEditConnectionsUI = function(conf,edit_params) {
  gigya.services.socialize.showEditConnectionsUI(conf,edit_params);  
};

BOM.SocialLogin.addEventHandlers = function(conf, event_params) {
  gigya.services.socialize.addEventHandlers(conf, event_params);
};

BOM.SocialLogin.getUserInfo = function(conf, callbackFunction) {
  gigya.services.socialize.getUserInfo(conf,{
    callback: callbackFunction
  });
};

BOM.SocialLogin.login = function() {
  BOM.SocialLogin.getUserInfo({}, function(response) {
    var socialUID = response['user']['UID'];
    viewModalSocial("/membres/?action=modalSocialReconciliation&url=" + escape(BOM.SocialLogin.buildLoginUrl(socialUID)), true);
  });
};

BOM.SocialLogin.notifyLogin = function(conf,notify_params) {
  gigya.services.socialize.notifyLogin(conf,notify_params);
};

BOM.SocialLogin.buildLoginUrl = function(uid) {
  var paramSeparator = (BOM.SocialLogin.routes.socialLoginRelUrl.indexOf('?') == -1) ? '?' : '&';
  var url = BOM.SocialLogin.routes.socialLoginRelUrl + paramSeparator + 'gigyaUid='+encodeURIComponent(uid);
  
  if(BOM.SocialLogin.iframe) {
    url = url + '&iframe=1';
  }
  if(BOM.SocialLogin.socialProxy) {
    url = url + '&socialProxy='+BOM.SocialLogin.socialProxy;
  }
  
  return url;
};

BOM.SocialLogin.encodeLoginUrl = function(uid) {
  return BOM.Utils.encode(BOM.SocialLogin.buildLoginUrl(uid));
};

BOM.SocialLogin.onLoginHandler = function() {
  console.log('login');
  BOM.SocialLogin.login();
};

/** Utils **/

BOM.Utils.reloadPage = function() {
  top.location.href = window.location.href;
};

BOM.Utils.openPage  = function(url) {
  window.location.href = url;
};

BOM.Utils.closePage = function() {
  top.window.close();
};

BOM.Utils.simulateClick = function (id) {
  var evt = document.createEvent('MouseEvents');
  evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById(id);
  cb.dispatchEvent(evt);
};
