var CMSFacebookConnected = false;
var CMSTwitterConnected = false;

cms_base_url = '/';

function cms_init(base_url) {

  cms_base_url = base_url;

}

function cms_encode_ajax_call(call) {

  var ajaxBaseUrl = document.location.href;
  var ajaxTemp = ajaxBaseUrl.lastIndexOf("/") + 1;
  ajaxBaseUrl = ajaxBaseUrl.substring(0, ajaxTemp);
  var requestStr = ajaxBaseUrl + "?__ajaxMethod=" + call;
  
  return requestStr;
  
}

function cms_login(login, password, remember, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_login");
  
  var a = $.get( requestStr
               , { login: login
                 , password: password
                 , remember: remember
                 }
               , function (data, textStatus) {
                   if (callback) {
                     if (typeof(callback)=='string') {
                       eval(callback + '(' + data + ')');
                     } else {
                       callback.call(document, data, textStatus);
                     }
                   } else {
                     cms_page_refresh();
                   }
                 }
               );


}

function cms_do_ajax_login(login, password, remember, callback) {

  cms_login(login, password, remember, callback);

}

function cms_logout(callback) {

  if (!CMSFacebookConnected && !CMSTwitterConnected) {
   
    var requestStr = cms_encode_ajax_call("cms_ajax_logout");
    
    var a = $.get( requestStr
                 , { 
                   }
                 , function(data, textStatus) {
                     if (callback) {
                       if (typeof(callback)=='string') {
                         eval(callback + '(' + data + ')');
                       } else {
                         callback.call(document, data, textStatus);
                       }
                     } else {
                       cms_page_refresh();
                     }
                   }
                 );
                 
  }

}


function cms_do_ajax_logout(callback) {

  cms_logout(callback);
  
}

function cms_page_refresh() {

  window.location.reload();

}

function cms_refresh() {

  window.location.reload();

}

function cms_goto_homepage() {

  var ajaxBaseUrl = document.location.href;
  var ajaxTemp = ajaxBaseUrl.lastIndexOf("/") + 1;
  ajaxBaseUrl = ajaxBaseUrl.substring(0, ajaxTemp);

  document.location = cms_base_url;

}

function cms_goto(page) {

  var ajaxBaseUrl = document.location.href;
  var ajaxTemp = ajaxBaseUrl.lastIndexOf("/") + 1;
  ajaxBaseUrl = ajaxBaseUrl.substring(0, ajaxTemp);

  document.location = cms_base_url + page;

}

function cms_remind_password(email, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_remind_password");
  
  var a = $.get( requestStr
               , { email: email
                 }
               , function(data, textStatus) {
                   if (callback) {
                     if (typeof(callback)=='string') {
                       eval(callback + '(' + data + ')');
                     } else {
                       callback.call(document, data, textStatus);
                     }
                   } else {
                     cms_goto_homepage();
                   }
                 }
               );

}

function cms_do_ajax_remind_password(email, callback) {

  cms_remind_password(email, callback);

}

function cms_do_check_login(login, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_check_login");
  
  var a = $.get( requestStr
               , { login: login
                 }
               , function(data, textStatus) {
                   if (callback)
                     eval(callback + '(' + data + ')');
                   else {
                     if (data > 0)
                       alert('Login already exists');
                     else
                       alert('Login OK');
                   }   
                 }
               );

}

function cms_follow(userId, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_follow");
  
  var a = $.get( requestStr
               , { userId: userId
                 }
               , function(data, textStatus) {
                   if (callback) {
                     callback.call(document, data, textStatus);
                   }
                 }
               );

}

function cms_unfollow(userId, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_unfollow");
  
  var a = $.get( requestStr
               , { userId: userId
                 }
               , function(data, textStatus) {
                   if (callback) {
                     callback.call(document, data, textStatus);
                   }
                 }
               );

}

function cms_delete_notification(notificationId, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_delete_notification");
  
  var a = $.get( requestStr
               , { notificationId: notificationId
                 }
               , function(data, textStatus) {
                   if (callback) {
                     callback.call(document, data, textStatus);
                   }
                 }
               );

}

function cms_notification_mark_read(notificationId, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_notification_mark_read");
  
  var a = $.get( requestStr
               , { notificationId: notificationId
                 }
               , function(data, textStatus) {
                   if (callback) {
                     callback.call(document, data, textStatus);
                   }
                 }
               );

}

function cms_notification_mark_unread(notificationId, callback) {

  var requestStr = cms_encode_ajax_call("cms_ajax_notification_mark_unread");
  
  var a = $.get( requestStr
               , { notificationId: notificationId
                 }
               , function(data, textStatus) {
                   if (callback) {
                     callback.call(document, data, textStatus);
                   }
                 }
               );

}

