/**
 *	@filename		home.js
 *	@charset		utf-8
 *	@modified		September 1, 2010
 *	@description	コーポレートトップ専用
 */
$(function(){
	
	var win = window,
		doc = win.document,
		bdy = doc.body,
		cyb = win.cybele,
		fsc = new cyb.FSC,
		$   = win.$,
	
		isIE  = doc.all && !win.opera,
		isIE6 = isIE && typeof win.XMLHttpRequest === "undefined";
	
	//
	//	メインビジュアルアニメーション
	//
	(function(win, $){
		var SPD  = 1500, //フェード時間[ms]
			ITV  = 6000, //間隔[ms]
			ZIDX = 100,  //表示されている時のz-index値
			imgs = [],
			len  = 0,
			cnt  = 0;
		$("#mainVisual li").each(function(){
			imgs[len++] = $(this).css({ "zIndex" : 1, "opacity" : 0 });
		});
		imgs[0].css({ "zIndex" : ZIDX }).animate({ "opacity" : 1 }, SPD);
		len > 1 && win.setInterval(function(){
			imgs[cnt].css({ "zIndex" : 1 }).animate({ "opacity" : 0 }, SPD);
			imgs[ ++cnt >= len ? (cnt = 0) : cnt ].css({ "zIndex" : ZIDX }).animate({ "opacity" : 1 }, SPD);
		}, ITV);
	})(win, $);
	
	//
	//	ブログ記事タイトル省略
	//
	fsc.addListener("change", (function($){
		var PAD_IE  = 10,//ieで微調整
			PAD_IE6 = 18,//ie6パディング分微調整
			$dds = $("div.blog dd"),
			dd   = $dds.get(0),
			max  = dd.offsetLeft + dd.offsetWidth - (isIE6 ? PAD_IE6 : isIE ? PAD_IE : 0),
			maps = [];
		$dds.each(function(i){
			var elm = this.getElementsByTagName("a")[0],
				txt = elm.innerHTML.split("");
			maps[i] = {
				elm : elm,
				txt : txt,
				tst : "<span>" + txt.join("</span><span>") + "</span>"
			};
		});
		return function f(){
			$dds.each(function(i){
				var BACKTRACK = 2,
					map = maps[i],
					elm = map.elm,
					txt = [].concat( map.txt );
				elm.innerHTML = map.tst;
				for(var j = BACKTRACK, spn = elm.getElementsByTagName("span"), len = spn.length; j < len; j++){
					if( spn[j].offsetLeft >= max ){
						txt[ txt.length = j - BACKTRACK ] = "…";
						break;
					}
				}
				elm.innerHTML = txt.join("");
			});
			return f;
		}();
	})($));
	
	//
	//	ブログ記事タイトル省略
	//
	//var isSafari = /\bsafari\b/.test(bdy.className);
	fsc.addListener("change", (function($){
		var $dds = $("#feedNews dd"),
			maps = [];
		$dds.each(function(i){
			var elm = this.getElementsByTagName("a")[0],
				txt = elm.innerHTML.split("");
			maps[i] = {
				elm : elm,
				txt : txt,
				tst : '<span>' + txt.join('</span><wbr /><span>') + '</span>'//行数で判別する場合<wbr>必須
			};
			//elm.style.wordBreak = "break-all";
		});
		return function f(){
			var MAX_ROW = 2;
			$dds.each(function(i){
				var BACKTRACK = isIE ? 2 : 1,
					row = 0,
					map = maps[i],
					elm = map.elm,
					txt = [].concat( map.txt ),
					offsetTop = 0;
				elm.innerHTML = map.tst;
				for(var j = 0, spn = elm.getElementsByTagName("span"), len = spn.length; j < len; j++){
					var ot = spn[j].offsetTop;
					if( ot !== offsetTop ){
						offsetTop = ot;
						if( ++row > MAX_ROW && j > BACKTRACK ){
							txt[ txt.length = j - BACKTRACK ] = "…";
							break;
						}
					}
				}
				elm.innerHTML = txt.join("<wbr />");
			});
			return f;
		}();
	})($));
});
