   var newsHolder = "#homepageNews";
   var homepageLatestArticles = "#homepageLatestArticles";
   var homepageOverallHolder = "#homepageOverallHolder";   
   var overallPage = "/new/selector/overall.jsp";
   
   var categoryLink = "categoryLink";
   var categoryLinkLike = "[@id^='"+categoryLink+"']";
   
   var subCategoryLink = "subCategoryLink";
   var subCategoryLinkLike = "[@id^='"+subCategoryLink+"']";
   
   var subCategoryDiv = "#subCategory";
   var subCategoryPage = "/new/selector/subcategory.jsp";
   
   var articlePage = "/new/selector/articles.jsp";	
   var articleDiv = "#articles";
	   
   var tempCategoryId = "";
   var tempSubCategoryId = "";
   var tempFilterNo = "1";
   var tempPageNo = "1";
   
   var resetViewButton = "resetViewButton";
   var resetViewButtonLike = "[@id^='"+resetViewButton+"']";
   var resetViewDiv = "resetView"; 
   var resetViewDivLike = "[@id^='"+resetViewDiv+"']";
   
   var dateFilterLink = "[@id^='filter']";
   var articlePagingLink = "[@id^='articlePaging']";
   
   var detailedView = "#detailedView";
   
   function categoryActions()
   {
   		hideLoading();
		addCategoryButtonAction();
		addNewsExpanderActions();
		addExpanderActions();
   }
   
   function addCategoryButtonAction()
   {
   		var beforeFunction = function() {		 hideHomepageMain(); 	 return true;  		};
		var dataFunction = function(item) 
		{ 
			var categoryId = splitValue(item.id, "-", 1);
			tempCategoryId = categoryId;
			var data = {category: categoryId};
			return data;
		};
		var callback = function(responseText) { 
			addSubCategoryAction(tempCategoryId); 	
		};
		actionPreAndPost(categoryLinkLike, dataFunction, homepageOverallHolder, overallPage, beforeFunction, callback);		
   }
   
   function addSubCategoryAction(categoryClicked)
   {
		$(subCategoryDiv).load(subCategoryPage, {category: tempCategoryId}, 
		function(responseText)
		{
			hideLoadingSub();
			addSubCategoryActions();
		});	
   }
	
   function addSubCategoryActions()
   {
   		var beforeFunction = function() {		showLoading(); 		 return true;  		};
		var dataFunction = function(item) 
		{ 
			var subCategoryId = splitValue(item.id, "-", 1);
			tempSubCategoryId = subCategoryId;
			var data = {category: subCategoryId};
			return data;
		};
		var callback = function(responseText) 
		{ 
			addUserFilrer(tempSubCategoryId);  
			hideLoadingArticles();
			addResetAction(); 
		};
		actionPreAndPost(subCategoryLinkLike, dataFunction, articleDiv, articlePage, beforeFunction, callback);			
   }
   
   function addUserFilrer(subCategoryClicked)
   {
   		$(".userFilter").unbind();
   		$("a").filter(".userFilter").click(function() 
		{ 
			$("#articles").hide("slow");
			$("#loading").show("slow");
			var userClicked = this.rel;	
			$("#articles").load("/new/selector/articles.jsp", {category: subCategoryClicked, user: userClicked}, 
			function(responseText)
			{
				hideLoadingArticles();
			});	
			return false;
		});
   }
   
   function dateFilterAction()
   {
   		var beforeFilterFunction = function() {
   			 showLoading();
   			 return true;
   		};
		var filterDataFunction = function(item) 
		{ 
			var filterId = splitValue(item.id, "-", 1);
			tempFilterNo = filterId;
			var data = {category: tempSubCategoryId, filter: filterId};
			return data;
		};
		var filterCallback = function(responseText)
		{
			hideLoadingArticles();
		};
		actionPreAndPost(dateFilterLink, filterDataFunction, articleDiv, articlePage, beforeFilterFunction, filterCallback);	
   }
   
   function articlePagingAction()
   {
   		addExpanderActions();
   		var beforeFunction = function() {
   			 showLoading();
   			 return true;
   		};
		var dataFunction = function(item) 
		{ 
			var pageNo = splitValue(item.id, "-", 1);
			tempPageNo = pageNo;
			var data = {category: tempSubCategoryId, filter: tempFilterNo, page: pageNo};
			return data;
		};
		var pagingCallback = function(responseText)
		{
			hideLoadingArticles();
		};
		actionPreAndPost(articlePagingLink, dataFunction, articleDiv, articlePage, beforeFunction, pagingCallback);	
   }
   
   function addResetAction()
   {
   		$(resetViewButtonLike).unbind();
   		$(resetViewButtonLike).click(function() 
		{ 
			$("#header").show("slow");
			$("#sidebar").show("slow");
			$("#articles").hide("slow");
			$("#homepageOverallHolder").show("slow");
			$(detailedView).show("slow");
			hideLoading();
			return false;
		});
   }
   
  	  function addNewsExpanderActions()
	  {
	  	$('.expander').unbind();
	  	$('.expander').expander({
		  slicePoint: 500, 
		  widow: 2,
		  expandEffect: 'show', 
		  userCollapseText: 'Hide News ...'
		});
	  }
	  
	  function addExpanderActions()
	  {
	  	$('.expandingPreview').unbind();
	  	$('.expandingPreview').expander({
		  slicePoint: 200, 
		  widow: 2,
		  expandText: "| Show the rest ...",
		  expandEffect: 'show', 
		  userCollapseText: 'Hide preview ...'
		});
	  }
	  
	  function hideLoading()
	  {
	  		$(resetViewDivLike).hide();
	  		$("#loading").hide("slow");
	  }
	  
	  function hideLoadingSub()
	  {
			 hideLoading();
			$("#subCategory").show("slow");
			$("#articleSelectorHeading").show("fast");
	  }

	  function hideLoadingArticles()
	  {
			hideLoadingSub();
			$("#articles").show("slow");
			$("#header").hide("slow");
			$("#sidebar").hide("slow");
			$("#homepageOverallHolder").hide("slow");
			$(resetViewDivLike).show("slow");
			addExpanderActions();
			addUserFilrer(tempSubCategoryId);
			dateFilterAction();
			articlePagingAction();
	  }
	  
	  function showLoading()
	  {
	  		$("#subCategory").hide("slow");
			$("#loading").show("slow");
			$("#articles").hide("slow");
	  }
	  
	  function hideHomepageMain()
	  {
	  	   $(newsHolder).hide("slow");
	  	   $(homepageLatestArticles).hide("slow");
	  	   $(detailedView).hide("slow");
	  }
	  