initial commit
|
@ -0,0 +1,149 @@
|
||||||
|
/*jshint browser:true */
|
||||||
|
/*eslint-env browser */
|
||||||
|
/*global ADLER32, console, Uint8Array */
|
||||||
|
/*:: declare var ADLER32: ADLER32Module; */
|
||||||
|
var X = ADLER32;
|
||||||
|
|
||||||
|
function console_log(/*:: ...args:Array<any> */) { if(typeof console !== 'undefined') console.log.apply(console, [].slice.call(arguments)); }
|
||||||
|
|
||||||
|
function lpad(s/*:string*/, len/*:number*/, chr/*:?string*/)/*:string*/{
|
||||||
|
var L/*:number*/ = len - s.length, C/*:string*/ = chr || " ";
|
||||||
|
if(L <= 0) return s;
|
||||||
|
return new Array(L+1).join(C) + s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_defined(val/*:any*/, keys/*:Array<string>*/)/*:boolean*/ {
|
||||||
|
if(typeof val === "undefined") return false;
|
||||||
|
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# buffer to string; IE String.fromCharCode.apply limit, manual chunk */
|
||||||
|
/*::
|
||||||
|
type ArrayLike = any;
|
||||||
|
type Stringifier = {(d:ArrayLike):string};
|
||||||
|
*/
|
||||||
|
function make_chunk_buf_to_str(BType/*:function*/)/*:Stringifier*/ {
|
||||||
|
return function(data/*:any*/)/*:string*/ {
|
||||||
|
var o = "", l = 0, w = 10240, L = data.byteLength/w;
|
||||||
|
for(; l<L; ++l) o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w,l*w+w)))/*:any*/));
|
||||||
|
o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w)))/*:any*/));
|
||||||
|
return o;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/*# buffer to binary string */
|
||||||
|
var bstrify/*:Stringifier*/ = make_chunk_buf_to_str(typeof Uint8Array !== 'undefined' ? Uint8Array : Array);
|
||||||
|
|
||||||
|
/*# readAsBinaryString support */
|
||||||
|
var rABS/*:boolean*/ = typeof FileReader !== 'undefined' && is_defined(FileReader, ['prototype', 'readAsBinaryString']);
|
||||||
|
var userABS/*:HTMLInputElement*/ = (document.getElementsByName("userabs")[0]/*:any*/);
|
||||||
|
if(!rABS) {
|
||||||
|
userABS.disabled = true;
|
||||||
|
userABS.checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyToClipboard(text){
|
||||||
|
var dummy = document.createElement("input");
|
||||||
|
document.body.appendChild(dummy);
|
||||||
|
dummy.setAttribute('value', text);
|
||||||
|
dummy.select();
|
||||||
|
document.execCommand("copy");
|
||||||
|
document.body.removeChild(dummy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*## Process Result */
|
||||||
|
/*:: declare class HTMLPreElement extends HTMLElement { innerText?:string; } */
|
||||||
|
function process_value(val/*:ADLER32Type*/) {
|
||||||
|
var output = [];
|
||||||
|
/*output[0] = "Signed : " + val;
|
||||||
|
output[1] = "Unsigned : " + (val>>>0);
|
||||||
|
*/
|
||||||
|
|
||||||
|
var ergebnis = lpad((val>>>0).toString(16),8,'0')
|
||||||
|
|
||||||
|
|
||||||
|
copyToClipboard(ergebnis);
|
||||||
|
|
||||||
|
output[2] = "Rechnungsnummer: " + ergebnis;
|
||||||
|
|
||||||
|
var out/*:HTMLPreElement*/ = (document.getElementById('out')/*:any*/);
|
||||||
|
var o = output.join("\n");
|
||||||
|
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||||
|
else out.innerText = o;
|
||||||
|
console_log("output", new Date());
|
||||||
|
}
|
||||||
|
/*## Raw Text */
|
||||||
|
var dotxt/*:HTMLInputElement*/ = (document.getElementById('dotext')/*:any*/);
|
||||||
|
dotxt.onclick = function() {
|
||||||
|
|
||||||
|
var txt2 = document.getElementById('nr').value + "-" + document.getElementById('date').value + "-" + document.getElementById('job').value;
|
||||||
|
|
||||||
|
// alert(txt2);
|
||||||
|
|
||||||
|
var txt/*:HTMLTextAreaElement*/=(document.getElementById('rawdata')/*:any*/);
|
||||||
|
console_log("onload", new Date());
|
||||||
|
|
||||||
|
var wb/*:ADLER32Type*/ = X.str(txt2);
|
||||||
|
|
||||||
|
|
||||||
|
process_value(wb);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*# HTML5 */
|
||||||
|
|
||||||
|
var readcb = function(e/*:Event*/) {
|
||||||
|
console_log("onload", new Date(), rABS, false);
|
||||||
|
var target/*:FileReader*/ = (e.target/*:any*/);
|
||||||
|
var data = target.result;
|
||||||
|
var val/*:ADLER32Type*/ = rABS ? X.bstr(/*::(*/data/*:: :any)*/) : X.str(bstrify(data));
|
||||||
|
process_value(val);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*## File Input */
|
||||||
|
var handle_file = function(e/*:Event*/) {
|
||||||
|
rABS = userABS.checked;
|
||||||
|
var otarget/*:HTMLInputElement*/ = (e.target/*:any*/);
|
||||||
|
var files/*:FileList*/ = otarget.files;
|
||||||
|
var f/*:File*/ = files[0];
|
||||||
|
|
||||||
|
var reader/*:FileReader*/ = new FileReader();
|
||||||
|
reader.onload = readcb;
|
||||||
|
|
||||||
|
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||||
|
else reader.readAsArrayBuffer(f);
|
||||||
|
};
|
||||||
|
|
||||||
|
var xlf/*:HTMLInputElement*/ = (document.getElementById('xlf')/*:any*/);
|
||||||
|
if(xlf.addEventListener) xlf.addEventListener('change', handle_file, false);
|
||||||
|
|
||||||
|
/*## Drag and Drop File */
|
||||||
|
var handle_drop/*:EventHandler*/ = (function(e/*:DragEvent*/) {
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
rABS = userABS.checked;
|
||||||
|
if(!e.dataTransfer) return;
|
||||||
|
var files/*:FileList*/ = e.dataTransfer.files;
|
||||||
|
var f/*:File*/ = files[0];
|
||||||
|
|
||||||
|
var reader/*:FileReader*/ = new FileReader();
|
||||||
|
reader.onload = readcb;
|
||||||
|
|
||||||
|
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||||
|
else reader.readAsArrayBuffer(f);
|
||||||
|
}/*:any*/);
|
||||||
|
|
||||||
|
var handle_drag/*:EventHandler*/ = (function (e/*:DragEvent*/) {
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||||
|
}/*:any*/);
|
||||||
|
|
||||||
|
var drop/*:HTMLDivElement*/ = (document.getElementById('drop')/*:any*/);
|
||||||
|
if(drop.addEventListener) {
|
||||||
|
drop.addEventListener('dragenter', handle_drag, false);
|
||||||
|
drop.addEventListener('dragover', handle_drag, false);
|
||||||
|
drop.addEventListener('drop', handle_drop, false);
|
||||||
|
}
|
After Width: | Height: | Size: 3.9 MiB |
After Width: | Height: | Size: 4.5 MiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 72 KiB |
|
@ -0,0 +1,36 @@
|
||||||
|
#h1{
|
||||||
|
text-align:center;
|
||||||
|
padding-top:50px;
|
||||||
|
font-size:250%;
|
||||||
|
color:black;
|
||||||
|
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
#h2{
|
||||||
|
text-align:center;
|
||||||
|
padding-top:20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#h3{
|
||||||
|
padding-top:5%;
|
||||||
|
text-align:center;
|
||||||
|
font-size:100%;
|
||||||
|
color:black;
|
||||||
|
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabelle{
|
||||||
|
align="center"
|
||||||
|
border="10"
|
||||||
|
color:white;
|
||||||
|
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
align:center;
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
text-underline: none;
|
||||||
|
font-family: Helvetica;
|
||||||
|
}
|
||||||
|
|
After Width: | Height: | Size: 4.6 KiB |
|
@ -0,0 +1,57 @@
|
||||||
|
/*!
|
||||||
|
* Start Bootstrap - Half Slider (https://startbootstrap.com/template-overviews/half-slider)
|
||||||
|
* Copyright 2013-2017 Start Bootstrap
|
||||||
|
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-half-slider/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.carousel-item {
|
||||||
|
height: 65vh;
|
||||||
|
min-height: 300px;
|
||||||
|
background: no-repeat center center scroll;
|
||||||
|
-webkit-background-size: cover;
|
||||||
|
-moz-background-size: cover;
|
||||||
|
-o-background-size: cover;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.embed-responsive {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.embed-responsive .embed-responsive-item,
|
||||||
|
.embed-responsive iframe,
|
||||||
|
.embed-responsive embed,
|
||||||
|
.embed-responsive object,
|
||||||
|
.embed-responsive video {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.embed-responsive-16by9 {
|
||||||
|
padding-bottom: 56.25%;
|
||||||
|
}
|
||||||
|
.embed-responsive-4by3 {
|
||||||
|
padding-bottom: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vid-border{
|
||||||
|
position: relative;
|
||||||
|
height: 480px;
|
||||||
|
width: 854px;
|
||||||
|
border: 5px solid black;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
#vid {
|
||||||
|
position: absolute;
|
||||||
|
top:-5px;
|
||||||
|
left:-5px;
|
||||||
|
height: 480px;
|
||||||
|
width: 854px;
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>TLC WebView CDS</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body text="#000000" bgcolor="#d3d3d3" link="#FF0000" alink="#FF0000" vlink="#FF0000">
|
||||||
|
<link rel="stylesheet" type="text/css" href="design.css">
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
|
||||||
|
<meta http-equiv="refresh" content="20" >
|
||||||
|
<div id="h1">
|
||||||
|
  TLC WebView CDS
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div id="tabelle">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"><a href="data/TLC01.jpg"><img src="data/TLC01.jpg" alt="TLC01" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href="data/TLC02.jpg"><img src="data/TLC02.jpg" alt="TLC02" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC03.gif" alt="TLC03" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href="data/TLC04.jpg"><img src="data/TLC04.jpg" alt="TLC04" width="328" height="246" /></a> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"> TLC01 - Salmenkopf, Freistett <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC01.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC02 - Salmenkopf, Freistett <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC02.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC03 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC04 - Demo <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC04.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC05.gif" alt="TLC05" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC06.gif" alt="TLC06" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC07.gif" alt="TLC07" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC08.gif" alt="TLC08" width="328" height="246" /></a> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"> TLC05 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC06 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC07 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC08 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="h2">
|
||||||
|
<a href="https://services.schuttercloud.com/slider.html">Slider</a>
|
||||||
|
<br><br>
|
||||||
|
Version 0.3 <br> <br>
|
||||||
|
<a href="https://coptersicht.de/index.php/impressum/">Impressum</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="clipboard.min.js"></script>
|
||||||
|
<script>
|
||||||
|
var btns = document.querySelectorAll('button');
|
||||||
|
var clipboard = new Clipboard(btns);
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
clipboard.on('error', function(e) {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,172 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>TLC WebView CDS</title>
|
||||||
|
<meta name="language" content="de">
|
||||||
|
<meta name="author" content="CopterSicht">
|
||||||
|
<meta name="date" content="2017-11-13T016:43:53+01:00">
|
||||||
|
<meta name="keywords" content="Luftaufnahmen, Luftbild, Filmproduktion">
|
||||||
|
<meta name="description" content="CopterSicht Website">
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<meta name="audience" content="alle">
|
||||||
|
<meta name="page-topic" content="Dienstleistungen">
|
||||||
|
<meta name="revisit-after" CONTENT="7 days">
|
||||||
|
<meta name="expires" content="0">
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
|
<!-- Bootstrap core CSS -->
|
||||||
|
<link href="bootstrap.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<!-- Custom styles for this template -->
|
||||||
|
<link href="half-slider.css" rel="stylesheet">
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- Navigation -->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="https://www.coptersicht.de/">CopterSicht</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbarResponsive" aria-controls="navbarResponsive"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ml-auto">
|
||||||
|
<li class="nav-item active"><a class="nav-link" href="https://www.coptersicht.de/">Home
|
||||||
|
<span class="sr-only">(current)</span>
|
||||||
|
</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link"
|
||||||
|
href="https://www.coptersicht.de">Kontakt</a></li>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<div id="carouselExampleIndicators" class="carousel slide"
|
||||||
|
data-ride="carousel">
|
||||||
|
<div class="carousel-inner" role="listbox">
|
||||||
|
<!-- Slide One - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item active"
|
||||||
|
style="background-image: url('1img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Two - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/2img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/3img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/4img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/5img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/6img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/7img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/8img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Slide Three - Set the background image for this slide in the line below -->
|
||||||
|
<div class="carousel-item"
|
||||||
|
style="background-image: url('img/9img.jpg')">
|
||||||
|
<div class="carousel-caption d-none d-md-block"></div>
|
||||||
|
</div>
|
||||||
|
<a class="carousel-control-prev" href="#carouselExampleIndicators"
|
||||||
|
role="button" data-slide="prev"> <span
|
||||||
|
class="carousel-control-prev-icon" aria-hidden="true"></span> <span
|
||||||
|
class="sr-only">Previous</span>
|
||||||
|
</a> <a class="carousel-control-next" href="#carouselExampleIndicators"
|
||||||
|
role="button" data-slide="next"> <span
|
||||||
|
class="carousel-control-next-icon" aria-hidden="true"></span> <span
|
||||||
|
class="sr-only">Next</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="tabelle">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"><a href="data/TLC01.jpg"><img src="data/TLC01.jpg" alt="TLC01" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href="data/TLC02.jpg"><img src="data/TLC02.jpg" alt="TLC02" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC03.gif" alt="TLC03" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href="data/TLC04.jpg"><img src="data/TLC04.jpg" alt="TLC04" width="328" height="246" /></a> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"> TLC01 - Salmenkopf, Freistett <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC01.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC02 - Salmenkopf, Freistett <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC02.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC03 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC04 - Demo <p> </p> <button data-clipboard-text="https://services.schuttercloud.com/data/TLC04.jpg">Copy direct link to clipboard</button> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC05.gif" alt="TLC05" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC06.gif" alt="TLC06" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC07.gif" alt="TLC07" width="328" height="246" /></a> </div></td>
|
||||||
|
<td><div id="h3"><a href=""><img src="data/TLC08.gif" alt="TLC08" width="328" height="246" /></a> </div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><div id="h3"> TLC05 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC06 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC07 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
<td><div id="h3"> TLC08 - not used yet <p> </p> <button data-clipboard-text="https://services.schuttercloud.com">Copy direct link to clipboard</button> </div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">/* jshint browser: true */</script>
|
||||||
|
<script src="clipboard.min.js"></script>
|
||||||
|
<script src="shim.js"></script>
|
||||||
|
<script src="adler32.js"></script>
|
||||||
|
<script src="browser.flow.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="py-5 bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
<p class="m-0 text-center text-white">Copyright ©
|
||||||
|
CopterSicht 2018</p>
|
||||||
|
<button type="button" class="btn btn-link"
|
||||||
|
onclick="window.location.href='https://www.coptersicht.de'">AGB</button>
|
||||||
|
<button type="button" class="btn btn-link"
|
||||||
|
onclick="window.location.href='https://www.coptersicht.de'">Impressum</button>
|
||||||
|
</div>
|
||||||
|
<!-- /.container -->
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,2 @@
|
||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
|
@ -0,0 +1,237 @@
|
||||||
|
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||||
|
if (!Object.keys) {
|
||||||
|
Object.keys = (function () {
|
||||||
|
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||||
|
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||||
|
dontEnums = [
|
||||||
|
'toString',
|
||||||
|
'toLocaleString',
|
||||||
|
'valueOf',
|
||||||
|
'hasOwnProperty',
|
||||||
|
'isPrototypeOf',
|
||||||
|
'propertyIsEnumerable',
|
||||||
|
'constructor'
|
||||||
|
],
|
||||||
|
dontEnumsLength = dontEnums.length;
|
||||||
|
|
||||||
|
return function (obj) {
|
||||||
|
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
|
||||||
|
|
||||||
|
var result = [];
|
||||||
|
|
||||||
|
for (var prop in obj) {
|
||||||
|
if (hasOwnProperty.call(obj, prop)) result.push(prop);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasDontEnumBug) {
|
||||||
|
for (var i=0; i < dontEnumsLength; i++) {
|
||||||
|
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
|
||||||
|
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
|
||||||
|
if (!Array.prototype.filter)
|
||||||
|
{
|
||||||
|
Array.prototype.filter = function(fun /*, thisp */)
|
||||||
|
{
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if (this == null)
|
||||||
|
throw new TypeError();
|
||||||
|
|
||||||
|
var t = Object(this);
|
||||||
|
var len = t.length >>> 0;
|
||||||
|
if (typeof fun != "function")
|
||||||
|
throw new TypeError();
|
||||||
|
|
||||||
|
var res = [];
|
||||||
|
var thisp = arguments[1];
|
||||||
|
for (var i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (i in t)
|
||||||
|
{
|
||||||
|
var val = t[i]; // in case fun mutates this
|
||||||
|
if (fun.call(thisp, val, i, t))
|
||||||
|
res.push(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
|
||||||
|
if (!String.prototype.trim) {
|
||||||
|
String.prototype.trim = function () {
|
||||||
|
return this.replace(/^\s+|\s+$/g, '');
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
|
||||||
|
if (!Array.prototype.forEach)
|
||||||
|
{
|
||||||
|
Array.prototype.forEach = function(fun /*, thisArg */)
|
||||||
|
{
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if (this === void 0 || this === null)
|
||||||
|
throw new TypeError();
|
||||||
|
|
||||||
|
var t = Object(this);
|
||||||
|
var len = t.length >>> 0;
|
||||||
|
if (typeof fun !== "function")
|
||||||
|
throw new TypeError();
|
||||||
|
|
||||||
|
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||||
|
for (var i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (i in t)
|
||||||
|
fun.call(thisArg, t[i], i, t);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Production steps of ECMA-262, Edition 5, 15.4.4.19
|
||||||
|
// Reference: http://es5.github.com/#x15.4.4.19
|
||||||
|
if (!Array.prototype.map) {
|
||||||
|
Array.prototype.map = function(callback, thisArg) {
|
||||||
|
|
||||||
|
var T, A, k;
|
||||||
|
|
||||||
|
if (this == null) {
|
||||||
|
throw new TypeError(" this is null or not defined");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
|
||||||
|
var O = Object(this);
|
||||||
|
|
||||||
|
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
|
||||||
|
// 3. Let len be ToUint32(lenValue).
|
||||||
|
var len = O.length >>> 0;
|
||||||
|
|
||||||
|
// 4. If IsCallable(callback) is false, throw a TypeError exception.
|
||||||
|
// See: http://es5.github.com/#x9.11
|
||||||
|
if (typeof callback !== "function") {
|
||||||
|
throw new TypeError(callback + " is not a function");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||||
|
if (thisArg) {
|
||||||
|
T = thisArg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6. Let A be a new array created as if by the expression new Array(len) where Array is
|
||||||
|
// the standard built-in constructor with that name and len is the value of len.
|
||||||
|
A = new Array(len);
|
||||||
|
|
||||||
|
// 7. Let k be 0
|
||||||
|
k = 0;
|
||||||
|
|
||||||
|
// 8. Repeat, while k < len
|
||||||
|
while(k < len) {
|
||||||
|
|
||||||
|
var kValue, mappedValue;
|
||||||
|
|
||||||
|
// a. Let Pk be ToString(k).
|
||||||
|
// This is implicit for LHS operands of the in operator
|
||||||
|
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
|
||||||
|
// This step can be combined with c
|
||||||
|
// c. If kPresent is true, then
|
||||||
|
if (k in O) {
|
||||||
|
|
||||||
|
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
|
||||||
|
kValue = O[ k ];
|
||||||
|
|
||||||
|
// ii. Let mappedValue be the result of calling the Call internal method of callback
|
||||||
|
// with T as the this value and argument list containing kValue, k, and O.
|
||||||
|
mappedValue = callback.call(T, kValue, k, O);
|
||||||
|
|
||||||
|
// iii. Call the DefineOwnProperty internal method of A with arguments
|
||||||
|
// Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
|
||||||
|
// and false.
|
||||||
|
|
||||||
|
// In browsers that support Object.defineProperty, use the following:
|
||||||
|
// Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
|
||||||
|
|
||||||
|
// For best browser support, use the following:
|
||||||
|
A[ k ] = mappedValue;
|
||||||
|
}
|
||||||
|
// d. Increase k by 1.
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 9. return A
|
||||||
|
return A;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||||
|
if (!Array.prototype.indexOf) {
|
||||||
|
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||||
|
if ( this === undefined || this === null ) {
|
||||||
|
throw new TypeError( '"this" is null or not defined' );
|
||||||
|
}
|
||||||
|
|
||||||
|
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
|
||||||
|
|
||||||
|
fromIndex = +fromIndex || 0;
|
||||||
|
|
||||||
|
if (Math.abs(fromIndex) === Infinity) {
|
||||||
|
fromIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fromIndex < 0) {
|
||||||
|
fromIndex += length;
|
||||||
|
if (fromIndex < 0) {
|
||||||
|
fromIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;fromIndex < length; fromIndex++) {
|
||||||
|
if (this[fromIndex] === searchElement) {
|
||||||
|
return fromIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
||||||
|
|
||||||
|
if (! Array.isArray) {
|
||||||
|
Array.isArray = function(obj) {
|
||||||
|
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/ttaubert/node-arraybuffer-slice
|
||||||
|
// (c) 2013 Tim Taubert <tim@timtaubert.de>
|
||||||
|
// arraybuffer-slice may be freely distributed under the MIT license.
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||||
|
ArrayBuffer.prototype.slice = function (begin, end) {
|
||||||
|
begin = (begin|0) || 0;
|
||||||
|
var num = this.byteLength;
|
||||||
|
end = end === (void 0) ? num : (end|0);
|
||||||
|
|
||||||
|
// Handle negative values.
|
||||||
|
if (begin < 0) begin += num;
|
||||||
|
if (end < 0) end += num;
|
||||||
|
|
||||||
|
if (num === 0 || begin >= num || begin >= end) {
|
||||||
|
return new ArrayBuffer(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
var length = Math.min(num - begin, end - begin);
|
||||||
|
var target = new ArrayBuffer(length);
|
||||||
|
var targetArray = new Uint8Array(target);
|
||||||
|
targetArray.set(new Uint8Array(this, begin, length));
|
||||||
|
return target;
|
||||||
|
};
|
||||||
|
}
|