var jQueryWindows ;
$(document).ready(function(){
	jQueryWindows = new jQueryWindowsObjects();				   
	jQueryWindows.init();
});
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
function jQueryWindowsObjects(){
	var self = this;
	this.dialogObjects = {};
	this.init = function(options){
		options = options || {};
		for (var i in options)
			this[i] = options[i];
			
		// init some defaults
		$.ui.dialog.defaults.modal = true;
		$.ui.dialog.defaults.bgiframe = true;
		$.ui.dialog.defaults.resizable = false;
		$.ui.dialog.defaults.draggable = false;
	}
	this.closeWindowById = function(id){
		$("#"+id).dialog("close");	
	}
	this.openPopupJQuery = function(src,options){
		options=options||{}; 
		var id  = "jPopup_"+(new Date()).valueOf();
		var d = document.body.appendChild(document.createElement("DIV"));
		d.style.overflow="hidden";
		$(d).html('<iframe width="100%" height="0px" frameborder="0" name="'+id+'" id="'+id+'" style="border:1px solid gray;"></iframe><div style="position:absolute;top:0px;left:0px;width:200%;height:200%;z-index:1000;display:none;background-color:gray;filter:alpha(opacity=10);-moz-opacity:0.1;opacity:0.1;"></div>');
		$(d).find("iframe").attr("src",src);
		this.dialogObjects[id] = d;
		
		if (options.modal) this.setVisibilityToAllSelectBoxes(false);
		options.close = function(){
			if (options.modal) self.setVisibilityToAllSelectBoxes(true);
			$(d).dialog("destroy");
			$(d).html("");
			d.style.display="none";
			self.dialogObjects[id] = null;
		}
		options.resizeStart = function(event,ui){self._hideIframes();}
		options.resizeStop = function(event,ui){self._showIframes()}
		options.dragStart = function(event,ui){self._hideIframes();}
		options.dragStop = function(event,ui){self._showIframes()}
		options.open = function(event,ui){$(d).find("iframe").attr("height","100%");}
		
		$(d).dialog(options,"open");	
	}
	this._hideIframes=function(){
		for (var i in this.dialogObjects)
			if (this.dialogObjects[i]) $(this.dialogObjects[i]).children().next().css("display","block");
	}
	this._showIframes=function(){
		for (var i in this.dialogObjects)
			if (this.dialogObjects[i]) $(this.dialogObjects[i]).children().next().css("display","none");
	}
	
	// hide all the selectboxes because they are above the popup area. Then show them on close of popup.
	this.dialogObjectsModalCounter = 0;
	this.setVisibilityToAllSelectBoxes = function(mode){
		if (mode) this.dialogObjectsModalCounter--;else this.dialogObjectsModalCounter++;
		if (mode && this.dialogObjectsModalCounter) return;
		var s = document.getElementsByTagName("SELECT");
		if (s){
			for (var i=0; i<s.length; i++)
				s[i].style.visibility=(mode?"visible":"hidden");
		}		
		if (window.frames.frmDesign && window.frames.frmDesign.document.getElementsByTagName("SELECT")){
			var s = window.frames.frmDesign.document.getElementsByTagName("SELECT");
			for (var i=0; i<s.length; i++)
				s[i].style.visibility=(mode?"visible":"hidden");	
		}		
	}
}
function openPopup(src,title,width,height){
	var options = {};
	if (title) options.title = title;
	if (width) options.width = width;
	if (height) options.height = height;
	jQueryWindows.openPopupJQuery(src,options);
	return false;
}

