// JavaScript Document
function toolModalDiv(type, value, w, h, idbg, idmain) {
	this.type = type;
	this.value = value;
	if(!w) this.mainWidth = null; else this.mainWidth = w;
	if(!h) this.mainHeight = null; else this.mainHeight = h;
	if(!idbg) this.idbg = this.defBgId; else this.idbg=idbg;
	if(!idmain) this.idmain = this.defMainId; else this.idmain=idmain;
	this.start();
}


toolModalDiv.prototype = {
	debugMode: 1,
	// divs:
	bgDiv: null,
	mainDiv: null,
	defMainId: 'mainDiv',
	defBgId: 'bgDiv',
	defOpacityBg: 0.2,
	startOpacityBg: 0.0,
	resultOpacityBg: 0.7,	
	showTimeBg: 100, // msec.
	pauseTime: 400, // msec.
	hideTimeBg: 2000,  // msec.
	currentOpacityBg: null, // background div opacity
	curentOpacityMain: null, // modal div opacity
	deltaTicker: 50, // msec.
	idTicker: null,
	idTimer: null,
	cont: null,
	spaceWidth: null,
	selects: null,
	spaceHeight: null,
	deltaShowOpacityBg: null, 
	eventBg: true,
	cancelTicker: function() {
		if(this.idTicker) clearInterval(this.idTicker);
		this.idTicker=null;
	},
	cancelTimer: function() {
		if(this.idTimer) clearInterval(this.idTimer);
		this.idTimer=null;
	},
	setOpacityBg: function (op) {
		if(!op) op=this.defOpacityBg;
		if(typeof(this.bgDiv)!="object") this.createBgDiv();
		setOpacity(this.bgDiv,op);
	},
	setOpacityMain: function (op) {
	},
	setContent: function () {
        var self=this;
		
        if(this.type=='text') this.mainDiv.innerHTML=this.value;
        else if(this.type=='func' || this.type=='function') { this.cont=this.value.call(); }
        else if(this.type=='obj' || this.type=='object') this.cont=document.getElementById(this.value).innerHTML;
        else if(this.type=='ajax') {     
			new net.ContentLoader(this.value, 
                function () { 
                    self.cont=this.req.responseText; 
                    self.mainDiv.innerHTML=self.cont;                                   
                }
			);
		} else if (this.type=='link') {
			var iframe = '<iframe src="'+ this.value +'" style="width:100%;height:100%;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="100%" height="100%"></iframe>';
			this.mainDiv.innerHTML = iframe;
		} else {
			this.mainDiv.innerHTML=this.value;
		}
		
	},
	createBgDiv: function () {
		var obj=document.createElement("div");
		obj.id = this.idbg;
		document.body.appendChild(obj);
		if(this.eventBg) {
			var self=this;
			addEvent(obj,'click', function () { self.delModalDivs(); } ,false);	
		}
		this.bgDiv=obj;
	},
	delModalDivs: function () {	
		var id = this.idbg;
		this.bgDiv.removeNode(true);
		this.mainDiv.removeNode(true);
		if(isIE) this.showAllSelects();
	},
	createMainDiv: function () {
		var obj=document.createElement("div");
		obj.id = this.idmain;
		document.body.appendChild(obj);
		this.mainDiv=obj;
	},
	showBg: function () {	
		this.currentOpacityBg=this.startOpacityBg;
		this.setOpacityBg(this.startOpacityBg);
		this.bgDiv.style.visibility='visible';
		
		this.deltaShowOpacityBg = (this.resultOpacityBg-this.startOpacityBg)/(this.showTimeBg/this.deltaTicker);	
		var interval=this.deltaTicker
		var self = this;
		this.idTicker=setInterval(function() { self.incBgOpacity(); } ,interval);
	},	
	incBgOpacity: function () {
		this.currentOpacityBg=this.currentOpacityBg+this.deltaShowOpacityBg;
		this.setOpacityBg(this.currentOpacityBg);
		if(this.currentOpacityBg >= this.resultOpacityBg) 
		{ 
			this.cancelTicker(); var pause=this.pauseTime;
			var self=this;		
			this.idTimer=setTimeout(function () { self.showMain(); } , pause);
		}
		
	},
	hideAllSelects: function() {
		this.selects=document.getElementsByTagName('select');
		for(var i=0; i < this.selects.length; i++) {
			this.selects[i].style.visibility='hidden';
		}
	},
	showAllSelects: function() {
		for(var i=0; i < this.selects.length; i++) {
			this.selects[i].style.visibility='visible';
		}
	},
	showMain: function () {	
		this.cancelTimer();
		this.createMainDiv();
		if(this.mainWidth) this.mainDiv.style.width=this.mainWidth+'px';
		if(this.mainHeight) this.mainDiv.style.height=this.mainHeight+'px';	
		this.mainDiv.style.marginLeft = -(this.mainDiv.offsetWidth / 2) + "px";
		this.mainDiv.style.marginTop = -(this.mainDiv.offsetHeight / 2) + document.body.scrollTop + "px";
		this.mainDiv.style.visibility='visible';
		this.setContent();
	},
	start: function () {
		if(isIE) this.hideAllSelects();
		this.createBgDiv();
		
		this.bgDiv.style.width=getDocumentWidth()+'px';	
		this.bgDiv.style.height=getDocumentHeight()+'px';
		
		this.showBg();
	}
};


