WindowPopup = function() {
	this.options = {};
}


WindowPopup.prototype = {
	/**
	 * opt = {
	 * 		idWindow: id of DIV content
	 * 		beforeInitEvent: function 
	 * 		beforeShowEvent: function
	 * 		onShowEvent: function
	 * 		beforeHideEvent: function 
	 * }
	 */
	
	setOptions : function (opt) {
		for (var property in opt) {
			this.options[property] = opt[property];
		}
	},
	
	initPopup : function () {
		if(typeof this.options.beforeInitEvent == 'function') {
			this.options.beforeInitEvent();
		}
		Event.observe($('TB_overlay'), 'click', this.closePopup.bind(this));
	},
	
	showPopup : function () {
		/*if(!this.options.notHideSelect && this.vIE() == 6.0) {
			this.hiddeSelectBox('none');
		}*/
		
		var bg = jQuery('#TB_overlay');
		var dialog = jQuery('#' + this.options.idWindow);
		var width = dialog.width();
		var height = dialog.height();
		// 表示位置決定
		var target = self.parent || self;
		//alert(target);
		var doc = target.document;
		var clientHeight = (target.innerHeight || doc.documentElement.clientHeight || doc.body.clientHeight || 0);
		var clientOffsetTop = (clientHeight - height) / 2;
		var scrollTop = (target.scrollY || target.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0);
		var top = 0;
		//if (top < 0)
		top = clientOffsetTop + scrollTop;
		if(top < 0) top = 0;
		var left = 0;
		//if (left < 0)
		left = (bg.width() - width) / 2;
		if(left < 0) left = 0;
		//alert([top, left])
		dialog.css({
			top: top,
			left: left
			}); 
		
		if(typeof this.options.beforeShowEvent == 'function') {
			this.options.beforeShowEvent();
		}
		$(this.options.idWindow).style.display = '';
		$('TB_overlay').style.display = '';
		if(typeof this.options.onShowEvent == 'function') {
			this.options.onShowEvent();
		}
	},
	
	closePopup : function () {
		/*if(!this.options.notHideSelect && this.vIE() == 6.0) {
			this.hiddeSelectBox('');
		}*/
		if(typeof this.options.beforeHideEvent == 'function') {
			this.options.beforeHideEvent();
		}
		$(this.options.idWindow).style.display = 'none';
		$('TB_overlay').style.display = 'none';
	},
	vIE:function (){
		//return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;
		   var rv = -1; // Return value assumes failure.
		   if (navigator.appName == 'Microsoft Internet Explorer')
		   {
		      var ua = navigator.userAgent;
		      var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		      if (re.exec(ua) != null)
		         rv = parseFloat( RegExp.$1 );
		   }
		   return rv;
	},

	hiddeSelectBox : function (flg) {
		var dObj = document.forms;
		var num = dObj.length;
		var oFocus = null;
		var isField = false;
		var fr = 1;
		for(var i=0; i < num; i++) {
			var fObj = dObj[i];
			if (fObj.tagName == 'FORM' || fObj.tagName == 'form') {
				for (var j=0; j < fObj.length; j++) {
					if (fObj[j].type == 'select-one' || fObj[j].type == 'SELECT-ONE') {
						try {
							fObj[j].style.display = flg;
						} catch (e) {}
					}
				}
			}
		}
	}
}
