1//global vars 2var __menuTimeoutID; 3 4$(window).on("ready", function(event){ 5 6 //jquery vars 7 var $menu = $("#leftMenu"); 8 var $menuItems = $menu.children(".eChild"); 9 10 var switchHandler; 11 var delayTime = 200; 12 13 //other 14 var viewport = 0; 15 16 //functions container 17 var events = { 18 click: {} 19 } 20 var tools = {}; 21 22 //get browser viewport 23 tools.getViewport = function(){ 24 25 //(mozilla/netscape/opera/IE7) 26 if(typeof window.innerWidth != "undefined"){ 27 viewport = window.innerWidth; 28 } 29 30 //IE6 31 else if(typeof document.documentElement != "undefined" && typeof document.documentElement.clientWidth != "undefined" && document.documentElement.clientWidth != 0){ 32 viewport = document.documentElement.clientWidth; 33 } 34 35 //older versions of IE 36 else{ 37 viewport = document.getElementsByTagName("body")[0].clientWidth; 38 } 39 40 return viewport; 41 42 } 43 44 //events functions 45 events.click.open = function(event){ 46 47 //check viewport 48 if(tools.getViewport() <= 1024){ 49 50 //jquery vars 51 var $this = $(this); 52 var $container = $this.parents("li"); 53 54 //other 55 var state = $this.data("state"); 56 57 //check state 58 if(typeof state == "undefined" || state === false){ 59 60 //open 61 $container.addClass("opened"); 62 63 //set state 64 $this.data("state", true); 65 66 //block actions 67 return event.preventDefault(); 68 69 } 70 71 } 72 73 } 74 75 events.click.close = function(event){ 76 77 //check viewport 78 if(tools.getViewport() <= 1024){ 79 80 //jquery vars 81 var $this = $(this); 82 var $container = $this.parents(".opened"); 83 84 //close parent 85 $container.removeClass("opened"); 86 87 //close by tree 88 $container.find(".opened").removeClass("opened"); 89 90 //set state 91 $container.find(".menuLink").data("state", false); 92 93 //block actions 94 event.preventDefault(); 95 event.stopimmediatepropagation(); 96 97 } 98 99 } 100 101 events.mouseover = function(){ 102 103 //check viewport 104 if(viewport > 1024){ 105 106 //jquery vars 107 var $this = $(this); 108 109 //display drop menu 110 111 if(switchHandler) clearTimeout(switchHandler); 112 switchHandler = setTimeout(function(){ 113 $menuItems.removeClass("activeDrop").find(".drop").hide(); 114 $this.addClass("activeDrop").find(".drop").css("display", "table"); 115 }, delayTime); 116 117 118 // 119 return clearTimeout(__menuTimeoutID); 120 121 } 122 123 //clear 124 else{ 125 $menuItems.removeClass("activeDrop"); 126 $menu.find(".drop").removeAttr("style"); 127 } 128 129 } 130 131 events.mouseout = function(){ 132 133 //check viewport 134 if(viewport > 1024){ 135 136 //jquery vars 137 var $this = $(this); 138 139 //hide drop menu 140 __menuTimeoutID = setTimeout(function(){ 141 $this.removeClass("activeDrop").find(".drop").hide(); 142 }, delayTime + 100); 143 144 } 145 146 //clear 147 else{ 148 $menuItems.removeClass("activeDrop"); 149 $menu.find(".drop").removeAttr("style"); 150 } 151 152 } 153 154 //set start viewport 155 tools.getViewport(); 156 157 //binds 158 $(document).on("click", "#leftMenu .nested .back", events.click.close); 159 $(document).on("click", "#leftMenu .nested > a", events.click.open); 160 161 //mouse 162 $(document).on("mouseover", "#leftMenu .eChild", events.mouseover); 163 $(document).on("mouseout", "#leftMenu .eChild", events.mouseout); 164 165 //resize control 166 $(window).on("resize", tools.getViewport); 167 168});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.