PageSourceSearch

https://onlineservices.nakheel.com/Modules/Services/ServicesJS/AllServices.js?v=639089958405992272

js nakheel.com collected 2026-10-02 04:48:41 UTC 33,371 bytes, 764 lines download raw bytes

1
2$.widget("custom.catcomplete", $.ui.autocomplete, {
3    _create: function () {
4        this._super();
5        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
6    },
7    _renderMenu: function (ul, items) {
8        var that = this,
9            currentCategory = "";
10        $.each(items, function (index, item) {
11            var li;
12            if (item.category != currentCategory) {
13                ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
14                currentCategory = item.category;
15            }
16            li = that._renderItemData(ul, item);
17            if (item.category) {
18                li.attr("aria-label", item.category + " : " + item.label);
19            }
20        });
21    }
22});
23
24var timeout;
25$(document).ready(function () {
26    try {
27
28
29        var isAuth = CheckIsAuth();
30        ApplyAuthChanges(isAuth);
31        LoadServices(globalRegistrationID, isAuth, systemID);
32
33    } catch (e) {
34
35    }
36    $('#btnLoginUAEPASS').hide();
37    $('#btnDisableLoginUAEPASS').show();
38    $('#btnDisableLoginUAEPASS').prop('disabled', true);
39    ActiveTab();
40    $(".tabbing").on('click', function () {
41        var tabname = $("input[type='radio'].tabbing:checked").val();
42        sessionStorage.setItem("activetab", tabname);
43    });
44
45
46    $(document).on('click', '.obsoleteServiceCLS', function (e) {
47
48        e.preventDefault();
49        var url = $(this).attr('data-url');
50        var serviceName = $(this).attr('data-serviceName');
51        var message = $(this).attr('data-obsoleteMessage');
52
53        openObsolete(serviceName, message, url);
54    });
55
56    $(document).on('click', '.decomServiceCLS', function (e) {
57
58        e.preventDefault();
59        var messageHeader = $(this).attr('data-decomMessageHeader');
60        var message = $(this).attr('data-decomMessage');
61        var serviceName = $(this).attr('data-serviceName');
62        openDecom(serviceName, message, messageHeader);
63    });
64});
65
66function openObsolete(serviceName, message, url) {
67    $("#obsoleteMessage").text('');
68    $("#obsoleteMessage").html(message.replace(serviceName, '<b>"' + serviceName + '"</b>'));
69    $("#newServiceURL").attr("href", url);
70
71    timeout = setTimeout(function () {
72        var url1 = $('#newServiceURL').attr('href');
73        window.location = url1;
74    }, 15000);
75    $("#obsolete-services").modal("show");
76}
77
78function closeObsolete() {
79    clearTimeout(timeout);
80    $("#obsolete-services").modal("hide");
81}
82
83
84function ApplyAuthChanges(isAuth) {
85    if (isAuth === true) {
86        // make freq & recent divs visible
87        $("#pageTitle").hide();
88
89        $("#divLogIn").hide();
90        $("#divRecent").show();
91        $("#divManageProfiles").show();
92        $("#divManageProfilesTop").show();
93    }
94    else {
95        // make login div visible
96        $("#pageTitle").text('Online Services');
97
98        $("#divRecent").hide();
99        $("#divManageProfiles").hide();
100        $("#divManageProfilesTop").hide();
101        $("#divLogIn").show();
102    }
103}
104
105
106function LoadServices(user_Reg_Id, isAuth, systemId) {
107    //debugger
108    var obj = {};
109    var userRegBO = {};
110    var _keyy = '';
111    obj.systemID = systemId;
112    if (isAuth === true) {
113        // obj.userRegId = user_Reg_Id;
114        _keyy = sessionStorage.apiKey;
115        obj.userRegBO = JSON.parse(sessionStorage.UserObject);
116
117        obj.userRegBO.ServiceTemplateInfoList?.forEach(function (value, index) {
118            // Check if service provider is enabled (must be published).
119            if (value.ServiceTemplateID == 2447 && value.IsEnabled) {
120                $("#divServiceProviderLink").removeClass("hide");
121            }
122        });
123    }
124    else {
125        //obj.userRegId = ' ';
126        _keyy = sessionStorage.pKey;
127        obj.userRegBO = userRegBO;
128    }
129
130    // Success Method
131    var successAction = function (resObj) {
132        //console.log(resObj);
133        if (resObj && resObj.LoadAllServicesListResult.Success) {
134            $("#hdServicesResult").val(JSON.stringify(resObj.LoadAllServicesListResult));
135
136            //BindServices($("#hdServicesResult").val(), isAuth);
137
138            SetServices($("#hdServicesResult").val(), isAuth);
139
140            $("#txtSearch").catcomplete({
141                delay: 0,
142                source: BuildAutoComplete(isAuth),
143                select: function (e, ui) {
144                    //console.log(ui);    // When you click (select) the ui object is returned , as well as the event
145                    // You can get at the returned results ( the object via . (dot)  notation )
146                    // location.href = ui.item.the_link;
147                    if (ui.item.IsObsolete) {
148                        openObsolete(ui.item.newServiceName, ui.item.obsoletedMessage, ui.item.item_link);
149                    }
150                    else if (ui.item.IsDecomissioned) {
151                        openDecom(ui.item.newServiceName, ui.item.DecomissionedServiceMessage, ui.item.DecomissionedServiceMessageHeader);
152                    }
153                    else if (ui.item.item_link)
154                        window.location.href = ui.item.item_link;
155
156                }
157                ,   //HERE - make sure to add the comma after your select
158                response: function (event, ui) {
159                    if (!ui.content.length) {
160                        var noResult = { category: "No results", label: "No results found" };
161                        ui.content.push(noResult);
162                    }
163                }
164                //,
165                //open: function () {
166                //    $(".ui-autocomplete:visible").css({ top: "+=5", left: "-=2" });
167                //}
168
169            });
170        }
171    }
172    CallRestMethod('RestServices.svc/LoadAllServicesList', JSON.stringify(obj), successAction, 'POST', _keyy);
173}
174
175
176
177function GetServiceUrl(serviceTempType, isAuth) {
178    var pUrl = '';
179    if (serviceTempType == 1 || serviceTempType == 2) // Independent or Workflow Service
180    {
181        if (isAuth)
182            pUrl = newServiceRequestUrl;
183        else
184            pUrl = newServiceRequestUrl_NotLogged;
185    }
186    else if (serviceTempType == 3) // Contenet Service
187    {
188        pUrl = serviceContentUrl;
189    }
190
191    return pUrl;
192}
193
194function BindServices(serviceResult, isAuth) {
195    if (serviceResult) {
196
197
198        var jObject = JSON.parse(serviceResult);
199
200        var sHtml = "";
201
202
203        // Loop though Layout Masters
204        for (var m = 0; m < jObject.LayoutMasterList.length; m++) {
205
206            var hDiv = '';
207
208            // Layout Header 
209
210            hDiv = ' <div class="row clearfix"> <div class="col-md-12 column">   <div class="panel panel-primary" style="margin-bottom: 10px!important;">
210  <div class="panel-heading">  <h2 class="panel-title" style="font-weight:bold;">  '
211                + jObject.LayoutMasterList[m].LayoutCaption + ' </h2>  </div> </div></div> </div>';
212
213
214
215            // 0 - > Headers, 1- All
216            for (var i = 0; i < jObject.LayoutMasterList[m].DistinctHeadersList.length; i++) {
217
218                var headerItem = jObject.LayoutMasterList[m].DistinctHeadersList[i];
219
220
221                if (i % 2 === 0) hDiv += '<div class="row">';
222                hDiv += '<div class="col-md-6"> <div class="">  <div class="PanelHeaderDefault">  <h3 class="panel-title" style="color: black !important"><strong>##Header</strong></h3>     </div> <ul class="list-group"> ##Details </ul>   </div>  </div>';
223                if (Boolean(i % 2) || (i + 1 == jObject.LayoutMasterList[m].DistinctHeadersList.length)) hDiv += '</div>';
224
225
226                hDiv = hDiv.replace("##Header", headerItem.HeaderCaption);
227
228                // Fetch Details
229                //LayoutMasterList[m].ServicesDetailsList
230
231                var detailsData = $.grep(jObject.AllServicesDetailsList, function (element, index) {
232                    return element.LayoutMasterID == jObject.LayoutMasterList[m].ID && element.LayoutHeaderID == headerItem.ID;
233                });
234
235                if (detailsData && detailsData.length > 0) {
236
237                    var detailsHtml = '';
238
239                    for (var j = 0; j < detailsData.length; j++) {
240                        var detailItem = detailsData[j];
241
242                        var pageUrl = GetServiceUrl(detailsData[j].ServiceTemplateTypeID, isAuth);
243                        //var menuID = getParameterByName("CurID");
244                        var encQS = detailItem.EncryptedQS;
245
246                        if (detailItem.IsObsolete) {
247                            var oburl = pageUrl + encQS;
248                            detailsHtml = '<a class="list-group-item obsoleteServiceCLS obsolete-servicesName" style="cursor: pointer;" data-url="' + oburl + '" data-serviceName="' + detailItem.RedirectServiceTemplateName + '" data-obsoleteMessage="' + detailItem.ObseleteServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
249                        }
250                        else if (detailItem.IsDecomissioned) {
251                            detailsHtml = '<a class="list-group-item decomServiceCLS decom-servicesName" style="cursor: pointer;" data-serviceName="' + detailItem.ServiceTemplateName + '" data-decomMe
251ssageHeader="' + detailItem.DecomissionedServiceMessageHeader + '" data-decomMessage="' + detailItem.DecomissionedServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
252                        }
253                        else {
254                            detailsHtml += "<a  class='list-group-item' href='" + pageUrl + encQS + "' >" + detailItem.ServiceTemplateName + (detailItem.IsMarkedNew ? '<span class="badge new-service">New</span>' : '') + "</a>";
255                        }
256                    }
257
258                    //debugger;
259
260                    hDiv = hDiv.replace("##Details", detailsHtml);
261                }
262                sHtml += hDiv;
263                hDiv = '';
264            }
265        }
266
267        $('#divServices').html(sHtml);
268
269
270        BindPopularServices(jObject.PopularServicesList, isAuth);
271        BindRecentlyServices(jObject.RecentlyServicesList, isAuth);
272    }
273    else {
274        // There are no headers under this menu item
275        $.alert({
276            content: 'We are experiencing an internal system error; Please try again. (Error Code:1004)', title: 'Error'
277            , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-remove'
278            , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary', columnClass: 'col-xs-12'
279        });
280    }
281
282}
283
284function BindPopularServices(popularDetails, isAuth) {
285
286
287    if (popularDetails && popularDetails.length > 0) {
288        //debugger;
289        var detailsHtml = '';
290
291
292        for (var j = 0; j < popularDetails.length; j++) {
293            var pageUrl = GetServiceUrl(popularDetails[j].ServiceTemplateTypeID, isAuth);
294            var detailItem = popularDetails[j];
295
296            var encQS = detailItem.EncryptedQS;
297
298            if (detailItem.IsObsolete) {
299                var oburl = pageUrl + encQS;
300                detailsHtml = '<a class="list-group-item item-gray obsoleteServiceCLS obsolete-servicesName" style="cursor: pointer;" data-url="' + oburl + '" data-serviceName="' + detailItem.RedirectServiceTemplateName + '" data-obsoleteMessage="' + detailItem.ObseleteServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
301            }
302            else if (detailItem.IsDecomissioned) {
303                detailsHtml = '<a class="list-group-item decomServiceCLS decom-servicesName" style="cursor: pointer;" data-serviceName="' + detailItem.ServiceTemplateName + '" data-decomMe
303ssageHeader="' + detailItem.DecomissionedServiceMessageHeader + '"  data-decomMessage="' + detailItem.DecomissionedServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
304            }
305            else {
306                detailsHtml += "<a class='list-group-item item-gray' href='" + pageUrl + encQS + "' >" + detailItem.ServiceTemplateName + (detailItem.IsMarkedNew ? '<span class="badge new-service">New</span>' : '') + "</a>";
307            }
308        }
309
310        //debugger;
311
312        $("#PopularDetails").html(detailsHtml);
313    }
314}
315
316function BindRecentlyServices(recentlyDetails, isAuth) {
317    if (recentlyDetails && recentlyDetails.length > 0) {
318
319        var detailsHtml = '';
320
321        for (var j = 0; j < recentlyDetails.length; j++) {
322            var detailItem = recentlyDetails[j];
323            var pageUrl = GetServiceUrl(recentlyDetails[j].ServiceTemplateTypeID, isAuth);
324            var encQS = detailItem.EncryptedQS;
325
326            if (detailItem.IsObsolete) {
327                var oburl = pageUrl + encQS;
328                detailsHtml = '<a class="list-group-item item-gray obsoleteServiceCLS obsolete-servicesName" style="cursor: pointer;" data-url="' + oburl + '" data-serviceName="' + detailItem.RedirectServiceTemplateName + '" data-obsoleteMessage="' + detailItem.ObseleteServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
329            }
330            else if (detailItem.IsDecomissioned) {
331                detailsHtml = '<a class="list-group-item decomServiceCLS decom-servicesName" style="cursor: pointer;" data-serviceName="' + detailItem.ServiceTemplateName + '" data-decomMe
331ssageHeader="' + detailItem.DecomissionedServiceMessageHeader + '"  data-decomMessage="' + detailItem.DecomissionedServiceMessage + '">' + detailItem.ServiceTemplateName + '</a>';
332            }
333            else {
334                detailsHtml += "<a  class='list-group-item item-gray' href='" + pageUrl + encQS + "' >" + detailItem.ServiceTemplateName + (detailItem.IsMarkedNew ? '<span class="badge new-service">New</span>' : '') + "</a>";
335            }
336        }
337
338
339        //debugger;
340
341        $("#RecentlyDetails").html(detailsHtml);
342    }
343}
344
345//function SearchServices(searchValue) {
346//    //debugger;
347//    var lst = $("#hdServicesResult").val();
348//    var lstObjs = JSON.parse(lst);
349
350//    var searchResult = $.grep(lstObjs.ServicesDetailsList, function (element, index) {
351//        return element.ServiceTemplateName.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
352//    });
353
354function BuildAutoComplete(isAuth) {
355
356    if (!$("#hdServicesResult").val()) return;
357
358    var arrData = [];
359    var mainObj = JSON.parse($("#hdServicesResult").val());
360    var pageUrl = '';
361
362    for (var j = 0; j < mainObj.AllServicesDetailsList.length; j++) {
363        var detailItem = mainObj.AllServicesDetailsList[j];
364        pageUrl = GetServiceUrl(detailItem.ServiceTemplateTypeID, isAuth);
365
366        var obj = {};
367        obj.label = detailItem.ServiceTemplateName;
368        obj.category = detailItem.LayoutCaption + ' - ' + detailItem.HeaderCaption;
369        var encQS = detailItem.EncryptedQS;
370
371        obj.item_link = pageUrl + encQS;
372
373        if (detailItem.IsObsolete) {
374            obj.newServiceName = detailItem.RedirectServiceTemplateName;
375            obj.obsoletedMessage = detailItem.ObseleteServiceMessage;
376            obj.IsObsolete = detailItem.IsObsolete;
377        }
378        else if (detailItem.IsDecomissioned) {
379            obj.newServiceName = detailItem.ServiceTemplateName;
380            obj.DecomissionedServiceMessageHeader = detailItem.DecomissionedServiceMessageHeader;
381            obj.DecomissionedServiceMessage = detailItem.DecomissionedServiceMessage;
382            obj.IsDecomissioned = detailItem.IsDecomissioned;
383        }
384
385        arrData.push(obj);
386    }
387
388    return arrData;
389
390}
391
392function enableBtnLoginUAEPASS() {
393    if ($("#chkboxUaepasslogin")[0].checked == true) {
394        $('#btnLoginUAEPASS').show();
395        $("#btnLoginUAEPASS").removeClass("disabled");
396        $('#btnLoginUAEPASS').prop('disabled', false);
397        $('#btnDisableLoginUAEPASS').hide();
398    }
399    else {
400        $('#btnLoginUAEPASS').prop('disabled', true);
401        $('#btnLoginUAEPASS').hide();
402        $('#btnDisableLoginUAEPASS').show();
403    }
404}
405
406
407
408function GetParentAccordion(ParentNumber, HeaderText, panelId, htmlFirstChildren) {
409
410    var parentNode = parentGroup;
411
412    if (ParentNumber == 0) {
413        parentNode = parentGroupFirstParent;
414    }
415
416    parentNode = parentNode.replaceAll("parentHeading", "parentHeading-" + panelId);
417    parentNode = parentNode.replaceAll("parentCollapse", "parentCollapse-" + panelId);
418    parentNode = parentNode.replaceAll("##parentSubAccordionId", "parentSubAccordionId-" + panelId);
419    parentNode = parentNode.replaceAll("##ParentTitle", HeaderText);
420
421    if (HeaderText == 'Owner Services') {
422        parentNode = parentNode.replaceAll("##ServiceIcon", 'OwnerIcon');
423    }
424    else if (HeaderText == 'General Services') {
425        parentNode = parentNode.replaceAll("##ServiceIcon", 'GeneralIcon');
426    }
427    else if (HeaderText == 'Consultant Services') {
428        parentNode = parentNode.replaceAll("##ServiceIcon.svg", 'ConsultantServices.png');
429    }
430    else if (HeaderText == 'Nakheel Contractor Services') {
431        parentNode = parentNode.replaceAll("##ServiceIcon.svg", 'NakheelContractorServices.png');
432    }
433    else if (HeaderText == 'TPD Contractor Services') {
434        parentNode = parentNode.replaceAll("##ServiceIcon.svg", 'TPDContractorServices.png');
435    }
436    else if (HeaderText == 'Authorities / Service Providers Services') {
437        parentNode = parentNode.replaceAll("##ServiceIcon.svg", 'AuthorityServiceProviders.png');
438    }
439    else {
440        parentNode = parentNode.replaceAll("##ServiceIcon", 'TenantIcon');
441    }
442
443    //parentNode = parentNode.replace("##childFirstGroup", htmlFirstChildren);
444
445    return parentNode;
446    //return HeaderText;
447}
448
449function GetFirstChild(HeaderText, panelId, parentId, htmlSecondChildren) {
450    let currentChild = childOneGroup;
451    currentChild = currentChild.replaceAll("childOneHeading", "childOneHeading-" + panelId);
452    //currentChild = currentChild.replaceAll("childOneCollapse", "childOneCollapse-" + panelId);
453    currentChild = currentChild.replaceAll("childOneCollapse", "childOneCollapse-" + panelId + "_" + parentId);
454    currentChild = currentChild.replaceAll("##parentSubAccordionId", "#parentSubAccordionId-" + parentId);
455    currentChild = currentChild.replaceAll("childOneAccordionId", "childOneAccordionId-" + panelId);
456
457    currentChild = currentChild.replaceAll("##FirstChildTitle", HeaderText);
458    //currentChild = currentChild.replace("##childTwoGroup", htmlSecondChildren);
459
460    return currentChild;
461    //return HeaderText;
462}
463
464function GetSecondChild(HeaderText, parentId, indexId) {
465    let currentChild = childTwoGroup;
466    //currentChild.replaceAll("headingOne", "headingOne" + parentId);
467    //currentChild.replaceAll("collapseOne", "collapseOne" + panelId);
468    currentChild = currentChild.replaceAll("##SecondChildTitle", HeaderText);
469
470    return currentChild;
471    //return HeaderText;
472}
473
474
475function SetServices(serviceResult, isAuth) {
476
477    if (serviceResult) {
478
479        var jObject = JSON.parse(serviceResult);
480        var sHtml = "";
481
482        // console.log("jObject.LayoutMasterList.length : " + jObject.LayoutMasterList.length);
483
484        for (var m = 0; m < jObject.LayoutMasterList.length; m++) {
485
486            //console.log("jObject.LayoutMasterList[" + m + "].DistinctHeadersList.length : " + jObject.LayoutMasterList[m].DistinctHeadersList.length);
487            //console.log(jObject.LayoutMasterList[m].DistinctHeadersList);
488
489
490            //1. Create a Parent
491            //var Parent = GetParentAccordion(jObject.LayoutMasterList[m].LayoutCaption, m, "");
492
493
494            var Parent = GetParentAccordion(m, jObject.LayoutMasterList[m].LayoutCaption, jObject.LayoutMasterList[m].ID, "");
495            var tempParentId = jObject.LayoutMasterList[m].ID;
496
497            //console.log("Parent  No: " + m + " - " + jObject.LayoutMasterList[m].LayoutCaption); 
498
499            var FinalFirstChildren = "";
500            for (var i = 0; i < jObject.LayoutMasterList[m].DistinctHeadersList.length; i++) {
501
502                var headerItem = jObject.LayoutMasterList[m].DistinctHeadersList[i];
503
504                //console.log(headerItem);
505
506                var detailsData = $.grep(jObject.AllServicesDetailsList, function (element, index) {
507                    return element.LayoutMasterID == jObject.LayoutMasterList[m].ID && element.LayoutHeaderID == headerItem.ID;
508                });
509
510
511                //var FirstChildren = GetFirstChild(headerItem.HeaderCaption, headerItem.ID, m, ""); // i 
512                var FirstChildren = GetFirstChild(headerItem.HeaderCaption, headerItem.ID, tempParentId, ""); // i -- tempParentId
513
514                //console.log(" >>> headerItem No : " + i + " - " + headerItem.HeaderCaption + " - " + headerItem.ID + " - detailsData.length :" + detailsData.length);
515                //console.log(detailsData);
516                if (detailsData && detailsData.length > 0) {
517
518                    var FinalSecondChildren = "";
519
520                    for (var j = 0; j < detailsData.length; j++) { //
521                        var detailItem = detailsData[j];
522
523                        //console.log(" >>>>>   detailItem No : " + j + " - " + detailItem.ServiceTemplateName);             
524
525                        var pageUrl = GetServiceUrl(detailsData[j].ServiceTemplateTypeID, isAuth);
526                        //var menuID =  getParameterByName("CurID");
527
528                        var encQS = detailItem.EncryptedQS;
529                        //var detailsHtml = "<a  class='btn-link' href='" + pageUrl + encQS + "' >" + detailItem.ServiceTemplateName + "</a>";
530                        var detailsHtml = '<a class="list-group-item" href=' + pageUrl + encQS + '>' + detailItem.ServiceTemplateName + '</a>';
531
532
533
534
535                        var divInformation = '';
536                        if (detailsData[j].ContentServiceTemplateID > 0) {
537
538                            var pageUrlForContentService = GetServiceUrl(3, isAuth);
539                            var onclickevent = "ShowForm(" + detailsData[j].ContentServiceTemplateID + ", '', '', 1)";
540                            divInformation = '<a class="Update" href="#" onclick="' + onclickevent + '" style="color: white;"><div style="display: inline-block; width: 10%;" class="fa fa-info-circle"></div></a>'
541                        }
542
543                        var detailsHtml = '';
544
545                        if (detailItem.IsObsolete) {
546                            var oburl = pageUrl + encQS;
547                            //var onclick = "BindObsoleteService("+ oburl +","+ detailItem.RedirectServiceTemplateName + ")";
548                            detailsHtml = '<div class="list-group-item" style="padding: 2rem 2rem;"><div style="display: inline-block; width: 90%;"><a class="obsoleteServiceCLS obsolete-servicesName" style="color: white; cursor: pointer;" data-url="' + oburl + '" data-serviceName="' + detailItem.RedirectServiceTemplateName + '" data-obsoleteMessage="' + detailItem.ObseleteServiceMessage + '">' + detailItem.ServiceTemplateName + '</a></div>' + divInformation + '</div> ';
549                        }
550                        else if (detailItem.IsDecomissioned) {
551                            detailsHtml = '<div class="list-group-item" style="padding: 2rem 2rem;"><div style="display: inline-block; width: 90%;"><a class="decomServiceCLS decom-servicesName" style="color: white; cursor: pointer;" data-serviceName="' + detailItem.ServiceTemplateName + '"  data-decomMe
551ssageHeader="' + detailItem.DecomissionedServiceMessageHeader + '"   data-decomMessage="' + detailItem.DecomissionedServiceMessage + '">' + detailItem.ServiceTemplateName + '</a></div>' + divInformation + '</div> ';
552                        }
553                        else {
554                            detailsHtml = '<div class="list-group-item" style="padding: 2rem 2rem;"><div style="display: inline-block; width: 90%;"><a style="color: white;" href=' + pageUrl + encQS + '>' + detailItem.ServiceTemplateName + (detailItem.IsMarkedNew ? '<span class="badge new-service">New</span>' : '') + '</a>' + '</div>' + divInformation + '</div> ';;
555                        }
556
557                        //FinalSecondChildren += GetSecondChild(detailsHtml, headerItem.LauoutDetailsID, j); //i
558                        FinalSecondChildren += GetSecondChild(detailsHtml, headerItem.ID, j); //i
559
560                        //FinalSecondChildren += GetSecondChild(detailItem.ServiceTemplateName, headerItem.LauoutDetailsID, j); //i
561                    }
562
563
564                    //FinalFirstChildren += GetFirstChild(headerItem.HeaderCaption, i, m, FinalSecondChildren);
565                    FirstChildren = FirstChildren.replace("##childTwoGroup", FinalSecondChildren);
566                }
567
568                FinalFirstChildren += FirstChildren;
569                //Parent = GetParentAccordion(jObject.LayoutMasterList[m].LayoutCaption, m, FinalFirstChildren); 
570            }
571
572            Parent = Parent.replace("##childFirstGroup", FinalFirstChildren);
573            sHtml += Parent;
574        }
575
576
577        $('#divServices').html(sHtml);
578
579        BindPopularServices(jObject.PopularServicesList, isAuth);
580        BindRecentlyServices(jObject.RecentlyServicesList, isAuth);
581    }
582    else {
583
584        //alert('error!');
585        // There are no headers under this menu item
586        $.alert({
587            content: 'We are experiencing an internal system error; Please try again. (Error Code:1004)', title: 'Error'
588            , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-remove'
589            , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary', columnClass: 'col-xs-12'
590        });
591    }
592
593}
594
595$(function () {
596    $("a[class='Update']").click(function () {
597        $("#MyPopup").modal("show");
598        return false;
599    });
600});
601
602
603function ShowForm(serviceID, name, srvcName, systemId) {
604
605    var strdateids = '';
606    var obj = {};
607    obj.serviceTemplateID = serviceID;
608    obj.status = 'Active';
609    obj.systemID = systemId;
610
611    // Success Method
612    var successAction = function (jObject) {
613
614        $("#txtServiceTemplateFieldData").val(JSON.stringify(jObject));
615        var jObject = JSON.parse($("#txtServiceTemplateFieldData").val());
616
617        var sformStart = ' <form class="form-horizontal col-md-12" style="background-color:white;"> '
618
619
620
621        var sfrmEndCombo = '';
622        var sfrmEndBtn = '';
623        //var sfrmEndBtn = '<div class="form-group">'
624        //                    + '<div class="btn-toolbar pull-right">'
625        //                    + '<button type="button" class="btn btn-primary" onclick="cancelForm()">Return Back</button>'
626        //                    + '</div>'
627        //                    + '</div>';
628
629
630        var sHtml = "";
631
632        var sName = '';
633        var sTitle = '';
634        var sGroupName = '';
635
636        //jObject.FetchServiceTemplateParametersResult.sort(function (a, b) {
637        //    var aID = a.ServiceTemplateParameterOrder;
638        //    var bID = b.ServiceTemplateParameterOrder;
639        //    return (aID == bID) ? 0 : (aID > bID) ? 1 : -1;
640        //});
641
642
643        if (!jObject.FetchServiceTemplateParametersResult || jObject.FetchServiceTemplateParametersResult.length == 0) {
644            $.alert({
645                content: 'We are experiencing an internal system error; Please try again. (Error Code:1001)', title: 'Error'
646                , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-remove'
647                , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary', columnClass: 'col-xs-12'
648                , confirm: function () { window.location.href = baseMainUrl + 'ErrorPage.as
648px'; }
649                , cancel: function () { window.location.href = baseMainUrl + 'ErrorPage.aspx'; }
650            });
651        }
652
653        for (var i = 0; i < jObject.FetchServiceTemplateParametersResult.length; i++) {
654
655            if (i === 0) {
656
657                if (jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateTypeID != varContentId) {
658                    $.alert({
659                        content: 'We are experiencing an internal system error; Please try again. (Error Code:1002)', title: 'Error'
660                        , animationBounce: 2, animationSpeed: 1500, theme: 'supervan', icon: 'glyphicon glyphicon-remove'
661                        , backgroundDismiss: true, confirmButton: 'OK', confirmButtonClass: 'btn-primary', columnClass: 'col-xs-12'
662                        , confirm: function () { window.location.href = baseMainUrl + 'ErrorPage.aspx'; }
663                        , cancel: function () { window.location.href = baseMainUrl + 'ErrorPage.aspx'; }
664                    });
665                }
666
667
668                sName = jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateName;
669                sTitle = jObject.FetchServiceTemplateParametersResult[i].Title;
670                sGroupName = jObject.FetchServiceTemplateParametersResult[i].GroupName;
671                /*$("#labelId").text($(this).val());*/
672                $('#lblTitle').html(sName);
673
674                //var cont = FillRowContent('divGeneralInformation', jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterValue, jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterType, '');;
675                var cont = FillRowContent('divGeneralInformation', jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterName, jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterValue, jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterType, '');
676                if (cont)
677                    sHtml = sHtml + cont;
678
679
680            }
681            else {
682                //TODO From Admin Module
683                //var imgPath = '=ResolveClientUrl("~/Assets/Images/")%>' + jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterIcon;
684
685                //var imgPath = '=ResolveClientUrl("~/Assets/Images/")%>' + 'ico-docs-reqd.png';
686                var cont = FillRowContent('divTEXT', jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterName, jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterValue, jObject.FetchServiceTemplateParametersResult[i].ServiceTemplateParameterType, '');
687
688                if (cont)
689                    sHtml = sHtml + cont;
690
691
692            }
693
694
695        }
696
697        // debugger;
698        var finalHTML = sformStart + sHtml + "</form>";
699
700        var varPgTitle = 'testing title';
701        sGroupName = varPgTitle;
702
703        $("#divDynamicForm").html('');
704        $("#divDynamicForm").html(finalHTML);
705        $("#divDynamicForm").show();
706
707        $('#modalRegister').modal('show');
708
709    }
710    CallRestMethod('RestServices.svc/FetchServiceTemplateParameters', JSON.stringify(obj), successAction, 'POST', sessionStorage.pKey, true);
711
712
713    return;
714
715}
716
717function FillRowContent(divName, lblName, ContentText, parType, imgPath) {
718
719    if (isTextInput(parType)) {
720        var stemp = $("#" + divName).html();
721        return stemp.replace("##lbl##", lblName).replace("##sometext##", ContentText).replace("##IMGPATH##", imgPath);
722    }
723    else if (isAttachment(parType)) {
724        var stringAttachment = 'N/A';
725        if (ContentText && ContentText != '') {
726            stringAttachment = "<a  class='btn btn-primary btn-sm' onclick=\"downloadattachment('" + ContentText + "');\" href='#'>"
727                //+ "<span class='glyphicon glyphicon-arrow-down'></span>"
728                + "<span class=''><i class='fa fa-download' ></i></span>"
729                + "&nbsp;Download&nbsp;&nbsp;</a>";
730        }
731
732
733        var stemp = $("#" + divName).html();
734        return stemp.replace("##lbl##", lblName).replace("##sometext##", stringAttachment);//.replace("##IMGPATH##", imgPath);
735    }
736}
737
738function isTextInput(type) {
739    return type.toUpperCase() == "TEXT".toUpperCase()
740        || type.toUpperCase() == "LONGTEXT".toUpperCase()
741        || type.toUpperCase() == "NUMBER".toUpperCase()
742        || type.toUpperCase() == "EMAIL".toUpperCase()
743        || type.toUpperCase() == "AMOUNT".toUpperCase()
744}
745
746function isAttachment(type) {
747    return type.toUpperCase() == "ATTACHMENT".toUpperCase()
748}
749
750function downloadattachment(aID) {
751
752    document.getElementById('txtAttachmentID').value = aID;
753    document.getElementById(varBtnDownloadId).click();
754    return;
755
756}
757
758function openDecom(serviceName, message, messageHeader) {
759    $("#decomMessageHeader").text('');
760    $("#decomMessageHeader").text(messageHeader);
761    $("#decomMessage").text('');
762    $("#decomMessage").html(message.replace('[insert email]', '<a href="mailto:[email protected]?subject=' + serviceName +'">[email protected]</a>'));
763    $("#decom-services").modal("show");
764}

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.