(function($) { // Init functions function init() { function checkAdBannerAlt() { $( ".widget-adBanner .slide-img > img" ).each( function(){ if( $(this).attr( "alt" ) === "" ) { $(this).attr( "alt", "AD Banner Image" ); } }); } // Add link and cursor class name on element that has data-link attribute function addLinkOnADBanner( els ) { $.each( els, function() { if ( $( this ).data( "link" ) !== "" && !$( this ).hasClass( "youtube" ) ) { $( this ).on( "click", function() { var target = $( this ).data( "target" ), link = $( this ).data( "link" ); if ( target === "_blank" ) { window.open( link, target ); } else { window.location.href = link; } }).addClass( "cursor" ); } }); } function heightCompare () { var priHeight = $('.primary').height(); var secHeight = $('.secondary').height(); if( priHeight <= secHeight ) { $('.primary') .children('.inner') .css('height', secHeight + 30); } } function searchDetect () { if( $('body').attr('data-module') == 'news' || $('body').attr('data-module') == 'announcement' ) { if( window.location.search.length < 1 ) { $('.search-result').addClass('hide'); } } } function moveElement() { var path = window.location.pathname.split('/'); if( path.indexOf('newss') || path.indexOf('announcement') ) { $('.i-sidebar') .insertBefore('.secondary .page_content'); } } // Doing this is to prevent directly change in the HTML function removeSignUpItem() { $(".login-body").find("a[href='/users/new']") .addClass('hide') .prev("div") .addClass('hide'); $(".orbit-bar-search-sign-language") .find(".icons-tools") .closest('li') .addClass('hide'); } function bullsEye() { $('.bullseye').bullseye({ effect: false }); } // Adding class to submenu that has dropdown items function submenuFix() { var item$ = $('.submenu__item.level-1'); var itemLen = item$.length; var list$ = item$.find('.submenu__list.level-2'); for (var i = 0; i < itemLen; i++) { if (list$.eq(i).find('li').length) { list$ .eq(i) .addClass('dropdown'); } } } function navActive() { var path = window.location.pathname.split('/'); var pathSlice = path.slice(1, path.length); var url = pathSlice.join('/'); var nav$ = $('.page_menu.level_1'); var navLen = nav$.length; $('.page_menu.level_1 > li a[href*="' + "/" + url + '"]') .addClass('active'); } // Specifically for IE8 function addClassOnLastMenuItem() { // IE8 and blow don't support multiple backgrouds, // hance using this class to detect if the current user agent is IE8 if( $( "html" ).hasClass( "no-multiplebgs" ) ) { $( ".page_menu.level_1 > li:last-child" ).addClass( "last" ); } } // Main navigation dropdown function dropdown() { var navItemLevel1$ = $('.main-nav-item.level-1'); var dropdownMenu$ = $('.dropdown-menu.level-2'); // Adding class if nav item has dropdown $(navItemLevel1$) .has('.dropdown-menu') .children('a') .addClass('has-dropdown-menu'); // Hide all dropdowns when click on any HTML elements $(document).on('click', function() { $('.dropdown-menu.level-2') .addClass('hide') .removeClass('show'); }) // Hide all dropdown after page load dropdownMenu$ .addClass('hide') .removeClass('show'); $('.has-dropdown-menu').on('click', function() { if ($(this).hasClass('has-dropdown-menu')) { if ($(this).next('.dropdown-menu').hasClass('show')) { dropdownMenu$.addClass('hide'); $(this) .next('.dropdown-menu') .removeClass('show') .addClass('hide') } else if ($(this).next('.dropdown-menu').hasClass('hide')) { dropdownMenu$.addClass('hide'); dropdownMenu$.removeClass('show'); dropdownMenu$.addClass('hide'); $(this) .next('.dropdown-menu') .removeClass('hide') .addClass('show') } } return false; }) } // Targeting Home page if ($('body').attr('class') === 'page-main') { bullsEye(); dropdown(); // Internal page } else { submenuFix(); dropdown(); bullsEye(); moveElement(); searchDetect(); heightCompare(); } removeSignUpItem(); addClassOnLastMenuItem(); addLinkOnADBanner( $(".cycle-slideshow > .slide-img") ); checkAdBannerAlt(); } $(document).ready(function($) { init(); getXmlFeedForCalendar(); }); }(jQuery)); var getXmlFeedForCalendar = function(){ var template = "
  • /06
  • ", month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; $.ajax({ "url" : "/nccu_calendar.xml", "dataType" : "xml", "type" : "get" }).done(function(data){ xmldoc = $(data); xmldoc.find("entry").each(function(i,entry){ var el = $(entry), li = $(template), summary_text = el.find("summary").text(), indexA = summary_text.indexOf("-"), indexB = summary_text.indexOf(" "), indexC = summary_text.indexOf("/"), startDate_text = null, startMon_text = null, endDate_text = null, time_text = null; //清除前後空白字元 summary_text = jQuery.trim(summary_text); //篩選標題 if (summary_text.length == 31) { startDate_text = summary_text.slice(0, indexA); startMon_text = startDate_text.slice((indexC+1), (indexC+3)); startDay_text = startDate_text.slice(7); endDate_text = summary_text.slice((indexA+1), indexB); time_text = summary_text.slice((indexB+1)); } else { startDate_text = summary_text.slice(0, indexB); startMon_text = startDate_text.slice((indexC+1), (indexC+3)); startDay_text = startDate_text.slice(7); endDate_text = ''; time_text = summary_text.slice((indexB+1)); } if(startMon_text.slice(0, 1) == '0'){ console.log("slice") startMon_text = month[startMon_text.slice(1)-1]; } else { console.log("without slice") startMon_text = month[startMon_text-1]; } li.find("a").text(el.find("title").text()).attr("href", el.find("link").attr("href")); li.find(".mon").text(startMon_text); li.find(".day").text(startDay_text); li.find(".event_info").text("時間:" + time_text); $("#nccu_event_calendar").append(li); }) bindHandler(); }) var $next = $('.events .links_next'), $prev = $('.events .links_prev'); var bindHandler = function(){ var page_number = 1, total_pages = Math.ceil($("#nccu_event_calendar li").length / 3); showLis(page_number, total_pages); $next.on("click", function(){ if(page_number < total_pages){ page_number++; showLis(page_number,total_pages); } return false; }); $prev.on("click", function(){ if(page_number > 1){ page_number--; showLis(page_number,total_pages); } return false; }); } var showLis = function(page_number,total_pages){ var $ul = $("#nccu_event_calendar"), start = (page_number - 1) * 3, end = (page_number * 3) - 1; $ul.find("li").hide(); for(var i = start; i <= end; i++){ $ul.find("li").eq(i).show(); } if(page_number == 1 && total_pages > 1){ $prev.addClass("disabled"); $next.removeClass("disabled"); }else if(page_number > 1 && page_number < total_pages){ $prev.removeClass("disabled"); $next.removeClass("disabled"); }else if(page_number == total_pages){ $next.addClass("disabled"); } } } var packagesJS = function() { $('.open-mune').on('click', function(event) { $(this).closest('.main_menu').toggleClass('in'); }); $('.level_1').on('click', '.dot', function(event) { var $this = $(this); if ($this.closest('.main_menu').hasClass('collapse')) { // $this.closest('li').addClass('in').siblings('li').removeClass('in'); $this.siblings('.page_menu').slideToggle(300, function() { $this.closest('li').toggleClass('in').siblings('li').removeClass('in'); }).end().parent('li').siblings('li').find('.page_menu').slideUp(300); } }); newsBlock(); $('.news').on('click', ".topic_prev, .topic_next", slideList); }; var newsBlock = function() { var $topicList = $('#topic_list'); var $listMask = $('.list_mask'); var $li = $topicList.children('li'); var $prev = $('.topic_prev'); var $next = $('.topic_next'); var _wn = $listMask.width() * -3; var $maxWidth = $listMask.width() * -3; $li.css('width', $listMask.width() / 3); $topicList.css('width', $listMask.width() * 4); if (window.innerWidth < 767 && window.innerWidth > 480) { $li.css('width', $listMask.width() / 2); $topicList.css('width', $listMask.width() * 6); $maxWidth = $listMask.width() * -6; _wn = $listMask.width() * -5; } else if (window.innerWidth < 479) { $li.css('width', $listMask.width()); $topicList.css('width', $listMask.width() * 12); $maxWidth = $listMask.width() * -12; _wn = $listMask.width() * -11; } checkPosition = function(left) { if (left == 0) { $prev.addClass('last'); } else if (left == _wn) { $next.addClass('last'); } else if (left > 0) { $topicList.animate({ 'left': 0 }); $prev.addClass('last'); } else if (left < $maxWidth) { $topicList.animate({ 'left': 0 }); $prev.addClass('last'); } else { $prev.removeClass('last'); $next.removeClass('last'); } } $prev.addClass('last'); slideList = function(e) { var cn = e.target.className; position = function() { if (cn == 'topic_next') { return '-=' + $listMask.width(); } else if (cn == 'topic_prev') { return '+=' + $listMask.width(); } } $topicList.stop().animate({ 'left': position() }, 500, function() { checkPosition($topicList.position().left) }); } } $(function() { if (getCookie("ipv6") == 'true') { $("#ipv6").text("Now in IPv6"); } else { $("#ipv6").text("Now in IPv4"); } function getCookie(c_name) { var c_value = document.cookie; var c_start = c_value.indexOf(" " + c_name + "="); if (c_start == -1) { c_start = c_value.indexOf(c_name + "="); } if (c_start == -1) { c_value = null; } else { c_start = c_value.indexOf("=", c_start) + 1; var c_end = c_value.indexOf(";", c_start); if (c_end == -1) { c_end = c_value.length; } c_value = unescape(c_value.substring(c_start, c_end)); } return c_value; } var _timer = 0; var menuItem$ = $('.page_menu.level_1').children('li'); var menuLen = menuItem$.length; for (var i = 0; i < menuLen; i++) { var _this = menuItem$[i]; if ($(_this).find('.page_menu.level_2').length) { $(_this).children('a').after('') } } packagesJS(); function windowResize() { if (window.innerWidth > 767) { $('.main_menu').addClass('expansion').removeClass('collapse'); $('.page_menu').removeAttr('style'); } else { $('.main_menu').addClass('collapse').removeClass('expansion'); } $('#topic_list').css('left', 0); $('.topic_next').removeClass('last') newsBlock(); } windowResize(); $(window).resize(function(event) { clearTimeout(_timer); _timer = setTimeout(windowResize, 30); }); $(document).ajaxStop(function() { if (location.pathname.split('/')[location.pathname.split('/').length - 1] == "NewsSearch") { $('article').find('.dymanic_load').addClass("search"); } }); });