var currPopup=null;
// объект - Стандартный попап
function Popup(popupCode,widthType,info){
	var self=this;
	this.popup=null;
	this.popupTop=null;
	this.icoClose=null;
	this.inner=null;
	this.fixed=true;
	this.popupCode='';
	this.widthType=0;
	this.info=info?info:{};
	
	// зафиксировать попап
	this.fixPopup=function(){
		if(!isIe6()){
			self.popup.style.position='fixed';
		}else{
			self.popup.style.position='absolute';
		}
	}
	
	// позиционировать попап относительно контекста
	this.posPopup=function(){
		var t=0,l=0,w=0,h=0;
		w = parseInt(Math.round(getClientWidth()));
		h = parseInt(Math.round(getClientHeight()));
		var scrollTop = parseInt(self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop));
		var size=getSize(self.popup);
		l=Math.round(w/2 - size.w/2);
		if(self.fixed){
			t=Math.round(h/2 - size.h/2);
			
		}else{
			if(self.popup.offsetHeight<h)
				t=scrollTop + Math.round(h/2 - size.h/2);
			else
				t=scrollTop + 40;
		}
		setPosition(self.popup,{t: t,l: l});
	}
	
	// показать попап
	this.showPopup=function(){
		self.popup.style.visibility='hidden';
		self.popup.style.display='block';
		self.posPopup();
		showCover();
		self.popup.style.visibility='visible';
	}
	
	// спрятать попап
	this.hidePopup=function(){
		hide(popup);
	}
	
	// уничтожить попап
	this.destroyPopup=function(){
		domD(self.popup);
		hideCover();
		currPopup=null;
	}
	
	// инициализация
	this.init=function(popupCode){
		var ajaxObj=new Ajax();
		ajaxObj.onLoaded=function(ajaxObj){
			var innerText=ajaxObj.request.responseText;
			var tempPar=domC('div');
			if(innerText)tempPar.innerHTML=innerText;
			currPopup=self.popup=domFC(tempPar);
			self.popupTop=domFC(self.popup);
			self.icoClose=domFC(self.popupTop);
			self.icoClose.onclick=self.destroyPopup;
			document.body.appendChild(self.popup);
			self.showPopup();
			if(self.fixed){
				self.fixPopup();
			}
		}
		self.info['code']=popupCode;
		self.info['width']=self.widthType;
		ajaxObj.sendData(self.info,'ajax-act-GetPopup.html');
		
	}
	if(currPopup)domD(currPopup);
	this.popupCode=popupCode;
	if(widthType)this.widthType=widthType;
	this.init(self.popupCode);
}

// показать фон
function showCover(){
	showId('cover');
}	
// спрятать фон
function hideCover(){
	hideId('cover');
}

var currContextPopup=null;
// объект - Контекстный попап
function ContextPopup(context,html){
	var self=this;
	this.popup=null;
	this.context=null;
	this.inner=null;
	this.lifetime=7;
	
	// установить рабочий объект-контекст
	this.setContext=function(context){
		if(typeof(context)=='string')
			self.context=gei(context);
		else
			self.context=context;
		return self.context;
	}
	
	// позиционировать попап относительно контекста
	this.posPopup=function(){
		var pos=getOffset(self.context);
		var size=getSize(self.popup);
		setPosition(self.popup,{t: pos.t-size.h+5, l: pos.l+5});
	}
	
	// показать попап
	this.showPopup=function(){
		invis(self.popup);
		show(self.popup);
		self.posPopup();
		vis(self.popup);
		self.setTimer();
	}
	
	// установить таймер
	this.setTimer=function(){
		var popupNode=self.popup;
		setTimeout(function(){domD(popupNode);},self.lifetime*1000);
	}
	
	// спрятать попап
	this.hidePopup=function(){
		hide(popup);
	}
	
	// уничтожить попап
	this.destroyPopup=function(){
		domD(self.popup);
	}
	
	// инициализация
	this.init=function(context,html){
		if(!self.setContext(context))return false;
		self.popup=domC('div','popup context');
		self.inner=domC('div','c');
		if(html){
			self.inner.innerHTML=html;
		}
		self.popup.appendChild(domC('div','t'));
		self.popup.appendChild(self.inner);
		self.popup.appendChild(domC('div','b'));
		self.popup.onclick=function(){
			domD(self.popup);
			currContextPopup=null;
		}
		if(currContextPopup)domD(currContextPopup);
		currContextPopup=self.popup;
		document.body.appendChild(self.popup);
		self.showPopup();
	}
	this.init(context,html);
}
