/* new pirobox v1.2.2 extended beta*/
var pr_loaded = false;
(function($) {
	$.fn.piroBox_ext = function(opt) {
		opt = jQuery.extend({
		piro_speed : 700,
		bg_alpha : 0.6
		}, 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(pr_loaded == false){
	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="btn_info" title="open/close info"></div>'+
		'<div class="caption"></div>'+
		'<a href="#prev" class="piro_prev" title="previous"></a>'+
		'<a href="#next" class="piro_next" title="next"></a>'+
		'<div class="piro_close" title="close"></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);
	$('<h2 class="piro_title"></h2>').appendTo('body')
}

	var wrapper = $('.piro_html'),
	piro_capt = $('.caption'),
	piro_bg = $('.piro_overlay'),
	piro_next = $('.piro_next'),
	piro_prev = $('.piro_prev'),
	piro_close = $('.piro_close'),
	div_reg = $('.div_reg'),
	piro_loader = $('.piro_loader'),
	piro_title = $('.piro_title'),
	resize = $('.resize'),
	btn_info = $('.btn_info');
	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});
	}	
	var y = $(window).height();
	var x = $(window).width();
	wrapper.css({left:  ((x/2)-(250))+ 'px',top: parseInt($(document).scrollTop())+(100)});
	$(wrapper).add(piro_capt).add(piro_bg).add(piro_title).hide();
	piro_bg.css({'opacity':opt.bg_alpha});	
if(pr_loaded == false){
	$(piro_prev).add(piro_next).bind('click',function(c) {
		c.preventDefault();
		piro_next.add(piro_prev).hide();
		$('.ui-resizable-se').css('visibility','hidden');
		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();
	});
}
pr_loaded = true;

	$('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(e.keyCode == 37){
		e.preventDefault();
			if($(piro_close).is(':visible')){piro_prev.click();}
		 }
	});
	$('html').bind('keyup' ,function(z) {
		if ($('.item').is('.last')){
		}else if(z.keyCode == 39){
		z.preventDefault();
			if($(piro_close).is(':visible')){piro_next.click();}
		}
	});
	$(window).resize(function(){
		var new_y = $(window).height();
		var new_x = $(window).width();
		var new_h = wrapper.height();
		var new_w = wrapper.width();
		wrapper.css({
			left:  ((new_x/2)-(new_w/2))+ 'px',
			top: parseInt($(document).scrollTop())+(new_y-new_h)/2
			});			  
	});
	$(piro_gallery).each(function(){
		var descr = $(this).attr('title');
		var params = $(this).attr('rel').split('-');
		var 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();
			}else{
				piro_next.add(piro_prev).show();		  
			}
			if($(this).is('.last')){
				piro_prev.show();
				piro_next.hide();	
			}
			if($(this).is('.pirobox')){
				piro_next.add(piro_prev).hide();	
			}

		});

	function open_all(){
			wrapper.add(piro_bg).add(div_reg).add(piro_loader).show();
			
els=document.getElementsByTagName("OBJECT");
for(i=0; i<els.length;i++){
 els[i].style.display = 'none';
}
		function animate_html(){
				if(params[1] == 'full' && params[2] == 'full'){
				params[2] = $(window).height()-130;	
				params[1] = $(window).width()-100;
				}
				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','hidden');
				wrapper.animate({
					height:+ (params[2])+ 60 +'px',
					width:+ (params[1])+ 60 +'px',
					left:  ((x/2)-((params[1])/2+30))+ 'px',
					top: parseInt($(document).scrollTop())+(y-params[2])/2-30
					},opt.piro_speed ,function(){
						piro_next.add(piro_prev).css({'height':(params[2])+'px','width':'23px'});
						div_reg.add(resize).css('visibility','visible');
						piro_title.add(piro_close).show();
						piro_next.add(piro_prev).css('visibility','visible');
				});
			}
			function animate_image (){
						var img = new Image();
						img.onload = function() {
							piro_title.html(descr).hide();
							piro_capt.add(btn_info).hide();	
							var y = $(window).height();
							var x = $(window).width();
							var	imgH = img.height;
							var	imgW = img.width;
							var rz_img =0.95; /*::::: ADAPT IMAGE TO BROWSER WINDOW SIZE :::::*/
							//var rz_img =1.203; /*::::: ORIGINAL SIZE :::::*/
							if(imgH+60 > y || imgW+60 > x){
								var _x = (imgW + 60)/x;
								var _y = (imgH + 60)/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));
								}
								resize.resizable({
									aspectRatio: true,  
									alsoResize:'.piro_html,.div_reg img,.div_reg', 
									maxHeight:(img.height),
									maxWidth: (img.width),
									minHeight:imgH,
									minWidth: imgW
									});
							}else{
								 imgH = img.height;
								 imgW = img.width;
								 resize.resizable('destroy');
								}
								$('.ui-resizable-se').css('visibility','hidden');
							var y = $(window).height();
							var x = $(window).width();
							$(img).height(imgH).width(imgW).hide();
							
							$(img).fadeOut(300,function(){});
								$('.div_reg img').remove();
								$('.div_reg').html('');
								div_reg.append(img);
							
							
							div_reg.add(resize).animate({height:imgH+'px',width:imgW+'px'},opt.piro_speed);
							wrapper.animate({
								height : (imgH+60) + 'px' ,
								width : (imgW+60) + 'px' , 
								left:  ((x/2)-((imgW+60)/2)) + 'px',
								top: parseInt($(document).scrollTop())+(y-imgH)/2-30
								},opt.piro_speed, function(){
									var cap_w = resize.width();
									piro_capt.css({width:cap_w+'px'});
									piro_loader.hide();				
									$(img).fadeIn(300,function(){
									piro_close.add(btn_info).show();
									piro_capt.slideDown(200);
									$('.ui-resizable-se').css('visibility','visible');								
									piro_next.add(piro_prev).css({'height':(imgH)+'px','width':'150px'});
									piro_next.add(piro_prev).css('visibility','visible');
									resize.resize(function(){
										NimgW = img.width;//1.50;
										NimgH = img.height;//1.50;
										piro_capt.css({width:(NimgW)+'px'});
										piro_next.add(piro_prev).css('height',(NimgH)+'px');
	  
									});	

								});	
							});	
						}
						
						img.src = p_link;
						
						piro_loader.add(piro_bg).click(function(){
						img.src = 'about:blank';
					});
				}
	
			switch (params[0]) {
				
				case 'iframe':
					resize.resizable('destroy');
					piro_title.html('');
					div_reg.html('');
					div_reg.html('').css('overflow','hidden');
					resize.css('overflow','hidden');
					piro_close.add(btn_info).add(piro_capt).hide();
					piro_title.html(descr).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':
					resize.resizable('destroy');
					piro_title.html('');
					div_reg.html('').css('overflow','auto');
					resize.css('overflow','auto');
					$('.my_frame').remove();
					piro_close.add(btn_info).add(piro_capt).hide();
					piro_title.html(descr).hide();
					animate_html()	
					div_reg.piroFadeIn(300,function(){
						div_reg.load(p_link);
						piro_loader.hide();
					});
				break;
				
				case 'inline':
					resize.resizable('destroy');
					piro_title.html('');
					div_reg.html('').css('overflow','auto');
					resize.css('overflow','auto');
					$('.my_frame').remove();
					piro_close.add(btn_info).add(piro_capt).hide();
					piro_title.html(descr).hide();
					animate_html()	
					div_reg.piroFadeIn(300,function(){
						$(p_link).clone(true).appendTo(div_reg).piroFadeIn(300);
						piro_loader.hide();
					});
				break	
							
				case 'gallery':
					div_reg.css('overflow','hidden');
					resize.css('overflow','hidden');
					$('.my_frame').remove();
					piro_close.add(btn_info).add(piro_capt).hide();
					piro_capt.html('<p>' + descr + '</p>');
					animate_image();
				break;
				
				case 'single':
					piro_close.add(btn_info).add(piro_capt).hide();
					div_reg.html('').css('overflow','hidden');
					resize.css('overflow','hidden');
					$('.my_frame').remove();
					piro_capt.html('<p>' + descr + '</p>');
					animate_image();
				break
			} 	
		}
	});
	btn_info.click(function(){
		piro_capt.slideToggle(200);
	});
	function close_all (){
els=document.getElementsByTagName("OBJECT");
for(i=0; i<els.length;i++){
 els[i].style.display = 'block';
}
			$('.my_frame').remove();
			wrapper.add(div_reg).add(resize).stop();
			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_prev.add(piro_next).add(piro_loader).add(piro_capt).add(piro_title).add(btn_info).add(piro_close).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);
