﻿var JournalController = {};

JournalController.journalRowPriorCss;
JournalController.journalRowSelected;
JournalController.selectedJournalPageId = null;

JournalController.getTripJournalPages = function (tripId, selectedJournalId) {
  if (tripId) {
    if (tripId == 0)
      tripId = TripController.selectedTripId;

    AjaxCommands.submitGet("/Journal/Index/" + tripId, "journalAjaxContainer",
		function (journalId) {
		  if (journalId  && parseInt(journalId) == journalId) {
		    JournalController.getJournalPageDetails(journalId);
		  }
		});
  }
};

JournalController.deselectPriorJournalPage = function () {
  MapState.context = MapUseContext.none;
  if (JournalController.journalRowSelected) {
    JournalController.journalRowSelected.removeClass(JournalController.journalRowSelected.attr("class"));
    JournalController.journalRowSelected.addClass(JournalController.journalRowPriorCss);
  }
};

JournalController.getJournalPageRow = function (journalPageId) {
  return $(".widgetGrid tr:contains('JournalPageId=" + journalPageId + ";')");
};

JournalController.setSelectedJournalPageRow = function (journalPageId, oRow) {
  JournalController.deselectPriorJournalPage();
  MapState.context = MapUseContext.journal;

  JournalController.journalRowPriorCss = oRow.attr("class");
  JournalController.journalRowSelected = oRow;
  JournalController.selectedJournalPageId = journalPageId;
};

JournalController.getJournalPageDetails = function (event) {
  var row = $(event.target).closest("tr");
  var journalPageId = row.data("row-id");
  JournalController.setSelectedJournalPageRow(journalPageId, row);
  AjaxCommands.submitGet("/Journal/Details/" + journalPageId, "ModalContent", Modal.show);
};

JournalController.getPublicJournalPage = function (journalPageGuid) {
  AjaxCommands.submitGet("/Journal/Public/" + journalPageGuid, "ModalContent", Modal.show);
};

JournalController.createJournalPage = function () {
    JournalController.deselectPriorJournalPage();
    UIDisplay.showTab("#tripsAndJournal");
    AjaxCommands.submitGet("/Journal/Create/", "ModalContent", function () {
        Modal.show(false, UIConstants.speed, JournalController.initJournalEntry); });
};

JournalController.newJournalPage = function (oForm) {
  oForm["TripId"].value = TripController.selectedTripId;
  AjaxCommands.submitHiddenForm(oForm, "Journal", "Create", "ModalContent");
};

JournalController.updateJournalPage = function (event, journalPageId) {
  event.stopPropagation();
  AjaxCommands.submitGet("/Journal/Update/" + journalPageId, "ModalContent", Modal.show);
};

JournalController.submitUpdatedJournalPage = function (oForm) {
  AjaxCommands.submitHiddenForm(oForm, "Journal", "Update", "ModalContent");
};

JournalController.deleteJournalPage = function (event, journalPageId) {
  event.stopPropagation();

  if (!confirm("Are you sure you want to delete this journal page?")) {
    return;
  }
  
  JournalController.deselectPriorJournalPage();
  AjaxCommands.submitGet("/Journal/Delete/" + journalPageId,
		"journalAjaxContainer",
		function () { JournalController.getTripJournalPages(TripController.selectedTripId); });
};

JournalController.initJournalEntry = function () {
    tinyMCE.init({
        theme: "advanced",
        mode: "textareas",
        width: "640",
        height: "320"
    });
    $("#frmCreateJournalEntry").submit(function () { JournalController.newJournalPage(this); });
};
