﻿
webframe.segments.common =
{
  DeleteSegment: function (SegmentID)
  {
    var pageServices = new PageServices();
    pageServices.deleteSegment(SegmentID);
  },

  ExpirationPeriodHTML: '<br/>Update every <input id="expireNumber" type="text"/>' +
	  '<select id="expirePeriod">' +
	  '<option value="hour">Hour</option><option value="day">Day</option><option value="Month">Month</option><option value="constant">Constant</option>' +
	  '</select>',

  UpdatePropertyDataFromStandardControls: function (segmentData)
  {
    segmentData.Styleclass = $("#StyleClass").val();
    segmentData.Region = $("#Region").val();
    segmentData.EditableByMortals = $("#Editable")[0].checked;

    if ($('#expireNumber'))
    {
      segmentData.DataAsJson.ExpirePeriod = $('#expirePeriod').val();
      segmentData.DataAsJson.ExpireNumber = $('#expireNumber').val();
    }

    return segmentData;
  },

  SavePropertyData: function (segmentData, saveUrl, postSaveCallback)
  {
    console.log(segmentData);

    segmentData.Data = JSON.stringify(segmentData.DataAsJson);
    segmentData.IsDialog = (segmentData.IsDialog || true);
    BlockUIDisplay();

    $.ajax({
      url: saveUrl,
      type: 'POST',
      data: segmentData,
      success: function (data)
      {
        if (postSaveCallback != null)
        { postSaveCallback.call(); }
      }
    });
  },

  GetSegmentData: function (options, editCallback, addCallback)
  {
    editCallback = editCallback || function () { };
    addCallback = addCallback || editCallback;

    if (options.action == 'add')
    {
      $.ajax(
      '/rpc/ContentRpcServices/NewSegmentData?PageId=' + options.pageId + '&SegmentTypeId=' + options.segmentTypeId,
      {
        success: function (segmentData, textStatus)
        {
          segmentData.DataAsJson = JSON.parse(segmentData.Data) || {};
          addCallback(segmentData);
        }
      });
    }
    else
    {
      $.ajax(
      '/rpc/ContentRpcServices/SegmentDataById/' + options.segmentId,
      {
        success: function (segmentData, textStatus)
        {
          segmentData.DataAsJson = JSON.parse(segmentData.Data) || {};
          editCallback(segmentData);
        }
      });
    }
  },

  GetPageProperties: function (options, callback)
  {
    if (options.pageId)
    {
      $.ajax(
      '/rpc/ContentRpcServices/GetPageData?PageId=' + options.pageId,
      {
        success: function (pageData, textStatus)
        { callback(pageData); }
      });
    }
  }
}
