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 = '
';
for( var i = 0; i< lotteryPrize.length;i++){
html += '- '+lotteryPrize[i].value+'
';
}
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('');
},
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;
}
}
})()