<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.MouseOver = function()
{
	parent.Xrm.Page.data.entity.save();
}

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();
 debugger;       
        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 (type == "current")
					{
						var id = parent.Xrm.Page.data.entity.getId();
						var value = parent.Xrm.Page.data.entity.getPrimaryAttributeValue();
						
						params[name] = id;
						params[name + "name"] = value;						
					}
					else if (parent.Xrm.Page.getAttribute(name) != null)
					{ 
						var val = parent.Xrm.Page.getAttribute(name).getValue();
						
						if (val != "null" && val != null)
						{
							if (type == "lookup")
							{
								params[name] = val[0].id;
								params[name + "name"] = val[0].name;
							}
							else if (type == "date")
							{
								var outputstring = (val.getMonth() + 1) + "/" + val.getDate() + "/" +  val.getFullYear();
								params[name] = outputstring;
							}
							else
							{
								params[name] = val;
							}
						}
					}
				}
				
				parent.Xrm.Page.data.entity.save();				
				parent.Xrm.Utility.openEntityForm(entityName, null, params);
			}
            else if (result == "saveandclose")
			{
				parent.Xrm.Page.data.entity.save("saveandclose");
			}
			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();" onmouseover="N52QuickButton.MouseOver();" type="button">Click ME</button></body></html>