/** * bluenight.js for BlueNight Theme * * @author Yaohaixiao * @update 2012-11-29 * */ (function($){ var HOME_PAGE = 'http://www.yaohaixiao.com', doc = document, isIE = $.browser.msie, version = $.browser.version, // Share Article shareArticle = function(siteName, siteURL){ var link = encodeURIComponent(document.location), title = encodeURIComponent(document.title.substring(0, 76)), source = encodeURIComponent(siteName), WINDOW_NAME = 'share'; site = siteURL, getParamsOfShareWindow = function(width, height){ return ['toolbar=0,status=0,resizable=1,width=' + width + ',height=' + height + ',left=', (screen.width - width) / 2, ',top=', (screen.height - height) / 2].join(''); }, FBShare = $('#facebook-share'), TTShare = $('#twitter-share'), DShare = $('#delicious-share'), KXShare = $('#kaixin001-share'), RRShare = $('#renren-share'), DBShare = $('#douban-share'), SNShare = $('#sina-share'), NEShare = $('#netease-share'), QQShare = $('#tencent-share'); if (FBShare[0]) { $(FBShare).click(function(){ var url = 'http://facebook.com/share.php?u=' + link + '&t=' + title; var params = getParamsOfShareWindow(626, 436); window.open(url, WINDOW_NAME, params); }); } if (TTShare[0]) { $(TTShare).click(function(){ var url = 'http://twitter.com/share?url=' + link + '&text=' + title; var params = getParamsOfShareWindow(500, 375); window.open(url, WINDOW_NAME, params); }); } if (DShare[0]) { $(DShare).click(function(){ var url = 'http://delicious.com/post?url=' + link + '&title=' + title; var params = getParamsOfShareWindow(550, 550); window.open(url, WINDOW_NAME, params); }); } if (KXShare[0]) { $(KXShare).click(function(){ var url = 'http://www.kaixin001.com/repaste/share.php?rurl=' + link + '&rcontent=' + link + '&rtitle=' + title; var params = getParamsOfShareWindow(540, 342); window.open(url, WINDOW_NAME, params); }); } if (RRShare[0]) { $(RRShare).click(function(){ var url = 'http://share.renren.com/share/buttonshare?link=' + link + '&title=' + title; var params = getParamsOfShareWindow(626, 436); window.open(url, WINDOW_NAME, params); }); } if (DBShare[0]) { $(DBShare).click(function(){ var url = 'http://www.douban.com/recommend/?url=' + link + '&title=' + title; var params = getParamsOfShareWindow(450, 350); window.open(url, WINDOW_NAME, params); }); } if (SNShare[0]) { $(SNShare).click(function(){ var url = 'http://v.t.sina.com.cn/share/share.php?url=' + link + '&title=' + title; var params = getParamsOfShareWindow(607, 523); window.open(url, WINDOW_NAME, params); }); } if (NEShare[0]) { $(NEShare).click(function(){ var url = 'http://t.163.com/article/user/checkLogin.do?link=' + link + 'source=' + source + '&info=' + title + ' ' + link; var params = getParamsOfShareWindow(642, 468); window.open(url, WINDOW_NAME, params); }); } if (QQShare[0]) { $(QQShare).click(function(){ var url = 'http://v.t.qq.com/share/share.php?title=' + title + '&url=' + link + '&site=' + site; var params = getParamsOfShareWindow(634, 668); window.open(url, WINDOW_NAME, params); }); } }, // Equal Height equalHeight = function(main, side){ var mainBlock = $(main), sideBar = $(side), mainHeight = 0, sideHeight = 0; if (!mainBlock[0] || !sideBar[0]) { return false; } mainHeight = mainBlock.height(); sideHeight = sideBar.height(); if (sideHeight > mainHeight) { mainBlock.height(sideHeight); } }, // Back to top backTop = function(btnId, startTop, scrollSpeed){ var isNumber = function(num){ return typeof num === 'number' && isFinite(num); }, getScrollTop = function(){ return doc.documentElement.scrollTop || doc.body.scrollTop; }, setScrollTop = function(val){ doc.documentElement.scrollTop = val; doc.body.scrollTop = val; }, btnTop = $('#lnk-backtop'), min = 480, speed = 20, timer = null, move = function(){ var scrollTop = getScrollTop(); if (scrollTop <= 0) { clearInterval(timer); return false; } setScrollTop(scrollTop / 1.1); }; if (btnId) { btnTop = $(btnId); } if (!btnTop[0]) { return false; } if (startTop && isNumber(startTop)) { min = startTop; } if (scrollSpeed && isNumber(scrollSpeed)) { speed = scrollSpeed; } $(window).scroll(function(){ var scrollTop = getScrollTop(), viewportHeight = $(window).height(); scrollTop > min ? btnTop.show(100) : btnTop.hide(150); if (isIE && version < 7) { setTimeout(function(){ btnTop.css('top', (viewportHeight + scrollTop - 80) + 'px') }, 100); } }); btnTop.click(function(){ timer = setInterval(move, speed); return false; }); }, // Ajax Comments Pager ajaxCommentsPager = function(config){ var ajaxComments = $(config.root); if (ajaxComments[0]) { ajaxComments.delegate(config.link, 'click', function(evt){ var perPage = $(this).attr('href').split('perpage-')[1], curPageID = ($(this).attr('href').split('comment-page-')[1]).split('/')[0], curPostID = $(document.body).attr('class').split('postid-').length > 1 ? ($(document.body).attr('class').split('postid-')[1]).split(' ')[0] : '0', postID = parseInt(curPostID, 10), pageID = parseInt(curPageID, 10); $.ajax({ url: HOME_PAGE + "/?p=" + postID + "&action=" + config.action + "&pager_id=" + config.navContainer.replace('#', '') + "&per_page=" + perPage + "&postid=" + postID + "&pageid=" + pageID, method: "GET", beforeSend: function(){ ajaxComments.css('cursor', 'wait'); $(config.navContainer).html('Loading comments, please wait...'); }, error: function(xhr, textStatus, thrownError){ alert("readyState: " + xhr.readyState + " status:" + xhr.status + " statusText:" + xhr.statusText + " responseText:" + xhr.responseText + " responseXML:" + xhr.responseXML + " onreadystatechange" + xhr.onreadystatechange); alert(thrownError); }, success: function(data){ ajaxComments.html(data).css('cursor', 'auto'); ajaxComments.find('img.lazy').lazyload({ threshold: 100, effect: "fadeIn" }); if (config.isScroll) { $('html,body').animate({ scrollTop: $('#comments').offset().top }, 800); } } }); evt.preventDefault(); evt.stopPropagation(); }); } }; // Drop Down Menus (function($){ $.fn.extend({ dropMenu: function(menuItem, subMenuItem){ var root = $(this), CLS_HAS_MENU = 'has-sub-menu'; if (!root[0]) { return false; } if (!menuItem) { menuItem = 'li'; } if (!subMenuItem) { subMenuItem = 'ul'; } $(root).find(menuItem).each(function(i, li){ var curMenu = $(li), curLink = curMenu.is('a') ? curMenu : $(curMenu.find('a:first')), subMenus = $(subMenuItem, curMenu), hasMenu = subMenus.length >= 1, curSubMenu = null, curSubMenuLastItem = null, show = function(){ setTimeout(function(){ if (!isIE || (isIE && version > 6)) { curSubMenu.show(200); } else { curSubMenu.css('display', 'block'); } }, 100); }, hide = function(){ setTimeout(function(){ if (!isIE || (isIE && version > 6)) { curSubMenu.hide(150); } else { curSubMenu.css('display', 'none'); } }, 100); }; if (hasMenu) { curMenu.addClass(CLS_HAS_MENU); curSubMenu = $(subMenus[0]); curSubMenuLastItem = curSubMenu.find('a:last'); // mouse event curMenu.hover(show, hide); curLink.focus(show); curSubMenuLastItem.blur(hide); } }); } }); })(jQuery); if ($('#main-nav')[0]) { $('#main-nav').dropMenu(); } else { if ($('#main-navigation')[0]) { $('#main-navigation').dropMenu(); } } if ($('#side-popular-posts')[0]) { $('#side-popular-posts').dropMenu('li', '.popular-entry'); } if ($('#footer-popular-posts')[0]) { $('#footer-popular-posts').dropMenu('li', '.popular-entry'); } shareArticle('YAOHAIXIAO.COM', HOME_PAGE); ajaxCommentsPager({ root: '#ajax-comments', link: '.page-numbers', action: 'compageajax', navContainer: '#comments-navigation', isScroll: true }); ajaxCommentsPager({ root: '#side-recentcomments', link: '.page-numbers', action: 'rectcompageajax', navContainer: '#side-recentcomments-pager' }); ajaxCommentsPager({ root: '#footer-recentcomments', link: '.page-numbers', action: 'rectcompageajax', navContainer: '#footer-recentcomments-pager' }); equalHeight('#main', '#side'); backTop(); $('#main img.lazy').lazyload({ threshold: 100, effect: "fadeIn" }); $('#side img.lazy').lazyload({ threshold: 100, effect: "fadeIn" }); $('#footer-widgets img.lazy').lazyload({ threshold: 100, effect: "fadeIn" }); })(jQuery);