1 /* firefox 3.6 drag-drop uploading
3 var TCNDDU
= TCNDDU
|| {};
6 $.dragDropFile = function ( selector
) {
7 //setup drag binding and highlight
8 var dC
= $j( selector
).get(0);
9 dC
.addEventListener("dragenter",
11 $j(dC
).css('border', 'solid red');
12 event
.stopPropagation();
13 event
.preventDefault();
15 dC
.addEventListener("dragleave",
17 //default textbox css (should be an easy way to do this)
18 $j(dC
).css('border', '');
19 event
.stopPropagation();
20 event
.preventDefault();
22 dC
.addEventListener("dragover",
24 event
.stopPropagation();
25 event
.preventDefault();
27 dC
.addEventListener("drop",
29 //for some reason scope does not persist for events so here we go:
31 //handle the drop loader and call event
34 function doDrop(event
){
35 var dt
= event
.dataTransfer
,
37 imgPreviewFragment
= document
.createDocumentFragment(),
41 event
.stopPropagation();
42 event
.preventDefault();
43 // ( error out if they dragged multiple files for now)
44 if( files
.length
> 1 ){
45 js_log( 'errro multiple files');
49 for (var i
= 0; i
< count
; i
++) {
50 if(files
[i
].fileSize
< 1048576) {
52 document
.createElement('li'),
53 document
.createElement('a'),
54 document
.createElement('img')
57 domElements
[2].src
= files
[i
].getAsDataURL(); // base64 encodes local file(s)
58 domElements
[2].width
= 300;
59 domElements
[2].height
= 200;
60 domElements
[1].appendChild(domElements
[2]);
61 domElements
[0].id
= "item"+i
;
62 domElements
[0].appendChild(domElements
[1]);
64 imgPreviewFragment
.appendChild(domElements
[0]);
66 dropListing
.appendChild(imgPreviewFragment
);
68 TCNDDU
.processXHR(files
.item(i
), i
);
70 alert("file is too big, needs to be below 1mb");