]> _ Git - fluidbook-html5.git/commitdiff
wip #7939 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 13 Jan 2026 12:55:06 +0000 (13:55 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 13 Jan 2026 12:55:06 +0000 (13:55 +0100)
js/libs/fluidbook/cart/fluidbook.cart.kimplay.js
js/libs/fluidbook/fluidbook.links.js
js/libs/fluidbook/fluidbook.menu.js
js/libs/fluidbook/fluidbook.sound.js
js/libs/fluidbook/fluidbook.video.js
js/main.js

index f73ce39bf9877034c2b14869d5529f2a8f2242cf..82d2c9b913bc7720b1a66059ac8f7625ce9f3051 100644 (file)
@@ -17,6 +17,22 @@ FluidbookCartKimplay.prototype = {
     },
 
     addToCart: function (ref, quantity) {
+        let view = `<div id="kimplay-additem">
+                        <div class="content">
+                            <h3>${this.data[ref].name}</h3>
+                            <div>(réf. ${ref})</div>
+                            <br>
+                            Quantité souhaitée :<br>
+                            <input type="text" name="qty" value="${quantity}"><br>
+                            Commentaire (facultatif)
+                            <textarea name="commentaire"></textarea><br>
+                            <button>Ajouter à ma sélection</button>
+                        </div>
+                    </div>`;
+        this.fluidbook.menu.viewWrap(view, 'cart');
+    },
+
+    _addToCart: function (ref, quantity) {
         if (this.items.indexOf(ref) === -1) {
             this.items.push(ref);
             this.save();
@@ -50,17 +66,15 @@ FluidbookCartKimplay.prototype = {
 
     getItemsReferences: function () {
         return this.getItems();
-    },
-    getItemsNumbers: function () {
+    }, getItemsNumbers: function () {
         return this.getItems().length;
-    },
-    getAllQuantities: function () {
+    }, getAllQuantities: function () {
         return this.getItemsNumbers();
     },
 
     updateCart: function () {
-        if ($('#flexipancart').length > 0) {
-            $('#flexipancart .content').html(this.getCartContent());
+        if ($('#kimplaycart').length > 0) {
+            $('#kimplaycart .content').html(this.getCartContent());
         }
     },
 
@@ -85,7 +99,7 @@ FluidbookCartKimplay.prototype = {
         }
 
         var $this = this;
-        var content = '<table id="flexipancarttable" class="cart-items" cellpadding="0" cellspacing="0">';
+        var content = '<table id="kimplaycarttable" class="cart-items" cellpadding="0" cellspacing="0">';
         content += '<thead>';
         content += '<tr class="print-header"><td colspan="5"><img width="100%" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABnYAAAG8CAIAAABsdAxjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF/mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuMTY0NzUzLCAyMDIxLzAyLzE1LTExOjUyOjEzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCOENDQTZDNTI3RjIxMUVCOTY2N0VEMENCNTg4MjcyNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRjMyQjlDRkIzMDcxMUVCQkVBQUU0RUNGMTc3MkU3NCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjQ3ZWQ1YS0wZGNiLWY4NDAtOTYwZC1lYTczMDExZjFjMzAiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIiB4bXA6Q3Jl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33//ff/+/ZOTkzMvHnfccWPGjBk3blzZsmVjWBsAAABRcO6550a9vxYEwb333hvrmQGUCieffPLy5csPdMLyjTfeOGHChBIuCQAAgCh74403iqPFduqpp8Z6ZgCxFxcX98UXX7Rs2TIUCjVu3HjNmjVr1qxZsWJFSkpK5luiL7300oUXXhjTMgEAACiC6tWrp6WlRb2/tm3bNjt5A4RCoVatWr377rvhf27evHn79u3D/9ygQYPFixeXK1cuFAode+yxXq4HoLSJj3UBAHAwufrqq4tjD6CUlJSMjIyopwU46Jxzzjnvvfdezus//PDD9u3bk5KSQqHQihUrjj766BIvDQDyUibWBQDAwaRHjx7FkXbmzJnFkTaKateu3ahRoxIbbunSpRs3bsx5vUaNGk2aNMn39o0bNy5durQY6vq/GjZseMQRRxRf/pxyPpDGjRsffvjhEd7+7bff/v7774UYt1WrVhH2lDds2LBs2bJcP2rZsmW4LZK3OXPmpKen5x2TlJQUfn+wKNLT03fu3BkKhXbu3Llp06YtW7YUMWEkjjnmmCOPPLJAt6xdu/aHH36IYg2VKlVq0aJFhMG7du1asGBBUYaL8IeVkpKS7UrdunU///zzzD82b948FAolJCScccYZX3755bZt28LXC/eVBgAAIPY6dOgQ9VdEw5o2bRrryeWje/fuxTT3XHXq1CnXMjp16hTJ7VOmTCnWpzFq1KjifgLZ5HwgZ599duS3T5o0qRDTbN++feRDnHvuuQfKs2bNmkgyVK1aNd+S6tevH3lJEUpPT1+9evUnn3wycuTIrl27FlPz9MsvvyxoYXPmzIluDc2bNy9QAZkbnxVOhD+snDeOGjUq8wvfvHnzOXPmtG/fvn379qNHj84atmjRoqKUBwBR50VRAIhIfHz8iBEjiiNzcS+54pD06aefjh07NsLgv/71r+GlQJGLi4t77LHHIgyeOHHitGnTCpS/9EhISGjQoMHZZ599++23v/baaz/99NPixYsHDhxYp06daA1x2mmnnXLKKQW9q3Xr1rFtvo8dO7ZWrVolP+5333130kknZf5x48aNKSkpKSkpv/zyS+PGjcMXy5cvX6NGjZKvDQDyoMUGABEZNmxYMR36OWPGjFyXckDe7rzzzgjflYuLixsyZEiBkl9++eURfuE3bdrUv3//AiUv5Zo2bTp8+PA1a9Y8//zztWvXLnrCPn36lPCNUXH44YePHTs2Li6uhMd99913u3TpUqZM9g1txo8ff99994X/+Yorrpg1a1YJFwYAedNiA4B8lC9f/sknnxw4cGAx5S/9G7FROm3evLlfv34RBl9yySWR72KWmJg4fPjwCIPvuOOODRs2RBh8EElMTLzpppuWLVt2+eWXFyXPYYcd1qVLl8Ld261bt8qVKxdl9CI699xzb7vtthIedN26dZ9++umAAQNCodD69eszX3NetWrV3Llzy5QpU6tWraFDh/79738v4cIAIG+OOwDgD+3yyy+vVKnSgT6Nj49v3LjxlVdeWbdu3eKr4fDDD+/evXuEwZs3b3733XeLrxgOLm+88Ua3bt0uvPDCSIKHDRt2zjnnRBLZq1evhg0bRhI5ffr0cePGRRJ5kKpWrdq//vWve+655/HHHy9chuuuu658+fKFu7dy5cpXX331Cy+8ULjbo2LEiBEzZ8785ptvSnLQAQMGfPLJJ+np6Y8//njWnQSfffbZhg0bTpky5emnn/76669LsiQAAADyEuFG7KVHrHb4dtxBVqXhuINMRx555Pbt2yPM0759+3xnV6lSpd9++y2SbLt27WrQoEG+CUv5cQcRuummm/ItL6e4uLjly5cXZdwo/soX9LiDTN9++22FChUKOlyhjzsIq1ChwpgxY7766qt+/fq1bNmySZMmF1988fPPP//rr79ef/31RXsSAFAsvCgKAHAQ++mnnzI3qMpXJK9/3nXXXYcffngk2e6///4ffvghwqEPdk899VQhDh9o37798ccfX5RxTzrppDPOOKMoGYruhBNOGDlyZAkPunv37h49elx11VXJycm33377iBEjOnXq9MUXX5xwwgmvvPJKCRcDAABAPqxii5BVbFmVqlVsoVAoPj7+s88+izDV+eefn0eqWrVq7dy5M5I8CxYsSEhIiORxHRqr2IIgmDFjRiTzzerNN98s+rivvvpqQcfNVaFXsYXl/SXMqYir2ADgoGMvNgCAg9v+/ft79uz51VdflS1bNt/ghx9++MMPPzxQa2Pw4MEVK1bMN0l6enqPHj0yMjIKXGuJ2LVr18KFCyOJrFatWuRr0zp06HD66ad//vnnEcbXrl27c+fOEQbnoUuXLrfffvvmzZuLnqooXnrppQULFqxbty62ZQBAqaXFBsAf2ssvv1ytWrW8Y1q0aNG6deviGH3WrFkFXZXmv2/J1bJlyx599NHBgwfnG9m8efPLLrvs3//+d86PGjZs2KtXr0iG+/vf/17C+98XyMqVKyPZdS6sQ4cO48ePj/BIk+uvvz7yFluPHj3KlInCv2yXK1fu+uuvf+KJJ4qeqiiqVas2fvz4c845Z//+/bGtBABKJy02AP7QHnrooXxjcm1GRMWQIUNSUlKKKXlM3H333Rs3bix6nq+++qroSWLupZdemjNnTlRSRfJAhg8ffsUVV5xwwgn5Rj700ENvvfVWzkbJI488EklLaMWKFQ8++GC+YQeLmTNnduzYceHChZHs6H/eeedFmDYhIaFnz575hvXv33/btm0tWrS45ZZb8gjr3bv3yJEjY/5aZYcOHe65555HH300tmUAAABw8ClTpszWrVuLsoHRgaSmpiYlJcV6fpGKcC+2+vXrF2sZB9debN27dy/WMnJq3br1/v37C1fbqaeeGsmNQWTHkmZV8nuxFWLLwsceeyzC6Ue43u2iiy7KN9XXX38dDj7ssMPS0tLyDj7nnHMKOqlsirgXW9i+fftOPfXUSIazFxsAfzROFAWAvLRp0yY5Obk4Ms+ZMyc1NbU4MvOHNXfu3Oeeey6SyEGDBmXbuO2xxx6L5MYxY8YcYksvwyZNmhRhZCTrBEOhUJ8+ffKNmTBhQvgftmzZMnXq1KInLAFlypR5/fXXK1WqFOtCAKDU0WIDgLxE/l5YQR2SfQpibuDAgZFs2HfMMcfccMMNmX+84IILIlmbtn79+rvvvrso5ZVaS5YsiXCLsdq1a+cb06BBg3PPPTfvmCAIXn/99cw/Tpw4Me/4Sy65pE6dOpFUWNyOOeaYf/7zn7GuAgBKHS02AMiLFhsHl+3bt998882RRN5///3ly5cPhULx8fGPPPJIJLfceuutW7duLUp5pda+fft27NgRSWT16tXzjenVq1dcXFzeMSkpKVmboe+///727dvziI9wc7eScd1111155ZWxrgIAShctNgA4oHr16jVt2rQ4Mu/Zs+eLL74ojszw7rvv/utf/8o3rE6dOjfddFMoFLrmmmsi+Z5PmTJl8uTJUaivtIqPj+hfjPPtxJUtW/bGG2/MN0+2ZWt79ux566238r4lWkeU5iE1NTXr2ro8PP/888W99yIAHFy02ADggIpvCdtnn322d+/eYkoO/fr1i2S52aBBg2rWrDl06NB8I7dv337rrbdGobLSqlKlSpUrV44kMt/f3Msuu6xmzZr5JsnZBs33XdEjjjjiwgsvzLfCokhKSurTp8/atWvzjUxOTp4wYUJCQkKx1gMABxEtNgA4oP/5n/8ppsyffPJJMWWGUCi0fv36O++8M9+w6tWrz5w588gjj8w3csCAAZFs8Xbwat68eYSR69evzzsgvDYwbx988MG2bduyXZwxY8avv/6a940lcOhBRkZG165dI9mZrlWrVvfff39x1wMABwstNgDIXUJCQocOHYopuRbbH8Err7wSREPhXsd75ZVXZs6cmW/YiSeemG/M7NmzX3jhhULUcBCJfGexNWvW5PFp48aN27Vrl2+SXBesZWRkvPHGG3nf2LFjx2OOOSbf/EVRpkyZuXPnDhs2LJLg+++/v3Xr1sVaDwAcLIp3NwcAOHidcsopVatWLY7MW7Zs+eqrr4ojc8xNmjQpNTW1KBnmzJkzaNCgaNXzRxYEQa9evZYsWZKUlFSUPHv37u3Vq1cQBNEqrBRq0qRJjx49IoncvXt33i223r1755tk+/bt7733Xq4fTZgwoX///nncGxcXd9NNN91zzz35jlJoVatW3bp169ChQzt27HjGGWfkHRwfHz9hwoSTTjop56I8APij0WIDgNx17NixmDLPnDkzkpewDkann356ETMcqgdWxsTKlSuHDBny6KOPFiXJsGHDli9fHq2SSqGmTZt++OGH5cqViyR4/vz56enpB/q0YsWK1157bb5JJk+enJaWlutHCxcu/P7774877rg8br/hhhvuv//+A2UousTExFAolJ6e3q1bt0WLFuW7Rd1RRx31wgsvOGAUALTYACB355xzTjFl9pYoJeaJJ5648sorI99oLJtly5YVsUMXE8nJyZ06dYoksn379n369ClbtmyEmT/66KM8Pr3yyiuTk5PzTTJhwoS8P33wwQfzCKhevfrll1+ed5KiqFixYvgfVq9effPNN48fPz7fW7p06fLhhx+++uqrxVQSAAAAB6sKFSqkpqZGZSOtnI499thYz6/AunfvXkxPI5spU6bkUUanTp2KnqToRo0aVdzPIavC7cWWqUWLFunp6YUYd//+/UVflhgKhdasWRPJcJG8l12/fv1CTCRaMjIy6tSpk0d5X375Zb5Jfvnll/j4vHZDbtiwYb5JZs+eXdCfQigUat68eSTTzPZy6MSJEyO5a+fOnQ0bNizED6sQEwGA0slxBwCQizZt2kT44lhB/fjjjytWrCiOzJCrhQsXvvTSS4W48ZVXXvn888+jXs/Ba/z48b/88suBPj311FNPOeWUfJO8/vrreb8nvnLlynwfe5s2bZo2bZrvWIWT7a++Pn36rF27Nt+7KlasOHHixPBLpgDwx6TFBgC58JYoh4xKlSr95S9/KcSNZ511VqVKlaJez0Fq27Zt999/fx4Bffr0iSRPJC945nreaDaRnKtQOFWqVMn6x23btnXt2jWS7SNPPfXUoUOHFlNVAFD6abEBQC7OOuusYsr84YcfFlNmyNXDDz9cuFdN69evP2zYsGiXc1Dav3//dddd99NPPx0ooGrVqpHs9//dd99FcprwpEmT8m1pXXPNNcXUAM35HuvcuXMj/Cbcc889HTp0KIaiAOAgoMUGANklJyeffPLJxZE5IyPDKjZKUtu2bfv27Vvo2/v27duyZcso1nMw2rt3b7du3d555508Yrp3716+fPl8U7322muRjPj7779//PHHecdUrlz56quvjiRbVAwdOnTevHn5hsXFxb322mvVq1cvgZIAoLRxoigAZNe2bdu89yMvtLlz527durU4MkNOFSpUePnll+Pi4gqdIT4+fsyYMX/+85/T0tKiWNhB5NNPP+3bt+9///vfPGLi4uJuuummSLK1bt167NixkUTWrFkz35ibb7559OjRkWQruvT09G7dui1atKhy5cp5R9apU2fMmDGdO3cumcIAoPTQYgOA7Nq3b19MmadOnVpMmSmF5s6du3LlyqLn2blzZ+FuHD58eLZDHgvhxBNPHDhw4JAhQ4qY5+CSmpr6zjvvPPXUU5999lm+we3atWvUqFEkac8999wil/a/TjrppJYtW86fPz+KOfOwevXqm2++efz48flGdurUqXfv3tOmTSuBqgCg9NBiA4Dszj777GLKfMhvxLZu3br09PSiZPj999+jVUzMjRkzJsIlS8WhTZs2/fr1yzfsiSeeuPPOO/OOGThw4L///e+lS5dGqbRSKgiC5cuXz5s376OPPvroo4+2bdsW4Y0333xzsRaWh969e5dYiy0UCr322mvnn3/+VVddlW/kyJEjIzmHFAAOJVpsAPD/qVat2kknnVQcmdetW7d48eLiyFx6tGnTZs2aNbGuglBSUtKYMWPyfUV0xowZd911V+PGjc8777w8wsqWLTtmzJhWrVpFcqxkabBly5Z33303j4C9e/fu3r07LS1t9+7dv//++2+//bZq1aoVK1bs3r27oGPVrl27U6dOha+1aK688so77rhj8+bNJTZinz59WrVqddRRR+UdVr58+TFjxpRMSQBQSmixAcD/58wzzyzK3lV5+OCDD4ojLeQ0dOjQ448/Pu+YIAjuvvvuUCg0YMCAc889N++v/emnn96vX79Ro0ZFscji8+OPP3bv3r1kxrrxxhsTExNLZqycypUr171795EjR5bYiNu2bevatet//vOffDesrFOnTsmUBAClhBNFAeD/U3wbsb3//vvFlBmyatmy5R133JFv2IQJE7766qtQKLRkyZJXXnkl3/hhw4Y1aNAgCvUdQuLj43v16hXbGnr37l1M/1fgQObOnTts2LCSHBEADgpabADw/ymmFtuuXbs++eST4sgMWSUlJY0dOzbfFUapqamDBg3K/OPgwYP37NmT9y0VK1Z84YUXolDiIeSCCy6oV69ebGs49thjzzrrrBIedOjQofPmzSvhQQGglNNiA4D/VbNmzWLaiO3999/Pt4UBRTdkyJB8XxENhUJPP/101t3o161bF8nLhh07diyxFzAPCr179451CaFQLM5bSE9P79at244dO0p4XAAozbTYAOB/tWvXrpgyv/XWW8WUGTK1aNHirrvuyjds8+bNw4cPz3ZxxIgRGzZsyPfeJ554onbt2oWs79BSv379vI+JKDEXX3xxyW98tnr16hgepQoApZAWGwD8r2J6SzQ1NXXq1KnFkRkylStXbuzYsQkJCflGDhs2bOvWrdku7tix48EHH8z33mrVqj311FOFq/AQ06tXrxLeBO1AypQp06NHj5If97XXXnv99ddLflwAKJ2cKAoA/6uYWmwfffTRzp07iyMzuWrUqNGQIUOKnmfatGnz588v9O2dOnWqX79+0csIhUJr1qwZO3Zs3jGDBw8+8cQT8031ww8/PPPMM7l+9MILL9x2223HHnts3hmuuOKKTp06TZkyJd+xDmFly5aNpKuVkZFR9N/9SpUq5ds57dmz58MPP5yRkVHEsQqqT58+rVq1Ouqoo0p4XAAAAEqvww8/PCge11xzTawnV1Tdu3ePZKbR6igdSKdOnYrpZ5Sr/v3751rGqFGjSrKMIAhSUlLyfjItWrRIT0+PJFWXLl3yyHPppZdGkmTdunVVq1aN8Ke2Zs2aSHJGkrB+/fqRpFq0aFGEtRXalVdeGUkljz32WNHHeuaZZyIZq1OnTnnnad68eVTyZNO6deuMjIxIMueq0I8FAEobL4oCwP9VTKfy7d2799133y2OzBCWmJg4ZsyYSF4RXbBgwZtvvplHwFtvvTV37tx889SpUycqzaODV4QHHUyYMKHoY7322muRhMXq7IW5c+cOGzYsJkMDQKmixQYA/9fZZ59dHGmnTZu2bdu24sgMYffdd1+EJ+Heeeed+a4buvvuuyNJ1bNnzw4dOkQSeehp3LhxJEejLFu27Jtvvin6cPPnz1+9enW+YX/5y1+OPvroog9XCEOHDp03b15MhgaA0kOLDQD+r2JqsUVlGQscSPPmze+7775IIt99993Zs2fnGzZv3rzJkydHknD06NEVKlSIJPIQc9NNN0USFuHqs3wFQRBJqri4uFgtZEtPT+/WrduOHTtiMjoAlBJabAAQCoVCDRo0aNCgQdTTbt++3VuiFJ/ExMSxY8eWKZP/AVYZGRkDBgyIMO299967b9++fMMaNmwYlWMlDi4VKlS47rrr8g0LgmDixInRGjTCTv31119frly5aA1aIKtXr7755ptjMjQAlBJabAAQChXbErZ///vfqampxZEZQqHQwIEDI3xF9MUXX1y+fHmEaVeuXPnCCy9EEnnHHXe0aNEiwrSHhquuuio5OTnfsNmzZ//444/RGvT7779fsGBBvmE1atS47LLLojVoQb322muvv/56rEYHgJjTYgOAUKjYWmwvv/xycaSFUCjUpEmTCF8R3bVrV0GXmz344IPbt2/PNywhIWHMmDGRLKM7ZPTp0yeSsGi9JZopwoVsEZZXTPr06bN27doYFgAAMaTFBgChuLi44mixLV++PJLDGaEQypQpM3bs2LJly0YS/Nhjj/32228Fyr9x48ZHH300ksiTTjrpnnvuKVDyg1eLFi3+/Oc/5xu2d+/ef/3rX9EdetKkSfv37883rE2bNk2aNInu0JHbtm1b165dI6kTAA49WmwAEGratGnNmjWjnvall16Kek4IGzBgQCS9nlAotH79+ieeeKIQQ4waNernn3+OJHLw4MGNGjUqxBAHnQjXiH3wwQdbt26N7tC//fbb9OnTI4mM1aEHYXPnzh02bFgMCwCAWNFiA4DQeeedF/Wce/fuHTduXNTTQigUatKkyeDBgyMMvv/++3ft2lWIUfbs2TNo0KBIIsuVK/fiiy/GxcUVYpSDSNWqVa+66qpIIqP+lmiB0l577bUVK1YsjgIiNHTo0Hnz5sWwAACIiUP834QAIBIpKSnt2rWLbs7x48dfe+210c0ZQ2XLlq1QoUK+Ydu3by/Wd8QSExNLsnewZ8+etLS0nNfLly9fwuc2pqen79y5M/OPSUlJSUlJEd5blB9KXFxcJFv75z1QlSpV4uPz/9+627ZtC4Ig75j4+PgqVarkmyojI2PHjh35hhVUmTJlKlWqFElkMf0iJCQkVK5cOZLIHTt2ZGRkFO72Xbt2RXKebN4i/BsjFApFfbkfAAAAsVGlSpV9+/YF0dayZctYzwwAAAAASsSll14a9f7aggULYj0tAACg5NiLDYA/uvPPPz/qOZ988smo5wQAAACAUurnn3+O7hK2NWvWlClTJtbTAgAAAIAScdJJJ0W3vxYEwW233RbraQEAAABASXnggQei21/buHFjhGcOAgAAAMChYMmSJdFtsd17772xnhMAAAAAlJSGDRtGt79mCRsAAPwxOVEUgD+uyy+/PLoJH3/88Z07d0Y3JwAAAACUXp9//nkUl7D9/PPP5cuXj/WcAAAAAKCk1KtXL4r9tSAIrr/++ljPCQAAAABK0F133RXF/trixYvj422/AAAAAMAfyddffx3FFttZZ50V6wkBAAAAQAk68cQTo9hfmzBhQqwnBAAAAAAl6/HHH49Wf2379u1/+tOfYj0hAAAAAChBiYmJv//+e7RabLfcckusJwQAAAAAJeuyyy6LVn9t5syZcXFxsZ4QAAAAAJSsjz/+OCr9tZ07dzZo0CDWswEAAACAktW4ceOo9NeCILjppptiPRsAAAAAKHHPP/98VPpr//73v2M9FQAAAAAocTVq1Ni1a1fR+2urVq1KTk6O9WwAAAAAoMQNGzas6P21PXv2tGjRItZTAQAAAIASV7Vq1a1btxa9xXbVVVfFeioAAAAAEAsPPPBA0ftrw4cPj/U8AAAAACAWatasuWPHjiL219588824uLhYTwUAAAAAYuEf//hHEftrH330UdmyZWM9DwAAAACIhcaNG+/bt68o/bV58+ZVqFAh1vMAAAAAgBiZMWNGUfprn3/+eXJycqwnAVAsqlSpEusSAAAAKPWuueaaovTXZsyYUalSpVhPAqBYdO3adevWrZdddlmsCwEAAKAUq1u37pYtWwrdX5s6dar3Q4FD1b333rt///5PP/00IyOjX79+sS4HAACAUikuLm7atGmF7q8988wzCQkJsZ4EQLEYNGhQamrq1VdfHQqFevTosXfv3rvvvjvWRQEAAFD63HvvvYVrrmVkZNx6662xLv/g0KBBg5UrV6akpGhHwsHliCOOaNmyZeYfzzzzzCOOOCKG9QDAwa5MrAsAgGJxzjnnPPzww4W4cf369d26dfv000+jXtJBrUOHDomJidOnT892vXHjxsccc8wxxxxTp06dn376KRQKnX766X/6059yZliyZMmqVauaNm16zDHHrFq1asmSJdkCjjvuuMaNG//0009ffvll5sWEhIQLL7zwf/7nf+rWrZuamrpw4cKJEyeuW7cu/Olf/vKXXN/knTNnzsaNG0OhUHi4rB/t2LHj22+//fXXXzOvHChJ2I8//vjVV1+FQqFTTjmlXr16H3zwwb59+7IGxMfHX3jhheedd17dunV37ty5YMGCCRMm/P777wdKmE1ycnKHDh3CDyfXgDZt2tSoUSPrlS1btixevHjLli25xh955JFXX3118+bNk5KSfv755/fee+/jjz8OgiBrTLbHEgTB+vXrly5dumvXrvCVGjVqtGnTJo+yw0+4Xr16p5xySs5PN27cOGfOnJzXw2m3bds2c+bMbB8dc8wxTZs2zfzB5e2CCy5ITEycOXPmtm3b8g3OKvy0ly9fvnz58mwfHXvssVddddWJJ55YtmzZH3744e233549e3au9a9YsWLZsmW55k9MTLzgggs+//zzrF+wPIR/WaZMmXKggA4dOuR61krOIcK17dy585NPPskZf/jhh7dq1Srbk//555/r168/cuTIBg0a7N27N9vvRaiAvxqZ1/fv3//rr78uXbp0z549WeNzfpPDvvrqqx9//PFAowAAABBLjRo12rhxYyHWr02fPv3www+Pdfml0aJFi9asWZPzerly5UaOHJmWlpb5n+JTpkzJ9dn2798/FAo1atRo9+7dGzZsqFWrVtY8VapUWbt2bXp6eosWLTIvNmrUaPHixTnXGGYGrFmzJtex2rdvHw4YNWpUrgFTp06tU6dO3knCxo4dGw4bO3ZsEARVq1bNWvYRRxyxcOHCcOT+/fvD/7B9+/bwy3eZkpOTt27d+s033+Q8OqN58+aZDydXKSkpOatKT09/+eWXK1eunC341ltv3bNnT9ZigiCYMWNGzZo1s4bl+lh27do1YsSI8GrE9u3b5/FMMp9w9+7dc/00JSUl17mE0y5atCjnR/379w+y/OBCodD777+/adOm0047LWfw1q1bgyBo3rx5rqOEn/ayZctyHpQZftpDhgzJdn3w4MH79u3L9nN8++23K1asmLP+9evXV69ePdehhwwZEgRBp06dcv00p/AvSx4BixYtyvUJ5xyiYsWK27Zty8jIqFu3bs48w4cPD4LgiSeeyLxSoUKFt956K9uU09PTBw8eHBcXF44p0K9GNtu3b8+aKnSAb3IQBN27d4/wcQFAKWcVGwCHmiOOOOKjjz460H8DH0hqaurgwYOfeOKJ/fv3F1Nhh6S0tLTvvvtu4sSJu3fvznr9+uuvzxb5xRdfhEKh5cuXDxw4cNSoUS+++OLFF1+c+ek//vGPevXqDR06dOHCheErDRo0mD17dkJCQv/+/SdPnvzzzz9XrFjxzDPP7NKlS9a0P/300+DBg7ONlW2N0jvvvJO5UCg5Obl9+/adOnX66KOPTj755PT09Lvuuiuz89WpU6dLLrnkgQceyFxWs3LlygPNvXLlyikpKQ0aNHjsscdGjx69atWqSpUqXXjhhSNGjJgwYcLu3bszB42Li0tOTm7WrNmoUaN69OhxoIR5ePrpp8MrhkKhUI0aNTp37nz99dcnJydnPQiyR48eTz/99EsvvfTkk09+++235cqVO+uss0aMGNGhQ4dp06a1atUqLS0ta8677747vGSsevXqF110Ubt27e65557ExMQ77rhj+fLlmT/BRo0aDRgwINtzzvqEs9YWtn79+kLMMZtKlSpVq1Zt4sSJzZs337lzZ+Q3hp92cnLys88+261bt3zjBw0a9OCDDy5cuPBvf/vbrFmz0tPTmzRpcu+991511VXvvPNOx44ds3XBatWq9dRTT3Xt2jVbnubNm993332R1xmhTZs23XXXXdkuZnvgoVBo165d48aNu/XWW7t16zZixIisH8XHx1977bWhUGj06NHhK3FxcVOmTOnYseOkSZMeffTRJUuWlClT5swzz3zkkUcefPDBUCj00EMPhUKhAv1q3HLLLeG/BA4//PDOnTu3bNkya6qwPXv23Hzzzdkqz3XBIwAAADF2xBFHLFmyJI+VF7lKSUk59thjY117qXagVWwdO3b85ptvsr7/le/CnLi4uJkzZwZBcMMNN4SvXHLJJUEQfP3114mJiZlhM2bM2L17d7NmzfJItWbNmlyXRGUKL9fKuWrp6aefDoIga48vLLwKKdflUTlXsT3++ONBENx0003ZIo844oj169evX78+KSkpfKVq1apBEKSmpgZBcPnll2cNjnAVW7ZVS/Hx8Z9++mkQBMcdd1z4SrVq1Xbs2PHII49kuz05Ofnbb78NgiDrTvbhx1K/fv3MK3FxcW+//XYQBHv27Mn2bmAeS8/Cq9giX7RVoFVs4Ymnpqa+8sor2YLzXsUWftq7d+8OgiDbcsKcq9gaNGiQnp7+5Zdf5nwj8rnnnguC4JprrslWf3p6ehAEF1xwQdbgxMTERYsW7dq1q0APJJJVbLn+3uWqadOmQRB8++232a6Hu4RZlxZ27do1CILnnnsuW2SFChUWLFiQnp5+9NFHZ/uoQL8aCQkJ4e/n5s2bM3dpTElJ2bp1a4RzAYCDUXysCwCAqKlfv35KSkqTJk0iv2XDhg29evXq0KHDihUriq+wQ9jHH3980kknRbJ/Vqbwq2E7duwYNWpU/fr1a9as+eKLL+7du/eaa67J3ObslFNO6dChw8iRIxcvXlwcZY8bNy48SqEzlClTpmfPnt98880LL7yQ7aOff/75oYceqlWrVufOnbNenzx58hdffDF69Oiibyq/f//+cOMpcwpdu3bds2fPAw88kC1y27Zt9957bygUuuWWW/JIGATBpEmTQqFQUlJS1n21Ym7w4MFXXHHFX//614LeOHny5Dlz5jz33HNZO4k59ezZMyEh4fbbb8+2DDMUCt199907duzI+dzeeeedUCg0evTorE2l++67r2nTpn//+98LWmcULVmyZN68eSeccEK2t2uvu+66UCiUtaHWp0+fHTt25Dw/dPfu3XfeeWdCQkLOxnGBZGRkvPnmm6FQ6LDDDsv2kjIAHMK02AA4RJxxxhnz5s3Ltrd9HlJTUx955JGGDRu++OKLeS8kIerWrl17++23V65ceezYsS+++GLNmjXvv//+pUuXZgZceOGFoVAo3PQpDtu3bw+FQuXKlSt0hpNPPjk5Ofntt9/O9dPwK6JnnXVW1ov79u27+uqrExMTx48fHx9f1H8HC7eEMtf9dejQ4f3339+7d2/OyKlTp6amph511FF5984yd8fbsWNHEWuLou+//75///4vvPDCkUceWaAbMzIyunXrFgTBhAkT8jjutkOHDps2bfrPf/6T86OdO3dOnz69RYsW2XZkmz179rhx4+rUqTNq1KjwlSZNmgwcOPCdd9754YcfClRk1D3//POhUCjr7mZVqlS59NJLN2zYkPldrVChQsuWLT/++ONcX7/9z3/+s3Hjxg4dOhSxkswzTzLP0ACAQ5692AA4FPTs2fOZZ57J+pphHvbu3Tt27Nhhw4aFT8CkOGRuhZ4p26bmL7300qWXXnr++eeHQqG5c+dm3Yg9FAo1btw4FAr997//zXegevXqZRtr48aNOfeuyubMM88MhUJFaYgcddRRoVDou+++y/XTX375ZdeuXTm7QqtWrbr11lvHjh17zz33PProo4UePRQKtW7dOhQKZb5FWK9evc8//zzXyPT09NWrVzdu3Pioo4460NGNp5122sCBA0Oh0NKlSzMPbI1Qv379sr0a+dRTT+XcLKzQxowZc+6557722mtnnXVW1sMu8rV27drevXu//vrr4d3Wco2pV6/e999/f6AM33//fUJCQt26dbPF3HbbbR07drzuuuv+9a9/ffTRR2PHjt2zZ0/fvn07duwYeXkRqlGjRrZv+O7du3PuaBb25ptvjho1qkuXLrfffnt4672//vWv5cuX/+c//5nZfq1bt25CQkLes875omiBtGvXrl+/fqFQaM6cOVk7thUqVMg2l+nTp0+cOLEoYwFA6aHFBsDBrXbt2s8///wll1wSSfCuXbueffbZJ5988tdffy3uwv7gwu+mZZXz3MCZM2eGW2yzZ8/O1jqpUaNG+HjEfAc67LDDso21du3aPFpsNWvWPPvss0eMGLFnz55333033/wHEt5nLddVY2Hp6elly5bNef3VV18977zzhg4d+sknn2Se7VAgdevW7dSpU9++fdeuXTt//vzwxfLly+dRTPgN3PLly2e9OHXq1PAtderUCb/Nt2PHjl69ehW0npwrnqZMmRLFFlsoFOrVq9fixYsHDBgwfPjwAt04adKk88477/777//4448/++yznAFJSUl5PLfwRzlXO27duvXmm29+++23R48ePX78+D//+c/XX399QVuTEapYsWK2b/i2bdsO1GJLTU0dN27cbbfd1rlz5/Ai0MsuuywIgsyDDkL/bzrZzr7Iat++fYVY4Bn+LY6Li6tbt274tJnNmzdnqzMxMTHbXLZu3arFBsAhQ4sNgINVYmLiTTfd9OCDD1arVi3f4KVLl44ePXrcuHHbtm0rgdo47LDD8g449thjH3rooS1btuzZs+euu+6aPHly1n7Tzp07q1SpUqZMmfT09LzzLF26tG3btlmv5DwT9oEHHsi2SdmePXtuuOGGohx8uWXLllAoVKdOnVw/LV++fOXKlQ+0RV3v3r3POOOMiRMnRr4ZXM43Ujdu3NilS5fM3es2b958oGJC/+8l0N9//z3rxSpVqoQfb/iHlZaWdtppp2U7jDUS3bp1++CDD7Jeifq7gZs3b77mmmumTZv2ySefhI+mjdytt97apk2b1157Ldet+rds2ZL5SmNO4Y9y/TlOmTJl4sSJV1999YABA6ZOnZpz2Wa0/PTTT9kO/cj7xfbRo0ffdtttvXv3njRpUrly5dq2bfvJJ59kPf0z/NWtW7fugTLUqlWrQLsrhiUnJ+/fvz8uLi68Rd327dtPPvnkbKsmt2/fHl7+mSmPTh8AHHS02AA4+CQmJl5xxRUPPfRQvjuvbdmyZfLkyS+++GJB/7OcIsr76MCEhITx48eXL1/+xhtv3Lx587Rp08aNG3fKKaekpqaGA1avXh0XF9eiRYvMVVoHkpGRke8xhVOnTg23osJHHC5btuzNN9/8+eefI59OTuFjMdu2bfvPf/4z56etWrWKj4//8ssvc71369at3bp1S0lJ+cc//vH000/nO1Z6enpmDys9PX3Lli1ffvnlG2+8Ee6VhC1ZsiT89mtOxx13XO3atffs2ZPtrMk2bdqE3zOtWbPmrFmzTjjhhBtuuOGee+7Jt55sdu3aFeFJkeHWW67Nndq1a4dCoU2bNh3o3pkzZz755JMTJ0480EGiB7Jjx46uXbvOmTPn+eeff+yxx7J9+s0333Tu3Ll27dq59lvbtm27bt26Ay167dev39lnn52UlFSIpX+R279/f4EO4vz2229nzZrVtm3bww8//PTTT69YsWK2EznWrVu3adOm8IvGOdWuXfv4449//fXXC1pns2bNwnXWrVt37ty5Rx11VLdu3bKtOgyCwKGiAAAApUK9evUGDx68bt26IE+//PLLM888c/bZZ5cp438mRceiRYsyt/3K25QpU/I9PuJvf/tbEARvvPFG+I/PPvtsEARZT2O86KKLgiB4+eWX886zZs2acKvrQEaNGhUEQdaTH/M2ZMiQIAhybeKMHTs2W6qvvvoqLS3t2GOPzRk8bdq0/fv3Z25oVbVq1SAIsi10GjZsWBAEw4cPD4Kgf//+ByopJSUlkq7E+eefHwRBrl228IEeEyZMyLwSfixZj9rs3LlzEATr16/PuaFh+/btgyDI9Tl37949CIJsG7HloXLlyvv37w+C4NRTT816PT4+funSpXv27Mn6am1KSkq25ImJiQsXLnz11Ve3bt16oB9T6ABPe9CgQeHvWBAEQ4YMyTaFbFsBhoW/hCNHjsy8En4UWX9YFSpUyHoYQkEfSL6/LJH/3mV19dVXh8/tffPNN3P9mYa/zBdddFHOex9//PEgCC6++OJs1wv0q3HjjTcGQbBy5cq4uLjMixF+kwEAACgu5cqVO+OMMwYOHLhgwYI82mqbN2+eMmXKbbfd1qRJk6z/XUdURLHFdtJJJ6Wlpf3yyy/hDZtCoVDFihVXrFixf//+zFc+ExISli9fHgRB3rvsxbbFFt7l6rvvvjv++OMzLyYlJT355JNBEITPdgzLtelTpkyZ+fPnZ2RkRKXFFh8fv2DBgl9++aVly5aZFxMSEgYMGBAEwZ49exo1apR5PWeLLT4+fvXq1UEQXHbZZdkyR7HFFgqFpk6dGgTBl19+mfkqcXx8fLitM2bMmKyROVtsoVDouOOO27lzZ/hXvkAttoSEhNmzZ4dvzNpiK1++/IoVKzIyMvr27Zv174327dtv2LBh06ZNWV+/zdliyybbA0lKSrriiiuyPvlsiqnFVq5cuY0bN06fPj0tLW3YsGE5A0488cS0tLSNGzdmPfQ2Li7ulltuycjImDt3bs4Tbwv0q1GuXLnffvstCIKzzz4782K+3+Szzjqrffv2EcwPAEop/28fgFKkefPmlStXrlSpUvXq1Y8++uijjz66UaNGJ598cq7bxm/ZsuXr/2fRokX//e9/c27CRRTVq1cv538hz5kz58ILL8wZnDNyyZIlbdu2LVu27Kuvvlq2bNkePXpkvhW4a9eua6+9ds6cOePGjWvatOnOnTszMjK6du06Y8aMt99+e8yYMW+88cbGjRurVavWtm3byy+/POvWVE2bNs051gcffNC1a9cizTYCkydPfvrpp/v27btkyZKUlJQVK1YcdthhZ511Vq1atWbOnHnHHXfkfXt6enrXrl0XLVpUqVKlohezf//+q6666j//+c9nn302Z86cZcuWlS9fvn379kcdddS+ffu6deuW9yZr+/fvf+qpp5588slevXpNnjy5QENPmDAhc0u4TM2aNcv19NI77rijdevWp5xyynfffTd16tT09PR27do1bNhw9erV4SNN8/b999/379//xRdfLFCFoVAoIyOjW7du33zzTXJyctbre/bsueqqqz7++OOnnnqqX79+s2fP3rt3b7Nmzc4444xdu3ZddNFFv/zyS0HHytSvX78RI0asWbOmQYMGeYTl/AIPHDjwueeeC/9zgX7vwtLS0saOHXvnnXcGQZDrs1q2bFnfvn2fe+65Tz/9dP78+d98803ZsmXbtm3bsGHDFStWdOnSpYh/l6alpT333HMPPPBAr169Pv3008zrycnJOedy8803T5w4sVmzZuHIxo0bR3KUMACUQlpsAJQWcXFxX3/9ddYr6enpmzZtWrly5caNGzds2LBx48Yffvjhhx9+WL169erVqzdv3hyrUv+AFi5cmOsKlKzbqIctXbo011Vj4ciLLrpo69atDz/88NSpU7N+Om/evHvvvfeCCy644oorXnnllVAo9OWXX7Zu3fqf//xnz549e/bsmRmZdVHP/Pnzc13j88MPP2QOOmvWrHzPTMiafNasWTt37sz50fLly3Om6tev34wZM+66666zzz67Y8eOoVDou+++e/TRR5955pmcXaecVq1a1bNnz969e+exMdyiRYtyrSenlStXNmvWbNCgQVdeeWV4PWBqaurbb789ZMiQxYsXZ4ucNWtW5s53YS+99NKFF16YmJhYpUqV7du3Z17funXrrFmzcv6gQ6HQ+vXrZ82alWsxBzqmc/ny5aeddtrDDz98/vnnhw+X3LZt25gxYwYNGrRhw4ZIpjlmzJhmzZo1a9YswseSae3atTfeeGPfvn2zfWcWLlzYpEmTIUOGXHbZZddff30oFNq1a9eECRMeeOCBVatWZY0MP4o8fljhB5J5VkC4PZfH+cUH+mXJfBSR/95l8/zzz7do0WLx4sVr167NNWD06NHffPPNoEGDOnbsGF75+Ouvv44YMWL48OFZf/qZCvqr8eyzz7Zr165q1arlypULn2lwoAWn4b/Jf/vtt99//71SpUpOpAHg4OU9GgBKkQoVKmRkZIR3a4q8LcKhrXLlytWrVy9fvnxaWtqmTZtK53+Bx8fHlytXbt++fbl+b+Pi4sqXL5+enn6gxlPUJSYmJiQkpKWl5bsvXqzEx8eXLVs2CIK9e/fmWmRSUlJ8fHxaWlpGRkaBMhflaZctWzY8aLSeW/hbUZoX2MbFxZUrV27//v0l9uU8kISEhLi4OH/zAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAf1/8BzvVqfn6eyCEAAAAASUVORK5CYII=" alt="" /></td></tr>';
         content += '<tr>';
@@ -118,33 +132,9 @@ FluidbookCartKimplay.prototype = {
         return content;
     },
 
-    exportPDF: function () {
-
-        var element = $('#flexipancarttable').get(0);
-        var options = {
-            margin: 15,
-            filename: this.getExportFileName() + '.pdf',
-            image: {type: 'jpeg', quality: 0.98},
-            html2canvas: {dpi: 150, scale: 2, letterRendering: true},
-            jsPDF: {unit: 'mm', format: 'A4', orientation: 'portrait'}
-        };
-        $(element).addClass('print')
-        html2pdf().set(options).from(element).save().then(function () {
-            $(element).removeClass('print');
-        });
-
-        setTimeout(function () {
-            $(element).removeClass('print');
-        }, 2000);
-    },
-
-    getExportFileName: function () {
-        var date = new Date();
-        return this.fluidbook.settings.title + ' - Cart - ' + date.getFullYear() + '-' + date.getMonth() + '-' + date.getDay();
-    },
 
     _endMenu: function (title, content, callback) {
-        var view = '<div id="flexipancart">';
+        var view = '<div id="kimplaycart">';
         view += this.fluidbook.menu.getCaption(title);
         view += '<div class="content">';
         view += "" + content;
index 00ecf6d604eeaac3acfa2ec873e3609432213ce4..780e5f28c09a743cee61b8ce7cdf9ea7c1003f8e 100644 (file)
@@ -872,8 +872,6 @@ FluidbookLinks.prototype = {
             return;
         }
 
-        console.log(container);
-
         var animateBookmarks = (this.fluidbook.settings.bookmarkBlinkOnPageChange == true);
 
         var $this = this;
index 3d1368cddbdf822ff098eac79f8b21b048288466..b9c2a65263e54b5957b0bf0029b93ccead5ca4b9 100644 (file)
@@ -9,7 +9,6 @@ FluidbookMenu.prototype = {
         this.closeEventSent = false;
         this.index = new FluidbookIndex(this.fluidbook);
         this.pdfform = new FluidbookPDFForm(this.fluidbook);
-        console.log(this.pdfform);
 
         var $this = this;
 
index 0d46bf51b5a58685d578a52cf98ea9012fc6f56e..148214f900c292ec540fe2067fd7f391d4b21596 100644 (file)
@@ -134,7 +134,6 @@ FluidbookSound.prototype = {
         let $this = this;
         let res = false;
         $.each(this.fluidbook.video.getActivePlayers(), function (k, player) {
-            console.log(player);
             if (player.muted()) {
                 return;
             }
@@ -158,11 +157,7 @@ FluidbookSound.prototype = {
     },
 
     isAudioPlaying: function (a) {
-        return a
-            && a.currentTime > 0
-            && !a.paused
-            && !a.ended
-            && a.readyState > 2;
+        return a && a.currentTime > 0 && !a.paused && !a.ended && a.readyState > 2;
     },
 
     pauseAmbientIfSomethingIsPlaying: function () {
index 662d25264ccaf66ba4da4e1a02d370762de865b4..5d89883e8120695ec4ad2cbf21e824965cf48380 100644 (file)
@@ -37,7 +37,6 @@ function FluidbookVideo(fluidbook) {
 
 
     this.fluidbook = fluidbook;
-    this.video = (Modernizr.video && (Modernizr.video.h264 || Modernizr.video.webm || Modernizr.video.ogg)) != false;
 
     this.videoFormats = [];
 
@@ -45,30 +44,28 @@ function FluidbookVideo(fluidbook) {
     var maybe = [];
     var not = [];
 
-    if (this.video) {
-        var formats = this.fluidbook.settings.videoFormats;
-        for (var i = 0; i < formats.length; i++) {
-            var f = formats[i];
-            if (f == 'mp4') {
-                f = 'h264';
-            }
-            if (f == 'ogv') {
-                f = 'ogg';
-            }
-            var support = Modernizr.video[f];
-            if (f == 'ogg') {
-                f = 'ogv';
-            }
-            if (f == 'h264') {
-                f = 'mp4';
-            }
-            if (support == 'probably') {
-                probably.push(f);
-            } else if (support == 'maybe') {
-                maybe.push(f);
-            } else {
-                not.push(f);
-            }
+    var formats = this.fluidbook.settings.videoFormats;
+    for (var i = 0; i < formats.length; i++) {
+        var f = formats[i];
+        if (f == 'mp4') {
+            f = 'h264';
+        }
+        if (f == 'ogv') {
+            f = 'ogg';
+        }
+        var support = Modernizr.video[f];
+        if (f == 'ogg') {
+            f = 'ogv';
+        }
+        if (f == 'h264') {
+            f = 'mp4';
+        }
+        if (support == 'probably') {
+            probably.push(f);
+        } else if (support == 'maybe') {
+            maybe.push(f);
+        } else {
+            not.push(f);
         }
     }
 
@@ -167,7 +164,7 @@ FluidbookVideo.prototype = {
         }
 
         html = '<video playsinline class="video-js vjs-fluidbook-skin"';
-        html += ' style="background-color:' + backgroundColor + ';border-radius:'+$(e).data('borderradius')+'px;" '
+        html += ' style="background-color:' + backgroundColor + ';border-radius:' + $(e).data('borderradius') + 'px;" '
 
         if (poster && !autoplay) {
             html += 'poster="' + poster + '" ';
@@ -235,10 +232,11 @@ FluidbookVideo.prototype = {
                     continue;
                 }
 
-                if(track.file.includes('.mp3')) {
+                if (track.file.includes('.mp3')) {
                     /*html += '<track kind="audio" src="data/links/'+track.file+'" srclang="en" label="English Audio Description">'
                     html += '<track kind="audio" src="data/links/'+track.file+'" srclang="en" label="English Audio Description">'
-                */}else {
+                */
+                } else {
                     html += '<track kind="' + track.kind + '"';
                     if (track.label) {
                         html += ' label="' + track.label + '"';
@@ -268,7 +266,6 @@ FluidbookVideo.prototype = {
         function sendPlayEvent() {
             if (!playEventSent) {
                 $this.fluidbook.stats.trackEvent(statsType, 'play', statsName);
-                $this.fluidbook.contentlock.addAction(linkid, 'play');
                 playEventSent = true;
             }
         }
@@ -284,15 +281,12 @@ FluidbookVideo.prototype = {
                 }
 
                 var trackObj = new videojs.AudioTrack({
-                    kind: track.kind,
-                    label: track.label,
-                    language: track.srclang,
-                    enabled: false
+                    kind: track.kind, label: track.label, language: track.srclang, enabled: false
                 });
 
                 player.audioTracks().addTrack(trackObj);
 
-                audioTrackHtml += '<audio id="'+trackObj.id+'" src="data/links/'+track.file+'"></audio>';
+                audioTrackHtml += '<audio id="' + trackObj.id + '" src="data/links/' + track.file + '"></audio>';
             }
 
             audioTrackHtml += '</div>';
@@ -301,7 +295,9 @@ FluidbookVideo.prototype = {
         }
 
         function syncAudioAndVideo(audioTrackList) {
-            var enabledTrack = audioTrackList.tracks_.filter((n) => { return n.enabled; })[0];
+            var enabledTrack = audioTrackList.tracks_.filter((n) => {
+                return n.enabled;
+            })[0];
 
             if (enabledTrack) {
                 $("audio#" + enabledTrack.id)[0].currentTime = player.currentTime();
@@ -317,7 +313,9 @@ FluidbookVideo.prototype = {
         }
 
         function getEnabledTrack(audioTrackList) {
-            return audioTrackList.tracks_.filter((n) => { return n.enabled; })[0];
+            return audioTrackList.tracks_.filter((n) => {
+                return n.enabled;
+            })[0];
         }
 
         // Get the current player's AudioTrackList object.
@@ -325,11 +323,8 @@ FluidbookVideo.prototype = {
 
         player.ready(function () {
             // Hide CC if disabled in video settings
-            console.log('cc', cc);
             if (!cc) {
-                console.log('cc disabled');
                 var tracks = player.textTracks();
-                console.log(tracks);
 
                 for (var i = 0; i < tracks.length; i++) {
                     var track = tracks[i];
@@ -397,14 +392,11 @@ FluidbookVideo.prototype = {
 
                 if (repeat >= 0 && loop) {
                     let repeatCount = repeat + 1;
-
                     player.on('ended', function () {
-                        console.log('ended', repeatCount, player);
                         if (repeatCount === 0) {
                             player.pause();
                             return;
                         } else {
-                            console.log(player);
                             player.currentTime(0);
                             player.play();
                         }
@@ -418,6 +410,7 @@ FluidbookVideo.prototype = {
                 if (settings.paused) {
                     player.pause();
                     player.one('play', function () {
+                        console.log(':!!!');
                         sendPlayEvent();
                     });
                 } else {
@@ -436,8 +429,7 @@ FluidbookVideo.prototype = {
             });
 
             var enabledTrack = getEnabledTrack(audioTrackList)
-            console.log("enabledTrack",enabledTrack)
-            if(enabledTrack) {
+            if (enabledTrack) {
                 $("audio#" + enabledTrack.id)[0].play();
             }
             syncAudioAndVideo(audioTrackList)
@@ -458,7 +450,7 @@ FluidbookVideo.prototype = {
             });
 
             let enabledTrack = getEnabledTrack(audioTrackList)
-            if(enabledTrack) {
+            if (enabledTrack) {
                 syncAudioAndVideo(audioTrackList)
                 $("audio#" + enabledTrack.id)[0].pause();
             }
@@ -471,19 +463,19 @@ FluidbookVideo.prototype = {
         });
 
         // Listen to the "change" event.
-        audioTrackList.addEventListener('change', function() {
+        audioTrackList.addEventListener('change', function () {
             player.muted(1)
 
             resetAudios()
 
             var track = getEnabledTrack(audioTrackList);
 
-            console.log("player.paused()",player.paused())
+            console.log("player.paused()", player.paused())
 
-            if(track && !player.paused()) {
-                $("audio#"+track.id)[0].play()
+            if (track && !player.paused()) {
+                $("audio#" + track.id)[0].play()
                 syncAudioAndVideo(audioTrackList)
-                console.log("audioTrackList",audioTrackList)
+                console.log("audioTrackList", audioTrackList)
                 return;
             }
 
@@ -501,7 +493,7 @@ FluidbookVideo.prototype = {
             $this.fluidbook.contentlock.addAction(linkid, 'complete');
             syncAudioAndVideo(audioTrackList)
             var enabledTrack = getEnabledTrack(audioTrackList);
-            if(enabledTrack) {
+            if (enabledTrack) {
                 enabledTrack.enabled = false
                 $("audio#" + enabledTrack.id)[0].pause()
                 $("audio#" + enabledTrack.id)[0].currentTime = 0
@@ -606,7 +598,7 @@ FluidbookVideo.prototype = {
     },
 
     hasOneVideoPlaying: function () {
-        let res= false;
+        let res = false;
         $.each(this.getActivePlayers(), function (k, player) {
             if (player.muted()) {
                 //return;
@@ -648,8 +640,6 @@ FluidbookVideo.prototype = {
 
     disposeVideo: function (player) {
         var id = player.id();
-        console.log('id',id)
-        console.log("this",$(this))
 
         // Save the current player info if it has started
         if (player.hasStarted()) {
index fcf2cf76a552856b780ebb5630fcbab34ee4ad8d..ede60453874adfe388baa019241b1c5f0a53fdbb 100644 (file)
@@ -255,7 +255,6 @@ try {
         }
         INITED = true;
 
-        console.log('init fluidbook ' + window.location);
         try {
             window.fluidbook = new Fluidbook(SETTINGS);
         } catch (e) {
@@ -289,8 +288,6 @@ try {
     }
 
     function initEvents() {
-        console.log('init events');
-
         resize(true);
 
         if (SETTINGS.preventRightClick) {