
/*-------------------------------------------------------------------- 

Ajaxを使ったページ移動スクリプトです。
<注意>
・インデックスページのページ内リンクアンカー名は"anc_"で始めること。

-------------------------------------------------------------------- */

var ex_length;
var index_body = "#thumbnails"; // --[*]
var load_area = "ex_body"; // --[*]

//スタイルシート追加__サムネール読み込み中はサムネールを隠す
var headTag = document.getElementsByTagName("head");
var linkTag = document.createElement("link");
linkTag.rel = "stylesheet";
linkTag.type = "text/css";
linkTag.href = "../css/thumb-hide.css";
headTag[0].appendChild(linkTag);
//

$(function (){
	$(index_body + " a").not(".blank").each(function(i){  // --[except target blank]
		i=i+1;		
		$(this).attr("rel",i);
		var my_rel=this.rel;
		$(this).click(function(){
			jQuery.historyLoad(my_rel);
			return false;
		});
		$(this.parentNode).find("img").click(function(){
			jQuery.historyLoad(my_rel);
			return false;
		});
	});
		
	ex_length = $(index_body + " a").not(".blank").length; // --[except target blank]
	
	var prev_txt = "<a href='#' class='prev'>前へ</a>";
	var prev_last_txt = "<span class='prev_last'>前へ</span>";
	var next_txt = "<a href='#' class='next'>次へ</a>";
	var next_last_txt = "<span class='next_last'>次へ</span>";
	var index_txt = "<div class='toindex'><a href='#'>一覧へ</a></div>";
	var pos_txt = "<div id='page_pos'></div>";
	var clear_txt = "<div class='clear'></div>";
	$(index_body).before("<div id='move_nav_top'></div>");
	$(index_body).after("<div id='move_nav_bottom'></div>");
	$(index_body).before("<div id='ex_content'></div>");
	$(index_body).before("<div id='loading'></div>");
	
	$("#move_nav_top,#move_nav_bottom,#ex_content,#loading").css("display","none");
	$("#move_nav_top").append(prev_txt).append(prev_last_txt).append(next_txt).append(next_last_txt)
		.append(index_txt).append(clear_txt).after(clear_txt).after(pos_txt);
	$("#move_nav_bottom").append(prev_txt).append(prev_last_txt).append(next_txt).append(next_last_txt)
		.append(index_txt).append(clear_txt);
	
	$(".prev,.next").click(function(){
			jQuery.historyLoad(this.rel);
			return false;
		});
		
	$(".toindex a").click(function(){
			jQuery.historyLoad('index');
			return false;
		});

//--[ thumb_clear ]
	var float_clear = '<div class="clear"></div>';
	var page_break = '<div class="break"><span>改ページ</span></div>';
	var line_count = 1; //改ページ用行数カウンター
	var line_max = 4; //ページ内最大行数
	var thumb_flag; //thumb_unitがmaxになっているかどうか
	
	$(".thumb_index").each(function(i){
		var col_num = $(this).attr("class").split(" col:")[1].split(" ")[0];
		var thumb_count=1;
		var thumb_flag=0;
		var unit_len=$(this).find(".thumb_unit").length;
		$(this).find(".thumb_unit").each(function(n){
				if(thumb_count<col_num) {
					thumb_count++;
					thumb_flag="not_full";
				}
				else if(thumb_count==col_num) {
					$(this).after(float_clear);
					thumb_count=1;
					thumb_flag="full";
					
					//--[ insert_break ]
					if(line_count<line_max){
						line_count++;
					}
					else if(line_count==line_max){
						if(i!=$(".thumb_index").length-1){ //--lastのthumb_indexでなければ実行
							$(this).after(page_break);
						}
						else{ //--lastのthumb_indexの場合=thumb_indexがひとつの場合
							if(n!=unit_len-1){ //--lastのthumb_unitでなければ実行
								$(this).after(page_break);
							}
						}
						line_count=1;
					}
					//--[ /insert_break ]
				}
		});
		$(this).append(float_clear);
		//--[ insert_break ]
			if(thumb_flag=="not_full"){
				if(line_count==line_max){
					if(i!=$(".thumb_index").length-1){ //--lastのthumb_indexでなければ実行
						$(this).after(page_break);
					}
					line_count=1;
				}
				else if(line_count<line_max){
					line_count++;
				}
			}
		//--[ /insert_break ]
	});
	
//--[ /thumb_clear ]

	$(index_body).css("display","block");
});

function show_index(flag){
	$(index_body).css("display","block");
	$("#move_nav_top,#move_nav_bottom,#page_pos,#ex_content").css("display","none");
	if(flag=='top'){
	parent.scrollTo(0,0);
	}
}

function pagemove(array_num){
	array_num = eval(array_num)-1;
	$("#ex_content").css("display","none");
	$(index_body).css("display","none");
	$("#loading").css({display:"block",height:"500px"}); // loading_area_height

	var load_href = $(index_body + " a").not(".blank").eq(array_num).attr("href"); // --[except target blank]
	
	$.ajax({
		type: "GET",
		url: load_href,
		dataType: "html",
		success: function(data, dataType){	
			$("#ex_content").html(data); // Load_Page
			var load_html = $("#"+ load_area).clone(); // load_area_clone
			$("#ex_content").html(load_html); // Load_Page_Complete
			
			$("#ex_content a.blank")
				.append('<img class="blank_icon" src="/common/image/icon_blank.gif" alt="" />')
				.attr("target","_new");
			
			$("#ex_content a.pdf")
				.append('<img class="blank_icon" src="/common/image/icon_pdf.gif" alt="" />')
				.attr("target","_new");
			
			//nav_btn_set	
			if(array_num > 0){
				var prev_href = $(index_body + " a").not(".blank").eq(array_num-1).attr("href"); // --[except target blank]
				$(".prev").css("display","block");
				$(".prev_last").css("display","none");
				$(".prev").attr({href:prev_href,rel:array_num});
			}
			else if(array_num == 0){
				$(".prev").css("display","none");
				$(".prev_last").css("display","block");
			}
			if(array_num < ex_length-1){
				var next_href = $(index_body + " a").not(".blank").eq(array_num+1).attr("href"); // --[except target blank]
				$(".next_last").css("display","none");
				$(".next").css("display","block");
				$(".next").attr({href:next_href,rel:array_num+2});
			}
			else if(array_num == ex_length-1){
				$(".next").css("display","none");
				$(".next_last").css("display","block");
			}
			var pos_num = array_num + 1;
			$("#page_pos").text(pos_num + ' / ' + ex_length);

			//display_set
			$("#move_nav_top,#move_nav_bottom,#page_pos,#ex_content").css("display","block");
			$("#loading").css("display","none");

			return false;
		}
	});
}

function pageload(hash) {
	if(hash) {
		hash = hash.replace(/^.*#/, '');
		if(hash!='index' && hash!='pagetop' && hash.indexOf('anc_')==-1){
			window.focus();
			pagemove(hash);
			parent.scrollTo(0,0);
		}
		else if(hash=='index'){
			show_index('top');
		}
		else if(hash.indexOf('anc_')!=-1){
			show_index('anc');
		}
		else {
			return false;
		}
	}
	else{
		show_index('top');
	}
}

jQuery(document).ready(function(){
	jQuery.historyInit(pageload);
});
