File: /home/seoprovi/plyhousedhanbad.com/Scripts/laminates-new.js
// Panels & Controls
var $pnlCategoryBriefDescription = $('#pnlCategoryBriefDescription');
var $pnlCategoryImage = $('#pnlCategoryImage');
var $pnlCategoryDescription = $('#pnlCategoryDescription');
var $ddlFinish = $('#ddlFinish');
var $ddlRange = $('#ddlRange');
var $pnlProducts = $('#pnlProducts');
var $pnlBtnLoadMore = $('#pnlBtnLoadMore');
var $btnLoadMoreProducts = $('#btnLoadMoreProducts');
var $pnlNoRecordFound = $('#pnlNoRecordFound');
var $SubCategoryList = $('.SubCategoryList');
var $txtSearch = $('#txtSearch');
var $btnSearch = $('#btnSearch');
// Global Variables
var PageNumber = 1;
var PageSize = 23;
var NoOfPages;
var CategoryId = GetCategoryID();
var SubCategoryId = GetSubCategoryID();
var Finish = GetFinish();
var Range = GetRange();
var SearchKeyword = GetSearchKeyword();
var VisitedImageNumbers = [];
$(function () {
$pnlBtnLoadMore.hide();
$pnlNoRecordFound.hide();
GetCategoryDetails(SubCategoryId);
GetFinishDetails(SubCategoryId);
GetRangeDetails(SubCategoryId);
GetProducts(PageNumber, SubCategoryId, Finish, Range, "");
PageNumber++;
// Load more click
$btnLoadMoreProducts.on("click", function () {
if (PageNumber <= NoOfPages) {
GetProducts(PageNumber, SubCategoryId, Finish, Range, "");
PageNumber++;
}
});
// Select Finish
$ddlFinish.on("change", function () {
PageNumber = 1;
SubCategoryId = GetSubCategoryID();
Finish = GetFinish();
Range = GetRange();
SearchKeyword = null;
GetProducts(PageNumber, SubCategoryId, Finish, Range, "");
PageNumber++;
})
// Select Range
$ddlRange.on("change", function () {
PageNumber = 1;
SubCategoryId = GetSubCategoryID();
Finish = GetFinish();
Range = GetRange();
SearchKeyword = null;
GetProducts(PageNumber, SubCategoryId, Finish, Range, "");
PageNumber++;
})
// Change Category
$SubCategoryList.on("click", "a", function () {
SetSubCategoryID($(this).data("id"));
PageNumber = 1;
SubCategoryId = GetSubCategoryID();
Finish = null;
Range = null;
SearchKeyword = null;
GetCategoryDetails(SubCategoryId);
GetFinishDetails(SubCategoryId);
GetRangeDetails(SubCategoryId);
GetProducts(PageNumber, SubCategoryId, Finish, Range, "");
PageNumber++;
});
// Search Product
$btnSearch.on("click", function () {
PageNumber = 1;
SubCategoryId = 0;
Finish = null;
Range = null;
SearchKeyword = GetSearchKeyword();
$('.SubCategoryList a.active').removeClass('active');
$ddlFinish.val("");
$ddlRange.val("");
GetProducts(PageNumber, SubCategoryId, Finish, Range, SearchKeyword);
PageNumber++;
$ddlFinish.empty();
});
});
function GetCategoryDetails(subCategoryId) {
var data = String.jformat("{'subCategoryId':{0}}", JSON.stringify(parseInt(subCategoryId)));
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/laminates-page.html/CategoryDetails",
data: data,
success: function (response) {
DisplayCategoryDetails(response.d);
}
});
}
function GetFinishDetails(subCategoryId) {
var data = String.jformat("{'subCategoryId':{0}}", JSON.stringify(parseInt(subCategoryId)));
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/laminates-page.html/Finish",
data: data,
success: function (response) {
DisplayFinish(response.d);
}
});
}
function GetRangeDetails(subCategoryId) {
var data = String.jformat("{'subCategoryId':{0}}", JSON.stringify(parseInt(subCategoryId)));
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/laminates-page.html/Range",
data: data,
success: function (response) {
DisplayRange(response.d);
}
});
}
function GetProducts(pageNumber, subCategoryId, finish, range, searchKeyword) {
var data = String.jformat("{'pageSize':{0}, 'pageNumber':{1}, 'subCategoryId':{2}, 'finish':'{3}', 'range':'{4}', 'searchKeyword':'{5}'}", parseInt(PageSize), parseInt(pageNumber), parseInt(subCategoryId), finish, range, searchKeyword);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/laminates-page.html/GetProducts",
data: data,
dataType: "json",
async: false,
beforeSend: function () {
$('#product-load-animation').show();
},
success: function (response) {
DisplayResponse(response.d, pageNumber);
},
complete: function () {
$('#product-load-animation').hide();
},
error: function () {
alert('Failed to load page');
}
});
}
// Display Response
function DisplayResponse(response, pageNumber) {
if (response.TotalRecordes > 0) {
$pnlProducts.show();
$pnlNoRecordFound.hide();
if (pageNumber <= 1)
$pnlProducts.empty();
DisplayProducts(response.ProductsList);
// load more button
NoOfPages = Math.ceil(response.TotalRecordes / PageSize);
$pnlBtnLoadMore.show();
if (PageNumber === NoOfPages)
$pnlBtnLoadMore.hide();
} else {
$pnlProducts.hide();
$pnlNoRecordFound.show();
}
}
function DisplayProducts(productsList) {
var products = productsList;
var $productsFormatted = "";
var max = 11;
var min = 9;
var i = 0;
var randomNumber = GenerateRandomNumber(max, min);
var j = 0;
while (randomNumber % 3 === 0) {
randomNumber = GenerateRandomNumber(max, min);
}
for (var l = 0; l < products.length; l++) {
j++;
if (randomNumber === j) {
$productsFormatted += GetStaticImage();
j = 0;
i = i + 2;
randomNumber = GenerateRandomNumber(max, min);
while ((randomNumber + i) % 3 === 0) {
randomNumber = GenerateRandomNumber(max, min);
}
l = l - 1;
} else {
$productsFormatted += "<div class='col-md-4 col-sm-6 col-xs-6'>" +
"<div class='product-frame'>" +
"<figure class='effect-bubba'>" +
"<img onError='imgError(this);' src='/Upload/ProductImages/" + products[l].ProductImage + "?width=270&format=jpg' alt='" + products[l].ProdName + "'/>" +
"<figcaption>" +
"<h4>" + products[l].ProdCode + "</h4>" +
"<p>" + products[l].ProdName + "</p>" +
"<a class='PopupLink' href='/product-details?ID=" + products[l].ID + "&CatID=" + SubCategoryId + "'></a>" +
"</figcaption>" +
"</figure>" +
"</div>" +
"</div>";
i++;
}
}
$pnlProducts.append($productsFormatted);
$("#pnlProducts img").onImagesLoad(function ($selector) {
$selector.addClass('show');
$('#product-load-animation').hide();
$selector.parent('figure').addClass('fadeInUp');
});
$('.effect-bubba, .static-image').addClass(' animated');
loadColorBox();
}
function DisplayCategoryDetails(categoryDetails) {
var bgImage = "/Upload/CategoryImages/" + categoryDetails.CatImage;
$pnlCategoryBriefDescription.html(categoryDetails.BriefDescription);
$pnlCategoryDescription.html(categoryDetails.Description);
//$pnlCategoryImage.html("<img src='/Upload/CategoryImages/" + categoryDetails.CatImage + "' alt=''/>");
$('#ProductDescription .product-content').css('background-image', 'url(' + bgImage + ')');
}
function DisplayFinish(finishList) {
var options = '<option value="">FILTER BY FINISH</option>';
$.each(finishList, function (index, element) {
options += '<option value="' + element + '">' + element + '</option>';
});
$ddlFinish.html(options);
}
function DisplayRange(rangeList) {
var options = '<option value="">FILTER BY RANGE</option>';
$.each(rangeList, function (index, element) {
options += '<option value="' + element + '">' + element + '</option>';
});
$ddlRange.html(options);
}
// Get Controls Data
function GetCategoryID() {
return $('#hfCategoryID').val();
}
function GetSubCategoryID() {
return $('#hfSubCategoryID').val();
}
function GetFinish() {
var finish = $ddlFinish.find(":selected").val();
if (finish === "")
finish = null;
return finish;
}
function GetRange() {
var range = $ddlRange.find(":selected").val();
if (range === "")
range = null;
return range;
}
function GetSearchKeyword() {
var searchKeywword = $txtSearch.val();
if (searchKeywword === "")
searchKeywword = null;
return searchKeywword
}
//Set Control Data
function SetSubCategoryID(value) {
$('#hfSubCategoryID').val(value);
}
// Misc Methods
function GenerateRandomNumber(max, min) {
var ReturnRandom = Math.floor(Math.random() * (max - min + 1)) + min;
return ReturnRandom;
}
function GetStaticImage() {
var maxCount = 9;
var minCount = 1;
var imgArray = new Array();
for (var i = 1; i <= maxCount; i++) {
imgArray[i] = "virgo-product-" + i;
}
var randomNumberForImage = Math.floor(Math.random() * (maxCount - minCount + 1)) + minCount;
if (VisitedImageNumbers.length === 9) {
VisitedImageNumbers.length = 0;
}
while ($.inArray(randomNumberForImage, VisitedImageNumbers) !== -1) {
randomNumberForImage = Math.floor(Math.random() * (maxCount - minCount + 1)) + minCount;
}
VisitedImageNumbers.push(randomNumberForImage);
return ("<div class='col-md-8 col-sm-6 col-xs-12'><div class='product-frame'><figure class='static-image'><img src='/Upload/ProductImages/" + imgArray[randomNumberForImage] + ".jpg' alt='Product'/></figure></div></div>");
}
function loadColorBox() {
$("#pnlProducts .PopupLink").colorbox({
onComplete: function () {
$("#cboxClose").css("opacity", "1");
$(this).addClass("clicked");
$("#RelatedItems .owl-carousel").owlCarousel({
items: 4,
navigation: true,
navigationText: false
}
);
},
onClosed: function () {
$("#cboxClose").css("opacity", "0");
},
iframe: true, maxWidth: "830px", maxHeight: "470px", height: "100%", width: "100%", initialHeight: "500px"
});
}