/* Center表示(Effectしない)
 @param url 表示するurl
 @param classname cssのclass名
 @param titlel windowタイトル
 @param width (null可・デフォルト=250px)
 @param height (null可・デフォルト=250px)
 @param modal (null可・デフォルト=false)
================================================== */
function openWindowUrlC(url,classname,title,width,height,modal){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	var winID = "win"+(new Date()).getTime();
	var zIndex = 9000;
	
	var subwin = new Window(winID, {
		className:classname,
		title:title,
		width:width,
		height:height,
		zIndex:zIndex,
		showEffect:Element.show,
		hideEffect:Element.hide,
		url:url
	});
	subwin.setDestroyOnClose();// ウィンドウが閉じられた時に破棄する
	subwin.show(modal);
	subwin.showCenter();
	subwin.toFront();
}

/* Center表示(Effectしない)
 @param text 表示するtext
 @param classname cssのclass名
 @param titlel windowタイトル
 @param width (null可・デフォルト=250px)
 @param height (null可・デフォルト=250px)
 @param modal (null可・デフォルト=false)
================================================== */
function openWindowTextC(text,classname,title,width,height,modal){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	var winID = "win"+(new Date()).getTime();
	
	var subwin = new Window(winID, {
		className:classname,
		title:title,
		width:width,
		height:height,
		zIndex:9000,
		showEffect:Element.show,
		hideEffect:Element.hide
	});
	subwin.getContent().innerHTML = text;
	subwin.setDestroyOnClose();
	subwin.show(modal);
	subwin.showCenter();
	subwin.toFront();
}

/* Center表示(Effectしない)
 @param element 表示するエレメントのid名
 @param classname cssのclass名
 @param titlel windowタイトル
 @param width (null可・デフォルト=あったらエレメントの幅なかったら250px)
 @param height (null可・デフォルト=あったらエレメントの高さなかったら250px)
 @param modal (null可・デフォルト=false)
================================================== */
function openWindowElementC(element,classname,title,width,height,modal){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	var winID = "win"+(new Date()).getTime();
	
	var subwin = new Window(winID, {
		className:classname,
		title:title,
		width:width,
		height:height,
		zIndex:9000,
		showEffect:Element.show,
		hideEffect:Element.hide
	});
	subwin.setContent($(element));
	subwin.setDestroyOnClose();
	subwin.show(modal);
	subwin.showCenter();
	subwin.toFront();
}

/* pointURL表示表示(Effectしない)
 @param url 表示するurl
 @param pid ポジション取得箇所のエレメントID
 @param classname cssのclass名
 @param titlel windowタイトル
 @param width (null可・デフォルト=250px)
 @param height (null可・デフォルト=250px)
 @param modal (null可・デフォルト=false)
 @param topPossize (null可・デフォルト=0)
 @param leftPossize (null可・デフォルト=0)
================================================== */
function openWindowUrl(url,pid,classname,title,width,height,modal,topPossize,leftPossize){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	if(leftPossize == undefined)leftPossize = 0;
	if(topPossize == undefined)topPossize = 0;
	var p = Position.cumulativeOffset($(pid));
	var leftPos = p[0] + leftPossize;
	var topPos = p[1] + topPossize;
	var winid = "win"+(new Date()).getTime();
	
	var subwin = new Window(winid, {
		className:classname,
		title:title,
		width:width,
		height:height,
		top:topPos, 
		left:leftPos,
		zIndex:9000,
		showEffect:Element.show,
		hideEffect:Element.hide,
		url:url
	});
	subwin.setDestroyOnClose();
	subwin.show(modal);
	subwin.toFront();
}

/* point表示(Effectしない)
 @param text 表示するtext
 @param pid ポジション取得箇所のエレメントID
 @param classname cssのclass名
 @param title windowタイトル
 @param width (null可・デフォルト=250px)
 @param height (null可・デフォルト=250px)
 @param modal (null可・デフォルト=false)
 @param topPossize (null可・デフォルト=0)
 @param leftPossize (null可・デフォルト=0)
================================================== */
function openWindowText(text,pid,classname,title,width,height,modal,topPossize,leftPossize){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	if(leftPossize == undefined)leftPossize = 0;
	if(topPossize == undefined)topPossize = 0;
	var p = Position.cumulativeOffset($(pid));
	var leftPos = p[0] + leftPossize;
	var topPos = p[1] + topPossize;
	var winid = "win"+(new Date()).getTime();

	var subwin = new Window(winid, {
		className:classname,
		title:title,
		width:width,
		height:height,
		top:topPos, 
		left:leftPos,
		zIndex:9000,
		showEffect:Element.show,
		hideEffect:Element.hide
	});
	subwin.getContent().innerHTML = text;
	subwin.setDestroyOnClose();
	subwin.show(modal);
	subwin.toFront();

}

/* point表示エレメントを使用(Effectしない)windowサイズ指定。
 @param element 表示するエレメントのid名
 @param pid ポジション取得箇所のエレメントID
 @param classname cssのclass名
 @param titlev windowタイトル
 @param width (null可・デフォルト=250px)
 @param height (null可・デフォルト=250px)
 @param modal (null可・デフォルト=false)
 @param topPossize (null可・デフォルト=0)
 @param leftPossize (null可・デフォルト=0)
================================================== */
function openWindowContent(element,pid,classname,title,width,height,modal,topPossize,leftPossize){
	if(width == undefined)width = '250px';
	if(height == undefined)height = '250px';
	if(modal == undefined)modal = false;
	if(leftPossize == undefined)leftPossize = 0;
	if(topPossize == undefined)topPossize = 0;
	var p = Position.cumulativeOffset($(pid));
	var leftPos = p[0] + leftPossize;
	var topPos = p[1] + topPossize;
	var winid = "win"+(new Date()).getTime();
	
	var subwin = new Window(winid, {
		className:classname,
		title:title,
		width:width,
		height:height,
		top:topPos, 
		left:leftPos,
		zIndex:9000,
		showEffect:Element.show,
		hideEffect:Element.hide
	});
	subwin.setContent($(element));
	subwin.setDestroyOnClose();
	subwin.show(modal);
	subwin.toFront();
}

/* point表示エレメントを使用(Effectしない)
 ※windouサイズ可変可。
 ※mouseover&mouseout利用可。
 @param element 表示するエレメントのid名
 @param pid ポジション取得箇所のエレメントID
 @param classname cssのclass名
 @param titlev windowタイトル
 @param width (null可・デフォルト=あったらエレメントの幅なかったら250px)
 @param height (null可・デフォルト=あったらエレメントの高さなかったら250px)
 @param modal (null可・デフォルト=false)
 @param topPossize (null可・デフォルト=0)
 @param leftPossize (null可・デフォルト=0)
 @param tooltip mouseover&mouseoutで使用したいときはtrueを指定(null可・デフォルト=false)
================================================== */
function openWindowElement(element,pid,classname,title,width,height,modal,topPossize,leftPossize,tooltip){
	if(!$(element))return;
	var dimension = Element.getDimensions(element);//エレメントの幅・高さを調べる
	if(width == undefined || width == ''){
		if(dimension.width || dimension.width!=0){
			width = dimension.width;
		}else{
			width = '250px';
		}
	}	
	if(height == undefined || height == ''){
		if(dimension.height || dimension.height!=0){
			height = dimension.height;
		}else{
			height = '250px';
		}
	}
	if(modal == undefined)modal = false;
	if(leftPossize == undefined)leftPossize = 0;
	if(topPossize == undefined)topPossize = 0;
	if(tooltip == undefined)tooltip = false;
	var p = Position.cumulativeOffset($(pid));
	var leftPos = p[0] + leftPossize;
	var topPos = p[1] + topPossize;
	
	if(tooltip){
		TooltipManager.options = Object.extend(TooltipManager.options, {
			className:classname,
			width:width,
			height:height,
			top:topPos, 
			left:leftPos,
			draggable:false,
			title:"",
			zIndex:9000
		});
		TooltipManager.addHTML(pid,element);
	}else{
		var winid = "win"+(new Date()).getTime();
		var subwin = new Window(winid, {
			className:classname,
			title:title,
			width:width,
			height:height,
			top:topPos, 
			left:leftPos,
			zIndex:9000,
			showEffect:Element.show,
			hideEffect:Element.hide
		});
		subwin.setHTMLContent($(element).innerHTML);
		subwin.setDestroyOnClose();
		subwin.show(modal);
		//subwin.toFront();
	}	
}

/*TooltipManager addHTMLのみにしたものからsetTimeout処理を削り簡素化したもの
（mac　Firefox対応のため）
//================================================== */
TooltipManager = {
	options: {
		className:'alphacube',
		width:null,
		height:null,
		top:0, 
		left:0,
		zIndex:2000,
		showEffect:Element.show,
		hideEffect:Element.hide
	},	
		
	addHTML: function(element, tooltipElement) {
		element = $(element);
		tooltipElement = $(tooltipElement);
		element.tooltipElement = tooltipElement;
		
		element.observe("mouseover", TooltipManager._mouseOver);
		element.observe("mouseout", TooltipManager._mouseOut);		
	},
	
	_mouseOver: function (event) {
		var element = Event.element(event);
		TooltipManager._showTooltip(element);
	},
	
	_mouseOut: function (event) {
		var element = Event.element(event);
		if (TooltipManager.tooltipWindow) {
			TooltipManager._hideTooltip(element);
		}
	},
	
	_showTooltip: function (element) {
		if (this.element == element) return;
		while (element && (!element.tooltipElement))
		element = element.parentNode;
		this.element = element;
		
		if (! this.tooltipWindow){
			var winid = "win"+(new Date()).getTime();
			this.tooltipWindow = new Window(winid, TooltipManager.options);
		}		
		
		this.tooltipWindow.hide();

		this.tooltipWindow.setLocation(TooltipManager.options.top, TooltipManager.options.left);
		
		this.tooltipWindow.height = TooltipManager.options.height;
		this.tooltipWindow.width = TooltipManager.options.width;
		
		this.tooltipWindow.setHTMLContent(element.tooltipElement.innerHTML);
		
		this.tooltipWindow.show();
		this.tooltipWindow.toFront();
	},
	
	_hideTooltip: function (element) {
		if (this.tooltipWindow) {
			this.tooltipWindow.hide();
			this.element = null;
		}
	},
	
	//mac safari対応 無いと表示しない
	_getPageWidth: function(){
		return window.innerWidth || document.documentElement.clientWidth || 0;
	},	
	_getPageHeight: function(){
		return window.innerHeight || document.documentElement.clientHeight || 0;
	},
	_getScrollTop: function(){
		return document.documentElement.scrollTop || window.pageYOffset || 0;
	},
	_getScrollLeft: function(){
		return document.documentElement.scrollLeft || window.pageXOffset || 0;
	}	
};

/*TooltipManager2 addHTMLのみにしたものからsetTimeout処理を削り簡素化したもの
（mac　Firefox対応のため）
//================================================== */
TooltipManager2 = {
	options: {
		className:'alphacube',
		width:null,
		height:null,
		top:0, 
		left:0,
		zIndex:2000,
		showEffect:Element.show,
		hideEffect:Element.hide,
		tipPosition:'under'
	},	
		
	addHTML: function(element, tooltipElement) {
		element = $(element);
		tooltipElement = $(tooltipElement);
		element.tooltipElement = tooltipElement;
		
		element.observe("mouseover", TooltipManager2._mouseOver);
		element.observe("mouseout", TooltipManager2._mouseOut);		
	},
	
	_mouseOver: function (event) {
		var element = Event.element(event);
		TooltipManager2._showTooltip(element);
	},
	
	_mouseOut: function (event) {
		var element = Event.element(event);
		if (TooltipManager2.tooltipWindow) {
			TooltipManager2._hideTooltip(element);
		}
	},
	
	_showTooltip: function (element) {
		if (this.element == element) return;
		while (element && (!element.tooltipElement))
		element = element.parentNode;
		this.element = element;
		
		if (! this.tooltipWindow){
			var winid = "win"+(new Date()).getTime();
			this.tooltipWindow = new Window(winid, TooltipManager2.options);
		}		
		
		this.tooltipWindow.hide();

		var position = Position.cumulativeOffset(element);
	    var dimension = element.getDimensions();

		if(TooltipManager2.options.tipPosition=='left'){
			var obj_height_half = TooltipManager2.options.height / 2;
			this.tooltipWindow.setLocation(position[1] + dimension.height + TooltipManager2.options.top - obj_height_half, position[0] + dimension.width + TooltipManager2.options.left);
		}else{
			this.tooltipWindow.setLocation(position[1] + dimension.height + TooltipManager2.options.top, position[0] + TooltipManager2.options.left);
		}
		
		this.tooltipWindow.height = TooltipManager2.options.height;
		this.tooltipWindow.width = TooltipManager2.options.width;
		
		this.tooltipWindow.setHTMLContent(element.tooltipElement.innerHTML);
		
		this.tooltipWindow.show();
		this.tooltipWindow.toFront();
	},
	
	_hideTooltip: function (element) {
		if (this.tooltipWindow) {
			this.tooltipWindow.hide();
			this.element = null;
		}
	},
	
	//mac safari対応 無いと表示しない
	_getPageWidth: function(){
		return window.innerWidth || document.documentElement.clientWidth || 0;
	},	
	_getPageHeight: function(){
		return window.innerHeight || document.documentElement.clientHeight || 0;
	},
	_getScrollTop: function(){
		return document.documentElement.scrollTop || window.pageYOffset || 0;
	},
	_getScrollLeft: function(){
		return document.documentElement.scrollLeft || window.pageXOffset || 0;
	}	
};
///*TooltipManager addHTMLのみにしたもの
////================================================== */
//TooltipManager = {
//	options: {
//		className:'alphacube',
//		width:null,
//		height:null,
//		top:0, 
//		left:0,
//		zIndex:2000,
//		showEffect:Element.show,
//		hideEffect:Element.hide,
//		delayOver:200,
//		delayOut: 1000
//	},	
//	showTimer: null,
//	hideTimer: null,
//		
//	addHTML: function(element, tooltipElement) {
//		element = $(element);
//		tooltipElement = $(tooltipElement);
//		element.tooltipElement = tooltipElement;
//		
//		element.observe("mouseover", TooltipManager._mouseOver);
//		element.observe("mouseout", TooltipManager._mouseOut);		
//	},
//	
//	_mouseOver: function (event) {
////alert("ccc");
//		var element = Event.element(event);
//		if (TooltipManager.showTimer) {
//			clearTimeout(TooltipManager.showTimer);
//		}
//		TooltipManager.showTimer = setTimeout(function() {TooltipManager._showTooltip(element)}, TooltipManager.options.delayOver);
//	},
//	
//	_mouseOut: function (event) {
//		var element = Event.element(event);
//		if (TooltipManager.showTimer) {
//			clearTimeout(TooltipManager.showTimer);
//			TooltipManager.showTimer = null;
//			return;
//		}
//		if (TooltipManager.tooltipWindow) {
//			TooltipManager.hideTimer = setTimeout(function() {TooltipManager._hideTooltip(element)}, TooltipManager.options.delayOut)
//		}
//	},
//	
//	_showTooltip: function (element) {
//		if (this.element == element) return;
//		while (element && (!element.tooltipElement))
//		element = element.parentNode;
//		this.element = element;
//		
//		TooltipManager.showTimer = null;
//		if (TooltipManager.hideTimer) clearTimeout(TooltipManager.hideTimer);
//
//		if (! this.tooltipWindow){
//			var winid = "win"+(new Date()).getTime();
//			this.tooltipWindow = new Window(winid, TooltipManager.options);
//		}		
//		
//		this.tooltipWindow.hide();
//		this.tooltipWindow.setLocation(TooltipManager.options.top,TooltipManager.options.left);
//
//		Event.observe(this.tooltipWindow.element, "mouseover", function(event) {TooltipManager._tooltipOver(event, element)});
//		Event.observe(this.tooltipWindow.element, "mouseout", function(event) {TooltipManager._tooltipOut(event, element)});
//		
//		this.tooltipWindow.height = TooltipManager.options.height;
//		this.tooltipWindow.width = TooltipManager.options.width;
//		
//		this.tooltipWindow.setHTMLContent(element.tooltipElement.innerHTML);
//		
//		this.tooltipWindow.show();
//		this.tooltipWindow.toFront();
//	},
//	
//	_hideTooltip: function (element) {
//		if (this.tooltipWindow) {
//			this.tooltipWindow.hide();
//			this.element = null;
//		}
//	},
//	
//	_tooltipOver: function (event, element) {
//		if (TooltipManager.hideTimer) {
//			clearTimeout(TooltipManager.hideTimer);
//			TooltipManager.hideTimer = null;
//		}
//	},
//
//	_tooltipOut: function (event, element) {
//		if (TooltipManager.hideTimer == null){
//			TooltipManager.hideTimer = setTimeout(function() {TooltipManager._hideTooltip(element)}, TooltipManager.options.delayOut);
//		}
//	},
//	  
//	//mac safari対応 無いと表示しない
//	_getPageWidth: function(){
//		return window.innerWidth || document.documentElement.clientWidth || 0;
//	},	
//	_getPageHeight: function(){
//		return window.innerHeight || document.documentElement.clientHeight || 0;
//	},
//	_getScrollTop: function(){
//		return document.documentElement.scrollTop || window.pageYOffset || 0;
//	},
//	_getScrollLeft: function(){
//		return document.documentElement.scrollLeft || window.pageXOffset || 0;
//	}	
//};

