SERIA.Filearchive2 = { open: function(callback, multiselect) { var url = "http://seria/filearchive2/index.php"; if (multiselect) url += '?multiselect=yes'; SERIA.Popup.show(url, 950, 600, callback, false); }, openSingleSelect: function(callback) { SERIA.Filearchive2.open(function (value) { if (value) callback(value[0]); else callback(false); }, false); }, openMultiSelect: function(callback) { SERIA.Filearchive2.open(callback, true); }, showSingleFileSelect: function(parentElement, fileId, changeCallback) { var lastRequestedUpdate = 0; var invokeButton = document.createElement('button'); invokeButton.setAttribute('class', 'Filearchive2SingleInvoke'); invokeButton.setAttribute('type', 'button'); invokeButton.innerHTML = "Select a file"; invokeButton.onclick = function () { SERIA.Filearchive2.openSingleSelect(function (value) { if (value) { lastRequestedUpdate++; var updateRequest = lastRequestedUpdate; changeCallback(value); $.get( "/var/www/seria/filearchive2/js/../specialTemplates/thumbnailer.php", { 'multi': 'no', 'fileId': value }, function (data) { if (updateRequest == lastRequestedUpdate) thumbnailArea.innerHTML = data; } ); } }); } parentElement.appendChild(invokeButton); var clearButton = document.createElement('button'); clearButton.setAttribute('class', 'Filearchive2SingleClear'); clearButton.setAttribute('type', 'button'); clearButton.innerHTML = "Clear"; parentElement.appendChild(clearButton); var thumbnailArea = document.createElement('div'); thumbnailArea.setAttribute('class', 'Filearchive2SingleThumbnailArea'); parentElement.appendChild(thumbnailArea); if (fileId) { (function () { lastRequestedUpdate++; var updateRequest = lastRequestedUpdate; $.get( "/var/www/seria/filearchive2/js/../specialTemplates/thumbnailer.php", { 'multi': 'no', 'fileId': fileId }, function (data) { if (updateRequest == lastRequestedUpdate) thumbnailArea.innerHTML = data; } ); })(); } }, hookSingleSelectOnInput: function (inputObj) { var parent = inputObj.parentNode; var divobj = document.createElement('div'); divobj.setAttribute('class', 'Filearchive2SingleHostObject'); parent.insertBefore(divobj, inputObj); SERIA.Filearchive2.showSingleFileSelect(divobj, inputObj.value, function (newValue) { inputObj.value = newValue; }); } };