﻿/// <reference path="~/Scripts/jquery-1.6.4-vsdoc.js" />

function PagePropertiesDialog(SaveAndCloseCallback, CloseWithoutSaveCallback)
{
  this.OpenForNew = function(parentPageId)
  {
    var dialogUrl = parentPageId > 0 ?
      '/contentpage/createnewpage?parentPageId=' + parentPageId + '&dialog=true' :
      '/contentpage/createnewpage?dialog=true';

    openDialog(dialogUrl, true);
  };

	this.Open = function (pageId)
	{
	  var dialogUrl = '/page/' + pageId + '/edit?dialog=true';
	  openDialog(dialogUrl);
	};

  function openDialog(dialogUrl, disableRegionsTab)
  {
    //setup dialog HTML
    $('body').append('<div id="dialogSpace" />');
    $("#dialogSpace").load(dialogUrl, function()
    {
      if (disableRegionsTab)
      { $('#tabsContainer').tabs({ disabled: [1] }); }
      else
      { $('#tabsContainer').tabs(); }
      
      $('.hideInDialog').hide();

      $("#dialogSpace").dialog(
        {
          buttons:
            {
              'OK': function()
              {
                try
                {
                  submitForm();
                  $(this).dialog('close');

                  if (SaveAndCloseCallback != null)
                  { SaveAndCloseCallback.call(); }
                }
                catch(exp)
                {
                  console.log(exp);
                  alert(exp.message);
                }
              },
              'Save': function()
              {
                webframe.ui.BlockUIDisplay();
                $('#pagePropertiesForm').submit();

              },
              'Cancel': function()
              {
                $(this).dialog('close');
                if (CloseWithoutSaveCallback != null)
                { CloseWithoutSaveCallback.call(); }
              }
            },
          width: 600,
          modal: false,
          title: 'Page Properties',
          close: function()
          {
            $("#dialogSpace").remove();
            document.isDialogOpen = false;
          }
        });

    });
  };

  function submitForm()
  {
    webframe.ui.BlockUIDisplay();
    var $form = $('#pagePropertiesForm');
    var formData = $('#pagePropertiesForm :input').serialize();

    $.ajax({
      type: 'POST',
      url: $form.attr('action'),
      data: formData,
      async: false
    });

    webframe.ui.UnblockUIDisplay();
  }

}
