/*********************************************
* roomid.js
* -------------------------------------------
* @init
* @plugin
*********************************************/
/* -------------------------------------------
* @noConflict
------------------------------------------- */
jqNew = jQuery.noConflict();
if($ === undefined){
$ = jQuery;
}
j$ = jQuery || jqNew;
/* -------------------------------------------
* @init
------------------------------------------- */
j$(function(){
var u = new EPOS_CARD.Util();
j$.spSlider();
j$.otherSlider();
j$.moreInfo();
j$.gNav();
j$.spMenuControl();
j$.accordion02();
j$.downloadTab();
j$.floatingControlHasCookie();
j$.balloon();
});
j$(window).on("load resize", function(){
j$.floating();
});
/* -------------------------------------------
* @plugin
------------------------------------------- */
(function(j$){
/*
* @plugin - floating
*/
j$.floating = function(){
var c = j$.extend({
typeLogout: ".floatingBtn.login",
typeLogIn: ".floatingBtn.logout",
expiration: 60 // 有効期限(日)
});
// cookie取得関数
function getCookie(c_name){
var st = "";
var ed = "";
if(document.cookie.length>0){
// クッキーの値を取り出す
st = document.cookie.indexOf(c_name + "=");
if(st !== -1){
st = st+c_name.length+1;
ed = document.cookie.indexOf(";",st);
if(ed === -1) { ed=document.cookie.length; }
// 値をデコードして返す
return unescape(document.cookie.substring(st,ed));
}
}
return "";
}
/* vars
-------------------------------------------------- */
var $target_Out = $(".floatingBtn.login"),
$target_In = $(".floatingBtn.logout");
if($target_Out.length === 0){ return false; }
$target_Out.hide();
$target_In.hide();
/* 会員cookieが無ければログアウトバナーを表示 */
if(getCookie("esc_if") === ""){
$target_Out.show();
} else {
$target_In.show();
}
};
/*
* @plugin - spSlider
*/
j$.spSlider = function(){
var u = new EPOS_CARD.Util();
var $wrap = j$(".ftInner"),
$slides = $wrap.find(".bnList"),
winW = u.$win.width();
if($slides.length === 0){ return false; }
/*$('.bnList').slick({
autoplay:true,
centerMode: true,
centerPadding: 0,
slidesToShow: 4,
initialSlide: 2,
prevArrow: '
',
nextArrow: '
',
responsive : [ // ブレイクポイントごとに設定を変更
{
breakpoint: 750,
settings: {
//autoplay:true,
//centerMode: true,
//centerPadding: 0,
slidesToShow: 1,
initialSlide: 1,
prevArrow: '
',
nextArrow: '
'
}
}
]
});*/
if(winW > u.breakPoint1){
$slides.slick({
autoplay:true,
centerMode: true,
centerPadding: 0,
slidesToShow: 4,
initialSlide: 2,
prevArrow: '
',
nextArrow: '
'
});
}
if(winW < u.breakPoint1){
$slides.slick({
autoplay:true,
centerMode: true,
centerPadding: 0,
slidesToShow: 1,
initialSlide: 0,
prevArrow: '
',
nextArrow: '
'
});
}
};
/*
* @plugin - otherSlider
*/
j$.otherSlider = function(){
var u = new EPOS_CARD.Util();
var $wrap = j$(".sliderWrap"),
winW = u.$win.width(),
$otherSlides01 = $wrap.find(".sliderCol3");
if($wrap.length === 0){ return false; }
if(winW >= u.breakPoint1){
$otherSlides01.slick({
autoplay:false,
centerMode: true,
centerPadding: 0,
slidesToShow: 3,
initialSlide: 1,
variableWidth: true,
prevArrow: '
',
nextArrow: '
'
});
}
if(winW < u.breakPoint1){
$otherSlides01.slick({
autoplay:false,
centerPadding: 0,
slidesToShow: 1,
initialSlide: 0,
variableWidth: true,
prevArrow: '
',
nextArrow: '
'
});
}
};
/*
* @plugin - moreInfo
*/
j$.moreInfo = function(){
var openNm = "open",
$toggleContent = j$(".maintenanceInner01"),
$inner = j$(".maintenanceMore"),
$trigger = j$(".maintenanceClose"),
speed = 300;
if($toggleContent.length === 0){ return false; }
// 閉じるボタンクリック
$trigger.click(function(){
if($toggleContent.hasClass(openNm)){
$toggleContent.removeClass(openNm);
$inner.stop().slideUp(speed);
} else {
$toggleContent.addClass(openNm);
$inner.stop().slideDown(speed);
}
});
};
/*
* @plugin - gNav
*/
j$.gNav = function(){
var $elm = j$(".globalNav01"),
$nav = $elm.find("li a"),
onClass = "on";
if($elm.length === 0){ return false; }
$nav.each(function(){
var $href = j$(this).attr("href");
if(location.href.match($href)) {
j$(this).parent("li").addClass(onClass);
} else {
j$(this).parent("li").removeClass(onClass);
}
});
};
/*
* @plugin - spMenuControl
*/
j$.spMenuControl= function(config){
var c = j$.extend({
menuTrigger: ".menuBtn",
menuWrap: "#menuWrap",
openNm: "open",
closeNm: "close",
closeBtn: ".closeBtn",
fixNm: "fixed",
fadeSpeed: 300,
HTML_SKIN: j$('
'),
CSS_SKIN: {
position: "fixed",
opacity: 0,
top: 0,
left: 0,
width: "100%",
height: j$(document).height(),
display: "block",
background: "rgba(68,68,68,0.95)",
"z-index": "999"
}
},config);
var $menuTrigger = j$(c.menuTrigger),
$menuWrap = j$(c.menuWrap),
$closeBtn = j$(c.closeBtn),
$skin = j$(c.HTML_SKIN).css(c.CSS_SKIN);
/* 幅可変に対応 */
var winChangeLoad = function(){
var resize = false,
interval = 500;
var u = new EPOS_CARD.Util();
j$(window).on("resize", function(){
// リサイズされている間は何もしない
if(resize !== false){ clearTimeout(resize); }
resize = setTimeout(function(){
if(!u.isRangeSP()){
$skin.remove();
} else {
}
}, interval);
});
};
winChangeLoad();
// function
var menuOpen = function(){
$menuWrap.show().addClass(c.openNm).stop().animate({
opacity: 1.0
},c.fadeSpeed);
$skin.appendTo("body").stop().animate({
opacity: 1.0
},c.fadeSpeed);
$menuTrigger.addClass(c.openNm);
j$("body").css("cursor","pointer");
};
var menuClose = function(){
$menuWrap.stop().animate({
opacity: 0
},c.fadeSpeed,function(){
$menuWrap.hide().removeClass(c.openNm);
});
$skin.stop().animate({
opacity: 0
},c.fadeSpeed,function(){
$skin.remove();
});
$("html, body").animate({
scrollTop: 0
}, 300, "swing");
$menuTrigger.removeClass(c.openNm);
j$("body").css("cursor","inherit");
};
// trigger
$menuTrigger.on("click",function(){
if($menuWrap.hasClass(c.openNm)){
menuClose();
} else {
menuOpen();
}
});
$closeBtn.on("click",function(){
menuClose();
});
// 領域外クリック
j$("html").on("click",function(e){
// メニューが展開している時のみ
if($menuWrap.hasClass(c.openNm)){
var target = e.target;
//メニュータップ時は処理しない
if(j$(target).parents(c.menuWrap)[0]||target===j$(c.menuTrigger)[0]||j$(target).parents(c.menuTrigger)[0]||j$(target).parents(c.closeBtn)[0]) { return; }
menuClose();
} else {
return;
}
});
};
/**
* @method accordion02
*/
j$.accordion02 = function(){
var $elm = j$(".toggleWrap02"),
$trg = j$(".toggleTrigger02"),
target = j$(".toggleContent02"),
speed = 300,
openNm = "open";
if($elm.length === 0){ return false; }
// setting
j$(target).not("." + openNm).hide();
// trigger
$trg.on("click",function(){
var self = j$(this);
if(self.hasClass(openNm)){
self.removeClass(openNm);
self.next(target).stop().slideUp(speed);
} else {
self.addClass(openNm);
self.next(target).stop().slideDown(speed);
EPOS_CARD.module.equalHeight(true, true);
EPOS_CARD.module.sizeFix();
}
});
};
/*
* タブ切り替え
*/
j$.downloadTab = function(config){
var u = new EPOS_CARD.Util();
var c = j$.extend({
tabName: ".downloadContents",
tablist: ".downloadList",
boxName: ".downloadDetailBox",
openClass : "active",
escapeClass : "noTabLink"
},config);
var $elm = j$(c.tabName);
if($elm.length === 0){ return false; }
$elm.each(function(){
var $this = j$(this),
$list = j$(c.tablist, $this),
$box = j$(c.boxName, $this);
// 初期表示
$box.hide();
$list.on('click', 'li', function() {
if(j$(this).is('.' + c.escapeClass)) {
return false;
}
if(j$(this).hasClass(c.openClass)) {
$list.children().removeClass(c.openClass);
$box.hide();
} else {
var href = j$("a", this).attr("href");
$list.children().removeClass(c.openClass);
j$(this).addClass(c.openClass);
$box.hide();
j$(href).fadeIn();
EPOS_CARD.module.equalHeight();
return false;
}
});
});
};
/*
* @method floatingControlHasCookie
* - フローティングCV制御
*/
j$.floatingControlHasCookie = function(){
// vars
var u = new EPOS_CARD.Util();
var $pageContainer = j$("#pageContainer, body#freshers"), // 社会人ページは既存コンテンツのため
$elm = j$('[id*="floatingWrap"]'),
closeNm = "floatingNone",
$close = j$(".floatingClose"),
$toggleElm = j$(".floating-toggle");
if($elm.length === 0){ return false; }
// close
if($close.length !== 0){
$close.on("click",function(){
if($elm.hasClass(closeNm)){
j$.cookie("floatingDisplay","hide", {path: "/room_id" });
} else {
j$.cookie("floatingDisplay","show", {path: "/room_id" });
}
});
}
// load
u.$win.on("load", function(){
if(j$.cookie("floatingDisplay") == "hide"){
$elm.addClass(closeNm);
$toggleElm.hide();
}
});
};
/**
* アンカーリンク制御
*/
$(function(){
var u = new EPOS_CARD.Util();
var url = j$(location).attr("href"),
hash = location.hash,
href,
target,
position,
difference;
/* trigger
------------------------------- */
/* ページ遷移+アンカー移動制御 */
$(window).load(function(){
if((url.indexOf("#anc") !== -1)){
target = $(hash);
if($('.hasNav').length === 0){
position = target.offset().top;
} else {
difference = $('.hasNav').innerHeight();
position = target.offset().top - difference;
}
$("html, body").animate({
scrollTop: position
}, 300,'swing');
if(u.isRangeSP && target.find(".toggleWrap")){
target.find(".toggleTrigger").addClass("open");
target.find(".toggleContent").stop().slideDown(300);
EPOS_CARD.module.equalHeight(true, true);
EPOS_CARD.module.sizeFix();
}
}
});
$('.residents a[href^=#]').click(function() {
if($('.hasNav').hasClass('fixed')){
return false;
}else{
var difference02 = $('.hasNav').innerHeight();
var href = $(this).attr("href");
var target = $(href);
var position = target.offset().top - difference02*2 -75;
$("html, body").animate({
scrollTop: position
}, 300, 'swing');
}
});
$('.owner a[href^=#]').click(function() {
if($('.hasNav').hasClass('fixed')){
return false;
}else{
var difference02 = $('.hasNav').innerHeight();
var href = $(this).attr("href");
var target = $(href);
var position = target.offset().top - difference02*2 -75;
$("html, body").animate({
scrollTop: position
}, 300, 'swing');
}
});
});
/**
* @method balloon
*/
j$.balloon = function(config){
var c = $.extend({
elm: ".js-balloon_popup",
target: ".js-balloon_contenet",
openNm: "hover"
}, config);
var $elm = $(c.elm);
var u = new EPOS_CARD.Util();
if($elm.length === 0){return false}
// function
if(u.isSmartphone() || u.isTablet()){
$elm.on('click', function() {
var $target = $(this).find(c.target);
if($target.hasClass(c.openNm)){
$target.removeClass(c.openNm);
} else {
$(c.target).removeClass(c.openNm);
$target.addClass(c.openNm);
}
});
} else {
$elm.hover(function(){
var $target = $(this).find(c.target);
$target.addClass(c.openNm);
},
function(){
var $target = $(this).find(c.target);
$target.removeClass(c.openNm);
});
}
};
})(jQuery);