1/* 2 * Facebox (for jQuery) 3 * version: 1.2 (05/05/2008) 4 * @requires jQuery v1.2 or later 5 * 6 * Examples at http://famspam.com/facebox/ 7 * 8 * Licensed under the MIT: 9 * http://www.opensource.org/licenses/mit-license.php 10 * 11 * Copyright 2007, 2008 Chris Wanstrath [ [email protected] ] 12 * 13 * Usage: 14 * 15 * jQuery(document).ready(function() { 16 * jQuery('a[rel*=facebox]').facebox() 17 * }) 18 * 19 * <a href="#terms" rel="facebox">Terms</a> 20 * Loads the #terms div in the box 21 * 22 * <a href="terms.html" rel="facebox">Terms</a> 23 * Loads the terms.html page in the box 24 * 25 * <a href="terms.png" rel="facebox">Terms</a> 26 * Loads the terms.png image in the box 27 * 28 * 29 * You can also use it programmatically: 30 * 31 * jQuery.facebox('some html') 32 * 33 * The above will open a facebox with "some html" as the content. 34 * 35 * jQuery.facebox(function(jQuery) { 36 * jQuery.get('blah.html', function(data) { jQuery.facebox(data) }) 37 * }) 38 * 39 * The above will show a loading screen before the passed function is called, 40 * allowing for a better ajaxy experience. 41 * 42 * The facebox function can also display an ajax page or image: 43 * 44 * jQuery.facebox({ ajax: 'remote.html' }) 45 * jQuery.facebox({ image: 'dude.jpg' }) 46 * 47 * Want to close the facebox? Trigger the 'close.facebox' document event: 48 * 49 * jQuery(document).trigger('close.facebox') 50 * 51 * Facebox also has a bunch of other hooks: 52 * 53 * loading.facebox 54 * beforeReveal.facebox 55 * reveal.facebox (aliased as 'afterReveal.facebox') 56 * init.facebox 57 * 58 * Simply bind a function to any of these hooks: 59 * 60 * jQuery(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... }) 61 * 62 */ 63(function(jQuery) { 64 jQuery.facebox = function(data, klass) { 65 jQuery.facebox.loading() 66 67 if (data.ajax) fillFaceboxFromAjax(data.ajax) 68 else if (data.image) fillFaceboxFromImage(data.image) 69 else if (data.div) fillFaceboxFromHref(data.div) 70 else if (jQuery.isFunction(data)) data.call(jQuery) 71 else jQuery.facebox.reveal(data, klass) 72 } 73 74 /* 75 * Public, jQuery.facebox methods 76 */ 77 var admin_url = location.href; 78 //var facebox_url = admin_url.replace(/(http.+)(wp-admin)(.+)/,'$1') + 'wp-content/plugins/custom-field-gui-utility/facebox/'; 79 var facebox_url = '/wp-content/themes/39yamanaka/facebox/'; 80 81 jQuery.extend(jQuery.facebox, { 82 settings: { 83 opacity : 0, 84 overlay : true, 85 loadingImage : facebox_url + 'loading.gif', 86 closeImage : facebox_url + 'closelabel.gif', 87 imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ], 88 faceboxHtml : '\ 89 <div id="facebox" style="display:none;"> \ 90 <div class="popup"> \ 91 <table> \ 92 <tbody> \ 93 <tr> \ 94 <td class="tl"/><td class="b"/><td class="tr"/> \ 95 </tr> \ 96 <tr> \ 97 <td class="b"/> \ 98 <td class="body"> \ 99 <div class="content"> \ 100 </div> \ 101 <div class="footer"> \ 102 <a href="#" class="close"> \ 103 <img src="' + facebox_url + 'closelabel.gif"/> \ 104 </a> \ 105 </div> \ 106 </td> \ 107 <td class="b"/> \ 108 </tr> \ 109 <tr> \ 110 <td class="bl"/><td class="b"/><td class="br"/> \ 111 </tr> \ 112 </tbody> \ 113 </table> \ 114 </div> \ 115 </div>' 116 }, 117 118 loading: function() { 119 init() 120 if (jQuery('#facebox .loading').length == 1) return true 121 showOverlay() 122 123 jQuery('#facebox .content').empty() 124 jQuery('#facebox .body').children().hide().end(). 125 append('<div class="loading"><img src="'+jQuery.facebox.settings.loadingImage+'"/></div>') 126 127 jQuery('#facebox').css({ 128 top: getPageScroll()[1] + (getPageHeight() / 10), 129 left: 385.5 130 }).show() 131 132 jQuery(document).bind('keydown.facebox', function(e) { 133 if (e.keyCode == 27) jQuery.facebox.close() 134 return true 135 }) 136 jQuery(document).trigger('loading.facebox') 137 }, 138 139 reveal: function(data, klass) { 140 jQuery(document).trigger('beforeReveal.facebox') 141 if (klass) jQuery('#facebox .content').addClass(klass) 142 jQuery('#facebox .content').append(data) 143 jQuery('#facebox .loading').remove() 144 jQuery('#facebox .body').children().fadeIn('normal') 145 jQuery('#facebox').css('left', jQuery(window).width() / 2 - (jQuery('#facebox table').width() / 2)) 146 jQuery(document).trigger('reveal.facebox').trigger('afterReveal.facebox') 147 }, 148 149 close: function() { 150 jQuery(document).trigger('close.facebox') 151 return false 152 } 153 }) 154 155 /* 156 * Public, jQuery.fn methods 157 */ 158 159 jQuery.fn.facebox = function(settings) { 160 init(settings) 161 162 function clickHandler() { 163 jQuery.facebox.loading(true) 164 165 // support for rel="facebox.inline_popup" syntax, to add a class 166 // also supports deprecated "facebox[.inline_popup]" syntax 167 var klass = this.rel.match(/facebox\[?\.(\w+)\]?/) 168 if (klass) klass = klass[1] 169 170 fillFaceboxFromHref(this.href, klass) 171 return false 172 } 173 174 return this.click(clickHandler) 175 } 176 177 /* 178 * Private methods 179 */ 180 181 // called one time to setup facebox on this page 182 function init(settings) { 183 if (jQuery.facebox.settings.inited) return true 184 else jQuery.facebox.settings.inited = true 185 186 jQuery(document).trigger('init.facebox') 187 makeCompatible() 188 189 var imageTypes = jQuery.facebox.settings.imageTypes.join('|') 190 jQuery.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i') 191 192 if (settings) jQuery.extend(jQuery.facebox.settings, settings) 193 jQuery('body').append(jQuery.facebox.settings.faceboxHtml) 194 195 var preload = [ new Image(), new Image() ] 196 preload[0].src = jQuery.facebox.settings.closeImage 197 preload[1].src = jQuery.facebox.settings.loadingImage 198 199 jQuery('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() { 200 preload.push(new Image()) 201 preload.slice(-1).src = jQuery(this).css('background-image').replace(/url\((.+)\)/, '$1') 202 }) 203 204 jQuery('#facebox .close').click(jQuery.facebox.close) 205 jQuery('#facebox .close_image').attr('src', jQuery.facebox.settings.closeImage) 206 } 207 208 // getPageScroll() by quirksmode.com 209 function getPageScroll() { 210 var xScroll, yScroll; 211 if (self.pageYOffset) { 212 yScroll = self.pageYOffset; 213 xScroll = self.pageXOffset; 214 } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict 215 yScroll = document.documentElement.scrollTop; 216 xScroll = document.documentElement.scrollLeft; 217 } else if (document.body) {// all other Explorers 218 yScroll = document.body.scrollTop; 219 xScroll = document.body.scrollLeft; 220 } 221 return new Array(xScroll,yScroll) 222 } 223 224 // Adapted from getPageSize() by quirksmode.com 225 function getPageHeight() { 226 var windowHeight
227 if (self.innerHeight) { // all except Explorer 228 windowHeight = self.innerHeight; 229 } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode 230 windowHeight = document.documentElement.clientHeight; 231 } else if (document.body) { // other Explorers 232 windowHeight = document.body.clientHeight; 233 } 234 return windowHeight 235 } 236 237 // Backwards compatibility 238 function makeCompatible() { 239 var jQuerys = jQuery.facebox.settings 240 241 jQuerys.loadingImage = jQuerys.loading_image || jQuerys.loadingImage 242 jQuerys.closeImage = jQuerys.close_image || jQuerys.closeImage 243 jQuerys.imageTypes = jQuerys.image_types || jQuerys.imageTypes 244 jQuerys.faceboxHtml = jQuerys.facebox_html || jQuerys.faceboxHtml 245 } 246 247 // Figures out what you want to display and displays it 248 // formats are: 249 // div: #id 250 // image: blah.extension 251 // ajax: anything else 252 function fillFaceboxFromHref(href, klass) { 253 // div 254 if (href.match(/#/)) { 255 var url = window.location.href.split('#')[0] 256 var target = href.replace(url,'') 257 jQuery.facebox.reveal(jQuery(target).clone().show(), klass) 258 259 // image 260 } else if (href.match(jQuery.facebox.settings.imageTypesRegexp)) { 261 fillFaceboxFromImage(href, klass) 262 // ajax 263 } else { 264 fillFaceboxFromAjax(href, klass) 265 } 266 } 267 268 function fillFaceboxFromImage(href, klass) { 269 var image = new Image() 270 image.onload = function() { 271 jQuery.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass) 272 } 273 image.src = href 274 } 275 276 function fillFaceboxFromAjax(href, klass) { 277 jQuery.get(href, function(data) { jQuery.facebox.reveal(data, klass) }) 278 } 279 280 function skipOverlay() { 281 return jQuery.facebox.settings.overlay == false || jQuery.facebox.settings.opacity === null 282 } 283 284 function showOverlay() { 285 if (skipOverlay()) return 286 287 if (jQuery('facebox_overlay').length == 0) 288 jQuery("body").append('<div id="facebox_overlay" class="facebox_hide"></div>') 289 290 jQuery('#facebox_overlay').hide().addClass("facebox_overlayBG") 291 .css('opacity', jQuery.facebox.settings.opacity) 292 .click(function() { jQuery(document).trigger('close.facebox') }) 293 .fadeIn(200) 294 return false 295 } 296 297 function hideOverlay() { 298 if (skipOverlay()) return 299 300 jQuery('#facebox_overlay').fadeOut(200, function(){ 301 jQuery("#facebox_overlay").removeClass("facebox_overlayBG") 302 jQuery("#facebox_overlay").addClass("facebox_hide") 303 jQuery("#facebox_overlay").remove() 304 }) 305 306 return false 307 } 308 309 /* 310 * Bindings 311 */ 312 313 jQuery(document).bind('close.facebox', function() { 314 jQuery(document).unbind('keydown.facebox') 315 jQuery('#facebox').fadeOut(function() { 316 jQuery('#facebox .content').removeClass().addClass('content') 317 hideOverlay() 318 jQuery('#facebox .loading').remove() 319 }) 320 }) 321 322})(jQuery);
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.