var objFileReportTranslations = JSON.parse('{"FileReportCancelConfirm":"Do you want to cancel the previous problem report for this file?","FileReportConfirm":"Is there a problem with this content or service functionality?","ReasonPlaceholder":"Enter a description of the problem...","PleaseSelectType":"Choose the type of problem:","Type_DoesNotWork":"Does not work","Type_Copyrights":"Copyrights","Type_PersonalPrivacy":"Person\u2019s privacy","Type_Hatred":"Hatred","Type_Terrosim":"Terrorism","Type_Malware":"Malware","Type_Spam":"Spam","Type_Adult":"Adult content","Type_Children":"Children","Type_Bug":"Error","Type_Other":"Other","Button_Report":"Report","Button_Cancel":"Cancel"}');
function showFileReportModal( domLink, strHash, fnCallback )
{
if ( typeof fnCallback === "undefined" )
{
fnCallback = function () {};
}
if ( $( domLink ).hasClass( 'has_reported' ) )
return showCancelFileReportModal(domLink, strHash, fnCallback);
var strInputs = '';
strInputs += '
';
strInputs += '
';
strInputs += '';
strInputs += '
';
strInputs += '
';
strInputs += '';
strInputs += '
';
fConfirm(
objFileReportTranslations.FileReportConfirm + strInputs,
null,
objFileReportTranslations.Button_Report ,
objFileReportTranslations.Button_Cancel ,
// Submit
function( bolSubmitted, jqModalWindow )
{
if( bolSubmitted === true )
{
var jqReason = $( '.reason', jqModalWindow );
var jqType = $( '.type', jqModalWindow );
makeFileReportRequest( strHash, jqReason.val(), jqType.val(), function ( strActionResponse ) {
finishFileReport( domLink, strActionResponse );
fnCallback( strActionResponse );
});
}
},
// Validate
function ( jqModalWindow )
{
var jqReason = $( '.reason', jqModalWindow );
var jqType = $( '.type', jqModalWindow );
var bolOk = true;
if ( $.trim( jqReason.val() ).length < 4 )
{
jqReason.css({'border-color': 'red'});
bolOk = false;
}
else
{
jqReason.css({'border-color': 'inherit'});
}
if ( $.trim( jqType.val() ) == '' )
{
jqType.css({'border-color': 'red'});
bolOk = false;
}
else
{
jqType.css({'border-color': 'inherit'});
}
return bolOk;
}
);
}
function showCancelFileReportModal(domLink, strHash, fnCallback)
{
if ( typeof fnCallback === "undefined" )
{
fnCallback = function () {};
}
fConfirm(
objFileReportTranslations.FileReportCancelConfirm,
null,
'OK',
objFileReportTranslations.Button_Cancel ,
// Submit
function( bolSubmitted )
{
if( bolSubmitted === true )
{
makeFileReportRequest( strHash, null, null, function ( strActionResponse ) {
finishFileReport( domLink, strActionResponse );
fnCallback( strActionResponse );
});
}
}
);
}
function finishFileReport( domLink, strActionResponse )
{
if ( strActionResponse == 'report' )
{
$( domLink ).addClass( 'has_reported' ).attr( 'my_title', 'Cancel a problem report' );
fSuccess('Thanks, a problem report has been submitted and will be reviewed shortly.');
}
else
{
$( domLink ).removeClass( 'has_reported' ).attr( 'my_title', 'Report a problem' );
fSuccess('Your message about dangerous file content has been cancelled.');
}
}
function makeFileReportRequest( strHash, strReason, strType, fncCallback )
{
$.ajax( {
type: "POST",
dataType: "json",
url: "/ajax/report_file.php",
data: {
'report': true,
'h': strHash,
'reason': !!strReason ? strReason : null,
'type': !!strType ? strType : null
},
success: function ( data )
{
if ( data[ 'status' ] == 'ok' )
{
fncCallback( data[ 'action' ] );
}
}
} );
}