- ID de exploración:
- 67072287-3dc0-4a2d-99aa-a49c6740598fFinalizado
- URL enviada:
- https://files.fm/davidarida385/info
- Informe finalizado:
Enlaces: 1 encontrados
Los enlaces salientes identificados en la página
Enlace | Texto |
---|---|
https://lupus-tv.my.id/th/movie/1381018 | แห่ ซิ่ง วิ่ง ลุย (2024) หนังเต็ม - [Th Sub] | ดูและดาวน์โ |
Variables JavaScript: 593 encontradas
Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual
Nombre | Tipo |
---|---|
0 | object |
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
_paq | object |
gtag | function |
dataLayer | object |
filesfm_gtag_report_conversion | function |
$ | function |
jQuery | function |
Mensajes de registro de la consola: 2 encontrados
Mensajes registrados en la consola web
Tipo | Categoría | Registro |
---|---|---|
verbose | dom |
|
verbose | dom |
|
HTML
El cuerpo HTML sin procesar de la página
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html id="adaptive_html" lang="EN"><head><style class="vjs-styles-defaults">
.video-js {
width: 300px;
height: 150px;
}
.vjs-fluid:not(.vjs-audio-only-mode) {
padding-top: 56.25%
}
</style>
<meta charset="UTF-8">
<meta name="globalsign-domain-verification" content="WVoCXGP9WWz7ZO3hqGZASmZCYQ2jhO7WxIRwsepEgV">
<meta name="theme-color" content="#ffffff">
<meta name="facebook-domain-verification" content="nikti9bu56gz5oi6d126k5bloj0772">
<title>davidarida385</title>
<meta name="keywords" content="ftp file upload, file hosting, android, file cloud, cloud storage, file sharing, failu glabāšana, bilžu hostings, bilžu apmaiņa, failu apmaiņa, failu serveris, failu koplietošana, failu rezerves kopijas, failu backup, file hosting, file sharing, file exchange, file storage, image hosting, file upload, files, file share, web file hosting, internet file storage, image upload, free upload, photo sharing, online photo gallery, photos online, data backup, online backup">
<meta property="og:title" content="davidarida385">
<meta property="og:description" content="Death Whisperer 2">
<meta name="description" content="Death Whisperer 2">
<meta property="og:image" content="https://files.fm/avatars/thumb.php?i=7227270_2147483647.jpg">
<meta property="og:image:secure_url" content="https://files.fm/avatars/thumb.php?i=7227270_2147483647.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://files.fm/avatars/thumb.php?i=7227270_2147483647.jpg">
<meta property="twitter:image" content="https://files.fm/avatars/thumb.php?i=7227270_2147483647.jpg">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="350">
<meta property="og:image:height" content="290">
<meta property="og:url" content="https://files.fm/davidarida385">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Files.fm">
<meta property="fb:app_id" content="303254966461402">
<link rel="canonical" href="https://files.fm/davidarida385/info">
<link rel="alternate" hreflang="x-default" href="https://files.fm/davidarida385/info">
<link rel="alternate" hreflang="en" href="https://files.fm/davidarida385/info">
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="">
<link rel="preconnect" href="https://files.fm" crossorigin="">
<link rel="preconnect" href="https://www.google-analytics.com" crossorigin="">
<link rel="preconnect" href="https://www.googleadservices.com" crossorigin="">
<link rel="preconnect" href="https://googleads.g.doubleclick.net" crossorigin="">
<link rel="preconnect" href="https://stats.g.doubleclick.net" crossorigin="">
<link rel="preconnect" href="https://www.google.com" crossorigin="">
<link rel="preconnect" href="https://www.google.lv" crossorigin="">
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-H8LJ280FZW&l=dataLayer&cx=c&gtm=457e4bc0za200"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-1043031755&l=dataLayer&cx=c&gtm=457e4bc0za200"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=UA-1970559-6&l=dataLayer&cx=c&gtm=457e4bc0za200"></script><script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-EFZ32Z07VR&l=dataLayer&cx=c&gtm=457e4bc0za200"></script><script async="" src="//analytics.files.fm/matomo.js"></script><script>
var _paq = window._paq = window._paq || [];
_paq.push( [ 'trackPageView' ] );
_paq.push( [ 'enableLinkTracking' ] );
(function()
{
var u= '//analytics.files.fm/';
_paq.push( [ 'setTrackerUrl', u + 'matomo.php' ] );
_paq.push( [ 'setSiteId', '1' ] );
var d = document;
var g = d.createElement( 'script' );
var s = d.getElementsByTagName( 'script' )[ 0 ];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore( g, s );
} )();
</script>
<script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-1970559-10"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-1970559-10');
gtag('config', 'UA-1970559-6');
gtag('config', 'AW-1043031755');
</script>
<script src="/js/google_conversion.js?v=4"></script>
<base href="https://files.fm/">
<meta name="verify-v1" content="4MHpv5CF+UNp34oMIZOxnVwoSslLpr+5GPkxFp94Wq8=">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="all" href="/css/reset.css?v=1715343650"><link rel="stylesheet" type="text/css" media="all" href="/css/global.css?v=1722490362"><link rel="stylesheet" type="text/css" media="all" href="/css/header.css?v=1729759893"><link rel="stylesheet" type="text/css" media="all" href="/css/messages/messages.css?v=1715343651"><link rel="stylesheet" type="text/css" media="all" href="/ts/chat/dist/chat.css?v=1715343647">
<script src="/js/jquery-1.12.2.min.js?v=1715343643"></script>
<script src="/js/jquery-migrate-1.3.0.js?v=1715343643"></script>
<script src="/js/JSON/cycle.js?v=1715343642"></script> <script src="/error_handler_client?v=4"></script>
<link rel="icon" type="image/png" href="/images/logo/rebranded/favicon-192x192px.png?v=2">
<link rel="icon" type="image/svg+xml" href="/images/logo/rebranded/favicon-192x192px.svg?v=2">
<script>
var DOMAIN_NAME = 'files.fm';
var HTTP_HOST = 'files.fm';
var IS_DEV_SERVER = false;
// capitalize first letter of domain
DOMAIN_NAME = DOMAIN_NAME.charAt(0).toUpperCase() + DOMAIN_NAME.slice(1);
var lang_code = 'EN';
var DOCUMENT_IS_LOADED = false;
var MMVD = false;
var STDT = new Date().getTime();
var WEB_ROOT_PATH = '';
var FB_APP_ID = '303254966461402';
var strTranslation_LinkCopied = 'Link copied to memory';
var strSellFilesCurrency = 'USD';
$(function(){
DOCUMENT_IS_LOADED=true
var intScrollTop = $('html').scrollTop();
var intFlagHeight = $('body').hasClass('show_header_flag') ? 20 : 0;
intScrollTop = Math.max(intScrollTop, $('body').scrollTop());
if ( intScrollTop > 0 )
{
$('body').addClass('scrolled');
}
var intPrevScrollPos = intScrollTop;
var objHeaderElem = document.getElementById("header");
$(window).on('scroll', function () {
//close side menu
$( '#navbar-toggler-chb' ).prop('checked', false);
$( '#header' ).css('z-index', '');
var intScrollTop = $('html').scrollTop();
intScrollTop = Math.max(intScrollTop, $('body').scrollTop());
if ( intScrollTop > 0 )
{
$('body').addClass('scrolled');
}
else
{
$('body').removeClass('scrolled');
checkMenuItems();
}
});
$( document ).mousemove( function( event )
{
if ( ! MMVD )
{
if ( ( ( new Date().getTime() ) - STDT ) > 1000 )
{
MMVD = true;
}
}
});
});
function changeLanguage(strLangCode, strTitle)
{
var strUrl = '';
switch (strLangCode)
{
case 'lv':
strUrl = 'https://failiem.lv/davidarida385/info';
break;
case 'en':
strUrl = 'https://files.fm/davidarida385/info';
break;
case 'ru':
strUrl = 'https://ru.files.fm/davidarida385/info';
break;
case 'de':
strUrl = 'https://de.files.fm/davidarida385/info';
break;
case 'fi':
strUrl = 'https://fi.files.fm/davidarida385/info';
break;
case 'es':
strUrl = 'https://es.files.fm/davidarida385/info';
break;
case 'ko':
strUrl = 'https://ko.files.fm/davidarida385/info';
break;
case 'uk':
strUrl = 'https://ua.files.fm/davidarida385/info';
break;
}
gaev('HeaderClick', 'Lang_switch', strLangCode);
window.location = strUrl + WEB_ROOT_PATH;// + '?lng='+strLangCode;
$('.language_dropdown .activator SPAN').each(function (){
var img = $('IMG', this).clone();
$(this).html(strTitle + ' ').append(img);
});
hidePopups();
}
function gaev(strCategory, strAction, strLabel, strValue) {
if (typeof gtag != 'undefined') {
// old ga.js
//_gaq.push(['_trackEvent', strCategory, strAction, strLabel]);
// Send the event to the gtag.js Google Analytics property
// with tracking ID GA_MEASUREMENT_ID.
gtag('event', 'Events', {
'event_category': strCategory,
'event_action': strAction,
'event_label': strLabel,
'value': strValue
});
/*gtag('event', 'strEveryEventTest', {
'send_to': 'UA-1970559-10',
'event_category': 'EveryEvent',
'event_action': 'TestAction',
'event_label': 'TestLabel'
});*/
};
if ( typeof _paq != 'undefined' )
{
_paq.push( [
'trackEvent',
strCategory ,
strAction ,
strLabel ,
strValue
] );
}
}
function logClick(strButton)
{
if (typeof gtag != 'undefined')
{
//_gaq.push(['_trackEvent', 'ActionLine', strButton, 'List']);
gtag('event', 'Clicks', {
'send_to': 'UA-1970559-10',
'event_category': 'ActionLine',
'event_action': strButton,
'event_label': 'List'
});
};
}
function printAdwordsConversion(strIframeName) {
var iframe = document.createElement('iframe');
iframe.style.width = '0px';
iframe.style.height = '0px';
document.body.appendChild(iframe);
iframe.src = 'https://files.fm/server_scripts/google_adwords/'+ strIframeName +'.php';
}
</script>
<script>
var IS_MOBILE = false;
</script>
<!-- IE less than 9 -->
<!--[if lt IE 9]>
<script type="text/javascript" src="./js/html5.js"></script>
<script type="text/javascript" src="./js/css3-mediaqueries.js"></script>
<![endif]-->
<script> var tb_lang = new Object(); tb_lang["close"] = "Close"; tb_lang["or_esc_key"] = "or press the Esc key"; </script>
<script>
Math._round = function(number, precision)
{
precision = Math.abs(parseInt(precision)) || 0;
var coefficient = Math.pow(10, precision);
return Math.round(number*coefficient)/coefficient;
}
function file_size_format (filesize, intPrecision, bolShowBits=false )
{
if ( bolShowBits )
{
filesize = filesize * 8;
}
if (typeof(intPrecision) == 'undefined' || intPrecision==null)
intPrecision = 2;
if (filesize >= 1073741824)
{
filesize = Math._round(filesize / 1073741824, 2).toFixed(intPrecision) + ' G';
}
else
{
if (filesize >= 1048576)
{
filesize = Math._round(filesize / 1048576, 2).toFixed(intPrecision) + ' M';
}
else
{
if (filesize >= 1024)
{
filesize = Math._round(filesize / 1024, 0).toFixed(intPrecision) + ' K';
}
else
{
filesize = filesize.toFixed(intPrecision) + ' ';
};
};
};
if ( bolShowBits )
{
filesize += 'bits';
}
else
{
filesize += 'B';
}
return filesize;
};
</script>
<script>
/**
* @param strEmails - one or more emails delimited with ","
* @param bolIsSingleEmail - is strEmails only one email
*/
function EmailValidator(strEmails, bolIsSingleEmail)
{
this.state = EmailValidator.states.READY;
this.strSuggestedEmails = "";
this.strEmails = strEmails.trim();
this.strNoMxEmails = "";
this.strInputID = "";
this.bolIsSingleEmail = bolIsSingleEmail;
// set default invalid cb
this.setOnInvalidCB(function(){});
this.strErrorClass = "has-error";
}
EmailValidator.regexTest = function(email)
{
var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test( email )
// disallow single quotes
&& email.indexOf( "'" ) === -1;
};
//<editor-fold desc="Setters">
/**
* this.onValidCB and this.onInvalidCB and this.setOnSuggestionCB execution order:
* 1. remove this.strErrorClass from this.strInputID
* 2. show or hide modal - only for onInvalid and onValid
* 3. run callback
*/
EmailValidator.prototype.setOnValidCB = function (onValidCB)
{
this.onValidCB = applyTo(this, function ()
{
if (this.strModalID && $('#' + this.strModalID).css('opacity') == 0)
{
showModal(this.strModalID);
}
this.removeClassFromInput();
onValidCB();
});
return this;
};
EmailValidator.prototype.setOnInvalidCB = function (onInvalidCB)
{
this.onInvalidCB = applyTo(this, function ( strInvalidEmails)
{
if( typeof strInvalidEmails === 'undefined' )
{
strInvalidEmails = '';
}
if (this.strModalID && $('#' + this.strModalID).css('opacity') == 0)
{
showModal(this.strModalID);
}
this.addErrorClassToInput();
onInvalidCB(strInvalidEmails);
});
return this;
};
EmailValidator.prototype.setOnSuggestionCB = function (onSuggestionCB)
{
this.revalidate = function ()
{
this.addErrorClassToInput();
onSuggestionCB();
};
return this;
};
EmailValidator.prototype.setModalID = function (strModalID)
{
this.strModalID = strModalID;
return this;
};
EmailValidator.prototype.setInputID = function (strInputID)
{
this.strInputID = strInputID;
return this;
};
EmailValidator.prototype.setErrorClass = function (strErrorClass)
{
this.strErrorClass = strErrorClass;
return this;
};
//</editor-fold>
EmailValidator.prototype.onTooManyEmails = function ()
{
fError("You cannot send more than 5 emails at one time.", "", "OK", applyTo(this, this.onInvalidCB));
};
/**
* adds this.strErrorClass to element with ID this.strInputID
*/
EmailValidator.prototype.addErrorClassToInput = function ()
{
if (this.strInputID)
{
$("#" + this.strInputID).addClass(this.strErrorClass);
}
};
/**
* removes this.strErrorClass from element with ID this.strInputID
*/
EmailValidator.prototype.removeClassFromInput = function ()
{
if (this.strInputID)
{
$("#" + this.strInputID).removeClass(this.strErrorClass);
}
};
EmailValidator.prototype.run = function ()
{
if(this.strEmails === "")
{
this.state = EmailValidator.states.INVALID;
this.onInvalidCB();
return;
}
// onValid, onInvalid and strEmails are necessary!
if (!this.onValidCB || !this.onInvalidCB)
{
throw new Error("EmailValidator is missing essential data!");
}
var emails;
// check if not over allowed email count
if( !this.bolIsSingleEmail )
{
emails = this.strEmails.split(",");
if( emails.length > 50 ) {
this.state = EmailValidator.states.TOO_MANY_EMAILS;
this.onTooManyEmails();
return;
}
}
else
{
emails = [ this.strEmails ];
}
// test emails against email regex before posting them
for (var i in emails)
{
if ( emails.hasOwnProperty(i) && !EmailValidator.regexTest( emails[i].trim() ) )
{
this.state = EmailValidator.states.INVALID;
this.onInvalidCB( emails[i].trim() );
return;
}
}
this.state = EmailValidator.states.RUNNING;
$.post('/chkMail.php', {'q': this.strEmails}, applyTo(this, this.onResponse));
};
EmailValidator.prototype.onResponse = function (data)
{
var arrReturn = JSON.parse(data);
if (arrReturn['result'] === 0)
{
this.state = EmailValidator.states.VALID;
this.onValidCB(this);
}
else if(arrReturn['result'] === EmailValidator.states.INVALID)
{
this.state = EmailValidator.states.INVALID;
this.onInvalidCB();
}
else if (arrReturn['result'] === 2)
{
this.strSuggestedEmails = arrReturn['suggest'];
if (arrReturn['no_mx'])
{
this.strNoMxEmails = arrReturn['no_mx'];
this.state = EmailValidator.states.MISSING_MX_RECORDS;
}
else
{
this.state = EmailValidator.states.POSSIBLE_TYPO;
}
// this calls onSuggestionCB
this.revalidate();
}
else if (arrReturn['result'] === 4)
{
this.state = EmailValidator.states.TOO_MANY_EMAILS;
this.onTooManyEmails();
}
};
EmailValidator.prototype.revalidate = function ()
{
// add typo suggestions and emails with no mx records to string
var strMsg = '';
if (this.strSuggestedEmails !== '')
{
strMsg += "Did you mean:";
strMsg += " " + this.strSuggestedEmails + "?\n";
}
if (this.strNoMxEmails !== '')
{
if(this.bolIsSingleEmail)
{
strMsg += "It\u2019s possible that this e-mail address is incorrect:" }
else
{
strMsg += "These e-mail addresses might be invalid:" }
strMsg += " " + this.strNoMxEmails + ".\n";
}
if(this.bolIsSingleEmail)
{
strMsg += "Please check the email you have entered! If it is correct, click OK.";
}
else
{
strMsg += "Please verify that the entered e-mails are correct! If all e-mails are correct, press OK.";
}
this.addErrorClassToInput();
// hide the original modal to avoid overlapping
if (this.strModalID && $('#'+this.strModalID).css('opacity') == 1)
{
hideModal(this.strModalID);
}
fConfirm(
strMsg,
"Check the email address you entered",
"OK",
"Cancel",
applyTo(this, function ( bolResult)
{
// execute onInvalid only if user declines
if (bolResult === false)
{
this.state = EmailValidator.states.INVALID;
this.onInvalidCB();
}
}),
applyTo(this, function ()
{
this.state = EmailValidator.states.ACCEPTED_TYPO;
this.onValidCB();
}, this)
);
};
EmailValidator.prototype.isSubmittable = function ()
{
return [EmailValidator.states.VALID, EmailValidator.states.ACCEPTED_TYPO].indexOf(this.state) !== -1;
};
EmailValidator.states = {
READY: -2, // initial state
RUNNING: -1, // request has started and server has not responded yet
// => onValidCB
VALID: 0,
// => onInvalidCB
INVALID: 1,
// => revalidate => onSuggestionCB
POSSIBLE_TYPO: 2, // there are typos in the submitted emails
MISSING_MX_RECORDS: 3, // some emails have missing mx records
TOO_MANY_EMAILS: 4, // too many emails are submitted
// => revalidate => onSuggestionCB (clicked OK) => onValid
ACCEPTED_TYPO: 5 // typo was spotted but user dismissed it
};
// the function is defined in functions.js, but because this script is included in bergafoto, lets check to make sure.
if ( typeof applyTo !== 'function' )
{
/**
* Magic function that makes vanilla JS objects usable
* - execute fn in the context of $this with passed parameters
* - you can also pass parameters to the fn that is returned, they will be added to the fn call
* @param $this - Object scope
* @param fn - Object method to execute
* @param var1 - first parameter to be passed to fn
* @returns {Function}
*/
window.applyTo = function( $this, fn, var1 )
{
if ( !$this )
{
throw new Error( "Invalid usage of closure function, scope must be defined." );
}
if ( !fn )
{
throw new Error( "Invalid usage of closure function, fn must be defined." );
}
var finalArgs = [];
// skip first 3 arguments (callee, $this, fn)
for ( var i = 2; i < arguments.length; ++i )
{
// add to list of args
finalArgs.push( arguments[ i ] );
}
return function ()
{
// add all arguments
for ( var i = 0; i < arguments.length; ++i )
{
finalArgs.push( arguments[ i ] );
}
// first arguments will be the ones passed to closure, then the ones passed to this function
return fn.apply( $this, finalArgs );
};
}
}
</script>
<link rel="stylesheet" type="text/css" media="all" href="/bootstrap/css/dropdown.css?v=1715343645"><link rel="stylesheet" type="text/css" media="all" href="/css/global_facelift.css?v=1720449903"><link rel="stylesheet" type="text/css" media="all" href="/css/inputs.css?v=1717752354"><link rel="stylesheet" type="text/css" media="all" href="/js/jquery-ui-1.12.1.custom/jquery-ui.min.css?v=1715343640"><link rel="stylesheet" type="text/css" media="all" href="/css/thickbox.css?v=1715343651"><link rel="stylesheet" type="text/css" media="all" href="/css/modal.css?v=1715343648"><link rel="stylesheet" type="text/css" media="all" href="/css/font-awesome-new/css/font-awesome.min.css?v=1715343648"><link rel="stylesheet" type="text/css" media="all" href="/css/font-awesome-pro/css/light.min.css?v=1715343650"><link rel="stylesheet" type="text/css" media="all" href="/css/font-awesome-pro/css/brands.min.css?v=1715343650"><link rel="stylesheet" type="text/css" media="all" href="/css/font-awesome-pro/css/fontawesome.min.css?v=1715343649"><link rel="stylesheet" type="text/css" media="all" href="/css/alert.css?v=1715343648">
<script src="/js/jquery.cookie.js?v=1715343634"></script>
<script src="/js/jquery-ui-1.12.1.custom/jquery-ui.js?v=1715343640"></script>
<script src="/js/global.js?v=1727422596"></script>
<script src="/js/info_tooltips.js?v=1722490360"></script>
<script src="/js/jquery-ui-1.11.4.custom/jquery-ui.min.js?v=1715343634"></script>
<script src="/js/event.js?v=1715343644"></script>
<script src="/js/functions.js?v=1715343642"></script>
<script src="/js/thickbox.js?v=1715343642"></script>
<script src="/js/modal.js?v=1715343639"></script>
<script src="/js/alert.js?v=1715343643"></script><link rel="stylesheet" type="text/css" media="all" href="/css/stripe_payment_form.css?v=1715343648">
<script src="/js/stripe_payment_form.js?v=1720712236"></script>
<script>
var PHPSESSID = 'a38f344e4cb305a050cfe761f696af64db3161f4';
var STRIPE_PUBLIC_KEY = 'pk_live_qdaFEN4KBX40UvEYnwlKCIX8';
var STRIPE_LOCALE = 'auto';
var arrStripePaymentFormErrorMsg = {
'FinishOrder' : 'An error occurred while processing the order. Please contact [email protected]!' ,
'Processing' : 'An error occurred while processing the payment. Please try again or contact [email protected]!' ,
'InvalidData' : 'Please enter valid payment card details!' ,
'BankDeclined' : 'An error occurred while processing payment - your bank declined the payment. Please check if your bank account has enough funds; if your payment card is authorized to make payments on the Internet. Or contact your bank, or use another payment card.' ,
'NotEnoughFunds' : 'Your bank account does not have enough funds. Please supplement the account or use another payment card!' ,
'InvalidCVV' : 'Please check and enter a valid payment card CVV code!' ,
'AlreadyPaid' : 'Thank you, payment has already been received.' ,
};
</script> </head>
<body class="lang_en use_vh hide_main_menu">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N9HRMM7"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5ZNTW54" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<script>
jQuery.fn.shake = function(interval,distance,times){
interval = typeof interval == "undefined" ? 100 : interval;
distance = typeof distance == "undefined" ? 10 : distance;
times = typeof times == "undefined" ? 3 : times;
var jTarget = $(this);
jTarget.css('position','relative');
for(var iter=0;iter<(times+1);iter++){
jTarget.animate({ left: ((iter%2==0 ? distance : distance*-1))}, interval);
}
return jTarget.animate({ left: 0},interval);
}
$( window ).bind( 'load', function()
{
const strUrlParams = new URLSearchParams(window.location.search);
if( strUrlParams.has('coupon') || strUrlParams.has('kupons') )
{
showCreateAccount();
adaptFormForCoupon();
}
} );
</script>
<iframe height="0" width="0" style="display: none; visibility: hidden;"></iframe><div id="container" class="filesfm ">
<noscript>
<table class="alert_container alert_container_danger" style="display: block">
<tr>
<td>
<i class="fa fa-exclamation-circle"></i>
</td>
<td>
<div class="alert_main_text">
Your browser does not support Javascript. To use this page turn on JavaScript or use another browser. </div>
</td>
</tr>
</table>
</noscript>
<script src="/js/Captcha/Google/LazyGoogleReCaptchaV2.js"></script>
<script>
objLazyGoogleReCaptchaV2.strLanguageKey = "en";
objLazyGoogleReCaptchaV2.strSiteKey = "6LflqXQUAAAAAP2CM782IqIgjzooEt9soXTCwxX2";
</script>
<link rel="stylesheet" type="text/css" media="all" href="/css/sign_in_form.css?v=35">
<div id="sign-in" class="modal-container" tabindex="-1" role="dialog" aria-labelledby="createaccount-header signin-header" aria-hidden="true" style="display:none">
<div class="modal-inner">
<!-- START : Header -->
<div id="sign-in-header">
<span id="signin-header" onclick="if( !$( '#signin-modal-content' ).is( ':visible' ) ) showSignIn(); return false;">
Log in <img id="signin-header_icon_inactive" src="/images/signup_form/log_in.svg?v=2" alt="Login to upload files">
<img id="signin-header_icon_active" src="/images/signup_form/log_in_blue.svg?v=2" alt="Login to upload files">
</span>
<span id="createaccount-header" onclick="if( !$('#createaccount-modal-content').is(':visible')) showCreateAccount(); return false;">
Sign up </span>
</div>
<!-- END : Header -->
<div id="createaccount-referral-container" style="display:none">
<span class="referrer-container">
You have been invited by <span id="createaccount-referral-referrer"></span> to create account and get 1GB </span>
<hr>
</div>
<div id="createaccount-message-container">
<table class="alert_container alert_container_danger">
<tbody><tr>
<td><i class="fa fa-exclamation-circle"></i></td>
<td><div class="alert_main_text"></div></td>
</tr>
</tbody></table>
</div>
<!-- START : Create account form -->
<div id="createaccount-modal-content" class="modal-content">
<div class="info"></div>
<!-- START : Social create account -->
<div class="signin-modal-content-social">
<div class="signin-modal-content-social-title">Create free account:</div>
<div class="signin-modal-content-social-buttons-container signin-modal-content-social-buttons-container-2-buttons">
<!--
<div class="fb_button social_login_button" onclick="checkSocialLogin('facebook');">
<img src="/images/signup_form/login-facebook.svg?v=2" alt="Sign up with Facebook to upload files for free">
<span>Facebook</span>
</div>
-->
<div class="standard_button google_button social_login_button" onclick="checkSocialLogin('google');">
<img src="/images/signup_form/login-google.svg?v=2" alt="Sign up with Google to upload files for free">
<span>Google</span>
</div>
<div class="standard_button ms_button social_login_button" onclick="checkSocialLogin('microsoft');">
<img src="/images/signup_form/login-microsoft.svg" alt="Sign up with Microsoft to upload files for free">
<span>Microsoft</span>
</div>
<div class="justify_el"></div>
</div>
</div>
<!-- END : Social create account -->
<div class="or-delimiter">
or </div>
<!-- START : Simple create account -->
<div id="createaccount-simple-container">
<input id="createaccount-referral-hash" name="inviter_hash" type="hidden">
<input id="createaccount-referral-user" name="inviter_user" type="hidden">
<div id="register_coupon_code">
<div class="input-label">
<label for="register_coupon_code_input">Coupon code</label>
<input id="register_coupon_code_input" name="coupon_code" type="text">
</div>
<div class="createaccount-input-container"></div>
</div>
<div class="no-coupon-link">
<a href="" onclick="revertFormFromCoupon(); return false">I do not have a coupon code »</a>
</div>
<div class="input-label">
<label for="createaccount_name">First name</label>
<input id="createaccount_name" name="createaccount_name" type="text" autocomplete="off">
</div>
<div class="input-label">
<label for="createaccount_surname">Last name</label>
<input id="createaccount_surname" name="createaccount_surname" type="text" autocomplete="off">
</div>
<div class="input-label">
<label for="createaccount_email">E-mail</label>
<input id="createaccount_email" name="createaccount_email" type="email" autocomplete="off" onchange="createUsername(this.value);">
</div>
<div class="input-label">
<label for="createaccount_password">Password</label>
<input id="createaccount_password" name="createaccount_password" type="password" autocomplete="off">
</div>
<div class="justify_el"></div>
<!--
<div id="business_account_chechbox_container">
<input id="create_business_account" type="checkbox" onchange="toggleCreateBusinessAccount()">
<label for="create_business_account">I might need business features, I’d like to know more</label>
</div>
<div id="create_business_account_container">
<input id="createaccount_company_name" name="createaccount_company_name" type="text" autocomplete="off" placeholder="Company name" />
<input id="createaccount_company_phone" name="createaccount_company_phone" type="text" autocomplete="off" placeholder="Phone number" />
<select name="createaccount_company_country" id="createaccount_company_country">
<option value="">Country</option>
<option value="Afghanistan" >Afghanistan</option>
<option value="Albania" >Albania</option>
<option value="Algeria" >Algeria</option>
<option value="American Samoa" >American Samoa</option>
<option value="Andorra" >Andorra</option>
<option value="Angola" >Angola</option>
<option value="Anguilla" >Anguilla</option>
<option value="Antarctica" >Antarctica</option>
<option value="Antigua and Barbuda" >Antigua and Barbuda</option>
<option value="Argentina" >Argentina</option>
<option value="Armenia" >Armenia</option>
<option value="Aruba" >Aruba</option>
<option value="Australia" >Australia</option>
<option value="Austria" >Austria</option>
<option value="Azerbaijan" >Azerbaijan</option>
<option value="Bahamas" >Bahamas</option>
<option value="Bahrain" >Bahrain</option>
<option value="Bangladesh" >Bangladesh</option>
<option value="Barbados" >Barbados</option>
<option value="Belarus" >Belarus</option>
<option value="Belgium" >Belgium</option>
<option value="Belize" >Belize</option>
<option value="Benin" >Benin</option>
<option value="Bermuda" >Bermuda</option>
<option value="Bhutan" >Bhutan</option>
<option value="Bolivia" >Bolivia</option>
<option value="Bonaire, Saint Eustatius and Saba" >Bonaire, Saint Eustatius and Saba</option>
<option value="Bosnia and Herzegovina" >Bosnia and Herzegovina</option>
<option value="Botswana" >Botswana</option>
<option value="Bouvet Island" >Bouvet Island</option>
<option value="Brazil" >Brazil</option>
<option value="British Indian Ocean Territory" >British Indian Ocean Territory</option>
<option value="British Virgin Islands" >British Virgin Islands</option>
<option value="Brunei" >Brunei</option>
<option value="Bulgaria" >Bulgaria</option>
<option value="Burkina Faso" >Burkina Faso</option>
<option value="Burundi" >Burundi</option>
<option value="Cambodia" >Cambodia</option>
<option value="Cameroon" >Cameroon</option>
<option value="Canada" >Canada</option>
<option value="Cape Verde" >Cape Verde</option>
<option value="Cayman Islands" >Cayman Islands</option>
<option value="Central African Republic" >Central African Republic</option>
<option value="Chad" >Chad</option>
<option value="Chile" >Chile</option>
<option value="China" >China</option>
<option value="Christmas Island" >Christmas Island</option>
<option value="Cocos [Keeling] Islands" >Cocos [Keeling] Islands</option>
<option value="Colombia" >Colombia</option>
<option value="Comoros" >Comoros</option>
<option value="Congo [DRC]" >Congo [DRC]</option>
<option value="Congo [Republic]" >Congo [Republic]</option>
<option value="Cook Islands" >Cook Islands</option>
<option value="Costa Rica" >Costa Rica</option>
<option value="Croatia" >Croatia</option>
<option value="Cuba" >Cuba</option>
<option value="Curacao" >Curacao</option>
<option value="Cyprus" >Cyprus</option>
<option value="Czech Republic" >Czech Republic</option>
<option value="Denmark" >Denmark</option>
<option value="Djibouti" >Djibouti</option>
<option value="Dominica" >Dominica</option>
<option value="Dominican Republic" >Dominican Republic</option>
<option value="East Timor" >East Timor</option>
<option value="Ecuador" >Ecuador</option>
<option value="Egypt" >Egypt</option>
<option value="El Salvador" >El Salvador</option>
<option value="Equatorial Guinea" >Equatorial Guinea</option>
<option value="Eritrea" >Eritrea</option>
<option value="Estonia" >Estonia</option>
<option value="Ethiopia" >Ethiopia</option>
<option value="Falkland Islands" >Falkland Islands</option>
<option value="Faroe Islands" >Faroe Islands</option>
<option value="Fiji" >Fiji</option>
<option value="Finland" >Finland</option>
<option value="France" >France</option>
<option value="French Guiana" >French Guiana</option>
<option value="French Polynesia" >French Polynesia</option>
<option value="French Southern Territories" >French Southern Territories</option>
<option value="Gabon" >Gabon</option>
<option value="Gambia" >Gambia</option>
<option value="Georgia" >Georgia</option>
<option value="Germany" >Germany</option>
<option value="Ghana" >Ghana</option>
<option value="Gibraltar" >Gibraltar</option>
<option value="Greece" >Greece</option>
<option value="Greenland" >Greenland</option>
<option value="Grenada" >Grenada</option>
<option value="Guadeloupe" >Guadeloupe</option>
<option value="Guam" >Guam</option>
<option value="Guatemala" >Guatemala</option>
<option value="Guernsey" >Guernsey</option>
<option value="Guinea" >Guinea</option>
<option value="Guinea-Bissau" >Guinea-Bissau</option>
<option value="Guyana" >Guyana</option>
<option value="Haiti" >Haiti</option>
<option value="Heard Island and McDonald Island" >Heard Island and McDonald Island</option>
<option value="Honduras" >Honduras</option>
<option value="Hong Kong" >Hong Kong</option>
<option value="Hungary" >Hungary</option>
<option value="Iceland" >Iceland</option>
<option value="India" >India</option>
<option value="Indonesia" >Indonesia</option>
<option value="Iran" >Iran</option>
<option value="Iraq" >Iraq</option>
<option value="Ireland" >Ireland</option>
<option value="Isle of Man" >Isle of Man</option>
<option value="Israel" >Israel</option>
<option value="Italy" >Italy</option>
<option value="Ivory Coast" >Ivory Coast</option>
<option value="Jamaica" >Jamaica</option>
<option value="Japan" >Japan</option>
<option value="Jersey" >Jersey</option>
<option value="Jordan" >Jordan</option>
<option value="Kazakhstan" >Kazakhstan</option>
<option value="Kenya" >Kenya</option>
<option value="Kiribati" >Kiribati</option>
<option value="Kosovo" >Kosovo</option>
<option value="Kuwait" >Kuwait</option>
<option value="Kyrgyzstan" >Kyrgyzstan</option>
<option value="Laos" >Laos</option>
<option value="Latvia" >Latvia</option>
<option value="Lebanon" >Lebanon</option>
<option value="Lesotho" >Lesotho</option>
<option value="Liberia" >Liberia</option>
<option value="Libya" >Libya</option>
<option value="Liechtenstein" >Liechtenstein</option>
<option value="Lithuania" >Lithuania</option>
<option value="Luxembourg" >Luxembourg</option>
<option value="Macau" >Macau</option>
<option value="Macedonia" >Macedonia</option>
<option value="Madagascar" >Madagascar</option>
<option value="Malawi" >Malawi</option>
<option value="Malaysia" >Malaysia</option>
<option value="Maldives" >Maldives</option>
<option value="Mali" >Mali</option>
<option value="Malta" >Malta</option>
<option value="Marshall Islands" >Marshall Islands</option>
<option value="Martinique" >Martinique</option>
<option value="Mauritania" >Mauritania</option>
<option value="Mauritius" >Mauritius</option>
<option value="Mayotte" >Mayotte</option>
<option value="Mexico" >Mexico</option>
<option value="Micronesia" >Micronesia</option>
<option value="Moldova" >Moldova</option>
<option value="Monaco" >Monaco</option>
<option value="Mongolia" >Mongolia</option>
<option value="Montenegro" >Montenegro</option>
<option value="Montserrat" >Montserrat</option>
<option value="Morocco" >Morocco</option>
<option value="Mozambique" >Mozambique</option>
<option value="Myanmar [Burma]" >Myanmar [Burma]</option>
<option value="Namibia" >Namibia</option>
<option value="Nauru" >Nauru</option>
<option value="Nepal" >Nepal</option>
<option value="Netherlands" >Netherlands</option>
<option value="Netherlands Antilles" >Netherlands Antilles</option>
<option value="New Caledonia" >New Caledonia</option>
<option value="New Zealand" >New Zealand</option>
<option value="Nicaragua" >Nicaragua</option>
<option value="Niger" >Niger</option>
<option value="Nigeria" >Nigeria</option>
<option value="Niue" >Niue</option>
<option value="Norfolk Island" >Norfolk Island</option>
<option value="North Korea" >North Korea</option>
<option value="Northern Mariana Islands" >Northern Mariana Islands</option>
<option value="Norway" >Norway</option>
<option value="Oman" >Oman</option>
<option value="Pakistan" >Pakistan</option>
<option value="Palau" >Palau</option>
<option value="Palestinian Territories" >Palestinian Territories</option>
<option value="Panama" >Panama</option>
<option value="Papua New Guinea" >Papua New Guinea</option>
<option value="Paraguay" >Paraguay</option>
<option value="Peru" >Peru</option>
<option value="Philippines" >Philippines</option>
<option value="Pitcairn Islands" >Pitcairn Islands</option>
<option value="Poland" >Poland</option>
<option value="Portugal" >Portugal</option>
<option value="Puerto Rico" >Puerto Rico</option>
<option value="Qatar" >Qatar</option>
<option value="Romania" >Romania</option>
<option value="Russian Federation" >Russian Federation</option>
<option value="Rwanda" >Rwanda</option>
<option value="Réunion" >Réunion</option>
<option value="Saint Barthélemy" >Saint Barthélemy</option>
<option value="Saint Helena" >Saint Helena</option>
<option value="Saint Kitts and Nevis" >Saint Kitts and Nevis</option>
<option value="Saint Lucia" >Saint Lucia</option>
<option value="Saint Martin" >Saint Martin</option>
<option value="Saint Pierre and Miquelon" >Saint Pierre and Miquelon</option>
<option value="Saint Vincent and the Grenadines" >Saint Vincent and the Grenadines</option>
<option value="Samoa" >Samoa</option>
<option value="San Marino" >San Marino</option>
<option value="Saudi Arabia" >Saudi Arabia</option>
<option value="Senegal" >Senegal</option>
<option value="Serbia" >Serbia</option>
<option value="Serbia and Montenegro" >Serbia and Montenegro</option>
<option value="Seychelles" >Seychelles</option>
<option value="Sierra Leone" >Sierra Leone</option>
<option value="Singapore" >Singapore</option>
<option value="Sint Maarten" >Sint Maarten</option>
<option value="Slovakia" >Slovakia</option>
<option value="Slovenia" >Slovenia</option>
<option value="Solomon Islands" >Solomon Islands</option>
<option value="Somalia" >Somalia</option>
<option value="South Africa" >South Africa</option>
<option value="South Georgia and the South Sandwich Islands" >South Georgia and the South Sandwich Islands</option>
<option value="South Korea" >South Korea</option>
<option value="Spain" >Spain</option>
<option value="Sri Lanka" >Sri Lanka</option>
<option value="Sudan" >Sudan</option>
<option value="Suriname" >Suriname</option>
<option value="Svalbard and Jan Mayen" >Svalbard and Jan Mayen</option>
<option value="Swaziland" >Swaziland</option>
<option value="Sweden" >Sweden</option>
<option value="Switzerland" >Switzerland</option>
<option value="Syria" >Syria</option>
<option value="São Tomé and Príncipe" >São Tomé and Príncipe</option>
<option value="Taiwan" >Taiwan</option>
<option value="Tajikistan" >Tajikistan</option>
<option value="Tanzania" >Tanzania</option>
<option value="Thailand" >Thailand</option>
<option value="Togo" >Togo</option>
<option value="Tokelau" >Tokelau</option>
<option value="Tonga" >Tonga</option>
<option value="Trinidad and Tobago" >Trinidad and Tobago</option>
<option value="Tunisia" >Tunisia</option>
<option value="Turkey" >Turkey</option>
<option value="Turkmenistan" >Turkmenistan</option>
<option value="Turks and Caicos Islands" >Turks and Caicos Islands</option>
<option value="Tuvalu" >Tuvalu</option>
<option value="U.S. Minor Outlying Islands" >U.S. Minor Outlying Islands</option>
<option value="U.S. Virgin Islands" >U.S. Virgin Islands</option>
<option value="Uganda" >Uganda</option>
<option value="Ukraine" >Ukraine</option>
<option value="United Arab Emirates" >United Arab Emirates</option>
<option value="United Kingdom" >United Kingdom</option>
<option value="United States" selected>United States</option>
<option value="Uruguay" >Uruguay</option>
<option value="Uzbekistan" >Uzbekistan</option>
<option value="Vanuatu" >Vanuatu</option>
<option value="Vatican City" >Vatican City</option>
<option value="Venezuela" >Venezuela</option>
<option value="Viet Nam" >Viet Nam</option>
<option value="Wallis and Futuna" >Wallis and Futuna</option>
<option value="Western Sahara" >Western Sahara</option>
<option value="Yemen" >Yemen</option>
<option value="Zambia" >Zambia</option>
<option value="Zimbabwe" >Zimbabwe</option>
<option value="Åland Islands" >Åland Islands</option>
</select>
<div class="justify_el"></div>
</div>
-->
<!--
<div id="your_public_profile_container_info_before">
You can use your pofile page to publish and receive files </div>-->
<div id="your_public_profile_container">
<div id="your_public_profile_label_text_before">
Your profile:
</div>
<div id="your_public_profile_label">
<span id="your_public_profile_label_text">
Your profile:
</span>
<span id="your_public_profile_label_host">
https://files.fm/ </span>
</div>
<div id="your_public_profile_field_input">
<input id="createaccount_username" name="createaccount_username" type="text" autocomplete="off" placeholder="Username" onkeyup="usernameChanged();">
</div>
</div>
<div id="createaccount_coupon_info" onclick="showSignIn()">
I already have a Files.fm account » </div>
<div id="createaccount_error_msg" class="error_msg"></div>
<div class="sign_in_captcha" id="createaccount_captcha">
<div class="google-recaptcha-v2-container" id="9827A10E-BFAB-BFB6-2F0C-6B01AA6F201C"></div> <script>
function loadCreateAccountCaptcha()
{
(function () {
var init = function (){
// Wait for include to load
if ( typeof(objLazyGoogleReCaptchaV2) !== "undefined" )
{
objLazyGoogleReCaptchaV2.initInstance (
"9827A10E-BFAB-BFB6-2F0C-6B01AA6F201C",
captchaCreateAccountLoaded,
captchaCreateAccountSubmitted
)
}
else
{
setTimeout(init, 50);
}
};
init();
})();
}
</script>
</div>
<div class="sign_in_submit_bn" onclick="checkCreateAccountForm();">
Sign up <img src="/images/signup_form/sign_up.svg" alt="Sign up to upload files for free">
</div>
<div id="createaccount-modal-link-container">
<a id="createaccount-modal-coupon-link" href="javascript:void(0)" onclick="adaptFormForCoupon()">
<span>Use a coupon</span>
</a>
</div>
<div id="createaccount_info">
By using this website, you agree to the terms and data processing: <a href="/terms?source=sign-up" target="_blank">Learn more »</a> </div>
<div id="createaccount_info_ico">
Registred users can store and access files for unlimited time and choose to publish them in their profile. <a href="/storage-plans" target="_blank">More info »</a> </div>
<!--
<div id="createaccount_termsandcondtotions_hr"></div>
<div id="createaccount_termsandcondtotions">
By signing up, you agree to our <a href="/terms" target="blank">terms of use »</a>
</div>
-->
<div id="createaccount_termsandcondtotions_ico">
By signing up, you agree to our <a href="/terms" target="blank">terms of use »</a> </div>
<input id="register_from_ico" type="hidden" name="from_ico" value="0">
<input type="hidden" name="login_return_url" class="login_return_url" value="">
<input type="hidden" name="dont_redirect_after_login" class="dont_redirect_after_login" value="">
</div>
<!-- END : Simple create account -->
</div>
<!-- END : Create account form -->
<!-- START : Sign in form -->
<div id="signin-modal-content" class="modal-content">
<table id="signin-modal-content-error" class="alert_container alert_container_info">
<tbody><tr>
<td>
<i class="fa fa-exclamation-circle"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
<!-- START : Social sign in -->
<div class="signin-modal-content-social">
<div class="signin-modal-content-social-title">Choose sign-in method:</div>
<div class="signin-modal-content-social-buttons-container">
<div class="standard_button fb_button social_login_button" onclick="checkSocialLogin('facebook');">
<img src="/images/signup_form/login-facebook.svg?v=2" alt="Login with Facebook to upload files for free">
<span>Facebook</span>
</div>
<div class="standard_button google_button social_login_button" onclick="checkSocialLogin('google');">
<img src="/images/signup_form/login-google.svg?v=2" alt="Login with Google to upload files for free">
<span>Google</span>
</div>
<div class="standard_button ms_button social_login_button" onclick="checkSocialLogin('microsoft');">
<img src="/images/signup_form/login-microsoft.svg" alt="Sign up with Microsoft to upload files for free">
<span>Microsoft</span>
</div>
<div class="justify_el"></div>
</div>
</div>
<!-- END : Social sign in -->
<div class="or-delimiter">
or </div>
<!-- START : Simple sign in -->
<div id="signin-modal-content-simple">
<form onsubmit="checkSignInForm(); return false;" id="login_filesfm">
<div id="signin_input_container">
<div class="input-label l_coupon_code">
<label for="l_coupon_code">Coupon code</label>
<input id="l_coupon_code" name="coupon_code" type="text">
</div>
<div class="no-coupon-link">
<a href="" onclick="revertFormFromCoupon(); return false">I do not have a coupon code »</a>
</div>
<div class="input-label">
<label for="l_user">Username or e-mail</label>
<input id="l_user" name="l_user" type="text">
</div>
<div class="input-label">
<label for="l_pass">Password</label>
<input id="l_pass" name="l_pass" type="password">
</div>
<div class="justify_el"></div>
</div>
<a id="signin-modal-forgot-link" href="" onclick="showForgotPassword(); return false">
<span>Forgot password?</span>
</a>
<div id="signin_coupon_info" onclick="showCreateAccount()">
I do not have a Files.fm account » </div>
<div id="signin_error_msg" class="error_msg"></div>
<input type="submit" style="display: none;">
<div class="sign_in_submit_bn" onclick="checkSignInForm()">
Log in <img src="/images/signup_form/sign_up.svg" alt="Sign up">
</div>
</form>
<div id="signin-modal-link-container">
<a id="signin-modal-coupon-link" href="javascript:void(0)" onclick="adaptFormForCoupon()">
<span>Use a coupon</span>
</a>
</div>
<input type="hidden" name="login_return_url" class="login_return_url" value="">
<input type="hidden" name="dont_redirect_after_login" class="dont_redirect_after_login" value="">
</div>
<!-- END : Simple sign in -->
</div>
<!-- END : Sign in form -->
<!-- START : Forgot password form -->
<div id="forgotpassword-modal-content" class="modal-content">
<form onsubmit="return false;">
<div id="forgotpassword_text">
Enter your email address to reset your password. You may need to check your spam folder: </div>
<div class="input-label forgotpassword_email">
<label for="forgotpassword_email">E-mail</label>
<input id="forgotpassword_email" type="text">
</div>
<div id="forgotpassword_error_msg" class="error_msg"></div>
<div class="sign_in_submit_bn" onclick="checkForgotPasswordForm();">
Send recovery email <img src="/images/signup_form/sign_up.svg" alt="Send recovery email">
</div>
</form>
</div>
<!-- END : Forgot password form -->
<!-- START : Add cookie uploads suggestion -->
<div id="addcookieuploads-modal-content" class="modal-content">
<div id="addcookieuploads_info">
Bind previous uploads from this device to your account? You can manage or delete them. </div>
<div id="addcookieuploads_button_container">
<div class="addcookieuploads_button" id="addcookieuploads_button_no" onclick="setAddCookieUploads(false)">
No </div>
<div class="addcookieuploads_button" id="addcookieuploads_button_yes" onclick="setAddCookieUploads(true)">
Yes </div>
</div>
</div>
<!-- END : Add cookie uploads suggestion -->
<!-- START : Success message of account creation -->
<div id="createaccountsuccessmessage-modal-content" class="modal-content">
<div id="createaccountsuccessmessage_info">
<div>
Thank you! Your Files.fm account is created and an e-mail with account access data is sent to you. </div>
<div>
Close this form, fill in the information about the folder and press the button "Save and send the link". </div>
</div>
<div id="createaccountsuccessmessage_button" onclick="hideModal('sign-in', true)">
Close </div>
</div>
<!-- END : Success message of account creation -->
<div id="twofactor_authcode-modal-content" class="modal-content" style="display:none">
<div id="twofactor_authcode_container">
<div id="twofactor_error_msg" class="error_msg"></div>
<div class="twofactor_code_required_message">
Please enter the two factor authentication code from your email! </div>
<input id="twofactorcode" name="twofactorcode" type="text" placeholder="Authentification code">
<div class="sign_in_submit_bn" onclick="trySignIn( $('#twofactorcode').val() )">
Log in <img src="/images/signup_form/sign_up.svg" alt="Log in">
</div>
<div id="twofactor-modal-link-container">
<a id="twofactor-modal-goback-link" href="" onclick="bolPrevFinished_checkSignInForm = true; showSignIn(); return false">
<span>Go back</span>
</a>
</div>
</div>
</div>
<!-- START : Social login -->
<div style="display: none">
<form id="login_facebook" method="get" action="/">
<input type="hidden" name="fb_login" value="">
<input type="hidden" name="add_anonym_uplaods" class="add_anonym_uplaods" value="">
<input type="hidden" name="login_return_url" class="login_return_url" value="">
<input type="hidden" name="dont_redirect_after_login" class="dont_redirect_after_login" value="">
<input type="hidden" name="inviter_user" value="">
<input type="hidden" name="inviter_hash" value="">
<input type="submit" class="standard_button" value="Log in with Facebook" style="width: 100%">
</form>
<form id="login_google" method="get" action="/">
<input type="hidden" name="google_login" value="">
<input type="hidden" name="add_anonym_uplaods" class="add_anonym_uplaods" value="">
<input type="hidden" name="login_return_url" class="login_return_url" value="">
<input type="hidden" name="dont_redirect_after_login" class="dont_redirect_after_login" value="">
<input type="hidden" name="inviter_user" value="">
<input type="hidden" name="inviter_hash" value="">
<input type="submit" class="standard_button" value="Log in with Google" style="width: 100%">
</form>
<form id="login_microsoft" method="get" action="/">
<input type="hidden" name="microsoft_login" value="">
<input type="hidden" name="add_anonym_uplaods" class="add_anonym_uplaods" value="">
<input type="hidden" name="login_return_url" class="login_return_url" value="">
<input type="hidden" name="dont_redirect_after_login" class="dont_redirect_after_login" value="">
<input type="hidden" name="inviter_user" value="">
<input type="hidden" name="inviter_hash" value="">
<input type="submit" class="standard_button" value="Login with Microsoft account" style="width: 100%">
</form>
</div>
<!-- END : Social login -->
<div id="sign-in_disable_form">
<i class="fa fa-spinner fa-spin"></i>
</div>
</div>
<div class="modal-close" id="sign-in_modal_close" data-dismiss="modal" data-close="Close"></div>
</div>
<script>
var bolRewriteUrlHash = true;
var bolSigninCaptchaRequired = Boolean();
var bolSignupCaptchaRequired = Boolean(1);
var strSinginCaptchaContainerID = 'signin_captcha';
var strSignupCaptchaContainerID = 'createaccount_captcha';
function showCreateAccount( bolICO )
{
bolHasCookieUploadsFunc();
if( typeof bolICO === 'undefined' )
{
// if switching forms, get bolICO from other form
bolICO = $( "#register_from_ico" ).val() > 0;
}
$( '#signin-header' ).removeClass( 'active' );
$( '#createaccount-header' ).addClass( 'active' );
$( '#signin-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).hide();
$('#createaccount-modal-content').show();
if( bolICO )
{
$( "#business_account_chechbox_container" ).hide();
$( "#createaccount_info_ico" ).show();
$( "#createaccount_termsandcondtotions_ico" ).show( );
$( "#createaccount_termsandcondtotions" ).hide( );
$( "#createaccount_info" ).hide();
$( "#register_from_ico" ).val( 1 );
}
else
{
$( "#business_account_chechbox_container" ).show();
$( "#createaccount_termsandcondtotions" ).show( );
$( "#createaccount_termsandcondtotions_ico" ).hide( );
$( "#createaccount_info_ico" ).hide();
$( "#createaccount_info" ).show();
$( "#register_from_ico" ).val( 0 );
}
showModal( 'sign-in' );
if ( bolSignupCaptchaRequired )
loadCreateAccountCaptcha();
if ( bolRewriteUrlHash )
{
window.location.hash = 'sign_up';
}
}
function setRegisterReferral( strInviter, hash, strInviteeEmail )
{
$( "#createaccount-referral-referrer" ).text( strInviter );
$( "#createaccount-referral-container" ).show();
if ( strInviteeEmail )
{
$( "#createaccount_email" )
.val( strInviteeEmail )
.attr( 'disabled', 'true' );
}
$("input[name='inviter_user']").val( strInviter );
$("input[name='inviter_hash']").val( hash );
}
function showSignIn( bolICO )
{
bolHasCookieUploadsFunc();
if( typeof bolICO === 'undefined' )
{
// if switching forms, get bolICO from other form
bolICO = $( "#register_from_ico" ).val() > 0;
}
$( '#signin-header' ).addClass( 'active' );
$( '#createaccount-header' ).removeClass( 'active' );
if( typeof closeGallery === "function" )
{
closeGallery();
}
$( '#createaccount-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).hide();
$( '#twofactor_authcode-modal-content' ).hide();
if ( bolICO )
{
$( "#register_from_ico" ).val( 1 );
}
else
{
$( "#register_from_ico" ).val( 0 );
}
$( '#signin-modal-content' ).show();
showModal( 'sign-in' );
if ( bolSigninCaptchaRequired )
loadSignInCaptcha();
if ( bolRewriteUrlHash )
{
window.location.hash = 'log_in';
}
}
/*** Start: Captcha callbacks ***/
function captchaCreateAccountLoaded( bolSuccess )
{
if ( ! bolSuccess )
{
addError(strSignupCaptchaContainerID, "createaccount_error_msg", "An error has occurred! Please check your internet connection and try again later. If the problem does not resolve, please contact [email protected]");
}
else
{
removeError( strSignupCaptchaContainerID );
removeAllErrors( "createaccount_error_msg" );
$("#"+strSignupCaptchaContainerID).append('<input type="hidden" class="captcha_response" value="" />');
}
}
function captchaCreateAccountSubmitted( strResponse )
{
removeError( strSignupCaptchaContainerID );
removeAllErrors( "createaccount_error_msg" );
$('#' + strSignupCaptchaContainerID + ' .captcha_response').val( strResponse );
}
function captchaSignInLoaded( bolSuccess )
{
if ( ! bolSuccess )
{
addError(strSinginCaptchaContainerID, "signin_error_msg", "An error has occurred! Please check your internet connection and try again later. If the problem does not resolve, please contact [email protected]");
}
else
{
removeError( strSinginCaptchaContainerID );
removeAllErrors( "signin_error_msg" );
$("#"+strSinginCaptchaContainerID).append('<input type="hidden" class="captcha_response" value="" />');
}
}
function captchaSignInSubmitted( strResponse )
{
removeError( strSinginCaptchaContainerID );
removeAllErrors( "signin_error_msg" );
$('#' + strSinginCaptchaContainerID + ' .captcha_response').val( strResponse );
}
/*** End: Captcha callbacks ***/
function revertFormFromCoupon()
{
$( '#sign-in' ).removeClass( 'coupun_form' );
}
function adaptFormForCoupon()
{
$( '#sign-in' ).addClass( 'coupun_form' );
const strUrlParams = new URLSearchParams(window.location.search);
if( strUrlParams.has('coupon') )
{
var strCouponCode = strUrlParams.get('coupon');
}
if( strUrlParams.has('kupons') )
{
var strCouponCode = strUrlParams.get('kupons')
}
if( typeof strCouponCode !== 'undefined' )
{
$('#register_coupon_code_input').val(strCouponCode)
}
}
function showForgotPassword( strEmail )
{
if ( typeof strEmail != 'undefined' )
{
$( '#sign-in-header' ).hide();
$( '#forgotpassword_email' ).val( strEmail );
}
$( '#signin-header' ).insertBefore( $( '#createaccount-header' ) );
$( '#createaccount-modal-content' ).hide();
$( '#signin-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).show();
showModal( 'sign-in' );
if ( bolRewriteUrlHash )
{
window.location.hash = 'forgot_password';
}
}
function showAddCookieUploads()
{
$( '#createaccount-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).hide();
$( '#signin-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).show();
showModal( 'sign-in' );
}
function showCreateAccountSuccessMessage()
{
$( '#createaccount-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).hide();
$( '#signin-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).show();
showModal( 'sign-in' );
}
var bolHasCookieUploads = false;
function bolHasCookieUploadsFunc()
{
$.each(document.cookie.split(/; */), function() {
var splitCookie = this.split('=');
if(splitCookie[0].slice(0, 2) == 'uf')
{
bolHasCookieUploads = true;
}
});
}
var bolAddCookieUploadsAnswered = false;
var bolAddCookieUploads = false;
var strActiveForm = '';
function setAddCookieUploads(val) {
bolAddCookieUploads = val;
bolAddCookieUploadsAnswered = true;
if (val) {
$('#login_facebook .add_anonym_uplaods').val('1');
$('#login_google .add_anonym_uplaods').val('1');
$('#login_draugiem .add_anonym_uplaods').val('1');
}
if (strActiveForm == 'signin') {
checkSignInForm();
showSignIn();
}
else if (strActiveForm == 'createaccount') {
checkCreateAccountForm();
showCreateAccount();
}
else if (strActiveForm == 'facebook' || strActiveForm == 'google' || strActiveForm == 'draugiem') {
checkSocialLogin(strActiveForm);
}
}
var bolPrevFinished_checkCreateAccountForm = true;
function checkCreateAccountForm(bolCouponCheckResult) {
var jqCaptchaResultInput = $('#' + strSignupCaptchaContainerID + ' .captcha_response');
if ( bolCouponCheckResult === undefined )
{
bolCouponCheckResult = null;
}
if (bolPrevFinished_checkCreateAccountForm)
{
bolPrevFinished_checkCreateAccountForm = false;
$('#sign-in_disable_form').show();
var bolCreateBusinessAccountDataOk = true;
if (bolCreateBusinessAccount)
{
bolCreateBusinessAccountDataOk = false;
if ($('#createaccount_company_name').val().trim().length < 4 ) {
addError('createaccount_company_name', 'createaccount_error_msg', 'Please enter a company name that is at least 4 characters long.');
}
else {
removeError('createaccount_company_name');
if ($('#createaccount_company_phone').val().trim().length < 4 ) {
addError('createaccount_company_phone', 'createaccount_error_msg', 'The company phone number must be at least 4 digits long!');
}
else {
removeError('createaccount_company_phone');
bolCreateBusinessAccountDataOk = true;
}
}
}
if ( $( "#register_coupon_code" ).css("display") !== "none" && !bolCouponCheckResult )
{
// coupon field is visible -> so it must be filled
if( bolCouponCheckResult === false )
{
addError( 'register_coupon_code_input', 'createaccount_error_msg', 'The coupon code you entered is invalid or already used!' );
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
return;
}
else if( !bolCouponCheckResult )
{
removeError( 'register_coupon_code_input' );
bolPrevFinished_checkCreateAccountForm = true;
verifyCouponCode( 'register_coupon_code_input', 'createaccount_error_msg', checkCreateAccountForm );
return;
}
}
if ( bolCreateBusinessAccountDataOk )
{
if ($('#createaccount_name').val().trim().length < 2 ) {
addError('createaccount_name', 'createaccount_error_msg', 'Please enter a name that is at least 2 characters long.');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
removeError('createaccount_name');
if ($('#createaccount_surname').val().trim().length < 2 ) {
addError('createaccount_surname', 'createaccount_error_msg', 'Please enter a surname that is at least 2 characters long.');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
function isURL(url) {
return url.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g) !== null;
}
if ( isURL( $( '#createaccount_surname' ).val().trim() ) )
{
addError('createaccount_surname', 'createaccount_error_msg', 'Invalid name!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
return;
}
else
{
removeError( 'createaccount_surname' );
}
if ( isURL( $( '#createaccount_name' ).val().trim() ) )
{
addError('createaccount_name', 'createaccount_error_msg', 'Invalid name!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
return;
}
else
{
removeError( 'createaccount_name' );
}
removeError('createaccount_surname');
if (!validateEmail($('#createaccount_email').val())) {
addError('createaccount_email', 'createaccount_error_msg', 'Enter a valid e-mail!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
new EmailValidator( $('#createaccount_email').val(), true)
.setOnValidCB(function(){
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'check_email' : true ,
'email' : $('#createaccount_email').val()
},
success: function(data) {
if (data['status'] != 'ok') {
var strError = "This e-mail address is already taken!";
strError += "<br/><a href='' onclick='showForgotPassword(); return false'>" + 'Forgot password' + "</a>";
addHTMLError('createaccount_email', 'createaccount_error_msg', strError );
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
removeError('createaccount_email');
if ($('#createaccount_username').val().trim().length < 4 ) {
addError('createaccount_username', 'createaccount_error_msg', 'Please enter a username that is at least 4 characters long!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
if (!validateUsername($('#createaccount_username').val().trim())) {
addError('createaccount_username', 'createaccount_error_msg', 'Can only contain "a-z", "A-Z", "0-9" and "_.@-"');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else
{
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'check_username' : true ,
'username' : $('#createaccount_username').val()
},
success: function(data) {
if (data['status'] != 'ok') {
addError('createaccount_username', 'createaccount_error_msg', 'This username is already taken! Please enter a different one!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else {
removeError('createaccount_username');
if ($('#createaccount_password').val().trim().length < 4 ) {
addError('createaccount_password', 'createaccount_error_msg', 'Please enter a password that is at least 4 characters long!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
else
{
removeError('createaccount_password');
var bolCaptchaOk = true;
if ( bolSignupCaptchaRequired )
{
bolCaptchaOk = false;
if ( jqCaptchaResultInput.length && jqCaptchaResultInput.val().length )
{
bolCaptchaOk = true;
removeError( strSignupCaptchaContainerID );
}
else
{
if ( ! jqCaptchaResultInput.length )
{
addError( strSignupCaptchaContainerID, "createaccount_error_msg", "An error has occurred! Please check your internet connection and try again later. If the problem does not resolve, please contact [email protected]" );
}
else
{
addError( strSignupCaptchaContainerID, 'createaccount_error_msg', 'Please fill out Captcha!' );
}
}
}
if ( ! bolCaptchaOk )
{
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
}
else
{
removeError( 'createaccount_password' );
removeError( strSignupCaptchaContainerID );
removeAllErrors( 'createaccount_error_msg' );
if ( bolHasCookieUploads == true && bolAddCookieUploadsAnswered == false )
{
strActiveForm = 'createaccount';
showAddCookieUploads();
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
}
else
{
var postData = {
'create_account': true,
'username': $( '#createaccount_username' ).val(),
'email': $( '#createaccount_email' ).val(),
'password': $( '#createaccount_password' ).val(),
'add_cookie_uploads': bolAddCookieUploads,
'first_name': $( '#createaccount_name' ).val(),
'surname': $( '#createaccount_surname' ).val(),
'create_business_account': bolCreateBusinessAccount,
'company_name': $( '#createaccount_company_name' ).val(),
'company_phone': $( '#createaccount_company_phone' ).val(),
'company_country': $( '#createaccount_company_country' ).val(),
'from_ico': $( "#register_from_ico" ).val() ,
'recaptcha_response': (jqCaptchaResultInput.length ? jqCaptchaResultInput.val() : '')
};
// add referral fields if the container is visible
if ( $( "#createaccount-referral-container" ).css( "display" ) !== "none" )
{
postData[ 'inviter_hash' ] = $( "#createaccount-referral-hash" ).val();
postData[ 'inviter_user' ] = $( "#createaccount-referral-user" ).val();
}
if ( $( "#register_coupon_code" ).css( "display" ) !== "none" )
{
postData.coupon_code = $( "#register_coupon_code_input" ).val().trim();
}
var bolDontRedirectAfterLogin = true;
if ( $( '.dont_redirect_after_login' ).val() == '' )
{
bolDontRedirectAfterLogin = false;
}
var strCustomLoginReturnUrl = $( '.login_return_url' ).val();
if ( ! bolDontRedirectAfterLogin && strCustomLoginReturnUrl == '' )
{
postData.show_onboarding_survey = true;
}
else
{
postData.show_onboarding_survey = false;
}
$.ajax( {
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: postData,
success: function ( data )
{
if ( data[ 'status' ] == 'ok' )
{
if ( ! bolDontRedirectAfterLogin )
{
if ( data[ 'custom_login_return_url' ] != 'undefined' )
{
strCustomLoginReturnUrl = data[ 'custom_login_return_url' ];
}
if ( strCustomLoginReturnUrl != '' )
{
if (
( "/" + strCustomLoginReturnUrl ).search( 'filebrowser' ) == -1 &&
( "/" + strCustomLoginReturnUrl ).search( window.location.pathname ) != -1 &&
strCustomLoginReturnUrl != 'sync-share?create_cloud_files_user' &&
strCustomLoginReturnUrl != 'library-info?after_login' &&
strCustomLoginReturnUrl != 'video?after-signup' &&
( "/" + strCustomLoginReturnUrl ).search( 'lifetime-storage' ) == -1 &&
( "/" + strCustomLoginReturnUrl ).search( 'save-youtube-video' ) == -1
)
{
if ( location.hash == '#sign_up' )
{
location.hash = '';
}
if ( strCustomLoginReturnUrl == 'storage-plans#subscribe' )
{
location.hash = 'subscribe';
}
location.reload();
}
else
{
window.location = "https://files.fm/" + strCustomLoginReturnUrl;
}
}
else
{
window.location = "/account";
}
}
else
{
showCreateAccountSuccessMessage();
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
}
}
else
{
addError( 'createaccount_error_msg', 'createaccount_error_msg', 'There was an error, contact the Files.fm team!' );
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
}
},
error: function ( data )
{
addError( 'createaccount_error_msg', 'createaccount_error_msg', 'An error occurred. Please try again or contact [email protected]!' );
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
}
} );
}
}
}
}
} ,
error: function(data) {
addError('createaccount_error_msg', 'createaccount_error_msg', 'An error occurred. Please try again or contact [email protected]!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
});
}
}
}
} ,
error: function(data) {
addError('createaccount_error_msg', 'createaccount_error_msg', 'An error occurred. Please try again or contact [email protected]!');
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
})
}).setOnInvalidCB(function() {
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
addError('createaccount_email', 'createaccount_error_msg', 'Enter a valid e-mail!');
}).setModalID("sign-in").run();
}
}
}
}
else
{
bolPrevFinished_checkCreateAccountForm = true;
$('#sign-in_disable_form').hide();
}
}
}
function getSigninReturnRedirectUrl()
{
if ($('.login_return_url').val() != '') {
if ($('.dont_redirect_after_login').val() == '') {
if (
("/"+$('.login_return_url').val()).search(window.location.pathname) != -1 &&
$('.login_return_url').val() != 'sync-share?create_cloud_files_user' &&
$('.login_return_url').val() == 'storage-plans#subscribe'
)
{
return '#subscribe';
}
else if ($('.login_return_url').val() == 'my-profile' )
{
return $( '#l_user' ).val();
}
else {
return $('.login_return_url').val();
}
}
}
return false;
}
function verifyCouponCode( strCouponInputID, strErrorID, fnCallback, bolResult )
{
if ( bolResult === undefined )
{
bolResult = null;
}
var strCouponInputSelector = "#" + strCouponInputID;
var onError = function ()
{
addError( strCouponInputID, strErrorID, 'Invalid coupon code!' );
bolPrevFinished_checkCreateAccountForm = true;
$( '#sign-in_disable_form' ).hide();
};
if ( bolResult === false )
{
onError();
return false
}
else if ( bolResult === true )
{
return true;
}
if ( $( strCouponInputSelector ).css( "display" ) !== "none" )
{
// coupon field is visible -> so it must be filled
if ( $( strCouponInputSelector ).val().trim().length === 0 )
{
onError();
return false
}
else
{
if ( !bolResult )
{
removeError( strCouponInputID );
$.ajax( {
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
global: false,
data: {
'check_coupon': true,
'coupon_code': $( strCouponInputSelector ).val().trim()
},
success: function ( data )
{
fnCallback( typeof data[ 'status' ] !== "undefined" && data[ 'status' ] === 'ok' );
},
error: function ( )
{
fnCallback( false );
}
} );
return false;
}
else
{
return true;
}
}
}
else
{
return true;
}
}
var bolPrevFinished_checkSignInForm = true;
function trySignIn( strTwoFactorAuthCode )
{
if ( typeof strTwoFactorAuthCode === "undefined" )
{
strTwoFactorAuthCode = "";
}
var jqCaptchaResultInput = $( '#' + strSinginCaptchaContainerID + ' .captcha_response' );
removeAllErrors( 'signin_error_msg' );
var strReturnUrl = getSigninReturnRedirectUrl();
var objPostData = {
'signin': true,
'username': $( '#l_user' ).val(),
'password': $( '#l_pass' ).val(),
'remember_me': $( '#remember_me' ).prop( 'checked' ),
'from_ico': $( '#register_from_ico' ).val(),
'add_cookie_uploads': bolAddCookieUploads,
'recaptcha_response': ( jqCaptchaResultInput.length ? jqCaptchaResultInput.val() : '' )
};
if ( strTwoFactorAuthCode )
{
objPostData[ 'two_factor_auth_code' ] = strTwoFactorAuthCode;
}
if ( strReturnUrl )
{
objPostData[ 'override_return_url' ] = strReturnUrl;
}
if ( $( "#l_coupon_code" ).css( "display" ) !== "none" )
{
objPostData.coupon_code = $( "#l_coupon_code" ).val().trim();
}
$.ajax( {
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
crossDomain: true,
data: objPostData,
success: function ( data )
{
var strAdditionalMessage = "";
if ( typeof data[ 'login_attempts_left' ] !== 'undefined' )
{
var strPartOne = +data[ 'login_attempts_left' ] === 1 ? ' You have ' : ' You have ';
var strPartTwo = +data[ 'login_attempts_left' ] === 1 ? ' login attempt left before your account is automatically blocked.' : ' more login attempts before your account is automatically blocked.';
strAdditionalMessage = strPartOne + data[ 'login_attempts_left' ] + strPartTwo;
}
if ( ( data[ 'status' ] === 'ok' || data[ 'status' ] === 'missing_account_data' ) && typeof data[ 'redirect_to' ] !== 'undefined' )
{
if ( data[ 'redirect_to' ].substring( 0, 17 ) == '/lifetime-storage' )
{
data[ 'redirect_to' ] += '?after_login';
}
if ( data[ 'redirect_to' ].substring( 0, 6 ) == '/token' )
{
data[ 'redirect_to' ] = '/token';
}
window.location = data[ 'redirect_to' ];
}
else if ( data[ 'status' ] === 'invalid_auth_code' )
{
$( '#twofactor_error_msg' ).text( 'The entered code is invalid! Please try again!' + strAdditionalMessage ).show();
bolPrevFinished_checkSignInForm = true;
$( '#sign-in_disable_form' ).hide();
}
else
{
var $errorCont;
if( strTwoFactorAuthCode )
{
$errorCont = $( '#twofactor_error_msg' );
}
else
{
$errorCont = $( '#signin_error_msg' );
}
if ( typeof data[ "message" ] === "undefined" )
{
$errorCont.text( 'Incorrect username or password! Access can be restored via your email address.' + strAdditionalMessage );
console.log( 'SIGNIN ERROR CODE : 1' );
}
else
{
$errorCont.text( data[ "message" ] + strAdditionalMessage );
}
$errorCont.show();
bolPrevFinished_checkSignInForm = true;
$( '#sign-in_disable_form' ).hide();
}
},
error: function ( data )
{
$( '#signin_error_msg' ).text( 'An error occurred. Please try again or contact [email protected]!' );
$( '#signin_error_msg' ).show();
bolPrevFinished_checkSignInForm = true;
$( '#sign-in_disable_form' ).hide();
}
} );
}
function show2FAPrompt()
{
$( '#createaccount-modal-content' ).hide();
$( '#forgotpassword-modal-content' ).hide();
$( '#addcookieuploads-modal-content' ).hide();
$( '#createaccountsuccessmessage-modal-content' ).hide();
$( '#signin-modal-content' ).hide();
$( '#twofactor_authcode-modal-content' ).show();
}
function checkSignInForm(bolCouponCheckResult) {
if ( bolCouponCheckResult === undefined )
{
bolCouponCheckResult = null;
}
var jqCaptchaResultInput = $('#' + strSinginCaptchaContainerID + ' .captcha_response');
if (bolPrevFinished_checkSignInForm) {
bolPrevFinished_checkSignInForm = false;
$('#sign-in_disable_form').show();
if ( $( "#l_coupon_code" ).css("display") !== "none" )
{
if ( bolCouponCheckResult )
{
$( "#signin_error_msg" ).hide();
}
else if ( bolCouponCheckResult === null )
{
bolPrevFinished_checkSignInForm = true;
return verifyCouponCode( "l_coupon_code", "signin_error_msg", checkSignInForm, bolCouponCheckResult );
}
else
{
$( "#signin_error_msg" )
.text( "The coupon code you entered is invalid or already used!" )
.show();
bolPrevFinished_checkSignInForm = true;
$( '#sign-in_disable_form' ).hide();
return false;
}
}
bolError = false;
if ($('#l_user').val() == '' ) {
$('#l_user').addClass( 'has_error' );
bolError = true;
}
else {
$('#l_user').removeClass( 'has_error' );
}
if ($('#l_pass').val() == '' ) {
$('#l_pass').addClass( 'has_error' );
bolError = true;
}
else {
$('#l_pass').removeClass( 'has_error' );
}
if ( bolSigninCaptchaRequired )
{
if ( jqCaptchaResultInput.length === 0 )
{
bolError = true;
addError(strSinginCaptchaContainerID, "signin_error_msg", "An error has occurred! Please check your internet connection and try again later. If the problem does not resolve, please contact [email protected]");
}
else if ( jqCaptchaResultInput.val().length === 0 )
{
bolError = true;
addError(strSinginCaptchaContainerID, "signin_error_msg", "Please fill in the captcha field!");
}
else
{
removeError( strSinginCaptchaContainerID );
}
}
if (!bolError) {
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
crossDomain: true,
data: {
'check_signin' : true ,
'username' : $('#l_user').val() ,
'password' : $('#l_pass').val()
},
success: function(data) {
if ( data[ 'status' ] === 'ok' )
{
if ( bolHasCookieUploads == true && bolAddCookieUploadsAnswered == false && data[ 'show_add_cookie_uploads' ] == true )
{
strActiveForm = 'signin';
showAddCookieUploads();
bolPrevFinished_checkSignInForm = true;
$( '#sign-in_disable_form' ).hide();
}
else
{
trySignIn();
}
}
else if ( data[ 'status' ] === 'requires_auth_code' )
{
$( '#sign-in_disable_form' ).hide();
bolPrevFinished_checkSignInForm = true;
show2FAPrompt();
}
else
{
var strMessage = 'Incorrect username or password! Access can be restored via your email address.';
if ( typeof data[ 'message' ] !== "undefined" )
{
strMessage = data[ 'message' ];
}
else if ( typeof data[ 'login_attempts_left' ] !== 'undefined' )
{
var strPartOne = +data['login_attempts_left'] === 1 ? ' You have ' : ' You have ';
var strPartTwo = +data['login_attempts_left'] === 1 ? ' login attempt left before your account is automatically blocked.' : ' more login attempts before your account is automatically blocked.';
strMessage += strPartOne + data[ 'login_attempts_left' ] + strPartTwo;
}
else
{
console.log( 'SIGNIN ERROR CODE : 2' );
}
$( '#signin_error_msg' ).text( strMessage );
$('#signin_error_msg').show();
bolPrevFinished_checkSignInForm = true;
$('#sign-in_disable_form').hide();
}
} ,
error: function(data) {
$('#signin_error_msg').text('An error occurred. Please try again or contact [email protected]!');
$('#signin_error_msg').show();
bolPrevFinished_checkSignInForm = true;
$('#sign-in_disable_form').hide();
}
});
}
else {
bolPrevFinished_checkSignInForm = true;
$('#sign-in_disable_form').hide();
}
}
}
function checkForgotPasswordForm() {
if (!validateEmail($('#forgotpassword_email').val())) {
addError('forgotpassword_email', 'forgotpassword_error_msg', 'Enter a valid e-mail!');
}
else {
removeError('forgotpassword_email');
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'recover_password' : true ,
'email' : $('#forgotpassword_email').val()
},
success: function(data) {
if (data['status'] == 'ok') {
removeAllErrors('forgotpassword_error_msg');
$('#forgotpassword_error_msg').addClass('ok_msg_active');
$('#forgotpassword_error_msg').text('If an account with this email exists, then the password reset link was sent to the email provided.');
$('#forgotpassword_error_msg').show();
}
else {
addError('forgotpassword_email', 'forgotpassword_error_msg', 'This e-mail is not registered.');
}
}
});
}
}
function checkSocialLogin(strType) {
if ( strType == 'facebook' )
{
fError( 'Facebook has changed something, so unfortunately logging in with Facebook is not available at the moment. To get in, reset the password to your e-mail (with which you used Facebook) <a href="/?a#forgot_password">by clicking here</a> . In the future, we recommend using your email or Google account so that you are not dependent on Facebook. We plan to disable this method.' );
return;
}
if (bolHasCookieUploads == true && bolAddCookieUploadsAnswered == false) {
strActiveForm = strType;
showAddCookieUploads();
}
else {
if ($('.dont_redirect_after_login').val() == 'true')
{
$('#sendfiles').submit();
$('.add_anonym_uplaods').val('true');
}
if (strType == 'facebook') {
$('#login_facebook').submit();
}
else if (strType == 'google') {
$('#login_google').submit();
}
else if (strType == 'draugiem') {
$('#login_draugiem').submit();
}
else if (strType == 'microsoft') {
$('#login_microsoft').submit();
}
}
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var result = re.test(email);
return result;
}
function validateUsername(username) {
var re = /^[a-zA-Z0-9_\.@\-]+$/;
var result = re.test(username);
return result;
}
function addHTMLError(strDomId, strErrorMsgId, strErrorMsgText) {
$('#' + strDomId).addClass( 'has_error' );
$('#' + strErrorMsgId).html(strErrorMsgText);
$('#' + strErrorMsgId).show();
}
function addError(strDomId, strErrorMsgId, strErrorMsgText) {
$('#' + strDomId).addClass( 'has_error' );
$('#' + strErrorMsgId).text(strErrorMsgText);
$('#' + strErrorMsgId).show();
}
function removeError(strInputId) {
$('#' + strInputId).removeClass( 'has_error' );
}
function removeAllErrors(strErrorMsgId) {
$('#' + strErrorMsgId).text('');
$('#' + strErrorMsgId).hide();
}
var isUsernameChanged = false;
function usernameChanged()
{
isUsernameChanged = true;
}
function createUsername(strEmail)
{
if( !isUsernameChanged && strEmail != '' && validateEmail(strEmail))
{
var arrEmail = strEmail.split("@");
var strUsername = arrEmail[0];
while (strUsername.length < 4)
{
strUsername += '1';
}
$.ajax(
{
type: "POST",
dataType: "json",
url: "./ajax/sign_in.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'get_username' : true ,
'username' : strUsername
},
success: function(data)
{
if (data['status'] == 'ok' && data['username'])
{
$('#createaccount_username').val(data['username']);
}
}
});
}
}
var bolCreateBusinessAccount = false;
function toggleCreateBusinessAccount()
{
if (bolCreateBusinessAccount)
{
bolCreateBusinessAccount = false;
$('#create_business_account_container').hide();
}
else
{
bolCreateBusinessAccount = true;
$('#create_business_account_container').show();
}
}
</script> <script type="text/javascript" src="js/prebid-ads.js"></script>
<script type="text/javascript">
if( window.canRunAds === undefined )
{
fError( "An ad blocking plugin has been detected in your browser. There is a possibility that the page is displayed incorrectly. Please disable the plugin and refresh the page!" );
document.cookie="adblock_warning_shown; max-age=86400";
}
</script>
<div id="content" class="show_description">
<link rel="stylesheet" type="text/css" media="all" href="/css/list.v2/main.css?v=1725614646"><link rel="stylesheet" type="text/css" media="all" href="/css/public.css?v=1728635761">
<script src="/js/public.js?v=1725450418"></script>
<script src="/js/jquery-lazyload/jquery.scrollstop.min.js?v=1715343634"></script>
<script src="/js/jquery-lazyload/jquery.lazyload.min.js?v=1715343634"></script>
<script src="/js/file.report.functions.js.php?v=1715343639"></script>
<script src="/js/FFM_Intersection_Observer.js?v=1715343642"></script>
<script src="/js/FFM_Json_Unpack.js?v=1715343643"></script>
<script type="text/javascript">
function populateLangs() {
ItemHelpers.itemLangs = {"LIST-FILE-TOOLTIP-DOWNLOADED-COUNT":"downloads","LIST-FILE-TOOLTIP-VIEWED-COUNT":"views","LIST-LINK-Update-Price":"Sell","LIST-LINK-Buy":"Buy","LIST-LINK-BuyFolder":"Buy folder","LIST-ITEM-FUNCTIONS-PriceFrom":"from","UPLOAD-ACTION-LINE-CopyLink":"Share access link","UPLOAD-ACTION-LINE-CopyLink-Short":"Share","UPLOAD-ACTION-LINE-EmbedLink":"Embed links","GALLERY-FileReportCancelConfirm":"Are you sure you want to cancel the report on a dangerous file?","GALLERY-CancelReport":"Cancel a problem report","GALLERY-Report":"Report a problem","GALLERY-FileReportConfirm":"Are you sure you want to report the content of this file as dangerous?","LIST-LINK-DownloadFile":"Download","LIST-LINK-SetAsThumb":"Set as cover image","LIST-LINK-ViewFile":"View","LIST-OrderPhotoText":"","LIST-LINK-PlayFile":"Play","LIST-LINK-CommentFile":"Comment","LIST-LINK-LikeFile":"Like","LIST-LINK-UnlikeFile":"Unlike","PRINTING-ORDER-FORM-Crop-Label":"","LIST-ITEM-Folders":"folders","LIST-ITEM-Files":"files","LIST-ITEM-ItemViewsTitle":"views","LIST-ITEM-ItemCommentsTitle":"comments","LIST-LINK-EditFile":"Edit","LIST-ITEM-ItemLikesTitle":"likes","LIST-LINK-DELETE-FILE":"Delete","LIST-CONFIRM-DELETE-FILE":"Do you really want to delete this file?","LIST-LINK-DELETE-FILE-Yes":"Yes, delete!","LIST-LINK-DELETE-FILE-No":"Cancel","LIST-FlDelPart1":"File","LIST-FlDelPart2":"has been <b>deleted<\/b>!","List-UnableToDeleteFileReadOnly":"The file cannot be deleted because it is shared!","List-UnableToDeleteLockedFile":"This file cannot be deleted because it is locked.","LIST-UnableToDeleteFile":"There was an error, the file was not deleted","PROFILE-LOGED-UPL-ACTION-DELETE-UPLOAD":"Delete folder","PROFILE-LOGED-UPL-ACTION-DELETE-CONFIRM-TEXT":"Are you sure you want to delete all the files in this folder?","PROFILE-LOGED-UPL-ACTION-DELETE-DONE":"Folder has been deleted!","PROFILE-DELETE_MULTIPLE_ERROR":"There was an error deleting one of the folders!","PROFILE-LOGED-UPL-ACTION-EDIT-UPLOAD":"Edit folder","PROFILE-LOGED-UPL-ACTION-FILEBROWSER":"Open in filebrowser","LIST-LINK-EDIT-FILE":"","LIST-EditUploadThumbnail":"Add cover","LIST-RemoveUploadThumbnail":"Remove cover","FILE-BROWSER-OpenTab":"Open in new tab","FILEBROWSER-SetUploadThumbnailSuccess":"Folder image changed successfully!","FILEBROWSER-SetUploadThumbnailError":"Failed to change folder image! Please try again later!","FILEBROWSER-SetUploadThumbnailErrorBadFile":"Please select a image!","FILEBROWSER-SetUploadThumbnailError_TooBig":"File size is too large (20MB)","FILEBROWSER-RemoveUploadThumbnailQuery":"Do you really want to remove folder picture?","GENERAL-YES":"Yes","GENERAL-No":"No","FILEBROWSER-RemoveUploadThumbnailSuccess":"Folder image successfully removed!","FILEBROWSER-RemoveUploadThumbnailError":"Failed to remove folder image! Please try again later!","PROFILE-LOGED-UPL-ACTION-ChangePriceForFolder":"Change folder price","LIST-ZIP-Link":"Download all files"};
ItemHelpers.arrVideoExtensions = ["avi","mpg","mpeg","rm","wmv","asf","mp4","mov","flv","3gp","divx","rmvb","ogg","mkv","ogv","webm","m4v","mts","lrf"];
ItemHelpers.arrAudioExtensions = ["ac3","aac","aif","aiff","air","mp3","wav","flac","oga","aac","m4a","wma","opus","wpl","m3u","ac3","opus","wpl","m4a"];
ItemHelpers.arrImageExtensions = ["jpg","jpeg","gif","png","bmp","svg","webp","ico","jfif","heic","heif","tiff","tif","cr3","cr2","nef","arw","pef","rw2","orf","raf","nrw","dng"];
}
</script>
<script type="text/javascript" src="/js/list/item.functions.js?v=108" onload="populateLangs()"></script>
<link rel="stylesheet" type="text/css" href="css/items.css?v=87">
<style type="text/css">
#public_profile__header .header_backdrop__mask {
display: none !important;
}
#public_profile__header .header_profile_info_title ,
#public_profile__header .header_profile_info_short_description ,
#public_profile__header .header_back_to_filesfm ,
#public_profile__header .header_back_to_filesfm a ,
#public_profile__header .header_back_to_filesfm i {
color: #FFFFFF !important;
}
#public_profile__header .header_profile_image {
background-image: url( "/avatars/thumb.php?i=7227270_2147483647.jpg" );
}
#public_profile__header .header_backdrop .header_backdrop__image {
background-image: url( '/profile_background.php?i=119698032.jpg&t=1731871665' );
}
#footer_container {
background: #2B2B2B !important;
}
#footer {
color: #FFFFFF !important;
}
#footer span a.social {
background-color: #FFFFFF;
border: 1px solid #FFFFFF !important;
}
#footer span a.social i {
color: #2B2B2B !important;
}
</style>
<div id="public_profile_container">
<!-- Top block: profile image, description, upload button, view actions -->
<div id="public_profile__top_container">
<div id="public_profile__header" class="show-nav ">
<!-- container for the background image and mask -->
<div class="header_backdrop">
<div class="header_backdrop__image"></div>
<!-- this goes on top of the image -->
<div class="header_backdrop__mask"></div>
<!-- this goes on top of the image and mask -->
<div class="header_backdrop__gradient"></div>
</div>
<!-- container for the central items -->
<div class="header_profile_info">
<div class="header_profile_info_left">
<div class="header_profile_image" onclick="window.location='/davidarida385'" style="cursor: pointer;">
</div>
</div>
<div class="header_profile_info_right">
<div class="header_profile_info_title info_text">
《ดู-หนัง》 แห่ ซิ่ง วิ่ง ลุย 2024 HD เต็มเรื่อง – พากย์ไทย (THAI SUB)
<span class="pro_flag">
Free </span>
</div>
<div class="header_profile_info_short_description info_text">
<p>Death Whisperer 2</p> </div>
<div class="public_profile_header_bottom">
<div class="header_profile_info_buttons">
<div class="header_profile_info_button button_share" id="public_profile__top_1__share_button">
Share </div>
</div>
<div class="header_profile_info_statistics_line" id="header_profile_info_statistics_line">
</div>
</div>
</div>
</div>
<!-- container for public profile navigation bar -->
<div id="public_profile__header_navbar" class="">
<div id="public_profile__header_navbar_left" style="min-width: 100%;">
<div id="public_profile_section_options">
<div class="public_profile_section_option selected" id="public_profile_section_option_info">
Info </div>
<div class="public_profile_section_option" id="public_profile_section_option_folder">
Galleries </div>
<div class="public_profile_section_option" id="public_profile_section_option_file">
Latest </div>
<div class="public_profile_section_option" id="public_profile_section_option_private" style="display: none">
Private </div>
</div>
</div>
<div id="public_profile__header_navbar_folder_info" style="display: none;">
<div id="public_profile_breadcrumbs_cog_wrapper"></div>
</div>
<div id="public_profile__header_navbar_center" style="display: none;">
<div id="public_profile_search">
<div id="public_profile_search_input_container">
<input type="text" id="public_profile_search_input" placeholder="Search" class="my_tooltip" my_title="Keyword is searched in File Name, Description, Subject, Categories and Tags" style="padding-left: 18px;">
</div>
<div id="public_profile_search_close_button" style="display: none;"></div>
</div>
</div>
<div id="public_profile__header_navbar_right" style="display: none;">
<div id="public_profile_sort_switch_wrap">
<div id="public_profile_sort_switch_title">
Sort
<div id="public_profile_sort_switch_dropdown" style="display: none;">
<div class="public_profile_sort_switch_dropdown_title">Layout</div>
<div id="public_profile_switch_wrap">
<a class="switch-view-button list" id="switch_to_list_view" href="javascript:void(0)" onclick="changeLayout( 'list', true );"></a>
<a class="switch-view-button grid" id="switch_to_gallery_view" href="javascript:void(0)" onclick="changeLayout( 'grid', true );"></a>
<a class="switch-view-button horizontal active" id="switch_to_horizontal_view" href="javascript:void(0)" onclick="changeLayout( 'horizontal', true );"></a>
</div>
<div id="public_profile_sort_switch_title_wrap">
<div class="public_profile_sort_switch_dropdown_title">Sort by</div>
<div id="public_profile_sort_switch_wrap">
<a href="javascript:void(0)" class="sort_item sort_type sort_type_date_created" data-sort-type="DATE_CREATED">Date created <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_date_modified" data-sort-type="DATE_MODIFIED">Date modified <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_title" data-sort-type="TITLE">Name <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_views" data-sort-type="VIEWS">Views <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_type" data-sort-type="TYPE">Type <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_size" data-sort-type="SIZE">Size <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
<a href="javascript:void(0)" class="sort_item sort_type sort_type_likes" data-sort-type="LIKES">Likes <img class="sort_order sort_order_desc" data-sort-order="DESC" src="/images/UI_icons/blue/arrow_down.svg"><img class="sort_order sort_order_asc" data-sort-order="ASC" src="/images/UI_icons/blue/arrow_up.svg"></a>
</div>
</div>
</div>
<div class="dropdown_close_before" style="display: none;"></div>
</div>
</div>
</div>
</div>
</div>
<section id="public_profile_description" class="">
<div>
<p>ดู~(Hae Sing Wing Lui-2024) ธี่หยด2เต็มเรื่อง ดูหนังออนไลน์ ซับไทย! "แห่ ซิ่ง วิ่ง ลุย" หรือ "Death Whisperer 2" เป็นภาพยนตร์สยองขวัญแนวเหนือธรรมชาติ ที่จะมาสานต่อความหลอนจากภาคแรก</p>
<p>ดู~ธี่หยด HD➤ <a href="https://lupus-tv.my.id/th/movie/1381018">แห่ ซิ่ง วิ่ง ลุย (2024) หนังเต็ม - [Th Sub] | ดูและดาวน์โ</a></p>
<p>ค้นหาภาพยนตร์ที่คุณต้องการได้ที่นี่ 4 Hae Sing Wing Lui (2024) - แห่ ซิ่ง วิ่ง ลุย พากย์ไทย + ซับไทย เต็มเรื่อง HD ดูหนังออนไลน์ฟรี บน Android, iOS, PC, Mac, PS4, Xbox One และ Smart TV รับชมภาพยนตร์ได้ไม่จำกัด เข้าถึงได้ทุกที่และทุกเวลา ไม่จำกัดจำนวน ไม่มีโฆษณา.<br>=====<br>แห่ ซิ่ง วิ่ง ลุย (อังกฤษ: Hae Sing Wing Lui) เป็นภาพยนตร์ไทยแนวสยองขวัญเหนือธรรมชาติ ที่ออกฉายในปี พ.ศ. 2567 กำกับโดย ทวีวัฒน์ วันทา และนำแสดงโดย ณเดชน์ คูกิมิยะ, เดนิส เจลีลชา คัปปุน, กาจบัณฑิต ใจดี, พีระกฤตย์ พชรบุณยเกียรติ, ณัฐชา นีน่า เจสซิกา พาโดวัน, พีรวิชญ์ อรรถชิตสถาพร, อริศรา วงษ์ชาลี และ ปรเมศร์ น้อยอ่ำ เป็นภาคต่อจากธี่หยด เช่นเดียวกับภาคแรก ภาพยนตร์ถูกถ่ายทำเพื่อเข้าฉายในระบบไอแมกซ์ทั้งระบบ ภาพยนตร์เรื่องนี้สร้างจากเหตุการณ์ที่เกิดขึ้นจริงใน อำเภอด่านมะขามเตี้ย จังหวัดกาญจนบุรี ในปี พ.ศ. 2515 และเสริมแต่งเรื่องราวเพื่ออรรถรถในรูปแบบของภาพยนตร์ชุดผีอมตะ ของ แซม เรย์มี ที่เป็นแรงบันดาลใจของทวีวัฒน์ เมื่อภาคแรก ภาพยนตร์ได้รับคำวิจารณ์ในแง่บวกถึงเนื้อเรื่อง อารมณ์แอ็คชั่นและความสยองขวัญ และการเปลี่ยนแนวจากแนวสยองขวัญ ระทึกขวัญ มาเป็น สยองขวัญผสมกับแอคชั่นเเบบไทย ๆ เเละนอกจากนั้นภาพยนตร์เรื่องนี้ยังมีการขยายเรื่องราวของธี่หยดให้กว้างออกไปมากกว่าเเค่ครอบครัวหลัก จักรวาลภาพยนตร์แฟรนไชส์ธี่หยด ที่จะมีเรื่องราวของครอบครัวยักษ์และการตามไล่ล่าปีศาจและความชั่วร้ายของสิ่งเหนือธรรมชาติในอนาคต</p>
<p>ดูหนัง แห่ ซิ่ง วิ่ง ลุย (2024) Hae Sing Wing Lui. ดูหนังออนไลน์ HD พากย์ไทย เต็มเรื่อง มาสเตอร์ ดูหนังออนไลน์ หนังผี หนังสยองขวัญ HD ฟรี, ภาพยนตร์แอ็คชั่น, หนังมาใหม่ ดูหนังออนไลน์, หนังแนะนำ, หนังใหม่ 2024, หนังใหม่ชนโรง ดูหนังHD ดูหนังใหม่ หนัง ดูหนังฟรี ดูหนัง เว็บดูหนังออนไลน์ หนังมาใหม่ MASTER ZOOM หนังออนไลน์ ซูม</p>
<p>ดู!ธี่หยด2 ดูหนังออนไลน์ฟรี พากย์ไทย + ซับไทย ธี่หยด2 โรงภาพยนตร์ หนังชนโรง ธี่หยด2 เว็บดูหนังออนไลน์ฟรี 24 ชั่วโมง ธี่หยด2 ดูหนังออนไลน์ฟรีไม่กระตุก ไม่มี โฆษณา ธี่หยด2 ดูหนังออนไลน์2024 พากย์ไทย ธี่หยด2 ดูหนังออนไลน์ netflix ธี่หยด2 ดูหนังออนไลน์ 4k พากย์ไทย</p>
<p>แห่ ซิ่ง วิ่ง ลุย ออนไลน์โดยสมบูรณ์ในปี 2024<br>แห่ ซิ่ง วิ่ง ลุย 2024 สำหรับภาพยนตร์ฟรี<br>แห่ ซิ่ง วิ่ง ลุย 2024 ดูภาพยนตร์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ฟิล์มสมบูรณ์ THAI<br>แห่ ซิ่ง วิ่ง ลุย ออนไลน์อย่างสมบูรณ์ในปี 2024<br>แห่ ซิ่ง วิ่ง ลุย 2024 ออนไลน์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ออนไลน์ฟรี<br>แห่ ซิ่ง วิ่ง ลุย 2024 ภาษาเยอรมันแบบเต็มสตรีม<br>แห่ ซิ่ง วิ่ง ลุย (2024) สตรีมเยอรมัน HD ออนไลน์<br>แห่ ซิ่ง วิ่ง ลุย 2024 สตรีมโรงภาพยนตร์ไทยแลนด์<br>แห่ ซิ่ง วิ่ง ลุย 2024 สํานักงานกล่องภาพยนตร์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ฟูลมูฟวี่ไทยแลนด์<br>แห่ ซิ่ง วิ่ง ลุย 2024 สตรีมออนไลน์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ฟรี<br>แห่ ซิ่ง วิ่ง ลุย 2024 HD movie ซับไทย<br>แห่ ซิ่ง วิ่ง ลุย 2024 ย้ายเต็มไทย<br>แห่ ซิ่ง วิ่ง ลุย 2024 ฐานข้อมูลภาพยนตร์ไทย<br>แห่ ซิ่ง วิ่ง ลุย 2024 เต็มชมออนไลน์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ภาพยนตร์เต็มภาษาเยอรมัน<br>แห่ ซิ่ง วิ่ง ลุย 2024 เยอรมันคิน็อกซ์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ไทยฟิล์มเอชดี<br>แห่ ซิ่ง วิ่ง ลุย 2024 ภาพยนตร์เยอรมันออนไลน์<br>แห่ ซิ่ง วิ่ง ลุย 2024 ภาพยนตร์เยอรมันฟรีเต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย (2024) - ดูหนังใหม่ ดูหนังออนไลน์ หนังชนโรง<br>แห่ ซิ่ง วิ่ง ลุย ดูหนังออนไลน์ฟรี พากย์ไทย + ซับไทย<br>แห่ ซิ่ง วิ่ง ลุย โรงภาพยนตร์ หนังชนโรง<br>แห่ ซิ่ง วิ่ง ลุย เว็บดูหนังออนไลน์ฟรี 24 ชั่วโมง<br>แห่ ซิ่ง วิ่ง ลุย ดูหนังออนไลน์ฟรีไม่กระตุก ไม่มี โฆษณา<br>แห่ ซิ่ง วิ่ง ลุย ดูหนังออนไลน์2024 พากย์ไทย<br>แห่ ซิ่ง วิ่ง ลุย ดูหนังออนไลน์ 4k พากย์ไทย<br>แห่ ซิ่ง วิ่ง ลุย ดูหนังออนไลน์พากย์ไทยเต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย หนังออนไลน์พากย์ไทยเต็มเรื่อง 2024<br>แห่ ซิ่ง วิ่ง ลุย หนังใหม่พากย์ไทยเต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย (2024) หนังใหม่ชนโรง<br>แห่ ซิ่ง วิ่ง ลุย หนังสนุกๆเต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย หนังใหม่เต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย หนังใหม่ เต็มเรื่อง<br>แห่ ซิ่ง วิ่ง ลุย (2024) เรื่องย่อ<br>แห่ ซิ่ง วิ่ง ลุย (2024) คะแนน<br>แห่ ซิ่ง วิ่ง ลุย (2024) ชนโรง<br>แห่ ซิ่ง วิ่ง ลุย (2024) รายได้<br>แห่ ซิ่ง วิ่ง ลุย (2024) รีวิว<br>แห่ ซิ่ง วิ่ง ลุย (2024) ฉาย</p> </div>
</section>
<div id="public_profile_upload_container" class="">
<div id="public_profile_items_container" class="horizontal_view">
<div class="upload_header">
<span class="metadata-name metadata-name">
<span>
Name </span>
</span>
<span class="metadata-price metadata-item">
<span>
</span>
</span>
<span class="metadata-likes metadata-item">
<span>
Likes </span>
</span>
<span class="metadata-downloads metadata-item">
<span>
Downloads </span>
</span>
<span class="metadata-views metadata-item">
<span>
Views </span>
</span>
<span class="metadata-size metadata-item">
<span>
Size </span>
</span>
<span class="metadata-modified metadata-item">
<span>
Modified </span>
</span>
<span class="metadata-created metadata-item">
<span>
Created </span>
</span>
</div>
<div class="public_profile_items_section " id="public_profile_items_section_folders"></div>
<div id="loadingDiv" style="">
<div class="loader">
<div class="preloader-animation">
<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
</div>
</div>
</div>
</div>
<div id="pagination" style="text-align: center; text-align-last: center; line-height: 60px;">
</div>
</div>
</div>
<div id="footer_container">
<div id="footer">
<p>© davidarida385 public content page</p>
<span class="social-wrapper">
</span>
</div>
</div>
<link rel="stylesheet" type="text/css" media="all" href="/js/bxslider/jquery.bxslider.min.css?v=1715343640"><link rel="stylesheet" type="text/css" media="all" href="/css/modal_gallery.v2.css?v=1730358222"><link rel="stylesheet" type="text/css" media="all" href="/css/global_facelift.css?v=1720449903"><link rel="stylesheet" type="text/css" media="all" href="/css/audio_player.css?v=1715343651"><link rel="stylesheet" type="text/css" media="all" href="/js/filesfm_videojs/videojs_8.3.0/video-js.css?v=1715343635"><link rel="stylesheet" type="text/css" media="all" href="/js/filesfm_videojs/css/filesfm_videojs.css?v=1717493775"><link rel="stylesheet" type="text/css" media="all" href="/js/filesfm_videojs/plugins/videojs-quality-selector_1.3.1/quality-selector.css?v=1715343635"><link rel="stylesheet" type="text/css" media="all" href="/js/highlight/styles/atom-one-dark.min.css?v=1715343642">
<script src="/js/jquery.tagsinput.js?v=1715343639"></script>
<script src="/js/jquery.fitvids.js?v=1715343639"></script>
<script src="/js/bxslider/jquery.bxslider.js?v=1715343640"></script>
<script src="/js/autosize.min.js?v=1715343635"></script>
<script src="/js/audio_player.js?v=1715343635"></script>
<script src="/js/functions.js?v=1715343642"></script>
<script src="/js/dropdown.button.js?v=1715343643"></script>
<script src="/js/panzoom/panzoom.min.js?v=1715343639"></script>
<script src="/js/exif-js/exif.js?v=1730120635"></script>
<script src="/js/filesfm_videojs/videojs_8.3.0/video.min.js?v=1715343635"></script>
<script src="/js/filesfm_videojs/filesfm_videojs.js?v=1715343635"></script>
<script src="/js/filesfm_videojs/plugins/videojs-quality-selector_1.3.1/silvermine-videojs-quality-selector.min.js?v=1715343635"></script>
<script src="/js/edit_image_popup.js?v=1715343639"></script>
<script src="/js/highlight/highlight.min.js?v=1715343642"></script>
<div id="gallery2" style="display: none;" class=" ">
<div id="gallery2__bg"></div>
<div id="gallery2__content-wrapper">
<div id="gallery2__header_mobile">
<span class="gallery2__header__img-count"> </span>
<span class="gallery2__header__file_name_value"></span>
<span class="gallery2__header__close" onclick="if($( '#gallery2__content' ).hasClass( 'gallery__sidebar__info-visible' ) && $( '#gallery2__content' ).hasClass( 'gallery__sidebar-visible' ) ){showGalleryInfo(); $(window).trigger('resize');} else {closeGallery(strCurrentFileHash);}"></span>
</div>
<div id="gallery2__header">
<div id="gallery2__header__inner" class="clearfix">
<div class="gallery2__header__icon-group" id="gallery2__header__left">
<span class="gallery2__header__img-count"> </span>
<span class="gallery2__header__file_name_value"></span>
</div>
<div id="gallery2__header__mid">
<div id="gallery2__header__mid_content">
<span id="gallery2__buyproducts" class="gallery2__header_middle_button gallery2__button__buy-products">
<a href="javascript:void(0);">
<span class="text">Buy prints</span>
</a>
</span>
<span id="gallery2__download_space"></span>
<span id="gallery2__buyfile" style="display:none" class="gallery2__header_middle_button public">
<a href="javascript:void(0);">
<span class="text">Buy</span>
<span class="dash"> - </span>
<span class="price"></span>
</a>
</span>
<span id="gallery2__buyall" style="" class="gallery2__header_middle_button public">
<a href="javascript:void(0);">
<span class="text">Buy all</span>
<span class="dash"> - </span>
<span class="price"></span>
</a>
</span>
<span id="gallery2__share" class="gallery2__header_middle_button">
<a href="javascript:void(0);" id="gallery2__share_button">
<span>Share link</span>
</a>
</span>
<span id="gallery2__header__right_more" class="gallery2__header_middle_button" onclick="if(!bolGallerySidebarVisible || $(window).width() > 500){$(this).toggleClass('open')}else{showGalleryInfo(); $(window).trigger('resize');} galleryLoadFileInfo(true);">More</span>
<div id="gallery2__header__mobile_menu">
<span id="gallery2__edit" class="gallery2__header_middle_button gallery2__edit">
<a href="javascript:void(0);" id="gallery2__edit_button">
<span>Edit</span>
</a>
</span>
<span id="gallery2__edit_in_google" class="gallery2__header_middle_button gallery2__edit_in_google">
<a href="javascript:void(0);" id="gallery2__edit_in_google_button">
<span>Edit in Google</span>
</a>
</span>
<a id="gallery2__item_info_cover_middle" class="gallery2__header_middle_button bottom_menu" onclick="setAsThumb(arrIDs[ getItemIndex ( strCurrentFileHash ) ], arrParentHashes[ getItemIndex ( strCurrentFileHash ) ]);" href="javascript:void(0)">
Set as cover image </a>
<a id="gallery2__sidebar__info-price_middle" class="gallery2__header_middle_button bottom_menu" href="javascript:void(0)"></a>
<a id="gallery2__sidebar__info-rename_middle" onclick=" if( bolIsOwner )
{
$('#gallery2__header__right_more').toggleClass('open');
showGalleryInfo();
$(window).trigger('resize');
$('#file_name_edit_wrapper textarea').focus();
$('#file_name_edit_wrapper textarea').addClass('pulse');
}" class="not_owner_hide gallery2__header_middle_button bottom_menu" href="javascript:void(0)">Rename</a>
<a href="javascript:void(0);" id="gallery2__sidebar__info_embed_button_middle" class="gallery2__header_middle_button bottom_menu">
Embed links <div class="tag pro">Pro</div>
</a>
<a id="gallery2__item_info_delete_middle" class="gallery2__header_middle_button bottom_menu" href="javascript:void(0)">
Delete </a>
<a id="gallery2__item_info_replace_middle" class="gallery2__header_middle_button bottom_menu" href="javascript:void(0)">
Replace file</a>
<div class="gallery2__header__mobile_menu_seperator"></div>
<a id="gallery2__info_more" class="gallery2__header_middle_button bottom_menu" href="javascript:void(0)" onclick="showGalleryInfo(); $(window).trigger('resize'); $('#gallery2__header__right_more').removeClass('open')">
Info </a>
<a id="gallery2__slideshow_middle" class="gallery2__header_middle_button bottom_menu" onclick="enterSlideshow()" href="javascript:void(0)">
Slideshow </a>
<div id="gallery2__comments_button_middle" class="gallery2__header_middle_button" onclick="if(!bolGallerySidebarVisible) {showGalleryInfo();} showGalleryMessages(); $(window).trigger('resize'); $('#gallery2__header__right_more').removeClass('open')">Add comment</div>
<span id="gallery2__buy-products" class="gallery2__header_middle_button gallery2__button__buy-products">
<a href="javascript:void(0);">
<span class="text">Buy prints</span>
</a>
</span>
<div id="gallery2__report_button_middle" class="gallery2__report_button gallery2__header_middle_button" onclick="$('#gallery2__header__right_more').removeClass('open')">
<span class="not-reported">Report a problem</span>
<span class="reported">Cancel a problem report</span>
</div>
<div id="gallery2_item_info_share_middle" class="gallery2_item_info_share">
<div class="gallery2_input-container">
<input type="text" id="gallery_share_popup_url_middle" onclick="this.setSelectionRange(0, this.value.length); gaev( 'filebrowser-file-info', 'share-link', '' ); $( '#copy_button_middle' ).addClass( 'copied' ).delay( 4000 ).queue( function( next ){$( this ).removeClass( 'copied' );next();} );" class="gallery2_share-input copy_input_value_to_clipboard my_tooltip" data-clipboard-text="" my_title="You can send the link to other users for access to these files. File owner can change access rights.">
</div>
<div id="copy_button_middle" class="copy_button">
<div class="copy_text">
<div class="hover mobile">Copy</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
</div>
<div id="gallery2__header__mobile_menu_close_before"></div>
<span id="gallery2__info_middle" class="gallery2__info gallery2__header_middle_button" onclick="showGalleryInfo(); $(window).trigger('resize'); $('#gallery2__header__right_more').removeClass('open')">Info</span>
</div>
</div>
<div class="gallery2__header__icon-group gallery2__header__right" id="gallery2__header__right">
<span id="gallery2__close" class="gallery2__close" onclick="closeGallery(strCurrentFileHash);"></span>
</div>
</div>
</div>
<div id="gallery2__header_slideshow">
<span class="gallery2__header_slideshow_resume" onclick="nextSlide(); resumeSlideshow()">Play</span>
<span class="gallery2__header_slideshow_pause" onclick="pauseSlideshow()">Pause</span>
<span class="gallery2__header__close" onclick="exitSlideshow()"></span>
</div>
<div id="gallery2__content" class="gallery__image__is-image gallery__thumbs-visible clearfix">
<div id="gallery2__content__sidebar">
<div id="gallery2__sidebar__info__comments">
<div id="gallery2__info_button" onclick="hideGalleryMessages(); $(window).trigger('resize');">
Information </div>
<div id="gallery2__comments_button" onclick="showGalleryMessages(); $(window).trigger('resize');">
Add a comment </div>
<div id="gallery2__sidebar-close" onclick="hideSidebar();"></div>
</div>
<div id="gallery2__content__sidebar__inner" class="gallery2__content__sidebar__inner__flex">
<div id="gallery2__sidebar__info">
<div class="gallery2__sidebar__content">
<div id="file-info">File info:</div>
<div id="gallery2_file_info">
<div id="gallery2_item_info_bottom_section">
<div class="gallery2_item_info_padded">
<div id="gallery2_info_head">
<div class="info_head">
<div class="thumbnail-wrapper">
</div>
<div id="gallery2__sidebar__info-name" class="not_owner_hide">
<div id="file_name_edit_wrapper">
<div class="error_msg">An error occurred. Please try again!</div>
<textarea class="gallery2__sidebar__info-value gallery2__sidebar__file_name_value" rows="1"></textarea>
<div class="editable_field_save_button">
Save </div>
<div class="edit_wrapper_edit_button"><div class="edit_wrapper_edit_button_icon"></div></div>
</div>
</div>
<h1 id="gallery2__sidebar__info-name-uneditable" style="word-wrap: break-word;" class="not_owner_show">
<span class="gallery2__sidebar__file_name_value"></span>
</h1>
</div>
<label class="block-label" for="gallery2__sidebar__file_description_value" style="margin-top: 30px;">Description</label>
<div id="gallery2__sidebar__info-description" class="not_owner_hide">
<div id="file_description_edit_wrapper">
<div class="error_msg">An error occurred. Please try again!</div>
<textarea id="gallery2__sidebar__file_description_value" class="gallery2__sidebar__info-value not_owner_hide gallery2__sidebar__file_description_value" placeholder="Add file description"></textarea>
<div class="editable_field_save_button">
Save </div>
<div class="edit_wrapper_edit_button not_owner_hide"><div class="edit_wrapper_edit_button_icon"></div></div>
</div>
</div>
<div class="not_owner_show">
<span class="gallery2__sidebar__file_description_value"></span>
</div>
<div id="gallery2__sidebar__info-set-custom-thumbnail"></div>
</div>
</div>
<div class="gallery2_item_info_padded share">
<label class="block-label" for="upload-access-switch_type-select" style="margin-bottom: 10px;">Access</label>
<div id="gallery2_item_info_share-wrapper">
<div id="gallery_upload-access-switch"></div>
</div>
<div id="gallery2_item_info_share" class="gallery2_item_info_share">
<div class="gallery2_input-container">
<input type="text" id="gallery_share_popup_url" onclick="this.setSelectionRange(0, this.value.length); gaev( 'filebrowser-file-info', 'share-link', '' ); $( '#copy_button_left' ).addClass( 'copied' ).delay( 4000 ).queue( function( next ){$( this ).removeClass( 'copied' );next();}" class="gallery2_share-input gallery_share_popup_url copy_input_value_to_clipboard my_tooltip" data-clipboard-text="" my_title="You can send the link to other users for access to these files. File owner can change access rights.">
</div>
<div id="copy_button_left" class="copy_button">
<div class="copy_text">
<div class="hover">Copy</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
</div>
<div class="gallery2_item_info_padded signatures">
</div>
<div class="header-owner">
<div class="header-owner_title block-label">User </div>
<div class="header-owner_image-wrapper"></div>
<div class="header-owner_name"></div>
</div>
<table id="gallery2_file_details_table_ai" class="zebra_table gallery2_item_info_padded">
<tbody>
<tr id="gallery2__sidebar__info-content_analyze-buttons" class="gallery2__sidebar__info-metadata gallery2__sidebar__exif_tags-top-separator">
<td colspan="2">
<div class="gallery2__sidebar__info-one_line_buttons">
<div>
<div class="gallery2__sidebar__info-dropdown_button google_cloud-vision" onclick="objectsLabelsDetection( this ); gaev( 'modal-gallery-objects_labels_detection', 'any-user-clicked', '' );">
<span class="gallery2__sidebar__info-dropdown_text">
Find objects PRO </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</div>
<div class="gallery2__sidebar__info-dropdown_button yolo-object_detection" onclick="objectDetection( this ); gaev( 'modal-gallery-yolo_objects_labels_detection', 'any-user-clicked', '' );">
<span class="gallery2__sidebar__info-dropdown_text">
Find objects </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</div>
</div>
<div>
<div class="gallery2__sidebar__info-dropdown_button google_cloud_vision-ocr" onclick="ocrAnalyze( this, 'googlecv' ); gaev( 'modal-gallery-ocr-buttons', 'googlecv-model', '' );">
<span class="gallery2__sidebar__info-dropdown_text">
Find text PRO </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</div>
<div class="gallery2__sidebar__info-dropdown_button easyocr-text_recognition" onclick="ocrAnalyze( this, 'easyocr' ); gaev( 'modal-gallery-ocr-buttons', 'easyocr-model', '' );">
<span class="gallery2__sidebar__info-dropdown_text">
Find Text </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</div>
</div>
</div>
</td>
</tr>
<tr id="gallery2__sidebar__info-easyocr_text" class="gallery2__sidebar__info-metadata">
<td colspan="2" class="metadata-title_above_content">
<div>
Basic printed text recognition: </div>
<div class="gallery2__sidebar__info-value"></div>
</td>
</tr>
<tr id="gallery2__sidebar__info-google_cv_text" class="gallery2__sidebar__info-metadata">
<td colspan="2" class="metadata-title_above_content">
<div>
PRO OCR text found in image: </div>
<div class="gallery2__sidebar__info-value"></div>
</td>
</tr>
<tr id="gallery2__sidebar__info-google_cloud-speech_to_text-button" class="gallery2__sidebar__info-metadata gallery2__sidebar__exif_tags-top-separator">
<td colspan="2">
<div class="gallery2__sidebar__info-one_line_buttons">
<div class="gallery2__sidebar__info-dropdown_button" onclick="speechToText( this ); gaev( 'modal-gallery-speech-to-text', 'any-user-clicked', '' );" style="width: max-content;">
<span class="gallery2__sidebar__info-dropdown_text">
Recognize speech </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</div>
</div>
</td>
</tr>
<tr id="gallery2__sidebar__info-google_cloud-speech_to_text-text" class="gallery2__sidebar__info-metadata">
<td colspan="2" class="metadata-title_above_content">
<div>
Transcription </div>
<div class="gallery2__sidebar__info-value"></div>
</td>
</tr>
</tbody>
</table>
<table id="gallery2_file_details_table_tags" class="zebra_table gallery2_item_info_padded">
<tbody>
<tr id="gallery2__sidebar__info-metadata-tags" class="gallery2__sidebar__info-metadata gallery2__sidebar__exif_tags-top-separator">
<td colspan="2">
Tags </td>
</tr>
</tbody>
</table>
<ul class="fa-ul" id="gallery2__sidebar__info-data">
<li id="gallery2__sidebar__info-tags">
<div id="gallery_file_tags_container" class="file_tags_container ">
<input class="file_tags_input" style="display:none" data-tagsinput-init="true" id="tags17318716697920"><div id="tags17318716697920_tagsinput" class="tagsinput searchable" style="width: 100%; min-height: auto; height: auto;"><div id="tags17318716697920_addTag" class="add_tag_button"></div><div class="tags_clear"></div></div>
<div class="file_tags_error">An error occurred. Please try again!</div>
</div>
</li>
</ul>
<div id="gallery2__sidebar__info-object_tags" class="gallery2__sidebar__info-metadata gallery2__sidebar__info-image_annotation">
<div class="title">
Objects </div>
<div class="tags"></div>
</div>
<div id="gallery2__sidebar__info-label_tags" class="gallery2__sidebar__info-metadata gallery2__sidebar__info-image_annotation">
<div class="title">
Labels </div>
<div class="tags"></div>
</div>
<label class="block-label" id="gallery2_file_details_table_label" style="padding-left: 20px;">Meta data</label>
<table id="gallery2_file_details_table" class="zebra_table gallery2_item_info_padded">
<tbody>
<tr id="gallery2__sidebar__info-mainexif">
<td colspan="2" class="gallery2__sidebar__info-value">
<div class="exif-grid">
<div class="Model my_tooltip" my_title="Device"><span></span></div>
<div class="ISO my_tooltip" my_title="ISO controls the camera’s sensitivity to light. Lower values produce clearer images in bright conditions, while higher values are ideal for low light but may introduce grain."><span></span></div>
<div class="LensModel my_tooltip" my_title="Lens model specifies the type and characteristics of the lens being used, which greatly influences image quality, depth of field, and perspective in photography"><span></span></div>
<div class="FocalLength my_tooltip" my_title="Focal length determines the camera’s field of view and zoom level; shorter lengths capture wider scenes, while longer lengths zoom in for close-up details."><span></span></div>
<div class="ApertureValue my_tooltip" my_title="Aperture value controls the amount of light entering the camera and affects depth of field, influencing how much of the image is in focus!">f/<span></span></div>
<div class="ExposureTime my_tooltip" my_title="Exposure time or shutter speed - determines how long the camera’s sensor is exposed to light, affecting the brightness of the image and the ability to freeze motion or create motion blur."><span></span></div>
<div class="size my_tooltip" my_title="Resolution refers to the amount of detail an image can capture, measured in pixels. Higher resolution allows for larger prints and greater cropping flexibility without losing image quality."><span></span></div>
<div class="mp my_tooltip" my_title="Megapixels indicate the approximate total number of pixels in an image in millions (length * width) for a quick estimate of its size."><span></span></div>
</div>
</td>
</tr>
<tr id="gallery2__sidebar__info-date-created">
<td>
Created:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-moddate">
<td>
Modified:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-date">
<td>
Uploaded:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-date-delete">
<td style="color:#C96F6F">
Will be deleted:
</td>
<td class="gallery2__sidebar__info-value" style="color:#C96F6F">
</td>
</tr>
<tr id="gallery2__sidebar__info-size">
<td>
Size:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-dimensions">
<td>
Resolution:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-views">
<td>
Views:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-downloads">
<td>
Downloads:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-comments">
<td>
Comments:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-title" class="gallery2__sidebar__info-metadata">
<td>
Title:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-subject" class="gallery2__sidebar__info-metadata">
<td>
Subject:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-content_type" class="gallery2__sidebar__info-metadata">
<td>
Content type:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-category" class="gallery2__sidebar__info-metadata">
<td>
Category:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-categories" class="gallery2__sidebar__info-metadata">
<td>
Categories:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-keywords" class="gallery2__sidebar__info-metadata">
<td>
Keywords:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-creator" class="gallery2__sidebar__info-metadata">
<td>
Author:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-publisher" class="gallery2__sidebar__info-metadata">
<td>
Publisher:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-contributor" class="gallery2__sidebar__info-metadata">
<td>
Contributor:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-copyrights" class="gallery2__sidebar__info-metadata">
<td>
Copyrights:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-license_type" class="gallery2__sidebar__info-metadata">
<td>
License type:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-license_details" class="gallery2__sidebar__info-metadata">
<td>
License details:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-language" class="gallery2__sidebar__info-metadata">
<td>
Language:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-location" class="gallery2__sidebar__info-metadata">
<td>
Location:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-location_lat" class="gallery2__sidebar__info-metadata">
<td>
GPS Lat:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-location_long" class="gallery2__sidebar__info-metadata">
<td>
GPS Long:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-references" class="gallery2__sidebar__info-metadata">
<td>
References:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-relates_to" class="gallery2__sidebar__info-metadata">
<td>
Relates to:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-format" class="gallery2__sidebar__info-metadata">
<td>
Format:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-device" class="gallery2__sidebar__info-metadata">
<td>
Device:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-source" class="gallery2__sidebar__info-metadata">
<td>
Source:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-metadata-duration" class="gallery2__sidebar__info-metadata">
<td>
Length:
</td>
<td class="gallery2__sidebar__info-value">
</td>
</tr>
<tr id="gallery2__sidebar__info-exif_tags-button" class="gallery2__sidebar__info-metadata">
<td class="gallery2__sidebar__info-exif_tags-dropdown" onclick="$( '#gallery2__sidebar__info-exif_tags-button' ).hide(); $('.gallery2__sidebar__info-exif_tags').show();">
<span class="gallery2__sidebar__info-dropdown_text">
Show Exif info </span>
<span class="gallery2__sidebar__info-dropdown_icon"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /#file_info -->
</div>
</div>
<div id="gallery2__sidebar__banner">
<div id="files_300x250_file_desktop_1">
<script>
if ( typeof googletag != 'undefined' && typeof googletag.cmd != 'undefined' )
{
googletag.cmd.push(function () {
googletag.display('files_300x250_file_desktop_1');
});
}
</script>
</div>
</div>
</div>
<script>
var CHAT_DATA = {
userId: null,
phpSessid: 'a38f344e4cb305a050cfe761f696af64db3161f4',
fullChat: false,
apiUrl: "https://files.fm/api/chat/",
mainUrl: "https://files.fm/",
avatarCache: Date.now(),
isOrg: false,
translations: {"CHATFM_SEND-BUTTON":"Send","CHATFM_MEMBERS":"Members","CHATFM_TYPE-NEW-MESSAGE":"Write a message","CHATFM_NEW-CONVERSATION-BUTTON":"New conversation","CHATFM_START-NEW-CONVERSATION-BUTTON":"Start a new conversation","CHATFM_GROUP-CHAT-TITLE":"Create a new conversation:","CHATFM_GROUP-CHAT-INPUT":"Type a conversation name","CHATFM_GROUP-CHAT-SELECT":"Select members:","CHATFM_GROUP-CHAT-ACTION-ALL":"Select all","CHATFM_GROUP-CHAT-ACTION-NONE":"Clear","CHATFM_GROUP-CHAT-CREATE-BUTTON":"Create","CHATFM_SELECT-CONVERSATION":"Select conversation or","CHATFM_EMPTY-CHANNELS":"You currently do not have any conversation","CHATFM_CANCEL-BUTTON":"Cancel","CHATFM_REPORT-TITLE":"Report message?","CHATFM_REPORT-BUTTON":"Report","CHATFM_DELETE-TITLE":"Delete message?","CHATFM_DELETE-BUTTON":"Delete","CHATFM_MESSAGE-DELETED":"Message deleted","CHATFM_NEW-ACCOUNT-TITLE":"Create an account to write a message.","CHATFM_SIGN-UP":"Sign up","CHATFM_LOG-IN":"Log in","CHATFM_ERROR":"Something went wrong. Please reload the page and try again.","CHATFM_MESSAGES-LOAD-MORE":"Load more","CHATFM_SYSTEM-MESSAGES":"System messages","CHATFM_SYSTEM-MESSAGE":"System message","CHATFM_NOT_VALID_EMAIL":"Not valid email!","CHATFM_ALREADY_ADDED_TO_WAITINGLIST":"Invitation sent!","CHATFM_ADDED_TO_WAITINGLIST":"Invitation sent!","CHATFM_ALREADY_ADDED_TO_CHANNEL":"Already added!","CHATFM_ADDED_TO_CHANNEL":"Successfully added!","CHATFM_NOT_FROM_ORG":"This email is not registered in the organisation!","CHATFM_ADD_MEMBER_TITLE":"Invite a new member via email to chat","CHATFM_ADD_MEMBER_INPUT":"Email","CHATFM_ADD_MEMBER_BUTTON":"Add","CHATFM_REQUEST_ACCESS_ALREADY_MEMBER":"User is already in this conversation!","CHATFM_REQUEST_ACCESS_NOT_POSSIBLE":"Unable to send request!","CHATFM_REQUEST_ACCESS_SENT":"Request sent!","CHATFM_REQUEST_ACCESS_TITLE":"You don\\'t have access to this conversation.","CHATFM_REQUEST_ACCESS_BUTTON_SEND":"Send access request","CHATFM_REQUEST_ACCESS_BUTTON_BACK":"Back to conversations","CHATFM_YES-BUTTON":"Yes","CHATFM_NO-BUTTON":"No","CHATFM_WAITINGLIST-TITLE":"Waiting list","CHATFM_WAITINGLIST-EMPTY":"Waiting list is empty","CHATFM_WAITINGLIST-DELETE-TITLE":"Cancel invite?","CHATFM_MENTION_DESCRIPTION":"Write @ symbol to send email to user","CHATFM_MEMBER-DELETE-TITLE":"Remove member?","CHATFM_EDIT-NAME-UPDATED":"Successfully updated!","CHATFM_EDIT-NAME-TITLE":"Edit name","CHATFM_EDIT-NAME-INPUT":"Type a conversation name","CHATFM_EDIT-NAME-BUTTON":"Save","CHATFM_CHANNEL-ERROR-BACK-BUTTON":"Back to conversations","CHATFM_CHANNEL-ERROR-NO-ACCESS":"You don\\'t have access to this conversation.","CHATFM_CONTACT-MESSAGE":"To contact Files.fm support, go to the section %link% and send a message.","CHATFM_CONTACT-TITLE":"Contacts"},
showMessagesHeader: false,
allowAddNewMember: false,
allowSendAccessRequest: false,
initChannelId: null,
initChannelStatus: null,
initChannelType: null,
initChannelName: null,
showWaitinglist: false
};
</script>
<div id="gallery2__comments" class="gallery2__comments">
<a href="javascript:void(0)" onclick="hideGalleryMessages(); $(window).trigger('resize');" id="gallery2__comments_button_close" class="my_tooltip" my_title="Back to information">
<i class="fas fa-chevron-left"></i>
</a>
<div id="chatfm-app-wrapper">
<div id="chatfm-app" class="chatfm-app"><div class="chatfm"><div class="chatfm__loading"><div class="chatfm-spinner"></div></div></div></div>
</div>
</div>
</div>
<div id="gallery2__content__viewport">
<div id="gallery2__image-wrapper">
<div id="gallery2__swipe-wrapper"><i class="fa fa-spinner fa-spin gallery2__load-spinner"></i></div>
<div id="gallery2__controls_middle">
<div class="gallery2__controls_middle">
<div id="gallery_vote_middle" class="gallery_vote gallery2__header__icon my_tooltip" onclick="voteForFile(strCurrentFileHash)" my_title="Mark as Like">
<div class="gallery2__controls_middle_icon"><span class="vote_count"></span></div>
</div>
<div id="gallery_comments_middle" onclick="if(!bolGallerySidebarVisible) {showGalleryInfo();} showGalleryMessages(); $(window).trigger('resize');" class="my_tooltip" my_title="Add a comment"><div class="gallery2__controls_middle_icon"></div></div>
<div id="gallery_edit_image_middle" class="edit_image gallery2__edit my_tooltip" my_title="Edit image"><div class="gallery2__controls_middle_icon"></div></div>
</div>
<div class="gallery2__controls_middle">
<div id="gallery2__header__zoom" onclick="openPanZoomImage()" class="my_tooltip" my_title="Zoom image preview"><div class="gallery2__controls_middle_icon"></div></div>
<div id="gallery2__header__view-original" onclick="showOrginal(strCurrentFileHash)" class="my_tooltip" my_title="Open original image in full quality"><div class="gallery2__controls_middle_icon"></div></div>
<div id="gallery2__header__fullscreen" onclick="galleryToggleFullScreen(document.body)" class="my_tooltip" my_title="Switch to fullscreen"><div class="gallery2__controls_middle_icon"></div></div>
<div id="gallery2__header__slideshow" onclick="enterSlideshow()" class="my_tooltip" my_title="Slideshow"><div class="gallery2__controls_middle_icon"></div></div>
</div>
</div>
<div id="gallery2__controls_doc_sign">
</div>
<div id="gallery2__controls_left">
<a href="javascript:void(0);" id="gallery2__controls__prev" onclick="galleryOpenPrevItem()"></a>
</div>
<div id="gallery2__controls_right">
<a href="javascript:void(0);" id="gallery2__controls__next" onclick="galleryOpenNextItem()"></a>
</div>
</div>
<div id="gallery2__thumb-strip__hide_container">
<a href="javascript:void(0)" id="gallery2__thumb-strip__hide" onclick="toggleThumbs();"></a>
</div>
<div id="gallery2__thumb-strip">
<div id="gallery2__thumb-strip__buttons">
<a href="javascript:void(0)" id="gallery2__thumb-strip__prev" onclick="
var intMovementPx = parseInt($('#gallery2__image-wrapper').width()) / 2;
if (parseInt($('#gallery2__thumb-strip__inner').css('left')) + intMovementPx > 0)
{
$('#gallery2__thumb-strip__inner').css({'left': 0});
}
else
{
$('#gallery2__thumb-strip__inner').css({'left': parseInt($('#gallery2__thumb-strip__inner').css('left')) + intMovementPx});
};
galleryLazyloadRecalc();">
</a>
<a href="javascript:void(0)" id="gallery2__thumb-strip__next" onclick="
var intMovementPx = parseInt($('#gallery2__image-wrapper').width()) / 2;
if (parseInt($('#gallery2__image-wrapper').width()) - parseInt($('#gallery2__thumb-strip__inner').width()) > parseInt($('#gallery2__thumb-strip__inner').css('left')) - intMovementPx)
{
$('#gallery2__thumb-strip__inner').css({'left': parseInt($('#gallery2__image-wrapper').width()) - parseInt($('#gallery2__thumb-strip__inner').width())})
}
else
{
$('#gallery2__thumb-strip__inner').css({'left': parseInt($('#gallery2__thumb-strip__inner').css('left')) - intMovementPx})
};
galleryLazyloadRecalc();">
</a>
</div>
<div id="gallery2__thumb-strip__inner" style="width: 0; left: 0;">
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var bolStartAudioOnOpen = false;
var bolHashtagViewUseSemicolon = false;
var bolGalleryIsVisible = false;
var bolGallerySidebarVisible = false;
var bolGalleryCommentsVisible = false;
var intPreloadImagesCount = 1;
var intPreloadThumbnailsCount = 2;
var bolUseAsyncFileInfoDataLoad = true;
var intPreloadFileInfoDataCount = 1;
var strLinkToView = '';
var strGalleryCloseHashtag = '';
var intCurrentFileIndex = null;
var strCurrentFileHash = null;
var strCurrentFileName = null;
var intNextIndex = null;
var intPreviousIndex = null;
var intThumbWidth = 110;
var jqThumbViewport = null;
var jqThumbContainer = null;
var jqMainSlider = null;
var objVideoIsLoading = {};
var resVideoCheckInterval = null;
var bolHaveToRedrawGallery = false;
var bolIsOwner = Boolean();
var bolCanEdit = Boolean();
var bolCanDelete = Boolean();
var bolCloseGalleryIfHashRemoved = true;
var objMainShareParams = null;
var arrMOVsWithH264Hashes = [];
var strFolderName = null;
var bolIsiOSDevice = window.navigator.userAgent.match(/(iPod|iPhone|iPad)/) && window.navigator.userAgent.match(/AppleWebKit/);
var bolIsListViewForSpecificFile = Boolean(0);
var objEmbedPlayerFileEventCallback = {};
var strActiveCommentsEntityHash = "";
var bolPopupOnlyGallery = false;
var bolOpenGalleryCommentsBlock = false;
var strSlideshowInterval = null;
var strSlideshowUserActive = null;
var bolActivateSlideshowOnOpen = false;
var bolActivateSlideshowOnOpenPaused = false;
var bolHideCloseButton = false;
var strPublicProfileHref = '';
if ( typeof strUploadUserNameHref != 'undefined' && strUploadUserNameHref != '' )
{
strPublicProfileHref = '/' + strUploadUserNameHref;
}
else if ( typeof PublicProfile != 'undefined' && typeof PublicProfile.strProfileName != 'undefined' )
{
strPublicProfileHref = '/' + PublicProfile.strProfileName;
}
function browserSupportsCanvas() {
var elem = document.createElement('canvas');
return !!(elem.getContext && elem.getContext('2d'));
}
window.addEventListener('message', function(data)
{
if ( data.data === "info" )
{
showGalleryInfo();
}
}, false);
var bolUseEmbedPlayer = WEBRTC_SUPPORT && (window.navigator.userAgent.indexOf("Edge") == -1);
var viewItemIsDeleted = 0;
var bolGalleryInitalizedState = null;
function galleryInitalize()
{
bolGalleryInitalizedState = 0;
if( viewItemIsDeleted )
{
return;
}
if ( bolIsListViewForSpecificFile )
{
$( '#gallery2' ).addClass( 'list_for_specific_file' );
}
$('body').append('<div id="gallery_panzoomdiv" style="overflow:hidden;height:100%;width:100%;position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 999999999; background: #666666; display: none;" height="100%" width="100%"></div>')
window.oncontextmenu = function( event )
{
if (
$( event.target ).parents( '.gallery2__item' ).length
|| $( event.target ).parents( '#gallery2__thumb-strip' ).length
)
{
// Disabling the context menu for thumbnails
event.preventDefault();
event.stopPropagation();
return false;
}
}
$('.edit_wrapper_edit_button').click(function() {
$(this).parent().find("textarea").focus();
});
$('#file_description_edit_wrapper textarea').on("keyup change", function(e) {
autoGrow( this, '32px' );
if ( bolIsOwner )
{
updateFileDescription();
}
});
$('#file_name_edit_wrapper textarea').on("keyup", function(e) {
$('#file_name_edit_wrapper textarea').removeClass('pulse');
autoGrow( this, '32px' );
});
$('#file_name_edit_wrapper textarea').on("change", function(e) {
$('#file_name_edit_wrapper textarea').removeClass('pulse');
autoGrow( this, '32px' );
if ( bolIsOwner )
{
updateFileName();
}
});
$('#file_name_edit_wrapper textarea').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
$('#file_name_edit_wrapper textarea').on("focus", function(e) {
var strFullName = $('#file_name_edit_wrapper textarea').val();
var strExtension = '.' + arrExtensions[ intCurrentFileIndex ];
var intIndex = strFullName.lastIndexOf(strExtension);
strFullName = strFullName.slice(0, intIndex) + strFullName.slice(intIndex).replace(strExtension, '');
$('#file_name_edit_wrapper textarea').val(strFullName);
} )
$('#file_name_edit_wrapper textarea').on("focusout", function(e) {
$('#file_name_edit_wrapper textarea').removeClass('pulse');
$('#file_name_edit_wrapper textarea').val( $('#file_name_edit_wrapper textarea').val() + '.' + arrExtensions[ intCurrentFileIndex ] );
} )
$('#file_description_edit_wrapper textarea').on("focus", function(e) {
$( "#file_description_edit_wrapper" ).removeClass("no-description");
} )
$('#file_description_edit_wrapper textarea').on("focusout", function(e) {
if ( $('#file_description_edit_wrapper textarea').val() == '' )
{
$( "#file_description_edit_wrapper" ).addClass("no-description");
}
else
{
$( "#file_description_edit_wrapper" ).removeClass("no-description");
}
} )
if ( bolIsOwner )
{
$('#gallery2__header__setprice').show();
}
if ( ! bolHideShareButtons )
{
$('#gallery2__share').show();
}
if (arrHashes.length == 1)
{
hideThumbs();
$('#gallery2__slideshow_middle, #gallery2__slideshow, #gallery2__header__slideshow').hide();
}
$('#gallery_file_tags_container .file_tags_input').tagsInput(
{
'autocomplete_url': './ajax/file_tag.php?autocomplete&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4' ,
'autocomplete': { selectFirst:false, autoFill:false},
'height' : 'auto',
'width' : '100%',
'interactive' : bolIsOwner || ( window.location.href.indexOf( "filebrowser" ) !== -1 && 0 ),
'defaultText' : 'Add tags',
'onAddTag' : function(strTagName)
{
$('#gallery_file_tags_container .file_tags_error').hide();
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_tag.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'add_file_tag': true ,
'file_hash' : strCurrentFileHash ,
'tag_name': strTagName
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrTags[intItemIndex] += ';' + strTagName;
// update tags in filebrowser
$('#sidebar_file_tags_container .file_tags_input').importTags(typeof arrTags[intItemIndex] === "undefined" ? "" : arrTags[intItemIndex]);
}
else
{
$('#gallery_file_tags_container .file_tags_error').show();
}
} ,
error: function()
{
$('#gallery_file_tags_container .file_tags_error').show();
}
});
} ,
'onRemoveTag' : function(strTagName)
{
$('#gallery_file_tags_container .file_tags_error').hide();
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_tag.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'delete_file_tag': true ,
'file_hash' : strCurrentFileHash ,
'tag_name': strTagName
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrTags[intItemIndex] = arrTags[intItemIndex].replace(strTagName, '');
// update tags in filebrowser
$('#sidebar_file_tags_container .file_tags_input').importTags(typeof arrTags[intItemIndex] === "undefined" ? "" : arrTags[intItemIndex]);
}
else
{
$('#gallery_file_tags_container .file_tags_error').show();
}
} ,
error: function()
{
$('#gallery_file_tags_container .file_tags_error').show();
}
});
} ,
'onSearchTag' : function(strTagName)
{
if ( typeof strUploadUserNameHref != 'undefined' && strUploadUserNameHref != '' )
{
window.open('/' + strUploadUserNameHref + '#search='+ strTagName, '_self');
}
else if ( typeof PublicProfile != 'undefined' && typeof PublicProfile.strProfileName != 'undefined' )
{
window.open('/' + PublicProfile.strProfileName + '#search='+ strTagName, '_self');
}
} ,
'delimiter' : [';'] ,
'removeWithBackspace' : false ,
'minChars' : 1 ,
'maxChars' : 245 ,
'placeholderColor' : '#666666'
});
$('#gallery_file_tags_container .file_tags_input')
if (( typeof strUploadUserNameHref != 'undefined' && strUploadUserNameHref != '' ) ||
( typeof PublicProfile != 'undefined' && typeof PublicProfile.strProfileName != 'undefined' ))
{
$('#gallery_file_tags_container .tagsinput').addClass('searchable');
}
else
{
$('#gallery_file_tags_container .tagsinput').removeClass('searchable');
}
function getFileShareParams()
{
if ( objMainShareParams )
{
var intItemIndex = getItemIndex( strCurrentFileHash );
var objFileShareParams = {};
for ( idx in objMainShareParams )
{
objFileShareParams[ idx ] = objMainShareParams[ idx ];
}
if ( typeof( arrFileShareLinks ) != 'undefined' && typeof( arrFileShareLinks[ intItemIndex ] ) != 'undefined' )
{
objFileShareParams[ 'view_url' ] = 'https://files.fm' + arrFileShareLinks[ intItemIndex ];
}
else
{
objFileShareParams[ 'view_url' ] += '#/view/' + arrHashes[ intItemIndex ];
}
objFileShareParams[ 'can_share' ] = bolIsOwner;
objFileShareParams[ 'show_type_select' ] = false;
objFileShareParams[ 'type' ] = 'one_file';
var strFileShareParams_PictureUrl = '';
if ( arrFileTypes[ intItemIndex ] == 'image' )
{
strFileShareParams_PictureUrl = 'https://files.fm/thumb_show.php?i=' + arrHashes[ intItemIndex ] + '&view&v=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
}
var strFileViewLink = 'https://files.fm/f/' + strCurrentFileHash;
var strFileEditLink = '';
if ( bolCanDelete && typeof arrFileDeleteKeys != 'undefined' && arrFileDeleteKeys[ intItemIndex ] != '' )
{
strFileEditLink = strFileViewLink + '?fk=' + arrFileDeleteKeys[ intItemIndex ];
}
var intVersion = 0;
if ( typeof( arrFileVersion ) != 'undefined' && typeof( arrFileVersion[ intItemIndex ] ) != 'undefined' && arrFileVersion[ intItemIndex ] > 0 )
{
intVersion = arrFileVersion[ intItemIndex ];
}
objFileShareParams[ 'one_file' ] = {
'view_url': strFileViewLink,
'edit_url': strFileEditLink,
'facebook': {
'name': strFileViewLink,
'picture_url': strFileShareParams_PictureUrl,
'description': strFileViewLink,
'link': strFileViewLink,
'return_link': objFileShareParams[ 'all_files' ][ 'facebook' ][ 'return_link' ]
},
'twitter': {
'text': DOMAIN_NAME + ': ',
'link': strFileViewLink
},
'share_email': {
'upload_hash': '',
'file_view_hash': strCurrentFileHash
},
'embed_player': {
'file_view_hash': null
},
'item_info': {
'file_view_hash': strCurrentFileHash,
'upload_hash': objFileShareParams[ 'all_files' ][ 'share_email' ][ 'upload_hash' ],
'file_name': arrDisplayNames[ intItemIndex ],
'item_name': arrDisplayNames[ intItemIndex ],
'extension': arrExtensions[ intItemIndex ],
'file_version': intVersion,
'owner_logged_in': bolIsOwner,
'access_type': ( typeof arrFileAccessTypes != 'undefined' ? arrFileAccessTypes[ intItemIndex ] : '' ),
'parent_access_type': arrAccessType[ intItemIndex ]
}
};
if (
arrFeeDownloadPrice[ intItemIndex ] == null &&
! currentFolderHasFeeDownload( intItemIndex ) &&
arrAllowDownload[ intItemIndex ] &&
( arrAccessType[ intItemIndex ] == 'LINK' || arrAccessType[ intItemIndex ] == 'PUBLIC' ) &&
arrUploadPassword[ intItemIndex ] == '' &&
arrAllowPublicDownload[ intItemIndex ]
)
{
objFileShareParams[ 'one_file' ][ 'embed_player' ] = {
'file_view_hash': strCurrentFileHash,
'file_extension': arrExtensions[ intItemIndex ],
'is_video': arrIsVideo[ intItemIndex ]
}
}
return objFileShareParams;
}
return null;
}
window.galleryGetFileShareParams = getFileShareParams;
$( document ).on( 'click', '#gallery2__share', function ( e )
{
var objFileShareParams = getFileShareParams();
if ( objFileShareParams !== null )
{
showSharePopup( e, objFileShareParams );
}
} );
$( document ).on( 'click', '#gallery2__sign, #gallery2__sign_main, #gallery2__controls_doc_sign_button, #gallery2__left_info-button_sign', function ( e )
{
if ( bolCanEdit )
{
objEparakstsFileSigningForm.showForm( [ strCurrentFileHash ] );
}
else
{
fError( 'This link is for viewing the document only. To sign, please ask the file owner to send a link to edit the file - from the e-signature form.', 'Warning!' );
}
} );
$( document ).on( 'click', '.gallery2__edit', function ( e )
{
if ( canOpenFileInEditor( 'edit', arrExtensions[ intCurrentFileIndex ] ) )
{
showCreateAccount();
}
else
{
showImageEditorIframe( strCurrentFileHash, true, );
}
} );
$( document ).on( 'click', '.gallery2__edit_in_google', function ()
{
if (
[ 'doc','docx','xls','xlsx','ppt','pptx' ].includes( arrExtensions[ intCurrentFileIndex ] )
&& true )
{
showCreateAccount();
}
} );
$( document ).on( 'click', '.gallery2__button__buy-products', function ( e )
{
window.open( '/c/' + arrParentHashes[ getItemIndex ( strCurrentFileHash ) ] + '?h=' + strCurrentFileHash, '_blank' );
} );
$( document ).on( 'click', '.print_or_buy_popup__products', function ( e )
{
window.open( '/c/' + arrParentHashes[ getItemIndex ( strCurrentFileHash ) ] + '?h=' + strCurrentFileHash, '_blank' );
} );
$( document ).on( 'contextmenu', 'video', function ( e )
{
e.preventDefault();
} );
$( document ).on( 'click', '#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle', function ( e )
{
var objFileShareParams = getFileShareParams();
if ( objFileShareParams !== null )
{
window.FileEmbedPopup.showPopup( e, objFileShareParams );
}
} );
$( document ).on( 'click', '#copy_button_middle, #copy_button_left', function ( e )
{
var el = document.createElement( 'textarea' );
el.value = $(this).prev().find( 'input' ).val();
document.body.appendChild( el );
el.select();
document.execCommand( 'copy' );
document.body.removeChild( el );
$(this).addClass( 'copied' ).delay( 4000 ).queue( function( next )
{
$( this ).removeClass( 'copied' );
next();
} );
} );
$(window).resize(function() {
if (!bolGalleryIsVisible)
{
bolHaveToRedrawGallery = true;
}
else
{
recalculateGalleryForBanner(true);
}
});
$(window).mousemove(function() {
if($('#gallery2__content-wrapper').hasClass( 'gallery__slideshow' )){
$('#gallery2__content-wrapper').addClass( 'gallery__slideshow_user_active' );
clearTimeout(strSlideshowUserActive);
strSlideshowUserActive = setTimeout(removeActiveClass, 1000);
}
});
// Check video network state, if loading longer than 1+1 intervals, show thumbnail generation message
var bolHasVideo = false;
for ( idx in arrFileTypes)
{
if ( arrFileTypes[idx] == 'video' )
{
bolHasVideo = true;
}
}
if (bolHasVideo)
{
if ( resVideoCheckInterval != null)
{
clearInterval(resVideoCheckInterval);
resVideoCheckInterval = null;
}
resVideoCheckInterval = setInterval(function () {
for ( idx in arrFileTypes)
{
if ( arrFileTypes[idx] == 'video' )
{
var domVideo = document.getElementById('video_' + arrHashes[idx]);
if ( domVideo )
{
// iOS safari workaround - "play" gets fired when the play button is clicked => set video as loading
if(bolIsiOSDevice)
{
domVideo.addEventListener('play', function ()
{
objVideoIsLoading[idx] = true;
});
}
var bolIsLoading = bolIsiOSDevice ? objVideoIsLoading[idx] : false;
// iOS safari workaround: video has stopped loading when its duration attribute is > 0
if (domVideo.duration > 0 && bolIsiOSDevice)
{
bolIsLoading = false;
}
// If network connection active (2=NETWORK_LOADING) - this is broken in iOS safari
else if (domVideo.networkState == 2)
{
bolIsLoading = true;
}
if ( bolIsLoading )
{
if (objVideoIsLoading[idx] == true)
{
$('#video_thumb_gen_'+ arrHashes[idx]).css({'visibility':'visible'});
}
objVideoIsLoading[idx] = true;
}
else if ( objVideoIsLoading[idx] )
{
objVideoIsLoading[idx] = false;
$('.video_thumb_gen').css({'visibility':'hidden'});
}
}
}
}
}, 3000);
}
// Close in item main element click
$( '#gallery2' ).on( 'bx_slider_click', '.bx-viewport', function( e, domElement ){
if ( $(domElement).hasClass('gallery2__item') )
{
closeGallery(strCurrentFileHash);
}
});
bolGalleryInitalizedState = 1;
}
$(function (){
if ( bolGalleryInitalizedState === null )
{
galleryInitalize();
}
});
$(document).on( "fullscreenchange", function () {
adjustContentWidth( true );
} );
$(document).on("keydown", function(evt) {
if (evt.altKey || evt.ctrlKey || evt.metaKey || $(evt.target).is(":input"))
{
return;
}
if ( ! bolGalleryIsVisible )
{
return;
}
if( 0)
{
return;
}
var key = evt.keyCode;
if (key == 37 )
{
galleryOpenPrevItem();
}
else if (key == 39)
{
galleryOpenNextItem();
}
else if (key == 27)
{
closeGallery(strCurrentFileHash);
}
});
function autoGrow( element, strMinHeight )
{
if( typeof strMinHeight === "undefined" )
{
strMinHeight = '32px';
}
element.style.height = strMinHeight;
element.style.height = element.scrollHeight + "px";
element.style.height = element.scrollHeight + 5 + "px";
}
function galleryCalculateOffset(el) {
var rect = el.getBoundingClientRect(),
scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
scrollTop = window.pageYOffset || document.documentElement.scrollTop;
return { top: rect.top + scrollTop, left: rect.left + scrollLeft }
}
window.getImageCountText = function() {
return ( parseInt( intCurrentFileIndex ) + 1 ) + '/' + arrIDs.length;
};
function checkThumbStripArrows()
{
if ( parseInt( $('#gallery2__thumb-strip__inner').width() ) > parseInt( $('#gallery2__thumb-strip').width() ) )
{
$('#gallery2__thumb-strip__buttons').show();
}
else
{
$('#gallery2__thumb-strip__buttons').hide();
}
}
var bolHideShareButtons = false;
var bolGalleryIsShowingItem = false;
var clickedItemHash = null;
function showGalleryItem( strHash )
{
if (arrHashes.length == 1)
{
hideThumbs();
$('#gallery2__slideshow_middle, #gallery2__slideshow, #gallery2__header__slideshow').hide();
}
else
{
showThumbs();
$('#gallery2__slideshow_middle, #gallery2__slideshow, #gallery2__header__slideshow').show();
}
clickedItemHash = strHash;
if ( bolGalleryIsShowingItem )
{
return;
}
bolGalleryIsShowingItem = true;
var bolSimpleDownloadAllowed = false;
strCurrentFileHash = strHash;
intCurrentFileIndex = getItemIndex ( strHash );
strCurrentFileName = arrDisplayNames[intCurrentFileIndex];
preloadImage( intCurrentFileIndex );
preloadFileInfoData( intCurrentFileIndex );
if ( ! bolGalleryIsVisible )
{
showGallery();
}
stopActiveContent();
checkBeforeContentChange ();
jqMainSlider.goToSlide( intCurrentFileIndex );
checkAfterContentChange();
if ($('#share_popup').is(":visible"))
{
hideSharePopup();
}
if ( typeof window.FileEmbedPopup !== 'undefined' )
{
window.FileEmbedPopup.hidePopup();
}
if ( arrFileTypes[intCurrentFileIndex] == 'image' && arrFeeDownloadPrice[intCurrentFileIndex] == null && ! currentFolderHasFeeDownload( intCurrentFileIndex ) )
{
$('#gallery2__header__view-original').show();
}
else
{
$('#gallery2__header__view-original').hide();
}
$('.gallery2__header__img-count').text( window.getImageCountText() );
if (arrAllowDownload[intCurrentFileIndex] && ( typeof(bolHideDownloadButtons) === 'undefined' || ! bolHideDownloadButtons ) && ( typeof(arrHideDownloadButtons) === 'undefined' || ! arrHideDownloadButtons[intCurrentFileIndex] ))
{
bolSimpleDownloadAllowed = true;
$('.gallery2__save_button').show();
$('#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle').show();
$('#gallery2__share').show();
}
else
{
bolSimpleDownloadAllowed = false;
$('.gallery2__save_button').hide();
$('#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle').hide();
$('#gallery2__share').hide();
}
if ( !arrFileAttributes[ intCurrentFileIndex ][ 'readOnly' ] && bolCanDelete )
{
$('#gallery2__item_info_delete, #gallery2__item_info_delete_middle').css('display', 'flex');
}
else
{
$('#gallery2__item_info_delete, #gallery2__item_info_delete_middle').hide();
}
if( canSetAsThumb( strHash ) )
{
$('#gallery2__item_info_cover, #gallery2__item_info_cover_middle').show();
}
else
{
$('#gallery2__item_info_cover, #gallery2__item_info_cover_middle').hide();
}
$( '#gallery2__left_info__signers-list-container' ).hide();
$( '#gallery2__left_info-button_sign' ).hide();
$( '#gallery2__sign' ).hide();
$('#gallery2__sign_main').hide();
$('#gallery2__controls_doc_sign').removeClass('document');
$( '#gallery_edit_image_middle' ).hide();
if ( bolCanEdit )
{
if ( canOpenFileInEditor( 'edit', arrExtensions[ intCurrentFileIndex ] ) )
{
$( '#gallery2__item_info_edit' )
.removeClass( 'edit_image' )
.text( 'Edit file' );
$( '#gallery2__header__mid #gallery2__edit' )
.removeClass( 'edit_image' )
.find( '#gallery2__edit_button span' )
.text( 'Edit' );
$( '.gallery2__edit' ).show();
}
else if ( canOpenImageInEditor( arrExtensions[ intCurrentFileIndex ] ) )
{
$( '#gallery2__item_info_edit' )
.addClass( 'edit_image' )
.text( 'Edit image' );
$( '#gallery2__header__mid #gallery2__edit' )
.addClass( 'edit_image' )
.find( '#gallery2__edit_button span' )
.text( 'Edit image' );
$( '.gallery2__edit' ).show();
$( '#gallery_edit_image_middle' ).show();
}
else
{
$( '.gallery2__edit' ).hide();
}
if (
[ 'doc','docx','xls','xlsx','ppt','pptx' ].includes( arrExtensions[ intCurrentFileIndex ] )
&& true )
{
$( '.gallery2__edit_in_google' ).show();
}
else
{
$( '.gallery2__edit_in_google' ).hide();
}
}
else
{
$( '.gallery2__edit' ).hide();
$( '.gallery2__edit_in_google' ).hide();
}
$( '#gallery2__item_info_replace_middle' ).hide();
$( '.gallery2__button__buy-products' ).hide();
if ( canOrderProductGeneral( strCurrentFileHash ) || arrFileAttributes[ getItemIndex ( strCurrentFileHash ) ].hasProductSelling )
{
$( '.gallery2__button__buy-products' ).show();
if(! arrFileAttributes[ getItemIndex ( strCurrentFileHash ) ].hasProductSelling)
{
$( '#gallery2__buyproducts' ).hide();
}
}
if( window.location.href.indexOf("filebrowser") === -1 && typeof arrReports != 'undefined' && typeof arrStatuses != 'undefined' && ! [3, 4].includes(arrStatuses[ intCurrentFileIndex ]) &&
(
typeof arrFileIsLockedByOtherUser == 'undefined'
|| ! arrFileIsLockedByOtherUser[ intCurrentFileIndex ]
)
)
{
$( '.gallery2__report_button' ).show();
if (arrReports[ intCurrentFileIndex ] == 0)
{
$( '.gallery2__report_button' ).click(function() {
showFileReportModal(this, strCurrentFileHash);
});
}
else
{
$( '.gallery2__report_button' ).click(function() {
showCancelFileReportModal(this, strCurrentFileHash);
});
}
}
else
{
$( '.gallery2__report_button' ).hide();
}
if (
arrFileTypes[ intCurrentFileIndex ] === 'document'
&&
(
arrExtensions[ intCurrentFileIndex ] === 'pdf'
|| arrExtensions[ intCurrentFileIndex ] === 'odt'
|| arrExtensions[ intCurrentFileIndex ] === 'ods'
|| arrExtensions[ intCurrentFileIndex ] === 'odp'
|| isFileConvertable( 'pdf', intCurrentFileIndex )
)
&& arrFeeDownloadPrice[ intCurrentFileIndex ] == null
&& ! currentFolderHasFeeDownload( intCurrentFileIndex )
&& arrAllowDownload[ intCurrentFileIndex ]
)
{
$( "#gallery2__controls_left" ).css( {
'margin-top': '32px',
'height': 'calc(100% - 50px)'
} );
$( "#gallery2__controls_right" ).css( {
'right': '15px',
'margin-top': '32px',
'height': 'calc(100% - 50px)'
} );
}
else
{
$( "#gallery2__controls_right" ).css( {
'right': '0',
'margin-top': '32px',
'height': 'calc(100% - 50px)'
} );
$( "#gallery2__controls_left" ).css( {
'margin-top': '32px',
'height': 'calc(100% - 50px)'
} );
}
if ( arrFileTypes[ intCurrentFileIndex ] !== 'image' )
{
$('#gallery2__controls_middle').removeClass('image');
$('#gallery2__controls_zoom').css('display', 'none');
$('#gallery2__content-wrapper').removeClass( 'gallery__only_image' );
$('#gallery2__content-wrapper').removeClass( 'gallery__is_image' );
}
else
{
$('#gallery2__controls_middle').addClass('image');
$('#gallery2__controls_zoom').css('display', 'block');
$('#gallery2__content-wrapper').addClass( 'gallery__is_image' );
}
if ( arrFileTypes[ intCurrentFileIndex ] !== 'audio' )
{
$('#gallery2__header__fullscreen').show();
}
else
{
$('#gallery2__header__fullscreen').hide();
}
$('.gallery2__video_filename-download .gallery2__save_button').show();
if (bolIsOwner)
{
$("#gallery2__buyfile").attr("onclick", "showSetPriceFormModal(strCurrentFileHash)");
$("#gallery2__buyall").attr("onclick", "showSetPriceFormModal(arrParentHashes[ getItemIndex ( strCurrentFileHash ) ], 'folder')");
$(".print_or_buy_popup__buyfile").attr("onclick", "showSetPriceFormModal(strCurrentFileHash)");
}
else
{
$("#gallery2__buyfile").attr("onclick", "showBuyFileFormModal(strCurrentFileHash)");
$("#gallery2__buyall").attr("onclick", "showBuyFileFormModal(arrParentHashes[ getItemIndex ( strCurrentFileHash ) ], 'folder')");
$(".print_or_buy_popup__buyfile").attr("onclick", "showBuyFileFormModal(strCurrentFileHash)");
}
// spec for public profile -> fee file count can be dynamic, assume it is > 0
if ( arrFeeDownloadPrice[ intCurrentFileIndex ] != null )
{
$( '#gallery2__buyfile' ).show();
$( '#gallery2__buyall' ).hide();
$( '.print_or_buy_popup__buyfile' ).show();
$( '.gallery2__save_button' ).hide();
$( '#gallery2__item_info_save' ).hide();
$( '.gallery2__buy_button' ).css( 'display', 'flex' );
$( '#gallery2__header__view-original' ).addClass( 'hidden' );
$( '.gallery2__video_filename' ).css( 'visibility', 'hidden' );
$( '#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle' ).addClass( 'hidden' );
$( '#gallery2__buyall span.price' ).html('');
var strName = arrDisplayNames[ intCurrentFileIndex ];
if ( strName == '' )
{
strName = arrNames[ intCurrentFileIndex ];
}
var intFileLengthLimit = 30;
if ( strName.length > intFileLengthLimit )
{
strName = strName.substring( 0, intFileLengthLimit ) + '...';
}
$( '.gallery2__buy_button' ).html( arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $' );
$( '#gallery2__buyfile span.price' ).html(arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $');
$( '.print_or_buy_popup__buyfile span.price' ).html(arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $');
}
else if ( currentFolderHasFeeDownload( intCurrentFileIndex ) || arrFileAttributes[ intCurrentFileIndex ][ 'parentFeeDownloadPrice' ] )
{
$( '#gallery2__buyfile' ).hide();
$( '#gallery2__buyall' ).show();
if( PublicProfile.intOpenFolderFeeDownload )
{
$( '#gallery2__buyall span.price' ).html(PublicProfile.intOpenFolderFeeDownload + ' $');
}
else
{
$( '#gallery2__buyall span.price' ).html(arrFileAttributes[ intCurrentFileIndex ][ 'parentFeeDownloadPrice' ] + ' $');
}
$( '.print_or_buy_popup__buyfile' ).hide();
$( '.gallery2__save_button' ).hide();
$( '#gallery2__item_info_save' ).hide();
$( '.gallery2__buy_button').hide();
$( '#gallery2__header__view-original' ).addClass( 'hidden' );
$( '.gallery2__video_filename' ).css( 'visibility', 'hidden' );
$( '#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle' ).addClass( 'hidden' );
$( '#gallery2__buyfile span.price' ).html('');
$( '.print_or_buy_popup__buyfile span.price' ).html('');
}
else
{
$( '#gallery2__buyfile' ).hide();
$( '#gallery2__buyall' ).hide();
$( '.print_or_buy_popup__buyfile' ).hide();
$( '.gallery2__save_button' ).show();
$( '#gallery2__item_info_save' ).show();
$( '.gallery2__buy_button').hide();
$( '#gallery2__header__view-original' ).removeClass( 'hidden' );
$( '.gallery2__video_filename' ).css( 'visibility', 'visible' );
$( '#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle' ).removeClass( 'hidden' );
$( '#gallery2__buyfile span.price' ).html('');
$( '#gallery2__buyall span.price' ).html('');
$( '.print_or_buy_popup__buyfile span.price' ).html('');
}
if (
(arrExtensions[intCurrentFileIndex] == 'png' || arrExtensions[intCurrentFileIndex] == 'jpg' || arrExtensions[intCurrentFileIndex] == 'jpge')
&& arrFeeDownloadPrice[intCurrentFileIndex] == null
&& ! currentFolderHasFeeDownload( intCurrentFileIndex )
&& bolSimpleDownloadAllowed
)
{
$('#gallery2__item_info_order').show();
$('#gallery2__order').css({display: 'flex'});
if ( arrFileAttributes[ getItemIndex ( strCurrentFileHash ) ].hasProductSelling )
{
$('#gallery2__order').hide();
$('#gallery2__item_info_order').hide();
}
}
else
{
$('#gallery2__item_info_order').hide();
$('#gallery2__order').hide();
}
if (intCurrentFileIndex == 0)
{
$('#gallery2__controls_left').hide();
}
else
{
$('#gallery2__controls_left').show();
}
if (intCurrentFileIndex == arrIDs.length - 1)
{
$('#gallery2__controls_right').hide();
}
else
{
$('#gallery2__controls_right').show();
}
if( arrFileTypes[intCurrentFileIndex] == 'audio' && $(window).width() <= 600 )
{
$('#gallery2__controls_left').hide();
$('#gallery2__controls_right').hide();
}
bolHideShareButtons = true;
$( '#gallery2__share' ).show()
$('#gallery2_item_info_share-wrapper').hide();
$( '#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle' ).hide()
$( '#gallery_upload-access-switch' ).hide();
checkThumbStripArrows();
galleryUpdateVoteCount();
galleryLoadFileInfo();
$( '#gallery2__comments-list__loadmore' ).remove();
galleryLoadFileComments();
setTimeout('gallerySelectThumb('+ intCurrentFileIndex +')', 100);
var bolLogViews = 0;
// bolOwnerIsStorageSubscriber - comes from public.php, this overrides bolLogViews
if( typeof bolOwnerIsStorageSubscriber !== 'undefined' ) {
bolLogViews |= bolOwnerIsStorageSubscriber;
}
var bolLogFileView = true;
if ( bolLogFileView )
$.post('./fileView.php', {'h': strCurrentFileHash, 'p': bolLogViews});
// Google Analytics
if ( typeof _gaq != 'undefined' )
{
_gaq.push( [ '_trackPageview', window.location.href ] );
}
var jqGalleryContainer = $('#gallery2');
if ( bolSimpleDownloadAllowed )
{
jqGalleryContainer.addClass( 'simple_download_allowed' );
}
else
{
jqGalleryContainer.removeClass( 'simple_download_allowed' );
}
bolGalleryIsShowingItem = false;
if( bolStartAudioOnOpen )
{
$( "#audio_" + strCurrentFileHash ).trigger( 'play' );
bolStartAudioOnOpen = false;
}
// Build main download button
var intItemIndex = getItemIndexByHashOrName( strCurrentFileHash );
var bolSimpleDownloadAllowed = canDownload( strCurrentFileHash );
$( '#gallery-main-download-button' ).remove();
if ( bolSimpleDownloadAllowed ) {
var objDownloadButton = new DropdownButton ();
if ( bolSimpleDownloadAllowed ) {
objDownloadButton.addButton('gallery-download-simple-split-button', 'Download original file', 'Download original', '<img src="/images/UI_icons/white/download.svg" /> ', function (){
gaev('split-download-button-engagement', 'header-download-simple-click', 'Split button simple download click');
modalGalleryDownloadFileBtn( strCurrentFileHash )
})
}
if ( isFileConvertable( 'pdf', intItemIndex ) )
{
objDownloadButton.addButton(
'gallery-download-simple-split-button' ,
'Download this file as PDF' ,
'Download as PDF' ,
'<img src="/images/UI_icons/white/download.svg" /> ' ,
function ()
{
gaev( 'split-download-button-engagement', 'header-download-pdf-click', 'Split button pdf download click' );
modalGalleryDownloadFileBtn( strCurrentFileHash, 'pdf' )
} );
}
else if ( isFileConvertable( 'mp4', intItemIndex ) )
{
objDownloadButton.addButton(
'gallery-download-simple-split-button' ,
'Download as MP4' ,
'Download as MP4' ,
'<img src="/images/UI_icons/white/download.svg" /> ' ,
function ()
{
gaev( 'split-download-button-engagement', 'header-download-mp4-click', 'Split button mp4 download click' );
modalGalleryDownloadFileBtn( strCurrentFileHash, 'mp4' )
} );
}
else if ( isFileConvertable( 'jpg', intItemIndex ) )
{
objDownloadButton.addButton(
'gallery-download-simple-split-button' ,
'Download smaller JPG' ,
'Download smaller JPG' ,
'<img src="/images/UI_icons/white/download.svg" /> ' ,
function ()
{
gaev( 'split-download-button-engagement', 'header-download-jpg-click', 'Split button jpg download click' );
modalGalleryDownloadFileBtn( strCurrentFileHash, 'jpg' )
} );
}
else if ( arrFileTypes[ intItemIndex ] == 'video' && arrExtensions[ intItemIndex ] == 'mp4' && typeof arrBigThumbPath != 'undefined' && arrBigThumbPath[ intItemIndex ] == 1 )
{
objDownloadButton.addButton(
'gallery-download-simple-split-button' ,
'Download optimized MP4' ,
'Download optimized MP4' ,
'<img src="/images/UI_icons/white/download.svg" /> ' ,
function ()
{
gaev( 'split-download-button-engagement', 'header-download-mp4-click', 'Split button mp4 download click' );
modalGalleryDownloadFileBtn( strCurrentFileHash, 'mp4' )
} );
}
if ( bolSimpleDownloadAllowed && ! bolIsOwner && typeof objUploadCopyForm != 'undefined' && typeof strUploadHash != 'undefined' ) {
objDownloadButton.addButton(
'gallery-download-myfiles-split-button',
'Save to my account',
'Save to my account',
null,
function (){
gaev('split-download-button-engagement', 'header-download-myfiles-click', 'Split button myfiles download click');
modalGalleryDownloadFileBtn( strCurrentFileHash, 'my-files' );
},
'Recommended!'
)
}
var jqDownloadButton = objDownloadButton.build( 'gallery-download-split-button', 'gallery-main-download-button', 'Download' );
$( '#gallery2__header__mid_content #gallery2__download_space' ).before( jqDownloadButton );
}
if ( ! objMainShareParams )
{
$('#gallery2__share').hide();
$('#gallery2_item_info_share-wrapper').hide();
$('#gallery2__sidebar__info_embed_button, #gallery2__sidebar__info_embed_button_middle').hide();
}
$( '#gallery2_info_head .thumbnail-wrapper' ).html( '' );
$( '#gallery2_info_head .thumbnail-wrapper' ).removeClass("two-actions");
$( '#gallery2_info_head .thumbnail-wrapper' ).removeClass("one-action");
var strThumbnailActions = '';
if( bolIsOwner && arrFileTypes[intCurrentFileIndex] != 'image' )
{
if ( arrThumbnails[intItemIndex] )
{
var strThumbPath = arrThumbnails[intItemIndex];
strThumbHTML = '<img src="'+strThumbPath+'"/>';
}
else if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[intItemIndex] )
{
strThumbHTML = '<img src="/images/file_types_v2/'+arrIconSvg[ intItemIndex ]+'" />';
}
else
{
strThumbHTML = '<img src="/images/file_types_v2/default.svg" />';
}
$( '#gallery2_info_head .thumbnail-wrapper' ).html( '' );
$( '#gallery2_info_head .thumbnail-wrapper' ).append(strThumbHTML);
$( '#gallery2_info_head .thumbnail-wrapper' ).append('<div class="thumbnail-actions"></div>');
if ( arrFileAttributes[ intItemIndex ][ 'hasCustomThumb' ] )
{
strThumbnailActions =
'<a href="javascript:void(0)" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-edit" title="Change file image"></div>' +
'</a>' +
'<a href="javascript:void(0)" onclick="modalGallery_removeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-delete" title="Delete file image"></div>' +
'</a>';
$( '#gallery2_info_head .thumbnail-actions' ).append(strThumbnailActions);
$( '#gallery2_info_head .thumbnail-wrapper' ).addClass("two-actions");
}
else
{
strThumbnailActions =
'<a href="javascript:void(0)" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-edit" title="Set file preview image"></div>' +
'</a>';
$( '#gallery2_info_head .thumbnail-actions' ).append(strThumbnailActions);
$( '#gallery2_info_head .thumbnail-wrapper' ).addClass("one-action");
}
}
else
{
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[intItemIndex] )
{
strThumbHTML = '<img src="/images/file_types_v2/'+arrIconSvg[ intItemIndex ]+'" />';
}
else
{
strThumbHTML = '<img src="/images/file_types_v2/default.svg" />';
}
$( '#gallery2_info_head .thumbnail-wrapper' ).html( '' );
$( '#gallery2_info_head .thumbnail-wrapper' ).append(strThumbHTML);
}
var strName = arrDisplayNames[intItemIndex];
if (strName == '')
{
strName = arrNames[intItemIndex];
}
$( ".gallery2__header__file_name_value" ).html( strName );
if( bolIsOwner )
{
$(".not_owner_show").hide();
$(".not_owner_hide").show();
}
else
{
$(".not_owner_show").show();
$(".not_owner_hide").hide();
}
if(bolActivateSlideshowOnOpen && arrHashes.length > 1)
{
enterSlideshow(bolActivateSlideshowOnOpenPaused, bolHideCloseButton);
bolActivateSlideshowOnOpen = false;
}
if(typeof(strSlideshowInterval) !== 'undefined' && strSlideshowInterval !== null)
{
if(arrFileTypes[intCurrentFileIndex] == 'video' && typeof(objVideoPlayers[intCurrentFileIndex]) !== 'undefined' )
{
clearInterval(strSlideshowInterval);
strSlideshowInterval = 'reset';
objVideoPlayers[intCurrentFileIndex].objPlayer.loop(false);
objVideoPlayers[intCurrentFileIndex].objPlayer.play();
}
else if (arrFileTypes[intCurrentFileIndex] == 'audio' && typeof(objAudioPlayer) !== 'undefined')
{
clearInterval(strSlideshowInterval);
strSlideshowInterval = 'reset';
objAudioPlayer._isSlideshowOn = true;
objAudioPlayer.play();
}
}
if ( bolOpenGalleryCommentsBlock )
{
setTimeout( function()
{
if ( ! bolGallerySidebarVisible )
{
showGalleryInfo();
}
showGalleryMessages();
$( window ).trigger( 'resize' );
}, 300 );
}
// check mobile footer visible elements and hide info button if overflow
var visibleElemCount = 0;
var visibleBtns = $( '#gallery2__header__mid_content span.gallery2__header_middle_button:visible' );
visibleElemCount = visibleBtns.length;
var bolSimpleDownloadAllowed = canDownload( strCurrentFileHash );
if ( bolSimpleDownloadAllowed )
{
visibleElemCount += 1;
}
if ( visibleElemCount > 4 )
{
$( '#gallery2__info_middle' ).addClass( 'mobile-hide' );
$(' #gallery2__info_more' ).addClass( 'mobile-show' );
}
}
window.showGalleryItem = showGalleryItem;
function stopActiveContent()
{
// Stop video
var jqAllVideos = $("video");
if (jqAllVideos.length>0)
{
jqAllVideos.each(function () {
this.pause();
});
}
// Stop audio
var jqAllAudios = $("audio");
if (jqAllAudios.length>0)
{
jqAllAudios.each(function () {
this.pause();
});
}
}
function GalleryDeleteFile(strFileH, strFileName)
{
fConfirm( 'Do you really want to delete this file?</br><b>"' + strFileName + '"</b>', 'Delete', 'Yes, delete!', 'Cancel', function(r){
if( r == true )
{
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/delete_file.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'delete_user_file' : true ,
'f' : strFileH ,
'source' : 'filebrowser'
},
success: function( data ){
if( data['status'] == 'ok' )
{
if(bolGalleryIsVisible && intNextIndex != null && !isNaN( intNextIndex ))
{
galleryOpenNextItem();
}
else if (intPreviousIndex != null && !isNaN( intPreviousIndex ))
{
galleryOpenPrevItem();
}
fSuccess( "File \""+ strFileName +"\" has been <b>deleted</b>!", "" );
location.reload();
}
else
{
if( typeof data[ 'file_read_only' ] !== 'undefined' && data[ 'file_read_only' ] )
{
fError( "The file cannot be deleted because it is shared!", "Info" );
}
else if ( typeof data[ 'file_is_locked' ] !== 'undefined' && data[ 'file_is_locked' ] )
{
fError( "This file cannot be deleted because it is locked.", "Info" );
}
else
{
fError( "There was an error, the file was not deleted", "Info" );
}
}
}
});
}
});
return false;
}
function GalleryDeleteFileAnon(strKey, strFileH, strFileName)
{
fConfirm( 'Do you really want to delete this file?</br><b>"' + strFileName + '"</b>', 'Delete', 'Yes, delete!', 'Cancel', function(r){
if( r == true )
{
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/delete_file.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'delete_file': true,
'fk' : strKey,
'f' : strFileH ,
'source' : 'list'
},
success: function( data ){
if( data['status'] == 'ok' )
{
if(bolGalleryIsVisible && intNextIndex != null && !isNaN( intNextIndex ))
{
galleryOpenNextItem();
}
else if (intPreviousIndex != null && !isNaN( intPreviousIndex ))
{
galleryOpenPrevItem();
}
fSuccess( "File \""+ strFileName +"\" has been <b>deleted</b>!", "" );
location.reload();
}
else
{
if( typeof data[ 'file_read_only' ] !== 'undefined' && data[ 'file_read_only' ] )
{
fError( "The file cannot be deleted because it is shared!", "Info" );
}
else if ( typeof data[ 'file_is_locked' ] !== 'undefined' && data[ 'file_is_locked' ] )
{
fError( "This file cannot be deleted because it is locked.", "Info" );
}
else
{
fError( "There was an error, the file was not deleted", "Info" );
}
}
}
});
}
});
return false;
}
function checkGalleryArrows()
{
if( $( window ).width() < 550 )
{
if( arrFileTypes[intCurrentFileIndex] == 'audio' || arrFileTypes[intCurrentFileIndex] == 'video' || arrFileTypes[intCurrentFileIndex] == 'document' )
{
$( '#gallery2__controls_left, #gallery2__controls_right' ).show();
$( '#gallery2__controls_left a, #gallery2__controls_right a' ).css({
'top': 'initial',
'bottom': '0px'
});
}
else
{
$( '#gallery2__controls_left, #gallery2__controls_right' ).hide();
}
}
else
{
$( '#gallery2__controls_left a, #gallery2__controls_right a' ).removeAttr( 'style' );
$( '#gallery2__controls_left, #gallery2__controls_right' ).show();
}
}
function galleryLoadFileInfo(bolUpdateInfo)
{
if ( typeof(bolUpdateInfo) === 'undefined' && $(window).width() > 500 && ! bolGallerySidebarVisible )
{
return;
}
var intItemIndex = getItemIndex ( strCurrentFileHash );
if ( bolUseAsyncFileInfoDataLoad )
{
if ( ! arrIsFileInfoDataPreloaded[ intItemIndex ] )
{
$( '#gallery2__sidebar__info' ).hide();
setTimeout( function() { galleryLoadFileInfo( bolUpdateInfo ) }, 1000 );
return;
}
else
{
$( '#gallery2__sidebar__info' ).show();
}
}
var strPublicProfileHref = '';
if ( typeof strUploadUserNameHref != 'undefined' && strUploadUserNameHref != '' )
{
strPublicProfileHref = '/' + strUploadUserNameHref;
}
else if ( typeof PublicProfile != 'undefined' && typeof PublicProfile.strProfileName != 'undefined' )
{
strPublicProfileHref = '/' + PublicProfile.strProfileName;
}
if ( typeof strUploadUserNameLink != 'undefined' )
{
$( '#gallery2__sidebar__info-owner-user .gallery2__sidebar__info-value' ).html( strUploadUserNameLink );
$( '#gallery2__sidebar__info .header-owner_name' ).html( strUploadUserNameLink );
if( typeof strUploadUserID != 'undefined' && strUploadUserID != '' && typeof strUploadUserLastProfileEditTimestamp != 'undefined')
{
$( '#gallery2__sidebar__info .header-owner .header-owner_image-wrapper' ).html( '<a class="header-owner_image" style="background-image: url( \'/avatars/thumb.php?i='+ strUploadUserID +'_'+ strUploadUserLastProfileEditTimestamp +'.jpg\' );"></a>' );
}
else
{
$( '#gallery2__sidebar__info .header-owner .header-owner_image-wrapper' ).html( '<div class="header-owner_image"><img src="/images/list/unknown-owner.svg"></div>' );
}
}
else if ( typeof PublicProfile != 'undefined' && typeof PublicProfile.strProfileName != 'undefined' )
{
$( '#gallery2__sidebar__info-owner-user .gallery2__sidebar__info-value' ).html( '<a href="/' + PublicProfile.strProfileName + '" target="_blank">' + PublicProfile.strProfileName + '</a>' );
$( '#gallery2__sidebar__info .header-owner_name' ).html( '<a href="/' + PublicProfile.strProfileName + '" target="_blank">' + PublicProfile.strProfileName + '</a>' );
if( typeof strUploadUserID != 'undefined' && strUploadUserID != '' && typeof strUploadUserLastProfileEditTimestamp != 'undefined')
{
$( '#gallery2__sidebar__info .header-owner .header-owner_image-wrapper' ).html( '<a class="header-owner_image" style="background-image: url( \'/avatars/thumb.php?i='+ strUploadUserID +'_'+ strUploadUserLastProfileEditTimestamp +'.jpg\' );"></a>' );
}
else if( typeof PublicProfile.strAvatarPath != 'undefined' && PublicProfile.strAvatarPath != '')
{
$( '#gallery2__sidebar__info .header-owner .header-owner_image-wrapper' ).html( '<a class="header-owner_image" style="background-image: url( \''+PublicProfile.strAvatarPath+'\' );"></a>' );
}
else
{
$( '#gallery2__sidebar__info .header-owner .header-owner_image-wrapper' ).html( '<div class="header-owner_image"><img src="/images/list/unknown-owner.svg"></div>' );
}
}
else
{
$( '#gallery2__sidebar__info-owner-user' ).hide();
$( '#gallery2__sidebar__info .header-owner' ).hide();
}
$('#gallery2__sidebar__info-size .gallery2__sidebar__info-value').html(arrSizes[intItemIndex]);
if ( typeof arrDatesCreated != 'undefined' )
{
$( '#gallery2__sidebar__info-date .gallery2__sidebar__info-value' ).html( arrDatesCreated[ intItemIndex ] );
}
else
{
$( '#gallery2__sidebar__info-date .gallery2__sidebar__info-value' ).html( arrDates[ intItemIndex ] );
}
if ( typeof arrFileDateCreated != 'undefined' && arrFileDateCreated[ intItemIndex ] != '' )
{
$( '#gallery2__sidebar__info-date-created .gallery2__sidebar__info-value' ).html( arrFileDateCreated[ intItemIndex ] );
}
else if ( typeof arrDatesCreated != 'undefined' )
{
$( '#gallery2__sidebar__info-date-created .gallery2__sidebar__info-value' ).html( arrDatesCreated[ intItemIndex ] );
}
else
{
$( '#gallery2__sidebar__info-date-created .gallery2__sidebar__info-value' ).html( arrDates[ intItemIndex ] );
}
if ( typeof arrDatesModified != 'undefined' )
{
$( '#gallery2__sidebar__info-moddate .gallery2__sidebar__info-value' ).html( arrDatesModified[ intItemIndex ] );
}
else
{
$( '#gallery2__sidebar__info-moddate .gallery2__sidebar__info-value' ).html( arrDates[ intItemIndex ] );
}
$('#gallery2__sidebar__info-views .gallery2__sidebar__info-value').html(arrViews[intItemIndex]);
$('#gallery2__sidebar__info-downloads .gallery2__sidebar__info-value').html(arrDownloads[intItemIndex]);
$('#gallery2__sidebar__info-comments .gallery2__sidebar__info-value').html(arrCommentCounts[intItemIndex]);
$( '#gallery2__sidebar__info-dimensions' ).hide();
if ( typeof arrWidths != 'undefined' && typeof arrHeights != 'undefined' && typeof arrWidths[intItemIndex] != 'undefined' && typeof arrHeights[intItemIndex] != 'undefined' && arrWidths[intItemIndex] != '' && arrHeights[intItemIndex] != '' && arrWidths[intItemIndex] != 'undefined' && arrHeights[intItemIndex] != 'undefined' )
{
if(arrFileTypes[ intItemIndex ] == 'video')
{
var strResolutionLabel = getResolutionLabel( arrWidths[ intItemIndex ], arrHeights[ intItemIndex ] );
$('#gallery2__sidebar__info-dimensions .gallery2__sidebar__info-value').html(strResolutionLabel + arrWidths[intItemIndex] + ' x ' + arrHeights[intItemIndex] + ', ' + Math.round((arrWidths[intItemIndex]*arrHeights[intItemIndex]/1000000) * 100) / 100+ 'MP');
}
else
{
$('#gallery2__sidebar__info-dimensions .gallery2__sidebar__info-value').html(arrWidths[intItemIndex] + ' x ' + arrHeights[intItemIndex] + ', ' + Math.round((arrWidths[intItemIndex]*arrHeights[intItemIndex]/1000000) * 100) / 100+ 'MP');
}
$( '#gallery2__sidebar__info-dimensions' ).show();
}
$( '#gallery2_file_details_table_ai' ).hide();
$( '#gallery2_file_details_table_label' ).css('margin-top', '');
$( '.gallery2__sidebar__info-metadata' ).hide();
$( '.gallery2__sidebar__info-exif_tags' ).remove();
$( '.gallery2__sidebar__info-one_line_buttons .disabled' )
.removeClass( 'disabled' );
$( '#gallery2__sidebar__info-metadata-tags' ).addClass( 'gallery2__sidebar__exif_tags-top-separator' );
$( '.gallery2__sidebar__info-dropdown_button.easyocr-text_recognition' )
.html(
'<span class="gallery2__sidebar__info-dropdown_text">' +
'Find Text' +
'</span>' +
'<span class="gallery2__sidebar__info-dropdown_icon"></span>'
);
$( '.gallery2__sidebar__info-dropdown_button.google_cloud_vision-ocr' )
.html(
'<span class="gallery2__sidebar__info-dropdown_text">' +
'Find text PRO' +
'</span>' +
'<span class="gallery2__sidebar__info-dropdown_icon"></span>'
);
$( '.gallery2__sidebar__info-dropdown_button.yolo-object_detection' )
.html(
'<span class="gallery2__sidebar__info-dropdown_text">' +
'Find objects' +
'</span>' +
'<span class="gallery2__sidebar__info-dropdown_icon"></span>'
);
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid div span').html('');
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid div').hide();
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value').hide();
if ( typeof arrFileTitle != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-title .gallery2__sidebar__info-value' ).html( arrFileTitle[ intItemIndex ] );
if ( arrFileTitle[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-title' ).show();
}
if ( typeof arrFileSubject != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-subject .gallery2__sidebar__info-value' ).html( arrFileSubject[ intItemIndex ] );
if ( arrFileSubject[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-subject' ).show();
}
if ( typeof arrFileContentType != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-content_type .gallery2__sidebar__info-value' ).html( arrFileContentType[ intItemIndex ] );
if ( arrFileContentType[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-content_type' ).show();
}
if ( typeof arrFileCategory != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-category .gallery2__sidebar__info-value' ).html('');
if (strPublicProfileHref != '')
{
$( '#gallery2__sidebar__info-metadata-category .gallery2__sidebar__info-value' ).append('<a href="' + strPublicProfileHref + '#search='+ arrFileCategory[ intItemIndex ] +'" target="_self">' + arrFileCategory[ intItemIndex ] + '</a>');
}
else
{
$( '#gallery2__sidebar__info-metadata-category .gallery2__sidebar__info-value' ).html( arrFileCategory[ intItemIndex ] );
}
if ( arrFileCategory[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-category' ).show();
}
if ( typeof arrFileCategories != 'undefined' )
{
var arrCategories = arrFileCategories[ intItemIndex ].split(',')
$( '#gallery2__sidebar__info-metadata-categories .gallery2__sidebar__info-value' ).html('');
if (strPublicProfileHref != '')
{
arrCategories.forEach(function(elem, idx, array) {
if (idx != array.length - 1)
{
$( '#gallery2__sidebar__info-metadata-categories .gallery2__sidebar__info-value' ).append('<a href="' + strPublicProfileHref + '#search='+ elem +'" target="_self">' + elem + ',</a> ');
}
else
{
$( '#gallery2__sidebar__info-metadata-categories .gallery2__sidebar__info-value' ).append('<a href="' + strPublicProfileHref + '#search='+ elem +'" target="_self">' + elem + '</a>');
}
});
}
else
{
$( '#gallery2__sidebar__info-metadata-categories .gallery2__sidebar__info-value' ).html( arrFileCategories[ intItemIndex ] );
}
if ( arrFileCategories[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-categories' ).show();
}
if ( typeof arrFileKeywords != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-keywords .gallery2__sidebar__info-value' ).html( arrFileKeywords[ intItemIndex ] );
if ( arrFileKeywords[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-keywords' ).show();
}
if ( typeof arrFileCreator != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-creator .gallery2__sidebar__info-value' ).html( arrFileCreator[ intItemIndex ] );
if ( arrFileCreator[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-creator' ).show();
}
if ( typeof arrFilePublisher != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-publisher .gallery2__sidebar__info-value' ).html( arrFilePublisher[ intItemIndex ] );
if ( arrFilePublisher[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-publisher' ).show();
}
if ( typeof arrFileContributor != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-contributor .gallery2__sidebar__info-value' ).html( arrFileContributor[ intItemIndex ] );
if ( arrFileContributor[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-contributor' ).show();
}
if ( typeof arrFileCopyrights != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-copyrights .gallery2__sidebar__info-value' ).html( arrFileCopyrights[ intItemIndex ] );
if ( arrFileCopyrights[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-copyrights' ).show();
}
if ( typeof arrFileLicenseType != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-license_type .gallery2__sidebar__info-value' ).html( arrFileLicenseType[ intItemIndex ] );
if ( arrFileLicenseType[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-license_type' ).show();
}
if ( typeof arrFileLicenseDetails != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-license_details .gallery2__sidebar__info-value' ).html( arrFileLicenseDetails[ intItemIndex ] );
if ( arrFileLicenseDetails[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-license_details' ).show();
}
if ( typeof arrFileLanguage != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-language .gallery2__sidebar__info-value' ).html( arrFileLanguage[ intItemIndex ] );
if ( arrFileLanguage[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-language' ).show();
}
if ( typeof arrFileLocation != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-location .gallery2__sidebar__info-value' ).html( arrFileLocation[ intItemIndex ] );
if ( arrFileLocation[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-location' ).show();
}
if ( typeof arrFileLocationLat !== 'undefined' && typeof arrFileLocationLong !== 'undefined' )
{
let strGpsLat = gpsDecimalToDMS( arrFileLocationLat[ intItemIndex ], true );
let strGpsLong = gpsDecimalToDMS( arrFileLocationLong[ intItemIndex ], false );
$( '#gallery2__sidebar__info-metadata-location_lat .gallery2__sidebar__info-value' )
.html( '<a href="https://www.google.com/maps/place/' + encodeURIComponent( strGpsLat.replace( /\s/g, '' ) ) + '+' + encodeURIComponent( strGpsLong.replace( /\s/g, '' ) ) + '" target="_blank">' + strGpsLat + '</a>' );
$( '#gallery2__sidebar__info-metadata-location_long .gallery2__sidebar__info-value' )
.html( '<a href="https://www.google.com/maps/place/' + encodeURIComponent( strGpsLat.replace( /\s/g, '' ) ) + '+' + encodeURIComponent( strGpsLong.replace( /\s/g, '' ) ) + '" target="_blank">' + strGpsLong + '</a>' );
if ( strGpsLat !== '' && strGpsLong !== '' )
{
$( '#gallery2__sidebar__info-metadata-location_lat' ).show();
$( '#gallery2__sidebar__info-metadata-location_long' ).show();
}
}
if ( typeof arrFileReferences != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-references .gallery2__sidebar__info-value' ).html( arrFileReferences[ intItemIndex ] );
if ( arrFileReferences[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-references' ).show();
}
if ( typeof arrFileRelatesTo != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-relates_to .gallery2__sidebar__info-value' ).html( arrFileRelatesTo[ intItemIndex ] );
if ( arrFileRelatesTo[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-relates_to' ).show();
}
if ( typeof arrFileFormat != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-format .gallery2__sidebar__info-value' ).html( arrFileFormat[ intItemIndex ] );
if ( arrFileFormat[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-format' ).show();
}
if ( typeof arrFileDevice != 'undefined' )
{
$( '#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .Model span' ).html( arrFileDevice[ intItemIndex ] );
$( '#gallery2__sidebar__info-metadata-device .gallery2__sidebar__info-value' ).html( arrFileDevice[ intItemIndex ] );
if ( arrFileDevice[ intItemIndex ] != '' )
{
$( '#gallery2__sidebar__info-metadata-device' ).show();
$( '#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .Model' ).show();
}
}
if ( typeof arrFileSource != 'undefined' )
{
$( '#gallery2__sidebar__info-metadata-source .gallery2__sidebar__info-value' ).html( arrFileSource[ intItemIndex ] );
if ( arrFileSource[ intItemIndex ] != '' ) $( '#gallery2__sidebar__info-metadata-source' ).show();
}
if ( typeof arrFileTypes != 'undefined' )
{
if ( arrFileTypes[ intItemIndex ] == 'image' )
{
$( '#gallery2__sidebar__info-exif_tags-button' ).show();
if ( typeof arrExtensions != 'undefined' && [ 'jpg', 'jpeg', 'png' ].includes( arrExtensions[ intItemIndex ] ) )
{
if (
bolIsOwner
|| (
typeof( bolIsAnonymousUpload ) == 'boolean'
&& bolIsAnonymousUpload
)
)
{
$( '#gallery2__sidebar__info-content_analyze-buttons' ).show();
$( '#gallery2_file_details_table_ai' ).show();
$( '#gallery2_file_details_table_label' ).css('margin-top', '25px');
$( '#gallery2__sidebar__info-metadata-tags' ).removeClass( 'gallery2__sidebar__exif_tags-top-separator' );
}
if ( !bolIsOwner )
{
$( '.gallery2__sidebar__info-dropdown_button.easyocr-text_recognition' ).hide();
$( '.gallery2__sidebar__info-dropdown_button.yolo-object_detection' ).hide();
}
}
}
else if ( arrFileTypes[ intItemIndex ] === 'audio' )
{
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-button' ).show();
$( '#gallery2_file_details_table_ai' ).show();
$( '#gallery2_file_details_table_label' ).css('margin-top', '25px');
$( '#gallery2__sidebar__info-metadata-tags' ).removeClass( 'gallery2__sidebar__exif_tags-top-separator' );
}
}
if ( typeof arrDuration != 'undefined' && typeof arrDuration[ intItemIndex ] != 'undefined' && arrDuration[ intItemIndex ] != '' )
{
var strDuration = arrDuration[ intItemIndex ];
if( strDuration < 600 )
{
strDuration = new Date(strDuration * 1000).toISOString().slice(15, 19);
}
else if( strDuration < 3600 )
{
strDuration = new Date(strDuration * 1000).toISOString().slice(14, 19);
}
else
{
strDuration = new Date(strDuration * 1000).toISOString().slice(11, 19);
}
$( '#gallery2__sidebar__info-metadata-duration .gallery2__sidebar__info-value' ).html( strDuration );
if ( arrDuration[ intItemIndex ] != ''&& arrDuration[ intItemIndex ] != '0' ) $( '#gallery2__sidebar__info-metadata-duration' ).show();
}
if ( typeof arrFileGoogleCVText != 'undefined' && typeof arrFileGoogleCVText[ intItemIndex ] != 'undefined' )
{
$( '#gallery2__sidebar__info-google_cv_text .gallery2__sidebar__info-value' ).text( arrFileGoogleCVText[ intItemIndex ] );
if ( arrFileGoogleCVText[ intItemIndex ] != '' && bolIsOwner )
{
$( '#gallery2__sidebar__info-google_cv_text' ).show();
$( '.gallery2__sidebar__info-dropdown_button.google_cloud_vision-ocr' )
.addClass( 'disabled' );
}
}
if ( typeof arrFileEasyOCRText != 'undefined' && typeof arrFileEasyOCRText[ intItemIndex ] != 'undefined' )
{
$( '#gallery2__sidebar__info-easyocr_text .gallery2__sidebar__info-value' ).text( arrFileEasyOCRText[ intItemIndex ] );
if ( arrFileEasyOCRText[ intItemIndex ] != '' && bolIsOwner )
{
$( '#gallery2__sidebar__info-easyocr_text' ).show();
$( '.gallery2__sidebar__info-dropdown_button.easyocr-text_recognition' )
.addClass( 'disabled' );
}
}
if ( bolIsOwner && arrFileTypes[ intCurrentFileIndex ] == 'audio' )
{
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-button .gallery2__sidebar__info-dropdown_button' )
.html(
'<span class="gallery2__sidebar__info-dropdown_text">' +
'Recognize speech' +
'</span>' +
'<span class="gallery2__sidebar__info-dropdown_icon"></span>'
)
.removeClass( 'disabled' );;
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-button' )
.show();
$( '#gallery2__sidebar__info-metadata-tags' ).removeClass( 'gallery2__sidebar__exif_tags-top-separator' );
}
if ( bolIsOwner && typeof arrFileAudioTranscription != 'undefined' && typeof arrFileAudioTranscription[ intItemIndex ] != 'undefined' )
{
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-text .gallery2__sidebar__info-value' ).text( arrFileAudioTranscription[ intItemIndex ] );
if ( arrFileAudioTranscription[ intItemIndex ] != '' )
{
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-text' ).show();
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-button .gallery2__sidebar__info-dropdown_button' )
.addClass( 'disabled' );
}
}
if (
arrFileTypes[ intCurrentFileIndex ] == 'image'
&& (
bolIsOwner
|| (
typeof( bolIsAnonymousUpload ) == 'boolean'
&& bolIsAnonymousUpload
)
)
)
{
$( '.gallery2__sidebar__info-dropdown_button.google_cloud-vision' )
.html(
'<span class="gallery2__sidebar__info-dropdown_text">' +
'Find objects PRO' +
'</span>' +
'<span class="gallery2__sidebar__info-dropdown_icon"></span>'
)
.removeClass( 'disabled' );
}
var jqObjectTagsElem = $( '#gallery2__sidebar__info-object_tags .tags' );
jqObjectTagsElem.empty();
if (
typeof arrObjectTags != 'undefined'
&& typeof arrObjectTags[ intItemIndex ] != 'undefined'
&& arrObjectTags[ intItemIndex ] != ''
)
{
let arrTagsSplitted = arrObjectTags[ intItemIndex ].split( ';' );
$.each( arrTagsSplitted, ( i, tag ) => {
jqObjectTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
$( '#gallery2__sidebar__info-object_tags' ).show();
$( '.gallery2__sidebar__info-dropdown_button.google_cloud-vision' ).addClass( 'disabled' );
}
if (
typeof arrYoloObjectTags != 'undefined'
&& typeof arrYoloObjectTags[ intItemIndex ] != 'undefined'
&& arrYoloObjectTags[ intItemIndex ] != ''
)
{
let arrExistingTags = jqObjectTagsElem.find( '.tag' ).map( function() {
return $( this ).text();
} ).get();
let arrTagsSplitted = arrYoloObjectTags[ intItemIndex ].split( ';' );
let arrTagsToBeAdded = arrTagsSplitted.filter( tag => ! arrExistingTags.includes( tag ) );
$.each( arrTagsToBeAdded, ( i, tag ) => {
jqObjectTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
$( '#gallery2__sidebar__info-object_tags' ).show();
$( '.gallery2__sidebar__info-dropdown_button.yolo-object_detection' ).addClass( 'disabled' );
}
if (
typeof arrLabelTags != 'undefined'
&& typeof arrLabelTags[ intItemIndex ] != 'undefined'
&& arrLabelTags[ intItemIndex ] != ''
)
{
let jqTagsElem = $( '#gallery2__sidebar__info-label_tags .tags' );
jqTagsElem.empty();
let arrTagsSplitted = arrLabelTags[ intItemIndex ].split( ';' );
$.each( arrTagsSplitted, ( i, tag ) => {
jqTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
$( '#gallery2__sidebar__info-label_tags' ).show();
$( '.gallery2__sidebar__info-dropdown_button.google_cloud-vision' ).addClass( 'disabled' );
}
$('.gallery2_share-input').val('https://files.fm/f/' + strCurrentFileHash );
if ( typeof arrDatesDelete == 'undefined' || arrDatesDelete[intItemIndex] == '' )
{
$('#gallery2__sidebar__info-date-delete').hide();
}
else
{
$('#gallery2__sidebar__info-date-delete .gallery2__sidebar__info-value').html( ( typeof arrDatesDelete != 'undefined' ? arrDatesDelete[intItemIndex] : '' ) );
$('#gallery2__sidebar__info-date-delete').show();
}
var strName = arrDisplayNames[intItemIndex];
if (strName == '')
{
strName = arrNames[intItemIndex];
}
var $name = $('#gallery2__sidebar__info-name .gallery2__sidebar__info-value');
$name.val( strName );
if( bolIsOwner )
{
autoGrow( $name.get( 0 ), '32px' );
$(".not_owner_show").hide();
$(".not_owner_hide").show();
}
else
{
$(".not_owner_show").show();
$(".not_owner_hide").hide();
$( ".gallery2__sidebar__file_name_value" ).html( strName );
$( ".gallery2__header__file_name_value" ).html( strName );
}
var $desc = $('#gallery2__sidebar__info-description .gallery2__sidebar__info-value');
var strDescriptionForInput = arrDescriptions[ intItemIndex ].replaceAll(' ', String.fromCharCode(13, 10));
var strDescriptionForHtml = arrDescriptions[ intItemIndex ].replaceAll(' ', '<br/>');
$desc.val( strDescriptionForInput );
var strDescription = strDescriptionForInput;
if ( strDescription == '' || typeof strDescription == 'undefined' )
{
strDescription = '';
$desc.html( strDescription );
}
else
{
$( ".gallery2__sidebar__file_description_value" ).html( strDescription );
}
if( bolIsOwner )
{
autoGrow( $desc.get( 0 ), '32px' );
$(".not_owner_show").hide();
$(".not_owner_hide").show();
if ( strDescription == '' )
{
$( "#file_description_edit_wrapper" ).addClass("no-description");
}
else
{
$( "#file_description_edit_wrapper" ).removeClass("no-description");
}
}
else
{
$("#file_description_edit_wrapper").click(function () {
if( window.location.href.indexOf("filebrowser") === -1 )
{
showSignIn();
}
});
$( ".gallery2__sidebar__file_description_value" ).html( strDescriptionForHtml );
if ( strDescription == '' )
{
$( "#gallery2__sidebar__info-description" ).hide();
$( ".gallery2__sidebar__file_description_value, label[for='gallery2__sidebar__file_description_value']" ).hide();
$( ".gallery2__sidebar__file_description_value" ).css('padding-bottom', '');
}
else
{
$( "#gallery2__sidebar__info-description" ).show();
$( ".gallery2__sidebar__file_description_value, label[for='gallery2__sidebar__file_description_value']" ).show();
$( ".gallery2__sidebar__file_description_value" ).css('padding-bottom', '5px');
}
$(".not_owner_show").show();
$(".not_owner_hide").hide();
}
// regenerate tagsInput in filebrowser
if(window.location.href.indexOf( "filebrowser" ) !== -1 )
{
// user can browse folders without reloading filebrowser, recheck if user owns file has to be done for each file
$('#gallery_file_tags_container .file_tags_input').html('');
$('#gallery_file_tags_container .file_tags_input').removeAttr('data-tagsinput-init');
$('#gallery_file_tags_container .file_tags_input').removeAttr('id');
$('#gallery_file_tags_container .tagsinput').remove();
$('#gallery_file_tags_container .file_tags_input').tagsInput(
{
'autocomplete_url': './ajax/file_tag.php?autocomplete&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4' ,
'autocomplete': { selectFirst:false, autoFill:false},
'height' : 'auto',
'width' : '100%',
'interactive' : bolIsOwner || ( window.location.href.indexOf( "filebrowser" ) !== -1 && 0 ),
'defaultText' : 'Add tags',
'onAddTag' : function(strTagName)
{
$('#gallery_file_tags_container .file_tags_error').hide();
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_tag.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'add_file_tag': true ,
'file_hash' : strCurrentFileHash ,
'tag_name': strTagName
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrTags[intItemIndex] += ';' + strTagName;
// update tags in filebrowser
$('#sidebar_file_tags_container .file_tags_input').importTags(typeof arrTags[intItemIndex] === "undefined" ? "" : arrTags[intItemIndex]);
}
else
{
$('#gallery_file_tags_container .file_tags_error').show();
}
} ,
error: function()
{
$('#gallery_file_tags_container .file_tags_error').show();
}
});
} ,
'onRemoveTag' : function(strTagName)
{
$('#gallery_file_tags_container .file_tags_error').hide();
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_tag.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'delete_file_tag': true ,
'file_hash' : strCurrentFileHash ,
'tag_name': strTagName
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrTags[intItemIndex] = arrTags[intItemIndex].replace(strTagName, '');
// update tags in filebrowser
$('#sidebar_file_tags_container .file_tags_input').importTags(typeof arrTags[intItemIndex] === "undefined" ? "" : arrTags[intItemIndex]);
}
else
{
$('#gallery_file_tags_container .file_tags_error').show();
}
} ,
error: function()
{
$('#gallery_file_tags_container .file_tags_error').show();
}
});
} ,
'onSearchTag' : function(strTagName)
{
if (strPublicProfileHref != '')
{
window.open(strPublicProfileHref + '#search='+ strTagName, '_self');
}
} ,
'delimiter' : [';'] ,
'removeWithBackspace' : false ,
'minChars' : 1 ,
'maxChars' : 245 ,
'placeholderColor' : '#666666'
});
}
if (strPublicProfileHref != '')
{
$('#gallery_file_tags_container .tagsinput').addClass('searchable');
}
else
{
$('#gallery_file_tags_container .tagsinput').removeClass('searchable');
}
$('#gallery_file_tags_container .file_tags_input').importTags(typeof arrTags[intItemIndex] === "undefined" ? "" : arrTags[intItemIndex]);
if ( ( arrTags[ intItemIndex ] == '' || typeof arrTags[intItemIndex] === "undefined" ) && ! bolIsOwner )
{
$( '#gallery2__sidebar__info-tags' ).hide();
$( '#gallery2__sidebar__info-metadata-tags' ).hide();
$( '#gallery2_file_details_table_tags, #gallery2__sidebar__info-data' ).hide();
}
else
{
$( '#gallery2__sidebar__info-tags' ).show();
$( '#gallery2__sidebar__info-metadata-tags' ).show();
$( '#gallery2_file_details_table_tags, #gallery2__sidebar__info-data' ).show();
}
if( bolIsOwner && arrFileTypes[intCurrentFileIndex] != 'image' )
{
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).html( '' );
if ( arrFileAttributes[ intItemIndex ][ 'hasCustomThumb' ] )
{
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )"><i class="fal fa-image"></i> Change file image</div>' );
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_removeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )"><i class="fal fa-times"></i> Delete file image</div>' );
}
else
{
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )"><i class="fal fa-image"></i> Set file preview image</div>' );
}
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).show();
}
else
{
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).hide();
}
if( bolIsOwner )
{
$( "#gallery2__item_info_delete, #gallery2__item_info_delete_middle" ).on( 'click', function()
{
GalleryDeleteFile(arrHashes[ intItemIndex ], strName );
});
}
else if( bolCanDelete && typeof arrFileDeleteKeys != 'undefined' && arrFileDeleteKeys[ intCurrentFileIndex ] != '' )
{
$( "#gallery2__item_info_delete, #gallery2__item_info_delete_middle" ).on( 'click', function()
{
GalleryDeleteFileAnon( arrFileDeleteKeys[ intCurrentFileIndex ], arrHashes[ intCurrentFileIndex ], strName );
});
}
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).html( '' );
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).hide();
$( '#gallery2__item_info_save' ).hide();
if ( arrFeeDownloadPrice[ intCurrentFileIndex ] != null )
{
if ( bolIsOwner )
{
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").attr("onclick", "showSetPriceFormModal(strCurrentFileHash)")
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").append("Change price")
$( '#gallery2__item_info_save' ).show();
$('#gallery2__buyfile span.text').html('Change price');
$('.print_or_buy_popup__buyfile span.text').html('Change price');
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).append( ' (' + arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $)' );
}
else
{
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").attr("onclick", "showBuyFileFormModal(strCurrentFileHash)")
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").append("<span class='text'>Buy</span>")
$('#gallery2__buyfile span.text').html('Buy');
$('.print_or_buy_popup__buyfile span.text').html('Buy');
$( '#gallery2__item_info_save' ).hide();
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).append( '<span class="price">' + arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $</span>' );
}
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).show();
}
else
{
if ( bolIsOwner )
{
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").attr("onclick", "showSetPriceFormModal(strCurrentFileHash)")
$("#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle").append("Sell")
$('#gallery2__buyfile span.text').html('Sell');
$('.print_or_buy_popup__buyfile span.text').html('Sell');
$( '#gallery2__sidebar__info-price, #gallery2__sidebar__info-price_middle' ).show();
$( '#gallery2__item_info_save' ).show();
}
else
{
if ( arrFeeDownloadPrice[ intItemIndex ]==null &&
! currentFolderHasFeeDownload( intItemIndex ) &&
arrAllowDownload[ intItemIndex ] &&
( typeof(bolHideDownloadButtons) === 'undefined' || ! bolHideDownloadButtons ) &&
( typeof(arrHideDownloadButtons) === 'undefined' || ! arrHideDownloadButtons[ intItemIndex ] ))
{
$( '#gallery2__item_info_save' ).show();
$( '.gallery2__save_button' ).show();
}
else
{
$( '#gallery2__item_info_save' ).hide();
$( '.gallery2__save_button' ).hide();
}
}
}
autosize.update($('#file_description_edit_wrapper textarea'));
autosize.update($('#file_name_edit_wrapper textarea'));
bolGalleryCommentsVisible = true;
galleryLoadFileComments();
if (! bolGallerySidebarVisible )
{
bolGalleryCommentsVisible = false;
}
if ( $( '#main_image_' + strCurrentFileHash ).length )
{
loadExifTags();
}
}
function galleryLoadFileComments()
{
if (!bolGalleryCommentsVisible || strActiveCommentsEntityHash == strCurrentFileHash)
{
return;
}
// Check if global variable is available
if (typeof window.ChatFM === 'undefined')
{
setTimeout(function() {
galleryLoadFileComments()
}, 100)
return
}
strActiveCommentsEntityHash = strCurrentFileHash;
ChatFM.resetChat();
ChatFM.setNewEntityChat(strCurrentFileHash, "1");
}
function galleryUpdateVoteCount()
{
var intItemIndex = getItemIndex ( strCurrentFileHash );
$('.gallery_vote .vote_count').text( arrVoteCounts[intItemIndex] );
var strVoteIcon = null;
if ( arrHasVoted[intItemIndex] )
{
strVoteIcon = '/images/gallery/heart_red.svg';
$('.gallery_vote').addClass('has_voted');
}
else
{
strVoteIcon = '/images/gallery/heart_hollow.svg';
$('.gallery_vote').removeClass('has_voted');
}
if( typeof objAudioPlayer !== "undefined" && objAudioPlayer !== null )
{
objAudioPlayer.afterVote();
}
var jqImage = $('#main_image_' + strCurrentFileHash);
}
function galleryUpdateFileSelection()
{
$('#gallery2__thumb-strip__inner a').removeClass('selected');
$('#gallery_select_middle').removeClass('selected');
objSelectedFiles.forEach((strHash) => {
$('#gallery2__thumb-strip__inner a[file_hash="' + strHash + '"]').addClass('selected');
if(strHash == strCurrentFileHash)
{
$('#gallery_select_middle').addClass('selected')
}
});
}
function galleryChangeLocation ( strLocation, bolAuto )
{
var strHashtag = window.location.hash;
var strTitle = '';
if ( strLocation.indexOf('/f/') !== -1 )
{
var strHash = strLocation.replace( '/f/', '' );
var intFileIndex = getItemIndexByHashOrName( strHash );
strTitle = arrDisplayNames[ intFileIndex ] + ' - davidarida385' ;
}
//when changing gallery items, don't add new entries in history - change last one
if(history.state == 'gallery')
{
history.replaceState( 'gallery', '', '/' + strScriptURL + strLocation );
}
else
{
history.pushState( 'gallery', '', '/' + strScriptURL + strLocation );
}
document.title = strTitle;
galleryCheckLocation ();
}
var bolCheckLocationRunning = false;
function galleryCheckLocation ()
{
if ( bolCheckLocationRunning )
return;
bolCheckLocationRunning = true;
var intFileIndex = null;
bolHashtagViewUseSemicolon = false;
var strPathname = decodeURIComponent(window.location.pathname);
var strViewLink = strPathname.slice(decodeURIComponent('/davidarida385').length, strPathname.length);
var strItemHashOrName = strViewLink.slice(3, strViewLink.length);
intFileIndex = getItemIndexByHashOrName ( strItemHashOrName );
if (window.location.hash.indexOf(';zoom') == -1)
{
$('#gallery_panzoomdiv').css('display', 'none');
}
if ( typeof intFileIndex !== "undefined" && intFileIndex !== null )
{
$('#gallery2').show();
if ( strCurrentFileHash !== arrHashes[ intFileIndex ] )
{
setTimeout( "showGalleryItem( '" + arrHashes[ intFileIndex ] + "')", 0 );
}
}
else
{
if ( bolGalleryIsVisible && bolCloseGalleryIfHashRemoved )
{
closeGallery(strCurrentFileHash);
}
}
bolCheckLocationRunning = false;
}
var galleryCheckHashtag = galleryCheckLocation;
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))
{
var mql = window.matchMedia("(orientation: portrait)");
// If there are matches, we're in portrait
// Add a media query change listener
mql.addListener(function(m) {
if(m.matches) {
// Changed to portrait
$('#gallery2__content-wrapper').removeClass( 'gallery__only_image' );
}
else {
// Changed to landscape
$('#gallery2__content-wrapper').addClass( 'gallery__only_image' );
}
setTimeout( function() {
var evt = document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false,window,0);
window.dispatchEvent(evt);
}, 300 );
});
}
$(window).bind('hashchange', galleryCheckLocation);
$(window).bind('popstate', function(e) {
if ( window.location.href.indexOf('/u/') !== -1 )
{
if( strCurrentFileHash ) closeGallery(strCurrentFileHash);
}
});
function galleryDestroyMainSlider ()
{
if ( jqMainSlider )
{
jqMainSlider.destroySlider();
jqMainSlider = null;
}
}
function galleryReinitalize ()
{
galleryDestroyMainSlider ();
$( '#gallery2__swipe-wrapper .gallery2__item' ).remove();
$( '#gallery2__thumb-strip__inner' ).html('');
$('#gallery2__controls_doc_sign').removeClass('document');
$( '#gallery2__info_middle' ).removeClass( 'mobile-hide' );
$(' #gallery2__info_more' ).removeClass( 'mobile-show' );
if ( bolIsOwner )
{
$('#gallery2__header__setprice').show();
$('#gallery2__sign').show();
$('#gallery2__sign_main').show();
$('.gallery2__edit').show();
}
else
{
$('#gallery2__header__setprice').hide();
$('#gallery2__sign').hide();
$('#gallery2__sign_main').hide();
$('.gallery2__edit').hide();
}
if ( bolUseAsyncFileInfoDataLoad )
{
arrFileTitle = [];
arrFileSubject = [];
arrFileContentType = [];
arrFileCategory = [];
arrFileCategories = [];
arrFileKeywords = [];
arrFileCreator = [];
arrFilePublisher = [];
arrFileContributor = [];
arrFileCopyrights = [];
arrFileLicenseType = [];
arrFileLicenseDetails = [];
arrFileLanguage = [];
arrFileLocation = [];
arrFileLocationLat = [];
arrFileLocationLong = [];
arrFileReferences = [];
arrFileRelatesTo = [];
arrFileFormat = [];
arrFileDevice = [];
arrFileSource = [];
arrTags = [];
arrObjectTags = [];
arrYoloObjectTags = [];
arrLabelTags = [];
arrFileGoogleCVText = [];
arrFileEasyOCRText = [];
arrFileAudioTranscription = [];
arrIsFileInfoDataPreloaded = [];
}
}
var objVideoPlayers = {};
function initVideoPlayer (intFileIndex)
{
var logoHref = "https://files.fm";
var logoImgUrL = logoHref;
logoImgUrL += "/images/logo/white/filesfm_logo_full.svg";
var player = new FilesFm_VideoJS( "video_" + arrHashes[ intFileIndex ], {
autoplay: false,
posterHref: 'https://' + arrFileHost[ intFileIndex ] + '/thumb_video_picture.php?i=' + arrHashes[intFileIndex] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4' ,
} );
objVideoPlayers[intFileIndex] = player;
player.objPlayer.on( 'ready', function() {
var domVideo = $( '#' + player.strContainerId + ' video' )[ 0 ];
var objQualitySelector = player.objPlayer.controlBar.qualitySelector;
var objPlaybackRateMenuButton = player.objPlayer.controlBar.playbackRateMenuButton;
// Add title to PlaybackRateMenuButton
$( objPlaybackRateMenuButton.menu.el() )
.prepend( '<div class="vjs-menu-title bx_allow_events">Speed</div>' );
// Close QualitySelector and PlaybackRateMenuButton when any of CenterButtons is clicked.
// Event 'touchend' is specifically for touchscreens.
// Mouse click is implemented in VideoJS by default.
player.objPlayer.getChild( 'CenterButtons' ).children().forEach( button => {
$( button.el() ).on( 'touchend', () => {
objQualitySelector.unpressButton();
objPlaybackRateMenuButton.unpressButton();
} );
} );
// Do not make further changes to QualitySelector
// if there is no source of the original video.
if ( player.objPlayer.currentSources().length != 2 )
{
return;
}
function onMetadataLoaded()
{
domVideo.removeEventListener( 'loadedmetadata', onMetadataLoaded );
// If preview and original video resolutions are the same, remove QualitySelector
if (
typeof arrWidths != 'undefined'
&& typeof arrHeights != 'undefined'
&& arrWidths[ intFileIndex ] == domVideo.videoWidth
&& arrHeights[ intFileIndex ] == domVideo.videoHeight
)
{
objQualitySelector.el().remove();
return;
}
styleQualitySelector( player, intFileIndex );
$( objPlaybackRateMenuButton.el() ).addClass( 'vjs-quality-selector-available' );
$( objQualitySelector.menu.el() ).find( '*' ).addClass( 'bx_allow_events' );
var jqQualitySelectorList = $( objQualitySelector.menu.contentEl() );
var jqOriginalQualityBTN = $( objQualitySelector.items[ 1 ].el() );
jqOriginalQualityBTN.remove();
// Create plain copy of element (to prevent any event listeners and other stuff)
jqOriginalQualityBTN = $( jqOriginalQualityBTN[ 0 ].outerHTML );
jqQualitySelectorList.append( jqOriginalQualityBTN );
jqOriginalQualityBTN.on( 'click touchend', function() {
player.objPlayer.pause();
showCreateAccount();
} );
}
if ( domVideo.readyState == 0 )
{
domVideo.addEventListener( 'loadedmetadata', onMetadataLoaded );
}
else
{
onMetadataLoaded();
}
} );
player.objPlayer.on( 'qualityRequested', function( event, newSource ) {
$( event.target )
.find( '.vjs-control-bar .vjs-quality-selector .vjs-quality-selector-value' )
.text( newSource.resolutionLabel );
} );
player.objPlayer.on("ended", (event) => {
if ( bolGalleryIsVisible )
{
var intNextSlideIndex = intNextIndex;
if(intNextIndex == null || isNaN( intNextIndex ) && arrHashes[0] != null)
{
intNextSlideIndex = getItemIndex ( arrHashes[0] );
}
if ( intNextSlideIndex != null && !isNaN( intNextSlideIndex ) )
{
if (strSlideshowInterval === 'reset')
{
objVideoPlayers[intCurrentFileIndex].objPlayer.loop(true);
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ) );
}
}
}
});
fitVideoPlayer( $( "#video_" + arrHashes[ intFileIndex ] ) );
$( "#video_" + arrHashes[ intFileIndex ] ).find( "*" ).addClass( "bx_allow_events" );
$( "#video_" + arrHashes[ intFileIndex ] ).addClass( 'ffm_video_fallback' );
$( "#video_" + arrHashes[ intFileIndex ] + ' .vjs-loading-spinner .vjs-control-text' ).text( 'Wait for the mp4 video preview to be created for playback in the browser. This takes time, depending on the length of the video. If the video does not start, refresh the page or download the original.' );
// let's not resize the player anymore
player.setFluid( false );
}
function styleQualitySelector( player, intFileIndex )
{
var strDefaultQualityLabel = 'HD';
var domVideo = $( '#' + player.strContainerId + ' video' )[ 0 ];
var objQualitySelector = player.objPlayer.controlBar.qualitySelector;
$( objQualitySelector.menu.el() )
.prepend( '<div class="vjs-menu-title">Quality</div>' );
// PREVIEW QUALITY BUTTON
var jqPreviewQualityText = $( objQualitySelector.items[ 0 ].el() ).find( '.vjs-menu-item-text' );
jqPreviewQualityText.html( '<div>Preview</div>' );
var intPreviewWidth = domVideo.videoWidth;
var intPreviewHeight = domVideo.videoHeight;
if (
typeof intPreviewWidth == 'number'
&& typeof intPreviewHeight == 'number'
&& intPreviewWidth > 0
&& intPreviewHeight > 0
)
{
var strPreviewResolutionLabel = getResolutionLabel( intPreviewWidth, intPreviewHeight, true );
if ( strPreviewResolutionLabel === '' )
{
strPreviewResolutionLabel = 'SD ';
}
jqPreviewQualityText.append(
'<div>' +
strPreviewResolutionLabel + intPreviewWidth + 'x' + intPreviewHeight +
'</div>'
);
$( objQualitySelector.el() ).prepend( '<div class="vjs-quality-selector-value">' + strPreviewResolutionLabel + '</div>' );
player.objPlayer.currentSources()[ 0 ].resolutionLabel = strPreviewResolutionLabel;
}
else
{
$( objQualitySelector.el() ).prepend( '<div class="vjs-quality-selector-value">' + strDefaultQualityLabel + '</div>' );
player.objPlayer.currentSources()[ 0 ].resolutionLabel = strDefaultQualityLabel;
}
// ORIGINAL QUALITY BUTTON
var jqOriginalQualityText = $( objQualitySelector.items[ 1 ].el() ).find( '.vjs-menu-item-text' );
jqOriginalQualityText.html(
'<div>' +
'Original ' +
'<span class="pro_flag">PRO</span>' +
'</div>'
);
if (
typeof arrWidths != 'undefined'
&& typeof arrHeights != 'undefined'
&& arrWidths[ intFileIndex ] != ''
&& arrHeights[ intFileIndex ] != ''
)
{
var strOriginalResolutionLabel = getResolutionLabel( arrWidths[ intFileIndex ], arrHeights[ intFileIndex ], true );
if ( strOriginalResolutionLabel === '' )
{
strOriginalResolutionLabel = 'SD ';
}
jqOriginalQualityText.append(
'<div>' +
strOriginalResolutionLabel + arrWidths[ intFileIndex ] + 'x' + arrHeights[ intFileIndex ] +
'</div>'
);
player.objPlayer.currentSources()[ 1 ].resolutionLabel = strOriginalResolutionLabel;
}
else
{
player.objPlayer.currentSources()[ 1 ].resolutionLabel = strDefaultQualityLabel;
}
}
function getVideoSize($video)
{
$video = $($video);
var $viewPort = $video.closest( ".gallery2__video_container" );
var viewportHeight = $viewPort.height() - 100;
var viewportWidth = $viewPort.width();
var minHeight = 240;
var videoHeight = $video.get( 0 ).offsetHeight;
var videoWidth = $video.get( 0 ).offsetWidth;
var widthToHeight = $video.attr( 'data-wth' );
if ( typeof widthToHeight === "undefined" || !widthToHeight )
{
widthToHeight = Math.floor( videoWidth / videoHeight * 100 ) / 100;
$video.attr( 'data-wth', widthToHeight );
}
if( widthToHeight == 0 )
{
widthToHeight = 1;
}
var maxHeight = viewportHeight;
if ( maxHeight * widthToHeight >= viewportWidth )
{
maxHeight = Math.round( viewportWidth / widthToHeight );
}
if( maxHeight > viewportHeight )
{
maxHeight = viewportHeight;
}
if ( maxHeight < minHeight )
{
maxHeight = minHeight;
}
var w = Math.floor( widthToHeight * maxHeight );
return {
height: maxHeight + 'px',
width: !isNaN(w) ? (w + "px") : "0px"
};
}
function fitVideoPlayer( $video )
{
$video = $($video);
var size = getVideoSize( $video );
$video.css( {
paddingTop: size.height,
width: size.width,
height: 0
} );
$video.find( "video" ).css( 'width', '100%' );
}
function fitEmbedPlayer( $video )
{
$video = $( $video );
var size = getVideoSize( $video );
if ( size.width !== "0px" )
{
$video.closest( ".gallery2__video_container__embed_palyer" ).css( {
'maxWidth': size.width
} );
$video.closest( ".filesfm__embed_player__container" ).css( {
height: "100%"
} );
}
$video.find( "video" ).css( 'width', '100%' );
}
var bolGalleryIsOpening = false;
var arrThumbWidth = [];
function showGallery()
{
if ( bolGalleryIsOpening )
{
return;
}
bolGalleryIsOpening = true;
$( 'html' ).css( 'overflow', 'hidden' );
$( '#gallery2' ).show();
$('#tawkchat-iframe-container').hide();
if( $( '#gallery2__swipe-wrapper .gallery2__item' ).length == 0 )
{
if (jqThumbContainer == null)
{
jqThumbContainer = $('#gallery2__thumb-strip__inner');
var intAllThumbCount = $( 'A', jqThumbContainer ).length;
}
var intThumbsW = 0;
var arrItems = [];
var arrThumbs = [];
for( idx in arrIDs )
{
// Removed jQuery from content composing
var strItemHTML = '<span class="gallery2__item" id="gallery2__item-' + idx + '"></span>';
strAddress = '';
var strThumbHTML = '';
var strClass = null;
if ( arrThumbnails[idx] )
{
var strThumbPath = arrThumbnails[idx];
strThumbHTML = '<img src="/images/gallery-image-icon.png" data-original="'+strThumbPath+'" id="thumb_strip_img_'+arrHashes[idx]+'" class="lazyload-image-gallery" />';
}
else if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[idx] )
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ idx ].toLowerCase() +' thumb-svg-icon"><img src="/images/file_types_v2/'+arrIconSvg[ idx ]+'" data-original="/images/file_types_v2/'+arrIconSvg[ idx ]+'" style="max-width: 35px" /><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ idx ].toUpperCase() +'</span></span>';
}
else if ( arrIconClass[idx] )
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ idx ].toLowerCase() +'"><i class="' + arrIconClass[idx] + '"></i><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ idx ].toUpperCase() +'</span></span>';
strClass = 'doc-icon';
}
else
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ idx ].toLowerCase() +'"><i class="fal fa-file"></i><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ idx ].toUpperCase() +'</span></span>';
strClass = 'doc-icon';
}
var strThumbItemHTML = '<a href="javascript:void(0)" class="thumb_' + arrHashes[idx] + ''+ (strClass ? ' '+strClass : '') +'" file_hash="'+arrHashes[idx]+'" onclick="galleryChangeLocation ( getItemLink ( \''+arrHashes[idx]+'\' ) )" ';
if( !arrThumbnails[idx] )
{
strThumbItemHTML += 'style="min-width:65px;"';
}
strThumbItemHTML += '><!--<div class="thumb-loader">Loading</div>--><div class="thumb-wrapper">'+ strThumbHTML +'</div><div class="checkbox"></div></a>';
arrItems.push(strItemHTML);
arrThumbs.push(strThumbItemHTML);
}
$( '#gallery2__swipe-wrapper' )[0].innerHTML = arrItems.join('');
jqThumbContainer[0].innerHTML = arrThumbs.join('');
arrItems = null;
arrThumbs = null;
}
if (jqThumbContainer == null)
{
jqThumbContainer = $('#gallery2__thumb-strip__inner');
}
if (jqThumbViewport == null)
{
jqThumbViewport = $('#gallery2__thumb-strip');
}
if( jqMainSlider == null )
{
recalculateGalleryForBanner();
var bolTouchEnabled = true;
if(arrIDs.length == 1)
{
bolTouchEnabled = false;
}
jqMainSlider = $( '#gallery2__swipe-wrapper' ).bxSlider({
slideSelector: 'span.gallery2__item',
infiniteLoop: false,
hideControlOnEnd: true,
preventDefaultSwipeX: true,
video: true,
pager: false,
controls: false,
slideWidth: 9999,
useCSS: true,
speed: 0,
animationSpeed: 0,
touchEnabled: bolTouchEnabled ,
onSlideBefore: function( $slide, oldIDx, newIDx ){
galleryChangeLocation ( getItemLink ( arrHashes[newIDx] ) );
if( !$slide.hasClass( 'content_ready' ) )
{
loadSlideContent( $slide, newIDx );
}
},
onSlideAfter: function( $slide, oldIDx, newIDx ){
var slidePrevIDx = parseInt( newIDx ) - 1;
var slideNextIDx = parseInt( newIDx ) + 1;
if( slidePrevIDx >= 0 )
{
$slidePrev = $( '#gallery2__item-' + slidePrevIDx );
if( $slidePrev.length > 0 && !$slidePrev.hasClass( 'content_ready' ) )
{
loadSlideContent( $slidePrev, slidePrevIDx );
}
}
if( slideNextIDx < jqMainSlider.getSlideCount() )
{
$slideNext = $( '#gallery2__item-' + slideNextIDx );
if( $slideNext.length > 0 && !$slideNext.hasClass( 'content_ready' ) )
{
loadSlideContent( $slideNext, slideNextIDx );
}
}
if ( $slide.find( ".gallery2__item__audio-wrapper" ).length )
{
objAudioPlayer.appendTo( $slide.find( ".gallery2__item__audio-wrapper" ) );
objAudioPlayer.setCurrentTrackByHash( arrHashes[ newIDx ] );
}
}
});
var obj = document.getElementById('gallery2__swipe-wrapper');
obj.addEventListener('touchmove', function(event) {
if(event.targetTouches.length > 1)
{
$( '#gallery2__swipe-wrapper' ).attr('data-multi-touch', true)
}
else
{
$( '#gallery2__swipe-wrapper' ).attr('data-multi-touch', false)
}
}, false);
}
else if (bolHaveToRedrawGallery)
{
recalculateGalleryForBanner(true);
bolHaveToRedrawGallery = false;
}
// At the beginning we need fixed size for lazyload to work
$( 'img.lazyload-image-gallery', jqThumbContainer).css( {'width': 'auto', 'height':'73px'} ).addClass('image-not-loaded');
$(function(){
var intAllThumbCount = $( 'A', jqThumbContainer ).length;
// After preload image is loaded - set auto size for original images.
$( 'img.lazyload-image-gallery', jqThumbContainer ).on( 'load', function (){
var intW = this.naturalWidth;
if ( intW < intThumbWidth )
intW = intThumbWidth;
arrThumbWidth.push( intW );
var intLoadedThumbCount = 0;
var intLoadedThumbWidthSum = 0;
for ( var i = 0; i<arrThumbWidth.length; i++ )
{
intLoadedThumbCount++;
intLoadedThumbWidthSum += arrThumbWidth[i];
}
var intAllThumbCount = $( 'A', jqThumbContainer ).length;
this.className = this.className + ' image-loaded';
} );
$( document ).on( 'click', function( e )
{
var jqTarget = $( e.target );
if (
jqTarget.parents( '#gallery2__header__mobile_menu' ).size()==0 &&
jqTarget.attr( 'id' )!='gallery2__header__mobile_menu' &&
jqTarget.parents( '#gallery2__header__right_more' ).size()==0 &&
jqTarget.attr( 'id' )!='gallery2__header__right_more'
)
{
$( '#gallery2__header__right_more' ).removeClass('open');
}
if (
jqTarget.parents( '#gallery-main-download-button' ).size()==0 &&
jqTarget.attr( 'id' )!='gallery-main-download-button'
)
{
$( '#gallery-main-download-button' ).removeClass('open');
}
});
$( '#gallery2__header__mobile_menu > .gallery2__header_middle_button:not(#gallery2__sidebar__info_embed_button_middle)' )
.on( 'click', function ()
{
$( '#gallery2__header__right_more' ).removeClass('open');
} );
});
$( 'img.lazyload-image-gallery' ).lazyload({
container: jqThumbViewport,
skip_invisible: true,
event: 'scroll touchmove thumb-scroll',
threshold: parseInt(intPreloadThumbnailsCount * intThumbWidth)
});
bolGalleryIsVisible = true;
$( function() {
if(typeof(bolOpenPopupInGallery) !== 'undefined' && bolOpenPopupInGallery)
{
if( intPopupType == 2)
{
objPopupForm.showForm();
bolPopupOnlyGallery = true;
}
else
{
setTimeout(function() {
objPopupForm.showForm();
bolPopupOnlyGallery = true;
}, 2000);
}
}
} );
setTimeout("$('#info_tooltip_global').hide();", 100);
if ( objMainShareParams )
$('#gallery2__share').show();
bolGalleryIsOpening = false;
var bolIsMobile = navigator.userAgent.match( '/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i' )
if ( !bolIsMobile && $( window ).width() >= 1400 && !bolGallerySidebarVisible )
{
showGalleryInfo();
}
}
function galleryLazyloadRecalc()
{
// Optimization for lazy load to work faster on large set of images.
// Trigger lazy load recalc event for 5 images before loaded images and 5 after.
var arrPreElements = [];
var arrPostElements = [];
var bolPassedLoadedImages = false;
$('img.lazyload-image-gallery').each (function (){
var jqImage = $(this);
if ( jqImage.hasClass('image-loaded') )
{
bolPassedLoadedImages = true;
}
if ( bolPassedLoadedImages == false )
{
arrPreElements.unshift( jqImage );
if (arrPreElements.length == intPreloadThumbnailsCount)
{
delete arrPreElements[intPreloadThumbnailsCount-1];
}
}
else
{
if (arrPostElements.length < intPreloadThumbnailsCount)
{
arrPostElements.push( jqImage );
}
}
});
jqThumbViewport.trigger('scroll');
}
function openPanZoomImage ()
{
if ( arrFileTypes[intCurrentFileIndex] !== 'image' )
return;
var strImageURL = 'https://'+ arrFileHost[ intCurrentFileIndex ] +'/thumb_show.php?i=' + arrHashes[intCurrentFileIndex] + '&view&v=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
if (arrFeeDownloadPrice[intCurrentFileIndex] > 0 || currentFolderHasFeeDownload( intCurrentFileIndex ) )
{
strImageURL += '&wm=103';
}
if ( typeof( arrFileVersion ) != 'undefined' && typeof( arrFileVersion[ intCurrentFileIndex ] ) != 'undefined' && arrFileVersion[ intCurrentFileIndex ] > 0 )
{
strImageURL += '&version=' + arrFileVersion[ intCurrentFileIndex ];
}
var srNewPanZoomLink = getItemLink ( strCurrentFileHash );
if( !window.location.hash.includes(';zoom') )
{
if ( window.location.hash.length > 0 )
{
srNewPanZoomLink += ';zoom';
}
else
{
srNewPanZoomLink += '#;zoom';
}
}
galleryChangeLocation ( srNewPanZoomLink );
var strHtml = '<img id="gallery_panzoomdiv_content" src="' + strImageURL + '" onload="initPanZoomImage(this)" />';
strHtml += '<div id="gallery_panzoomdiv_info" style="position: absolute; top: 0px; left: 0px; font-size: 12px; color: #fff; padding: 10px;"></div>';
var resCloseTimeout = null;
$('#gallery_panzoomdiv')
.html( strHtml )
.css('display', 'block')
.on('mouseup', function (e){
resCloseTimeout = setTimeout( function (){
$('#gallery_panzoomdiv').css('display', 'none');
}, 50);
})
.on('mousemove', function (e){
if ( resCloseTimeout )
{
clearTimeout( resCloseTimeout );
resCloseTimeout = null;
}
});
$('#gallery_panzoomdiv_close').on('click', function () {
$('#gallery_panzoomdiv').css('display', 'none');
});
}
function initPanZoomImage (dom)
{
var intBodyHeight = $('body').outerHeight();
var panzoom_instance = panzoom(dom, {
transformOrigin: {x: 0.5, y: 0.5},
maxZoom: 8,
minZoom: 0.25,
onTouch: function(e) {
return false;
}
});
var container_width = $('#gallery_panzoomdiv').width();
var container_height = $('#gallery_panzoomdiv').height();
var width = $('#gallery_panzoomdiv_content').width();
var height = $('#gallery_panzoomdiv_content').height();
panzoom_instance.moveTo((width - container_width)/-2, (height - container_height)/-2);
var jqHead = $( 'head' );
jqHead.find( 'meta[name=viewport]' ).remove();
jqHead.prepend( '<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0" />' );
}
var arrIframeTimers = [];
var objAudioPlayer = null;
function getBackgroundSize(elem) {
var objElemComputedStyle = getComputedStyle(elem),
objImage = new Image(),
strElemSrc = objElemComputedStyle.backgroundImage.replace(/url\((['"])?(.*?)\1\)/gi, '$2'),
intElemWidth = parseInt(objElemComputedStyle.width.replace('px', ''), 10),
intElemHeight = parseInt(objElemComputedStyle.height.replace('px', ''), 10);
objImage.src = strElemSrc;
var intBackgroundWidth, intBackgroundHeight;
var intRatioWidth = objImage.width / intElemWidth;
var intRatioHeight = objImage.height / intElemHeight;
if (intRatioWidth > intRatioHeight)
{
intBackgroundHeight = objImage.height / intRatioWidth;
intBackgroundWidth = intElemWidth;
}
else
{
intBackgroundWidth = objImage.width / intRatioHeight;
intBackgroundHeight = intElemHeight;
}
return {
width: intBackgroundWidth,
height: intBackgroundHeight
};
}
function loadSlideContent( $jqSlideElem, intFileIndex )
{
var strHttpCacheKey = '';
if ( typeof(arrHttpCacheKeys) != 'undefined' && typeof(arrHttpCacheKeys[intFileIndex]) != 'undefined' )
{
strHttpCacheKey = '' + arrHttpCacheKeys[intFileIndex];
}
if ( arrFileAttributes && arrFileAttributes[ intFileIndex ] && arrFileAttributes[ intFileIndex ][ 'readOnly' ] )
{
$( '#gallery2__header__mid_content' ).hide();
}
else
{
$( '#gallery2__header__mid_content' ).show();
}
var strFileType = arrFileTypes[intFileIndex];
var bolIsFileConvertableToPdf = isFileConvertable( 'pdf', intFileIndex );
if ( bolIsFileConvertableToPdf )
{
strFileType = 'pdf_converted';
}
switch( strFileType )
{
default:
var bolSimpleDownloadAllowed = false;
if ( arrAllowDownload[ intFileIndex ]
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& ( typeof(bolHideDownloadButtons) === 'undefined' || ! bolHideDownloadButtons ) && ( typeof(arrHideDownloadButtons) === 'undefined' || ! arrHideDownloadButtons[ intFileIndex ] )
) {
bolSimpleDownloadAllowed = true;
}
var jqThumb;
if ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] )
{
jqThumbInner = $( "<div>" )
.css({
'background-image': 'url("/thumb.php?i=' + arrHashes[ intFileIndex ] + '&v=1")',
'height': function()
{
}
})
.addClass( 'gallery2__item__custom_thumb' );
if ( arrFeeDownloadPrice[intFileIndex] > 0 )
{
if (bolIsOwner)
{
jqThumbInner.attr( 'onclick', 'showSetPriceFormModal(strCurrentFileHash)' );
}
else
{
jqThumbInner.attr( 'onclick', 'showBuyFileFormModal(strCurrentFileHash)' );
}
jqThumbInner.addClass( 'bx_allow_events' );
jqThumbInner.addClass( 'has_price' );
}
jqThumb = jqThumbInner;
}
$jqSlideElem.append( '<span class="gallery2__vertical-helper"></span><span class="gallery2__item__doc-wrapper' + ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] ? ' has_custom_thumb' : '' ) + '"></span>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( jqThumb );
var strIconHtml = '<i class="fa-5x fa ' + arrIconClass[ intFileIndex ] + '"></i>';
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[ intFileIndex ] )
{
strIconHtml = '<img src="/images/file_types_v2/'+arrIconSvg[ intFileIndex ]+'" class="ext-icon" />';
}
jqThumbIcon = $( '<span class="gallery2__item__doc-icon ' + arrExtensions[ intFileIndex ].toLowerCase() + '">' + strIconHtml + '</span>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( jqThumbIcon );
$('.gallery2__item__doc-wrapper', $jqSlideElem).append('<div class="gallery2__item__information-wrapper"><p class="gallery2__item__doc-filename">' + arrDisplayNames[intFileIndex] + '</p></div>');
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( '<p class="gallery2__item__doc-nopreview"></p>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append(jqButtonContainer);
break;
case 'image':
var strImageURL = 'https://' + arrFileHost[ intFileIndex ] + '/thumb_show.php?i=' + arrHashes[intFileIndex] + '&view&v=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
if (arrFeeDownloadPrice[intFileIndex] > 0 || currentFolderHasFeeDownload( intFileIndex ) )
{
strImageURL += '&wm=103';
}
if ( typeof( arrFileVersion ) != 'undefined' && typeof( arrFileVersion[ intFileIndex ] ) != 'undefined' && arrFileVersion[ intFileIndex ] > 0 )
{
strImageURL += '&version=' + arrFileVersion[ intFileIndex ];
}
var strHtml = '' +
'<span class="gallery2__vertical-helper"></span>' +
'<i class="fa fa-spinner fa-spin gallery2__load-spinner" id="main_image_load-spinner_'+ arrHashes[intFileIndex] +'"></i>' +
'<img class="gallery2__item__img gallery2__item__base-width-on bx_allow_events ' + ((arrWidths[intFileIndex] >= 1500 || arrHeights[intFileIndex] >= 1500 ) ? 'stretch_image' : '') + '" src="" alt="" id="main_image_'+ arrHashes[intFileIndex] +'" />' +
'<div class="print_or_buy_popup">' +
'<div class="print_or_buy_popup_close bx_allow_events" onclick="$(\'.print_or_buy_popup\').hide();"></div>' +
'<div class="print_or_buy_popup_desc">You can buy this file or print-on-demand products:</div>' +
'<span class="print_or_buy_popup__buyfile print_or_buy_popup_button" style="display:none" onclick="showSetPriceFormModal(strCurrentFileHash)">' +
'<a href="javascript:void(0);">' +
' <span class="text">Buy</span>' +
'<span class="price"></span>' +
'</a>' +
'</span>' +
'<span class="print_or_buy_popup__products print_or_buy_popup_button">' +
'<a href="javascript:void(0);">' +
'<span class="text">View products</span>' +
'</a>' +
'</span>' +
'</div>' +
'</div>';
$jqSlideElem.append( strHtml );
var bolImageLoaded = false;
var strImageFileHash = arrHashes[intFileIndex];
$( 'img', $jqSlideElem ).attr( 'src', strImageURL ).on( 'load', function(){
bolImageLoaded = true;
$( this ).css( 'opacity', '1' );
$('#main_image_load-spinner_'+ strImageFileHash).hide();
$(this).attr( 'data-image-loaded', true );
var intImageWidth = $( 'img', $jqSlideElem ).width();
if(intImageWidth>=$('#gallery2__image-wrapper').width())
{
intImageWidth=intImageWidth-20;
}
$('img', $jqSlideElem).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( intImageWidth );
if ( arrHashes[intFileIndex] == strCurrentFileHash )
{
loadExifTags();
}
}).on('click', function (){
if($( this ).hasClass( "bx_allow_events" ))
{
if ( arrFeeDownloadPrice[intFileIndex] > 0 )
{
if ( arrFileAttributes[ getItemIndex ( strCurrentFileHash ) ].hasProductSelling )
{
$( this ).siblings(".print_or_buy_popup").toggle();
}
else
{
if (bolIsOwner)
{
showSetPriceFormModal(strCurrentFileHash);
}
else
{
showBuyFileFormModal(strCurrentFileHash);
}
}
}
else
{
if ( arrFileAttributes[ getItemIndex ( strCurrentFileHash ) ].hasProductSelling )
{
window.open( '/c/' + arrParentHashes[ getItemIndex ( strCurrentFileHash ) ] + '?h=' + strCurrentFileHash, '_blank' );
}
}
}
else
{
$('#gallery2__content-wrapper').toggleClass( 'gallery__only_image' );
}
});
setTimeout("var domImg=document.getElementById('main_image_"+ arrHashes[intFileIndex] +"'); if ( ! domImg.complete ) { $( domImg ).css( 'opacity', '0.6' );}", 300);
break;
case 'document':
case 'code':
case 'pdf_converted':
var jqThumb;
if ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] )
{
jqThumb = $( "<div>" ).css( 'background-image', 'url("/thumb.php?i=' + arrHashes[ intFileIndex ] + '&v=1")' ).addClass( 'gallery2__item__custom_thumb gallery2__item__base-width-on' );
if ( arrFeeDownloadPrice[intFileIndex] > 0 )
{
if (bolIsOwner)
{
jqThumb.attr( 'onclick', 'showSetPriceFormModal(strCurrentFileHash)' );
}
else
{
jqThumb.attr( 'onclick', 'showBuyFileFormModal(strCurrentFileHash)' );
}
jqThumb.addClass( 'bx_allow_events' );
jqThumb.addClass( 'has_price' );
}
}
else
{
jqThumb = $( '<i />' ).addClass( 'fa-5x fa ' + arrIconClass[intFileIndex] );
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[ intFileIndex ] )
{
jqThumb = $( '<img />' ).attr('src', '/images/file_types_v2/' + arrIconSvg[ intFileIndex ]).addClass( 'gallery2__item__base-width-on ext-icon' );
}
}
var bolSimpleDownloadAllowed = false;
if ( arrAllowDownload[ intFileIndex ]
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& ( typeof(bolHideDownloadButtons) === 'undefined' || ! bolHideDownloadButtons ) && ( typeof(arrHideDownloadButtons) === 'undefined' || ! arrHideDownloadButtons[ intFileIndex ] )) {
bolSimpleDownloadAllowed = true;
}
$jqSlideElem.append( '<span class="gallery2__vertical-helper"></span><span class="gallery2__item__doc-wrapper' + ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] ? ' has_custom_thumb' : '' ) + '"></span>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( jqThumb );
if (!arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ])
{
$('.gallery2__item__doc-wrapper', $jqSlideElem).append('<div class="gallery2__item__information-wrapper"><p class="gallery2__item__doc-filename">' + arrDisplayNames[intFileIndex] + '</p></div>');
}
var jqButtonContainer = $('<div />').css({'white-space': 'normal'});
jqButtonContainer.append('<div class="gallery2__item__desc-wrapper"><p class="gallery2__item__desc-wrapper-text">' + arrDescriptions[intFileIndex] + '</p></div>');
if ( arrExtensions[ intFileIndex ] == 'pdf' || bolIsFileConvertableToPdf )
{
var bolForbidDirectDownload = false;
if ( typeof( arrForbidDirectDownload ) != 'undefined' && arrForbidDirectDownload[ intFileIndex ] == true )
{
bolForbidDirectDownload = true;
}
if (
arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& arrAllowDownload[ intFileIndex ]
&& browserSupportsCanvas()
&& ! bolForbidDirectDownload
&& arrSizesInBytes[ intFileIndex ] < 104857600 )
{
( function()
{
$( this ).attr( 'disabled', 'disabled' );
var $jqSlideElem = $( this ).closest( ".gallery2__item" );
var intFileIndex = $jqSlideElem.attr( 'id' ).split( "-" ).slice( -1 )[ 0 ];
$jqSlideElem.prepend(
'<div class="gallery2__item__iframe-wrapper" id="gallery2__item__iframe-wrapper__' + intFileIndex + '">' +
'<div class="gallery2__item__iframe-loading">' +
'<span class="gallery2__vertical-helper"></span>' +
'<div class="gallery2__item__iframe-loading__wrapper">' +
'<i class="fa fa-spinner fa-spin gallery2__item__iframe-loading__icon"></i>' +
'<span class="gallery2__item__iframe-loading__text">Wait while the preview is being created.<br/> This will take longer for large files. Download to view the original.</span>' +
'</div>' +
'</div>' +
'<iframe src=""></iframe>' +
'</div>'
);
var strPdfSrc;
if ( bolIsFileConvertableToPdf )
{
var strDateModified = ( typeof arrDatesModified != 'undefined' ? arrDatesModified[ intFileIndex ] : ( typeof arrModDate != 'undefined' ? arrModDate[ intFileIndex ] : '' ) );
strPdfSrc = 'https://' + arrFileHost[ intFileIndex ] + '/api/file/get_thumb_pdf.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&dm=' + strDateModified + '&v=102&n=' + arrDisplayNames[ intFileIndex ] + '.pdf';
}
else
{
strPdfSrc = 'https://' + arrFileHost[ intFileIndex ] + '/down.php?pdf=1&truemimetype=1&i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&n=' + arrDisplayNames[ intFileIndex ];
}
// There is an issue if user on mobile Chrome requests desktop version, User-Agent becomes similar
let strChromeDesktopRegex = /^Mozilla\/5\.0\s+\(.*\)\s+AppleWebKit\/\d+\.\d+\s+\(KHTML,\s+like\s+Gecko\)\s+Chrome\/\d+\.\d+\.\d+\.\d+\s+Safari\/\d+\.\d+$/;
if ( strChromeDesktopRegex.test( navigator.userAgent ) && arrExtensions[ intFileIndex ] === 'pdf' )
{
var strDocumentIframeSource = encodeURI( strPdfSrc ) + '&view';
}
else
{
var strDocumentIframeSource = '/js/pdfjs-v4/web/viewer.html#' + encodeURI( strPdfSrc );
}
$.ajax(
{
type: "GET",
url: strPdfSrc,
success: function()
{
$( 'iframe', $jqSlideElem )
.attr( 'src', strDocumentIframeSource )
.addClass( 'gallery2__item__base-width-on' )
.css(
{
'height': function()
{
return '100%';
}
} )
.on( 'load', function ()
{
if ( ! bolSimpleDownloadAllowed )
{
$( this ).contents().find( '#print' ).hide();
$( this ).contents().find( '#download' ).hide();
}
} );
} ,
error: function(data)
{
var stErrorText = 'Sorry, we were unable to create file preview. Please try again by refreshing the page or contact [email protected]. You can download the file to view it.';
if ( data.status == 405 )
{
stErrorText = 'There is no preview available for this file. Download the file to view it.';
}
$( 'iframe', $jqSlideElem ).replaceWith(
'<div class="gallery2__item__msg_has_no_preview">' +
'<span class="gallery2__vertical-helper"></span>' +
'<div>' + stErrorText + '</div>' +
'</div>'
);
$( '.gallery2__item__msg_has_no_preview' )
.addClass( 'gallery2__item__base-width-on' )
.css(
{
'height': function()
{
return '100%';
}
} );
$( '.gallery2__item__iframe-loading', $jqSlideElem ).hide();
}
} );
} ).apply( $jqSlideElem );
}
}
else if (
[ 'txt', 'csv' ].indexOf( arrExtensions[ intFileIndex ] ) !== -1
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& arrAllowDownload[ intFileIndex ]
)
{
var fnLoadIframe = function ()
{
$( this ).attr( 'disabled', 'disabled' );
var $jqSlideElem = $( this ).closest( ".gallery2__item" );
var intFileIndex = $jqSlideElem.attr( 'id' ).split( "-" ).slice( -1 )[ 0 ];
$jqSlideElem.prepend( '<div class="gallery2__item__iframe-wrapper" id="gallery2__item__iframe-wrapper__' + intFileIndex + '"><div class="gallery2__item__iframe-loading"><span class="gallery2__vertical-helper"></span><i class="fa fa-spinner fa-spin"></i></div><iframe src="" class="modal_gallery_simple_iframe"></iframe><div class="gallery2__item__information-wrapper"><p class="gallery2__item__doc-filename">' + arrDisplayNames[ intFileIndex ] + '</p></div><div class="gallery2__item__desc-wrapper"><p class="gallery2__item__desc-wrapper-text">' + arrDescriptions[intFileIndex] + '</p></div></div>' );
arrIframeTimers[ intFileIndex ] = setTimeout( function ()
{
$( '#gallery2__item__iframe-wrapper__' + intFileIndex ).hide();
}, 30000 );
$( 'iframe', $jqSlideElem )
.attr( 'src', 'https://' + arrFileHost[ intFileIndex ] + '/down.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&plain_text&view&pv=1' )
.attr( 'onload', 'clearTimeout( arrIframeTimers[ ' + intFileIndex + ' ] );' )
.css({
'height': function(){
return '100%';
},
"background": "white"
})
.addClass( 'gallery2__item__base-width-on' )
};
fnLoadIframe.apply( $jqSlideElem );
}
// Highlighting code syntax
else if (
[ 'asp','asm','c','h','cc','m','cpp','css','html','java','jsp','js','json','php','pl','py','rb','script','sh','vb','xml','ini' ].indexOf( arrExtensions[ intFileIndex ] ) !== -1
// Excluded extensions that highlight.js is not able to recognize and highlight properly
&& [ 'asp', 'asm', 'm', 'script' ].indexOf( arrExtensions[ intFileIndex ] ) === -1
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& arrAllowDownload[ intFileIndex ]
)
{
var fnLoadCode = function ()
{
$( this ).attr( 'disabled', 'disabled' );
var $jqSlideElem = $( this ).closest( ".gallery2__item" );
var intFileIndex = $jqSlideElem.attr( 'id' ).split( "-" ).slice( -1 )[ 0 ];
$jqSlideElem.prepend(
'<div class="gallery2__item__code-wrapper" id="gallery2__item__code-wrapper__' + intFileIndex + '">' +
'<div class="gallery2__item__code-loading">' +
'<span class="gallery2__vertical-helper"></span>' +
'<i class="fa fa-spinner fa-spin"></i>' +
'</div>' +
'<div class="modal_gallery_code_container" style="display: none;">' +
'<pre>' +
'<code></code>' +
'</pre>' +
'</div>' +
'<div class="gallery2__item__information-wrapper">' +
'<p class="gallery2__item__doc-filename">' +
arrDisplayNames[ intFileIndex ] +
'</p>' +
'</div>' +
'<div class="gallery2__item__desc-wrapper">' +
'<p class="gallery2__item__desc-wrapper-text">' +
arrDescriptions[ intFileIndex ] +
'</p>' +
'</div>' +
'</div>'
);
$.ajax( {
type: 'GET',
url: 'https://' + arrFileHost[ intFileIndex ] + '/down.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&code_highlighter&plain_text&view&pv=1',
success: function ( data ) {
var jqCodeContainer = $( '.modal_gallery_code_container', $jqSlideElem );
var jqCodeHighlightElem = $( 'pre code', jqCodeContainer );
jqCodeHighlightElem
.text( data )
.addClass( 'gallery2__item__base-width-on' );
// Forcing helper classname for highlight.js to properly detect syntax
let strHljsCodeClass;
switch ( arrExtensions[ intFileIndex ] )
{
case 'js':
strHljsCodeClass = 'language-javascript';
break;
case 'html':
strHljsCodeClass = 'language-xml';
break;
case 'cc':
case 'c':
case 'h':
strHljsCodeClass = 'language-cpp';
break;
case 'jsp':
strHljsCodeClass = 'language-java';
break;
case 'pl':
strHljsCodeClass = 'language-perl';
break;
case 'py':
strHljsCodeClass = 'language-python';
break;
case 'rb':
strHljsCodeClass = 'language-ruby';
break;
case 'sh':
strHljsCodeClass = 'language-bash';
break;
case 'vb':
strHljsCodeClass = 'language-vbnet';
break;
case 'php':
case 'cpp':
case 'css':
case 'java':
case 'json':
case 'xml':
case 'ini':
strHljsCodeClass = 'language-' + arrExtensions[ intFileIndex ];
break;
}
/*
If new extension has been added to FILE_TYPE_CODE, highlight.js won't fail,
it will try to determine to which file type the syntax looks most likely
(out of available types in compiled highlight.min.js script)
*/
if ( typeof( strHljsCodeClass ) !== 'undefined' )
{
jqCodeHighlightElem.addClass( strHljsCodeClass );
}
hljs.highlightElement( jqCodeHighlightElem[ 0 ] );
if ( ! false )
{
jqCodeHighlightElem.addClass( 'bx_allow_events' );
$( '*', jqCodeHighlightElem ).addClass( 'bx_allow_events' );
}
jqCodeContainer.show();
},
error: function () {
$( '#gallery2__item__code-wrapper__' + intFileIndex ).hide();
},
} );
};
fnLoadCode.apply( $jqSlideElem );
}
else
{
if (
arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& arrSizesInBytes[ intFileIndex ] < 50 * 1024 * 1024
&& arrUploadPassword[ intFileIndex ] == ''
&& arrAccessType[ intFileIndex ] == 'LINK'
)
{
var fnLoadIframe = function ()
{
$( this ).attr( 'disabled', 'disabled' );
var $jqSlideElem = $( this ).closest( ".gallery2__item" );
var intFileIndex = $jqSlideElem.attr( 'id' ).split( "-" ).slice( -1 )[ 0 ];
$jqSlideElem.prepend(
'<div class="gallery2__item__iframe-wrapper" id="gallery2__item__iframe-wrapper__' + intFileIndex + '">' +
'<div class="gallery2__item__iframe-loading">' +
'<span class="gallery2__vertical-helper"></span>' +
'<i class="fa fa-spinner fa-spin"></i>' +
'</div>' +
'<iframe src=""></iframe>' +
'</div>'
);
arrIframeTimers[ intFileIndex ] = setTimeout( function ()
{
$( '#gallery2__item__iframe-wrapper__' + intFileIndex ).hide();
}, 30000 );
if ( arrExtensions[intFileIndex] == "dwg" || arrExtensions[intFileIndex] == "dxf" )
{
$.ajax( {
type: "GET",
url: "/api/embed_urls.php",
data: {
'i': arrHashes[ intFileIndex ]
},
success: function ( data )
{
data = JSON.parse( data );
$( 'iframe', $jqSlideElem )
.attr( 'src', 'https://sharecad.org/cadframe/load?url='+data[ 'path_access_url' ] )
.attr( 'onload', 'clearTimeout( arrIframeTimers[ ' + intFileIndex + ' ] );' );
}
} );
}
else if ( arrExtensions[intFileIndex] == "rtf" || arrSizesInBytes[ intFileIndex ] > 10 * 1024 * 1024 )
{
$( 'iframe', $jqSlideElem )
.attr( 'src', 'https://docs.google.com/viewerng/viewer?embedded=true&url=https://api.files.fm/down.php?i=' + arrHashes[ intFileIndex ] + '&gpv=1' )
.attr( 'onload', 'clearTimeout( arrIframeTimers[ ' + intFileIndex + ' ] );' );
}
else
{
$( 'iframe', $jqSlideElem )
.attr( 'src', 'https://view.officeapps.live.com/op/embed.aspx?src=https://api.files.fm/down.php?i=' + arrHashes[ intFileIndex ] + '&gpv=1' )
.attr( 'onload', 'clearTimeout( arrIframeTimers[ ' + intFileIndex + ' ] );' );
}
$( 'iframe', $jqSlideElem )
.css({
'height': function(){
return '100%';
}
})
.addClass( 'gallery2__item__base-width-on' )
};
var jqPreviewButton = $( '<a />' ).attr( {
'href': 'javascript:void(0);',
'title': 'View',
'class': 'gallery2__item__doc-wrapper__download_button gallery2__save_button gallery2__item__doc-wrapper__download_button gallery2__preview_button'
} ).html( 'Preview this file' )
.click( function() {
if ( arrExtensions[intFileIndex] == "dwg" || arrExtensions[intFileIndex] == "dxf" )
{
showSignIn();
}
else
{
fnLoadIframe.apply( $jqSlideElem );
var jqDownloadButton = $( '<a />' ).attr( {
'href': 'javascript:void(0);',
'onclick': 'modalGalleryDownloadFileBtn( "' + arrHashes[ intFileIndex ] + '" )',
'title': 'Download',
'class': 'gallery2__item__doc-wrapper__download_button gallery2__save_button'
} ).html( 'Download original file' );
$( '.gallery2__item__information-wrapper', $jqSlideElem ).append( jqDownloadButton );
}
} )
$( '.gallery2__item__information-wrapper', $jqSlideElem ).append( jqPreviewButton );
}
}
$(".gallery2__item__custom_thumb" ).each(function()
{
var objBackground = getBackgroundSize(this);
if(objBackground.width>=$('#gallery2__image-wrapper').width())
{
objBackground.width=objBackground.width-20;
}
$(this).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( objBackground.width );
$(this).parent().siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( objBackground.width );
});
$("img").each(function()
{
var intImageWidth = $(this).width();
if(intImageWidth>=$('#gallery2__image-wrapper').width())
{
intImageWidth=intImageWidth-20;
}
$(this).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( intImageWidth );
});
$("iframe", ".gallery2__item__iframe-wrapper" ).each(function()
{
var intIframeWidth = $(this).width();
if(intIframeWidth>=$('#gallery2__image-wrapper').width())
{
intIframeWidth=intIframeWidth-20;
}
$(this).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( intIframeWidth );
});
$( '.modal_gallery_code_container', '.gallery2__item__code-wrapper' ).each( function ()
{
let intCodeContainerWidth = $( this ).width();
if( intCodeContainerWidth >= $( '#gallery2__image-wrapper' ).width() )
{
intCodeContainerWidth = intCodeContainerWidth - 20;
}
$( this ).siblings( '.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper' ).width( intCodeContainerWidth );
} );
break;
case 'video':
var bolThisVideoUseEmbedPlayer = false;
var strHtml = '';
strHtml += '<span class="gallery2__vertical-helper"></span>';
strHtml += '<div class="gallery2__video_container">';
if ( useEmbedPlayer( intFileIndex ) )
{
bolThisVideoUseEmbedPlayer = true;
}
strHtml += "<div class='gallery2__video_wrapper //'>";
if ( !arrFileAttributes[ intFileIndex ][ 'canDownload' ] && ( arrFileAttributes[ intFileIndex ][ 'isForSale' ] || currentFolderHasFeeDownload( intFileIndex ) ) && !arrFileAttributes[ intFileIndex ][ 'hasPreviewVideo' ] )
{
$jqSlideElem.append( '<span class="gallery2__vertical-helper">' );
$jqSlideElem.append( '<img src="/thumb_video_picture.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4">' );
var objVideoPlayBuyButton = $( '<span class="gallery2__video-play-button bx_allow_events">' );
if ( bolIsOwner )
{
objVideoPlayBuyButton.attr( 'onclick', 'showSetPriceFormModal( strCurrentFileHash )' );
}
else if ( currentFolderHasFeeDownload( intFileIndex ) )
{
if ( typeof arrParentHashes != 'undefined' )
{
objVideoPlayBuyButton.attr( 'onclick', 'showBuyFileFormModal( arrParentHashes[ getItemIndex ( strCurrentFileHash ) ], "folder" )' );
}
else if ( typeof strUploadHash != 'undefined' )
{
objVideoPlayBuyButton.attr( 'onclick', 'showBuyFileFormModal( strUploadHash, "folder" )' );
}
}
else
{
objVideoPlayBuyButton.attr( 'onclick', 'showBuyFileFormModal( strCurrentFileHash )' );
}
$jqSlideElem.append( objVideoPlayBuyButton );
break;
}
if ( bolThisVideoUseEmbedPlayer )
{
var strAutoload = 'off';
if ( arrExtensions[ intFileIndex ] == 'mp4' )
{
strAutoload = 'on';
}
strHtml += '<div class="gallery2__video_container__embed_palyer">';
strHtml += '<script type="text/javascript" src="/embed/playerv2?hash=' + arrHashes[ intFileIndex ] +
'&autoload=' + strAutoload + '&autoplay=off&w=auto&h=auto&poster_src=/thumb_video_picture.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4' +
'" ' +
'id="filesfm_embed_js__' + arrHashes[ intFileIndex ] + '"><' + '/script>';
strHtml += '</div>';
}
else
{
var strVideoSrc = 'https://' + arrFileHost[ intFileIndex ] + '/thumb_video/' + arrHashes[ intFileIndex ] + '' + strHttpCacheKey + '.mp4?v=1731871665&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
if (
(
arrExtensions[ intFileIndex ] == 'mp4'
|| arrMOVsWithH264Hashes.includes( arrHashes[ intFileIndex ] )
)
// If the video does not have a preview (0) or preview is being generated (2)
&& [ 0, 2 ].includes( arrFileAttributes[ intFileIndex ][ 'hasVideoThumb' ] )
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
)
{
// If the video does not have a preview
if ( ! arrFileAttributes[ intFileIndex ][ 'hasVideoThumb' ] )
{
// Send a request with an empty callback just to trigger generation of preview video
$.get( strVideoSrc, function() {} );
}
strVideoSrc = 'https://' + arrFileHost[ intFileIndex ] + '/down.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&pv=1&' + strHttpCacheKey + '.mp4';
}
strHtml += '<video playsinline id="video_' + arrHashes[ intFileIndex ] + '" preload="none">';
strHtml += '<div class="video_thumb_gen" style="visibility: hidden;" id="video_thumb_gen_' + arrHashes[ intFileIndex ] + '">Video preview is being created,<br /> please wait!<br /><br /><i class="fa fa-spin fa-spinner"></i></div>';
strHtml += '<source src="' + strVideoSrc + '" type="video/mp4" label="Preview" selected="true">';
if (
(
arrExtensions[ intFileIndex ] == 'mp4'
|| arrMOVsWithH264Hashes.includes( arrHashes[ intFileIndex ] )
)
&& arrFileAttributes[ intFileIndex ][ 'hasVideoThumb' ] == 1
)
{
var strOriginalVideoSrc = 'https://' + arrFileHost[ intFileIndex ] + '/down.php?i=' + arrHashes[ intFileIndex ] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&pv=1&' + strHttpCacheKey + '.mp4';
strHtml += '<source src="' + strOriginalVideoSrc + '" type="video/mp4" label="Original">';
}
strHtml += 'Your browser does not support the video tag.';
strHtml += '</video>';
strHtml += '<script type="text/javascript">';
strHtml += 'document.getElementById("video_' + arrHashes[ intFileIndex ] + '").addEventListener("error", function(){' +
' var me_ = this;' +
' if (me_.src.indexOf("' + arrHashes[ intFileIndex ] + '") === -1) return;' +
' last_video_src = me_.src;' +
' me_.src = "";' +
' setTimeout(function(){me_.src=last_video_src}, 2000);' +
' });';
strHtml += '<'+'/script>';
}
strHtml += "<div class='gallery2__video_wrapper_bottom'>";
strHtml += '</div>';
strHtml += "</div>";
strHtml += "</div>";
$jqSlideElem.append( strHtml );
if ( arrFileTypes[ intFileIndex ] === 'video' )
{
if ( !useEmbedPlayer( intFileIndex ) )
{
initVideoPlayer( intFileIndex );
}
}
break;
case 'audio':
if ( arrAllowDownload[ intFileIndex ] || ( false && arrFileAttributes[ intFileIndex ].hasPreviewVideo ) || arrFileAttributes[ intFileIndex ].readOnly || arrFileAttributes[ intFileIndex ].hasPreviewVideo ||
( typeof PublicProfile != 'undefined' && !(arrFeeDownloadPrice[intFileIndex] > 0 || currentFolderHasFeeDownload( intFileIndex ) )) )
{
var strAllHashes = '';
for ( var strHash in arrHashes )
{
strAllHashes += ',' + strHash;
}
if( objAudioPlayer === null || ( objAudioPlayer.getAllUploadFileHashes() !== strAllHashes ) )
{
if ( objAudioPlayer !== null )
{
objAudioPlayer.destroy();
objAudioPlayer = null;
}
objAudioPlayer = new AudioPlayer();
objAudioPlayer.loadTracksFromGlobalArrays();
if ( objMainShareParams != null && typeof( objMainShareParams['all_files'] ) !== 'undefined')
{
if ( typeof PublicProfile != 'undefined' && PublicProfile.openFolderDisplayName != '' )
{
objAudioPlayer.setPlayListTitle( PublicProfile.openFolderDisplayName );
}
else if ( typeof PublicProfile != 'undefined' && PublicProfile.strProfileName != '' )
{
objAudioPlayer.setPlayListTitle( PublicProfile.strProfileName );
}
else
{
objAudioPlayer.setPlayListTitle( strFolderName );
}
}
objAudioPlayer.setCurrentTrackByHash( arrHashes[ intFileIndex ] );
objAudioPlayer.setAllUploadFileHashes( strAllHashes );
objAudioPlayer.setIsPlayerForOneFile( arrHashes.length == 1 );
objAudioPlayer.getElem().addEventListener( 'audioTrackLoaded', function ( data )
{
var hash = data.detail.strHash;
if( arrHashes.indexOf( hash ) !== -1 && arrHashes[ intCurrentFileIndex ] !== hash )
{
galleryChangeLocation ( getItemLink( hash ) );
}
}
);
objAudioPlayer.getElem().addEventListener( 'audioTrackLikeChange', function ( data )
{
var hash = data.detail.track.strHash;
var bolState = data.detail.state;
var intFileIdx;
if ( strCurrentFileHash === hash )
{
intFileIdx = intCurrentFileIndex;
}
else
{
for ( var i in arrHashes )
{
if ( arrHashes.hasOwnProperty( i ) && arrHashes[ i ] === hash )
{
intFileIdx = +i;
break;
}
}
}
bolState ? arrVoteCounts[ intFileIdx ]++ : arrVoteCounts[ intFileIdx ]--;
arrHasVoted[ intFileIdx ] = bolState ? 1 : 0;
galleryUpdateVoteCount();
}
);
objAudioPlayer.getElem().addEventListener( 'audioTrackEnded', function ( data )
{
if ( bolGalleryIsVisible )
{
var intNextSlideIndex = intNextIndex;
if(intNextIndex == null || isNaN( intNextIndex ) && arrHashes[0] != null)
{
intNextSlideIndex = getItemIndex ( arrHashes[0] );
}
if ( intNextSlideIndex != null && !isNaN( intNextSlideIndex ) )
{
if (strSlideshowInterval === 'reset')
{
objAudioPlayer._isSlideshowOn = false;
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ) );
}
}
}
}
);
}
$jqSlideElem.append( "<span class=\"gallery2__vertical-helper\"></span>" );
var jqItemAudioWrapper = $( "<div class=\"gallery2__item__audio-wrapper\"></div>" );
jqItemAudioWrapper.appendTo( $jqSlideElem );
objAudioPlayer.appendTo( jqItemAudioWrapper );
}
else
{
var jqThumb = $( '<i />' ).addClass( 'fa-5x fa ' + arrIconClass[intFileIndex] );
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[ intFileIndex ] )
{
jqThumb = $( '<img />' ).attr('src', '/images/file_types_v2/' + arrIconSvg[ intFileIndex ]).addClass('ext-icon');
}
$jqSlideElem.append( '<span class="gallery2__vertical-helper"></span><span class="gallery2__item__doc-wrapper"></span>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( jqThumb );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( '<div class="gallery2__item__information-wrapper"><p class="gallery2__item__doc-filename">' + arrDisplayNames[intFileIndex] + '</p></div>' );
if( arrDescriptions[intFileIndex] )
{
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( '<div class="gallery2__item__desc-wrapper"><p class="gallery2__item__desc-wrapper-text">' + arrDescriptions[intFileIndex] + '</p></div>');
}
}
function updateAudioDescriptionWidth()
{
$('i, .audio_player ').each(function()
{
var intVideoWidth = $(this).outerWidth();
if(intVideoWidth>=$('#gallery2__image-wrapper').width())
{
intVideoWidth=intVideoWidth-20;
}
$(this).parent().find('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width(intVideoWidth);
});
}
updateAudioDescriptionWidth();
break;
case 'image-raw':
// Main container for file info/buttons/etc.
var $jqMainContainerHelper = $( '<span class="gallery2__vertical-helper"></span>' );
var $jqMainContainer = $( '<span class="gallery2__item__doc-wrapper"></span>' );
// Icon container
var $jqIconContainer = $( '<span class="gallery2__item__doc-icon ' + arrExtensions[ intFileIndex ].toLowerCase() + '"></span>' );
// File type icon
var $jqIcon = $('<i class="fa-5x fa ' + arrIconClass[ intFileIndex ] + '"></i>');
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[ intFileIndex ] )
{
$jqIcon = $( '<img />' ).attr('src', '/images/file_types_v2/' + arrIconSvg[ intFileIndex ]).addClass('ext-icon');
}
$jqIconContainer.append($jqIcon);
// Loading icon
var $jqLoadingIcon = $('<i class="fa-5x fa fa-spinner fa-spin"></i>').hide();
$jqIconContainer.append($jqLoadingIcon);
// Error icon
var $jqErrorIcon = $('<i class="fa-5x fa fa-times"></i>').hide();
$jqIconContainer.append($jqErrorIcon);
// Add the icon container to the main container
$jqMainContainer.append( $jqIconContainer );
// Filename
var $jqFileName = $( '<p class="gallery2__item__doc-filename">' + arrDisplayNames[ intFileIndex ] + '</p>' );
$jqMainContainer.append( $jqFileName );
// A container for buttons/actions
var $jqButtonContainer = $('<div />').css({'white-space': 'normal'});
// Download button
var $jqDownloadButton = $( '<a />' ).attr( {
'href': 'javascript:void(0);',
'onclick': 'modalGalleryDownloadFileBtn( "' + arrHashes[ intFileIndex ] + '" )',
'title': 'Download',
'class': 'gallery2__item__doc-wrapper__download_button gallery2__save_button'
} ).html( 'Download original file' );
// Add the download button to the button container
$jqButtonContainer.append( $jqDownloadButton );
// Holds the load image timeout
var intLoadImageTimeout;
// Holds the image
var $jqImg;
var fnLoadImageFailed = function()
{
clearTimeout(intLoadImageTimeout);
$jqImg.remove();
$jqIcon.hide();
$jqErrorIcon.show();
$jqLoadingIcon.hide();
}
var fnLoadImageSucceeded = function()
{
clearTimeout(intLoadImageTimeout);
$jqMainContainer.empty().append($jqImg);
}
var fnLoadImage = function()
{
$jqPreviewButton.hide();
$jqIcon.hide();
$jqErrorIcon.hide();
$jqLoadingIcon.show();
var strImageURL = 'https://'+ arrFileHost[ intFileIndex ] +'/thumb_show.php?i=' + arrHashes[intFileIndex] + '&view&v=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
if (arrFeeDownloadPrice[intFileIndex] > 0 || currentFolderHasFeeDownload( intFileIndex ) )
{
strImageURL += '&wm=103';
}
if ( typeof( arrFileVersion ) != 'undefined' && typeof( arrFileVersion[ intFileIndex ] ) != 'undefined' && arrFileVersion[ intFileIndex ] > 0 )
{
strImageURL += '&version=' + arrFileVersion[ intFileIndex ];
}
$jqImg = $('<img>').attr('src', strImageURL);
intLoadImageTimeout = setTimeout(function() {
fnLoadImageFailed();
}, 30000);
$jqImg.on('load', function()
{
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0)
{
fnLoadImageFailed();
} else {
fnLoadImageSucceeded();
}
});
}
var $jqPreviewButton = $( '<a />' );
$jqPreviewButton.attr( {
'href': 'javascript:void(0);',
'title': 'Download',
'class': 'gallery2__item__doc-wrapper__download_button gallery2__save_button gallery2__item__doc-wrapper__download_button gallery2__preview_button'
} );
$jqPreviewButton.css( "marginLeft", "0px" );
$jqPreviewButton.html( 'Preview this file' );
$jqPreviewButton.click( function() { fnLoadImage(); } );
$jqButtonContainer.append("<br />");
// Add the preview button to the button container
$jqButtonContainer.append( $jqPreviewButton );
// Add the buttons container to the main item info container
$jqMainContainer.append($jqButtonContainer);
// Add the helper and the main container to the DOM
$jqSlideElem.append( $jqMainContainerHelper );
$jqSlideElem.append( $jqMainContainer );
break;
case 'url' :
{
var jqThumb;
if ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] )
{
jqThumb = $( "<div>" ).css({
'background-image': 'url("/thumb.php?i=' + arrHashes[ intFileIndex ] + '&v=1")',
'height': function(){
}
})
.addClass( 'gallery2__item__custom_thumb gallery2__item__base-width-on' );
}
else
{
jqThumb = $( '<i />' ).addClass( 'fa-5x fa ' + arrIconClass[intFileIndex] );
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[ intFileIndex ] )
{
jqThumb = $( '<img />' ).attr('src', '/images/file_types_v2/' + arrIconSvg[ intFileIndex ]).addClass( 'gallery2__item__base-width-on ext-icon' );
}
}
if ( arrFeeDownloadPrice[intFileIndex] > 0 )
{
if (bolIsOwner)
{
jqThumb.attr( 'onclick', 'showSetPriceFormModal(strCurrentFileHash)' );
}
else
{
jqThumb.attr( 'onclick', 'showBuyFileFormModal(strCurrentFileHash)' );
}
jqThumb.addClass( 'bx_allow_events' );
jqThumb.addClass( 'has_price' );
}
$jqSlideElem.append( '<span class="gallery2__vertical-helper"></span><span class="gallery2__item__doc-wrapper' + ( arrFileAttributes[ intFileIndex ][ 'hasCustomThumb' ] ? ' has_custom_thumb' : '' ) + '"></span>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( jqThumb );
var jqButtonContainer = $('<div />').css({'white-space': 'normal'});
if ( arrFeeDownloadPrice[ intFileIndex ] == null && ! currentFolderHasFeeDownload( intFileIndex ) )
{
var $jqSlideElem = $( $jqSlideElem ).closest( ".gallery2__item" );
var intFileIndex = $jqSlideElem.attr( 'id' ).split( "-" ).slice( -1 )[ 0 ];
$jqSlideElem.prepend( '<div class="gallery2__item__iframe-wrapper" id="gallery2__item__iframe-wrapper__' + intFileIndex + '"><div class="gallery2__item__iframe-loading"><span class="gallery2__vertical-helper"></span><i class="fa fa-spinner fa-spin"></i></div><iframe class="gallery2__item__base-width-on" src=""></iframe><div class="gallery2__item__desc-wrapper"><p class="gallery2__item__desc-wrapper-text">' + arrDescriptions[intFileIndex] + '</p></div></div>' );
arrIframeTimers[ intFileIndex ] = setTimeout( function ()
{
$( '#gallery2__item__iframe-wrapper__' + intFileIndex ).hide();
}, 30000 );
$.get( 'https://'+ arrFileHost[ intFileIndex ] + '/down.php?i=' + arrHashes[ intFileIndex ] + '&gpv=1&view=1&truemimetype=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4', function( strFileContent )
{
$( 'iframe', $jqSlideElem )
.attr( 'src', strFileContent )
.attr( 'onload', 'clearTimeout( arrIframeTimers[ ' + intFileIndex + ' ] );' )
.css({
'height': function()
{
if ( arrDescriptions[intFileIndex] )
{
return 'calc( 100% - 60px )';
}
else
{
return 'calc( 100% - 60px )';
}
},
"background": "white",
})
} );
}
else
{
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( '<div class="gallery2__item__information-wrapper"><p class="gallery2__item__doc-filename">' + arrDisplayNames[intFileIndex] + '</p></div>' );
$( '.gallery2__item__doc-wrapper', $jqSlideElem ).append( '<div class="gallery2__item__desc-wrapper"><p class="gallery2__item__desc-wrapper-text">' + arrDescriptions[intFileIndex] + '</p></div>');
}
if( !arrDescriptions[intFileIndex] )
{
$('.gallery2__item__desc-wrapper', $jqSlideElem).hide();
}
function updateURLDescriptionWidth()
{
$(".gallery2__item__base-width-on" ).each(function() {
switch(this.tagName)
{
case 'IMG':
intElementWidth = $( this ).width();
break;
case 'DIV':
var objBackground = getBackgroundSize(this);
intElementWidth = objBackground.width;
break;
case 'IFRAME':
intElementWidth = $( this ).width();
break;
default:
intElementWidth = $( this ).width();
break;
}
if(intElementWidth>=$('#gallery2__image-wrapper').width())
{
intElementWidth=intElementWidth-20;
}
$(this).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( intElementWidth );
});
}
updateURLDescriptionWidth();
break;
}
}
if ( arrFileTypes[ intCurrentFileIndex ] !== 'audio' )
{
var jqPreviewButton = $( '<a />' ).attr( {
'href': 'javascript:void(0);',
'title': function() {
if (bolIsOwner)
{
return 'Sell';
}
else
{
return 'Buy';
}
},
'class': 'gallery2__buy_button',
'style': "display:none;"
} ).html( function(){
if ( arrFeeDownloadPrice[ intCurrentFileIndex ] )
{
return 'Buy (' + arrFeeDownloadPrice[ intCurrentFileIndex ] + ' $)';
}
else
{
return 'Buy';
}
} )
.click( function() {
if (bolIsOwner)
{
return showSetPriceFormModal(strCurrentFileHash);
}
else
{
return showBuyFileFormModal(strCurrentFileHash);
}
} )
$( '.gallery2__item__information-wrapper', $jqSlideElem ).append( jqPreviewButton );
}
if ($('.gallery2__item__information-wrapper', $jqSlideElem).find('.gallery2__preview_button').length<1)
{
var jqDownloadButton = $( '<a />' ).attr( {
'href': 'javascript:void(0);',
'onclick': 'modalGalleryDownloadFileBtn( "' + arrHashes[ intFileIndex ] + '" )',
'title': 'Download',
'class': 'gallery2__item__doc-wrapper__download_button gallery2__save_button'
} ).html( 'Download original file' );
$( '.gallery2__item__information-wrapper', $jqSlideElem ).append( jqDownloadButton );
}
$('a', $jqSlideElem).addClass( 'bx_allow_events' );
$('a', $jqSlideElem).find( "*" ).addClass( 'bx_allow_events' );
$('.gallery2__video_downloadbutton', $jqSlideElem).find( "*" ).addClass( 'bx_allow_events' );
$jqSlideElem.addClass( 'content_ready' );
}
function adjustDescriptionWidth()
{
var intElementWidth;
$(".gallery2__item__base-width-on").each(function()
{
switch(this.tagName)
{
case 'IMG':
case 'IFRAME':
intElementWidth = $( this ).width();
break;
case 'DIV':
var objBackground = getBackgroundSize(this);
intElementWidth = objBackground.width;
break;
default:
intElementWidth = $( this ).width();
break;
}
if(intElementWidth>=$('#gallery2__image-wrapper').width())
{
intElementWidth=intElementWidth-20;
}
$(this).siblings('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width( intElementWidth );
});
$('.vjs-poster, .filesfm__embed_player__container, .audio_player').each(function()
{
intElementWidth = $( this ).outerWidth();
if(intElementWidth>=$('#gallery2__image-wrapper').width())
{
intElementWidth=intElementWidth-20;
}
$(this).parent().parent().find('.gallery2__item__desc-wrapper, .gallery2__item__information-wrapper').width(intElementWidth);
});
}
adjustDescriptionWidth();
function resizeend()
{
adjustDescriptionWidth();
}
var intTimer;
window.addEventListener('resize', function()
{
clearTimeout(intTimer);
intTimer = setTimeout(resizeend, 300);
adjustDescriptionWidth();
checkThumbStripArrows();
});
function registerEmbedPlayerFileEventCallback( strFileHash, fncCallback )
{
var intEmbedPlayerFileIndex = getItemIndex ( strFileHash );
if ( intEmbedPlayerFileIndex !== null && typeof fncCallback === 'function' )
{
objEmbedPlayerFileEventCallback[ intEmbedPlayerFileIndex ] = fncCallback;
}
}
function callEmbedPlayerFileEventCallback( strEventCode, intFileIndex )
{
if ( typeof( objEmbedPlayerFileEventCallback[intFileIndex] ) === 'function' )
{
objEmbedPlayerFileEventCallback[intFileIndex]( strEventCode );
}
}
function galleryOpenPrevItem()
{
if ( intPreviousIndex != null && !isNaN( intPreviousIndex ))
{
galleryChangeLocation ( getItemLink ( arrHashes[intPreviousIndex] ) );
adjustDescriptionWidth();
}
}
function galleryOpenNextItem()
{
if ( bolGalleryIsVisible && intNextIndex != null && !isNaN( intNextIndex ))
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextIndex] ) );
adjustDescriptionWidth();
}
}
var resThumbLoadTimeout;
function gallerySelectThumb( intItemIndex )
{
if ( bolGalleryIsVisible && bolGalleryInitalizedState < 1 )
{
// If dom not loaded yet, wait for it to load.
setTimeout('gallerySelectThumb( '+ intItemIndex +' )', 100);
return;
}
if (jqThumbViewport == null)
{
jqThumbViewport = $('#gallery2__thumb-strip');
}
var intViewportWidthPx = jqThumbViewport.width();
if (jqThumbContainer == null)
{
jqThumbContainer = $('#gallery2__thumb-strip__inner');
}
var jqThumb = $('A.thumb_' + arrHashes[intItemIndex], jqThumbContainer);
function onThumbReady()
{
var intThumbPossitionLeftPx = jqThumb.position().left;
// If scrollable on mobile
if (jqThumbViewport.css('overflow-x')=='auto')
{
var intThumbPossitionLeftPx = jqThumb[0].offsetLeft;
var intThumbOffsetLeftPx = galleryCalculateOffset(jqThumb[0]).left;
var intScrollLeft = jqThumbViewport.scrollLeft();
var jqThImg = $('IMG', jqThumb);
var intThisThumbWidth = intThumbWidth;
if ( intThisThumbWidth < intThumbWidth )
intThisThumbWidth = intThumbWidth;
if ( intThumbOffsetLeftPx + intScrollLeft > intViewportWidthPx + intScrollLeft - intThisThumbWidth )
{
jqThumbViewport.scrollLeft( intThumbOffsetLeftPx + intScrollLeft - intViewportWidthPx + intThisThumbWidth );
}
else if (intThumbOffsetLeftPx < 0)
{
jqThumbViewport.scrollLeft( intThumbPossitionLeftPx );
}
}
else
{
var intThumbOffsetLeftPx = jqThumb.offset().left;
var jqThumbStrip = $('#gallery2__thumb-strip');
var jqThumbStripInner = $('#gallery2__thumb-strip__inner');
var intThumbWidthSum = 0;
$('A', jqThumbStripInner).each(function (){
intThumbWidthSum += $(this).width();
});
var bolThumbsAreOutside = false;
if (
jqThumbStrip.width() <= intThumbWidthSum
)
{
bolThumbsAreOutside = true;
}
if ( $( '#gallery2' ).hasClass( 'gallery__sidebar-visible' ) )
{
intThumbOffsetLeftPx = intThumbOffsetLeftPx -360;
}
if ( ! bolThumbsAreOutside )
{
jqThumbContainer.css({'left': '0px'});
}
else
{
// If outside viewport
// If outside to the right
if ( intThumbOffsetLeftPx < 0 )
{
var jqThImg = $('IMG', jqThumb);
var intThisThumbWidth = intThumbWidth;
if ( intThisThumbWidth < intThumbWidth )
intThisThumbWidth = intThumbWidth;
var intSetLeftPx = (-1*intThumbPossitionLeftPx + intThisThumbWidth );
if (intSetLeftPx > 0)
{
jqThumbContainer.css({'left': 0});
}
else
{
jqThumbContainer.css({'left': intSetLeftPx + 'px'});
};
}
// else - outside to left
else if ( intThumbOffsetLeftPx > intViewportWidthPx - 360 )
{
var jqThImg = $('IMG', jqThumb);
var intThisThumbWidth = intThumbWidth;
if ( intThisThumbWidth < intThumbWidth )
intThisThumbWidth = intThumbWidth;
var intSetLeftPx = -1*intThumbPossitionLeftPx + intViewportWidthPx - intThisThumbWidth - intThumbWidth;
if (parseInt($('#gallery2__image-wrapper').width()) - parseInt($('#gallery2__thumb-strip__inner').width()) > intSetLeftPx)
{
jqThumbContainer.css({'left': parseInt($('#gallery2__image-wrapper').width()) - parseInt($('#gallery2__thumb-strip__inner').width())})
}
else
{
jqThumbContainer.css({'left': intSetLeftPx + 'px'});
};
}
}
checkThumbStripArrows();
}
$('A.active', jqThumbContainer).removeClass('active');
jqThumb.addClass('active');
setTimeout("checkThumbStripArrows()", 500);
setTimeout("galleryLazyloadRecalc()", 500);
}
if ( $('IMG', jqThumb).length===0 || ( $('IMG', jqThumb)[0].complete && $('IMG', jqThumb).attr('src')===$('IMG', jqThumb).attr('data-original') ) )
{
onThumbReady();
}
else
{
$('IMG', jqThumb).on('load', function (){
if ($(this).attr('src') === $(this).attr('data-original'))
{
onThumbReady();
}
});
var intElementIndex = jqThumb.index();
if (jqThumbViewport.css('overflow-x') == 'auto')
{
jqThumbViewport.scrollLeft(intElementIndex * intThumbWidth);
}
else
{
jqThumbContainer.css({'left': (-1 * (intElementIndex + 2) * intThumbWidth) + 'px'});
}
galleryLazyloadRecalc();
setTimeout( function (){ galleryLazyloadRecalc(); }, 1000);
setTimeout( function (){ galleryLazyloadRecalc(); }, 5000);
}
}
function closeGallery(strScrollHash)
{
if ( ! bolGalleryIsVisible )
return;
$( 'html' ).css( 'overflow', 'auto' );
$( '#gallery2' ).fadeOut( 'fast' );
$('#gallery_panzoomdiv').css('display', 'none');
$('#gallery2__content-wrapper').removeClass( 'gallery__only_image' );
$('#gallery2__content-wrapper').removeClass( 'gallery__is_image' );
exitSlideshow();
if(bolPopupOnlyGallery)
{
hideModal( 'popup_form' );
}
if ( strGalleryCloseHashtag )
{
window.location.hash = strGalleryCloseHashtag;
}
else
{
if ( window.location.href.indexOf( "filebrowser" ) !== -1 )
{
var intIndexOfView = window.location.hash.indexOf(';/view/');
if (intIndexOfView == -1)
{
intIndexOfView = window.location.hash.indexOf('/view/');
if (intIndexOfView == -1)
{
intIndexOfView = window.location.hash.length;
}
}
history.replaceState( null, '', ('' + window.location).split('#')[0] + window.location.hash.slice(0, intIndexOfView))
}
else
{
}
}
bolGalleryIsVisible = false;
strCurrentFileHash = null;
stopActiveContent();
if ($('#share_popup').is(":visible"))
{
hideSharePopup();
}
if ( typeof window.FileEmbedPopup !== 'undefined' )
{
window.FileEmbedPopup.hidePopup();
}
if ( strActiveCommentsEntityHash != "" ) {
ChatFM.resetChat();
strActiveCommentsEntityHash = "";
}
if ( window.location.pathname.indexOf('/u/') === -1 )
{
history.replaceState(null, '', '/' + strScriptURL + '/u/' + PublicProfile.openFolderHash);
document.title = ( PublicProfile.openFolderDisplayName ? PublicProfile.openFolderDisplayName + ' – ' : '' ) + 'davidarida385' ;
}
if($("#item_"+strScrollHash).length)
{
if ( window.location.href.indexOf( "filebrowser" ) !== -1 )
{
var myElem = document.getElementById("item_"+strScrollHash);
let topOffset = myElem.getBoundingClientRect().top;
while (myElem != document.documentElement) {
myElem = myElem.parentElement;
topOffset += myElem.scrollTop;
}
$(".main_content").animate({scrollTop: topOffset - $(".main_content").height() / 2});
}
else
{
$(document.body).animate({
scrollTop: $("#item_"+strScrollHash).offset().top - window.innerHeight / 2
}, 1000);
}
$("#item_"+strScrollHash).addClass('active-hover');
}
if($('.hide-not-selected').length && typeof showSelectedFiles === 'function')
{
showSelectedFiles();
}
}
function nextSlide()
{
if ( bolGalleryIsVisible )
{
var intNextSlideIndex = intNextIndex;
if(intNextIndex == null || isNaN( intNextIndex ) && arrHashes[0] != null)
{
intNextSlideIndex = getItemIndex ( arrHashes[0] );
}
if ( intNextSlideIndex != null && !isNaN( intNextSlideIndex ) )
{
if(arrFileTypes[intNextSlideIndex] == 'image')
{
var domImg = document.getElementById('main_image_'+ arrHashes[intNextSlideIndex]);
if( domImg !== null )
{
if ( domImg.complete )
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
}
else
{
clearInterval(strSlideshowInterval);
strSlideshowInterval = null;
domImg.onload = function () {
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
if (!strSlideshowInterval)
{
strSlideshowInterval = setInterval(nextSlide, 4000);
}
}
}
}
else
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
}
}
else if ( arrFileTypes[intNextSlideIndex] == 'video' )
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
}
else if ( arrFileTypes[intNextSlideIndex] == 'audio' )
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
}
else
{
galleryChangeLocation ( getItemLink ( arrHashes[intNextSlideIndex] ), true );
}
}
}
}
function pauseSlideshow()
{
$('#gallery2__content-wrapper').addClass( 'gallery__slideshow_paused' );
clearInterval(strSlideshowInterval);
strSlideshowInterval = null;
}
function resumeSlideshow()
{
$('#gallery2__content-wrapper').removeClass( 'gallery__slideshow_paused' );
if (!strSlideshowInterval)
{
strSlideshowInterval = setInterval(nextSlide, 4000);
}
}
function exitSlideshow()
{
pauseSlideshow();
$('#gallery2__content-wrapper').removeClass( 'gallery__slideshow_paused' );
$('#gallery2__content-wrapper').removeClass( 'gallery__slideshow' );
if (!((document.fullScreenElement !== undefined && document.fullScreenElement === null) || (document.msFullscreenElement !== undefined && document.msFullscreenElement === null) || (document.mozFullScreen !== undefined && !document.mozFullScreen) || (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)))
{
galleryToggleFullScreen(document.body)
}
}
function enterSlideshow()
{
if($( '#gallery2__content' ).hasClass( 'gallery__sidebar-visible' ) )
{
showGalleryInfo();
$(window).trigger('resize');
}
$('#gallery2__content-wrapper').addClass( 'gallery__slideshow' );
galleryToggleFullScreen(document.body)
resumeSlideshow();
if (bolActivateSlideshowOnOpenPaused)
{
pauseSlideshow();
}
if (bolHideCloseButton)
{
$('.gallery2__header__close').hide();
}
}
function removeActiveClass()
{
$('#gallery2__content-wrapper').removeClass( 'gallery__slideshow_user_active' );
}
function showGalleryInfo()
{
var $gallery_content = $( '#gallery2__content' );
if( $gallery_content.hasClass( 'gallery__sidebar__info-visible' ) && $gallery_content.hasClass( 'gallery__sidebar-visible' ) )
{
bolGallerySidebarVisible = false;
bolGalleryCommentsVisible = false;
$gallery_content.removeClass( 'gallery__sidebar-visible' );
$( '#gallery2' ).removeClass( 'gallery__sidebar-visible' );
}
else
{
$gallery_content.removeClass( 'gallery__sidebar__comments-visible' ).addClass( 'gallery__sidebar__info-visible' );
if( !$gallery_content.hasClass( 'gallery__sidebar-visible' ) )
{
$gallery_content.addClass( 'gallery__sidebar-visible' );
$( '#gallery2' ).addClass( 'gallery__sidebar-visible' );
}
bolGallerySidebarVisible = true;
galleryLoadFileInfo();
}
adjustContentWidth(true);
loadGalleryInfoAd();
}
function showGalleryMessages()
{
$( '#gallery2__content' ).addClass( 'gallery__sidebar__comments-visible' ).addClass( 'gallery__sidebar__info-visible' );
}
function hideGalleryMessages()
{
$( '#gallery2__content' ).removeClass( 'gallery__sidebar__comments-visible' ).addClass( 'gallery__sidebar__info-visible' );
}
var bolGalleryInfoAdLoaded = false;
function loadGalleryInfoAd()
{
if ( bolGalleryInfoAdLoaded ) return;
if ( typeof fncDynamicLoadBanner_gallery2__sidebar__banner == 'function' )
{
fncDynamicLoadBanner_gallery2__sidebar__banner();
}
bolGalleryInfoAdLoaded = true;
}
function hideSidebar()
{
$( '#gallery2__content' ).removeClass( 'gallery__sidebar-visible' );
$( '#gallery2' ).removeClass( 'gallery__sidebar-visible' );
bolGallerySidebarVisible = false;
bolGalleryCommentsVisible = false;
adjustContentWidth(true);
}
function toggleThumbs()
{
$( '#gallery2__content' ).toggleClass( 'gallery__thumbs-visible' );
// fire resize event after transition, so audio player knows to resize
if( typeof objAudioPlayer !== "undefined" )
{
setTimeout( function() {
var evt = document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false,window,0);
window.dispatchEvent(evt);
}, 300 );
}
}
function hideThumbs()
{
$( '#gallery2__content' ).removeClass( 'gallery__thumbs-visible' );
$( '#gallery2__thumb-strip__hide_container' ).hide();
}
function showThumbs()
{
$( '#gallery2__content' ).addClass( 'gallery__thumbs-visible' );
$( '#gallery2__thumb-strip__hide_container' ).show();
}
function getItemLink ( strHash )
{
var intIndex = null;
for (idx in arrIDs)
{
if (arrHashes[idx] == strHash)
{
intIndex = idx;
break;
}
}
return '/f/' + arrHashes[intIndex];
var strHashtag = window.location.hash;
var intIndexOfView = strHashtag.indexOf(';/view/');
if (intIndexOfView != -1)
{
strHashtag = strHashtag.slice(0, intIndexOfView);
}
else
{
var intIndexOfView = strHashtag.indexOf('/view/');
if (intIndexOfView != -1)
{
strHashtag = strHashtag.slice(0, intIndexOfView);
}
}
var intIndexOfDelimiter = strHashtag.indexOf(';/view/');
if (intIndexOfDelimiter != -1)
{
strHashtag = strHashtag.slice(0, intIndexOfDelimiter);
}
strHashtag = strHashtag + ( bolHashtagViewUseSemicolon ? ';' : '') + '/view/' + arrHashes[intIndex];
return strHashtag;
}
function getItemIndex ( strHash )
{
var intIndex = null;
for (idx in arrIDs)
{
if (arrHashes[idx] == strHash)
{
intIndex = idx;
break;
}
}
return intIndex;
}
function getItemIndexByHashOrName ( strHashOrName )
{
if( typeof arrHashes === "undefined" )
{
return null;
}
// edit: before comparisons, urldecode both strings
strHashOrName = decodeURIComponent( strHashOrName.replace( /\+/g, ' ' ) );
var intIndex = null;
for (idx in arrHashes)
{
if ( decodeURIComponent( arrHashes[ idx ].replace( /\+/g, ' ' ) ) === strHashOrName )
{
intIndex = idx;
break;
}
}
if ( intIndex === null )
{
var intIndex = null;
for (idx in arrNames)
{
if ( decodeURIComponent( arrNames[ idx ].replace( /\+/g, ' ' ) ) === strHashOrName )
{
intIndex = idx;
break;
}
}
}
return intIndex;
}
function getNextIndex ( strHash )
{
var intIndex = null;
var intNextIndex = null;
for (idx in arrIDs)
{
if ( intIndex !== null )
{
intNextIndex = idx;
break;
}
if (arrHashes[idx] == strHash)
{
intIndex = idx;
}
}
return parseInt(intNextIndex);
}
function getPreviousIndex ( strHash )
{
var intPreviousIndex = null;
for (idx in arrIDs)
{
if (arrHashes[idx] == strHash)
{
break;
}
else
{
intPreviousIndex = idx;
}
}
return parseInt(intPreviousIndex);
}
function preloadImage ( intIndex )
{
if (typeof arrIsPreloaded == 'undefined')
arrIsPreloaded = {};
if (typeof arrIsPreloaded[intIndex] == 'undefined')
arrIsPreloaded[intIndex]
if ( arrFileTypes[intIndex] == 'image' && arrIsPreloaded[intIndex] != true )
{
var strHash = arrHashes[intIndex];
var strImageURL = 'https://'+ arrFileHost[ intIndex ] +'/thumb_show.php?i=' + strHash + '&view&v=1&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
if (arrFeeDownloadPrice[intIndex] > 0 || currentFolderHasFeeDownload( intIndex ) )
{
strImageURL += '&wm=103';
}
if ( typeof( arrFileVersion ) != 'undefined' && typeof( arrFileVersion[ intIndex ] ) != 'undefined' && arrFileVersion[ intIndex ] > 0 )
{
strImageURL += '&version=' + arrFileVersion[ intIndex ];
}
$("<img />").attr("src", strImageURL);
arrIsPreloaded[intIndex] = true;
}
}
function preloadFileInfoData( intIndex )
{
if ( ! bolUseAsyncFileInfoDataLoad )
{
return false;
}
if ( typeof arrIsFileInfoDataPreloaded == 'undefined' )
{
arrIsFileInfoDataPreloaded = [];
}
if ( ! arrIsFileInfoDataPreloaded[ intIndex ] )
{
var strHash = arrHashes[ intIndex ];
$.ajax( {
type : "POST",
dataType : "json",
url : "./ajax/modal_gallery/get_file_info_data.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data :
{
'hash' : strHash
} ,
success : function( arrResponse )
{
if ( arrResponse[ 'success' ] )
{
var arrFileInfoData = arrResponse[ 'data' ];
if ( typeof arrFileTitle == 'undefined' ) arrFileTitle = [];
if ( typeof arrFileSubject == 'undefined' ) arrFileSubject = [];
if ( typeof arrFileContentType == 'undefined' ) arrFileContentType = [];
if ( typeof arrFileCategory == 'undefined' ) arrFileCategory = [];
if ( typeof arrFileCategories == 'undefined' ) arrFileCategories = [];
if ( typeof arrFileKeywords == 'undefined' ) arrFileKeywords = [];
if ( typeof arrFileCreator == 'undefined' ) arrFileCreator = [];
if ( typeof arrFilePublisher == 'undefined' ) arrFilePublisher = [];
if ( typeof arrFileContributor == 'undefined' ) arrFileContributor = [];
if ( typeof arrFileCopyrights == 'undefined' ) arrFileCopyrights = [];
if ( typeof arrFileLicenseType == 'undefined' ) arrFileLicenseType = [];
if ( typeof arrFileLicenseDetails == 'undefined' ) arrFileLicenseDetails = [];
if ( typeof arrFileLanguage == 'undefined' ) arrFileLanguage = [];
if ( typeof arrFileLocation == 'undefined' ) arrFileLocation = [];
if ( typeof arrFileLocationLat == 'undefined' ) arrFileLocationLat = [];
if ( typeof arrFileLocationLong == 'undefined' ) arrFileLocationLong = [];
if ( typeof arrFileReferences == 'undefined' ) arrFileReferences = [];
if ( typeof arrFileRelatesTo == 'undefined' ) arrFileRelatesTo = [];
if ( typeof arrFileFormat == 'undefined' ) arrFileFormat = [];
if ( typeof arrFileDevice == 'undefined' ) arrFileDevice = [];
if ( typeof arrFileSource == 'undefined' ) arrFileSource = [];
if ( typeof arrTags == 'undefined' ) arrTags = [];
if ( typeof arrObjectTags == 'undefined' ) arrObjectTags = [];
if ( typeof arrYoloObjectTags == 'undefined' ) arrYoloObjectTags = [];
if ( typeof arrLabelTags == 'undefined' ) arrLabelTags = [];
if ( typeof arrFileGoogleCVText == 'undefined' ) arrFileGoogleCVText = [];
if ( typeof arrFileEasyOCRText == 'undefined' ) arrFileEasyOCRText = [];
if ( typeof arrFileAudioTranscription == 'undefined' ) arrFileAudioTranscription = [];
arrFileTitle[ intIndex ] = arrFileInfoData[ 'title' ];
arrFileSubject[ intIndex ] = arrFileInfoData[ 'subject' ];
arrFileContentType[ intIndex ] = arrFileInfoData[ 'contentType' ];
arrFileCategory[ intIndex ] = arrFileInfoData[ 'category' ];
arrFileCategories[ intIndex ] = arrFileInfoData[ 'categories' ];
arrFileKeywords[ intIndex ] = arrFileInfoData[ 'keywords' ];
arrFileCreator[ intIndex ] = arrFileInfoData[ 'creator' ];
arrFilePublisher[ intIndex ] = arrFileInfoData[ 'publisher' ];
arrFileContributor[ intIndex ] = arrFileInfoData[ 'contributor' ];
arrFileCopyrights[ intIndex ] = arrFileInfoData[ 'copyrights' ];
arrFileLicenseType[ intIndex ] = arrFileInfoData[ 'licenseType' ];
arrFileLicenseDetails[ intIndex ] = arrFileInfoData[ 'licenseDetails' ];
arrFileLanguage[ intIndex ] = arrFileInfoData[ 'language' ];
arrFileLocation[ intIndex ] = arrFileInfoData[ 'location' ];
arrFileLocationLat[ intIndex ] = arrFileInfoData[ 'locationLat' ];
arrFileLocationLong[ intIndex ] = arrFileInfoData[ 'locationLong' ];
arrFileReferences[ intIndex ] = arrFileInfoData[ 'references' ];
arrFileRelatesTo[ intIndex ] = arrFileInfoData[ 'relatesTo' ];
arrFileFormat[ intIndex ] = arrFileInfoData[ 'format' ];
arrFileDevice[ intIndex ] = arrFileInfoData[ 'device' ];
arrFileSource[ intIndex ] = arrFileInfoData[ 'source' ];
arrTags[ intIndex ] = arrFileInfoData[ 'tags' ];
arrObjectTags[ intIndex ] = arrFileInfoData[ 'objectTags' ];
arrYoloObjectTags[ intIndex ] = arrFileInfoData[ 'yoloObjectTags' ];
arrLabelTags[ intIndex ] = arrFileInfoData[ 'labelTags' ];
arrFileGoogleCVText[ intIndex ] = arrFileInfoData[ 'googleCVText' ];
arrFileEasyOCRText[ intIndex ] = arrFileInfoData[ 'easyOCRText' ];
arrFileAudioTranscription[ intIndex ] = arrFileInfoData[ 'audioTranscription' ];
arrIsFileInfoDataPreloaded[ intIndex ] = true;
}
} ,
error : function() { }
} );
}
}
function checkBeforeContentChange ()
{
intNextIndex = getNextIndex ( strCurrentFileHash );
intPreviousIndex = getPreviousIndex ( strCurrentFileHash );
if ( intNextIndex != null && !isNaN( intNextIndex ) )
{
$('#gallery2__controls_right').show();
}
else
{
$('#gallery2__controls_right').hide();
}
if ( intPreviousIndex != null && !isNaN( intPreviousIndex ) )
{
$('#gallery2__controls_left').show();
}
else
{
$('#gallery2__controls_left').hide();
}
}
function useEmbedPlayer( intFileIndex )
{
var bolUseEmbedPlayerForThisFiles = false;
if ( arrFileAttributes[ intFileIndex ][ 'readOnly' ] )
{
bolUseEmbedPlayerForThisFiles = true;
}
else if (
typeof ( bolUseEmbedPlayer ) == 'boolean'
&& bolUseEmbedPlayer
&& typeof ( bolIsAnonymousUpload ) == 'boolean'
&& arrFeeDownloadPrice[ intFileIndex ] == null
&& ! currentFolderHasFeeDownload( intFileIndex )
&& arrAllowDownload[ intFileIndex ]
&& arrAllowPublicDownload[ intFileIndex ]
)
{
if ( ( [ 'm4a', 'webm', 'ogg' ] ).indexOf( arrExtensions[ intFileIndex ] ) !== -1 )
{
bolUseEmbedPlayerForThisFiles = true;
}
else if ( arrExtensions[ intFileIndex ] == 'mp4' )
{
if ( arrViews[ intFileIndex ] < 1000 )
{
bolUseEmbedPlayerForThisFiles = false;
}
else
{
bolUseEmbedPlayerForThisFiles = true;
}
}
}
return bolUseEmbedPlayerForThisFiles;
}
function checkAfterContentChange ()
{
if ( ! intNextIndex )
{
intNextIndex = getNextIndex ( strCurrentFileHash );
}
if ( ! intPreviousIndex )
{
intPreviousIndex = getPreviousIndex ( strCurrentFileHash );
}
if ( intNextIndex != null && !isNaN( intNextIndex ) )
{
$('#gallery2__controls_right').show();
}
else
{
$('#gallery2__controls_right').hide();
}
if ( intPreviousIndex != null && !isNaN( intPreviousIndex ) )
{
$('#gallery2__controls_left').show();
}
else
{
$('#gallery2__controls_left').hide();
}
// do preloading
for (var int=0; int<intPreloadImagesCount; int++)
{
var intPrev = intPreviousIndex - int;
if (intPrev >= 0)
{
if ( arrFileTypes[intPrev] == 'image' )
{
setTimeout('preloadImage ('+intPrev+')',300);
}
}
var intNext = intNextIndex + int;
if (intNext < arrHashes.length)
{
if ( arrFileTypes[intNext] == 'image' )
{
setTimeout('preloadImage ('+intNext+')',300);
}
}
}
for ( var int = 0; int < intPreloadFileInfoDataCount; int++ )
{
var intPrev = intPreviousIndex - int;
if ( intPrev >= 0 )
{
setTimeout( 'preloadFileInfoData(' + intPrev + ')', 300 );
}
var intNext = intNextIndex + int;
if ( intNext < arrHashes.length )
{
setTimeout( 'preloadFileInfoData(' + intNext + ')', 300 );
}
}
}
function galleryToggleFullScreen(elem)
{
if ((document.fullScreenElement !== undefined && document.fullScreenElement === null) || (document.msFullscreenElement !== undefined && document.msFullscreenElement === null) || (document.mozFullScreen !== undefined && !document.mozFullScreen) || (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)) {
if (elem.requestFullScreen) {
elem.requestFullScreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullScreen) {
elem.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
function updateFileDescription()
{
$('#file_description_edit_wrapper').removeClass('has_error');
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_info.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'update_file_description': true ,
'file_hash' : strCurrentFileHash ,
'file_description' : $('#file_description_edit_wrapper textarea').val()
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrDescriptions[intItemIndex] = $('#file_description_edit_wrapper textarea').val();
}
else
{
$('#file_description_edit_wrapper').addClass('has_error');
}
} ,
error: function()
{
$('#file_description_edit_wrapper').addClass('has_error');
}
});
}
function updateFileName()
{
$('#file_name_edit_wrapper').removeClass('has_error');
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/file_info.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data:
{
'without_extension': 1 ,
'update_file_name': true ,
'file_hash' : strCurrentFileHash ,
'file_name' : $('#file_name_edit_wrapper textarea').val()
} ,
success: function(data)
{
if (data['status'] == 'ok')
{
var intItemIndex = getItemIndex(strCurrentFileHash);
arrDisplayNames[intItemIndex] = $('#file_name_edit_wrapper textarea').val();
$('.gallery2__header__file_name_value').html(arrDisplayNames[intItemIndex]);
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__doc-filename' ).html(arrDisplayNames[intItemIndex]);
}
else
{
$('#file_name_edit_wrapper').addClass('has_error');
}
} ,
error: function()
{
$('#file_name_edit_wrapper').addClass('has_error');
}
});
}
function showOrginal(strCurrentFileHash)
{
var intFileIndex = getItemIndexByHashOrName( strCurrentFileHash );
window.open('https://'+ arrFileHost[ intFileIndex ] +'/down.php?i='+ strCurrentFileHash +'&view&n=' + arrDisplayNames[ intFileIndex ], '_blank');
}
function adjustContentWidth (bolOnResize)
{
var intGalleryHeight = $('#gallery2').height();
var intGalleryWidth = $('#gallery2').width();
var intImageWrapperWidth = intGalleryWidth;
var intThumbStripWidth = intGalleryWidth;
var intGalleryHeaderWidth = intGalleryWidth;
var intBannerInnerPaddingTop = 0;
var intBannerWidth = 0;
var intBannerHeight = 0;
var intLeftSideWidth = 0;
if ( bolGallerySidebarVisible || bolGalleryCommentsVisible )
{
intLeftSideWidth = 360;
}
if (intGalleryWidth >= 800 && intGalleryHeight >= 600)
{
if (intGalleryHeight > ( 600 + 196 + 95 ) )
{
intBannerInnerPaddingTop = ( (intGalleryHeight - 600 - 196 - 95) / 2 ) + 196;
}
else
{
intThumbStripWidth = intImageWrapperWidth;
if (intGalleryHeight < (600 + 196) )
{
intGalleryHeaderWidth = intImageWrapperWidth;
intBannerInnerPaddingTop = 0;
}
else
{
intBannerInnerPaddingTop = 196;
}
}
}
else
{
intBannerWidth = 0;
}
intImageWrapperWidth = intGalleryWidth - intBannerWidth - intLeftSideWidth;
$('#gallery2__image-wrapper').width(intImageWrapperWidth + 'px');
$('#gallery2__thumb-strip').width(intThumbStripWidth + 'px');
$('#gallery2__banner__inner').css('padding-top', intBannerInnerPaddingTop +'px');
$('#gallery2__header').width(intGalleryHeaderWidth +'px');
if (bolOnResize)
{
jqMainSlider.redrawSlider();
}
if ( arrFileTypes[ intCurrentFileIndex ] === "video" )
{
if ( !useEmbedPlayer( intCurrentFileIndex ) )
{
var $video = $( "#video_" + arrHashes[ intCurrentFileIndex ] );
if( $video.length)
{
fitVideoPlayer( $video );
}
}
}
}
function repositionHeartButton ()
{
if ( ! jqMainSlider )
return;
if ( strCurrentFileHash !== arrHashes[ jqMainSlider.getCurrentSlide() ] )
return;
var jqImage = $('#main_image_' + arrHashes[ jqMainSlider.getCurrentSlide() ]);
if ( jqImage.length )
{
var objImgPosition = jqImage.offset();
$('#vote_heart_on_image').css({
top: (jqImage[0].y + jqImage.height() -110) + 'px',
left: (objImgPosition.left + jqImage.width() -50) + 'px'
});
if ( jqImage.attr('data-image-loaded') )
{
$('#vote_heart_on_image').show();
}
}
}
function recalculateGalleryForBanner(bolOnResize)
{
return adjustContentWidth (bolOnResize);
}
function modalGalleryDownloadFileP2PBtn( intItemIndex )
{
if ( typeof(bolHideDownloadButtons) !== 'undefined' && bolHideDownloadButtons )
{
return;
}
if ( ! bolIsListViewForSpecificFile )
{
window.location = '/f/' + arrHashes[ intItemIndex ] + '?start_p2p_download';
}
else
{
if (
typeof ( objWebTorrentDownloadForm ) === 'object'
&& arrFeeDownloadPrice[ intItemIndex ] == null
&& ! currentFolderHasFeeDownload( intItemIndex )
&& arrAllowDownload[ intItemIndex ]
&& ( arrAccessType[ intItemIndex ] === 'LINK' || arrAccessType[ intItemIndex ] === 'PUBLIC' )
&& arrUploadPassword[ intItemIndex ] === ''
&& arrAllowPublicDownload[ intItemIndex ]
)
{
var strFileExtension = arrExtensions[ intItemIndex ];
var arrExecutableExtensions = ['exe','com','dll','pif','scr','bat','bin','pl','sh','scf','sct','shs','vb','lnk','jnlp','apk','vbs','js','msi','jse','jar','dmg','bin','wsf'];
if ( arrExecutableExtensions.indexOf( strFileExtension ) === -1 )
{
objWebTorrentDownloadForm.showForm( 'file', arrHashes[ intItemIndex ] );
}
else
{
fConfirm( 'This file was checked with antivirus on the serverside, but executable files may contain potentially dangerous code that antivirus software is yet unable to detect. Use it only if you trust the sender. If not sure, use Virustotal.com to double-check. Do you want to save this file?', '', 'OK', 'Cancel', function ( r )
{
if ( r )
{
objWebTorrentDownloadForm.showForm( 'file', arrHashes[ intItemIndex ] );
}
} );
}
}
else
{
modalGalleryDownloadFileBtn( arrHashes[ intItemIndex ] );
}
}
}
function modalGalleryDownloadFileBtn( strFileHash, strDownloadType="simple" )
{
var intItemIndex = getItemIndex( strFileHash );
if ( typeof(bolHideDownloadButtons) !== 'undefined' && bolHideDownloadButtons )
{
return;
}
if ( typeof(arrHideDownloadButtons) !== 'undefined' && arrHideDownloadButtons[intItemIndex] )
{
return;
}
var intItemIndex = getItemIndex( strFileHash );
var bolUserIsAuthenticated = false;
if (
typeof(arrForbidDirectDownload) != 'undefined'
&& typeof(arrForbidDirectDownload_Authenticated) != 'undefined'
&& arrForbidDirectDownload[ intItemIndex ]
&& ! arrForbidDirectDownload_Authenticated[ intItemIndex ]
&& ! bolUserIsAuthenticated
)
{
if ( ! bolIsListViewForSpecificFile )
closeGallery(strCurrentFileHash);
var jqSigninErrorContainer = $('#signin-modal-content-error');
$('.alert_main_text', jqSigninErrorContainer)
.html('Direct download limit reached. Please, login or signup to directly download this file');
jqSigninErrorContainer.show();
showSignIn();
}
else if (
typeof(arrForbidDirectDownload) != 'undefined'
&& typeof(arrForbidDirectDownload_Authenticated) != 'undefined'
&& arrForbidDirectDownload[ intItemIndex ]
&& arrForbidDirectDownload_Authenticated[ intItemIndex ]
)
{
modalGalleryDownloadFileP2PBtn(intItemIndex);
}
else if ( strDownloadType == 'pdf' )
{
var strDateModified = ( typeof arrDatesModified != 'undefined' ? arrDatesModified[ intItemIndex ] : ( typeof arrModDate != 'undefined' ? arrModDate[ intItemIndex ] : '' ) );
window.location = '/api/file/get_thumb_pdf.php?i=' + strFileHash + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&dm=' + strDateModified + '&v=102&n=' + arrDisplayNames[ intItemIndex ] + '.pdf';
}
else if ( strDownloadType == 'mp4' )
{
var strDateModified = ( typeof arrDatesModified != 'undefined' ? arrDatesModified[ intItemIndex ] : ( typeof arrModDate != 'undefined' ? arrModDate[ intItemIndex ] : '' ) );
window.location = '/thumb_video/' + strFileHash + '.mp4?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&dm=' + strDateModified + '&v=102&n=' + arrDisplayNames[ intItemIndex ] + '.mp4';
}
else if ( strDownloadType == 'jpg' )
{
var strDateModified = ( typeof arrDatesModified != 'undefined' ? arrDatesModified[ intItemIndex ] : ( typeof arrModDate != 'undefined' ? arrModDate[ intItemIndex ] : '' ) );
window.location = '/thumb_show.php?i=' + strFileHash + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&dm=' + strDateModified + '&download&n=' + arrDisplayNames[ intItemIndex ] + '.jpg';
}
else if ( strDownloadType == 'my-files' )
{
objUploadCopyForm.showForm(
strUploadHash ,
false ,
[ strFileHash ] ,
[] ,
true ,
'' ,
function( strTargetUploadHash )
{
window.location = '/filebrowser?u=' + strTargetUploadHash;
}
);
}
else
{
var strFileExtension = arrExtensions[ intItemIndex ];
var arrExecutableExtensions = ['exe','com','dll','pif','scr','bat','bin','pl','sh','scf','sct','shs','vb','lnk','jnlp','apk','vbs','js','msi','jse','jar','dmg','bin','wsf'];
if ( arrExecutableExtensions.indexOf( strFileExtension ) == -1 )
{
window.location = 'https://'+ arrFileHost[ intItemIndex ] +'/down.php?i=' + strFileHash + '&n=' + arrDisplayNames[ intItemIndex ];
}
else
{
fConfirm( 'This file was checked with antivirus on the serverside, but executable files may contain potentially dangerous code that antivirus software is yet unable to detect. Use it only if you trust the sender. If not sure, use Virustotal.com to double-check. Do you want to save this file?', '', 'OK', 'Cancel', function( r )
{
if ( r )
{
window.location = 'https://'+ arrFileHost[ intItemIndex ] +'/down.php?i=' + strFileHash + '&n=' + arrDisplayNames[ intItemIndex ];
}
} );
}
}
}
function modalGallery_changeFileThumbnail( strFileHash, intItemIndex )
{
var $input;
$( "<form method='post'>" )
.append( $input = $( "<input type='file' name='image' accept='image/png, image/jpeg' required>" ) );
$input.change( function ( event )
{
var data = new FormData();
if ( !event.target.files.length )
{
return;
}
var file = event.target.files[ 0 ];
data.append( 'image', file, file.name );
data.append( 'file_hash', strFileHash );
var xhr = new XMLHttpRequest();
//post file data for upload
xhr.open( 'POST', '/api/file/set_thumb.php', true );
xhr.send( data );
xhr.onload = function ()
{
//get response and show the uploading status
var response = JSON.parse( xhr.responseText );
if ( xhr.status === 200 && response.success )
{
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__custom_thumb' ).remove();
$( '#gallery2__item-' + intItemIndex + ' .fa:first-child' ).remove();
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__doc-wrapper' ).prepend( $( "<div>" ).css( 'background-image', 'url("/thumb.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '")' ).addClass( 'gallery2__item__custom_thumb' ) );
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__doc-wrapper' ).addClass( 'has_custom_thumb' );
$( '#' + ( $( '#gallery2__item-' + intItemIndex + ' .filesfm__embed_player__container' ).attr( 'id' ) + '_poster' ) ).attr( 'src', '/thumb_video_picture.php?i=' + strFileHash + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4&t=' + ( new Date ).getTime() );
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__audio-wrapper .audio_image' ).css( 'background-image', 'url("/thumb.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '")' );
$( '.thumb_' + strFileHash ).removeClass( 'doc-icon' );
$( '.thumb_' + strFileHash ).css( 'min-width', '' );
$( '.thumb_' + strFileHash ).html( '<div class="thumb-wrapper"><img src="/thumb.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '" data-original="/thumb.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '" id="thumb_strip_img_' + strFileHash + '" class="lazyload-image-gallery image-not-loaded image-loaded" style="width: auto; height: 73px; display: inline;"></div>' );
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).html( '' );
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_changeFileThumbnail( \'' + strFileHash + '\', ' + intItemIndex + ' )"><i class="fal fa-image"></i> Change file image</div>' );
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_removeFileThumbnail( \'' + strFileHash + '\', ' + intItemIndex + ' )"><i class="fal fa-times"></i> Delete file image</div>' );
strThumbnailActions =
'<a href="javascript:void(0)" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-edit" title="Change file image"></div>' +
'</a>' +
'<a href="javascript:void(0)" onclick="modalGallery_removeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-delete" title="Delete file image"></div>' +
'</a>';
$( '#gallery2_info_head .thumbnail-wrapper img' ).remove();
$( '#gallery2_info_head .thumbnail-wrapper' ).prepend( '<img src="/thumb.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '" id="thumb_strip_img_' + strFileHash + '" class="lazyload-image-gallery image-not-loaded image-loaded">' );
$( '#gallery2_info_head .thumbnail-actions' ).html('');
$( '#gallery2_info_head .thumbnail-actions' ).append(strThumbnailActions);
$( '#gallery2_info_head .thumbnail-wrapper' ).addClass("two-actions");
$( '#gallery2_info_head .thumbnail-wrapper' ).removeClass("one-action");
fSuccess( 'The image has been successfully changed!', '', 'OK' );
}
else
{
if( typeof response.bad_file !== "undefined" && response.bad_file )
{
fError( 'Please choose an image file!', '', 'OK' );
}
else if( typeof response.too_big !== "undefined" && response.too_big )
{
fError( 'The size of image must not exceed 5MB!', '', 'OK' );
}
else
{
fError( 'Failed to change file image! Please try again later!', '', 'OK' );
}
}
};
} );
$input.click();
};
function modalGallery_removeFileThumbnail( strFileHash, intItemIndex )
{
fConfirm(
'Are you sure you want to remove the image?',
'',
'Yes',
'No',
function ( ok )
{
if ( !ok )
{
return;
}
var data = { file_hash: strFileHash };
var successCB = function ()
{
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__custom_thumb' ).remove();
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__doc-wrapper' ).removeClass( 'has_custom_thumb' );
$( '#gallery2__item-' + intItemIndex + ' .gallery2__item__audio-wrapper .audio_image' ).css( 'background-image', 'url("/thumb_audio_picture.php?i=' + strFileHash + '&t=' + ( new Date ).getTime() + '")' );
$objSliderThumb = $( '.thumb_' + strFileHash );
$objSliderThumb.empty();
var strThumbHTML = '';
var strClass = null;
if ( arrFileTypes[intItemIndex] == 'video' )
{
var strThumbPath = 'https://' + arrFileHost[ intItemIndex ] + '/thumb_video_picture.php?i=' + arrHashes[intItemIndex] + '&PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4' ,
strThumbHTML = '<img src="'+strThumbPath+'" data-original="'+strThumbPath+'" id="thumb_strip_img_'+arrHashes[intItemIndex]+'" class="lazyload-image-gallery" />';
}
else if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[intItemIndex] )
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ intItemIndex ].toLowerCase() +' thumb-svg-icon"><img src="/images/file_types_v2/'+arrIconSvg[ intItemIndex ]+'" data-original="/images/file_types_v2/'+arrIconSvg[ intItemIndex ]+'" style="max-width: 35px" /><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ intItemIndex ].toUpperCase() +'</span></span>';
}
else if ( arrIconClass[intItemIndex] )
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ intItemIndex ].toLowerCase() +'"><i class="' + arrIconClass[intItemIndex] + '"></i><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ intItemIndex ].toUpperCase() +'</span></span>';
strClass = 'doc-icon';
}
else
{
strThumbHTML = '<span class="gallery2__item__thumbnail '+ arrExtensions[ intItemIndex ].toLowerCase() +'"><i class="fal fa-file"></i><span class="gallery2__item__thumbnail-ext">'+ arrExtensions[ intItemIndex ].toUpperCase() +'</span></span>';
strClass = 'doc-icon';
}
$objSliderThumb.addClass(strClass)
if( !arrFileTypes[intItemIndex] == 'video' )
{
$objSliderThumb.css('min-width', '65px');
}
strThumbItemHTML = '<div class="thumb-wrapper">'+ strThumbHTML +'</div><div class="checkbox"></div>';
$objSliderThumb.append(strThumbItemHTML);
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).html( '' );
$( '#gallery2__sidebar__info-set-custom-thumbnail' ).append( '<div class="gallery2__sidebar__info-button no-background" onclick="modalGallery_changeFileThumbnail( \'' + strFileHash + '\', ' + intItemIndex + ' )"><i class="fal fa-image"></i> Set file preview image</div>' );
strThumbnailActions =
'<a href="javascript:void(0)" onclick="modalGallery_changeFileThumbnail( \'' + arrHashes[ intItemIndex ] + '\', ' + intItemIndex + ' )">' +
'<div class="thumbnail-actions-edit" title="Set file preview image"></div>' +
'</a>';
$( '#gallery2_info_head .thumbnail-wrapper img' ).remove();
if ( arrFileTypes[intItemIndex] == 'video' )
{
$( '#gallery2_info_head .thumbnail-wrapper' ).prepend(strThumbHTML);
}
else
{
$( '#gallery2_info_head .thumbnail-wrapper' ).prepend( '<img src="/images/file_types_v2/'+arrIconSvg[ intItemIndex ]+'" />' );
}
$( '#gallery2_info_head .thumbnail-actions' ).html('');
$( '#gallery2_info_head .thumbnail-actions' ).append(strThumbnailActions);
$( '#gallery2_info_head .thumbnail-wrapper' ).removeClass("two-actions");
$( '#gallery2_info_head .thumbnail-wrapper' ).addClass("one-action");
fSuccess( 'The image has been successfully removed!', '', 'OK' );
};
var failCB = function ()
{
fError( 'Failed to remove file image! Please try again later!', '', 'OK' );
};
jQuery.post(
'/api/file/remove_thumb.php',
data,
successCB,
'JSON'
).fail( failCB );
}
);
}
function isFileConvertable( strConverToFormat, intItemIndex )
{
var bolIsFileConvertable = false;
if ( strConverToFormat == 'pdf' )
{
if (
[ 'asice','edoc','zip' , 'doc','docx','odp','ods','odt','pps','ppsx','ppt','pptx','rtf','xls','xlsx','dotx' ].indexOf( arrExtensions[ intItemIndex ] ) != -1
&& arrSizesInBytes[ intItemIndex ] < 104857600 )
{
var bolIsDocTempFile = false
if (
[ 'doc','docx','odp','ods','odt','pps','ppsx','ppt','pptx','rtf','xls','xlsx','dotx' ].indexOf( arrExtensions[ intItemIndex ] ) != -1
&& arrDisplayNames[ intItemIndex ].substring( 0, 2 ) == '~$'
)
{
bolIsDocTempFile = true;
}
if ( ! bolIsDocTempFile )
{
bolIsFileConvertable = true;
}
}
}
else if ( strConverToFormat == 'mp4' )
{
if ( arrFileTypes[ intItemIndex ] == 'video' && arrExtensions[ intItemIndex ] != 'mp4' )
{
bolIsFileConvertable = true;
}
}
else if ( strConverToFormat == 'jpg' )
{
if ( arrFileTypes[ intItemIndex ] == 'image' && arrExtensions[ intItemIndex ] != 'jpg' )
{
bolIsFileConvertable = true;
}
else if ( arrExtensions[ intItemIndex ] == 'jpg' && ( arrWidths[ intItemIndex ] > 3000 || arrHeights[ intItemIndex ] > 3000 ) )
{
bolIsFileConvertable = true;
}
}
return bolIsFileConvertable;
}
function fileCanBeSigned( strFileExtension, intFileSize )
{
var bolFileCanBeSigned = false;
if (
[ 'edoc', 'pdf', 'asice' ].indexOf( strFileExtension ) != -1
&& ( intFileSize / 1024 / 1024 ) < 50
)
{
bolFileCanBeSigned = true;
}
return bolFileCanBeSigned;
}
function getFileIcon (strFileHash)
{
var strFileIcon = 'default.svg';
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if ( typeof( arrIconSvg ) !== 'undefined' && arrIconSvg[intFileIndex] )
{
strFileIcon = arrIconSvg[ intFileIndex ];
}
return strFileIcon;
}
function canBeReported (strFileHash)
{
var bolCanBeReported = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if( window.location.href.indexOf("filebrowser") === -1 && typeof arrReports != 'undefined' && typeof arrStatuses != 'undefined' && ! [3, 4].includes(arrStatuses[ intFileIndex ]) &&
(
typeof arrFileIsLockedByOtherUser == 'undefined'
|| ! arrFileIsLockedByOtherUser[ intFileIndex ]
)
)
{
bolCanBeReported = true;
}
return bolCanBeReported;
}
function hasReported (strFileHash)
{
var bolHasReported = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if( window.location.href.indexOf("filebrowser") === -1 && typeof arrReports != 'undefined' && typeof arrStatuses != 'undefined' && ! [3, 4].includes(arrStatuses[ intFileIndex ]) &&
(
typeof arrFileIsLockedByOtherUser == 'undefined'
|| ! arrFileIsLockedByOtherUser[ intFileIndex ]
)
)
{
if (arrReports[ intFileIndex ] == 0)
{
bolHasReported = false;
}
else
{
bolHasReported = true;
}
}
return bolHasReported;
}
function canOrderPrints( strFileHash )
{
var bolCanOrderPrints = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
return bolCanOrderPrints;
}
function canOrderProductGeneral( strFileHash )
{
var bolCanOrderProductGeneral = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
return bolCanOrderProductGeneral;
}
function canOrderProducts( strFileHash )
{
var bolCanOrderProducts = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
return bolCanOrderProducts;
}
function canBuyFile( strFileHash )
{
var bolCanBuyFile = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if ( arrFeeDownloadPrice[ intFileIndex ] != null )
{
if ( ! bolIsOwner )
{
bolCanBuyFile = true;
}
}
return bolCanBuyFile;
}
function canSellFile( strFileHash )
{
var bolCanSellFile = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if ( bolIsOwner )
{
bolCanSellFile = true;
}
return bolCanSellFile;
}
function canSetAsThumb( strFileHash )
{
var bolCanSetAsThumb = false;
var intFileIndex = getItemIndexByHashOrName( strFileHash );
if ( arrFileTypes[ intFileIndex ] == 'image' )
{
bolCanSetAsThumb = true;
}
if ( ! bolIsOwner )
{
bolCanSetAsThumb = false;
}
return bolCanSetAsThumb;
}
function canOpenSlideshow()
{
var bolCanOpenSlideshow = true;
if ( arrHashes.length <= 1 )
{
bolCanOpenSlideshow = false;
}
return bolCanOpenSlideshow;
}
function getFileLink( strFileHash )
{
var strShareLink = '';
strShareLink = 'https://files.fm/f/' + strFileHash;
return strShareLink;
}
function getFileEditLink( strFileHash )
{
var strShareEditLink = '';
var intFileIndex = getItemIndexByHashOrName( strFileHash );
var strFileViewLink = 'https://files.fm/f/' + strFileHash;
if ( bolCanDelete && typeof arrFileDeleteKeys != 'undefined' && arrFileDeleteKeys[ intFileIndex ] != '' )
{
strShareEditLink = strFileViewLink + '?fk=' + arrFileDeleteKeys[ intFileIndex ];
}
return strShareEditLink;
}
function canOpenFileInEditor( strMode, strFileExtension )
{
var bolcanOpenFileInEditor = false;
if ( strMode == 'edit' && [ 'odt','fodt','ott','doc','dot','docx','docm','rtf','txt','odm','otm','oth','ods','fods','ots','xls','xla','xlsx','xlsb','xlsm','dif','slk','csv','dbf','odp','fodp','otp','ppt','pot','pptx','pptm','potx','potm','ppsx','odg','fodg','otg' ].indexOf( strFileExtension ) != -1 )
{
bolcanOpenFileInEditor = true;
}
return bolcanOpenFileInEditor;
}
function canOpenImageInEditor( strFileExtension )
{
var bolCanOpenImageInEditor = false;
if (
[ 'jpg','jpeg','gif','png','bmp','svg','webp','ico','jfif','heic','heif','tiff','tif' ].indexOf( strFileExtension ) !== -1
|| [ 'cr3','cr2','nef','arw','pef','rw2','orf','raf','nrw','dng' ].indexOf( strFileExtension ) !== -1
)
{
bolCanOpenImageInEditor = true;
}
return bolCanOpenImageInEditor;
}
function canDownload( strFileHash )
{
var bolCanDownload = false;
var intItemIndex = getItemIndexByHashOrName( strFileHash );
if (
arrFeeDownloadPrice[ intItemIndex ] == null
&& ! currentFolderHasFeeDownload( intItemIndex )
&& arrAllowDownload[ intItemIndex ]
&&
(
typeof( bolHideDownloadButtons ) === 'undefined'
|| ! bolHideDownloadButtons
)
&&
(
typeof( arrHideDownloadButtons ) === 'undefined'
|| ! arrHideDownloadButtons[ intItemIndex ]
)
)
{
bolCanDownload = true;
}
return bolCanDownload;
}
function currentFolderHasFeeDownload( intFileIndex )
{
var bolVal = false;
if ( typeof bolUploadHasFeeDownload != 'undefined' )
{
bolVal = bolUploadHasFeeDownload;
}
else if ( typeof PublicProfile != 'undefined' )
{
bolVal = arrParentFolderIsForSale[ intFileIndex ];
}
else
{
bolVal = false;
}
return bolVal;
}
function loadExifTags()
{
var jqExifTagsButton = $( '#gallery2__sidebar__info-exif_tags-button' );
var imageTag = $( '#main_image_' + strCurrentFileHash )[ 0 ];
var arrExifTable = ['Model', 'ISO', 'Lens Model', 'Focal Length', 'Aperture Value', 'Exposure Time'];
EXIF.getData( imageTag, function ()
{
var strExifTags = EXIF.pretty( this );
var arrExifTags = strExifTags.split( '\r\n' );
arrExifTags = arrExifTags.map( ( item ) =>
{
if ( item != '' )
{
var arrKeyValuePair = item.split( ' : ' );
return arrKeyValuePair;
}
} );
var jqPrevExifTagRow = null;
var bolExifRows = false;
arrExifTags.forEach( ( item ) =>
{
var jqNewExifTagRow = $( '<tr class="gallery2__sidebar__info-exif_tags"><td class="gallery2__sidebar__exif_tags-key"></td><td class="gallery2__sidebar__exif_tags-value"></td></tr>' );
if ( typeof( item ) != 'undefined' )
{
if(arrExifTable.includes(item[ 0 ]))
{
if ( item[ 0 ] != 'Model' || (item[ 0 ] == 'Model' && $('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .Model span').html() == '') ) {
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .' + item[ 0 ].replace(/\s+/g, '') + ' span').html( item[ 1 ] );
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .' + item[ 0 ].replace(/\s+/g, '')).show();
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value').show();
}
}
else
{
bolExifRows = true;
jqNewExifTagRow.children( '.gallery2__sidebar__exif_tags-key' ).html( item[ 0 ] );
jqNewExifTagRow.children( '.gallery2__sidebar__exif_tags-value' ).html( item[ 1 ] );
jqNewExifTagRow.css('display', 'none');
if ( jqPrevExifTagRow )
{
jqPrevExifTagRow.after( jqNewExifTagRow );
}
else
{
jqExifTagsButton.after( jqNewExifTagRow );
}
jqPrevExifTagRow = jqNewExifTagRow;
}
}
} );
if ( typeof arrWidths != 'undefined' && typeof arrHeights != 'undefined' && typeof arrWidths[intCurrentFileIndex] != 'undefined' && typeof arrHeights[intCurrentFileIndex] != 'undefined' && arrWidths[intCurrentFileIndex] != '' && arrHeights[intCurrentFileIndex] != '' && arrWidths[intCurrentFileIndex] != 'undefined' && arrHeights[intCurrentFileIndex] != 'undefined' )
{
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .size span').html(arrWidths[intCurrentFileIndex] + ' x ' + arrHeights[intCurrentFileIndex]);
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .size').show();
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .mp span').html(Math.round((arrWidths[intCurrentFileIndex]*arrHeights[intCurrentFileIndex]/1000000) * 100) / 100+ ' MP');
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .mp').show();
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value').show();
}
var strModelName = $('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .Model span').html();
var strLensName = $('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .LensModel span').html();
strLensName = strLensName.replace(strModelName,'');
$('#gallery2__sidebar__info-mainexif .gallery2__sidebar__info-value .exif-grid .LensModel span').html(strLensName)
if( !bolExifRows )
{
jqExifTagsButton.hide();
}
} );
}
function gpsDecimalToDMS( mixGpsDecimal, bolLatitude )
{
var dblGpsDecimal = Number( mixGpsDecimal )
if ( mixGpsDecimal === '' || isNaN( dblGpsDecimal ) )
{
return '';
}
var strGpsPole;
if ( bolLatitude )
{
strGpsPole = ( dblGpsDecimal < 0 ) ? 'S' : 'N';
}
else
{
strGpsPole = ( dblGpsDecimal < 0 ) ? 'W' : 'E';
}
dblGpsDecimal = Math.abs( dblGpsDecimal );
var intGpsDegrees = Math.trunc( dblGpsDecimal );
dblGpsDecimal -= intGpsDegrees;
var intGpsMinutes = Math.trunc( dblGpsDecimal * 60 );
dblGpsDecimal -= intGpsMinutes / 60;
var intGpsSeconds = ( dblGpsDecimal * 3600 ).toFixed( 2 );
return `${ intGpsDegrees }\u00B0 ${ intGpsMinutes }' ${ intGpsSeconds }" ${ strGpsPole }`;
}
function ocrAnalyze( objButton, strModel )
{
var jqButton = $( objButton );
if ( jqButton.hasClass( 'disabled' ) )
{
return;
}
jqButton.addClass( 'disabled' );
var strButtonText = jqButton.text();
jqButton.text( strButtonText + ' (0s)' );
var intStartTimestamp = Date.now();
var stopwatch = setInterval( () => {
jqButton.html( strButtonText + ' (' + Math.trunc( ( Date.now() - intStartTimestamp ) / 1000 ) + 's)' );
}, 1000 );
$.ajax( {
type: 'GET',
dataType: 'json',
crossDomain: true,
url: './ajax/image_ocr_processing.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4',
data:
{
hash: strCurrentFileHash,
model: strModel,
},
success: function ( data )
{
clearInterval( stopwatch );
if ( ! data[ 'success' ] )
{
fError( data[ 'error' ] );
return;
}
if ( strModel == 'easyocr' && typeof arrFileEasyOCRText != 'undefined' )
{
arrFileEasyOCRText[ intCurrentFileIndex ] = data[ 'text' ];
$( '#gallery2__sidebar__info-easyocr_text .gallery2__sidebar__info-value' ).text( arrFileEasyOCRText[ intCurrentFileIndex ] );
if ( arrFileEasyOCRText[ intCurrentFileIndex ] != '' ) $( '#gallery2__sidebar__info-easyocr_text' ).show();
}
else if ( strModel == 'googlecv' && typeof arrFileGoogleCVText != 'undefined' )
{
arrFileGoogleCVText[ intCurrentFileIndex ] = data[ 'text' ];
$( '#gallery2__sidebar__info-google_cv_text .gallery2__sidebar__info-value' ).text( arrFileGoogleCVText[ intCurrentFileIndex ] );
if ( arrFileGoogleCVText[ intCurrentFileIndex ] != '' ) $( '#gallery2__sidebar__info-google_cv_text' ).show();
}
},
} );
}
function speechToText( objButton )
{
var jqButton = $( objButton );
if ( jqButton.hasClass( 'disabled' ) )
{
return;
}
jqButton.addClass( 'disabled' );
var strButtonText = jqButton.text();
jqButton.text( strButtonText + ' (0s)' );
var intStartTimestamp = Date.now();
var stopwatch = setInterval( () => {
jqButton.html( strButtonText + ' (' + Math.trunc( ( Date.now() - intStartTimestamp ) / 1000 ) + 's)' );
}, 1000 );
$.ajax( {
type: 'GET',
dataType: 'json',
crossDomain: true,
url: './ajax/speech_to_text.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4',
data:
{
hash: strCurrentFileHash,
},
success: function ( data )
{
clearInterval( stopwatch );
if ( ! data.success )
{
fError( data.error );
return;
}
arrFileAudioTranscription[ intCurrentFileIndex ] = data.text;
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-text .gallery2__sidebar__info-value' )
.text( arrFileAudioTranscription[ intCurrentFileIndex ] );
if ( arrFileAudioTranscription[ intCurrentFileIndex ] != '' )
{
$( '#gallery2__sidebar__info-google_cloud-speech_to_text-text' ).show();
}
},
} );
}
function objectsLabelsDetection( objButton )
{
var jqButton = $( objButton );
if ( jqButton.hasClass( 'disabled' ) )
{
return;
}
jqButton.addClass( 'disabled' );
var strButtonText = jqButton.text();
jqButton.text( strButtonText + ' (0s)' );
var intStartTimestamp = Date.now();
var stopwatch = setInterval( () => {
jqButton.html( strButtonText + ' (' + Math.trunc( ( Date.now() - intStartTimestamp ) / 1000 ) + 's)' );
}, 1000 );
$.ajax( {
type: 'GET',
dataType: 'json',
crossDomain: true,
url: './ajax/object_label_detection.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4',
data:
{
hash: strCurrentFileHash,
},
success: function ( data )
{
clearInterval( stopwatch );
if ( ! data.success )
{
fError( data.error );
return;
}
arrObjectTags[ intCurrentFileIndex ] = data.text.objects;
if ( arrObjectTags[ intCurrentFileIndex ] != '' )
{
let jqObjectTagsElem = $( '#gallery2__sidebar__info-object_tags .tags' );
let arrExistingTags = jqObjectTagsElem.find( '.tag' ).map( function() {
return $( this ).text();
} ).get();
let arrObjectTagsSplitted = arrObjectTags[ intCurrentFileIndex ].split( ';' );
let arrTagsToBeAdded = arrObjectTagsSplitted.filter( tag => ! arrExistingTags.includes( tag ) );
$.each( arrTagsToBeAdded, ( i, tag ) => {
jqObjectTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
if ( arrObjectTags[ intCurrentFileIndex ] != '' )
{
$( '#gallery2__sidebar__info-object_tags' ).show();
}
}
arrLabelTags[ intCurrentFileIndex ] = data.text.labels;
let jqLabelTagsElem = $( '#gallery2__sidebar__info-label_tags .tags' );
jqLabelTagsElem.empty();
let arrLabelTagsSplitted = arrLabelTags[ intCurrentFileIndex ].split( ';' );
$.each( arrLabelTagsSplitted, ( i, tag ) => {
jqLabelTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
if ( arrLabelTags[ intCurrentFileIndex ] != '' )
{
$( '#gallery2__sidebar__info-label_tags' ).show();
}
},
} );
}
function objectDetection( objButton )
{
var jqButton = $( objButton );
if ( jqButton.hasClass( 'disabled' ) )
{
return;
}
jqButton.addClass( 'disabled' );
var strButtonText = jqButton.text();
jqButton.text( strButtonText + ' (0s)' );
var intStartTimestamp = Date.now();
var stopwatch = setInterval( () => {
jqButton.html( strButtonText + ' (' + Math.trunc( ( Date.now() - intStartTimestamp ) / 1000 ) + 's)' );
}, 1000 );
$.ajax( {
type: 'GET',
dataType: 'json',
crossDomain: true,
url: './ajax/object_detection.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4',
data: {
hash: strCurrentFileHash,
},
success: function ( data )
{
clearInterval( stopwatch );
if ( ! data.success )
{
fError( data.error );
return;
}
arrYoloObjectTags[ intCurrentFileIndex ] = data.objects;
if ( arrYoloObjectTags[ intCurrentFileIndex ] == '' )
{
return;
}
let jqObjectTagsElem = $( '#gallery2__sidebar__info-object_tags .tags' );
let arrExistingTags = jqObjectTagsElem.find( '.tag' ).map( function() {
return $( this ).text();
} ).get();
let arrObjectTagsSplitted = arrYoloObjectTags[ intCurrentFileIndex ].split( ';' );
let arrTagsToBeAdded = arrObjectTagsSplitted.filter( tag => ! arrExistingTags.includes( tag ) );
$.each( arrTagsToBeAdded, ( i, tag ) => {
jqObjectTagsElem.append( '<span class="tag">' + tag + '</span>' );
} );
$( '#gallery2__sidebar__info-object_tags' ).show();
},
} );
}
</script>
<script type="text/javascript">
var publicProfile = true;
var bolOwnerIsStorageSubscriber = 0;
var objMainShareParams = {"show_type_select":false,"type":"all_files","all_files":{"view_url":"https:\/\/files.fm\/davidarida385","edit_url":"","upload_url":"","facebook":{"name":"davidarida385","picture_url":"https:\/\/files.fm\/\/avatars\/thumb.php?i=7227270_2147483647.jpg","description":"\u0e14\u0e39~(Hae Sing Wing Lui-2024) \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22! \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e23\u0e37\u0e2d Death Whisperer 2 \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e41\u0e19\u0e27\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34 \u0e17\u0e35\u0e48\u0e08\u0e30\u0e21\u0e32\u0e2a\u0e32\u0e19\u0e15\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e25\u0e2d\u0e19\u0e08\u0e32\u0e01\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e14\u0e39~\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 HD\u27a4 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2b\u0e19\u0e31\u0e07\u0e40\u0e15\u0e47\u0e21 - [Th Sub] | \u0e14\u0e39\u0e41\u0e25\u0e30\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42 \u0e04\u0e49\u0e19\u0e2b\u0e32\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 4 Hae Sing Wing Lui (2024) - \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 HD \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1a\u0e19 Android, iOS, PC, Mac, PS4, Xbox One \u0e41\u0e25\u0e30 Smart TV \u0e23\u0e31\u0e1a\u0e0a\u0e21\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e14\u0e49\u0e44\u0e21\u0e48\u0e08\u0e33\u0e01\u0e31\u0e14 \u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e17\u0e38\u0e01\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e17\u0e38\u0e01\u0e40\u0e27\u0e25\u0e32 \u0e44\u0e21\u0e48\u0e08\u0e33\u0e01\u0e31\u0e14\u0e08\u0e33\u0e19\u0e27\u0e19 \u0e44\u0e21\u0e48\u0e21\u0e35\u0e42\u0e06\u0e29\u0e13\u0e32.=====\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29: Hae Sing Wing Lui) \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e19\u0e27\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34 \u0e17\u0e35\u0e48\u0e2d\u0e2d\u0e01\u0e09\u0e32\u0e22\u0e43\u0e19\u0e1b\u0e35 \u0e1e.\u0e28. 2567 \u0e01\u0e33\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e22 \u0e17\u0e27\u0e35\u0e27\u0e31\u0e12\u0e19\u0e4c \u0e27\u0e31\u0e19\u0e17\u0e32 \u0e41\u0e25\u0e30\u0e19\u0e33\u0e41\u0e2a\u0e14\u0e07\u0e42\u0e14\u0e22 \u0e13\u0e40\u0e14\u0e0a\u0e19\u0e4c \u0e04\u0e39\u0e01\u0e34\u0e21\u0e34\u0e22\u0e30, \u0e40\u0e14\u0e19\u0e34\u0e2a \u0e40\u0e08\u0e25\u0e35\u0e25\u0e0a\u0e32 \u0e04\u0e31\u0e1b\u0e1b\u0e38\u0e19, \u0e01\u0e32\u0e08\u0e1a\u0e31\u0e13\u0e11\u0e34\u0e15 \u0e43\u0e08\u0e14\u0e35, \u0e1e\u0e35\u0e23\u0e30\u0e01\u0e24\u0e15\u0e22\u0e4c \u0e1e\u0e0a\u0e23\u0e1a\u0e38\u0e13\u0e22\u0e40\u0e01\u0e35\u0e22\u0e23\u0e15\u0e34, \u0e13\u0e31\u0e10\u0e0a\u0e32 \u0e19\u0e35\u0e19\u0e48\u0e32 \u0e40\u0e08\u0e2a\u0e0b\u0e34\u0e01\u0e32 \u0e1e\u0e32\u0e42\u0e14\u0e27\u0e31\u0e19, \u0e1e\u0e35\u0e23\u0e27\u0e34\u0e0a\u0e0d\u0e4c \u0e2d\u0e23\u0e23\u0e16\u0e0a\u0e34\u0e15\u0e2a\u0e16\u0e32\u0e1e\u0e23, \u0e2d\u0e23\u0e34\u0e28\u0e23\u0e32 \u0e27\u0e07\u0e29\u0e4c\u0e0a\u0e32\u0e25\u0e35 \u0e41\u0e25\u0e30 \u0e1b\u0e23\u0e40\u0e21\u0e28\u0e23\u0e4c \u0e19\u0e49\u0e2d\u0e22\u0e2d\u0e48\u0e33 \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e04\u0e15\u0e48\u0e2d\u0e08\u0e32\u0e01\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 \u0e40\u0e0a\u0e48\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e16\u0e39\u0e01\u0e16\u0e48\u0e32\u0e22\u0e17\u0e33\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e09\u0e32\u0e22\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e44\u0e2d\u0e41\u0e21\u0e01\u0e0b\u0e4c\u0e17\u0e31\u0e49\u0e07\u0e23\u0e30\u0e1a\u0e1a \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e08\u0e32\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07\u0e43\u0e19 \u0e2d\u0e33\u0e40\u0e20\u0e2d\u0e14\u0e48\u0e32\u0e19\u0e21\u0e30\u0e02\u0e32\u0e21\u0e40\u0e15\u0e35\u0e49\u0e22 \u0e08\u0e31\u0e07\u0e2b\u0e27\u0e31\u0e14\u0e01\u0e32\u0e0d\u0e08\u0e19\u0e1a\u0e38\u0e23\u0e35 \u0e43\u0e19\u0e1b\u0e35 \u0e1e.\u0e28. 2515 \u0e41\u0e25\u0e30\u0e40\u0e2a\u0e23\u0e34\u0e21\u0e41\u0e15\u0e48\u0e07\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2d\u0e23\u0e23\u0e16\u0e23\u0e16\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e0a\u0e38\u0e14\u0e1c\u0e35\u0e2d\u0e21\u0e15\u0e30 \u0e02\u0e2d\u0e07 \u0e41\u0e0b\u0e21 \u0e40\u0e23\u0e22\u0e4c\u0e21\u0e35 \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e23\u0e07\u0e1a\u0e31\u0e19\u0e14\u0e32\u0e25\u0e43\u0e08\u0e02\u0e2d\u0e07\u0e17\u0e27\u0e35\u0e27\u0e31\u0e12\u0e19\u0e4c \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e04\u0e33\u0e27\u0e34\u0e08\u0e32\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e41\u0e07\u0e48\u0e1a\u0e27\u0e01\u0e16\u0e36\u0e07\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e2d\u0e32\u0e23\u0e21\u0e13\u0e4c\u0e41\u0e2d\u0e47\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e19\u0e27\u0e08\u0e32\u0e01\u0e41\u0e19\u0e27\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d \u0e23\u0e30\u0e17\u0e36\u0e01\u0e02\u0e27\u0e31\u0e0d \u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19 \u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e1c\u0e2a\u0e21\u0e01\u0e31\u0e1a\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e40\u0e40\u0e1a\u0e1a\u0e44\u0e17\u0e22 \u0e46 \u0e40\u0e40\u0e25\u0e30\u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e02\u0e22\u0e32\u0e22\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e02\u0e2d\u0e07\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14\u0e43\u0e2b\u0e49\u0e01\u0e27\u0e49\u0e32\u0e07\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32\u0e40\u0e40\u0e04\u0e48\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27\u0e2b\u0e25\u0e31\u0e01 \u0e08\u0e31\u0e01\u0e23\u0e27\u0e32\u0e25\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e1f\u0e23\u0e19\u0e44\u0e0a\u0e2a\u0e4c\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 \u0e17\u0e35\u0e48\u0e08\u0e30\u0e21\u0e35\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27\u0e22\u0e31\u0e01\u0e29\u0e4c\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e15\u0e32\u0e21\u0e44\u0e25\u0e48\u0e25\u0e48\u0e32\u0e1b\u0e35\u0e28\u0e32\u0e08\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e31\u0e48\u0e27\u0e23\u0e49\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) Hae Sing Wing Lui. \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c HD \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e21\u0e32\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e1c\u0e35 \u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d HD \u0e1f\u0e23\u0e35, \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2d\u0e47\u0e04\u0e0a\u0e31\u0e48\u0e19, \u0e2b\u0e19\u0e31\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e21\u0e48 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c, \u0e2b\u0e19\u0e31\u0e07\u0e41\u0e19\u0e30\u0e19\u0e33, \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 2024, \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e0a\u0e19\u0e42\u0e23\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07HD \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e2b\u0e19\u0e31\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e1f\u0e23\u0e35 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e21\u0e48 MASTER ZOOM \u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e0b\u0e39\u0e21 \u0e14\u0e39!\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e44\u0e21\u0e48\u0e01\u0e23\u0e30\u0e15\u0e38\u0e01 \u0e44\u0e21\u0e48\u0e21\u0e35 \u0e42\u0e06\u0e29\u0e13\u0e32 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c2024 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c netflix \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c 4k \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e42\u0e14\u0e22\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e1b\u0e35 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e14\u0e39\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e34\u0e25\u0e4c\u0e21\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c THAI\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e1b\u0e35 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e29\u0e32\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e41\u0e1a\u0e1a\u0e40\u0e15\u0e47\u0e21\u0e2a\u0e15\u0e23\u0e35\u0e21\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19 HD \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e4d\u0e32\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e39\u0e25\u0e21\u0e39\u0e1f\u0e27\u0e35\u0e48\u0e44\u0e17\u0e22\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 HD movie \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e22\u0e49\u0e32\u0e22\u0e40\u0e15\u0e47\u0e21\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e40\u0e15\u0e47\u0e21\u0e0a\u0e21\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e15\u0e47\u0e21\u0e20\u0e32\u0e29\u0e32\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e04\u0e34\u0e19\u0e47\u0e2d\u0e01\u0e0b\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e44\u0e17\u0e22\u0e1f\u0e34\u0e25\u0e4c\u0e21\u0e40\u0e2d\u0e0a\u0e14\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e1f\u0e23\u0e35\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) - \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e44\u0e21\u0e48\u0e01\u0e23\u0e30\u0e15\u0e38\u0e01 \u0e44\u0e21\u0e48\u0e21\u0e35 \u0e42\u0e06\u0e29\u0e13\u0e32\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c2024 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c 4k \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e19\u0e38\u0e01\u0e46\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e22\u0e48\u0e2d\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e04\u0e30\u0e41\u0e19\u0e19\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e23\u0e35\u0e27\u0e34\u0e27\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e09\u0e32\u0e22","link":"https:\/\/files.fm\/davidarida385","return_link":"https:\/\/files.fm\/davidarida385?after_fb_share"},"twitter":{"text":"files.fm: \u0e14\u0e39~(Hae Sing Wing Lui-2024) \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22! \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e23\u0e37\u0e2d Death Whisperer 2 \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e41\u0e19\u0e27\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34 \u0e17\u0e35\u0e48\u0e08\u0e30\u0e21\u0e32\u0e2a\u0e32\u0e19\u0e15\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e25\u0e2d\u0e19\u0e08\u0e32\u0e01\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e14\u0e39~\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 HD\u27a4 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2b\u0e19\u0e31\u0e07\u0e40\u0e15\u0e47\u0e21 - [Th Sub] | \u0e14\u0e39\u0e41\u0e25\u0e30\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42 \u0e04\u0e49\u0e19\u0e2b\u0e32\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 4 Hae Sing Wing Lui (2024) - \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 HD \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1a\u0e19 Android, iOS, PC, Mac, PS4, Xbox One \u0e41\u0e25\u0e30 Smart TV \u0e23\u0e31\u0e1a\u0e0a\u0e21\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e14\u0e49\u0e44\u0e21\u0e48\u0e08\u0e33\u0e01\u0e31\u0e14 \u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e17\u0e38\u0e01\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e17\u0e38\u0e01\u0e40\u0e27\u0e25\u0e32 \u0e44\u0e21\u0e48\u0e08\u0e33\u0e01\u0e31\u0e14\u0e08\u0e33\u0e19\u0e27\u0e19 \u0e44\u0e21\u0e48\u0e21\u0e35\u0e42\u0e06\u0e29\u0e13\u0e32.=====\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29: Hae Sing Wing Lui) \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e19\u0e27\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34 \u0e17\u0e35\u0e48\u0e2d\u0e2d\u0e01\u0e09\u0e32\u0e22\u0e43\u0e19\u0e1b\u0e35 \u0e1e.\u0e28. 2567 \u0e01\u0e33\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e22 \u0e17\u0e27\u0e35\u0e27\u0e31\u0e12\u0e19\u0e4c \u0e27\u0e31\u0e19\u0e17\u0e32 \u0e41\u0e25\u0e30\u0e19\u0e33\u0e41\u0e2a\u0e14\u0e07\u0e42\u0e14\u0e22 \u0e13\u0e40\u0e14\u0e0a\u0e19\u0e4c \u0e04\u0e39\u0e01\u0e34\u0e21\u0e34\u0e22\u0e30, \u0e40\u0e14\u0e19\u0e34\u0e2a \u0e40\u0e08\u0e25\u0e35\u0e25\u0e0a\u0e32 \u0e04\u0e31\u0e1b\u0e1b\u0e38\u0e19, \u0e01\u0e32\u0e08\u0e1a\u0e31\u0e13\u0e11\u0e34\u0e15 \u0e43\u0e08\u0e14\u0e35, \u0e1e\u0e35\u0e23\u0e30\u0e01\u0e24\u0e15\u0e22\u0e4c \u0e1e\u0e0a\u0e23\u0e1a\u0e38\u0e13\u0e22\u0e40\u0e01\u0e35\u0e22\u0e23\u0e15\u0e34, \u0e13\u0e31\u0e10\u0e0a\u0e32 \u0e19\u0e35\u0e19\u0e48\u0e32 \u0e40\u0e08\u0e2a\u0e0b\u0e34\u0e01\u0e32 \u0e1e\u0e32\u0e42\u0e14\u0e27\u0e31\u0e19, \u0e1e\u0e35\u0e23\u0e27\u0e34\u0e0a\u0e0d\u0e4c \u0e2d\u0e23\u0e23\u0e16\u0e0a\u0e34\u0e15\u0e2a\u0e16\u0e32\u0e1e\u0e23, \u0e2d\u0e23\u0e34\u0e28\u0e23\u0e32 \u0e27\u0e07\u0e29\u0e4c\u0e0a\u0e32\u0e25\u0e35 \u0e41\u0e25\u0e30 \u0e1b\u0e23\u0e40\u0e21\u0e28\u0e23\u0e4c \u0e19\u0e49\u0e2d\u0e22\u0e2d\u0e48\u0e33 \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e04\u0e15\u0e48\u0e2d\u0e08\u0e32\u0e01\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 \u0e40\u0e0a\u0e48\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e16\u0e39\u0e01\u0e16\u0e48\u0e32\u0e22\u0e17\u0e33\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e09\u0e32\u0e22\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e44\u0e2d\u0e41\u0e21\u0e01\u0e0b\u0e4c\u0e17\u0e31\u0e49\u0e07\u0e23\u0e30\u0e1a\u0e1a \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e08\u0e32\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07\u0e43\u0e19 \u0e2d\u0e33\u0e40\u0e20\u0e2d\u0e14\u0e48\u0e32\u0e19\u0e21\u0e30\u0e02\u0e32\u0e21\u0e40\u0e15\u0e35\u0e49\u0e22 \u0e08\u0e31\u0e07\u0e2b\u0e27\u0e31\u0e14\u0e01\u0e32\u0e0d\u0e08\u0e19\u0e1a\u0e38\u0e23\u0e35 \u0e43\u0e19\u0e1b\u0e35 \u0e1e.\u0e28. 2515 \u0e41\u0e25\u0e30\u0e40\u0e2a\u0e23\u0e34\u0e21\u0e41\u0e15\u0e48\u0e07\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2d\u0e23\u0e23\u0e16\u0e23\u0e16\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e0a\u0e38\u0e14\u0e1c\u0e35\u0e2d\u0e21\u0e15\u0e30 \u0e02\u0e2d\u0e07 \u0e41\u0e0b\u0e21 \u0e40\u0e23\u0e22\u0e4c\u0e21\u0e35 \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e23\u0e07\u0e1a\u0e31\u0e19\u0e14\u0e32\u0e25\u0e43\u0e08\u0e02\u0e2d\u0e07\u0e17\u0e27\u0e35\u0e27\u0e31\u0e12\u0e19\u0e4c \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e20\u0e32\u0e04\u0e41\u0e23\u0e01 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e04\u0e33\u0e27\u0e34\u0e08\u0e32\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e41\u0e07\u0e48\u0e1a\u0e27\u0e01\u0e16\u0e36\u0e07\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e2d\u0e32\u0e23\u0e21\u0e13\u0e4c\u0e41\u0e2d\u0e47\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e19\u0e27\u0e08\u0e32\u0e01\u0e41\u0e19\u0e27\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d \u0e23\u0e30\u0e17\u0e36\u0e01\u0e02\u0e27\u0e31\u0e0d \u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19 \u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d\u0e1c\u0e2a\u0e21\u0e01\u0e31\u0e1a\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e40\u0e40\u0e1a\u0e1a\u0e44\u0e17\u0e22 \u0e46 \u0e40\u0e40\u0e25\u0e30\u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e02\u0e22\u0e32\u0e22\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e02\u0e2d\u0e07\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14\u0e43\u0e2b\u0e49\u0e01\u0e27\u0e49\u0e32\u0e07\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32\u0e40\u0e40\u0e04\u0e48\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27\u0e2b\u0e25\u0e31\u0e01 \u0e08\u0e31\u0e01\u0e23\u0e27\u0e32\u0e25\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e1f\u0e23\u0e19\u0e44\u0e0a\u0e2a\u0e4c\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e14 \u0e17\u0e35\u0e48\u0e08\u0e30\u0e21\u0e35\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27\u0e22\u0e31\u0e01\u0e29\u0e4c\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e15\u0e32\u0e21\u0e44\u0e25\u0e48\u0e25\u0e48\u0e32\u0e1b\u0e35\u0e28\u0e32\u0e08\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e31\u0e48\u0e27\u0e23\u0e49\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) Hae Sing Wing Lui. \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c HD \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e21\u0e32\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e1c\u0e35 \u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e22\u0e2d\u0e07\u0e02\u0e27\u0e31\u0e0d HD \u0e1f\u0e23\u0e35, \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2d\u0e47\u0e04\u0e0a\u0e31\u0e48\u0e19, \u0e2b\u0e19\u0e31\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e21\u0e48 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c, \u0e2b\u0e19\u0e31\u0e07\u0e41\u0e19\u0e30\u0e19\u0e33, \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 2024, \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e0a\u0e19\u0e42\u0e23\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07HD \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e2b\u0e19\u0e31\u0e07 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e1f\u0e23\u0e35 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e21\u0e48 MASTER ZOOM \u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e0b\u0e39\u0e21 \u0e14\u0e39!\u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e44\u0e21\u0e48\u0e01\u0e23\u0e30\u0e15\u0e38\u0e01 \u0e44\u0e21\u0e48\u0e21\u0e35 \u0e42\u0e06\u0e29\u0e13\u0e32 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c2024 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c netflix \u0e18\u0e35\u0e48\u0e2b\u0e22\u0e142 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c 4k \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 \u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e42\u0e14\u0e22\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e1b\u0e35 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e14\u0e39\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e34\u0e25\u0e4c\u0e21\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c THAI\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e1b\u0e35 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e29\u0e32\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e41\u0e1a\u0e1a\u0e40\u0e15\u0e47\u0e21\u0e2a\u0e15\u0e23\u0e35\u0e21\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19 HD \u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e4d\u0e32\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e39\u0e25\u0e21\u0e39\u0e1f\u0e27\u0e35\u0e48\u0e44\u0e17\u0e22\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e2a\u0e15\u0e23\u0e35\u0e21\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e1f\u0e23\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 HD movie \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e22\u0e49\u0e32\u0e22\u0e40\u0e15\u0e47\u0e21\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e40\u0e15\u0e47\u0e21\u0e0a\u0e21\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e15\u0e47\u0e21\u0e20\u0e32\u0e29\u0e32\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e04\u0e34\u0e19\u0e47\u0e2d\u0e01\u0e0b\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e44\u0e17\u0e22\u0e1f\u0e34\u0e25\u0e4c\u0e21\u0e40\u0e2d\u0e0a\u0e14\u0e35\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 2024 \u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e1f\u0e23\u0e35\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) - \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22 + \u0e0b\u0e31\u0e1a\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e42\u0e23\u0e07\u0e20\u0e32\u0e1e\u0e22\u0e19\u0e15\u0e23\u0e4c \u0e2b\u0e19\u0e31\u0e07\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e40\u0e27\u0e47\u0e1a\u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35 24 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1f\u0e23\u0e35\u0e44\u0e21\u0e48\u0e01\u0e23\u0e30\u0e15\u0e38\u0e01 \u0e44\u0e21\u0e48\u0e21\u0e35 \u0e42\u0e06\u0e29\u0e13\u0e32\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c2024 \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c 4k \u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e14\u0e39\u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e2d\u0e2d\u0e19\u0e44\u0e25\u0e19\u0e4c\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 2024\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e1e\u0e32\u0e01\u0e22\u0e4c\u0e44\u0e17\u0e22\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e19\u0e38\u0e01\u0e46\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 \u0e2b\u0e19\u0e31\u0e07\u0e43\u0e2b\u0e21\u0e48 \u0e40\u0e15\u0e47\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e22\u0e48\u0e2d\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e04\u0e30\u0e41\u0e19\u0e19\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e0a\u0e19\u0e42\u0e23\u0e07\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e23\u0e35\u0e27\u0e34\u0e27\u0e41\u0e2b\u0e48 \u0e0b\u0e34\u0e48\u0e07 \u0e27\u0e34\u0e48\u0e07 \u0e25\u0e38\u0e22 (2024) \u0e09\u0e32\u0e22","link":"https:\/\/files.fm\/davidarida385"},"share_email":{"upload_hash":"","file_view_hash":""}},"disable_email":true};
var strScriptURL = 'davidarida385';
var strHostName = 'files.fm';
var strFileboxFormID = '';
var strFileboxUserHash = '';
var intUserFileboxConfigWidth = 367;
var intUserFileboxConfigHeight = 500;
PublicProfile.strProfileName = 'davidarida385';
PublicProfile.strAvatarPath = '/avatars/thumb.php?i=7227270_2147483647.jpg';
PublicProfile.bolIsMyPublicProfile = 0;
PublicProfile.bolAllowImageIndexing = 0;
PublicProfile.strViewDefault_Section = 'folder';
PublicProfile.strViewDefault_Layout = 'horizontal';
PublicProfile.strViewDefault_OrderBy = 'DATE_CREATED';
PublicProfile.strViewDefault_OrderDir = 'DESC';
PublicProfile.bolHideRecents = '0';
PublicProfile.bolHideMenuNotSet = '0';
PublicProfile.strRootUploadHash = 'pexahvy8vz';
PublicProfile.strRootUploadAddKey = '';
PublicProfile.strHttpHost = 'files.fm';
PublicProfile.strSessionID = 'a38f344e4cb305a050cfe761f696af64db3161f4';
PublicProfile.publicProfileShareParams = objMainShareParams;
PublicProfile.openedPublicProfileUserID = 119698032;
PublicProfile.arrLangs = {
'SPORTS-PROFILE_ANALYZE' : 'Find text in photos' ,
'SPORTS-PROFILE_REALLY-ANALYZE' : 'Do you want to run text recognition on these images?' ,
'SPORTS-PROFILE_YES' : 'Yes' ,
'SPORTS-PROFILE_NO' : 'No' ,
'SPORTS-PROFILE_STARTING' : 'Starting...' ,
'SPORTS-PROFILE_LAST_RUN' : 'These images were indexed at' ,
'SPORTS-PROFILE_X_CONTAIN_TEXT' : 'images contain text' ,
'SPORTS-PROFILE_THIS_CAN_TAKE_A_LONG_TIME' : 'You need to open a specific folder to start text recognition for all photos in this folder. Only those pictures that have not been processed before will be analyzed. The process can take about 10 min. After that, you will be able to search by the found words or numbers in the search engine. [email protected]' ,
'SPORTS-PROFILE_FINISHED' : 'Processing is over, you can close this window.' ,
'SPORTS-PROFILE_SOMETHING_WENT_WRONG' : 'The operation was not successful! Please try again later. If the problem persists please contact [email protected].' ,
'SPORTS-PROFILE_GENERIC_ERROR' : 'Failed to open page' ,
'SPORTS-PROFILE_GENERIC_ERROR_CheckLink' : 'Check that the link provided is correct.' ,
'SPORTS-PROFILE_LOAD_ERROR' : 'Sorry, I couldn’t open the content. Please reload the page.' ,
'PRINTING-ORDER-FORM-Crop-Label' : '' ,
'JS-SEARCH-PLACEHOLDER' : 'Search' ,
'SPORTS-SEARCH-PLACEHOLDER' : 'Enter full name, number, brand or team to search in images..' ,
'SPORTS-SEARCH-EMPTY-RESULT-TITLE' : 'No images have been found!' ,
'SPORTS-SEARCH-HINT' : 'Photos can be searched for full names, numbers and other text if the images are indexed.' ,
'SPORTS-SEARCH-MIN-LENGTH' : 'Please input at least 3 characters!' ,
'SPORTS-SEARCH-SHARE-PROFILE' : 'this profile' ,
'SPORTS-SEARCH-SHARE-RESULTS' : 'search results' ,
'SPORTS-SEARCH-SHARE-FOLDER' : 'open gallery' ,
'SPORTS-PROFILE_THIS_CAN_TAKE_A_LONG_TIME_ALL' : 'If you want to analyze and search for text <b>in ALL</b> published pictures, press "Yes".<br><br> If you want to analyze the content of photos in a specific gallery, then open this folder and press "Find text in pictures" again.<br><br> The process can take about 10 min per folder. After that, you will be able to search by the found words or numbers in the search engine. [email protected]' ,
'SPORTS-PROFILE_ANALYZE_ALL_TITLE' : 'Run text recognition process for all public profile pictures?' ,
'SHARE' : 'Share' ,
'PROFILE-UPL-ACTION-DOWNLOAD-ALL-ZIP' : 'Download' ,
'SAVE' : 'Save' ,
'SPORTS-PROFILE_ALL_GALLERIES_TEMPORARILY_DISABLED_TITLE' : 'Error!' ,
'SPORTS-PROFILE_ALL_GALLERIES_TEMPORARILY_DISABLED_DESC' : 'Analysis for all galleries at once has been temporarily disabled! To analyze images open the gallery you want analyzed and pres "Analyze image contents"!' ,
'SPORTS-PROFILE_GALLERY_IS_ANALYZED' : 'Gallery has been analyzed' ,
'SPORTS-PROFILE_NOT-SUBSCRIBED' : 'You don’t have access to this feature!' ,
'PROFILE-DELETE_MULTIPLE_ERROR' : 'There was an error deleting one of the folders!' ,
'PROFILE-LOGED-UPL-ACTION-DELETE-DONE' : 'Folder has been deleted!' ,
'GALLERY-CancelVote' : 'Unlike' ,
'GALLERY-Vote' : 'Like' ,
'LIST-CONFIRM-DELETE-FILE' : 'Do you really want to delete this file?' ,
'LIST-LINK-DELETE-FILE' : 'Delete' ,
'LIST-LINK-DELETE-FILE-Yes' : 'Yes, delete!' ,
'LIST-LINK-DELETE-FILE-No' : 'Cancel' ,
'LIST-FlDelPart1' : 'File' ,
'LIST-FlDelPart2' : 'has been <b>deleted</b>!' ,
'LIST-UnableToDeleteFile' : 'There was an error, the file was not deleted' ,
'FILEBROWSER-SetUploadThumbnailSuccess' : 'Folder image changed successfully!' ,
'FILEBROWSER-SetUploadThumbnailError' : 'Failed to change folder image! Please try again later!' ,
'PUBLIC-PROFILE-SearchInputPlaceholder' : 'Search' ,
'PUBLIC-PROFILE-EMPTY-RESULT-TITLE' : 'No public content yet' ,
'PUBLIC-PROFILE-SEARCH-HINT' : 'If you can`t find what you`re searching for, try shortening the search phrase!' ,
'PUBLIC-PROFILE-EMPTY-PROFILE' : ' You can turn on public access in folder’s settings.' ,
'PUBLIC-PROFILE-EMPTY-PROFILE-OWNER' : 'This shows the folders you’ve made public. To make a folder public, open it in the file browser and on the right hand side change access to "Published to my profile"' ,
'PUBLIC-PROFILE-EMPTY-SEARCH-RESULTS' : ' We did not find any file!' ,
'PUBLIC-PROFILE-SEARCH-ERROR-DESC' : 'Please try again later!' ,
'PUBLIC_PROFILE_SEARCH_WIDEN_ALL' : 'Search in all galleries »' ,
'PUBLIC_PROFILE_SEARCH_WIDEN_GALLERY' : 'SEARCH ABOVE:' ,
'PUBLIC-PROFILE-SEARCH-RESULTS-BREADCRUMB' : 'Search results' ,
'PUBLIC-PROFILE-HOW-TO-PUBLISH' : 'You can publish files with the switch - in the settings of each folder.' ,
'PUBLIC-PROFILE-VIEW-ALL-FILES' : 'View all files »' ,
'LIST-AddFiles' : 'Add files' ,
'LIST-AddFiles-Drop' : 'Drag and drop or <span>Upload files</span>' ,
'LIST-AddFiles-DropMobile' : 'Add files' ,
'PUBLIC-PROFILE-Description-Header' : 'Profile description' ,
'PUBLIC-PROFILE-Folder-Price' : 'Folder price' ,
'PUBLIC-PROFILE-BuyThisFolder' : 'Buy this folder' ,
'PUBLIC-PROFILE-DownloadAllFolderFiles' : 'Download all files of the folder' ,
'LIST-LINK-Buy' : 'Buy' ,
'LIST-ZIP-Link' : 'Download all files' ,
'PROFILE-LOGED-UPL-ACTION-SetPriceForFolder' : 'Sell content' ,
'PROFILE-LOGED-UPL-ACTION-ChangePriceForFolder' : 'Change folder price' ,
'PUBLIC-PROFILE-Image' : 'Images' ,
'PUBLIC-PROFILE-Video' : 'Videos' ,
'PUBLIC-PROFILE-Audio' : 'Audios' ,
'PUBLIC-PROFILE-Document' : 'Documents' ,
'PROFILE-FolderSettings' : 'Settings' ,
'PROFILE-PrivateSection-Header' : 'Private content' ,
'PROFILE-PrivateSection-Subheader' : 'To view private content that is shared with you, log in to your account.' ,
'PROFILE-PrivateSection-SubheaderOwner' : 'Here other users can view folders you have shared directly with them privately by e-mail (Share > Enter e-mail > Send)' ,
'PROFILE-PrivateSection-Button' : 'Log in' ,
'PROFILE-AllGalleries' : 'All galleries' ,
'PROFILE-Recent' : 'Recent' ,
'PROFILE-Recent-Info' : 'You can hide this bar in the profile settings. Press «Edit profile» > Layout > Hide recent gallery bar' ,
'PUBLIC-PROFILE-PersonalizationForm-InvalidImageFileFormat' : 'Invalid file format or size too large. Allowed formats: jpg, jpeg, png. Max. size: 20MB' ,
};
ItemLoaders.updateFileArrays( [] );
$( function ()
{
init();
mobileButtons();
} )
$( '#public_profile__top_1__follow' ).on( 'click', function ()
{
showSignIn();
} );
</script>
<link rel="stylesheet" type="text/css" media="all" href="/css/payments/saved_cc_data.css?v=1715343648">
<script src="/js/payments/saved_cc_data.js?v=1720712236"></script>
<script>
var PHPSESSID = 'a38f344e4cb305a050cfe761f696af64db3161f4';
var arrSavedCcDataFormTransl = {
'AddNewCard' : 'Add new card' ,
'GenericError' : 'An error occurred while processing the data. Please try again.' ,
'QuestRemoveCard' : 'Are you sure you want to remove this card from the list of saved cards?' ,
'Yes' : 'Yes' ,
'No' : 'No' ,
'CreditcardPaymentError' : 'An error occurred while processing payment. Please try again or contact [email protected]!' ,
'CreditcardPaymentError-BankDeclined' : 'An error occurred while processing payment - your bank declined the payment. Please check if your bank account has enough funds; if your payment card is authorized to make payments on the Internet. Or contact your bank, or use another payment card.' ,
'SelectPaymentCard' : 'Choose a payment card' ,
'NewCardSwedbankCcInfo-1' : 'To add a new payment card, click on the button below' ,
'NewCardSwedbankCcInfo-2' : '. After pressing the button, you will be taken to a page where you can enter the data of the new payment card.' ,
'AlreadyPaid' : 'Thank you, payment has already been received.' ,
};
</script><link rel="stylesheet" type="text/css" media="all" href="/css/buy_file_form.css?v=1715343651">
<script src="/js/buy_file_form.js?v=1728568869"></script>
<!-- file price form -->
<section id="buy_file_form" class="modal-container buy_file_form__simple" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
<div class="modal-inner">
<div class="modal-content">
<!-- file price form header -->
<div id="buy_file_form__header">
<div id="buy_file_form__header_main_text">
<span>Purchase</span>
</div>
<div id="buy_file_form__header_sub_text_copy_image" class="buy_file_form__header_sub_text">
Add this file to your cart to purchase it. After payment you will be able to download this file without the watermarks and you will get an email with purchase details. </div>
<div id="buy_file_form__header_sub_text_share" class="buy_file_form__header_sub_text">
To buy this product, add it to your cart.<br>
After a successful payment the file will immediately be available in your files.fm account under purchases and you will receive a confirmation e-mail. </div>
<div id="buy_file_form__header_sub_text_other" class="buy_file_form__header_sub_text">
Add this product to your cart. After payment, you will immediately be able to access the digital content in your account, as well as receive an e-mail with purchase details. </div>
</div>
<!-- /file price form header -->
<!-- file price form alerts -->
<div class="buy_file__top_alerts_container">
<table class="alert_container alert_container_danger">
<tbody><tr>
<td>
<i class="fa fa-exclamation-circle"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
<table class="alert_container alert_container_info">
<tbody><tr>
<td>
<i class="fa fa-spinner fa-spin"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
</div>
<!-- /file price form alerts -->
<!-- file price form content -->
<div id="buy_file_form__content">
<!-- file image, name and license -->
<div id="buy_file_form__file_info_container">
<div id="buy_file_form__file_image_container">
<img id="buy_file_form__file_image_thumnail">
<img id="buy_file_form__file_icon" src="/images/folder_types/folder-default.svg">
</div>
<div id="buy_file_form__file_name_license_container">
<div id="buy_file_form__file_name_container">
<div id="buy_file_form__file_name_label">Title:</div>
<div id="buy_file_form__file_name_value"></div>
</div>
<div id="buy_file_form__file_description_container">
<div id="buy_file_form__file_description_label">Description:</div>
<div id="buy_file_form__file_description_value"></div>
</div>
</div>
</div>
<!-- /file image, name and license -->
<!-- file prices table -->
<table id="buy_file_form__prices_table">
<tbody><tr class="buy_file_form__el_for_images">
<th class="buy_file_form__el_for_images">
Size </th>
<th>
Price </th>
</tr>
<tr id="buy_file_form__prices_table_last_row"><td colspan="2"></td></tr>
</tbody></table>
<!-- /file prices table -->
<!-- discount info -->
<div class="buy_file_form__discount_info__container">
<div class="buy_file_form__discount_info__label">
Get a discount! </div>
<div class="buy_file_form__discount_info__description">
Buy more files from this folder and get a discount: </div>
<ul class="buy_file_form__discount_info__list"></ul>
</div>
<!-- /discount info -->
<!-- file rights of use -->
<div id="buy_file_form__file_rights_container">
<div class="buy_file_form__file_rights_label">
<a id="buy_file_form__file_rights_toggle" href="javascript:void(0)">
License info <i class="fa fa-caret-down"></i>
</a>
</div>
<div id="buy_file_form__file_rights_defined_container">
<div class="buy_file_form__file_rights_label">
Usage rights granted by seller:
</div>
<div id="buy_file_form__file_rights_defined_select_and_custom_containers">
<div id="buy_file_form__file_rights_defined_select_all_containers">
<div class="buy_file_form__file_rights_defined_select_container">
<div class="buy_file_form__file_rights_defined_select_label">
Exclusivity </div>
<div class="buy_file_form__file_rights_defined_select_value" id="buy_file_form__file_rights_defined_select_value_usage_rights"></div>
</div>
<div class="buy_file_form__file_rights_defined_select_container">
<div class="buy_file_form__file_rights_defined_select_label">
Application </div>
<div class="buy_file_form__file_rights_defined_select_value" id="buy_file_form__file_rights_defined_select_value_usage_application"></div>
</div>
<div class="buy_file_form__file_rights_defined_select_container">
<div class="buy_file_form__file_rights_defined_select_label">
Duration </div>
<div class="buy_file_form__file_rights_defined_select_value" id="buy_file_form__file_rights_defined_select_value_usage_duration"></div>
</div>
<div class="buy_file_form__file_rights_defined_select_container">
<div class="buy_file_form__file_rights_defined_select_label">
Reproduction </div>
<div class="buy_file_form__file_rights_defined_select_value" id="buy_file_form__file_rights_defined_select_value_usage_reproduction"></div>
</div>
</div>
<div id="buy_file_form__file_rights_custom_container">
<div id="buy_file_form__file_rights_custom"></div>
</div>
</div>
</div>
</div>
<!-- /file rights of use -->
<!-- footer -->
<div id="buy_file_form__footer">
<div id="buy_file_form__footer_already_added_to_cart_msg_wrapper">
<div id="buy_file_form__footer_already_added_to_cart_msg">
<i class="fa fa-check-circle"></i> Already added to cart </div>
</div>
<div id="buy_file_form__button_container">
<div id="buy_file_form__footer_add_to_cart_button">
Add to cart </div>
</div>
<div id="buy_file_form__terms_container">
<a href="/terms#file_purchase_terms" target="_blank" id="buy_file_form__footer_terms">
Terms </a>
</div>
</div>
<!-- /footer -->
<!-- element for form disabling -->
<div class="buy_file__disable"></div>
<!-- /element for form disabling -->
</div>
<!-- /file price form content -->
</div>
</div>
<div class="modal-close buy_file__modal_close" data-dismiss="modal" data-close="Close">X</div>
<div class="buy_file_form_modal_close_mobile_wrapper">
<i id="buy_file_form_modal_close_mobile" data-dismiss="modal" data-close="x" class="fal fa-times modal-close"></i>
</div>
</section>
<!-- /file price form -->
<!-- shopping cart form -->
<section id="buy_file_shopping_cart" class="modal-container" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
<div class="modal-inner">
<div class="modal-content">
<!-- header -->
<div id="buy_file_shopping_cart__header">
<div id="buy_file_shopping_cart__header_main_text">
Shopping cart </div>
</div>
<!-- /header -->
<!-- alerts -->
<div class="buy_file__payment_alerts_container">
<table class="alert_container alert_container_danger">
<tbody><tr>
<td>
<i class="fa fa-exclamation-circle"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
</div>
<div class="buy_file__top_alerts_container">
<table class="alert_container alert_container_danger">
<tbody><tr>
<td>
<i class="fa fa-exclamation-circle"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
<table class="alert_container alert_container_success">
<tbody><tr>
<td>
<i class="fa fa-check-circle"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
<table class="alert_container alert_container_info">
<tbody><tr>
<td>
<i class="fa fa-spinner fa-spin"></i>
</td>
<td>
<div class="alert_main_text"></div>
</td>
</tr>
</tbody></table>
</div>
<!-- /alerts -->
<!-- shopping cart content -->
<div id="buy_file_shopping_cart__content">
<div id="buy_file_shopping_cart__non-stripe">
<!-- discount info -->
<div class="buy_file_form__discount_info__container">
<div class="buy_file_form__discount_info__label">
Get a discount! </div>
</div>
<!-- /discount info -->
<!-- products table -->
<div id="buy_file_shopping_cart__product_block">
<div id="buy_file_shopping_cart__product_list">
<div id="buy_file_shopping_cart__product_row__last_empty">
</div>
</div>
</div>
<!-- /products table -->
<!-- payment data -->
<div id="buy_file_shopping_cart__buyer_info">
<div id="buy_file_shopping_cart__buyer_info_type_container">
<div id="buy_file_shopping_cart__buyer_info_label" class="buy_file_shopping_cart__type_container_title">
Payer:
</div>
<div id="buy_file_shopping_cart__buyers_data__payer_type">
<div class="buy_file_shopping_cart__buyer_container">
<input type="radio" name="buy_file_shopping_cart__payer_type_radio" value="private" class="buy_file_shopping_cart__payer_type_radio styled_radio_btn" id="buy_file_shopping_cart__payer_type_radio__private" checked="checked">
<label for="buy_file_shopping_cart__payer_type_radio__private">Private</label>
</div>
<div class="buy_file_shopping_cart__buyer_container">
<input type="radio" name="buy_file_shopping_cart__payer_type_radio" value="business" class="buy_file_shopping_cart__payer_type_radio styled_radio_btn" id="buy_file_shopping_cart__payer_type_radio__business">
<label for="buy_file_shopping_cart__payer_type_radio__business">Company</label>
</div>
</div>
</div>
<table id="buy_file_shopping_cart__contact_input_table">
<tbody><tr class="buy_file_shopping_cart__buyers_input buy_file_shopping_cart__buyers_input__private">
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_name_container">
<input type="text" id="buy_file_shopping_cart__buyers_name" name="name" value="">
<div class="buy_file_shopping_cart__input_label">
First name </div>
<div class="buy_file_shopping_cart__error-text-container">
Please fill out all fields! </div>
</td>
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_surname_container">
<input type="text" id="buy_file_shopping_cart__buyers_surname" name="surname" value="">
<div class="buy_file_shopping_cart__input_label">
Surname </div>
<div class="buy_file_shopping_cart__error-text-container">
Please fill out all fields! </div>
</td>
<td></td>
</tr>
<tr class="buy_file_shopping_cart__buyers_input buy_file_shopping_cart__buyers_input__business">
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_company_name_container">
<input type="text" id="buy_file_shopping_cart__buyers_company_name" name="company_name" value="">
<div class="buy_file_shopping_cart__input_label">
Name </div>
<div class="buy_file_shopping_cart__error-text-container">
Please fill out all fields! </div>
</td>
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_company_reg_number_container">
<input type="text" id="buy_file_shopping_cart__buyers_company_reg_number" name="company_reg_number" value="">
<div class="buy_file_shopping_cart__input_label">
Reg. number </div>
</td>
<td></td>
</tr>
<tr class="buy_file_shopping_cart__buyers_input buy_file_shopping_cart__buyers_input__business">
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_company_vat_number_container">
<input type="text" id="buy_file_shopping_cart__buyers_company_vat_number" name="company_vat_number" value="">
<div class="buy_file_shopping_cart__input_label">
VAT number </div>
</td>
<td class="buy_file_shopping_cart__contact_cell_container cell-empty">
</td>
<td></td>
</tr>
<tr>
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_email_container">
<input type="email" id="buy_file_shopping_cart__buyers_email" name="email" value="">
<div class="buy_file_shopping_cart__input_label">
E-mail </div>
<div class="buy_file_shopping_cart__error-text-container">
Please fill out all fields! </div>
</td>
<td class="buy_file_shopping_cart__contact_cell_container" id="buy_file_shopping_cart__buyers_country_container">
<div class="buy_file_shopping_cart__input_label">
Country </div>
<div id="buy_file_shopping_cart__buyers_country_styled_select" class="styled-select">
<select id="buy_file_shopping_cart__buyers_country">
<option>&nbsp;</option>
<option value="af">Afghanistan</option>
<option value="ax">Aland Islands</option>
<option value="al">Albania</option>
<option value="dz">Algeria</option>
<option value="as">American Samoa</option>
<option value="ad">Andorra</option>
<option value="ao">Angola</option>
<option value="ai">Anguilla</option>
<option value="aq">Antarctica</option>
<option value="ag">Antigua and Barbuda</option>
<option value="ar">Argentina</option>
<option value="am">Armenia</option>
<option value="aw">Aruba</option>
<option value="ac">Ascension Island</option>
<option value="au">Australia</option>
<option value="at">Austria</option>
<option value="az">Azerbaijan</option>
<option value="bs">Bahamas</option>
<option value="bh">Bahrain</option>
<option value="bd">Bangladesh</option>
<option value="bb">Barbados</option>
<option value="by">Belarus</option>
<option value="be">Belgium</option>
<option value="bz">Belize</option>
<option value="bj">Benin</option>
<option value="bm">Bermuda</option>
<option value="bt">Bhutan</option>
<option value="bo">Bolivia</option>
<option value="ba">Bosnia and Herzegowina</option>
<option value="bw">Botswana</option>
<option value="bv">Bouvet Island</option>
<option value="br">Brazil</option>
<option value="io">British Indian Ocean Territory</option>
<option value="bn">Brunei Darussalam</option>
<option value="bg">Bulgaria</option>
<option value="bf">Burkina Faso</option>
<option value="bi">Burundi</option>
<option value="kh">Cambodia</option>
<option value="cm">Cameroon</option>
<option value="ca">Canada</option>
<option value="cv">Cape Verde</option>
<option value="ky">Cayman Islands</option>
<option value="cf">Central African Republic</option>
<option value="td">Chad</option>
<option value="cl">Chile</option>
<option value="cn">China</option>
<option value="cx">Christmas Island</option>
<option value="cc">Cocos (Keeling) Islands</option>
<option value="co">Colombia</option>
<option value="km">Comoros</option>
<option value="cg">Congo</option>
<option value="cd">Congo the Democratic Republic of The</option>
<option value="ck">Cook Islands</option>
<option value="cr">Costa Rica</option>
<option value="ci">Cote D'ivoire</option>
<option value="hr">Croatia</option>
<option value="cu">Cuba</option>
<option value="cy">Cyprus</option>
<option value="cz">Czech Republic</option>
<option value="dk">Denmark</option>
<option value="dj">Djibouti</option>
<option value="dm">Dominica</option>
<option value="do">Dominican Republic</option>
<option value="tp">East Timor</option>
<option value="ec">Ecuador</option>
<option value="eg">Egypt</option>
<option value="sv">El Salvador</option>
<option value="gq">Equatorial Guinea</option>
<option value="er">Eritrea</option>
<option value="ee">Estonia</option>
<option value="et">Ethiopia</option>
<option value="eu">European Union</option>
<option value="fk">Falkland Islands (Malvinas)</option>
<option value="fo">Faroe Islands</option>
<option value="fj">Fiji</option>
<option value="fi">Finland</option>
<option value="fr">France</option>
<option value="fx">France Metro</option>
<option value="gf">French Guiana</option>
<option value="pf">French Polynesia</option>
<option value="tf">French Southern Territories</option>
<option value="ga">Gabon</option>
<option value="gm">Gambia</option>
<option value="ge">Georgia</option>
<option value="de">Germany</option>
<option value="gh">Ghana</option>
<option value="gi">Gibraltar</option>
<option value="gr">Greece</option>
<option value="gl">Greenland</option>
<option value="gd">Grenada</option>
<option value="gp">Guadeloupe</option>
<option value="gu">Guam</option>
<option value="gt">Guatemala</option>
<option value="gg">Guernsey</option>
<option value="gn">Guinea</option>
<option value="gw">Guinea-bissau</option>
<option value="gy">Guyana</option>
<option value="ht">Haiti</option>
<option value="hm">Heard and Mc Donald Islands</option>
<option value="va">Holy See (Vatican City State)</option>
<option value="hn">Honduras</option>
<option value="hk">Hong Kong</option>
<option value="hu">Hungary</option>
<option value="is">Iceland</option>
<option value="in">India</option>
<option value="id">Indonesia</option>
<option value="ir">Iran (Islamic Republic Of)</option>
<option value="iq">Iraq</option>
<option value="ie">Ireland</option>
<option value="im">Isle of Man</option>
<option value="il">Israel</option>
<option value="it">Italy</option>
<option value="jm">Jamaica</option>
<option value="jp">Japan</option>
<option value="je">Jersey</option>
<option value="jo">Jordan</option>
<option value="kz">Kazakhstan</option>
<option value="ke">Kenya</option>
<option value="ki">Kiribati</option>
<option value="kp">Korea Democratic People's Republic of</option>
<option value="kr">Korea Republic of</option>
<option value="kw">Kuwait</option>
<option value="kg">Kyrgyzstan</option>
<option value="la">Lao People's Democratic Republic</option>
<option value="lv">Latvia</option>
<option value="lb">Lebanon</option>
<option value="ls">Lesotho</option>
<option value="lr">Liberia</option>
<option value="ly">Libyan Arab Jamahiriya</option>
<option value="li">Liechtenstein</option>
<option value="lt">Lithuania</option>
<option value="lu">Luxembourg</option>
<option value="mo">Macau</option>
<option value="mk">Macedonia</option>
<option value="mg">Madagascar</option>
<option value="mw">Malawi</option>
<option value="my">Malaysia</option>
<option value="mv">Maldives</option>
<option value="ml">Mali</option>
<option value="mt">Malta</option>
<option value="mh">Marshall Islands</option>
<option value="mq">Martinique</option>
<option value="mr">Mauritania</option>
<option value="mu">Mauritius</option>
<option value="yt">Mayotte</option>
<option value="mx">Mexico</option>
<option value="fm">Micronesia Federated States of</option>
<option value="md">Moldova Republic of</option>
<option value="mc">Monaco</option>
<option value="mn">Mongolia</option>
<option value="me">Montenegro</option>
<option value="ms">Montserrat</option>
<option value="ma">Morocco</option>
<option value="mz">Mozambique</option>
<option value="mm">Myanmar</option>
<option value="na">Namibia</option>
<option value="nr">Nauru</option>
<option value="np">Nepal</option>
<option value="nl">Netherlands</option>
<option value="an">Netherlands Antilles</option>
<option value="nc">New Caledonia</option>
<option value="nz">New Zealand</option>
<option value="ni">Nicaragua</option>
<option value="ne">Niger</option>
<option value="ng">Nigeria</option>
<option value="nu">Niue</option>
<option value="ap">Non-spec Asia Pas Location</option>
<option value="nf">Norfolk Island</option>
<option value="mp">Northern Mariana Islands</option>
<option value="no">Norway</option>
<option value="om">Oman</option>
<option value="pk">Pakistan</option>
<option value="pw">Palau</option>
<option value="ps">Palestinian Territory Occupied</option>
<option value="pa">Panama</option>
<option value="pg">Papua New Guinea</option>
<option value="py">Paraguay</option>
<option value="pe">Peru</option>
<option value="ph">Philippines</option>
<option value="pn">Pitcairn</option>
<option value="pl">Poland</option>
<option value="pt">Portugal</option>
<option value="pr">Puerto Rico</option>
<option value="qa">Qatar</option>
<option value="re">Reunion</option>
<option value="ro">Romania</option>
<option value="ru">Russian Federation</option>
<option value="rw">Rwanda</option>
<option value="kn">Saint Kitts And Nevis</option>
<option value="lc">Saint Lucia</option>
<option value="mf">Saint Martin</option>
<option value="vc">Saint Vincent And The Grenadines</option>
<option value="ws">Samoa</option>
<option value="sm">San Marino</option>
<option value="st">Sao Tome And Principe</option>
<option value="sa">Saudi Arabia</option>
<option value="sn">Senegal</option>
<option value="rs">Serbia</option>
<option value="yu">Serbia And Montenegro</option>
<option value="cs">Serbia And Montenegro</option>
<option value="sc">Seychelles</option>
<option value="sl">Sierra Leone</option>
<option value="sg">Singapore</option>
<option value="sk">Slovakia (Slovak Republic)</option>
<option value="si">Slovenia</option>
<option value="sb">Solomon Islands</option>
<option value="so">Somalia</option>
<option value="za">South Africa</option>
<option value="gs">South Georgia and The South Sandwich Islands</option>
<option value="es">Spain</option>
<option value="lk">Sri Lanka</option>
<option value="sh">St. Helena</option>
<option value="pm">St. Pierre and Miquelon</option>
<option value="sd">Sudan</option>
<option value="sr">Suriname</option>
<option value="sj">Svalbard and Jan Mayen Islands</option>
<option value="sz">Swaziland</option>
<option value="se">Sweden</option>
<option value="ch">Switzerland</option>
<option value="sy">Syrian Arab Republic</option>
<option value="tw">Taiwan; Republic of China (Roc)</option>
<option value="tj">Tajikistan</option>
<option value="tz">Tanzania United Republic of</option>
<option value="th">Thailand</option>
<option value="tl">Timor-leste</option>
<option value="tg">Togo</option>
<option value="tk">Tokelau</option>
<option value="to">Tonga</option>
<option value="tt">Trinidad And Tobago</option>
<option value="tn">Tunisia</option>
<option value="tr">Turkey</option>
<option value="tm">Turkmenistan</option>
<option value="tc">Turks and Caicos Islands</option>
<option value="tv">Tuvalu</option>
<option value="ug">Uganda</option>
<option value="ua">Ukraine</option>
<option value="ae">United Arab Emirates</option>
<option value="gb">United Kingdom</option>
<option value="uk">United Kingdom</option>
<option value="us" selected="selected">United States</option>
<option value="um">United States Minor Outlying Islands</option>
<option value="uy">Uruguay</option>
<option value="uz">Uzbekistan</option>
<option value="vu">Vanuatu</option>
<option value="ve">Venezuela</option>
<option value="vn">Viet Nam</option>
<option value="vg">Virgin Islands (British)</option>
<option value="vi">Virgin Islands (U.S.)</option>
<option value="wf">Wallis and Futuna Islands</option>
<option value="eh">Western Sahara</option>
<option value="ye">Yemen</option>
<option value="zm">Zambia</option>
<option value="zw">Zimbabwe</option>
</select>
<div class="select-selected">United States</div><div class="select-items select-hide"><div id="buy_file_shopping_cart__buyers_country_af">Afghanistan</div><div id="buy_file_shopping_cart__buyers_country_ax">Aland Islands</div><div id="buy_file_shopping_cart__buyers_country_al">Albania</div><div id="buy_file_shopping_cart__buyers_country_dz">Algeria</div><div id="buy_file_shopping_cart__buyers_country_as">American Samoa</div><div id="buy_file_shopping_cart__buyers_country_ad">Andorra</div><div id="buy_file_shopping_cart__buyers_country_ao">Angola</div><div id="buy_file_shopping_cart__buyers_country_ai">Anguilla</div><div id="buy_file_shopping_cart__buyers_country_aq">Antarctica</div><div id="buy_file_shopping_cart__buyers_country_ag">Antigua and Barbuda</div><div id="buy_file_shopping_cart__buyers_country_ar">Argentina</div><div id="buy_file_shopping_cart__buyers_country_am">Armenia</div><div id="buy_file_shopping_cart__buyers_country_aw">Aruba</div><div id="buy_file_shopping_cart__buyers_country_ac">Ascension Island</div><div id="buy_file_shopping_cart__buyers_country_au">Australia</div><div id="buy_file_shopping_cart__buyers_country_at">Austria</div><div id="buy_file_shopping_cart__buyers_country_az">Azerbaijan</div><div id="buy_file_shopping_cart__buyers_country_bs">Bahamas</div><div id="buy_file_shopping_cart__buyers_country_bh">Bahrain</div><div id="buy_file_shopping_cart__buyers_country_bd">Bangladesh</div><div id="buy_file_shopping_cart__buyers_country_bb">Barbados</div><div id="buy_file_shopping_cart__buyers_country_by">Belarus</div><div id="buy_file_shopping_cart__buyers_country_be">Belgium</div><div id="buy_file_shopping_cart__buyers_country_bz">Belize</div><div id="buy_file_shopping_cart__buyers_country_bj">Benin</div><div id="buy_file_shopping_cart__buyers_country_bm">Bermuda</div><div id="buy_file_shopping_cart__buyers_country_bt">Bhutan</div><div id="buy_file_shopping_cart__buyers_country_bo">Bolivia</div><div id="buy_file_shopping_cart__buyers_country_ba">Bosnia and Herzegowina</div><div id="buy_file_shopping_cart__buyers_country_bw">Botswana</div><div id="buy_file_shopping_cart__buyers_country_bv">Bouvet Island</div><div id="buy_file_shopping_cart__buyers_country_br">Brazil</div><div id="buy_file_shopping_cart__buyers_country_io">British Indian Ocean Territory</div><div id="buy_file_shopping_cart__buyers_country_bn">Brunei Darussalam</div><div id="buy_file_shopping_cart__buyers_country_bg">Bulgaria</div><div id="buy_file_shopping_cart__buyers_country_bf">Burkina Faso</div><div id="buy_file_shopping_cart__buyers_country_bi">Burundi</div><div id="buy_file_shopping_cart__buyers_country_kh">Cambodia</div><div id="buy_file_shopping_cart__buyers_country_cm">Cameroon</div><div id="buy_file_shopping_cart__buyers_country_ca">Canada</div><div id="buy_file_shopping_cart__buyers_country_cv">Cape Verde</div><div id="buy_file_shopping_cart__buyers_country_ky">Cayman Islands</div><div id="buy_file_shopping_cart__buyers_country_cf">Central African Republic</div><div id="buy_file_shopping_cart__buyers_country_td">Chad</div><div id="buy_file_shopping_cart__buyers_country_cl">Chile</div><div id="buy_file_shopping_cart__buyers_country_cn">China</div><div id="buy_file_shopping_cart__buyers_country_cx">Christmas Island</div><div id="buy_file_shopping_cart__buyers_country_cc">Cocos (Keeling) Islands</div><div id="buy_file_shopping_cart__buyers_country_co">Colombia</div><div id="buy_file_shopping_cart__buyers_country_km">Comoros</div><div id="buy_file_shopping_cart__buyers_country_cg">Congo</div><div id="buy_file_shopping_cart__buyers_country_cd">Congo the Democratic Republic of The</div><div id="buy_file_shopping_cart__buyers_country_ck">Cook Islands</div><div id="buy_file_shopping_cart__buyers_country_cr">Costa Rica</div><div id="buy_file_shopping_cart__buyers_country_ci">Cote D'ivoire</div><div id="buy_file_shopping_cart__buyers_country_hr">Croatia</div><div id="buy_file_shopping_cart__buyers_country_cu">Cuba</div><div id="buy_file_shopping_cart__buyers_country_cy">Cyprus</div><div id="buy_file_shopping_cart__buyers_country_cz">Czech Republic</div><div id="buy_file_shopping_cart__buyers_country_dk">Denmark</div><div id="buy_file_shopping_cart__buyers_country_dj">Djibouti</div><div id="buy_file_shopping_cart__buyers_country_dm">Dominica</div><div id="buy_file_shopping_cart__buyers_country_do">Dominican Republic</div><div id="buy_file_shopping_cart__buyers_country_tp">East Timor</div><div id="buy_file_shopping_cart__buyers_country_ec">Ecuador</div><div id="buy_file_shopping_cart__buyers_country_eg">Egypt</div><div id="buy_file_shopping_cart__buyers_country_sv">El Salvador</div><div id="buy_file_shopping_cart__buyers_country_gq">Equatorial Guinea</div><div id="buy_file_shopping_cart__buyers_country_er">Eritrea</div><div id="buy_file_shopping_cart__buyers_country_ee">Estonia</div><div id="buy_file_shopping_cart__buyers_country_et">Ethiopia</div><div id="buy_file_shopping_cart__buyers_country_eu">European Union</div><div id="buy_file_shopping_cart__buyers_country_fk">Falkland Islands (Malvinas)</div><div id="buy_file_shopping_cart__buyers_country_fo">Faroe Islands</div><div id="buy_file_shopping_cart__buyers_country_fj">Fiji</div><div id="buy_file_shopping_cart__buyers_country_fi">Finland</div><div id="buy_file_shopping_cart__buyers_country_fr">France</div><div id="buy_file_shopping_cart__buyers_country_fx">France Metro</div><div id="buy_file_shopping_cart__buyers_country_gf">French Guiana</div><div id="buy_file_shopping_cart__buyers_country_pf">French Polynesia</div><div id="buy_file_shopping_cart__buyers_country_tf">French Southern Territories</div><div id="buy_file_shopping_cart__buyers_country_ga">Gabon</div><div id="buy_file_shopping_cart__buyers_country_gm">Gambia</div><div id="buy_file_shopping_cart__buyers_country_ge">Georgia</div><div id="buy_file_shopping_cart__buyers_country_de">Germany</div><div id="buy_file_shopping_cart__buyers_country_gh">Ghana</div><div id="buy_file_shopping_cart__buyers_country_gi">Gibraltar</div><div id="buy_file_shopping_cart__buyers_country_gr">Greece</div><div id="buy_file_shopping_cart__buyers_country_gl">Greenland</div><div id="buy_file_shopping_cart__buyers_country_gd">Grenada</div><div id="buy_file_shopping_cart__buyers_country_gp">Guadeloupe</div><div id="buy_file_shopping_cart__buyers_country_gu">Guam</div><div id="buy_file_shopping_cart__buyers_country_gt">Guatemala</div><div id="buy_file_shopping_cart__buyers_country_gg">Guernsey</div><div id="buy_file_shopping_cart__buyers_country_gn">Guinea</div><div id="buy_file_shopping_cart__buyers_country_gw">Guinea-bissau</div><div id="buy_file_shopping_cart__buyers_country_gy">Guyana</div><div id="buy_file_shopping_cart__buyers_country_ht">Haiti</div><div id="buy_file_shopping_cart__buyers_country_hm">Heard and Mc Donald Islands</div><div id="buy_file_shopping_cart__buyers_country_va">Holy See (Vatican City State)</div><div id="buy_file_shopping_cart__buyers_country_hn">Honduras</div><div id="buy_file_shopping_cart__buyers_country_hk">Hong Kong</div><div id="buy_file_shopping_cart__buyers_country_hu">Hungary</div><div id="buy_file_shopping_cart__buyers_country_is">Iceland</div><div id="buy_file_shopping_cart__buyers_country_in">India</div><div id="buy_file_shopping_cart__buyers_country_id">Indonesia</div><div id="buy_file_shopping_cart__buyers_country_ir">Iran (Islamic Republic Of)</div><div id="buy_file_shopping_cart__buyers_country_iq">Iraq</div><div id="buy_file_shopping_cart__buyers_country_ie">Ireland</div><div id="buy_file_shopping_cart__buyers_country_im">Isle of Man</div><div id="buy_file_shopping_cart__buyers_country_il">Israel</div><div id="buy_file_shopping_cart__buyers_country_it">Italy</div><div id="buy_file_shopping_cart__buyers_country_jm">Jamaica</div><div id="buy_file_shopping_cart__buyers_country_jp">Japan</div><div id="buy_file_shopping_cart__buyers_country_je">Jersey</div><div id="buy_file_shopping_cart__buyers_country_jo">Jordan</div><div id="buy_file_shopping_cart__buyers_country_kz">Kazakhstan</div><div id="buy_file_shopping_cart__buyers_country_ke">Kenya</div><div id="buy_file_shopping_cart__buyers_country_ki">Kiribati</div><div id="buy_file_shopping_cart__buyers_country_kp">Korea Democratic People's Republic of</div><div id="buy_file_shopping_cart__buyers_country_kr">Korea Republic of</div><div id="buy_file_shopping_cart__buyers_country_kw">Kuwait</div><div id="buy_file_shopping_cart__buyers_country_kg">Kyrgyzstan</div><div id="buy_file_shopping_cart__buyers_country_la">Lao People's Democratic Republic</div><div id="buy_file_shopping_cart__buyers_country_lv">Latvia</div><div id="buy_file_shopping_cart__buyers_country_lb">Lebanon</div><div id="buy_file_shopping_cart__buyers_country_ls">Lesotho</div><div id="buy_file_shopping_cart__buyers_country_lr">Liberia</div><div id="buy_file_shopping_cart__buyers_country_ly">Libyan Arab Jamahiriya</div><div id="buy_file_shopping_cart__buyers_country_li">Liechtenstein</div><div id="buy_file_shopping_cart__buyers_country_lt">Lithuania</div><div id="buy_file_shopping_cart__buyers_country_lu">Luxembourg</div><div id="buy_file_shopping_cart__buyers_country_mo">Macau</div><div id="buy_file_shopping_cart__buyers_country_mk">Macedonia</div><div id="buy_file_shopping_cart__buyers_country_mg">Madagascar</div><div id="buy_file_shopping_cart__buyers_country_mw">Malawi</div><div id="buy_file_shopping_cart__buyers_country_my">Malaysia</div><div id="buy_file_shopping_cart__buyers_country_mv">Maldives</div><div id="buy_file_shopping_cart__buyers_country_ml">Mali</div><div id="buy_file_shopping_cart__buyers_country_mt">Malta</div><div id="buy_file_shopping_cart__buyers_country_mh">Marshall Islands</div><div id="buy_file_shopping_cart__buyers_country_mq">Martinique</div><div id="buy_file_shopping_cart__buyers_country_mr">Mauritania</div><div id="buy_file_shopping_cart__buyers_country_mu">Mauritius</div><div id="buy_file_shopping_cart__buyers_country_yt">Mayotte</div><div id="buy_file_shopping_cart__buyers_country_mx">Mexico</div><div id="buy_file_shopping_cart__buyers_country_fm">Micronesia Federated States of</div><div id="buy_file_shopping_cart__buyers_country_md">Moldova Republic of</div><div id="buy_file_shopping_cart__buyers_country_mc">Monaco</div><div id="buy_file_shopping_cart__buyers_country_mn">Mongolia</div><div id="buy_file_shopping_cart__buyers_country_me">Montenegro</div><div id="buy_file_shopping_cart__buyers_country_ms">Montserrat</div><div id="buy_file_shopping_cart__buyers_country_ma">Morocco</div><div id="buy_file_shopping_cart__buyers_country_mz">Mozambique</div><div id="buy_file_shopping_cart__buyers_country_mm">Myanmar</div><div id="buy_file_shopping_cart__buyers_country_na">Namibia</div><div id="buy_file_shopping_cart__buyers_country_nr">Nauru</div><div id="buy_file_shopping_cart__buyers_country_np">Nepal</div><div id="buy_file_shopping_cart__buyers_country_nl">Netherlands</div><div id="buy_file_shopping_cart__buyers_country_an">Netherlands Antilles</div><div id="buy_file_shopping_cart__buyers_country_nc">New Caledonia</div><div id="buy_file_shopping_cart__buyers_country_nz">New Zealand</div><div id="buy_file_shopping_cart__buyers_country_ni">Nicaragua</div><div id="buy_file_shopping_cart__buyers_country_ne">Niger</div><div id="buy_file_shopping_cart__buyers_country_ng">Nigeria</div><div id="buy_file_shopping_cart__buyers_country_nu">Niue</div><div id="buy_file_shopping_cart__buyers_country_ap">Non-spec Asia Pas Location</div><div id="buy_file_shopping_cart__buyers_country_nf">Norfolk Island</div><div id="buy_file_shopping_cart__buyers_country_mp">Northern Mariana Islands</div><div id="buy_file_shopping_cart__buyers_country_no">Norway</div><div id="buy_file_shopping_cart__buyers_country_om">Oman</div><div id="buy_file_shopping_cart__buyers_country_pk">Pakistan</div><div id="buy_file_shopping_cart__buyers_country_pw">Palau</div><div id="buy_file_shopping_cart__buyers_country_ps">Palestinian Territory Occupied</div><div id="buy_file_shopping_cart__buyers_country_pa">Panama</div><div id="buy_file_shopping_cart__buyers_country_pg">Papua New Guinea</div><div id="buy_file_shopping_cart__buyers_country_py">Paraguay</div><div id="buy_file_shopping_cart__buyers_country_pe">Peru</div><div id="buy_file_shopping_cart__buyers_country_ph">Philippines</div><div id="buy_file_shopping_cart__buyers_country_pn">Pitcairn</div><div id="buy_file_shopping_cart__buyers_country_pl">Poland</div><div id="buy_file_shopping_cart__buyers_country_pt">Portugal</div><div id="buy_file_shopping_cart__buyers_country_pr">Puerto Rico</div><div id="buy_file_shopping_cart__buyers_country_qa">Qatar</div><div id="buy_file_shopping_cart__buyers_country_re">Reunion</div><div id="buy_file_shopping_cart__buyers_country_ro">Romania</div><div id="buy_file_shopping_cart__buyers_country_ru">Russian Federation</div><div id="buy_file_shopping_cart__buyers_country_rw">Rwanda</div><div id="buy_file_shopping_cart__buyers_country_kn">Saint Kitts And Nevis</div><div id="buy_file_shopping_cart__buyers_country_lc">Saint Lucia</div><div id="buy_file_shopping_cart__buyers_country_mf">Saint Martin</div><div id="buy_file_shopping_cart__buyers_country_vc">Saint Vincent And The Grenadines</div><div id="buy_file_shopping_cart__buyers_country_ws">Samoa</div><div id="buy_file_shopping_cart__buyers_country_sm">San Marino</div><div id="buy_file_shopping_cart__buyers_country_st">Sao Tome And Principe</div><div id="buy_file_shopping_cart__buyers_country_sa">Saudi Arabia</div><div id="buy_file_shopping_cart__buyers_country_sn">Senegal</div><div id="buy_file_shopping_cart__buyers_country_rs">Serbia</div><div id="buy_file_shopping_cart__buyers_country_yu">Serbia And Montenegro</div><div id="buy_file_shopping_cart__buyers_country_cs">Serbia And Montenegro</div><div id="buy_file_shopping_cart__buyers_country_sc">Seychelles</div><div id="buy_file_shopping_cart__buyers_country_sl">Sierra Leone</div><div id="buy_file_shopping_cart__buyers_country_sg">Singapore</div><div id="buy_file_shopping_cart__buyers_country_sk">Slovakia (Slovak Republic)</div><div id="buy_file_shopping_cart__buyers_country_si">Slovenia</div><div id="buy_file_shopping_cart__buyers_country_sb">Solomon Islands</div><div id="buy_file_shopping_cart__buyers_country_so">Somalia</div><div id="buy_file_shopping_cart__buyers_country_za">South Africa</div><div id="buy_file_shopping_cart__buyers_country_gs">South Georgia and The South Sandwich Islands</div><div id="buy_file_shopping_cart__buyers_country_es">Spain</div><div id="buy_file_shopping_cart__buyers_country_lk">Sri Lanka</div><div id="buy_file_shopping_cart__buyers_country_sh">St. Helena</div><div id="buy_file_shopping_cart__buyers_country_pm">St. Pierre and Miquelon</div><div id="buy_file_shopping_cart__buyers_country_sd">Sudan</div><div id="buy_file_shopping_cart__buyers_country_sr">Suriname</div><div id="buy_file_shopping_cart__buyers_country_sj">Svalbard and Jan Mayen Islands</div><div id="buy_file_shopping_cart__buyers_country_sz">Swaziland</div><div id="buy_file_shopping_cart__buyers_country_se">Sweden</div><div id="buy_file_shopping_cart__buyers_country_ch">Switzerland</div><div id="buy_file_shopping_cart__buyers_country_sy">Syrian Arab Republic</div><div id="buy_file_shopping_cart__buyers_country_tw">Taiwan; Republic of China (Roc)</div><div id="buy_file_shopping_cart__buyers_country_tj">Tajikistan</div><div id="buy_file_shopping_cart__buyers_country_tz">Tanzania United Republic of</div><div id="buy_file_shopping_cart__buyers_country_th">Thailand</div><div id="buy_file_shopping_cart__buyers_country_tl">Timor-leste</div><div id="buy_file_shopping_cart__buyers_country_tg">Togo</div><div id="buy_file_shopping_cart__buyers_country_tk">Tokelau</div><div id="buy_file_shopping_cart__buyers_country_to">Tonga</div><div id="buy_file_shopping_cart__buyers_country_tt">Trinidad And Tobago</div><div id="buy_file_shopping_cart__buyers_country_tn">Tunisia</div><div id="buy_file_shopping_cart__buyers_country_tr">Turkey</div><div id="buy_file_shopping_cart__buyers_country_tm">Turkmenistan</div><div id="buy_file_shopping_cart__buyers_country_tc">Turks and Caicos Islands</div><div id="buy_file_shopping_cart__buyers_country_tv">Tuvalu</div><div id="buy_file_shopping_cart__buyers_country_ug">Uganda</div><div id="buy_file_shopping_cart__buyers_country_ua">Ukraine</div><div id="buy_file_shopping_cart__buyers_country_ae">United Arab Emirates</div><div id="buy_file_shopping_cart__buyers_country_gb">United Kingdom</div><div id="buy_file_shopping_cart__buyers_country_uk">United Kingdom</div><div id="buy_file_shopping_cart__buyers_country_us">United States</div><div id="buy_file_shopping_cart__buyers_country_um">United States Minor Outlying Islands</div><div id="buy_file_shopping_cart__buyers_country_uy">Uruguay</div><div id="buy_file_shopping_cart__buyers_country_uz">Uzbekistan</div><div id="buy_file_shopping_cart__buyers_country_vu">Vanuatu</div><div id="buy_file_shopping_cart__buyers_country_ve">Venezuela</div><div id="buy_file_shopping_cart__buyers_country_vn">Viet Nam</div><div id="buy_file_shopping_cart__buyers_country_vg">Virgin Islands (British)</div><div id="buy_file_shopping_cart__buyers_country_vi">Virgin Islands (U.S.)</div><div id="buy_file_shopping_cart__buyers_country_wf">Wallis and Futuna Islands</div><div id="buy_file_shopping_cart__buyers_country_eh">Western Sahara</div><div id="buy_file_shopping_cart__buyers_country_ye">Yemen</div><div id="buy_file_shopping_cart__buyers_country_zm">Zambia</div><div id="buy_file_shopping_cart__buyers_country_zw">Zimbabwe</div></div></div>
<div class="buy_file_shopping_cart__error-text-container">
Please fill out all fields! </div>
</td>
<td></td>
</tr>
</tbody></table>
<div id="buy_file_shopping_cart__payment_data">
<div id="buy_file_shopping_cart__payment_data_label" class="buy_file_shopping_cart__type_container_title">
Pay with:
</div>
<div id="buy_file_shopping_cart__payment_data_select">
<div class="buy_file_shopping_cart__payment_type_container" id="buy_file_shopping_cart__payment_type_container_stripe">
<input type="radio" name="buy_file_shopping_cart__payment_type_radio" value="stripe" class="buy_file_shopping_cart__payment_type_radio styled_radio_btn" id="buy_file_shopping_cart__payment_type_radio_stripe" checked="checked">
<label for="buy_file_shopping_cart__payment_type_radio_stripe" class="buy_file_shopping_cart__payment_type_image">
Card </label>
</div>
</div>
</div>
</div>
<!-- /payment data -->
<!-- description -->
<div id="buy_file_shopping_cart__description">
<div class="buy_file_shopping_cart__description_sub_text" id="buy_file_shopping_cart__description_sub_text_copy">
After payment, you will get access to the digital content in your Files.fm account. You will receive an email with your purchase details, invoice and a link to the content. To access the content, you need to identify yourself with the buyer’s email address. </div>
<div class="buy_file_shopping_cart__description_sub_text" id="buy_file_shopping_cart__description_sub_text_share">
After a successful payment the digital content will immediately become available for access in your Files.fm account. You will receive e-mail with the purchase and payment information. </div>
</div>
<!-- /description -->
<!-- footer -->
<div id="buy_file_shopping_cart__footer">
<div id="buy_file_shopping_cart__footer_main_block">
<div id="buy_file_shopping_cart__summary_block">
<table id="buy_file_shopping_cart__final_price_container">
<tbody><tr id="buy_file_shopping_cart__final_subtotal_sum_row">
<td class="buy_file_shopping_cart__final_label">
Subtotal:
</td>
<td class="buy_file_shopping_cart__final_price">
<span class="buy_file_shopping_cart__subtotal_sum_value">0.00</span><span class="currency">€</span>
</td>
</tr>
<tr id="buy_file_shopping_cart__final_discount_sum_row">
<td class="buy_file_shopping_cart__final_label">
Discount<span id="buy_file_shopping_cart__final_discount_sum_label__percent"></span>:
</td>
<td class="buy_file_shopping_cart__final_price">
<span class="buy_file_shopping_cart__discount_sum_value">0.00</span><span class="currency">€</span>
</td>
</tr>
<tr id="buy_file_shopping_cart__final_commission_fee_row">
<td class="buy_file_shopping_cart__final_label">
Payment service fee:
</td>
<td class="buy_file_shopping_cart__final_price">
0.29<span class="currency">€</span>
</td>
</tr>
<tr id="buy_file_shopping_cart__final_total_sum_row">
<td class="buy_file_shopping_cart__final_label">
<b>Total amount:</b>
</td>
<td class="buy_file_shopping_cart__final_price">
<b><span class="buy_file_shopping_cart__total_sum_value">0.00</span><span class="currency">€</span></b>
</td>
</tr>
</tbody></table>
</div>
<div id="buy_file_shopping_cart__button_container">
<div class="buy_file_shopping_cart__footer_pay_button" onclick="objBuyFile.pay()">
Pay <b><span class="buy_file_shopping_cart__total_sum_value">0.00</span><span class="currency">€</span></b>
</div>
</div>
<div id="buy_file_shopping_cart__platform">
Platform maintainer: Files.fm, Stabu 119, Riga, LV-1009. Nr: 40003962231 </div>
</div>
<div id="buy_file_shopping_cart__terms_container">
<a href="/terms#file_purchase_terms" target="_blank" id="buy_file_shopping_cart__footer_terms">
Terms </a>
</div>
</div>
<!-- /footer -->
</div>
<!-- creditcard data form -->
<div id="buy_file_shopping_cart__stripe-form">
<div id="buy_file_shopping_cart_cc-input-form">
<div id="buy_file_shopping_cart__stripe_form__payment_request_button__wrapper" class="stripe_form__payment_request_button__wrapper">
<div id="buy_file_shopping_cart__stripe_form__label" class="stripe_form__label">Pay with</div>
<div id="buy_file_shopping_cart__stripe_form__payment_option_select_wrapper" class="stripe_form__payment_option_select_wrapper">
<div id="buy_file_shopping_cart__stripe_form__payment_option_select_option__card" class="stripe_form__payment_option_select_option stripe_form__payment_option_select_option__card selected">
Card </div>
<div id="buy_file_shopping_cart__stripe_form__payment_request_button" class="stripe_form__payment_request_button stripe_form__payment_option_select_option stripe_form__payment_option_select_option__payment_request_button">
<img src="/images/credit_card/apple_pay.svg" class="stripe_form__payment_request_button__logo stripe_form__payment_request_button__logo__apple_pay">
<img src="/images/credit_card/google_pay.svg" class="stripe_form__payment_request_button__logo stripe_form__payment_request_button__logo__google_pay">
</div>
</div>
</div>
<div class="saved_cc_data stripe_form__card_elements"></div>
<div id="buy_file_shopping_cart__stripe_form__card_elements" class="stripe_form__card_elements">
<div id="buy_file_shopping_cart__stripe_form__card_element" class="stripe_form__card_element">
<div class="input-label">
<label>Card number</label>
<div id="buy_file_shopping_cart__stripe_form__card_number" class="stripe_form__card_number"></div>
</div>
<div class="input-label">
<label>Expiration date</label>
<div id="buy_file_shopping_cart__stripe_form__card_expiry" class="stripe_form__card_expiry"></div>
</div>
<div class="input-label">
<label>Security code</label>
<div id="buy_file_shopping_cart__stripe_form__card_cvc" class="stripe_form__card_cvc"></div>
</div>
</div>
<div id="buy_file_shopping_cart__stripe_form__card_errors"></div>
</div>
<div id="buy_file_shopping_cart__saved_cc_data_stripe__confirm_save__wrapper">
<input type="checkbox" id="buy_file_shopping_cart__saved_cc_data_stripe__confirm_save" class="saved_cc_data__confirm_save styled_checkbox" checked="checked">
<label for="buy_file_shopping_cart__saved_cc_data_stripe__confirm_save">
Save payment method for my other purchases </label>
</div>
<div id="buy_file_shopping_cart__stripe_form__action_btns">
<div id="buy_file_shopping_cart__stripe_form__cancel_button">
<i class="far fa-arrow-left"></i>
<span>Edit order</span>
</div>
<div id="buy_file_shopping_cart__stripe_form__pay_button" class="buy_file_shopping_cart__footer_pay_button">
Pay </div>
</div>
</div>
</div>
<!-- /creditcard data form -->
<div class="buy_file__disable"></div>
</div>
<!-- /shopping cart content -->
</div>
</div>
<div class="modal-close buy_file__modal_close" data-dismiss="modal" data-close="Close">X</div>
<div class="buy_file_form_modal_close_mobile_wrapper">
<i id="buy_file_form_modal_close_mobile" data-dismiss="modal" data-close="x" class="fal fa-times modal-close"></i>
</div>
</section>
<!-- /shopping cart form -->
<!-- payment success -->
<section id="buy_file_payment_success" class="modal-container" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
<div class="modal-inner">
<div class="modal-content">
<div id="buy_file_payment_success__header">
<img src="/images/payment-success-checkmarg-green.svg?v=1" class="buy_file_payment_success__header_checkmark">
<div id="buy_file_payment_success__header_main_text">
Payment successful! </div>
</div>
<div id="buy_file_payment_success__content">
<div id="buy_file_payment_success__content_main_text">
You can always access your purchase in your Files.fm account created with e-mail you entered: <b><span id="buy_file_payment_success__content_main_text_email"></span></b>
</div>
<div id="buy_file_payment_success__content_main_text_2">
We also have sent you e-mail with access, invoice and payment info. </div>
<div id="buy_file_payment_success__content_main_button"></div>
<div id="buy_file_payment_success__content_link"></div>
</div>
</div>
</div>
<div class="modal-close payment_success__modal_close" data-dismiss="modal" data-close="Close">X</div>
</section>
<!-- /payment success -->
<!-- small shopping cart fixed element in the window's right side -->
<div id="buy_file_small_shopping_cart">
<div id="buy_file_small_shopping_cart__container">
<img src="/images/buy_file_form/cart-icon.svg" id="buy_file_small_shopping_cart__icon">
<div id="buy_file_small_shopping_cart__count_container">
<span id="buy_file_small_shopping_cart__count" class="buy_file_shopping_cart__count">0</span>
</div>
<div id="buy_file_small_shopping_cart__sum">
<span id="buy_file_small_shopping_cart__sum_currency">€</span>
<span id="buy_file_small_shopping_cart__sum_value" class="buy_file_shopping_cart__total_sum_value"> 0.00</span>
</div>
</div>
</div>
<!-- /small shopping cart fixed element in the window's right side -->
<script type="text/javascript">
var objBuyFile;
var objBuyFileParams = {
strPayerType : 'private' ,
strBuyersName : '' ,
strBuyersSurname : '' ,
strBuyersCompanyName : '' ,
strBuyersCompanyRegNumber : '' ,
strBuyersCompanyVatNumber : '' ,
strBuyersEmail : '' ,
strBuyersCountryCode : 'us' ,
strPaymentType : 'stripe' ,
bolEmbeddedForm : 0 ,
intUserID : 0 ,
isPublicProfile : true ,
SCRIPT_URI : 'http://files.fm/davidarida385/info' ,
HTTP_HOST : 'files.fm' ,
dblPaymentCommissionFee : 0.29 ,
strBuyFileFormIncludeUrl : 'https://files.fm/davidarida385' ,
strHexInvoiceID : '' ,
strHexInvoiceID_GetParam : null ,
products : {
} ,
translations : {
'PayButton' : 'Pay' ,
'SubHeader-Text-SetPrice-Other' : 'Add this product to your cart. After payment, you will immediately be able to access the digital content in your account, as well as receive an e-mail with purchase details.' ,
'FileName' : 'Title' ,
'SubHeader-Text-SetPrice-Other-ForFolder' : 'Add this product to your Cart to purchase. After the payment you will be able to access content of the folder and will get an email with purchase details.' ,
'FolderName' : 'Folder name' ,
'Error-DataLoading' : 'An error occurred while loading data. Please try again or contact [email protected]!' ,
'FileDescription' : 'File description' ,
'FolderDescription' : 'Folder description' ,
'RightsOfUse-UsageRights-NonExclusive' : 'nonexclusive' ,
'RightsOfUse-UsageRights-Exclusive' : 'exclusive' ,
'RightsOfUse-UsageApplication-Unlimited' : 'unlimited' ,
'RightsOfUse-UsageApplication-Limited' : 'limited' ,
'RightsOfUse-UsageDuration-Perpetual' : 'perpetual' ,
'RightsOfUse-UsageDuration-Limited' : 'limited' ,
'RightsOfUse-UsageReproduction-Unlimited' : 'unlimited' ,
'RightsOfUse-UsageReproduction-Limited' : 'limited' ,
'Orginal' : 'Original' ,
'Price' : 'Price' ,
'Price-ForFolder' : 'Folder price' ,
'Error-OwnerTriesToBuy' : 'You are the owner of this file, so you cannot purchase this file. If you want to try the file purchase process, sign in with a different user account.' ,
'Error-OwnerTriesToBuyByEmail' : 'The entered e-mail address is the e-mail address of the file owner, therefore you cannot purchase this file. If you want to try the file purchase process, please enter a different email address.' ,
'Error-IOS' : 'Unfortunately, you cannot purchase this file on your device at this time. Please use another non-iOS device or iOS version less than 15.' ,
'Error-PaymentProcessing' : 'An error occurred while processing payment. Please contact [email protected]!' ,
'Error-FileAlreadyShared' : 'You\'ve already purchased the file' ,
'Error-NoProductSelected' : 'Please add at least one file to the shopping cart !' ,
'Error-InvalidOrEmptyBuyersDataFields' : 'Please fill in all fields with valid values!' ,
'PleaseWait-PaymentProcessing' : 'Please wait and do not close this page while the purchase is being processed!' ,
'PleaseWait-PaypalPaymentProcessing' : 'Please wait and do not close this page while your purchase is being processed and the files are being prepared in your account! For large files this may take a few minutes or longer.' ,
'PaymentOk' : 'Purchase successful. Access to content is linked to Files.fm account created with e-mail you entered:' ,
'PaymentOk-Part2' : 'and privately available at this link' ,
'PaymentOk-ButtonText' : 'Click here to download files' ,
'LoginToView' : 'Please log in to view the files!' ,
'PaymentOk-ButtonText-VIEW' : 'Click here to view your files' ,
'PaymentOk-Part3' : 'We have sent you email with product access, invoice and payment info.' ,
'PleaseWait' : 'Please wait...' ,
'BuyFilePaymentOk-ButtonText' : 'Click here to access files' ,
'BUY-FILE-FORM-Error-PaymentCancelled' : 'Payment was cancelled. If you want to buy these files, make the payment again.' ,
'BUY-FILE-FORM-Error-PaymentError' : 'An error occurred while processing the payment. Please check your email, bank account and funds. You may need to make another payment. Help: [email protected]' ,
'BUY-FILE-FORM-Discount-FromCount' : 'Starting from' ,
'BUY-FILE-FORM-Discount-Files' : 'files' ,
'BUY-FILE-FORM-Discount-Description-FromFolder-1' : 'Buy more files from folder' ,
'BUY-FILE-FORM-Discount-Description-FromFolder-2' : 'and get a discount:' ,
'BUY-FILE-FORM-Remove' : 'Remove' ,
} ,
};
$( function()
{
if ( window.location.hash != '' )
{
createBuyFileObject();
objBuyFile.checkHashtag();
}
} );
</script>
<style>
#upload-archive-wait {
color: #1A2533;
font-size: 16px;
line-height: 21px;
}
#upload-archive-wait-header {
font-size: 22px;
font-weight: bold;
line-height: 22px;
padding: 0;
border: unset;
}
#upload-archive-wait-header > h2 {
margin: 0;
}
#upload-archive-wait-modal-content {
padding: 20px 0;
border: unset;
}
#upload-archive-wait .modal-inner {
box-shadow: 0 0 30px rgb(0 0 0 / 50%);
padding: 30px;
border-radius: 8px;
box-sizing: border-box;
overflow: visible;
width: 360px;
margin-left: -180px;
top: 30%;
}
#upload-archive-wait .modal-close:after {
display: none;
}
@media screen and (max-width: 690px) {
#upload-archive-wait .modal-inner {
right: unset;
left: 50%;
margin-left: -180px;
padding: 30px;
padding-top: 30px;
}
}
@media screen and (max-width: 30em) {
#upload-archive-wait .modal-inner {
top: 30%;
left: 50%;
right: unset;
height: unset;
}
#upload-archive-wait .modal-inner {
padding-top: 30px;
}
#upload-archive-wait.modal-container .modal-close:before {
display: block;
}
}
@media screen and (max-width: 360px) {
#upload-archive-wait .modal-inner {
left: 0;
right: 0;
overflow: scroll;
margin-left: 0;
width: 100%;
padding: 30px 16px;
}
}
</style>
<section id="upload-archive-wait" class="modal-container" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
<div class="modal-inner">
<header id="upload-archive-wait-header">
<h2 id="upload-archive-wait-modal-label">
Creating a ZIP archive </h2>
</header>
<div id="upload-archive-wait-modal-content" class="modal-content">
<div id="upload-archive-wait-msg">
ZIP process has started. It will take about 1 minute per 1GB. You can also come back later or copy files directly to your Files.fm account.<br>
<!-- <div style="font-size: 12px; margin-top: 10px; color: #CA1913; font-weight: bold;">At the moment the archive creation may take more time. Please be patient!</div> -->
<div style="text-align: center; margin-top: 30px;">
<i class="fa fa-spinner fa-spin fa-fw" style="color: #1A2533; font-size: 50px;"></i>
</div>
</div>
</div>
</div>
<div id="upload-archive-wait-close" class="modal-close" data-dismiss="modal" data-close="Close"></div>
</section>
<script type="text/javascript">
var myVar;
var intSeconds = 0;
var strZipCheckUploadHash = '';
function showUploadArchiveWait( strTmpUploadHash, bolZipRaw ) {
if ( typeof ( strTmpUploadHash ) != 'undefined' && strTmpUploadHash )
{
strZipCheckUploadHash = strTmpUploadHash;
}
if ( typeof ( bolZipRaw ) == 'undefined' )
{
bolZipRaw = false;
}
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/upload_archive_check.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'get_host' : true ,
'upload_hash' : strZipCheckUploadHash ,
'zip_raw' : bolZipRaw
} ,
success: function(data) {
if (data['status'] == 'no_zip') {
startChecking( bolZipRaw );
}
else if (data['status'] == 'ok') {
var strHost = data['host'];
$.ajax({
type: "POST",
dataType: "json",
url: "//" + strHost + "/ajax/upload_archive_check.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'check_exists' : true ,
'upload_hash' : strZipCheckUploadHash ,
'zip_raw' : bolZipRaw
} ,
success: function(data) {
if (data['status'] == 'no') {
startChecking( bolZipRaw );
}
}
});
}
}
});
}
function startChecking( bolZipRaw ) {
intSeconds = getCurrentTimestamp();
myVar = setInterval(function(){checkIfUploadReady( bolZipRaw )}, 5000);
}
function checkIfUploadReady( bolZipRaw ) {
$.ajax({
type: "POST",
dataType: "json",
url: "./ajax/upload_archive_check.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4",
data: {
'check_progress' : true ,
'upload_hash' : strZipCheckUploadHash ,
'zip_raw' : bolZipRaw
} ,
success: function(data) {
if (data['status'] == 'ok') {
clearInterval(myVar);
hideModal('upload-archive-wait');
}
else if (data['status'] == 'in_progress') {
if (getCurrentTimestamp() - intSeconds > 1) {
showModal('upload-archive-wait');
}
}
else {
clearInterval(myVar);
$('#upload-archive-wait-close').text('X');
$('#upload-archive-wait-msg').text('An error occurred while making the zip archive. Please try again or contact [email protected]!');
}
}
});
}
function getCurrentTimestamp() {
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
return Math.floor(Date.now() / 1000);
}
</script>
</div>
</div>
<div id="info_tooltip_global"></div>
<script>
function CloseSuggestion(id) {
if (id == 'suggest_lang') {
$.get("includes/suggest_language.php", {sLang: 1});
}
else if (id == 'suggest_register'){
$.get("includes/suggest_language.php", {sReg: 1});
}
document.getElementById(id).style.display='none';
}
</script>
<script>
$(window).bind("load", function() {
$( "#register_from_ico" ).val( 0 );
if (window.location.hash == '#sign_up') {
showCreateAccount();
}
else if (window.location.hash == '#log_in') {
showSignIn();
}
else if (window.location.hash == '#forgot_password') {
showForgotPassword();
}
});
</script>
<div id="files_970x90_sticky_anchorad_responsive">
<script>
if ( typeof googletag != 'undefined' && typeof googletag.cmd != 'undefined' )
{
googletag.cmd.push(function() { googletag.display('files_970x90_sticky_anchorad_responsive'); });
}
</script>
</div>
<script>
window.addEventListener("stpdRendered", function (e) {
var adName = e.detail.name;
var adWinner = e.detail.winner;
var cleanEventName = adName.split('/')[2];
if ( ( (cleanEventName == "files_970x90_sticky_anchorad_desktop") || (cleanEventName == "files_320x100_sticky_anchorad_mobile") ) && (adWinner != "passback") ) {
setTimeout(function () {
var anchorParent = top.document.querySelector("#files_970x90_sticky_anchorad_responsive");
var anchorIframe = top.document.querySelector("#files_970x90_sticky_anchorad_responsive > div > iframe");
var anchorClose = top.document.querySelector("#stpd_close");
if(window.innerWidth > 1000) {
anchorParent.style.cssText += "width: " + (anchorIframe.clientWidth + 100) + "px";
anchorClose.style.cssText += "width: 40px; height: 35px; padding-top: 5px; border-top: unset; border-left: unset; border: 5px solid red; border-radius: 50%; background: rgb(255 255 255);";
} else {
anchorClose.style.cssText += "width: 30px; height: 30px; border-top: unset; border-left: unset; border: 5px solid red; border-radius: 50%; background: rgb(255 255 255); top: -40px;";
}
}, 50);
}
});
</script>
<script>
window.addEventListener("stpdRendered", function (e) {
var adName = e.detail.name;
var adWinner = e.detail.winner;
var cleanEventName = adName.split('/')[2];
if ( ( (cleanEventName == "failiem_970x90_sticky_anchorad_desktop") || (cleanEventName == "failiem_320x100_sticky_anchorad_mobile") ) && (adWinner != "passback") ) {
setTimeout(function () {
var anchorParent = top.document.querySelector("#failiem_970x90_sticky_anchorad_responsive");
var anchorIframe = top.document.querySelector("#failiem_970x90_sticky_anchorad_responsive > div > iframe");
var anchorClose = top.document.querySelector("#stpd_close");
if(window.innerWidth > 1000) {
anchorParent.style.cssText += "width: " + (anchorIframe.clientWidth + 100) + "px";
anchorClose.style.cssText += "width: 40px; height: 35px; padding-top: 5px; border-top: unset; border-left: unset; border: 5px solid red; border-radius: 50%; background: rgb(255 255 255);";
} else {
anchorClose.style.cssText += "width: 30px; height: 30px; border-top: unset; border-left: unset; border: 5px solid red; border-radius: 50%; background: rgb(255 255 255); top: -40px;";
}
}, 50);
}
});
</script>
<!--
<div id="files_970x90_sticky_anchorad_top_responsive">
<script>
if ( typeof googletag != 'undefined' && typeof googletag.cmd != 'undefined' )
{
googletag.cmd.push(function() { googletag.display('files_970x90_sticky_anchorad_top_responsive'); });
}
</script>
</div>
<div id="failiem_970x90_sticky_anchorad_top_responsive">
<script>
if ( typeof googletag != 'undefined' && typeof googletag.cmd != 'undefined' )
{
googletag.cmd.push(function() { googletag.display('failiem_970x90_sticky_anchorad_top_responsive'); });
}
</script>
</div>
-->
<link rel="stylesheet" type="text/css" media="all" href="/css/share_popup.css?v=1725008979"><link rel="stylesheet" type="text/css" media="all" href="/css/bootstrap-tagsinput.css?v=1715343650">
<script src="/js/bootstrap-tagsinput.js?v=1715343643"></script><link rel="stylesheet" type="text/css" media="all" href="/css/elements/upload_access_switch.css?v=114">
<script type="text/javascript">
var bolUploadAccessSwitch_closeAllSelect_Binded = false;
var bolSessionUser_IsStorageSubscriber = false;
var bolSessionUser_HasLifetimeStorage = false;
function UploadAccessSwitch( objParentElement, objUploadAccessSwitchSettings )
{
this.objParentElement = objParentElement;
this.bolAccessTypeChanged = false;
this.strItemType = 'upload';
if ( typeof objUploadAccessSwitchSettings.item_type != 'undefined' && objUploadAccessSwitchSettings.item_type == 'file' )
{
this.strItemType = objUploadAccessSwitchSettings.item_type;
}
this.strUploadHash = objUploadAccessSwitchSettings.upload_hash;
this.strFileHash = objUploadAccessSwitchSettings.file_hash;
this.strParentAccessType = objUploadAccessSwitchSettings.parent_access_type;
this.bolOwnerLoggedIn;
if ( typeof objUploadAccessSwitchSettings.owner_logged_in == 'undefined' )
{
this.bolOwnerLoggedIn = 1;
}
else
{
this.bolOwnerLoggedIn = objUploadAccessSwitchSettings.owner_logged_in;
}
this.strAccessType;
this.strUploadPassword = '';
if ( objUploadAccessSwitchSettings.access_type == 'PRIVATE' )
{
this.strAccessType = 'private';
}
else if ( this.strItemType == 'upload' && objUploadAccessSwitchSettings.password != null && objUploadAccessSwitchSettings.password != '' )
{
this.strAccessType = 'password';
this.strUploadPassword = objUploadAccessSwitchSettings.password;
}
else if ( this.strItemType == 'upload' && objUploadAccessSwitchSettings.is_public == 1 )
{
this.strAccessType = 'public';
}
else
{
this.strAccessType = 'link';
}
if ( objUploadAccessSwitchSettings.access_type != 'PRIVATE' && typeof objUploadAccessSwitchSettings.from_eparaksts != 'undefined' && objUploadAccessSwitchSettings.from_eparaksts )
{
this.strAccessType = 'link-can-edit';
$( '.copy_button_wrapper_popup' ).addClass('no-dropdown');
}
else
{
$( '.copy_button_wrapper_popup' ).removeClass('no-dropdown');
}
if ( objUploadAccessSwitchSettings.access_type == 'link-can-upload' )
{
this.strAccessType = 'link-can-upload';
}
this.strUploadAccessSwitchType = 'default';
if ( typeof objUploadAccessSwitchSettings.upload_access_switch_type != 'undefined' )
{
this.strUploadAccessSwitchType = objUploadAccessSwitchSettings.upload_access_switch_type;
}
this.strEmbedPlace = objUploadAccessSwitchSettings.embed_place;
var _this = this;
this.init = function()
{
var objTypeCopyWrap = $( '#copy_button_drawer_popup' );
objTypeCopyWrap.html('');
$( '.copy_button_wrapper_popup' ).removeClass('copy_input_value_to_clipboard_no_tooltip');
var strHtml = '';
var objTypeSelectWrap = $( '<div></div>' ).attr( {
'class' : 'styled-select upload-access-switch-select' ,
} )
var objTypeSelect = $( '<select></select>' ).attr( {
'class' : 'upload-access-switch_type-select' ,
'disabled' : ( this.strUploadAccessSwitchType == 'default' && ! this.bolOwnerLoggedIn ? true : false )
} );
objTypeSelect.append(
$( '<option></option>' ).text( ' ' )
);
if ( this.bolOwnerLoggedIn )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'private' ,
'desc' : 'Only you or users invited by email can access.' ,
'selected' : ( this.strAccessType == 'private' ? true : false )
} )
.text( 'Only with private permission' )
);
}
if ( this.strUploadAccessSwitchType == 'default' )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link' ,
'desc' : 'View and download access' ,
'selected' : ( this.strAccessType == 'link' ? true : false )
} )
.text( 'Anyone with a link' )
);
strHtml = '<div id="drawer_copy_button_view" class="share-input copy_input_value_to_clipboard_no_tooltip checked" onclick="updateSharePopupLink(1)">' +
'<span>Copy view link</span>' +
'<span class="desc_popup">Can be viewed and downloaded</span>' +
'</div>';
}
else if ( this.strUploadAccessSwitchType == 'sharing_form' )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-view' ,
'desc' : 'View and download.' ,
'selected' : ( this.strAccessType == 'link' ? true : false ) ,
'class' : 'upload-access-switch_type-select_option_link-can-view'
} )
.text( 'via link to access content' )
);
if ( !( objUploadAccessSwitchSettings.access_type != 'PRIVATE' && typeof objUploadAccessSwitchSettings.from_eparaksts != 'undefined' && objUploadAccessSwitchSettings.from_eparaksts ) )
{
strHtml = '<div id="drawer_copy_button_view" class="share-input copy_input_value_to_clipboard_no_tooltip checked" onclick="updateSharePopupLink(1)">' +
'<span>Copy view link</span>' +
'<span class="desc_popup">Can be viewed and downloaded</span>' +
'</div>';
objTypeCopyWrap.append(strHtml);
}
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-edit' ,
'desc' : 'Link to add, edit or delete content.' ,
'selected' : ( this.strAccessType == 'link-can-edit' ? true : false ) ,
} )
.text( 'Get a link to edit content' )
);
strHtml = '<div id="drawer_copy_button_edit" class="share-input copy_input_value_to_clipboard_no_tooltip" onclick="updateSharePopupLink(2)">' +
'<span>Copy edit link</span>' +
'<span class="desc_popup">Can add, edit content, e-sign and delete</span>' +
'</div>';
objTypeCopyWrap.append(strHtml);
if ( this.strItemType == 'upload' )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-upload' ,
'desc' : 'Visitors can add files, but can’t delete or edit existing.' ,
'selected' : ( this.strAccessType == 'link-can-upload' ? true : false ) ,
} )
.text( 'Get Link to add content' )
);
if ( !( objUploadAccessSwitchSettings.access_type != 'PRIVATE' && typeof objUploadAccessSwitchSettings.from_eparaksts != 'undefined' && objUploadAccessSwitchSettings.from_eparaksts ) )
{
strHtml = '<div id="drawer_copy_button_upload" class="share-input copy_input_value_to_clipboard_no_tooltip" onclick="updateSharePopupLink(3)">' +
'<span>Copy add link</span>' +
'<span class="desc_popup">You can add files, but not delete or edit existing files</span>' +
'</div>';
objTypeCopyWrap.append(strHtml);
}
}
}
else if ( this.strUploadAccessSwitchType == 'modal_gallery' )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-view' ,
'desc' : 'View and download.' ,
'selected' : ( this.strAccessType == 'link' ? true : false ) ,
'class' : 'upload-access-switch_type-select_option_link-can-view'
} )
.text( 'via link to access content' )
);
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-edit' ,
'desc' : 'Link to add, edit or delete content.' ,
'selected' : ( this.strAccessType == 'link-can-edit' ? true : false ) ,
} )
.text( 'Get a link to edit content' )
);
if ( this.strItemType == 'upload' )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'link-can-upload' ,
'desc' : 'Visitors can add files, but can’t delete or edit existing.' ,
'selected' : ( this.strAccessType == 'link-can-upload' ? true : false ) ,
} )
.text( 'Get Link to add content' )
);
}
}
if ( this.strItemType == 'upload' && this.bolOwnerLoggedIn )
{
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'password' ,
'desc' : 'Visitors must enter a password to access' ,
'selected' : ( this.strAccessType == 'password' ? true : false )
} )
.text( 'Set password' )
);
objTypeSelect.append(
$( '<option></option>' ).attr( {
'value' : 'public' ,
'desc' : 'Visible to anyone on your profile and via search.' ,
'selected' : ( this.strAccessType == 'public' ? true : false )
} )
.text( 'Posted on my profile page' )
);
}
objTypeSelectWrap.append( objTypeSelect );
$('.url_wrapper ').removeClass('switch');
if ( this.strUploadAccessSwitchType == 'sharing_form' )
{
strHtml = '<div id="upload-access-switch_type-toggle_wrapper">'+
'<input type="checkbox" class="upload-access-switch_type-toggle"'+
( this.strAccessType == 'private' ? ' ' : 'checked ' )+
//'disabled="'+( this.strUploadAccessSwitchType == 'default' && ! this.bolOwnerLoggedIn ? true : false )+'"'+
'id="upload-access-switch_type-toggle">'+
'<label for="upload-access-switch_type-toggle"></label>'+
'<div>Private</div>'+
'<div>Link</div>'+
'</div>';
if (this.strItemType == 'upload' )
{
$('.url_wrapper ').addClass('switch');
strHtml += '<div id="upload-access-switch-password-download-wrap">'+
'<div class="upload-access-switch_password-wrapper ' + (this.strAccessType == 'password' ? 'has_password' : '') + '">'+
'<label onclick="$(this).parent().addClass(\'open\'); $(this).parent().find(\'input\').focus()"> ' + (this.strAccessType == 'password' ? 'Password:' : 'Set password') + '</label>'+
'<input onclick="$(this).parent().addClass(\'open\')" type="text" class="upload-access-switch_password" value="'+this.strUploadPassword+'"></input>'+
'<input onclick="$(this).parent().addClass(\'open\')" type="password" class="upload-access-switch_password_placeholder" value="111111"></input>'+
'<div class="upload-access-switch_password-save-btn">Save</div>'+
'</div>';
if (typeof objUploadAccessSwitchSettings.hide_download_buttons !== 'undefined' && ! (! bolSessionUser_IsStorageSubscriber && ! bolSessionUser_HasLifetimeStorage) )
{
strHtml += '<div class="upload-access-switch-hide-download">' +
'<label for="upload-access-switch_hide-download-toggle">Hide download buttons:</label>' +
'<input type="checkbox" class="upload-access-switch_hide-download-toggle" '+ (objUploadAccessSwitchSettings.hide_download_buttons == '1' ? 'checked' : '') +' id="upload-access-switch_hide-download-toggle">' +
'<label for="upload-access-switch_hide-download-toggle"></label>' +
'<label>'+(objUploadAccessSwitchSettings.hide_download_buttons == '1' ? 'Yes' : 'No')+'</label>'+
'</div>';
}
strHtml += '</div>';
}
$( this.objParentElement ).html(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch ' + (typeof objUploadAccessSwitchSettings.propagate_settings !== 'undefined' && objUploadAccessSwitchSettings.propagate_settings == 2 ? 'disabled' : '') ,
'data-selected-access-type' : this.strAccessType
} )
.append(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch_type-wrapper'
} )
.append(
$( '<label></label>' ).text( ( this.strUploadAccessSwitchType == 'sharing_form' ? 'Access rights:' : 'Access:' ) )
)
.append(
$( '<label></label>' ).attr( {
'class' : 'upload-access-switch_type-wrapper-desc'
} ).text(( this.strAccessType == 'private' ? 'Only with private permission' : 'Anyone with a link' ))
)
)
.append( strHtml )
);
}
else
{
$( this.objParentElement ).html(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch' ,
'data-selected-access-type' : this.strAccessType
} )
.append(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch_type-wrapper'
} )
.append(
$( '<label></label>' ).text( ( this.strUploadAccessSwitchType == 'sharing_form' ? 'Link and Access rights:' : 'Access:' ) )
)
.append( objTypeSelectWrap )
)
.append(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch_password-wrapper'
} )
.append(
$( '<label></label>' ).text( 'Password:' )
)
.append(
$( '<input/>' ).attr( {
'class' : 'upload-access-switch_password' ,
'type' : 'text' ,
'title' : 'Enter a password' ,
'value' : this.strUploadPassword
} )
)
.append(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch_password-save-btn'
} ).text( 'Save' )
)
)
.append(
$( '<div></div>' ).attr( {
'class' : 'upload-access-switch_loading-mask'
} )
.append(
$( '<i></i>' ).attr( {
'class' : 'fal fa-spinner fa-spin'
} )
)
)
);
}
checkTooltips();
var x, i, j, selElmnt, a, b, c, d, e;
/*look for any elements with the class "styled-select":*/
x = document.getElementsByClassName("upload-access-switch-select");
for (i = 0; i < x.length; i++)
{
if (x[i].getElementsByClassName("select-selected").length < 1)
{
selElmnt = x[i].getElementsByTagName("select")[0];
/*for each element, create a new DIV that will act as the selected item:*/
a = document.createElement("DIV");
a.setAttribute("class", "select-selected");
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
x[i].appendChild(a);
/*for each element, create a new DIV that will contain the option list:*/
b = document.createElement("DIV");
b.setAttribute("class", "select-items select-hide");
for (j = 1; j < selElmnt.length; j++) {
/*for each option in the original select element,
create a new DIV that will act as an option item:*/
c = document.createElement("DIV");
d = document.createElement("DIV");
if(selElmnt.options[j].value == selElmnt.value)
{
c.setAttribute("class", "checked");
}
e = document.createElement("DIV");
e.setAttribute("class", "value");
d.setAttribute("class", "desc");
//c.innerHTML = selElmnt.options[j].innerHTML;
e.innerHTML = selElmnt.options[j].innerHTML;
d.innerHTML = selElmnt.options[j].getAttribute('desc');
c.appendChild(e);
c.appendChild(d);
if ( !!selElmnt.id && !!selElmnt.options[j].value )
{
c.setAttribute( 'id', selElmnt.id + '_' + selElmnt.options[j].value );
}
c.addEventListener("click", function(e) {
/*when an item is clicked, update the original select box,
and the selected item:*/
var y, i, k, s, sjq, h, clicked;
clicked = this;
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
sjq = $(s);
$(clicked).parents().children().removeClass('checked');
$(clicked).addClass('checked');
h = this.parentNode.previousSibling;
for (i = 0; i < s.length; i++) {
if (s.options[i].innerHTML == this.getElementsByClassName("value")[0].innerHTML) {
s.selectedIndex = i;
h.innerHTML = this.getElementsByClassName("value")[0].innerHTML;
y = this.parentNode.getElementsByClassName("same-as-selected");
for (k = 0; k < y.length; k++) {
y[k].removeAttribute("class");
}
this.setAttribute("class", "same-as-selected checked");
sjq.trigger("change");
break;
}
}
h.click();
});
b.appendChild(c);
}
x[i].appendChild(b);
a.addEventListener("click", function(e) {
/*when the select box is clicked, close any other select boxes,
and open/close the current select box:*/
e.stopPropagation();
closeAllSelect(this);
this.nextSibling.classList.toggle("select-hide");
this.classList.toggle("select-arrow-active");
this.parentElement.classList.toggle("blue-border");
if (this.parentElement.previousElementSibling)
{
this.parentElement.previousElementSibling.classList.toggle("blue-span");
}
});
}
}
function closeAllSelect(elmnt) {
/*a function that will close all select boxes in the document,
except the current select box:*/
var x, y, i, arrNo = [];
x = document.getElementsByClassName("select-items");
y = document.getElementsByClassName("select-selected");
for (i = 0; i < y.length; i++) {
if (elmnt == y[i]) {
arrNo.push(i)
} else {
y[i].classList.remove("select-arrow-active");
}
}
for (i = 0; i < x.length; i++) {
if (arrNo.indexOf(i)) {
x[i].classList.add("select-hide");
x[i].parentElement.classList.remove("blue-border");
if (x[i].parentElement.previousElementSibling)
{
x[i].parentElement.previousElementSibling.classList.remove("blue-span");
}
}
}
}
/*if the user clicks anywhere outside the select box,
then close all select boxes:*/
if ( ! bolUploadAccessSwitch_closeAllSelect_Binded )
{
document.addEventListener("click", closeAllSelect);
bolUploadAccessSwitch_closeAllSelect_Binded = true;
}
if ( ! this.bolOwnerLoggedIn )
{
if ( this.strUploadAccessSwitchType == 'sharing_form' )
{
// do nothing
}
else
{
$( this.objParentElement ).on( 'click', function( event )
{
showCreateAccount();
} );
}
}
else
{
$( this.objParentElement ).find( '.upload-access-switch_type-select' ).on( 'change', function()
{
_this.changeAccessType( $( this ).val() );
} );
$( this.objParentElement ).find( '.upload-access-switch_password' ).on( 'blur', function()
{
if($( this ).val().trim() != '' ) {
$(this).parent().delay(500).queue(function(next) {
$(this).removeClass('open');
$( '.upload-access-switch_password-save-btn' ).html('Save');
$( '.upload-access-switch_password-save-btn' ).removeClass("green");
next();
});
}
else
{
$( this ).parent().removeClass('has_password').removeClass('open');
$( '.upload-access-switch_password-save-btn' ).html('Save');
$( '.upload-access-switch_password-save-btn' ).removeClass("green");
}
} );
$( this.objParentElement ).find( '.upload-access-switch_password' ).on( 'change', function()
{
$(this).parent().addClass('has_password');
_this.changeAccessType( 'password' );
} );
$( this.objParentElement ).find( '#upload-access-switch_type-toggle' ).on( 'change', function()
{
if ($(this).is(':checked'))
{
_this.changeAccessType( 'link' );
}
else
{
_this.changeAccessType( 'private' );
}
} );
$( this.objParentElement ).find( '.upload-access-switch_hide-download-toggle' ).on( 'change', function()
{
if ($(this).is(':checked'))
{
_this.changeHideDownloadButtons( 1 );
$(this).next().next().html('Yes');
}
else
{
_this.changeHideDownloadButtons( 0 );
$(this).next().next().html('No');
}
} );
$( this.objParentElement ).find( '.upload-access-switch_password' ).on( 'input', function()
{
$( '.upload-access-switch_password-save-btn' ).html('Save');
$( '.upload-access-switch_password-save-btn' ).removeClass("green");
} );
}
}
this.init();
this.changeHideDownloadButtons = function( intHideDownloadButtons )
{
this.showLoadingMask();
var strAjax_Url = '';
var objAjax_Data = null;
if ( this.strItemType == 'upload' )
{
strAjax_Url = '/ajax/upload_info.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
objAjax_Data = {
'set_upload_hide_download_buttons': true ,
'upload_hash' : this.strUploadHash ,
'hide_download_buttons' : intHideDownloadButtons
};
}
$.ajax(
{
type: "POST",
dataType: "json",
url: strAjax_Url ,
data: objAjax_Data ,
success: function( data )
{
if ( data['status'] == 'ok' )
{
if ( _this.strItemType == 'upload' && ( _this.strEmbedPlace == 'filebrowser' || _this.strEmbedPlace == 'list' ) )
{
location.reload();
}
_this.hideLoadingMask();
}
else
{
_this.afterErrorOn_changeAcceccType();
}
} ,
error: function()
{
_this.afterErrorOn_changeAcceccType();
}
} );
}
this.changeAccessType = function( strNewAccessType )
{
$( this.objParentElement ).find( '.upload-access-switch' ).attr( 'data-selected-access-type', strNewAccessType );
if ( strNewAccessType == 'password' && $( this.objParentElement ).find( '.upload-access-switch_password' ).val().trim() == '' )
{
if ( this.strUploadAccessSwitchType == 'sharing_form' )
{
this.changeAccessType( 'link' );
$( this.objParentElement ).find( '.upload-access-switch_password' ).parent().removeClass('has_password').removeClass('open');
$( '.upload-access-switch_password-save-btn' ).html('Save');
$( '.upload-access-switch_password-save-btn' ).removeClass("green");
}
return;
}
if (
strNewAccessType == 'link-can-view'
|| strNewAccessType == 'link-can-edit'
|| strNewAccessType == 'link-can-upload'
)
{
strNewAccessType = 'link';
}
this.showLoadingMask();
var strAjax_Url = '';
var objAjax_Data = null;
if ( this.strItemType == 'upload' )
{
strAjax_Url = '/ajax/upload_info.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
objAjax_Data = {
'set_upload_access_type' : true ,
'upload_hash' : this.strUploadHash ,
'upload_access_type' : strNewAccessType ,
'upload_password' : $( this.objParentElement ).find( '.upload-access-switch_password' ).val()
};
}
else if ( this.strItemType == 'file' )
{
strAjax_Url = '/ajax/file_info.php?PHPSESSID=a38f344e4cb305a050cfe761f696af64db3161f4';
objAjax_Data = {
'set_file_access_type' : true ,
'file_hash' : this.strFileHash ,
'file_access_type' : strNewAccessType
};
}
$.ajax(
{
type: "POST",
dataType: "json",
url: strAjax_Url ,
data: objAjax_Data ,
success: function( data )
{
if ( data['status'] == 'ok' )
{
_this.strAccessType = strNewAccessType;
_this.bolAccessTypeChanged = true;
if ( _this.strItemType == 'upload' )
{
if ( strNewAccessType != 'password' )
{
$( _this.objParentElement ).find( '.upload-access-switch_password' ).val( '' );
$( _this.objParentElement ).find( '.upload-access-switch_password-wrapper' ).find('label').eq(0).html('Set password');
$( _this.objParentElement ).find( '.upload-access-switch_password' ).parent().removeClass('has_password').removeClass('open');
}
else
{
$( '.upload-access-switch_password-save-btn' ).html('Saved!');
$( '.upload-access-switch_password-save-btn' ).addClass("green");
$( _this.objParentElement ).find( '.upload-access-switch_password-wrapper' ).find('label').eq(0).html('Password:');
}
if ( strNewAccessType == 'link' )
{
$( '#upload_button__publish' ).show();
$( '#upload_button__unpublish' ).hide();
}
else if ( strNewAccessType == 'public' )
{
$( '#upload_button__publish' ).hide();
$( '#upload_button__unpublish' ).show();
}
else
{
$( '#upload_button__publish' ).hide();
$( '#upload_button__unpublish' ).hide();
}
if ( _this.strEmbedPlace == 'filebrowser' )
{
gaev( 'filebrowser-folder-info', 'access', strNewAccessType );
}
}
if ( _this.strEmbedPlace == 'filebrowser' || _this.strEmbedPlace == 'list' )
{
location.reload();
}
_this.hideLoadingMask();
}
else
{
_this.afterErrorOn_changeAcceccType();
}
} ,
error: function()
{
_this.afterErrorOn_changeAcceccType();
}
} );
}
this.afterErrorOn_changeAcceccType = function( strErrorMsg )
{
if ( this.strAccessType == 'link' && this.strUploadAccessSwitchType == 'sharing_form' )
{
this.strAccessType = 'link-can-view';
}
$( this.objParentElement ).find( '.upload-access-switch' ).attr( 'data-selected-access-type', this.strAccessType );
$( this.objParentElement ).find( '.upload-access-switch_type-select option[value="' + this.strAccessType + '"]' ).attr( 'selected', 'selected' );
$( this.objParentElement ).find( '.upload-access-switch_type-select' ).trigger( 'change' );
if ( typeof strErrorMsg == 'undefined' )
{
strErrorMsg = 'An error occurred. Try again!';
}
fError( strErrorMsg );
this.hideLoadingMask();
}
this.showLoadingMask = function()
{
$( this.objParentElement ).find( '.upload-access-switch_loading-mask' ).show();
}
this.hideLoadingMask = function()
{
$( this.objParentElement ).find( '.upload-access-switch_loading-mask' ).hide();
}
}
</script>
<section id="share_popup" class="modal-container">
<div class="modal-inner">
<div class="inner">
<div class="head clearfix">
<div class="content">
<div id="shared-icon"></div>
<h5>
<span class="head-label">Share link to:</span>
<span class="item-name"></span>
</h5>
</div>
</div>
<div id="share-popup_all-files-sharing-info">
<i class="fa fa-exclamation-triangle"></i>
Will be shared <b>all <span id="share-popup_all-files-sharing-info_file-count"></span>
files </b>
from folder <b><span class="item-name"></span></b>
</div>
<div class="content">
<div>
<div id="share-popup_upload-access-switch"></div>
</div>
<div class="share-popup_inner-content">
<div class="url_wrapper url_wrapper__sher-link">
<div id="url_wrapper__sher-link-icon"></div>
<input id="share_popup_url" class="copy_input_value_to_clipboard_no_tooltip" type="text" value="" readonly="">
<div class="copy_button_wrapper_popup" onmouseover="$(this).addClass('open_popup');" onmouseleave="$(this).removeClass('open_popup');">
<div id="copy_button_popup" class="copy_button_popup">
<div class="copy_text_popup">
<div class="hover_popup">Copy</div>
<div class="copied">Copied!</div>
</div>
</div>
<div id="copy_button_drawer_popup"></div>
</div>
<span id="share_popup_ext_link_cont">
<a target="_blank" id="share_popup_ext_link" href=""></a>
</span>
</div>
<link rel="stylesheet" type="text/css" media="all" href="/css/elements/upload_valid_to_date_user_set.css?v=1715343650"><link rel="stylesheet" type="text/css" media="all" href="/js/datepicker/datepicker.min.css?v=1715343642"><table class="share-popup__upload_valid_to_date_user_set__wrapper">
<script src="/js/elements/upload_valid_to_date_user_set.js?v=1715343643"></script>
<script src="/js/datepicker/datepicker.min.js?v=1715343642"></script>
<tbody><tr class="valid_to_date_user_set_date">
<td>Delete this folder after:</td>
<td>
<div class="toggle_option_container toggle_option_container__valid_to_date_user_set_delete_files">
<div class="toggle_option__value_container on">
<img src="/images/UI_icons/inputs/toggle_on.svg">
<span>Yes</span>
</div>
<div class="toggle_option__value_container off">
<img src="/images/UI_icons/inputs/toggle.svg">
<span>No</span>
</div>
<div class="toggle_option__wait">
<i class="fal fa-spinner fa-spin"></i>
</div>
</div>
</td>
<td class="my_tooltip" my_title="The folder and its files will be automatically deleted after the specified date and time."><i class="fal fa-question-circle"></i></td>
</tr>
<tr class="valid_to_date_user_set_date valid_to_date_user_set_date__row">
<td>
Delete after:
</td>
<td>
<div class="valid_to_date_user_set_date__wrapper">
<input class="valid_to_date_user_set_date__input valid_to_date_user_set_date__input_date" type="text" autocomplete="off">
<input class="valid_to_date_user_set_date__input valid_to_date_user_set_date__input_h" type="text" autocomplete="off">
<span class="valid_to_date_user_set_date__time_divider">:</span>
<input class="valid_to_date_user_set_date__input valid_to_date_user_set_date__input_min" type="text" autocomplete="off">
<div class="valid_to_date_user_set_date__wait">
<i class="fal fa-spinner fa-spin"></i>
</div>
</div>
</td>
<td></td>
</tr>
<script type="text/javascript">
var objElementUploadValidToDateUserSet_Translations = {
'FILEBROWSER-UpdateUploadValidToDateUserSet-Error-InvalidDate' : 'Enter a valid date and time!' ,
'FILEBROWSER-UpdateUploadValidToDateUserSet-Error-OnUpdate' : 'An error occurred while changing the expiration date. Please try again!' ,
};
</script> </tbody></table>
<div class="social_wrapper clearfix">
<div class="social_inner">
<span class="social_button messenger"></span>
<span class="social_button facebook"></span>
<span class="social_button whatsapp"></span>
<span class="social_button twitter"></span>
<span class="social_button telegram"></span>
<span class="social_button linkedin"></span>
<span class="social_button qr"></span>
</div>
</div>
<div class="link-can-upload">
<div id="seperator-or"><span>Or</span></div>
</div>
<div class="link-can-upload">
<div class="email_container share_type_container" style="display: block; margin-left: 0;">
<div class="email_wrapper">
<label for="share_em">Give and send private email access:</label>
<div class="email_input_wrapper">
<input id="email_input" type="text" placeholder="Enter e-mails to grant private access">
<input class="ui-autocomplete-input" type="text" name="e" id="share_em" value="" placeholder="Enter e-mails to grant private access" autocomplete="off">
<!--
<button id="email_send_button">
Send </button>
-->
</div>
</div>
</div>
<div class="share_access_rights__wrapper">
<div class="share_access_rights__label">with rights:</div>
<input type="checkbox" class="share_access_rights styled_radioblue_btn small" checked="checked" id="share_access_rights__allow_view"><label for="share_access_rights__allow_view">view</label>
<input type="checkbox" class="share_access_rights styled_radioblue_btn small" checked="checked" id="share_access_rights__allow_download"><label for="share_access_rights__allow_download">download</label>
<input type="checkbox" class="share_access_rights styled_radioblue_btn small" id="share_access_rights__allow_write"><label for="share_access_rights__allow_write">edit</label>
<input type="checkbox" class="share_access_rights styled_radioblue_btn small" id="share_access_rights__allow_delete"><label for="share_access_rights__allow_delete">delete</label>
</div>
<div class="active_date_input enterprise_feature">
<div class="active_date__label">
for period: </div>
<div class="active_date_input__radio_item">
<input type="radio" name="share_popup__active_date_input_active_radio" id="active_date_input_active_radio_off" checked="checked" value="0" class="styled_radioblue_btn small">
<label for="active_date_input_active_radio_off">unlimited</label>
</div>
<div class="active_date_input__radio_item">
<input type="radio" name="share_popup__active_date_input_active_radio" id="active_date_input_active_radio_on" value="1" class="styled_radioblue_btn small">
<label for="active_date_input_active_radio_on">limited</label>
</div>
<div class="active_date_input__input_item" style="display: none">
<label for="active_date_input_from">from:</label><input type="text" id="active_date_input_from" value="2024-11-17 00:00">
<label for="active_date_input_to">to:</label><input type="text" id="active_date_input_to" value="2024-12-17 00:00">
</div>
</div>
<div class="enterprise_feature share_email__send_share_email_element">
<input type="checkbox" class="styled_radioblue_btn small" id="share_email__send_share_email" checked="checked">
<label for="share_email__send_share_email">Send sharing notification email</label>
</div>
<div class="email_description_input_wrapper share_email__send_share_email_element">
<textarea id="description_input" placeholder="Type a message"></textarea>
</div>
<div class="clearfix email_send_wrapper">
<button id="share_popup__cancel_button" class="cancel_button">
Cancel </button>
<button id="share_popup__send_button" class="send_button">
Send access </button>
</div>
<div class="shared_with_container">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="share_popup__close" class="modal-close" data-dismiss="modal" data-close="Aizvērt" onclick="hideSharePopup()"></div>
</section>
<script type="text/javascript">
var arrSharePopupAllowEmbedPlayer_Extensions = ["mp4","webm","ogg","mp3","wav","jpeg","jpg","png","gif","svg","pdf"];
var jqSharePopupContainer = $('#share_popup');
var objSharePopupUploadAccessSwitch = null;
var strErrorMsgNoExternalGroup = 'There are currently no external user groups added to your account. You can create an external user group <a href="/manage_users/external_user_group_list.php" target="_blank">here</a>.';
$( function(){
$( '#share_popup #share_popup_url' ).on( 'keydown', function(){
// return false;
});
$(document).on('click', '#share_popup .copy_input_value_to_clipboard_no_tooltip, #share_popup #url_wrapper__sher-link-icon, #share_popup #copy_button_popup', function (e)
{
var el = document.createElement( 'textarea' );
el.value = $( "#share_popup_url" ).val();
document.body.appendChild( el );
el.select();
document.execCommand( 'copy' );
document.body.removeChild( el );
$('#share_popup #copy_button_popup').addClass('copied').delay(4000).queue(function(next) {
$(this).removeClass('copied');
next();
});
if($( this ).attr('id') != 'copy_button_popup')
{
$('#share_popup .copy_button_wrapper_popup').removeClass('open_popup');
}
else
{
$('#share_popup .copy_button_wrapper_popup').addClass('open_popup');
}
} );
$(document).on('click', '#share_popup .social_button.facebook', function() {
shareOnFacebook(
arrSharePopupParametres[ strSharePopupType ][ 'facebook' ][ 'name' ],
arrSharePopupParametres[ strSharePopupType ][ 'facebook' ][ 'picture_url' ],
arrSharePopupParametres[ strSharePopupType ][ 'facebook' ][ 'description' ],
arrSharePopupParametres[ strSharePopupType ][ 'facebook' ][ 'link' ],
arrSharePopupParametres[ strSharePopupType ][ 'facebook' ][ 'return_link' ]
);
});
$(document).on('click', '#share_popup .social_button.twitter', function() {
shareOnTwitter(
arrSharePopupParametres[ strSharePopupType ][ 'twitter' ][ 'text' ] ,
arrSharePopupParametres[ strSharePopupType ][ 'twitter' ][ 'link' ]
);
});
$(document).on('click', '#share_popup .social_button.telegram', function() {
shareOnTelegram(
arrSharePopupParametres[ strSharePopupType ][ 'twitter' ][ 'text' ] ,
arrSharePopupParametres[ strSharePopupType ][ 'twitter' ][ 'link' ]
);
});
$(document).on('click', '#share_popup .social_button.whatsapp', function() {
window.open( "https://api.whatsapp.com/send?text=" + encodeURIComponent( $( "#share_popup_url" ).val() ), "_blank" );
});
$(document).on('click', '#share_popup .social_button.qr', function() {
showQrPopup( event, $('#share_popup_url').val() );
});
$( 'input[type=radio][name=share_popup__share_type_radio]', jqSharePopupContainer ).change( function ()
{
$( '.share_type_container', jqSharePopupContainer ).hide();
if ( this.value === 'email' )
{
$( '.email_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'business_account_user' )
{
$( '.business_account_user_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'business_account_user_group' )
{
$( '.business_account_user_group_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'business_account_external_user' )
{
$( '.business_account_external_user_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'business_account_external_user_group' )
{
$( '.business_account_external_user_group_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'project_internal_user' )
{
$( '.project_internal_user_container', jqSharePopupContainer ).show();
}
else if ( this.value === 'project_external_user' )
{
$( '.project_external_user_container', jqSharePopupContainer ).show();
}
} );
$( document ).on( 'change', '#share_email__send_share_email', function()
{
if ( $( this ).prop('checked') )
{
$( '.email_description_input_wrapper', jqSharePopupContainer ).show();
$( 'label[for="share_email_send_notification"]', jqSharePopupContainer ).show();
$( '#share_popup__send_button', jqSharePopupContainer ).text( 'Send access' );
}
else
{
$( '.email_description_input_wrapper', jqSharePopupContainer ).hide();
$( 'label[for="share_email_send_notification"]', jqSharePopupContainer ).hide();
$( '#share_popup__send_button', jqSharePopupContainer ).text( 'Save' );
}
} );
$( document ).on( 'change', '.share_access_rights', function()
{
var strAccessRightVal = $( this ).attr( 'id' ).replace( "share_access_rights__allow_", "" );
var bolIsChecked = $( this ).is(":checked");
if ( bolIsChecked )
{
if ( strAccessRightVal == 'delete' )
{
$( '#share_access_rights__allow_write' ).prop( 'checked', true );
$( '#share_access_rights__allow_download' ).prop( 'checked', true );
$( '#share_access_rights__allow_view' ).prop( 'checked', true );
}
else if ( strAccessRightVal == 'write' )
{
$( '#share_access_rights__allow_download' ).prop( 'checked', true );
$( '#share_access_rights__allow_view' ).prop( 'checked', true );
}
else if ( strAccessRightVal == 'download' )
{
$( '#share_access_rights__allow_view' ).prop( 'checked', true );
}
}
else
{
if ( strAccessRightVal == 'view' )
{
$( '#share_access_rights__allow_download' ).prop( 'checked', false );
$( '#share_access_rights__allow_write' ).prop( 'checked', false );
$( '#share_access_rights__allow_delete' ).prop( 'checked', false );
}
else if ( strAccessRightVal == 'download' )
{
$( '#share_access_rights__allow_write' ).prop( 'checked', false );
$( '#share_access_rights__allow_delete' ).prop( 'checked', false );
}
else if ( strAccessRightVal == 'write' )
{
$( '#share_access_rights__allow_delete' ).prop( 'checked', false );
}
}
} );
$( document ).on( 'change', '#share-popup_upload-access-switch .upload-access-switch_type-select', function()
{
var strAccessSwitchType = $( this ).val();
if (bolSharePopupReceiveFolder)
{
$('.link-can-upload').show();
}
if ( strAccessSwitchType == 'private' )
{
//$( '#share_popup .url_wrapper__sher-link' ).hide();
$( '#share_popup .social_wrapper' ).hide();
//$( '#seperator-or' ).hide();
$( '#share_popup #url_wrapper__sher-link-icon' ).addClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).hide();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Only with private permission');
}
else
{
$( '#share_popup .url_wrapper__sher-link' ).show();
$( '#share_popup .social_wrapper' ).show();
$( '#seperator-or' ).show();
$( '#share_popup #url_wrapper__sher-link-icon' ).removeClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).show();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Anyone with a link');
}
if ( strAccessSwitchType == 'link-can-view' )
{
updateSharePopupLink( 1 );
}
else if ( strAccessSwitchType == 'link-can-edit' )
{
updateSharePopupLink( 2 );
}
else if ( strAccessSwitchType == 'link-can-upload' )
{
updateSharePopupLink( 3 );
if (bolSharePopupReceiveFolder)
{
$('.link-can-upload').hide();
}
}
} )
$( document ).on( 'change', '#share-popup_upload-access-switch #upload-access-switch_type-toggle', function()
{
if ($(this).is(':checked'))
{
var strAccessSwitchType = 'link';
}
else
{
var strAccessSwitchType = 'private';
}
if (bolSharePopupReceiveFolder)
{
$('.link-can-upload').show();
}
if ( strAccessSwitchType == 'private' )
{
//$( '#share_popup .url_wrapper__sher-link' ).hide();
$( '#share_popup .social_wrapper' ).hide();
$( '#share_popup #url_wrapper__sher-link-icon' ).addClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).hide();
//$( '#seperator-or' ).hide();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Only with private permission');
}
else
{
$( '#share_popup #url_wrapper__sher-link-icon' ).removeClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).show();
$( '#share_popup .url_wrapper__sher-link' ).show();
$( '#share_popup .social_wrapper' ).show();
$( '#seperator-or' ).show();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Anyone with a link');
}
} );
});
var arrSharePopupParametres = {};
var strSharePopupType = '';
var bolSharePopupReceiveFolder = false;
function showSharePopup( event, arrParametres, bolReceiveFolder )
{
arrSharePopupParametres = arrParametres;
bolSharePopupReceiveFolder = bolReceiveFolder;
if ( window.location.href.indexOf( "filebrowser" ) !== -1 )
{
if ( typeof arrParametres[ 'one_file' ] !== "undefined" && typeof arrParametres[ 'one_file' ][ 'facebook' ] !== "undefined" )
{
arrParametres[ 'one_file' ][ 'facebook' ][ 'return_link' ] = window.location.href;
}
if ( typeof arrParametres[ 'all_files' ] !== "undefined" && typeof arrParametres[ 'all_files' ][ 'facebook' ] !== "undefined" )
{
arrParametres[ 'all_files' ][ 'facebook' ][ 'return_link' ] = window.location.href;
}
}
// Hide inputs if not allowed to share.
if ( ! arrSharePopupParametres['can_share'] )
{
$( '#share_popup .active_date_input' ).hide();
$( '#share_popup .share_type_radio' ).hide();
$( '#share_popup .share_type_container' ).hide();
$( '#share_popup .email_container' )
.addClass('cannot_share')
.show();
}
else
{
//$( '#share_popup.is_enterprise .active_date_input' ).show();
$( '#share_popup.is_business_account .share_type_radio' ).show();
$( '#share_popup .email_container' )
.removeClass('cannot_share');
}
if ( arrSharePopupParametres[ 'show_type_select' ] )
{
$( '#share_popup .share_popup__type__select_item' ).show();
}
else
{
$( '#share_popup .share_popup__type__select_item' ).hide();
}
if ( typeof arrSharePopupParametres[ 'show_soc_sharing' ] == 'undefined' || arrSharePopupParametres[ 'show_soc_sharing' ] )
{
$( '#share_popup .social_wrapper' ).show();
}
else
{
$( '#share_popup .social_wrapper' ).hide();
}
if (
typeof arrParametres.upload_info != 'undefined'
&& typeof arrParametres.upload_info.valid_to_date_user_set != 'undefined'
&& arrParametres.upload_info.owner_logged_in
&& typeof initUploadValidToDateUserSet != 'undefined'
&& arrParametres.type == 'all_files'
)
{
$( '.share-popup__upload_valid_to_date_user_set__wrapper' ).show();
initUploadValidToDateUserSet( arrParametres.upload_info.upload_hash, arrParametres.upload_info.valid_to_date_user_set );
}
else
{
$( '.share-popup__upload_valid_to_date_user_set__wrapper' ).hide();
}
event.preventDefault();
changeSharePopupType( arrSharePopupParametres[ 'type' ], bolSharePopupReceiveFolder );
hideSharePopup();
sharePopupInputSetup();
// don't show two popups at once
if ( typeof window.FileEmbedPopup !== 'undefined' )
{
window.FileEmbedPopup.hidePopup();
}
if ( typeof ( arrSharePopupParametres[ 'disable_email' ] ) !== "undefined" && arrSharePopupParametres[ 'disable_email' ] === true )
{
$( "#share_popup .email_container" ).hide();
$( '#seperator-or' ).hide();
$( "#share_popup .email_description_input_wrapper" ).hide();
$( "#share_popup #share_popup__send_button" ).hide();
$( "#share_popup #share_popup__cancel_button" ).hide();
$( '#share_popup .email_send_wrapper').hide();
$( "#share_popup.is_enterprise label[for='share_email_send_notification']" ).hide();
$("#share_popup.is_enterprise .share_access_rights__wrapper").hide();
$("#share_popup.is_enterprise .enterprise_feature").hide();
}
else if ( ! arrSharePopupParametres['can_share'] || $( 'input[type=radio][name=share_popup__share_type_radio]:checked' ).val() === 'email' )
{
$( "#share_popup .email_container" ).show();
$( '#seperator-or' ).show();
$( "#share_popup .email_description_input_wrapper" ).hide(); //show only when email is provided
$( "#share_popup.is_enterprise .email_description_input_wrapper" ).show();
$( "#share_popup #share_popup__send_button" ).show();
$( "#share_popup #share_popup__cancel_button" ).hide(); //show only when email is provided
$( "#share_popup.is_enterprise label[for='share_email_send_notification']" ).css('display', 'block');
if ( arrSharePopupParametres[ 'type' ] != 'dvs_document' )
{
$( "#share_popup.is_enterprise .share_access_rights__wrapper" ).show();
}
$( "#share_popup.is_enterprise .enterprise_feature" ).show();
$( '#share_popup__send_button' ).addClass( 'active' );
}
if ( typeof ( arrSharePopupParametres[ 'disable_link_types' ] ) !== "undefined" && arrSharePopupParametres[ 'disable_link_types' ] === true )
{
$( ".dropdown_wrapper" ).hide();
}
else
{
$( ".dropdown_wrapper" ).show();
}
var strUploadHash;
var strFileViewHash;
var intDvsDocumentId;
if ( strSharePopupType == 'dvs_document' )
{
intDvsDocumentId = arrSharePopupParametres[ 'dvs_document_id' ];
}
else if( typeof arrSharePopupParametres[ strSharePopupType ][ 'share_email' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'file_view_hash' ];
}
else if ( typeof arrSharePopupParametres[ strSharePopupType ][ 'item_info' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'file_view_hash' ];
}
if ( ! strUploadHash && ! strFileViewHash && ! intDvsDocumentId )
{
$('#share_popup .email_container').hide();
}
if ( typeof arrSharePopupParametres[ 'from_eparaksts' ] != 'undefined' && arrSharePopupParametres[ 'from_eparaksts' ] )
{
$( '#share-popup_all-files-sharing-info_file-count' ).text( arrSharePopupParametres[ 'file_count_for_share' ] );
if ( arrSharePopupParametres.type == 'all_files' && arrSharePopupParametres.file_count_for_share > 1 )
{
$( '#share-popup_all-files-sharing-info' ).show();
}
else
{
$( '#share-popup_all-files-sharing-info' ).hide();
}
$( '#share_popup .email_input_wrapper' ).css( 'border', '1px solid #008ddf' );
$( '#share_access_rights__allow_write' ).attr( 'checked', true );
updateSharePopupLink( 2 );
}
else
{
$( '#share-popup_all-files-sharing-info' ).hide();
$( '#share_popup .email_input_wrapper' ).css( 'border', '' );
$( '#share_popup #description_input' ).text( '' );
$( '#share_access_rights__allow_write' ).attr( 'checked', false );
}
if ( typeof arrSharePopupParametres[ 'from_bf_individual_catalog_settings' ] != 'undefined' && arrSharePopupParametres[ 'from_bf_individual_catalog_settings' ] )
{
$( '#share-popup_upload-access-switch .upload-access-switch_type-select option[value="link-can-edit"]' ).hide();
$( '#share-popup_upload-access-switch .upload-access-switch_type-select option[value="link-can-upload"]' ).hide();
$( '#share-popup_upload-access-switch .upload-access-switch_type-select option[value="public"]' ).hide();
$( '#share_popup .email_input_wrapper' ).css( 'border', '1px solid #008ddf' );
$( '#share_popup #description_input' ).text( ' has sent you access to the photo catalog. Open the link, view and order photos.' );
$( '#share_popup .share_access_rights' ).attr( 'checked', false );
$( '#share_access_rights__allow_view' ).attr( 'checked', true );
$( '#share_email_send_notification' ).attr( 'checked', false );
$( '#share_popup label[for="share_email_send_notification"]' ).hide();
}
showModal('share_popup');
$('#share_popup .modal-inner').show();
return false;
}
function sharePopupLoadSharedWithTable ( bolShowOpen )
{
var strUploadHash;
var strFileViewHash;
var intDvsDocumentId;
if ( strSharePopupType == 'dvs_document' )
{
intDvsDocumentId = arrSharePopupParametres[ 'dvs_document_id' ];
}
else if( typeof arrSharePopupParametres[ strSharePopupType ][ 'share_email' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'file_view_hash' ];
}
else if ( typeof arrSharePopupParametres[ strSharePopupType ][ 'item_info' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'file_view_hash' ];
}
var jqSharedWithContainer = $('#share_popup .shared_with_container');
jqSharedWithContainer.html( '' ).css({'visibility': 'hidden'});
$.ajax( {
type: "GET",
dataType: "json",
url: "/api/sharing.php",
data: {
"Action": "GetSharingTable",
"UploadHash": strFileViewHash ? null : strUploadHash ,
"FileHash": strFileViewHash ? strFileViewHash : null ,
"DvsDocumentId": intDvsDocumentId ? intDvsDocumentId : null ,
},
success: function ( data )
{
$( '#share_type__group_container__project_team' ).hide();
var html = '';
if ( data.Success )
{
html = data.HTML;
if ( data.ItemNameHTML && data.ItemNameHTML != '' )
{
$('#share_popup .head .item-name').html( '"' + data.ItemNameHTML + '"' );
}
if ( data.ProjectTeamInfo.ShowTeamInfo )
{
$( '#share_type__group_container__project_team' ).show();
$( '#share_popup .project_internal_user_container' ).html( '' );
$.each( data.ProjectTeamInfo.TeamInfo.InternalUsers , function( key, objUser )
{
$( '#share_popup .project_internal_user_container' ).append(
'<div>' +
'<input type="checkbox" name="share_popup__project_internal_user_select" value="' + objUser.ID + '" id="share_popup__project_internal_user_select__' + objUser.ID + '" class="styled_radioblue_btn small">' +
'<label for="share_popup__project_internal_user_select__' + objUser.ID + '">' + objUser.User + '</label>' +
'</div>'
);
} );
$( '#share_popup .project_external_user_container' ).html( '' );
$.each( data.ProjectTeamInfo.TeamInfo.ExternalUsers , function( key, objUser )
{
$( '#share_popup .project_external_user_container' ).append(
'<div>' +
'<input type="checkbox" name="share_popup__project_external_user_select" value="' + objUser.ID + '" id="share_popup__project_external_user_select__' + objUser.ID + '" class="styled_radioblue_btn small">' +
'<label for="share_popup__project_external_user_select__' + objUser.ID + '">' + objUser.User + '</label>' +
'</div>'
);
} );
}
}
jqSharedWithContainer.html( html );
setTimeout(function (){
jqSharedWithContainer.show().css({'visibility': 'visible'});
if ( bolShowOpen )
{
$('#upload_sharing_form__table').show();
$('#show_upload_sharing_form__table_link').hide();
}
}, 100);
}
} );
}
var jqSharePopupTagsInput = $('#email_input');
var bolShare_ErrorModal_PopupOpen = false;
function sharePopup_CheckAlerts ()
{
if ( bolShare_ErrorModal_PopupOpen )
return;
bolShare_ErrorModal_PopupOpen = true;
var arrItems = jqSharePopupTagsInput.tagsinput( 'items' );
var objItem_ToAlert = null;
for ( var i = 0; i < arrItems.length; i++ )
{
if ( ( ! arrItems[ i ].can_email || ! arrItems[ i ].is_valid_email || (arrItems[ i ].may_be_wrong_email ) ) && ! arrItems[ i ].wrong_email__is_accepted )
{
objItem_ToAlert = arrItems[ i ];
}
}
if ( objItem_ToAlert )
{
var fncCallback = function ( bolChange )
{
if ( bolChange )
{
if ( objItem_ToAlert.may_be_wrong_email_suggest )
{
objItem_ToAlert.value = objItem_ToAlert.may_be_wrong_email_suggest;
}
else
{
jqSharePopupTagsInput.tagsinput( 'remove', objItem_ToAlert );
}
}
objItem_ToAlert.wrong_email__is_accepted = true;
jqSharePopupTagsInput.tagsinput( 'refresh' );
bolShare_ErrorModal_PopupOpen = false;
setTimeout(function (){
$( "#share_em" ).focus();
sharePopup_CheckAlerts();
}, 50);
};
var strTitle = 'Incorrect e-mail address';
if ( ! objItem_ToAlert.is_valid_email )
{
var strMessage = 'The [[INCORRECT_EMAIL]] email address you entered is incorrect! ';
strMessage = strMessage.replace('[[INCORRECT_EMAIL]]', objItem_ToAlert.value);
fConfirm( strMessage, strTitle, 'Remove', 'Cancel', fncCallback );
return;
}
if (objItem_ToAlert.may_be_wrong_email && ! objItem_ToAlert.wrong_email__is_accepted)
{
if ( objItem_ToAlert.may_be_wrong_email_suggest )
{
var strMessage = 'The [[INCORRECT_EMAIL]] email address you entered may be incorrect, do you want to correct it to: [[CORRECT_EMAIL]]? ';
strMessage = strMessage.replace('[[INCORRECT_EMAIL]]', objItem_ToAlert.value);
strMessage = strMessage.replace('[[CORRECT_EMAIL]]', objItem_ToAlert.may_be_wrong_email_suggest);
fConfirm( strMessage, strTitle, 'Correct', 'Cancel', fncCallback );
return;
}
else
{
var strMessage = 'The [[INCORRECT_EMAIL]] email address you entered may be incorrect! ';
strMessage = strMessage.replace('[[INCORRECT_EMAIL]]', objItem_ToAlert.value);
fConfirm( strMessage, strTitle, 'Remove', 'Cancel', fncCallback );
return;
}
}
if ( ! objItem_ToAlert.can_email )
{
var strMessage = '[[EMAIL]] e-mail address owner has opted out of receiving e-mail! ';
strMessage = strMessage.replace('[[EMAIL]]', objItem_ToAlert.value);
fConfirm( strMessage, strTitle, 'Remove', 'Cancel', fncCallback );
return;
}
}
else
{
bolShare_ErrorModal_PopupOpen = false;
}
}
var intSharePopup_ValidationActiveCount = 0;
var resSharePopupSubmitEmailsTimeout = null;
function sharePopup_SubmitEmails()
{
if ( resSharePopupSubmitEmailsTimeout )
clearTimeout( resSharePopupSubmitEmailsTimeout );
// Wait for validation to complete.
if ( intSharePopup_ValidationActiveCount > 0 )
{
resSharePopupSubmitEmailsTimeout = setTimeout( sharePopup_SubmitEmails, 50 );
return;
}
var arrItems = jqSharePopupTagsInput.tagsinput( 'items' );
var bolAllOk = true;
for ( var i = 0; i < arrItems.length; i++ )
{
if ( ( ! arrItems[ i ].is_valid_email || arrItems[ i ].may_be_wrong_email ) && ! arrItems[ i ].wrong_email__is_accepted )
bolAllOk = false;
}
if ( arrItems.length === 0 || ! bolAllOk )
{
$( '#share_popup__send_button' ).text( 'Send access' );
return;
}
if ( $( '#share_type_select__external_user_group' ).length > 0 )
{
if ( $( '#share_type_select__external_user_group' ).val() == 0 )
{
$( '#share_type_select__external_user_group' ).addClass( 'has_error' );
fError( 'Select the external user group' )
return;
}
else
{
$( '#share_type_select__external_user_group' ).removeClass( 'has_error' );
}
}
var strUploadHash;
var strFileViewHash;
var intDvsDocumentId;
if ( strSharePopupType == 'dvs_document' )
{
intDvsDocumentId = arrSharePopupParametres[ 'dvs_document_id' ];
}
else if( typeof arrSharePopupParametres[ strSharePopupType ][ 'share_email' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'share_email' ][ 'file_view_hash' ];
}
else if ( typeof arrSharePopupParametres[ strSharePopupType ][ 'item_info' ] !== 'undefined' )
{
strUploadHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'upload_hash' ];
strFileViewHash = arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'file_view_hash' ];
}
if ( arrItems.length>0 && bolAllOk )
{
if ( strUploadHash || strFileViewHash || intDvsDocumentId )
{
var arrTmpItems = [];
for ( var i = 0; i < arrItems.length; i++ )
{
var obj = arrItems[i];
obj.item_type = 'email';
arrTmpItems.push( obj );
}
var objRights = {
view: 1,
download: 1,
write: 0,
delete: 0,
share: 0
};
objRights.view = $('#share_access_rights__allow_view').prop('checked') ? 1 : 0;
objRights.download = $('#share_access_rights__allow_download').prop('checked') ? 1 : 0;
objRights.write = $('#share_access_rights__allow_write').prop('checked') ? 1 : 0;
objRights.delete = $('#share_access_rights__allow_delete').prop('checked') ? 1 : 0;
objRights.share = $('#share_access_rights__allow_share').prop('checked') ? 1 : 0;
var intExternalUserGroup = 0;
if ( $( '#share_type_select__external_user_group' ).length > 0 )
{
intExternalUserGroup = $( '#share_type_select__external_user_group' ).val();
}
$.post( '/ajax/share.php', {
items: arrTmpItems ,
upload_hash: strFileViewHash ? null : strUploadHash ,
file_view_hash: strFileViewHash ? strFileViewHash : null ,
dvs_document_id : intDvsDocumentId ? intDvsDocumentId : null ,
description: $('#description_input').val(),
send_share_email: ( $('#share_email__send_share_email').prop('checked') ? '1' : '0' ),
send_notification_once_open: ( $('#share_email_send_notification').prop('checked') ? '1' : '0' ),
date_active_enabled: $( 'input[type=radio][name=share_popup__active_date_input_active_radio]:checked' ).val(),
date_active_from: $( '#active_date_input_from' ).val(),
date_active_to: $( '#active_date_input_to' ).val(),
rights: objRights ,
submit: 1 ,
external_user_group : intExternalUserGroup ,
from_bf_individual_catalog_settings : ( typeof arrSharePopupParametres[ 'from_bf_individual_catalog_settings' ] != 'undefined' && arrSharePopupParametres[ 'from_bf_individual_catalog_settings' ] ? 1 : 0 ) ,
from_eparaksts : ( typeof arrSharePopupParametres[ 'from_eparaksts' ] != 'undefined' && arrSharePopupParametres[ 'from_eparaksts' ] ? 1 : 0 )
}, function ( strResponse )
{
var data = JSON.parse( strResponse );
$( '#share_popup__send_button', jqSharePopupContainer ).text( 'Send access' );
if (data['status'] === 'ok')
{
$('#email_input').val('');
jqSharePopupTagsInput.tagsinput('removeAll');
sharePopupLoadSharedWithTable (true);
var strClass = 'f_dialog_success';
if ( data['sent_emails'].length === 0 )
{
strClass = 'f_dialog_error';
}
else if ( data['unsubscribed_emails'].length > 0 )
{
strClass = 'f_dialog_warning';
}
var strMessage = '';
if ( data['sent_emails'].length > 0 )
{
strMessage += "E-mails were sent to: <span style='color:green;'>" + data['sent_emails'] + "</span>";
}
else
{
strMessage += "Failed to send e-mails!";
}
strMessage += '<br>';
if ( data['unsubscribed_emails'].length > 0 )
{
strMessage += "E-mails weren’t sent to: <span style='color:orange'>" + data['unsubscribed_emails'] + "</span><br>" +
"<span style='font-size: 13px;line-height: 16px;display:block;padding-top:6px;'>We weren’t able to send all e-mails because some of the recipients have opted out of receiving files.fm sharing emails. To share files with these e-mail addresses, please inform their owners to change their accounts privacy settings.</span>";
}
if ( data['invalid_emails'].length > 0 )
{
strMessage += '<br>';
strMessage += "E-mails have not been sent, wrong recipient: <span style='color:orange'>" + data['invalid_emails'] + "</span>";
}
fModal(
strClass,
strMessage,
"",
'OK',
null
);
}
else if (typeof data['message'] !== 'undefined' && data['message'] === 'free_emails_exhausted')
{
var strMsg = 'File sharing via e-mail limit has been reached. To send more than 5 file sharing e-mails and use additional features, subscribe to a PRO or business account. More information about subscriptions <a target="_blank" href="https://files.fm/storage-plans">here</a>';
if (typeof data.logged_in === 'undefined')
{
// something went wrong
fError(strMsg);
return;
}
var errorTable = $(
'<table id="free_emails_exhausted_alert" class="alert_container alert_container_danger"' +
' <tr>' +
' <td>' +
' <i class="fa fa-exclamation-circle"></i>' +
' </td>' +
' <td>' +
' <div class="alert_main_text">'
+ strMsg +
' </div>' +
' </td>' +
' </tr>' +
'</table>'
).css('display', 'table');
hideSharePopup();
// if logged in show account creation form
if (!data.logged_in)
{
showCreateAccount();
}
else
{
// it not logged in show subscription form
var objSubscriptionForm = new SubscriptionForm();
objSubscriptionForm.showForm( 'share_popup__email_limit' );
if ($('#free_emails_exhausted_alert').length)
{
$('#free_emails_exhausted_alert').remove();
}
$("#subscription-form_global-alert").append(
$("<div/>").append(errorTable)
)
}
}
else if ( typeof data[ 'message' ] !== 'undefined' && data[ 'message' ] === 'marked_as_spam' )
{
fError( 'Email protection: email is not sent because too many similar emails have been sent! Please subscribe for a PRO account, to validate.' );
}
else if ( typeof data[ 'message' ] !== 'undefined' && data[ 'message' ] === 'already_shared' )
{
fError( 'Already shared with this user.' );
}
else if ( typeof data['error'] !== 'undefined' )
{
fError(data['error']);
}
else
{
fError( 'An error occurred while sending the e-mail. Please try again or contact [email protected].<br/>At one time it is not allowed to send more than 200 emails.' );
}
} );
}
}
}
function sharePopupInputSetup () {
jqSharePopupTagsInput.tagsinput({
itemText: function(item) {
return item.value;
},
tagClass: function(item) {
switch (item.is_valid_email) {
case null: return 'processing';
case true: {
if ( item.may_be_wrong_email && ! item.wrong_email__is_accepted )
{
return 'processing'
}
else
{
return '';
}
}
case false: return 'error';
}
},
confirmKeys: [13, 32, 44, 59],
maxChars: 1024,
trimValue: true,
freeInput: true
});
//jqSharePopupTagsInput.tagsinput( 'removeAll' );
$( ".bootstrap-tagsinput input" ).hide();
jqSharePopupTagsInput.on('beforeItemAdd', function ( event )
{
if ( typeof( event.item ) === 'string' )
{
var arrItems = jqSharePopupTagsInput.tagsinput( 'items' );
for(var i=0; i<arrItems.length; i++)
{
if (arrItems[i].value === event.item )
{
event.cancel = true;
return;
}
}
event.item = {
value: event.item,
is_valid_email: null,
may_be_wrong_email: null,
may_be_wrong_email_suggest: null,
user_id: null
};
intSharePopup_ValidationActiveCount++;
$.post('/ajax/share.php', {
items: [ event.item ],
validate: 1
}, function (strResponse){
var objResponse = JSON.parse(strResponse);
if ( objResponse.status='ok' )
{
if ( objResponse.items[ event.item.value ] )
{
event.item.value = objResponse.items[ event.item.value ].value;
event.item.is_valid_email = objResponse.items[ event.item.value ].is_valid_email;
event.item.may_be_wrong_email = objResponse.items[ event.item.value ].may_be_wrong_email;
event.item.may_be_wrong_email_suggest = objResponse.items[ event.item.value ].may_be_wrong_email_suggest;
event.item.wrong_email__is_accepted = null;
event.item.can_email = objResponse.items[ event.item.value ].can_email;
event.item.user_id = objResponse.items[ event.item.value ].user_id;
}
}
jqSharePopupTagsInput.tagsinput('refresh');
setTimeout(sharePopup_CheckAlerts, 50);
})
.always(function() {
intSharePopup_ValidationActiveCount--;
});
}
});
$('#share_popup__send_button').off('click').on('click', function ()
{
switch ( $( 'input[type=radio][name=share_popup__share_type_radio]:checked' ).val() )
{
default:
case 'email':
$('#share_popup__send_button').text( 'Sending..' );
sharePopup_SubmitEmails();
break;
case 'business_account_user':
case 'business_account_user_group':
case 'business_account_external_user_group':
case 'business_account_external_user':
case 'project_internal_user':
case 'project_external_user':
sharePopup_RequestOrgUserOrGroupShare ()
break;
}
//
})
$('.email_input_wrapper').off('click').on('click', function (){
$(this).css({'min-height': '72px'});
$( "#share_em" ).focus();
})
}
function keyCombinationInList(keyPressEvent, lookupList) {
var found = false;
$.each(lookupList, function (index, keyCombination) {
if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
found = true;
return false;
}
if (keyPressEvent.which === keyCombination.which) {
var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
if (alt && shift && ctrl) {
found = true;
return false;
}
}
});
return found;
}
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
$(function (){
jQuery( "#share_em" )
.bind( 'keypress', 'input', function( event ) {
if(keyCombinationInList(event, [13, 32, 44, 59]) || event.keyCode === jQuery.ui.keyCode.TAB ) {
event.preventDefault();
$(".bootstrap-tagsinput input").val(this.value);
$(".bootstrap-tagsinput input").trigger( "focusout" );
$(this).val("");
}
toggleSendButton();
})
.focusout(function(){
$(".bootstrap-tagsinput input").val(this.value);
$(".bootstrap-tagsinput input").trigger( "focusout" );
$(this).val("");
setTimeout(toggleSendButton, 100);
})
.autocomplete({
source: function( request, response ) {
jQuery.getJSON( "/ajax/get_user_sent_email_addresses.php", {
term: extractLast( request.term )
}, response );
},
search: function() {
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 ) {
return false;
}
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function( event, ui ) {
$(".bootstrap-tagsinput input").val(ui.item.value );
$(".bootstrap-tagsinput input").trigger( "focusout" );
$(this).val("");
toggleSendButton();
return false;
}
});
function toggleSendButton( ) {
if($('.bootstrap-tagsinput').find('span.tag').length === 0)
{
$("#share_popup__send_button").removeClass( "active" );
$("#share_popup__cancel_button").hide();
$(".email_description_input_wrapper").hide();
$( "#share_popup.is_enterprise .email_description_input_wrapper" ).show();
$( "label[for='share_email_send_notification']").hide();
$( "#share_popup.is_enterprise label[for='share_email_send_notification']" ).css('display', 'block');
}
else
{
$("#share_popup__send_button").addClass( "active" );
$("#share_popup__cancel_button").show();
$(".email_description_input_wrapper").show();
$("label[for='share_email_send_notification']").css('display', 'block');
}
}
$("#share_popup__cancel_button").click(function() {
$('#email_input').tagsinput( 'removeAll' );
$("#share_popup__send_button").removeClass( "active" );
$("#share_popup__cancel_button").hide();
$(".email_description_input_wrapper").hide();
$( "#share_popup.is_enterprise .email_description_input_wrapper" ).show();
$( "label[for='share_email_send_notification']" ).hide();
$( "#share_popup.is_enterprise label[for='share_email_send_notification']" ).css('display', 'block');
});
});
function changeSharePopupType( strType, bolSharePopupReceiveFolder )
{
if (bolSharePopupReceiveFolder)
{
$('.link-can-upload').show();
}
if ( strType != 'all_files' && strType != 'one_file' && strType != 'dvs_document' )
{
strType = 'all_files';
}
strSharePopupType = strType;
$( '#shared-icon' ).removeClass();
if ( strSharePopupType == 'one_file' )
{
$( '#share_popup__type__all_files' ).attr( 'checked', false );
$( '#share_popup__type__only_this_file' ).attr( 'checked', true );
$( '#shared-icon' ).addClass( 'one_file' );
}
else
{
$( '#share_popup__type__all_files' ).attr( 'checked', true );
$( '#share_popup .dropdown' ).val( 1 ).trigger( 'change' );
$( '#shared-icon' ).addClass( 'all_files' );
}
if ( strType == "one_file" || ( arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] == '' && arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] == '' ) )
{
$( '#share_popup .dropdown' ).hide();
$( '#share_popup .dropdown_only_text' ).show();
}
else
{
$( '#share_popup .dropdown' ).show();
$( '#share_popup .dropdown_only_text' ).hide();
}
if (
0
|| ! arrSharePopupParametres[ strSharePopupType ][ 'embed_player' ]
|| ! arrSharePopupParametres[ strSharePopupType ][ 'embed_player' ][ 'file_view_hash' ]
|| arrSharePopupAllowEmbedPlayer_Extensions.indexOf(arrSharePopupParametres[strSharePopupType]['embed_player']['file_extension']) === -1 )
{
$( '#p2p_embed_select' ).removeClass( "first" ).hide();
$( "#simple_down_link" ).addClass( "first" );
}
else
{
$( '#p2p_embed_select' )
.addClass( "first" )
.show();
$( "#simple_down_link" ).removeClass( "first" );
}
if( arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] == '' || strType == "one_file" )
{
$( '#share_popup .dropdown > option:nth-child(2)' ).hide();
}
else
{
$( '#share_popup .dropdown > option:nth-child(2)' ).show();
}
if( arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] == '' || strType == "one_file" )
{
$( '#share_popup .dropdown > option:nth-child(3)' ).hide();
}
else
{
$( '#share_popup .dropdown > option:nth-child(3)' ).show();
}
if ( typeof arrSharePopupParametres[ strSharePopupType ][ 'item_info' ] != 'undefined' && arrSharePopupParametres[ strSharePopupType ][ 'item_info' ] != '' )
{
$( '#share_popup .item-name' ).text('"' + arrSharePopupParametres[ strSharePopupType ][ 'item_info' ][ 'item_name' ] + '"' );
$( '#seperator-or' ).show();
}
else
{
$( '#seperator-or' ).hide();
}
$( '.copy_input_value_to_clipboard_no_tooltip' ).removeClass( 'checked' );
$( '#share_popup_url' ).val( arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( '#share_popup_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( '#share_popup_copy_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
if (bolSharePopupReceiveFolder)
{
var strHtml = '<div id="drawer_copy_button_view" class="share-input copy_input_value_to_clipboard_no_tooltip checked" onclick="updateSharePopupLink(1)">' +
'<span>Copy view link</span>' +
'<span class="desc_popup">Can be viewed and downloaded</span>' +
'</div>';
strHtml += '<div id="drawer_copy_button_upload" class="share-input copy_input_value_to_clipboard_no_tooltip" onclick="updateSharePopupLink(3)">' +
'<span>Copy add link</span>' +
'<span class="desc_popup">You can add files, but not delete or edit existing files</span>' +
'</div>';
$( '#copy_button_drawer_popup' ).append(strHtml);
$( '.copy_button_wrapper_popup' ).removeClass('copy_input_value_to_clipboard_no_tooltip');
}
else
{
$( '.copy_button_wrapper_popup' ).addClass('copy_input_value_to_clipboard_no_tooltip');
}
if (bolSharePopupReceiveFolder)
{
$( '#drawer_copy_button_upload' ).addClass( 'checked' );
}
else
{
$( '#drawer_copy_button_view' ).addClass( 'checked' );
}
$( "#share_popup_ext_link" ).attr( 'href', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
sharePopupLoadSharedWithTable ();
$( '#share_popup .inner .content' ).prop('scrollTop', 0);
$( '#share-popup_upload-access-switch' ).hide();
if ( strType == 'all_files' && typeof arrSharePopupParametres.upload_info != 'undefined' && typeof arrSharePopupParametres.can_share != 'undefined' && arrSharePopupParametres.can_share )
{
var objUploadAccessSwitchSettings = arrSharePopupParametres.upload_info;
objUploadAccessSwitchSettings.upload_access_switch_type = 'sharing_form';
if ( typeof arrSharePopupParametres[ 'from_eparaksts' ] != 'undefined' && arrSharePopupParametres[ 'from_eparaksts' ] )
{
objUploadAccessSwitchSettings.from_eparaksts = true;
}
else
{
objUploadAccessSwitchSettings.from_eparaksts = false;
}
objSharePopupUploadAccessSwitch = new UploadAccessSwitch(
$( '#share-popup_upload-access-switch' ) ,
arrSharePopupParametres.upload_info
);
$( '#share-popup_upload-access-switch' ).show();
if ( arrSharePopupParametres.upload_info.access_type == 'PRIVATE' )
{
//$( '#share_popup .url_wrapper__sher-link' ).hide();
$( '#share_popup .social_wrapper' ).hide();
//$( '#seperator-or' ).hide();
$( '#share_popup #url_wrapper__sher-link-icon' ).addClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).hide();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Only with private permission');
}
else
{
$( '#share_popup .url_wrapper__sher-link' ).show();
$( '#share_popup .social_wrapper' ).show();
$( '#seperator-or' ).show();
$( '#share_popup #url_wrapper__sher-link-icon' ).removeClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).show();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Anyone with a link');
}
}
else if ( strType == 'one_file' && typeof arrSharePopupParametres[ 'one_file' ][ 'item_info' ] != 'undefined' && typeof arrSharePopupParametres.can_share != 'undefined' && arrSharePopupParametres.can_share )
{
var objFileInfo = arrSharePopupParametres[ 'one_file' ][ 'item_info' ];
if ( objFileInfo.access_type == '' || objFileInfo.access_type == null )
{
objFileInfo.access_type = objFileInfo.parent_access_type;
}
objSharePopupUploadAccessSwitch = new UploadAccessSwitch(
$( '#share-popup_upload-access-switch' ) ,
{
item_type : 'file' ,
file_hash : objFileInfo.file_view_hash ,
owner_logged_in : objFileInfo.owner_logged_in ,
access_type : objFileInfo.access_type,
parent_access_type : objFileInfo.parent_access_type,
upload_access_switch_type : 'sharing_form' ,
from_eparaksts : ( typeof arrSharePopupParametres[ 'from_eparaksts' ] != 'undefined' && arrSharePopupParametres[ 'from_eparaksts' ] ? true : false )
}
);
$( '#share-popup_upload-access-switch' ).show();
if ( objFileInfo.access_type == 'PRIVATE' )
{
//$( '#share_popup .url_wrapper__sher-link' ).hide();
$( '#share_popup .social_wrapper' ).hide();
//$( '#seperator-or' ).hide();
$( '#share_popup #url_wrapper__sher-link-icon' ).addClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).hide();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Only with private permission');
}
else
{
$( '#share_popup .url_wrapper__sher-link' ).show();
$( '#share_popup .social_wrapper' ).show();
$( '#seperator-or' ).show();
$( '#share_popup #url_wrapper__sher-link-icon' ).removeClass('locked');
$( '#share_popup .upload-access-switch_password-wrapper' ).show();
$( '#share_popup .upload-access-switch_type-wrapper-desc' ).html('Anyone with a link');
}
}
if (strType == 'all_files' && ((typeof arrSharePopupParametres.upload_info != 'undefined' && arrSharePopupParametres.upload_info.access_type =='link-can-upload') || arrSharePopupParametres.all_files.upload_url ))
{
updateSharePopupLink( 1 );
if (bolSharePopupReceiveFolder)
{
updateSharePopupLink( 3 );
$('.link-can-upload').hide();
}
}
if ( strType == 'dvs_document' )
{
$( '#share_popup .url_wrapper' ).hide();
$( '#share_popup .social_wrapper' ).hide();
$( '#share_popup #seperator-or' ).hide();
$( '#share_popup #share_type__group_container__project_team' ).hide();
$( '#share_popup #share_type__group_container__company_users' ).hide();
$( '#share_popup .share_access_rights__wrapper' ).hide();
$( '#share_popup .active_date_input' ).hide();
$( '#share_popup .active_date_input' ).removeClass( 'enterprise_feature' );
$( '#share_popup #share_email_send_notification_wrapper' ).hide();;
}
}
function hideSharePopup()
{
if ( ! $('#share_popup .modal-inner').is(":visible") )
{
return;
}
$( 'html' ).css( 'overflow', '' );
if( window.location.hash.indexOf( ';/share_popup' ) !== -1)
{
window.location.hash = window.location.hash.replace(';/share_popup', '');
}
$('#share_popup .modal-inner').hide();
hideModal('share_popup');
if ( objSharePopupUploadAccessSwitch != null && objSharePopupUploadAccessSwitch.bolAccessTypeChanged )
{
location.reload();
}
}
function updateSharePopupLink(intSelected)
{
$( '#share_access_rights__allow_view' ).attr( 'checked', true );
$( '#share_access_rights__allow_download' ).attr( 'checked', true );
if ( intSelected == 2 && arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] != '' )
{
$( '.copy_input_value_to_clipboard_no_tooltip' ).removeClass( 'checked' );
$( '#drawer_copy_button_edit' ).addClass( 'checked' );
$( '#share_popup_url' ).val( arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] );
$( '#share_popup_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] );
$( '#share_popup_copy_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] );
$( "#share_popup_ext_link" ).attr( 'href', arrSharePopupParametres[ strSharePopupType ][ 'edit_url' ] );
$( '#share_access_rights__allow_write' ).attr( 'checked', true );
$( '#share_access_rights__allow_delete' ).attr( 'checked', true );
}
else if( intSelected == 3 && arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] )
{
$( '.copy_input_value_to_clipboard_no_tooltip' ).removeClass( 'checked' );
$( '#drawer_copy_button_upload' ).addClass( 'checked' );
$( '#share_popup_url' ).val( arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] );
$( '#share_popup_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] );
$( '#share_popup_copy_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] );
$( "#share_popup_ext_link" ).attr( 'href', arrSharePopupParametres[ strSharePopupType ][ 'upload_url' ] );
$( '#share_access_rights__allow_write' ).attr( 'checked', true );
$( '#share_access_rights__allow_delete' ).attr( 'checked', false );
}
else
{
$( '.copy_input_value_to_clipboard_no_tooltip' ).removeClass( 'checked' );
$( '#drawer_copy_button_view' ).addClass( 'checked' );
$( '#share_popup_url' ).val( arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( '#share_popup_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( '#share_popup_copy_url' ).attr( 'data-clipboard-text', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( "#share_popup_ext_link" ).attr( 'href', arrSharePopupParametres[ strSharePopupType ][ 'view_url' ] );
$( '#share_access_rights__allow_write' ).attr( 'checked', false );
$( '#share_access_rights__allow_delete' ).attr( 'checked', false );
}
}
var bolSharePopUpDeclineSuggest = false;
function shareOnFacebook(strFileName, strPictureURL, strDescription, strFbLink, strReturnLink)
{
window.open(
'http://www.facebook.com/dialog/feed?app_id='+ FB_APP_ID +
'&name=' + encodeURIComponent(strFileName) +
'&picture=' + encodeURIComponent(strPictureURL) +
'&description=' + encodeURIComponent(strDescription) +
'&link=' + encodeURIComponent(strFbLink) +
'&redirect_uri=' + encodeURIComponent(strReturnLink)
,
'_parent'
);
}
function shareOnTwitter( strText, strLink )
{
window.open(
'http://twitter.com/intent/tweet?source=webclient&text=' +
encodeURIComponent( strText ) +
'&url=' +
encodeURIComponent( strLink ) ,
'',
'location=1,status=1,scrollbars=0,resizable=0,width=640,height=480'
);
return false;
}
function shareOnTelegram( strText, strLink )
{
window.open(
'https://telegram.me/share/?url=' +
encodeURIComponent( strLink ) +
'&text=' +
encodeURIComponent( strText ),
'',
'location=1,status=1,scrollbars=0,resizable=0,width=640,height=480'
);
return false;
}
</script>
<section id="file_embed_popup" class="modal-container">
<div class="modal-inner">
<div class="inner">
<div class="content">
<form>
<section class="file_embed_section" id="file_embed_section_image">
<div class="file_embed_section_title">
Image embedding codes for web pages: </div>
<div class="input-label" id="file_embed_item_image_html" onclick="window.FileEmbedPopup.onClickItem(event, 'image', 'html')">
<label for="file_embed_image_html">
For websites (HTML) </label>
<input id="file_embed_image_html" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_image_bbcode" onclick="window.FileEmbedPopup.onClickItem(event, 'image', 'bbcode')">
<label for="file_embed_image_bbcode">
Forums: BBCode </label>
<input id="file_embed_image_bbcode" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_image_thumb_small" onclick="window.FileEmbedPopup.onClickItem(event, 'image', 'thumb_small')">
<label for="file_embed_image_thumb_small">
Small picture thumbnail </label>
<input id="file_embed_image_thumb_small" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_image_full" onclick="window.FileEmbedPopup.onClickItem(event, 'image', 'full')">
<label for="file_embed_image_full">
Web size image </label>
<input id="file_embed_image_full" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
</section>
<section class="file_embed_section" id="file_embed_section_default">
<div class="file_embed_section_title">
File links for integrations </div>
<div class="input-label" id="file_embed_item_default_web_link_to_file" onclick="window.FileEmbedPopup.onClickItem(event, 'default', 'web_link_to_file')">
<label for="file_embed_default_web_link_to_file">
Direct link to the file in the browser </label>
<input id="file_embed_default_web_link_to_file" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_default_P2P" onclick="window.FileEmbedPopup.onClickItem(event, 'default', 'P2P')">
<label for="file_embed_default_P2P">
For inclusion in WEB pages together with a video player <img src="/images/UI_icons/info.svg" class="my_tooltip" my_title="Copy this code into your web page. Contact [email protected] for assistance. This is the right way to embed content with unlimited traffic. Possible additional attributes:<br /> <b>w</b> - file width (css value);<br /> <b>h</b> - file height (css value);<br /> <b>autoload</b> - load the file immediately after inclusion;<br /> <b>autoplay</b> - start playing video/audio immediately after loading;<br /> <b>poster_src</b> - preview image link;">
</label>
<input id="file_embed_default_P2P" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_default_direct_simple" onclick="window.FileEmbedPopup.onClickItem(event, 'default', 'direct_simple')">
<label for="file_embed_default_direct_simple">
Direct download link. Limited. For integrations contact us. </label>
<input id="file_embed_default_direct_simple" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
<div class="input-label" id="file_embed_item_default_direct_path" onclick="window.FileEmbedPopup.onClickItem(event, 'default', 'direct_path')">
<label for="file_embed_default_direct_path">
Direct link including full path </label>
<input id="file_embed_default_direct_path" type="text" readonly="">
<div class="copy_button_embed">
<div class="copy_text">
<div class="hover">Copy link</div>
<div class="copied">Copied</div>
</div>
</div>
</div>
</section>
</form>
<div class="for_help">
For help: <a href="mailto:[email protected]">
[email protected] </a>
</div>
</div>
</div>
</div>
<div id="file_embed_popup__close" class="modal-close" data-dismiss="modal" data-close="Aizvērt" onclick="hideQrPopup()"></div>
</section>
<script type="text/javascript" src="/js/popups/more_options_popup.js?v=103"></script>
<script type="text/javascript">
function EmbedPopup( strPopupID )
{
ListButtonPopup.call( this, strPopupID );
}
EmbedPopup.prototype = Object.create( ListButtonPopup.prototype );
EmbedPopup.prototype.constructor = ListButtonPopup;
EmbedPopup.prototype.onBeforeShowed = function ()
{
this.populateSections();
if ( $( '#share_popup' ).is( ":visible" ) )
{
hideSharePopup();
}
};
EmbedPopup.prototype.populateSections = function ()
{
var arrSections = JSON.parse( "{\"image\":[\"html\",\"bbcode\",\"thumb_small\",\"full\"],\"default\":[\"web_link_to_file\",\"P2P\",\"direct_simple\",\"direct_path\"]}" );
var objInfo = this.getFileInfo();
this.sections = {
'image': new ImageSection(),
'default': new DefaultSection()
};
for ( var strSectionKey in arrSections )
{
if ( !arrSections.hasOwnProperty( strSectionKey ) ) continue;
// verify that the section can be showed
if ( !this.sections[ strSectionKey ].canShow( objInfo ) )
{
$( "#file_embed_section_" + strSectionKey ).hide();
continue;
}
else
{
$( "#file_embed_section_" + strSectionKey ).show();
}
var arrItems = arrSections[ strSectionKey ];
for ( var i in arrItems )
{
if ( !arrItems.hasOwnProperty( i ) ) continue;
var strItemKey = arrItems[ i ];
if ( this.sections[ strSectionKey ].canShowItem( strItemKey, objInfo ) )
{
$( "#file_embed_" + strSectionKey + "_" + strItemKey ).val(
this.sections[ strSectionKey ].getItemValue( strItemKey, objInfo )
);
$("#file_embed_item_" + strSectionKey + "_" + strItemKey).show();
}
else
{
$("#file_embed_item_" + strSectionKey + "_" + strItemKey).hide();
}
}
}
};
EmbedPopup.prototype.getFileInfo = function ()
{
var params = window.arrSharePopupParametres;
var type = params.type;
var embed_player,
file_hash,
upload_hash,
is_image,
file_name,
logged_in_user_is_owner;
if ( typeof params[ type ] !== "undefined" )
{
embed_player = params[ type ][ 'embed_player' ];
}
file_hash = params[ 'one_file' ][ 'item_info' ][ 'file_view_hash' ];
upload_hash = params[ 'one_file' ][ 'item_info' ][ 'upload_hash' ];
logged_in_user_is_owner = typeof params[ 'all_files' ][ 'logged_in_user_is_owner' ] !== "undefined" ? params[ 'all_files' ][ 'logged_in_user_is_owner' ] : undefined;
is_image = $.inArray( params[ 'one_file' ][ 'item_info' ][ 'extension' ], [ 'jpeg', 'jpg', 'png', 'gif' ] ) !== -1;
file_name = params[ 'one_file' ][ 'item_info' ][ 'file_name' ];
file_version = params[ 'one_file' ][ 'item_info' ][ 'file_version' ];
return {
'file_hash': file_hash,
'upload_hash': upload_hash,
'file_name': file_name,
'file_version': file_version,
'embed_player': embed_player,
'domain': "https://files.fm",
'is_img': is_image,
'logged_in_user_is_owner': logged_in_user_is_owner,
'file_extension' : params[ 'one_file' ][ 'item_info' ][ 'extension' ]
};
};
EmbedPopup.prototype.onClickItem = function ( event, strSectionKey, strItemKey )
{
var objInfo = this.getFileInfo();
// deselecct all other input fields
$( ".file_embed_select" ).blur();
// select event target field
if ( this.sections[ strSectionKey ].canCopyItem( strItemKey, objInfo ) )
{
var el = document.createElement( 'textarea' );
el.value = $( "#file_embed_" + strSectionKey + "_" + strItemKey ).val();
document.body.appendChild( el );
el.select();
document.execCommand( 'copy' );
document.body.removeChild( el );
$( "#file_embed_item_" + strSectionKey + "_" + strItemKey + " .copy_button_embed").addClass( 'copied' ).delay( 4000 ).queue( function( next )
{
$( this ).removeClass( 'copied' );
next();
} );
$( "#file_embed_" + strSectionKey + "_" + strItemKey ).select();
}
gaev('file_embed_popup', strSectionKey, strItemKey );
};
window.FileEmbedPopup = new EmbedPopup( "file_embed_popup" );
function EmbedPopupSection()
{
}
EmbedPopupSection.prototype = {
canShow: function ( objInfo )
{
},
canShowItem: function ( strItemKey, objInfo )
{
},
canCopyItem: function ( strItemKey, objInfo )
{
},
getItemValue: function ( strItemKey, objInfo )
{
}
};
function ImageSection()
{
EmbedPopupSection.call( this );
}
ImageSection.prototype = Object.create( EmbedPopupSection.prototype );
ImageSection.prototype.constructor = EmbedPopupSection;
ImageSection.prototype.canShow = function ( objInfo )
{
return objInfo.is_img;
};
ImageSection.prototype.getItemValue = function ( strItemKey, objInfo )
{
var strUploadListViewURL = objInfo.domain + "/u/" + objInfo.upload_hash + "#/view/" + encodeURI( objInfo.file_name );
var strFileListViewURL = objInfo.domain + "/f/" + objInfo.file_hash;
var strFileThumbShowURL = objInfo.domain + "/thumb_show.php?i=" + objInfo.file_hash;
var strFileThumbURL = objInfo.domain + "/thumb.php?i=" + objInfo.file_hash;
if ( typeof( objInfo.file_version ) != 'undefined' && objInfo.file_version > 0 )
{
strFileThumbShowURL += '&v=' + objInfo.file_version;
strFileThumbURL += '&v=' + objInfo.file_version;
}
var isListViewForSpecificFile = 0;
switch ( strItemKey )
{
case 'html' :
return "<a href=\"" + (isListViewForSpecificFile ? strFileListViewURL : strUploadListViewURL) + "\">" +
"<img src=\"" + strFileThumbShowURL + "\">" +
"</a>";
case 'bbcode':
return "[URL=" + (isListViewForSpecificFile ? strFileListViewURL : strUploadListViewURL) + "][IMG]" + strFileThumbShowURL + "[/IMG][/URL]";
case 'thumb_small':
return strFileThumbURL;
case 'full':
return strFileThumbShowURL;
}
};
ImageSection.prototype.canShowItem = function ( strItemKey, objInfo )
{
// image embed urls are available to all users
return true;
};
ImageSection.prototype.canCopyItem = function ( strItemKey, objInfo )
{
return true;
};
function DefaultSection()
{
EmbedPopupSection.call( this );
}
DefaultSection.pathUrlCache = [];
DefaultSection.prototype = Object.create( EmbedPopupSection.prototype );
DefaultSection.prototype.constructor = EmbedPopupSection;
DefaultSection.prototype.getItemValue = function ( strItemKey, objInfo )
{
switch ( strItemKey )
{
case 'P2P':
if ( ( [ 'mp4', 'ogg', 'webm' ] ).indexOf( objInfo.embed_player.file_extension ) !== -1 )
{
return '<script type="text/javascript" src="' + objInfo.domain
+ '/embed/playerv2?hash=' + objInfo.embed_player.file_view_hash
+ '&autoplay=off&autoload=off&w=100%&h=auto&poster_src=' + objInfo.domain
+ '/thumb_video_picture.php?i=' + objInfo.embed_player.file_view_hash
+ '" id="filesfm_embed_js__' + objInfo.embed_player.file_view_hash + '"><' + '/script>';
}
else
{
return '<script type="text/javascript" src="' + objInfo.domain + '/embed/player?hash='
+ objInfo.embed_player.file_view_hash + '&w=100%&h=auto" '
+ 'id="filesfm_embed_js__' + objInfo.embed_player.file_view_hash + '"><' + '/script>';
}
case 'web_link_to_file':
return objInfo.domain + "/f/" + objInfo.file_hash;
case 'direct_simple':
return objInfo.domain + "/down.php?i=" + objInfo.file_hash;
case 'direct_path':
if( typeof this.constructor.pathURLCache === "undefined" )
{
this.constructor.pathURLCache = [];
}
// cache the paths
if ( typeof this.constructor.pathURLCache[ objInfo.file_hash ] !== "undefined" )
{
return this.constructor.pathURLCache[ objInfo.file_hash ];
}
var _this = this;
// don't have path cached -> request it from api
$.ajax( {
type: "GET",
url: "/api/embed_urls.php",
data: {
'i': objInfo.file_hash
},
success: function ( data )
{
data = JSON.parse( data );
if ( data[ 'path_access_url' ] )
{
// add url to local cache
_this.constructor.pathURLCache[ objInfo.file_hash ] = data[ 'path_access_url' ];
$( "#file_embed_default_direct_path" ).val( data[ 'path_access_url' ] );
}
else
{
$( '#file_embed_item_default_direct_path' ).hide();
}
}
} );
return "";
}
};
DefaultSection.prototype.canShow = function ( objInfo )
{
return true;
};
DefaultSection.prototype.canShowItem = function ( strItemKey, objInfo )
{
var isLoggedIn = !! 0;
switch ( strItemKey )
{
case 'P2P':
return typeof objInfo.embed_player !== "undefined"
&& typeof objInfo.embed_player.file_view_hash !== "undefined"
&& objInfo.embed_player.file_view_hash !== null
&& $.inArray( objInfo.embed_player.file_extension, [ 'mp4', 'webm', 'jpeg', 'jpg', 'png', 'gif', 'mp3' ] ) >= 0;
case 'direct_path':
return isLoggedIn && (typeof objInfo.logged_in_user_is_owner === "undefined" || objInfo.logged_in_user_is_owner === true);
case 'direct_simple':
if (
(
(
typeof(bolHideDownloadButtons) === 'undefined'
|| ! bolHideDownloadButtons
)
|| bolIsOwner
)
&& objInfo.file_extension != 'filesfm_url'
)
{
return true;
}
else
{
return false
}
default:
return true;
}
};
DefaultSection.prototype.canCopyItem = function ( strItemKey, objInfo )
{
var isSubscriber = !!0;
var isLoggedIn = !! 0;
switch ( strItemKey )
{
case 'P2P':
return true;
case 'direct_path':
case 'direct_simple':
if ( !isSubscriber )
{
if ( isLoggedIn )
{
objSubscriptionForm.showForm( 'direct_access_share_link' );
}
else
{
showSignIn();
}
window.FileEmbedPopup.hidePopup();
}
return isSubscriber;
default:
return true;
}
};
</script>
<link rel="stylesheet" type="text/css" href="/new/css/popups/more_options_popup.css?v=101">
<link rel="stylesheet" type="text/css" href="/new/css/popups/file_embed_popup.css?v=102"><link rel="stylesheet" type="text/css" media="all" href="/css/qr_popup.css?v=1725008979">
<script src="/js/qrcode/qrcode.min.js?v=1715343643"></script>
<section id="qr_popup" class="modal-container">
<div class="modal-inner">
<div class="inner">
<div class="content">
<h1>Scan or download QR code</h1>
<div id="qrcode"></div>
<a id="qr_download" hidden="">Download</a>
</div>
</div>
</div>
<div id="qr_popup__close" class="modal-close" data-dismiss="modal" data-close="Aizvērt" onclick="hideQrPopup()"></div>
</section>
<script type="text/javascript">
function showQrPopup( event, strUrl )
{
$('#qrcode img').remove();
let objButton = document.querySelector('#qr_download')
objButton.removeAttribute('href');
objButton.removeAttribute('download');
objButton.setAttribute('hidden', true);
const makeQR = (url, strFilename) => {
var objQrCode = new QRCode('qrcode', {
text: url,
width: 250,
height: 250,
colorDark: '#242424',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.H
});
objQrCode.makeCode(url)
var intTries = 0;
var checkExist = setInterval(function() {
intTries ++;
if (intTries > 5)
{
clearInterval(checkExist);
}
if (objQrCode._oDrawing._bIsPainted)
{
let objImage = document.querySelector('#qrcode img')
let strQrLink = objImage.getAttribute('src');
objButton.setAttribute('href', strQrLink);
objButton.setAttribute('download', strFilename);
objButton.removeAttribute('hidden');
clearInterval(checkExist);
}
}, 100); // check every 100ms if qrcode has been drawn and create download button
}
makeQR(strUrl, 'qr-code.png')
showModal('qr_popup');
$('#qr_popup .modal-inner').show();
return false;
}
function hideQrPopup()
{
if ( ! $('#qr_popup .modal-inner').is(':visible') )
{
return;
}
$( 'html' ).css( 'overflow', '' );
$('#qr_popup .modal-inner').hide();
hideModal('qr_popup');
}
</script>
<script src="/js/inputs.js?v=1715343640"></script>
<script src="/ts/chat/dist/index.js?v=1715343647"></script>
<script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"rayId":"8e421e8f3ac12154","version":"2024.10.5","serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}},"token":"920d49a89d024a45b0d7a0081fbadb80","b":1}" crossorigin="anonymous"></script>
</div><div id="gallery_panzoomdiv" style="overflow:hidden;height:100%;width:100%;position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 999999999; background: #666666; display: none;" height="100%" width="100%"></div><ul class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content" id="ui-id-1" tabindex="0" style="display: none;"></ul><span role="status" aria-live="assertive" aria-relevant="additions" class="ui-helper-hidden-accessible"></span></body></html>