forked from saurabh/orbit4-5
361 lines
12 KiB
JavaScript
361 lines
12 KiB
JavaScript
(function($) {
|
|
|
|
// Init functions
|
|
function init() {
|
|
|
|
utils = {
|
|
|
|
}
|
|
|
|
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');
|
|
}
|
|
}
|
|
|
|
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');
|
|
}
|
|
|
|
// 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();
|
|
}
|
|
}
|
|
|
|
$(document).ready(function($) {
|
|
init();
|
|
getXmlFeedForCalendar();
|
|
});
|
|
|
|
}(jQuery));
|
|
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];
|
|
}
|
|
|
|
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');
|
|
});
|
|
|
|
$('.page_menu.level-2')
|
|
|
|
$('.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() {
|
|
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");
|
|
}
|
|
});
|
|
});
|