PageSourceSearch

https://www.startupindia.gov.in/sih/themes/custom/startup_india/js/partnership.js?tlvjxs

js startupindia.gov.in collected 2026-09-24 15:24:21 UTC 17,816 bytes, 598 lines download raw bytes

1(function ($, Drupal, drupalSettings) {
2  $(function () {
3    var owl = $("#currentcampaigns");
4    owl.owlCarousel({
5      margin: 10,
6      loop: true,
7      nav: true,
8      dots: false,
9      responsive: {
10        0: {
11          items: 1,
12        },
13
14        600: {
15          items: 1,
16        },
17
18        1024: {
19          items: 1,
20        },
21
22        1366: {
23          items: 1,
24        },
25      },
26    });
27    var owls = $("#casestudy");
28    owls.owlCarousel({
29      items: 3,
30      margin: 10,
31      loop: true,
32      nav: true,
33      dots: false,
34      responsive: {
35        0: {
36          items: 1,
37        },
38
39        600: {
40          items: 2,
41        },
42
43        1024: {
44          items: 3,
45        },
46
47        1366: {
48          items: 3,
49        },
50      },
51    });
52  });
53
54  var testimonials = $(".testimonials");
55  testimonials.owlCarousel({
56    items: 1,
57    merge: true,
58    loop: true,
59    margin: 10,
60    video: true,
61    lazyLoad: true,
62    nav: true,
63    dots: false,
64    center: true,
65    responsive: {
66      480: {
67        items: 1,
68      },
69      600: {
70        items: 1,
71      },
72      991: {
73        items: 1,
74      },
75    },
76    onTranslate: function (event) {
77      var currentSlide, player, command;
78      currentSlide = $(".owl-item.active");
79      player = currentSlide.find(".item-video iframe").get(0);
80      command = {
81        event: "command",
82        func: "pauseVideo",
83      };
84      if (player != undefined) {
85        player.contentWindow.postMessage(JSON.stringify(command), "*");
86      }
87    },
88  });
89
90  $(document).ready(function () {
91    let SIH_API = drupalSettings.SIH_API_PATH;
92    let PAGE_URL = drupalSettings.PAGE_URL;
93    // Load Featured Program
94    let AllFeaturedProgram = [];
95    function BindFeaturedProgram() {
96      $(".owl-carouselThree").empty();
97      $(".owl-carouselThree").show();
98      var data = AllFeaturedProgram;
99      data = AllFeaturedProgram.filter((a) => a.featureProgram == true);
100
101      let sc = "'";
102      $.each(data, function (i, v) {
103        let dateString =
104          new Date(v.endDate).getFullYear() +
105          "-" +
106          (new Date(v.endDate).getMonth() < 9 ? "0" : "") +
107          (new Date(v.endDate).getMonth() + 1) +
108          "-" +
109          (new Date(v.endDate).getDate() < 10 ? "0" : "") +
110          "" +
111          new Date(v.endDate).getDate();
112        let givenDate = new Date(dateString + " 23:59:59");
113        let currentDate = new Date();
114        let timeDifference = givenDate - currentDate;
115        let daysLeft = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
116
117        let card = '<div class="item">';
118        card +=
119          '    <a target="_blank" href="' +
120          PAGE_URL +
121          "/content/sih/en/ams-application/" +
122          v.type.toLowerCase().replace(/_/g, "-") +
123          ".html?applicationId=" +
124          v.id +
125          '">';
126        card += '        <div class="card">';
127        card += '            <div class="bage-card">';
128        card +=
129          '                <img class="ams-badge" title="Featured program" src="https://www.startupindia.gov.in/content/dam/invest-india/ams-badge.png">';
130        card += "            </div>";
131        card += '            <div class="card-img-top">';
132        card +=
133          '                <img src="https://api.startupindia.gov.in/sih/api/file/ams/banner/logo?fileName=' +
134          v?.bannerImage?.compressedFileName +
135          '" alt="' +
136          v.title +
137          '" onerror="this.src=' +
138          sc +
139          "https://www.startupindia.gov.in/content/dam/invest-india/no-image-found.jpg" +
140          sc +
141          '">';
142        // card += '                <img src="' + SIH_API + '/sih/api/file/ams/banner/logo?fileName=' + v?.bannerImage?.compressedFileName + '" alt="' + v.title + '" onerror="this.src=' + sc + 'https://www.startupindia.gov.in/content/dam/invest-india/no-image-found.jpg' + sc + '">';
143        card += '                    <div class="product-contnet">';
144        card +=
145          '<div class="apply-days-left ' +
146          (daysLeft <= 0 ? "complete-prog" : "") +
147          '">';
148        if (daysLeft > 0) {
149          card += '    <div class="apply-buy">';
150          card += "        <h4>Apply By</h4>";
151          card +=
152            '        <label style="color:white;">' + dateString + "</label>";
153          card += "    </div>";
154          card += '    <div class="days-left">';
155          card += "         <h4>Day Left</h4>";
156          card +=
157            '         <label style="color:white;">' + daysLeft + "</label>";
158          card += "    </div>";
159        } else {
160          card += '    <div class="apply-buy">';
161          card += "        <h4>Closed</h4>";
162          card += "    </div>";
163        }
164        card += "</div>";
165        card += "                    </div>";
166        card += "            </div>";
167        card += '            <div class="card-body d-flex">';
168        card += '                <div class="card-subtitle d-flex">';
169        card +=
170          '                    <h5 class="card-title d-flex">' +
171          v.title +
172          "</h5>";
173        card += "                </div>";
174        card += "            </div>";
175        card += "        </div>";
176        card += "    </a>";
177        card += "</div>";
178        $(".owl-carouselThree").append(card);
179      });
180      if (data.length > 3) {
181        let owl = $("#featuredprogram");
182        owl.owlCarousel({
183          margin: 10,
184          autoplay: true,
185          autoplayTimeout: 4000,
186          loop: true,
187          nav: true,
188          dots: false,
189          responsive: {
190            0: {
191              items: 1,
192            },
193
194            600: {
195              items: 2,
196            },
197
198            767: {
199              items: 2,
200            },
201
202            768: {
203              items: 2,
204            },
205
206            1000: {
207              items: 3,
208            },
209          },
210        });
211      } else if (data.length == 0) {
212        $(".owl-carouselThree").html(
213          '<img src="/sih/themes/custom/startup_india/images/noresult.png" style="height: 200px;margin: 0 auto;display:flex">'
214        );
215      } else if (data.length == 1) {
216        let owl = $("#featuredprogram");
217        owl.owlCarousel({
218          margin: 10,
219          loop: false,
220          rewind: true,
221          center: true,
222          nav: false,
223          dots: false,
224          responsive: {
225            0: {
226              items: 1,
227              nav: true,
228            },
229
230            600: {
231              items: 2,
232              nav: true,
233            },
234
235            1000: {
236              items: 3,
237              nav: false,
238            },
239          },
240        });
241      } else {
242        let owl = $("#featuredprogram");
243        owl.owlCarousel({
244          margin: 10,
245          loop: false,
246          rewind: true,
247          nav: false,
248          dots: false,
249          responsive: {
250            0: {
251              items: 1,
252              autoplay: true,
253              autoplayTimeout: 4000,
254              nav: true,
255            },
256
257            600: {
258              items: 2,
259              autoplay: true,
260              autoplayTimeout: 4000,
261              nav: true,
262            },
263
264            1000: {
265              items: 3,
266              nav: false,
267            },
268          },
269        });
270      }
271    }
272
273    function GetAllFeaturedProgram() {
274      $.ajax({
275        url:
276          SIH_API + "/sih/api/noauth/ams/application/getFeaturedProgram/true",
277        type: "GET",
278        contentType: "application/json",
279        crossDomain: true,
280        success: function (res) {
281          AllFeaturedProgram = res.data;
282          BindFeaturedProgram();
283        },
284      });
285    }
286    if ($(".owl-carouselThree")[0] != undefined) {
287      GetAllFeaturedProgram();
288    }
289
290    var el = $(".our-partner");
291
292    var carousel;
293    var carouselOptions = {
294      margin: 20,
295      nav: true,
296      loop: false,
297      dots: false,
298      slideBy: "page",
299      responsive: {
300        0: {
301          items: 2,
302          rows: 2,
303        },
304        500: {
305          items: 2,
306          rows: 2,
307        },
308        768: {
309          items: 3,
310          rows: 2,
311        },
312        991: {
313          items: 5,
314          rows: 2,
315        },
316      },
317    };
318
319    //Taken from Owl Carousel so we calculate width the same way
320    var viewport = function () {
321      var width;
322      if (
323        carouselOptions.responsiveBaseElement &&
324        carouselOptions.responsiveBaseElement !== window
325      ) {
326        width = $(carouselOptions.responsiveBaseElement).width();
327      } else if (window.innerWidth) {
328        width = window.innerWidth;
329      } else if (
330        document.documentElement &&
331        document.documentElement.clientWidth
332      ) {
333        width = document.documentElement.clientWidth;
334      } else {
335        console.warn("Can not detect viewport width.");
336      }
337      return width;
338    };
339
340    var severalRows = false;
341    var orderedBreakpoints = [];
342    for (var breakpoint in carouselOptions.responsive) {
343      if (carouselOptions.responsive[breakpoint].rows > 1) {
344        severalRows = true;
345      }
346      orderedBreakpoints.push(parseInt(breakpoint));
347    }
348
349    //Custom logic is active if carousel is set up to have more than one row for some given window width
350    if (severalRows) {
351      orderedBreakpoints.sort(function (a, b) {
352        return b - a;
353      });
354      var slides = el.find("[data-slide-index]");
355      var slidesNb = slides.length;
356      if (slidesNb > 0) {
357        var rowsNb;
358        var previousRowsNb = undefined;
359        var colsNb;
360        var previousColsNb = undefined;
361
362        //Calculates number of rows and cols based on current window width
363        var updateRowsColsNb = function () {
364          var width = viewport();
365          for (var i = 0; i < orderedBreakpoints.length; i++) {
366            var breakpoint = orderedBreakpoints[i];
367            if (width >= breakpoint || i == orderedBreakpoints.length - 1) {
368              var breakpointSettings =
369                carouselOptions.responsive["" + breakpoint];
370              rowsNb = breakpointSettings.rows;
371              colsNb = breakpointSettings.items;
372              break;
373            }
374          }
375        };
376
377        var updateCarousel = function () {
378          updateRowsColsNb();
379
380          //Carousel is recalculated if and only if a change in number of columns/rows is requested
381          if (rowsNb != previousRowsNb || colsNb != previousColsNb) {
382            var reInit = false;
383            if (carousel) {
384              //Destroy existing carousel if any, and set html markup back to its initial state
385              carousel.trigger("destroy.owl.carousel");
386              carousel = undefined;
387              slides = el.find("[data-slide-index]").detach().appendTo(el);
388              el.find(".fake-col-wrapper").remove();
389              reInit = true;
390            }
391
392            //This is the only real 'smart' part of the algorithm
393
394            //First calculate the number of needed columns for the whole carousel
395            var perPage = rowsNb * colsNb;
396            var pageIndex = Math.floor(slidesNb / perPage);
397            var fakeColsNb =
398              pageIndex * colsNb +
399              (slidesNb >= pageIndex * perPage + colsNb
400                ? colsNb
401                : slidesNb % colsNb);
402
403            //Then populate with needed html markup
404            var count = 0;
405            for (var i = 0; i < fakeColsNb; i++) {
406              //For each column, create a new wrapper div
407              var fakeCol = $('<div class="fake-col-wrapper"></div>').appendTo(
408                el
409              );
410              for (var j = 0; j < rowsNb; j++) {
411                //For each row in said column, calculate which slide should be present
412                var index =
413                  Math.floor(count / perPage) * perPage +
414                  (i % colsNb) +
415                  j * colsNb;
416                if (index < slidesNb) {
417                  //If said slide exists, move it under wrapper div
418                  slides
419                    .filter("[data-slide-index=" + index + "]")
420                    .detach()
421                    .appendTo(fakeCol);
422                }
423                count++;
424              }
425            }
426            //end of 'smart' part
427
428            previousRowsNb = rowsNb;
429            previousColsNb = colsNb;
430
431            if (reInit) {
432              //re-init carousel with new markup
433              carousel = el.owlCarousel(carouselOptions);
434            }
435          }
436        };
437
438        //Trigger possible update when window size changes
439        $(window).on("resize", updateCarousel);
440
441        //We need to execute the algorithm once before first init in any case
442        updateCarousel();
443      }
444    }
445
446    //init
447    carousel = el.owlCarousel(carouselOptions);
448
449    // prevent carousal slider change once button disabled
450    // $(".our-partner-wrapper .owl-next").css("pointer-events", "auto");
451    $(".our-partner-wrapper .owl-prev").css("pointer-events", "none");
452    $(".our-partner-wrapper .owl-next").on("click", function () {
453      if ($(this).hasClass("disabled")) {
454        $(this).css("pointer-events", "none");
455      } else {
456        $(this).css("pointer-events", "auto");
457      }
458      $(".our-partner-wrapper .owl-prev").css("pointer-events", "auto");
459    });
460    $(".our-partner-wrapper .owl-prev").on("click", function () {
461      if ($(this).hasClass("disabled")) {
462        $(this).css("pointer-events", "none");
463      } else {
464        $(this).css("pointer-events", "auto");
465      }
466      $(".our-partner-wrapper .owl-next").css("pointer-events", "auto");
467    });
468  });
469
470  var recognitionApiPrefix = drupalSettings.RECOGNITION_API_PATH;
471  // countlist API
472  // function formatNumber(inputNumber) {
473  //     let counterValue = parseInt(inputNumber);
474  //     const options = {
475  //         style: 'decimal',
476  //         minimumFractionDigits: 0,
477  //         maximumFractionDigits: 0,
478  //     };
479  //     return counterValue.toLocaleString('en-IN', options) + '+';
480  // }
481
482  function formatNumber(inputNumber) {
483    let numberStr = inputNumber;
484    const hasPlusSign = numberStr.endsWith("+");
485    if (!hasPlusSign) {
486      numberStr = numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + "+";
487    }
488    return numberStr;
489  }
490
491  var settings = {
492    url: `${recognitionApiPrefix}/application/fetchStaticDynamicCountList`,
493    method: "POST",
494    timeout: 0,
495    headers: {
496      "Access-Control-Allow-Origin": "*",
497      "Content-Type": "application/json",
498      "cache-control": "no-cache, no-store, max-age=0, must-revalidate",
499    },
500    data: JSON.stringify([
501      "internationalBridges",
502      "exclusivePrograms",
503      "individualInnovators",
504      "startupsBenefitted",
505      "diipCount",
506      "worthBenefitsDisbursed",
507    ]),
508  };
509
510  $.ajax(settings).done(function (response) {
511    if (response["status"]) {
512      APIDataResponse = response["data"];
513      APIData = APIDataResponse;
514
515      const diipCount = APIData["diipCount"]
516        ? formatNumber(APIData["diipCount"])
517        : "Unidentified";
518      const innovatorsCount = APIData["individualInnovators"]
519        ? formatNumber(APIData["individualInnovators"])
520        : "Unidentified";
521      const startupsCount = APIData["startupsBenefitted"]
522        ? formatNumber(APIData["startupsBenefitted"])
523        : "Unidentified";
524      const programCount = APIData["exclusivePrograms"]
525        ? formatNumber(APIData["exclusivePrograms"])
526        : "Unidentified";
527      const bridgeCount = APIData["internationalBridges"]
528        ? APIData["internationalBridges"]
529        : "Unidentified";
530      const distributedBenifitsCount = APIData["worthBenefitsDisbursed"]
531        ? `INR ${APIData["worthBenefitsDisbursed"]} CR`
532        : "INR 95 CR";
533      $(".diip-count").text(diipCount);
534      $(".innovators-count").text(innovatorsCount);
535      $(".startups-count").text(startupsCount);
536      $(".programs-count").text(programCount);
537      $(".bridges-count").text(bridgeCount);
538      $(".benifits-count").text(distributedBenifitsCount);
539    }
540  });
541
542  function toggleCardContent(event) {
543    event.preventDefault();
544    $(this).toggleClass("arrow-up");
545    $(this).next().slideToggle();
546  }
547
548  $(window)
549    .resize(function () {
550      if ($(window).width() <= 900) {
551        $(".homeEvents h3.min-height")
552          .off("click", toggleCardContent)
553          .on("click", toggleCardContent);
554      } else {
555        $(".homeEvents h3.min-height").off("click", toggleCardContent);
556      }
557    })
558    .resize();
559})(jQuery, Drupal, drupalSettings);
560
561function labnolIframe(div) {
562  var iframe = document.createElement("iframe");
563  iframe.setAttribute(
564    "src",
565    "https://www.youtube.com/embed/" +
566      div.dataset.id +
567      "?autoplay=1&enablejsapi=1"
568  );
569  iframe.setAttribute("frameborder", "0");
570  iframe.setAttribute("allowfullscreen", "1");
571  iframe.setAttribute(
572    "allow",
573    "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
574  );
575  div.parentNode.replaceChild(iframe, div);
576}
577
578function initYouTubeVideos() {
579  var playerElements = document.querySelectorAll(".youtube-player");
580  for (var n = 0; n < playerElements.length; n++) {
581    var videoId = playerElements[n].dataset.id;
582    var div = document.createElement("div");
583    div.setAttribute("data-id", videoId);
584    var thumbNode = document.createElement("img");
585    thumbNode.src = "//i.ytimg.com/vi/ID/hqdefault.jpg".replace("ID", videoId);
586    thumbNode.alt = "video Thumbnail";
587    div.appendChild(thumbNode);
588    var playButton = document.createElement("div");
589    playButton.setAttribute("class", "play");
590    div.appendChild(playButton);
591    div.onclick = function () {
592      labnolIframe(this);
593    };
594    playerElements[n].appendChild(div);
595  }
596}
597
598document.addEventListener("DOMContentLoaded", initYouTubeVideos);

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.