function tinyupload(field_name, url, type, win){ /** The tiny upload callback hi-jacks the calling window and impliments an upload and visual image selection. */ /* CONFIG */ var pathToPhp = '/bin/scripts/tiny_mce/plugins/tinyupload/tinyupload.php'; /* Nothing to edit past this point unless you know what your doing. */ win.tuSeclectedUrl = ''; win.tuIframeLoaded = function(){} var wDoc = win.document; /* Build the UI. */ var whiteOutDiv = wDoc.createElement('div'); whiteOutDiv.setAttribute('id', 'tuWhiteOut'); wDoc.body.appendChild(whiteOutDiv); whiteOutDiv.style.cssText = 'position:absolute;top:0px;left:0px;width:100%;height:100%;background:#F0F0EE;'; var el1 = wDoc.createElement('div'); el1.setAttribute('id', 'tuUiDiv'); el1.style.cssText = 'color:#000;padding:20px;'; whiteOutDiv.appendChild(el1); var uiDiv = wDoc.getElementById('tuUiDiv'); //First fieldset. el1 = wDoc.createElement('fieldset'); el1.style.cssText = 'background:#fff;padding:10px;'; el1.setAttribute('id', 'tuFsUpload'); uiDiv.appendChild(el1); var fs = wDoc.getElementById('tuFsUpload'); el1 = wDoc.createElement('legend'); el1.appendChild(wDoc.createTextNode('Upload')); fs.appendChild(el1); el1 = wDoc.createElement('div'); el1.style.cssText = 'overflow:hidden;padding-bottom:5px;'; el1.setAttribute('id', 'tuDivUpload'); var el2 = wDoc.createElement('label'); el2.appendChild(wDoc.createTextNode('Image Upload')); el2.style.cssText = 'width:120px;float:left;display:block;'; el1.appendChild(el2); //Frame el2 = wDoc.createElement('iframe'); el2.setAttribute('id', 'tuFrame'); el2.setAttribute('name', 'tuFrame'); el2.setAttribute('frameborder', '0'); el2.style.cssText = 'height:42px;width:290px;background:#ffffff;border-width:0px;'; el2.setAttribute('src', pathToPhp); el1.appendChild(el2); fs.appendChild(el1); //Inside the frame wDoc.getElementById('tuDivUpload').appendChild(el2); //fs.appendChild(el1); /* //Where the progress meter should go. el1 = wDoc.createElement('div'); el2 = wDoc.createElement('label'); el2.appendChild(wDoc.createTextNode('Progress')); el2.style.cssText = 'width:120px;float:left;display:block;'; el1.appendChild(el2); //Progress. el2 = wDoc.createElement('div'); el2.setAttribute('id', 'tuProgressBox'); el2.style.cssText = 'border:1px solid #808080;width:292px;float:left;height:1em;'; el1.appendChild(el2); fs.appendChild(el1); el1 = wDoc.createElement('div'); el1.style.cssText = 'background:#2B6FB6;width:20%;height:1em;'; el1.setAttribute('id', 'tuProgress'); wDoc.getElementById('tuProgressBox').appendChild(el1); */ //Second feildset. el1 = wDoc.createElement('fieldset'); el1.setAttribute('id', 'tuFsSelect'); el1.style.cssText = 'background:#fff;padding:10px;'; uiDiv.appendChild(el1); fs = wDoc.getElementById('tuFsSelect'); el1 = wDoc.createElement('legend'); el1.appendChild(wDoc.createTextNode('Select')); fs.appendChild(el1); el1 = wDoc.createElement('div'); el1.style.cssText = 'height:220px;border:1px solid #808080;overflow:auto;'; el1.setAttribute('id', 'tuDivSelect'); fs.appendChild(el1); //Buttons el1 = wDoc.createElement('input'); el1.setAttribute('type', 'button'); el1.setAttribute('value', 'Select'); el1.style.cssText = 'float:left;width:100px;margin-top:5px;'; el1.setAttribute('id', 'tuBtnSelect'); uiDiv.appendChild(el1); el1 = wDoc.createElement('input'); el1.setAttribute('type', 'button'); el1.setAttribute('value', 'Cancel'); el1.style.cssText = 'float:right;width:100px;margin-top:5px;'; el1.setAttribute('id', 'tuBtnCancel'); uiDiv.appendChild(el1); /* Events. */ //Select function selectEvt(win){ return function(){ win.document.forms[0].elements[field_name].value = win.tuSeclectedUrl; win.document.forms[0].elements[field_name].onchange(); win.document.body.removeChild(win.document.getElementById('tuWhiteOut')); } } wDoc.getElementById('tuBtnSelect').onclick = selectEvt(win); //Cancel function cancelEvt(win){ return function(){ win.document.body.removeChild(win.document.getElementById('tuWhiteOut')); } } wDoc.getElementById('tuBtnCancel').onclick = cancelEvt(win); win.tuFileUploadStarted = function(pth, nme){ function rntUrl(pth){ return function(){ win.document.forms[0].elements[field_name].value = pth; win.document.forms[0].elements[field_name].onchange(); win.document.body.removeChild(win.document.getElementById('tuWhiteOut')); } } win.tuIframeLoaded = rntUrl(pth); return true; } /* Ajax request */ var xhr; try {xhr = new ActiveXObject('Msxml2.XMLHTTP');} catch (e) { try {xhr = new ActiveXObject('Microsoft.XMLHTTP');} catch (e2) { try { xhr = new XMLHttpRequest(); } catch (e3) { xhr = false; } } } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200){ function setUrl(u){ return function(){ win.tuSeclectedUrl = u; for (var j=0; j