PageSourceSearch

https://iribtv.ir/fffffff_files/irib-app-bundle.js

js iribtv.ir collected 2026-10-02 12:15:27 UTC 25,818 bytes, 553 lines download raw bytes

1function validateEmail(e) {
2    return !!/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test(e)
3} ! function (e, t) {
4    window.m3gCOverlay = {
5        show: function () {
6            e(".m3g-overlay-wrapper").addClass("m3g-overlay-show")
7        },
8        hide: function () {
9            e(".m3g-overlay-wrapper").removeClass("m3g-overlay-show")
10        }
11    }, e(function () {
12        "#show-login-modal" == window.location.hash && a()
13    }), jQuery.fn.centerElement = function () {
14        return this.css("position", "absolute"), this.css("top", Math.max(0, (e(window).height() - e(this).outerHeight()) / 2 + e(window).scrollTop()) + "px"), this.css("left", Math.max(0, (e(window).width() - e(this).outerWidth()) / 2 + e(window).scrollLeft()) + "px"), this
15    }, e(document.body).on("click", ".m3g-overlay", function (t) {
16        t.target == this && e(this).fadeOut(300, function () {
17            e(this).remove()
18        })
19    }), e(document.body).on("click", ".close-modal", function (t) {
20        var a = e(this),
21            i = a.data("target");
22        if ("parent" == i) n = a.parent();
23        else var n = e(i);
24        n.length && n.fadeOut(300, function () {
25            e(this).remove()
26        })
27    });
28    var a = function (e) { };
29    e(document.body).on("click", ".login-link.FAKE", function (t) {
30        t.preventDefault();
31        var i = e(this),
32            n = i.attr("href");
33        if (i.hasClass("loading") || e(".m3g-modal").length) return !1;
34        e("body").remove(".m3g-overlay"), i.addClass("loading"), a(n)
35    }), e(document.body).on("click", ".m3g-form .m3g-submit", function (t) {
36        t.preventDefault();
37        e(this).closest("form").find("input, select")
38    }), e(".sign-up-form-wrapper".length) && (e("#ProvinceId").on("change", function () {
39        var t = e(this),
40            a = t.val();
41        if (!a) return !1;
42        m3gCOverlay.show(), e.ajax({
43            url: "/PrayerTime/GetAllCity",
44            method: "get",
45            data: {
46                provinceId: a
47            },
48            success: function (t) {
49                var a = e("#CityId"),
50                    i = a.data("selected-city"),
51                    n = e("<select />");
52                for (key in t) {
53                    var r = t[key],
54                        o = e("<option>").val(r.Id).text(r.Name).attr("data-province", r.ProvinceId);
55                    i == r.Id && o.attr("selected", "selected"), n.append(o)
56                }
57                a.html(n.html()), m3gCOverlay.hide()
58            },
59            error: function () {
60                alert("مشکلی در زمان دریافت لیست شهرها رخ داد! لطفا مجددا تلاش نمایید."), t.val(t.children("option").first().val()), m3gCOverlay.hide()
61            }
62        })
63    }), e(function () {
64        e("#ProvinceId").trigger("change")
65    })), e(function () {
66        e("*[data-if-logged-in]").each(function () {
67            var t = e(this),
68                a = {},
69                i = String(t.data("if-logged-in")).replace(/'/g, '"');
70            try {
71                a = JSON.parse(i)
72            } catch (e) {
73                console.log("Error parsing data-if-logged-in", t, e)
74            }
75            for (key in a) {
76                var n = a[key];
77                switch (key) {
78                    case "visible":
79                        isLoggedIn && !n ? t.hide() : isLoggedIn && n && t.show();
80                        break;
81                    case "attributes":
82                        for (attrIndex in n) {
83                            var r = n[attrIndex];
84                            (r.loginStatus && isLoggedIn || !r.loginStatus && !isLoggedIn) && t.attr(r.name, r.value)
85                        }
86                }
87            }
88        })
89    })
90}(jQuery, Mustache), Math.trunc = Math.trunc || function (e) {
91    return isNaN(e) ? NaN : e > 0 ? Math.floor(e) : Math.ceil(e)
92},
93    function (e, t) {
94        var a = e(".conductor-list-wrapper"),
95            i = a.find("li"),
96            n = {
97                formatTime: function (e) {
98                    if (e.length < 6) return null;
99                    var t = e.split(":"),
100                        a = new Date;
101                    return a.setHours(t[0]), a.setMinutes(t[1]), a.setSeconds(0), a
102                },
103                formatIt: function (e) {
104                    for (key in e.formatted) e.formatted[key] = n.formatTime(e[key])
105                }
106            };
107        if (0 == i.length) return a.closest(".m3g-conductor").hide(), !1;
108        var r = 0;
109        i.each(function (t, a) {
110            var i = e(a),
111                o = i.hasClass("now");
112            Tipped.create(i, function (e) {
113                return {
114                    title: i.find(".title").text(),
115                    content: i.find(".description")
116                }
117            }, {
118                skin: "light",
119                radius: !1
120            });
121            var s = {
122                start: i.data("start"),
123                end: i.data("end"),
124                formatted: {
125                    start: null,
126                    end: null
127                }
128            };
129            i.siblings('li[data-start="' + s.start + '"][data-end="' + s.end + '"]').remove(), n.formatIt(s);
130            var l = (s.formatted.end - s.formatted.start) / 1e3 / 60;
131            i.attr("data-duration", l);
132            var d = e("<div />").addClass("start text-center").text(s.start.substr(0, 5));
133            e("<div />").addClass("end text-center").text(s.end.substr(0, 5));
134            i.prepend(d), o && i.append(e("<div />").addClass("now-indicator").text("هم اکنون"));
135            var c = l < 50 ? 3 : 1,
136                u = o ? "auto" : Math.trunc(l * c);
137            if (i.css("width", u), o && i.width() < 100 && (u = 100, i.css("width", u)), u < 60) {
138                i.addClass("too-small");
139                var p = i.prev("li");
140                i.index() > 0 && p.width() < 60 && !p.hasClass("too-small-rightafter") && i.addClass("too-small-rightafter"), u < 0 && (u = 0)
141            }
142            r += isNaN(parseInt(u)) ? 3 * i.width() : parseInt(1.1 * u)
143        });
144        var o = a.css({
145            width: r
146        }).parent();
147        o.css({
148            width: "100%",
149            overflow: "hidden"
150        }).mCustomScrollbar({
151            scrollButtons: !0,
152            theme: "dark",
153            autoExpandHorizontalScroll: !0,
154            axis: "x",
155            callbacks: {
156                onInit: function () {
157                    for (var t = e(this.children[0]).find(".now").first(), a = 0; t.next("li").length && a++ < 1;) t = t.next("li");
158                    o.mCustomScrollbar("scrollTo", t, {
159                        scrollInertia: 3e3,
160                        timeout: 1e3
161                    })
162                }
163            }
164        })
165    }(jQuery, false), $(function () {
166        var e = 300;
167        /*kazem*/
168        /*$.browser.mobile && $("body").width() <= 768 && (e = 180),*/ $("#top-slider").sliderPro({
169            width: "100%",
170            height: e,
171            autoHeight: !1,
172            fade: !0,
173            arrows: !0,
174            buttons: !1,
175            fullScreen: !1,
176            thumbnailWidth: "10%",
177            thumbnailHeight: 60,
178            thumbnailArrows: !0,
179            autoplay: !0
180        }
180), $("a.sp-thumbnail-text").click(function (e) {
181            var t = $(this);
182            t.attr("target", "_blank"), window.open(t.attr("href"))
183        }), $(".VideoLink").click(function () {
184            var e = $(this).attr("data-value"),
185                t = $(this).attr("data-pic"),
186                a = $("#HomePageVideo").height();
187            $("#HomePageVideo").attr("src", e), $("#HomePageVideo").attr("poster", t), $("#HomePageVideo")[0].load(), $("#HomePageVideo").css({
188                minHeight: a
189            })
190        });
191        
192        var t = [];
193     
194       //kazem new MobileDetect(window.navigator.userAgent);
195        var a = $(".quiz-modal-wrapper");
196        if (a.length) {
197            var i = function () {
198                Cookies.get("no-quiz-modal") || Cookies.set("no-quiz-modal", 1, {
199                    expires: 1,
200                    path: ""
201                }), a.fadeOut(200, function () {
202                    a.remove()
203                })
204            };
205            Cookies.get("no-quiz-modal") || a.removeClass("hidden"), a.on("click", '[data-role="close"]', i), $(".modal-quize-button-join").click(function () {
206                var e = $(this).data("href");
207                Cookies.set("no-quiz-modal", 1, {
208                    expires: 1,
209                    path: ""
210                }), window.location = e
211            }), $("body").keyup(function (e) {
212                27 == e.which && i()
213            })
214        }
215    }), window.previewFile = function (e, t) {
216        if (e.files && e.files[0]) {
217            var a = new FileReader;
218            a.onload = function (e) {
219                t.attr("src", e.target.result)
220            }, a.readAsDataURL(e.files[0])
221        }
222    }, $(document).ready(function () {
223        /*kazem $.browser.android && ($(".mobile-app-bar").removeClass("hide"), $(".mobile-app-bar .item.android").removeClass("hide").show()), "iphone" !== $.browser.platform && "ipad" !== $.browser.platform || ($("body").addClass("ios"), $(".mobile-app-bar").removeClass("hide"), $(".mobile-app-bar .item.ios").removeClass("hide").show());*/
224        ! function () {
225            var e = function (e, t) {
226                t && t.length > 0 && $.each(t, function (t, a) {
227                    e.toggleClass(a)
228                })
229            },
230                t = function (e, t) {
231                    t && t.length > 0 && $.each(t, function (t, a) {
232                        e.removeClass(a)
233                    })
234                };
235            if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) a = "click";
236            else var a = "click";
237            $(document).on(a, "[role=toggleClass]", function () {
238                var a = this,
239                    i = $(this),
240                    n = $(a).data("target"),
241                    r = $(a).data("toggle-class").split(","),
242                    o = $(a).data("auto-hide"),
243                    s = $(a).data("body-class"),
244                    l = $(a).data("self-toggle-class");
245                l && (l = l.split(",")), a.hideTimer && clearInterval(a.hideTimer), e(i, l), e($(n), r), e($("body"), [s]), e($("html"), [s]), o && parseInt(o) > 0 && (a.hideTimer = setTimeout(function () {
246                    t(i, l), t($(n), r)
247                }, o), $(document).bind("click", function (e) {
248                    $(e.target).is(a) || jQuery.contains(a, e.target) || (clearInterval(a.hideTimer), t(i, l), t($(n), r), $(document).unbind("click"))
249                }))
250            })
251        }(), $(".owl-carousel").each(function (e, t) {
252           
253            var a = {
254                rtl: !0,
255                center: !1,
256                nav: !0,
257                reset: !0,
258                dots: !1,
259                margin: 10,
260                loop: !1,
261                autoWidth: !0,
262                autoplay: !1,
263                autoplayTimeout: 5e3,
264                autoplayHoverPause: !0,
265                navText: ["<i class='tv3-icon-arrow-point-to-right'></i>", "<i class='tv3-icon-arrow-point-to-left'></i>"],
266                responsive: {
267                    0: {
268                        items: 1
269                    },
270                    600: {
271                        items: 3
272                    },
273                    1025: {
274                        items: 4
275                    }
276                },
277                onInitialized: function () {
278                    var e = this.$element,
279                        t = e.data("nav-container");
280                    t && e.find(".owl-nav").detach().appendTo($(t))
281                }
282            };
283            0 == $(this).data("autowidth") && (a.autoWidth = !1), $(this).owlCarousel(a), $(this).on("changed.owl.carousel", function (e) {
284                setTimeout(function () {
285                    window.dispatchEvent(new Event("resize"))
286                }, 200)
287            })
288        }), $('a[data-toggle="tab"]').on("shown.bs.tab", function (e) {
289            $tab = $(e.target), $($tab.attr("href")).find(".owl-carousel").owlCarousel("invalidate", "width").owlCarousel("refresh")
290        }), $(".faq li .answer").slideUp(10), $(".faq li .question").on("click", function () {
291            var e = $(this),
292                t = e.parent();
293            e.siblings(".answer").slideToggle(200, function () {
294                t.siblings("li").find(".answer").slideUp(200)
295            })
296        })
297    }),
298    function () {
299        function e(e) {
300            if (a.length) {
301                for (key in a) {
302                    var t = a[key];
303                    "anonymousFunction" == t.type ? t.content() : "predefinedFunction" == t.type && window[t.name](t.args)
304                }
305                a = []
306            }
307        }
308        $("a.honeymoon.fix-my-height img");
309        $.ajaxSetup({
310            cache: !1
311        }), window.getPrayerTime = function (e) {
312            var a = "/PrayerTime/GetTimes?cityId=" + e,
313                i = t();
314            "" !== i && (a += "&date=" + i), $.ajax({
315                url: a,
316                success: function (e) {
317                    var t = $("#template-prayer").html(),
318                        a = Mustache.render(t, e);
319                    $("#target").html(a)
320                }
321            })
322        };
323        var t = function () {
324            var e = $("#owghat-wrapper .tab-item");
325            return e.filter(".active").length || e.first().addClass("active"), e.filter(".active").data("time")
326        },
327            a = [];
328        $(document).ready(function () {
329            $(document.body).on("click", "#owghat-wrapper .tab-item", function (e) {
330                e.preventDefault();
331                var t = $(this);
332                if (t.hasClass("active")) return !1;
333                t.addClass("active"), t.siblings().removeClass("active"), $("#dr-city").trigger("change")
334            }), $(document.body).on("change", "#dr-province", function () {
335                -1 !== $("#dr-province").val() && $.ajax({
336                    url: "/PrayerTime/GetAllCity?provinceId=" + $("#dr-province").val(),
337                    success: function (t) {
338                        for (var a = $("<select />"), i = 0; i < t.length; i++) {
339                            var n = $("<option />").val(t[i].Id).text(t[i].Name);
340                            a.append(n)
341                        }
342                        getPrayerTime(t[0].Id), $("#dr-city").html(a.html()), e()
343                    }
344                })
345            }), $(document.body).on("change", "#dr-city", function () {
346                getPrayerTime(this.value)
347            }), a.push({
348                type: "anonymousFunction",
349                content: function () {
350                    $("#dr-city").val(57)
351                }
352            }), a.push({
353                type: "predefinedFunction",
354                name: "getPrayerTime",
355                args: [57]
356            });
357            $("#dr-province").trigger("change")
358        })
359    }(),
360    function (e, t) {
361        var a = {
362            urls: {
363                base: "",
364                upload: "/Program/Upload",
365                uploadForm: "/Program/SendClip",
366                prepareUpload: "/Program/CheckCaptcha"
367            },
368            templates: {
369                alertMessage: e("#AlertMessageTemplate").html(),
370                videoUploadProgress: e("#VideoUploadProgressTemplate").html(),
371                videoUploadFilenameListTemplate: e("#VideoUploadFilenameListTemplate").html()
372            }
373        },
374            i = a.urls,
375            n = a.templates,
376            r = {
377                cleanString: function (e) {
378                    return String(e).replace("undefined", "").replace("null", "")
379                },
380                validate: {
381                    stringLength: function (e, t, a) {
382                        var i = !0;
383                        return e = r.cleanString(e), void 0 !== t && (i = i && e.length >= t), void 0 !== a && (i = i && e.length <= a), i
384                    },
385                    email: function (e) {
386                        return e = r.cleanString(e), /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/gim.test(e)
387                    },
388                    number: {
389                        integer: function (e) {
390                            var t = /^\d+$/;
391                            return e = r.cleanString(e), t.test(e)
392                        }
393                    }
394                }
395            },
396            o = {
397                config: {
398                    domElements: {
399                        formWrapper: e(".send-clip"),
400                        fields: {
401                            name: e(".send-clip #name"),
402                            email: e(".send-clip #email"),
403                            mobile: e(".send-clip #mobile"),
404                            title: e(".send-clip #title"),
405                            description: e(".send-clip #des"),
406                            filenameLabel: e("#file-name")
407                        },
408                        buttons: {
409                            selectFile: e(".send-clip #browse"),
410                            submit: e(".send-clip #do-upload")
411                        }
412                    },
413                    uploader: null
414                },
415                validate: function () {
416                    var t = {
417                        error: !1,
418                        invalidFields: []
419                    };
420                    for (fieldName in o.config.domElements.fields) {
421                        var a = o.config.domElements.fields[fieldName],
422                            i = a.val();
423                        switch (fieldName) {
424                            case "name":
425                                r.validate.stringLength(i, 1) || (t.error = !0, t.invalidFields.push({
426                                    field: a,
427                                    message: "لطفاً نام و نام خانوادگی خود را بنویسید"
428                                }));
429                                break;
430                            case "email":
431                                r.validate.stringLength(i, 1) ? r.validate.email(i) || (t.error = !0, t.invalidFields.push({
432                                    field: a,
433                                    message: "لطفاً ایمیل صحیح خود را بنویسید (بدون www)"
434                                })) : (t.error = !0, t.invalidFields.push({
435                                    field: a,
436                                    message: "لطفاً ایمیل خود را بنویسید"
437                                }));
438                                break;
439                            case "mobile":
440                                r.validate.stringLength(i, 9) ? r.validate.number.integer(i) || (t.error = !0, t.invalidFields.push({
441                                    field: a,
442                                    message: "لطفاً شماره موبایل خود را به درستی بنویسید"
443                                })) : (t.error = !0, t.invalidFields.push({
444                                    field: a,
445                                    message: "لطفاً شماره موبایل خود را بنویسید"
446                                }));
447                                break;
448                            case "title":
449                                r.validate.stringLength(i, 1) || (t.error = !0, t.invalidFields.push({
450                                    field: a,
451                                    message: "لطفاً عنوانی برای این فایل بنویسید"
452                                }));
453                                break;
454                            case "description":
455                                r.validate.stringLength(i, 1) || (t.error = !0, t.invalidFields.push({
456                                    field: a,
457                                    message: "لطفاً یک توضیح کوتاه بنویسید"
458                                }))
459                        }
460                    }
461                    return this.config.uploader.files.length || (t.error = !0, t.invalidFields.push({
462                        field: "file",
463                        message: "لطفاً فایلی انتخاب کنید."
464                    }
464)), t.error ? (new e.Deferred).reject(t).promise() : (new e.Deferred).resolve(t).promise()
465                },
466                sendFormData: function () {
467                    var t = {};
468                    for (fieldName in o.config.domElements.fields) {
469                        var a = o.config.domElements.fields[fieldName],
470                            n = a.val ? a.val() : a;
471                        t[fieldName] = n
472                    }
473                    return e.ajax({
474                        url: i.base + i.uploadForm,
475                        type: "POST",
476                        data: t
477                    })
478                },
479                prepareUpload: function (t, a) {
480                    var n = {
481                        filename: this.config.uploader.files[0].name
482                    };
483                    return e.ajax({
484                        url: i.base + i.prepareUpload,
485                        type: "POST",
486                        data: n
487                    })
488                },
489                renderProgressbar: function (e, a) {
490                    var i = {
491                        percent: a.percent
492                    },
493                        r = t.render(n.videoUploadProgress, i);
494                    o.config.domElements.formWrapper.html(r)
495                },
496                renderUploadCompleteMessage: function () {
497                    var e = {
498                        isSuccess: !0,
499                        message: "فایل با موفقیت ارسال شد!<br>با سپاس از شما"
500                    },
501                        a = t.render(n.alertMessage, e);
502                    o.config.domElements.formWrapper.html(a)
503                },
504                renderUploadErrorMessage: function (e, a) {
505                    a || (a = {
506                        code: "مشکلی در ارسال اطلاعات شما به وجود آمد!"
507                    });
508                    var i = {
509                        isError: !0,
510                        message: "<span>خطا : " + (a.code ? a.code : "-1") + "</span>"
511                    },
512                        r = t.render(n.alertMessage, i);
513                    o.config.domElements.formWrapper.append(r), console.error(a)
514                },
515                renderFileNameLabel: function (e, a) {
516                    for (var i = [], r = 0; r < a.length; r++) i.push({
517                        name: a[r].name
518                    });
519                    var s = {
520                        files: i
521                    },
522                        l = t.render(n.videoUploadFilenameListTemplate, s);
523                    o.config.domElements.fields.filenameLabel.html(l)
524                },
525                handleUploadComplete: function () {
526                    console.log(), o.sendFormData().done(o.renderUploadCompleteMessage).fail(o.renderUploadErrorMessage)
527                },
528                createAndInitUploader: function () {
529                    return !1
530                },
531                init: function () {
532                    this.createAndInitUploader(), this.config.domElements.buttons.submit.on("click", function (t) {
533                        t.preventDefault(), o.config.domElements.formWrapper.find(".has-error").removeClass("has-error");
534                        var a = o;
535                        a.validate().done(function () {
536                            a.prepareUpload().done(function () {
537                                a.config.domElements.fields["g-recaptcha-response"] = e("#g-recaptcha-response").val(), a.config.uploader.start()
538                            }).fail(function () {
539                                alert("مشکلی در فرآیند ارسال به وجود آمد. لطفاً مجدداً تلاش نمایید.")
540                            })
541                        }).fail(function (e) {
542                            var t = e.invalidFields,
543                                a = !1;
544                            for (fieldName in t) {
545                                var i = t[fieldName];
546                                "file" == String(i.field) || "captcha" == String(i.field) ? (
546a || alert(i.message), a = !0) : i.field.attr("placeholder", i.message).parent().addClass("has-error")
547                            }
548                        })
549                    })
550                }
551            };
552        o.init(), window.VideoUpload = o
553    }(jQuery, Mustache);

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.