<html><head><title>North52 Formula Manager Calculated - Hyperlink</title>
<style type="text/css">
a         {color: #1160b7; position:absolute; text-decoration:underline;font-weight:bold; !important;}
a:link {color: #1160b7; text-decoration:underline;font-weight:bold; !important;}
a:visited {color: #1160b7; text-decoration:underline;font-weight:bold; !important;}
a:hover {color: #1160b7; text-decoration:underline;font-weight:bold; !important;}

html, body{
margin: 0px;
padding: 0px;
}


</style>

<script src="ClientGlobalContext.js.aspx"></script>

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

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

<script type="text/javascript" src="north52_/javascript/JSON2">
</script>
<link rel="stylesheet" type="text/css" href="/_common/styles/fonts.css.aspx?lcid=1033">
<script type="text/javascript">


function getQuerystring(key)
{
    var work = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regex = new RegExp("[\\?&]"+work+"=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null) return null;
    return qs[1];
}


function PerformCalculation() {

       var serverUrl = N52.DialogHelpers.GetServerUrl();

         ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";

 
    //Calls the REST endpoint to Create a new North52 Config
    var jsonNorth52Config = window.JSON.stringify(CreateNorth52FormulaCalculation());

    $.ajax({ type: "POST",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        url: ODataPath + "/north52_formulacalculationSet",
        data: jsonNorth52Config,
        beforeSend: function (XMLHttpRequest) {XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest) {
           result= data.d.north52_Result;
               
           if ( (  (result != null) || (result != "")  || (result != 'NoOp') ) && (result.indexOf('main.aspx') != -1) )
           {
              resultUrl = serverUrl + "/" + getUrl(result);
           
              $('#calculatedhyperlink').attr('href', resultUrl);
              $('#calculatedhyperlink').text(getRecordName(result));
            }
            else
                $('#calculatedhyperlink').text('--');

           },
        error: function (XmlHttpRequest, textStatus, errorThrown) {
                $('#calculatedhyperlink').text("??");
                $('#calculatedhyperlink').attr('href', '');
                $('#calculatedhyperlink').click(function() {alert(document.getElementById("msg").value); return false;});
                $('#calculatedhyperlink').attr('disabled', '');
                var msgfield = document.getElementById("msg");
                msg.value = XmlHttpRequest.responseText;
          }
    });  

   EnableDisableCalculatedField();

}

function CreateNorth52FormulaCalculation()
 {

    var north52FormulaCalculation = new Object();

    var updatefield = getQuerystring("data");
    var value = decodeURIComponent(updatefield);
    var inputs = value.split("|");
   
    north52FormulaCalculation.north52_name = inputs[0];
    north52FormulaCalculation.north52_TargetEntityID = parent.Xrm.Page.data.entity.getId();
        
    return north52FormulaCalculation ;

}

function onLoad()
{
   try
   {

        if ((parent != null) && (parent.Xrm.Page != null) && (parent.Xrm.Page.ui != null) )
        {
           if (parent.Xrm.Page.context.isOutlookOnline() == false)
               return; 

           if  ( (parent.Xrm.Page.ui.getFormType() == 2)  || (parent.Xrm.Page.ui.getFormType() == 3) || (parent.Xrm.Page.ui.getFormType() == 4) )
           { 
              PerformCalculation();
           }
        }
   }
   catch(ex)
   {
     alert('North52 Formula Manager Exception: ' + ex.message);
   }
}


function getRecordName(result)
 {         
            var vals = new Array();
            vals = result.split("=");           

            return    vals[4];
  }

function EnableDisableCalculatedField()
 {

    var north52FormulaCalculation = new Object();

    var updatefield = getQuerystring("data");
    var value = decodeURIComponent(updatefield);
    var inputs = value.split("|");

   if (inputs.length > 1)
   {
    document.getElementById("calculatedfield").disabled = inputs[1]; 
   }

}

function getUrl(result)
 {         
            var vals = new Array();
            vals = result.split("=");           
 
            return    result.replace("&recordname="+vals[4],"");
  }

function displayMessage()
{

 if (document.getElementById("msg").value != "")
     {
        alert(document.getElementById("msg").value);
     }
}

</script>

<meta charset="utf-8">
</head><body onload="onLoad();" bgColor="transparent">
<table cellSpacing="0" cellPadding="0" width="100%">
<tbody>
<tr>
<td id="calculatedhyperlink_td">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><a id="calculatedhyperlink" href="" target="_blank"></a> </strong></td></tr>
<tr>
<td id="msg_td"><input style="visibility: hidden;" id="msg" class="ms-crm-Text" req="0"> </td></tr></tbody></table></body></html>