/**
* ================================================================================
*
* base.js
* Author: KENTA SAKATA
* Licensed under the MIT License:
*
* ================================================================================
* ▽以下設定項目
**/

/*--------------------------------------------------
 * ■スムーズスクロール
 * ページ内をスムーズにスクロール
 */
 
/*--------------------------------------------------
 * ■外部リンク
 * ドメイン名の違うサイトへは_blankリンク
 */

(function($) {

	$(function() {
		$.base.externalLink();
	});
	
	

	$.base = {
		// URIを解析したオブジェクトを返すfunction
		Uri: function(path){
			var self = this;
			this.originalPath = path;
			//絶対パスを取得
			this.absolutePath = (function(){
				var e = document.createElement('span');
				e.innerHTML = '<a href="' + path + '" />';
				return e.firstChild.href;
			})();
			//絶対パスを分解
			var fields = {'schema' : 2, 'username' : 5, 'password' : 6, 'host' : 7, 'path' : 9, 'query' : 10, 'fragment' : 11};
			var r = /^((\w+):)?(\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/.exec(this.absolutePath);
			for (var field in fields) {
				this[field] = r[fields[field]];
			}
			this.querys = {};
			if(this.query){
				$.each(self.query.split('&'), function(){
					var a = this.split('=');
					if (a.length == 2) self.querys[a[0]] = a[1];
				});
			}
		},
		//外部リンクは別ウインドウを設定
		externalLink: function(options) {
			var c = $.extend({
				windowOpen:true,
				externalClass: 'outside_link',
				addIconSrc: ''
			}, options);
			var uri = new $.base.Uri(location.href);
			var e = $('a[href^="http://"]').not('a[href^="' + uri.schema + '://' + uri.host + '/' + '"]');
			if (c.windowOpen) {
				e.click(function(){
					window.open(this.href, '_blank');
					return false;
				});
			}
			if (c.addIconSrc) e.not(':has(img)').after($('<img src="'+c.addIconSrc+'" class="externalIcon" />'));
			e.addClass(c.externalClass);
		}
	};
})(jQuery);


/*--------------------------------------------------
 * ■ロールオーバー
 * 【_off】画像を【_on】画像にフェード変換
 * rolloverSpeedは0.1〜1に設定（1はフェードなし）
 */
 	var rolloverOff   = '_off';
	var rolloverOn    = '_on';
 	var rolloverSpeed = 0.1;
	
/*--------------------------------------------------
 * ■画像＆テキストの半透明化
 * 【.fade】ロールオーバーすると半透明化をフェード処理
 * fadeSpeedは0.1〜1に設定（1はフェードなし）
 * fadeValue：透明度
 */
 	var fadeClass   = '.fade';
	var fadeSpeed   = 0.1;
	var fadeValue = 0.8;

/*--------------------------------------------------
 * ■角丸
 * 【.round】ボックスを【10px】の角丸で表示
 */
 	var roundClass = '.round';
	var roundNum   = 10;
 
/*--------------------------------------------------
 * ■セルフリンク
 * 現在ページ又は親ディレクトリにリンクしている時
 * 【_on】画像に変換、【.current】追加
 */
 	var selflinkOff = '_off';
 	var selflinkOn  = '_on';
 
/*--------------------------------------------------
 * ■タブ
 * ボタンに【.tab】を設定、アンカーリンクを貼る事で
 * ボックスをタブ表示
 * 【.active_tab】：表示中ボックス
 */
 	var tabClass = '.tab';

/*--------------------------------------------------
 * ■ファーストチャイルド、ラストチャイルド
 * 最初の要素に【.first】を追加
 * 最後の要素に【.last】を追加
 */
 	var firstChildClass = 'first';
	var lastChildClass  = 'last'





/* FLASH表示スクリプト */
var Mac = (navigator.appVersion.indexOf('Mac',0) != -1);
var Win = (navigator.appVersion.indexOf('Win',0) != -1);
var IE  = (getBrouwserName() == 'Explorer');
var NN  = (getBrouwserName() == 'Netscape');
var Moz = (navigator.userAgent.indexOf("Gecko") != -1);
var VER = parseInt(navigator.appVersion);
var ver = navigator.appVersion;
var Vmajor = parseInt(navigator.appVersion);	// ex. 3
var Vminor = parseFloat(navigator.appVersion);	// ex. 3.01
var MacIE5 = ((Mac && navigator.appVersion.indexOf('MSIE 5',0) != -1) || (Mac && IE && VER > 4));
var MacIE4 = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
var MacIE3 = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));
var MIE4 = (Mac && IE && VER == 4);
var WinIE = (Win && IE);
var IE6 = (ver.indexOf("MSIE 6")>-1);
var IE55 = (ver.indexOf("MSIE 5.5")>-1);
var IE5 = (ver.indexOf("MSIE 5")>-1);
var IE56 = (IE6||IE55||IE5);
var NN40 = (NN && navigator.appVersion.indexOf('4.0',0) != -1);
function getBrouwserName() {
	var ap = navigator.appName;
	var ua = navigator.userAgent;

	if (ap.indexOf("Microsoft Internet Explorer",0) != -1) return "Explorer";
	if (ap.indexOf("Netscape",0) != -1) return "Netscape";
	return "";
}
var pageScrollTimer;

function pageScroll(toX,toY,frms) {
	var tmpX = 0 + getScrollLeft();
	var tmpY = 0 + getScrollTop();
	var cuX = tmpX;
	var cuY = tmpY;

	if (pageScrollTimer) clearTimeout(pageScrollTimer);

	if (!toX || toX < 0 ) {toX = 0;}  
	if (!toY || toY < 0 ) {toY = 0;}

	if (!frms) frms = 6;

	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);

	if (posX == tmpX) posX = toX;
	if (posY == tmpY) posX = toY;

	window.scrollTo(posX, posY);

	if (posX != getScrollLeft()) toX = getScrollLeft();
	if (posY != getScrollTop()) toY = getScrollTop();

	if (posX != toX || posY != toY) {
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+")",16);
	}
}

function jumpToPageTop() {
	if (!MacIE3 && !MacIE4 && !NN && window.scrollTo || NN && (Vminor >= 4.75) && window.scrollTo) {
		pageScroll(0,0,6);
	}else{
		location.hash="top";
	}
}

function jumpToPageTopX() {
	if (!MacIE3 && !MacIE4 && !NN && window.scrollTo || NN && (Vminor >= 4.75) && window.scrollTo) {
		pageScroll(0,getScrollTop(),6);
	}else{
		location.hash = "top";
	}
}

function jumpToPageTopY() {
	if (!MacIE3 && !MacIE4 && !NN && window.scrollTo || NN && (Vminor >= 4.75) && window.scrollTo) {
		pageScroll(getScrollLeft(),0,6);
	}else{
		location.hash="top";
	}
}

function getScrollLeft() {
	if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
		return document.body.scrollLeft || document.documentElement.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 || document.documentElement.scrollTop;
 } else if (window.pageYOffset) {
  return window.pageYOffset;
 } else {
  return 0;
 }
}

function getScrollWidth() {
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollWidth;
 } else if (window.innerWidth) {
  return window.innerWidth;
 }
 return 0;
}

function getScrollHeight() {
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollHeight;
 } else if (window.innerHeight) {
  return window.innerHeight;
 }
 return 0;
}


function flash(fileName,flashWidth,flashHeight) {
	document.open();
	document.write('<div><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+flashWidth+'" height="'+flashHeight+'" loop="false">');
	document.write('<param name="movie" value="'+fileName+'" /><param name="QUALITY" value="best" /><param name="loop" value="false" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" />');
	document.write('<embed src="'+fileName+'" width="'+flashWidth+'" height="'+flashHeight+'" loop="false" wmode="transparent" loop="false" scale="showall" allowScriptAccess="always" allowFullScreen="false" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" type="application/x-shockwave-flash" quality="best"></embed>');
	document.write('</object></div>');
	document.close();
	return 0;
}


/*--------------------------------------------------
 * ■Text Resize
 * テキストサイズを3種切り替え。指定id内のみ処理
 */

$(function() {
	$("dl.resize_btn a").textresizer({
	     target: "#contents",
		 type: "css",
         sizes: [
            // Small. Index 0
            { "font-size" : "90%",
              "line-height": "140%"
            },

            // Medium. Index 1
            { "font-size" : "100%",
              "line-height": "180%"
            },

            // Large. Index 2
            { "font-size" : "130%",
              "line-height": "160%"
            }
			
         ],
		 selectedIndex: 1
	});


});


/*--------------------------------------------------
 * ■roll over
 * とりあえず導入してみる
 */

function initRollOverImages() {
  var image_cache = new Object();
  $("img.on").not("[src*='_on.']").each(function(i) {
    var imgsrc = this.src;
    var dot = this.src.lastIndexOf('.');
    var imgsrc_on = this.src.substr(0, dot) + '_on' + this.src.substr(dot, 4);
    image_cache[this.src] = new Image();
    image_cache[this.src].src = imgsrc_on;
    $(this).hover(
      function() { this.src = imgsrc_on; },
      function() { this.src = imgsrc; });
  });
}

$(document).ready(initRollOverImages);




