if (typeof (N52) == "undefined")
{ N52 = {}; } 

N52.FormulaSave =
{    

SaveFormula: function (executionContext)
{
  try
  {

   var eventArgs = executionContext.getEventArgs();

   if (eventArgs.getSaveMode() == 70)
   {
        eventArgs.preventDefault();
        return;
   }


   var existingPayLoad =  Xrm.Page.getAttribute('north52_clientsidedatapayload').getValue();
   if ((existingPayLoad == null) || (existingPayLoad == '') )
         existingPayLoad = '*';
   else
        existingPayLoad = existingPayLoad.split(':')[0];
 
   if  ((Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890000)  || (Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890005) )
        Xrm.Page.getAttribute('north52_clientsidedatapayload').setValue(existingPayLoad  + ':Create');
    else if  ((Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890001)  || (Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890006) )
        Xrm.Page.getAttribute('north52_clientsidedatapayload').setValue(existingPayLoad + ':Update');
  else if  ((Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890002)  || (Xrm.Page.data.entity.attributes.get("north52_pipelineevent").getValue() == 217890004) )
        Xrm.Page.getAttribute('north52_clientsidedatapayload').setValue(existingPayLoad + ':CreateUpdate');

   if ((Xrm.Page.ui.getFormType() == 1) && (Xrm.Page.data.entity.attributes.get("north52_formulatype").getValue() != 217890017) )
   {
      name = Xrm.Page.getAttribute('north52_sourceentityname').getValue();
      name = name + " - " + Xrm.Page.getAttribute("north52_formulatype").getText();
      name = name + " - " + new Date();
      Xrm.Page.getAttribute('north52_name').setValue(name);
   }

       var formulaManager = Xrm.Page.getControl("WebResource_formulamanager");

       if ((formulaManager == null) || (typeof(formulaManager ) == 'undefined') )
           Xrm.Page.getControl("WebResource_formulaeditor").getObject().contentWindow.window.SaveFormula();
       else
        {
            var formulaManagerContent = formulaManager.getObject().Content;
            var formulaManagerContent2013 = formulaManager.getObject().firstChild.Content;

            if ((formulaManagerContent != null) && (typeof(formulaManagerContent ) != 'undefined') ) formulaManagerContent .mainpage.CallSaveEvent();

            if ((formulaManagerContent2013 != null) && (typeof(formulaManagerContent2013 ) != 'undefined') ) formulaManagerContent2013.mainpage.CallSaveEvent();
         }


      
  }
  catch(ex)
  {
    alert("North52 Formula Manager Exception: " + ex.message);
  } 

}

}