/*================================================================================*/ /* AJAX */ /*================================================================================*/ var ajaxData = {}; /*--------------------------------------------------------------------------------*/ function apiCall(sID, sURL, aData, fCallback, bLoading, bMulti){ if( bLoading ){ if( $('.js-loading').length<=0 ){ $('body').append('
'); } $('.js-loading').show(); } if( sID in ajaxData ){ if( ajaxData[sID]['status'] == 2 ){ if( !bMulti ){ console.log('Ajax in progress: '+sID); return false; /*ajax in progress*/ } } } ajaxData[sID] = { 'status':2, 'url':sURL,'callback':fCallback , 'query':aData, 'data':false, 'loading':bLoading }; sURL = sURL; var sType = 'get';//(''+sURL).indexOf('.json')>=0?'get':'post'; if( sType == 'get' ){ sURL += '?t='+(new Date()).getTime(); } console.log('--------------------------------------------------------------------------------'); console.log('#'+sID+' Ajax:'+sURL); console.log('url: '+sURL+'?'+(new URLSearchParams(aData).toString())); console.log(aData); $.ajax({'id':sID,'url':sURL,'type':sType,'data':aData,'dataType':'json','success':apiCallSuccess,'error':apiCallFailure}); console.log('--------------------------------------------------------------------------------'); return true; } /*--------------------------------------------------------------------------------*/ function apiCallSuccess(aData){ if( (''+window.location).indexOf('127.0.0.1')>0 ){ setTimeout(function(){ $('.js-loading').hide(); },1000) }else{ $('.js-loading').hide(); } var sID = this.id; if( sID in ajaxData ){ console.log('================================================================================'); console.log('#'+sID+' Ajax Success:'); console.log(aData); console.log('================================================================================'); ajaxData[sID]['status'] = 1; ajaxData[sID]['data'] = aData; try{ if( isEmpty(aData) ){ aData = {}; } ajaxData[sID]['callback'](true,sID,aData); }catch(e){ console.log('==== API Callback Exception (S) ===='); } } } /*--------------------------------------------------------------------------------*/ function apiCallFailure(aData){ $('.js-loading').hide(); var sID = this.id; if( sID in ajaxData ){ console.log('#'+sID+' Ajax Failure'); ajaxData[sID]['status'] = 0; try{ if( isEmpty(aData) ){ aData = {}; } ajaxData[sID]['callback'](false,sID,aData); }catch(e){ console.log('==== API Callback Exception (F) ===='); } } } /*--------------------------------------------------------------------------------*/ function isEmpty(sVar){ return (sVar == '' || sVar == 'null' || sVar == null || sVar == false || sVar == undefined); } function isObj(oObj){ return typeof oObj == 'object' || typeof oObj == 'array' } function getValue(aArray, sKey, sDft){ if( isEmpty(aArray) ){ return sDft!=undefined ? sDft : false; } if( (''+sKey).indexOf('.') >= 0 ){ var aKey = (''+sKey).split('.'); var aTemp = aArray; for( var i=0; i= iPag ){ $(oRoot).find('.js-listing-next').addClass('disabled') } if( bClick ) { csssScrollTo('#'+sID); } csssOnScroll(); } } /*--------------------------------------------------------------------------------*/ function cssListingFilter(e){ var oRoot = $(e.target).closest('.js-listing'); $(oRoot).find('.js-listing-page').val( 1 ); csssLoadListing(); } /*--------------------------------------------------------------------------------*/ function cssListingPrev(e, bNxt){ if( e ){ e.preventDefault(); } var oRoot = $(e.target).closest('.js-listing'); cssListingGoToPage(oRoot, bNxt?1:-1); } /*--------------------------------------------------------------------------------*/ function cssListingNext(e){ cssListingPrev(e,true); } /*--------------------------------------------------------------------------------*/ function cssListingInput(e){ if( e.which == 13 ){ var oRoot = $(e.target).closest('.js-listing'); cssListingGoToPage(oRoot,0); } } function cssListingGoToPage(oRoot, iAdd){ var iTtl = parseInt($(oRoot).attr('data-total')); var iPge = parseInt($(oRoot).find('.js-listing-page').val() ); var iNew = iPge + iAdd; if( isNaN(iTtl) ){ iTtl = 1; } if( isNaN(iPge) ){ iPge = 1; } if( isNaN(iNew) ){ iNew = 1; } if( iNew > iTtl ){ iNew = iTtl; } if( iNew < 1 ){ iNew = 1; } $(oRoot).find('.js-listing-page').val( iNew ); csssLoadListing(); } /*================================================================================*/ /*================================================================================*/ var lang = $("html").attr("lang") function sendGaEvent(name, action, link, pageAction) { var params = {'CSS_Action': action, 'CSS_Page_Action': pageAction, 'CSS_Language': lang,}; var notCallback = ["mailto:", "tel:", "javascript:", "#"], needRedirect = true; for (var i = 0; i < notCallback.length; i++) { if (link.indexOf(notCallback[i]) !== 0) { needRedirect = false break } } if (needRedirect) { params['event_callback'] = function() { window.location.href = link; }; params['event_timeout'] = 2000; } gtag('event',name,params); } function csssMobileMenu(e){ if( e ){ e.preventDefault(); } var oLink = $(e.target).closest('a'); $(oLink).toggleClass('open'); if( $(oLink).hasClass('open') ){ $('.js-mobile_menu').addClass('open'); if( !$('.js-mobile_menu').hasClass('inited') ){ $('.js-mobile_menu').addClass('inited'); $('.js-mobile_menu .csss_main').html( $('.csss_head_menu').html() ); $('.js-mobile_menu .csss_main').find('.lang').remove(); $('.js-mobile_menu .csss_main').find('.mobile').remove(); $('.js-mobile_menu').find('li').each(function(){ if( $(this).find('ul').length > 0 ){ $(this).append(''); } }); $('.js-mobile_menu').find('.toggle').click(csssOnAnchor); } $('body').css({'overflow':'hidden'}); }else{ $('.js-mobile_menu').removeClass('open'); $('body').css({'overflow':'auto'}); } csssOnScroll(); } /*--------------------------------------------------------------------------------*/ function csssMobileMenuToggle(e){ if( e ){ e.preventDefault(); } var oLink = $(e.target).closest('a'); $(oLink).toggleClass('open'); if( $(oLink).hasClass('open') ){ $(oLink).parent().find('>ul').slideDown(); }else{ $(oLink).parent().find('>ul').slideUp(); } } /*================================================================================*/ /*================================================================================*/ var quizData = []; var quizSubmitted = false; /*--------------------------------------------------------------------------------*/ function csssQuizInit(){ $('.js-quiz').hide(); $('.js-quiz .js-quiz_result').hide(); $('.js-quiz .js-quiz_error').hide(); $('.js-quiz .js-quiz_error_api').hide(); $('.js-quiz .template').hide(); $('.js-quiz .clone').remove(); if( quizData ){ var oTmp = $('.js-quiz').find('.template').get(0); for( var i=0; i'+sDsc+''); } aAns['q'+(i+1)] = sSel?sSel:''; i++; }); $('.js-quiz .js-quiz_total').html(quizData.length); $('.js-quiz .js-quiz_correct').html(iC); $('.js-quiz .js-quiz_wrong').html(iW); if( iC <= 0 && iW <= 0 && i > 0 ){ $(oRoot).find('.clone').hide(); } if( sURL ){ apiCall('quiz',sURL,aAns,csssQuizConfirmSumbit,true); }else{ csssQuizConfirmSumbit(); } } } function csssQuizConfirmSumbit(bSuc, sID, aData){ if( getValue( aData,'status') == 1 ){ $('.js-quiz .js-quiz_result').show(); $('.js-quiz .js-quiz_submit').hide(); csssScrollTo('.js-quiz .js-quiz_result'); }else{ $('.js-quiz .js-quiz_result').hide(); $('.js-quiz .js-quiz_submit').show(); $('.js-quiz .js-quiz_error_api').show(); var sMsg = getValue(aData,'message',''); if( sMsg != '' ){ $('.js-quiz .js-quiz_error_api').html(sMsg); } } } /* =================================================================================*/ /* Chart */ /* =================================================================================*/ var csssChartTitleCfg = { 'display': true, 'position':'top', 'align':'center', 'color':'#707070', 'font':{'size': 20} } var csssChartLengendCfg = { 'display' : true, 'position':'bottom', 'align':'start', 'labels':{ 'boxWidth':45, 'boxHeight':15 } } var csssChartBarCfg = { 'categoryPercentage':0.5, 'barPercentage':0.8, 'borderWidth': 0 } var csssChartBarAxisCfg = { 'grid':{ 'lineWidth':1, 'tickWidth':1, 'tickColor':'#999', 'borderWidth':1, 'borderColor':'#999' }, 'suggestedMin': 0, 'suggestedMax': 100, 'stacked':true } var csssChartLineCfg = { } var linkCharLineAxisCfg = { 'grid':{ 'lineWidth':1, 'lineColor':'#EEE', 'tickWidth':1, 'tickColor':'#999', 'borderWidth':1, 'borderColor':'#999' }, 'suggestedMin': 0, 'suggestedMax': 100, 'stacked':true } var csssChartColor = [ '#C6A95F','#B3B3B3','#4A6F6F','#3E3E3E', '#779094','#479A4C','#CAFA97','#9DBCBC', '#E4F0E4','#EFEFBF','#CC0800','#FF4B4B' ]; var csssChartID = 0; /*--------------------------------------------------------------------------------*/ function csssChartInit(){ $('.js-chart.inside:not(.inited)').each(function(){ $(this).addClass('inited'); var sCID = 'chart_'+csssChartID; try{ var aJson = JSON.parse( $(this).find('.data').html()); var sType = aJson['type']; var aCfg = {}; var iW1 = 300; var iH1 = 150; var iW2 = 300; var iH2 = 300; switch( sType ){ case 'mix': var aX = aJson['x']; var aY = aJson['y']; var aSet = []; var iCnt = 0; for( var sK in aY ){ var sClr = csssChartColor[ iCnt % csssChartColor.length ]; var aTmp = { 'type' :aY[sK]['type'], 'label':aY[sK]['name'], 'data' :aY[sK]['data'] } if( aTmp['type'] == 'bar' ){ aTmp['backgroundColor'] = sClr; for( var sK2 in csssChartBarCfg ){ aTmp[sK2] = csssChartBarCfg[sK2]; } } if( aTmp['type'] == 'line' ){ aTmp['backgroundColor'] = sClr; aTmp['borderColor'] = sClr; for( var sK2 in csssChartLineCfg ){ aTmp[sK2] = csssChartLineCfg[sK2]; } } aSet.push(aTmp); iCnt++; } aCfg['data' ] = {'labels': aX,'datasets': aSet}; var aAXS = linkCharLineAxisCfg; aCfg['options'] = { 'scales': {'x':aAXS, 'y':aAXS}, 'plugins': {'legend':csssChartLengendCfg} } if( aJson['title'] ){ var aTmp = {'text':aJson['title']}; for( var sK2 in csssChartTitleCfg ){ aTmp[sK2] = csssChartTitleCfg[sK2]; } aCfg['options']['plugins']['title'] = aTmp; } break; case 'line': case 'bar': var aX = aJson['x']; var aY = aJson['y']; var aSet = []; var iCnt = 0; for( var sK in aY ){ var sClr = csssChartColor[ iCnt % csssChartColor.length ]; var aTmp = { 'label':aY[sK]['name'], 'data' :aY[sK]['data'], } if( sType == 'bar' ){ aTmp['backgroundColor'] = sClr; for( var sK2 in csssChartBarCfg ){ aTmp[sK2] = csssChartBarCfg[sK2]; } } if( sType == 'line' ){ aTmp['backgroundColor'] = sClr; aTmp['borderColor'] = sClr; for( var sK2 in csssChartLineCfg ){ aTmp[sK2] = csssChartLineCfg[sK2]; } } if( aY[sK]['group'] ){ aTmp['stack'] = aY[sK]['group']; } aSet.push(aTmp); iCnt++; } var aAXS = sType=='line'? linkCharLineAxisCfg : csssChartBarAxisCfg aCfg['type' ] = sType; aCfg['data' ] = {'labels': aX,'datasets': aSet}; aCfg['options'] = { 'scales': {'x':aAXS, 'y':aAXS}, 'plugins': {'legend':csssChartLengendCfg} } if( aJson['title'] ){ var aTmp = {'text':aJson['title']}; for( var sK2 in csssChartTitleCfg ){ aTmp[sK2] = csssChartTitleCfg[sK2]; } aCfg['options']['plugins']['title'] = aTmp; } break; case 'pie': case 'donut': var aX = aJson['x']; var aY = aJson['y']; var aSet = []; var aClr = []; var iCnt = 0; var sLgn = ''; for( var sK in aY ){ var sClr = csssChartColor[ iCnt % csssChartColor.length ]; aSet.push(aY[sK]); aClr.push(sClr); sLgn += '
'+aX[sK]+'
'; iCnt ++; } aCfg['type' ] = sType=='donut'?'doughnut':sType; aCfg['data' ] = {'labels': aX,'datasets': [{'data':aSet,'backgroundColor':aClr}]}; aCfg['options'] = { 'cutout':'70%', 'plugins': {'legend':{'display':false}} } iW1 = 300; iH1 = 300; sLgn = '
'+sLgn+'
'; if( aJson['desc'] ){ sLgn = '

'+aJson['desc']+'

'+sLgn; } if( aJson['title'] ){ sLgn = '

'+aJson['title']+'

'+sLgn; } $(this).addClass('donut'); $(this).prepend('
'+sLgn+'
'); break; case 'donut_lite': var aX = aJson['x']; var aY = aJson['y']; var aSet = []; var aClr = []; var iCnt = 0; var sLgn = ''; for( var sK in aY ){ var sClr = csssChartColor[ iCnt % csssChartColor.length ]; aSet.push(aY[sK]); aClr.push(sClr); iCnt ++; } aCfg['type' ] = 'doughnut'; aCfg['data' ] = {'labels': aX,'datasets': [{'data':aSet,'backgroundColor':aClr}]}; aCfg['options'] = { 'cutout':'70%', 'plugins': {'legend':{'display':false}} } iW1 = 300; iH1 = 300; if( aJson['desc'] ){ sLgn = '

'+aJson['desc']+'

'+sLgn; } if( aJson['title'] ){ sLgn = '

'+aJson['title']+'

'+sLgn; } $(this).addClass('donut_lite'); $(this).prepend('
'+sLgn+'
'); break; } $(this).append('
'); $(this).append('
'); var oCNV = document.getElementById(sCID+'_a'); var oCHT = new Chart(oCNV, aCfg); var oCNV = document.getElementById(sCID+'_b'); var oCHT = new Chart(oCNV, aCfg); }catch(e){ } csssChartID++; }); } /*================================================================================*/ /*================================================================================*/ function csssToggle(e){ if( e ){ e.preventDefault(); } var aCSS = ['li','a']; for( var i=0; i 0 ){ $(oLink).toggleClass('open'); $(oLink).addClass('toggled'); return; } } } /*--------------------------------------------------------------------------------*/ function csssAccordionToggle(e){ if( e ){ e.preventDefault(); } var oRoot = $(e.target).closest('.js-accordion'); var oItem = $(e.target).closest('.js-accordion_item'); $(oItem).removeClass('open'); if( $(oItem).find('.js-accordion_body:visible').length <= 0 ){ $(oItem).addClass('open'); } $(oItem).find('.js-accordion_body').slideToggle(); } /*--------------------------------------------------------------------------------*/ function csssTabToggle(e){ if( e ){ e.preventDefault(); } var oRoot = $(e.target).closest('.js-tab'); var oItem = $(e.target).closest('.js-tab_item'); var sHref = $(oItem).attr('href'); $(oRoot).find('.js-tab_item').each(function(){ $(this).removeClass('active'); var sThis = $(this).attr('href'); $(sThis).hide(); csssResetEffect(sThis); if( $(this).attr('href') == sHref ){ $(this).addClass('active'); } }); $(sHref).show(); csssSwiperInit(); csssOnScroll(); } /*--------------------------------------------------------------------------------*/ function csssTabInit(){ $('.js-tab').each(function(){ $(this).find('.js-tab_item:first').click(); }); } /*================================================================================*/ /*================================================================================*/ function csssEffect(iST){ var iOF = (iST/2); var iWW = $(window).width(); var iWH = $(window).height(); $('.effect_fade_up, .effect_fade_left, .effect_fade_right, .effect_num, .effect_sphiral, .js-chart').each(function(){ var iY = $(this).offset().top; var iX = $(this).offset().left; var iH = $(this).height(); var iY1 = iST + iWH * 0.15; var iY2 = iST + iWH * 0.95; if( $(this).hasClass('effect_fade_up') ){ var iS = 1000; var iD = Math.max(Math.min(Math.round(iX/iWW*iS),iS),0); $(this).css({'transition-delay':iD+'ms'}); } if( $(this).hasClass('effect_fade_left')|| $(this).hasClass('effect_fade_right') ){ var iS = 500; var iD = Math.max(Math.min(Math.round((iY-iST)/iWH*iS),iS),0); $(this).css({'transition-delay':iD+'ms'}); } if( $(this).hasClass('effect_num') ){ iY1 = iST; } if( $(this).hasClass('effect_sphiral') ){ iY += iWH*0.4; } if( $(this).hasClass('js-chart') ){ iY += iWH*0.4; } if( iY+iH > iY1 && iY < iY2 ){ $(this).addClass('inside'); $(this).removeClass('finish'); if( $(this).hasClass('js-chart') ){ csssChartInit(); } if( $(this).hasClass('effect_num') ){ clearTimeout(csssNumTimer); csssNumTimer = setTimeout( csssNumberEffect, 10 ); //csssNumberEffect(); } }else{ $(this).removeClass('inside'); $(this).removeClass('finish'); if( iY+iH <= iY1 ){ $(this).addClass('finish'); } if( $(this).hasClass('effect_running_number') ){ $(this).attr('data-current',0); } } }); } /*--------------------------------------------------------------------------------*/ var csssNumTimer = null; function csssResetEffect(oObj){ $(oObj).removeClass('finish'); $(oObj).find('.finish').removeClass('finish'); } function cssFormatNum(sValue, iDec, sComma){ var iValue = parseFloat(sValue); var iPower = Math.pow(10,iDec); var iRound = Math.round(iValue*iPower)/iPower; var sInt = (''+iRound).replace(/[.].*$/gi,''); var sDec = (''+(iRound==Math.floor(iRound)?'':iRound)).replace( /^.*[.]/gi,''); var sDec = '.'+(''+sDec).padEnd(iDec,'0'); if( sComma != '' ){ sInt = (''+sInt).replace('-',''); var sTemp = ''; var j = 0; for( var i=sInt.length-1; i>=0; i-- ){ sTemp = (''+sInt).substring(i,i+1)+(j>0&&j%3==0?sComma:'')+sTemp; j++; } sInt = (iRound<0?'-':'')+sTemp; } return sInt+(iDec>0?sDec:''); } function csssNumberEffectInit(){ $('.effect_num').each(function(){ var iTrg = parseFloat($(this).attr('data-val')); var iCur = parseFloat($(this).attr('data-cur')); var iDec = parseInt($(this).attr('data-dec')); var sPfx = $(this).attr('data-pfx'); var sSfx = $(this).attr('data-sfx'); if( isNaN(iCur) ){ iCur = iTrg*.1; } if( isNaN(iDec) ){ iDec = 0; } if( !sPfx ){ sPfx = ''; } if( !sSfx ){ sSfx = ''; } var iCur = (iTrg*.9)/100; var iRnd = cssFormatNum(iCur,iDec,','); $(this).attr('data-cur',iCur); $(this).html(sPfx+iRnd+sSfx); }) } function csssNumberEffect(){ $('.effect_num.inside:not(.complete)').each(function(){ var iTrg = parseFloat($(this).attr('data-val')); var iCur = parseFloat($(this).attr('data-cur')); var iDec = parseInt($(this).attr('data-dec')); var sPfx = $(this).attr('data-pfx'); var sSfx = $(this).attr('data-sfx'); if( isNaN(iCur) ){ iCur = iTrg*.1; } if( isNaN(iDec) ){ iDec = 0; } if( !sPfx ){ sPfx = ''; } if( !sSfx ){ sSfx = ''; } var iInc = (iTrg*.9)/100; var iCur = iCur+iInc; var iRnd = cssFormatNum(iCur,iDec,','); if( iCur >= iTrg ){ $(this).addClass('complete') iCur = iTrg; iRnd = cssFormatNum(iTrg,iDec,',');; } $(this).attr('data-cur',iCur); $(this).html(sPfx+iRnd+sSfx); //$(this).css({color:'#F00'}) }) if( $('.effect_num.inside:not(.complete)').length>0 ){ clearTimeout(csssNumTimer); csssNumTimer = setTimeout( csssNumberEffect, 10 ); } } /*================================================================================*/ /*================================================================================*/ function csssScrollTo(iY){ if( !isNaN(parseInt(iY)) ){ $('html,body').animate({'scrollTop':iY}); }else{ if( $(iY+':visible').length > 0 ){ var iST = $(iY+':visible').offset().top - 66; $('html,body').animate({'scrollTop':iST}); } } } /*--------------------------------------------------------------------------------*/ function csssPopUp(sMsg, bLBX){ $('body').removeClass('slided'); $('body').removeClass('popped'); $('.csss_pop').removeClass('type2'); $('.csss_pop').removeClass('type3'); if( bLBX ){ $('.csss_pop').addClass('type2'); } if( $('.js-listing').length>0 ){ $('.csss_pop').addClass('type3'); } $('.js-pop_content').html(sMsg); $('.js-pop_content').find('a').click(csssOnAnchor); $('body').addClass('popped'); csssSwiperInit(); setTimeout( function(){ $('body').addClass('slided'); },100); try{ $('.js-pop_content').find('video:first').get(0).play(); }catch(e){} } /*--------------------------------------------------------------------------------*/ function csssPopUpClick(e){ if( e ){ e.preventDefault(); } var oRoot = $(e.target).closest('a'); var sTrg = $(oRoot).attr('data-target'); if( sTrg ){ var sMsg = $('#'+sTrg).html(); var bLBX = $('#'+sTrg).hasClass('lightbox'); csssPopUp(sMsg,bLBX); } } /*--------------------------------------------------------------------------------*/ function csssPopDown(e){ if( e ){ e.preventDefault(); } $('body').removeClass('slided'); setTimeout( function(){ $('body').removeClass('popped'); },300) $('.js-pop_content video').each(function(){ this.pause(); }) } /*--------------------------------------------------------------------------------*/ function csssNewPost(e){ if( e ){ e.preventDefault(); } $('.csss_newpost').addClass('csss_newpost--show'); } /*--------------------------------------------------------------------------------*/ function csssNewPostClose(e){ if( e ){ e.preventDefault(); } $('.csss_newpost').removeClass('csss_newpost--show'); } /*--------------------------------------------------------------------------------*/ function csssFileChange(oObj){ var oRoot = $(oObj).closest('.csss_upload'); var sVal = $(oRoot).find('input').val(); var oFil = $(oRoot).find('input').get(0); if( sVal != '' ){ $(oRoot).addClass('selected'); $(oRoot).find('.csss_upload_name').html((""+sVal).replace(/.*[\\\/]/gi,'')); $(oRoot).find('.csss_upload_img').attr('src',URL.createObjectURL(oFil.files[0])); }else{ $(oRoot).removeClass('selected'); } } /*--------------------------------------------------------------------------------*/ function csssFileClear(e){ if( e ){ e.preventDefault(); } var oRoot = $(e.target).closest('.csss_upload'); $(oRoot).find('input').val(''); csssFileChange($(oRoot).find('input').get(0)); } /*================================================================================*/ /*================================================================================*/ var autoSwiper = null; var autoSwiperTimer = null; var autoSwiperPlay = false; var autoSwiperDelay = 5000; function csssSwiperInit(){ $('.swiper-container:visible:not(.inited)').each(function(){ $(this).addClass('inited'); $(this).find('.csss_swiper_img').each(function(){ var oCln = $(this).find('img:first').clone(); $(oCln).css({'filter':'blur(10px) brightness(0.7)','object-fit':'cover'}); $(this).prepend(oCln); }); var oRoot = $(this).closest('.csss_swiper'); var iCnt = $(oRoot).find('.swiper-slide').length; var aCfg = { spaceBetween:0, loop: true, updateOnWindowResize: true }; if( $(this).find(".swiper-slide").length == 1 ){ $(this).addClass("disabled-transform") } if( $(this).hasClass('csss_swiper_logos') ){ aCfg['breakpoints' ] = {1:{"slidesPerView":2},767:{"slidesPerView":3},1024:{"slidesPerView":4},1280:{"slidesPerView":5},1480:{"slidesPerView":6}}; aCfg['spaceBetween'] = 20; aCfg['centeredSlides'] = false; aCfg['loop' ] = false; } if( $(oRoot).find('.swiper-bullets').length && iCnt > 1 ){ aCfg['pagination'] = {el:$(oRoot).find('.swiper-bullets').get(0), clickable:true}; aCfg['pagination']['type'] = 'bullets'; } var oSwiper = new Swiper(this, aCfg); oSwiper.on('slideChange', function(){ csssSwiperChange(this); }); if( $('.js-swiper_link').length > 0 ){ $('.js-swiper_link').click(function(e){ var iSld = parseInt( $(e.target).closest('.js-swiper_link').attr('data-slide') ); oSwiper.slideToLoop(iSld-1); autoSwiperPlay = false; $('.csss_swiper_play').addClass('paused'); }); } if( $(oRoot).hasClass('autoplay') ){ autoSwiper = oSwiper; autoSwiperPlay = true; csssSwiperAutoPlay(true); $(oRoot).find('.swiper-bullets').append(''); $(oRoot).find('.swiper-bullets .csss_swiper_play').click(csssSwiperAutoPlayToggle); } }); } function csssSwiperChange(oObj){ var iIdx = oObj.realIndex + 1; var oRoot = $(oObj.$el).closest('.swiper-root'); if( $(oRoot).length <= 0 ){ oRoot = oObj.$el; } $('.effect_sphiral').attr('data-slide',iIdx); } function csssSwiperAutoPlay(bInit){ if( !bInit && autoSwiperPlay ){ autoSwiper.slideNext(); } clearTimeout(autoSwiperTimer); autoSwiperTimer = setTimeout( csssSwiperAutoPlay, autoSwiperDelay); } function csssSwiperAutoPlayToggle(e){ if( e ){ e.preventDefault(); } autoSwiperPlay = !autoSwiperPlay; if( autoSwiperPlay ){ $(e.target).closest('.csss_swiper_play').removeClass('paused'); clearTimeout(autoSwiperTimer); csssSwiperAutoPlay(); }else{ $(e.target).closest('.csss_swiper_play').addClass('paused'); } } /*================================================================================*/ /* VOTING */ /*================================================================================*/ function csssVote(e){ if( e ){ e.preventDefault(); } var oGrp = $(e.target).closest('.js-vote_group'); var oLnk = $(e.target).closest('.js-vote'); var iLmt = $(oGrp).attr('data-limit'); if( isNaN(iLmt) ){ iLmt = 2; } $(oLnk).find('input[type="hidden"]').val('0'); if( $(oLnk).hasClass('active') ){ $(oLnk).removeClass('active'); return; } if( $(oGrp).find('.js-vote.active').length >= iLmt ){ return; } $(oLnk).addClass('active'); $(oLnk).find('input[type="hidden"]').val('1'); } function csssVoteSubmit(e){ if( e ){ e.preventDefault(); } var aData = {}; if( $('.js-vote_form .js-vote.active').length <= 0 ){ $('.js-vote_form .js-vote_error').show(); return; } $('.js-vote_form').find('input').each(function(){ var sNam = $(this).attr('name'); var sVal = $(this).val(); aData[sNam]=sVal; }); $('.js-vote_form').hide(); $('.js-vote_message').show(); var sURL = $('.js-vote_form').attr('data-api'); apiCall('vote',sURL,aData,csssVoteComplete,true); } function csssVoteComplete(bSuc, sID, aData){ if( getValue(aData,'status') == 1 ){ var aRst = getValue(aData,'result',[]); $('.js-vote_result').find('.js-tab').html(''); $('.js-vote_result').find('.csss_voting_result').remove(); var iCnt = 0; for( var sK in aRst ){ var aDat = aRst[sK]; var sTab = ''+sK+''; $('.js-vote_result').find('.js-tab').append(sTab); var sRst = ''; sRst += '
'; for( var i=0; i'; sRst += ''; if( aDt['file'] != '' && aDt['file'] != undefined && aDt['file'] != null && aDt['file'] != false ){ sRst += ''; } sRst += ''; sRst += '
'; sRst += '

'+aDt['title']+'

'; sRst += '

'+aDt['description']+'

'; sRst += '
'; sRst += '
'+aDt['percentage']+'
'; sRst += ''; sRst += '
'; } sRst += ''; $('.js-vote_result .js-tab').parent().append(sRst); iCnt ++; } $('.js-vote_result').find('a:not(.anchored)').addClass('anchored').click(csssOnAnchor); $('.js-vote_result').find('.js-tab_item:first').click(); $('.js-vote_result').show(); csssScrollTo('.js-vote_result'); }else{ $('.js-vote_result').hide(); $('.js-vote_show_result').hide(); $('.js-vote_api_error').show(); } } function csssVoteShowResult(e){ if( e ){ e.preventDefault(); } csssScrollTo('.js-vote_result'); } function csssVoteInit(){ $('.js-vote').click(csssVote); $('.js-vote_submit').click(csssVoteSubmit); $('.js-vote_show_result').click(csssVoteShowResult); } /*================================================================================*/ /*================================================================================*/ var prevgaAction; function clickGa(el) { var gaEvent = "CSS_Click_Link", elHref = ''+el.attr('href'), elTxt = el.text().replace(/\n/g, ' ').replace(/ /g, ''), page = $("title").text().replace("sustainability | ", "") + "_", gaAction = "Click_" + elTxt, elParent = el.parent(); if( (elHref).indexOf('#') == 0 ){ gaEvent = "CSS_Click_Anchor"; } if(el.parents('.menu').length > 0) { gaAction = "Click_Menu_" + elTxt; } if(elParent.is(".csss_head_logo")) { gaAction = "Click_Menu_Logo"; } if(elParent.is(".logout")) { gaAction = (elHref === "/logout" ? 'Click_Menu_Logout' : 'Click_Menu_Login') } if(el.parents(".csss2_foot").length > 0) { gaAction = "Click_Footer_" + elTxt; } if(elParent.is('.csss2_management_text') || elParent.is('.csss_card_text') || elParent.is('.csss_heading') || elParent.is('.csss2_pill_item_text') || elParent.is('.csss2_framework_text')) { var titleEl = $(elParent).find('.h1,.h2,.h3,.h4,.h5').eq(0), titleTxt = $(titleEl).text() if($(titleEl).parents("a").length > 0 || elTxt === "") { gaAction = "Click_" + titleTxt; } else { gaAction = "Click_" + titleTxt + "_" + elTxt; } } if(elParent.is('.csss_card_img')) { var titleEl = el.parents(".csss_card").find('.h1,.h2,.h3,.h4,.h5').eq(0); if($(titleEl).length > 0) { var titleTxt = $(titleEl).text() if($(titleEl).parents("a").length > 0 || elTxt === "") { gaAction = "Click_" + titleTxt; } else { gaAction = "Click_" + titleTxt + "_" + elTxt; } } } if( el.parents('.csss_article').length > 0) { var titleEl = el.parents(".csss_article").find('.h1,.h2,.h3,.h4,.h5').eq(0); if($(titleEl).length > 0) { var titleTxt = $(titleEl).text() if($(titleEl).parents("a").length > 0 || elTxt === "") { gaAction = "Click_" + titleTxt; } else { gaAction = "Click_" + titleTxt + "_" + elTxt; } } } if(el.parents(".csss_intro").length > 0 || el.parents('.csss_outro').length > 0 || el.parents(".csss2_side_banner_text").length > 0) { var holder = $(elParent), innerHolder = el; while(holder.length > 0 && (!holder.is('.csss_intro') && !holder.is('.effect_fade_up') && !holder.is('.csss_outro') && !holder.is(".csss2_side_banner_text"))) { holder = holder.parent(); innerHolder = innerHolder.parent(); } var titleEl = innerHolder.prevUntil('.h1,.h2,.h3,.h4,.h5').prev() if($(titleEl).length > 0) { gaAction = "Click_" + $(titleEl).text() + "_" + elTxt; } else if (el.parents('.csss_outro').length > 0) { gaAction = "Click_Outro_" + elTxt; } } if( el.hasClass('js-tab_item')){ gaEvent = "CSS_Click_Tab"; gaAction = "Click_Tab_" + elTxt; } if(elParent.is(".csss_crumb")) { gaEvent = "CSS_Click_Breadcrumb"; gaAction = "Click_Breadcrumb_" + elTxt; } switch( elHref ){ case '#top' : gaAction = "Click_Back_To_Top"; break; case '#mobile' : gaAction = "Click_Toggle_Mobile_Menu"; break; case '#mobile_toggle': gaEvent = "CSS_Click_Submenu" ; gaAction = "Click_Toggle_Submenu_" + el.parents(".menu").find("a").eq(0).text(); break; // case '#accordion' : break; case '#pop_up' : gaEvent = "CSS_Click_Popup"; gaAction = "Click_Popup_" + el.parent().find(".h1,.h2,.h3,.h4,.h5").eq(0).text() if(el.is(".csss_btn")) gaAction += "_" + el.text(); prevgaAction = gaAction; break; case '#pop_close' : gaEvent = "CSS_Click_Close_Popup"; gaAction = $(this).parent().find(".h1,.h2,.h3,.h4,.h5").eq(0).text(); if(gaAction === "") gaAction = prevgaAction; break; case '#newpost' : gaEvent = "CSS_Click_Popup"; gaAction = "Click_New_Post"; break; case '#newpost_close': gaEvent = "CSS_Click_Close_Popup"; gaAction = "Click_Close_New_Post"; break; case '#more_comment' : gaEvent = "CSS_Click_More_Comment"; var titleTxt = $(".csss_landing .h2s").text() gaAction = "Click_More_Comment_" + titleTxt; break; case '#newpost_submit': gaEvent = "CSS_Click_Submit_New_Post"; gaAction = "Click_Submit_new_Post"; default : if( el.parents('.csss_pop').length > 0 ){ gaEvent = "CSS_Click_Popup_More"; var titleTxt = el.parents(".csss_pop").find(".h1,.h2,.h3,.h4").eq(0).text(); gaAction = "Click_Popup_More_" + titleTxt + "_" + elTxt } break; } var gaPageAction = page + gaAction sendGaEvent(gaEvent, gaAction, elHref, gaPageAction) } function csssOnAnchor(e){ var oLink = $(e.target).closest('a'); var sHref = $(oLink).attr('href'); clickGa($(oLink)); if( (''+sHref).indexOf('#') == 0 ){ if( e ){ e.preventDefault(); } } switch( sHref ){ case '#top' : csssScrollTo(0); break; case '#mobile' : csssMobileMenu(e); break; case '#mobile_toggle': csssMobileMenuToggle(e); break; case '#toggle' : csssToggle(e); break; case '#accordion' : csssAccordionToggle(e); break; case '#pop_up' : csssPopUpClick(e); break; case '#pop_close' : csssPopDown(e); break; case '#newpost' : csssNewPost(e); break; case '#newpost_close': csssNewPostClose(e); break; case '#upload_clear' : csssFileClear(e); break; case '#more_comment' : $('.csss_comment').each(function(){ var iCnt = 0; $(this).find('.csss_comment_item.hidden').each(function(){ if( iCnt < 5 ){ $(this).removeClass('hidden').show(); } iCnt++ }); }) if( $('.csss_comment_item.hidden').length <= 0 ){ $(oLink).hide(); } break; default : if( $(oLink).hasClass('js-tab_item')){ csssTabToggle(e); } break; } } /*--------------------------------------------------------------------------------*/ function csssOnScroll(){ var iST = $(window).scrollTop(); if( iST > 120 || $('.csss_head_menu .mobile .open').length > 0 ){ $('.csss_head').addClass('scroll'); }else{ $('.csss_head').removeClass('scroll'); } $('.csss_home_bg').each(function(){ var iT = $(this).position().top; var iY = Math.max(0,iST-iT)+100; $(this).css({'transform':'ease all 0.1s','background-position':'top '+iY+'px center'}) }); if( $(window).width() >= 1024 ){ $('.csss2_banner').each(function(){ var iT = $(this).position().top; var iY = Math.max( 0 , (iT-iST)/-2 ); $(this).find('.csss2_banner_img').css({'top':iY+'px'}) }); }else{ $('.csss2_banner').find('.csss2_banner_img').css({'top':'0px'}) } $('.toggled').removeClass('open'); csssEffect(iST); } /*--------------------------------------------------------------------------------*/ function csssInit(){ $(window).bind('scroll',csssOnScroll); $('a:not(.anchored)').addClass('anchored').click(csssOnAnchor); if( $('.csss_banner--white').length > 0 ){ $('.csss_head').addClass('white'); } $('.csss_head_menu').mouseenter( function(e){ $('.csss_head').addClass('hovered'); }); $('.csss_head_menu').mouseleave( function(e){ $('.csss_head').removeClass('hovered'); }); $('.csss_comment').each(function(){ var iCnt = 0; $(this).find('.csss_comment_item').each(function(){ if( iCnt >= 3){ $(this).addClass('hidden').hide(); } iCnt++ }); }) csssTabInit(); csssQuizInit(); csssSwiperInit(); csssNumberEffectInit(); csssVoteInit(); csssLoadListing(); csssSideBannerFix() csssOnScroll(); if( (''+window.location).indexOf('#')>=0){ var sAnc= (''+window.location).replace(/.+[#]/gi,'#'); if( sAnc != '#' && $(sAnc).length >0 ){ var iTop = $(sAnc).offset().top - 300; $('html,body').animate({scrollTop:iTop}); } } $('#top .csss_head_menu .menu > a').each(function(){ $(this).html( (''+$(this).html()).replace(/[\r\n]/gi,'
') ); }) } /*================================================================================*/ $(document).ready(function(){ csssInit(); }); /*--------------------------------------------------------------------------------*/