Nhận định Thể Công Viettel vs HAGL:
Trên bảng xếp hạng V.League 2024/2025, sau 16 vòng đấu, Thể Công Viettel đang có 28 điểm, đứng nhì bảng và chỉ kém đội đầu bảng là ĐKVĐ Thép xanh Nam Định 3 điểm. Khi V.League vẫn còn tới 10 vòng đấu, khả năng ganh đua ngôi quán quân dành cho Thể Công Viettel rất sáng sủa.
Mặc dù tập trung cao độ cho mục tiêu V.League, nhưng Thể Công Viettel cũng không lơ là với Cúp quốc gia. HLV Nguyễn Đức Thắng cùng các học trò đang còn nguyên cơ hội giành cú đúp danh hiệu và điều đó giúp họ có động lực lớn khi đã lọt vào tứ kết Cúp quốc gia.
Thể Công Viettel đang có cơ hội đăng quang ở cà 2 giải đấu quốc nội mùa này. Ảnh: Thể Công Viettel
Trong khi đó, HAGL chỉ đang đứng thứ 11 trên bảng xếp hạng V.League tới 18 điểm. HAGL nhiều hơn đội cuối bảng SHB Đà Nẵng 9 điểm nhưng họ chỉ hơn đội áp chót là CLB Bình Định 5 điểm. Do đó, HAGL vẫn đối diện với nguy cơ phải đá play-off tranh vé trụ hạng.
HAGL không hẳn “buông” Cúp quốc gia, nhưng họ sẽ thiếu đi phần nào khát vọng ở mức độ cao nhất. Ở vòng tứ kết này, HAGL phải làm khách và đối diện với Thể Công Viettel rất mạnh khiến khả năng vượt khó của họ là không hề dễ dàng.
Ở trận lượt đi V.League mùa này, trên sân nhà, Thể Công Viettel đã thắng HAGL 2-1. Trong khuôn khổ đấu cúp, cách chơi của cả hai đội có thể có những khác biệt nhất định. HAGL sẽ phòng ngự chiều sâu để chờ đợi thời cơ, còn Thể Công Viettel nhiều khả năng ép sân nhưng cũng không thể vội vã quá mức và dễ dẫn tới việc mắc sai lầm không đáng có.
Dẫu sao, chất lượng đội hình của Thể Công Viettel cũng như cách vận hành chiến thuật của họ vẫn nhỉnh hơn HAGL. Vì vậy, sẽ không bất ngờ nếu Thể Công Viettel giành chiến thắng để có vé vào vòng bán kết.
HAGL sẽ gặp nhiều khó khăn khi làm khách trước Thể Công Viettel. Ảnh: HAGL
Đội hình dự kiến Thể Công Viettel vs HAGL:
Thể Công Viettel: Văn Phong, Tuấn Tài, Tiến Dũng, Tuấn Phong, Đức Chiến, Công Phương, Văn Khang, Wesley, Tiến Anh, Almarido, Pedro Henrique.
HAGL: Kiên Trung, Văn Sơn, Lý Đức, Jairo, Quang Nho, Bảo Toàn, Thanh Sơn, Ngọc Quang, Minh Vương, Marciel, Brandao.
Dự đoán: Thể Công Viettel thắng 2-1.
if (!isNotAllow3rd) { loadJsDefer('https://apis.google.com/js/platform.js?onload=onLoadGapi'); loadJsDefer('https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v5.0'); }
function onLoadGapi() { gapi.load('auth2', function() { gapi.load('auth2', function() { gapi.auth2.init({ client_id: '678720187862-08lendtdt5h3nr4j2he534p15b13aieg.apps.googleusercontent.com', scope: 'email profile', fetch_basic_profile: true }); }); }); }
function deleteCookie(name) { document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; } function lgGetCookie(name) { var value = document.cookie; var start = value.indexOf(" " + name + "="); if (start == -1) { start = value.indexOf(name + "="); } if (start == -1) { value = null; } else { start = value.indexOf("=", start) + 1; var end = value.indexOf(";", start); if (end == -1) { end = value.length; } value = unescape(value.substring(start, end)); } return value; }
function lgSetCookie(name, value, date) { var cookieValue = escape(value) + ((date == null) ? "" : "; expires=" + date.toUTCString()); document.cookie = name + "=" + cookieValue; }
function authLogin(name,isLogin=false){ if (isLogin){ $('#top-link-account .first').hide(); $('#top-link-account .second').html(`${name} | Đăng xuất`); $('#top-link-account .second').attr('data-out',1);
$("#cmt-account-header .tabs .close, #cmt-account .tabs .close") .click(); $('.comment-account').html(`
`);
}else {
if (window.confirm("Bạn muốn đăng xuất?")) {
var el = $("#top-link-account");
// //el.find("a.first").html("")
// // .removeAttr("style");
el.find(".first").show();
el.find("a.second").html("");
el.find("a.second").removeAttr("data-out");
$('.comment-account').html(`
`);
deleteCookie('my_dv'); $("#_btn_logout").click(); } } }
function logout(){
if (window.confirm("Bạn muốn đăng xuất?")) {
var el = $("#top-link-account");
// //el.find("a.first").html("")
// // .removeAttr("style");
el.find(".first").show();
el.find("a.second").html("");
el.find("a.second").attr("data-out", "0");
$('.comment-account').html(`
`); deleteCookie('my_dv'); $("#_btn_logout").click(); } } function login(){ $("#_btn_logout").click(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); } function register(){ $("#_btn_logout").click(); $('[data-target="signup"]').click(); fnCaptcha(); }
var aspCookie = null;
(runinit = window.runinit || []).push(function() {
if(lgGetCookie('my_dv')){ var user = JSON.parse(lgGetCookie('my_dv')); if(user.name){ authLogin(user.name, true); } }
$('.btn-refresh').click(function() { fnCaptcha(); }); $('.iconew-eye').click(function() { $(this).toggleClass('closed'); var x = $(this).siblings('input')[0]; if (x.type === "password") { x.type = "text"; } else { x.type = "password"; } });
function stripHtml(html) { var temporalDivElement = document.createElement("div"); temporalDivElement.innerHTML = html; return temporalDivElement.textContent || temporalDivElement.innerText || ""; }
// --------------------- User account // 1. Hide login/logout button -> in case API doesn't available, login/logout will not show + Init OAuth_v2 //$("#top-link-account").hide(); if (typeof gapi != "undefined") { //window._cnnd.oauth.init(); console.log("login not available"); } // 2. Remove excessive login/register form -> only 1 form available // no need // 3. Callback functions var fnPopupAction = function(id, alert, loginData) { id = id.toLowerCase(); if (id == "close") { $("#cmt-account-header .close").click(); return; } if (id == "info" && !window._isShowingInfo) { $("#cmt-account-header .close").click(); return; } window._isShowingInfo = false; if (loginData) { $("#cmt-account-header [data-target]").hide(); $("#cmt-account-header [data-target].logged-in").show().first().click(); $("#cmt-account-header [data-info-name]").html(loginData.name || "Quý vị"); $("#cmt-account-header [data-info-email]").html(loginData.email || "<không xác định>"); } else { $("#cmt-account-header [data-target]").hide(); $("#cmt-account-header [data-target].not-login").show().first().click(); $("#cmt-account-social").show(); } setTimeout(function() { $("#cmt-account-header > .wrapper").css("animation", "none"); }, 200); $("#cmt-account-header").show(); $("#cmt-account-header input[type="password"]").val(""); $("#cmt-account-header [data-target="" + id + ""]").click(); $("body").css("overflow", "hidden"); $("#nav").removeClass("active"); $("#cmt_alert").html(alert || "Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }; var accountMessageProcess = function(data) { if (data.isLogged) { fnPopupAction("info", "Vui lòng đăng nhập hoặc đăng ký để gửi bình luận", { name: data.name, email: data.email }); } else { fnPopupAction(data.act, data.alert || "Vui lòng đăng nhập hoặc đăng ký"); if (data.act == "close" && data.raw.Data && data.raw.Data.Approved) { //window.alert("Đăng nhập thành công"); fnPopupAction("info", "Đăng nhập thành công", { name: data.raw.Data.Name, email: $("#_login_email").val() || $("#_sign_email").val() }); } } };
// 5. Action functions -> bind event to form elements
var fnPopupBindAction = function() { // Tab $("#cmt-account-header [data-target]").on('click', function() { $("#cmt-account-header [data-target], #cmt-account-header [data-tab]").removeClass( "active"); $(this).addClass("active"); var tab = $("#cmt-account-header [data-tab='" + $(this).attr("data-target") + "']"); tab.addClass("active") .find("input[type="text"], input[type="email"]").first().focus(); tab.find("input").keyup(function(event) { if (event.keyCode === 13) { tab.find(".btn.clickable").click(); } }); fnCaptcha(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }); $("#cmt-account-header .close").on('click', function() { $("#cmt-account-header").hide(); $("#cmt-account-header > .wrap").removeAttr("style"); $("body").css("overflow", "unset"); fnCaptcha(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }); // Reload Captcha // $("#_reload_captcha").on('click', function () { // fnCaptcha(); // }); // Btn Login
$("#comment-frame").on('click','#btn_login', function () { $("#top-link-account .first").click(); }); $("#comment-frame").on('click','#btn_signup', function () { $("#top-link-account .first").click(); $('[data-target="signup"]').click(); });
$("#_btn_login").on('click', function() {
$("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận");
var email, password;
email = $("#_login_email").val();
password = $("#_login_password").val();
if (!/^[a-z0-9-_.]+[@][0-9a-z-]+(.[0-9a-z-]+)+$/ig.test(email) || password
.length < 8) {
$("#cmt_alert").html("Email hoặc mật khẩu không đúng!");
return;
}
$.ajax({
url: pageSettings.DomainApiComment + "/api/get-usercomment.htm",
data: {
email: encodeURI(email),
password: password,
sitename: pageSettings.commentSiteName,
},
type: "get",
success: function (res){
if (res && res.data == true){
var user = {
email: email,
name: email.substring(0, email.indexOf('@')),
}
let now = new Date();
lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000)));
authLogin(user.name, true);
}else {
$("#cmt_alert").html("Có lỗi phát sinh, vui lòng thử lại sau");
}
}
});
});
// Btn Signup
$("#_btn_sign").on('click', function() {
$("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận");
var email, name, password, repassword, captcha;
email = $("#_sign_email").val();
name = $("#_sign_name").val();
if (name == ''){
name = email.split('@')[0];
}
password = $("#_sign_password").val();
//repassword = $("#_sign_repassword").val();
captcha = $("#_sign_captcha").val();
var format = /[!@#$%^&*()_+-=[]{};':"\|,.<>/?]/g;
if (!/^[a-z0-9-_.]+[@][0-9a-z-]+(.[0-9a-z-]+)+$/ig.test(email)) {
$("#cmt_alert").html("Email không hợp lệ");
return;
}
//if (name.length <= 0) {
// $("#cmt_alert").html("Vui lòng nhập họ tên của bạn!");
// return;
//}
//if (name.length > 20) {
// $("#cmt_alert").html("Họ tên không được quá 20 ký tự (Có thể để nickname thay thế)!");
// return;
//}
//if (format.test(name)) {
// $("#cmt_alert").html("Tên không được chứa ký tự đặc biệt!");
// return;
//}
if (password.length < 8) {
$("#cmt_alert").html(
"Mật khẩu phải có ít nhất 8 ký tự, chứa ít nhất 1 chữ số và 1 chữ cái");
return;
}
//if (password != repassword) {
// $("#cmt_alert").html("Mật khẩu xác nhận lại không khớp!");
// return;
//}
if (!(/[a-z]/ig.test(password) && /[0-9]/ig.test(password))) {
$("#cmt_alert").html("Mật khẩu phải chứa ít nhất 1 chữ số và 1 chữ cái");
return;
}
if (captcha.length <= 0) {
$("#cmt_alert").html("Vui lòng điền mã xác nhận trong ảnh!");
return;
}
$.ajax({
type: 'POST',
url: pageSettings.DomainApiComment + "/api/insert-usercomment.htm",
data: {
name: name,
email: email,
password: password,
captcha: captcha,
sitename: pageSettings.commentSiteName
},
success: function (res){
if (res && res.message == "Success"){
var user = {
email: email,
name: email.split('@')[0],
}
let now = new Date();
lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000)));
authLogin(user.name, true);
$("#cmt-account-header .close").click();
}else {
$("#cmt_alert").html("Có lỗi phát sinh, vui lòng thử lại sau");
}
}
});
});
// Btn logout
$("#_btn_logout").on('click', function() {
$("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận");
$("#cmt-account-header .close").click();
fnPopupAction("login", "Bạn đã đăng xuất thành công");
var el = $("#top-link-account");
//el.find("a.first").html("")
// .removeAttr("style");
el.find("a.first").show();
el.find("a.second").html("");
$("#cmt-account-social").show();
});
// Header login/account_info
// Header login/account_info $("#top-link-account .first").on('click', function() { if ($("#top-link-account .second").attr("data-out")) { $("#top-link-account .second").toggleClass("show"); } else { fnPopupAction("login"); } }); // Btn register/log_out $("#top-link-account .second").on('click', function() { if ($("#top-link-account .second").attr("data-out")) { //$("#_btn_logout").click();
authLogin('my_dv',false);
} else { fnPopupAction('signup'); }
//var el = $("#top-link-account");
//el.find("a.first").html("")
// .removeAttr("style");
//el.find("a.second").html("");
});
};
fnPopupBindAction();
//login Facebook var otherLogin = { init: function() { var me = this; //gapi.load('auth2', function () { // gapi.auth2.init({ // client_id: '678720187862-08lendtdt5h3nr4j2he534p15b13aieg.apps.googleusercontent.com', // scope: 'email profile', // fetch_basic_profile: true // }); //}); $("#cmt-account-social button[data-type]").on('click', function() { me[$(this).attr("data-type")](function(response) { $("#cmt-account-header .tabs .close, #cmt-account .tabs .close") .click(); }); }); try { fbClient.appId = '1304555827613749'; //'211029740744825'; fbClient.version = "v14.0"; fbClient.init(); setTimeout(FB.AppEvents.logPageView, 5000); } catch (e) { // ignore } }, loginFacebook: function(cb) { var me = this;
function reloginFacebook(callback) { FB.api('/me', { fields: 'id, name, email' }, function(profile) { //console.debug(profile); if (typeof callback === "function") callback(profile); }); }; FB.login(function(response) { if (response.authResponse) { reloginFacebook(function(info) { console.log(info); info.social = "facebook"; info.accessToken = response.authResponse.accessToken;
var user = { email: info.email, name: info.name, } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); }); } else { $("#cmt_alert").html( "Bạn đã từ chối cấp quyền truy cập tài khoản Facebook"); } }, { scope: 'public_profile,email' }); }, loginGoogle: function(callback) { var me = this;
function callSocialApi(data, cb) { data.social = "google"; var user = { email: data.email, name: data.name, } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); }
// API call for Google login if (gapi.auth2.getAuthInstance().isSignedIn.get()) { //console.debug('[VCC] GAPI Process'); var profile = gapi.auth2.getAuthInstance().currentUser.get().getBasicProfile();
//var id_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().id_token; var access_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse() .access_token;
var params = { id: profile.getId(), name: profile.getName(), email: profile.getEmail(), accessToken: access_token } //console.log('params: ', params); callSocialApi(params, callback); } else { //console.debug('[VCC] GAPI Login'); gapi.auth2.getAuthInstance().signIn().then( function(success) { var profile = gapi.auth2.getAuthInstance().currentUser.get() .getBasicProfile(); //var id_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().id_token; var access_token = gapi.auth2.getAuthInstance().currentUser.get() .getAuthResponse().access_token;
var params = { id: profile.getId(), name: profile.getName(), email: profile.getEmail(), accessToken: access_token } //console.log('params: ', params); callSocialApi(params, callback); }, function(error) { $("#cmt_alert").html( "Bạn đã từ chối cấp quyền cho Báo Dân Việt truy cập tài khoản Google" ); } ); } } } otherLogin.init(); });
Xin chào ${name}! Đăng xuất