var MediaList = { debug: 0, provider: new MediaAjaxProvider(), options: { byTypeId: '', byDateRange: '', viewType: 'thumb' }, aMedia: Array(), aValid: Array(), aInvalid: Array(), init: function() { var aTmp = $A(document.getElementsByClassName('thumbBox')); aTmp.each(function(media) { var id = media.id.replace('media', ''); MediaList.aMedia.push(id); MediaList.aValid = MediaList.aMedia; }); if (MediaList.debug) { bod = document.getElementsByTagName('body')[0]; debug = document.createElement('div'); valid = document.createElement('div'); valid.id = 'validItems'; invalid = document.createElement('div'); invalid.id = 'invalidItems'; } }, switchViewType: function() { var options = this.options; if (this.options.viewType == 'thumb') { this.options.viewType = 'list'; } else { this.options.viewType = 'thumb'; } Media.narrowResults(options); }, narrowResults: function(options) { if (!options) { // we want to clear any filter this.options.byTypeId = this.options.byDateRange = null; $('filerByType').selectedIndex = 0; $('filerByDate').selectedIndex = 0; } else { if (typeof options.byTypeId != "undefined") { this.options.byTypeId = options.byTypeId; } if (typeof options.byDateRange != "undefined") { this.options.byDateRange = options.byDateRange; } if (typeof options.viewType != "undefined") { this.options.viewType = options.viewType; } } var aMatching = MediaList.getValidMedia(this.options); MediaList.updateValidMedia(aMatching); return false; }, getValidMedia: function(options) { var HW = new MediaAjaxProvider(); var aValidIds = HW.getValidIds(options); return aValidIds; }, showAll: function() { MediaList.aInvalid = MediaList.aInvalid.clear(); MediaList.aValid = MediaList.aMedia; MediaList.refreshScreen(); return false; }, updateValidMedia: function(aValidItems) { // make a copy of former valid media var aOldValid = MediaList.aValid; var aToHide = new Array(); var aToShow = new Array(); aOldValid.each( function(mediaId) { if (aValidItems.indexOf(mediaId) == -1) { aToHide.push(mediaId); } }); aValidItems.each( function(mediaId) { //alert('id ' +mediaId +' indexOf aOldValid ' +aOldValid.indexOf(mediaId)); if (aOldValid.indexOf(mediaId) == -1) { aToShow.push(mediaId); } }); MediaList.aValid = aValidItems; if (this.debug) { MediaList.aOldValid = aOldValid; MediaList.aValidItems = aValidItems; MediaList.aToHide = aToHide; MediaList.aToShow = aToShow; MediaList._debug(); } MediaList.refreshScreen(aToHide, aToShow); }, deleteMediaById: function(mediaId) { if (confirmDelete('media')) { var ok = this.provider.deleteMediaById(mediaId); if(ok.messageType == "info") { // and remove it from screen this.hideItem(mediaId); } Element.update('ajaxMessage', '
' +ok.message +'
'); } return false; }, refreshScreen: function(aToHide, aToShow) { aToHide.each(function(mediaId) { MediaList.hideItem(mediaId); }); aToShow.each(function(mediaId) { MediaList.showItem(mediaId); }); }, hideItem: function(itemId) { //Effect.Shrink($('media' +itemId)); Element.hide($('media' +itemId)); }, showItem: function(itemId) { //Effect.Grow($('media' +itemId)); Element.show($('media' +itemId)); }, _debug: function() { confirm('Options : \n' + 'By type : ' +this.options.byTypeId + '\n' + 'By date : ' +this.options.byDateRange + '\n\n' + 'Anciens valid : \n' +MediaList.aOldValid + '\n' + 'Valid : \n' +MediaList.aValidItems + '\n\n' + 'To hide : \n' + MediaList.aToHide + '\n' + 'To show : \n' + MediaList.aToShow ); } } var Media = { options: { byTypeId: '', byDateRange: '', viewType: 'thumb' }, narrowResults: function(options) { if(typeof options.byTypeId != "undefined") { this.options.byTypeId = options.byTypeId; } if(typeof options.byDateRange != "undefined") { this.options.byDateRange = options.byDateRange; } if(typeof options.viewType != "undefined") { this.options.viewType = options.viewType; } Media._getMediaFiles(this.options); return true; }, _getMediaFiles: function(options) { var HW = new MediaAjaxProvider(); var mediaFiles = HW.getMediaFiles(options); Element.update('mediaItems', mediaFiles[0]); } }