MOON
Server: Apache
System: Linux server30c.hostingraja.org 5.14.0-611.49.2.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 30 09:05:08 EDT 2026 x86_64
User: seoprovi (1222)
PHP: 5.6.40
Disabled: NONE
Upload Files
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"
                                          });
}