1function rrdDropDownSelected(graphId, element) 2{ 3 rangeId = jQuery(element).val(); 4 5 rrdSwitchRange(graphId, rangeId); 6} 7 8function rrdDoSwitchRange(graphId, rangeId) 9{ 10 var link = jQuery("a#__L" + graphId); 11 var image = jQuery("img#__I" + graphId); 12 var loader = jQuery("div#__LD" + graphId); 13 var allTabs = jQuery("ul#__T" + graphId + " li"); 14 var currentTab = jQuery("li#__TI" + graphId + "X" + rangeId); 15 var select = jQuery("select#__T" + graphId); 16 17 image.addClass("rrdLoading"); 18 loader.addClass("rrdLoaderActive"); 19 image.load(function() { 20 jQuery(this).removeClass("rrdLoading"); 21 loader.removeClass("rrdLoaderActive"); 22 }); 23 24 var removeQueryRegex = new RegExp("\\?.*$"); 25 26 var imageUri = image.attr("src"); 27 imageUri = imageUri.replace(removeQueryRegex, '') + "?range=" + rangeId; 28 29 image.attr("src", imageUri); 30 link.attr("href", imageUri + "&mode=fs"); 31 allTabs.removeClass("rrdActiveTab"); 32 currentTab.addClass("rrdActiveTab"); 33 select.val(rangeId); 34} 35 36function rrdSwitchRange(graphId, rangeId) 37{ 38 var gangedGraphs = jQuery("input:checked[name='rrdgraph_gang']"); 39 40 if (gangedGraphs.filter("[value='" + graphId + "']").length > 0) 41 { 42 gangedGraphs.each(function() { 43 rrdDoSwitchRange(jQuery(this).attr("value"), rangeId); 44 }); 45 } 46 else 47 { 48 rrdDoSwitchRange(graphId, rangeId); 49 } 50} 51 52function rrdSwitchRangeRelative(jRrdContainer, offset) 53{ 54 var graphId = jRrdContainer.attr("data-graphid"); 55 var ranges = jRrdContainer.attr("data-ranges"); 56 var range = jRrdContainer.find("li.rrdActiveTab").index(); 57 58 range += offset; 59 60 if ((range >= 0) && (range < ranges)) rrdSwitchRange(graphId, range); 61} 62 63jQuery().ready(function() { 64 var rrdImages = jQuery("div.rrdImage img"); 65 var downX = 0; 66 var downY = 0; 67 var clickAllowed = true; 68 69 rrdImages.bind("touchstart", function(e) { 70 if (e.originalEvent.changedTouches.length > 1) return true; 71 72 var me = jQuery(this); 73 downX = e.originalEvent.changedTouches[0].pageX; 74 downY = e.originalEvent.changedTouches[0].pageY; 75 76 clickAllowed = true; 77 78 return true; 79 }); 80 81 rrdImages.bind("touchend", function(e) { 82 if (e.originalEvent.changedTouches.length > 1) return true; 83 84 var me = jQuery(this); 85 var upX = e.originalEvent.changedTouches[0].pageX; 86 var upY = e.originalEvent.changedTouches[0].pageY; 87 88 if ((Math.abs(downX - upX) > 100) && (Math.abs(downY - upY) < 50)) 89 { 90 var event = jQuery.Event((upX > downX) ? "swiperight" : "swipeleft"); 91 me.trigger(event); 92 clickAllowed = false; 93 94 return false; 95 } 96 else 97 { 98 return true; 99 } 100 }); 101 102 rrdImages.bind("click", function(e) { 103 if (!clickAllowed) 104 { 105 e.preventDefault(); 106 return false; 107 } 108 }); 109 110 rrdImages.bind("swiperight", function() { 111 rrdSwitchRangeRelative(jQuery(this).closest("div.rrdImage"), -1); 112 113 }); 114 115 rrdImages.bind("swipeleft", function() { 116 rrdSwitchRangeRelative(jQuery(this).closest("div.rrdImage"), +1); 117 }); 118}); 119