(function ($) {
 	// POPUP ===================================================
  	$.fn.apriPopup = function(settings) {
		settings = jQuery.extend({
			target	: '',			// finestra da aprire (onload)
			width 	: '400', 	//larghezza
			height 	: '400', 	// altezza
			wname		: 'popup'	// nome finestra
		}, settings);
		return this.each(function(){
			var windowLeft = (screen.width - settings.width) / 2;
			var windowTop = (screen.height - settings.height) / 2;
			if(settings.target){
			var target=settings.target;
			}else{	
			var target = $(this).attr('href');
			};
			window.open(target, settings.wname, 'height='+settings.height+', width='+settings.width+', top=' + windowTop + ',left=' + windowLeft + ',scrollbars=no, resizable=0, menubar=0, toolbar=0, location=0, statusbar=0, fullscreen=0');
		});
	};
	
	// FINESTRA MODALE =========================================
  	$.fn.apriModale = function (settings) {
	  	settings = jQuery.extend({
			target		: '',					// finestra da aprire (onload)
			color 		: '#fff', 			// colore overlay
			opacity 		: '0.8', 			// trasparenza		
			divToLoad	: '#modale',		// div da caricare
			spinner		: 'spinner.gif'	// immagine di preload
		}, settings);		
		
		var ie6 = $.browser.msie && parseInt($.browser.version) == 6 && typeof window['XMLHttpRequest'] != "object";		
		
		 return this.each(function() {		 		 		
 				apriOverlay();  				
 				if(settings.target){ //specifico il file da aprire 				
					var target=settings.target;
					var divRemoto = settings.target;
				}else{// lo recupero dall'href
					var target = $(this).attr('href');
					var divRemoto = $(this).attr('target');
				};
 				// verifico se aprire un contenuto locale o remoto 				
 				if (target.length>1 && target.substr(0, 1) == '#'){ 
 					settings.mode='locale';
 					var contenuto = $(target);
 					$(contenuto).appendTo('div#orizzonte');
 					mostraModale(target); 					
 				}else{ 
 					settings.mode='remoto';
 					if (divRemoto.length>1 && divRemoto.substr(0, 1) == '#'){
 						var contenuto = target+' '+divRemoto; // recupero il valore dal target del link
 						$('div#orizzonte').load(contenuto, null, function(){
 						mostraModale(divRemoto); 
						});
 					}else{
 						var contenuto = target+' '+settings.divToLoad; // lo recupero dai setting
 						$('div#orizzonte').load(contenuto, null, function(){
 						mostraModale(settings.divToLoad); 	
						});						
 					} 		
 				};	 				
 				$('a#btn_modal_close').live('click', function(){
 					chiudiModale();
 					return false;
 				});	
 			function apriOverlay(){
 				var bodyHeight = $('body').outerHeight();
 				var viewportHeight = $(window).height();
 				var scrollTop = $('html').scrollTop(); 
    			var overlay='<div id="modaleOverlay" /><div id="orizzonte" />';
 				 if(ie6) { // ie6 					
 					var globalPosition = 'absolute';
 					var centro = scrollTop + (viewportHeight/2);
 				}else{ // altro 
 					var globalPosition = 'fixed';
 					var centro = viewportHeight/2;
 				};  				 	
 				$('body').append(overlay);	
		     	$('#modaleOverlay').css({
			     	'width':'100%',
			     	'height':viewportHeight+'px', 
			     	'z-index':'5000', 
			     	'background':settings.color, 		
			     	'position':globalPosition,    
			     	'top':'0',
			     	'left':'0',
			     	'text-align':'center',
			     	'filter': 'alpha(opacity='+settings.opacity*100+')',
					'-khtml-opacity': settings.opacity,
					'-moz-opacity': settings.opacity,
					'opacity':settings.opacity
		     	}); 
		     	$('#orizzonte').css({
			     	'width':'100%',   	
			     	'height':'50px',      	
			     	'z-index':'5001',	
			     	'position':globalPosition, 
			     	'top':(centro-25)+'px',	     
			     	'left':'0',			 	
			     	'text-align':'center',    	
			     	'overflow':'visible',
			     	'background':'url("img/'+settings.spinner+'") 50% 50% no-repeat'
		     	}); 		
 			};  
 			function mostraModale(divToShow){ 
 				var finestra = divToShow; 				
 				var offset = $(finestra).outerHeight()/2; 				
 				 if(offset ==0){ 					
 					alert('Il contenuto che si vuole aprire non esiste!');
 					chiudiModale();
 					return; 					
 					}; 				
 					 $(finestra).css({
	 				'margin':'0 auto', 
	 				'position':'relative', 
	 				'top':'-'+(offset-40)+'px',
	 				'display':'block',
	 				'opacity': '0'	
					})
					.append('<a href="#" id="btn_modal_close">Chiudi</a>')
					.animate({
	 				'opacity': '1'	
					}, 500, function(){
						if(settings.callback != undefined){
 							settings.callback(); // richiamo la callback eventuale
 						}	
					});
 			};	 			
 			function chiudiModale(){  				
				if ($(contenuto).length) {  
					$(contenuto).appendTo('body');//.hide();
					$(contenuto).hide();					
					$('#modaleOverlay').remove(); 
    				$('#btn_modal_close').remove();	
				};
				$('#modaleOverlay').remove(); 
				$('#orizzonte').remove();
			 	};
 		});
  	};
	//=========================================
})(jQuery);
