﻿/*==================== Index ====================*/
/*externalLinks（target_blank代用）*/
/*WindowOpen（popアップ）*/
/*jumpToAnchor（ページトップへ戻るスクロール）*/

/*==================== externalLinks（target_blank代用） ====================*/
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload=externalLinks;

/*==================== WindowOpen ====================*/
/*---subWin（スクロールバーあり・サイズ固定）---*/
function subWindow(url,w,h,winName){
    startWinX = (screen.availWidth-w)/2;
    startWinY = (screen.availHeight-h)/2;
    var subWin = window.open(url, winName, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width='+w+',height='+h+',left='+startWinX+',top='+startWinY+'');
    subWin.focus();
}

/*---subWin2（スクロールバーなし・サイズ固定）---*/
function subWindow2(url,w,h,winName) {
    startWinX = (screen.availWidth-w)/2;
    startWinY = (screen.availHeight-h)/2;
    var subWin = window.open(''+filename,winName,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width='+w+',height='+h+'');
	subWin.focus();
}

/*==================== jumpToAnchor（ページトップへ戻るスクロール） ====================*/
var Mac     = navigator.appVersion.indexOf('Mac',0) != -1;
var Win     = navigator.appVersion.indexOf('Win',0) != -1;
var IE      = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
var NN      = navigator.appName.indexOf("Netscape",0) != -1;
var Moz     = navigator.userAgent.indexOf("Gecko") != -1;
var Opera   = window.opera;
var Opera6  = navigator.userAgent.indexOf("Opera 6") != -1;
var Opera7  = navigator.userAgent.indexOf("Opera 7") != -1;
var Vmajor  = parseInt(navigator.appVersion); // ex. 3
var Vminor  = parseFloat(navigator.appVersion); // ex. 3.01
var WinIE55 = ((Win && navigator.appVersion.indexOf('MSIE 5.5',0) != -1));
var MacIE5  = ((Mac && navigator.appVersion.indexOf('MSIE 5.',0) != -1));
var MacIE4  = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
var MacIE3  = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));
var iCab    = (navigator.userAgent.indexOf("iCab",0) != -1);


function getInnerSize()
{
	var obj = new Object();

	if( document.all || ( document.getElementById && IE ) )	{
		obj.width = document.body.clientWidth;
		obj.height = document.body.clientHeight;
	} else if( document.layers || document.getElementById ){
		obj.width = window.innerWidth;
		obj.height = window.innerHeight;
	}
	return obj;
}

function getScrollLeft()
{
	if( ( navigator.appName.indexOf( "Microsoft Internet Explorer", 0 ) != -1 ) ){
		return document.body.scrollLeft;
	} else if( window.pageXOffset ){
		return window.pageXOffset;
	} else{
		return 0;
	}
}

function getScrollTop(){
	if( ( navigator.appName.indexOf( "Microsoft Internet Explorer", 0 ) != -1 ) ){
		return document.body.scrollTop;
	} else if( window.pageYOffset )	{
		return window.pageYOffset;
	} else{
		return 0;
	}
}

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 + getScrollLeft();
	} if( !cuY ){
		cuY = 0 + getScrollTop();
	} if( !frms ){
		frms = 6;
	}

	if( toY > cuY && toY > ( getAnchorPosObj( 'end' ).y ) - getInnerSize().height ) toY = ( getAnchorPosObj( 'end' ).y - getInnerSize().height ) + 1;
	cuX += ( toX - getScrollLeft() ) / frms; if( cuX < 0 ) cuX = 0;
	cuY += ( toY - getScrollTop()  ) / frms; if( cuY < 0 ) cuY = 0;
	var posX = Math.floor( cuX );
	var posY = Math.floor( cuY );
	window.scrollTo( posX, posY );

	if( posX != toX || posY != toY ){
		pageScrollTimer = setTimeout( "pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")", 16 );
	}
}

function setObj( id ){
	if( document.all ){
		return document.all(id);
	} else if( document.getElementById ){
		return document.getElementById(id);
	} else if( document.layers ){
		return document.layers[id];
	}
	return false;
}

function getAnchorPosObj( elementname ){
	var obj = setObj( elementname );
	var objnew = new Object();
	var objtmp;

	if( document.getElementById ){
		objtmp = obj;
		objnew.x = objtmp.offsetLeft;
		objnew.y = objtmp.offsetTop;
		while( ( objtmp = objtmp.offsetParent ) != null ){
			objnew.x += objtmp.offsetLeft;
			objnew.y += objtmp.offsetTop;
		}
	} else if( document.all ){
		objtmp = obj;
		objnew.x = objtmp.offsetLeft;
		objnew.y = objtmp.offsetTop;
		while( ( objtmp = objtmp.offsetParent ) != null ){
			objnew.x += objtmp.offsetLeft;
			objnew.y += objtmp.offsetTop;
		}
	} else if( document.layers ){
		objnew.x = document.anchors[elementname].x;
		objnew.y = document.anchors[elementname].y;
	} else{
		objnew.x = 0;
		objnew.y = 0;
	}
	return objnew;
}

function getHash( strPath ){
	return strPath.substring( strPath.lastIndexOf( "#" ) + 1 );
}

function getContFontSize(){
	var intSize = 0;

	if( Moz || Opera ){
		intSize = 16;
	}
	return intSize;
}


var flag = false;
function jumpToAnchor( elementname ){
	if( ( !getAnchorPosObj( getHash( elementname ) ).x - getContFontSize() <= 0 || getAnchorPosObj( getHash( elementname ) ).y - getContFontSize() <= 0 ) && !Opera && !iCab && !MacIE4 && ( Vmajor >=4 ) )	{
		pageScroll( 0, getAnchorPosObj( getHash( elementname ) ).y - getContFontSize(), 10 );
	} else{
		flag = true;
	}
}

function jumpToPageTop(){
	if( !Opera && !iCab && !MacIE4 && ( Vmajor >=4 ) ){
		pageScroll(0, 0, 10);
	} else{
		flag = true;
	}
}

//onSelectMenu ChangeLocation
function menuLocation(url) {
	if ( url != "" ) {
		location.href = url;
	}
}

//openSubWindow
function openSubWindow(url,name,width,height,misc,centering) {
	var details;
	details = "width="+ width +",height=" + height +",";
	details += "toolbar="+ misc.charAt(0) +",location="+ misc.charAt(1) +",status="+ misc.charAt(2);
	details += ",menubar="+ misc.charAt(4) +",scrollbars="+misc.charAt(5) +",resizable="+misc.charAt(6)+"";
	if (centering =="center") {
		var posX = (screen.width / 2) - (width / 2);
		var posY = (screen.height / 2) - (height / 2);
		details += ",left=" + posX + ",top=" + posY + ",screenX=" + posX + ",screenY=" + posY;
	}
	window.open(url,name,details);
}

