/*イメージビューワー*/
//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") {
  			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(); // ドラッグスクロール設定
			$('#imagemodal').modal('open');
			$('#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();
			//小さい画像
			if(width<(windowW - 50) && height<(windowH-1000)){
				$("#imgmodal").css('height',height+"px");
				$("#imgmodal").css('width',width+"px");
				$("#imagewrap").css('height',height+"px");
				$("#imagemodal").css('height',height+100+"px");
				$("#imagewrap").css('width',width+"px");
				$("#imagemodal").css('width',width+"px");
				$("#imagemodal").css('margin-top',(windowH /2) - (height / 2) +"px");
			}else{
				$("#imagemodal").css('margin-top',0);
				var aspect = width/height;
				if (aspect < 2.8 && aspect > 0.3){
					//moderate
					if(windowW > windowH){
						//画面が横長(縦幅基準)
						$("#imgmodal").css('height',windowH/1.2-70+"px");
						var imgW = (windowH/1.2-70)/height*width;
						$("#imgmodal").css('width',imgW+"px");
						$("#imagewrap").css('height',windowH/1.2-60+"px");
						$("#imagemodal").css('height',windowH/1.2+"px");
						$("#imagewrap").css('width',imgW+50+"px");
						$("#imagemodal").css('width',imgW+50+"px");
					}else{
						//画面が縦長・正方形(横幅基準)
						$("#imgmodal").css('width',windowW/1.2-30+"px");
						var imgH = (windowW/1.2-30)/width*height;
						$("#imgmodal").css('height',imgH+"px");
						$("#imagewrap").css('width',windowW/1.2+"px");
						$("#imagemodal").css('width',windowW/1.2+"px");
						$("#imagewrap").css('height',imgH+60+"px");
						$("#imagemodal").css('height',imgH+120+"px");
					}
				}else{
					//極端な画像
					if(height > width){
						//縦長
						$("#imgmodal").css('height',windowH-60+"px");
						var imgW = (windowH-50)/height*width;
						$("#imgmodal").css('width',imgW+"px");
						$("#imagewrap").css('height',windowH-50+"px");
						$("#imagemodal").css('height',windowH+"px");
						$("#imagewrap").css('width',imgW+50+"px");
						$("#imagemodal").css('width',imgW+50+"px");
					}else{
						//横長・正方形
						$("#imgmodal").css('width',windowW-30+"px");
						var imgH = (windowW-50)/width*height;
						$("#imgmodal").css('height',imgH+"px");
						$("#imagewrap").css('width',windowW+"px");
						$("#imagemodal").css('width',windowW+"px");
						$("#imagewrap").css('height',imgH+60+"px");
						$("#imagemodal").css('height',imgH+120+"px");
					}
				}
			}
			
		}
		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();
			//小さい画像
			if(width<(windowW - 50) && height<(windowH-1000)){
				$("#imgmodal").css('height',height+"px");
				$("#imgmodal").css('width',width+"px");
				$("#imagewrap").css('height',height+"px");
				$("#imagemodal").css('height',height+100+"px");
				$("#imagewrap").css('width',width+"px");
				$("#imagemodal").css('width',width+"px");
				$("#imagemodal").css('margin-top',(windowH /2) - (height / 2) +"px");
			}else{
				$("#imagemodal").css('margin-top',0);
				var aspect = width/height;
				if (aspect < 2.8 && aspect > 0.3){
					//moderate
					if(windowW > windowH){
						//画面が横長(縦幅基準)
						$("#imgmodal").css('height',windowH/1.2-70+"px");
						var imgW = (windowH/1.2-70)/height*width;
						$("#imgmodal").css('width',imgW+"px");
						$("#imagewrap").css('height',windowH/1.2-60+"px");
						$("#imagemodal").css('height',windowH/1.2+"px");
						$("#imagewrap").css('width',imgW+50+"px");
						$("#imagemodal").css('width',imgW+50+"px");
					}else{
						//画面が縦長・正方形(横幅基準)
						$("#imgmodal").css('width',windowW/1.2-30+"px");
						var imgH = (windowW/1.2-30)/width*height;
						$("#imgmodal").css('height',imgH+"px");
						$("#imagewrap").css('width',windowW/1.2+"px");
						$("#imagemodal").css('width',windowW/1.2+"px");
						$("#imagewrap").css('height',imgH+60+"px");
						$("#imagemodal").css('height',imgH+120+"px");
					}
				}else{
					//極端な画像
					if(height > width){
						//縦長
						$("#imgmodal").css('height',windowH-60+"px");
						var imgW = (windowH-50)/height*width;
						$("#imgmodal").css('width',imgW+"px");
						$("#imagewrap").css('height',windowH-50+"px");
						$("#imagemodal").css('height',windowH+"px");
						$("#imagewrap").css('width',imgW+50+"px");
						$("#imagemodal").css('width',imgW+50+"px");
					}else{
						//横長・正方形
						$("#imgmodal").css('width',windowW-30+"px");
						var imgH = (windowW-50)/width*height;
						$("#imgmodal").css('height',imgH+"px");
						$("#imagewrap").css('width',windowW+"px");
						$("#imagemodal").css('width',windowW+"px");
						$("#imagewrap").css('height',imgH+60+"px");
						$("#imagemodal").css('height',imgH+120+"px");
					}
				}
			}
		}
		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) {
		console.log(arg);
	})
}