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

N52.FormulaDetail =
{    
 Load: function ()
 {
  try{

         
         window.top.moveTo(0,0);
         window.top.resizeTo(screen.availWidth, screen.availHeight);

         Xrm.Page.ui.controls.get('north52_name').setFocus();
         
         if (typeof Xrm.Page.ui.clearFormNotification  != "undefined")  
         {
            Xrm.Page.ui.tabs.get("General").setVisible(true);
            Xrm.Page.ui.tabs.get("Generate").setVisible(false);
            Xrm.Page.ui.tabs.get("Query").setVisible(true);
         }
         else
         {
            Xrm.Page.ui.tabs.get("General").setVisible(true);
            Xrm.Page.ui.tabs.get("Generate").setVisible(true);
            Xrm.Page.ui.tabs.get("Query").setVisible(true);
        }

         Xrm.Page.getAttribute("north52_query").setSubmitMode("always");
         Xrm.Page.getAttribute("north52_layout").setSubmitMode("always");
         Xrm.Page.getAttribute("north52_savedviewid").setSubmitMode("always");
        }
  catch(ex)
  {
    alert("North52 Formula Manager Exception:: " + ex.message);
  } 

 },


SetProperty: function(name, value) 
{

      try{
        var attribute = Xrm.Page.data.entity.attributes.get(name);
         attribute.setValue(value);
       }
       catch(ex)
        {
             alert("North52 Formula Manager Exception: " + ex.message);
        } 

},

SetVisibility: function() 
{

},


Validation: function(executionContext) 
{

      try{

            var eventArgs = executionContext.getEventArgs();

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

           var filtertype = Xrm.Page.data.entity.attributes.get("north52_filter").getValue();
           if (filtertype != 217890000)
           {
                 var filterentityname = Xrm.Page.data.entity.attributes.get("north52_filterentityname").getValue();
                 var filterattributename = Xrm.Page.data.entity.attributes.get("north52_filterattributename").getValue();

                 if ((filterentityname == null) || (filterattributename == null))
                 {
                    alert("North52 Formula Manager: You must select a Filter Relationship.");
                    executionContext.getEventArgs().preventDefault();
                 }
           }
                 
       }
       catch(ex)
        {
             alert("North52 Formula Manager Exception: " + ex.message);
        } 

},


ClearFilterFields: function() 
{

      try{
           var filtertype = Xrm.Page.data.entity.attributes.get("north52_filter").getValue();
           if (filtertype == 217890000)
           {
             
                 N52.FormulaDetail.SetProperty("north52_filterentityname", "");
                 N52.FormulaDetail.SetProperty("north52_filterattributename", "");
                
           }
                 
       }
       catch(ex)
        {
             alert("North52 Formula Manager Exception: " + ex.message);
        } 

},

SaveFormulaDetail: function (executionContext)
{
  
   var eventArgs = executionContext.getEventArgs();

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


SetFetchXmlQuery: function(executionContext)
{


 try
 {


   Xrm.Page.data.entity.attributes.get("north52_name").setSubmitMode("always");
   var query = Xrm.Page.data.entity.attributes.get("north52_query").getValue();  
   var paramContent = "contentIFrame";

   if (document.getElementById("IFRAME_advancedfind") == null) return;
   if (document.getElementById("IFRAME_advancedfind").contentWindow.document.getElementById(paramContent) == null) return;

   var exists = document.getElementById("IFRAME_advancedfind").contentWindow.document.getElementById(paramContent);

    if ((exists == null) || (typeof(exists ) == 'undefined') ) paramContent = "contentIFrame0";

   var fetchxml = document.getElementById("IFRAME_advancedfind").contentWindow.document.getElementById(paramContent).contentWindow.document.getElementById("resultRender").FetchXml.value;
   var layoutxml = document.getElementById("IFRAME_advancedfind").contentWindow.document.getElementById(paramContent).contentWindow.document.getElementById("resultRender").LayoutXml.value;


       if ((fetchxml != null) && (fetchxml.length  != 0))
       {
           N52.FormulaDetail.SetProperty("north52_query", fetchxml);
           N52.FormulaDetail.SetProperty("north52_layout", layoutxml);
        } 
        else if ((query == null) || (query .length  == 0))
         {
          alert('North52 Formula Manager: You must build an Advanced Find Query & Execute it by, clicking the red exclamation button before you can save this record.' );
           executionContext.getEventArgs().preventDefault();
          } 
   
  }
  catch(ex)
  {
    alert("North52 Formula Manager Exception: " + ex.message);
  } 

} 

}