/***
Ex:
		popup = new Popup({
			bt_close:'.fechaPop',
			mask:true,
			Fixed:false,
			posRelScroll:true,//posicao relacionada ao Scroll 
			fade:true
		});
		popup.open(conteudo);
***/
var ie6 = (navigator.userAgent.indexOf("MSIE 6")!= -1);
var ie8 = (navigator.userAgent.indexOf("MSIE 8")!= -1);

function Popup(args){
	var me = this;
	this.idPopup = (args.idPopup)?args.idPopup:'dialog';
	this.conteudo = (args.conteudo)?args.conteudo:'';
	this.class_alerta = (args.class_alerta)?args.class_alerta:'pop_alerta';
	this.Fixed = args.Fixed;
	this.fade = args.fade;
	this.Top = args.Top;
	this.Left = args.Left;
	this.posRelScroll = args.posRelScroll;
	this.mask = args.mask;
	this.onOpen = args.onOpen;
	this.onClose = args.onClose;
	if(this.mask){
		this.objMask = $(document.createElement('div'));
		this.maskColor = (args.maskColor)?args.maskColor:'#000';
		this.objMask.attr('id','mask');
		me.objMask.css({
			"display":"none",
			"position":"absolute",
			"background":me.maskColor,
			"top":'0',
			"left":'0',
			"z-index":97
		});	
	}
	this.objPop = $(document.createElement('div'));
	this.objPop.attr('id',me.idPopup);
	this.posicao = "fixed";
	me.objPop.css({
		"z-index":99,
		"display":"none"
	});
	if(this.objMask){
		$(document).find('body').append(me.objMask);
	}
	$(document).find('body').append(me.objPop);
	
	var FadeTo = function(obj,vel,opac,callBack){
		obj.css("display","block");
		obj.animate({opacity: opac}, vel,callBack) 
	}
	this.open = function(conteudo){			
		var docHeight = $(document).height();
		var docWidth = $(document).width();	
		var winH = $(window).height();
		var winW = $(window).width();
		var conteudo = (conteudo)?conteudo:me.conteudo;	
		var mostrarPop = function(){
				
			me.objAlert = $(document.createElement('div'));	
			me.objAlert.attr('class',me.class_alerta);
			me.objAlert.css({
				"position":"absolute",
				"z-index":10,
				"display":"none"
			});			
			me.objPop.html(me.objAlert).append(conteudo);
			if(!me.Top){
				me.Top = ((winH-me.objPop.height())/2);
			}
			if(!me.Left){
				me.Left = ((winW-me.objPop.width())/2);
			}
            if(me.objPop.height() > winH){
                me.Top =10;
            }
			if(me.Fixed){
				var posicao = (ie6)?"absolute":"fixed";
				if(ie6){						
					$(window).scroll(function(){
						//var topo = 	parseInt(me.Top.replace('px',''));				  
						me.objPop.css("top", (topo+$(window).scrollTop())+"px");
					});
					me.objPop.css({			
						"position":posicao,
						"left":me.Left+"px",
						"top":me.Top+"px"
					});		
				}else{
					me.objPop.css({
						"position":posicao,
						"top":me.Top+"px",		  
						"left":me.Left+"px"		
					});
				}			
			}else{
				var Top = me.Top;
				var Left = me.Left;	
				if(me.posRelScroll){
					Top += $(window).scrollTop();
					Left += $(window).scrollLeft();	
				}
				if ((Top+me.objPop.height()) > docHeight){
					Top -= ((Top+me.objPop.height())-docHeight)+30;
				}
				me.objPop.css({
					"position":"absolute",
					"top":Top+"px",		  
					"left":Left+"px"		
				});	
			}
			var onShow = function(){
				me.bt_close = $(args.bt_close);
				me.bt_close.click(me.close);
				if(args.ancora)
					document.location = args.ancora	;
				if(me.onOpen)
					me.onOpen();
			}
			if(me.fade){
				me.objPop.fadeIn(500,onShow);	
			}else{
				me.objPop.css('display','block');	
				onShow();
			}
		}
		if(me.mask){
			docWidth = (ie8 || ie6)?docWidth-22:docWidth;
			me.objMask.css({
				'width':docWidth,
				'height':docHeight,
				opacity: 0.0				
			});	
			/*me.objMask.fadeIn(500);
			me.objMask.fadeTo(500,0.7,mostrarPop);	*/
			FadeTo(me.objMask,400,0.7,mostrarPop);
		}else{
			mostrarPop();	
		}
	}
	this.alerta = function(str){
		var bt_ok = $(document.createElement('a'));
		bt_ok.attr('class','bt_ok').attr('href','javascript:void(0)');
		bt_ok.html('[ok]');		
		bt_ok.click(function(){
			me.closeAlert()			 
		});	
		me.objAlert.html(str).append(bt_ok);		
		me.objAlert.css('display','block');
	}
	this.closeAlert = function(){
		me.objAlert.css('display','none');		
	}
	this.close = function(){
		if(me.fade){
			me.objPop.fadeOut(300,function(){
				if(me.mask){
					me.objMask.fadeOut(500,function(){
						me.objPop.remove();
						me.objMask.remove();	
					});
				}else{
					me.objPop.remove();
					me.objMask.remove();	
				}	
			});						
		}else{
			me.objPop.css('display','none');	
			if(me.mask){
				me.objMask.fadeOut(500,function(){
					me.objPop.remove();
					me.objMask.remove();	
				});
			}else{
				me.objPop.remove();
				me.objMask.remove();	
			}	
		}		
		if(me.onClose)
			me.onClose();
	}	
}

