/*イメージビューワー*/
//postのimg.jsとは異なります。
function imgv(id, key, acct_id) {
	$("#imgprog").text(0);
	$('#imgmodal').hide();
	$('#imgmodal').attr('src', '../../img/loading.svg');
	var murl = $("#" + id + "-image-" + key).attr("data-url");
	var type = $("#" + id + "-image-" + key).attr("data-type");
	$("#imagemodal").attr("data-id",id);
	$("#imagemodal").attr("data-acct",acct_id);
	$(document).ready(function() {
		if (type == "image") {
			$('#imagemodal').modal('open');
  			xhr = new XMLHttpRequest;
			xhr.open('GET', murl, true);
			xhr.addEventListener('progress', function (event) {
  			if (event.lengthComputable) {
    			var total=event.total;
				var now=event.loaded;
				var per=now/total*100;
				$("#imgprog").text(Math.floor(per));
  			}
			}, false);
			xhr.addEventListener('loadend', function (event) {
				var total=event.total;
				var now=event.loaded;
				var per=now/total*100;
				$("#imgprog").text(Math.floor(per));
			}, false);
			xhr.send();
			$('#imgmodal').attr('src', murl);
			$('#imagewrap').dragScroll(); // ドラッグスクロール設定
			$('#imgmodal').show();
			$('#imagemodal').attr('data-key', key);
			$('#imagemodal').attr('data-id', id);
		} else if (type == "video" || type == "gifv") {
			$('#video').attr('src', murl);
			$('#videomodal').modal('open');
			$('#imgmodal').show();
		}
		var element = new Image();
		var width;
		element.onload = function() {
			var width = element.naturalWidth;
			var height = element.naturalHeight;
			var windowH = $(window).height();
			var windowW = $(window).width();
			$("#imagemodal").css("bottom","0")
			$("#imagemodal img").css("width","auto")
			if(height<windowH){
				$("#imagemodal").css("height",height+60+"px")
				$("#imagemodal img").css("height","100%")
				if(width>windowW*0.8){
					$("#imagemodal").css("width","80vw")
					$("#imagemodal img").css("width","100%")
					var heightS=windowW*0.8/width*height;
					$("#imagemodal").css("height",heightS+60+"px")
				}else{
					$("#imagemodal").css("width",width+"px")
				}
			}else{
				console.log("long")
				$("#imagemodal img").css("width","auto")
				var widthS=windowH/height*width;
				if(widthS<windowW){
					$("#imagemodal").css("width",widthS+"px")
				}else{
					$("#imagemodal").css("width","100vw")
				}
				
				$("#imagemodal").css("height","100vh")
				$("#imagemodal img").css("height","calc(100vh - 60px)")
			}
			
		}
		if ($("#" + id + "-image-" + (key * 1 + 1)).length == 0) {
			$("#image-next").prop("disabled", true);
		} else {
			$("#image-next").prop("disabled", false);
		}
		if ($("#" + id + "-image-" + (key * 1 - 1)).length == 0) {
			$("#image-prev").prop("disabled", true);
		} else {
			$("#image-prev").prop("disabled", false);
		}
		element.src = murl;
	});
}
//イメージビューワーの送り
function imgCont(type) {
	$("#imgprog").text(0);
	var key = $('#imagemodal').attr('data-key');
	var id = $('#imagemodal').attr('data-id');
	if (type == "next") {
		key++;
	} else if (type == "prev") {
		key = key * 1 - 1;
	}
	var murl = $("#" + id + "-image-" + key).attr("data-url");
	if(murl){
	$('#imgmodal').attr('src', '../../img/loading.svg');
	var type = $("#" + id + "-image-" + key).attr("data-type");
	$(document).ready(function() {
		if (type == "image") {
			xhr = new XMLHttpRequest;
			xhr.open('GET', murl, true);
			xhr.responseType = "arraybuffer";
			xhr.addEventListener('progress', function (event) {
  			if (event.lengthComputable) {
    			var total=event.total;
				var now=event.loaded;
				var per=now/total*100;
				$("#imgprog").text(Math.floor(per));
  			}
			}, false);
			xhr.addEventListener('loadend', function (event) {
				var total=event.total;
				var now=event.loaded;
				var per=now/total*100;
				$("#imgprog").text(Math.floor(per));
			}, false);
			xhr.send();
			$('#imgmodal').attr('src', murl);
			$('#imagewrap').dragScroll(); // ドラッグスクロール設定
			$('#imagemodal').attr('data-key', key);
			$('#imagemodal').attr('data-id', id);
		} else if (type == "video" || type == "gifv") {
			$('#video').attr('src', murl);
			$('#videomodal').modal('open');
		}
		var element = new Image();
		var width;
		element.onload = function() {
			var width = element.naturalWidth;
			var height = element.naturalHeight;
			var windowH = $(window).height();
			var windowW = $(window).width();
			$("#imagemodal").css("bottom","0")
			$("#imagemodal img").css("width","auto")
			if(height<windowH){
				$("#imagemodal").css("height",height+60+"px")
				$("#imagemodal img").css("height","100%")
				if(width>windowW*0.8){
					$("#imagemodal").css("width","80vw")
					$("#imagemodal img").css("width","100%")
					var heightS=windowW*0.8/width*height;
					$("#imagemodal").css("height",heightS+60+"px")
				}else{
					$("#imagemodal").css("width",width+"px")
				}
			}else{
				console.log("long")
				$("#imagemodal img").css("width","auto")
				var widthS=windowH/height*width;
				if(widthS<windowW){
					$("#imagemodal").css("width",widthS+"px")
				}else{
					$("#imagemodal").css("width","100vw")
				}
				
				$("#imagemodal").css("height","100vh")
				$("#imagemodal img").css("height","calc(100vh - 60px)")
			}
		}
		if ($("#" + id + "-image-" + (key * 1 + 1)).length === 0) {
			$("#image-next").prop("disabled", true);
		} else {
			$("#image-next").prop("disabled", false);
		}
		console.log("#" + id + "-image-" + (key * 1 - 1));
		if ($("#" + id + "-image-" + (key * 1 - 1)).length === 0) {
			$("#image-prev").prop("disabled", true);
		} else {
			$("#image-prev").prop("disabled", false);
		}
		element.src = murl;
		
	});
	}
}
//ズームボタン(z:倍率)
function zoom(z) {
	var wdth = $('#imagewrap img').width();
	var wdth = wdth * z;
	$('#imagewrap img').css("width", wdth+"px");
	var hgt = $('#imagewrap img').height();
	var hgt = hgt * z;
	$('#imagewrap img').css("height", hgt+"px");
}
//スマホ対応ドラッグ移動システム
(function() {
	$.fn.dragScroll = function() {
		var target = this;
		$(this).mousedown(function(event) {
			$(this)
				.data('down', true)
				.data('x', event.clientX)
				.data('y', event.clientY)
				.data('scrollLeft', this.scrollLeft)
				.data('scrollTop', this.scrollTop);
			return false;
		}).css({
			'overflow': 'hidden', // スクロールバー非表示
			'cursor': 'move'
		});
		// ウィンドウから外れてもイベント実行
		$(document).mousemove(function(event) {
			if ($(target).data('down') == true) {
				// スクロール
				target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
					event.clientX);
				target.scrollTop($(target).data('scrollTop') + $(target).data('y') -
					event.clientY);
				return false; // 文字列選択を抑止
			}
		}).mouseup(function(event) {
			$(target).data('down', false);
		});
		$(this).on('touchstart', function(event) {
			$(this)
				.data('down', true)
				.data('x', getX(event))
				.data('y', getY(event))
				.data('scrollLeft', this.scrollLeft)
				.data('scrollTop', this.scrollTop);
			return false;
		}).css({
			'overflow': 'hidden', // スクロールバー非表示
			'cursor': 'move'
		}); //指が触れたか検知
		$(this).on('touchmove', function(event) {
			if ($(target).data('down') === true) {
				// スクロール
				console.log($(target).data('x'));
				target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
					getX(event));
				target.scrollTop($(target).data('scrollTop') + $(target).data('y') -
					getY(event));
				return false; // 文字列選択を抑止
			} else {}
		}); //指が動いたか検知
		$(this).on('touchend', function(event) {
			$(target).data('down', false);
		});

		return this;
	}
})(jQuery);

function getX(event) {
	return event.originalEvent.touches[0].pageX;
}

function getY(event) {
	return event.originalEvent.touches[0].pageY;
}
//マウスホイールで拡大
var element = document.getElementById("imagemodal");
element.onmousewheel = function(e) {
	var delta = e.wheelDelta;
	if (delta > 0) {
		zoom(1.1)
	} else {
		zoom(0.9)
	}
}

//当該トゥート
function detFromImg(){
	var id=$("#imagemodal").attr("data-id");
	var acct_id=$("#imagemodal").attr("data-acct");
	$('#imagemodal').modal('close');
	details(id,acct_id);
}
//画像保存
function dlImg(){
	var url=$("#imgmodal").attr("src");
	var electron = require("electron");
	var ipc = electron.ipcRenderer;
	if(localStorage.getItem("savefolder")){
		var save=localStorage.getItem("savefolder");
	}else{
		var save="";
	}
	ipc.send('general-dl', [url,save,false]);
	ipc.on('general-dl-prog', function (event, arg) {
		console.log(arg);
	})
	ipc.on('general-dl-message', function (event, arg) {
		var argC=arg.replace(/\\/g,"\\\\")+"\\\\.";
		Materialize.toast(lang.lang_img_DLDone+arg+'<button class="btn-flat toast-action" onclick="openFinder(\''+argC+'\')">Show</button>', 5000);
	})
}
function openFinder(dir){
	ipc.send('open-finder', dir);
}