var showTopper = true; function homeLayersManager(title, description, marginTop) { $('#langTitle').html(title); $('#langDescription').html(description); if(marginTop) $('#centralColumnText').css('margin-top', marginTop); else $('#centralColumnText').css('margin-top', ''); $('#centralColumnText').show(); } /************************************************************************************************************************************************************************************************************ * * ISOGLOSSE * ***********************************************************************************************************************************************************************************************************/ // abbandonata // isoglossaDivOpener('piatră', '39', 'no', '.jpg', 'yes') /* function isoglossaDivOpener(isoglossaId, pageId, redraw, fileExt, deeplink) { var req= { "rnd" : new Date().getTime(), "isoglossaId" : isoglossaId, 'MID' : pageId, "redraw" : redraw, "fileExt" : fileExt , "deeplink" : deeplink }; var url = contextPath + '/applications/webwork/site_red_rrom/local/portlet/wp_isoglossa.jsp'; var div = $("
"); 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 = "
wait
"; // 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 = "
" // 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(); }); }