Ext.onReady(function() {
	var RESULT_TEMPLATE = null;
	var IMAGE_PAGINATION = {
		PAGE_NUMBER: 1,
		CAT: "all"
	};
	RESULT_TEMPLATE = new Ext.Template.from('result-template');
	
	Shadowbox.init();
	
	function ImageRequestUpdate() {			
		var url = "/images/" + IMAGE_PAGINATION.CAT + "/" + IMAGE_PAGINATION.PAGE_NUMBER;

		Ext.Ajax.request({
			url: url,
			success: function(response, opts) {
				var data = Ext.decode(response.responseText);
				if (data.length != 0) {
					Ext.get("resultset").fadeOut({
						callback: function() {							
							Ext.fly('resultset').update('');									
							Ext.each(data, function() {				
								RESULT_TEMPLATE.append('resultset', this.image);
							});
							Shadowbox.clearCache();
							Shadowbox.setup();					
							Ext.get("resultset").fadeIn();					
						}
					});									
				} else {
					/* 				 
					 	Show error no more page.				 	
				 	*/
					IMAGE_PAGINATION.PAGE_NUMBER--;
				}
			},
			failure: function(response, opts) {
				/* 				 
				 	Show error no more page.
				 	IMAGE_PAGINATION.PAGE_NUMBER--;
				 */
			}
		});
	}	
	
	Ext.fly("catLinks").select("a").on("click",
		function (e) {
			var item = e.target;
			IMAGE_PAGINATION.CAT = item.id.replace("cat-", "").toLowerCase();
			IMAGE_PAGINATION.PAGE_NUMBER = 1;
			ImageRequestUpdate();
		}
	);
	
	Ext.fly("nextLink").on("click",
		function(e) {
			IMAGE_PAGINATION.PAGE_NUMBER++;
			ImageRequestUpdate();			
		}
	);
	
	Ext.fly("prevLink").on("click",
		function(e) {
			if (IMAGE_PAGINATION.PAGE_NUMBER == 1) {
				// Show error 
				return;
			} else {
				IMAGE_PAGINATION.PAGE_NUMBER--;
				ImageRequestUpdate();				
			}			
		}
	);	
	ImageRequestUpdate();
});

