var oAPO;
$(window).load(
	function() { oAPO = new AjaxPagingObject(); }
);

function AjaxPagingObject() {
	this.CurrentPage = 1;
	this.LastPage = ($("div.paging-container ul.paging-links-ajax li a").length / 2);

	if ($("div.paging-container ul.paging-links-ajax li a").length <= 2) {
	    $("div.paging-container div.paging-results-ajax").attr("class", "display-none");
	}
	else {
	    $("div.paging-container ul.paging-links-ajax li a").click(
			function(event) {
			    event.preventDefault();
			    if (oAPO.CurrentPage == parseInt(this.className.replace(/page-link-/gi, ''))) {
			        return;
			    }
			    oAPO.CurrentPage = parseInt(this.className.replace(/page-link-/gi, ''));
			    HandleClick(this);
			}
		);
			$("div.paging-container div.paging-results-ajax a.previous-page").click(
			function(event) {
			    event.preventDefault();
			    if (oAPO.CurrentPage <= 1) {
			        return;
			    }
			    oAPO.CurrentPage--;
			    HandleClick(this);
			}
		);
			$("div.paging-container div.paging-results-ajax a.next-page").click(
			function(event) {
			    event.preventDefault();
			    if (oAPO.CurrentPage >= oAPO.LastPage) {
			        return;
			    }
			    oAPO.CurrentPage++;
			    HandleClick(this);
			}
		);
	}
	
	function HandleClick(oElm) {
		$("div#ajax-loader").css({display:"block", top:($(oElm).offset().top - 30)+"px", left:($(oElm).offset().left - 70)+"px"});
		PageExists() ? GetPage() : GetPageAjax();
		$("div.paging-container ul.paging-links-ajax li a").removeClass("selected");
		$("div.paging-container ul.paging-links-ajax li a.page-link-" + oAPO.CurrentPage).addClass("selected");
		$("div.paging-container div.paging-results-ajax a.previous-page").attr("class", (oAPO.CurrentPage <= 1) ? "previous-page visibility-hidden" : "previous-page");
		$("div.paging-container div.paging-results-ajax a.next-page").attr("class", (oAPO.CurrentPage >= oAPO.LastPage) ? "next-page visibility-hidden" : "next-page");
		setTimeout('$("div#ajax-loader").removeAttr("style")', 500);
	}
	
	function PageExists() {
		return $("div#page-num-" + oAPO.CurrentPage).html() ? true : false;
	}
	
	function GetPage() {
		$("div.page-item-container").attr("class", "page-item-container display-none");
		$("div#page-num-" + oAPO.CurrentPage).attr("class", "page-item-container");
		try{window.scrollTo(0, $("div.paging-container").offset().top);}catch(e) {}
	}
	
	function GetPageAjax() {
	    if ($("input#pageType").val() == "BlueConceptList") {
	        $.get("/BlueSites/Templates/DynamicContent/GetConceptListPage.aspx", { catalogue: $("input#catalogueId").val(), concept: $("input#conceptId").val(), pagenum: (oAPO.CurrentPage), environmentCertified: $("input#environmentCertified").val(), rnd: (Math.floor(Math.random() * 100001)) },
				function(data) {
				    $("div#concept-hotels div.page-item-container").attr("class", "page-item-container display-none");
				    $("div#concept-hotels div.page-item-container:last").after(data);
				    try { window.scrollTo(0, $("div.paging-container").offset().top); } catch (e) { }
				});
	    }
	    else if ($("input#pageType").val() == "TemaConceptList") {
	        $.get("/BlueSites/Templates/DynamicContent/GetConceptListPage.aspx", { catalogue: $("input#catalogueId").val(), concept: $("input#conceptId").val(), pagenum: (oAPO.CurrentPage), rnd: (Math.floor(Math.random() * 100001)) },
				function(data) {
				    $("div#concept-hotels div.page-item-container").attr("class", "page-item-container display-none");
				    $("div#concept-hotels div.page-item-container:last").after(data);
				    try { window.scrollTo(0, $("div.paging-container").offset().top); } catch (e) { }
				});
	    }
	}
	
	$("div.paging-container div.paging-results-ajax a.previous-page").attr("class", (this.CurrentPage <= 1) ? "previous-page visibility-hidden" : "previous-page");
	$("div.paging-container div.paging-results-ajax a.next-page").attr("class", (this.CurrentPage >= this.LastPage) ? "next-page visibility-hidden" : "next-page");
	$("span#paging-last-visible-hotel-ajax").html(parseInt(this.CurrentPage * 10) > parseInt($("span#paging-total-no-of-hotels-ajax").html()) ? $("span#paging-total-no-of-hotels-ajax").html() : (this.CurrentPage * 10));
}
