this.loader = new FluidbookLoader(this);\r
this.search = new FluidbookSearch(this);\r
this.pad = new FluidbookPad(this);\r
+ this.waiters = [];\r
if (Modernizr.ftouch && this.support.transitions2d && this.datas.mobileTransitions != 'none') {\r
this.touch = new FluidbookTouch(this);\r
}\r
}, 1000);\r
this.initLinks();\r
this.hideLoader();\r
+ this.resetWaiters();\r
\r
// Clean messy stuffs\r
$("#pages").removeClass('_3dtransition');\r
var $this = this;\r
\r
this.displayLoader();\r
-\r
+ this.resetWaiters();\r
+ \r
setTimeout(function() {\r
$this._openView(view, param1, param2, callback);\r
}, 20);\r
},\r
+ addWaiter: function(reset) {\r
+ if (reset == undefined) {\r
+ reset = false;\r
+ }\r
+ if (reset) {\r
+ this.resetWaiters();\r
+ }\r
+ var rand = Math.round(Math.random() * 100000);\r
+ this.waiters.push(rand);\r
+ return rand;\r
+ },\r
+ waiterActive: function(id) {\r
+ return this.waiters.indexOf(id) > -1;\r
+ },\r
+ resetWaiters: function() {\r
+ this.waiters = [];\r
+ },\r
_openView: function(view, param1, param2, callback) {\r
var $this = this;\r
var preload = {index: 'thumbnails',\r
search: 'thumbnails',\r
bookmark: 'thumbnails',\r
video: 'extras'};\r
+ \r
if (this.gal != null && preload[view] != undefined) {\r
+ var w = this.addWaiter(true);\r
this.gal.downloadAndCall(preload[view], function() {\r
-\r
- $this.__openView(view, param1, param2, callback);\r
+ if ($this.waiterActive(w)) {\r
+ $this.__openView(view, param1, param2, callback);\r
+ }\r
});\r
} else {\r
this.__openView(view, param1, param2, callback);\r