(function($) { $(document).ready(function(){ var elements = { top: $('#selector-top'), left: $('#selector-left'), right: $('#selector-right'), bottom: $('#selector-bottom') }; function urlencode (str) { str = (str + '').toString(); return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); } function supportMp3(){ var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, '')); } function cursor(){ $('body').css("cursor", "wait"); } function restoreCursor(){ $('body').css("cursor", "help"); } function play(text,lang){ //console.log("Requested 4"); var lang = "el"; if (document.URL.split('/')[3] == "en") {lang = "en";} $('#acb-sound-div').html(''); text=urlencode(text); url = '//tts.infoscope.gr/proxy2.php?lang=' + lang + '&text=' + text; var delay; if(lang=="el") delay = text.length + text.length/2; if(lang=="en") delay = 3*text.length + 3*text.length/2 + 1000; //console.log("Delay: " + delay + " miliseconds"); $('#acb-sound-div').html(''); if( supportMp3() ){ cursor(); setTimeout(restoreCursor, delay); audio = new Audio; audio.src = url; div = $('#acb-sound-div').get(0); div.appendChild( audio ); audio.play(); } else{ embed = document.createElement('embed'); embed.id='sound'; embed.src = url; embed.autostart = true; embed.loop = false; $(embed).css('visibility','hidden'); div = $('#acb-sound-div').get(0); div.appendChild( embed ); } } var soundEnabled = false; var $target; $(document).mousemove(function(event) { if(event.target.id.indexOf('selector') !== -1 || event.target.tagName === 'BODY' || event.target.tagName === 'HTML') return; if (soundEnabled) { $target = $(event.target); targetOffset = $target[0].getBoundingClientRect(), targetHeight = targetOffset.height, targetWidth = targetOffset.width; elements.top.css({ left: (targetOffset.left - 4), top: (targetOffset.top - 4), width: (targetWidth + 5) }); elements.bottom.css({ top: (targetOffset.top + targetHeight + 1), left: (targetOffset.left - 3), width: (targetWidth + 4) }); elements.left.css({ left: (targetOffset.left - 5), top: (targetOffset.top - 4), height: (targetHeight + 8) }); elements.right.css({ left: (targetOffset.left + targetWidth + 1), top: (targetOffset.top - 4), height: (targetHeight + 8) }); } }); $(document).click(function(event) { if (soundEnabled) { text = $target.text(); var language = "el"; if (document.URL.split('/')[3] == "en") {language = "en";} if((text.length==0)&&(language="el")) play("Δεν υπάρχει κείμενο στην περιοχή που επιλέξατε. Παρακαλούμε προσπαθήστε ξανά!",language); else if((text.length==0)&&(language="en")) play("There is no text in your selection. Please try again.",language); else if((text.length>2000)&&(language="el")) play("Το κείμενο που επιλέξατε είναι πολύ μεγάλο. Παρακαλούμε επιλέξτε μια μικρότερη ενότητα!",language); else if((text.length>2000)&&(language="en")) play("The text you selected is too large. Please select a smaller entity!",language); else play(text); } }); //~ $('#stop-sound').click( function(){ //~ $('#sound-div').html(''); //~ }); $('#acb-enable-sound').click( function(){ soundEnabled = true; $('body').css("cursor", "help"); $('#selector').css("display", "block"); }); $('#acb-disable-sound').click( function(){ soundEnabled = false; $('#acb-sound-div').html(''); $('body').css("cursor", "default"); $('#selector').css("display", "none"); }); //~ $('#pause-sound').click( function(){ //~ document.embeds['sound'].Stop(); //~ }); }); })(jQuery);