var siteroot = 'https://www.i2f.org/';

var topFn = {};

var isHtmlScrollable = (function(){
    var html = $('html'), top = html.scrollTop();
    var elm = $('<div/>').height(10000).prependTo('body');
    html.scrollTop(10000);
    var rs = !!html.scrollTop();
    html.scrollTop(top);
    elm.remove();
	
    return rs;
})();
// $(isHtmlScrollable ? 'html' : 'body').animate();

var worksDetailDirect = false;


//var scrollTag = ( window.chrome || 'WebkitAppearance' in document.documentElement.style )? 'body' : 'html';

var ua = navigator.userAgent;
var scrollTag;
if( ua.indexOf('OPR') !== -1 || ua.indexOf('Edge') !== -1 ) {
  scrollTag = 'body';
} else {
  scrollTag = ( !window.chrome && 'WebkitAppearance' in document.documentElement.style )? 'body' : 'html';
}

console.log('scrollTag='+scrollTag);




//alert(scrollTag);
 

$.fn.setvar=function(flag){
	winHeight = window.innerHeight;
	winWidth = window.innerWidth;	
	
	
	if($('.wp-video').length){
		$('.wp-video video').each(function(){
				var w=$(this).width();
				var h = w/100*56.2;
				$(this).height(h);
				
		});
	}
	
	
	
}//setvar

var resizetimer = false;
$(window).resize(function() {
	
	$(window).setvar();
	
	if (resizetimer !== false) {
        clearTimeout(resizetimer);
    }
    resizetimer = setTimeout(function() {
					
	}, 500);
	
});
	

$(window).scroll(function () {
	scrollPos = $(window).scrollTop();
	//console.log(scrollPos);
	$(window).setvar();
});



//スクロール禁止用関数
function no_scroll(){
	//PC用
	var scroll_event = 'onwheel' in document ? 'wheel' : 'onmousewheel' in document ? 'mousewheel' : 'DOMMouseScroll';
	$(document).on(scroll_event,function(e){e.preventDefault();});
	//SP用
	$(document).on('touchmove.noScroll', function(e) {e.preventDefault();});
}
 
//スクロール復活用関数
function return_scroll(){
	//PC用
	var scroll_event = 'onwheel' in document ? 'wheel' : 'onmousewheel' in document ? 'mousewheel' : 'DOMMouseScroll';
	$(document).off(scroll_event);
	//SP用
	$(document).off('.noScroll');
}


function bodyFixed(action){
	if(action == 'on'){
		$('body').addClass('fixed');
		$('#container').addClass('fixed');
		$('#base').css({ top:-fixScrollPos+'px'});
		$('html,body').animate({scrollTop:0}, 0);
	}else if(action == 'off'){
		$('body').removeClass('fixed');
		$('#container').removeClass('fixed');
		$('#base').css({ top:0});
		$('html,body').animate({scrollTop:fixScrollPos}, 0);
	}
}



var fixedMenuFlag = false;
var fixScrollPos;
function fixedMenuAct(){
	
	if(!fixedMenuFlag){
		fixedMenuFlag = true;
		//open
		fixScrollPos = $(window).scrollTop();
		bodyFixed('on');
		$('.spMenuCloseBtn').addClass('close');
		$('#coverMenu').addClass('open');
		$('body').addClass('coverMenuOpen');
		fixedMenuFlag = true;
	}else{
	//close
		$('#coverMenu').removeClass('open');	
		$('body').removeClass('coverMenuOpen');
		bodyFixed('off');
		$('.spMenuCloseBtn').removeClass('close');
		fixedMenuFlag = false;			
	}
}


function pageScroll(target,speed){
	if(target.length){
		//console.log('pageScroll');
		if(!speed){
		  // スクロールの速度
		  var speed = 1000; // ミリ秒
		}
		
		// 移動先を数値で取得
		var position = target.offset().top;
		// スムーススクロール
		$(scrollTag).animate({scrollTop:position-300}, speed, 'easeInOutQuart');
		  
		//$('#headerFixed').css({opacity:0}).addClass('view');
		headerFixedFlag = true;
		return_scroll();
		//location.hash = '';	
	}
}


function pageScrollZero(){
	$(scrollTag).animate({scrollTop:0}, 500, 'easeInOutQuart');
}



function pageMove(url,mode){

	if(mode == 'cover'){
		//$('#coverMenu').removeClass('open');
	}
	setTimeout(function(){
		//console.log("pageMove");
		//$('body').addClass('fadeOut');
		//$('#container').removeClass('open');	
		$('#siteWrap').addClass('fadeOut');
		setTimeout(function(){
			location.href = url; 
		},1000);					
	},1);				
}


var mytap = window.ontouchstart===null?"click":"click";
//console.log(mytap);



function contentsAjMove(url,mode,addclass,btn){
	$('body').append('<div id="pageLoadingAnim" class="start"><span>BUFFERING....</span></div><div id="pageLoadingAnimBar" class="start"><span></span></div>');
	
	//console.log('Fn contentsAjMove');
	incContentsActionFlag = true;
	worksTopFirstLoad = true;
	
	//$('#emblem').addClass('fadeOut');
	$('#primary').addClass('fadeOut');
	$('footer').addClass('fadeOut');
	
	setTimeout(function(){
		if(fixedMenuFlag){
			fixedMenuAct();
		}	
			
		$(scrollTag).animate({scrollTop:0}, 500, 'easeInOutQuart',function(){
			//console.log('scrollTop Finish')
			//body id & class control
			$('body').removeClass('worksDetailOn');
			$('body#works').removeClass('detail');
			
			if($('#incPageBG').length){
				$('#incPageBG').removeClass('open');
				setTimeout(function(){
					$('#incPageBG').remove();
				},1000 );
			}
		
			setTimeout(function(){
				if(mode == 'top'){
					$('body').addClass('home');
					EMBLEM_BG.modeChange("top");
				}else{
					$('body').removeClass('home');
					EMBLEM_BG.modeChange("contents");
				}
			
				setTimeout(function(){
					$('body').attr('id',mode);
					$('body').addClass(addclass);
					$('#primary').empty();
					//console.log("                   > 読込 URL="+url+' mode='+mode); 
					
					var pagetitle='';
					$.ajax({
						type: 'GET',
						url: url,
						success: function(data) {
						   var t = data.match(/<title>(.*)<\/title>/);
						   pagetitle = t[1];
						   //ページタイトル変更(common.js:222)
						   //console.log('タイトル変更：'+t[1]);
						   $('title').html(pagetitle);
						   
						   
						   
						}
					});
					//var title = mode.toUpperCase(); 
					
					
					$('#primary').load(url+' #contentsWrap',function(data){
						
						
						//console.log("                   > 読込Finish"); 
						if(mode == 'works'){
							
							loadStartWorks();
							
							incContentsActionFlag = false;
							$(window).hexbox();	
							worksAttachEvent();
						}else if(mode == 'contact' || mode == 'entry'){
							eventAttachEvent();
							$.ajax({
								type: "GET",
								url: "https://www.google.com/recaptcha/api.js",
								dataType: "script",
								success: function() {
									
									$('#pageLoadingAnim').animate({opacity:0},300,function(){ $(this).remove();});
									$('#pageLoadingAnimBar').removeClass('start').addClass('end');
									setTimeout(function(){
										$('#pageLoadingAnimBar').fadeOut(300,function(){ $(this).remove(); });
									},1000);
									setTimeout(function(){
										$('#primary').removeClass('fadeOut');
										$('footer').removeClass('fadeOut').removeClass('hide');
										$('#emblem').removeClass('fadeOut');

										if(btn != 'browserNav'){
											if(mode == 'top'){ mode = '';}
											//console.log("                   > ヒストリー登録 > "+mode); 
											window.history.pushState(null, null, siteroot+mode);
										}

										commonAttachEvent();
									},500);		

								}
							});
						}else{
							
							$('#pageLoadingAnim').animate({opacity:0},300,function(){ $(this).remove();});
							$('#pageLoadingAnimBar').removeClass('start').addClass('end');
							setTimeout(function(){
								$('#pageLoadingAnimBar').fadeOut(300,function(){ $(this).remove(); });
							},1000);
							setTimeout(function(){
								$('#primary').removeClass('fadeOut');
								$('footer').removeClass('fadeOut').removeClass('hide');
								$('#emblem').removeClass('fadeOut');

								if(btn != 'browserNav'){
									if(mode == 'top'){ mode = '';}
									//console.log("                   > ヒストリー登録 > "+mode); 
									window.history.pushState(null, null, siteroot+mode);
								}

								commonAttachEvent();
							},500);		
							
							
						}
						
						if(data == null){
							console.log("                   > 読込みに失敗しました"); 
						}
						
						
					});	 //$('#primary').load
					
				},100);		
			},100);
			
		}); //scrollZero
	},500);	
	
	
}



$(function(){
	
	topFn.pageLoading = pageLoading;
	topFn.return_scroll = return_scroll;
	topFn.no_scroll = no_scroll;
	
	topFn.pageScroll = pageScroll;
	topFn.pageScrollZero = pageScrollZero;
	
	//console.log("pagezezo");
	pageScrollZero();
	
	
	
	
	$('.pcDevice .hexagon map area , .pcDevice .hexagonBtn map area').mouseenter(function(){
    	$(this).parent().parent().addClass('h');
		$(this).parent().parent().find('.hexagonInner').stop().animate( { opacity: '0.75',}, { duration: 500, easing: 'easeOutCubic', } );
	}).mouseleave(function(){
    	$(this).parent().parent().removeClass('h');
		$(this).parent().parent().find('.hexagonInner').stop().animate( { opacity: '0',}, { duration: 500, easing: 'easeOutCubic', } );
	});
	
	
	$('.spMenuBtn').on(mytap,function(){
		fixedMenuAct();
	});
	
	$('.spMenuCloseBtn').on(mytap,function(){
		if(fixedMenuFlag){
			fixedMenuAct();
		}
	});
	
	$('.goUp area').on(mytap,function(e){
		e.preventDefault();
        pageScrollZero();
    });
	
	$('#coverMenu2 .globalMenu a').on(mytap,function(e){
		e.preventDefault();
		var url = $(this).attr('href');
	    pageMove(url,'cover');
    });
	
	
	
	
	
	
	window.onpopstate=function(e){
		
		var targeturl = window.location.pathname;
		//console.log('Browser Btn Action > 移動先 > '+targeturl);
		
		
		
		
		
	    if(targeturl.match(/works/) && !incContentsActionFlag){
			
			//console.log('                   > works切り替え');	
			
			incContentsActionFlag = true;
			consoleLogDump('incContentsActionFlag',true);
		   
		   e.preventDefault();
		   //alert(window.location.pathname);
		   //console.log('onpopstate=ブラウザボタンクリック： '+ window.location.pathname);
		
		  
		   
		
		   if(targeturl == '/works/' || targeturl == '/works' ){
			   //console.log('                   > worksトップへ戻る');
			   incContentsClose('back');
			   
		   }else{
				
				
				var idcheck = targeturl.split("/");
				var clone = 'item_'+idcheck[2];
				//incContents(file,clone);
				 
				incContents(targeturl,clone,'pager','back');
						
			   //console.log(clone);
		   }
		   
		}else{
			
			
			
			
			console.log('                   > ページ移動 > url='+targeturl);
			if(targeturl == '/'){ mode = 'top'; addclass = 'home';}
			if(targeturl == '/works'){ mode = 'works'; addclass = '';}
			if(targeturl == '/about'){ mode = 'about'; addclass = '';}
			if(targeturl == '/contact'){ mode = 'contact'; addclass = 'form';}
			if(targeturl == '/wanted'){ mode = 'wanted'; addclass = 'form';}
			if(targeturl == '/entry'){ mode = 'entry'; addclass = 'form';}
			if(targeturl == '/fonts'){ mode = 'fonts'; addclass = '';}
			
			contentsAjMove(targeturl,mode,addclass,'browserNav')
			
		}
		
		 //if incContentsActionFlag
	   
       
    }
	
	
	commonAttachEvent();
});


function commonAttachEvent(){
	
	$("a.pageMove , header a , footer a , #coverMenu .globalMenu a, .siteLogo a").off(mytap);


	$('a.pageMove , header a , footer a , #coverMenu .globalMenu a, .siteLogo a').on(mytap,function(e){
		
		
		var target = $(this).attr('target');
		if(!target){
			
			
			
			e.preventDefault();
			var url = $(this).attr('href');
			
			var mode = $(this).attr('data-mode');
			var addclass = $(this).attr('data-addclass');
			
			//ajax遷移
			contentsAjMove(url,mode,addclass)
			return false; 
			
			//初期ver
			//pageMove(url);
		}
    });
	
}

function consoleLogDump(mode,flag){
	if(mode == 'incContentsActionFlag'){
		if(flag){
			//console.log('▼ global incContentsActionFlag：true ');
		}else{
			//console.log('▲ global incContentsActionFlag：false ');
		}
	
	}
}







