/*--------------------------------------------------------------------------*
 *  
 *  SONAR JavaScript Library Ver2.0
 *  Last Modified by 2009/04/01
 *  
 *--------------------------------------------------------------------------*/

// SmoothScroll Script

new function(){
	/*
	 *イベント追加用
	  -------------------------------------------------*/
	function addEvent(elm,listener,fn){
		try{ // IE
			elm.addEventListener(listener,fn,false);
		}catch(e){
			elm.attachEvent(
				"on"+listener
				,function(){
					fn.apply(elm,arguments)
				}
			);
		}
	}

	/*
	 *スムーズスクロール
	  -------------------------------------------------*/
	function SmoothSc(a){
		if(document.getElementById(a.rel.replace(/.*\#/,""))){
			var e = document.getElementById(a.rel.replace(/.*\#/,""));
		}else{
			return;
		}
		
		//移動位置
		var end=e.offsetTop
		//現在位置
		var start=window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
		
		var flag=(end<start)?"up":"down";

		function scrollMe(start,end,flag) {

			setTimeout(
				function(){
					if(flag=="up" && start >= end){
						start=start-(start-end)/20-1;
						window.scrollTo(0,start)
						arguments.callee(start,end,flag);

					}else if(flag=="down" && start <= end){
						start=start+(end-start)/20+1;

						window.scrollTo(0,start)
						arguments.callee(start,end,flag);

					}else{
						scrollTo(0,end);
					}
				}
				,200
			);
			
		}
		scrollMe(start,end,flag)
	}

	/*
	 *スムーズ変換スクリプト
	  -------------------------------------------------*/
	addEvent(window,"load",function(){
		var anchors = document.getElementsByTagName("a");
		for(var i = 0 ; i<anchors.length ; i++){
			if(anchors[i].href.replace(/\#[a-zA-Z0-9]+/,"") == location.href.replace(/\#[a-zA-Z0-9]+/,"")){
				anchors[i].rel = anchors[i].href;
				anchors[i].href = "javascript:void(0)";
				anchors[i].onclick=function(){SmoothSc(this)}
			}
		}
	});

}


// Rollover Script
// Rollover のimgタグ用
function initRollovers() {
	if (!document.getElementById) return
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_on'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_on'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}

// Rollover のinputタグ用
function initRolloversInput() {
	if (!document.getElementById) return
	
	var aPreLoadInput = new Array();
	var sTempSrcInput;
	var aImagesInput = document.getElementsByTagName('input');

	for (var i = 0; i < aImagesInput.length; i++) {		
		if (aImagesInput[i].className == 'imgover') {
			var src = aImagesInput[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_on'+ftype);

			aImagesInput[i].setAttribute('hsrc', hsrc);
			
			aPreLoadInput[i] = new Image();
			aPreLoadInput[i].src = hsrc;
			
			aImagesInput[i].onmouseover = function() {
				sTempSrcInput = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImagesInput[i].onmouseout = function() {
				if (!sTempSrcInput) sTempSrcInput = this.getAttribute('src').replace('_on'+ftype, ftype);
				this.setAttribute('src', sTempSrcInput);
			}
		}
	}
}


// Stripedtable Script
/*------------------------------------------------------------*/
/* 特定classのtable要素内、tr要素に対して交互にクラスをつけます。*/
/* className : 対象となるテーブルに設定するためのクラス名*/
/* oddlineClassName : 奇数ラインに付くクラス名*/
/* evenlineClassName : 偶数ラインに付くクラス名*/
/*------------------------------------------------------------*/
conf = {
	className : "stripedtable",
	oddlineClassName : "oddline",
	evenlineClassName : "evenline"
}

function setStripedTable(){
	var tables = getElementsByClassName(conf.className);
	for (var i=0, len=tables.length; i<len; i++){
		var table = tables[i];
		var lines = table.getElementsByTagName("tr");

		for (var j=0, llen=lines.length; j<llen; j++){
			tr = lines[j];
			if(j%2==0) {
				tr.className = conf.oddlineClassName;
			} else {
				tr.className = conf.evenlineClassName;
			}
		}
	}
}

function getElementsByClassName(name){
	var elements = new Array();
	var allElements = document.getElementsByTagName('*');
	for (var i=0, len=allElements.length; i<len; i++){
		if (allElements[i].className == name){
			elements.push(allElements[i]);
		}
	}
	return elements;
}


try{
	window.addEventListener("load",initRollovers,false);
}catch(e){
	window.attachEvent("onload",initRollovers);
}

try{
	window.addEventListener("load",initRolloversInput,false);
}catch(e){
	window.attachEvent("onload",initRolloversInput);
}


try{
	window.addEventListener("load",setStripedTable,false);
}catch(e){
	window.attachEvent("onload",setStripedTable);
}

//popup window用
function NewWindow(mypage, myname, w, h, scroll, myform) {
	var winl = (screen.width - w) / 2;
	var wint = 10;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',toolbar=no,menubar=no,location=no,resizable'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}


// Textbox,Textareaがfocusされた時に背景色変更 Script
function addEventChangeBgColorByFocus(color) {
	
	_changeColor = function(element) {
		var baseColor = element.style.backgroundColor;
		var focusFunc = (function(element,color) {
			return function () {
				if (element.value == '') element.value = '';
				element.style.backgroundColor = color;
			}
		})(element,color);
		
		var blurFunc = (function(element,baseColor) {
			return function () {
				if (element.value == '') element.value = '';
				element.style.backgroundColor = baseColor;
			}
		})(element,baseColor);

		try {
			element.addEventListener("focus",focusFunc,false);
			element.addEventListener("blur",blurFunc,false);
		} catch(e) {
			element.attachEvent("onfocus",focusFunc);
			element.attachEvent("onblur",blurFunc);
		}
	}
	var elements = document.getElementsByTagName('input')
	for (i=0;i<elements.length;i++) {
		if ( elements[i].type == 'text' ) {
			_changeColor(elements[i],color)
		}
	}
	var elements = document.getElementsByTagName('textarea')
	for (i=0;i<elements.length;i++) {
		_changeColor(elements[i],color)
	}
}

//Textbox,Textareaがfocusされた時の処理をonloadイベントに追加
function InitEventChangeBgColorByFocus(color) {
	try{
		window.addEventListener("load",function() {addEventChangeBgColorByFocus(color)},false);
	}catch(e){
		window.attachEvent("onload",function() {addEventChangeBgColorByFocus(color)});
	}
}

//呼び出し（ここはcommon.jsに書かない方がいいかも）
InitEventChangeBgColorByFocus("#EEF4FF")
 
