// The Browser API key obtained from the Google API Console.
// Replace with your own Browser API key, or your own key.
var developerKey = "AIzaSyAPLYTBonECAHzJqWNPAC2fcy3L92KZsFU";

// The Client ID obtained from the Google API Console. Replace with your own Client ID.
var clientId =
  "933205075738-j2rl0vkstvcfhq2rmtrb5f382gtkdc51.apps.googleusercontent.com";

// Replace with your own project number from console.developers.google.com.
// See "Project number" under "IAM & Admin" > "Settings"
var appId = "typoonline-1066";

// Scope to use to access user's Drive items.
var scope = ["https://www.googleapis.com/auth/drive.file"];

var pickerApiLoaded = false;
var oauthToken;

// Use the Google API Loader script to load the google.picker script.
function loadPicker() {
  gapi.load("auth", { callback: onAuthApiLoad });
  gapi.load("picker", { callback: onPickerApiLoad });
}

function onAuthApiLoad() {
  window.gapi.auth.authorize(
    {
      client_id: clientId,
      scope: scope,
      immediate: false,
    },
    handleAuthResult
  );
}

function onPickerApiLoad() {
  pickerApiLoaded = true;
}

function handleAuthResult(authResult) {
  if (authResult && !authResult.error) {
    oauthToken = authResult.access_token;
    createPicker();
  }
}

// Create and render a Picker object for searching images.
function createPicker() {
  if (pickerApiLoaded && oauthToken) {
    var view = new google.picker.View(google.picker.ViewId.DOCS);
    view.setMimeTypes(
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword,application/rtf,text/plain"
    );
    var picker = new google.picker.PickerBuilder()
      .enableFeature(google.picker.Feature.NAV_HIDDEN)
      .setAppId(appId)
      .setOAuthToken(oauthToken)
      .addView(view)
      .addView(new google.picker.DocsUploadView())
      .setDeveloperKey(developerKey)
      .setCallback(pickerCallback)
      .build();
    picker.setVisible(true);
  }
}

function $id(id) {
  return document.getElementById(id);
}

// A simple callback implementation.
function pickerCallback(data) {
  if (data.action == google.picker.Action.PICKED) {
    var docUrl = data.docs[0].url;
    var docName = data.docs[0].name;
    var downloadUrl;

    console.log("data callback", data);
    var fakeName = docName;
    $id("loader").style.display = "block";
    // create progress bar
    var o = $id("progressnum");
    o.innerHTML = "100";
    $id("loader").style.display = "block";
    if (fakeName.length > 40) fakeName = fakeName.substr(0, 40) + "...";
    $id("filedetail").textContent = "upload " + fakeName;
    if ($id("filename")) $id("filename").textContent = fakeName;
    var cx = docName.split(".");
    ext = cx[cx.length - 1];
    $.ajax({
      type: "POST",
      url: homeUrl + "upload/do_upload?file_name=" + docName + "&key="+ document.getElementById("key").value,
      data: {
        type: "google_drive",
        fileid: data.docs[0].id,
        a3g4d21h4k: readCookie("k55b1n5f8"),
      },
      cache: false,
      success: function (res) {
        var key = document.getElementById("key").value;
        var ns = res;
        console.log("response text is", ns);
        tstart = Date.now();
        ga("send", "event", "File", "gdrive file finish", docName);
        if (ns == "Please Login!") {
          ga("send", "event", "File", "login reminder", docName);
          $("#popup-login").modal("show");
        } else {
          window.location.href =
            homeUrl +
            "kbbi-online/file?key=" +
            key +
            "&ext=" +
            ext +
            "&ns=" +
            ns +
            "&ds=" +
            tstart +
            "#docpage";
        }
      },
    });
  }
}
