/*
Movie Walker JavaScript - jQuery title.css
http://movie.walkerplus.com/
 *
Copyright (c) KADOKAWA MARKETING ALL RIGHTS RESERVED.
 *
Created: Yuya Amano - 2009-07-11 11:24
Revision: -
*/

//タイトルページ
(function ($) {
	$.fn.storyString = function(){
		var storyProp = {
			height : 0,
			init : 120
		}
		var smallText = false;
		var dfObj = {
			'strBig' : 'stringBig',
			'strSmall' : 'stringSmall'
		};
		var storyObj = $('#strotyText');
		if(storyObj.length < 1){
			return;
		}

		var initHeight = storyObj.height();
		if(initHeight <= storyProp.init){
			storyProp.init = initHeight;
			if(initHeight < 80){
				//テキストほとんどなし
				smallText = true;
			}
		}

		if(!smallText){
		storyObj.after('<div class="clearfix"><span id="openClose_storyText" class="iconOpenClose">全てを見る</span></div>');
		}
		var bSpan = $('[id^=textController_] span');
		var initStyle = {
			'height': storyProp.init + 'px',
			'overflow':'hidden'
		}
		storyObj.css(initStyle);
		var btnOpenClose = $('#openClose_storyText');
		var closeAnime = true;
		var alwaysClose = false;

		bSpan
		.hover(function(){
				var obj = $(this);
				bSpan.removeClass('Sselected Bselected');
				(obj.hasClass('strBig')) ? obj.addClass('Bselected') : obj.addClass('Sselected');
			},function(){
				bSpan.removeClass('Sselected Bselected'); 
			}
		).click(function(){
			var obj = $(this);
			var f = false;
			if(obj.hasClass('strBig')){
				if(obj.hasClass('Bactive')){
					f = true;
				}
			}else{
				if(obj.hasClass('Sactive')){
					f = true;
				}
			}
			if(f || alwaysClose){
				alwaysClose = false;
				storyObj.stop();
				if(closeAnime){
					storyObj.animate({'height':storyProp.init+'px'},1000,null,function(){
						storyObj.css(initStyle);
						btnOpenClose.text('全てを見る');
						btnOpenClose.removeClass('active');
					});
				}
				btnOpenClose.removeClass('active');
				bSpan.removeClass('Sselected Bselected Sactive Bactive');		
				storyObj.removeClass('stringBig stringSmall');
				return;
			}
			
			bSpan.removeClass('Sselected Bselected Sactive Bactive');
			var type = obj.attr('class');
			var target = '#' + obj.parent().attr('id').replace('textController_','');
			(obj.hasClass('strBig')) ? obj.addClass('Bactive') : obj.addClass('Sactive');
			$(target).removeClass();
			$(target).addClass(dfObj[type]);
			var orig = storyObj.height();
			storyObj.stop();
			storyObj.css('height','auto');
			storyProp.height = storyObj.height();
			storyObj.css('height',orig + 'px');
			btnOpenClose.text('閉じる');
			btnOpenClose.addClass('active');
			storyObj.animate({'height':storyProp.height + 'px'},1000);
		});

		btnOpenClose.click(function(){
			if(btnOpenClose.hasClass('active')){
				alwaysClose = true;
			}
			btnOpenClose.text('閉じる');
			btnOpenClose.addClass('active');
			bSpan.filter('.strSmall').click();
		});

	}

	$.fn.staffCast = function(){
		var dfProp = {
			staffTable : 1,
			castTable : 2
		};
		var dfHeight = {
			staffInitH : 0,
			staffH : 0,
			castInitH : 0,
			staffH : 0
		}
		var staffBox = $('#staffArea table');
		var castBox = $('#castArea table');

		if(staffBox.length < 1){
			return;
		}
		if(castBox.length < 1){
			return;
		}

		var staffCnt = $('#staffArea').attr('class').split('_')[1];
		var castCnt = $('#castArea').attr('class').split('_')[1];
		
		//元heightの取得
		dfHeight.staffH = staffBox.height();
		dfHeight.castH = castBox.height();
		//初期状態に設定
		for(i in dfProp){
			$('#' + i).find('tr:gt('+ dfProp[i] +')').css('display','none');
		}
		//縮小時heightの計算
		dfHeight.staffInitH = staffBox.height();
		dfHeight.castInitH = castBox.height();
		for(i in dfProp){
			$('#' + i).find('tr:gt('+ dfProp[i] +')').css('display','');
		}
		$('#wrap_staffTable').css({'height':dfHeight.staffInitH+'px', 'overflow':'hidden'}).after('<div class="clearfix"><span id="openCloase_wrap_staffTable" class="iconOpenClose">全てを見る('+ staffCnt +')</span></div>');
		$('#wrap_castTable').css({'height':dfHeight.castInitH+'px', 'overflow':'hidden'}).after('<div class="clearfix"><span id="openCloase_wrap_castTable" class="iconOpenClose">全てを見る('+ castCnt +')</span></div>');

		
		$('[id^=openCloase_]').click(function(){
			var obj = $(this);
			var id = obj.attr('id').replace('openCloase_','');
			var k = '';
			if(obj.hasClass('active')){
				//閉める
				if(id == 'wrap_staffTable'){
					k = 'staffInitH';
					obj.text('全てを見る(' + staffCnt + ')');
				}else{
					k = 'castInitH';
					obj.text('全てを見る(' + castCnt + ')');
				}
				$('#'+id).animate({height:dfHeight[k] + 'px'},1000);
				obj.removeClass('active');
			}else{
				//開く
				(id == 'wrap_staffTable') ? k = 'staffH': k = 'castH';
				$('#'+id).animate({height:dfHeight[k] + 'px'},1000);
				obj.text('閉じる');
				obj.addClass('active');
			}
		});
	}

	$.fn.netabare = function(){
		this.click(function(){
			var targObj = $(this);
			if(targObj.next('p').css('display') == 'none'){
				targObj.text('▲閉じる(クリックして閉じる)');
				targObj.next('p').slideDown();
			}else{
				targObj.text('▼ネタばれ(クリックして読む)');
				targObj.next('p').slideUp();
			}
		}).css('cursor','pointer').next('p').hide();
	}

})(jQuery);



$(document).ready(function(){
	$(document).storyString();
	$(document).staffCast();
	$('#reviewList .netabare').netabare();
});

