//
// Service Paging
// (c) Copyright Anywhere 2009
//
(function($) {
	$.fn.service_scroller = function(options) {
		
		var opts = $.extend({}, $.fn.service_scroller.defaults, options);
		var o = this;
		
		opts.limit = this.find('td.record').length;
		opts.pages = Math.floor(opts.records / opts.limit);
		
		if ( opts.status_total ) $('#' + opts.status_total ).html(opts.pages);
		
		// fw/back buttons
		this.find('div#horizScrollButton').each(function() {
			$(this).bind('click', function() {
				$.fn.service_scroller.page(o, opts, this);
			});
		});
	};
	
	$.fn.service_scroller.defaults = {
		'limit':4,
		'page':0,
		'records':0,
		'status_page': false,
		'status_total': false
	};
	
	$.fn.service_scroller.get_params = function(opts) {		
		params = {'limit': opts.limit, 'page': opts.page}
		return $.extend({}, opts.params, params);
	}
	
	$.fn.service_scroller.page = function(o, opts, btn) 
	{
		var dir = $(btn).attr('class');
		
		if (dir == 'next') {
			page = opts.page += 1;
		} else if (dir == 'prev') {
			page = opts.page -= 1;
		}
		
		if (page > (opts.pages - 1)) {
			opts.page = 0;
		} else if (page < 0) {
			opts.page = (opts.pages - page - 2)
		}
		
		$(btn).addClass('active');
		
		// clear records
		o.find('td.record').each(function() {
			$(this).html('');
			$(this).addClass('loading');
		});
		
		$.getJSON(opts.url, $.fn.service_scroller.get_params(opts), function(data) {
			for (i=0; i<data.length; i++) {
				o.find('td.record:eq('+i+')').each(function(){
					var html = String(data[i]).replace(/\&quot\;/g, '"');
					$(this).removeClass('loading').hide().html(html).fadeIn(500*i);
				});
			}
				
			if ( opts.status_page ) $('#' + opts.status_page ).html(opts.page + 1);
			$(btn).removeClass('active');
			
			try { // google analytics track click
				pageTracker._trackPageview(opts.url);
			}catch(e){}
		}); 
	}; 
}) (jQuery);

(function($) {
	$.fn.pause = function(duration) {
	    $(this).animate({ dummy: 1 }, duration);
	    return this;
	};
}) (jQuery);


function html_entity_decode(str)
{
    var  tarea=document.createElement('textarea');
    tarea.innerHTML = str; return tarea.value;
    tarea.parentNode.removeChild(tarea);
}
