BVB Source Codes

Seven VIP jubilee dance CMS management system Show lightbox.js Source code

Return Download Seven VIP jubilee dance CMS management system: download lightbox.js Source code - Download Seven VIP jubilee dance CMS management system Source code - Type:.js
  1. // -----------------------------------------------------------------------------------
  2. /*
  3.  
  4.         Table of Contents
  5.         -----------------
  6.         Configuration
  7.         Global Variables
  8.  
  9.         Extending Built-in Objects     
  10.         - Object.extend(Element)
  11.         - Array.prototype.removeDuplicates()
  12.         - Array.prototype.empty()
  13.  
  14.         Lightbox Class Declaration
  15.         - initialize()
  16.         - start()
  17.         - changeImage()
  18.         - resizeImageContainer()
  19.         - showImage()
  20.         - updateDetails()
  21.         - updateNav()
  22.         - enableKeyboardNav()
  23.         - disableKeyboardNav()
  24.         - keyboardAction()
  25.         - preloadNeighborImages()
  26.         - end()
  27.        
  28.         Miscellaneous Functions
  29.         - getPageScroll()
  30.         - getPageSize()
  31.         - getKey()
  32.         - listenKey()
  33.         - showSelectBoxes()
  34.         - hideSelectBoxes()
  35.         - showFlash()
  36.         - hideFlash()
  37.         - pause()
  38.         - initLightbox()
  39.        
  40.         Function Calls
  41.         - addLoadEvent(initLightbox)
  42.        
  43. */
  44. // -----------------------------------------------------------------------------------
  45.  
  46. //
  47. //      Configuration
  48. //
  49. var fileLoadingImage = "../images/loading.gif";        
  50. var fileBottomNavCloseImage = "../images/closelabel.gif";
  51.  
  52. var overlayOpacity = 0.8;       // controls transparency of shadow overlay
  53.  
  54. var animate = true;                     // toggles resizing animations
  55. var resizeSpeed = 7;            // controls the speed of the image resizing animations (1=slowest and 10=fastest)
  56.  
  57. var borderSize = 10;            //if you adjust the padding in the CSS, you will need to update this variable
  58.  
  59. // -----------------------------------------------------------------------------------
  60.  
  61. //
  62. //      Global Variables
  63. //
  64. var imageArray = new Array;
  65. var activeImage;
  66.  
  67. if(animate == true){
  68.         overlayDuration = 0.2;  // shadow fade in/out duration
  69.         if(resizeSpeed > 10){ resizeSpeed = 10;}
  70.         if(resizeSpeed < 1){ resizeSpeed = 1;}
  71.         resizeDuration = (11 - resizeSpeed) * 0.15;
  72. } else {
  73.         overlayDuration = 0;
  74.         resizeDuration = 0;
  75. }
  76.  
  77. // -----------------------------------------------------------------------------------
  78.  
  79. //
  80. //      Additional methods for Element added by SU, Couloir
  81. //      - further additions by Lokesh Dhakar
  82. //
  83. Object.extend(Element, {
  84.         getWidth: function(element) {
  85.                 element = $(element);
  86.                 return element.offsetWidth;
  87.         },
  88.         setWidth: function(element,w) {
  89.                 element = $(element);
  90.         element.style.width = w +"px";
  91.         },
  92.         setHeight: function(element,h) {
  93.                 element = $(element);
  94.         element.style.height = h +"px";
  95.         },
  96.         setTop: function(element,t) {
  97.                 element = $(element);
  98.         element.style.top = t +"px";
  99.         },
  100.         setSrc: function(element,src) {
  101.         element = $(element);
  102.         element.src = src;
  103.         },
  104.         setHref: function(element,href) {
  105.         element = $(element);
  106.         element.href = href;
  107.         },
  108.         setInnerHTML: function(element,content) {
  109.                 element = $(element);
  110.                 element.innerHTML = content;
  111.         }
  112. });
  113.  
  114. // -----------------------------------------------------------------------------------
  115.  
  116. //
  117. //      Extending built-in Array object
  118. //      - array.removeDuplicates()
  119. //      - array.empty()
  120. //
  121. Array.prototype.removeDuplicates = function () {
  122.     for(i = 0; i < this.length; i++){
  123.         for(j = this.length-1; j>i; j--){        
  124.             if(this[i][0] == this[j][0]){
  125.                 this.splice(j,1);
  126.             }
  127.         }
  128.     }
  129. }
  130.  
  131. // -----------------------------------------------------------------------------------
  132.  
  133. Array.prototype.empty = function () {
  134.         for(i = 0; i <= this.length; i++){
  135.                 this.shift();
  136.         }
  137. }
  138.  
  139. // -----------------------------------------------------------------------------------
  140.  
  141. //
  142. //      Lightbox Class Declaration
  143. //      - initialize()
  144. //      - start()
  145. //      - changeImage()
  146. //      - resizeImageContainer()
  147. //      - showImage()
  148. //      - updateDetails()
  149. //      - updateNav()
  150. //      - enableKeyboardNav()
  151. //      - disableKeyboardNav()
  152. //      - keyboardNavAction()
  153. //      - preloadNeighborImages()
  154. //      - end()
  155. //
  156. //      Structuring of code inspired by Scott Upton (http://www.uptonic.com/)
  157. //
  158. var Lightbox = Class.create();
  159.  
  160. Lightbox.prototype = {
  161.        
  162.         // initialize()
  163.         // Constructor runs on completion of the DOM loading. Loops through anchor tags looking for
  164.         // 'lightbox' references and applies onclick events to appropriate links. The 2nd section of
  165.         // the function inserts html at the bottom of the page which is used to display the shadow
  166.         // overlay and the image container.
  167.         //
  168.         initialize: function() {       
  169.                 if (!document.getElementsByTagName){ return; }
  170.                 var anchors = document.getElementsByTagName('a');
  171.                 var areas = document.getElementsByTagName('area');
  172.  
  173.                 // loop through all anchor tags
  174.                 for (var i=0; i<anchors.length; i++){
  175.                         var anchor = anchors[i];
  176.                        
  177.                         var relAttribute = String(anchor.getAttribute('rel'));
  178.                        
  179.                         // use the string.match() method to catch 'lightbox' references in the rel attribute
  180.                         if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
  181.                                 anchor.onclick = function () {myLightbox.start(this); return false;}
  182.                         }
  183.                 }
  184.  
  185.                 // loop through all area tags
  186.                 // todo: combine anchor & area tag loops
  187.                 for (var i=0; i< areas.length; i++){
  188.                         var area = areas[i];
  189.                        
  190.                         var relAttribute = String(area.getAttribute('rel'));
  191.                        
  192.                         // use the string.match() method to catch 'lightbox' references in the rel attribute
  193.                         if (area.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
  194.                                 area.onclick = function () {myLightbox.start(this); return false;}
  195.                         }
  196.                 }
  197.  
  198.                 // The rest of this code inserts html at the bottom of the page that looks similar to this:
  199.                 //
  200.                 //      <div id="overlay"></div>
  201.                 //      <div id="lightbox">
  202.                 //              <div id="outerImageContainer">
  203.                 //                      <div id="imageContainer">
  204.                 //                              <img id="lightboxImage">
  205.                 //                              <div style="" id="hoverNav">
  206.                 //                                      <a href="#" id="prevLink"></a>
  207.                 //                                      <a href="#" id="nextLink"></a>
  208.                 //                              </div>
  209.                 //                              <div id="loading">
  210.                 //                                      <a href="#" id="loadingLink">
  211.                 //                                              <img src="../images/loading.gif">
  212.                 //                                      </a>
  213.                 //                              </div>
  214.                 //                      </div>
  215.                 //              </div>
  216.                 //              <div id="imageDataContainer">
  217.                 //                      <div id="imageData">
  218.                 //                              <div id="imageDetails">
  219.                 //                                      <span id="caption"></span>
  220.                 //                                      <span id="numberDisplay"></span>
  221.                 //                              </div>
  222.                 //                              <div id="bottomNav">
  223.                 //                                      <a href="#" id="bottomNavClose">
  224.                 //                                              <img src="../images/close.gif">
  225.                 //                                      </a>
  226.                 //                              </div>
  227.                 //                      </div>
  228.                 //              </div>
  229.                 //      </div>
  230.  
  231.  
  232.                 var objBody = document.getElementsByTagName("body").item(0);
  233.                
  234.                 var objOverlay = document.createElement("div");
  235.                 objOverlay.setAttribute('id','overlay');
  236.                 objOverlay.style.display = 'none';
  237.                 objOverlay.onclick = function() { myLightbox.end(); }
  238.                 objBody.appendChild(objOverlay);
  239.                
  240.                 var objLightbox = document.createElement("div");
  241.                 objLightbox.setAttribute('id','lightbox');
  242.                 objLightbox.style.display = 'none';
  243.                 objLightbox.onclick = function(e) {     // close Lightbox is user clicks shadow overlay
  244.                         if (!e) var e = window.event;
  245.                         var clickObj = Event.element(e).id;
  246.                         if ( clickObj == 'lightbox') {
  247.                                 myLightbox.end();
  248.                         }
  249.                 };
  250.                 objBody.appendChild(objLightbox);
  251.                        
  252.                 var objOuterImageContainer = document.createElement("div");
  253.                 objOuterImageContainer.setAttribute('id','outerImageContainer');
  254.                 objLightbox.appendChild(objOuterImageContainer);
  255.  
  256.                 // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension.
  257.                 // If animations are turned off, it will be hidden as to prevent a flicker of a
  258.                 // white 250 by 250 box.
  259.                 if(animate){
  260.                         Element.setWidth('outerImageContainer', 250);
  261.                         Element.setHeight('outerImageContainer', 250);                 
  262.                 } else {
  263.                         Element.setWidth('outerImageContainer', 1);
  264.                         Element.setHeight('outerImageContainer', 1);                   
  265.                 }
  266.  
  267.                 var objImageContainer = document.createElement("div");
  268.                 objImageContainer.setAttribute('id','imageContainer');
  269.                 objOuterImageContainer.appendChild(objImageContainer);
  270.        
  271.                 var objLightboxImage = document.createElement("img");
  272.                 objLightboxImage.setAttribute('id','lightboxImage');
  273.                 objImageContainer.appendChild(objLightboxImage);
  274.        
  275.                 var objHoverNav = document.createElement("div");
  276.                 objHoverNav.setAttribute('id','hoverNav');
  277.                 objImageContainer.appendChild(objHoverNav);
  278.        
  279.                 var objPrevLink = document.createElement("a");
  280.                 objPrevLink.setAttribute('id','prevLink');
  281.                 objPrevLink.setAttribute('href','#');
  282.                 objHoverNav.appendChild(objPrevLink);
  283.                
  284.                 var objNextLink = document.createElement("a");
  285.                 objNextLink.setAttribute('id','nextLink');
  286.                 objNextLink.setAttribute('href','#');
  287.                 objHoverNav.appendChild(objNextLink);
  288.        
  289.                 var objLoading = document.createElement("div");
  290.                 objLoading.setAttribute('id','loading');
  291.                 objImageContainer.appendChild(objLoading);
  292.        
  293.                 var objLoadingLink = document.createElement("a");
  294.                 objLoadingLink.setAttribute('id','loadingLink');
  295.                 objLoadingLink.setAttribute('href','#');
  296.                 objLoadingLink.onclick = function() { myLightbox.end(); return false; }
  297.                 objLoading.appendChild(objLoadingLink);
  298.        
  299.                 var objLoadingImage = document.createElement("img");
  300.                 objLoadingImage.setAttribute('src', fileLoadingImage);
  301.                 objLoadingLink.appendChild(objLoadingImage);
  302.  
  303.                 var objImageDataContainer = document.createElement("div");
  304.                 objImageDataContainer.setAttribute('id','imageDataContainer');
  305.                 objLightbox.appendChild(objImageDataContainer);
  306.  
  307.                 var objImageData = document.createElement("div");
  308.                 objImageData.setAttribute('id','imageData');
  309.                 objImageDataContainer.appendChild(objImageData);
  310.        
  311.                 var objImageDetails = document.createElement("div");
  312.                 objImageDetails.setAttribute('id','imageDetails');
  313.                 objImageData.appendChild(objImageDetails);
  314.        
  315.                 var objCaption = document.createElement("span");
  316.                 objCaption.setAttribute('id','caption');
  317.                 objImageDetails.appendChild(objCaption);
  318.        
  319.                 var objNumberDisplay = document.createElement("span");
  320.                 objNumberDisplay.setAttribute('id','numberDisplay');
  321.                 objImageDetails.appendChild(objNumberDisplay);
  322.                
  323.                 var objBottomNav = document.createElement("div");
  324.                 objBottomNav.setAttribute('id','bottomNav');
  325.                 objImageData.appendChild(objBottomNav);
  326.        
  327.                 var objBottomNavCloseLink = document.createElement("a");
  328.                 objBottomNavCloseLink.setAttribute('id','bottomNavClose');
  329.                 objBottomNavCloseLink.setAttribute('href','#');
  330.                 objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; }
  331.                 objBottomNav.appendChild(objBottomNavCloseLink);
  332.        
  333.                 var objBottomNavCloseImage = document.createElement("img");
  334.                 objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);
  335.                 objBottomNavCloseLink.appendChild(objBottomNavCloseImage);
  336.         },
  337.        
  338.         //
  339.         //      start()
  340.         //      Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
  341.         //
  342.         start: function(imageLink) {   
  343.  
  344.                 hideSelectBoxes();
  345.                 hideFlash();
  346.  
  347.                 // stretch overlay to fill page and fade in
  348.                 var arrayPageSize = getPageSize();
  349.                 Element.setHeight('overlay', arrayPageSize[1]);
  350.  
  351.                 new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity });
  352.  
  353.                 imageArray = [];
  354.                 imageNum = 0;          
  355.  
  356.                 if (!document.getElementsByTagName){ return; }
  357.                 var anchors = document.getElementsByTagName( imageLink.tagName);
  358.  
  359.                 // if image is NOT part of a set..
  360.                 if((imageLink.getAttribute('rel') == 'lightbox')){
  361.                         // add single image to imageArray
  362.                         imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title')));                   
  363.                 } else {
  364.                 // if image is part of a set..
  365.  
  366.                         // loop through anchors, find other images in set, and add them to imageArray
  367.                         for (var i=0; i<anchors.length; i++){
  368.                                 var anchor = anchors[i];
  369.                                 if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
  370.                                         imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title')));
  371.                                 }
  372.                         }
  373.                         imageArray.removeDuplicates();
  374.                         while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
  375.                 }
  376.  
  377.                 // calculate top offset for the lightbox and display
  378.                 var arrayPageScroll = getPageScroll();
  379.                 var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
  380.  
  381.                 Element.setTop('lightbox', lightboxTop);
  382.                 Element.show('lightbox');
  383.                
  384.                 this.changeImage(imageNum);
  385.         },
  386.  
  387.         //
  388.         //      changeImage()
  389.         //      Hide most elements and preload image in preparation for resizing image container.
  390.         //
  391.         changeImage: function(imageNum) {      
  392.                
  393.                 activeImage = imageNum; // update global var
  394.  
  395.                 // hide elements during transition
  396.                 if(animate){ Element.show('loading');}
  397.                 Element.hide('lightboxImage');
  398.                 Element.hide('hoverNav');
  399.                 Element.hide('prevLink');
  400.                 Element.hide('nextLink');
  401.                 Element.hide('imageDataContainer');
  402.                 Element.hide('numberDisplay');         
  403.                
  404.                 imgPreloader = new Image();
  405.                
  406.                 // once image is preloaded, resize image container
  407.                 imgPreloader.onload=function(){
  408.                         Element.setSrc('lightboxImage', imageArray[activeImage][0]);
  409.                         myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
  410.                        
  411.                         imgPreloader.onload=function(){};       //      clear onLoad, IE behaves irratically with animated gifs otherwise
  412.                 }
  413.                 imgPreloader.src = imageArray[activeImage][0];
  414.         },
  415.  
  416.         //
  417.         //      resizeImageContainer()
  418.         //
  419.         resizeImageContainer: function( imgWidth, imgHeight) {
  420.  
  421.                 // get curren width and height
  422.                 this.widthCurrent = Element.getWidth('outerImageContainer');
  423.                 this.heightCurrent = Element.getHeight('outerImageContainer');
  424.  
  425.                 // get new width and height
  426.                 var widthNew = (imgWidth  + (borderSize * 2));
  427.                 var heightNew = (imgHeight  + (borderSize * 2));
  428.  
  429.                 // scalars based on change from old to new
  430.                 this.xScale = ( widthNew / this.widthCurrent) * 100;
  431.                 this.yScale = ( heightNew / this.heightCurrent) * 100;
  432.  
  433.                 // calculate size difference between new and old image, and resize if necessary
  434.                 wDiff = this.widthCurrent - widthNew;
  435.                 hDiff = this.heightCurrent - heightNew;
  436.  
  437.                 if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); }
  438.                 if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); }
  439.  
  440.                 // if new and old image are same size and no scaling transition is necessary,
  441.                 // do a quick pause to prevent image flicker.
  442.                 if((hDiff == 0) && (wDiff == 0)){
  443.                         if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);}
  444.                 }
  445.  
  446.                 Element.setHeight('prevLink', imgHeight);
  447.                 Element.setHeight('nextLink', imgHeight);
  448.                 Element.setWidth( 'imageDataContainer', widthNew);
  449.  
  450.                 this.showImage();
  451.         },
  452.        
  453.         //
  454.         //      showImage()
  455.         //      Display image and begin preloading neighbors.
  456.         //
  457.         showImage: function(){
  458.                 Element.hide('loading');
  459.                 new Effect.Appear('lightboxImage', { duration: resizeDuration, queue: 'end', afterFinish: function(){   myLightbox.updateDetails(); } });
  460.                 this.preloadNeighborImages();
  461.         },
  462.  
  463.         //
  464.         //      updateDetails()
  465.         //      Display caption, image number, and bottom nav.
  466.         //
  467.         updateDetails: function() {
  468.        
  469.                 Element.show('caption');
  470.                 Element.setInnerHTML( 'caption', imageArray[activeImage][1]);
  471.                
  472.                 // if image is part of set display 'Image x of x'
  473.                 if(imageArray.length > 1){
  474.                         Element.show('numberDisplay');
  475.                         Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length);
  476.                 }
  477.  
  478.                 new Effect.Parallel(
  479.                         [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration, from: 0.0, to: 1.0 }),
  480.                           new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ],
  481.                         { duration: resizeDuration, afterFinish: function() {
  482.                                 // update overlay size and update nav
  483.                                 var arrayPageSize = getPageSize();
  484.                                 Element.setHeight('overlay', arrayPageSize[1]);
  485.                                 myLightbox.updateNav();
  486.                                 }
  487.                         }
  488.                 );
  489.         },
  490.  
  491.         //
  492.         //      updateNav()
  493.         //      Display appropriate previous and next hover navigation.
  494.         //
  495.         updateNav: function() {
  496.  
  497.                 Element.show('hoverNav');                              
  498.  
  499.                 // if not first image in set, display prev image button
  500.                 if(activeImage != 0){
  501.                         Element.show('prevLink');
  502.                         document.getElementById('prevLink').onclick = function() {
  503.                                 myLightbox.changeImage(activeImage - 1); return false;
  504.                         }
  505.                 }
  506.  
  507.                 // if not last image in set, display next image button
  508.                 if(activeImage != (imageArray.length - 1)){
  509.                         Element.show('nextLink');
  510.                         document.getElementById('nextLink').onclick = function() {
  511.                                 myLightbox.changeImage(activeImage + 1); return false;
  512.                         }
  513.                 }
  514.                
  515.                 this.enableKeyboardNav();
  516.         },
  517.  
  518.         //
  519.         //      enableKeyboardNav()
  520.         //
  521.         enableKeyboardNav: function() {
  522.                 document.onkeydown = this.keyboardAction;
  523.         },
  524.  
  525.         //
  526.         //      disableKeyboardNav()
  527.         //
  528.         disableKeyboardNav: function() {
  529.                 document.onkeydown = '';
  530.         },
  531.  
  532.         //
  533.         //      keyboardAction()
  534.         //
  535.         keyboardAction: function(e) {
  536.                 if (e == null) { // ie
  537.                         keycode = event.keyCode;
  538.                         escapeKey = 27;
  539.                 } else { // mozilla
  540.                         keycode = e.keyCode;
  541.                         escapeKey = e.DOM_VK_ESCAPE;
  542.                 }
  543.  
  544.                 key = String.fromCharCode(keycode).toLowerCase();
  545.                
  546.                 if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){     // close lightbox
  547.                         myLightbox.end();
  548.                 } else if((key == 'p') || (keycode == 37)){     // display previous image
  549.                         if(activeImage != 0){
  550.                                 myLightbox.disableKeyboardNav();
  551.                                 myLightbox.changeImage(activeImage - 1);
  552.                         }
  553.                 } else if((key == 'n') || (keycode == 39)){     // display next image
  554.                         if(activeImage != (imageArray.length - 1)){
  555.                                 myLightbox.disableKeyboardNav();
  556.                                 myLightbox.changeImage(activeImage + 1);
  557.                         }
  558.                 }
  559.  
  560.         },
  561.  
  562.         //
  563.         //      preloadNeighborImages()
  564.         //      Preload previous and next images.
  565.         //
  566.         preloadNeighborImages: function(){
  567.  
  568.                 if((imageArray.length - 1) > activeImage){
  569.                         preloadNextImage = new Image();
  570.                         preloadNextImage.src = imageArray[activeImage + 1][0];
  571.                 }
  572.                 if(activeImage > 0){
  573.                         preloadPrevImage = new Image();
  574.                         preloadPrevImage.src = imageArray[activeImage - 1][0];
  575.                 }
  576.        
  577.         },
  578.  
  579.         //
  580.         //      end()
  581.         //
  582.         end: function() {
  583.                 this.disableKeyboardNav();
  584.                 Element.hide('lightbox');
  585.                 new Effect.Fade('overlay', { duration: overlayDuration});
  586.                 showSelectBoxes();
  587.                 showFlash();
  588.         }
  589. }
  590.  
  591. // -----------------------------------------------------------------------------------
  592.  
  593. //
  594. // getPageScroll()
  595. // Returns array with x,y page scroll values.
  596. // Core code from - quirksmode.org
  597. //
  598. function getPageScroll(){
  599.  
  600.         var yScroll;
  601.  
  602.         if (self.pageYOffset) {
  603.                 yScroll = self.pageYOffset;
  604.         } else if (document.documentElement && document.documentElement.scrollTop){      // Explorer 6 Strict
  605.                 yScroll = document.documentElement.scrollTop;
  606.         } else if (document.body) {// all other Explorers
  607.                 yScroll = document.body.scrollTop;
  608.         }
  609.  
  610.         arrayPageScroll = new Array('',yScroll)
  611.         return arrayPageScroll;
  612. }
  613.  
  614. // -----------------------------------------------------------------------------------
  615.  
  616. //
  617. // getPageSize()
  618. // Returns array with page width, height and window width, height
  619. // Core code from - quirksmode.org
  620. // Edit for Firefox by pHaez
  621. //
  622. function getPageSize(){
  623.        
  624.         var xScroll, yScroll;
  625.        
  626.         if (window.innerHeight && window.scrollMaxY) { 
  627.                 xScroll = document.body.scrollWidth;
  628.                 yScroll = window.innerHeight + window.scrollMaxY;
  629.         } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
  630.                 xScroll = document.body.scrollWidth;
  631.                 yScroll = document.body.scrollHeight;
  632.         } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
  633.                 xScroll = document.body.offsetWidth;
  634.                 yScroll = document.body.offsetHeight;
  635.         }
  636.        
  637.         var windowWidth, windowHeight;
  638.         if (self.innerHeight) { // all except Explorer
  639.                 windowWidth = self.innerWidth;
  640.                 windowHeight = self.innerHeight;
  641.         } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
  642.                 windowWidth = document.documentElement.clientWidth;
  643.                 windowHeight = document.documentElement.clientHeight;
  644.         } else if (document.body) { // other Explorers
  645.                 windowWidth = document.body.clientWidth;
  646.                 windowHeight = document.body.clientHeight;
  647.         }      
  648.        
  649.         // for small pages with total height less then height of the viewport
  650.         if(yScroll < windowHeight){
  651.                 pageHeight = windowHeight;
  652.         } else {
  653.                 pageHeight = yScroll;
  654.         }
  655.  
  656.         // for small pages with total width less then width of the viewport
  657.         if(xScroll < windowWidth){     
  658.                 pageWidth = windowWidth;
  659.         } else {
  660.                 pageWidth = xScroll;
  661.         }
  662.  
  663.         arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
  664.         return arrayPageSize;
  665. }
  666.  
  667. // -----------------------------------------------------------------------------------
  668.  
  669. //
  670. // getKey(key)
  671. // Gets keycode. If 'x' is pressed then it hides the lightbox.
  672. //
  673. function getKey(e){
  674.         if (e == null) { // ie
  675.                 keycode = event.keyCode;
  676.         } else { // mozilla
  677.                 keycode = e.which;
  678.         }
  679.         key = String.fromCharCode(keycode).toLowerCase();
  680.        
  681.         if(key == 'x'){
  682.         }
  683. }
  684.  
  685. // -----------------------------------------------------------------------------------
  686.  
  687. //
  688. // listenKey()
  689. //
  690. function listenKey () { document.onkeypress = getKey; }
  691.        
  692. // ---------------------------------------------------
  693.  
  694. function showSelectBoxes(){
  695.         var selects = document.getElementsByTagName("select");
  696.         for (i = 0; i != selects.length; i++) {
  697.                 selects[i].style.visibility = "visible";
  698.         }
  699. }
  700.  
  701. // ---------------------------------------------------
  702.  
  703. function hideSelectBoxes(){
  704.         var selects = document.getElementsByTagName("select");
  705.         for (i = 0; i != selects.length; i++) {
  706.                 selects[i].style.visibility = "hidden";
  707.         }
  708. }
  709.  
  710. // ---------------------------------------------------
  711.  
  712. function showFlash(){
  713.         var flashObjects = document.getElementsByTagName("object");
  714.         for (i = 0; i < flashObjects.length; i++) {
  715.                 flashObjects[i].style.visibility = "visible";
  716.         }
  717.  
  718.         var flashEmbeds = document.getElementsByTagName("embed");
  719.         for (i = 0; i < flashEmbeds.length; i++) {
  720.                 flashEmbeds[i].style.visibility = "visible";
  721.         }
  722. }
  723.  
  724. // ---------------------------------------------------
  725.  
  726. function hideFlash(){
  727.         var flashObjects = document.getElementsByTagName("object");
  728.         for (i = 0; i < flashObjects.length; i++) {
  729.                 flashObjects[i].style.visibility = "hidden";
  730.         }
  731.  
  732.         var flashEmbeds = document.getElementsByTagName("embed");
  733.         for (i = 0; i < flashEmbeds.length; i++) {
  734.                 flashEmbeds[i].style.visibility = "hidden";
  735.         }
  736.  
  737. }
  738.  
  739.  
  740. // ---------------------------------------------------
  741.  
  742. //
  743. // pause(numberMillis)
  744. // Pauses code execution for specified time. Uses busy code, not good.
  745. // Help from Ran Bar-On [ran2103@gmail.com]
  746. //
  747.  
  748. function pause(ms){
  749.         var date = new Date();
  750.         curDate = null;
  751.         do{var curDate = new Date();}
  752.         while( curDate - date < ms);
  753. }
  754. /*
  755. function pause(numberMillis) {
  756.         var curently = new Date().getTime() + sender;
  757.         while (new Date().getTime();   
  758. }
  759. */
  760. // ---------------------------------------------------
  761.  
  762.  
  763.  
  764. function initLightbox() { myLightbox = new Lightbox(); }
  765. Event.observe(window, 'load', initLightbox, false);
downloadlightbox.js Source code - Download Seven VIP jubilee dance CMS management system Source code
Related Source Codes/Software:
Jie Yang v0.6.3 article system - System functions: 1, the system settings A confi... 2016-09-21
Download IT mop stand (with site to download the database ACC) - Background management: http://www.xxx.com/admin/ad... 2016-09-21
Pcook CMS bubble guest v3.0 SDCMS version - Developed by Asp+Access, and meet the needs of sma... 2016-09-21
PeterCMS3 v3.2 - PeterCMS is the original sirenCMS and a series of ... 2016-09-21
Subdomain hosting edition v1.9 s taobao, pat - The background site admin 2016-09-21
126oo CMS film station system - This procedure ASP + ACC/ASP + SQL, using new kern... 2016-09-21
Copy the site source code v2.01 - It is ok to cover the folder % S 2016-09-21
ETsale simple product sales management system V3.0 formal version - ETsale3.0 is developed by PHP+MySQL+Smarty+jQuery ... 2016-09-21
Mobile - shop. Tk all source code - Admin admin.php no database. The total data Modi... 2016-09-22
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top