diff --git a/controllers/adminController.js b/controllers/adminController.js
index 4cc277aa..b962710a 100644
--- a/controllers/adminController.js
+++ b/controllers/adminController.js
@@ -365,52 +365,7 @@ const generateReport = async (dateRange) => {
}
};
-// const generateReport = async (dateRange) => {
-// try {
-// const currentDate = new Date();
-// let startDate;
-// let endDate = new Date();
-
-// switch (dateRange) {
-// case "daily":
-// startDate = new Date(currentDate);
-// startDate.setDate(currentDate.getDate() - 1);
-// startDate.setHours(24, 0, 0, 0);
-// break;
-// case "weekly":
-// startDate = new Date();
-// startDate.setDate(startDate.getDate() - 7);
-// break;
-// case "yearly":
-// startDate = new Date();
-// startDate.setFullYear(startDate.getFullYear() - 1);
-// break;
-// default:
-// break;
-// }
-
-// // Retrieve orders within the specified date range
-// const orders = await OrderDB.find({
-// orderDate: { $gte: startDate, $lte: endDate },
-// });
-
-
-// // const totalSalesAmount = calculateTotalSalesAmount(orders);
-// const totalSalesProfit = await calculateTotalProfit(orders);
-// const totalOrders = orders.length;
-
-// const report = {
-// reportDate: endDate,
-// totalSalesAmount:totalSalesProfit,
-// totalOrders,
-// };
-
-// console.log(`Generated ${dateRange} report for ${endDate}`);
-// return report;
-// } catch (error) {
-// console.log(error.message);
-// }
-// };
+
async function calculateTotalProfit(orders) {
let totalProfit = 0;
@@ -526,293 +481,7 @@ const generateExcelReport = async (reportData, fileName) => {
};
-// Usage
-// const reportData = [
-// {
-// reportDate: '2023-10-23',
-// totalSalesAmount: 1000.0,
-// totalOrders: 50,
-// },
-// // Add more data as needed
-// ];
-
-// const filePath = 'salesReport.xlsx'; // Provide the desired file path
-
-// generateExcelReport(reportData, filePath);
-
-//sales report page load
-// -------------------------------
-// const salesReportPageLoad = async(req,res)=>{
-// try {
-// const sales = await createSalesReport("2023-10-01", "2023-10-31");
-// const WeeklySales = await generateWeeklySalesCount()
-// const SoldProducts = await getMostSellingProducts()
-// console.log(sales);
-// // generateWeeklySalesCount
-// res.render('salesreport',{week:WeeklySales,Mproducts:SoldProducts,sales})
-// } catch (error) {
-// console.log(error.message);
-// }
-// }
-
-// //generate Sales Report
-// const createSalesReport = async (startDate, endDate) => {
-// try {
-// // Find orders within the date range
-// const orders = await OrderDB.find({
-// orderDate: {
-// $gte: startDate,
-// $lte: endDate,
-// },
-// });
-
-// // Create new objects for total stock sold and product profits
-// const transformedTotalStockSold = {};
-// const transformedProductProfits = {};
-
-// // Helper function to fetch product details by ID
-// const getProductDetails = async (productId) => {
-// return await ProductDB.findById(productId);
-// };
-
-// // Iterate through each order
-// for (const order of orders) {
-// // Iterate through each product in the order
-// for (const productInfo of order.products) {
-// const productId = productInfo.productId;
-// const quantity = productInfo.quantity;
-
-// // Fetch product details
-// const product = await getProductDetails(productId);
-// const productName = product.product_name;
-// const image = product.images.image1;
-// const shape = product.frame_shape
-
-// // Update the total stock sold
-// if (!transformedTotalStockSold[productId]) {
-// transformedTotalStockSold[productId] = {
-// id: productId,
-// name: productName,
-// quantity: 0,
-// image: image,
-// shape:shape
-// };
-// }
-// transformedTotalStockSold[productId].quantity += quantity;
-
-// // Update the product profits
-// if (!transformedProductProfits[productId]) {
-// transformedProductProfits[productId] = {
-// id: productId,
-// name: productName,
-// profit: 0,
-// image: image,
-// };
-// }
-// const productPrice = product.price;
-// const productCost = productPrice * 0.3;
-// const productProfit = (productPrice - productCost) * quantity;
-// transformedProductProfits[productId].profit += productProfit;
-// }
-// }
-
-// // Convert the transformed objects to arrays
-// const totalStockSoldArray = Object.values(transformedTotalStockSold);
-// const productProfitsArray = Object.values(transformedProductProfits);
-
-// // Calculate the total sales
-// const totalSales = productProfitsArray.reduce(
-// (total, product) => total + product.profit,
-// 0
-// );
-
-// // Create the final sales report object
-// const salesReport = {
-// totalSales,
-// totalStockSold: totalStockSoldArray,
-// productProfits: productProfitsArray,
-// };
-
-// // Print or return the sales report
-// return salesReport;
-// } catch (error) {
-// console.error("Error generating the sales report:", error.message);
-// }
-// };
-// // const createSalesReport = async (startDate, endDate) => {
-// // try {
-// // // Find orders within the date range
-// // const orders = await OrderDB.find({
-// // orderDate: {
-// // $gte: startDate,
-// // $lte: endDate,
-// // },
-// // });
-
-// // // Create a data structure to store the report
-// // const salesReport = {
-// // totalSales: 0,
-// // totalStockSold: {},
-// // productProfits: {},
-// // };
-
-// // // Helper function to fetch product details by ID
-// // const getProductDetails = async (productId) => {
-// // return await ProductDB.findById(productId);
-// // };
-
-// // // Iterate through each order
-// // for (const order of orders) {
-// // // Iterate through each product in the order
-// // for (const productInfo of order.products) {
-// // const productId = productInfo.productId;
-// // const quantity = productInfo.quantity;
-
-// // // Fetch product details
-// // const product = await getProductDetails(productId);
-// // const productName = product.product_name; // Get product name
-// // const image = product.images.image1
-
-// // // Update the total sales
-// // const productPrice = product.price;
-// // const productSales = productPrice * quantity;
-// // salesReport.totalSales += productSales;
-
-// // // Update the total stock sold
-// // if (!salesReport.totalStockSold[productId]) {
-// // salesReport.totalStockSold[productId] = {
-// // name: productName, // Include product name
-// // quantity: 0,
-// // image: image,
-// // };
-// // }
-// // salesReport.totalStockSold[productId].quantity += quantity;
-
-// // // Calculate and update the product profits
-// // const productCost = productPrice*0.3;
-// // const productProfit = (productPrice - productCost) * quantity;
-
-// // if (!salesReport.productProfits[productId]) {
-// // salesReport.productProfits[productId] = {
-// // name: productName, // Include product name
-// // profit: 0,
-// // image: image
-// // };
-// // }
-// // salesReport.productProfits[productId].profit += productProfit;
-// // }
-// // }
-
-// // // Print or return the sales report with product names
-// // // console.log("Sales Report:", salesReport);
-// // return salesReport;
-
-// // } catch (error) {
-// // console.error("Error generating the sales report:", error.message);
-// // }
-// // };
-// // Example usage
-
-
-
-
-// //weekly report chart
-// // -----------------------
-// const generateWeeklySalesCount = async () => {
-// try {
-// // Initialize an array to store sales counts for each day
-// const weeklySalesCounts = [];
-
-// // Get today's date
-// const today = new Date();
-// today.setHours(today.getHours() - 5); // Adjust for UTC+5
-
-
-// // Iterate through the past 7 days
-// for (let i = 0; i < 7; i++) {
-// const startDate = new Date(today);
-// startDate.setDate(today.getDate() - i); // i days ago
-// const endDate = new Date(startDate);
-// endDate.setDate(startDate.getDate() + 1); // Next day
-
-// // Find orders within the date range
-// const orders = await OrderDB.find({
-// orderDate: {
-// $gte: startDate,
-// $lt: endDate,
-// },
-// });
-
-// // Calculate the sales count for the day
-// const salesCount = orders.length;
-
-// // Push the sales count to the weeklySalesCounts array
-// weeklySalesCounts.push({
-// date: startDate.toISOString().split('T')[0], // Format the date
-// sales: salesCount,
-// });
-// }
-
-// // Log or return the weekly sales counts
-// // console.log('Weekly Sales Counts:', weeklySalesCounts);
-// return weeklySalesCounts;
-
-// } catch (error) {
-// console.error('Error generating the weekly sales counts:', error.message);
-// }
-// };
-
-// // Call the function to generate the weekly sales count
-// // generateWeeklySalesCount();
-
-// //most selling products report
-// // -----------------------------------
-
-// const getMostSellingProducts = async () => {
-// try {
-// const pipeline = [
-// {
-// $unwind: '$products', // Split order into individual products
-// },
-// {
-// $group: {
-// _id: '$products.productId',
-// count: { $sum: '$products.quantity' }, // Count the sold quantity
-// },
-// },
-// {
-// $lookup: {
-// from: 'products', // Name of your Product model's collection
-// localField: '_id',
-// foreignField: '_id',
-// as: 'productData',
-// },
-// },
-// {
-// $sort: { count: -1 }, // Sort by count in descending order
-// },
-// {
-// $limit: 6, // Limit to the top 6 products
-// },
-// ];
-
-// const mostSellingProducts = await OrderDB.aggregate(pipeline);
-// return mostSellingProducts;
-// } catch (error) {
-// console.error('Error fetching most selling products:', error);
-// return [];
-// }
-// };
-
-// Usage
-// getMostSellingProducts()
-// .then((result) => {
-// console.log('Most selling products:', result);
-// })
-// .catch((error) => {
-// console.error('Error:', error);
-// });
const errorpageHandil = async(req,res)=>{
try {
diff --git a/controllers/bannerController.js b/controllers/bannerController.js
index e23854b4..fc82224c 100644
--- a/controllers/bannerController.js
+++ b/controllers/bannerController.js
@@ -3,16 +3,64 @@ const ProductDB = require("../models/productsModel").product;
const CategoryDB = require("../models/productsModel").category;
const OrderDB = require("../models/orderModel").Order;
const BannerDB = require("../models/productsModel").banner;
+const sharp = require("sharp");
+
const BannerPageLoader = async(req,res)=>{
try {
- res.render('banner')
+ const banners = await BannerDB.find()
+ console.log(banners);
+ res.render('banner',{banners})
+ } catch (error) {
+ console.log(error.message);
+ }
+}
+
+const bannerEditPageLoad = async(req,res)=>{
+ try {
+ if(!req.query.banner || req.query.banner>=4 || req.query.banner<=0 || isNaN(req.query.banner)){
+ return res.redirect('/admin/banner')
+ }
+ const banner = await BannerDB.findOne({bannerNumber: req.query.banner})
+ return res.render('banneredit',{banner})
+ } catch (error) {
+ console.log(error.message);
+ }
+}
+
+
+const bannerUpdate = async(req,res)=>{
+ try {
+ console.log(req.body);
+ const {subhead, Titile, link, bannerTarget} = req.body
+ const Banner = await BannerDB.findOne({bannerNumber: bannerTarget})
+ if(!Banner){
+ return res.redirect('/admin/banner')
+ }
+ if(req.file){
+ Banner.image = req.file.filename
+ await sharp("public/products/banner/temp/" + req.file.filename)
+ .resize(1552, 872)
+ .toFile("public/products/banner/" + req.file.filename);
+
+ await sharp("public/products/banner/temp/" + req.file.filename)
+ .resize(720, 600)
+ .toFile("public/products/banner/mobile/" + req.file.filename);
+ }
+
+ Banner.subtext = subhead
+ Banner.mainHead = Titile
+ Banner.link = link
+ Banner.save()
+ res.redirect('/admin/banner')
} catch (error) {
console.log(error.message);
}
}
module.exports ={
- BannerPageLoader
+ BannerPageLoader,
+ bannerUpdate,
+ bannerEditPageLoad
}
\ No newline at end of file
diff --git a/controllers/orderController.js b/controllers/orderController.js
index 862662cd..95d818fe 100644
--- a/controllers/orderController.js
+++ b/controllers/orderController.js
@@ -61,8 +61,9 @@ const generateUniqueTrackId = async () => {
}
};
-//order analatical creation
-// =========================
+
+ //order analatical creation
+// =============================================================================
const CreateOrderAnalatic = async () => {
try {
const orders = await OrderDB.find({ "products.OrderStatus": "Delivered" });
@@ -109,6 +110,8 @@ const getAlluserData = () => {
resolve(userData);
});
};
+
+
// cart total calculate
// =============================
const calculateTotalPrice = async (userId) => {
@@ -170,6 +173,9 @@ const daliveryDateCalculate = async () => {
console.log(error.message);
}
};
+
+
+
// load checkout page
// =============================
const checkoutPageLoad = async (req, res) => {
@@ -209,6 +215,8 @@ const checkoutPageLoad = async (req, res) => {
}
};
+
+
// selecting shipping address when place order time
// ==========================================================
const reciveShippingAddress = async (req, res) => {
@@ -247,7 +255,9 @@ const reciveShippingAddress = async (req, res) => {
}
};
+
// it used to select payment method
+// ====================================================================
const paymentSelectionManage = async (req, res) => {
try {
console.log(req.body);
@@ -475,139 +485,7 @@ const placeOrderManage = async (req, res) => {
console.log(error.message);
}
};
-// const placeOrderManage = async (req, res) => {
-// let discountDetails = {
-// codeId: 0,
-// amount: 0,
-// };
-// try {
-// // console.log(req.body.address);
-// let addressId = req.body.address;
-
-// let paymentType = req.body.payment;
-// const cartDetails = await CartDB.findOne({ user: req.session.user_id });
-
-// let userAddrs = await addressDB.findOne({ userId: req.session.user_id });
-// const shipAddress = userAddrs.addresses.find((address) => {
-// return address._id.toString() === addressId.toString();
-// });
-
-// // console.log("collected:", shipAddress);
-
-// if (!shipAddress) {
-// return res.status(400).json({ error: "Address not found" });
-// }
-// // console.log("collected :" + shipAddress);
-// const { country, fullName, mobileNumber, pincode, city, state } =
-// shipAddress;
-// // console.log(state);
-
-// const cartProducts = cartDetails.products.map((productItem) => ({
-// productId: productItem.product,
-// quantity: productItem.quantity,
-// OrderStatus: "pending",
-// StatusLevel: 1,
-// paymentStatus: "pending",
-// "returnOrderStatus.status": "none",
-// "returnOrderStatus.reason": "none",
-// }));
-// let total = await calculateTotalPrice(req.session.user_id);
-// //coupon checking
-// // ===================
-// if (req.body.coupon != "") {
-// let couponDetails = await CouponDB.findById(req.body.coupon);
-// total -= couponDetails.discount_amount;
-// discountDetails.codeId = couponDetails._id;
-// discountDetails.amount = couponDetails.discount_amount;
-// }
-
-// // console.log(cartProducts);
-// const trackId = await generateUniqueTrackId();
-// const order = new OrderDB({
-// userId: req.session.user_id,
-// "shippingAddress.country": country,
-// "shippingAddress.fullName": fullName,
-// "shippingAddress.mobileNumber": mobileNumber,
-// "shippingAddress.pincode": pincode,
-// "shippingAddress.city": city,
-// "shippingAddress.state": state,
-// products: cartProducts,
-// totalAmount: total,
-// paymentMethod: paymentType,
-// coupon: req.body.coupon ? req.body.coupon : "none",
-// orderDate: new Date(),
-// trackId,
-// });
-
-// const placeorder = await order.save();
-// // let analaticResult = await CreateOrderAnalatic();
-// // console.log(analaticResult);
-// console.log(placeorder._id);
-// if (paymentType !== "Online") {
-// console.log(placeorder._id);
-// let changeOrderStatus = await OrderDB.updateOne(
-// { _id: placeorder._id },
-// {
-// $set: {
-// "products.$[].OrderStatus": "placed",
-// },
-// }
-// );
-// let changePaymentStatus = await OrderDB.updateOne(
-// { _id: placeorder._id },
-// {
-// $set: {
-// "products.$[].paymentStatus": "success",
-// },
-// }
-// );
-// // console.log(changeOrderStatus);
-// await CartDB.deleteOne({ user: req.session.user_id });
-// const PaymentHistory = await createPaymentHistory(
-// req.session.user_id,
-// placeorder,
-// paymentType,
-// discountDetails,
-// trackId
-// );
-// console.log(PaymentHistory);
-// // return res.render("orderStatus", {
-// // success: 1,
-// // user: req.session.user_id
-// // });
-// return res.json({
-// cod: true,
-// orderId: placeorder._id,
-// status: "success",
-// });
-// } else {
-// //here manage when the order is online
-// let order = await genarateRazorpay(placeorder._id, total);
-
-// let userData = await UserDB.findById(req.session.user_id);
-
-// // payment history create
-// const PaymentHistory = await createPaymentHistory(
-// req.session.user_id,
-// placeorder,
-// paymentType,
-// discountDetails,
-// trackId
-// );
-// console.log(PaymentHistory);
-// let user = {
-// name: fullName,
-// mobile: mobileNumber,
-// email: userData.email,
-// };
-// return res.json({ order, user });
-// }
-// } catch (error) {
-// console.log(error.message);
-// }
-// };
-// ==============
-// ==============
+
// orders page load
// ----------------------
@@ -661,6 +539,7 @@ const orderPageLoad = async (req, res) => {
}
};
+
// order management page load
// ------------------------------
const orderMangePageLoad = async (req, res) => {
@@ -705,6 +584,7 @@ const orderMangePageLoad = async (req, res) => {
}
};
+
// order cancel
// -----------------------
const cancelOrder = async (req, res) => {
@@ -752,6 +632,7 @@ const cancelOrder = async (req, res) => {
}
};
+
// cange order status
// -------------------------
const changeOrderStatus = async (req, res) => {
@@ -803,6 +684,7 @@ const changeOrderStatus = async (req, res) => {
}
};
+
//payment verification
// --------------------------
const verifyPayment = async (req, res) => {
@@ -844,27 +726,6 @@ const verifyPayment = async (req, res) => {
//razorpay payment Signature Matching
// ---------------------------------------
-// const paymentSignatureMatching = (payment) => {
-// return new Promise((resolve, reject) => {
-// const crypto = require("crypto");
-// console.log("signature console :" + payment.razorpay_order_id);
-// var hmac = crypto.createHmac("sha256", "5Vd91ubM3TJQvfqdtpsDA12f");
-// hmac.update(payment.razorpay_order_id + "|" + payment.razorpay_payment_id);
-// hmac = hmac.digest("hex");
-
-// console.log("hmac :" + hmac);
-// console.log("razorpay_payment_id :" + payment.razorpay_payment_id);
-
-// if (hmac == payment.razorpay_payment_id) {
-// console.log("payment signatur condition called...");
-
-// resolve({ status: true });
-// } else {
-// console.log("else called when signature");
-// reject();
-// }
-// });
-// };
const paymentSignatureMatching = (payment) => {
return new Promise((resolve, reject) => {
@@ -888,6 +749,7 @@ const paymentSignatureMatching = (payment) => {
});
};
+
//change payment status
// --------------------
const changePaymentStatus = async (id) => {
@@ -916,6 +778,7 @@ const orderStatusPageLoad = async (req, res) => {
}
};
+
// create payment history
// --------------------------------
const createPaymentHistory = async (
@@ -955,6 +818,7 @@ const createPaymentHistory = async (
}
};
+
//order report maker
// ========================
const generateReport = async (dateRange) => {
@@ -1481,56 +1345,7 @@ const generateInvoicePDF = async (invoiceData) => {
}
};
-// const generateInvoicePDF = async (invoiceData) => {
-// try {
-// const browser = await puppeteer.launch();
-// const page = await browser.newPage();
-
-// // Create an HTML template for the invoice
-// const htmlContent = `
-//
-//
Invoice
-//
-//
-// Order ID |
-// ${invoiceData.orderId} |
-//
-//
-// Tracking ID |
-// ${invoiceData.trackId} |
-//
-//
-//
-// `;
-
-// await page.setContent(htmlContent);
-// await page.pdf({
-// path: 'invoice.pdf',
-// format: 'A4',
-// printBackground: true,
-// });
-
-// await browser.close();
-// } catch (error) {
-// console.error(error.message);
-// }
-// };
+
diff --git a/controllers/productsController.js b/controllers/productsController.js
index 003e7900..3342b762 100644
--- a/controllers/productsController.js
+++ b/controllers/productsController.js
@@ -323,7 +323,7 @@ const shopPageSearch = async (req, res) => {
categories
});
} catch (error) {
- // Handle errors appropriately
+ console.log(error.message);
}
};
@@ -545,6 +545,8 @@ const prducutListUnlist = async (req, res) => {
// }
// };
+// Search with fillter
+// ===============================================
const queryTester = async (req, res) => {
try {
const categories = await CategoryDB.find();
diff --git a/controllers/userController.js b/controllers/userController.js
index 49545286..8c09e36d 100644
--- a/controllers/userController.js
+++ b/controllers/userController.js
@@ -3,6 +3,8 @@ const ProductDB = require("../models/productsModel").product;
const CartDB = require("../models/userModel").Cart;
const addressDB = require("../models/userModel").UserAddress;
const OrderDB = require("../models/orderModel").Order;
+const BannerDB = require("../models/productsModel").banner;
+
const bcrypt = require("bcrypt");
const nodemiler = require("nodemailer");
require("dotenv").config();
@@ -173,11 +175,14 @@ const sentVerifyMailForForgetPass = async (name, email) => {
// ---------------------------------------
const homePageLoad = async (req, res) => {
try {
+
let product = await ProductDB.find({unlist:{$eq:0}});
+ const banners = await BannerDB.find()
res.render("home", {
user: req.session.user_id,
products: product,
- SignupMess:req.session.SignupMess
+ SignupMess:req.session.SignupMess,
+ banners
},
(err, html) => {
if (!err) {
diff --git a/middleware/fileUpload.js b/middleware/fileUpload.js
index aae3db68..8c683669 100644
--- a/middleware/fileUpload.js
+++ b/middleware/fileUpload.js
@@ -60,6 +60,7 @@ const productImagesUpload = uploadProduct.fields([
// category icon adding
+// ====================
const storageCategory = multer.diskStorage({
destination:function(req,file,callbacks){
callbacks(null,path.join(__dirname, '../public/products/icons'))
@@ -69,11 +70,38 @@ const storageCategory = multer.diskStorage({
}
})
- const uploadCategory = multer({storage:storageCategory})
-
+const uploadCategory = multer({storage:storageCategory})
+
+
+//bannerUpload
+// ==================
+// const storageBanner = multer.diskStorage({
+// destination:function(req,file,callbacks){
+// console.log("multer called");
+// callbacks(null,path.join(__dirname, '../public/products/Banner'))
+// },
+// filename: function (req, file, cb) {
+// cb(null, file.fieldname + "-" + Date.now() + path.extname(file.originalname));
+// }
+// })
+
+const storageBanner = multer.diskStorage({
+ destination:function(req,file,callbacks){
+ callbacks(null,path.join(__dirname, '../public/products/Banner/temp'))
+ },
+ filename:function(req,file,callbacks){
+ const name = Date.now()+"-"+file.originalname;
+ callbacks(null,name)
+ }
+})
+
+const uploadBanner = multer({storage:storageBanner})
+
+// ====================================
module.exports={
upload,
productImagesUpload,
- uploadCategory
+ uploadCategory,
+ uploadBanner
}
\ No newline at end of file
diff --git a/models/productsModel.js b/models/productsModel.js
index 59acc215..13f8b692 100644
--- a/models/productsModel.js
+++ b/models/productsModel.js
@@ -81,9 +81,17 @@ const bannerSchema = new mongoose.Schema({
type: String,
required: true,
},
+ bannerNumber:{
+ type:Number,
+ required: true
+ },
+ link:{
+ type:String,
+ required: true
+ }
});
// Create the Banner model
-const Banner = mongoose.model('Banner', bannerSchema);
+const banner = mongoose.model('banner', bannerSchema);
const category = mongoose.model('category',categorySchema)
@@ -91,5 +99,5 @@ const product = mongoose.model("product",productSchema)
module.exports = {
product,
category,
- Banner
+ banner
}
\ No newline at end of file
diff --git a/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg
new file mode 100644
index 00000000..9369673f
Binary files /dev/null and b/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg differ
diff --git a/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg
new file mode 100644
index 00000000..eb12b18c
Binary files /dev/null and b/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ
diff --git a/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg
new file mode 100644
index 00000000..9369673f
Binary files /dev/null and b/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg differ
diff --git a/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg
new file mode 100644
index 00000000..af044bc4
Binary files /dev/null and b/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg differ
diff --git a/public/products/Banner/1699426781967-slide-1.jpg b/public/products/Banner/1699426781967-slide-1.jpg
new file mode 100644
index 00000000..4f9f31ae
Binary files /dev/null and b/public/products/Banner/1699426781967-slide-1.jpg differ
diff --git a/public/products/Banner/1699427573108-slide-2.jpg b/public/products/Banner/1699427573108-slide-2.jpg
new file mode 100644
index 00000000..b4e265ab
Binary files /dev/null and b/public/products/Banner/1699427573108-slide-2.jpg differ
diff --git a/public/products/Banner/1699427579692-slide-3.jpg b/public/products/Banner/1699427579692-slide-3.jpg
new file mode 100644
index 00000000..de458ff9
Binary files /dev/null and b/public/products/Banner/1699427579692-slide-3.jpg differ
diff --git a/public/products/Banner/bannerTxt.txt b/public/products/Banner/bannerTxt.txt
new file mode 100644
index 00000000..b8aef729
--- /dev/null
+++ b/public/products/Banner/bannerTxt.txt
@@ -0,0 +1,9 @@
+Topsale Collection
+Frame Your World
+
+
+News and Inspiration
+New Arrivals
+
+Fashion Meets Function
+Explore Clearer Views
\ No newline at end of file
diff --git a/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg
new file mode 100644
index 00000000..4dd7d5a2
Binary files /dev/null and b/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ
diff --git a/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg
new file mode 100644
index 00000000..4dabbaf1
Binary files /dev/null and b/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg differ
diff --git a/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg
new file mode 100644
index 00000000..f250c129
Binary files /dev/null and b/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg differ
diff --git a/public/products/Banner/mobile/1699426781967-slide-1.jpg b/public/products/Banner/mobile/1699426781967-slide-1.jpg
new file mode 100644
index 00000000..6ed2abb1
Binary files /dev/null and b/public/products/Banner/mobile/1699426781967-slide-1.jpg differ
diff --git a/public/products/Banner/mobile/1699427573108-slide-2.jpg b/public/products/Banner/mobile/1699427573108-slide-2.jpg
new file mode 100644
index 00000000..10559bda
Binary files /dev/null and b/public/products/Banner/mobile/1699427573108-slide-2.jpg differ
diff --git a/public/products/Banner/mobile/1699427579692-slide-3.jpg b/public/products/Banner/mobile/1699427579692-slide-3.jpg
new file mode 100644
index 00000000..6c91cb03
Binary files /dev/null and b/public/products/Banner/mobile/1699427579692-slide-3.jpg differ
diff --git a/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg
new file mode 100644
index 00000000..9f709029
Binary files /dev/null and b/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg differ
diff --git a/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg
new file mode 100644
index 00000000..505e0ab3
Binary files /dev/null and b/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ
diff --git a/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg
new file mode 100644
index 00000000..9f709029
Binary files /dev/null and b/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg differ
diff --git a/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg
new file mode 100644
index 00000000..01ad040a
Binary files /dev/null and b/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg differ
diff --git a/public/products/Banner/temp/1699426781967-slide-1.jpg b/public/products/Banner/temp/1699426781967-slide-1.jpg
new file mode 100644
index 00000000..56560d67
Binary files /dev/null and b/public/products/Banner/temp/1699426781967-slide-1.jpg differ
diff --git a/public/products/Banner/temp/1699427573108-slide-2.jpg b/public/products/Banner/temp/1699427573108-slide-2.jpg
new file mode 100644
index 00000000..e1b043f9
Binary files /dev/null and b/public/products/Banner/temp/1699427573108-slide-2.jpg differ
diff --git a/public/products/Banner/temp/1699427579692-slide-3.jpg b/public/products/Banner/temp/1699427579692-slide-3.jpg
new file mode 100644
index 00000000..f0abe4cc
Binary files /dev/null and b/public/products/Banner/temp/1699427579692-slide-3.jpg differ
diff --git a/public/products/crop/image1-1699285910690.jpg b/public/products/crop/image1-1699285910690.jpg
new file mode 100644
index 00000000..e990d5b1
Binary files /dev/null and b/public/products/crop/image1-1699285910690.jpg differ
diff --git a/public/products/crop/image1-1699286098882.jpg b/public/products/crop/image1-1699286098882.jpg
new file mode 100644
index 00000000..2726eb43
Binary files /dev/null and b/public/products/crop/image1-1699286098882.jpg differ
diff --git a/public/products/crop/image1-1699286230171.jpg b/public/products/crop/image1-1699286230171.jpg
new file mode 100644
index 00000000..ec279f0c
Binary files /dev/null and b/public/products/crop/image1-1699286230171.jpg differ
diff --git a/public/products/crop/image1-1699286391037.jpg b/public/products/crop/image1-1699286391037.jpg
new file mode 100644
index 00000000..e6aebcb6
Binary files /dev/null and b/public/products/crop/image1-1699286391037.jpg differ
diff --git a/public/products/crop/image1-1699286540236.jpg b/public/products/crop/image1-1699286540236.jpg
new file mode 100644
index 00000000..c0c15e06
Binary files /dev/null and b/public/products/crop/image1-1699286540236.jpg differ
diff --git a/public/products/crop/image1-1699286696695.jpg b/public/products/crop/image1-1699286696695.jpg
new file mode 100644
index 00000000..562b5427
Binary files /dev/null and b/public/products/crop/image1-1699286696695.jpg differ
diff --git a/public/products/crop/image1-1699287170055.jpg b/public/products/crop/image1-1699287170055.jpg
new file mode 100644
index 00000000..29c62635
Binary files /dev/null and b/public/products/crop/image1-1699287170055.jpg differ
diff --git a/public/products/crop/image1-1699328283378.jpg b/public/products/crop/image1-1699328283378.jpg
new file mode 100644
index 00000000..492fc257
Binary files /dev/null and b/public/products/crop/image1-1699328283378.jpg differ
diff --git a/public/products/crop/image2-1699285910691.jpg b/public/products/crop/image2-1699285910691.jpg
new file mode 100644
index 00000000..8c72f1fc
Binary files /dev/null and b/public/products/crop/image2-1699285910691.jpg differ
diff --git a/public/products/crop/image2-1699286098888.jpg b/public/products/crop/image2-1699286098888.jpg
new file mode 100644
index 00000000..ac9b8293
Binary files /dev/null and b/public/products/crop/image2-1699286098888.jpg differ
diff --git a/public/products/crop/image2-1699286230172.jpg b/public/products/crop/image2-1699286230172.jpg
new file mode 100644
index 00000000..3de67454
Binary files /dev/null and b/public/products/crop/image2-1699286230172.jpg differ
diff --git a/public/products/crop/image2-1699286391039.jpg b/public/products/crop/image2-1699286391039.jpg
new file mode 100644
index 00000000..a988db00
Binary files /dev/null and b/public/products/crop/image2-1699286391039.jpg differ
diff --git a/public/products/crop/image2-1699286540236.jpg b/public/products/crop/image2-1699286540236.jpg
new file mode 100644
index 00000000..0aa38614
Binary files /dev/null and b/public/products/crop/image2-1699286540236.jpg differ
diff --git a/public/products/crop/image2-1699286696696.jpg b/public/products/crop/image2-1699286696696.jpg
new file mode 100644
index 00000000..dda1711f
Binary files /dev/null and b/public/products/crop/image2-1699286696696.jpg differ
diff --git a/public/products/crop/image2-1699287170057.jpg b/public/products/crop/image2-1699287170057.jpg
new file mode 100644
index 00000000..a50d6159
Binary files /dev/null and b/public/products/crop/image2-1699287170057.jpg differ
diff --git a/public/products/crop/image2-1699328283380.jpg b/public/products/crop/image2-1699328283380.jpg
new file mode 100644
index 00000000..208de484
Binary files /dev/null and b/public/products/crop/image2-1699328283380.jpg differ
diff --git a/public/products/crop/image3-1699285910692.jpg b/public/products/crop/image3-1699285910692.jpg
new file mode 100644
index 00000000..64cb2daf
Binary files /dev/null and b/public/products/crop/image3-1699285910692.jpg differ
diff --git a/public/products/crop/image3-1699286098889.jpg b/public/products/crop/image3-1699286098889.jpg
new file mode 100644
index 00000000..dd0adb99
Binary files /dev/null and b/public/products/crop/image3-1699286098889.jpg differ
diff --git a/public/products/crop/image3-1699286230173.jpg b/public/products/crop/image3-1699286230173.jpg
new file mode 100644
index 00000000..96f43c2a
Binary files /dev/null and b/public/products/crop/image3-1699286230173.jpg differ
diff --git a/public/products/crop/image3-1699286391039.jpg b/public/products/crop/image3-1699286391039.jpg
new file mode 100644
index 00000000..a48e0823
Binary files /dev/null and b/public/products/crop/image3-1699286391039.jpg differ
diff --git a/public/products/crop/image3-1699286540238.jpg b/public/products/crop/image3-1699286540238.jpg
new file mode 100644
index 00000000..83709736
Binary files /dev/null and b/public/products/crop/image3-1699286540238.jpg differ
diff --git a/public/products/crop/image3-1699286696698.jpg b/public/products/crop/image3-1699286696698.jpg
new file mode 100644
index 00000000..99d8638d
Binary files /dev/null and b/public/products/crop/image3-1699286696698.jpg differ
diff --git a/public/products/crop/image3-1699287170057.jpg b/public/products/crop/image3-1699287170057.jpg
new file mode 100644
index 00000000..552bf969
Binary files /dev/null and b/public/products/crop/image3-1699287170057.jpg differ
diff --git a/public/products/crop/image3-1699328283382.jpg b/public/products/crop/image3-1699328283382.jpg
new file mode 100644
index 00000000..19f16837
Binary files /dev/null and b/public/products/crop/image3-1699328283382.jpg differ
diff --git a/public/products/crop/image4-1699285910693.jpg b/public/products/crop/image4-1699285910693.jpg
new file mode 100644
index 00000000..68d43785
Binary files /dev/null and b/public/products/crop/image4-1699285910693.jpg differ
diff --git a/public/products/crop/image4-1699286098890.jpg b/public/products/crop/image4-1699286098890.jpg
new file mode 100644
index 00000000..dc40ade3
Binary files /dev/null and b/public/products/crop/image4-1699286098890.jpg differ
diff --git a/public/products/crop/image4-1699286230174.jpg b/public/products/crop/image4-1699286230174.jpg
new file mode 100644
index 00000000..096c5a76
Binary files /dev/null and b/public/products/crop/image4-1699286230174.jpg differ
diff --git a/public/products/crop/image4-1699286391043.jpg b/public/products/crop/image4-1699286391043.jpg
new file mode 100644
index 00000000..b2eab78a
Binary files /dev/null and b/public/products/crop/image4-1699286391043.jpg differ
diff --git a/public/products/crop/image4-1699286540239.jpg b/public/products/crop/image4-1699286540239.jpg
new file mode 100644
index 00000000..62d33fc5
Binary files /dev/null and b/public/products/crop/image4-1699286540239.jpg differ
diff --git a/public/products/crop/image4-1699286696699.jpg b/public/products/crop/image4-1699286696699.jpg
new file mode 100644
index 00000000..55dda5b2
Binary files /dev/null and b/public/products/crop/image4-1699286696699.jpg differ
diff --git a/public/products/crop/image4-1699287170058.jpg b/public/products/crop/image4-1699287170058.jpg
new file mode 100644
index 00000000..1d6b466e
Binary files /dev/null and b/public/products/crop/image4-1699287170058.jpg differ
diff --git a/public/products/crop/image4-1699328283382.jpg b/public/products/crop/image4-1699328283382.jpg
new file mode 100644
index 00000000..e5901520
Binary files /dev/null and b/public/products/crop/image4-1699328283382.jpg differ
diff --git a/public/products/icons/icon-1699421241942.jpg b/public/products/icons/icon-1699421241942.jpg
new file mode 100644
index 00000000..e200f0cc
Binary files /dev/null and b/public/products/icons/icon-1699421241942.jpg differ
diff --git a/public/products/images/image1-1699285910690.jpg b/public/products/images/image1-1699285910690.jpg
new file mode 100644
index 00000000..07b8023f
Binary files /dev/null and b/public/products/images/image1-1699285910690.jpg differ
diff --git a/public/products/images/image1-1699286098882.jpg b/public/products/images/image1-1699286098882.jpg
new file mode 100644
index 00000000..75274278
Binary files /dev/null and b/public/products/images/image1-1699286098882.jpg differ
diff --git a/public/products/images/image1-1699286230171.jpg b/public/products/images/image1-1699286230171.jpg
new file mode 100644
index 00000000..3687f51e
Binary files /dev/null and b/public/products/images/image1-1699286230171.jpg differ
diff --git a/public/products/images/image1-1699286391037.jpg b/public/products/images/image1-1699286391037.jpg
new file mode 100644
index 00000000..d96b043e
Binary files /dev/null and b/public/products/images/image1-1699286391037.jpg differ
diff --git a/public/products/images/image1-1699286540236.jpg b/public/products/images/image1-1699286540236.jpg
new file mode 100644
index 00000000..1d71b88c
Binary files /dev/null and b/public/products/images/image1-1699286540236.jpg differ
diff --git a/public/products/images/image1-1699286696695.jpg b/public/products/images/image1-1699286696695.jpg
new file mode 100644
index 00000000..dd6aa0d1
Binary files /dev/null and b/public/products/images/image1-1699286696695.jpg differ
diff --git a/public/products/images/image1-1699287170055.jpg b/public/products/images/image1-1699287170055.jpg
new file mode 100644
index 00000000..84f3f7fb
Binary files /dev/null and b/public/products/images/image1-1699287170055.jpg differ
diff --git a/public/products/images/image1-1699328283378.jpg b/public/products/images/image1-1699328283378.jpg
new file mode 100644
index 00000000..48e4862b
Binary files /dev/null and b/public/products/images/image1-1699328283378.jpg differ
diff --git a/public/products/images/image2-1699285910691.jpg b/public/products/images/image2-1699285910691.jpg
new file mode 100644
index 00000000..a7c48af1
Binary files /dev/null and b/public/products/images/image2-1699285910691.jpg differ
diff --git a/public/products/images/image2-1699286098888.jpg b/public/products/images/image2-1699286098888.jpg
new file mode 100644
index 00000000..9d511956
Binary files /dev/null and b/public/products/images/image2-1699286098888.jpg differ
diff --git a/public/products/images/image2-1699286230172.jpg b/public/products/images/image2-1699286230172.jpg
new file mode 100644
index 00000000..b4fd1226
Binary files /dev/null and b/public/products/images/image2-1699286230172.jpg differ
diff --git a/public/products/images/image2-1699286391039.jpg b/public/products/images/image2-1699286391039.jpg
new file mode 100644
index 00000000..4f6196e3
Binary files /dev/null and b/public/products/images/image2-1699286391039.jpg differ
diff --git a/public/products/images/image2-1699286540236.jpg b/public/products/images/image2-1699286540236.jpg
new file mode 100644
index 00000000..2c8628f7
Binary files /dev/null and b/public/products/images/image2-1699286540236.jpg differ
diff --git a/public/products/images/image2-1699286696696.jpg b/public/products/images/image2-1699286696696.jpg
new file mode 100644
index 00000000..19232534
Binary files /dev/null and b/public/products/images/image2-1699286696696.jpg differ
diff --git a/public/products/images/image2-1699287170057.jpg b/public/products/images/image2-1699287170057.jpg
new file mode 100644
index 00000000..aa14c35c
Binary files /dev/null and b/public/products/images/image2-1699287170057.jpg differ
diff --git a/public/products/images/image2-1699328283380.jpg b/public/products/images/image2-1699328283380.jpg
new file mode 100644
index 00000000..fe79f237
Binary files /dev/null and b/public/products/images/image2-1699328283380.jpg differ
diff --git a/public/products/images/image3-1699285910692.jpg b/public/products/images/image3-1699285910692.jpg
new file mode 100644
index 00000000..a2b528e4
Binary files /dev/null and b/public/products/images/image3-1699285910692.jpg differ
diff --git a/public/products/images/image3-1699286098889.jpg b/public/products/images/image3-1699286098889.jpg
new file mode 100644
index 00000000..4f09f2d6
Binary files /dev/null and b/public/products/images/image3-1699286098889.jpg differ
diff --git a/public/products/images/image3-1699286230173.jpg b/public/products/images/image3-1699286230173.jpg
new file mode 100644
index 00000000..ce6114b4
Binary files /dev/null and b/public/products/images/image3-1699286230173.jpg differ
diff --git a/public/products/images/image3-1699286391039.jpg b/public/products/images/image3-1699286391039.jpg
new file mode 100644
index 00000000..2f6bf51a
Binary files /dev/null and b/public/products/images/image3-1699286391039.jpg differ
diff --git a/public/products/images/image3-1699286540238.jpg b/public/products/images/image3-1699286540238.jpg
new file mode 100644
index 00000000..dc597b96
Binary files /dev/null and b/public/products/images/image3-1699286540238.jpg differ
diff --git a/public/products/images/image3-1699286696698.jpg b/public/products/images/image3-1699286696698.jpg
new file mode 100644
index 00000000..1e3cd231
Binary files /dev/null and b/public/products/images/image3-1699286696698.jpg differ
diff --git a/public/products/images/image3-1699287170057.jpg b/public/products/images/image3-1699287170057.jpg
new file mode 100644
index 00000000..7626fe13
Binary files /dev/null and b/public/products/images/image3-1699287170057.jpg differ
diff --git a/public/products/images/image3-1699328283382.jpg b/public/products/images/image3-1699328283382.jpg
new file mode 100644
index 00000000..e2c71f32
Binary files /dev/null and b/public/products/images/image3-1699328283382.jpg differ
diff --git a/public/products/images/image4-1699285910693.jpg b/public/products/images/image4-1699285910693.jpg
new file mode 100644
index 00000000..77dc3c84
Binary files /dev/null and b/public/products/images/image4-1699285910693.jpg differ
diff --git a/public/products/images/image4-1699286098890.jpg b/public/products/images/image4-1699286098890.jpg
new file mode 100644
index 00000000..7fed4ede
Binary files /dev/null and b/public/products/images/image4-1699286098890.jpg differ
diff --git a/public/products/images/image4-1699286230174.jpg b/public/products/images/image4-1699286230174.jpg
new file mode 100644
index 00000000..6f7891a6
Binary files /dev/null and b/public/products/images/image4-1699286230174.jpg differ
diff --git a/public/products/images/image4-1699286391043.jpg b/public/products/images/image4-1699286391043.jpg
new file mode 100644
index 00000000..b52757af
Binary files /dev/null and b/public/products/images/image4-1699286391043.jpg differ
diff --git a/public/products/images/image4-1699286540239.jpg b/public/products/images/image4-1699286540239.jpg
new file mode 100644
index 00000000..b6c4b5d4
Binary files /dev/null and b/public/products/images/image4-1699286540239.jpg differ
diff --git a/public/products/images/image4-1699286696699.jpg b/public/products/images/image4-1699286696699.jpg
new file mode 100644
index 00000000..15c34326
Binary files /dev/null and b/public/products/images/image4-1699286696699.jpg differ
diff --git a/public/products/images/image4-1699287170058.jpg b/public/products/images/image4-1699287170058.jpg
new file mode 100644
index 00000000..c9ab4e07
Binary files /dev/null and b/public/products/images/image4-1699287170058.jpg differ
diff --git a/public/products/images/image4-1699328283382.jpg b/public/products/images/image4-1699328283382.jpg
new file mode 100644
index 00000000..c9e3fbcd
Binary files /dev/null and b/public/products/images/image4-1699328283382.jpg differ
diff --git a/public/user/js/nouislider.min.js b/public/user/js/nouislider.min.js
index f201b00b..78930bd5 100644
--- a/public/user/js/nouislider.min.js
+++ b/public/user/js/nouislider.min.js
@@ -1,2 +1,1337 @@
/*! nouislider - 13.1.5 - 4/24/2019 */
-!function(t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():window.noUiSlider=t()}(function(){"use strict";var ut="13.1.5";function ct(t){t.parentElement.removeChild(t)}function s(t){return null!=t}function pt(t){t.preventDefault()}function i(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}function ft(t,e,r){0=e[r];)r+=1;return r}function r(t,e,r){if(r>=t.slice(-1)[0])return 100;var n,i,o=f(r,t),a=t[o-1],s=t[o],l=e[o-1],u=e[o];return l+(i=r,p(n=[a,s],n[0]<0?i+Math.abs(n[0]):i-n[0])/c(l,u))}function n(t,e,r,n){if(100===n)return n;var i,o,a=f(n,t),s=t[a-1],l=t[a];return r?(l-s)/2= 2) required for mode 'count'.");var n=e-1,i=100/n;for(e=[];n--;)e[n]=n*i;e.push(100),t="positions"}return"positions"===t?e.map(function(t){return E.fromStepping(r?E.getStep(t):t)}):"values"===t?r?e.map(function(t){return E.fromStepping(E.getStep(E.toStepping(t)))}):e:void 0}(n,t.values||!1,t.stepped||!1),s=(m=i,g=n,v=a,b={},e=E.xVal[0],r=E.xVal[E.xVal.length-1],x=S=!1,w=0,(v=v.slice().sort(function(t,e){return t-e}).filter(function(t){return!this[t]&&(this[t]=!0)},{}))[0]!==e&&(v.unshift(e),S=!0),v[v.length-1]!==r&&(v.push(r),x=!0),v.forEach(function(t,e){var r,n,i,o,a,s,l,u,c,p,f=t,d=v[e+1],h="steps"===g;if(h&&(r=E.xNumSteps[e]),r||(r=d-f),!1!==f&&void 0!==d)for(r=Math.max(r,1e-7),n=f;n<=d;n=(n+r).toFixed(7)/1){for(u=(a=(o=E.toStepping(n))-w)/m,p=a/(c=Math.round(u)),i=1;i<=c;i+=1)b[(s=w+i*p).toFixed(5)]=[E.fromStepping(s),0];l=-1r.stepAfter.startValue&&(i=r.stepAfter.startValue-n),o=n>r.thisStep.startValue?r.thisStep.step:!1!==r.stepBefore.step&&n-r.stepBefore.highestStep,100===e?i=null:0===e&&(o=null);var a=E.countStepDecimals();return null!==i&&!1!==i&&(i=Number(i.toFixed(a))),null!==o&&!1!==o&&(o=Number(o.toFixed(a))),[o,i]}return mt(e=y,f.cssClasses.target),0===f.dir?mt(e,f.cssClasses.ltr):mt(e,f.cssClasses.rtl),0===f.ort?mt(e,f.cssClasses.horizontal):mt(e,f.cssClasses.vertical),l=V(e,f.cssClasses.base),function(t,e){var r=V(e,f.cssClasses.connects);u=[],(a=[]).push(O(r,t[0]));for(var n=0;n= e[r]; ) r += 1;
+ return r;
+ }
+ function r(t, e, r) {
+ if (r >= t.slice(-1)[0]) return 100;
+ var n,
+ i,
+ o = f(r, t),
+ a = t[o - 1],
+ s = t[o],
+ l = e[o - 1],
+ u = e[o];
+ return (
+ l +
+ ((i = r),
+ p((n = [a, s]), n[0] < 0 ? i + Math.abs(n[0]) : i - n[0]) / c(l, u))
+ );
+ }
+ function n(t, e, r, n) {
+ if (100 === n) return n;
+ var i,
+ o,
+ a = f(n, t),
+ s = t[a - 1],
+ l = t[a];
+ return r
+ ? (l - s) / 2 < n - s
+ ? l
+ : s
+ : e[a - 1]
+ ? t[a - 1] + ((i = n - t[a - 1]), (o = e[a - 1]), Math.round(i / o) * o)
+ : n;
+ }
+ function o(t, e, r) {
+ var n;
+ if (("number" == typeof e && (e = [e]), !Array.isArray(e)))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'range' contains invalid value."
+ );
+ if (
+ !i((n = "min" === t ? 0 : "max" === t ? 100 : parseFloat(t))) ||
+ !i(e[0])
+ )
+ throw new Error("noUiSlider (" + ut + "): 'range' value isn't numeric.");
+ r.xPct.push(n),
+ r.xVal.push(e[0]),
+ n
+ ? r.xSteps.push(!isNaN(e[1]) && e[1])
+ : isNaN(e[1]) || (r.xSteps[0] = e[1]),
+ r.xHighestCompleteStep.push(0);
+ }
+ function a(t, e, r) {
+ if (e)
+ if (r.xVal[t] !== r.xVal[t + 1]) {
+ r.xSteps[t] =
+ p([r.xVal[t], r.xVal[t + 1]], e) / c(r.xPct[t], r.xPct[t + 1]);
+ var n = (r.xVal[t + 1] - r.xVal[t]) / r.xNumSteps[t],
+ i = Math.ceil(Number(n.toFixed(3)) - 1),
+ o = r.xVal[t] + r.xNumSteps[t] * i;
+ r.xHighestCompleteStep[t] = o;
+ } else r.xSteps[t] = r.xHighestCompleteStep[t] = r.xVal[t];
+ }
+ function l(t, e, r) {
+ var n;
+ (this.xPct = []),
+ (this.xVal = []),
+ (this.xSteps = [r || !1]),
+ (this.xNumSteps = [!1]),
+ (this.xHighestCompleteStep = []),
+ (this.snap = e);
+ var i = [];
+ for (n in t) t.hasOwnProperty(n) && i.push([t[n], n]);
+ for (
+ i.length && "object" == typeof i[0][0]
+ ? i.sort(function (t, e) {
+ return t[0][0] - e[0][0];
+ })
+ : i.sort(function (t, e) {
+ return t[0] - e[0];
+ }),
+ n = 0;
+ n < i.length;
+ n++
+ )
+ o(i[n][1], i[n][0], this);
+ for (
+ this.xNumSteps = this.xSteps.slice(0), n = 0;
+ n < this.xNumSteps.length;
+ n++
+ )
+ a(n, this.xNumSteps[n], this);
+ }
+ (l.prototype.getMargin = function (t) {
+ var e = this.xNumSteps[0];
+ if (e && (t / e) % 1 != 0)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'limit', 'margin' and 'padding' must be divisible by step."
+ );
+ return 2 === this.xPct.length && p(this.xVal, t);
+ }),
+ (l.prototype.toStepping = function (t) {
+ return (t = r(this.xVal, this.xPct, t));
+ }),
+ (l.prototype.fromStepping = function (t) {
+ return (function (t, e, r) {
+ if (100 <= r) return t.slice(-1)[0];
+ var n,
+ i = f(r, e),
+ o = t[i - 1],
+ a = t[i],
+ s = e[i - 1],
+ l = e[i];
+ return (n = [o, a]), ((r - s) * c(s, l) * (n[1] - n[0])) / 100 + n[0];
+ })(this.xVal, this.xPct, t);
+ }),
+ (l.prototype.getStep = function (t) {
+ return (t = n(this.xPct, this.xSteps, this.snap, t));
+ }),
+ (l.prototype.getDefaultStep = function (t, e, r) {
+ var n = f(t, this.xPct);
+ return (
+ (100 === t || (e && t === this.xPct[n - 1])) &&
+ (n = Math.max(n - 1, 1)),
+ (this.xVal[n] - this.xVal[n - 1]) / r
+ );
+ }),
+ (l.prototype.getNearbySteps = function (t) {
+ var e = f(t, this.xPct);
+ return {
+ stepBefore: {
+ startValue: this.xVal[e - 2],
+ step: this.xNumSteps[e - 2],
+ highestStep: this.xHighestCompleteStep[e - 2],
+ },
+ thisStep: {
+ startValue: this.xVal[e - 1],
+ step: this.xNumSteps[e - 1],
+ highestStep: this.xHighestCompleteStep[e - 1],
+ },
+ stepAfter: {
+ startValue: this.xVal[e],
+ step: this.xNumSteps[e],
+ highestStep: this.xHighestCompleteStep[e],
+ },
+ };
+ }),
+ (l.prototype.countStepDecimals = function () {
+ var t = this.xNumSteps.map(e);
+ return Math.max.apply(null, t);
+ }),
+ (l.prototype.convert = function (t) {
+ return this.getStep(this.toStepping(t));
+ });
+ var u = {
+ to: function (t) {
+ return void 0 !== t && t.toFixed(2);
+ },
+ from: Number,
+ };
+ function d(t) {
+ if (
+ "object" == typeof (e = t) &&
+ "function" == typeof e.to &&
+ "function" == typeof e.from
+ )
+ return !0;
+ var e;
+ throw new Error(
+ "noUiSlider (" + ut + "): 'format' requires 'to' and 'from' methods."
+ );
+ }
+ function h(t, e) {
+ if (!i(e))
+ throw new Error("noUiSlider (" + ut + "): 'step' is not numeric.");
+ t.singleStep = e;
+ }
+ function m(t, e) {
+ if ("object" != typeof e || Array.isArray(e))
+ throw new Error("noUiSlider (" + ut + "): 'range' is not an object.");
+ if (void 0 === e.min || void 0 === e.max)
+ throw new Error(
+ "noUiSlider (" + ut + "): Missing 'min' or 'max' in 'range'."
+ );
+ if (e.min === e.max)
+ throw new Error(
+ "noUiSlider (" + ut + "): 'range' 'min' and 'max' cannot be equal."
+ );
+ t.spectrum = new l(e, t.snap, t.singleStep);
+ }
+ function g(t, e) {
+ if (((e = ht(e)), !Array.isArray(e) || !e.length))
+ throw new Error("noUiSlider (" + ut + "): 'start' option is incorrect.");
+ (t.handles = e.length), (t.start = e);
+ }
+ function v(t, e) {
+ if ("boolean" != typeof (t.snap = e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'snap' option must be a boolean."
+ );
+ }
+ function b(t, e) {
+ if ("boolean" != typeof (t.animate = e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'animate' option must be a boolean."
+ );
+ }
+ function S(t, e) {
+ if ("number" != typeof (t.animationDuration = e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'animationDuration' option must be a number."
+ );
+ }
+ function x(t, e) {
+ var r,
+ n = [!1];
+ if (
+ ("lower" === e ? (e = [!0, !1]) : "upper" === e && (e = [!1, !0]),
+ !0 === e || !1 === e)
+ ) {
+ for (r = 1; r < t.handles; r++) n.push(e);
+ n.push(!1);
+ } else {
+ if (!Array.isArray(e) || !e.length || e.length !== t.handles + 1)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'connect' option doesn't match handle count."
+ );
+ n = e;
+ }
+ t.connect = n;
+ }
+ function w(t, e) {
+ switch (e) {
+ case "horizontal":
+ t.ort = 0;
+ break;
+ case "vertical":
+ t.ort = 1;
+ break;
+ default:
+ throw new Error(
+ "noUiSlider (" + ut + "): 'orientation' option is invalid."
+ );
+ }
+ }
+ function y(t, e) {
+ if (!i(e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'margin' option must be numeric."
+ );
+ if (0 !== e && ((t.margin = t.spectrum.getMargin(e)), !t.margin))
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'margin' option is only supported on linear sliders."
+ );
+ }
+ function E(t, e) {
+ if (!i(e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'limit' option must be numeric."
+ );
+ if (((t.limit = t.spectrum.getMargin(e)), !t.limit || t.handles < 2))
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'limit' option is only supported on linear sliders with 2 or more handles."
+ );
+ }
+ function C(t, e) {
+ if (!i(e) && !Array.isArray(e))
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'padding' option must be numeric or array of exactly 2 numbers."
+ );
+ if (Array.isArray(e) && 2 !== e.length && !i(e[0]) && !i(e[1]))
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'padding' option must be numeric or array of exactly 2 numbers."
+ );
+ if (0 !== e) {
+ if (
+ (Array.isArray(e) || (e = [e, e]),
+ !(t.padding = [
+ t.spectrum.getMargin(e[0]),
+ t.spectrum.getMargin(e[1]),
+ ]) === t.padding[0] || !1 === t.padding[1])
+ )
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'padding' option is only supported on linear sliders."
+ );
+ if (t.padding[0] < 0 || t.padding[1] < 0)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'padding' option must be a positive number(s)."
+ );
+ if (100 < t.padding[0] + t.padding[1])
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'padding' option must not exceed 100% of the range."
+ );
+ }
+ }
+ function N(t, e) {
+ switch (e) {
+ case "ltr":
+ t.dir = 0;
+ break;
+ case "rtl":
+ t.dir = 1;
+ break;
+ default:
+ throw new Error(
+ "noUiSlider (" + ut + "): 'direction' option was not recognized."
+ );
+ }
+ }
+ function U(t, e) {
+ if ("string" != typeof e)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'behaviour' must be a string containing options."
+ );
+ var r = 0 <= e.indexOf("tap"),
+ n = 0 <= e.indexOf("drag"),
+ i = 0 <= e.indexOf("fixed"),
+ o = 0 <= e.indexOf("snap"),
+ a = 0 <= e.indexOf("hover"),
+ s = 0 <= e.indexOf("unconstrained");
+ if (i) {
+ if (2 !== t.handles)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'fixed' behaviour must be used with 2 handles"
+ );
+ y(t, t.start[1] - t.start[0]);
+ }
+ if (s && (t.margin || t.limit))
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'unconstrained' behaviour cannot be used with margin or limit"
+ );
+ t.events = {
+ tap: r || o,
+ drag: n,
+ fixed: i,
+ snap: o,
+ hover: a,
+ unconstrained: s,
+ };
+ }
+ function k(t, e) {
+ if (!1 !== e)
+ if (!0 === e) {
+ t.tooltips = [];
+ for (var r = 0; r < t.handles; r++) t.tooltips.push(!0);
+ } else {
+ if (((t.tooltips = ht(e)), t.tooltips.length !== t.handles))
+ throw new Error(
+ "noUiSlider (" + ut + "): must pass a formatter for all handles."
+ );
+ t.tooltips.forEach(function (t) {
+ if (
+ "boolean" != typeof t &&
+ ("object" != typeof t || "function" != typeof t.to)
+ )
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'tooltips' must be passed a formatter or 'false'."
+ );
+ });
+ }
+ }
+ function P(t, e) {
+ d((t.ariaFormat = e));
+ }
+ function A(t, e) {
+ d((t.format = e));
+ }
+ function V(t, e) {
+ if ("boolean" != typeof (t.keyboardSupport = e))
+ throw new Error(
+ "noUiSlider (" + ut + "): 'keyboardSupport' option must be a boolean."
+ );
+ }
+ function M(t, e) {
+ t.documentElement = e;
+ }
+ function O(t, e) {
+ if ("string" != typeof e && !1 !== e)
+ throw new Error(
+ "noUiSlider (" + ut + "): 'cssPrefix' must be a string or `false`."
+ );
+ t.cssPrefix = e;
+ }
+ function L(t, e) {
+ if ("object" != typeof e)
+ throw new Error(
+ "noUiSlider (" + ut + "): 'cssClasses' must be an object."
+ );
+ if ("string" == typeof t.cssPrefix)
+ for (var r in ((t.cssClasses = {}), e))
+ e.hasOwnProperty(r) && (t.cssClasses[r] = t.cssPrefix + e[r]);
+ else t.cssClasses = e;
+ }
+ function bt(e) {
+ var r = {
+ margin: 0,
+ limit: 0,
+ padding: 0,
+ animate: !0,
+ animationDuration: 300,
+ ariaFormat: u,
+ format: u,
+ },
+ n = {
+ step: { r: !1, t: h },
+ start: { r: !0, t: g },
+ connect: { r: !0, t: x },
+ direction: { r: !0, t: N },
+ snap: { r: !1, t: v },
+ animate: { r: !1, t: b },
+ animationDuration: { r: !1, t: S },
+ range: { r: !0, t: m },
+ orientation: { r: !1, t: w },
+ margin: { r: !1, t: y },
+ limit: { r: !1, t: E },
+ padding: { r: !1, t: C },
+ behaviour: { r: !0, t: U },
+ ariaFormat: { r: !1, t: P },
+ format: { r: !1, t: A },
+ tooltips: { r: !1, t: k },
+ keyboardSupport: { r: !0, t: V },
+ documentElement: { r: !1, t: M },
+ cssPrefix: { r: !0, t: O },
+ cssClasses: { r: !0, t: L },
+ },
+ i = {
+ connect: !1,
+ direction: "ltr",
+ behaviour: "tap",
+ orientation: "horizontal",
+ keyboardSupport: !0,
+ cssPrefix: "noUi-",
+ cssClasses: {
+ target: "target",
+ base: "base",
+ origin: "origin",
+ handle: "handle",
+ handleLower: "handle-lower",
+ handleUpper: "handle-upper",
+ touchArea: "touch-area",
+ horizontal: "horizontal",
+ vertical: "vertical",
+ background: "background",
+ connect: "connect",
+ connects: "connects",
+ ltr: "ltr",
+ rtl: "rtl",
+ draggable: "draggable",
+ drag: "state-drag",
+ tap: "state-tap",
+ active: "active",
+ tooltip: "tooltip",
+ pips: "pips",
+ pipsHorizontal: "pips-horizontal",
+ pipsVertical: "pips-vertical",
+ marker: "marker",
+ markerHorizontal: "marker-horizontal",
+ markerVertical: "marker-vertical",
+ markerNormal: "marker-normal",
+ markerLarge: "marker-large",
+ markerSub: "marker-sub",
+ value: "value",
+ valueHorizontal: "value-horizontal",
+ valueVertical: "value-vertical",
+ valueNormal: "value-normal",
+ valueLarge: "value-large",
+ valueSub: "value-sub",
+ },
+ };
+ e.format && !e.ariaFormat && (e.ariaFormat = e.format),
+ Object.keys(n).forEach(function (t) {
+ if (!s(e[t]) && void 0 === i[t]) {
+ if (n[t].r)
+ throw new Error(
+ "noUiSlider (" + ut + "): '" + t + "' is required."
+ );
+ return !0;
+ }
+ n[t].t(r, s(e[t]) ? e[t] : i[t]);
+ }),
+ (r.pips = e.pips);
+ var t = document.createElement("div"),
+ o = void 0 !== t.style.msTransform,
+ a = void 0 !== t.style.transform;
+ r.transformRule = a ? "transform" : o ? "msTransform" : "webkitTransform";
+ return (
+ (r.style = [
+ ["left", "top"],
+ ["right", "bottom"],
+ ][r.dir][r.ort]),
+ r
+ );
+ }
+ function z(t, f, o) {
+ var l,
+ u,
+ a,
+ c,
+ i,
+ s,
+ e,
+ p,
+ d = window.navigator.pointerEnabled
+ ? { start: "pointerdown", move: "pointermove", end: "pointerup" }
+ : window.navigator.msPointerEnabled
+ ? { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }
+ : {
+ start: "mousedown touchstart",
+ move: "mousemove touchmove",
+ end: "mouseup touchend",
+ },
+ h =
+ window.CSS &&
+ CSS.supports &&
+ CSS.supports("touch-action", "none") &&
+ (function () {
+ var t = !1;
+ try {
+ var e = Object.defineProperty({}, "passive", {
+ get: function () {
+ t = !0;
+ },
+ });
+ window.addEventListener("test", null, e);
+ } catch (t) {}
+ return t;
+ })(),
+ y = t,
+ E = f.spectrum,
+ m = [],
+ g = [],
+ v = [],
+ b = 0,
+ S = {},
+ x = t.ownerDocument,
+ w = f.documentElement || x.documentElement,
+ C = x.body,
+ N = -1,
+ U = 0,
+ k = 1,
+ P = 2,
+ A = "rtl" === x.dir || 1 === f.ort ? 0 : 100;
+ function V(t, e) {
+ var r = x.createElement("div");
+ return e && mt(r, e), t.appendChild(r), r;
+ }
+ function M(t, e) {
+ var r = V(t, f.cssClasses.origin),
+ n = V(r, f.cssClasses.handle);
+ return (
+ V(n, f.cssClasses.touchArea),
+ n.setAttribute("data-handle", e),
+ f.keyboardSupport &&
+ (n.setAttribute("tabindex", "0"),
+ n.addEventListener("keydown", function (t) {
+ return (function (t, e) {
+ if (L() || z(e)) return !1;
+ var r = ["Left", "Right"],
+ n = ["Down", "Up"];
+ f.dir && !f.ort ? r.reverse() : f.ort && !f.dir && n.reverse();
+ var i = t.key.replace("Arrow", ""),
+ o = i === n[0] || i === r[0],
+ a = i === n[1] || i === r[1];
+ if (!o && !a) return !0;
+ t.preventDefault();
+ var s = o ? 0 : 1,
+ l = lt(e)[s];
+ if (null === l) return !1;
+ !1 === l && (l = E.getDefaultStep(g[e], o, 10));
+ return (
+ (l = Math.max(l, 1e-7)),
+ (l *= o ? -1 : 1),
+ at(e, m[e] + l, !0),
+ !1
+ );
+ })(t, e);
+ })),
+ n.setAttribute("role", "slider"),
+ n.setAttribute("aria-orientation", f.ort ? "vertical" : "horizontal"),
+ 0 === e
+ ? mt(n, f.cssClasses.handleLower)
+ : e === f.handles - 1 && mt(n, f.cssClasses.handleUpper),
+ r
+ );
+ }
+ function O(t, e) {
+ return !!e && V(t, f.cssClasses.connect);
+ }
+ function r(t, e) {
+ return !!f.tooltips[e] && V(t.firstChild, f.cssClasses.tooltip);
+ }
+ function L() {
+ return y.hasAttribute("disabled");
+ }
+ function z(t) {
+ return u[t].hasAttribute("disabled");
+ }
+ function j() {
+ i &&
+ (G("update.tooltips"),
+ i.forEach(function (t) {
+ t && ct(t);
+ }),
+ (i = null));
+ }
+ function H() {
+ j(),
+ (i = u.map(r)),
+ $("update.tooltips", function (t, e, r) {
+ if (i[e]) {
+ var n = t[e];
+ !0 !== f.tooltips[e] && (n = f.tooltips[e].to(r[e])),
+ (i[e].innerHTML = n);
+ }
+ });
+ }
+ function F(e, i, o) {
+ var a = x.createElement("div"),
+ s = [];
+ (s[U] = f.cssClasses.valueNormal),
+ (s[k] = f.cssClasses.valueLarge),
+ (s[P] = f.cssClasses.valueSub);
+ var l = [];
+ (l[U] = f.cssClasses.markerNormal),
+ (l[k] = f.cssClasses.markerLarge),
+ (l[P] = f.cssClasses.markerSub);
+ var u = [f.cssClasses.valueHorizontal, f.cssClasses.valueVertical],
+ c = [f.cssClasses.markerHorizontal, f.cssClasses.markerVertical];
+ function p(t, e) {
+ var r = e === f.cssClasses.value,
+ n = r ? s : l;
+ return e + " " + (r ? u : c)[f.ort] + " " + n[t];
+ }
+ return (
+ mt(a, f.cssClasses.pips),
+ mt(
+ a,
+ 0 === f.ort ? f.cssClasses.pipsHorizontal : f.cssClasses.pipsVertical
+ ),
+ Object.keys(e).forEach(function (t) {
+ !(function (t, e, r) {
+ if ((r = i ? i(e, r) : r) !== N) {
+ var n = V(a, !1);
+ (n.className = p(r, f.cssClasses.marker)),
+ (n.style[f.style] = t + "%"),
+ U < r &&
+ (((n = V(a, !1)).className = p(r, f.cssClasses.value)),
+ n.setAttribute("data-value", e),
+ (n.style[f.style] = t + "%"),
+ (n.innerHTML = o.to(e)));
+ }
+ })(t, e[t][0], e[t][1]);
+ }),
+ a
+ );
+ }
+ function D() {
+ c && (ct(c), (c = null));
+ }
+ function T(t) {
+ D();
+ var m,
+ g,
+ v,
+ b,
+ e,
+ r,
+ S,
+ x,
+ w,
+ n = t.mode,
+ i = t.density || 1,
+ o = t.filter || !1,
+ a = (function (t, e, r) {
+ if ("range" === t || "steps" === t) return E.xVal;
+ if ("count" === t) {
+ if (e < 2)
+ throw new Error(
+ "noUiSlider (" +
+ ut +
+ "): 'values' (>= 2) required for mode 'count'."
+ );
+ var n = e - 1,
+ i = 100 / n;
+ for (e = []; n--; ) e[n] = n * i;
+ e.push(100), (t = "positions");
+ }
+ return "positions" === t
+ ? e.map(function (t) {
+ return E.fromStepping(r ? E.getStep(t) : t);
+ })
+ : "values" === t
+ ? r
+ ? e.map(function (t) {
+ return E.fromStepping(E.getStep(E.toStepping(t)));
+ })
+ : e
+ : void 0;
+ })(n, t.values || !1, t.stepped || !1),
+ s =
+ ((m = i),
+ (g = n),
+ (v = a),
+ (b = {}),
+ (e = E.xVal[0]),
+ (r = E.xVal[E.xVal.length - 1]),
+ (x = S = !1),
+ (w = 0),
+ (v = v
+ .slice()
+ .sort(function (t, e) {
+ return t - e;
+ })
+ .filter(function (t) {
+ return !this[t] && (this[t] = !0);
+ }, {}))[0] !== e && (v.unshift(e), (S = !0)),
+ v[v.length - 1] !== r && (v.push(r), (x = !0)),
+ v.forEach(function (t, e) {
+ var r,
+ n,
+ i,
+ o,
+ a,
+ s,
+ l,
+ u,
+ c,
+ p,
+ f = t,
+ d = v[e + 1],
+ h = "steps" === g;
+ if (
+ (h && (r = E.xNumSteps[e]),
+ r || (r = d - f),
+ !1 !== f && void 0 !== d)
+ )
+ for (
+ r = Math.max(r, 1e-7), n = f;
+ n <= d;
+ n = (n + r).toFixed(7) / 1
+ ) {
+ for (
+ u = (a = (o = E.toStepping(n)) - w) / m,
+ p = a / (c = Math.round(u)),
+ i = 1;
+ i <= c;
+ i += 1
+ )
+ b[(s = w + i * p).toFixed(5)] = [E.fromStepping(s), 0];
+ (l = -1 < v.indexOf(n) ? k : h ? P : U),
+ !e && S && (l = 0),
+ (n === d && x) || (b[o.toFixed(5)] = [n, l]),
+ (w = o);
+ }
+ }),
+ b),
+ l = t.format || { to: Math.round };
+ return (c = y.appendChild(F(s, o, l)));
+ }
+ function R() {
+ var t = l.getBoundingClientRect(),
+ e = "offset" + ["Width", "Height"][f.ort];
+ return 0 === f.ort ? t.width || l[e] : t.height || l[e];
+ }
+ function B(n, i, o, a) {
+ var e = function (t) {
+ return (
+ !!(t = (function (t, e, r) {
+ var n,
+ i,
+ o = 0 === t.type.indexOf("touch"),
+ a = 0 === t.type.indexOf("mouse"),
+ s = 0 === t.type.indexOf("pointer");
+ 0 === t.type.indexOf("MSPointer") && (s = !0);
+ if (o) {
+ var l = function (t) {
+ return t.target === r || r.contains(t.target);
+ };
+ if ("touchstart" === t.type) {
+ var u = Array.prototype.filter.call(t.touches, l);
+ if (1 < u.length) return !1;
+ (n = u[0].pageX), (i = u[0].pageY);
+ } else {
+ var c = Array.prototype.find.call(t.changedTouches, l);
+ if (!c) return !1;
+ (n = c.pageX), (i = c.pageY);
+ }
+ }
+ (e = e || vt(x)),
+ (a || s) && ((n = t.clientX + e.x), (i = t.clientY + e.y));
+ return (
+ (t.pageOffset = e), (t.points = [n, i]), (t.cursor = a || s), t
+ );
+ })(t, a.pageOffset, a.target || i)) &&
+ !(L() && !a.doNotReject) &&
+ ((e = y),
+ (r = f.cssClasses.tap),
+ !(
+ (e.classList
+ ? e.classList.contains(r)
+ : new RegExp("\\b" + r + "\\b").test(e.className)) &&
+ !a.doNotReject
+ ) &&
+ !(n === d.start && void 0 !== t.buttons && 1 < t.buttons) &&
+ (!a.hover || !t.buttons) &&
+ (h || t.preventDefault(),
+ (t.calcPoint = t.points[f.ort]),
+ void o(t, a)))
+ );
+ var e, r;
+ },
+ r = [];
+ return (
+ n.split(" ").forEach(function (t) {
+ i.addEventListener(t, e, !!h && { passive: !0 }), r.push([t, e]);
+ }),
+ r
+ );
+ }
+ function q(t) {
+ var e,
+ r,
+ n,
+ i,
+ o,
+ a,
+ s =
+ (100 *
+ (t -
+ ((e = l),
+ (r = f.ort),
+ (n = e.getBoundingClientRect()),
+ (i = e.ownerDocument),
+ (o = i.documentElement),
+ (a = vt(i)),
+ /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (a.x = 0),
+ r ? n.top + a.y - o.clientTop : n.left + a.x - o.clientLeft))) /
+ R();
+ return (s = dt(s)), f.dir ? 100 - s : s;
+ }
+ function X(t, e) {
+ "mouseout" === t.type &&
+ "HTML" === t.target.nodeName &&
+ null === t.relatedTarget &&
+ _(t, e);
+ }
+ function Y(t, e) {
+ if (
+ -1 === navigator.appVersion.indexOf("MSIE 9") &&
+ 0 === t.buttons &&
+ 0 !== e.buttonsProperty
+ )
+ return _(t, e);
+ var r = (f.dir ? -1 : 1) * (t.calcPoint - e.startCalcPoint);
+ Z(0 < r, (100 * r) / e.baseSize, e.locations, e.handleNumbers);
+ }
+ function _(t, e) {
+ e.handle && (gt(e.handle, f.cssClasses.active), (b -= 1)),
+ e.listeners.forEach(function (t) {
+ w.removeEventListener(t[0], t[1]);
+ }),
+ 0 === b &&
+ (gt(y, f.cssClasses.drag),
+ et(),
+ t.cursor &&
+ ((C.style.cursor = ""), C.removeEventListener("selectstart", pt))),
+ e.handleNumbers.forEach(function (t) {
+ J("change", t), J("set", t), J("end", t);
+ });
+ }
+ function I(t, e) {
+ if (e.handleNumbers.some(z)) return !1;
+ var r;
+ 1 === e.handleNumbers.length &&
+ ((r = u[e.handleNumbers[0]].children[0]),
+ (b += 1),
+ mt(r, f.cssClasses.active));
+ t.stopPropagation();
+ var n = [],
+ i = B(d.move, w, Y, {
+ target: t.target,
+ handle: r,
+ listeners: n,
+ startCalcPoint: t.calcPoint,
+ baseSize: R(),
+ pageOffset: t.pageOffset,
+ handleNumbers: e.handleNumbers,
+ buttonsProperty: t.buttons,
+ locations: g.slice(),
+ }),
+ o = B(d.end, w, _, {
+ target: t.target,
+ handle: r,
+ listeners: n,
+ doNotReject: !0,
+ handleNumbers: e.handleNumbers,
+ }),
+ a = B("mouseout", w, X, {
+ target: t.target,
+ handle: r,
+ listeners: n,
+ doNotReject: !0,
+ handleNumbers: e.handleNumbers,
+ });
+ n.push.apply(n, i.concat(o, a)),
+ t.cursor &&
+ ((C.style.cursor = getComputedStyle(t.target).cursor),
+ 1 < u.length && mt(y, f.cssClasses.drag),
+ C.addEventListener("selectstart", pt, !1)),
+ e.handleNumbers.forEach(function (t) {
+ J("start", t);
+ });
+ }
+ function n(t) {
+ t.stopPropagation();
+ var n,
+ i,
+ o,
+ e = q(t.calcPoint),
+ r =
+ ((n = e),
+ (o = !(i = 100)),
+ u.forEach(function (t, e) {
+ if (!z(e)) {
+ var r = Math.abs(g[e] - n);
+ (r < i || (100 === r && 100 === i)) && ((o = e), (i = r));
+ }
+ }),
+ o);
+ if (!1 === r) return !1;
+ f.events.snap || ft(y, f.cssClasses.tap, f.animationDuration),
+ rt(r, e, !0, !0),
+ et(),
+ J("slide", r, !0),
+ J("update", r, !0),
+ J("change", r, !0),
+ J("set", r, !0),
+ f.events.snap && I(t, { handleNumbers: [r] });
+ }
+ function W(t) {
+ var e = q(t.calcPoint),
+ r = E.getStep(e),
+ n = E.fromStepping(r);
+ Object.keys(S).forEach(function (t) {
+ "hover" === t.split(".")[0] &&
+ S[t].forEach(function (t) {
+ t.call(s, n);
+ });
+ });
+ }
+ function $(t, e) {
+ (S[t] = S[t] || []),
+ S[t].push(e),
+ "update" === t.split(".")[0] &&
+ u.forEach(function (t, e) {
+ J("update", e);
+ });
+ }
+ function G(t) {
+ var n = t && t.split(".")[0],
+ i = n && t.substring(n.length);
+ Object.keys(S).forEach(function (t) {
+ var e = t.split(".")[0],
+ r = t.substring(e.length);
+ (n && n !== e) || (i && i !== r) || delete S[t];
+ });
+ }
+ function J(r, n, i) {
+ Object.keys(S).forEach(function (t) {
+ var e = t.split(".")[0];
+ r === e &&
+ S[t].forEach(function (t) {
+ t.call(s, m.map(f.format.to), n, m.slice(), i || !1, g.slice());
+ });
+ });
+ }
+ function K(t, e, r, n, i, o) {
+ return (
+ 1 < u.length &&
+ !f.events.unconstrained &&
+ (n && 0 < e && (r = Math.max(r, t[e - 1] + f.margin)),
+ i && e < u.length - 1 && (r = Math.min(r, t[e + 1] - f.margin))),
+ 1 < u.length &&
+ f.limit &&
+ (n && 0 < e && (r = Math.min(r, t[e - 1] + f.limit)),
+ i && e < u.length - 1 && (r = Math.max(r, t[e + 1] - f.limit))),
+ f.padding &&
+ (0 === e && (r = Math.max(r, f.padding[0])),
+ e === u.length - 1 && (r = Math.min(r, 100 - f.padding[1]))),
+ !((r = dt((r = E.getStep(r)))) === t[e] && !o) && r
+ );
+ }
+ function Q(t, e) {
+ var r = f.ort;
+ return (r ? e : t) + ", " + (r ? t : e);
+ }
+ function Z(t, n, r, e) {
+ var i = r.slice(),
+ o = [!t, t],
+ a = [t, !t];
+ (e = e.slice()),
+ t && e.reverse(),
+ 1 < e.length
+ ? e.forEach(function (t, e) {
+ var r = K(i, t, i[t] + n, o[e], a[e], !1);
+ !1 === r ? (n = 0) : ((n = r - i[t]), (i[t] = r));
+ })
+ : (o = a = [!0]);
+ var s = !1;
+ e.forEach(function (t, e) {
+ s = rt(t, r[t] + n, o[e], a[e]) || s;
+ }),
+ s &&
+ e.forEach(function (t) {
+ J("update", t), J("slide", t);
+ });
+ }
+ function tt(t, e) {
+ return f.dir ? 100 - t - e : t;
+ }
+ function et() {
+ v.forEach(function (t) {
+ var e = 50 < g[t] ? -1 : 1,
+ r = 3 + (u.length + e * t);
+ u[t].style.zIndex = r;
+ });
+ }
+ function rt(t, e, r, n) {
+ return (
+ !1 !== (e = K(g, t, e, r, n, !1)) &&
+ ((function (t, e) {
+ (g[t] = e), (m[t] = E.fromStepping(e));
+ var r = "translate(" + Q(tt(e, 0) - A + "%", "0") + ")";
+ (u[t].style[f.transformRule] = r), nt(t), nt(t + 1);
+ })(t, e),
+ !0)
+ );
+ }
+ function nt(t) {
+ if (a[t]) {
+ var e = 0,
+ r = 100;
+ 0 !== t && (e = g[t - 1]), t !== a.length - 1 && (r = g[t]);
+ var n = r - e,
+ i = "translate(" + Q(tt(e, n) + "%", "0") + ")",
+ o = "scale(" + Q(n / 100, "1") + ")";
+ a[t].style[f.transformRule] = i + " " + o;
+ }
+ }
+ function it(t, e) {
+ return null === t || !1 === t || void 0 === t
+ ? g[e]
+ : ("number" == typeof t && (t = String(t)),
+ (t = f.format.from(t)),
+ !1 === (t = E.toStepping(t)) || isNaN(t) ? g[e] : t);
+ }
+ function ot(t, e) {
+ var r = ht(t),
+ n = void 0 === g[0];
+ (e = void 0 === e || !!e),
+ f.animate && !n && ft(y, f.cssClasses.tap, f.animationDuration),
+ v.forEach(function (t) {
+ rt(t, it(r[t], t), !0, !1);
+ }),
+ v.forEach(function (t) {
+ rt(t, g[t], !0, !0);
+ }),
+ et(),
+ v.forEach(function (t) {
+ J("update", t), null !== r[t] && e && J("set", t);
+ });
+ }
+ function at(t, e, r) {
+ if (!(0 <= (t = Number(t)) && t < v.length))
+ throw new Error(
+ "noUiSlider (" + ut + "): invalid handle number, got: " + t
+ );
+ rt(t, it(e, t), !0, !0), J("update", t), r && J("set", t);
+ }
+ function st() {
+ var t = m.map(f.format.to);
+ return 1 === t.length ? t[0] : t;
+ }
+ function lt(t) {
+ var e = g[t],
+ r = E.getNearbySteps(e),
+ n = m[t],
+ i = r.thisStep.step,
+ o = null;
+ if (f.snap)
+ return [
+ n - r.stepBefore.startValue || null,
+ r.stepAfter.startValue - n || null,
+ ];
+ !1 !== i &&
+ n + i > r.stepAfter.startValue &&
+ (i = r.stepAfter.startValue - n),
+ (o =
+ n > r.thisStep.startValue
+ ? r.thisStep.step
+ : !1 !== r.stepBefore.step && n - r.stepBefore.highestStep),
+ 100 === e ? (i = null) : 0 === e && (o = null);
+ var a = E.countStepDecimals();
+ return (
+ null !== i && !1 !== i && (i = Number(i.toFixed(a))),
+ null !== o && !1 !== o && (o = Number(o.toFixed(a))),
+ [o, i]
+ );
+ }
+ return (
+ mt((e = y), f.cssClasses.target),
+ 0 === f.dir ? mt(e, f.cssClasses.ltr) : mt(e, f.cssClasses.rtl),
+ 0 === f.ort
+ ? mt(e, f.cssClasses.horizontal)
+ : mt(e, f.cssClasses.vertical),
+ (l = V(e, f.cssClasses.base)),
+ (function (t, e) {
+ var r = V(e, f.cssClasses.connects);
+ (u = []), (a = []).push(O(r, t[0]));
+ for (var n = 0; n < f.handles; n++)
+ u.push(M(e, n)), (v[n] = n), a.push(O(r, t[n + 1]));
+ })(f.connect, l),
+ (p = f.events).fixed ||
+ u.forEach(function (t, e) {
+ B(d.start, t.children[0], I, { handleNumbers: [e] });
+ }),
+ p.tap && B(d.start, l, n, {}),
+ p.hover && B(d.move, l, W, { hover: !0 }),
+ p.drag &&
+ a.forEach(function (t, e) {
+ if (!1 !== t && 0 !== e && e !== a.length - 1) {
+ var r = u[e - 1],
+ n = u[e],
+ i = [t];
+ mt(t, f.cssClasses.draggable),
+ p.fixed && (i.push(r.children[0]), i.push(n.children[0])),
+ i.forEach(function (t) {
+ B(d.start, t, I, {
+ handles: [r, n],
+ handleNumbers: [e - 1, e],
+ });
+ });
+ }
+ }),
+ ot(f.start),
+ f.pips && T(f.pips),
+ f.tooltips && H(),
+ $("update", function (t, e, a, r, s) {
+ v.forEach(function (t) {
+ var e = u[t],
+ r = K(g, t, 0, !0, !0, !0),
+ n = K(g, t, 100, !0, !0, !0),
+ i = s[t],
+ o = f.ariaFormat.to(a[t]);
+ (r = E.fromStepping(r).toFixed(1)),
+ (n = E.fromStepping(n).toFixed(1)),
+ (i = E.fromStepping(i).toFixed(1)),
+ e.children[0].setAttribute("aria-valuemin", r),
+ e.children[0].setAttribute("aria-valuemax", n),
+ e.children[0].setAttribute("aria-valuenow", i),
+ e.children[0].setAttribute("aria-valuetext", o);
+ });
+ }),
+ (s = {
+ destroy: function () {
+ for (var t in f.cssClasses)
+ f.cssClasses.hasOwnProperty(t) && gt(y, f.cssClasses[t]);
+ for (; y.firstChild; ) y.removeChild(y.firstChild);
+ delete y.noUiSlider;
+ },
+ steps: function () {
+ return v.map(lt);
+ },
+ on: $,
+ off: G,
+ get: st,
+ set: ot,
+ setHandle: at,
+ reset: function (t) {
+ ot(f.start, t);
+ },
+ __moveHandles: function (t, e, r) {
+ Z(t, e, g, r);
+ },
+ options: o,
+ updateOptions: function (e, t) {
+ var r = st(),
+ n = [
+ "margin",
+ "limit",
+ "padding",
+ "range",
+ "animate",
+ "snap",
+ "step",
+ "format",
+ "pips",
+ "tooltips",
+ ];
+ n.forEach(function (t) {
+ void 0 !== e[t] && (o[t] = e[t]);
+ });
+ var i = bt(o);
+ n.forEach(function (t) {
+ void 0 !== e[t] && (f[t] = i[t]);
+ }),
+ (E = i.spectrum),
+ (f.margin = i.margin),
+ (f.limit = i.limit),
+ (f.padding = i.padding),
+ f.pips ? T(f.pips) : D(),
+ f.tooltips ? H() : j(),
+ (g = []),
+ ot(e.start || r, t);
+ },
+ target: y,
+ removePips: D,
+ removeTooltips: j,
+ pips: T,
+ })
+ );
+ }
+ return {
+ __spectrum: l,
+ version: ut,
+ create: function (t, e) {
+ if (!t || !t.nodeName)
+ throw new Error(
+ "noUiSlider (" + ut + "): create requires a single element, got: " + t
+ );
+ if (t.noUiSlider)
+ throw new Error(
+ "noUiSlider (" + ut + "): Slider was already initialized."
+ );
+ var r = z(t, bt(e), e);
+ return (t.noUiSlider = r);
+ },
+ };
+});
diff --git a/public/user/js/owl.carousel.min.js b/public/user/js/owl.carousel.min.js
index fbbffc53..64e2806b 100644
--- a/public/user/js/owl.carousel.min.js
+++ b/public/user/js/owl.carousel.min.js
@@ -3,5 +3,2052 @@
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
-!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&bi-g-f&&b",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a":return d?ac;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='',d=k.lazyLoad?a("",{class:"owl-video-tn "+j,srcType:c}):a("",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a(''),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
-animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push(''+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['‹','›'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('