var PopupControl = new function(){
	this.windows = new Array();
	this.blackout = new Array();
	
	this.getSettings = function(settings){
		var obj = new Object();
		obj.width = 500;
		obj.height = 500;
		
		if(tmp != ""){
			var tmp = settings.split(",");
			if(tmp.length > 0){
				for(var i=0; i < tmp.length; i++){
					var setting = tmp[i].split("=");
					if(setting.length == 2){
						obj[setting[0].toLowerCase()] = setting[1];
					}
				}			
			}
		}
		return obj;
	}
	
	this._getScrollXY = function() {
	  var scrOfX = 0, scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	  }
	  return {x: scrOfX, y: scrOfY};
	}
	
	this.openPopup = function(url, name, settings){
		//var win = window.open(url, name, settings);
		//this.windows.push(win);
		
		this.closeWindowById("window_" + name);
		
		var bdy = document.getElementsByTagName("body")[0];
		
		settings = this.getSettings(settings);
		
		var bw = parseInt(DOMFunctions.getBrowserWidth());
		var bh = parseInt(DOMFunctions.getBrowserHeight());
		
		var wh = parseInt(settings.height);
		var ww = parseInt(settings.width);
		
		var top = 40;
		var left = parseInt(bw/2) - parseInt(ww/2);
		
		var div = document.createElement("div");
		bdy.appendChild(div);
		div.id = "window_" + name;
		div.style.backgroundColor = "#996633";
		div.style.height = wh + "px";
		div.style.width = ww + "px";
		div.style.top = top + "px";
		div.style.left = left + "px";
		div.style.position = "absolute";
		div.style.border = "1px solid black";
		div.style.zIndex = "100001";
		
		var divClose = document.createElement("div");
		div.appendChild(divClose);
		divClose.style.textAlign = "right";
		divClose.style.height = "26px";
		divClose.style.borderBottom = "1px solid black";
		
		
		var btn = DOMFunctions.createInputElement("button", "btnClose", "Close");
		divClose.appendChild(btn);
		btn.id = "btnClose_" + div.id
		btn.onclick = function(){
			var id = this.id.replace("btnClose_", "");
			PopupControl.closeWindowById(id);
		}
		btn.style.color = "white";
		btn.style.fontSize = "14px";
		btn.style.fontWeight = "bold";
		btn.style.backgroundColor = "transparent";
		btn.style.margin = "2px";
		btn.style.padding = "2px";
		btn.style.border = "0px solid #404040";
		
		
		var btn = DOMFunctions.createInputElement("button", "btnClose", "X");
		divClose.appendChild(btn);
		btn.id = "btnClose_" + div.id
		btn.onclick = function(){
			var id = this.id.replace("btnClose_", "");
			PopupControl.closeWindowById(id);
		}
		btn.style.color = "black";
		btn.style.fontSize = "9px";
		btn.style.fontWeight = "bold";
		btn.style.backgroundColor = "#e0e0e0";
		btn.style.margin = "2px";
		btn.style.marginTop = "0px";
		btn.style.padding = "2px";
		btn.style.border = "1px solid #404040"
		
		var iframe = document.createElement("iframe");
		iframe.id = "frame_" + div.id
		iframe.name = "frame_" + div.id
		div.appendChild(iframe);
		iframe.style.backgroundColor = "white";
		iframe.style.width = ww + "px";
		iframe.style.height = (wh - parseInt(divClose.style.height) - 3	) + "px";
		iframe.src = url;
		iframe.border = 0;
		iframe.style.borderWidth = "0px";
		
		this.windows.push(div);
		
		var divBlackout = document.createElement("div");
		bdy.appendChild(divBlackout);
		divBlackout.style.position = "absolute";
		divBlackout.style.backgroundColor = "black";
		divBlackout.style.height = bh + "px";
		divBlackout.style.width = bw + "px";
		divBlackout.style.top = "0px";
		divBlackout.style.left = "0px";
		divBlackout.style.zIndex = "100000";
		DOMFunctions.setOpacity(divBlackout, 60);
		this.blackout.push(divBlackout);
		
	}
	
	this.openPopupNoClose = function(url, name, settings, displayFor){
		
		this.closeWindowById("window_" + name);
		
		var bdy = document.getElementsByTagName("body")[0];
		
		settings = this.getSettings(settings);
		
		var bw = parseInt(DOMFunctions.getBrowserWidth());
		var bh = parseInt(DOMFunctions.getBrowserHeight());
		
		var wh = parseInt(settings.height);
		var ww = parseInt(settings.width);
		/*
		if(navigator.appName == "Microsoft Internet Explorer"){
			wh+=10;
			ww += 10;
		}*/
		
		var xy = this._getScrollXY();
		var top = 290;
		var left = parseInt(bw/2) - parseInt(ww/2);
		
		var div = document.createElement("div");
		bdy.appendChild(div);
		div.id = "window_" + name;
		div.style.backgroundColor = "#996633";
		div.style.height = wh + "px";
		div.style.width = ww + "px";
		div.style.top = top + "px";
		div.style.left = left + "px";
		div.style.position = "absolute";
		div.style.border = "1px solid black";
		div.style.zIndex = "100001";
		
		var divClose = document.createElement("div");
		div.appendChild(divClose);
		divClose.style.textAlign = "right";
		divClose.style.height = "26px";
		divClose.style.borderBottom = "1px solid black";
		
		var countDown = document.createElement("div");
		divClose.appendChild(countDown);
		countDown.id = "countDown_" + name;
		countDown.style.fontWeight = "bold";
		countDown.style.fontSize = "12px";
		countDown.style.color = "white";
		countDown.style.paddingRight = "4px";	
	    
		
		var iframe = document.createElement("iframe");
		iframe.id = "frame_" + div.id
		iframe.name = "frame_" + div.id
		div.appendChild(iframe);
		iframe.style.backgroundColor = "white";
		iframe.style.width = ww + "px";
		iframe.style.height = (wh - parseInt(divClose.style.height) - 3	) + "px";
		iframe.src = url;
		iframe.border = 0;
		iframe.style.borderWidth = "0px";
		if(settings.scroll == "no"){
			iframe.style.overflow = "hidden";
			iframe.scrolling = "no";
		}
		
		this.windows.push(div);
		
		var divBlackout = document.createElement("div");
		bdy.appendChild(divBlackout);
		divBlackout.style.position = "absolute";
		divBlackout.style.backgroundColor = "black";
		divBlackout.style.height = bh + "px";
		divBlackout.style.width = bw + "px";
		divBlackout.style.top = "0px";
		divBlackout.style.left = "0px";
		divBlackout.style.zIndex = "100000";
		DOMFunctions.setOpacity(divBlackout, 60);
		this.blackout.push(divBlackout);
		
		PopupControl.setDisplayFor("countDown_" + name, displayFor);
		
	}
	
	this.setDisplayFor = function(id, val){
	    if(val > 0){
	        var div = document.getElementById(id);
	        div.innerHTML = "Closing In " + val + " seconds";
	        
	        
	        var func = "var sec = " + (val - 1) + ";";
    	    func += "PopupControl.setDisplayFor(\"" + id + "\", sec);";
    	    
    	    setTimeout(func, 1000); 
	    }	    
	}
	
	
	this.closeWindowById = function(id){
		for(var i=0; i < this.windows.length; i++){
			if(id == this.windows[i].id){
				return this.closeWindowByNumber(i);
			}
		}
		return false;
	}
	
	this.closeWindowByName = function(name){
		this.closeWindowById("window_" + name);
	}
	
	this.closeWindowByNumber = function(num){
		var bdy = document.getElementsByTagName("body")[0];		
		if(num >= 0 && num < this.windows.length){
			var div = this.windows[num];
			bdy.removeChild(div);
			this.windows.splice(num,1);
			
			var div = this.blackout[num];
			bdy.removeChild(div);
			this.blackout.splice(num,1);
			
			
			return true;
		}
		return false;
	}

/*	
	this.closeWindowByNumber = function(num){
		if(num > 0 && num < this.windows.length){
			this.windows[num].close();
			this.windows.splice(num,1);
			return true;
		}
		return false;
	}
	this.closeWindow = function(name){
		for(var i=0; i < this.windows.length; i++){
			if(url == this.windows.name){
				return this.closeWindowByNumber(i);
			}
		}
		return false;
	}
	this.closeAll = function (){
		for(var i=0; i < this.windows.length; i++){
			this.closeWindowByNumber(i);
		}
		return true;
	}
	*/
}
