1/** 2 * Ãltalános (böngészÅfüggetlen) eseménykezelÅ függvények 3 */ 4 5 6// FüggÅségek 7if ("undefined" == typeof AITIA) { 8 alert("AITIA include missing!"); 9} else if ("undefined" == typeof AITIA_BROWSER) { 10 alert("AITIA_BROWSER include missing!"); 11} else if ("undefined" == typeof AITIA_POSITION) { 12 alert("AITIA_POSITION include missing!"); 13} 14 15// Többszörös include 16if ("undefined" != typeof AITIA_EVENT) { 17 alert("AITIA_EVENT multiple insert!"); 18} 19 20AITIA_EVENT = 1; 21Aitia.Event = {}; 22 23/** 24 * Elementhez esemenykezelÅ csatolása 25 */ 26Aitia.Event.addEvent = function(el, evname, func) { 27 if (el.attachEvent) { 28 el.attachEvent("on" + evname, func); 29 } 30 else if (el.addEventListener) { 31 el.addEventListener(evname, func, false); //bubbling 32 } 33} //addEvent 34 35 36/** 37 * ElemrÅl eseménykezelÅ törlése 38 */ 39Aitia.Event.removeEvent = function(el, evname, func) { 40 if (el.detachEvent) { 41 el.detachEvent("on" + evname, func); 42 } 43 else if (el.removeEventListener) { 44 if (typeof nsDOM != "undefined" && nsDOM && evname.toLowerCase() == 'submit') { 45 el.onsubmit = function () {}; 46 } 47 else { 48 el.removeEventListener(evname, func, false); //ha false volt az attach-ban, akkor itt is az kell 49 } 50 } 51} //removeEvent 52 53 54/** 55 * Event propagation stop: ez csak azt intezi el, hogy a dom fában felfelé haladva a 56 * többi node ne kapja meg az esemenyt. EttÅl még a böngeszÅ elkapja (pl.: egy linkre 57 * klikkelést). Ehhez return false, vagy returnValue kell vagy event.preventDefault(). 58 */ 59Aitia.Event.stopPropagation = function(e) { 60 if (!e) { 61 var e = window.event; 62 } 63 if (typeof e!='undefined') { 64 e.cancelBubble = true; 65 if (e.stopPropagation) { 66 e.stopPropagation(); 67 } 68 } 69 return e; 70} // stopPropagation 71 72 73/** 74 * Megakadályozza, hogy az esemény alapértelmezett hatása kiváltódjon. 75 */ 76Aitia.Event.preventDefault = function(e) { 77 if (!e) { 78 var e = window.event; 79 } 80 e.returnValue = false; 81 if (e.preventDefault) { 82 e.preventDefault(); 83 } 84 return e; 85} // preventDefault 86 87 88/** 89 * Adott esemény abszolut koordinátait adja vissza. 90 */ 91Aitia.Event.getAbsolutePosition = function(e) { 92 var posx = 0; 93 var posy = 0; 94 if (!e) { 95 var e = window.event; 96 } 97 if (e.pageX || e.pageY) { 98 posx = e.pageX; 99 posy = e.pageY; 100 } else if (e.clientX || e.clientY) { 101 var scrollPos = Aitia.Position.getScrollPosition(); 102 posx = e.clientX + scrollPos.left; 103 posy = e.clientY + scrollPos.top; 104 } 105 return {top: posy, left: posx}; 106} // getAbsolutePosition 107 108 109/** 110 * Adott esemény relatÃv koordinátait adja vissza. 111 * mode: 0 (def) content lesz a 0,0 112 * mode: 1 border lesz a 0,0 113 * 114 * @todo: test IE! 115 */ 116Aitia.Event.getRelativePosition = function(e, mode) { 117 var posx = 0; 118 var posy = 0; 119 if (!e) { 120 e = window.event; 121 } 122 if (null == mode) { 123 mode = 0; 124 } 125 126 var target = this.getTarget(e); 127 if (Aitia.Browser.ieDom) { 128 if (0 == mode) { 129 // content az origo 130 posx = e.offsetX + Aitia.Style.getStyle(target,"border-left-width",true); 131 posy = e.offsetY + Aitia.Style.getStyle(target,"border-top-width",true); 132 } else if (1 == mode) { 133 // border 134 posx = e.offsetX - Aitia.Style.getStyle(target,"padding-left",true); 135 posy = e.offsetY - Aitia.Style.getStyle(target,"padding-top",true); 136 } 137 } else if (Aitia.Browser.operaDom) { 138 // content bal felso a 0,0, margin is kell 139 if (0 == mode) { 140 posx = e.offsetX + Aitia.Style.getStyle(target,"border-left-width",true) + Aitia.Style.getStyle(target,"padding-left",true); 141 posy = e.offsetY + Atiai.Style.getStyle(target,"border-top-width",true) + Aitia.Style.getStyle(target,"padding-top",true); 142 } else if (1 == mode) { 143 posx = e.offsetX; 144 posy = e.offsetY; 145 } 146 } else if (Aitia.Browser.nsDom) { 147 //NS: egyik sem jo, ha editor frameworkben a kep center-re van igazitva 148/* 149 var Element=e.target; 150 var CalculatedTotalOffsetLeft = CalculatedTotalOffsetTop = 0; 151 while (Element.offsetParent) { 152 CalculatedTotalOffsetLeft += Element.offsetLeft; 153 CalculatedTotalOffsetTop += Element.offsetTop; 154 Element = Element.offsetParent; 155 } 156 var posx=e.pageX - CalculatedTotalOffsetLeft; 157 var posy=e.pageY - CalculatedTotalOffsetTop; 158*/ 159/* 160 posx=e.layerX-getStyle(target,"margin-left",true); //border is benne van 0,0-ban 161 posy=e.layerY-getStyle(target,"margin-top",true); 162*/ 163/* 164 posx=e.layerX; //border is benne van 0,0-ban 165 posy=e.layerY; 166*/ 167 168 //scroll ertekekert figyelembe kell venni!!! 169 var eventPos = this.getAbsolutePosition(e); 170 var targetPos = Aitia.Position.getPositionBorder(target,2); //overflow esetben gaz van, container border bekavar, ez frissult getPos-ban scroll is bekevar, ez is frissult 171 172 posx = eventPos.left - targetPos.left; 173 posy = eventPos.top - targetPos.top; 174 175 if (1 == mode) { 176 // border az origo 177 posx -= Aitia.Style.getStyle(target,"border-left-width",true) + Aitia.Style.getStyle(target,"padding-left",true); 178 posy -= Aitia.Style.getStyle(target,"border-top-width",true) + Aitia.Style.getStyle(target,"padding-top",true); 179 } 180 } else if (Atiai.Browser.konquerorDom) { 181 var eventPos = this.getAbsolutePosition(e); 182 var targetPos = Aitia.getPositionBorder(target,2); 183 184 posx = eventPos.left - targetPos.left; 185 posy = eventPos.top - targetPos.top; 186 187 if (1 == mode) { 188 posx -= Aitia.Style.getStyle(target,"border-left-width",true) + Aitia.Style.getStyle(target,"padding-left",true); 189 posy -= Aitia.Style.getStyle(target,"border-top-width",true) + Aitia.Style.getStyle(target,"padding-top",true); 190 } 191 } 192 return {top: posy, left: posx}; 193} // getRelativePosition 194 195 196/** 197 * A lenyomott billentyű karakter kódját adja vissza 198 */ 199Aitia.Event.getKeyCode = function(e) { 200 if (!e) { 201 var e = window.event; 202 } 203 204 //(e.keyCode ? e.keyCode : (e.charCode ? e.charCode : e.which)); 205 if (e.keyCode) { 206 return e.keyCode; 207 } else if (e.charCode) { 208 return e.charCode; 209 } else if (e.which) { 210 return e.which; 211 } 212 return 0; 213} // getKeyCode 214 215 216/** 217 * Egéresemény esetén az egérgombokat adja vissza 218 */ 219Aitia.Event.getButton = function(e) { 220 var button = ""; 221 if (!e) { 222 var e = window.event; 223 } 224 225 if (Aitia.Browser.ieDom) { 226 //mousedown eseten: 1,4,2 227 //click eseten: 0 228 if ("click" == e.type) { 229 switch (e.button) { 230 case 0: button = "left"; 231 break; 232 case 4: button = "middle"; 233 break; 234 case 2: button = "right"; 235 break; 236 } 237 } else { 238 switch (e.button) { 239 case 1: button = "left"; 240 break; 241 case 4: button = "middle"; 242 break; 243 case 2: button = "right"; 244 break; 245 } 246 } 247 } else if (Aitia.Browser.nsDom) { 248 switch (e.button) { 249 case 0: button = "left"; 250 break; 251 case 1: button = "middle"; 252 break; 253 case 2: button = "right"; 254 break; 255 } 256 } else if (Aitia.Browser.operaDom) { 257 switch (e.button) { 258 case 0: button = "left"; 259 break; 260 case 1: button = "middle"; 261 break; 262 case 2: button = "right"; 263 break; 264 } 265 } else if (Aitia.Browser.konquerorDom || Aitia.Browser.safariDom) { 266 switch (e.button) { 267 case 1: button = "left"; 268 break; 269 case 4: button = "middle"; 270 break; 271 case 2: button = "right"; 272 break; 273 } 274 } 275 return button; 276} // getbutton 277 278 279/** 280 * mouseover, mouseout event-ek esetere 281 * target: az az element, amelyiknel az esemeny letrejott (ha onmouseover van, akkor ennek az onmouseover esemenykezeloje hivodna meg legeloszor) outer -> inner (mouseover) from -> to 282 * currentTarget: az az element, amire propagal az esemeny, tehat ahogy megy felfele (kontenerek fele) ez mindig az adott kontenert jeloli, a target viszont tartalmazza az eredeti esemeny elemet 283 * 284 * @todo: test focus, blur 285 */ 286Aitia.Event.getFromToElements = function(e) { 287 var fromto = {from: null, to: null}; 288 if (!e) { 289 var e = window.event; 290 } 291 if (e.fromElement) { 292 fromto.from = e.fromElement; 293 } 294 if (e.toElement) { 295 fromto.to = e.toElement; 296 } 297 if (e.relatedTarget) { 298 if ("mouseover" == e.type) { 299 fromto.from = e.relatedTarget; 300 fromto.to = e.target; 301 } else if ("mouseout" == e.type) { 302 fromto.to = e.relatedTarget; 303 fromto.from = e.target; 304 } 305 } else { 306 } 307 308 return fromto; 309} // getFromToElements 310 311 312/** 313 * Azt az elemet adja vissza, amin letrejott az eredeti esemeny 314 */ 315Aitia.Event.getTarget = function(e) { 316 if (!e) { 317 var e = window.event; 318 } 319 if (e.target) { 320 return e.target; 321 } else if (e.srcElement) { 322 return e.srcElement; 323 } 324 return null; 325} // getTarget 326 327 328/** 329 * Az vizsgálja,hogy az esemény közben le volt e nyomva a SHIFT billentyű 330 */ 331Aitia.Event.isShiftKeyPressed = function(e) { 332 if (!e) { 333 var e = window.event; 334 } 335 return e.shiftKey; 336} // isShiftKeyPressed 337 338/** 339 * Az vizsgálja,hogy az esemény közben le volt e nyomva a SHIFT billentyű 340 */ 341Aitia.Event.isAltKeyPressed = function(e) { 342 if (!e) { 343 var e = window.event; 344 } 345 return e.altKey; 346} // isAltKeyPressed 347 348/** 349 * Az vizsgálja,hogy az esemény közben le volt e nyomva a SHIFT billentyű 350 */ 351Aitia.Event.isCtrlKeyPressed = function(e) { 352 if (!e) { 353 var e = window.event; 354 } 355 return e.ctrlKey; 356} // isCtrlKeyPressed 357 358/** 359 * ElindÃt egy eseményt. 360 */ 361Aitia.Event.fireEvent = function(fireOnThis, options) { 362 363 // default értékek 364 options = options || {}; 365 options.eventType = options.eventType || 'HTMLEvents'; 366 options.eventName = options.eventName || 'click'; 367 options.bubbles = options.bubbles || true; 368 options.cancelable = options.cancelable || true; 369 options.detail = options.detail || 0; 370 options.screenX = options.screenX || 0; 371 options.screenY = options.screenY || 0; 372 options.clientX = options.clientX || 0; 373 options.clientY = options.clientY || 0; 374 options.ctrlKey = options.ctrlKey || false; 375 options.altKey = options.altKey || false; 376 options.shiftKey = options.shiftKey || false; 377 options.metaKey = options.metaKey || false; 378 options.button = options.button || 0; 379 options.relatedTarget = options.relatedTarget || null; 380 381 if( document.createEvent ) { 382 var evObj = document.createEvent(options.eventType); 383 if (options.eventType == 'HTMLEvents'){ 384 evObj.initEvent(options.eventName, options.bubbles, options.cancelable); 385 } else if (options.eventType == 'MouseEvents') { 386 evObj.initMouseEvent( options.eventName, options.bubbles, options.cancelable, window, 387 options.detail, options.screenX, options.screenY, options.clientX, options.clientY, 388 options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, options.relatedTarget ); 389 } 390 fireOnThis.dispatchEvent(evObj); 391 } else if( document.createEventObject ) { 392 var evObj = document.createEventObject();
393 evObj.detail = options.detail; 394 evObj.screenX = options.screenX; 395 evObj.screenY = options.screenY; 396 evObj.clientX = options.clientX; 397 evObj.clientY = options.clientY; 398 evObj.ctrlKey = options.ctrlKey; 399 evObj.altKey = options.altKey; 400 evObj.shiftKey = options.shiftKey; 401 evObj.metaKey = options.metaKey; 402 evObj.button = options.button; 403 evObj.relatedTarget = options.relatedTarget; 404 fireOnThis.fireEvent('on' + options.eventName,evObj); 405 } 406} 407 408/** 409 * ElindÃt egy HTML eseményt. 410 */ 411Aitia.Event.fireHTMLEvent = function(fireOnThis, eventName) { 412 if( document.createEvent ) { 413 var evObj = document.createEvent('HTMLEvents'); 414 evObj.initEvent( eventName, true, true ); 415 fireOnThis.dispatchEvent(evObj); 416 } else if( document.createEventObject ) { 417 fireOnThis.fireEvent('on' + eventName); 418 } 419} 420 421
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.