if (typeof North52 == 'undefined') { North52 = {}; }
if (typeof North52.ClientSidePayLoadTab == 'undefined') { North52.ClientSidePayLoadTab = {}; }





North52.ClientSidePayLoadTab.Load = function() {  

           var sourceEntity = parent.Xrm.Page.data.entity.attributes.get("north52_sourceentityname").getValue();
           $("select[id$=formulaClientSidePayLoad] > option").remove();

           if ( (sourceEntity == null) || (sourceEntity == "") ) 
                sourceEntity = "account";

           var options = "";

           if (typeof parent.Xrm.Page.ui.clearFormNotification  != "undefined") 
              options = "$select=*&$filter=ObjectTypeCode eq " + "'"+ sourceEntity + "' and Type/Value eq 2 and FormActivationState/Value eq 1";
            else  
              options = "$select=*&$filter=ObjectTypeCode eq " + "'"+ sourceEntity + "' and Type/Value eq 2"; 

            SDK.REST.retrieveMultipleRecords("SystemForm", options, North52.ClientSidePayLoadTab.retrieveFormCallBack, function (error) { alert("North52 Formula Manager: " + error.message); }, North52.ClientSidePayLoadTab.formsRetrieveComplete)    
} ; 


North52.ClientSidePayLoadTab.retrieveFormCallBack= function(retrievedForms)
{
 
   North52.ClientSidePayLoadTab.loadElement(retrievedForms, "/form/tabs/tab/@name", 'TABS');
   North52.ClientSidePayLoadTab.loadElement(retrievedForms, "/form/tabs/tab/columns/column/sections/section/@name", 'SECTIONS');
   North52.ClientSidePayLoadTab.loadElement(retrievedForms, "/form/tabs/tab/columns/column/sections/section/rows/row/cell/control/@id", 'FIELDS');
 
  
      $('#loading-formulaclientsidepayload').hide(); 
      $('#targetentity').show(); 
     
};

North52.ClientSidePayLoadTab.loadElement = function(retrievedForms, xpath, header)
 {
         for (var i = 0; i < retrievedForms.length; i++)
         {
		     var formResult = retrievedForms[i];
		     var xml = N52.HTMLWebResourceHelper.GetXmlDocument(formResult.FormXml);
		     
		     var attributes = N52.HTMLWebResourceHelper.GetXmlNodes(xml , xpath );
		
	                           N52.HTMLWebResourceHelper.InsertOptionSetItem('formulaClientSidePayLoad',  '', ''  );
		      N52.HTMLWebResourceHelper.InsertOptionSetItem('formulaClientSidePayLoad',  header, header  );
		   		       
		      for (var k = 0; k < attributes.length; k++) 
		      {
		        N52.HTMLWebResourceHelper.InsertOptionSetItem('formulaClientSidePayLoad',  formResult.Name +  ': '+ attributes [k].value, attributes [k].value  );
		     }  
       }
  };


North52.ClientSidePayLoadTab.formsRetrieveComplete= function()
 {
         var msg = 'Complete';
  };

North52.ClientSidePayLoadTab.DropDownChanged= function(value) {  

try
{
    if (value != null)
    {  
       parent.Xrm.Page.data.entity.attributes.get("north52_clientsidedatapayload").setValue(value);
     }

   }
   catch(ex)
   {
      alert('North52 Formula Manager: Communication issue, please click Ok & then F5 to refresh the screen. Message: ' + ex.message);
   }
} ; 
