<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>

<script src="north52_/javascript/n52.clientside" 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(false);
 });


N52QuickButton.Click = function()
{


	N52QuickButton.SetDisable();
	N52QuickButton.PreSave(); 
	if (N52QuickButton.GetExecutionOption() == 'false')
	{
	    N52QuickButton.CompleteCallBack();
		return; 
	}
	
	var executionContext= N52.Clientside.BuildExecutionObject('n52clientside', null);
	var formulaParams = N52.Clientside.BuildFormulaParameters(executionContext, N52QuickButton.GetShortCode(), null, false);
	N52.Clientside.ExecuteFormulasNative(executionContext, formulaParams , N52.Clientside.RetrieveFormulaCallBack, N52QuickButton.CompleteCallBack);

 
}


 
N52QuickButton.RetrieveFormulaCallBack= function(retrievedFormulaResults)
{

    for (var i = 0; i < retrievedFormulaResults.length; i++) {
    
                var formulaResult = retrievedFormulaResults[i];
                var formulaResultEx = formulaResult.north52_Result == null ? formulaResult.north52_result : formulaResult.north52_Result;

                
                var n52Result = N52JSON.parse(formulaResultEx);
                
                if (n52Result instanceof Array) {
                    for (j = 0; j < n52Result.length; j++) {
                    	N52QuickButton.ProcessResult(n52Result[j]);
                    }
                }
                else {
                	N52QuickButton.ProcessResult(n52Result);
                }
	}

}


N52QuickButton.ProcessResult = function(n52Result)
{
   var formulatype = n52Result.FormulaType;
   var propertyname = n52Result.PropertyName;
   var propertyvalueaction = n52Result.PropertyValueAction; 
 
}


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] == null ? 'Click Me' : n[1];
}

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

return n[2] == null ? 'pure-button button-success' : n[2];
}



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

return n[3] == null ? 'none' : n[3];
}

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

return n[4] == null ? 'true' : n[4];
}

N52QuickButton.GetExecutionParams= function()
{
     var e=N52QuickButton.GetQuerystring("data");
     var t=decodeURIComponent(e);
     var n=t.split("|");
     
     if (n.length >= 5)
     	return n[4];
     else
     	return ':*:CreateUpdate::0:217890000:217890000:217890000';
}

N52QuickButton.PreSave= function()
{

var refreshMode = N52QuickButton.GetSaveRefreshOption().toLowerCase();

if (refreshMode == 'presaveonly')
	parent.Xrm.Page.data.entity.save();
else if (refreshMode == 'presaveandrefresh')
	parent.Xrm.Page.data.entity.save();
 
}


N52QuickButton.CompleteCallBack = function()
{

var refreshMode = N52QuickButton.GetSaveRefreshOption().toLowerCase();


if (refreshMode == 'presaveandrefresh')
{
	parent.Xrm.Page.data.refresh(false);
}
 	
N52QuickButton.Initialize(false);
N52QuickButton.Reset();

}

N52QuickButton.SetDisable = function()
{

$('#n52button').attr('disabled', true);
$('#n52button').text('In-Progress...'); 

 	
}

N52QuickButton.Reset = function()
{

window['n52ExecutionContext'] = null;
window['n52AllowSaveEvent'] = null;

 	
}
  

N52QuickButton.Initialize= function(status)
{

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


$('#n52button').attr("disabled", status);
$('#n52button').text(buttonDescription); 
$('#n52button').attr("class", buttonStyle );
}

N52QuickButton.QuickButtonEnable = function()
{

$('#n52button').attr('disabled', false);
 	
}

N52QuickButton.QuickButtonDisable = function()  
{

$('#n52button').attr('disabled', true);
 	
}


</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>