var jsLoader = function (scripts) { var self = this; self.scripts = []; if (Array.isArray(scripts)) { self.scripts = scripts.map(function (script) { return (typeof script === 'string') ? { url: script, } : script; }); } else if (typeof scripts === 'string') { self.scripts = [{ url: scripts, }]; } else if (scripts) { self.scripts = [scripts]; } else { console.log("jsLoader", "Invaid scripts"); } }; jsLoader.prototype = { scriptsLoaded: [], contain: function (url) { return this.scriptsLoaded.indexOf(url.url || url) !== -1; }, _loadScript: function (opts) { var self = this; if (self.scriptsLoaded.indexOf(opts.url) !== -1) { self.doScriptCallback(opts, true); } else { var script = document.createElement('script'); script.src = opts.url; var loaded = function () { script.onload = script.onreadystatechange = null; console.log(opts.url + ' loaded'); if (typeof opts.nextScript === 'function') { opts.nextScript(); } self.scriptsLoaded.push(opts.url); self.doScriptCallback(opts, false); }.bind(this); script.onload = script.onreadystatechange = loaded; /* self.head = self.head || document.head || document.getElementsByTagName('head')[0] || document.documentElement; self.head.insertBefore(script, self.head.firstChild);*/ document.body.appendChild(script); } }, doScriptCallback: function (opts, cache) { if (typeof opts.callback === 'function' || typeof opts.callback_once === 'function' || (typeof opts.callback_onload === 'function' && !cache)) { var self = this; if (typeof opts.condition === 'function' && !opts.condition()) { setTimeout(function () { self.doScriptCallback(opts, cache); }, 1000); } else { if (typeof opts.callback === 'function') { opts.callback.apply(self, [cache]); } if (typeof opts.callback_onload === 'function' && !cache) { opts.callback_onload.apply(self, [cache]); } if (typeof opts.callback_once === 'function') { opts.callback_once.apply(self, [cache]); delete opts.callback_once; } } } }, _loadScripts: function (scripts, index, callback) { var self = this; if (index < scripts.length) { var el = scripts[index]; el.nextScript = function () { self._loadScripts(scripts, index + 1, callback); }; self._loadScript(el); } else { if (typeof callback === 'function') { callback(); } } }, loadScripts: function (callback) { this._loadScripts(this.scripts, 0, callback); }, }; String.prototype.format = function(i, safe, arg) { function format() { var str = this, len = arguments.length+1; for (i=0; i < len; arg = arguments[i++]) { safe = typeof arg === 'object' ? JSON.stringify(arg) : arg; str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe); } return str; } format.native = String.prototype.format; return format; }(); var app = (function (){ var _window_width = 0; var _mobile_size = 991; var _isMobileSize = function () { if (_window_width <= _mobile_size) { return true; } return false; }; var urlHelper =(function () { var _getUrlVars = function () { var currentHref = window.location.href; if(currentHref.indexOf('#')>-1){ currentHref = currentHref.substring(0,currentHref.indexOf('#')); } var vars = {}; var parts = currentHref.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } return { getPath: function () { return window.location.pathname; }, getParam:function (parameter, defaultvalue) { var urlparameter = defaultvalue; if(window.location.href.indexOf(parameter) > -1){ urlparameter = _getUrlVars()[parameter]; if(typeof urlparameter=== 'undefined'){ urlparameter = defaultvalue; } } return urlparameter; }, setParam: function (key, value, uri) { if (!uri) { uri = window.location.href; } var a = document.createElement('a'), reg_ex = new RegExp(key + '((?:\\[[^\\]]*\\])?)(=|$)(.*)'), qs, qs_len, key_found = false; a.href = uri; if (!a.search) { a.search = '?' + key + '=' + value; return a.href; } qs = a.search.replace(/^\?/, '').split(/&(?:amp;)?/); qs_len = qs.length; while (qs_len > 0) { qs_len--; if (!qs[qs_len]) { qs.splice(qs_len, 1); continue; } if (reg_ex.test(qs[qs_len])) { qs[qs_len] = qs[qs_len].replace(reg_ex, key + '$1') + '=' + value; key_found = true; } } if (!key_found) { qs.push(key + '=' + value); } a.search = '?' + qs.join('&'); return a.href; } } })(); var selectBox = (function (){ var _option = { selector: '.btn-select-lottery', } return { init: function (){ $(_option.selector).click(function (){ $('#lottery-prize-list-container').remove(); var html = '
'; $('#select-lottery').append(html) }); $(document).click(function (e) { if($(e.target).closest('#select-lottery').length== 0){ $('#lottery-prize-list-container').remove(); } }); } } })() var _FullResultScreen =function (){ $(document).on('click','.full-result-table-control', function (){ $(this).closest('.block-result').find('table.table-result-lottery').toggleClass('full-screen'); var domBody = $('body'); domBody.toggleClass('full-screen'); if(domBody.hasClass('full-screen')){ domBody.append('
'); }else{ domBody.find('div.close-full-screen').remove() } }) $(document).on('click','.close-full-screen',function (){ $('table.table-result-lottery').removeClass('full-screen'); var domBody = $('body'); domBody.removeClass('full-screen'); domBody.find('div.close-full-screen').remove(); }) } var _FullResultStatisticScreen =function (){ $(document).on('click','.full-static-table-control', function (){ $('#statistic').addClass('full-screen'); var domBody = $('body'); domBody.addClass('full-screen'); if(domBody.hasClass('full-screen')){ domBody.append('
'); }else{ domBody.find('div.close-full-screen').remove() } }) $(document).on('click','.close-full-screen',function (){ $('#statistic').removeClass('full-screen'); var domBody = $('body'); domBody.removeClass('full-screen'); domBody.find('div.close-full-screen').remove(); }) } var _resultMode =function (){ $(document).off('click','.digits-form label.radio'); $(document).on('click','.digits-form label.radio', function (e){ e.preventDefault(); var type = parseInt($(this).attr('data-value')); $(document).find('.digits-form label[data-value='+type+'] input[type=radio]').prop('checked',true); var elementNumbers = $(this).closest('.block-result').find('span.number'); switch (type){ case 0: elementNumbers.each(function (){ var value = $(this).attr('data-value'); $(this).html(value); }); break; case 2: elementNumbers.each(function (){ var value = $(this).attr('data-value'); if (value !== undefined && value !== null) { $(this).html(value.slice(-2)); } }); break; case 3: elementNumbers.each(function (){ var value = $(this).attr('data-value'); if (value !== undefined && value !== null) { $(this).html(value.slice(-3)); } }); break; } }) } var _activeMenu = function (){ $('#nav-menu a').each(function (){ if($(this).attr('href') === window.location.pathname){ $(this).closest('li').addClass('active'); $(this).closest('li').closest('ul').closest('li').addClass('active'); } }) $('.quick-menu a').each(function (){ if($(this).attr('href') === window.location.pathname){ $(this).closest('li').addClass('active'); }else if(window.location.pathname.indexOf('thong-ke-tu-0-den')>=0 && $(this).attr('href').indexOf('thong-ke-tu-0-den-9')>=0){ $(this).closest('li').addClass('active'); } }) } var _menuMobile = function (){ $('#menu-top .btn-menu-tooggle').click(function () { $('body').toggleClass('mobile-menu-open'); if($('body').hasClass('mobile-menu-open')){ // $('#nav-menu').prepend('') }else{ setTimeout(function (){ // $('#menu-logo').remove(); },400); } $('#content').find('div.main-menu-overlay').remove(); $('#content').append(''); }); $(document).on('click','.main-menu-overlay, #menu-top> ul .left-arrow',function () { $('.btn-menu-tooggle').trigger('click'); }) if(_isMobileSize()){ $('#menu-top> ul>li').each(function (){ if($(this).find('ul').length>0){ $(this).addClass('has-children'); $(this).find('>a').append('') } }) } $('#menu-top> ul').on('click','.expand-submenu',function (e){ if($(this).closest('li').hasClass('expanded')){ $('#menu-top> ul>li').removeClass('expanded'); }else{ $('#menu-top> ul>li').removeClass('expanded'); $(this).closest('li').addClass('expanded'); } e.preventDefault(); e.stopPropagation(); return false; }) } var _FilterByDate = function (){ if(typeof DISABLE_DAY_OF_WEEK === 'undefined'){ DISABLE_DAY_OF_WEEK = []; } jQuery.datetimepicker.setLocale('vi'); var defaultDate= urlHelper.getParam('date'); if(defaultDate){ var df = defaultDate.split('-'); defaultDate = df[2]+'/'+df[1]+'/'+df[0]; }else{ defaultDate = false; }/* $(document).on('click.kqxs','#calendar-icon',function (){ $(document).off('click.kqxs','#calendar-icon'); $('#calendar-icon').datetimepicker({ timepicker:false, disabledWeekDays:DISABLE_DAY_OF_WEEK || [], maxDate: '1d', defaultDate: defaultDate, onChangeDateTime:function(dp,$input){ var input = $input.val().split(' '); var arr = input[0].split('/'); var strDate = arr[2]+'-'+arr[1]+'-'+arr[0]; var url = urlHelper.setParam('date',strDate); event.preventDefault(); window.location.href = url; } }).trigger('open.xdsoft'); });*/ // Search bar $(document).on('click.kqxs', '#date-search-bar div.date-choosen', function () { $(document).off('click.kqxs','#date-search-bar div.date-choosen'); $('#date-search-bar div.date-choosen').datetimepicker({ timepicker:false, disabledWeekDays:DISABLE_DAY_OF_WEEK || [], maxDate: '1d', defaultDate: defaultDate, onChangeDateTime:function(dp,$input){ var input = $input.val().split(' '); var arr = input[0].split('/'); var strDate = arr[2]+'-'+arr[1]+'-'+arr[0]; var url = urlHelper.setParam('date',strDate); window.location.href = url; } }).trigger('open.xdsoft'); }); $(document).on('click', '.date-picker > .item', function () { $('.date-picker-mobile').toggleClass('hide-this'); }); $(document).on('click', '#lottery-prize-list-container li', function () { var url = $(this).attr('data-url'); window.location.href = url; }); $('#date-search-bar .item-selected').click(function () { $(this).next().toggleClass('open'); }); $(document).click(function(e) { var container = $("#date-search-bar .items-container"); if (!container.is(e.target) && container.has(e.target).length === 0) { $('#date-search-bar .items').removeClass('open'); } }); } var _tabs = function (){ $('#realtime-update').on('click','.tabs li',function (){ $(this).closest('.tabs').find('li').removeClass('active'); $(this).addClass('active'); var id = $(this).attr('data-id'); $('#'+id).closest('.tabs-contents').find('>div').removeClass('active'); $('#'+id).addClass('active'); var location_id = $('#'+id).attr('data-location-id'); var lottery_id = $('#'+id).attr('data-lottery-id'); if(typeof tabContents !== "undefined"){ if(typeof tabContents !== "undefined" && typeof location_id !== "undefined" && typeof lottery_id !== "undefined" && typeof tabContents[location_id+'_'+lottery_id] !== "undefined" ){ $('#'+id).html(tabContents[location_id+'_'+lottery_id]) } } }) } var _menuSticky = function (){ window.onscroll = function() { myFunction() }; var navbar = document.getElementById("header"); var body = $('body'); var sticky = navbar.offsetTop; function myFunction() { if (window.pageYOffset >= sticky) { body.addClass("sticky"); } else { body.removeClass("sticky"); } } myFunction(); } var _comment = function (){ //set posision var p = $("#f_form_comment"); if(p.length<1){ return ; } var offset = p.offset(); $("#f_comment_loading").offset({ top: offset.top, left: offset.left}); $("#f_comment_loading").css('width',p.width()+'px'); $("#f_comment_loading").css('height',p.height()+'px'); $("#f_comment_loading").hide(); var form = $('#f_form_comment'); p.submit( function(e) { e.preventDefault(); //hiddent form $("#f_comment_loading").fadeIn(); $("#f_comment_loading").css('z-index','9999'); $.ajax( { type: "POST", url: form.attr('action'), data: form.serialize(), dataType: 'json', success: function(response) { $('#f_comment_form_message').html('Cảm ơn bạn đã bình luận, bình luận của bạn sớm được chúng tôi public!'); if(response['result']==1){ if(response['censorship']){ $.ajax( { type: "POST", url: '/?com=comment&act=getlist&ajax=1&flang=vn', data: 'object=kqxs&objectid='+$('[name=objectid]').val(), success: function(response) { $('#wrapperDiv').html(response); } }); }else{ $('#f_comment_form_message').append('Gửi bình luận thành công'); }; form[0].reset(); }else{ if(response['fullname']==0) $('#f_comment_form_message').append('* Bạn chưa nhập tên
'); } var src=$('#f_image_esncaptcha').attr('src'); var l = document.createElement("a"); l.href = src; d = new Date(); $('#f_image_esncaptcha').attr('src',l.pathname+'?t='+d.getTime()); $('#captcha').val(''); } } ); $("#f_comment_loading").fadeOut(); } ); } var _closeOverlayAds = function () { $(document).on('click','.ads-footer-overlay .btn-ads-overlay-close',function () { $(this).closest('.ads-footer-overlay').css('display','none'); }) } var _createEmbed = function (){ var paths = [ '/mien-bac', '/mien-nam', '/mien-trung', '/xo-so-vietlott' ] if(urlHelper.getParam('embed') !=1 && !_isMobileSize() && paths.indexOf(window.location.pathname) != -1){ setTimeout(function (){ var urlEmbed = urlHelper.setParam('embed',1); var h = $(' .block-results>div.block-result .table-result-lottery:first-child').height(); $('.right-sidebar').append(''); }, 1000) } }; var _scrollToTo = function (){ $(window).scroll(function(){ if($(this).scrollTop() > 100){ $('#scroll').fadeIn(); }else{ $('#scroll').fadeOut(); } }); $('#scroll').click(function(){ $("html, body").animate({ scrollTop: 0 }, 600); return false; }); } return { init: function (){ _window_width = $(window).width(); if(_window_width>=992){ $('#lottery-location').html(window.lotteryLocation); }else{ var flag = true; $(window).scroll( function(){ var item = $('#lottery-location'); var divTop = item.offset().top; var winHeight = $(this).scrollTop() + $(window).height() ; if (divTop <= winHeight) { if(flag){ flag = false; $('#lottery-location').html(window.lotteryLocation); } } }); } _activeMenu(); _menuMobile(); _FullResultScreen(); _FullResultStatisticScreen(); _resultMode(); _FilterByDate(); $('select').chosen({ }); _comment(); _tabs(); _menuSticky(); _closeOverlayAds(); _createEmbed(); _scrollToTo(); selectBox.init(); }, Loading : (function () { return{ start: function (selector, message) { var _selector; if( typeof selector !== 'undefined'){ _selector = selector; }else{ _selector = 'body'; } var msgText = ''; if(message !== undefined){ msgText = ''+message+'...'; } $(_selector).addClass('ajax-loading'); $(_selector).append('
'+msgText+'
'); }, end:function (selector) { if(selector != undefined){ $(selector).removeClass('ajax-loading') .find('.ajax-loading-overlay').remove(); return; } $(document).find('div.ajax-loading-overlay').remove(); $(document).find(this.selector + '.ajax-loading').removeClass('ajax-loading'); }, updateText: function (text){ $('div.ajax-loading-overlay .content').html('{0}'.format(text)); } } })(), Toast: (function () { var _items=[]; var _createDom = function (message, timeout, type, preIcon){ //default timeout is 2 seconds if(typeof timeout === 'undefined') timeout = 2000; var html = $('
'+(preIcon?preIcon:'')+' '+message+'
'); $('body').append(html); setTimeout(function () { html.remove(); },timeout); }; return { show: function (message, timeout) { _createDom(message, timeout, 'success', ''); }, showError: function (message,timeout){ _createDom(message, timeout, 'error',''); } }; })() } })() $(function (){ app.init(); }) var kqxs = (function (){ return { //YYYY-MM-DD to DD/MM/YYYY highlightedLotoNumber: function(number){ return '{0}{1}'.format( number.substr(0, number.length-2), number.substr(-2) ) }, formatDateIsoToVN: function(strIsoDate, comma){ comma = comma || '/'; var arr = strIsoDate.split('-'); return '{1}{0}{2}{0}{3}'.format( comma, arr[2], arr[1], arr[0]) }, formatDateIsoToNumber:function (strIsoDate){ return parseInt(strIsoDate.replaceAll('-','')); }, formatNumberToDateVN:function (numberDate, comma){ comma = comma || '/'; numberDate = numberDate+''; return '{1}{0}{2}{0}{3}'.format( comma, numberDate.substr(6,2), numberDate.substr(4,2), numberDate.substr(0,4) ) }, sliceArrayIntoGroups: function (arr, size) { var result = []; while (arr.length > 0) { result.push(arr.splice(0, size)); } return result; }, spliceArrayIntoChunks: function (arr, size) { var result = []; while (arr.length > 0) { result.push(arr.splice(0, size)); } return result; } } })()