+
+function start_swipe(e)
+{
+ swiping = true;
+ swipe_start_x = e.changedTouches[0].pageX;
+}
+
+function end_swipe(e)
+{
+ if (swiping) {
+ var new_x = (e.changedTouches[0].pageX - swipe_start_x);
+ if (new_x < -window.innerWidth / 4 && can_go_next()) {
+ set_swipe_pos(-window.innerWidth, "transform 0.1s ease-out");
+ setTimeout(function() { go_next(); }, 100);
+ } else if (new_x > window.innerWidth / 4 && can_go_previous()) {
+ set_swipe_pos(window.innerWidth, "transform 0.1s ease-out");
+ setTimeout(function() { go_previous(); }, 100);
+ } else {
+ set_swipe_pos(0, "transform 0.1s ease-out");
+ }
+ swiping = false;
+ }
+}
+
+function swipe(e)
+{
+ if (swiping) {
+ var new_x = (e.changedTouches[0].pageX - swipe_start_x);
+ set_swipe_pos(new_x, null);
+ }
+}
+
+window.onload = function() {
+ relayout();
+ setInterval(check_for_hash_change, 1000);
+
+ document.addEventListener('touchstart', start_swipe, false);
+ document.addEventListener('touchend', end_swipe, false);
+ document.addEventListener('touchmove', swipe, false)
+
+ var body = document.body;
+ body.onresize = function() { relayout(); };
+ body.onkeydown = function(evt) { key_down(evt.keyCode); };
+ body.onkeyup = function(evt) { key_up(evt.keyCode); };
+ body.onhashchange = function() { check_for_hash_change(); };
+ body.onclick = function() { check_for_hash_change(); };
+
+ var previous = document.getElementById('previous');
+ previous.onmousedown = function() { if (can_go_previous()) { set_opacity('previous', global_highlight_opacity); } };
+ previous.onmouseup = function() { if (can_go_previous()) { set_opacity('previous', global_default_opacity); go_previous(); } };
+ previous.onmouseout = function() { if (can_go_previous()) { set_opacity('previous', global_default_opacity); } };
+
+ var next = document.getElementById('next');
+ next.onmousedown = function() { if (can_go_next()) { set_opacity('next', global_highlight_opacity); } };
+ next.onmouseup = function() { if (can_go_next()) { set_opacity('next', global_default_opacity); go_next(); } };
+ next.onmouseout = function() { if (can_go_next()) { set_opacity('next', global_default_opacity); } };
+
+ var close = document.getElementById('close');
+ close.onmousedown = function() { set_opacity('close', global_highlight_opacity); };
+ close.onmouseup = function() { set_opacity('close', global_default_opacity); do_close(); };
+ close.onmouseout = function() { set_opacity('close', global_default_opacity); };
+
+ var options = document.getElementById('options');
+ options.onmousedown = function() { set_opacity('options', global_highlight_opacity); };
+ options.onmouseup = function() { set_opacity('options', global_default_opacity); toggle_optionmenu(); };
+ options.onmouseout = function() { set_opacity('options', global_default_opacity); };
+};
+
+})();