/////////////////////////////////////////////////////
// event manager
/////////////////////////////////////////////////////
/* 2007-02-14 */

var EventManager = {};
EventManager.list = [];


EventManager.removeEvent = function( obj, event, listener, useCapture ){
	//if(navigator.userAgent.match(/Mac/) && document.all && !this.env.isOpera ) return;
	useCapture = useCapture || false;
	if(obj.removeEventListener){
		obj.removeEventListener( event, listener, useCapture );
	} else if(obj.detachEvent){
		obj.detachEvent( "on"+event, listener );
	} else {
		//delete obj['on'+event];
	}
};

EventManager.addEvent = function( obj, event, listener, useCapture ){
	//EventManager.list.push(arguments);
	EventManager.list[EventManager.list.length] = arguments;
	useCapture = useCapture || false;
	if(obj.addEventListener){
		obj.addEventListener( event, listener, useCapture );
	} else if(obj.attachEvent){
		obj.attachEvent( "on"+event, listener );
	} else {
		var exists = obj['on'+event];
		obj['on'+event] = (exists)?
			function(){
				exists();
				listener();
			} : function() {
				listener();
			};
	}
};


EventManager.addLoadEvent = function( listener ){
	EventManager.addEvent( window, "load", listener, false );
};

EventManager.removeEventCache = function(){
	if(!EventManager.list) return;
	for( var i=0; i<EventManager.list.length; i++ ){
//		EventManager.removeEvent.apply( this, EventManager.list[i] );
		EventManager.removeEvent( EventManager.list[i][0], EventManager.list[i][1], EventManager.list[i][2], EventManager.list[i][3] );
	}
}

EventManager.addEvent(window, 'unload', EventManager.removeEventCache, false);





/////////////////////////////////////////////////////
// Popup
/////////////////////////////////////////////////////

function MM_openBrWindow(theURL,winName,features) { //v2.0
  win = window.open(theURL,winName,features);
  win.focus();
}

// Product popup
function productpop(url){
		win = window.open(url,'product','scrollbars=yes,resizable=yes,width=320,height=450');
  win.focus();
}
function productpop01(url){
		win = window.open(url,'product01','scrollbars=yes,resizable=yes,width=550,height=450');
  win.focus();
}
function productpop02(url){
		win = window.open(url,'product02','scrollbars=yes,resizable=yes,width=550,height=600');
  win.focus();
}
function productpop03(url){
		win = window.open(url,'product03','scrollbars=yes,resizable=yes,width=690,height=550');
  win.focus();
}
function productpop04(url){
		win = window.open(url,'product04','scrollbars=yes,resizable=yes,width=320,height=700');
  win.focus();
}
function productpop05(url){
		win = window.open(url,'product05','scrollbars=yes,resizable=yes,width=550,height=830');
  win.focus();
}

// Reseach popup
/* 「診療圏調査」用のポップアップ指定 */
function reseachpop(url){
		win = window.open(url,'reseach','scrollbars=yes,resizable=yes,width=700,height=550');
  win.focus();
}

// finance popup
/* 「資金プラン」用のポップアップ指定 */
function finansepop(url){
		win = window.open(url,'finanse','scrollbars=yes,resizable=yes,width=800,height=550');
  win.focus();
}

// layout popup
/* 「院内レイアウト」カテゴリ用のポップアップ指定 */
function layoutpop(url){
		win = window.open(url,'layout','scrollbars=yes,resizable=yes,width=480,height=470');
  win.focus();
}
function layout02pop(url){
		win = window.open(url,'layout02','scrollbars=yes,resizable=yes,width=840,height=580');
  win.focus();
}

// tool popup
/* 「便利ツール」カテゴリ用のポップアップ指定 */
function bookpop(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=710,height=500');
  win.focus();
}

// contents popup
/* 「在宅医療サポートサービス」ページ用のポップアップ指定 */
function contents(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=650,height=630');
  win.focus();
}

// vasera popup
/* 「血圧脈波検査装置　VaSera」ページ用のポップアップ指定 */
function vasera(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=400,height=520');
  win.focus();
}

// seminar_pop
/* 「各種セミナー」のポップアップ指定 */
function seminar_pop(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=700');
  win.focus();
}

// form_pop
/* 「フォーム」のポップアップ指定 */
function form_pop(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=445');
  win.focus();
}

// privacy_pop
/* 「プライバシーポリシー」のポップアップ指定 */
function privacy_pop(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=750,height=540');
  win.focus();
}

// ward_pop
/* 「病棟」のポップアップ指定 */
function ward_pop01(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=610');
  win.focus();
}
function ward_pop02(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=540');
  win.focus();
}
function ward_pop03(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=600');
  win.focus();
}
function ward_pop04(url){
		win = window.open(url,'book','scrollbars=yes,resizable=yes,width=610,height=740');
  win.focus();
}

/////////////////////////////////////////////////////
// pageup
/////////////////////////////////////////////////////

	/*user-defined object check*/
	/*NS4 = 1, IE4 = 2, IE5+ = 3, NS6 = 4, others = 0*/
	checkObj = document.all?(document.getElementById?3:2):(document.getElementById?4:(document.layers?1:0));
	function initObj(){
		checkObj = document.all?(document.getElementById?3:2):(document.getElementById?4:(document.layers?1:0));
	}

	function getWindowXOffset(){
		if(checkObj == 2 || checkObj == 3){
			return document.body.scrollLeft;
		}else if(checkObj == 1 || checkObj == 4){
			return window.pageXOffset;
		}else{
			return 0;
		}
	}

	function getWindowYOffset(){
		if(checkObj == 2 || checkObj == 3){
			return document.body.scrollTop;
		}else if(checkObj == 1 || checkObj == 4){
			return window.pageYOffset;
		}else{
			return 0;
		}
	}

	/*PageScroller*/
	var pageScrollTimer;
	function pageScroll(toX,toY,frms,cuX,cuY) {
		if(pageScrollTimer) clearTimeout(pageScrollTimer);
		if(!toX || toX < 0) toX = 0;
		if(!toY || toY < 0) toY = 0;
		if(!cuX) cuX = 0 + getWindowXOffset();
		if(!cuY) cuY = 0 + getWindowYOffset();
		if(!frms) frms = 6;

		cuX += (toX - getWindowXOffset()) / frms;
		if (cuX < 0) cuX = 0;
		cuY += (toY - getWindowYOffset()) / frms;
		if (cuY < 0) cuY = 0;
		posX = Math.floor(cuX);
		posY = Math.floor(cuY);
		window.scrollTo(posX, posY);
		if(posY < 1){
			window.scroll(0,0);
		}else if(posX != toX || posY != toY){
			pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
		}else{
			clearTimeout(pageScrollTimer);
		}
	}

	function toAnchor(idName) {
		if(checkObj == 1 || checkObj == 2 || checkObj == 3 || checkObj == 4){
			if(!!idName){
				anchorX = 0;
				anchorY = getTagTop(idName);
				mouseX = getWindowXOffset();
				mouseY = getWindowYOffset();
				endY = endPositionY();
				if(anchorY < 1){
					location.hash = idName;
				}else if(anchorY > endY){
					pageScroll(anchorX,endY,10,mouseX,mouseY);
				}else{
					pageScroll(anchorX,anchorY,10,mouseX,mouseY);
				}
			}else{
				pageScroll(0,0,10);
			}
		}else{
			if(!!idName){
				location.hash = idName;
			}else{
				location.hash = "top";
			}
		}
	}





/////////////////////////////////////////////////////
// rollover 
/////////////////////////////////////////////////////

function hasClassName(el, classname) {
	if(!document.getElementById) return false;
	var el = (typeof el == 'string' )? document.getElementById(el) : el;
	if(el.className == null) return false;
	var list = el.className.split(/\s+/);
	for(var i = 0; i < list.length; i++)
		if (list[i] == classname)
			return true;
	return false;
}


/* 2007-02-14 */

var ROLLOVER_IMG = "rollover";
var ROLLOVER_IMG_NAME_SUFFIX = "on";

var buttons = [];
function registButton( el ){
	var btn = new Object();
	btn.src = el.src;
	btn.filetype = btn.src.substring(btn.src.lastIndexOf('.'));
	btn.basename = btn.src.substring(0, btn.src.length-btn.filetype.length);
	btn.onsrc = btn.basename + ROLLOVER_IMG_NAME_SUFFIX + btn.filetype;

	el.offsrc = btn.src;
	el.onsrc  = btn.onsrc;
	el.lock   = false;

	//buttons.push( el );
	buttons[buttons.length] = el;

	EventManager.addEvent( el, 'mouseover', function(){ swapImage( el, 'on' ); }, false );
	EventManager.addEvent( el, 'mouseout',  function(){ swapImage( el, 'off'); }, false );
}

function preloadImages(){
	if(!document.images) return;
	var ret = [];
	for( var i=0; i<buttons.length; i++ ){
		(new Image()).src = buttons[i].onsrc;
		ret[ret.length] = buttons[i].onsrc;
	}
}

function swapImage( obj, status ){
	if( !obj || !obj[status+"src"] ) return;
	if( !obj.lock )
		obj.src = obj[status+"src"];
}

function lock( obj ){
	if( obj.lock == 'undefined' ) return;
	if(!obj.lock)
		obj.lock = true;
}

function unlock(){
	if( obj.lock == 'undefined' ) return;
	if(obj.lock)
		obj.lock = false;
}

function initRolloverImages(){
	if(!document.getElementById) return;

	var img = document.getElementsByTagName('IMG');
	for( var i=0; i<img.length; i++ ){
		if (!hasClassName( img[i], ROLLOVER_IMG ))
			continue;
		else {
			registButton( img[i] );
		}
	}
	preloadImages();
}

EventManager.addEvent( window, 'load', initRolloverImages, false );

