1(function (w, d){ 2 "use strict"; 3 //Global to page 4 var checkBoxCounter = 0; 5 var messageLength = 0; 6 var maxMsgLimit = 1000; 7 var twitterMsgLimit = 120; 8 var linkedinMsgLimit = 700; 9 var emailTimeOutId = false; 10 var uploadMsg = 'Uploading your ï¬le(s) to ZipShare'; 11 var noFileWarningMsg = 'Please add a file first.'; 12 var noLoginWarningMsg = 'Please login to use this feature.'; 13 var blankFileMsg = 'One or more files were not uploaded because their file sizes are 0 bytes.'; 14 var unsupportedIEMsg = "ZipShare currently does not support your browser. Please upgrade to a more recent version or use another browser such as Internet Explorer 11, Firefox, or Google Chrome."; 15 var passwordCheckAjax = false; 16 var emailCheckAjax = false; 17 var passwordSupportMsg = "This password may cause compatibility problems under MS-DOS or other operating systems. Please use only the English language letters A-Z, numerals, and standard punctuation marks such as #, *, and !."; 18 var fileNameLengthSupportMsg = "Because of file name size limitations in certain cloud services, ZipShare supports files names containing up to " + fileNameLimit + " characters. Please use a shorter name for this operation."; 19 20 // On-Ready calls 21 $(d).ready(function(e){ 22 if(common.isUserLoggedIn() && $('#endBeta-bkg').length !=0){ 23 common.openUpgradeBetaPopup(true); 24 } 25 if($('#cloudquota-wrapper').hasClass('require')) { 26 common.getUserSharedEmails(); 27 } 28 29 // Method to show error message for not supported browser usage 30 if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x; 31 var ieversion=new Number(RegExp.$1); // capture x.x portion and store as a number 32 if (ieversion<=9) { 33 $('#bkg').show(); 34 $('#bkg .popupholder').css({left:'0', top:'0', margin:'0px'}); 35 $('#bkg .heading').html("ZIPSHARE"); 36 $('#bkg p').hide(); 37 $('#bkg span.loader').hide(); 38 $('#bkg div.savecancel').hide(); 39 $('#bkg p').show(); 40 $('#bkg p').html(unsupportedIEMsg); 41 $('#bkg div.savecancel').css({display:'block', width:'100%'}); 42 var btnOK = $('#bkg div.savecancel a.btnsave'); 43 btnOK.off(); 44 btnOK.on('click', function() { 45 $('#bkg').hide(); 46 }); 47 btnOK.html("OK"); 48 $('#bkg a.cancel, #bkg span.or').addClass('none'); 49 $('#bkg div.savecancel').css({textAlign:'center'}); 50 btnOK.css('width','26%'); 51 btnOK.focus(); 52 var left = parseInt($('#bkg .popupholder').outerWidth() / 2); 53 var top = parseInt($('#bkg div.popupholder').outerHeight() / 2); 54 $('#bkg .popupholder').css({left:'50%', top:'50%',margin:'-'+top+'px 0 0 -'+left+'px'}); 55 } 56 } 57 58 59 $('#recipentEmail').attr('checked', false); 60 $('#Facebook').attr('checked', false); 61 $('#Twitter').attr('checked', false); 62 $('#linkedin').attr('checked', false); 63 $('#message_box textarea').val(''); 64 65// $.removeCookie("twitterAccessToken"); 66// $.removeCookie("twitterAccessTokenSecret"); 67 68// $('#shareForm')[0].FBAccessToken.value = ""; 69// $('#shareForm')[0].linkedinAccessToken.value = ""; 70// $('#shareForm input:hidden[name=FBGroupValue]').val(''); 71// $('#shareForm input:hidden[name=INGroupValue]').val(''); 72 73 74 var showUploadErrorPopup = function(response, emptyFiles) { 75 if(response.length == 0 && emptyFiles) { 76 common.showLoaderPopup(common.headZipshare, 'Empty folder(s) and size 0 file(s) cannot be uploaded.', false, 'OK', common.hideBkg); 77 } else if(response.length != 0 && emptyFiles) { 78 common.showLoaderPopup(common.headZipshare, blankFileMsg, false, 'OK', common.hideBkg); 79 } else if(response.length == 0 && !emptyFiles) { 80 common.showLoaderPopup(common.headZipshare, 'Empty folder(s) cannot be uploaded.', false, 'OK', common.hideBkg); 81 } else { 82 common.hideBkg(); 83 } 84 }; 85 var showFilenameErrorPopup = function(foriegnFileName, emptyFile, fileNameLengthSupport) { 86 if(foriegnFileName) { 87 common.showLoaderPopup(common.headZipshare, common.nameSupportMsg, false, 'OK', function() { 88 if(emptyFile) { 89 common.showLoaderPopup(common.headZipshare, blankFileMsg, false, 'OK', function() { 90 if(fileNameLengthSupport) { 91 common.showLoaderPopup(common.headZipshare, fileNameLengthSupportMsg, false, 'OK', common.hideBkg); 92 } else { 93 common.hideBkg(); 94 } 95 });
96 } else if(fileNameLengthSupport) { 97 common.showLoaderPopup(common.headZipshare, fileNameLengthSupportMsg, false, 'OK', common.hideBkg); 98 } else { 99 common.hideBkg(); 100 } 101 }); 102 return true; 103 } else if(emptyFile) { 104 common.showLoaderPopup(common.headZipshare, blankFileMsg, false, 'OK', function() { 105 if(fileNameLengthSupport) { 106 common.showLoaderPopup(common.headZipshare, fileNameLengthSupportMsg, false, 'OK', common.hideBkg); 107 } else { 108 common.hideBkg(); 109 } 110 }); 111 return true; 112 } else if(fileNameLengthSupport) { 113 common.showLoaderPopup(common.headZipshare, fileNameLengthSupportMsg, false, 'OK', common.hideBkg); 114 return true; 115 } 116 return false; 117 }; 118 var typewatch = (function(){ 119 var timer = 0; 120 return function(callback, ms){ 121 clearTimeout (timer); 122 timer = setTimeout(callback, ms); 123 }; 124 })(); 125 var isValidEmailChar = function(keyCode) { 126 if(keyCode == 8 || keyCode == 46 || keyCode == 173 || keyCode == 190 || (keyCode >= 48 && keyCode <= 90)){ 127 return true; 128 } 129 return false; 130 }; 131 var isNotValidEmailChar = function(keyCode) { 132 if(keyCode == 32 || keyCode == 188 || keyCode == 191 || keyCode == 192){ 133 return true; 134 } 135 return false; 136 }; 137 var checkArrow = function(keyCode){ 138 if(keyCode >= 37 && keyCode <= 40){ 139 return true; 140 } 141 return false; 142 }; 143 var checkShareEnabled = function(){ 144 var isDone = $('span.one').hasClass('active'); 145 if($('.sharewithblock span.two').length < 1){ 146 isDone = isDone && $('#from span.two').hasClass('active') && $('.sharewithblock span.three').hasClass('active'); 147 } else { 148 isDone = isDone && $('.sharewithblock span.two').hasClass('active'); 149 } 150 if(isDone){ 151 $('#share').removeClass('btndeactive').addClass('btncommon'); 152 } else { 153 $('#share').removeClass('btncommon').addClass('btndeactive'); 154 } 155 }; 156 var clearState = function(containerId){ 157 $('#' + containerId + ' input:password').each(function(){ 158 $(this).val(''); 159 $('#' + this.name).removeClass('redcross'); 160 $('#' + this.name).removeClass('greencheck'); 161 $('#from span.two').removeClass('active'); 162 }); 163 checkShareEnabled(); 164 }; 165 var checkProNewUserRePassword = function(testResult){ 166 if(testResult){ 167 var password = $('input:password[name=pro_new_user_password]').val(); 168 var rePassword = $('input:password[name=pro_new_user_re_password]').val(); 169 if(common.isEmpty(rePassword)){ 170 $('#pro_new_user_re_password').removeClass('redcross'); 171 $('#pro_new_user_re_password').removeClass('greencheck'); 172 $('span.one').removeClass('active'); 173 } else { 174 if(password === rePassword){ 175 $('#pro_new_user_re_password').removeClass('redcross').addClass('greencheck'); 176 $('span.one').addClass('active'); 177 } else { 178 $('#pro_new_user_re_password').removeClass('greencheck').addClass('redcross'); 179 $('span.one').removeClass('active'); 180 } 181 } 182 } else { 183 $('#pro_new_user_re_password').removeClass('redcross'); 184 $('#pro_new_user_re_password').removeClass('greencheck'); 185 $('span.one').removeClass('active'); 186 } 187 checkShareEnabled(); 188 }; 189 var checkProNewUserPassword = function() { 190 var sPassword = $('input:password[name=pro_new_user_password]').val(); 191 var testResult = false; 192 if(common.isEmpty(sPassword)) { 193 $('#pro_new_user_password').removeClass('redcross'); 194 $('#pro_new_user_password').removeClass('greencheck'); 195 } else { 196 if(common.validateWithRegex(common.fileNameRegex, sPassword)) { 197 if(common.validateWithRegex(common.passwordProtectFileRegex, sPassword)) { 198 $('#pro_new_user_password').removeClass('redcross').addClass('greencheck'); 199 testResult = true; 200 } else { 201 $('#pro_new_user_password').removeClass('greencheck').addClass('redcross'); 202 } 203 } else { 204 common.showLoaderPopup(common.headZipshare, passwordSupportMsg, false, 'OK', common.hideBkg); 205 $('#pro_new_user_password').removeClass('greencheck').addClass('redcross'); 206 } 207 } 208 return testResult; 209 }; 210 var checkNewUserRePassword = function(testResult){ 211 if(testResult){ 212 var password = $('input:password[name=new_user_password]').val(); 213 var rePassword = $('input:password[name=new_user_re_password]').val(); 214 if(common.isEmpty(rePassword)){ 215 $('#new_user_re_password').removeClass('redcross'); 216 $('#new_user_re_password').removeClass('greencheck'); 217 $('#from span.two').removeClass('active'); 218 } else { 219 if(password === rePassword){ 220 $('#new_user_re_password').removeClass('redcross').addClass('greencheck'); 221 $('#from span.two').addClass('active'); 222 } else { 223 $('#new_user_re_password').removeClass('greencheck').addClass('redcross'); 224 $('#from span.two').removeClass('active'); 225 } 226 } 227 } else { 228 $('#new_user_re_password').removeClass('redcross'); 229 $('#new_user_re_password').removeClass('greencheck'); 230 $('#from span.two').removeClass('active'); 231 } 232 checkShareEnabled(); 233 }; 234 var checkNewUserPassword = function(){ 235 var sPassword = $('input:password[name=new_user_password]').val(); 236 var testResult = false; 237 if(common.isEmpty(sPassword)){ 238 $('#new_user_password').removeClass('redcross'); 239 $('#new_user_password').removeClass('greencheck'); 240 } else { 241 if(common.validateWithRegex(common.passwordRegex, sPassword)){ 242 $('#new_user_password').removeClass('redcross').addClass('greencheck'); 243 testResult = true; 244 } else { 245 $('#new_user_password').removeClass('greencheck').addClass('redcross'); 246 } 247 } 248 return testResult; 249 }; 250 var checkReturningUserPassword = function(){ 251 if(passwordCheckAjax && passwordCheckAjax.readyState != 4){ 252 passwordCheckAjax.abort(); 253 passwordCheckAjax = false; 254 } 255 var sPassword = $('input:password[name=returning_user_password]').val(); 256 if(common.isEmpty(sPassword)){ 257 $('#returning_user_password').removeClass('redcross'); 258 $('#returning_user_password').removeClass('greencheck'); 259 $('#from span.two').removeClass('active'); 260 } else { 261 if(common.validateWithRegex(common.passwordRegex, sPassword)){ 262 passwordCheckAjax = $.ajax({
263 type: "POST", 264 url: "/userprofile/checkPassword", 265 data: {email:$('#email').val(),password:sPassword}, 266 beforeSend: function() { 267 $('#returning_user_password').removeClass('redcross').removeClass('greencheck'); 268 $('#returning_user_password').addClass('loader'); 269 }, 270 success: function(response){ 271 // we have the response 272 if(response.emailCheck){ 273 $('#returning_user_password').removeClass('loader').addClass('greencheck'); 274 $('#from span.two').addClass('active'); 275 loginUser(function() { 276 checkShareEnabled(); 277 }); 278 checkShareEnabled(); 279 } else { 280 $('#returning_user_password').removeClass('loader').addClass('redcross'); 281 $('#from span.two').removeClass('active'); 282 checkShareEnabled(); 283 } 284 }, 285 error: function(jqXHR) { 286 $('#returning_user_password').removeClass('loader').addClass('redcross'); 287 $('#from span.two').removeClass('active'); 288 if(jqXHR.statusText != 'abort') { 289 common.errorHandler(jqXHR); 290 } 291 checkShareEnabled(); 292 } 293 }); 294 } else { 295 $('#returning_user_password').removeClass('greencheck').addClass('redcross'); 296 $('#from span.two').removeClass('active'); 297 } 298 } 299 checkShareEnabled(); 300 }; 301 var clearAllForEmail = function(){ 302 $('#new_user').css("display","none"); 303 $('#mailChimpTermText').css("display","none"); 304 $('#returning_user').css("display","none"); 305 clearState('new_user'); 306 clearState('returning_user'); 307 }; 308 var emailValidation = function() { 309 if(emailCheckAjax && emailCheckAjax.readyState != 4){ 310 emailCheckAjax.abort(); 311 emailCheckAjax = false; 312 } 313 var sEmail = $('#email').val(); 314 if(sEmail == "") { 315 $("#email_error").css("display","none"); 316 clearAllForEmail(); 317 } else if (common.validateWithRegex(common.emailRegex, sEmail)) { 318 $('#email_error').css("display","none"); 319 emailCheckAjax = $.ajax({ 320 type: "POST", 321 url: "/userprofile/check", 322 data: "email=" + sEmail, 323 success: function(response){ 324 // we have the response 325 if(response.emailCheck){ 326 $('#new_user').css("display","none"); 327 $('#mailChimpTermText').css("display","none"); 328 $('#returning_user').css("display","block"); 329 clearState('new_user'); 330 } else { 331 $('#returning_user').css("display","none"); 332 $('#new_user').css("display","block"); 333 $('#mailChimpTermText').css("display","block"); 334 clearState('returning_user'); 335 } 336 }, 337 error: function(jqXHR) { 338 if(jqXHR.statusText != 'abort') { 339 common.errorHandler(jqXHR); 340 } 341 } 342 }); 343 } else { 344 emailTimeOutId = w.setTimeout(function() { 345 $("#email_error").fadeIn('fast'); 346 $('#email_error').css('opacity', 1); 347 },2000); 348 clearAllForEmail(); 349 } 350 }; 351 var getFileUploadLi = function(fileData) { 352 var allLi = ""; 353 $.each(fileData, function(index, file) { 354 allLi = allLi + '<li ts="'+ file.timeStamp + '" name="' + file.renamedFileName + '" class="none">' 355 + '<input type="hidden" name="fileId" value="' + file.fileId + '">' 356 + '<input type="hidden" name="renamedFileName" value="' + file.renamedFileName + '">' 357 + '<div class="fileicon ico' + file.fileType + '"></div><div class="inlineblock"><div class="filename">' 358 + file.originalFileName 359 + '</div><div class="fileweight">' 360 + common.fileSizeString(file.fileSize) 361 + '</div></div><div class="closeicon"></div></li>'; 362 }); 363 return allLi; 364 }; 365 var clearMessageBox = function(){ 366 var countValue = isNaN(parseInt($('#message_box label').text())) ? 0 : parseInt($('#message_box label').text()); 367 var currentMessageLength = $('#message_box textarea').val().length; 368 countValue = countValue + currentMessageLength; 369 changeCountWithColor(countValue); 370 $('#message_box textarea').val(''); 371 messageLength = 0; 372 }; 373 var showMessageBox = function(valueToCheck){ 374 if(valueToCheck <= 0){ 375 $('#message_box').css('display','none'); 376 clearMessageBox(); 377 } else { 378 $('#message_box').css('display','block'); 379 } 380 }; 381 var changeCountWithColor = function(countValue){ 382 if(countValue < 0 ) { 383 $('#message_box label').removeClass('normal').addClass('red'); 384 } else { 385 $('#message_box label').removeClass('red').addClass('normal'); 386 } 387 $('#message_box label').text(countValue); 388 }; 389 var manageLimitCounter = function(newLimit){ 390 var countValue = newLimit - messageLength; 391 changeCountWithColor(countValue); 392 }; 393 var checkShareWithActive = function(){ 394 var isDone = false; 395 if(checkBoxCounter > 0){ 396 if(checkBoxCounter == 1 && $('#recipentEmail')[0].checked){ 397 isDone = $('#recipentEmailDiv input[name=recipientEmail]').length > 0;
398 } else if($('#recipentEmail')[0].checked) { 399 isDone = ($('#recipentEmailDiv input[name=recipientEmail]').length > 0) && ($.trim($('#message_box textarea').val()).length > 0) ; 400 } else { 401 isDone = $.trim($('#message_box textarea').val()).length > 0; 402 } 403 } else { 404 return; 405 } 406 var spanObj = ($('.sharewithblock span.two').length < 1) ? $('.sharewithblock span.three') : $('.sharewithblock span.two'); 407 if(isDone){ 408 spanObj.addClass('active'); 409 } else { 410 spanObj.removeClass('active'); 411 } 412 checkShareEnabled(); 413 }; 414 var loginUser = function (success, sendActivation) { 415 var url, password, data, loadingMsg, errMsg, gaAction; 416 var rememberMe = false; 417 var label = "Web-sharing"; 418 var email = $('input#email').val(); 419 if ($('div#new_user').css('display') === 'block') { 420 gaAction = "Signup"; 421 common.eventAttempted(gaAction, label); 422 url = "/userprofile/create"; 423 password = $('input[name="new_user_password"]').val(); 424 if(common.isEmpty(sendActivation)){sendActivation = "true";} 425 data = {email:email, password:password, sendActivation:sendActivation}; 426 if(common.checkEmailPasswordBlank(email,password)){return;} 427 } else if ($('div#returning_user').css('display') === 'block') { 428 gaAction = "Signin"; 429 common.eventAttempted(gaAction, label); 430 url = "/userprofile/login"; 431 password = $('input[name="returning_user_password"]').val(); 432 data = {email:email, password:password, rememberMe:rememberMe}; 433 if(common.checkEmailPasswordBlank(email,password)){return;} 434 } else if ($('.sharewithblock span.two').length >= 1){ 435 success(); 436 return; 437 } else { 438 if(common.checkEmailPasswordBlank(email,password)){return;} 439 } 440 if(common.equalTo(url, '/userprofile/create')){ 441 loadingMsg = 'Creating Your Account...'; 442 errMsg = 'account creation difficulties'; 443 } 444 common.loginAjax(url, data, success, null, loadingMsg, errMsg, gaAction, label); 445 }; 446 var getCloudStrip = function() { 447 $.ajax({ 448 type: "POST", 449 url: "/cloud/cloudStrip", 450 beforeSend: function(){ 451 common.showLoaderPopup(common.headFetching,'', true); 452 }, 453 success: function(response){ 454 $('#cloud_flip #mainholder .contentholder').html(response); 455 $('#cloud_flip #mainholder .contentholder li').removeClass('active'); 456 var cloudName = $('#cloud_flip .addcloud ul').attr('cloudName'); 457 $('#cloud_flip #'+cloudName+'_li').addClass('active'); 458 showCloudFlip(false); 459 }, 460 error: function(jqXHR) { 461 common.errorHandler(jqXHR); 462 } 463 }); 464 }; 465 var getCloudFileLi = function(response, cloudName) { 466 var allLi = ""; 467 var iconClass; 468 $.each(response, function(index, file){ 469 var id = file.id; 470 if(cloudName == 'zipshare') { 471 id = file.id + "_" + (file.parent?file.parent:''); 472 } 473 iconClass = (file.type.toLowerCase() == "folder")?"icofolder":"icofile"; 474 allLi = allLi +'<li><p>' 475 + '<input type="checkbox" value="' + file.id + '" id="' + id 476 + '" name="addFromCloudCheckbox" fileName="' + file.name + '" parent="' + (file.parent?file.parent:'') 477 + '" size="' + file.size + '" filetype="' + file.type + '"/>' 478 + '<label for="'+ id + '"> </label></p>' 479 + '<div class="descholder">' 480 + '<div class="' + iconClass + ' ico' + file.type + '"> </div>' 481 + '<span class="file">' 482 + file.name 483 + '</span><span class="kind">' 484 + file.type 485 + '</span><span class="date">' 486 + file.formattedDate 487 + '</span> </div></li>'; 488 }); 489 return allLi; 490 }; 491 var updateCloudFileUL = function(response, cloudName){ 492 $('#cloud_flip .addcloud ul').attr('cloudName', cloudName); 493 if(response.length > 0) { 494 var directoryPath = "/"; 495 if($('#cloud_flip .filebreadcrumb a').length > 0){ 496 directoryPath = $('#cloud_flip .filebreadcrumb a:last').attr('directoryPath'); 497 } 498 $('#cloud_flip .addcloud ul').html(''); 499 $('#cloud_flip .addcloud ul').attr('directoryPath', directoryPath); 500 $('#cloud_flip .addcloud ul').append(getCloudFileLi(response, cloudName)); 501 $('#cloud_flip .addcloud ul').removeClass('none'); 502 $('#cloud_flip .addcloud .emptyList').addClass('none'); 503 } else { 504 $('#cloud_flip .addcloud ul').addClass('none'); 505 $('#cloud_flip .addcloud .emptyList').removeClass('none'); 506 507 } 508 }; 509 var getCloudFileList = function(cloudName, postData, object, successCallback, errorCallback) { 510 $.ajax({
511 type: "POST", 512 url: "/cloud/files", 513 data: "cloudName="+cloudName+(postData?postData:""), 514 beforeSend: function(){ 515 common.showLoaderPopup(common.headFetching,'', true); 516 }, 517 success: function(response, status, xhr){ 518 if($('#mobile_ui').css('display')=="block") { 519 $('section.maincontent, footer').addClass('none'); 520 } 521 if(successCallback){ 522 successCallback(response, cloudName); 523 } else { 524 updateCloudFileUL(response, cloudName); 525 } 526 updateFileBreadCrumb(object, cloudName); 527 $('#bkg').hide(); 528 }, 529 error: function(jqXHR){ 530 var cloudName = $('#cloud_flip .addcloud ul').attr('cloudName'); 531 $('#cloud_flip #mainholder .contentholder li').removeClass('active'); 532 $('#cloud_flip #'+cloudName+'_li').addClass('active'); 533 if(errorCallback){ 534 errorCallback(); 535 } else { 536 common.errorHandler(jqXHR); 537 } 538 } 539 }); 540 }; 541 var showCloudFlip = function(isHidden) { 542 if(isHidden){ 543 if($('#mobile_ui').css('display')=="block") { 544 $('section.maincontent, footer').addClass('none'); 545 } else { 546 $('#trans-bkg').removeClass('none'); 547 } 548 $('#cloud_flip .addfromcloud').hide(); 549 $('#cloud_flip').fadeIn('slow'); 550 $('#cloud_flip').css('opacity', 1); 551 var left = parseInt($('#cloud_flip .addfromcloud').outerWidth() / 2); 552 var top = parseInt($('#cloud_flip .addfromcloud').outerHeight() / 2); 553 $('#cloud_flip .addfromcloud').css({left:'50%', top:'50%',margin:'-'+top+'px 0 0 -'+left+'px'}); 554 $('#cloud_flip .addfromcloud').fadeIn('fast'); 555 $('#cloud_flip .addfromcloud').css('opacity', 1); 556 } else { 557 var cloudName = $('#cloud_flip .addcloud ul').attr('cloudName'); 558 getCloudFileList(cloudName, null, null, 559 function(response, cloudName){ 560 $('#cloud_flip .addcloud ul').removeClass('none'); 561 $('#cloud_flip .addcloud .emptyList').addClass('none'); 562 $('#cloud_flip').fadeIn('slow'); 563 $('#cloud_flip').css('opacity', 1); 564 updateCloudFileUL(response, cloudName); 565 var left = parseInt($('#cloud_flip .addfromcloud').outerWidth() / 2); 566 var top = parseInt($('#cloud_flip .addfromcloud').outerHeight() / 2); 567 $('#cloud_flip .addfromcloud').css({left:'50%', top:'50%',margin:'-'+top+'px 0 0 -'+left+'px'}); 568 $('#cloud_flip .addfromcloud').fadeIn('fast'); 569 $('#cloud_flip .addfromcloud').css('opacity', 1); 570 if($('#mobile_ui').css('display')=="none") { 571 $('#trans-bkg').removeClass('none'); 572 } 573 } 574 ); 575 } 576 }; 577 var getCloudUploadPostData = function(checkbox, cloudName) { 578 var id = $(checkbox).attr('id'); 579 if(cloudName == 'zipshare') { 580 id = id.substring(0,id.lastIndexOf('_')); 581 } 582 return '"id":"' + id + '","fileName":"' + $(checkbox).attr('fileName') 583 + '","parentId":"' + $(checkbox).attr('parent') + '","size":"' + $(checkbox).attr('size') 584 + '","filetype":"' + $(checkbox).attr('filetype') + '"'; 585 }; 586 var fbGroupCallback = function (groups) { 587 $('#fb-groups-select').css('display','block'); 588 if(groups.length > 0) { 589 $('#fb-groups-select ul').empty(); 590 for (var i = 0; i < groups.length; i++) { 591 $('#fb-groups-select ul').append('<li grpId="' + groups[i].id + '">'+ groups[i].name +'</li>'); 592 } 593 $('#Facebook').attr('hasgroups', true); 594 $('#fb-groups-select div.comboboxint').html(groups[0].name).attr('grpId', groups[0].id); 595 $('#shareForm input:hidden[name=FBGroupValue]').val(groups[0].id); 596 $('#shareForm input:hidden[name=FBGroupName]').val(groups[0].name); 597 } 598 $('#Facebook')[0].checked = true; 599 }; 600 601 var inGroupCallback = function (groups) { 602 $('#in-groups-select').css('display','block'); 603 if(groups.length > 0) { 604 $('#in-groups-select ul').empty(); 605 for (var i = 0; i < groups.length; i++) { 606 $('#in-groups-select ul').append('<li grpId="'+ groups[i].id +'">'+ groups[i].name +'</li>'); 607 } 608 $('#linkedin').attr('hasgroups', true); 609 $('#in-groups-select div.comboboxint').html(groups[0].name).attr('grpId', groups[0].id); 610 $('#shareForm input:hidden[name=INGroupValue]').val(groups[0].id); 611 $('#shareForm input:hidden[name=INGroupName]').val(groups[0].name); 612 } 613 $('#linkedin')[0].checked = true; 614 }; 615 var resetCloudFlipCheckbox = function() { 616 $.each($('#cloud_flip input[name=addFromCloudCheckbox]:checked'), function(index, checkBox) { 617 $(checkBox).trigger('click'); 618 });
619 }; 620 var checkCloudFlipAddButton = function() { 621 if($('#cloud_flip input[name=addFromCloudCheckbox]:checked').length > 0){ 622 $('#cloud_flip a.btnsave').addClass('btnactive'); 623 } else { 624 $('#cloud_flip a.btnsave').removeClass('btnactive'); 625 } 626 }; 627 var updateFileBreadCrumb = function(object, cloudName) { 628 $('#cloud_flip #mainholder #cloudIcon').removeClass().addClass('ico' + cloudName); 629 $('#cloud_flip .filebreadcrumb #cloudIcon').removeClass().addClass('ico' + cloudName); 630 $('#cloud_flip #selectedCloud').html($('#cloud_flip #'+cloudName+'_li span.displayblock').html()); 631 if(object && object.is('input')){ 632 $('#cloud_flip .filebreadcrumb .cloudName').addClass('none'); 633 var folderName = object.attr('filename'); 634 $('#cloud_flip .filebreadcrumb .clear').before( 635 '<span class="arrowblue"></span><a href="javascript:void(0);"' + 636 'fileId="' + object.attr('id') + '"' + 637 'parent="' + object.attr('parent') + '"' + 638 'title="' + folderName + '">' + folderName + '</a>'); 639 $('#cloud_flip .filebreadcrumb a').removeClass('inactiveAnchor'); 640 $('#cloud_flip .filebreadcrumb a:last').addClass('inactiveAnchor'); 641 $('#cloud_flip .filebreadcrumb span.arrowblue').removeClass('spanArrowBlue'); 642 $('#cloud_flip .filebreadcrumb span.arrowblue:last').addClass('spanArrowBlue'); 643 $('#cloud_flip .addcloud ul').attr('directoryPath', object.attr('parent')); 644 } else if(object && object.is('a')){ 645 $('#cloud_flip .filebreadcrumb .cloudName').addClass('none'); 646 object.nextAll('span, a').remove(); 647 object.addClass('inactiveAnchor'); 648 $('#cloud_flip .addcloud ul').attr('directoryPath', object.attr('parent')); 649 } else { 650 $('#cloud_flip .filebreadcrumb a').remove(); 651 $('#cloud_flip .filebreadcrumb .arrowblue').remove(); 652 $('#cloud_flip .filebreadcrumb .cloudName').html($('#cloud_flip #'+cloudName+'_li span.displayblock').html()); 653 $('#cloud_flip .filebreadcrumb .cloudName').removeClass('none'); 654 } 655 }; 656 var isShareEnabled = function() { 657 checkShareEnabled(); 658 if($('#share').hasClass('btncommon')) { 659 return true; 660 } else { 661 return false; 662 } 663 }; 664 var changeScrollPosition = function() { 665 if($('#mobile_ui').css('display')=="none"){ 666 $(document).scrollTop($('.maincontent').offset().top - 20); 667 } else { 668 if($('#fileUploadShow li').length > 1){ 669 $(document).scrollTop($('#fileUploadShow li:first').offset().top + 65); 670 } else { 671 $(document).scrollTop($('#fileUploadShow li:first').offset().top + 20); 672 } 673 } 674 }; 675 var hasCompleted = false; 676 var sameStatusCount = 0; 677 var lastTotalUploads = 0; 678 var updateStatusChecker = function(archiveId, cts) { 679 $.ajax({
680 type: "POST", 681 url: "/uploadStatus", 682 aysnc: false, 683 data: {archiveId: archiveId, timeStamp: cts} 684 }).done(function(response) { 685 if (response) { 686 $("#bkg .loader").hide(); 687 } 688 $("#bkg .progress-info").html(response); 689 690 if ($('#uploaded_item_status').length == 1) { 691 var totalUploads = $('#uploaded_item_size').html(); 692 if ((lastTotalUploads == totalUploads && ++sameStatusCount > 100) 693 || (totalUploads == $('#fileUploadShow li.none[ts=' + cts + ']').length)) { 694 successUploadHandler(cts); 695 return; 696 } 697 lastTotalUploads = totalUploads; 698 } 699 700 if (hasCompleted) { 701 return; 702 } 703 704 setTimeout(function() { 705 updateStatusChecker(archiveId, cts); 706 }, 3000); 707 }).fail(function(jqXhr, status, error) { 708 709 setTimeout(function() { 710 updateStatusChecker(archiveId, cts); 711 }, 1000); 712 }); 713 } 714 715 var successUploadHandler = function(cts) { 716 var successFileList = $("#uploaded_success_list").html(); 717 var successFiles = successFileList.split('|,|'); 718 for (var i = 0; i < successFiles.length; i++) { 719 var successFile = successFiles[i]; 720 if (successFile) { 721 $('#fileUploadShow li.none[ts=' + cts + '][name="' + successFile + '"]').removeClass('none'); 722 } 723 } 724 var noOfError = $('#fileUploadShow li.none[ts=' + cts + ']').length; 725 $('#fileUploadShow li.none[ts=' + cts + ']').remove(); 726 727 if($('#fileUploadShow li:not([class*="none"])').length > 0) { 728 $('#fileUploadShow').addClass('fileuploaded'); 729 $('span.one').addClass('active'); 730 changeScrollPosition(); 731 } 732 checkShareEnabled(); 733 734 $('#bkg').hide(); 735 $("#bkg .progress-info").hide(); 736 $("#bkg .progress-info").html(""); 737 738 hasCompleted = true; 739 sameStatusCount = 0; 740 lastTotalUploads = 0; 741 if (noOfError > 0) { 742 common.showLoaderPopup(common.headZipshare, common.errorInUploadMsg.replace("#no_of_files", noOfError), false, 'OK', function() { 743 common.hideBkg(); 744 }); 745 } 746 } 747 // bind events 748 $(d).on('keyup change', '#email', function (e) { 749 if(isValidEmailChar(e.keyCode) || isNotValidEmailChar(e.keyCode) || e.type === "change") { 750 typewatch(function(){ 751 w.clearTimeout(emailTimeOutId); 752 $("#email_error").css("display","none"); 753 emailValidation(); 754 }, 200); 755 } 756 }); 757 $(d).on('click', '#recipentEmail', function(e){ 758 if($('#recipentEmail')[0].checked){ 759 $('#recipentEmailDiv').show(); 760 $('#recipentEmailDiv').trigger('click'); 761 showMessageBox(++checkBoxCounter); 762 } else { 763 $('#recipentEmailDiv').hide(); 764 showMessageBox(--checkBoxCounter); 765 } 766 checkShareWithActive(); 767 }); 768 $(d).on('click', '#Twitter', function(e){ 769 if($(this)[0].checked){ 770 $(this)[0].checked = false; 771 var accessToken = $('#shareForm')[0].twitterAccessToken.value; 772 var accessTokenSecret = $('#shareForm')[0].twitterAccessTokenSecret.value; 773 if(accessToken == null || accessToken == "" || accessTokenSecret == null || accessTokenSecret == "") { 774 sm.twa(); 775 } else { 776 $(this)[0].checked = true; 777 showMessageBox(++checkBoxCounter); 778 manageLimitCounter(twitterMsgLimit); 779 } 780 } else { 781 showMessageBox(--checkBoxCounter); 782 var limitCounter = maxMsgLimit; 783 if($('#linkedin')[0].checked) { 784 limitCounter = linkedinMsgLimit; 785 } 786 manageLimitCounter(limitCounter); 787 } 788 checkShareWithActive(); 789 }); 790 $(d).on('click', '#Facebook', function(e) { 791 if($(this)[0].checked) { 792 $(this)[0].checked = false; 793 var accessToken = $('#shareForm')[0].fbAccessToken.value; 794 if(accessToken == null || accessToken == "") { 795 sm.fba(); 796 } else { 797 $(this)[0].checked = true; 798 //if we already have groups just toggle it .. 799 if (!$(this).attr('hasgroups')) { 800 sm.fbg(accessToken, 801 fbGroupCallback, 802 common.errorHandler 803 ); 804 } else { 805 $('#fb-groups-select').show(); 806 } 807 showMessageBox(++checkBoxCounter); 808 } 809 } else { 810 $('#fb-groups-select').hide(); 811 showMessageBox(--checkBoxCounter); 812 } 813 checkShareWithActive(); 814 }); 815 $(d).on('click', '#linkedin', function(e) { 816 if($(this)[0].checked) { 817 $(this)[0].checked = false; 818 var accessToken = $('#shareForm')[0].linkedinAccessToken.value; 819 var accessTokenSecret = $('#shareForm')[0].linkedinAccessTokenSecret.value; 820 if(accessToken == null || accessToken == "" || accessTokenSecret == null || accessTokenSecret == "") { 821 sm.ina(); 822 } else { 823 $(this)[0].checked = true; 824 //if we already have groups just toggle it .. 825 if (!$(this).attr('hasgroups')) { 826 sm.ing(accessToken, 827 accessTokenSecret, 828 inGroupCallback, 829 common.errorHandler 830 ); 831 } else { 832 $('#in-groups-select').show(); 833 } 834 showMessageBox(++checkBoxCounter); 835 var limitCounter = linkedinMsgLimit; 836 if($('#Twitter')[0].checked) { 837 limitCounter = twitterMsgLimit; 838 } 839 manageLimitCounter(limitCounter); 840 } 841 } else { 842 $('#in-groups-select').hide(); 843 showMessageBox(--checkBoxCounter); 844 var limitCounter = maxMsgLimit; 845 if($('#Twitter')[0].checked) { 846 limitCounter = twitterMsgLimit; 847 } 848 manageLimitCounter(limitCounter); 849 } 850 checkShareWithActive(); 851 }); 852 $(d).on('click', '#fb-groups-select', function(e) { 853 e.stopPropagation(); 854 $('#fb-groups-holder').toggle(); 855 }); 856 $(d).on('click', '#in-groups-select', function(e) { 857 e.stopPropagation(); 858 $('#in-groups-holder').toggle(); 859 }); 860 861 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 862 $('#file_dialog').addClass('file_dialog_safari'); 863 } else { 864 $(d).on('click', '#add_from_computer', function(e){
865 e.preventDefault(); 866 $('#file_dialog').trigger('click'); 867 }); 868 } 869 870 $(d).on('click', '#share', function(e) { 871 e.preventDefault(); 872 if($('#share').hasClass('btncommon') && isShareEnabled()) { 873 874 common.getSharedEmails(function() { 875 loginUser(function() { 876 var data = {archiveId: $('#shareForm input[name="archiveId"]').val(),pro_new_user_password: $('#shareForm input[name="pro_new_user_password"]').val(),pro_new_user_re_password: $('#shareForm input[name="pro_new_user_re_password"]').val()}; 877 $('#share').removeClass('btncommon').addClass('btndeactive'); 878 var data = $('#shareForm').serialize(); 879 880 common.checkFileAndLimits(data, function() { 881 }); 882 }, "false"); 883 }); 884 } 885 }); 886 887 $(d).on('click', '#Passwordprotectfiles', function(e) { 888 if($('#Passwordprotectfiles').is(':checked')) { 889 $('#Passwordprotectfiles').prop('checked', false); 890 if($('ul#fileUploadShow li').length < 1) { 891 common.showLoaderPopup(common.headZipshare, noFileWarningMsg, false, 'OK', common.hideBkg); 892 } else if($('.donesettings').length == 0) { 893 common.showLoaderPopup(common.headZipshare, noLoginWarningMsg, false, 'OK', common.hideBkg); 894 } else if($(this).hasClass('u_pr')) { 895 $('#Passwordprotectfiles').prop('checked', true); 896 $('#pro_new_user input[type="password"]').val(''); 897 $('#pro_new_user span.sprite').removeClass('redcross').removeClass('greencheck'); 898 $('span.one').removeClass('active'); 899 $('#pro_new_user').show(); 900 } else { 901 common.showUpgradePopup(true); 902 } 903 } else { 904 $('#pro_new_user input[type="text"]').val(''); 905 $('#pro_new_user').hide(); 906 if($('#fileUploadShow li').length > 0){ 907 $('span.one').addClass('active'); 908 } 909 } 910 checkShareEnabled(); 911 }); 912 $(d).on('keyup', 'input:password[name=pro_new_user_password], input:password[name=pro_new_user_re_password]', function (e) { 913 if(!checkArrow(e.keyCode)){ 914 typewatch(function(){ 915 checkProNewUserRePassword(checkProNewUserPassword()); 916 }, 200); 917 } 918 }); 919 $(d).on('keyup', 'input:password[name=new_user_password]', function (e) { 920 if(!checkArrow(e.keyCode)){ 921 typewatch(function(){ 922 checkNewUserRePassword(checkNewUserPassword()); 923 }, 200); 924 } 925 }); 926 $(d).on('keyup', 'input:password[name=new_user_re_password]', function (e) { 927 if(e.keyCode == 13){ 928 if($('#from span.two').hasClass('active')){ 929 loginUser(); 930 } 931 return; 932 } 933 if(!checkArrow(e.keyCode)){ 934 typewatch(function(){ 935 checkNewUserRePassword(checkNewUserPassword()); 936 }, 200); 937 } 938 }); 939 $(d).on('keyup', 'input:password[name=returning_user_password]', function (e) { 940 if(!checkArrow(e.keyCode)){ 941 typewatch(function(){ 942 checkReturningUserPassword(); 943 }, 500); 944 } 945 }); 946 $(d).on('drop dragover', function (e) { 947 e.preventDefault(); 948 }); 949 950 var jqXHR; 951 $('#file_dialog').fileupload({ 952 dataType: 'json', 953 singleFileUploads: false, 954// forceIframeTransport: true, 955 pasteZone: $('aside.leftp'), 956 submit : function (e, data) { 957 var archiveId = $('#shareForm input:hidden[name=archiveId]').val(); 958 var cts = new Date().getTime(); 959 data.formData = {archiveId: archiveId, timeStamp: cts}; 960 $("#bkg .progress-info").html(""); 961 common.showLoaderPopup(common.headUploading, uploadMsg, true); 962 updateStatusChecker(archiveId, cts); 963 }, 964 add: function(e, data) { 965 hasCompleted = false; 966 $("#bkg .progress-info").show(); 967 var filteredFiles = Array(); 968 var emptyFile = false; 969 var foriegnFileName = false; 970 var fileNameLengthSupport = false; 971 972 var uploadFileNumberLimit= parseInt($('#shareForm input[name="uploadFileNumberLimit"]').val()); //50 973 if ((data.files.length) > uploadFileNumberLimit) { 974 var uploaMaxFileLimitMsg = "Number of files you are trying to upload is too large. The maximum supported number of files per upload is: " + uploadFileNumberLimit + "."; 975 common.showLoaderPopup(common.headZipshare, uploaMaxFileLimitMsg, false, 'OK', common.hideBkg); 976 return; 977 } 978 979 var totalFilesize = 0; 980 var uploadFileSizeLimit= parseInt($('#shareForm input[name="uploadFileSizeLimit"]').val()); //2147483648 (2GB) 981 var uploadFileSizeLimitStr= $('#shareForm input[name="uploadFileSizeLimitStr"]').val(); 982 983 $.each(data.files, function(index, file) { 984 totalFilesize = totalFilesize + file.size; 985 if(common.validateWithRegex(common.fileNameRegex, file.name)) { 986 if(file.size != 0) { 987 if(file.name.length <= fileNameLimit) { 988 filteredFiles.push(file); 989 } else { 990 fileNameLengthSupport = true; 991 } 992 } else { 993 emptyFile = true; 994 } 995 } else { 996 foriegnFileName = true; 997 } 998 });
999 1000 if (totalFilesize > uploadFileSizeLimit){ 1001 var uploadMaxFileMsg = "Files you are trying to upload are too large. The maximum supported file size is: " + uploadFileSizeLimitStr+ "."; 1002 common.showLoaderPopup(common.headZipshare, uploadMaxFileMsg, false, 'OK', common.hideBkg); 1003 return; 1004 } 1005 1006 if(filteredFiles.length > 0) { 1007 if (showFilenameErrorPopup(foriegnFileName, emptyFile, fileNameLengthSupport)) { 1008 return; 1009 } 1010 data.files = filteredFiles; 1011 data.submit(); 1012 1013 } else { 1014 showFilenameErrorPopup(foriegnFileName, emptyFile, fileNameLengthSupport); 1015 } 1016 }, 1017 done : function (e, data) { 1018 //console.log(data); 1019 $('#fileUploadShow').append(getFileUploadLi(data.result)); 1020 }, 1021 fail : function (e, data) { 1022 //console.log(data); 1023 hasCompleted = true; 1024 $('#bkg').hide(); 1025 $('#bkg .progress-info').hide(); 1026 if(data.jqXHR.statusText == 'abort') { 1027 common.showLoaderPopup(common.headZipshare, 'Upload cancelled', false, 'OK', common.hideBkg); 1028 } else { 1029 common.showLoaderPopup(common.headZipshare, 'Unable to upload file.', false, 'OK', common.hideBkg); 1030 } 1031 } 1032 }); 1033 $(d).on('click', '#fileUploadShow div.closeicon', function(e){ 1034 var li = this.parentNode; 1035 var sTimeStamp = $(li).attr('ts'); 1036 var sArchiveId = $('#shareForm input:hidden[name=archiveId]').val(); 1037 var sRenamedFileName = $(li).find('input[name=renamedFileName]').val(); 1038 $.ajax({
1039 type: "POST", 1040 url: "/deleteFile", 1041 data: {timeStamp:sTimeStamp,archiveId:sArchiveId,renamedFileName:sRenamedFileName}, 1042 beforeSend: function(){ 1043 common.showLoaderPopup(common.head_delete, 'Deleting your file from ZipShare.', true); 1044 }, 1045 success: function(response){ 1046 // we have the response 1047 $(li).remove(); 1048 if($('#fileUploadShow li').length == 0){ 1049 $('#fileUploadShow').removeClass('fileuploaded'); 1050 $('span.one').removeClass('active'); 1051 if($('#Passwordprotectfiles').is(':checked')) { 1052 $('#Passwordprotectfiles').trigger('click'); 1053 } 1054 checkShareEnabled(); 1055 } 1056 $('#bkg').fadeOut('slow'); 1057 }, 1058 error: function(jqXHR) { 1059 common.errorHandler(jqXHR); 1060 } 1061 }); 1062 }); 1063 $(d).on('keyup', '#message_box textarea', function(e) { 1064 if(!checkArrow(e.keyCode)){ 1065 var currentMessageLength = $(this).val().length; 1066 var countValue = isNaN(parseInt($('#message_box label').text())) ? 0 : parseInt($('#message_box label').text()); 1067 if(currentMessageLength != null && !isNaN(currentMessageLength)){ 1068 var diff = messageLength - currentMessageLength; 1069 countValue = countValue + diff; 1070 if(currentMessageLength > maxMsgLimit) { 1071 common.showLoaderPopup(common.headZipshare, 'You cannot enter more than ' + maxMsgLimit + ' characters in the Message box.', false, 'OK', common.hideBkg); 1072 $(this).val($(this).val().substring(0, maxMsgLimit)); 1073 countValue = 0; 1074 currentMessageLength = maxMsgLimit; 1075 } 1076 changeCountWithColor(countValue); 1077 messageLength = currentMessageLength; 1078 } 1079 checkShareWithActive(); 1080 } 1081 }); 1082 $(d).on('click', '#message_box textarea', function(e) { 1083 var msgBox = $(e.target); 1084 if(msgBox.val().length == 0) { 1085 msgBox.focus(); 1086 return; 1087 } 1088 }); 1089 $(d).on('keyup', '.sharewith input:text[name=recipentEmail]', function(e) { 1090 checkShareWithActive(); 1091 }); 1092 $(d).on('click', '.comboboxblockborder li', function(e) { 1093 var parentId = $($(this).parents()[3]).attr('id'); 1094 $('#' + parentId + ' div.comboboxint').html($(this).text()); 1095 if(parentId.indexOf('fb') == 0){ 1096 $('#shareForm input:hidden[name=FBGroupValue]').val($(this).attr('grpId')); 1097 $('#shareForm input:hidden[name=FBGroupName]').val($(this).text()); 1098 } else if (parentId.indexOf('in') == 0){ 1099 $('#shareForm input:hidden[name=INGroupValue]').val($(this).attr('grpId')); 1100 $('#shareForm input:hidden[name=INGroupName]').val($(this).text()); 1101 } 1102 }); 1103 $(d).on('click', '#add_from_cloud', function(e) { 1104 hasCompleted = false; 1105 $("#bkg .progress-info").html(""); 1106 $("#bkg .progress-info").show(); 1107 if($('#mobile_ui').css('display')=="none") { 1108 $('#cloud_flip #mainholder .contentholder').show(); 1109 } 1110 var uid = $.cookie('uid'); 1111 if(uid == null || uid == 'undefined' || uid == '') { 1112 loginUser(function() { 1113 getCloudStrip(); 1114 }); 1115 } else { 1116 if($('#cloud_flip #mainholder .contentholder .firstblock').length > 0) { 1117 showCloudFlip(true); 1118 } else { 1119 getCloudStrip(); 1120 } 1121 } 1122 }); 1123 $(d).on('click', '#cloud_flip a.cancel, #cloud_flip a.whiteclose', function(e){ 1124 if($('#mobile_ui').css('display')=="block") { 1125 $('section.maincontent, footer').removeClass('none'); 1126 } 1127 resetCloudFlipCheckbox(); 1128 checkCloudFlipAddButton(); 1129 $('#cloud_flip').fadeOut('slow'); 1130 $('#trans-bkg').addClass('none'); 1131 }); 1132 $(d).on('click', '#cloud_flip .addcloud li .descholder', function(e){ 1133 var checkBox = $(this).parent().find('input[name=addFromCloudCheckbox]'); 1134 if(checkBox.attr('filetype').toLowerCase() == 'folder') { 1135 var postData = "&folderId=" + checkBox.attr('id') + "&parentPath=" + checkBox.attr('parent'); 1136 resetCloudFlipCheckbox(); 1137 getCloudFileList($('#cloud_flip .addcloud ul').attr('cloudName'), postData, checkBox); 1138 } else { 1139 checkBox.trigger('click'); 1140 } 1141 checkCloudFlipAddButton(); 1142 }); 1143 $(d).on('click', 'input[name=addFromCloudCheckbox]', function(e){
1144 checkCloudFlipAddButton(); 1145 }); 1146 $(d).on('click', '#cloud_flip a.btnsave', function(e){ 1147 if($(this).hasClass('btnactive')) { 1148 var archiveId = $('#shareForm input[name="archiveId"]').val(); 1149 var cts = new Date().getTime(); 1150 if($('#mobile_ui').css('display')=="block") { 1151 $('section.maincontent, footer').removeClass('none'); 1152 } 1153 var emptyFiles = false; 1154 var foriegnFileName = false; 1155 var fileNameLengthSupport = false; 1156 var cloudName = $('#cloud_flip .addcloud ul').attr('cloudName'); 1157 var postData = "["; 1158 1159 var uploadFileNumberLimit= parseInt($('#shareForm input[name="uploadFileNumberLimit"]').val()); 1160 var noOfCheckedFile = $('#cloud_flip input[name=addFromCloudCheckbox]:checked').length; 1161 if(noOfCheckedFile > uploadFileNumberLimit) { 1162 var uploaMaxFileMsg = "Number of files you are trying to upload is too large. The maximum supported number of files per upload is: " + uploadFileNumberLimit + "."; 1163 common.showLoaderPopup(common.headZipshare, uploaMaxFileMsg, false, 'OK', common.hideBkg); 1164 return; 1165 } 1166 1167 var totalFilesize = 0; 1168 var uploadFileSizeLimit= parseInt($('#shareForm input[name="uploadFileSizeLimit"]').val()); //2147483648 (2GB) 1169 var uploadFileSizeLimitStr= $('#shareForm input[name="uploadFileSizeLimitStr"]').val(); 1170 1171 $.each($('#cloud_flip input[name=addFromCloudCheckbox]:checked'), function(index, checkbox){ 1172 totalFilesize = totalFilesize + checkbox.size; 1173 if(!common.validateWithRegex(common.fileNameRegex, $(checkbox).attr('fileName'))) { 1174 foriegnFileName = true; 1175 return; 1176 } else if($(checkbox).attr('fileName').length <= fileNameLimit) { 1177 if($(checkbox).attr('size') != 0) { 1178 postData = postData + "{" + getCloudUploadPostData(checkbox, cloudName) + "},"; 1179 } else if($(checkbox).attr('filetype').toLowerCase() == 'folder') { 1180 postData = postData + "{" + getCloudUploadPostData(checkbox, cloudName) + "},"; 1181 } else { 1182 emptyFiles = true; 1183 return; 1184 } 1185 } else { 1186 fileNameLengthSupport = true; 1187 return; 1188 } 1189 }); 1190 1191 if (totalFilesize > uploadFileSizeLimit){ 1192 var uploadMaxFileMsg = "Files you are trying to upload are too large. The maximum supported file size is: " + uploadFileSizeLimitStr+ "."; 1193 common.showLoaderPopup(common.headZipshare, uploadMaxFileMsg, false, 'OK', common.hideBkg); 1194 return; 1195 } 1196 1197 if (showFilenameErrorPopup(foriegnFileName, emptyFiles, fileNameLengthSupport)) { 1198 return; 1199 } 1200 1201 postData = postData.length > 1 ? postData.substring(0, postData.length - 1) + "]" : postData + "]"; 1202 1203 if(postData.length > 2) { 1204 jqXHR = $.ajax({ 1205 type: "POST", 1206 url: "/uploadFromCloud", 1207 data: { 1208 cloudName:cloudName, 1209 filesData:postData,archiveId:archiveId,timeStamp:cts 1210 }, 1211 beforeSend: function(){ 1212 $('#cloud_flip').fadeOut('slow'); 1213 resetCloudFlipCheckbox(); 1214 checkCloudFlipAddButton(); 1215 $('#trans-bkg').addClass('none'); 1216 $("#bkg .progress-info").html(""); 1217 common.showLoaderPopup(common.headUploading, uploadMsg, true); 1218 updateStatusChecker(archiveId, cts); 1219 }, 1220 success: function(response){ 1221 $('#fileUploadShow').append(getFileUploadLi(response)); 1222 }, 1223 error : function (jqXHR, textStatus, errorThrown) { 1224 hasCompleted = true; 1225 $('#bkg').hide(); 1226 $('#bkg .progress-info').hide(); 1227 if(jqXHR.statusText == 'abort') { 1228 common.showLoaderPopup(common.headZipshare, 'Upload cancelled', false, 'OK', common.hideBkg); 1229 } else { 1230 common.showLoaderPopup(common.headZipshare, 'Unable to upload file.', false, 'OK', common.hideBkg); 1231 } 1232 } 1233 }); 1234 } else { 1235 $('#cloud_flip').fadeOut('slow'); 1236 resetCloudFlipCheckbox(); 1237 checkCloudFlipAddButton(); 1238 $('#trans-bkg').addClass('none'); 1239 setTimeout(function(){ 1240 showFilenameErrorPopup(foriegnFileName, emptyFiles, fileNameLengthSupport); 1241 }, 200); 1242 } 1243 } 1244 }); 1245 $('input[name="recipent_email_input"]').keyup(function(event){ 1246 var keynum = (event.keycode ? event.keycode : event.which); 1247 var value = $.trim(this.value); 1248 if (keynum == 32 || keynum == 13) { 1249 if (common.validateWithRegex(common.emailRegex, value)) { 1250 var elem = $('<span/>', {'class': 'emailcontainer'}); 1251 elem.append($('<span/>', {'class': 'emailholder','title': value}).html(value)); 1252 elem.append($('<span/>', {'class': 'close'}).html('X')); 1253 elem.append($('<input/>', {id: value, type: 'hidden', name: 'recipientEmail'}).val(value)); 1254 $(this).before(elem).val("").focus(); 1255 checkShareWithActive(); 1256 } 1257 } 1258 }).focusout(function(e) { 1259 var value = $.trim(this.value); 1260 var isValidEmail = common.validateWithRegex(common.emailRegex, value); 1261 if (isValidEmail) { 1262 var elem = $('<span/>', {'class': 'emailcontainer'}); 1263 elem.append($('<span/>', {'class': 'emailholder','title': value}).html(value)); 1264 elem.append($('<span/>', {'class': 'close'}).html('X')); 1265 elem.append($('<input/>', {id: value, type: 'hidden', name: 'recipientEmail'}).val(value)); 1266 value = ""; 1267 $(this).before(elem).val(value).focus(); 1268 checkShareWithActive(); 1269 } 1270 if (value == "") { 1271 if ($(this).prev().length > 0) { 1272 $(this).hide(); 1273 $('#recipentEmailDiv').css('padding-bottom', '3px'); 1274 } 1275 } 1276 }).keydown(function(event) { 1277 var value = $.trim(this.value); 1278 var keynum = (event.keycode ? event.keycode : event.which); 1279 if (keynum == 8 && value == "") { 1280 $(this).prev().remove(); 1281 checkShareWithActive(); 1282 } 1283 }).focus(function(e) { 1284 $('#recipentEmailDiv').css('padding-bottom', ''); 1285 }); 1286 $('#recipentEmailDiv').click(function(e) { 1287 $('input[name="recipent_email_input"]').show(); 1288 $('input[name="recipent_email_input"]').focus(); 1289 }); 1290 $(d).on( "click", "#recipentEmailDiv span.close", function(e) { 1291 $(this).parent().remove(); 1292 checkShareWithActive(); 1293 }); 1294 $(d).on('click', '#cloud_flip .contentholder li', function(e) { 1295 var cloudName = $(this).attr('id').split('_')[0]; 1296 if(cloudName == 'more' && $('#mobile_ui').css('display')=="none"){ 1297 e.stopPropagation(); 1298 if($('#cloud_flip .more_clouds_contentholder').css('display')=='none'){ 1299 $(this).addClass('active'); 1300 $('#cloud_flip .more_clouds_contentholder').show(); 1301 $('#cloud_flip .more_clouds_arrow').show(); 1302 } else { 1303 $(this).removeClass('active'); 1304 $('#cloud_flip .more_clouds_contentholder').hide(); 1305 $('#cloud_flip .more_clouds_arrow').hide(); 1306 } 1307 } else if(!$(this).hasClass('active')){ 1308 resetCloudFlipCheckbox(); 1309 checkCloudFlipAddButton(); 1310 if($(this).attr('hasAuthenticated')){ 1311 $('#cloud_flip #mainholder .contentholder li').removeClass('active'); 1312 $(this).addClass('active'); 1313 getCloudFileList(cloudName); 1314 } else if($(this).attr('id') != 'zipshare_li'){ 1315 cloud.authCloud(cloudName); 1316 } 1317 } 1318 }); 1319 $(d).on('click', '#cloud_flip .cloud_drop_down', function(e){
1320 e.stopPropagation(); 1321 if($('#mobile_ui').css('display')=="block") { 1322 if($('#cloud_flip #mainholder .contentholderarrow').css('display') == 'block') { 1323 $('#cloud_flip #mainholder .contentholderarrow').hide(); 1324 $('#cloud_flip #mainholder .contentholder').hide(); 1325 } else { 1326 if($('#cloud_flip .more_clouds_contentholder').css('display') == 'none'){ 1327 $('#cloud_flip .more_clouds_contentholder').show(); 1328 } 1329 $('#cloud_flip #mainholder .contentholderarrow').show(); 1330 $('#cloud_flip #mainholder .contentholder').show(); 1331 } 1332 } 1333 }); 1334 $(d).on('click', '#cloud_flip .filebreadcrumb #cloudIcon', function(e){ 1335 if($('#cloud_flip .filebreadcrumb a').length > 0){ 1336 resetCloudFlipCheckbox(); 1337 checkCloudFlipAddButton(); 1338 getCloudFileList($('#cloud_flip .addcloud ul').attr('cloudName')); 1339 } 1340 }); 1341 $(d).on('click', '#cloud_flip .filebreadcrumb a', function(e){ 1342 if(!$(this).hasClass('inactiveAnchor')){ 1343 resetCloudFlipCheckbox(); 1344 checkCloudFlipAddButton(); 1345 var postData = "&folderId=" + $(this).attr('fileId') + "&parentPath=" + $(this).attr('parent'); 1346 getCloudFileList($('#cloud_flip .addcloud ul').attr('cloudName'), postData, $(this)); 1347 } 1348 }); 1349 $(d).on('click', '#cloudtriggerhidden', function(e) { 1350 var cloudName = $(this).attr('cn'); 1351 $('#mainholder .contentholder li').removeClass('active'); 1352 $('#'+cloudName+'_li').addClass('active'); 1353 $(this).attr("cn", ""); 1354 resetCloudFlipCheckbox(); 1355 checkCloudFlipAddButton(); 1356 getCloudStrip(); 1357 }); 1358 $(d).on('click', '#returning_user .forgotpass, .learn-more, .signin-forgot', function(e) { 1359 $('#email').val(''); 1360 }); 1361 }); 1362}(window, document));
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.