function fileUpload(file) {    var form = file.parentNode;    var randomId = 'upload_' + Math.round((Math.random() * 1000000));    form.setAttribute('target', randomId);    var uploadContainer = document.createElement('div');    uploadContainer.innerHTML = '<iframe style="display:none;border:none" src="about:blank" id="'+randomId+'" name="'+randomId+'" onload="fileUploadLoaded(this)" width=0 height=0 frameborder=0>';    document.body.appendChild(uploadContainer);    document.getElementById(randomId).uploadForm = form;    form.submit();    file.style.display = 'none';    var progress_id = form.UPLOAD_IDENTIFIER.value;    setTimeout("fileUploadCheckStatus('"+progress_id+"')", 1000);    fileUploadCreate(file.parentNode.parentNode);}function fileUploadLoaded(upload) {    var uploadDocument = upload.contentDocument || upload.contentWindow.document || window.frames[upload.id].document;    if(uploadDocument.location.href == "about:blank") return;    upload.uploadForm.innerHTML = uploadDocument.body.innerHTML;}function getURL(URL, callback) {    var XHR;    if (window.XMLHttpRequest) {        XHR = new XMLHttpRequest();    } else if (window.ActiveXObject) {        XHR = new ActiveXObject("Microsoft.XMLHTTP");    }    XHR.onreadystatechange = function() {        if(XHR.readyState == 4) {            callback(XHR.responseText);        }    }    XHR.open("GET", URL, true);    XHR.send();    return XHR.responseText;}function fileUploadCreate(container) {    var randomId = Math.round(Math.random()*1000000000);    var form = document.createElement('form');    form.setAttribute('action', uploadURL);    form.setAttribute('method', 'post');    form.setAttribute('enctype', 'multipart/form-data');    var statusIdentifier = document.createElement('input');    statusIdentifier.setAttribute('type', 'hidden');    statusIdentifier.setAttribute('name', 'UPLOAD_IDENTIFIER');    statusIdentifier.setAttribute('value', randomId);    form.appendChild(statusIdentifier);    var fileInput = document.createElement('input');    fileInput.setAttribute('type', 'file');    fileInput.setAttribute('onchange', 'fileUpload(this)');    fileInput.setAttribute('name', 'image');    form.appendChild(fileInput);    var statusFilename = document.createElement('h3');    statusFilename.setAttribute('id', 'upload_status_filename_'+randomId);    statusFilename.setAttribute('class', 'upload_status_filename');    var statusContainer = document.createElement('div');    statusContainer.setAttribute('class', 'upload_status_container');    var statusBar = document.createElement('div');    statusBar.setAttribute('id', 'upload_status_bar_'+randomId);    statusBar.setAttribute('class', 'upload_status_bar');    statusContainer.appendChild(statusBar);    var statusCheck = document.createElement('iframe');    statusCheck.setAttribute('src', 'about:blank');    statusCheck.setAttribute('style', 'display:none');    statusCheck.setAttribute('id', 'upload_status_check_'+randomId);    form.appendChild(statusFilename);    form.appendChild(statusContainer);    form.appendChild(statusCheck);    container.appendChild(form);    container.appendChild(document.createElement('br'));}function fileUploadCheckStatus(id) {    getURL(uploadStatusURL+id, fileUploadStatus);}function fileUploadStatus(status) {    status = eval('('+status+')');    var id = status.id;    var current = status.current;    var total = status.total;    var uploadStatus = document.getElementById('upload_status_bar_'+id);    if(uploadStatus) {        window.setTimeout("fileUploadCheckStatus('"+id+"')", 300);    } else {        return;    }    var uploadStatusFileName = document.getElementById('upload_status_filename_'+id);    uploadStatus.parentNode.style.display = 'block';    uploadStatus.style.display = 'block';    uploadStatusFileName.style.display = 'block';    var percent = Math.round(((current/total)*100))+'%';    if(total && current) {        uploadStatusFileName.innerHTML = 'Uploading at <span>'+percent+'</span>:';        uploadStatus.style.width = percent;        uploadStatus.innerHTML = percent;    }}