X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Portfolio.git/blobdiff_plain/fd69eaaf44e7c071f179242936c737509eb667ef..e73353500c67453ef9663d67eaeee7dd46c358ee:/skins/photo_lightbox_viewer.js diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js deleted file mode 100644 index c030fbb..0000000 --- a/skins/photo_lightbox_viewer.js +++ /dev/null @@ -1,418 +0,0 @@ -/* -* 2008-2014 Benoit Pin - MINES ParisTech -* http://plinn.org -* Licence Creative Commons http://creativecommons.org/licenses/by-nc/2.0/ -*/ - - -var Lightbox; - -(function(){ - -var reSelected = /.*selected.*/; - -Lightbox = function(grid, toolbar, complete) { - var self = this; - this.grid = grid; - this._buildSlidesIndex(); // set this.slides and this.lastSlide; - this.fetchingDisabled = false; - this.complete = complete; - this.toolbar = toolbar; - if (toolbar) { - this.toolbarFixed = false; - addListener(window, 'scroll', function(evt){self.windowScrollToolbarlHandler(evt);}); - } - addListener(window, 'scroll', function(evt){self.windowScrollGridHandler(evt);}); - addListener(window, 'load', function(evt){ self.windowScrollGridHandler();}); - this.lastCBChecked = undefined; - this.form = undefined; - var parent = this.grid.parentNode; - while(parent) { - parent = parent.parentNode; - if (parent.tagName === 'FORM') { - this.form = parent; - break; - } - else if (parent.tagName === 'BODY') { - break; - } - } - addListener(this.grid, 'click', function(evt){self.mouseClickHandler(evt);}); - if (this.form) { - var fm = this.fm = new FormManager(this.form); - addListener(this.form, 'change', function(evt){self.onChangeHandler(evt);}); - fm.onBeforeSubmit = function(fm_, evt) {return self.onBeforeSubmit(fm_, evt);}; - fm.onResponseLoad = function(req) {return self.onResponseLoad(req);}; - } -}; - -Lightbox.prototype._buildSlidesIndex = function() { - this.slides = []; - var node, i; - for (i=0 ; i this.lastSlide.firstElementChild.offsetTop - getWindowHeight()) { - this.fetchingDisabled = true; - this.fetchTail(); - } -}; - -Lightbox.prototype.mouseClickHandler = function(evt) { - var target = getTargetedObject(evt); - if (target.tagName === 'IMG') { - var img = target; - var link = target.parentNode; - var button = link.parentNode; - var slide = button.parentNode; - var req, url; - if (link.tagName === 'A') { - switch(link.getAttribute('name')) { - case 'add_to_selection': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send("ajax=1"); - - slide.className = 'selected'; - - link.setAttribute('name', 'remove_to_selection'); - link.href = url.replace(/(.*\/)add_to_selection$/, '$1remove_to_selection'); - link.title = img.alt = 'Retirer de la sélection'; - button.className = "button slide-deselect"; - break; - - case 'remove_to_selection': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send("ajax=1"); - slide.className = null; - link.setAttribute('name', 'add_to_selection'); - link.href = url.replace(/(.*\/)remove_to_selection$/, '$1add_to_selection'); - link.title = img.alt = 'Ajouter à la sélection'; - button.className = "button slide-select"; - break; - - case 'add_to_cart' : - disableDefault(evt); - slide.widget = new CartWidget(slide, link.href); - break; - - case 'hide_for_anonymous': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send(null); - slide.className = 'hidden-slide'; - link.setAttribute('name', 'show_for_anonymous'); - link.href = url.replace(/(.*\/)hideForAnonymous$/, '$1resetHide'); - link.title = img.alt = 'Montrer au anonymes'; - button.className = "button slide-show"; - break; - - case 'show_for_anonymous': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send(null); - slide.className = null; - link.setAttribute('name', 'hide_for_anonymous'); - link.href = url.replace(/(.*\/)resetHide$/, '$1hideForAnonymous'); - link.title = img.alt = 'Masquer pour les anonymes'; - button.className = "button slide-hide"; - break; - } - } - } else if(target.tagName === 'INPUT' && target.type === 'checkbox') { - var cb = target; - if (cb.checked) { - cb.setAttribute('checked', 'checked'); - } - else { - cb.removeAttribute('checked'); - } - this.selectCBRange(evt); - } -}; - -Lightbox.prototype.onChangeHandler = function(evt) { - var target = getTargetedObject(evt); - if (target.name === 'sort_on') { - this.fm.submitButton = {'name' : 'set_sorting', 'value' : 'ok'}; - this.fm.submit(evt); - } -}; - -Lightbox.prototype.onBeforeSubmit = function(fm, evt) { - switch(fm.submitButton.name) { - case 'delete' : - this.hideSelection(); - break; - } -}; - -Lightbox.prototype.onResponseLoad = function(req) { - switch(req.responseXML.documentElement.nodeName) { - case 'deleted' : - this.deleteSelection(); - break; - case 'error' : - this.showSelection(); - break; - case 'sorted' : - this.fm.submitButton = undefined; - this.refreshGrid(); - break; - } -}; - -Lightbox.prototype.switchToolBarPositioning = function(fixed) { - var tbs = this.toolbar.style; - if (fixed) { - this.toolbar.defaultCssText = this.toolbar.style.cssText; - tbs.width = String(this.toolbar.offsetWidth) + 'px'; - tbs.height = String(this.toolbar.offsetHeight) + 'px'; - tbs.position = 'fixed'; - tbs.top = '0'; - this.toolbarPlaceholder = document.createElement('div'); - var phs = this.toolbarPlaceholder.style; - phs.cssText = tbs.cssText; - phs.position = 'relative'; - this.toolbar.parentNode.insertBefore(this.toolbarPlaceholder, this.toolbar); - } - else { - this.toolbarPlaceholder.parentNode.removeChild(this.toolbarPlaceholder); - tbs.cssText = this.toolbar.defaultCssText; - } -}; - - -Lightbox.prototype.hideSelection = function() { - var i, e, slide; - for (i=0 ; i