1 2window.BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder; 3 4function sendChunkRequest(filefieldid, filename, foldername, siteurl, itemid) { 5 var blob = document.getElementById(filefieldid).files[0]; 6 var BYTES_PER_CHUNK = 5000000; // 5MB chunk sizes. 7 var SIZE = blob.size; 8 var start = 0; 9 var end = BYTES_PER_CHUNK; 10 window.uploadcounter=0; 11 window.uploadfilearray = []; 12 document.getElementById('progressNumber'+filefieldid).innerHTML = " 0 % "; 13 document.getElementById("fileProgressBar"+filefieldid).style.width = "1%"; 14 15 while( start < SIZE ) { 16 var chunk = blob.slice(start, end); 17 window.uploadfilearray[window.uploadcounter] = chunk; 18 window.uploadcounter = window.uploadcounter+1; 19 start = end; 20 end = start + BYTES_PER_CHUNK; 21 } 22 window.uploadcounter = 0; 23 window.uploadpercent = 0; 24 uploadFileChunkFile(window.uploadfilearray[window.uploadcounter], filefieldid, filename, foldername, siteurl, itemid, BYTES_PER_CHUNK); 25} 26 27function uploadFileChunkFile(blobFile, filefieldid, filename, foldername, siteurl, itemid, BYTES_PER_CHUNK) { 28 var fd = new FormData(); 29 fd.append("fileToUpload", blobFile); 30 fd.append("fileid", filefieldid); 31 fd.append("filename", filename); 32 fd.append("foldername", foldername); 33 fd.append("itemid", itemid); 34 fd.append("chunksize", BYTES_PER_CHUNK); 35 36 var xhr = new XMLHttpRequest(); 37 xhr.open("POST", siteurl+"index.php?option=com_dryfta&view=event&task=uploadChunkedFile"); 38 39 var percent_complete = 0; 40 // Upload progress on request.upload 41 xhr.upload.addEventListener('progress', function(e) { 42 percent_complete = ((e.loaded / e.total)*100) / window.uploadfilearray.length; 43 var totaluploadpercent = 0; 44 totaluploadpercent = window.uploadpercent + Math.round(percent_complete); 45 if(totaluploadpercent > 100){ totaluploadpercent = 100; } 46 47 // Percentage of upload completed 48 document.getElementById('progressNumber'+filefieldid).innerHTML = ' '+totaluploadpercent+'%'; 49 document.getElementById("fileProgressBar"+filefieldid).style.width = totaluploadpercent+"%"; 50 }); 51 52 xhr.onload = function(e) { 53 54 //console.log(xhr.response); 55 window.uploadcounter = window.uploadcounter+1; 56 57 window.uploadpercent = window.uploadpercent + Math.round(percent_complete); 58 59 if (window.uploadfilearray.length > window.uploadcounter ){ 60 uploadFileChunkFile(window.uploadfilearray[window.uploadcounter], filefieldid, filename, foldername, siteurl, itemid, BYTES_PER_CHUNK); 61 //var percentloaded2 = parseInt((window.uploadcounter/window.uploadfilearray.length)*100); 62 }else{ 63 64 if(BYTES_PER_CHUNK == 20000000){ 65 document.getElementById("bgprogressbar_"+filefieldid).innerHTML = 'File uploaded, moving to Vimeo server.'; 66 //video file - upload to vimeo 67 moveUploadedFileToVimeo(filefieldid, filename, foldername, siteurl, itemid); 68 }else{ 69 document.getElementById("bgprogressbar_"+filefieldid).innerHTML = 'File uploaded, moving to Amazon Web Services server.'; 70 //upload file to s3 71 moveUploadedFileTos3(filefieldid, filename, foldername, siteurl, itemid); 72 } 73 74 } 75 }; 76 77 xhr.ontimeout = function(error) { 78 //handle the timeout 79 alert('Request timeout.'); 80 var element = document.getElementById("bgprogressbar_"+filefieldid); 81 element.parentNode.removeChild(element); 82 document.getElementById('page-loader').style.display='none'; 83 }; 84 85 xhr.onerror = function(XMLHttpRequest, textStatus, errorThrown) { 86 87 var element = document.getElementById("bgprogressbar_"+filefieldid); 88 if (XMLHttpRequest.readyState == 4) { 89 // HTTP error (can be checked by XMLHttpRequest.status and XMLHttpRequest.statusText) 90 alert('Network error'); //alert(XMLHttpRequest.statusText); 91 element.parentNode.removeChild(element); 92 document.getElementById('page-loader').style.display='none'; 93 94 } 95 else if (XMLHttpRequest.readyState === 0) { 96 // Network error (i.e. connection refused, access denied due to CORS, etc.)
97 alert('Connection refused'); 98 element.parentNode.removeChild(element); 99 document.getElementById('page-loader').style.display='none'; 100 } 101 else { 102 //something weird is happening 103 alert('Error occured.'); 104 element.parentNode.removeChild(element); 105 document.getElementById('page-loader').style.display='none'; 106 } 107 }; 108 109 xhr.send(fd); 110} 111 112function moveUploadedFileTos3(filefieldid, filename, foldername, siteurl, itemid){ 113 114 var fd = new FormData(); 115 fd.append("filename", filename); 116 fd.append("foldername", foldername); 117 fd.append("commentpic", 1); 118 fd.append("itemid", itemid); 119 120 var url = siteurl+"index.php?option=com_dryfta&view=event&task=moveUploadedFileTos3"; 121 var obj = new XMLHttpRequest(); 122 try 123 { 124 obj=new ActiveXobject("Microsoft.XMLHTTP"); 125 } 126 catch(e) 127 { 128 try 129 { 130 obj=new XMLHttpRequest(); 131 } 132 catch(e) 133 { 134 alert("your browser not support AJAX"); 135 } 136 } 137 //step2 138 139 //Send the proper header information along with the request 140 obj.open("POST",url,true); 141 obj.send(fd); 142 //step3 143 obj.onreadystatechange=function() 144 { 145 if(obj.readyState==4 && obj.status == 200) 146 { 147 var res = JSON.parse(obj.responseText); 148 if(res.flag == 1){ 149 150 var element = document.getElementById("bgprogressbar_"+filefieldid); 151 element.parentNode.removeChild(element); 152 document.getElementById('page-loader').style.display='none'; 153 if(document.getElementById("file_name_"+filefieldid)){ 154 document.getElementById("file_name_"+filefieldid).innerHTML = "<span style='color:red;'>"+res.error +"</span>"; 155 } 156 157 }else{ 158 159 //document.getElementById('progressNumber'+filefieldid).innerHTML = '100% '; 160 //document.getElementById("fileProgressBar"+filefieldid).style.width = "100%"; 161 document.getElementById("bgprogressbar_"+filefieldid).innerHTML = ' '+filename+' - Uploaded'; 162 document.getElementById("bgprogressbar_"+filefieldid).style.background = "#46bf83"; 163 164 document.getElementById('file_preview_'+filefieldid).innerHTML = '<input type="hidden" id="attachment'+filefieldid+'" value="'+res.fileName+'"/>'; 165 fileUploadedSaveData(); 166 } 167 } 168 }; 169 170 obj.onerror = function() { 171 alert("Request failed!"); 172 var element = document.getElementById("bgprogressbar_"+filefieldid); 173 element.parentNode.removeChild(element); 174 document.getElementById('page-loader').style.display="none"; 175 }; 176} 177 178function sendUploadRequestToS3(filefieldid, filename, foldername, siteurl, itemid) { 179 var fd = new FormData(); 180 181 var blobFile = document.getElementById(filefieldid).files[0]; 182 fd.append("fileToUpload", blobFile); 183 fd.append("foldername", foldername); 184 fd.append("commentpic", 1); 185 fd.append("itemid", itemid); 186 187 var url = siteurl+"index.php?option=com_dryfta&view=event&task=sendUploadRequestToS3"; 188 var obj = new XMLHttpRequest(); 189 try 190 { 191 obj=new ActiveXobject("Microsoft.XMLHTTP"); 192 } 193 catch(e) 194 { 195 try 196 { 197 obj=new XMLHttpRequest(); 198 } 199 catch(e) 200 { 201 alert("your browser not support AJAX"); 202 } 203 } 204 //step2 205 206 //Send the proper header information along with the request 207 // Upload progress on request.upload 208 obj.upload.addEventListener('progress', function(e) { 209 var percent_complete = (e.loaded / e.total)*100; 210 // Percentage of upload completed 211 document.getElementById('progressNumber'+filefieldid).innerHTML = Math.round(percent_complete)+'%'; 212 document.getElementById("fileProgressBar"+filefieldid).style.width = Math.round(percent_complete)+"%"; 213 }); 214 215 obj.open("POST",url,true); 216 obj.send(fd); 217 //step3 218 obj.onreadystatechange=function() 219 { 220 if(obj.readyState==4 && obj.status == 200) 221 { 222 var res = JSON.parse(obj.responseText); 223 if(res.flag == 1){ 224 var element = document.getElementById("bgprogressbar_"+filefieldid); 225 element.parentNode.removeChild(element); 226 document.getElementById('page-loader').style.display='none'; 227 228 if(document.getElementById("file_preview_"+filefieldid)){ 229 document.getElementById("file_preview_"+filefieldid).innerHTML = "<span style='color:red;'>"+res.error +"</span>"; 230 } 231 }else{ 232 233 document.getElementById('progressNumber'+filefieldid).innerHTML = '100% '; 234 document.getElementById("fileProgressBar"+filefieldid).style.width = "100%"; 235 document.getElementById("bgprogressbar_"+filefieldid).style.background = "#46bf83"; 236 237 document.getElementById('file_preview_'+filefieldid).innerHTML = '<input type="hidden" id="attachment'+filefieldid+'" value="'+res.fileName+'"/>'; 238 fileUploadedSaveData(); 239 } 240 } 241 }; 242 243 obj.onerror = function() { 244 alert("Request failed!"); 245 var element = document.getElementById("bgprogressbar_"+filefieldid); 246 element.parentNode.removeChild(element); 247 document.getElementById('page-loader').style.display="none"; 248 }; 249} 250 251function removeUploadedFile(filefieldid, filename, foldername, siteurl){ 252 253 var conf = confirm("Sure to delete file?"); 254 if(conf === false){ return false; } 255 256 var url = siteurl+"index.php"; 257 var params = "option=com_dryfta&view=event&task=removeUploadedFile&filename="+filename+"&foldername="+foldername; 258 var obj = new XMLHttpRequest(); 259 try 260 { 261 obj=new ActiveXobject("Microsoft.XMLHTTP"); 262 } 263 catch(e) 264 { 265 try 266 { 267 obj=new XMLHttpRequest(); 268 } 269 catch(e) 270 { 271 alert("your browser not support AJAX"); 272 } 273 } 274 //step2 275 276 //Send the proper header information along with the request 277 obj.open("POST",url,true); 278 obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 279 obj.send(params); 280 //step3 281 obj.onreadystatechange=function() 282 { 283 if(obj.readyState==4 && obj.status == 200) 284 { 285 var res = obj.responseText; 286 if(res == 1){ 287 document.getElementById('file_preview_'+filefieldid).innerHTML = ""; 288 }else{ 289 alert('Error Occured'); 290 } 291 } 292 }; 293 294 obj.onerror = function() { 295 alert("Request failed!"); 296 var element = document.getElementById("bgprogressbar_"+filefieldid); 297 element.parentNode.removeChild(element); 298 document.getElementById('page-loader').style.display="none"; 299 }; 300} 301 302/* 303*function to upload file. 304* @params - filefieldid, filename, foldername. 305*/ 306function uploadFileUsingLibraryBrowse(filefieldid, filename, foldername, siteurl, itemid=''){ 307 if(siteurl === undefined){ siteurl = ""; } 308 var blob = document.getElementById(filefieldid).files[0]; 309 var filesize = blob.size; 310 311 if(blob.type == 'video/mp4' || blob.type == 'video/x-flv' || blob.type == 'video/3gpp' || blob.type == 'video/quicktime' || blob.type == 'video/x-msvideo' || blob.type == 'video/x-ms-wmv'){ 312 313 //video file - upload to local then to vimeo. 314 if(filesize > 20000000){ 315 sendVideoChunkRequest(filefieldid, filename, foldername, siteurl, itemid); 316 }else{ 317 sendUploadRequestToLocal(filefieldid, filename, foldername, siteurl, itemid); 318 } 319 320 }else{ 321 322 if(filesize > 10000000){ 323 sendChunkRequest(filefieldid, filename, foldername, siteurl, itemid); 324 }else{ 325 sendUploadRequestToS3(filefieldid, filename, foldername, siteurl, itemid); 326 } 327 328 } 329 330} 331 332 333function sendVideoChunkRequest(filefieldid, filename, foldername, siteurl, itemid) { 334 var blob = document.getElementById(filefieldid).files[0]; 335 var BYTES_PER_CHUNK = 20000000; // 20MB chunk sizes. 336 var SIZE = blob.size; 337 var start = 0; 338 var end = BYTES_PER_CHUNK; 339 window.uploadcounter=0; 340 window.uploadfilearray = []; 341 document.getElementById('progressNumber'+filefieldid).innerHTML = " 0 % "; 342 document.getElementById("fileProgressBar"+filefieldid).style.width = "1%"; 343 344 while( start < SIZE ) { 345 var chunk = blob.slice(start, end); 346 window.uploadfilearray[window.uploadcounter] = chunk; 347 window.uploadcounter = window.uploadcounter+1; 348 start = end; 349 end = start + BYTES_PER_CHUNK; 350 } 351 window.uploadcounter = 0; 352 window.uploadpercent = 0; 353 uploadFileChunkFile(window.uploadfilearray[window.uploadcounter], filefieldid, filename, foldername, siteurl, itemid, BYTES_PER_CHUNK); 354} 355 356function sendUploadRequestToLocal(filefieldid, filename, foldername, siteurl, itemid) { 357 var fd = new FormData(); 358 359 var blobFile = document.getElementById(filefieldid).files[0]; 360 fd.append("fileToUpload", blobFile); 361 fd.append("foldername", foldername); 362 fd.append("commentpic", 0); 363 fd.append("itemid", itemid); 364 365 var url = siteurl+"index.php?option=com_dryfta&view=event&task=sendUploadRequestToLocal"; 366 var obj = new XMLHttpRequest(); 367 try 368 { 369 obj=new ActiveXobject("Microsoft.XMLHTTP"); 370 } 371 catch(e) 372 { 373 try 374 { 375 obj=new XMLHttpRequest(); 376 } 377 catch(e) 378 { 379 alert("your browser not support AJAX"); 380 } 381 } 382 //step2 383 384 //Send the proper header information along with the request 385 // Upload progress on request.upload 386 obj.upload.addEventListener('progress', function(e) { 387 var percent_complete = (e.loaded / e.total)*100; 388 // Percentage of upload completed 389 document.getElementById('progressNumber'+filefieldid).innerHTML = Math.round(percent_complete)+'%'; 390 document.getElementById("fileProgressBar"+filefieldid).style.width = Math.round(percent_complete)+"%"; 391 }); 392 393 obj.open("POST",url,true); 394 obj.send(fd); 395 //step3 396 obj.onreadystatechange=function() 397 { 398 if(obj.readyState==4 && obj.status == 200) 399 { 400 var res = JSON.parse(obj.responseText); 401 if(res.flag == 1){ 402 403 var element = document.getElementById("bgprogressbar_"+filefieldid); 404 element.parentNode.removeChild(element); 405 document.getElementById('page-loader').style.display='none'; 406 407 if(document.getElementById("file_preview_"+filefieldid)){ 408 document.getElementById("file_preview_"+filefieldid).innerHTML = "<span style='color:red;'>"+res.error +"</span>"; 409 } 410 411 }else{ 412 filename = res.fileName; 413 moveUploadedFileToVimeo(filefieldid, filename, foldername, siteurl, itemid) 414 } 415 } 416 }; 417 418 obj.onerror = function() { 419 alert("Request failed!"); 420 var element = document.getElementById("bgprogressbar_"+filefieldid); 421 element.parentNode.removeChild(element); 422 document.getElementById('page-loader').style.display="none"; 423 }; 424} 425 426function moveUploadedFileToVimeo(filefieldid, filename, foldername, siteurl, itemid){ 427 428 var fd = new FormData(); 429 fd.append("filename", filename); 430 fd.append("foldername", foldername); 431 fd.append("commentpic", 1); 432 fd.append("itemid", itemid); 433 434 var url = siteurl+"index.php?option=com_dryfta&view=event&task=moveUploadedFileToVimeo"; 435 var obj = new XMLHttpRequest(); 436 try 437 { 438 obj=new ActiveXobject("Microsoft.XMLHTTP"); 439 } 440 catch(e) 441 { 442 try 443 { 444 obj=new XMLHttpRequest(); 445 } 446 catch(e) 447 { 448 alert("your browser not support AJAX"); 449 } 450 } 451 //step2 452 453 //Send the proper header information along with the request 454 obj.open("POST",url,true); 455 obj.send(fd); 456 //step3 457 obj.onreadystatechange=function() 458 { 459 if(obj.readyState==4 && obj.status == 200) 460 { 461 var res = JSON.parse(obj.responseText); 462 if(res.flag == 1){ 463 464 var element = document.getElementById("bgprogressbar_"+filefieldid); 465 element.parentNode.removeChild(element); 466 document.getElementById('page-loader').style.display='none'; 467 if(document.getElementById("file_name_"+filefieldid)){ 468 document.getElementById("file_name_"+filefieldid).innerHTML = "<span style='color:red;'>"+res.error +"</span>"; 469 } 470 471 }else{ 472 473 //document.getElementById('progressNumber'+filefieldid).innerHTML = '100% '; 474 //document.getElementById("fileProgressBar"+filefieldid).style.width = "100%"; 475 document.getElementById("bgprogressbar_"+filefieldid).innerHTML = ' '+filename+' - Uploaded'; 476 document.getElementById("bgprogressbar_"+filefieldid).style.background = "#46bf83"; 477 478 document.getElementById('file_preview_'+filefieldid).innerHTML = '<input type="hidden" id="attachment'+filefieldid+'" value="'+res.fileName+'.VIMEOVIDEO"/>'; 479 fileUploadedSaveData(); 480 } 481 } 482 }; 483 484 obj.onerror = function() { 485 alert("Request failed!"); 486 var element = document.getElementById("bgprogressbar_"+filefieldid); 487 element.parentNode.removeChild(element); 488 document.getElementById('page-loader').style.display="none"; 489 }; 490}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.