let userAgent;
let isSafari = false;
let browserName;
window.onload = function(){
//window.scrollBy(0, 1);
/* if(screen.width >= 901){
window.location.href = "https://www2.hhh.com.tw/";
} */
userAgent = navigator.userAgent;
detectBrowser(userAgent);
detectDirection ();
let result;
$.ajax({
method: "GET",
url: "./json/realtime.json",
dataType: "json",
}).done(function (msg) {
result = [...msg];
renderSec00(result);
renderSec02(result);
renderSec03(result);
renderSec06(result);
renderSec07(result);
renderSec08(result);
renderSec09(result);
renderSec10(result);
renderSec11(result);
renderVideo(result);
});
}
function detectBrowser(agent){
if(userAgent.match(/chrome|chromium|crios/i)){
browserName = "chrome";
}else if(userAgent.match(/firefox|fxios/i)){
browserName = "firefox";
} else if(userAgent.match(/safari/i)){
browserName = "safari";
}else if(userAgent.match(/opr\//i)){
browserName = "opera";
} else if(userAgent.match(/edg/i)){
browserName = "edge";
}else{
browserName="No browser detection";
}
if(browserName === 'safari'){
isSafari = true;
}
console.log(isSafari);
}
function detectDirection () {
let height = (window.screen.width * 2) / 3;
$('.sec-02 .slide-item').css('height', `${height}px`);
let topHeight = (window.screen.width * 30) / 131;
$('.sec-00 .slide-item').css('height', `${topHeight}px`);
$('.sec-00 .container-fluid').css('height', `${topHeight}px`);
}
$(".sec-01__slider").slick({
dots: true,
autoplay: false,
arrows: false,
});
function renderSec00(data) {
let temp = data[0]['data'];
renderBannerStr('sec-00__slider', temp);
$(".sec-00__slider").slick({
dots: false,
speed: 800,
autoplay: true,
});
}
function renderSec02(data) {
let temp = data[1]['data'];
renderBannerStr('sec-02__slider', temp);
let str = '';
$(".sec-02__slider").slick({
dots: false,
autoplay: true,
arrows: true,
fade: true,
});
}
function renderBannerStr(sec, data) {
let str = '';
console.log(isSafari);
for(let i = 0; i < data.length; i++){
if(data[i]['webp'] && !isSafari) {
str+= `
`
} else {
str+= ``
}
}
$(`.${sec}`).html(str);
}
function renderSec03(data) {
let randomIdx = Math.floor(Math.random()*3);
let moreLinks = ['https://hhh.com.tw/cases/lists/', 'https://hhh.com.tw/videos/lists/', 'https://hhh.com.tw/columns/lists/'];
const ran = $('.sec-03__tabdiv .nav-item-link').eq(randomIdx);
const ranDiv = $('#pills-tabContent .tab-pane').eq(randomIdx);
ran.addClass('active');
ranDiv.addClass('active');
ranDiv.addClass('show');
$('.sec-03 .morelink').attr('href', $('.sec-03__tabdiv .nav-item-link.active').data('link'));
let temp = data[2]['data'];
for(let i = 0; i < temp.length; i++){
if(temp[i]["tab"] == '最夯設計'){
let str = '';
let sub = temp[i]["data"];
for(let j = 0; j < sub.length; j++){
str+= ``
}
$('#pills-hot .tabpar').html(str);
}
if(temp[i]["tab"] == '影音實錄'){
let str = '';
let sub = temp[i]["data"];
for(let j = 0; j < sub.length; j++){
str+= ``
}
$('#pills-video .tabpar').html(str);
}
if(temp[i]["tab"] == '專欄文章'){
let str = '';
let sub = temp[i]["data"];
for(let j = 0; j < sub.length; j++){
str+= ``
}
$('#pills-blog .tabpar').html(str);
}
}
const cardText = document.querySelectorAll('.tabpar__card p');
cardText.forEach((item, i) => {
let len = item.textContent.length;
if(len > 20) {
let str = item.textContent.substring(0, 20) + '...';
item.textContent = str;
}
});
$('.sec-03__tabdiv .nav-item-link').click(function() {
$('.sec-03 .morelink').attr('href',$('.sec-03__tabdiv .nav-item-link.active').data('link'));
});
}
function renderSec06(data) {
let temp = data[3]['data'];
let str = '';
for(let i = 0; i < temp.length; i++){
if(i === 0) {
str+= `
`
} else {
str+= `
`
}
}
$('.sec-06 .carousel-inner').html(str);
}
function renderSec07(data) {
let temp = data[4]['data'];
let str = '';
for(let i = 0; i < temp.length; i++){
str+= `
${temp[i]['description']}
`
}
$('.sec-07__slider').html(str);
$(".sec-07__slider").slick({
arrows: false,
slidesToShow: 3,
centerMode: true,
infinite: false,
dots: false,
centerPadding: '12px',
responsive: [
{
breakpoint: 480,
settings: {
arrows: false,
slidesToShow: 1,
centerMode: true,
infinite: false,
dots: true,
centerPadding: '12px',
}
}
],
});
const cardText = document.querySelectorAll('.sec-07__cardtxt');
cardText.forEach((item, i) => {
let len = item.textContent.length;
if(len > 20) {
let str = item.textContent.substring(0, 25) + '...';
item.textContent = str;
}
})
}
function renderSec08(data) {
let temp = data[5]['data'];
let str = '';
for(let i = 0; i < temp.length; i++){
str+= ``
}
$('.sec-08__slider').html(str);
$(".sec-08__slider").slick({
autoplay: true,
autoplaySpeed: 8000,
arrows: false,
slidesToShow: 3,
centerMode: true,
infinite: true,
dots: false,
centerPadding: '6px',
responsive: [
{
breakpoint: 480,
settings: {
autoplay: true,
autoplaySpeed: 8000,
arrows: false,
slidesToShow: 1,
centerMode: true,
infinite: true,
dots: false,
centerPadding: '12px',
}
}
],
});
}
function renderSec09(data) {
let temp = data[6]['data'];
let str = '';
for(let i = 0; i < temp.length; i++){
if(temp[i].video !== 'false') {
str+= ``
} else {
str+= ``
}
}
$('.sec-09__cardgrp').html(str);
$(".sec-09__cardgrp").slick({
arrows: false,
slidesToShow: 3,
slidesToScroll: 1,
infinite: true,
dots: false,
centerPadding: '10px',
responsive: [
{
breakpoint: 480,
settings: {
arrows: false,
slidesToShow: 2,
slidesToScroll: 1,
infinite: true,
dots: false,
centerPadding: '10px',
}
}
],
});
}
function renderSec10(data) {
let temp = data[7]['data'];
renderRecStr('sec-10', temp);
}
function renderSec11(data) {
let temp = data[8]['data'];
renderRecStr('sec-11', temp);
}
function renderRecStr(sec, data) {
let str = '';
for(let i = 0; i < data.length; i++){
if(data[i].video !== 'false') {
str+= ``;
} else {
str+= ``;
}
}
$(`.${sec}__slider`).html(str);
$(`.${sec}__slider`).slick({
arrows: false,
slidesToShow: 3,
centerMode: false,
infinite: false,
dots: false,
centerPadding: '12px',
responsive: [
{
breakpoint: 480,
settings: {
arrows: false,
slidesToShow: 1,
centerMode: true,
infinite: false,
dots: false,
centerPadding: '12px',
}
}
],
});
}
function renderVideo(data) {
let temp = data[9];
$('.sec-05__video__txt').text(temp['title']);
$('.sec-05__video__imgfr').css('background-image', `url(https://img.youtube.com/vi/${temp['yt']}/hqdefault.jpg)`);
$('#videoModal').on('shown.bs.modal', function () {
$('#videoModal iframe').attr('src', `https://www.youtube.com/embed/${temp['yt']}?controls=0&autoplay=1&enablejsapi=1&origin=https%3A%2F%2Fm.hhh.com.tw&widgetid=1`);
});
$('#videoModal').on('hidden.bs.modal', function () {
$('#videoModal iframe').removeAttr('src');
});
}
window.addEventListener('scroll', fixedOnScroll);
const navbar = document.querySelector('.navbar-main');
function fixedOnScroll() {
if(window.innerHeight < window.innerWidth){
$('.sec-02 .slide-item').css('height', `130vh`);
$('.sec-00 .slide-item').css('height', `200px`);
$('.sec-00 .container-fluid').css('height', `200px`);
} else {
detectDirection ();
}
const sticky = document.querySelector('.sec-00 .container-fluid').offsetHeight;
if(window.pageYOffset >= sticky){
navbar.classList.add('sticky');
} else {
navbar.classList.remove('sticky');
}
}
$('.navbar-toggler').click(function(){
$(".sec-menu").css('display', 'block');
$(".wholeBody").css('overflow-y', 'hidden');
$('.sec-menu-block').addClass('slidein');
$('.sec-menu-block').removeClass('slideout');
});
$('.navbar-back').click(function(){
$(".sec-menu").css('display', 'none');
$(".wholeBody").css('overflow-y', 'scroll');
$('.sec-menu-block').removeClass('slidein');
$('.sec-menu-block').addClass('slideout');
});
$('.subexpand').click(function(){
$(this).parent().next().toggleClass('show');
$(this).parent().toggleClass('show');
});
$('.navbar-search').click(function(){
$(".sec-search").css('display', 'block');
$(".wholeBody").css('overflow-y', 'hidden');
})
$('.navbar-backs').click(function(){
$(".sec-search").css('display', 'none');
$(".wholeBody").css('overflow-y', 'scroll');
});
$('.btn-match').click(function(){
$(".sec-match").css('display', 'block');
$(".wholeBody").css('overflow-y', 'hidden');
})
$('.navbar-backs').click(function(){
$(".sec-match").css('display', 'none');
$(".wholeBody").css('overflow-y', 'scroll');
});
$('.navbar-back-fav').click(function(){
$(".sec-favor").css('display', 'none');
})
$('.btn-gotop').click(function () {
$('html, body').animate({
scrollTop: 0
}, 500)
});
$(window).scroll(function() {
if ( $(this).scrollTop() > 500 ){
$('.fixed-btn').fadeIn(222);
} else {
$('.fixed-btn').stop().fadeOut(222);
}
}).scroll();
const searchBtn = document.querySelector('.searchBtn');
const searchBar = document.querySelector('.searchBar');
const searchHotLink = document.querySelectorAll('.sec-search-hots__link');
searchBtn.addEventListener('click', search);
searchBar.addEventListener('keyup', pressSearch);
function search() {
if(searchBar.value == '') {
window.location.href = 'https://m.hhh.com.tw/search/lists/case/';
} else {
window.location.href = `https://m.hhh.com.tw/search/lists/case/${searchBar.value}-keyword/`;
}
}
function pressSearch(e) {
if (e.keyCode === 13) {
e.preventDefault();
search();
}
}
searchHotLink.forEach((item, i) => {
item.addEventListener('click', function() {
window.location.href = `https://m.hhh.com.tw/search/lists/case/${this.textContent}-keyword/`;
})
})
document.addEventListener('lazybeforeunveil', function(e){
var bg = e.target.getAttribute('data-bg');
if(bg){
e.target.style.backgroundImage = 'url(' + bg + ')';
}
});
//jQuery time
var current_fs, next_fs, previous_fs; //fieldsets
var left, opacity, scale; //fieldset properties which we will animate
var animating; //flag to prevent quick multi-click glitches
$(".next").click(function(){
if(animating) return false;
animating = true;
current_fs = $(this).parent().parent();
next_fs = $(this).parent().parent().next();
//activate next step on progressbar using the index of next_fs
$(".form-progressbar li").eq($("fieldset").index(next_fs)).addClass("active");
//show the next fieldset
next_fs.animate({opacity: 1}, {
step: function(now, mx) {
//as the opacity of current_fs reduces to 0 - stored in "now"
//1. scale current_fs down to 80%
scale = 0 + (1 + now) * .5 ;
//2. bring next_fs from the right(50%)
left = (now * 50)+"%";
//3. increase opacity of next_fs to 1 as it moves in
opacity = 0 + now;
next_fs.css({
'transform': 'scale('+scale+')',
});
next_fs.css({'opacity': opacity});
},
duration: 400,
complete: function(){
next_fs.show();
animating = false;
},
//this comes from the custom easing plugin
easing: 'easeInOutBack'
});
//hide the current fieldset with style
current_fs.animate({opacity: 0}, {
step: function(now, mx) {
//as the opacity of current_fs reduces to 0 - stored in "now"
//1. scale current_fs down to 80%
scale = 1 - (1 - now) * 0.2;
//2. bring next_fs from the right(50%)
left = (now * 50)+"%";
//3. increase opacity of next_fs to 1 as it moves in
opacity = 1 - now;
current_fs.css({
'transform': 'scale('+scale+')',
});
next_fs.css({'opacity': opacity});
},
duration: 400,
complete: function(){
current_fs.hide();
animating = false;
},
//this comes from the custom easing plugin
easing: 'easeInOutBack'
});
});
$('.container_match2').hide();
$('.last-step').click(function() {
$('.container_match').fadeIn(500);
$('.container_match2').fadeOut(0);
});
$('.match__next').click(function() {
console.log($('#area').val());
console.log($('#type').val());
if ($('#area').val() == '' || $('#area').val() == null) {
$('#area-error').text('請選擇地區');
stop = 1;
} else {
$('#area-error').text('');
stop = 0
}
if ($('#type').val() == ''|| $('#type').val() == null) {
$('#type-error').text('請選擇房屋類型');
stop = 1;
} else {
$('#type-error').text('');
stop = 0
}
if ($('#square').val() == ''|| $('#square').val() == null) {
$('#square-error').text('請選擇房屋坪數');
stop = 1;
} else {
$('#square-error').text('');
stop = 0
}
if ($('#pattern').val() == ''|| $('#pattern').val() == null) {
$('#pattern-error').text('請選擇房屋格局');
stop = 1;
} else {
$('#pattern-error').text('');
stop = 0
}
if ($('#style').val() == ''|| $('#style').val() == null) {
$('#style-error').text('請選擇喜愛的風格');
stop = 1;
} else {
$('#style-error').text('');
stop = 0
}
console.log(stop);
if(stop === 0) {
$('.container_match').fadeOut(0);
$('.container_match2').fadeIn(500);
}
});
$('.match__next2').click(function() {
if ($('#name').val() == ''|| $('#name').val() == null) {
$('#name-error').text('請填寫您的姓名');
name = 1;
} else {
$('#name-error').text('');
name = 0;
}
if ($('#phone').val() == ''|| $('#phone').val() == null || !/^[09]{2}[0-9]{8}$/.test($('#phone').val())) {
$('#phone-error').text('請以手機格式填寫(格式:0987654321)');
phone = 1;
} else {
$('#phone-error').text('');
phone = 0;
}
console.log($('#phone').val());
if ($('#sex').val() == ''|| $('#sex').val() == null) {
$('#sex-error').text('請選擇性別');
sex = 1;
} else {
$('#sex-error').text('');
sex = 0;
}
if(!$('#readPolicy').prop('checked')) {
$('#readPolicy-error').text('必須同意免責聲明與隱私使用政策');
readPolicy = 1;
} else {
$('#readPolicy-error').text('');
readPolicy = 0;
}
var obj = document.getElementsByName("time");
var time = [];
for (k in obj) {
if (obj[k].checked)
time.push(obj[k].value);
}
console.log(time);
if(name== 0 && phone == 0 && sex == 0 && readPolicy == 0) {
$.ajax({
type: "POST",
url: "",
data:
{
data: JSON.stringify(
{
name: $('#name').val(),
sex: $('#sex').val(),
phone: $('#phone').val(),
time: $('#datepicker').val(),
area: $('#area').val(),
type: $('#type').val(),
square: $('#square').val(),
pattern: $('#pattern').val(),
style: $('#style').val(),
time: time.toString(),
})
},
success: function (res) {
if (res.status == "Success") {
// gaEvent('功能 - 軟裝需求單 - 送出', '經紀人');
Swal.fire({
html: '' + res.error + '
',
showConfirmButton: true,
confirmButtonText: '確定',
confirmButtonColor: '#EE7800'
}).then(function (result) {
if (result.value) {
location.reload();
}
})
} else {
Swal.fire({
title: '似乎出了什麼問題 請稍後再試',
showConfirmButton: false,
})
}
},
error: function (error) {
console.error(error)
}
})
$(".sec-match").css('display', 'none');
$(".wholeBody").css('overflow-y', 'scroll');
window.open('./index_match.html');
}
})
$('.check-click').click(function(e) {
if($('#2b').is(':checked')) {
$('#2a').prop('checked', false);
}
if($('#2c').is(':checked')) {
$('#2a').prop('checked', false);
}
if($('#2d').is(':checked')) {
$('#2a').prop('checked', false);
}
if($('#2e').is(':checked')) {
$('#2a').prop('checked', false);
}
console.log(e.target.id);
if(e.target.id === '2a') {
$('#2a').prop('checked', true);
$('#2b').prop('checked', false);
$('#2c').prop('checked', false);
$('#2d').prop('checked', false);
$('#2e').prop('checked', false);
}
})