2014-11-10 08:42:09 +00:00
|
|
|
(function($) {
|
2014-11-07 08:06:50 +00:00
|
|
|
|
|
|
|
// Init functions
|
|
|
|
function init() {
|
2015-02-25 03:41:53 +00:00
|
|
|
|
|
|
|
function checkAdBannerAlt() {
|
|
|
|
$( ".widget-adBanner .slide-img > img" ).each( function(){
|
|
|
|
if( $(this).attr( "alt" ) === "" ) {
|
|
|
|
$(this).attr( "alt", "AD Banner Image" );
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2015-02-24 06:19:36 +00:00
|
|
|
// 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" );
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2014-11-10 08:42:09 +00:00
|
|
|
function heightCompare () {
|
|
|
|
var priHeight = $('.primary').height();
|
|
|
|
var secHeight = $('.secondary').height();
|
|
|
|
if( priHeight <= secHeight ) {
|
|
|
|
$('.primary')
|
|
|
|
.children('.inner')
|
|
|
|
.css('height', secHeight + 30);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-11-07 08:06:50 +00:00
|
|
|
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');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-24 06:19:36 +00:00
|
|
|
// 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');
|
|
|
|
}
|
|
|
|
|
2014-11-07 08:06:50 +00:00
|
|
|
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');
|
|
|
|
}
|
|
|
|
|
2015-02-24 06:19:36 +00:00
|
|
|
// 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" );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-11-07 08:06:50 +00:00
|
|
|
// 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();
|
2014-11-10 08:42:09 +00:00
|
|
|
heightCompare();
|
2014-11-07 08:06:50 +00:00
|
|
|
}
|
2015-02-24 06:19:36 +00:00
|
|
|
removeSignUpItem();
|
|
|
|
addClassOnLastMenuItem();
|
|
|
|
addLinkOnADBanner( $(".cycle-slideshow > .slide-img") );
|
2015-02-25 03:41:53 +00:00
|
|
|
checkAdBannerAlt();
|
2014-11-07 08:06:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$(document).ready(function($) {
|
|
|
|
init();
|
2015-03-06 04:34:54 +00:00
|
|
|
getXmlFeedForCalendar();
|
2014-11-07 08:06:50 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
}(jQuery));
|
2015-03-06 04:34:54 +00:00
|
|
|
var getXmlFeedForCalendar = function(){
|
|
|
|
var template = "<li><div class='event_date'><div class='mon'></div><div class='day'>/06</div></div><a class='event_name' href='' target='_blank'></a><div class='event_info'></div></li>",
|
|
|
|
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];
|
|
|
|
}
|
2014-11-07 08:06:50 +00:00
|
|
|
|
2015-03-06 04:34:54 +00:00
|
|
|
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;
|
|
|
|
});
|
|
|
|
}
|
2014-11-07 08:06:50 +00:00
|
|
|
|
2015-03-06 04:34:54 +00:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
}
|
2014-11-07 08:06:50 +00:00
|
|
|
|
2015-03-06 04:34:54 +00:00
|
|
|
}
|
2014-11-07 08:06:50 +00:00
|
|
|
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() {
|
2014-11-13 09:38:44 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-11-07 08:06:50 +00:00
|
|
|
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('<span class="dot"></span>')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|