﻿; (function ($) { var p = { hidePageGroup: true, pageSize: 12, maxPageCount: 5, mask: '', scroll_time: 500 }; var q = { data: null, currentPage: 1 }; function load_data_new(a) { var b = a.data('data'); var c = a.data('opts'); var d = a.data('createWorkList'); var e = a.find('.pageGroup'); e.find('a').remove(); var f = a.data('currentPage'); var g = c.maxPageCount; RebindPageGroup(a); var h = a.find(c.mask); h.find('.workList').remove(); var i = c.pageSize; var j = ((f - 1) * i) + 1; var k = f * i; if (k > b.total) k = b.total; var l, include; if (a.data('tag')) l = a.data('tag'); if (a.data('include')) l = a.data('include'); var m = d(a, b, j, k, l, include).css({ top: '0px', left: '0px' }).attr('page', f); h.append(m); a.data('onReady', true) }; function left_onclick(a) { var b = $(this).parent(); var c = b.data('currentPage') - 1; if (c < 1) c = 1; b.data('currentPage', c); $.cookie('scroller_cp', c); move_right(b); a.preventDefault(); return false }; function right_onclick(a) { var b = $(this).parent(); var c = b.data('currentPage') + 1; if (c > b.data('pageCount')) c = b.data('pageCount'); b.data('currentPage', c); $.cookie('scroller_cp', c); move_left(b); a.preventDefault(); return false }; function page_onclick(a) { var b = $(this).data('direction'); var c = $('#' + $(this).parent().data('targetEl')); var d = $(a.target).attr('page'); c.data('currentPage', parseInt(d)); if (b === '<') move_right(c); else if (b === '>') move_left(c); RefreshDirection(c); a.preventDefault(); return false }; function scroll_hoverIn() { var a = $(this); var b = a.data('opts'); a.data('scroll_hover', true); a.find('.toLeft').bind('click', left_onclick); a.find('.toRight').bind('click', right_onclick); RefreshDirection(a); if (b.hidePageGroup) a.find('.pageGroup').stop(true, true).fadeIn('fast') }; function scroll_hoverOut() { var a = $(this); var b = a.data('opts'); a.find('.toLeft').stop(true, true).fadeOut('fast').unbind('click').end().find('.toRight').stop(true, true).fadeOut('fast').unbind('click'); if (b.hidePageGroup) a.find('.pageGroup').hide() }; function move_right(a) { if (a.data('onReady')) { var b = a.data('data'); var c = a.data('opts'); var d = a.data('createWorkList'); var e = a.data('tag'); var f = a.data('include'); a.data('onReady', false); var g = a.data('currentPage'); var h = c.pageSize; var i = ((g - 1) * h) + 1; var j = g * h; if (j > b.total) j = b.total; var k = a.find(c.mask); var l = k.find('.workList'); var m = parseInt(k.css('width')); RebindPageGroup(a); var n = parseInt(l.css('left')); var o = d(a, b, i, j, e, f).css({ top: '0px', left: (n - m) + 'px' }).attr('page', 1); k.append(o); l.animate({ left: m + 'px' }, c.scroll_time, function () { a.data('onReady', true); $(this).remove() }); o.animate({ left: '0px' }, c.scroll_time); RefreshDirection(a) } } function move_left(a) { if (a.data('onReady')) { var b = a.data('data'); var c = a.data('opts'); var d = a.data('createWorkList'); var e = a.data('tag'); var f = a.data('include'); a.data('onReady', false); var g = a.data('currentPage'); var h = c.pageSize; var i = ((g - 1) * h) + 1; var j = g * h; if (j > b.total) j = b.total; var k = a.find(c.mask); var l = k.find('.workList'); var m = parseInt(k.css('width')); RebindPageGroup(a); var n = d(a, b, i, j, e, f).css({ top: '0px', left: m + 'px' }).attr('page', g); k.append(n); l.animate({ left: (0 - m) + 'px' }, c.scroll_time, function () { a.data('onReady', true); $(this).remove() }); n.animate({ left: '0px' }, c.scroll_time); RefreshDirection(a) } } function RebindPageGroup(b) { var c = b.data('pageCount'); var d = b.data('currentPage'); var e = b.find('.pageGroup'); var f = e.find('a[page="' + d + '"]'); var g = b.data('opts'); var h = Math.floor(g.maxPageCount / 2); var j = false; if (f.length == 0) j = true; else if (d > (h + 1)) j = true; else if (d < (c - h)) j = true; j = true; if (j) { e.find('a').remove(); var k = d - h; if (k < 1) k = 1; var l = k + (g.maxPageCount - 1); if (l > c) { l = c; k = l - (g.maxPageCount - 1); if (k < 1) k = 1 } for (var i = k; i <= l; i++) { var m = createEl('a'); m.attr('href', '#'); m.attr('page', i); if (i == d) m.attr('class', 'selected').click(function (a) { a.preventDefault() }); else if (i < d) m.data('direction', '<').bind('click', page_onclick); else if (i > d) m.data('direction', '>').bind('click', page_onclick); m.text(i); e.append(m) } } e.find('a').removeClass('selected').filter('[page="' + d + '"]').addClass('selected') } function RefreshDirection(a) { var b = a.data('pageCount'); var c = a.data('currentPage'); var d = (c > 1) && (c <= b); var e = (c < b); if (d) a.find('.toLeft').stop(true, true).fadeIn('fast'); else a.find('.toLeft').hide(); if (e) a.find('.toRight').stop(true, true).fadeIn('fast'); else a.find('.toRight').hide() } $.fn.scroller = function (a) { var b = $(this); save_opts = $.extend({}, p, a || {}); b.data('opts', save_opts); b.find('.toLeft').hide().end().find('.toRight').hide().end().find(a.mask + ' > .workList').remove().end().hover(scroll_hoverIn, scroll_hoverOut); b.find('.pageGroup').data('targetEl', b.attr('id')); if (save_opts.hidePageGroup) b.find('.pageGroup').hide(); return this }; $.fn.loadScrollData = function (a, b, c, d) { var e = $(this); var f = 1; e.data('data', a).data('currentPage', f).data('createWorkList', b).data('onReady', false); if (c != undefined) e.data('tag', c); if (d != undefined) e.data('include', d); var g = e.data('opts'); var h = a.total / g.pageSize; var i = Math.floor(h); if (h > i) i += 1; e.data('pageCount', i); load_data_new(e) } })(jQuery);
