/**
 * JavaScript by Jeffrey Ouma.
 * Copyright© 2008 - 2010 artkenya.net Ltd.
 * All rights reserved.
 *
 * Script name: paging.js
 * Purpose: Defines the paging namespace and the functions used to control pagination.
 */
Site.paging = {};
/**
 * Function name: Init
 * Purpose: Executes when the page loads after the DOM is ready. Performs initialization of any
 * elements or values to their default.
 */
Site.paging.Paginate = function(state) {
	try {
		var elmArray = Dom.get("yui-main").getElementsByTagName("h1");
		var d = BLEEZ.util.Dimensions(elmArray[0]);
		var fadeOut = new YAHOO.util.Anim(Site.paging.content, {
			opacity: {
				to: 0
			}
		}, 0.25, Easing.easeOut);
		fadeOut.onComplete.subscribe(function() {
			try {
				Dom.addClass(Site.paging.records, "hide");
				var row = Site.paging.paginator.getState();
				if (!state) {
					for (var i = 0; i < row.rowsPerPage; i++) {
						Dom.removeClass(Site.paging.records[i], "hide");
					}
				} else {
					for (var i = state.records[0]; i <= state.records[1]; i++) {
						Dom.removeClass(Site.paging.records[i], "hide");
					}
					Site.paging.paginator.setState(state);
				}
				fadeIn.animate();
				var animScroll = new YAHOO.util.Scroll(document.documentElement, {
					scroll: {
						to: [Dom.getDocumentScrollLeft(), d["top"]]
					}
				}, 1, Easing.easeOut);
				if(Dom.getDocumentScrollTop() > d["top"]) animScroll.animate();
			} catch (e) {
				errorHandler(e);
			}
		});
		var fadeIn = new YAHOO.util.Anim(Site.paging.content, {
			opacity: {
				to: 1
			}
		}, 0.45, Easing.easeIn);
		fadeOut.animate();
	} catch (e) {
		errorHandler(e);
	}
};
Site.paging.Init = function() {
	try {
		if (Dom.get("paging") && Dom.get("paginator-content")) {
			var paginatorRows = parseInt(Dom.get("paginator-rows").value);
			Site.paging.content = Dom.get("paginator-content");
			Site.paging.records = Dom.getElementsByClassName("paginator-record", "div", Site.paging.content);
			Site.paging.paginator = new YAHOO.widget.Paginator({
				rowsPerPage: paginatorRows,
				totalRecords: Site.paging.records.length,
				containers: ["paging"]
			});
			Site.paging.paginator.subscribe("changeRequest", Site.paging.Paginate);
			Site.paging.paginator.render();
			Site.paging.Paginate();
		}
	} catch (e) {
		errorHandler(e);
	}
};
try {
	Event.onDOMReady(Site.paging.Init);
} catch (e) {
	errorHandler(e);
}

