/*
(c) 2011 Naphthalene Co.,Ltd.
tvdog
http://naph.jp

thai.js

以下のライブラリに依存
jquery-1.4.4.min.js
jquery.masonry.min.js
jquery.cookie.js
*/

/*------------------------------------------------------------------------------*/
//トップのイメージスライドショー
thai.top = function() {
	
	var dirl = '/common/photo/610x300/';
	var dirs = '/common/photo/300x150/';
	var id = 'bl_area_gallery';
	var wrapId = 'bl_area_gallery_wrap';
	var xmlURL = '/common/xml/topgallery.xml';
	
	//xmlパースデータ
	var data;
	
	//このブロック自体
	var block;
	
	//タイトル
	var h;
	
	//英語タイトル
	var h2;
	
	//タイトルグループ
	var hg;
	
	//ナビ
	var navi;
	
	//ラップ
	var wrap;
	
	//タイムアウト関係
	var timeID = 0;
	var dura = 1000 * 13;
	
	//現在の写真
	var phtoID = 0;
	
	T = {
		init : function() {
			block = $('#' + id);
			
			var wg = Math.floor($(window).width() / 310);
			if (block.get(0) && wg > 2) {
				$.ajax({
					url:xmlURL,
					success:onXmlComp
				});
			}
		},
		
		onTimeOut : function(o) {
			var n = phtoID + 1;
			if (n >= data.length) n = 0;
			naviBottan(n);
		}
		
	};
	
	//xmlを読み込んだ時
	function onXmlComp(d, t) {
		setRandom(d);
		block.empty();
		
		wrap = $(document.createElement("div"))
		.attr('id', wrapId);
		block.append(wrap);
		
		hg = $(document.createElement("div"))
		.width(200)
		.attr('id', 'bl_area_hgroup');
		block.append(hg);
		
		h2 = $(document.createElement("h2"))
		.text(data[0].ename);
		hg.append(h2);
		
		hg.append('<br>');
		
		h = $(document.createElement("h1"))
		.text(data[0].name);
		hg.append(h);
		
		setHgWidth();
		
		navi = $(document.createElement("div"))
		.attr({'class':'img_pager'});
		block.append(navi);
		
		var d = dirl;
		var size = 610;
		if ($('body').hasClass('range_one')) {
			d = dirs;
			size = 300;
		}
		
		$(data).each(function(i){
			var a = $(document.createElement("a"))
			.attr({
				'href':data[i].href,
				'rel':data[i].tid
			});
			
			var p = $(document.createElement("img"))
			.attr({
				'src':d + data[i].src,
				'alt':data[i].name
			});
			
			a.append(p);
			wrap.append(a);
			thai.tracking.trackingClick(a);
			
			var n = $(document.createElement("div"))
			.click(function(){naviBottan(i)});
			navi.append(n);
		});
		
		wrap.width(size * data.length);
		navi.find('div:first').addClass('on');
		
		timeOutStart();
		
		$(window).resize(onResize);
	}
	
	function setRandom(d) {
		data = [];
		$(d).find('img').each(function(i){
			var img = $(this);
			data.push({
				'href':img.attr('href'),
				'src' :img.attr('url'),
				'name':img.attr('name'),
				'ename':img.attr('ename'),
				'tid' :img.attr('tid'),
				'seed':Math.random()
			});
		});
		data.sort(function(a,b){
			return b.seed - a.seed;
		});
		return data;
	}
	
	function naviBottan(i) {
		var size = 610;
		if ($('body').hasClass('range_one')) size = 300;
		
		wrap.stop().animate({left:-size * i}, {duration:1000,easing:'easeOutQuart'});
		
		navi.find('div')
		.removeClass('on')
		.eq(i)
		.addClass('on');
		
		//hg.width(200);
		h.text(data[i].name);
		h2.text(data[i].ename);
		
		setHgWidth();
		
		phtoID = i;
		timeOutStart();
	}
	
	function setHgWidth() {
		hg.width(200);
		var hw = Math.max(h.width(), h2.width());
		hg.width(hw);
		//if (hw > 200) hg.width(hw);
	}
	
	function timeOutStart() {
		var o = T;
		clearTimeout(timeID);
		timeID = setTimeout(function(){o.onTimeOut(o)}, dura);
	}
	
	//ウィンドウサイズ変更された時
	function onResize() {
		var wg = Math.floor($(window).width() / 310);
		var d = dirl;
		var size = 610;
		
		if (wg < 2) {
			d = dirs;
			size = 300;
		}
		
		wrap.find('img').each(function(i){
			$(this).attr({'src': d + data[i].src});
		});
		wrap.css({left:-size * phtoID});
	}
	
	return T;
}();

$(document).ready(thai.top.init);

