<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<!-- Page Title-->
<title>The Smartfiles Network by LeReTo</title>
<!-- Meta Tags-->
<meta name="description" content="The Smartfiles Network by LeReTo | Combining EU and national case law datasets to enable a unique view of the interconnectedness of European case law.">
<meta name="keywords" content="Legal Network Analysis, Legal Tech, European Case Law, Citation Maps, Smart PDF-convolute">
<meta name="author" content="LeReTo">
<!-- Meta Tags-->
<!-- Viewport Meta-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!-- Template Favicon & Icons Start -->
<link rel="shortcut icon" sizes="16x16 24x24 32x32 48x48 64x64 96x96" href="img/favicon/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-chrome-192x192.png">
<link rel="manifest" href="img/favicon/site.webmanifest">
<link rel="mask-icon" href="img/favicon/safari-pinned-tab.svg" color="#25237e">
<meta name="msapplication-config" content="img/favicon/browserconfig.xml">
<meta name="msapplication-TileColor" content="#ffaca3">
<!-- Template Favicon & Icons End-->
<link rel="stylesheet" href="multirange.css">
<!-- Template Styles Start-->
<link rel="stylesheet" type="text/css" href="css/plugins.css">
<link rel="stylesheet" type="text/css" href="css/loaders/loader.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<!-- Template Styles End-->
<!-- Custom Browser Color Start-->
<meta name="theme-color" content="#272F7C">
<meta name="msapplication-navbutton-color" content="#272F7C">
<meta name="apple-mobile-web-app-status-bar-style" content="#272F7C">
<!-- Custom Browser Color End-->
<script src="//unpkg.com/d3-quadtree"></script>
<script src="//unpkg.com/d3-force"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/izimodal/1.5.1/css/iziModal.min.css" />
<script src="/js/force-graph.js"></script>
<script src="https://unpkg.com/ionicons@4.5.5/dist/ionicons.js"></script>
<style type="text/css">.graph-tooltip {
position: absolute;
transform: translate(-50%, 25px);
font-family: Sans-serif;
font-size: 16px;
padding: 4px;
border-radius: 3px;
color: #eee;
background: rgba(0,0,0,0.65);
visibility: hidden; /* by default */
}
.loader2,
.loader2:before,
.loader2:after {
border-radius: 50%;
width: 2.5em;
height: 2.5em;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation: load7 1.8s infinite ease-in-out;
animation: load7 1.8s infinite ease-in-out;
}
.loader2 {
color: #000000;
font-size: 10px;
margin: 80px auto;
position: relative;
text-indent: -9999em;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
.loader2:before,
.loader2:after {
content: '';
position: absolute;
top: 0;
}
.loader2:before {
left: -3.5em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader2:after {
left: 3.5em;
}
@-webkit-keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}
@keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}
.grabbable {
cursor: move;
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
.grabbable:active {
cursor: grabbing;
cursor: -moz-grabbing;
cursor: -webkit-grabbing;
}
.fullscreen-bg {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
z-index: -100;
}
.fullscreen-bg__video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
@media (min-aspect-ratio: 16/9) {
.fullscreen-bg__video {
width: 100%;
height: auto;
}
}
@media (max-aspect-ratio: 16/9) {
.fullscreen-bg__video {
width: auto;
height: 100%;
}
}
@media (min-aspect-ratio: 16/9) {
.fullscreen-bg__video {
height: 300%;
top: -100%;
}
}
@media (max-aspect-ratio: 16/9) {
.fullscreen-bg__video {
width: 300%;
left: -100%;
}
}
metadatas li.selected, metadatas li:hover
{
font-weight: bold;
}
li {
cursor: pointer;
}
[data-entry].selected, [data-entry]:hover
{
color: #7ed4dd !important;
}
@import url(https://fonts.googleapis.com/css?family=Ubuntu);
.toggle-btn {
width: 80px;
height: 40px;
margin: 10px;
border-radius: 50px;
display: inline-block;
position: relative;
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVQ4T42TaxHCQAyENw5wAhLACVUAUkABOCkSwEkdhNmbpHNckzv689L98toIAKjqGcAFwElEFr5ln6ruAMwA7iLyFBM/TPDuQSrxwf6fCKBoX2UMIYGYkg8BLOnVg2RiAEexGaQQq4w9e9klcxGLLAUwgDAcihlYAR1IvZA1sz/+AAaQjXhTQQVoe2Yo3E7UQiT2ijeQdojRtClOfVKvMVyVpU594kZK9zzySWTlcNqZY9tjCsUds00+A57z1e35xzlzJjee8xf0HYp+cOZQUQAAAABJRU5ErkJggg==") no-repeat 50px center #e74c3c;
cursor: pointer;
-webkit-transition: background-color .40s ease-in-out;
-moz-transition: background-color .40s ease-in-out;
-o-transition: background-color .40s ease-in-out;
transition: background-color .40s ease-in-out;
cursor: pointer;
}
.toggle-btn.active {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmUlEQVQ4T6WT0RWDMAhFeZs4ipu0mawZpaO4yevBc6hUIWLNd+4NeQDk5sE/PMkZwFvZywKSTxF5iUgH0C4JHGyF97IggFVSqyCFga0CvQSg70Mdwd8QSSr4sGBMcgavAgdvwQCtApvA2uKr1x7Pu++06ItrF5LXPB/CP4M0kKTwYRIDyRAOR9lJTuF0F0hOAJbKopVHOZN9ACS0UgowIx8ZAAAAAElFTkSuQmCC") no-repeat 10px center #2ecc71;
}
.toggle-btn.active .round-btn {
left: 45px;
}
.toggle-btn .round-btn {
width: 30px;
height: 30px;
background-color: #fff;
border-radius: 50%;
display: inline-block;
position: absolute;
left: 5px;
top: 50%;
margin-top: -15px;
-webkit-transition: all .30s ease-in-out;
-moz-transition: all .30s ease-in-out;
-o-transition: all .30s ease-in-out;
transition: all .30s ease-in-out;
}
.toggle-btn .cb-value {
position: absolute;
left: 0;
right: 0;
width: 100%;
height: 100%;
opacity: 0;
z-index: 9;
cursor: pointer;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}
.subjectHighlight:hover
{
font-weight: bold;
}
#sidebar div:hover
{
/*background-color: #333333;*/
}
</style>
<!--<script src="../../dist/force-graph.js"></script>-->
<script src="/js/three.js"></script>
</head>
<body class="overflow-hidden">
<!-- Old Browsers Support Start-->
<!--[if lt IE 9]>
<script src="js/libs/es5-shim.min.js"></script>
<script src="js/libs/html5shiv.min.js"></script>
<script src="js/libs/html5shiv-printshiv.min.js"></script>
<script src="js/libs/respond.min.js"></script>
<!--Plugin CSS file with desired skin-->
<!--jQuery-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--Plugin JavaScript file-->
<![endif]-->
<!-- Old Browsers Support End-->
<!-- Loader Start-->
<div class="loader">
<!-- Loader Content Wrapper Start -->
<div class="loader_content">
<!-- Loader Logo Start -->
<div class="loader-logo-container">
<div class="loader-logo slideInDown">
<!-- Put Your Logo Here -->
<img src="img/logo_nobg_white_medium.png" alt="the smartfiles network">
</div>
<div class="loader-caption slideInUp">
<span class="loading-dots">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</span>
</div>
</div>
<!-- Loader Logo End -->
</div>
<!-- Loader Content Wrapper Start -->
<div class="loader_background"></div>
<!-- Loader Morphing Shape Start -->
<div class="loader_shape">
<svg class="loader-transition-shape" width="100%" height="100%" viewBox="0 0 1440 800" preserveAspectRatio="none">
<path class="loader-morphing-path" d="M-22.4-87.7c-8.3,95.9,56.9,71.1,216.6,79c189.3,9.4,264.6-2.6,431.3-0.8c187.6,2,331.6-9.3,528.2-0.2c443.7,20.5,435.1-61.8,368.6-188.1C1455.9-324.1,34.5-746.7-22.4-87.7z"/>
</svg>
</div>
<!-- Loader Morphing Shape End -->
</div>
<!-- Loader End-->
<!-- Custom HTML Start-->
<!-- Menu Button Start -->
<div class="menu-button">
<a href="#" id="menu-trigger" class="menu-trigger">
<span></span>
</a>
<!-- Menu Button Morphing Shape Start -->
<svg class="menu-btn-morphing-object" width="100%" height="100%" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
<path class="menu-btn-morphing-path" d="M49.8,29.3c0,13.3-14.9,20.5-28.2,20.5S0.8,38.6,0.8,25.4S15.9,0.2,29.2,0.2S49.8,16,49.8,29.3z"/>
</svg>
<!-- Menu Button Morphing Shape End -->
</div>
<!-- Menu Button Start -->
<!-- Navigation Start-->
<div class="navigation">
<!-- Menu Content Wrapper Start -->
<div class="navigation_content">
<!-- Menu Close Button Start -->
<a href="#" id="menu-close" class="navigation_close"></a>
<!-- Menu Close Button End -->
<!-- Menu Logo Start -->
<div class="logo-wrapper">
<!-- Your Logo Here -->
<img src="img/logo_nobg_white.png" alt="the smartfiles network"/>
</div>
<!-- Menu Logo End -->
<!-- Menu Content Start -->
<div class="menu-wrapper">
<nav>
<!-- Menu Start-->
<ul class="menu" id="menu">
<li data-menuanchor="main">
<a href="/#main">Home</a>
</li>
<li data-menuanchor="solution">
<a href="/#solution">Our Solution</a>
</li>
<li data-menuanchor="demo">
<a href="/#demo">Demo</a>
</li>
<li data-menuanchor="project">
<a href="/#project">The Project</a>
</li>
<li data-menuanchor="data">
<a href="/#data">Data</a>
</li>
<li data-menuanchor="team">
<a href="/#team">Team</a>
</li>
<li data-menuanchor="contact">
<a href="/#contact">Contact LeReTo</a>
</li>
<li data-menuanchor="imprint">
<a href="/#imprint">Imprint (Cookies & Dataprotection)</a>
</li>
</ul>
<!-- Menu End-->
</nav>
<!-- Socials Start-->
<ul class="menu-socials">
<br>
<li>
<a class="" href="https://twitter.com/LeReTo_" target="_blank">
<i class="icon ion-social-twitter"></i>
</a>
</li>
<li>
<a class="" href="https://www.linkedin.com/company/18403075/" target="_blank">
<i class="icon ion-social-linkedin"></i>
</a>
</li>
<li>
<a class="" href="https://www.facebook.com/lereto.at" target="_blank">
<i class="icon ion-social-facebook"></i>
</a>
</li>
</ul>
<!-- Socials End-->
</div>
<!-- Menu Content End -->
</div>
<!-- Menu Content Wrapper End -->
<div class="navigation_background"></div>
<!-- Menu Morphing Shape Start -->
<div class="navigation_shape">
<svg class="menu-transition-shape" width="100%" height="100%" viewBox="0 0 1440 800" preserveAspectRatio="none">
<path class="menu-morphing-path" d="M-22.4-87.7c-8.3,95.9,56.9,71.1,216.6,79c189.3,9.4,264.6-2.6,431.3-0.8c187.6,2,331.6-9.3,528.2-0.2c443.7,20.5,435.1-61.8,368.6-188.1C1455.9-324.1,34.5-746.7-22.4-87.7z"/>
</svg>
</div>
<!-- Menu Morphing Shape End -->
</div>
<!-- Navigation End-->
<!-- Fullpage.js Sections Start-->
<div id="fullpage">
<!-- Main Section Start-->
<div class="section fp-auto-height-responsive main-section" data-anchor="main">
<!-- Logo Start -->
<div class="logo">
<!-- Your Logo Here -->
<img src="img/logo_nobg_white_text2_small60.png" alt="the smartfiles network">
</div>
<!-- Logo End -->
<!-- Main Section Content Start -->
<div class="main-section_content split fullheight">
<div class="container-fluid p-0 fullheight">
<div class="row no-gutters fullheight" style="background-color: rgb(37, 40, 40);">
<!-- Main Section Intro Start -->
<!-- <div class="col-12 col-xl-6 main-section_intro split fullheight" style="max-width: 360px; background-color: #191919">
<br/><br/>
<div id="sidebar" style="color: white; padding-left: 20px; padding-right: 30px; text-align: left; font-size:14px">
Drag a PDF to the search area!<br/>Demo-Files (or use your own PDF):<br/><br/>
<div ondragstart="window.ff = null;window.f=1;event.dataTransfer.setData('text/plain',1);$('#leretoframe_wrapper').show();" ondragend="$('#leretoframe_wrapper').hide();dragend()" draggable="true" title="Drag me to the drop zone" style="border: 2px dashed #7ed4dd; border-radius: 5px; text-align: center; cursor: pointer; font-size: 12px">
<img draggable="false" src="/img/pdf-gray.svg" width="25px" style="width: 50px; margin-left: auto; margin-right: auto; margin-top: 30px"/><br/>
Demo Competition Law<br/><br/>
</div><br/>
<div ondragstart="window.ff = null;window.f=3;event.dataTransfer.setData('text/plain',3);$('#leretoframe_wrapper').show();" ondragend="$('#leretoframe_wrapper').hide();dragend()" draggable="true" title="Drag me to the drop zone" style="border: 2px dashed #7ed4dd; border-radius: 5px; text-align: center; cursor: pointer; font-size: 12px">
<img draggable="false" src="/img/pdf-gray.svg" width="25px" style="width: 50px; margin-left: auto; margin-right: auto; margin-top: 30px"/><br/>
Demo Corporate Law<br/><br/>
</div><br/>
<div ondragstart="window.ff = null;window.f=4;event.dataTransfer.setData('text/plain',4);$('#leretoframe_wrapper').show();" ondragend="$('#leretoframe_wrapper').hide();dragend()" draggable="true" title="Drag me to the drop zone" style="border: 2px dashed #7ed4dd; border-radius: 5px; text-align: center; cursor: pointer; font-size: 12px">
<img draggable="false" src="/img/pdf-gray.svg" width="25px" style="width: 50px; margin-left: auto; margin-right: auto; margin-top: 30px"/><br/>
Demo National Case Law<br/><br/>
</div><br/>
</div>
</div>-->
<!-- Main Section Intro End -->
<!-- Main Section Media Start -->
<div class="col-12 col-xl-9 main-section_media fullheight" style="background-color: rgb(37, 40, 40); width: calc(100% - 300px)">
<!-- Background Effect Start -->
<!--<div class="video-background">
<div class="" id="video-wrapper">
<div id="bgndVideo" class="player" data-property="{ videoURL:'https://youtu.be/4WVu5tgNLcY', }"></div>
</div>
</div>-->
<div id="graph" style="display: none; background-color: rgb(37,40,40); width: 200%">
<div style="position: relative; background-color: rgb(37,40,40);">
<canvas width="100%" height="100%" style="background-color: rgb(37,40,40);width: 100%; height: 100%;" class=""></canvas>
<div class="graph-tooltip" style="top: 294px; left: 477px; visibility: hidden;"></div>
</div>
</div>
<div class="overlay1" style="cursor: pointer; color: white; display: none; width:300px; height: 30px; position: absolute; left: 40px; top: 50px; text-align: center;" onclick="document.location.href = 'https://smartfiles.lereto.at/search';">
<img src="/restart.svg" style="width: 24px; display: inline"/> <span style="position: relative; top: -5px; ">Start new search</span>
</div>
<div class="overlay1 downloadoverlay" style="cursor: pointer; color: white; display: none; width:300px; height: 30px; position: absolute; left: 20px; bottom: 100px; text-align: center;" onclick="download();">
<img src="/download.svg" style="width: 24px; display: inline"/> <span style="position: relative; top: -5px; ">Download</span>
</div>
<div class="overlay1" style="cursor: pointer; color: white; display: none; width:300px; height: 30px; position: absolute; left: 0px; bottom: 50px; text-align: center;" onclick="share();">
<img src="/share.svg" style="width: 24px; display: inline"/> <span style="position: relative; top: -5px; ">Share</span>
</div>
<div class="overlay1" style="cursor: pointer; color: white; display: block; width:100px; height: 30px; position: absolute; right: -110px; bottom: 10px; text-align: center;" onclick="share();">
<span style="color: gray">Open Beta</span>
</div>
<div class="overlay1" style="cursor: pointer; color: white; display: none; width:150px; height: 30px; position: absolute; right: 0px; top: 50px; text-align: center;">
<div title="The EU relevance switch scales the nodesize in respect to the whole EU case law network as per 2019-06-02. The predefined nodesize reflects the relevance of a cited case law in respect to the shown network map" style="display: block">EU relevance</div> <div class="toggle-btn">
<input type="checkbox" class="cb-value" />
<span class="round-btn"></span>
</div>
</div>
<div class="overlay1meta" style="padding-left:4px;border: 2px dashed #7ed4dd; border-radius: 5px;cursor: pointer; color: white; display: none; background-color: transparent; opacity: 0.8;color:white;width:360px; height: 500px; position: absolute; left: 110px; top:calc(50% - 250px); text-align: left;">
<!--<img src="/share.svg" style="width: 24px; display: inline"/> <span style="position: relative; top: -5px; ">Share</span>-->
<ion-icon name="close-circle-outline" style="position: absolute; right: 5px; top: 5px" onclick="$('.overlay1meta').hide();"></ion-icon>
<ul class="metadatas">
</ul>
</div>
<script>
window.addEventListener('message', receiver, false);
function receiver(e) {
if((""+e.data).indexOf("md5-") > -1)
{
window.md = (""+e.data).replace("md5-","");
} else {
window.sidebarset = e.data;
initGraph(e.data)
}
}
nodeCache = [];
function share()
{
var dataURL = canvas.canvas.toDataURL('image/png');
$.post("/share",{'data':{'md':window.md, 'png':dataURL}},function(){
//Generate Share Links
$('#links').html(
" <a href=\"https://www.linkedin.com/sharing/share-offsite/?url=https://smartfiles.lereto.at/shares/"+window.md+"\" target=\"_blank\">\n" +
" <img width='48px' style='width:48px' src=\"https://simplesharebuttons.com/images/somacro/linkedin.png\" alt=\"LinkedIn\" />\n" +
" </a><br/><br/>\n" +
" \n" +
" \n" +
" <a href=\"https://twitter.com/intent/tweet?url=https://smartfiles.lereto.at/shares/"+window.md+"&text=The%20Smartfiles%20Network&hashtags=TheSmartfilesNetwork\" target=\"_blank\">\n" +
" <img width='48px' style='width:48px' src=\"https://simplesharebuttons.com/images/somacro/twitter.png\" alt=\"Twitter\" />\n" +
" </a><br/><br/>\n" +
" \n" +
" \n" +
" <a href=\"mailto:?Subject=The Smartfiles Network&Body=My%20PDF-based%20search%20result%20powered%20by%20LeReTo!%20 https://smartfiles.lereto.at/shares/"+window.md+"\">\n" +
" <img width='48px' style='width:48px' src=\"https://simplesharebuttons.com/images/somacro/email.png\" alt=\"Email\" />\n" +
" </a><br/><br/><img src='https://smartfiles.lereto.at/sharedata/"+window.md+".png' style='left: 100px;\n" +
"\n" +
"z-index: -1000;\n" +
"\n" +
"position: absolute;\n" +
"\n" +
"top: 50px;'/>");
$('#modal').iziModal('open');
})
}
//$('input.cb-value').prop("checked", true);
$('.cb-value').click(function() {
var mainParent = $(this).parent('.toggle-btn');
if($(mainParent).find('input.cb-value').is(':checked')) {
$(mainParent).addClass('active');
window.nodeImportance = 'global';
Graph(document.getElementById('graph')).d3Force('collide', d3.forceCollide(radius)).d3Force("link", d3.forceLink().distance(d => 100));
} else {
$(mainParent).removeClass('active');
window.nodeImportance = 'local';
Graph(document.getElementById('graph')).d3Force('collide', d3.forceCollide(radius)).d3Force("link", d3.forceLink().distance(d => 100));
}
})
window.highlighted = new Array();
window.hidden = new Array();
function loadSubjects(){
ids = new Array();
$(data.nodes).each(function(k,v){
ids.push(v.id);
});
$.post("/subject.php",{'data':ids},function(data){
data = JSON.parse(data);
var keys = Object.keys(data);
keys = keys.sort(function(y,x){
x = data[x].count;
y = data[y].count;
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
return 0;
});
data2 = new Array();
$(keys).each(function(k,v){
data2.push(data[v]);
});
window.subjects = data2;
var c = 0;
$(subjects).each(function(k,v){
$('<li class="subjectHighlight" onclick="highlightSubjects(\''+k+'\')" onmouseover="highlightSubjects(\''+k+'\')" data-entry="'+k+'">'+v['title']+'</li>').appendTo($('#subjects'));
c+=1;
if(c > 10)
{
return false;
}
});
/*console.log(data);
data.sort(function(a,b){
return a.count > b.count ? 1 : -1;
});
console.log(data);*/
});
}
function highlightSubjects(s)
{
window.highlighted = subjects[s].nodes;
}
function highlightNode2(n)
{
if(n)
{
window.highlighted = [n.id];
$('[data-entry]').removeClass('selected');
$('[data-entry="'+n.case_id+'"]').addClass('selected');
}
}
function highlightNode(n)
{
//find node ids to caption
window.highlighted = new Array();
$.each(data.nodes, function(k,v){
if(v.case_id == n)
{
window.highlighted.push(v.id);
}
});
}
function slide(d)
{
vals = $('.original').val().split(',');
date_min = vals[0];
date_max = vals[1];
minSelDate = window.dates[(window.dates.length-1)/100*date_min];
maxSelDate = window.dates[(window.dates.length-1)/100*date_max];
date_max = window.dates[ (Math.floor ((window.dates.length-1)/100*date_max))];
date_min = window.dates[(Math.floor ((window.dates.length-1)/100*date_min))];
window.hidden = new Array();
//UPDATE DATE FILTER
$(data.nodes).each(function(k,v){
console.log(date_min + " " + date_max + " " + v.dat);
if(v.dat < date_min || v.dat > date_max)
{
window.hidden.push(v.id);
}
});
date_min = new Date(date_min);
date_max = new Date(date_max);
function fz(d)
{
d = ""+d;
if(d == "001")
return "01";
if(d.length == 1)
{
return "0" + d;
}
return d;
}
txt = moment.unix(date_min).format("DD/MM/YYYY") + " - " + moment.unix(date_max).format("DD/MM/YYYY");
$('#datefield').text(txt);
}
function filterCountry(c)
{
highlighted = new Array();
if(c == "ALL")
return;
$(data.nodes).each(function(k,v){
if((v.ecli && v.ecli.indexOf(c) > -1) || v.country && v.country.indexOf(c) > -1)
{
highlighted.push(v.id);
}
});
}
function setSidebar(d)
{
$('.overlay1').show();
date = "<br/><input style='width: 300px' onmousemove='slide' oninput='slide' onchange='slide' type=\"range\" multiple value=\"0,100\" /><br/><span id='datefield'></span>";
$('#sidebar').html("<b style='font-weight: bold'><ion-icon style='position:relative; top: 2px; color: white; font-size: 16px' name=\"quote\"></ion-icon> Citated case law </b><br/><ul id='sidebarlist' style='text-align: left; padding-left: 0px; font-size: 12px; margin-left: 16px'></ul>");
$("<div class=\"overlay1\" style=\"cursor: pointer; color: white; display: block; width:320px; height: 400px; ; text-align: left;\">\n" +
" <div style=\"display: block; font-weight: bold; margin-top: 30px;\"><ion-icon name=\"pricetags\" style=\"font-size: 16px; position:relative;top:3px\"></ion-icon> Subject matter</div>\n" +
" <ul id=\"subjects\" style=\"font-size: 12px; margin-left: 16px\">\n" +
"\n" +
" </ul><div style=\"display: block; font-weight: bold; margin-top: 30px;\"><ion-icon style=\"font-size: 16px; position:relative;top:3px\" name=\"calendar\"></ion-icon> Date </div>"+date+"\n\n<div style=\"display: block; font-weight: bold; margin-top: 30px;\"><ion-icon style=\"font-size: 16px; position:relative;top:3px\" name=\"pin\"></ion-icon> Jurisdiction </div><div style='font-size: 14px; margin-left: 16px;'><span onmouseenter=\"filterCountry('EU')\"><a target='_blank' style='color: white' href='https://e-justice.europa.eu/content_eu_case_law-12-en.do'>EU</a></span> | <span style='color: white' onmouseenter=\"filterCountry('AT')\"><a target='_blank' style='color: white' href='https://e-justice.europa.eu/content_judicial_systems_in_member_states-16-at-en.do?member=1'>AT</a></span> | <span target='_blank' style='color: white' onmouseenter=\"filterCountry('DE')\"><a style='color: white' target='_blank' href='https://e-justice.europa.eu/content_judicial_systems_in_member_states-16-de-en.do?member=1'>DE</a></span> | <span style='color: white' target='_blank' onmouseenter=\"filterCountry('NL')\"><a style='color: white' href='https://e-justice.europa.eu/content_judicial_systems_in_member_states-16-nl-en.do?member=1 '>NL</a></span> </div> \n\n" +
" </div>").appendTo($('#sidebar'));
function nz(d)
{
if(isNaN(d))
{
return 0;
}
return d;
}
$.each(d['judikat'],function(k,v){
v[0] = v[0].replace(" ","");
d['judikat'][k][0] = d['judikat'][k][0].replace(" ","").trim();
addData = " ";
$(data.nodes).each(function(k2,v2){
console.log(v2.case_id + " " + v[0]);
if(v2.case_id.replace(" ","") == v[0].replace(" ","") || v2.ecli == v[0] || "C-"+v2.case_id == v[0])
{
ecli = "";
if(v2.ecli)
{
ecli = v2.ecli.split(":")[1];
} else {
if(v2.country)
{
ecli = v2.country;
} else {
//TODO AT
ecli = "";
v2.country = "";
}
}
if(ecli != "" || v2.dat)
{
addData = " <div style=\"display: inline-block; width:30px\"><!--<ion-icon style='position:relative; top: 2px; color: white' name=\"pin\"></ion-icon> -->" + ecli + "</div> <div style=\"display: inline-block; width:30px\"><!--<ion-icon style='position:relative; top: 2px; color: white' name=\"arrow-dropleft\"></ion-icon>--> [ " + nz(Math.floor(v2.weight*10)+1) + " </div> <div style=\"display: inline-block; width:30px\"><!--<ion-icon style='position:relative; top: 2px; color: white' name=\"arrow-dropright\"></ion-icon>--> " + nz(Math.floor(v2.outs*10)) + " ]</div>";
}
}
});
if(!nodeCache[v[0]])
{
$('<li onclick="showMetadata2(\''+v[0]+'\')" onmouseover="highlightNode(\''+v[0]+'\')" data-entry="'+v[0]+'"><div style="display: inline-block; width:160px; font-weight: bold;">'+v[0]+'</div>'+addData+'</li>').appendTo($('#sidebarlist'));
nodeCache[v[0]] = 1;
}
});
addData = $("<br/><ion-icon style='position:relative; top: -15px; left: 200px; color: white' name=\"log-in\"></ion-icon><ion-icon style='position:relative; top: -15px; color: white; left: 215px' name=\"log-out\"></ion-icon>").appendTo($('#sidebarlist'));
(function() {
"use strict";
var supportsMultiple = self.HTMLInputElement && "valueLow" in HTMLInputElement.prototype;
var descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value");
var multirange = function(input) {
if (supportsMultiple || input.classList.contains("multirange")) {
return;
}
var value = input.getAttribute("value");
var values = value === null ? [] : value.split(",");
var min = +(input.min || 0);
var max = +(input.max || 100);
var ghost = input.cloneNode();
input.classList.add("multirange", "original");
ghost.classList.add("multirange", "ghost");
input.value = values[0] || min + (max - min) / 2;
ghost.value = values[1] || min + (max - min) / 2;
input.parentNode.insertBefore(ghost, input.nextSibling);
Object.defineProperty(input, "originalValue", descriptor.get ? descriptor : {
// Fuck you Safari >:(
get: function() { return this.value; },
set: function(v) { this.value = v; }
});
Object.defineProperties(input, {
valueLow: {
get: function() { return Math.min(this.originalValue, ghost.value); },
set: function(v) { this.originalValue = v; },
enumerable: true
},
valueHigh: {
get: function() { return Math.max(this.originalValue, ghost.value); },
set: function(v) { ghost.value = v; },
enumerable: true
}
});
if (descriptor.get) {
// Again, fuck you Safari
Object.defineProperty(input, "value", {
get: function() { return this.valueLow + "," + this.valueHigh; },
set: function(v) {
var values = v.split(",");
this.valueLow = values[0];
this.valueHigh = values[1];
update();
},
enumerable: true
});
}
if (typeof input.oninput === "function") {
ghost.oninput = input.oninput.bind(input);
}
function update() {
ghost.style.setProperty("--low", 100 * ((input.valueLow - min) / (max - min)) + 1 + "%");
ghost.style.setProperty("--high", 100 * ((input.valueHigh - min) / (max - min)) - 1 + "%");
}
input.addEventListener("input", update);
ghost.addEventListener("input", update);
update();
}
multirange.init = function() {
[].slice.call(document.querySelectorAll("input[type=range][multiple]:not(.multirange)")).forEach(multirange);
}
if (typeof module === "undefined") {
self.multirange = multirange;
if (document.readyState == "loading") {
document.addEventListener("DOMContentLoaded", multirange.init);
}
else {
multirange.init();
}
} else {
module.exports = multirange;
}
})();
$('.ghost, .original, .multirange').unbind("input");
$('.ghost, .original, .multirange').unbind("change");
$('.ghost, .original, .multirange').bind('input',function(d){
slide();
});
$('.ghost, .original, .multirange').bind('change',function(d){
slide();
});
$('.ghost, .original').css('background-color','#191919');
}
var $idown; // Keep it outside of the function, so it's initialized once.
downloadURL = function(url) {
if ($idown) {
$idown.attr('src',url);
} else {
$idown = $('<iframe>', { id:'idown', src:url }).hide().appendTo('body');
}
}
function download()
{
$('#modal2').iziModal('open');
setTimeout(function(){
var req = new XMLHttpRequest();
req.open("GET", "/processed/" + window.ff + ".pdf", true);
req.responseType = "blob";
req.onload = function (event) {
var blob = req.response;
console.log(blob.size);
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="PDF_Convolute.pdf";
link.click();
};
req.send();
$('#modal2').iziModal('close');
},1000)
}
function showMetadata(nodeid)
{
$.get("/metadata/" + nodeid,function(data){
data = data[0];
window.metadata = data[0];
String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'g'), replacement);
};
html = "<b style='font-weight: bold'>Case law data </b><a target='_blank' href='"+data.htmlLink.replace("TXT/HTML/","TXT/")+"'><ion-icon style='color: white' name='open' title='Open in EUR-Lex'></ion-icon></a><br/><br/>";
if(data.htmlLink)
{
//html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:normal; color: white !important;'><a style='color: white !important;' target=\"_blank\" href=\""+data.htmlLink.replace("TXT/HTML/","TXT/")+"\">Open document in new Tab <br/></a></b><br/></li>";
}
if(data.case_id != data.ecli)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>Case: </b><span style='font-size: 12px; font-weight: normal'>" + data.caseId + "</span></li>";
}
if(data.celexNumber.indexOf("ECLI") == -1 && data.celexNumber != data.case_id)
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>CELEX: </b><span style='font-size: 12px; font-weight: normal'>" + data.celexNumber + "</span></li>";
if(data.ecli)
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>ECLI: </b><span style='font-size: 12px; font-weight: normal'>" + data.ecli + "</span></li>";
if(data.meta.dateofdocument)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>Document date </b><span style='font-size: 12px; font-weight: normal'>" + data.meta.dateofdocument + "</span></li>";
}
html += "<li style='line-height: 16px; margin-bottom: 5px;' title=\""+data.cid+"\"><b style='font-weight:bold'>Title: </b><span style='font-size: 12px; font-weight: normal'>" + cut(data.cid) + "</span></li>";
if(data.meta.nationalcourt)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>National court </b><span style='font-size: 12px; font-weight: normal'>" + cut(data.meta.nationalcourt,50) + "</span></li>";
}
if(data.meta.eurovocdescriptor)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>EUROVOC: </b><span style='font-size: 12px; font-weight: normal'>" + data.meta.eurovocdescriptor + "</span></li>";
}
if(data.meta.author)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>Author: </b><span style='font-size: 12px; font-weight: normal'>" + data.meta.author + "</span></li>";
}
/*if(data.meta.authenticlanguage)
{
html += "<li style='line-height: 16px; margin-bottom: 5px;'><b style='font-weight:bold'>Language: </b><span style='font-size: 12px; font-weight: normal'>" + data.meta.authenticlanguage + "</span></li>";
}*/
if(data.meta.subjectmatter)
{
s = data.meta.subjectmatter.replaceAll('search.html','https://eur-lex.europa.eu/search.html').replaceAll('href','target="_blank" style="color: white; padding-left: 10px; font-size: 12px; list-style-type: circle;" href').replaceAll('\./https','https');
html += "<b style='font-weight:bold'>Subject matter </b><li style='color: white !important;'>"+s+"</li>";
}
$('.metadatas').html(html);
$('.overlay1meta').show();
});
}
function showMetadata2(n)
{
$.each(data.nodes, function(k,v){
if(v.case_id == n)
{
showMetadata(v.id);
}
});
}
function linkCo(d)
{
return '#7ed4dd';
}
function lw(d)
{
return 1;
}
function curve(g)
{
return 0;
}
function nval(g)
{
if(g.id == 999999999)
{
return 120;
}
return 60;
}
function cut(s,l=80)
{
return s.substring(0,l) + "...";
}
Array.prototype.unique = function() {
return this.filter(function (value, index, self) {
return self.indexOf(value) === index;
});
}
window.dates = new Array();
function initGraph(data)
{
data2 = data;
window.img = new Image();
img.src = './img/blue.png';
window.img2 = new Image();
img2.src = './img/red.png';
window.img3 = new Image();
img3.src = './img/pdf-red.svg';
imgs = [img];
$.post('/data.php',{'data':data},function(data){
data = JSON.parse(data);
window.data = data;
$(data.nodes).each(function(k,v){
data.nodes[k].dat = moment(v.dat, "DD/MM/YYYY").unix();
if(data.nodes[k].dat)
window.dates.push(data.nodes[k].dat);
else
data.nodes[k].dat = Date.parse('01/01/1950')
window.dates.push(data.nodes[k].dat);
});
setSidebar(data2);
window.dates.push(moment('01/01/1950', "DD/MM/YYYY").unix());
window.dates = window.dates.unique();
function sortNumber(a, b) {
return a - b;
}
window.dates = window.dates.sort(sortNumber);
window.minDate = window.dates[0];
window.maxDate = window.dates[window.dates.length-1];
loadSubjects();
window.Graph = ForceGraph()
(document.getElementById('graph'))
.backgroundColor('#252828').onNodeHover(node => highlightNode2(node)).onNodeClick(node => showMetadata(node.id))/*.onNodeHover(node => elem.style.cursor = node ? 'pointer' : null).*/.graphData(data).linkWidth(lw).nodeVal(nval).linkColor(linkCo).linkDirectionalParticles(2).linkCurvature(curve).nodeId('id')./*nodeLabel('id').*/nodeCanvasObject((node, ctx, globalScale) => {
const label = node.case_id;
const fontSize = 10/globalScale;
ctx.font = `${fontSize}px Sans-Serif`;
const textWidth = ctx.measureText(label).width;
const bckgDimensions = [textWidth, fontSize].map(n => n + fontSize * 0.2); // some padding
ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
//ctx.fillRect(node.x - bckgDimensions[0] / 2, node.y - bckgDimensions[1] / 2, ...bckgDimensions);
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
if(label == "PDF")
{
ctx.fillStyle = 'rgba(210, 96, 83,1 )';
ctx.beginPath();
ctx.arc(node.x , node.y , 50, 0, 2 * Math.PI);
ctx.lineWidth=5;
ctx.strokeStyle="rgba(210, 96, 83, 1)";
ctx.stroke();
ctx.beginPath();
//ctx.fill();
ctx.fillStyle = 'rgba(37, 40, 40, 1)';
ctx.arc(node.x , node.y , 49, 0, 2 * Math.PI);
ctx.fill();
window.canvas = ctx;
ctx.drawImage(window.img3, node.x - 96/4, node.y - 115/4, 96/2, 115/2);
//ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
//ctx.fillText(label, node.x, node.y);
} else {
if(node.level == 0)
{
ctx.fillStyle = 'rgba(126, 212, 221, 1)';
} else {
ctx.fillStyle = 'rgba(126, 212, 221, 0.5)';
}
if(window.highlighted.indexOf(node.id) > -1)
{
ctx.fillStyle = 'rgba(210, 96, 83, 0.8)';
}
if(window.hidden.indexOf(node.id) > -1)
{
ctx.fillStyle = 'rgba(126, 212, 221, 0.1)';
}
ctx.beginPath();
if(window.nodeImportance == 'local')
{
ctx.arc(node.x , node.y , 15 *node.size, 0, 2 * Math.PI);
} else {
ctx.arc(node.x , node.y , 15 *node.weight, 0, 2 * Math.PI);
}
ctx.fill();
//ctx.drawImage(window.img, node.x - 20, node.y - 20, 40, 40);
ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
ctx.font = "bold 12pt Arial";
ctx.fillText(label, node.x, node.y);
}
});
;
$('#graph').css('display','block');
window.nodeImportance = 'local';
function radius(e)
{
if(e.id == 999999999)
{
return Graph.nodeRelSize()*25*1;
}
if(window.nodeImportance == 'local')
{
return Graph.nodeRelSize()*6.5*e.size;
} else {
return Graph.nodeRelSize()*6.5*e.weight;
}
}
Graph(document.getElementById('graph')).d3Force('collide', d3.forceCollide(radius)).d3Force("link", d3.forceLink().distance(d => 100));
});
}
</script>
<div ondragenter="dragged(event)" id="leretoframe_wrapper" style="display: none; color: #7ed4dd; background-color: rgb(37,40,40); width: 100%; height: 100%; margin-left: 100px; text-align: center;"><br/><br/><br/><br/><br/><br/><br/><br/> <br/><br/><br/><img src='https://tool.lereto.at/pdf-gray.svg' style='width: 100px; margin-left: auto; margin-right: auto;'/><br/><br/>Drop PDF here</div>
<!-- <iframe id="leretoframe" src="https://tool.lereto.at/smartfiles" style="background-color: rgb(37,40,40); width: 100%; height: 100%; margin-left: 100px"></iframe>-->
<div id="leretoframe" style="margin-left: 50px;margin-top:100px;text-align:center; color: white"><h1>UNDER CONSTRUCTION</h1><br/><br/> We are currently working on an upgrade of Smartfiles Network. <br/><br/>Stay tuned and check out our video clip: <br/><br/><iframe width="640" height="360" src="https://www.youtube.com/embed/ZM2Xwjzb3yw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<script>
function dragged(event)
{
window.ff = window.f;
}
function dragend()
{
if(window.ff)
{
if(window.ff != 1 && window.ff != 2 && window.ff != 3)
{
$('.downloadoverlay').remove();
}
$.get("/"+window.ff+".php",function(data){
window.frames[0].postMessage(data,"*");
});
}
}
document.addEventListener("drop", function( event ) {
// prevent default action (open as link for some elements)
event.preventDefault();
}, false);
window.onresize = function(){
$('#leretoframe').css('width',(jQuery(window).width()-400) + "px");
}
setTimeout(function(){
$('#leretoframe').css('width',(jQuery(window).width()-400) + "px");
},1000);
window.onresize = function(){
$('#leretoframe_wrapper').css('width',(jQuery(window).width()-400) + "px");
}
setTimeout(function(){
$('#leretoframe_wrapper').css('width',(jQuery(window).width()-400) + "px");
},1000);
</script>
<!-- Background Effect End -->
<!-- Color Layer Start -->
<!-- Color Layer End -->
<!-- SVG Shape Start -->
<div class="side-shape-holder">
<svg class="main-side-shape-desktop" viewBox="0 0 100 600" style="enable-background:new 0 0 100 600;" preserveAspectRatio="none">
<path id="main-side-path-desktop" class="main-side-path path-desktop" d="M0,0c0,0,28,21,28,44s-11,40-11,73s25,45,30,73s-29,53-29,85s64,36,64,80s-61,87-61,139c0,42,23,41,24,63c1.2,26-45,43-45,43V0z"/>
</svg>
<svg class="main-side-shape-mobile" viewBox="0 0 600 100" style="enable-background:new 0 0 600 100;" preserveAspectRatio="none">
<path id="main-side-path-mobile" class="main-side-path path-mobile" d="M600,0c0,0-21,28-44,28s-40-11-73-11s-45,25-73,30s-53-29-85-29s-36,64-80,64s-87-61-139-61c-42,0-41,23-63,24C17,46.2,0,0,0,0H600z"/>
</svg>
</div>
<!-- SVG Shape End -->
<!-- Socials Start -->
<!-- Socials End -->
<!-- Credits Start -->
<!-- Credits Start -->
</div>
<!-- Main Section Media End -->
</div>
</div>
</div>
<!-- Main Section Content End-->
</div>
<!-- Main Section End-->
</div>
<!-- Fullpage.js Sections End-->
<!-- Notify Me Popup Start -->
<div class="popup popup-light notify">
<!-- Popup Content Wrapper Start -->
<div class="popup_content">
<!-- Close Button Start -->
<a href="#0" id="notify-close" class="popup_close notify-close"></a>
<!-- Close Button End -->
<div class="container-fluid p-0 fullheight">
<div class="row no-gutters justify-content-center fullheight">
<div class="col-12 col-xl-4 fullheight">
<!-- Notify Content Start -->
<div class="popup-wrapper">
<!-- Notify Title Start -->
<div class="popup-title">
<p class="title">Get to know about our launch</p>
<span class="divider"></span>
<p class="subtitle">Subscribe to our newsletter and we will send you a notification about the launch of our brand new site.</p>
</div>
<!-- Notify Title End -->
<!-- Notify Form Container Start -->
<div class="form-container">
<!-- Reply Messages Start-->
<div class="reply-group reply-dark subscription-ok">
<i class="icon ion-ios-checkmark txt-accent-color"></i>
<p class="reply-group__title">Done!</p>
<span class="reply-group__text">Thanks for subscribing. We will send you a notification about the launch of our brand new website.</span>
</div>
<div class="reply-group reply-dark subscription-error">
<i class="icon ion-sad txt-accent-color"></i>
<p class="reply-group__title">Ooops!</p>
<span class="reply-group__text">Something went wrong. Please try again later.</span>
</div>
<!-- Reply Messages End-->
<!-- Notify Contact Form Start-->
<form class="form form-dark notify-form">
<input class="input" type="email" placeholder="Email Adress*" required>
<span class="inputs-description">*Required fields</span>
<button class="btn" type="submit">
<span class="btn-caption">Send</span>
<span class="icon ion-android-send"></span>
</button>
</form>
<!-- Notify Contact Form End-->
</div>
<!-- Notify Form Container End -->
</div>
<!-- Notify Content End -->
</div>
</div>
</div>
</div>
<!-- Popup Content Wrapper End -->
<div class="popup_background"></div>
<!-- Popup Morphing Shape Start -->
<div class="popup_shape">
<svg class="popup-transition-shape" width="100%" height="100%" viewBox="0 0 1440 800" preserveAspectRatio="none">
<path class="popup-morphing-path" d="M-22.4-87.7c-8.3,95.9,56.9,71.1,216.6,79c189.3,9.4,264.6-2.6,431.3-0.8c187.6,2,331.6-9.3,528.2-0.2c443.7,20.5,435.1-61.8,368.6-188.1C1455.9-324.1,34.5-746.7-22.4-87.7z"/>
</svg>
</div>
<!-- Popup Morphing Shape End -->
</div>
<!-- Notify Me Popup End -->
<!-- Write-a-Line Popup Start -->
<div class="popup popup-light writealine">
<!-- Popup Content Wrapper Start -->
<div class="popup_content">
<!-- Close Button Start -->
<a href="#0" id="writealine-close" class="popup_close writealine-close"></a>
<!-- Close Button End -->
<div class="container-fluid p-0 fullheight">
<div class="row no-gutters justify-content-center fullheight">
<div class="col-12 col-xl-4 fullheight">
<!-- Write-a-Line Content Start -->
<div class="popup-wrapper">
<!-- Write-a-Line Title Start -->
<div class="popup-title">
<p class="title">Just say "Hello!"</p>
<span class="divider"></span>
<p class="subtitle">Drop us a line and we will get back as soon as possible.</p>
</div>
<!-- Write-a-Line Title End -->
<!-- Write-a-Line Form Container Start -->
<div class="form-container">
<!-- Reply Group Start -->
<div class="reply-group reply-dark">
<i class="icon ion-ios-checkmark"></i>
<p class="reply-group__title"><span>Done</span>!</p>
<span class="reply-group__text">Thanks for your message. We will get back as soon as possible.</span>
</div>
<!-- Reply Group End -->
<!-- Contact Form Start -->
<form class="form form-dark writealine-form" id="writealine-form">
<!-- Hidden Required Fields -->
<input type="hidden" name="project_name" value=" Coming Soon Template"> <!-- Put Your Project Name Here -->
<input type="hidden" name="admin_email" value="support@mixdesign.club"> <!-- Put Your Email Here -->
<input type="hidden" name="form_subject" value="Contact Form Message"> <!-- Put Your Email Subject Here -->
<!-- END Hidden Required Fields-->
<input type="text" name="Name" placeholder="Your Name*" required>
<input type="email" name="E-mail" placeholder="Email Adress*">
<textarea name="Message" placeholder="A Few Words*" required></textarea>
<span class="inputs-description">*Required fields</span>
<!-- Send Button Start -->
<button class="btn">
<span class="btn-caption">Send</span>
<span class="icon ion-android-send"></span>
</button>
<!-- Send Button End -->
</form>
<!-- Contact Form End -->
</div>
<!-- Write-a-Line Form Container End -->
</div>
<!-- Write-a-Line Content End -->
</div>
</div>
</div>
</div>
<!-- Popup Content Wrapper End -->
<div class="popup_background"></div>
<!-- Popup Morphing Shape Start -->
<div class="popup_shape">
<svg class="popup-transition-shape" width="100%" height="100%" viewBox="0 0 1440 800" preserveAspectRatio="none">
<path class="popup-morphing-path" d="M-22.4-87.7c-8.3,95.9,56.9,71.1,216.6,79c189.3,9.4,264.6-2.6,431.3-0.8c187.6,2,331.6-9.3,528.2-0.2c443.7,20.5,435.1-61.8,368.6-188.1C1455.9-324.1,34.5-746.7-22.4-87.7z"/>
</svg>
</div>
<!-- Popup Morphing Shape End -->
</div>
<!-- Write-a-Line Popup End -->
<!-- Custom HTML End-->
<!-- Root element of PhotoSwipe. Must have class pswp. -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<!-- Background of PhotoSwipe.
It's a separate element, as animating opacity is faster than rgba(). -->
<div class="pswp__bg"></div>
<!-- Slides wrapper with overflow:hidden. -->
<div class="pswp__scroll-wrap">
<!-- Container that holds slides. PhotoSwipe keeps only 3 slides in DOM to save memory. -->
<!-- don't modify these 3 pswp__item elements, data is added later on. -->
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<!-- Controls are self-explanatory. Order can be changed. -->
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--share" title="Share"></button>
<!-- <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button> -->
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
<!-- element will get class pswp__preloader--active when preloader is running -->
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<!-- Load Scripts Start-->
<script src="js/libs.min.js"></script>
<script src="js/gallery-init.js"></script>
<script src="js/punchy-custom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/izimodal/1.5.1/js/iziModal.js"></script>
<script src="multirange.js"></script>
<script src="js/moment.js"></script>
<!-- Load Scripts End-->
<div id="modal" style="padding: 20px 20px 20px 20px"> <!-- data-iziModal-fullscreen="true" data-iziModal-title="Welcome" data-iziModal-subtitle="Subtitle" data-iziModal-icon="icon-home" -->
<h4>Share your case law research results</h4>
<br/><br/>
<span id="links">
</span>
</div>
<div id="modal2" style="padding: 20px 20px 20px 20px; max-height:500px;height:500px;overflow: hidden"> <!-- data-iziModal-fullscreen="true" data-iziModal-title="Welcome" data-iziModal-subtitle="Subtitle" data-iziModal-icon="icon-home" -->
<h4>Preparing PDF convolute</h4>
<div class="loader2" style="position: relative; z-index: 100000"> Loading...</div>
<br/><br/><br/><br/>
</div>
<script>
$(document).ready(function(){
$("#modal").iziModal();
$("#modal2").iziModal();
setTimeout(function(){
var url_string = window.location.href;
var url = new URL(url_string);
var c = url.searchParams.get("shareid");
if(c)
{
$.get("/getdata.php?md="+c,function(data){
window.frames[0].postMessage(data,"*");
});
}
},1000);
});
</script>
</body>
</html>