<html><head><title>North52 BPA - Quick Button</title>
<script src="ClientGlobalContext.js.aspx"></script>

<script src="north52_/javascript/jquery" type="text/javascript"></script>

<script src="north52_/javascript/north52_dialog_helper" type="text/javascript"></script>

<script src="north52_/javascript/n52.json2" type="text/javascript"></script>

<script src="north52_/javascript/n52.rest" type="text/javascript"></script>

<link href="north52_purecss.css" rel="stylesheet" type="text/css">

<style type="text/css">

html, body{ height: 100%; overflow: auto;  border-width: 0px; }

body {  padding: 0;  margin: 0;  }

</style>

<script type="text/javascript">

var N52QuickButton = {}; 

 $(document).ready(function () { N52QuickButton.Initialize();
     });


N52QuickButton.Click = function()
{


var e=parent.Xrm.Page.data.entity.getId();
var t=parent.Xrm.Page.data.entity.getEntityName();
var n=e==null?"1":"2";
var r=N52QuickButton.GetShortCode();
var i="<"+t+"></"+t+">";
var s="$select=north52_Result&$filter=north52_name eq "+"'"+r+"' and north52_Parameters eq '"+i+"' and north52_TargetEntityID eq '"+e+"' and north52_FormulaType eq '"+n+"'";

document.getElementById("n52button").disabled = true;
document.getElementById("n52button").textContent  = "In-Progress...";

parent.Xrm.Page.data.setFormDirty();
parent.Xrm.Page.data.entity.save();

N52.REST.retrieveMultipleRecords("north52_formulacalculation",s,N52QuickButton.RetrieveFormulaCallBack,function(e){alert(e.message);},N52QuickButton.FormulasRetrieveComplete);


}

N52QuickButton.RetrieveFormulaCallBack= function(e)
{
 parent.Xrm.Page.data.refresh(false);

  if(e[0].north52_Result !="NoOp")
   {
        var result =N52JSON.parse(e[0].north52_Result).PropertyValueAction.toString();
        
         if(result !="NoOp")
         {
             if (result == "saveandnew")
             {
                 parent.Xrm.Page.data.entity.save("saveandnew");
             }
			 else if (result.substring(0,16) == "saveandnewsticky")
			 {
				var entityName = parent.Xrm.Page.data.entity.getEntityName();
				var fieldList = result.substring(17, result.length);
				var p = fieldList.split("|");

				var params = {};
				
				for (var i = 0; i < p.length; i++ )
				{
					var f = p[i].split(",");
					var name = f[0];
					var type = f[1];				

					if (parent.Xrm.Page.getAttribute(name) != null)
					{
						var val = parent.Xrm.Page.getAttribute(name).getValue();
						if (type == "lookup")
						{
							params[name] = val[0].id;
							params[name + "name"] = val[0].name;
						}
						else
						{
							params[name] = val;
						}
					}
				}
				
				parent.Xrm.Page.data.entity.save("saveandclose");
				parent.Xrm.Utility.openEntityForm(entityName, null, params);
			 }
             else
             {	
                 parent.Xrm.Page.ui.clearFormNotification('msgbutton');
                 parent.Xrm.Page.ui.setFormNotification(result, 'INFO', 'msgbutton');                   
             }
         }
   }

  
    document.getElementById("n52button").disabled = false;
    N52QuickButton.Initialize();
    
}

N52QuickButton.GetQuerystring= function(e)
{
   var t=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");
   var n=new RegExp("[\\?&]"+t+"=([^&#]*)");

   var r=n.exec(window.location.href);

   if(r==null)
     return null;

return r[1]
}

N52QuickButton.GetShortCode= function()
{
     var e=N52QuickButton.GetQuerystring("data");
     var t=decodeURIComponent(e);
     var n=t.split("|");

return n[0];
}

N52QuickButton.GetButtonDescription= function()
{
     var e=N52QuickButton.GetQuerystring("data");
     var t=decodeURIComponent(e);
     var n=t.split("|");

return n[1];
}

N52QuickButton.GetButtonStyle= function()
{
     var e= N52QuickButton.GetQuerystring("data");
     var t=decodeURIComponent(e);
     var n=t.split("|");

return n[2];
}

N52QuickButton.FormulasRetrieveComplete= function()
{
   
}

N52QuickButton.Initialize= function()
{

var buttonDescription=N52QuickButton.GetButtonDescription();
var buttonStyle =N52QuickButton.GetButtonStyle();


document.getElementById("n52button").textContent  = buttonDescription;
document.getElementById("n52button").className = buttonStyle ;
}

</script>
<meta charset="utf-8"><meta><meta><meta></head><body style="-ms-word-wrap: break-word;"><button id="n52button" onclick="N52QuickButton.Click();" type="button">Click ME</button></body></html>