");
div.attr("id", "isoglossa");
div.load(url, req);
var mainDiv = createBlackPage('800px', '90%');
mainDiv.append(div);
}
*/
function loadIsoglossa(isoglossaId, pageId, redraw, newStepPath, fileExt, deeplink) {
if(!newStepPath)
newStepPath = '';
var data = {'isoglossaId' : isoglossaId, 'pageId' : pageId, 'ts' : new Date().getTime() , 'redraw' : (redraw ? 'yes' : 'no'), 'newStepPath' : newStepPath, 'fileExt' : (fileExt ? fileExt : ''), 'deeplink' : deeplink};
//console.debug(data);
$.ajax({
type: "POST",
dataType:"html",
url: contextPath + '/applications/webwork/site_red_rrom/local/parts/ajaxIsoglossa.jsp',
data: data,
cache:false,
success: function(html) {
$('#isoContainer').html(html);
lazyload();
}
});
}
function coordinateCarrier (x, y, isoglossaId, points, pageId, newStepPath, fileExt, deeplink, isoIdCleaned, height) {
var data = {};
if(!newStepPath)
newStepPath = '';
var c = 1;
$.each(points, function() {
data['x_' + c] = this.x;
data['y_' + c] = this.y;
c++;
});
data = $.extend(data, {
"dot_x" : x,
"dot_y" : y,
"totalPoints" : points.length,
"isoglossaId" : isoglossaId,
"newStepPath" : newStepPath,
"fileExt" : fileExt,
"pageId" : pageId,
"isoIdCleaned" : isoIdCleaned,
"ts" : new Date().getTime()
});
// DEBUG OMLY
if(false)
console.debug(x + ', ' + y);
$.ajax({
type: "POST",
dataType:"json",
url: contextPath + '/applications/webwork/site_red_rrom/local/parts/ajaxIsoglossaVerifier.jsp',
data: data,
cache:false,
success: function(ret) {
if(ret.ok) {
// testo per debug
// $('#result').html(ret.text);
// isoglossa ultimata, se corretta visualizzo immagine con tratto altrimenti
if(ret.completed) {
$('#doItAgain').hide();
// GESTIONE ISOGLOSSA CORRETTA
if(ret.image) {
var interval = 5000;
$('#background').css('background-image', 'url(' + ret.image + ')'); // immagine con eventuale nuovo step
$('#background').css('border', '5px solid green');
setTimeout(
function() {
$('#background').css('border', '');
}, interval);
$('#feedbackIso').css('padding', '20px');
$('#feedbackIso').html('ISOGLOSSA_FEEDBACK_OK').fadeIn();
soundManager(true);
var textDiv = $('
');
var loader = "
";
// chiamata ajax per fare nuovo step
if(ret.newStepPath) {
textDiv.css({'text-align' : 'center', 'font-size' : '26px', 'top' : '-'+ (height-40) +'px', 'position' : 'relative', 'backgroundColor' : 'white', 'padding': '15px'});
var text = "
WELL_DONE_NEXT_STEP
"
textDiv.html(text + loader);
$('#background').append(textDiv);
// si carica altro step ==> undoPoints deve essere resettato
undoPoints = new Array();
setTimeout(
function() {
$('#background').html('');
$('#background').css('border', '');
loadIsoglossa(isoglossaId, pageId, false, ret.newStepPath, fileExt, deeplink);
}, interval);
/*
} else {
textDiv.css({'text-align' : 'center', 'font-size' : '26px', 'top' : '-'+ (height-40) +'px', 'position' : 'relative', 'backgroundColor' : 'white', 'padding': '15px'});
var text = "
/=fob.getLabel("WELL_DONE")>
"
// textDiv.html(text + loader);
var backURL = $('#BACK_TO_TEXT').attr('href');
var returnToText = "";
if(backURL && backURL!='')
returnToText = "
";
textDiv.html(text + returnToText);
$('#background').append(textDiv);
*/
}
// GESTIONE ERRORE
} else
errorManager(ret);
// esercizio terminato ==> back automatico
/* GIUGNO 2017 MARCEL CHIEDE VENGA RIMOSSO
if(ret.backUrl) {
setTimeout( function() {
self.location.href = ret.backUrl;
}, interval);
}
*/
// pulsante ripeti
if(!ret.newStepPath)
$('#repeatIso').fadeIn();
// pulsante undo
$('#undoIso').fadeOut();
} else if (ret.finisherNoStarter) {
errorManager(ret);
// pulsante ripeti
$('#repeatIso').fadeIn();
// $('#iAmOver').fadeIn();
// pulsante undo
$('#undoIso').fadeOut();
}
}
},
error: function(err) {
$('#result').html(err.statusText);
}
});
}
function errorManager(response) {
$('#doItAgain').show();
$('#background').css('border', '5px solid red');
setTimeout(
function(){
$('#background').css('border', '');
}, 1500);
var text = response.errorMex ? response.errorMex : 'ISOGLOSSA_FEEDBACK_KO';
$('#feedbackIso').html(text).fadeIn();
soundManager(false);
}
function soundManager(success) {
var audio = document.getElementById('audioFeedback');
var file = success ? "soundOK" : "soundKO";
// load correct file
if ( !(audio.canPlayType && (audio.canPlayType('audio/mp3') || audio.canPlayType('audio/mpeg'))) )
audio.src = contextPath + '/applications/webwork/site_red_rrom/media/sounds/' + file + ".ogg";
else
audio.src = contextPath + '/applications/webwork/site_red_rrom/media/sounds/' + file + ".mp3";
audio.play();
}
/************************************************************************************************************************************************************************************************************
*
* VIDEOALONG
* queste funzioni intervenendo sul css non possono che essere site specific
*
************************************************************************************************************************************************************************************************************/
function enterFullScreen(videoId, subTitlesTarget, feedbackDivId) {
// todo lavorare su percentuali dimensioni schermo
// NB il metodo fullScreenSupported pare non servire a nulla ed inoltre
// - firefox: nasconde la barra dei comandi di jplayer
// - chrome: inibisce il fullscreen!
// if(fullScreenSupported(videoId, feedbackDivId) && subTitlesTarget) {
if(subTitlesTarget) {
// var offset = $('#'+subTitlesTarget).offset().left;
var top = isExplorer ? '50px' : (isChrome ? '240px' : '700px');
var screenWidth = screen.width;
var width = (screenWidth-200) + 'px';
var fontSize = '34px';
var left = '-400px';
if(screenWidth>=1600) {
left = '-400px';
} else if(screenWidth<1600 && screenWidth>=1280) {
left = '-300px';
top = '330px';
} else if(screenWidth<1280 && screenWidth>=1152) {
left = '-190px';
top = '300px';
} else if(screenWidth<1152 && screenWidth>=1024) {
left = '-150px';
top = '260px';
width = (screen.width-150) + 'px';
} else if(screenWidth<1024&& screenWidth>=800) {
left = '-170px';
top = '350px';
width = (screenWidth-100) + 'px';
fontSize = '24px';
} else {
left = '-100px';
}
$('#'+subTitlesTarget)
// .css('width', (screen.width-offset) + 'px')
.css('width', width)
.css('left', left)
.css('top', top) /* in caso di presenza barra comandi */
.css('background-color', 'transparent')
.css('fontSize', fontSize)
.css('color', '#FFF')
.css('font-weight', 'bold')
.css('z-index', 2147483647);
}
}
function enterFullScreenTranslator(videoId, subTitlesTarget, feedbackDivId) {
if(subTitlesTarget) {
var screenWidth = screen.width;
var top = '100px';
var fontSize = '54px';
var width = (screenWidth-300) + 'px';
var left = '-400px';
if(screenWidth>=1600) {
left = '-400px';
} else if(screenWidth<1600 && screenWidth>=1280) {
left = '-300px';
top = '50px';
} else if(screenWidth<1280 && screenWidth>=1152) {
left = '-190px';
top = '160px';
} else if(screenWidth<1152 && screenWidth>=1024) {
left = '-100px';
top = '130px';
} else if(screenWidth<1024&& screenWidth>=800) {
left = '-170px';
top = '250px';
width = (screenWidth-200) + 'px';
fontSize = '34px';
} else {
left = '-50px';
}
$('#'+subTitlesTarget)
.css('left', left)
.css('top', top)
.css('width', width)
.css('background-color', '#FFF')
.css('fontSize', fontSize)
.css('color', '#000')
.css('font-weight', 'normal')
.css('padding', '40px')
.css('minHeight', '300px')
.css('z-index', 2147483647);
}
}
function exitFullScreen(isFullScreen, subTitlesTarget) {
if(!isFullScreen) {
$('#'+subTitlesTarget)
.css('top', '-210px')
.css('text-shadow', '2px 2px 6px #000000')
.css('min-height', '60px')
.css('position', 'relative')
.css('width', '620px')
.css('background-color', 'transparent')
.css('padding', '10px')
.css('fontSize', '16px')
.css('font-weight', 'bold')
.css('color', '#FFF')
// per annullare formattazione full-screen
.css('left', '0px')
.css('z-index', 1);
}
}
/************************************************************************************************************************************************************************************************************
*
* LEZIONI
*
***********************************************************************************************************************************************************************************************************/
function highlight(containerId, elClass, color, fade, stopPrevious) {
var timeout = 150000;
if(fade)
timeout = 50000;
var container = $('#' + containerId);
// click su elemento differente
if(stopPrevious) {
container.find('span').each(function() {
var $this = $(this);
if($this.attr('style'))
$this.stop(true, true);
});
// ennesimo click su medesimo elemento
} else {
container.find('span.' + elClass).each(function() {
var $this = $(this);
if($this.attr('style'))
$this.stop(true, true);
});
}
var textContainer = $(".gramaticalText");
if(textContainer) {
$('html, body').animate({
scrollTop: textContainer.offset().top
}, 'slow');
}
container.find('.' + elClass).each(function() {
var $this = $(this);
// $this.css('color', '#FFF');
// $this.effect("highlight", { color: color }, timeout, function(){
// $this.css('color', '#000');
// } );
$this.effect("highlight", { color: color }, timeout);
});
}
function blackPageViewer(type, docId, pageId, additionalData) {
//width, height, divId, hideClose, top, left, onCloseCallBack
//var div = createBlackPage('670', '90%', '__blackpopup__', false);
var div;
if('hidden_text'==type)
div = createBlackPage('80%', '90%', '__blackpopup__', false, '', '', $.jPlayer.pause());
else
div = createBlackPage('670', '90%', '__blackpopup__', false, '', '', $.jPlayer.pause());
div.load(contextPath + '/applications/webwork/site_red_rrom/local/parts/blackPageViewer.jsp',
"docId=" + docId + "&pageId=" + pageId + "&type=" + type + (additionalData ? additionalData : '')
/*
,function() {
setTimeout(function() {
$('.ra_header').css({'margin' : '0'});
}, 200);
}
*/
);
}
/************************************************************************************************************************************************************************************************************
*
* SECURITY
*
************************************************************************************************************************************************************************************************************/
function loginManager(currentPageId, url) {
var div = createBlackPage('300', '250', '__blackpopup__', true, '200px', '', '', '#295C9F');
div.load(contextPath + '/applications/webwork/site_red_rrom/local/portlet/wp_login.jsp', "MID=" + currentPageId + "&URL=" + url + "&fromMenu=yes" );
setTimeout(function() {
div.find('input[id=FLD_LOGIN_NAME]').focus();
}, 600);
}
/************************************************************************************************************************************************************************************************************
*
* ONLOAD FUNCTION CALLS
*
***********************************************************************************************************************************************************************************************************/
$(function() {
// MANAGE BACK TO TOP in read-along context showTopper=false (partFODocumentDrawer.jsp)
if(showTopper) {
$('body').append('
');
$('.coldroite').prepend('
');
document.addEventListener("scroll", function() {
var topper = $('#topper');
var isVisible = topper.is(':visible');
//console.debug($(window).scrollTop() + ' / ' + screen.height + ' / ' + $(window).height() );
if(!isVisible && $(window).scrollTop()> $(window).height())
topper.fadeIn('slow');
else if (isVisible && $(window).scrollTop()< $(window).height())
topper.fadeOut('slow');
}, true);
}
});
/************************************************************************************************************************************************************************************************************
*
* INLINE QUIZ / QUESTION
*
************************************************************************************************************************************************************************************************************/
function buildInlineQuestion(containerId, docId, pageId, installationId) {
if(!pageId) {
alert("Missing page id!");
return;
}
if(!docId) {
alert("Missing document id!");
return;
}
if(!containerId)
containerId = "ww4_printFilter";
var data = {'docId' : docId, 'pageId' : pageId, 'installationId' : installationId };
// ci sono funzioni richieste dalla question inline?
initialize(contextPath + "/applications/webwork/js/quiz/quizFOJs.jsp", true);
var container = $('#'+containerId);
container.find('a[href^="question_"]').each(function() {
var $el = $(this);
var questionId = $el.attr('href').replace('question_', '');
var text = $el.text();
// todo encodare il testo?
data['questionId'] = questionId;
data['text'] = text;
data['ts'] = new Date().getTime();
$.ajax({
type: "POST",
dataType:"html",
url: contextPath + '/applications/webwork/layout/ajax/ajaxFoInlineQuizController.jsp',
data: data,
cache:false,
success: function(html) {
$el.replaceWith(html);
lazyload();
}
});
});
}
/************************************************************************************************************************************************************************************************************
*
* UTILS
*
************************************************************************************************************************************************************************************************************/
function hideOtherWrappers(thisEl, elId, wrapperClass, bodyContainer, isDiv) {
if(!wrapperClass)
return false;
var thisState = $(thisEl).attr('class');
// questo controllo serve per permettere la chiusura di un elemento aperto
if(thisState && thisState.toLowerCase().indexOf("arrowup") == -1) {
if(!bodyContainer)
bodyContainer = 'body';
else
bodyContainer = '#' + bodyContainer;
$(bodyContainer).find('.' + wrapperClass).each(function() {
var wrapper = $(this);
if(wrapper.is(":visible")) {
var parent = isDiv ? wrapper.parent() : wrapper.closest('table');
if (parent) {
var el;
if(isDiv) // wp_documentTree
el = parent.find('div.arrowDown');
else // wp_lookupTabsAndMaster.jsp
el = parent.find('span.arrowDown');
if(el)
el.removeClass('arrowUp');
if(isDiv) // wp_documentTree
el = parent.find('div.arrowUp');
else // wp_lookupTabsAndMaster.jsp
el = parent.find('span.arrowUp');
if(el) {
el.removeClass('arrowUp');
el.addClass('arrowDown');
}
}
wrapper.slideToggle('slow');
}
});
}
// gestione dell'elemento su cui si è cliccato
// $('#' + elId).slideToggle('slow');
// $(thisEl).toggleClass('arrowUp');
if(thisState && thisState.toLowerCase().indexOf("arrowup") == -1) {
$(thisEl).removeClass('arrowDown');
$(thisEl).addClass('arrowUp');
//console.debug($('#' + elId));
$('#' + elId).slideDown('slow');
} else if(thisState && thisState.toLowerCase().indexOf("arrowdown") == -1) {
$(thisEl).removeClass('arrowUp');
$(thisEl).addClass('arrowDown');
$('#' + elId).slideUp('slow');
}
}
function divManager(divIdToShow, divIdToHide, thirdToHide, fourthToHide) {
var divToShow = $('#' + divIdToShow);
var divToHide = $('#' + divIdToHide);
// click su elemento già aperto
if(divToShow.is(':visible')) {
divToShow.fadeOut('slow');
// click su elemento chiuso
} else {
divToShow.fadeIn('slow');
divToHide.fadeOut('slow');
if(thirdToHide)
$('#' + thirdToHide).fadeOut('slow');
if(fourthToHide)
$('#' + fourthToHide).fadeOut('slow');
}
}
function hideDiv(divId) {
if (obj(divId))
obj(divId).style.visibility = 'hidden';
}
function playmp3(url){
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', url);
audioElement.load();
audioElement.addEventListener("canplay", function() {
audioElement.play();
});
}