﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="../Styles/Crmstyle.css" />
    <script type="text/javascript" src="../Scripts/jquery1.9.1.js"></script>
    <script src="../../../ClientGlobalContext.js.aspx"></script>
    <script type="text/javascript">
        function RetrieveEmailTemplatesCaseReopen() {

            var ODATA_URL = window.parent.Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc";
            var odataSetName = "TemplateSet";
            var odataUri = ODATA_URL + "/" + odataSetName;
            //odataUri += "$filter=" + filter;

            var result = false;
           
            var fetchXml = '<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0">' +
                                '<entity name="template">' +
                                    '<attribute name="title"/>' +
                                    '<attribute name="templateid"/>' +
                                    '<order descending="false" attribute="title"/>' +
                                    '<filter type="and">' +
                                        '<condition attribute="templatetypecode" value="112" operator="eq"/>' +
                                    '</filter>' +
                                '</entity>' +
                            '</fetch>';
            var ResultXml = GetFetchXmlResult(fetchXml);
            try {
                xmlDoc = $.parseXML(ResultXml);
            }
            catch (E) {
                alert(error_Xml);
                return;
            }
            $xml = $(xmlDoc);
            var XmlChildNodeList, emailTemplates;
            if (navigator.appName == "Netscape" && navigator.vendor == "Google Inc.") {
                XmlChildNodeList = $xml.find("Results").find("Entity");
                emailTemplates = ForChrome(XmlChildNodeList);
            }
            else {
                XmlChildNodeList = $xml.find("a\\:Results").find("a\\:Entity");
                emailTemplates = ForIEandFireFox(XmlChildNodeList);
            }


            //////// end (replace all)

            //return incident emailTemplates;
            for (var i = 0; i < emailTemplates.length; i++) {
                $('#SelectAutoResponseExternalCaseReopen').append('<option value="' + emailTemplates[i].TemplateId + '">' + emailTemplates[i].Title + '</option>')
                $('#SelectAutoResponseInternalCaseReopen').append('<option value="' + emailTemplates[i].TemplateId + '">' + emailTemplates[i].Title + '</option>')
            }

            if (window.parent.Xrm.Page.getAttribute('iotap_casereopenexternaltemplate').getValue() != null) {
                $('#SelectAutoResponseExternalCaseReopen').val(window.parent.Xrm.Page.getAttribute('iotap_casereopenexternaltemplate').getValue().toLowerCase());
            }

            if (window.parent.Xrm.Page.getAttribute('iotap_casereopeninternaltemplate').getValue() != null) {
                $('#SelectAutoResponseInternalCaseReopen').val(window.parent.Xrm.Page.getAttribute('iotap_casereopeninternaltemplate').getValue().toLowerCase());
            }

        }

        function ForChrome(XMLEntityNodes) {
            var templates = [];
            for (var i = 0; i < XMLEntityNodes.length; i++) {
                var KVPSanytype = XMLEntityNodes[i].getElementsByTagName("KeyValuePairOfstringanyType");
                templates[i] = new Object();
                for (var j = 0; j < KVPSanytype.length; j++) {
                    if (KVPSanytype[j].getElementsByTagName("key")[0].textContent == "templateid") {
                        templates[i].TemplateId = KVPSanytype[j].getElementsByTagName("value")[0].textContent;
                    }
                    if (KVPSanytype[j].getElementsByTagName("key")[0].textContent == "title") {
                        templates[i].Title = KVPSanytype[j].getElementsByTagName("value")[0].textContent;
                    }
                }
            }
            return templates;
        }

        function ForIEandFireFox(XMLEntityNodes) {
            var templates = [];
            for (var i = 0; i < XMLEntityNodes.length; i++) {
                var KVPSanytype = XMLEntityNodes[i].getElementsByTagName("a:KeyValuePairOfstringanyType");
                templates[i] = new Object();
                for (var j = 0; j < KVPSanytype.length; j++) {
                    if (KVPSanytype[j].getElementsByTagName("b:key")[0].textContent == "templateid") {
                        templates[i].TemplateId = KVPSanytype[j].getElementsByTagName("b:value")[0].textContent;
                    }
                    if (KVPSanytype[j].getElementsByTagName("b:key")[0].textContent == "title") {
                        templates[i].Title = KVPSanytype[j].getElementsByTagName("b:value")[0].textContent;
                    }
                }
            }
            return templates;
        }

        function GetFetchXmlResult(sFetchXml) {
            var request = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
            request += "<s:Body>";
            request += '<Execute xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services">' +
    '<request i:type="b:RetrieveMultipleRequest" ' +
    ' xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" ' +
    ' xmlns:i="http://www.w3.org/2001/XMLSchema-instance">' +
        '<b:Parameters xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic">' +
            '<b:KeyValuePairOfstringanyType>' +
                '<c:key>Query</c:key>' +
                '<c:value i:type="b:FetchExpression">' +
                    '<b:Query>';
            request += CrmEncodeDecode.CrmXmlEncode(sFetchXml);
            request += '</b:Query>' +
                '</c:value>' +
            '</b:KeyValuePairOfstringanyType>' +
        '</b:Parameters>' +
        '<b:RequestId i:nil="true"/>' +
        '<b:RequestName>RetrieveMultiple</b:RequestName>' +
        '</request>' +
        '</Execute>';
            request += '</s:Body></s:Envelope>';

            var xmlhttp;
            if (navigator.appName == "Microsoft Internet Explorer")
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            else
                xmlhttp = new XMLHttpRequest();

            xmlhttp.open("POST", GetGlobalContext().getClientUrl() + "/XRMServices/2011/Organization.svc/web", false);
            xmlhttp.setRequestHeader("Accept", "application/xml, text/xml, */*");
            xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
            xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
            xmlhttp.send(request);

            var resultXml = xmlhttp.responseXML;

            if (navigator.appName == "Microsoft Internet Explorer")
                var xmlText = resultXml.xml || resultXml.activeElement.innerHTML;
            else
                var xmlText = (new XMLSerializer()).serializeToString(resultXml);
            return xmlText;
        }


        function UpdateAttributeCaseReopen() {
            var selectedAckTemplateExt = SelectAutoResponseExternalCaseReopen.value;
            var selectedAckTemplateInt = SelectAutoResponseInternalCaseReopen.value;
            
            var ackTemplateIdExt = "iotap_casereopenexternaltemplate";
            var ackTemplateIdInt = "iotap_casereopeninternaltemplate";

            window.parent.Xrm.Page.getAttribute(ackTemplateIdExt).setValue(selectedAckTemplateExt);
            window.parent.Xrm.Page.getAttribute(ackTemplateIdInt).setValue(selectedAckTemplateInt);
            
        }

    </script>
    <style type="text/css">
        .label
        {
            font-family: Segoe UI, Tahoma, Arial;
            font-size: 11px;
            font-weight: normal;
        }
        .label1
        {
            font-family: Segoe UI, Tahoma, Arial;
            font-size: 11px;
            font-weight: normal;
            color: Red;
        }
        .body
        {
            margin-left: 0px;
            margin-top: 0px;
            margin-right: 0px;
            margin-bottom: 0px;
            background-color: White;
            padding: 0px;
        }
        .style6
        {
            height: 26px;
        }
        .style7
        {
            width: 8%;
        }
        #SelectAutoResponseExternalCaseReopen
        {
            margin-left: 0px;
        }
    </style>
</head>
<body onload="RetrieveEmailTemplatesCaseReopen()" style="width: 100%; margin: 0 0 0 0; padding: 0 0 0 0;height:auto">
    <table style="width: 100%; border-style: none; table-layout: fixed;" cellpadding="0"
        cellspacing="0">
        <colgroup>
            <col width="108">
            <col>
            <col width="123" style="padding-left:10px">
            <col>
            <tbody>
                <tr>
                    <td class="ms-crm-Text" align="left" colspan="4">
                        Case Reopen
                    </td>
                </tr>
                <tr>
                    <td align="left" style="width: 92px">
                        <label class="label">
                            External Email Template</label>&nbsp;
                    </td>
                    <td align="right" width="42%">
                        <select id="SelectAutoResponseExternalCaseReopen" class="ms-crm-SelectBox" name="D1" onchange="UpdateAttributeCaseReopen()">
                            <option></option>
                        </select>
                    </td>
                    <td align="left" style="padding-left: 10px; width: 92px;">
                        <label class="label">
                            Internal Email Template</label>&nbsp;
                    </td>
                    <td align="right" width="42%">
                        <select id="SelectAutoResponseInternalCaseReopen" class="ms-crm-SelectBox" name="D2" onchange="UpdateAttributeCaseReopen()">
                            <option></option>
                        </select>
                    </td>
                </tr>
            </tbody>
    </table>
</body>
</html>
