--- a/src/js/utils.js Fri Sep 25 14:45:38 2015 +0200
+++ b/src/js/utils.js Fri Oct 02 11:27:17 2015 +0200
@@ -33,7 +33,7 @@
var list = [],
positions = [],
text = _text.replace(/(^\s+|\s+$)/g,'');
-
+
function addToList(_rx, _startHtml, _endHtml) {
while(true) {
var result = _rx.exec(text);
@@ -52,11 +52,11 @@
positions.push(end);
}
}
-
+
if (_regexp) {
addToList(_regexp, '<span class="Ldt-Highlight">', '</span>');
}
-
+
addToList(/(https?:\/\/)?[\w\d\-]+\.[\w\d\-]+\S+/gm, function(matches) {
return '<a href="' + (matches[1] ? '' : 'http://') + matches[0] + '" target="_blank">';
}, '</a>');
@@ -65,19 +65,19 @@
}, '</a>');
addToList(/\*[^*]+\*/gm, '<b>', '</b>');
addToList(/[\n\r]+/gm, '', '<br />');
-
+
IriSP._(_extend).each(function(x) {
addToList.apply(null, x);
});
-
+
positions = IriSP._(positions)
.chain()
.uniq()
.sortBy(function(p) { return parseInt(p); })
.value();
-
+
var res = "", lastIndex = 0;
-
+
for (var i = 0; i < positions.length; i++) {
var pos = positions[i];
res += text.substring(lastIndex, pos);
@@ -95,11 +95,11 @@
}
lastIndex = pos;
}
-
+
res += text.substring(lastIndex);
-
+
return res;
-
+
};
IriSP.log = function() {
@@ -112,11 +112,27 @@
jqSel.attr("draggable", "true").on("dragstart", function(_event) {
var d = (typeof data === "function" ? data.call(this) : data);
try {
+ if (d.html === undefined && d.uri && d.text) {
+ d.html = '<a href="' + d.uri + '">' + d.text + '</a>';
+ }
IriSP._(d).each(function(v, k) {
- if (v) {
+ if (v && k != 'text' && k != 'html') {
_event.originalEvent.dataTransfer.setData("text/x-iri-" + k, v);
}
});
+ if (d.uri && d.text) {
+ _event.originalEvent.dataTransfer.setData("text/x-moz-url", d.uri + "\n" + d.text.replace("\n", " "));
+ _event.originalEvent.dataTransfer.setData("text/plain", d.text + " " + d.uri);
+ }
+ // Define generic text/html and text/plain last (least
+ // specific types, see
+ // https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_operations#Drag_Data)
+ if (d.html !== undefined) {
+ _event.originalEvent.dataTransfer.setData("text/html", d.html);
+ }
+ if (d.text !== undefined && ! d.uri) {
+ _event.originalEvent.dataTransfer.setData("text/plain", d.text);
+ }
} catch(err) {
_event.originalEvent.dataTransfer.setData("Text", JSON.stringify(d));
}
@@ -130,3 +146,59 @@
_this[p] = noop;
});
};
+
+IriSP.timestamp2ms = function(t) {
+ // Convert timestamp to numeric value
+ // It accepts the following forms:
+ // [h:mm:ss] [mm:ss] [ss]
+ var s = t.split(":").reverse();
+ while (s.length < 3) {
+ s.push("0");
+ }
+ return 1000 * (3600 * parseInt(s[2], 10) + 60 * parseInt(s[1], 10) + parseInt(s[0], 10));
+};
+
+IriSP.setFullScreen= function(elem, value) {
+ // Set fullscreen on or off
+ if (value) {
+ if (elem.requestFullscreen) {
+ elem.requestFullscreen();
+ } else if (elem.mozRequestFullScreen) {
+ elem.mozRequestFullScreen();
+ } else if (elem.webkitRequestFullscreen) {
+ elem.webkitRequestFullscreen();
+ } else if (elem.msRequestFullscreen) {
+ elem.msRequestFullscreen();
+ }
+ } else {
+ if (document.exitFullscreen) {
+ document.exitFullscreen();
+ } else if (document.msExitFullscreen) {
+ document.msExitFullscreen();
+ } else if (document.mozCancelFullScreen) {
+ document.mozCancelFullScreen();
+ } else if (document.webkitExitFullscreen) {
+ document.webkitExitFullscreen();
+ }
+ }
+};
+
+IriSP.isFullscreen = function() {
+ return (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement);
+};
+
+IriSP.getFullscreenElement = function () {
+ return (document.fullscreenElement
+ || document.webkitFullscreenElement
+ || document.mozFullScreenElement
+ || document.msFullscreenElement
+ || undefined);
+};
+
+IriSP.getFullscreenEventname = function () {
+ return ((document.exitFullscreen && "fullscreenchange")
+ || (document.webkitExitFullscreen && "webkitfullscreenchange")
+ || (document.mozExitFullScreen && "mozfullscreenchange")
+ || (document.msExitFullscreen && "msfullscreenchange")
+ || "");
+};