
//loading
var loadEndFlag = false;

//sp
var spFlag = false;
var spMenuFlag = false;
var globalMenu = false;

var scrollPos = 0;
var coverScrollPos = 0;

//action 
var actionFlag = false;
var resizeFlag = false;
var hashFlag = false;

//Custom global var window size
var winHeight = window.innerHeight;
var winWidth = window.innerWidth;

// Default global var
var ua;
var isOS;
var isDevice;
var clickevent;
var isSize;
var isMini;
var isTouchDevice = false;

var globalMode = 'normal';
var contentsMax = 970;
var spsize = 750;
var contentsSize;
var lang = "en";

//Device
var ua = navigator.userAgent.toLowerCase();
var isWindows = /windows/.test(ua);
var isMac = /mac/.test(ua);
var isIPhone = /i(phone|pod)/.test(ua);
var isIPad = /ipad/.test(ua);
var isIOS = isIPhone || isIPad;
var isAndroid = /android/.test(ua);
var isAndroidMobile = /android(.+)?mobile/.test(ua);
var isIE = /msie/.test(ua);
var isFirefox = /firefox/.test(ua);
var isChrome = /chrome/.test(ua);
var isCrios = /crios/.test(ua);
var isSafari = /safari/.test(ua);
var isOpera = /opera/.test(ua);
var isOperaMobile = /opera mobi/.test(ua);
var isOperaMini = /opera mini/.test(ua);
var isSmartphone = isIPhone || isAndroidMobile;
var isPC = !isIOS && !isAndroid;

var chkTouch = ('ontouchstart' in window);



if(isSmartphone){
	isDevice = "sp";
	isTouchDevice = true;
}else if(isIOS){
	isDevice = "ios";
	isTouchDevice = true;
	
}else{
	isDevice = "pc";
}

//os
if(isIOS){
	isOS = "ios";
}else if(isAndroid){
	isOS = "android";
}else if(isMac){
	isOS = "mac";
}else if(isWindows){
	isOS = "windows";
}

//Browser
var ua = navigator.userAgent;
var isIE = ua.match(/msie/i),
	isIE6 = ua.match(/msie [6.]/i),
	isIE7 = ua.match(/msie [7.]/i),
	isIE8 = ua.match(/msie [8.]/i),
	isIE9 = ua.match(/msie [9.]/i),
	isIE10 = ua.match(/msie [10.]/i),
	isIE11 = ua.match(/msie [11.]/i);

	if (ua.match("MSIE") || ua.match("Trident")) { 
		//IE
		$('html').addClass('uaIE');
	}else if (ua.match('Firefox')) {
		//Firefoxでの処理
		$('html').addClass('uaFF');
	}


//auto add class + var set
$.fn.autoClass=function(){
	
	if(winWidth < spsize){
		
	
		spFlag = true;
	
	}else {
		
		spFlag = false;
		
		
	}
	
	
	
}







$(window).on("orientationchange",function(){ 

});

$(window).scroll(function (){

});



var initTime = false;
$(window).resize(function() {
	winHeight = window.innerHeight;
	winWidth = window.innerWidth;

	if (initTime !== false) {
        clearTimeout(initTime);
    }
    initTime = setTimeout(function() {
		
		$(window).autoClass();
	}, 10);

});







$.fn.initvar=function(flag){
	 
	var topID = $('html').attr('id');
	
	if(topID){
		var topIDFlag = topID.indexOf("siteTop");
		if(topIDFlag == 0){ siteTop = true; }
	}
	
	
	if(isTouchDevice || isIPad){
		$("html").addClass('touchDevice');
		$("html").removeClass('pcDevice');
		
	}else {
		$("html").addClass('pcDevice');
		$("html").removeClass('touchDevice');
		
	}
	
	
	
	
}

var imgList_works=new Array();

var totalCnt_works=0;
		var loadPer_works=0;
		var loopTimer_works;


		function loadStartWorks(){
			//console.log('loadStartWorks');
			
			totalCnt_works=imgList_works.length;
					
			if(totalCnt_works>0){
				loadPer_works=0;
				for(var i=0;i<totalCnt_works;i++){
					var src=imgList_works[i];
						
						
					$('<img/>')
						.attr('src',src).data("index",i)
						.imagesLoaded(function(){
							var s=$(this).attr("src");
							imgList_works[$(this).data("index")]=null;
						});
				}
			
				loopTimer_works=setInterval(loadLoopWorks,30);
			}else{
				loadEndWorks();
			}
		}
		 
		
		function loadLoopWorks(){
			var per=1-(imgList_works.getCount()/totalCnt_works);
			
			//$('#loading_count').html(Math.ceil(per*100)+'%');
			
			
			
			loadPer_works+=(per-loadPer_works)*.1;
			//console.log('works load = '+Math.ceil(per*100)+'%');
			
			if(per>.99){
				//終了
				loadPer_works=1;
				loadEndWorks();
			}
		}
		
		function loadEndWorks(){
			
			clearInterval(loopTimer_works);
			
			console.log('works thumb load finished');
			
			$('#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');

				window.history.pushState(null, null, siteroot+'works');

				commonAttachEvent();
			},500);		
			
			
		}



$(function(){

	$(window).initvar();
	$(window).autoClass();
	
	//loading cover object
		//$('body').prepend('<div id="loader"><div id="loadingAnim"></div><div id="loading_count"></div></div>');
	
	//loading check image
		var addList=[];
		var imgList=new Array();
		var totalCnt=0;
		var loadPer=0;
		var loopTimer;
	
		
		
	
		
		setTimeout(function(){
			loadInit();
		},200);
		
		function loadInit(){
			//$("body").css({position:"fixed"});
				
			searchImg();
			addImg();
			loadStart();
		}
		
		function searchImg(){
			
			var addSrcList=new Array();
			$("img").each(function(){
				var img=$(this).attr("src");
				if(arryCheck(addSrcList,img)){
					addSrcList.push(img);
					imgList.push(img);
				}
				
				
			});
			
			var addStyleList=new Array();
			$("div,a,span").each(function(){
				var bg=$(this).css("backgroundImage");
				
				if(bg!="none" && bg.indexOf("(")!=-1){
					var imgSrc=bg.substring(bg.indexOf("(")+1,bg.lastIndexOf(")")).replace( /\"/g , "" );
					
					if(arryCheck(addStyleList,imgSrc)){
						addStyleList.push(imgSrc);
						imgList.push(imgSrc);
						
						//console.log(imgSrc);
						
						
					}
				}
				
			
				
			});
			
		}
		
		function arryCheck(arry,src){
			var ret=true;
			for(var i=0;i<arry.length;i++){
				if(arry[i]==src){
					ret=false;
					break;
				}
			}
			
			return(ret);
		}
		
		function imgRegist(src){
			imgList.push(src);
		}
		
		function addImg(){
			for(var i=0;i<addList.length;i++){
				imgList.push(addList[i]);
			}
			
		}
		
		function loadStart(){
			//console.log('loadStart');
			
			totalCnt=imgList.length;
					
			if(totalCnt>0){
				loadPer=0;
				for(var i=0;i<totalCnt;i++){
					var src=imgList[i];
					
						//console.log(src);
						
						
					$('<img/>')
						.attr('src',src).data("index",i)
						.imagesLoaded(function(){
							var s=$(this).attr("src");
							imgList[$(this).data("index")]=null;
						});
				}
			
				loopTimer=setInterval(loadLoop,30);
			}else{
				loadEnd();
			}
		}
		 
		
		function loadLoop(){
			var per=1-(imgList.getCount()/totalCnt);
			
			//$('#loading_count').html(Math.ceil(per*100)+'%');
			
			
			
			loadPer+=(per-loadPer)*.1;
			if(per>.99){
				setTimeout(function(){
					$('#loading_count').fadeOut(1000);
					$('#loadingAnim').fadeOut(1000);
					
				},200);
				loadPer=1;
				loadEnd();
			}
		}
		
		function loadEnd(){
			
			clearInterval(loopTimer);
			//$("body").attr("style","").css({overflowY:"scroll"});
			loaderOut();
		}
		
		function loaderOut(){
			
			$('#container').addClass("open");
			$('#siteLogoPC').addClass("open");
			$('#siteLogoSP').addClass("open");
			$('#globalHeader').addClass("open");
			
			
				
				
					setTimeout(function(){
						
						
						$('#loader').animate({opacity:0},500,"easeOutCubic",function(){
							loaderDelete();
							loadEndFlag = true;
							
							//ページ毎のjsにfunctionを必ず記述
							pageLoading();
							
							//console.log('loader off (init)');
							
							$('header h1.logo').addClass('in');
							//$('header h1.logo').addClass('fix');アニメ停止
							
							
							//Emblem
							//console.log('loader out page visible :EMBLEM_BG.modeChange(top) ');
							//EMBLEM_BG.modeChange("top");
				
							
							
						});
						
						
						
						
						
					},1000);
					
					$(window).setvar();
					
					var visitHash = location.hash;
					if(visitHash){
						setTimeout(function(){
								visitHash += 'Anc';	
								pageScroll($(visitHash),1);
								hashFlag = true;
								//console.log(visitHash);
						},500);
					}
				
			
		}
		function loaderDelete(){
			$("#loader").css({display:"none"}).remove();
		}
		
	//loading check image 
	
	
	
	
	
});





//Array Ex (loading use)
Array.prototype.remove = function(element){
	for(var i=0;i<this.length;i++){
		if(this[i]==element){
			this.splice(i,1);
		}
	}
};
Array.prototype.getCount = function(){
	var ret=0
	for(var i=0;i<this.length;i++){
		if(this[i]){
			ret++;
		}
	}
	return(ret);
};
Array.prototype.sortOn=function(name){
	this.sort(
		function(a,b){
			var aName = a[name];
			var bName = b[name];
			if( aName < bName ) return -1;
			if( aName > bName ) return 1;
			return 0;
		 }
	);
}
Array.prototype.sortOn=function(name){
	this.sort(
		function(a,b){
			var aName = a[name];
			var bName = b[name];
			if( aName < bName ) return -1;
			if( aName > bName ) return 1;
			return 0;
		 }
	);
}
Array.prototype.getIndex=function(element){
	var ret=-1;
	for(var i=0;i<this.length;i++){
		if(this[i]==element){
			ret=i;
			break;
		}
	}
	return(ret);
}
