﻿var exifData = function() {
	var interval;
	this.open = function(data) {
		if (interval) clearInterval(interval);
		document.getElementById("exif").style.height = "1px";
		document.getElementById("exif").innerHTML = makeTag(data);
		interval = setInterval(move, 20);
	}
	this.close = function() {
		if (interval) clearInterval(interval);
		document.getElementById("exif").style.height = "1px";
		document.getElementById("exif").innerHTML = "";
	}
	function move() {
		var nowH = document.getElementById("exif").offsetHeight;
		var move = Math.floor((185 - nowH) * 0.2);
		document.getElementById("exif").style.height = (nowH + move) + "px";
		if (1 > Math.abs(move)) {
			document.getElementById("exif").style.height = 185 + "px";
			clearInterval(interval);
		}
	}
	
	function makeTag(data) {
		var str = "<h2>Exif</h2>";
		str += " カメラ : " + data.model + "<br />";
		str += " 撮影日 : " + convertdate(data.date) + "<br />";
		var lengthtmp = convertstr(data.length);
		str += " 焦点距離 : " + ((lengthtmp == 0)? "none cpu": (lengthtmp + " mm")) + "<br />";
		var speedtmp = 1 / convertstr(data.speed);
		str += " シャッター : " + ((speedtmp >= 1)? ("1/" + Math.floor(speedtmp)): Math.ceil(1 / speedtmp)) + " 秒<br />";
		var ftmp = convertstr(data.f);
		str += " 絞り : " + ((ftmp == 0)? "none cpu": ("f " + ftmp)) + "<br />";
		str += " 露出補正 : " + (Math.round(convertstr(data.ev) * 100) / 100) + "<br />";
		str += " ISO : " + data.iso + "<br />";
		return str;
	}
	function convertstr(str) {
		var rval = str.match(/[\d\.-]+/gi);
		return Number(rval[0]) / Number(rval[1]);
	}
	function convertdate(str) {
		var rval = str.match(/[\d:]+/i);
		return rval[0].replace(/:/g, "/");
	}
}
var exif = new exifData();