function callNavigation(link, datatype) { link += "&json=1"; //link += "&XDEBUG_SESSION_START=netbeans-xdebug"; var jSonRequest = jQuery.ajax({ type : 'GET', // use JSONP to allow cross-domain calling of this data! dataType : (typeof datatype !== 'undefined') ? datatype : 'jsonp', cache : false, url : link, contentType: "application/json; charset=utf-8", scriptCharset: "utf-8" }) .done(function(json){ if (!json || !json.data){ if (typeof datatype == 'undefined') { return callNavigation(link, "json"); } alert('could not get calendar'); return; } if (json.script){ //alert(json.script); eval(json.script); } var myspan = document.getElementById("testspan" + json.modid); var modbody = myspan.parentNode; modbody.innerHTML = json.data; // we may have tooltips to re-enable too! try { jQuery(modbody).find('.hasjevtip').popover({'animation':null,'html':true,'placement':'top','selector':null,'title':null,'trigger':'hover focus','content':null,'delay':{'hide':150},'container':modbody}); } catch (e) { } // we may have popup links too try { setupEventPopups(); } catch (e) { } setupMiniCalTouchInteractions(); }) .fail( function( jqxhr, textStatus, error){ alert(textStatus + ", " + error); }); } // setup touch interaction jQuery(document).on('ready', function() { setupMiniCalTouchInteractions(); }); var jevMiniTouchStartX = false; var jevMiniTouchStartY = false; function setupMiniCalTouchInteractions() { if ('ontouchstart' in document.documentElement) { jQuery(".mod_events_table").parent().on("touchend", function (evt) { //jevlog("touchend/touchend."); //jevlog('changed touches '+ evt.originalEvent.changedTouches.length); var touchobj = evt.originalEvent.changedTouches[0] var vdist = touchobj.pageY - jevMiniTouchStartY ; if (Math.abs(vdist)>50) { evt.preventDefault(); return; } var distX = touchobj.pageX - jevMiniTouchStartX ; if (distX > 10) { if (linkprevious) callNavigation(linkprevious); evt.preventDefault(); } else if (distX < -10) { if (linknext) callNavigation(linknext); evt.preventDefault(); } }); jQuery(".mod_events_table").parent().on("touchstart", function (evt) { //evt.preventDefault(); var touchobj = evt.originalEvent.changedTouches[0] jevMiniTouchStartX = touchobj.pageX; jevMiniTouchStartY = touchobj.pageY; }); jQuery(".mod_events_table").parent().on("touchmove", function (evt) { // top stop scrolling etc. but only in the horizontal var touchobj = evt.originalEvent.changedTouches[0] var distX = touchobj.pageX - jevMiniTouchStartX ; //jevlog(distX + " "+Math.abs(distX)); if (Math.abs(distX) > 5) { evt.preventDefault(); return; } /* var vdist = touchobj.pageY - jevMiniTouchStartY ; jevlog(vdist + " "+Math.abs(vdist)); if (Math.abs(vdist)<20) { evt.preventDefault(); } */ }); } } function jevlog(msg) { try { console.log(msg); } catch (e) { } }