/**
 *	@filename		lib.js
 *	@charset		EUC-JP
 *	@modified		May 18, 2010
 *	@description	共通js
 */
(function(){



//
//	高速化用エイリアス
//
var win = this,
	doc = win.document,
	hd  = doc.getElementsByTagName("head")[0],
	bdy = doc.body;



//
//	専用名前空間
//
//var ns = win.xxxxx = win.xxxxx || {};



//
//	ルート（トップページのindex.htmlがある場所）のパスを取得
//
hd.removeChild( hd.appendChild( doc.createElement("script") ) );
var root = doc.getElementsByTagName("script");
root = root[root.length - 1].src.replace(/\/js\/common\/lib\.js$/, "");



//
//	外部JavaScript読み込み用1
//
var load1 = function(src){
	src = /^https?:\/\//.test(src) ? src : (root + src);
	doc.write('<script type="text/javascript", src="' + src + '" charset="utf-8"></script>');
};



//
//	外部JavaScript読み込み用2
//
var load2 = function(src, fnc){
	var s = doc.createElement("script"),
		done = false;
	s.src = /^https?:\/\//.test(src) ? src : (root + src);
	s.charset = "utf-8";
	s.onload = function(){
		if(!done){
			done = true;
			fnc();
		}
	};
	s.onreadystatechange = function(){
		if( !done && /^(complete|loaded)$/.test(s.readyState) ){
			done = true;
			fnc();
		}
	};
	hd.appendChild(s);
};



//////////////////////////////////////// START OF DOM READY ////////////////////////////////////////

$(function(){



//
//	エイリアス
//
var doc = win.document,
	bdy = doc.body,
	sct = win.scrollTo,
	sto = win.setTimeout,
	$   = win.$;



//
//	OS・ブラウザ判別
//
var ua = win.navigator.userAgent;
$(bdy).addClass(
	/windows/i.test( ua ) ? "windows" :
	/mac/i.    test( ua ) ? "mac" :
	"unkwnOs"
).addClass(
	/firefox/i.test( ua ) ? "firefox" :
	/safari/i. test( ua ) ? "safari webkit" : 
	/chrome/i. test( ua ) ? "chrome webkit" : 
	/opara/i.  test( ua ) ? "opera" :
	/msie/i.   test( ua ) ? "ie" :
	"unkwnBrowser"
);



//
//	このページの先頭へボタン動作
//
$(".anchorTop a, #anchorTop a").click(function(){
	var y = doc.body.scrollTop || doc.documentElement.scrollTop;
	sct(0, y = ((y << 3) - y) >> 3);
	y && sto(arguments.callee, 16);
	return false;
});



//
//	閉じるボタン
//
$("#buttonClose, .buttonClose").click(function(){
	win.close();
	return false;
});



//
//	IE用objectタグ関係
//
if(doc.all && !win.opera){
	$("object").each(function(){
		this.removeAttribute("data");
		this.outerHTML = this.outerHTML;
	});
}



//
//	ポップアップリンク用
//
$(".popup").click(function(){
	win.open(this.href).focus();
	return false;
});



//
//	input@type=image & a img マウスオーバー
//
//	マウスオーバー画像（と推測される）画像が存在する場合、マウスオーバー時にsrcを切り替えます。
//
var REGEX_SWAP_SRC = /^(.*)(\..*)$/,
	Image = win.Image;
$("input:image, a img").each(function(){
	var self = this,
		src = this.src,
		src_ov = src.replace(REGEX_SWAP_SRC, "$1_ov$2"),
		loader = new Image();
	loader.onload = function(){
		$(self).hover(function(){
			this.src = src_ov;
		},function(){
			this.src = src;
		});
		self = loader = loader.onload = null;
	};
	loader.src = src_ov;
});



//
//	リンクの点線を消す
//
$(doc.links).focus(function(){
	this.blur();
});



//
//
//
var DEFAULT_VALUE = "キーワードを入力";
$("input, textarea, select").each(function(){
	var $this = $(this).addClass(this.type || "text");
	if( this.tagName.toLowerCase()!=="input" || !/^(?:radio|checkbox|submit|button|reset)$/.test(this.type + "") ){
		$this.hover(function(){
			$this.addClass("hover");
		},function(){
			$this.removeClass("hover");
		}).focus(function(){
			$this.addClass("focus");
		}).blur(function(){
			$this.removeClass("focus");
		});
		if(this.name === "search"){
			if( !/\S/.test(this.value) ){
				this.value = DEFAULT_VALUE;
			}
			
			$this.focus(function(){
				if( this.value === DEFAULT_VALUE ){
					this.value = "";
				}
			}).blur(function(){
				if( !/\S/.test(this.value) ){
					this.value = DEFAULT_VALUE;
				}
			});
		}
	}
});



//
//	アクセス解析
//
if( location.hostname === "www.cybele.co.jp" ){
	
	//Google Analytics
	load2( ( document.location.protocol === "https:" ? "https://ssl." : "http://www.") + "google-analytics.com/ga.js", function(){
		try{
			var pageTracker = window.pageTracker = _gat._getTracker("UA-10545448-1");
			pageTracker._trackPageview();
		}catch(err){}
	});
	
	//Yahoo! Analytics
	load2( "http://i.yimg.jp/images/analytics/js/ywa.js", function(){
		var YWATracker = window.YWATracker = YWA.getTracker("1000196651207");
		YWATracker.addExcludeProtocol("file:");
		YWATracker.submit();
	});
}



});

///////////////////////////////////////// END OF DOM READY /////////////////////////////////////////

})();
