///
$(document).ready(function () {
// set dropdown
if ($('#news-period-dropdown').length > 0) {
var newsPeriodDropdown = new Menubutton(document.getElementById('news-period-dropdown'));
newsPeriodDropdown.init();
}
if ($('#news-region-dropdown').length > 0) {
var newsRegionDropdown = new Menubutton(document.getElementById('news-region-dropdown'));
newsRegionDropdown.init();
}
if ($('#news-sector-dropdown').length > 0) {
var newsSectorDropdown = new Menubutton(document.getElementById('news-sector-dropdown'));
newsSectorDropdown.init();
}
// add tabindex to search button
$('.news__top__submit').attr('tabindex', 0);
var region = getUrlParameter('region');
var industry = getUrlParameter('industry');
// get json data for cards
var newsCardJSON;
var mediaCardJSON;
var otherNewsJSON;
var isLoading = false;
var nextPage = '';
var newsCardApi = apiDomain + "/api/news?language=" + htmlLang;
var otherNewsPage = apiDomain + '/api/related-cards?type=news&language=' + htmlLang;
var currentPageCount = 0;
var totalItemCount;
// get templates
var newsHeader = $('script[data-template="newsHeader"]').text().split(/\$\{(.+?)\}/g);
var newsItem = $('script[data-template="newsItem"]').text().split(/\$\{(.+?)\}/g);
var newsMedia = $('script[data-template="newsMedia"]').text().split(/\$\{(.+?)\}/g);
var otherNewsItem = $('script[data-template="otherNewsItem"]').text().split(/\$\{(.+?)\}/g);
$('.news__more').addClass('hidden');
//first load
if (typeof region == 'undefined') {
region = '';
}
if (typeof industry == 'undefined') {
industry = '';
}
if (region != '' || industry != '') {
// auto search
setDropdownAndSearch();
}
else {
if (lang == 'ja' || lang == 'fr') {
setDefaultRegionAndSearch();
}
else {
// show news
getJsonCards(newsCardApi);
}
}
// other hong kong news
getJsonOtherNews(otherNewsPage);
// get cards via JSON
function getJsonOtherNews(otherNewsPage) {
$.ajax({
url: otherNewsPage
}).done(function (data) {
// get data
otherNewsJSON = data;
// bind data to templates
$('.other-hk-news__list').append(otherNewsJSON.map(function (item, index) {
return otherNewsItem.map(render(item)).join('');
}));
setAutoHeight($('.other-hk-news__list__item'));
templateReplaceAttribute();
});
}
// bind keyword input press enter
$('.news .news__top__input').keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
$('.news__top__submit').click();
}
});
$('.news__top__submit').click(function (e) {
newsTopSubmitClick(e);
});
$('.news__top__submit').keydown(function (e) {
if (e.keyCode == 13) {
newsTopSubmitClick(e);
}
});
function newsTopSubmitClick(e) {
e.preventDefault();
currentPageCount = 0;
// init load more button
// $('.case-studies__moreContainer').hide(0)
$('.news__more').addClass('hidden');
// add loading and clear all cards
$('.news__cards').html('');
$('
').appendTo($('.news__cards'));
var formData = $('#searchNews').serialize();
getJsonCards(newsCardApi + "&" + formData);
}
//first load
//load more news
$('.loadMoreButton').click(function () {
getJsonCards(nextPage);
});
// get cards via JSON
function getJsonCards(currentPage) {
if (!isLoading) {
isLoading = true;
currentPage = currentPage;
$.ajax({
url: currentPage
}).done(function (data) {
// get data
newsCardJSON = data._items;
if (data._media) {
mediaCardJSON = data._media;
}
nextPage = data._metadata.next;
totalItemCount = data._metadata.total_count;
// bind data to templates
if (totalItemCount <= 0 || typeof nextPage == 'undefined' || typeof newsCardJSON == 'undefined') {
$('.result_not_found').addClass('active');
$('.loadMoreButton').addClass('hidden');
$('.news__cards .loader').remove();
}
else {
$('.result_not_found').removeClass('active');
$('.news__cards').append(newsCardJSON.map(function (item, index) {
if (index == 0) {
return newsHeader.map(render(item)).join('');
}
else {
return newsItem.map(render(item)).join('');
}
}));
}
// display cards
loadJSONCards({
cardsToDisplay: 11,
cardClass: 'newsCard',
loadMoreButtonClass: 'news__more',
cardParent: 'news__cards',
totalCards: totalItemCount
});
// if($('.newsCard').length < 4 && totalItemCount > 0){
// console.log(1)
// $('.news__cards').append(mediaCardJSON.map(function (item, index):string {
// return newsMedia.map(render(item)).join('');
// }));
// }else{
// if($('.newsCard.media-contact').length <= 0){
// console.log(2)
$('.newsCard').each(function (index) {
var checkSection = currentPageCount * 4;
// get divisible section
var numberDivisibleCheck = isOdd(currentPageCount + 1);
var mediaCardAddPoint;
// if(numberDivisibleCheck) {
// mediaCardAddPoint = 5 + (currentPageCount *5);
// }else{
// mediaCardAddPoint = 0 + (currentPageCount *5);
// }
if (numberDivisibleCheck) {
mediaCardAddPoint = 9 + (currentPageCount * 11);
}
else {
mediaCardAddPoint = 6 + (currentPageCount * 11);
}
// add card every multiple of 10 then 6, then 10 etc.
if (index + 1 >= checkSection) {
if (index === mediaCardAddPoint) {
$(this).after(mediaCardJSON.map(function (item, index) {
return newsMedia.map(render(item)).join('');
}));
}
}
});
//}
//}
// if no media, add in the last position
/// && $('.newsCard.media-contact').length <= 0
// if($('.newsCard').length > 0){
// $('.news__cards').append(mediaCardJSON.map(function (item, index):string {
// return newsMedia.map(render(item)).join('');
// }));
// }
if (nextPage == '') {
$('.news__more').addClass('hidden');
}
currentPageCount++;
$('.newsCard.media-contact').removeClass('hidden');
templateReplaceAttribute();
cssObjectFit($('.newsCard__image'));
isLoading = false;
setNewsCardTitle();
});
}
}
function setDropdownAndSearch() {
if (region != '') {
decodeURIComponent;
region = decodeURIComponent(region);
var obj_1 = $('.news__top input[name="news_region"]').parents('.news__searchItems').find('ul li');
obj_1.each(function (index) {
if (region == $(this).find('a').attr('data-value')) {
obj_1.eq(index).click();
}
});
}
if (industry != '') {
industry = decodeURIComponent(industry);
var obj_2 = $('.news__top input[name="industry"]').parents('.news__searchItems').find('ul li');
obj_2.each(function (index) {
if (industry == $(this).find('a').attr('data-value')) {
obj_2.eq(index).click();
}
});
}
if (region != '' || industry != '') {
// search
setTimeout(function () {
$('.news__top__submit').click();
}, 600);
}
else {
setDefaultRegionAndSearch();
}
}
});
function isOdd(num) { return (num % 2) == 1; }
function setDefaultRegionAndSearch() {
// for japan and france
if (lang == 'ja' || lang == 'fr') {
var currentLang = $('html').attr('lang');
var showname_1;
if (lang == 'ja') {
showname_1 = 'Japan';
}
else if (lang == 'fr') {
showname_1 = 'France';
}
var obj_3 = $('.news__top input[name="news_region"]').parents('.news__searchItems').find('ul ul li');
obj_3.each(function (index) {
if (showname_1 == $(this).attr('data-value')) {
obj_3.eq(index).click();
}
});
// search
setTimeout(function () {
$('.news__top__submit').click();
}, 600);
}
}
function setNewsCardTitle() {
$('.newsCard').each(function () {
$(this).find(' > a').attr('aria-label', $(this).find('.newsCard__text').text());
});
}
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
function setAutoHeight(obj) {
if ($(window).width() > 580) {
function setHeight(obj) {
var maxHeight = 0;
obj.each(function (index, item) {
var h = $(this).height();
maxHeight = h > maxHeight ? h : maxHeight;
maxHeight = Math.ceil(maxHeight);
});
obj.attr('style', 'height:' + maxHeight + 'px');
}
function resetHeight(obj) {
obj.removeAttr('style');
}
resetHeight(obj);
setHeight(obj);
$(window).resize(function () {
resetHeight(obj);
if ($(window).width() >= 580) {
setHeight(obj);
}
});
}
else {
obj.removeAttr('style');
}
}