PageSourceSearch

https://www.grovemedical.com/SystemFolders/javascripts/PromoEmail.js

js grovemedical.com collected 2026-10-05 19:50:01 UTC 8,232 bytes, 239 lines download raw bytes

1function DisplayPromoEmail() {
2    jQuery.ajaxSetup({
3        async: false,
4        cache: false
5    });
6
7    jQuery('div#divPromoEmail').dialog({
8        autoOpen: false,
9        modal: true,
10        position: 'center',
11        resizable: false,
12        title: 'Promotion Email',
13        width: 850,
14        height: 580,
15		zIndex: 1000001
16    });
17
18    jQuery('div#divPromoEmail').load('SystemFolders/HTMLTemplates/PromoCodeEmail/PromoEmail.htm');
19
20    jQuery('#PromoCodeFromInputID').attr('value', jQuery('#_EmailPromoCodeFrom').attr('value'));
21
22    retrieveShopperEmails();
23    retrieveEmailTemplate();
24
25    jQuery('div#divPromoEmail').dialog('open');
26}
27
28function AJAXCall_PromoCodeHandler(sFullURL, HTMLType, _bAsynch) {
29  var bAsynch = false;
30  var sParams;
31
32  if (_bAsynch)
33    bAsynch = true;
34
35  if (window.XMLHttpRequest)
36    xmlHttpRequest3 = new XMLHttpRequest();
37  else if (window.ActiveXObject)
38    xmlHttpRequest3 = new ActiveXObject('Microsoft.XMLHTTP');
39
40  if (xmlHttpRequest3) {
41    xmlHttpRequest3.onreadystatechange = function() {
42      if (xmlHttpRequest3.readyState == 4) {
43        if (xmlHttpRequest3.status == 200) {
44          PromoCodeHandler(xmlHttpRequest3, HTMLType);
45        }
46      }
47    }
48
49    if (sFullURL.indexOf("?") > -1) {
50      sURL = sFullURL.split("?")[0];
51      sParams = sFullURL.split("?")[1];
52
53      xmlHttpRequest3.open('POST', sURL, bAsynch);
54      xmlHttpRequest3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
55      xmlHttpRequest3.send(sParams, 0, false);
56    }
57  }
58}
59
60function PromoCodeHandler(xmlHttpRequest3, HTMLType)
61{
62  var EmailPromoCodeHandlerXML = xmlHttpRequest3.responseXML;
63  var EmailPromoCodeResponseHTML = xmlHttpRequest3.responseText;
64
65  if (HTMLType == 1) {
66      GetEmailPromoCodeTemplate(EmailPromoCodeResponseHTML);
67      return;
68  }
69  else if (HTMLType == 2) {
70      DisplayEmailPromoCodeBcc(EmailPromoCodeResponseHTML);
71      return;
72  }
73
74  if (EmailPromoCodeHandlerXML.getElementsByTagName("Action").length > 0) {
75    var sAction = EmailPromoCodeHandlerXML.getElementsByTagName("Action")[0].firstChild.nodeValue;
76    var sErrorCode = EmailPromoCodeHandlerXML.getElementsByTagName("ErrorCode")[0].firstChild.nodeValue;
77
78    if (sErrorCode = '0')
79    {
80      switch (sAction)
81      {
82        case 'GetShopperList':
83	  GetShopperListResponse(EmailPromoCodeHandlerXML);
84	  break;
85        case 'SendEmail':
86          SendEmailResponse(EmailPromoCodeHandlerXML);
87          break;
88      }
89    }
90  }
91}
92
93function GetShopperListResponse(EmailPromoCodeHandlerXML)
94{
95  var sErrorMessage = "";
96
97  if ((EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage") != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0] != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0].firstChild != null))
98    sErrorMessage = EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0].firstChild.nodeValue;
99
100  if (sErrorMessage != '') {
101    alert(sErrorMessage);
102  }
103  else {
104    if ((EmailPromoCodeHandlerXML.getElementsByTagName("ShopperEmailAddress") != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ShopperEmailAddress")[0] != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ShopperEmailAddress")[0].firstChild != null)) {
105      var sEmails = "";
106      var aAllShopperEmailAddresses = EmailPromoCodeHandlerXML.getElementsByTagName("ShopperEmailAddress");
107
108      for (var i = 0; i < aAllShopperEmailAddresses.length; i++) {
109        if ((aAllShopperEmailAddresses[i] != null) && (aAllShopperEmailAddresses[i].firstChild != null)) {
110          sEmails += aAllShopperEmailAddresses[i].firstChild.nodeValue + ';';
111        }
112      }
113
114      jQuery('#PromoCodeBccInputID').attr('value', sEmails);
115    }
116  }
117}
118
119function SendEmailResponse(EmailPromoCodeHandlerXML)
120{
121  var sErrorMessage = "";
122  var sUserMessage = "";
123
124  if ((EmailPromoCodeHandlerXML.getElementsByTagName("UserMessage") != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0] != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("UserMessage")[0].firstChild != null))
125      sUserMessage = EmailPromoCodeHandlerXML.getElementsByTagName("UserMessage")[0].firstChild.nodeValue;
126
127  if ((EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage") != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0] != null) && (EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0].firstChild != null))
128    sErrorMessage = EmailPromoCodeHandlerXML.getElementsByTagName("ErrorMessage")[0].firstChild.nodeValue;
129
130  if (sUserMessage != '') {
131    alert(sUserMessage);
132  } else if (sErrorMessage != '') {
133    alert(sErrorMessage);
134  }
135}
136
137
138function GetEmailPromoCodeTemplate(EmailPromoCodeTemplateHTML)
139{
140  jQuery('div#PromoCodeTemplate_ID').html(EmailPromoCodeTemplateHTML);
141}
142
143function DisplayEmailPromoCodeBcc(EmailPromoCodeResponseHTML)
144{
145    jQuery('div#divPromoBcc').load('SystemFolders/HTMLTemplates/PromoCodeEmail/PromoEmailBcc.htm');
146
147    jQuery('div#divPromoCodeBccCustomerList').html(EmailPromoCodeResponseHTML);
148
149
150    jQuery('div#divPromoCodeBccCustomerList')
151        .jstree({
152        'themes': {
153            'theme': 'classic',
154            'dots': false,
155            'icons': true
156        },
157        'plugins': ['themes', 'html_data', 'ui', 'crrm']
158    }).on('loaded.jstree', function() {
159      jQuery('div#divPromoCodeBccCustomerList').jstree('open_all');
160    });
161
162    jQuery('div#divPromoBcc').dialog('open');
163
164}
165
166
167function retrieveShopperEmails() {
168  var sPromoCode = jQuery('#_promoCode').attr('value');
169  var url = "SystemFolders/p21customerpages/AJAXEmailPromoCodeHandler.aspx?Action=GetShopperList&PromoCode=" + sPromoCode;
170
171  url += "&random=" + Math.random();
172  AJAXCall_PromoCodeHandler(url, 0, false);
173}
174
175function retrieveEmailTemplate() {
176  var sPromoCode = jQuery('#_promoCode').attr('value');
177  var url = "SystemFolders/p21customerpages/AJAXEmailPromoCodeHandler.aspx?Action=GetEmailPromoCodeTemplate&PromoCode=" + sPromoCode;
178
179  url += "&random=" + Math.random();
180  AJAXCall_PromoCodeHandler(url, 1, false);
181}
182
183function sendPromoCodeEmail() {
184    var sPromoCode = jQuery('#_promoCode').attr('value');
185    var url = "SystemFolders/p21customerpages/AJAXEmailPromoCodeHandler.aspx?Action=SendEmail";
186    url += "&PromoCode=" + encodeURIComponent(sPromoCode);
187    url += "&From=" + encodeURIComponent(jQuery('#PromoCodeFromInputID').attr('value'));
188    url += "&Bcc=" + encodeURIComponent(jQuery('#PromoCodeBccInputID').attr('value'));
189    url += "&Subject= " + encodeURIComponent(jQuery('#PromoCodeSubjectInputID').attr('value'));
190    url += "&random=" + Math.random();
191    AJAXCall_PromoCodeHandler(url, 3, false);
192}
193
194function DisplayPromoEmailBcc() {
195    jQuery.ajaxSetup({
196        async: false,
197        cache: false
198    });
199
200    jQuery('div#divPromoBcc').dialog({
201        autoOpen: false,
202        modal: true,
203        position: 'center',
204        resizable: false,
205        title: 'Select Shoppers',
206        width: 650,
207        height: 400,
208        buttons: {
209            "OK": function () {
210                UpdateEmails();
211            }
212        }
213    });
214
215    var sPromoCode = jQuery('#_promoCode').attr('value');
216    var url = "SystemFolders/p21customerpages/AJAXEmailPromoCodeHandler.aspx?Action=DisplayEmailPromoCodeBcc&PromoCode=" + sPromoCode;
217
218    url += "&EmailAddress=" + jQuery('#PromoCodeBccInputID').attr('value');
219    url += "&random=" + Math.random();
220    AJAXCall_PromoCodeHandler(url, 2, false);
221}
222
223function UpdateEmails() {
224      var sEmails = ""
225      var iShopperID, sCustomerCode;
226
227      jQuery("[id^='shopper_']:checked").each(
228        function() {
229          sCustomerCode = jQuery(this).attr('id').split("_")[1];
230          iShopperID = jQuery(this).attr('id').split("_")[2];
231          sEmails += jQuery('#ShopperEmail_' + sCustomerCode + '_' + iShopperID).html() + ";";
232        }
233      );
234
235      jQuery('#PromoCodeBccInputID').attr('value', sEmails);
236
237      jQuery('div#divPromoBcc').dialog('close');
238}
239

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.