1/** 2* Name: PiroBox Extended v.1.0 3* Date: Gen 2011 4* Autor: Diego Valobra (http://www.pirolab.it),(http://www.diegovalobra.com) 5* Version: 1.0 6* Licence: CC-BY-SA http://creativecommons.org/licenses/by-sa/3/it/ 7**/ 8 9(function($) { 10 $.fn.piroBox_ext = function(opt) { 11 opt = jQuery.extend({ 12 piro_speed : 700, 13 bg_alpha : 0.9, 14 piro_scroll : true 15 }, opt); 16 $.fn.piroFadeIn = function(speed, callback) { 17 $(this).fadeIn(speed, function() { 18 if(jQuery.browser.msie) 19 $(this).get(0).style.removeAttribute('filter'); 20 if(callback != undefined) 21 callback(); 22 }); 23 }; 24 $.fn.piroFadeOut = function(speed, callback) { 25 $(this).fadeOut(speed, function() { 26 if(jQuery.browser.msie) 27 $(this).get(0).style.removeAttribute('filter'); 28 if(callback != undefined) 29 callback(); 30 }); 31 }; 32 var my_gall_obj = $('a[class*="pirobox"]'); 33 var map = new Object(); 34 for (var i=0; i<my_gall_obj.length; i++) { 35 var it=$(my_gall_obj[i]); 36 map['a.'+ it.attr('class').match(/^pirobox_gall\w*/)]=0; 37 } 38 var gall_settings = new Array(); 39 for (var key in map) { 40 gall_settings.push(key); 41 } 42 for (var i=0; i<gall_settings.length; i++) { 43 $(gall_settings[i]+':first').addClass('first'); 44 $(gall_settings[i]+':last').addClass('last'); 45 } 46 var piro_gallery = $(my_gall_obj); 47 $('a[class*="pirobox_gall"]').each(function(rev){this.rev = rev+0}); 48 var struct =( 49 '<div class="piro_overlay"></div>'+ 50 '<table class="piro_html" cellpadding="0" cellspacing="0">'+ 51 '<tr>'+ 52 '<td class="h_t_l"></td>'+ 53 '<td class="h_t_c" title="drag me!!"></td>'+ 54 '<td class="h_t_r"></td>'+ 55 '</tr>'+ 56 '<tr>'+ 57 '<td class="h_c_l"></td>'+ 58 '<td class="h_c_c">'+ 59 '<div class="piro_loader" title="close"><span></span></div>'+ 60 '<div class="resize">'+ 61 '<div class="nav_container">'+ 62 '<a href="#prev" class="piro_prev" title="previous"></a>'+ 63 '<a href="#next" class="piro_next" title="next"></a>'+ 64 '<div class="piro_prev_fake">prev</div>'+ 65 '<div class="piro_next_fake">next</div>'+ 66 '<div class="piro_close" title="close"></div>'+ 67 '</div>'+ 68 '<div class="caption"></div>'+ 69 '<div class="div_reg"></div>'+ 70 '</div>'+ 71 '</td>'+ 72 '<td class="h_c_r"></td>'+ 73 '</tr>'+ 74 '<tr>'+ 75 '<td class="h_b_l"></td>'+ 76 '<td class="h_b_c"></td>'+ 77 '<td class="h_b_r"></td>'+ 78 '</tr>'+ 79 '</table>' 80 ); 81 $('body').append(struct); 82 var wrapper = $('.piro_html'), 83 piro_capt = $('.caption'), 84 piro_bg = $('.piro_overlay'), 85 piro_next = $('.piro_next'), 86 piro_prev = $('.piro_prev'), 87 piro_next_fake = $('.piro_next_fake'), 88 piro_prev_fake = $('.piro_prev_fake'), 89 piro_close = $('.piro_close'), 90 div_reg = $('.div_reg'), 91 piro_loader = $('.piro_loader'), 92 resize = $('.resize'), 93 btn_info = $('.btn_info'); 94 var rz_img =0.95; /*::::: ADAPT IMAGE TO BROWSER WINDOW SIZE :::::*/ 95 if ( $.browser.msie ) { 96 wrapper.draggable({ handle:'.h_t_c,.h_b_c,.div_reg img'}); 97 }else{ 98 wrapper.draggable({ handle:'.h_t_c,.h_b_c,.div_reg img',opacity: 0.80}); 99 } 100 var y = $(window).height(); 101 var x = $(window).width(); 102 $('.nav_container').hide(); 103 wrapper.css({left: ((x/2)-(250))+ 'px',top: parseInt($(document).scrollTop())+(100)}); 104 $(wrapper).add(piro_capt).add(piro_bg).hide(); 105 piro_bg.css({'opacity':opt.bg_alpha}); 106 $(piro_prev).add(piro_next).bind('click',function(c) { 107 $('.nav_container').hide(); 108 c.preventDefault(); 109 piro_next.add(piro_prev).hide(); 110 var obj_count = parseInt($('a[class*="pirobox_gall"]').filter('.item').attr('rev')); 111 var start = $(this).is('.piro_prev') ? $('a[class*="pirobox_gall"]').eq(obj_count - 1) : $('a[class*="pirobox_gall"]').eq(obj_count + 1); 112 start.click(); 113 }); 114 $('html').bind('keyup', function (c) { 115 if(c.keyCode == 27) { 116 c.preventDefault(); 117 if($(piro_close).is(':visible')){close_all();} 118 } 119 }); 120 $('html').bind('keyup' ,function(e) { 121 if ($('.item').is('.first')){ 122 }else if(e.keyCode == 37){ 123 e.preventDefault(); 124 if($(piro_close).is(':visible')){piro_prev.click();} 125 } 126 }); 127 $('html').bind('keyup' ,function(z) { 128 if ($('.item').is('.last')){ 129 }else if(z.keyCode == 39){ 130 z.preventDefault(); 131 if($(piro_close).is(':visible')){piro_next.click();} 132 } 133 }); 134 $(window).resize(function(){ 135 var new_y = $(window).height(); 136 var new_x = $(window).width(); 137 var new_h = wrapper.height(); 138 var new_w = wrapper.width(); 139 wrapper.css({ 140 left: ((new_x/2)-(new_w/2))+ 'px', 141 top: parseInt($(document).scrollTop())+(new_y-new_h)/2 142 }); 143 }); 144 function scrollIt (){ 145 $(window).scroll(function(){ 146 var new_y = $(window).height(); 147 var new_x = $(window).width(); 148 var new_h = wrapper.height(); 149 var new_w = wrapper.width(); 150 wrapper.css({ 151 left: ((new_x/2)-(new_w/2))+ 'px', 152 top: parseInt($(document).scrollTop())+(new_y-new_h)/2 153 }); 154 }); 155 } 156 if(opt.piro_scroll == true){ 157 scrollIt() 158 } 159 $(piro_gallery).each(function(){ 160 161 var descr = $(this).attr('title'); 162 var params = $(this).attr('rel').split('-'); 163 var p_link = $(this).attr('href'); 164 $(this).unbind(); 165 $(this).bind('click', function(e) { 166 piro_bg.css({'opacity':opt.bg_alpha}); 167 e.preventDefault(); 168 piro_next.add(piro_prev).hide().css('visibility','hidden'); 169 $(piro_gallery).filter('.item').removeClass('item'); 170 $(this).addClass('item'); 171 open_all(); 172 if($(this).is('.first')){ 173 piro_prev.hide(); 174 piro_next.show(); 175 piro_prev_fake.show().css({'opacity':0.5,'visibility':'hidden'}); 176 }else{ 177 piro_next.add(piro_prev).show(); 178 piro_next_fake.add(piro_prev_fake).hide(); 179 } 180 if($(this).is('.last')){ 181 piro_prev.show(); 182 piro_next_fake.show().css({'opacity':0.5,'visibility':'hidden'}); 183 piro_next.hide(); 184 } 185 if($(this).is('.pirobox')){ 186 piro_next.add(piro_prev).hide(); 187 } 188 189 }); 190 191 function open_all(){ 192 wrapper.add(piro_bg).add(div_reg).add(piro_loader).show(); 193 function animate_html(){ 194 if(params[1] == 'full' && params[2] == 'full'){ 195 params[2] = $(window).height()-70; 196 params[1] = $(window).width()-55; 197 } 198 var y = $(window).height(); 199 var x = $(window).width(); 200 piro_close.hide(); 201 div_reg.add(resize).animate({ 202 'height':+ (params[2]) +'px', 203 'width':+ (params [1])+'px' 204 },opt.piro_speed).css('visibility','visible'); 205 206 wrapper.animate({ 207 height:+ (params[2])+20 +'px', 208 width:+ (params[1]) +20+'px', 209 left: ((x/2)-((params[1])/2+10))+ 'px', 210 top: parseInt($(document).scrollTop())+(y-params[2])/2-10 211 },opt.piro_speed ,function(){ 212 piro_next.add(piro_prev).css({'height':'20px','width':'20px'}); 213 piro_next.add(piro_prev).add(piro_prev_fake).add(piro_next_fake).css('visibility','visible'); 214 $('.nav_container').show(); 215 piro_close.show(); 216 }); 217 } 218 function animate_image (){ 219 var img = new Image(); 220 img.onerror = function (){ 221 piro_capt.html(''); 222 img.src = "http://www.pirolab.it/pirobox/js/error.jpg"; 223 } 224 img.onload = function() { 225 piro_capt.add(btn_info).hide(); 226 var y = $(window).height(); 227 var x = $(window).width();
228 var imgH = img.height; 229 var imgW = img.width; 230 231 //var rz_img =1.203; /*::::: ORIGINAL SIZE :::::*/ 232 if(imgH+20 > y || imgW+20 > x){ 233 var _x = (imgW + 20)/x; 234 var _y = (imgH + 20)/y; 235 if ( _y > _x ){ 236 imgW = Math.round(img.width* (rz_img/_y)); 237 imgH = Math.round(img.height* (rz_img/_y)); 238 }else{ 239 imgW = Math.round(img.width * (rz_img/_x)); 240 imgH = Math.round(img.height * (rz_img/_x)); 241 } 242 }else{ 243 imgH = img.height; 244 imgW = img.width; 245 } 246 247 var y = $(window).height(); 248 var x = $(window).width(); 249 $(img).height(imgH).width(imgW).hide(); 250 251 $(img).fadeOut(300,function(){}); 252 $('.div_reg img').remove(); 253 $('.div_reg').html(''); 254 div_reg.append(img).show(); 255 $(img).addClass('immagine'); 256 257 div_reg.add(resize).animate({height:imgH+'px',width:imgW+'px'},opt.piro_speed); 258 wrapper.animate({ 259 height : (imgH+20) + 'px' , 260 width : (imgW+20) + 'px' , 261 left: ((x/2)-((imgW+20)/2)) + 'px', 262 top: parseInt($(document).scrollTop())+(y-imgH)/2-20 263 },opt.piro_speed, function(){ 264 var cap_w = resize.width(); 265 piro_capt.css({width:cap_w+'px'}); 266 piro_loader.hide(); 267 $(img).fadeIn(300,function(){ 268 piro_close.add(btn_info).show(); 269 piro_capt.slideDown(200); 270 piro_next.add(piro_prev).css({'height':'20px','width':'20px'}); 271 piro_next.add(piro_prev).add(piro_prev_fake).add(piro_next_fake).css('visibility','visible'); 272 $('.nav_container').show(); 273 resize.resize(function(){ 274 NimgW = img.width;//1.50; 275 NimgH = img.heigh;//1.50; 276 piro_capt.css({width:(NimgW)+'px'}); 277 }); 278 }); 279 }); 280 } 281 282 img.src = p_link; 283 piro_loader.click(function(){ 284 img.src = 'about:blank'; 285 }); 286 } 287 288 switch (params[0]) { 289 290 case 'iframe': 291 div_reg.html('').css('overflow','hidden'); 292 resize.css('overflow','hidden'); 293 piro_close.add(btn_info).add(piro_capt).hide(); 294 animate_html(); 295 div_reg.piroFadeIn(300,function(){ 296 div_reg.append( 297 '<iframe id="my_frame" class="my_frame" src="'+p_link+'" frameborder="0" allowtransparency="true" scrolling="auto" align="top"></iframe>' 298 ); 299 $('.my_frame').css({'height':+ (params[2]) +'px','width':+ (params [1])+'px'}); 300 piro_loader.hide(); 301 }); 302 break; 303 304 case 'content': 305 div_reg.html('').css('overflow','auto'); 306 resize.css('overflow','auto'); 307 $('.my_frame').remove(); 308 piro_close.add(btn_info).add(piro_capt).hide(); 309 animate_html() 310 div_reg.piroFadeIn(300,function(){ 311 div_reg.load(p_link); 312 piro_loader.hide(); 313 }); 314 break; 315 316 case 'inline': 317 div_reg.html('').css('overflow','auto'); 318 resize.css('overflow','auto'); 319 $('.my_frame').remove(); 320 piro_close.add(btn_info).add(piro_capt).hide(); 321 animate_html() 322 div_reg.piroFadeIn(300,function(){ 323 $(p_link).clone(true).appendTo(div_reg).piroFadeIn(300); 324 piro_loader.hide(); 325 }); 326 break 327 328 case 'gallery': 329 div_reg.css('overflow','hidden'); 330 resize.css('overflow','hidden'); 331 $('.my_frame').remove(); 332 piro_close.add(btn_info).add(piro_capt).hide(); 333 if(descr == ""){ 334 piro_capt.html(''); 335 }else{ 336 piro_capt.html('<p>' + descr + '</p>'); 337 } 338 animate_image(); 339 break; 340 341 case 'single': 342 piro_close.add(btn_info).add(piro_capt).hide(); 343 div_reg.html('').css('overflow','hidden'); 344 resize.css('overflow','hidden'); 345 $('.my_frame').remove(); 346 if(descr == ""){ 347 piro_capt.html(''); 348 }else{ 349 piro_capt.html('<p>' + descr + '</p>'); 350 } 351 animate_image(); 352 break 353 } 354 } 355 }); 356 $('.immagine').live('click',function(){ 357 piro_capt.slideToggle(200); 358 }); 359 360 function close_all (){ 361 if($('.piro_close').is(':visible')){ 362 $('.my_frame').remove(); 363 wrapper.add(div_reg).add(resize).stop(); 364 var ie_sucks = wrapper; 365 if ( $.browser.msie ) { 366 ie_sucks = div_reg.add(piro_bg); 367 $('.div_reg img').remove(); 368 }else{ 369 ie_sucks = wrapper.add(piro_bg); 370 } 371 ie_sucks.piroFadeOut(200,function(){ 372 div_reg.html(''); 373 piro_loader.add(piro_capt).add(btn_info).hide(); 374 $('.nav_container').hide(); 375 piro_bg.add(wrapper).hide().css('visibility','visible'); 376 }); 377 } 378 } 379 piro_close.add(piro_loader).add(piro_bg).bind('click',function(y){y.preventDefault(); close_all(); }); 380 } 381})(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.