1/*============================= 2jquery.barousel.js 3v.0.1 4Julien Decaudin - 03/2010 5www.juliendecaudin.com 6=============================*/ 7 8(function ($) { 9 10 $.fn.next = function(settings){ 11 if (settings && settings.navFreeze == 0) 12 next(settings); 13 }; 14 15 $.fn.prev = function(settings){ 16 if (settings && settings.navFreeze == 0) 17 prev(settings); 18 }; 19 20 $.fn.adjustLayout = function(settings){ 21 if(settings){ 22 var currentImage = settings.imageList[settings.currentIndex]; 23 fitImage(settings, currentImage, settings.currentIndex); 24 } 25 }; 26 27 $.fn.close = function(settings){ 28 if(settings){ 29 close(settings); 30 } 31 }; 32 33 $.fn.barousel = function (callerSettings) { 34 35 var settings = $.extend({ 36 name: '', 37 imageWrapper: '.barousel_image', 38 contentWrapper: '.barousel_content', 39 contentLinksWrapper: null, 40 navWrapper: '.barousel_nav', 41 slideDuration: 3000, //duration of each slide in milliseconds 42 fadeIn: 1, //fade between slides; activated by default 43 fadeInSpeed: 500, //fade duration in milliseconds 44 manualCarousel: 0, //manual carousel if set to 1 45 contentResize: 1, //resize content container 46 contentResizeSpeed: 300, //content resize speed in milliseconds 47 debug: 0, 48 startIndex: 0, 49 hideNavBarDuration: 3000, 50 onLoading: 0, 51 showExifMode: 0, 52 storage: null, 53 stringTable: null, 54 exifData: null, 55 contextMenu: null, 56 closeHandler: null, 57 initCompleteHandler: null, 58 enableExifFunc: 0, 59 enableShareFunc: 0 60 }, callerSettings || {}); 61 62 settings.imageWrapper = $(this).find(settings.imageWrapper); 63 settings.contentWrapper = $(this).find(settings.contentWrapper); 64 settings.contentLinksWrapper = $(settings.contentLinksWrapper); 65 settings.navWrapper = $(this).find(settings.navWrapper); 66 settings.imageList = settings.imageWrapper.find('img').not('[class*=intro]'); //list of the items' background image (intro image is ignored) 67 settings.contentList = settings.contentWrapper.find('div').not('[class*=intro]'); //list of the items' content (intro content is ignored) 68 settings.contentLinksList = settings.contentLinksWrapper.find('a'); //list of the items' content links (optional) 69 settings.imageIntro = settings.imageWrapper.find('img[class*=intro]'); 70 settings.contentIntro = settings.contentWrapper.find('div[class*=intro]'); 71 settings.currentIndex = 0; //index of the current displayed item 72 settings.totalItem = settings.imageList.length; //total number of items 73 settings.stopCarousel = 0; //flag to stop the carousel 74 settings.timerCarousel = 0; //timer for the carousel 75 settings.navFreeze = 0; //flag to avoid clicking too fast on the nav 76 settings.introActive = 0; //flag to know if there is an intro state and if it's active 77 settings.timerHideNavBar = 0; 78 settings.imageSize = new Array(settings.totalItem); 79 settings.prevImage = null; 80 81 if (settings.imageWrapper.find('img[class*=intro]').length > 0) { 82 settings.introActive = 1; 83 } 84 85 //set the index of each image 86 settings.imageList.each(function (n) { 87 88 var end_load = function(settings, n){ 89 currentImage = $(settings.imageList[n]); 90 var src = currentImage.attr("src"); 91 var class_name = currentImage.attr('class'); 92 93 if(class_name=="current"){ 94 95 settings.currentIndex = n; 96 97 $(settings.contentList).hide(); 98 99 loadModuleContent(settings); 100 101 if(settings.manualCarousel==0){ 102 if (settings.stopCarousel == 0) { 103 var nextIndex; 104 if (settings.currentIndex == settings.totalItem - 1) { 105 nextIndex = 0; 106 } else { 107 nextIndex = parseInt(settings.currentIndex) + 1; 108 } 109 110 if (settings.manualCarousel == 0){ 111 settings.timerCarousel = window.setTimeout(function(){ 112 loadItem(settings, nextIndex); 113 }, settings.slideDuration); 114 } 115 } 116 } 117 118 settings.onLoading = 0; 119 settings.navFreeze = 0; 120 showLoading(false); 121 } 122 }; 123 124 this.onload = function(e){ 125 126 settings.currentIndex = n; 127 128 settings.imageSize[settings.currentIndex] = { width:$(this).width(), 129 height:$(this).height() }; 130 131 currentImage = $(settings.imageList[settings.currentIndex]); 132 133 if(settings.enableExifFunc==1){ 134 currentImage.exifLoad(function(exif_data){ 135 136 settings.exifData = (!exif_data) ? null : exif_data; 137 138 fitImage(settings, currentImage.get(0), settings.currentIndex); 139 140 currentImage.fadeIn(settings.fadeInSpeed, function () { 141 142 if(settings.prevImage){ 143 settings.prevImage.hide(); 144 settings.prevImage.removeClass('previous'); 145 } 146 147 end_load(settings, n); 148 149 if(settings.showExifMode==1) 150 showExifInfo(settings, currentImage, true); 151 }); 152 }); 153 } 154 else{ 155 settings.exifData = null; 156 157 fitImage(settings, currentImage.get(0), settings.currentIndex); 158 159 currentImage.fadeIn(settings.fadeInSpeed, function () { 160 161 if(settings.prevImage){ 162 settings.prevImage.hide(); 163 settings.prevImage.removeClass('previous'); 164 } 165 166 end_load(settings, n); 167 }); 168 } 169 }; 170 171 this.onerror = function(e){ 172 end_load(settings, n); 173 }; 174 175 this.index = n; 176 }); 177 178 //set the index of each content 179 settings.contentList.each(function (n) { this.index = n; }); 180 181 //set the index of each content link (optional) 182 settings.contentLinksList.each(function (n) { this.index = n; }); 183 184 //return error if different number of images and contents 185 if (settings.imageList.length != settings.contentList.length) { 186 /* DEBUG */ 187 if (settings.debug == 1) trace('[Barousel error] images and contents must be the same number'); 188 return this; 189 } 190 191 //init the default content height 192 if (settings.contentResize == 1 && settings.introActive == 0) { 193 $(settings.contentWrapper).height($(settings.contentList[settings.currentIndex]).height() + 10); 194 } 195 196 //init the content link default state (optional) 197 if (settings.contentLinksWrapper != null) { 198 $(settings.contentLinksList[settings.currentIndex]).addClass('current'); 199 } 200 201 //build the navigation 202 var strNavList = ""; 203 strNavList += "<div class='counter'><span class='counter_current'>1</span>/<span class='counter_total'>" + settings.totalItem + "</span></div>"; 204 205 if (settings.totalItem > 1){ 206 strNavList += "<div class='nav_btn nav_btn_icon prev transparent'><a href='#' title='prev'> </a></div>"; 207 strNavList += "<div class='nav_btn nav_btn_icon next transparent'><a href='#' title='next'> </a></div>"; 208 strNavList += "<div class='nav_btn_icon play transparent'><a href='#' title='play'> </a></div>"; 209 strNavList += "<div class='nav_btn_icon pause transparent'><a href='#' title='pause'> </a></div>"; 210 } 211 212 strNavList += "<div class='nav_btn nav_btn_icon close transparent'><a href='#' title='close'> </a></div>"; 213 214 if(settings.enableExifFunc==1 && !(isIE()&&getInternetExplorerVersion()<=10)){ 215 strNavList += '<div class="image_exif_wrapper turn_c">'; 216 strNavList += '<table><tr>'; 217 strNavList += '<td><span>' + settings.stringTable.getString("title_exif_info") + ':</span></td>'; 218 strNavList += '<td></td>'; 219 strNavList += '<td><span>' + settings.stringTable.getString("title_exif_off") + '</span></td>'; 220 strNavList += '<td><div class="image_exif turn_m">'; 221 222 if(settings.storage){ 223 settings.showExifMode = settings.storage.getl("showExifMode") == undefined ? 0 : settings.storage.getl("showExifMode"); 224 strNavList += '<a href="#"><span class="icon" style="left: ' + ((settings.showExifMode==1) ? '25px;' : '0px') + '"></span></a>'; 225 } 226 227 strNavList += '</div></td>'; 228 strNavList += '<td><span>' + settings.stringTable.getString("title_exif_on") + '</span></td>'; 229 strNavList += '</tr></table>'; 230 strNavList += '</div>'; 231 } 232 233 if(settings.enableShareFunc==1) 234 strNavList += '<div class="albutton toolbar-button-right" id="btnShareImage" style="display:block"><div class="ticon"></div></div>'; 235 236 settings.navWrapper.append(strNavList); 237 settings.navList = settings.navWrapper.find('a'); //list of the items' nav link 238 239 $(".play").css("display", "block"); 240 $(".pause").css("display", "none"); 241 242 if(settings.enableShareFunc==1){ 243 244 $("#btnShareImage").attr("title", m.getString('btn_sharelink')); 245 246 settings.contextMenu = $.contextMenu({ 247 selector: 'div#btnShareImage', 248 trigger: 'left', 249 callback: function(key, options) { 250 if(key=="upload2facebook"){ 251 var currentImage = $(settings.imageList[settings.currentIndex]); 252 var upload_files = new Array(0); 253 upload_files.push(currentImage.attr("uhref")); 254 open_upload2service_window("facebook", upload_files); 255 upload_files = null; 256 } 257 else if(key=="upload2flickr"){ 258 var currentImage = $(settings.imageList[settings.currentIndex]); 259 var upload_files = new Array(0); 260 upload_files.push(currentImage.attr("uhref")); 261 open_upload2service_window("flickr", upload_files); 262 upload_files = null; 263 } 264 else if(key=="upload2picasa"){ 265 var currentImage = $(settings.imageList[settings.currentIndex]); 266 var upload_files = new Array(0); 267 upload_files.push(currentImage.attr("uhref")); 268 open_upload2service_window("picasa", upload_files); 269 upload_files = null; 270 } 271 else if(key=="upload2twitter"){ 272 var currentImage = $(settings.imageList[settings.currentIndex]); 273 var upload_files = new Array(0); 274 upload_files.push(currentImage.attr("uhref")); 275 open_upload2service_window("twitter", upload_files); 276 upload_files = null; 277 } 278 else if(key=="share2facebook"){ 279 var currentImage = $(settings.imageList[settings.currentIndex]); 280 var selectFileArray = new Array(0); 281 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 282 open_sharelink_window("facebook", selectFileArray); 283 selectFileArray = null; 284 } 285 else if(key=="share2googleplus"){ 286 var currentImage = $(settings.imageList[settings.currentIndex]); 287 var selectFileArray = new Array(0); 288 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 289 open_sharelink_window("googleplus", selectFileArray); 290 selectFileArray = null; 291 } 292 else if(key=="share2twitter"){ 293 var currentImage = $(settings.imageList[settings.currentIndex]); 294 var selectFileArray = new Array(0); 295 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 296 open_sharelink_window("twitter", selectFileArray); 297 selectFileArray = null; 298 } 299 else if(key=="share2plurk"){ 300 var currentImage = $(settings.imageList[settings.currentIndex]); 301 var selectFileArray = new Array(0); 302 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 303 open_sharelink_window("plurk", selectFileArray); 304 selectFileArray = null; 305 } 306 else if(key=="share2weibo"){ 307 var currentImage = $(settings.imageList[settings.currentIndex]); 308 var selectFileArray = new Array(0); 309 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 310 open_sharelink_window("weibo", selectFileArray); 311 selectFileArray = null; 312 } 313 else if(key=="share2qq"){ 314 var currentImage = $(settings.imageList[settings.currentIndex]); 315 var selectFileArray = new Array(0); 316 selectFileArray.push(settings.storage.get('openurl') + "/" + currentImage.attr("file")); 317 open_sharelink_window("qq", selectFileArray); 318 selectFileArray = null; 319 } 320 }, 321 items: { 322 "submenu_upload": { 323 name : settings.stringTable.getString("title_upload2"), 324 items : { 325 "upload2facebook": { 326 name: settings.stringTable.getString("title_facebook") 327 }, 328 "upload2flickr": { 329 name: settings.stringTable.getString("title_flickr") 330 }, 331 "upload2picasa": { 332 name: settings.stringTable.getString("title_picasa") 333 }, 334 "upload2twitter": { 335 name: settings.stringTable.getString("title_twitter") 336 } 337 } 338 }, 339 "submenu_share": { 340 name : settings.stringTable.getString("title_share2"), 341 items : { 342 "share2facebook": { 343 name: settings.stringTable.getString("title_facebook") 344 }, 345 "share2googleplus": { 346 name: settings.stringTable.getString("title_googleplus") 347 }, 348 "share2twitter": { 349 name: settings.stringTable.getString("title_twitter") 350 }, 351 "share2plurk": { 352 name: settings.stringTable.getString("title_plurk") 353 }, 354 "share2weibo": { 355 name: settings.stringTable.getString("title_weibo") 356 }, 357 "share2qq": { 358 name: settings.stringTable.getString("title_qq") 359 } 360 } 361 } 362 } 363 }); 364 } 365 366 //prev/next navigation type 367 settings.navList.each(function () { 368 $(this).click(function () { 369 if (settings.navFreeze == 0) { 370 window.clearTimeout(settings.timerCarousel); 371 settings.stopCarousel = 1; 372 373 if ($(this).parent().hasClass('prev')) { 374 prev(settings); 375 } 376 else if ($(this).parent().hasClass('next')) { 377 next(settings); 378 } 379 else if ($(this).parent().hasClass('close')) { 380 close(settings); 381 } 382 else if ($(this).parent().hasClass('play')) { 383 settings.manualCarousel = 0; 384 settings.stopCarousel = 0; 385 386 $(".play").css("display", "none"); 387 $(".pause").css("display", "block"); 388 389 var nextIndex; 390 391 if (settings.currentIndex == settings.totalItem - 1) { 392 nextIndex = 0; 393 } else { 394 nextIndex = parseInt(settings.currentIndex) + 1; 395 } 396 397 if (settings.manualCarousel == 0){ 398 var loadItemCall = function () { loadItem(settings, nextIndex); }; 399 settings.timerCarousel = window.setTimeout(loadItemCall, settings.slideDuration); 400 } 401 } 402 else if ($(this).parent().hasClass('pause')) { 403 settings.manualCarousel = 1; 404 settings.stopCarousel = 1; 405 406 $(".play").css("display", "block"); 407 $(".pause").css("display", "none"); 408 } 409 else if ($(this).parent().hasClass('image_exif')) { 410 if(settings.showExifMode==0){ 411 $(this).parent().find('a span.icon').css('left', '25px'); 412 settings.showExifMode = 1; 413 414 var currentImage = $(settings.imageList[settings.currentIndex]); 415 showExifInfo(settings, currentImage, true); 416 417 if(settings.storage) 418 settings.storage.setl("showExifMode", 1); 419 } 420 else{ 421 $(this).parent().find('a span.icon').css('left', '0px'); 422 settings.showExifMode = 0; 423 424 var currentImage = $(settings.imageList[settings.currentIndex]); 425 showExifInfo(settings, currentImage, false); 426 427 if(settings.storage) 428 settings.storage.setl("showExifMode", 0); 429 } 430 } 431 } 432 433 settings.introActive = 0; 434 return false; 435 }); 436 }); 437 438 settings.navWrapper.mousedown(function () { 439 showHideNavBar(settings, true); 440 }); 441 442 settings.navWrapper.mousemove(function () { 443 showHideNavBar(settings, true); 444 }); 445 446 settings.imageWrapper.mousemove(function () { 447 showHideNavBar(settings, true); 448 }); 449 450 var showHideNavBarCall = function(){ showHideNavBar(settings, false); }; 451 settings.timerHideNavBar = window.setInterval(showHideNavBarCall, settings.hideNavBarDuration); 452 453 //start the carousel 454 if (settings.manualCarousel == 0) { 455 var loadItemCall = function () { loadItem(settings, 1); }; 456 settings.timerCarousel = window.setTimeout(loadItemCall, settings.slideDuration); 457 } 458 else{ 459 loadItem(settings, settings.startIndex, 1); 460 } 461 462 if(settings.initCompleteHandler) 463 settings.initCompleteHandler(settings); 464 465 return this; 466 }; 467 468 var prev = function(settings){ 469 settings.manualCarousel = 1; 470 settings.stopCarousel = 1; 471 472 $(".play").css("display", "block"); 473 $(".pause").css("display", "none"); 474 475 var previousIndex; 476 477 if (parseInt(settings.currentIndex) == 0) { 478 previousIndex = parseInt(settings.totalItem) - 1; 479 } else { 480 previousIndex = parseInt(settings.currentIndex) - 1; 481 } 482 loadItem(settings, previousIndex); 483 settings.currentIndex = previousIndex; 484 }; 485 486 var next = function(settings){ 487 settings.manualCarousel = 1; 488 settings.stopCarousel = 1; 489 490 $(".play").css("display", "block"); 491 $(".pause").css("display", "none"); 492 493 var nextIndex; 494 495 if (parseInt(settings.currentIndex) == (parseInt(settings.totalItem) - 1)) { 496 nextIndex = 0; 497 } else { 498 nextIndex = parseInt(settings.currentIndex) + 1; 499 } 500 501 loadItem(settings, nextIndex); 502 settings.currentIndex = nextIndex; 503 }; 504 505 var close = function(settings){ 506 if(settings){ 507 settings.manualCarousel = 1; 508 settings.stopCarousel = 1; 509 510 window.clearTimeout(settings.timerCarousel); 511 512 if(settings.enableShareFunc==1) 513 $.contextMenu( 'destroy', 'div#btnShareImage' ); 514 515 $("#"+settings.name).remove(); 516 517 if(settings.closeHandler){ 518 settings.closeHandler(); 519 } 520 } 521 }; 522 523 var showHideNavBar = function(settings, bshow){ 524 if(bshow){ 525 $(settings.navWrapper).show(); 526 527 window.clearInterval(settings.timerHideNavBar); 528 var showHideNavBarCall = function(){ showHideNavBar(settings, false); }; 529 settings.timerHideNavBar = window.setInterval(showHideNavBarCall, settings.hideNavBarDuration); 530 } 531 else{ 532 $(settings.navWrapper).hide(); 533 } 534 }; 535 536 var radians = function(angle) { 537 if (typeof angle == 'number') return angle; 538 return { 539 rad: function(z) { 540 return z; 541 }, 542 deg: function(z) { 543 return Math.PI / 180 * z; 544 } 545 }[String(angle).match(/[a-z]+$/)[0] || 'rad'](parseFloat(angle)); 546 }; 547 548 var fitImage = function(settings, ImgD, index) { 549 var exif_data = settings.exifData; 550 var window_width = $(window).width(); 551 var window_height = $(window).height(); 552 var orientation = "0"; 553 var imgWidth = settings.imageSize[index].width; 554 var imgHeight = settings.imageSize[index].height; 555 var currentImage = $(settings.imageList[index]); 556 557 if(imgWidth<=0 || imgHeight<=0) 558 return; 559 560 if(isIE()&&getInternetExplorerVersion()<=8){ 561 var newImgWidth = imgWidth; 562 var newImgHeight = imgHeight; 563 if( newImgWidth > window_width ){ 564 newImgWidth = window_width; 565 newImgHeight = (imgHeight*newImgWidth)/imgWidth; 566 } 567 568 if( newImgHeight > window_height ){ 569 newImgHeight = window_height; 570 newImgWidth = (imgWidth*newImgHeight)/imgHeight; 571 } 572 573 ImgD.width = newImgWidth; 574 ImgD.height = newImgHeight; 575 ImgD.style.left = (window_width-newImgWidth)/2 +"px"; 576 ImgD.style.top = (window_height-newImgHeight)/2 +"px"; 577 578 return; 579 } 580 581 ImgD.width = imgWidth; 582 ImgD.height = imgHeight; 583 ImgD.style.left = (window_width-imgWidth)/2 +"px"; 584 ImgD.style.top = (window_height-imgHeight)/2 +"px"; 585 586 if(exif_data){ 587 var ori = exif_data["Orientation"]; 588 589 if(ori==8) orientation = "270deg"; 590 else if(ori==3) orientation = "180deg"; 591 else if(ori==6) orientation = "90deg"; 592 593 if(orientation!="0"){ 594 var angle = radians(orientation); 595 var sin = Math.sin(angle); 596 var cos = Math.cos(angle); 597 var rotateWidth = Math.floor(Math.abs(sin) * imgHeight + Math.abs(cos) * imgWidth); 598 var rotateHeight = Math.floor(Math.abs(cos) * imgHeight + Math.abs(sin) * imgWidth); 599 600 imgWidth = rotateWidth; 601 imgHeight = rotateHeight; 602 } 603 } 604 605 var newImgWidth = imgWidth; 606 var newImgHeight = imgHeight; 607 if( newImgWidth > window_width ){ 608 newImgWidth = window_width; 609 newImgHeight = (imgHeight*newImgWidth)/imgWidth; 610 } 611 612 if( newImgHeight > window_height ){ 613 newImgHeight = window_height; 614 newImgWidth = (imgWidth*newImgHeight)/imgHeight; 615 } 616 617 var transform = "scale("+(newImgWidth/imgWidth) +", "+(newImgHeight/imgHeight)+")"; 618 619 if(orientation!="0"){ 620 transform += " rotate("+orientation+")"; 621 } 622 /* 623 if(isIE()&&getInternetExplorerVersion()<=8){ 624 var filter = "progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',M11="+(newImgWidth/imgWidth)+",M12=0,M21=0,M22="+(newImgWidth/imgWidth)+")"; 625 ImgD.style.filter = filter; 626 627 currentImage.css("-ms-filter", filter); 628 currentImage.css("margin-left", "-500px"); 629 currentImage.css("margin-top", "-500px"); 630 } 631 else*/{ 632 currentImage.css("-ms-transform", transform); //- FF3.5/3.6 633 currentImage.css("-moz-transform", transform); //- FF3.5/3.6 634 currentImage.css("-o-transform", transform); //- Opera 10.5 635 currentImage.css("-webkit-transform", transform); //- Saf3.1+ 636 currentImage.css("transform", transform); //- Newer browsers (incl IE9) 637 } 638 }; 639 640 var loadItem = function (settings, index, bStartImage) { 641 642 showLoading(true); 643 644 settings.onLoading = 1; 645 settings.navFreeze = 1; 646 647 //reset the nav link current state 648 settings.navList.each(function (n) { $(this).removeClass('current'); }); 649 $(settings.navList[index]).addClass('current'); 650 651 //Change the background image then display the new content 652 var currentImage; 653 if (settings.introActive == 1) { 654 currentImage = $(settings.imageIntro); 655 } else { 656 currentImage = $(settings.imageList[settings.currentIndex]); 657 } 658 659 currentImage.fadeOut( "fast", function() { 660 661 if(bStartImage!=1){ 662 //- for clear memory 663 currentImage.attr('src', ''); 664 } 665 666 if (!currentImage.hasClass('default')) { currentImage.attr('class', 'previous'); } 667 668 if(bStartImage!=1) 669 settings.prevImage = currentImage; 670 else 671 settings.prevImage = null; 672 673 var nextImage = $(settings.imageList[index]); 674 nextImage.attr('class', 'current'); 675 nextImage.attr('src', nextImage.attr('path')); 676 }); 677 }; 678 679 var loadModuleContent = function (settings) { 680 681 var index = settings.currentIndex; 682 683 if (settings.introActive == 1) { 684 $(settings.contentIntro).hide(); 685 $(settings.contentWrapper).attr('class', ''); 686 } 687 688 //Resize content 689 if (settings.contentResize == 1 && parseInt($(settings.contentWrapper).height()) != parseInt($(settings.contentList[index]).height() + 10)) { 690 $(settings.contentWrapper).animate({ 691 height: $(settings.contentList[index]).height() + 10 692 }, settings.contentResizeSpeed, function () { 693 loadModuleContentAction(settings, index); 694 }); 695 } else { 696 loadModuleContentAction(settings, index); 697 } 698 699 //update counter for previous/next nav 700 $(settings.navWrapper).find('.counter_current').text(index + 1); 701 }; 702 703 var loadModuleContentAction = function (settings, index) { 704 //display the loaded content 705 $(settings.contentList).hide(); 706 $(settings.contentList[index]).show(); 707 708 if (settings.contentLinksWrapper != null) { 709 $(settings.contentLinksList).removeClass('current'); 710 $(settings.contentLinksList[index]).addClass('current'); 711 } 712 }; 713 714 var showLoading = function(bShow){ 715 if(bShow){ 716 var window_width = $(window).width(); 717 var window_height = $(window).height(); 718 $(".barousel_loading").css("left", ( window_width - $(".barousel_loading").width() )/2); 719 $(".barousel_loading").css("top", ( window_height - $(".barousel_loading").height() )/2); 720 $(".barousel_loading").show(); 721 $(".barousel_exif_data").hide(); 722 } 723 else 724 $(".barousel_loading").hide(); 725 }; 726 727 var showExifInfo = function(settings, oImage, bshow){ 728 var exif_data = settings.exifData; 729 var stble = settings.stringTable; 730 var showData = function(data){ 731 if(data==undefined) return ""; 732 return data; 733 }; 734 735 if(!exif_data||!bshow){ 736 $(".barousel_exif_data").hide(); 737 return; 738 } 739 740 var make = showData(exif_data["Make"]); 741 var model = showData(exif_data["Model"]); 742 var t = showData(exif_data["ExposureTime"]); 743 var f = showData(exif_data["FNumber"]); 744 var length = showData(exif_data["FocalLength"]); 745 var iso = showData(exif_data["ISOSpeedRatings"]); 746 var ev = showData(exif_data["ExposureBias"]); 747 var soft = showData(exif_data["Software"]); 748 var date = showData(exif_data["DateTime"]); 749 var dpi = showData(exif_data["XResolution"]); 750 var sa = showData(exif_data["Saturation"]); 751 var sha = showData(exif_data["Sharpness"]); 752 var wb = showData(exif_data["WhiteBalance"]); 753 754 if(t!=""){ 755 if ( t < 1 ) { 756 t = "1/" + Math.round( 1 / t ) + "sec"; 757 } else { 758 t = t + "sec"; 759 } 760 } 761 762 var evnum = new Number( ev ) ; 763 ev = evnum.toFixed( 1 ) ; 764 765 var showExit = stble.getString("title_exif_make") + ": " + make + "<br>" + 766 stble.getString("title_exif_model") + ": " + model + "<br>" + 767 stble.getString("title_exif_shutter") + ": " + t + "<br>" + 768 stble.getString("title_exif_aperture") + ": " + f + "<br>" + 769 "ISO: " + iso + "<br>" + 770 stble.getString("title_exif_focal_length") + ": " + length + "mm<br>" + 771 stble.getString("title_exif_exposure") + ": " + ev + "<br>" + 772 stble.getString("title_exif_wb") + ": " + wb + "<br>" + 773 stble.getString("title_exif_saturation") + ": " + sa + "<br>" + 774 stble.getString("title_exif_sharpness") + ": " + sha + " <br>" + 775 stble.getString("title_exif_software") + ": " + soft + "<br>" + 776 stble.getString("title_exif_resolution") + ": " + dpi + "DPI<br>" + 777 stble.getString("title_exif_date") + ": " + date; 778 779 $(".barousel_exif_data").html( showExit.replace( new RegExp( String.fromCharCode(0), "g" ), '' )); 780 $(".barousel_exif_data").show(); 781 }; 782 783 var trace = function(msg){ 784 if(console.log) 785 console.log(msg); 786 }; 787})(jQuery);