/*ユーザー環境チェック*/
bAgent = navigator.userAgent;
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
bPlugins = navigator.plugins;
Vmajor = parseInt(navigator.appVersion);	// ex. 3
Vminor = parseFloat(navigator.appVersion);	// ex. 3.01

Win = (bAgent.indexOf("Win",0) != -1);
Mac = (bAgent.indexOf("Mac",0) != -1);
MacOSX = ((bAgent.indexOf("Mozilla") != -1) && (bAgent.indexOf("Mac OS X") != -1));
if(bPlugins){for(i=0;i<bPlugins.length;i++){if(Mac && (bPlugins[i].filename.indexOf("QuickTime Plugin.plugin")!=-1)){MacOSX=true;}}}
IE = (bName == "Microsoft Internet Explorer");
NS = (bName == "Netscape");
Moz = (bAgent.indexOf("Gecko") != -1);
ICAB = (bAgent.indexOf("iCab",0) != -1);
OPERA = (bAgent.indexOf("Opera",0) != -1);
WinIE55 = ((bAgent.indexOf("MSIE 5.5") != -1) && Win);
WinIE6 = ((bAgent.indexOf("MSIE 6") != -1) && Win);
MacIE4 = ((bAgent.indexOf("MSIE 4") != -1) && Mac);
MacIE3 = ((bAgent.indexOf("MSIE 3") != -1) && Mac);

/*DOM仕様振り分け*/
/*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 getHeight(idName) {
	if(checkObj == 2){
		return document.all(idName).style.pixelHeight;
	}else if(checkObj == 3 || checkObj == 4){
		return parseInt(document.getElementById(idName).offsetHeight);
	}else if(checkObj == 1){
		return document.layers[idName].clip.height;
	}
}

function getWidth(idName) {
	if(checkObj == 2){
		return document.all(idName).style.pixelWidth;
	}else if(checkObj ==3 || checkObj ==4){
		return parseInt(document.getElementById(idName).offsetWidth);
	}else if(checkObj == 1){
		return document.layers[idName].clip.width;
	}
}

function getTop(idName){
	if(checkObj == 3 || checkObj == 4){
		return parseInt(document.getElementById(idName).style.top);
	}else if(checkObj == 2){
		return document.all(idName).style.pixelTop;
	}else if(checkObj == 1){
		return document.layers[idName].top;
		/*return document.layers[idName].pageX;*/
	}
}

function getLeft(idName){
	if(checkObj == 3 || checkObj == 4){
		return parseInt(document.getElementById(idName).style.left);
	}else if(checkObj == 2){
		return document.all(idName).style.pixelLeft;
	}else if(checkObj == 1){
		return document.layers[idName].left;
		/*return document.layers[idName].pageY;*/
	}
}

function getVisibility(idName){
	if(checkObj == 2 || checkObj == 3){
		if(document.all(idName).style.visibility=='')return 'inherit'
		return document.all(idName).style.visibility
	}else if(checkObj == 4){
		if(document.getElementById(idName).style.visibility=='')return 'inherit'
		return document.getElementById(idName).style.visibility
	}else if(checkObj == 1){
		if(document.layers[idName].visibility=='show')return 'visible'
		if(document.layers[idName].visibility=='hide')return 'hidden'
		if(document.layers[idName].visibility=='inherit')return 'inherit'
	}
}

/*ウィンドウの情報ゲット*/
function getWindowWidth(){
	if(OPERA || checkObj == 1 || checkObj == 4){
		return window.innerWidth;
	}else if(checkObj == 2 || checkObj == 3){
		return document.body.clientWidth;
	}else{
		return 600;
	}
}

function getWindowHeight(){
	if(OPERA || checkObj == 1 || checkObj == 4){
		return window.innerHeight;
	}else if(checkObj == 2 || checkObj == 3){
		return document.body.clientHeight;
	}else{
		return 400;
	}
}

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;
	}
}

function docWidth(){
	if(checkObj == 1){
		return getTagLeft('end');
	}else if(checkObj == 2 || checkObj == 3 || checkObj == 4){
		return getWidth('alldocument');
	}
}
function docHeight(){
	if(checkObj == 1){
		return getTagTop('end');
	}else if(checkObj == 2 || checkObj == 3 || checkObj == 4){
		return getHeight('alldocument');
	}
}

function endPositionX(){
	if(checkObj == 1 || checkObj == 2 || checkObj == 3 || checkObj == 4 ){
		return (docWidth() - getWindowWidth());
	}
}
function endPositionY(){
	if(checkObj == 1 || checkObj == 2 || checkObj == 3 || checkObj == 4 ){
		return (docHeight() - getWindowHeight());
	}
}

/*LayerShowAndHide*/
function visibilityLayer(idName,action){
	if(checkObj == 2 || checkObj == 3){
		document.all(idName).style.visibility = action;
	}else if(checkObj == 4){
		document.getElementById(idName).style.visibility = action;
	}else if(checkObj == 1){
		document.layers[idName].visibility = (action == "visible")?"show":"hide";
	}
}

function allLayerHide(){
	visibilityLayer('layer1','hidden');
	visibilityLayer('layer2','hidden');
	visibilityLayer('layer3','hidden');
	visibilityLayer('layer5','hidden');
}

/*GetMousePosition*/
X = Y = 0;
function mousePosXY(e){
	if(OPERA){
		mouseX = e.clientX;
		mouseY = e.clientY;
	}else if(checkObj == 2 || checkObj == 3){
		mouseX = document.body.scrollLeft + window.event.clientX;
		mouseY = document.body.scrollTop + window.event.clientY
	}else if(checkObj == 1 || checkObj == 4){
		mouseX = e.pageX;
		mouseY = e.pageY;
	}visibleWhether();
}

function visibleWhether(){
	if(getVisibility('layer1') == 'visible'){
		checkCtrl('layer1');
	}else if(getVisibility('layer2') == 'visible'){
		checkCtrl('layer2');
	}else if(getVisibility('layer3') == 'visible'){
		checkCtrl('layer3');
	}else if(getVisibility('layer5') == 'visible'){
		checkCtrl('layer5');
	}
}

function checkCtrl(idName){
	if(mouseY <= getTop(idName) || mouseY >= (getTop(idName)+getHeight(idName)) || (mouseX <= getLeft(idName) || mouseX >= (getLeft(idName)+getWidth(idName)))){
		allLayerHide();
	}
}

function openMenu(idName){
	visibilityLayer(idName,'visible');
}

/*CheckMouseEvent*/
function init(){
	if(checkObj == 2 || checkObj == 3){
		document.onmousemove = mousePosXY;
	}else if(checkObj == 1 || checkObj == 4){
		window.captureEvents(Event.MOUSEMOVE);
		window.onmousemove = mousePosXY;
	}
}

