//*******************************
// casesearch トップ用
//*******************************
//URL末尾が#の場合、ロケーション再設定
(function(){
var locat = location.href;
if(locat.slice(-1) == "#") {
location.href = locat.slice(0,-1);
}
}());
(function($) { // コンフリクト対策
// OIC不具合対応:実行済みかどうかを判断する。
$(function(){
if($('body.casesearch').length) {
} else {
// URLで読み込むcsvを変更する
var actDomain = 'www.fujitsu.com';
var nowDomain = window.location.host;
var nowUrlParam = location.search;
if (nowDomain == actDomain) {
// 本番環境用
// casestudy data file path
var casePath = '//www.fujitsu.com/downloads/JP/about/research/search/csv/act/contentsdata_jp.jsonp';
} else {
// ステージング環境用
// casestudy data file path
var casePath = '//www.fujitsu.com/downloads/JP/about/research/search/csv/staging/contentsdata_jp.jsonp';
}
//global const
var orgUrl = '/jp/about/research/'
var newIcon = ''
//global
var alreadyShowArticles = ''; //既に表示している記事
/*
件数ゼロ文言
----------------------------------------------------------------------*/
var txtZero = '
該当データがありません
';
/*
エラー文言
----------------------------------------------------------------------*/
var txtError = '該当データがありません
';
//html cut
$(function(){
//dummy Elementを削除する
$('.dummy-li').remove();
});
// handler
$(loadAjax);
function loadAjax() {
getAllData();
}
// メイン処理(初回)
function getAllData() {
// searchArea text
$.ajax({
url: casePath,
dataType: 'jsonp',
jsonpCallback: 'callback'
})
.then(
// callback
function (casedata) {
topSet(casedata);
carouselSet(casedata);
latestSet(casedata);
},
// errorback
function () {
outputError();
}
);
}
/*
getAjaxData / error時処理
----------------------------------------------------------------------*/
function outputError() {
console.log('error');
}
/*
getAjaxData / success時処理
----------------------------------------------------------------------*/
// kv設定
function topSet(casedata) {
var setSrc = makeSrcOfKv(casedata);
$('.lyt-research-top-panel-area h2').after($(setSrc));
}
// カルーセル設定
function carouselSet(casedata) {
var calFlg = false;
if($('.c-csvset-carousel1')) {
var setSrc1 = makeSrcOfCarousel1(casedata);
$(setSrc1).appendTo($('.c-csvset-carousel1'));
calFlg = true;
}
if($('.c-csvset-carousel2')) {
var setSrc2 = makeSrcOfCarousel2(casedata);
$(setSrc2).appendTo($('.c-csvset-carousel2'));
calFlg = true;
}
if($('.c-csvset-carousel3')) {
var setSrc3 = makeSrcOfCarousel3(casedata);
$(setSrc3).appendTo($('.c-csvset-carousel3'));
calFlg = true;
}
// カルーセル表示スタート
if(calFlg) check();
}
// Latest設定
function latestSet(casedata) {
if($('.c-csvset-latest')) {
var setSrc = makeSrcOfLatest(casedata);
$(setSrc).appendTo($('.c-csvset-latest'));
}
}
////////////////////////////////////////////////////////////////////////////////
// ソース生成
////////////////////////////////////////////////////////////////////////////////
var makeSrcOfKv = function (casedata) {
var srcList = getArr(casedata);
var src = '';
// kvエリア生成
// どの記事を表示するかを確認
var viewid = 0;
if (nowUrlParam.length > 0) {
var _param = getParam('val');
if (_param) {
if (_param >= srcList.length) {
viewid = 0;
} else {
viewid = _param;
}
} else {
viewid = viewKvArr(srcList);
}
} else {
viewid = viewKvArr(srcList);
}
// 配列上の指定番号のデータをkvエリアにセット
var countLen = 0;
$(srcList).each(function () {
if (countLen == viewid) {
// Latest Articlesで同じ記事を表示しないよう、描画したURLを退避
alreadyShowArticles = this.DETAILPAGE_PATH;
let titleTrim = '';
if(this.TITLE.length > 69) {
titleTrim = this.TITLE.slice(0, 69);
titleTrim += '...';
} else {
titleTrim = this.TITLE;
}
src += '\n';
}
countLen = countLen + 1;
});
return src;
//casedataから、プレス表示対象のデータを配列にセット
function getArr(data) {
var dataList = [];
$(data).each(function () {
//表示対象を取得
if (Object.keys(this).length >= 8) { //列数
//KV表示フラグONが対象
if (this.KV_VIEW.length > 0) {
// カテゴリは先頭の一つだけ使う
var cateArr = trimArray(this.CATEGORY.split(','));
// 配列展開
dataList.push({
CATEGORY: cateArr[0],
TITLE: this.TITLE,
SUMMARY: this.SUMMARY,
IMAGE_PATH: this.IMAGE_PATH,
IMAGE_PATH_PC: this.IMAGE_PATH_PC,
DETAILPAGE_PATH: this.DETAIL_PATH,
BACKGROUND_IMAGE: this.KV_VIEW
});
}
}
});
return dataList;
}
//KV表示配列の中で、デイリーで表示を出しわける対応
//日付をもとに、配列のlengthから表示対象を抽出
function viewKvArr (arrData) {
var _date = new Date();
var _date1 = new Date(_date.getFullYear(), _date.getMonth(), _date.getDate());
var _date2 = new Date(2000, 0, 1);
// 2000/1/1からの通し日を取得
var _termDay = (_date1 - _date2) / 86400000;
// 配列の要素数で割ったあまりを配列インデックスに利用
var _target = _termDay % arrData.length;
return _target;
}
}
// トップカルーセルエリア1 //
var makeSrcOfCarousel1 = function (casedata) {
var srcList = getArr(casedata);
var src = '';
// カルーセルエリア生成
// 配列読み込み
$(srcList).each(function () {
// Technology trendsエリアで描画済みのURLの記事は表示しない
if (this.DETAILPAGE_PATH !== alreadyShowArticles) {
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '' + this.CATEGORY + '\n';
src += '' + this.TITLE + '\n';
src += '' + this.ENTRY_DATE + '\n';
src += '\n';
src += '\n';
src += '\n';
}
});
return src;
//casedataから、カルーセル表示対象のデータを配列にセット
function getArr(data) {
var dataList = [];
$(data).each(function () {
//表示対象を取得
if (Object.keys(this).length >= 8) { //列数
//カルーセル表示エリアの番号に値があるものが対象
if (this.CAROUSEL) {
// カテゴリは先頭の一つだけ使う
var cateArr = trimArray(this.CATEGORY.split(','));
// 配列展開
dataList.push({
CATEGORY: cateArr[0],
ENTRY_DATE: this.ENTRY_DATE,
TITLE: this.TITLE,
IMAGE_PATH: this.IMAGE_PATH,
DETAILPAGE_PATH: this.DETAIL_PATH,
SORT: this.CAROUSEL
});
}
}
});
dataList.sort(function(a, b){
if(a.SORTb.SORT) return 1;
return 0;
});
return dataList;
}
}
// トップカルーセルエリア2 //
var makeSrcOfCarousel2 = function (casedata) {
var srcList = getArr(casedata);
var src = '';
// カルーセルエリア生成
// 配列読み込み
$(srcList).each(function () {
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '' + this.CATEGORY + '\n';
src += '' + this.TITLE + '\n';
src += '' + this.ENTRY_DATE + '\n';
src += '\n';
src += '\n';
src += '\n';
});
return src;
//casedataから、カルーセル表示対象のデータを配列にセット
function getArr(data) {
var dataList = [];
$(data).each(function () {
//表示対象を取得
if (Object.keys(this).length >= 8) { //列数
//カルーセル表示エリアの番号に値があるものが対象
if (this.CAROUSEL2) {
// カテゴリは先頭の一つだけ使う
var cateArr = trimArray(this.CATEGORY.split(','));
// 配列展開
dataList.push({
CATEGORY: cateArr[0],
ENTRY_DATE: this.ENTRY_DATE,
TITLE: this.TITLE,
IMAGE_PATH: this.IMAGE_PATH,
DETAILPAGE_PATH: this.DETAIL_PATH,
SORT: this.CAROUSEL2
});
}
}
});
dataList.sort(function(a, b){
if(a.SORTb.SORT) return 1;
return 0;
});
return dataList;
}
}
// トップカルーセルエリア3 //
var makeSrcOfCarousel3 = function (casedata) {
var srcList = getArr(casedata);
var src = '';
// カルーセルエリア生成
// 配列読み込み
$(srcList).each(function () {
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '' + this.CATEGORY + '\n';
src += '' + this.TITLE + '\n';
src += '' + this.ENTRY_DATE + '\n';
src += '\n';
src += '\n';
src += '\n';
});
return src;
//casedataから、カルーセル表示対象のデータを配列にセット
function getArr(data) {
var dataList = [];
$(data).each(function () {
//表示対象を取得
if (Object.keys(this).length >= 8) { //列数
//カルーセル表示エリアの番号に値があるものが対象
if (this.CAROUSEL3) {
// カテゴリは先頭の一つだけ使う
var cateArr = trimArray(this.CATEGORY.split(','));
// 配列展開
dataList.push({
CATEGORY: cateArr[0],
ENTRY_DATE: this.ENTRY_DATE,
TITLE: this.TITLE,
IMAGE_PATH: this.IMAGE_PATH,
DETAILPAGE_PATH: this.DETAIL_PATH,
SORT: this.CAROUSEL3
});
}
}
});
dataList.sort(function(a, b){
if(a.SORTb.SORT) return 1;
return 0;
});
return dataList;
}
}
// Latest Area //
var makeSrcOfLatest = function (casedata) {
var srcList = getArr(casedata);
var src = '';
// Latestエリア生成
// 配列読み込み
$(srcList).each(function () {
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '\n';
src += '' + this.TITLE + '\n';
src += '' + this.ENTRY_DATE + '\n';
src += '\n';
src += '\n';
});
return src;
//casedataから、Latest表示対象のデータを配列にセット
function getArr(data) {
var dataList = [];
$(data).each(function () {
//表示対象を取得
if (Object.keys(this).length >= 8) { //列数
//Latest表示エリアの番号に値があるものが対象
if (this.LATEST) {
// 配列展開
dataList.push({
ENTRY_DATE: this.ENTRY_DATE,
TITLE: this.TITLE,
IMAGE_PATH: this.IMAGE_PATH,
DETAILPAGE_PATH: this.DETAIL_PATH,
SORT: this.LATEST
});
}
}
});
dataList.sort(function(a, b){
if(a.SORTb.SORT) return 1;
return 0;
});
return dataList;
}
}
//配列内の文字列をトリミングする
function trimArray(ary) {
if (Array.isArray(ary)) {
for (var i in ary) {
if (typeof (ary[i]) == "string") ary[i] = ary[i].trim();
}
}
return ary
}
function get_obj_by_key_value(dataAry, key, value) {
var result = $.grep(dataAry, function (e) {
return e[key] == value;
});
return result;
}
////////////////////////////////////////////////////////////////////////////////
// ナビゲーション
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// 配列 index IE対策
////////////////////////////////////////////////////////////////////////////////
if (!Array.indexOf) {
Array.prototype.indexOf = function (object) {
for (var i = 0; i < this.length; i++) {
if (this[i] == object) return i;
}
return -1;
}
}
/**
* Get the URL parameter value
*
* @param name {string} パラメータのキー文字列
* @return url {url} 対象のURL文字列(任意)
*/
function getParam(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
// a tag control
$(function(){
$(document).on('click', '.c-list-casestudy-categorys a', function(e) {
e.preventDefault();
var parent = $(this).parent();
if($(parent).hasClass('is-open')){
$(parent).removeClass('is-open')
}else{
$(parent).closest('.c-list-casestudy-categorys').find('.is-open').removeClass('is-open');
$(parent).addClass('is-open');
}
});
});
// クリックイベント
$(function(){
// もっと見るボタンクリック時
$(document).on('click', '.c-tab-list-b a', function(e) {
e.preventDefault();
// いったんis-activeクラスを削除
$('.c-tab-list-b li').removeClass('is-active');
// クリックされたエリアのliにis-active設定
$(this).parent().addClass('is-active');
var hrefId = $(this).attr("href").slice(1);
getReData(hrefId);
});
});
// slider設定
var slick = null;
function check(){
if (window.matchMedia('(min-width:768px)').matches) {
if (!slick) {
var max = $('.lyt-article-list li').length,
clone = [];
for (var i = 0; i < max; i++) {
clone.push($('.lyt-article-list li').eq(i).clone());
};
$('.lyt-article-list').slick({
centerMode: true,
variableWidth: true,
dots: false,
autoplay: false
});
slick = true;
if (max > 1) {
var n = 1,
r = parseInt($('.slick-track li:last-child').data('slick-index'));
for (var i = 0; i < 10; i++) {
n = n + 1 >= max ? 0 : n + 1;
r ++;
$('.slick-track').append(clone[n].clone().addClass('slick-slide slick-cloned').attr('data-slick-index', r));
};
var m = max - 2,
l = parseInt($('.slick-track li:first-child').data('slick-index'));
for (var i = 0; i < 10; i++) {
m = m - 1 < 0 ? max -1 : m - 1;
l --;
$('.slick-track').prepend(clone[m].clone().addClass('slick-slide slick-cloned').attr('data-slick-index', l));
};
$('.slick-track').css({ left: -415 * 10 });
};
}
} else {
if (slick) {
$('.lyt-article-list').slick('unslick');
slick = false;
};
};
};
$(window).on('resize', function(e){
check();
});
$('body').addClass('casesearch');
}
});
// top only show more action
var num = 99; //add view count
var contents = '.c-lyt-research-technology .item'; // target area class
$('.c-lyt-research-technology_more').on('click', function () {
$(contents + '.is-hidden').slice(0, num).removeClass('is-hidden');
if ($(contents + '.is-hidden').length == 0) {
$('.c-lyt-research-technology_more').fadeOut();
}
});
//gig4rwdでは$jquery224を使用、GIG5環境では$を使用
}( (typeof($jquery224) == 'undefined')? $ : $jquery224) );