$(document).ready(function(){

//performanceModelが未定義の可能性がある為
try {

if (performanceModel != null){

$('#feature_main_image').addClass('loading');

//表示状態モデル
var displayModel = {
	selectedNumber:0,  
	focusNumber:-1,
	featureTextAreaHeight:0,
	featureTextScrollHeight:0,
	featureTextHeight:0,
  imageSwitchIntervel:7000,
	// 選択状態を切り替える
	selectNumber: function(number) {
		selectedNumber = number;	
	},
	updateView: function() {
	  //サムネイルの表示
		displayModel.upDateThumView();
	  //詳細の表示
		displayModel.dettailAllHide();
		$("#feature_text_" + displayModel.selectedNumber).show(); 
		//写真の切り替え
		displayModel.changeImage(performanceModel.list[displayModel.selectedNumber].imageURL, performanceModel.list[displayModel.selectedNumber].detailLink);
		//詳しくはこちらのリンクを切り替える
		$("#feature_link a").attr("href", performanceModel.list[displayModel.selectedNumber].detailLink);
	},
	// サムネイルの描画を行う
	upDateThumView:function() {
		// サムネイルの選択状態をリセットする
		for(i = 0 ; i < performanceModel.list.length ; i++ ) {
			$(".thum_border").css("border","0px");
			$(".thumnail li > img").css("opacity","0.7");
		}
		
		//サムネイルの選択状態
		$(".thum_border").eq(displayModel.selectedNumber).css("border","2px #0377FA solid");
		$(".thumnail li > img").eq(displayModel.selectedNumber).css("opacity","1");
		
		if ( displayModel.selectedNumber != displayModel.focusNumber &&  displayModel.focusNumber != -1) {
			$(".thumnail li > img").eq(displayModel.focusNumber).css("opacity","1");		
		}
		
	},
	upDateThumViewMouseOn:function() {
		if ( displayModel.selectedNumber != displayModel.focusNumber &&  displayModel.focusNumber != -1) {
			$(".thumnail li > img").eq(displayModel.focusNumber).css("opacity","1");		
		}
	},
	upDateThumViewMouseOff:function() {
		// サムネイルの選択状態をリセットする
		if ( displayModel.selectedNumber != displayModel.focusNumber ) {
		  $(".thumnail li > img").eq(displayModel.focusNumber).css("opacity","0.7");
		}
	},		
	// 自動的に選択状態を切り替える
	autoSelectNumber:function() {
		$(document).everyTime(displayModel.imageSwitchIntervel,
			function(){
			
				//興行が1つだった場合はローテ-ションしない
				if (performanceModel.list.length == 1) {
					return;
				}
				
				if (displayModel.selectedNumber < (performanceModel.list.length - 1)) {
					displayModel.selectedNumber++;				
					displayModel.updateView();
				} else {
		 			displayModel.selectedNumber = 0;
					displayModel.updateView();
				}

		});
	},
	
	// 自動選択切替のカウントをリセットする
	autoSelectNumberReset:function() {
		$(document).stopTime();
		displayModel.autoSelectNumber();
	},
	dettailAllHide:function() {
		var i;
		for ( i = 0 ; i < performanceModel.list.length ; i++ ) {
			$("#feature_text_" + i).hide();
		}
	},
	//興行種別画像のHtmlを追加する
	//※表示速度の観点からなるべくappendとremoveを行わない方がよい為、初期表示時のみappendする
	appendDetail:function() {
		var i;
		var k;
		var featureNameHeight;
		var beforeArea;
		var beforeScroll;
		var beforeValue;
		var ie6OffsetHeight;
		var appendHtml = "";
		
		//IE6用
    if (typeof document.documentElement.style.maxHeight != "undefined") {
			ie6OffsetHeight = 0;
		} else {
			ie6OffsetHeight = 0;
		}

		for ( i = 0 ; i < performanceModel.list.length ; i++ ) {
			$("#feature_text_" + i).show(); 

			//高さを調節する
			featureNameHeight = $(".feature_name:eq(" + i + ")").height();
			beforeArea = $(".feature_text_area:eq(" + i + ")").height();
			beforeScroll = $(".feature_text_scroll:eq(" + i + ")").height();
			beforeValue = $("#feature_text_value_" + i).height();
			
			$(".feature_text_area:eq(" + i + ")").css("height", (beforeArea - featureNameHeight) + "px");
			$(".feature_text_scroll:eq(" + i + ")").css("height", (beforeScroll - featureNameHeight) + "px");
			$("#feature_text_value_" + i).css("height", (beforeValue - featureNameHeight + ie6OffsetHeight) + "px");

			//スクロールを設定する
			$("#feature_text_value_" + i).jScrollPane({showArrows:false,scrollbarWidth:6});
			
			$("#feature_text_" + i).hide(); 
		  
		}
				
		
	},
	//興行種別画像を全て非表示にする
	hideTypesAll:function() {
		for ( i = 0 ; i < performanceModel.list.length ; i++ ) {
			$("#feature_type_" + i).hide();
		}
	},
	//画像を切り替える
	changeImage:function(imagePath,link) {
		$('#feature_main_image > img').remove();
		$('#feature_main_image').addClass('loading');
		$('#image_clicker').attr("href",link);
		var img = new Image();
	  $(img).load(function () {
	  	//$(this).css('display', 'none'); // .hide() doesn't work in Safari when the element isn't on the DOM already
	    //$(this).hide();
			$('#feature_main_image > img').remove();
	    $('#feature_main_image').removeClass('loading').append(this);
	
			$(this).css("opacity", "0.6");
	  	$(this).animate({opacity: 1.0}, 350);
			
	  }).error(function () {
	    // notify the user that the image could not be loaded
	  }).attr('src', imagePath);
	},
	//詳しくはこちらを追加する
	appendImageClicker:function() {
		$("#feature_main_image").after('<a id="image_clicker" style="position:absolute"></a>');
		$("#image_clicker").css("left",$("#feature_main_image").css("padding-left"));
		$("#image_clicker").css("display","block");
		$("#image_clicker").css("width",$("#feature_main_image").width());
		$("#image_clicker").css("height",$("#feature_main_image").height());
		$("#image_clicker").css("cursor","pointer");
	}
};

//イベントハンドラ
function setEvent() {
	var i;
	for(i = 0 ; i < performanceModel.list.length ; i++ ) {
		//クリック
		$("#feature_sum_image" + (i + 1)).click(function (e) {
			return function () {
				displayModel.selectedNumber = e;				
				displayModel.updateView();
				displayModel.autoSelectNumberReset();
	
			};
		}(i));
		
		//マウスオーバー
		$("#feature_sum_image" + (i + 1)).mouseover(function (e) {
			return function () {
				displayModel.focusNumber = e;
				displayModel.upDateThumViewMouseOn();
			};
		}(i));
		
		//マウスアウト
		$("#feature_sum_image" + (i + 1)).mouseout(function (e) {
			return function () {
				displayModel.upDateThumViewMouseOff();
				displayModel.focusNumber = -1;
			};
		}(i));
		
	};	
} 


//イベントハンドラを設定する
setEvent();

//自動画像切替を設定する
displayModel.autoSelectNumber();

//Viewを初期化する。
displayModel.appendDetail();
displayModel.appendImageClicker();
displayModel.updateView();

//初期状態のローディング中を削除する
$('#feature_main_image').removeClass('loading_init');

}

} catch(e) {

}

});
