(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"); } }); });