/**

* Name: PiroBox Extended v.1.1 Beta

* Date: Feb 2011

* Autor: Diego Valobra (http://www.pirolab.it),(http://www.diegovalobra.com)

* Version: 1.1

* Licence: CC-BY-SA http://creativecommons.org/licenses/by-sa/3/it/

**/

(function($) {

	$.piroBox_ext = function(opt) {

		opt = jQuery.extend({

		piro_speed : 700,

		bg_alpha : 0.9,

		piro_scroll : true,

		piro_drag : null,

		piro_nav_pos : 'top'

		}, opt);

	$.fn.piroFadeIn = function(speed, callback) {

		$(this).fadeIn(speed, function() {

		if(jQuery.browser.msie)

			$(this).get(0).style.removeAttribute('filter');

		if(callback != undefined)

			callback();

		});

	};

	$.fn.piroFadeOut = function(speed, callback) {

		$(this).fadeOut(speed, function() {

		if(jQuery.browser.msie)

			$(this).get(0).style.removeAttribute('filter');

		if(callback != undefined)

			callback();

		});

	};

	var my_gall_obj = $('a[class*="pirobox"]');

	var map = new Object();

		for (var i=0; i<my_gall_obj.length; i++) {

			var it=$(my_gall_obj[i]);

			map['a.'+ it.attr('class').match(/^pirobox_gall\w*/)]=0;

		}

	var gall_settings = new Array();

	for (var key in map) {

		gall_settings.push(key);

	}

	for (var i=0; i<gall_settings.length; i++) {

		$(gall_settings[i]+':first').addClass('first');

		$(gall_settings[i]+':last').addClass('last');

	}

	var piro_gallery = $(my_gall_obj);



	$('a[class*="pirobox_gall"]').each(function(rev){

			

		this.rev = rev+0});

	if($('a[class*="pirobox_gall"]').length == 1){ 

	$('a[class*="pirobox_gall"]').each(function(){

		$(this).addClass('single_fix');

		//alert('1');

		});

	}else{//NULL}

	//alert($(piro_gallery).length);

	}

	var	piro_capt_cont = '<div class="caption"></div>';

	var rz_img =0.90; //var rz_img =1.203; /*::::: ORIGINAL SIZE :::::*/

	var struct =(

		'<div class="piro_overlay"></div>'+

		'<table class="piro_html"  cellpadding="0" cellspacing="0">'+

		'<tr>'+

		'<td class="h_t_l"></td>'+

		'<td class="h_t_c" title="drag me!!"></td>'+

		'<td class="h_t_r"></td>'+

		'</tr>'+

		'<tr>'+

		'<td class="h_c_l"></td>'+

		'<td class="h_c_c">'+

		'<div class="piro_loader" title="close"><span></span></div>'+

		'<div class="resize">'+

		'<div class="nav_container">'+

		'<a href="#prev" class="piro_prev" title="previous"></a>'+

		'<a href="#next" class="piro_next" title="next"></a>'+

		'<div class="piro_prev_fake">prev</div>'+

		'<div class="piro_next_fake">next</div>'+

		'<div class="piro_close" title="close"></div>'+

		'</div>'+

		'<div class="div_reg"></div>'+

		'</div>'+

		'</td>'+

		'<td class="h_c_r"></td>'+

		'</tr>'+

		'<tr>'+

		'<td class="h_b_l"></td>'+

		'<td class="h_b_c"></td>'+

		'<td class="h_b_r"></td>'+

		'</tr>'+

		'</table>'

		);

	$('body').append(struct);

	var wrapper = $('.piro_html');

	piro_bg = $('.piro_overlay'),

	piro_nav = $('.nav_container'),

	piro_next = $('.piro_next'),

	piro_prev = $('.piro_prev'),

	piro_next_fake = $('.piro_next_fake'),

	piro_prev_fake = $('.piro_prev_fake'),

	piro_close = $('.piro_close'),

	div_reg = $('.div_reg'),

	piro_loader = $('.piro_loader'),

	resize = $('.resize'),

	y = $(window).height(),

	x = $(window).width();

	piro_nav.hide().css(opt.piro_nav_pos ,'-38px');

	if(opt.piro_nav_pos == 'top'){

		var position = +5;

	}else if(opt.piro_nav_pos == 'bottom'){

		var position = -30;

	}

	wrapper.css({left:  ((x/2)-(250))+ 'px',top: parseInt($(document).scrollTop())+(100)});

	$(wrapper).add(piro_bg).hide();

	piro_bg.css({'opacity':opt.bg_alpha});	

	$(piro_prev).add(piro_next).bind('click',function(c) {

		piro_nav.hide();

		$('.caption').remove();

		$('.zoomIn').add('.zoomOut').remove();

		c.preventDefault();

		piro_next.add(piro_prev).hide();

		var obj_count = parseInt($('a[class*="pirobox_gall"]').filter('.item').attr('rev'));

		var start = $(this).is('.piro_prev') ? $('a[class*="pirobox_gall"]').eq(obj_count - 1) : $('a[class*="pirobox_gall"]').eq(obj_count + 1);

		start.click();

	});

	$('html').bind('keyup', function (c) {

		 if(c.keyCode == 27) {

			c.preventDefault();

			if($(piro_close).is(':visible')){close_all();}

		}

	});

	$('html').bind('keyup' ,function(e) {

		 if ($('.item').is('.first')){

		}else if ($('.item').attr('rel') == 'single'){

			piro_nav.show();

		}else if(e.keyCode == 37){

		e.preventDefault();

			if($(piro_close).is(':visible')){piro_prev.click();}

		 }

	});

	$('html').bind('keyup' ,function(z) {

		if ($('.item').is('.last')){

		}else if ($('.item').attr('rel') == 'single'){

			piro_nav.show();

		}else if(z.keyCode == 39){

		z.preventDefault();

			if($(piro_close).is(':visible')){piro_next.click();}

		}

	});

	$(window).resize(function(){

		var new_y = $(window).height(),

		new_x = $(window).width(),

		new_h = wrapper.height(),

		new_w = wrapper.width();

		wrapper.css({

			left:  ((new_x/2)-(new_w/2))+ 'px',

			top: parseInt($(document).scrollTop())+(new_y-new_h)/2+position

			});			  

	});	

	function scrollIt (){

		$(window).scroll(function(){

			var new_y = $(window).height(),

			new_x = $(window).width(),

			new_h = wrapper.height()-20,

			new_w = wrapper.width();

			wrapper.css({

				left:  ((new_x/2)-(new_w/2))+ 'px',

				top: parseInt($(document).scrollTop())+(new_y-new_h)/2+position

			});			  

		});

	}

	if(opt.piro_scroll == true){

		scrollIt();

	  }

	  //$('a[class*="pirobox_gall"]');

	$(piro_gallery).each(function(){

		



		var descr = $(this).attr('title'),

		params = $(this).attr('rel').split('-'),

		p_link = $(this).attr('href');

		

		$(this).unbind(); 

		$(this).bind('click', function(e) {

			piro_bg.css({'opacity':opt.bg_alpha});	

			e.preventDefault();

			piro_next.add(piro_prev).hide().css('visibility','hidden');

			$(piro_gallery).filter('.item').removeClass('item');

			$(this).addClass('item');

			open_all();

			if($(this).is('.first')){

				piro_prev.hide();

				piro_next.show();

				piro_prev_fake.show().css({'visibility':'hidden'});

			}else{

				piro_next.add(piro_prev).show();

				piro_next_fake.add(piro_prev_fake).hide();	  

			}

			if($(this).is('.last')){

				piro_prev.show();

				piro_next_fake.show().css({'visibility':'hidden'});

				piro_next.hide();	

			}

			if($(this).is('.pirobox') || $(this).is('.single_fix')){

				piro_next.add(piro_prev).hide();

			}

			if($(this).is('.last') && $(this).is('.first') ){

				piro_next.add(piro_prev).hide();



		  	}	



		});

		function open_all(){

			wrapper.add(piro_bg).add(div_reg).add(piro_loader).show();

			function animate_html(){

				$('.caption').remove();

				if(params[1] == 'full' && params[2] == 'full'){

				params[2] = $(window).height()-70;	

				params[1] = $(window).width()-55;

				}

				var y = $(window).height();

				var x = $(window).width();

				piro_close.hide();

				div_reg.add(resize).animate({

					'height':+ (params[2]) +'px',

					'width':+ (params [1])+'px'

					},opt.piro_speed).css('visibility','visible');

				wrapper.animate({

					height:+ (params[2])+20 +'px',

					width:+ (params[1]) +20+'px',

					left:  ((x/2)-((params[1])/2+10))+ 'px',

					top: parseInt($(document).scrollTop())+(y-params[2])/2+ position

					},opt.piro_speed ,function(){

						piro_next.add(piro_prev).add(piro_prev_fake).add(piro_next_fake).css('visibility','visible');

						piro_nav.show();

						piro_close.show();

				});

			}

			function animate_image (){

				piro_nav.add('.caption').hide();

					if(descr == ""){

						$('.caption').remove();

					}else{

						$(piro_capt_cont).appendTo(resize);

					}

						var img = new Image();

						img.onerror = function (){

							$('.caption').remove();

							img.src = "http://www.pirolab.it/pirobox/js/error.jpg";

						};

						img.onload = function() {

							var this_h = img.height;

							var this_w = img.width;

							var y = $(window).height();

							var x = $(window).width();

							var	imgH = img.height;

							var	imgW = img.width;

							if(imgH+100 > y || imgW+100 > x){

								var _x = (imgW + 20)/x;

								var _y = (imgH + 20)/y;

								if ( _y > _x ){

									imgW = Math.round(img.width* (rz_img/_y));

									imgH = Math.round(img.height* (rz_img/_y));

								}else{

									imgW = Math.round(img.width * (rz_img/_x));

									imgH = Math.round(img.height * (rz_img/_x));

								}

								$('.zoomIn').add('.zoomOut').remove();

								$('.h_c_c').append('<a href="#" class="zoomIn" title="">zoomIn</a>');

								$('.zoomIn,.zoomOut').hide();

							}else{

								imgH = img.height;

								imgW = img.width;

								$('.zoomIn').add('.zoomOut').remove();

								}

							var y = $(window).height();

							var x = $(window).width();

							$(img).height(imgH).width(imgW).hide();

							$('.div_reg img').remove();

							$('.div_reg').html('');

							div_reg.append(img).show();

							$(img).addClass('immagine');

							if(opt.piro_drag == true){

								$('.immagine,.h_b_c,.h_t_c').css('cursor','move');

								if ( $.browser.msie ) {

									wrapper.draggable({ handle:'.h_t_c,.h_b_c,.div_reg img'});

								}else{

									wrapper.draggable({ handle:'.h_t_c,.h_b_c,.div_reg img',opacity: 0.80});

								}

							}

							div_reg.add(resize).animate({height:imgH+'px',width:imgW+'px'},opt.piro_speed);

							wrapper.animate({

								height : (imgH+20) + 'px' ,

								width : (imgW+20) + 'px' , 

								left:  ((x/2)-((imgW+20)/2)) + 'px',

								top: parseInt($(document).scrollTop())+(y-imgH)/2 + position

								},opt.piro_speed, function(){

									piro_loader.hide();		

									var cap_w = resize.width();

									$('.caption').css({width:cap_w+'px'});

									$('.caption').html('<p>'+descr+'</p>').hide();		

									$(img).fadeIn(300,function(){

									if(img.src == "http://www.pirolab.it/pirobox/js/error.jpg" ){

										}

									$(window).scroll(function(){

										if($('.zoomOut').is(':visible')){

										//alert('visibile');

											$(img).animate({'width':  imgW , 'height': imgH, top:0, left:0 },600,function(){

											 $('.immagine').css('cursor', 'auto');

											$(img).draggable({disabled:true});

											$('.zoomIn').add('.zoomOut').remove();

											$('.h_c_c').append('<a href="#" class="zoomIn" title="">zoomIn</a>');

											$('.zoomIn').show();

											});										

										}

										});

									$('.zoomOut').live('click',function(h){

										h.preventDefault();

										$('.immagine').css('cursor', 'auto');

										if(opt.piro_drag == true){

											wrapper.draggable({disabled:false});

										}

											$(img).draggable({disabled:true});

											$('.zoomIn').add('.zoomOut').remove();

											$('.h_c_c').append('<a href="#" class="zoomIn" title="">zoomIn</a>');

											$('.zoomIn').show();

											$(img).animate({'width':  imgW , 'height': imgH, top:0, left:0 },600)

										});

									$('.zoomIn').live('click',function(w){

										w.preventDefault();

										$('.zoomIn').add('.zoomOut').remove();

										$('.h_c_c').append('<a href="#" class="zoomOut" title="">zoomOut</a>');

										$('.zoomOut').show();

										if(opt.piro_drag == true){									

											wrapper.draggable({disabled:true});

										}

										$(img).draggable({disabled:false});

										$(img).animate({'width':  this_w , 'height': this_h , top:-(this_h-imgH)/2, left:-(this_w-imgW)/2 },600,function(){

										var imgPos     = div_reg.offset();

										var x1 = (imgPos.left + imgW) - this_w;

										var y1 = (imgPos.top + imgH) - this_h;

										var x2 = imgPos.left;

										var y2 = imgPos.top;

									  $(img).draggable({containment: [x1,y1,x2,y2],scrollSpeed: 400});

									  $('.immagine').css('cursor', 'move');

									  });

									 });

									$('.zoomIn').show();

									piro_close.show();

									$('.caption').slideDown(200);

									piro_next.add(piro_prev).add(piro_prev_fake).add(piro_next_fake).css('visibility','visible');

									piro_nav.show();

									resize.resize(function(){

										NimgW = img.width;//1.50;

										NimgH = img.heigh;//1.50;

										$('.caption').css({width:(NimgW)+'px'});

									});	

								});	

							});	

						};

						img.src = p_link;

						piro_loader.click(function(){

						img.src = 'about:blank';

					});

				}

			switch (params[0]) {

				case 'iframe':

				$('.zoomIn').add('.zoomOut').remove();

					div_reg.html('').css('overflow','hidden');

					resize.css('overflow','hidden');

					piro_close.hide();

					animate_html();

					div_reg.piroFadeIn(300,function(){

						div_reg.append(

						'<iframe id="my_frame" class="my_frame" src="'+p_link+'" frameborder="0" allowtransparency="true" scrolling="auto" align="top"></iframe>'

						);

						$('.my_frame').css({'height':+ (params[2]) +'px','width':+ (params [1])+'px'});

						piro_loader.hide();

					});

				break;

				case 'content':

				$('.zoomIn').add('.zoomOut').remove();

					div_reg.html('').css('overflow','auto');

					resize.css('overflow','auto');

					$('.my_frame').remove();

					piro_close.hide();

					animate_html();

					div_reg.piroFadeIn(300,function(){

						div_reg.load(p_link);

						//alert(p_link);

						piro_loader.hide();

					});

				break;

				case 'inline':

				$('.zoomIn').add('.zoomOut').remove();

					div_reg.html('').css('overflow','auto');

					resize.css('overflow','auto');

					$('.my_frame').remove();

					piro_close.hide();

					animate_html();

					div_reg.piroFadeIn(300,function(){

						$(p_link).clone(true).appendTo(div_reg).piroFadeIn(300);

						piro_loader.hide();

					});

				break;

				case 'flash':

				$('.zoomIn').add('.zoomOut').remove();

				$('.my_frame').remove();

				div_reg.html('').css('overflow','hidden');

				animate_html();

					var flash_cont =(

					'<object  width="'+params[1]+'" height="'+params[2]+'">'+

					'<param name="movie" value="'+ p_link +'" />'+

					'<param name="wmode" value="transparent" />'+

					'<param name="allowFullScreen" value="true" />'+

					'<param name="allowscriptaccess" value="always" />'+

					'<param name="menu" value="false" />'+

					'<embed src="'+ p_link +'" type="application/x-shockwave-flash" allowscriptaccess="always" menu="false" wmode="transparent" allowfullscreen="true" width="'+params[1]+'" height="'+params[2]+'">'+

					'</embed>'+

					'</object>');

					div_reg.piroFadeIn(300,function(){

					$(flash_cont).appendTo(div_reg);

					piro_loader.hide();

					});

				break;

				case 'gallery':

					div_reg.css('overflow','hidden');

					resize.css('overflow','hidden');

					$('.my_frame').remove();

					animate_image();

				break;

				case 'single':

					$('.my_frame').remove();

					div_reg.html('').css('overflow','hidden');

					resize.css('overflow','hidden');

					animate_image();

				break;

			} 	

		}

	});

	$('.immagine').live('click',function(){

		$('.caption').slideToggle(200);

	});

	function close_all (){

		if($('.piro_close').is(':visible')){

				$('.zoomIn').add('.zoomOut').add('.my_frame').add('.caption').remove();

				wrapper.add(div_reg).add(resize).stop();

				if(opt.piro_drag == true){

					wrapper.draggable({disabled:false});

				}

				var ie_sucks = wrapper;

				if ( $.browser.msie ) {

					ie_sucks = div_reg.add(piro_bg);

					$('.div_reg img').remove();

				}else{

					ie_sucks = wrapper.add(piro_bg);

				}

				ie_sucks.piroFadeOut(200,function(){

					div_reg.html('');

					piro_loader.hide();

					piro_nav.hide();

					piro_bg.add(wrapper).hide().css('visibility','visible');

				});

			}

		}

		piro_close.add(piro_loader).add(piro_bg).bind('click',function(y){y.preventDefault(); close_all(); });	

	}
jQuery(document).ready(function($) 
{
	$('li a').each(function(index) 
	{
		var str = $(this).attr("href");
		if(str.indexOf("support") !=-1||str.indexOf(".pdf") !=-1||str.indexOf("inquisiqr3.") !=-1||str.indexOf("captera.") !=-1)
		{
				this.target = "_blank";
		}
	});
});
})(jQuery);

