jQuery.windowHelper = null;

jQuery.fn.tinyWindow = function(options)
{			
		return this.each(function(){			
			new jQuery.fx.tnWindow($(this), options);
		});
};

jQuery.fx.tnWindow = function(target, options)
{	
	
	var settings = {
        target     	: target,
        width		: 500,
        height		: 200,
        duration	: 'slow',
        submitdata : {},
        onclose: function(){},
        onshow: function(){}
    };
        
    if(options) {
        $.extend(settings, options);
    }
    
    var $tnMarginLeft = parseInt(settings.width / 2) - 8;
    var $tnMarginTop = parseInt(settings.height / 2) - 8;
    var $tnTop = $(window).height() / 2;
    var $tnLeft = $(window).width() / 2;
    
    //alert($tnTop);
    //alert($tnLeft);        
    
    var $tnLoading = $('<div class="tnWindowLoading"></div>').css({'margin-left':$tnMarginLeft, 'margin-top':$tnMarginTop});
    
    var $marginLeft = (-1) * parseInt(settings.width / 2) ;
    var $marginTop = (-1) * parseInt(settings.height / 2) ;  
    
    if($(window).width() <= settings.width){
		$marginLeft = 10; //10 para nao ficar encostado
		$tnLeft = 0;
    }
    
    if($(window).height() <= settings.height){
    	$marginTop = 10; //10 para nao ficar encostado
    	$tnTop = 0;
    }    
    
    /*alert($marginTop);
    alert(settings.height);
    alert($(window).height());*/  
       
	
	if(jQuery('.tinywindow').size() == 0)
	{
		jQuery('body', document).append('<div id="tinywindow" class="tinywindow">aaa</div>');
		jQuery.windowHelper = jQuery('.tinywindow');
		jQuery.windowHelper.css({
			width: settings.width,
			height: settings.height,
			'margin-left' : $marginLeft,
			'margin-top' : $marginTop,
			'top' : $tnTop,
			'left': $tnLeft
		});
	}   		 
	
	var btnClose = function(id)  {
		if(settings.trigger){			
			$tnTrigger = $(settings.trigger);						
			$tnTrigger.click(function(){											
				settings.onclose.apply($tnTrigger, [id]);
				jQuery.windowHelper.hide();					
			});						
		}else{
			jQuery.windowHelper.click(function(){
				settings.onclose.apply($tnTrigger, [id]);
				jQuery.windowHelper.hide();		
			});
		}
	}
	
	var evalCalbback = function(){		
		if ($.isFunction(settings.callback)) {
			settings.callback();
		}
	}
	
	var showWindow = function(event){								
		
		jQuery.windowHelper.remove();
		
		jQuery('body', document).append('<div id="tinywindow" class="tinywindow"></div>');
		jQuery.windowHelper = jQuery('.tinywindow');
		jQuery.windowHelper.css({
			width: settings.width,
			height: settings.height,
			'margin-left' : $marginLeft,
			'margin-top' : $marginTop,
			'top' : $tnTop,
			'left': $tnLeft
		});
		
		
		
		jQuery.windowHelper.append($tnLoading);
		
		jQuery.windowHelper.show();
		
		settings.onshow.apply(this,[event]);				
		
		if(settings.url){
			settings.submitdata['id'] = this.id;
			$.ajax({
				'url': settings.url,
				'data' : settings.submitdata,
				'type': 'POST',
				'success': function(data) {
					$tnLoading.remove();
					jQuery.windowHelper.append(data);
					jQuery.windowHelper.css('background','transparent');			
					btnClose(settings.submitdata['id']);
					evalCalbback();						 												
				}
			});			
		}											
		
	}
	
	/*
	jQuery.tooltip.css('display', 'block').css('position', 'absolute').hide();
	
	var positionTooltip = function(event) {
	    var tPosX = event.pageX+5;
	    var tPosY = event.pageY-30;		   
    	if ( typeof jQuery != "undefined" ){   
	    	if(jQuery('div.tooltip').size() > 0){
				jQuery('div.tooltip').show().css({top: tPosY, left: tPosX, opacity: 0.8});
	    	}
    	}
    	
	};
	  
	var showTooltip = function(event) {	
		
		target.attr('title','');
		
		if ( typeof jQuery != "undefined" ){  
			if(jQuery('div.tooltip').size() > 0){  	  	  		  	
				jQuery('div.tooltip').remove();	   
			}
			
			jQuery('<div class="tooltip">'+settings.title+'</div>').hide().appendTo('body');	    
	    	positionTooltip(event);
		}
			    			
	};
	
	var hideTooltip = function(event) {
						
		if ( typeof jQuery != "undefined" ){  
			if(jQuery('div.tooltip').size() > 0){
				jQuery('div.tooltip').remove();
			}
		}
		
		target.attr('title', orTitle);
	};
	*/
	//target.hover(showTooltip,hideTooltip);		
	
	//target.bind('mousemove',positionTooltip);
	
	target.click(showWindow);	
	
		
};
