/* AJAX Functions */ function refreshProgress(){ UploadMonitor.getUploadInfo(updateProgress); } function updateProgress(uploadInfo) { if (uploadInfo.inProgress) { setBtnDisabled("wl_file_", true); var fileIndex = uploadInfo.fileIndex; var progressPercent = Math.ceil((uploadInfo.bytesRead / uploadInfo.totalSize) * 100); $("DTPgbart").innerHTML = "Upload in progress: " + progressPercent + "%"; $("DTPgbarbc").style.width = parseInt(progressPercent * 3.5) + "px"; window.setTimeout("refreshProgress()", 2000); } else { finishProgress(); } return true; } function finishProgress() { $("DTPgbarbc").style.width = "350px"; $("DTPgbart").innerHTML = "Processing..."; $("DTTranslate").disabled = false; $("DTAdd").disabled = false; setBtnDisabled("wl_file_", false); fxHide("DTPgbar"); $("SyncUpload").innerHTML = "Upload Complete"; } function startProgress() { $("DTTranslate").disabled = true; $("DTAdd").disabled = true; $("DTPgbarbc").style.width = "0px"; fxShow("DTPgbar"); $("DTPgbart").innerHTML = "Upload in progress: 0%"; window.setTimeout("refreshProgress()", 800); return true; } /* Effects Functions */ function getDimensions(element) { var pos = !/Safari|KHTML/.test(navigator.userAgent); var els = element.style; if (els.display != "none") return {width: element.clientWidth, height: element.clientHeight}; var originalVisibility = els.visibility; var originalPosition = els.position; els.visibility = "hidden"; if (pos) els.position = "absolute"; els.display = ""; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; els.display = "none"; if (pos) els.position = originalPosition; els.visibility = originalVisibility; return {width: originalWidth, height: originalHeight}; } function fxShow(id){ var ele = $(id); var d = getDimensions(ele); ele.style.height = "0px"; ele.style.display = ""; fxEle = new Fx.Styles(id) fxEle.custom({"opacity":[0,1], "height":[0,d.height]}); } function fxHide(id){ var ele = $(id); var d = getDimensions(ele); var fxEle = new Fx.Styles(id, { onComplete: function() { ele.style.display = "none"; ele.style.height = d.height + "px"; }}); fxEle.custom({"opacity":[1,0], "height":[d.height,0]}); } function fxFadeOut(id) { new Fx.Style("DTAdd", "opacity").custom(1,0); } /* Form Functions */ function validate(theForm) { if (theForm["wl_file_1"].value == "") { alert("Please select a file."); theForm["wl_file_1"].focus(); return false; } var selIndex1 = theForm["wl_srclang"].selectedIndex; var selIndex2 = theForm["wl_trglang"].selectedIndex; var selVal1 = theForm["wl_srclang"].options[selIndex1].value; var selVal2 = theForm["wl_trglang"].options[selIndex2].value; if (selVal1 == selVal2 || selVal1.toLowerCase() == selVal2) { alert("Please select two different languages."); theForm["wl_trglang"].focus(); return false; } var errorMessage = document.getElementById("errormessage"); if (errorMessage) { errorMessage.innerHTML = ""; } return true; } function addfiles() { fxFadeOut("DTAdd"); fxShow("DTMore"); } function showhide(id){ if ($(id).style.display == "none") fxShow(id); else fxHide(id); } function setBtnDisabled(id, state) { var n = 1; var e = $(id + n++); while (e) { e.disabled = state; e = $(id + n++); } } function populateStatusTable(jobs) { var statusTable = document.getElementById("statusTable"); // removes prior entries while (statusTable.firstChild) { statusTable.removeChild(statusTable.firstChild); } if (jobs.length == 0) { var textElement = document.createTextNode("No Jobs"); statusTable.appendChild(textElement); } else { // check if this is a callback from file upload var isUpload = jobs[0][0]; if (isUpload == "true") { var uploadStatusEntity = document.getElementById("wl_upload_status"); // removes prior entries while (uploadStatusEntity.firstChild) { uploadStatusEntity.removeChild(uploadStatusEntity.firstChild); } var uploadTextElement = document.createTextNode("Upload complete"); uploadStatusEntity.appendChild(uploadTextElement); } // create table var tableElement = document.createElement('table'); tableElement.border = "2"; tableElement.cellPadding = "2"; tableElement.cellSpacing = "2"; tableElement.width = "900"; // create headers var tableHeader = createHeaderRow(); tableElement.appendChild(tableHeader); // create table body var tableBody = createStatusBody(jobs); tableElement.appendChild(tableBody); statusTable.appendChild(tableElement); } var refresh = document.getElementById("wl_lastRefreshed"); var refreshTimeString = getTimeString(); var refreshTime = document.createTextNode(refreshTimeString); while (refresh.firstChild) { refresh.removeChild(refresh.firstChild); } refresh.appendChild(refreshTime); } // populateStatusTable var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]; function getTimeString(timestamp) { var refreshDate = new Date(); if (timestamp != null) { refreshDate.setTime(timestamp); } var hours = refreshDate.getHours(); hours = padSingleDigits(hours); var minutes = refreshDate.getMinutes(); minutes = padSingleDigits(minutes); var seconds = refreshDate.getSeconds(); seconds = padSingleDigits(seconds); var timeString = days[refreshDate.getDay()] + ", " + months[refreshDate.getMonth()] + " " + refreshDate.getDate() + ", " + refreshDate.getFullYear() + " " + hours + ":" + minutes + ":" + seconds; return timeString; } function padSingleDigits(number) { if (number < 10) { number = "0" + number; } return number; } function createHeaderRow() { var tableHeader = document.createElement('thead'); var jobNumberElement = document.createElement('th'); var jobNumberText = document.createTextNode("Job Number"); jobNumberElement.appendChild(jobNumberText); tableHeader.appendChild(jobNumberElement); var fileNameElement = document.createElement('th'); var fileNameText = document.createTextNode("File Name"); fileNameElement.appendChild(fileNameText); tableHeader.appendChild(fileNameElement); var langPairElement = document.createElement('th'); var langPairText = document.createTextNode("Language Pair"); langPairElement.appendChild(langPairText); tableHeader.appendChild(langPairElement); var createdElement = document.createElement('th'); var createdText = document.createTextNode("Created"); createdElement.appendChild(createdText); tableHeader.appendChild(createdElement); var statusElement = document.createElement('th'); var statusText = document.createTextNode("Status"); statusElement.appendChild(statusText); tableHeader.appendChild(statusElement); return tableHeader; } function createStatusBody(jobs) { var statusBody = document.createElement('tbody'); for (var i = 1; i < jobs.length; i++) { // create row var job = jobs[i]; var tr = document.createElement('tr'); for (var j = 0; j < jobs[i].length && j <5; j++) { text = jobs[i][j]; // create cells var td = document.createElement('td'); if (j == 4 && text == "Complete") { var anchorTag = document.createElement('a'); anchorTag.setAttribute('href','/wl/track/job_tracking?mttpartdl=' + jobs[i][6] + '&email=' + jobs[i][7]); anchorTag.setAttribute('target','_self'); var textNode = document.createTextNode(text); anchorTag.appendChild(textNode); td.appendChild(anchorTag); } else { if (j == 3) { text = getTimeString(text); } if (j < 5) { var textNode = document.createTextNode(text); td.appendChild(textNode); } if (text == "Processing") { var imageTag = document.createElement('img'); imageTag.setAttribute('src','/images/spinner_blue.gif'); td.appendChild(imageTag); } } tr.appendChild(td); } statusBody.appendChild(tr); } return statusBody; } function updateStatus() { var serviceNumber = dwr.util.getValue('wl_servicenumber'); AsyncDTApi.getJobList(serviceNumber, false, populateStatusTable); setTimeout(updateStatus,10000); } // updateStatus function uploadFiles() { var file = dwr.util.getValue('wl_file'); var srcLang = dwr.util.getValue('wl_srclang'); var trgLang = dwr.util.getValue('wl_trglang'); var serviceNumber = dwr.util.getValue('wl_servicenumber'); var glossary = dwr.util.getValue('wl_glossary'); var hierarchy = dwr.util.getValue('wl_hierarchy'); var doOcr = dwr.util.getValue('do_ocr')[0]; var uploadStatus = document.getElementById("wl_upload_status"); // get file name from path var fullPath = file.value; var startIndex = (fullPath.indexOf('\\') >= 0 ? fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/')); var filename = fullPath.substring(startIndex); if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) { filename = filename.substring(1); } var textNode = document.createTextNode("Uploading " + filename + " . . . "); uploadStatus.appendChild(textNode); var imageTag = document.createElement('img'); imageTag.setAttribute('src','/images/spinner_blue.gif'); uploadStatus.appendChild(imageTag); AsyncDTApi.uploadFile(file, serviceNumber, srcLang, trgLang, glossary, hierarchy, doOcr, populateStatusTable); } // uploadFiles