1// függÅségek 2if ("undefined" == typeof AITIA) { 3 alert("AITIA include missing!"); 4} else if ("undefined" == typeof AITIA_BROWSER) { 5 alert("AITIA_BROWSER include missing!"); 6} else if ("undefined" == typeof AITIA_STYLE) { 7 alert("AITIA_STYLE include missing!"); 8} 9 10// többszörös include 11if ("undefined" != typeof AITIA_POSITION) { 12 alert("AITIA_POSITION multiple insert!"); 13} 14 15AITIA_POSITION = 1; 16 17Aitia.Position = {}; 18 19/* 20//ez megadja a bal felso sarok helyet 21function getPos_old(node){ 22 var pos={top: 0, left:0}; 23 var node=node; 24 while(node != null) { 25 pos.left+=node.offsetLeft; 26 pos.top+=node.offsetTop; 27 node=node.offsetParent; 28 } 29 return pos; 30} 31*/ 32 33Aitia.Position.getPositionContent = function(el,scroll) { 34 var pos = this.getPositionPadding(el,scroll); 35 pos.top += Aitia.Style.getStyle(el,"padding-top",true); 36 pos.left += Aitia.Style.getStyle(el,"padding-left",true); 37 return pos; 38} // getPositionContent 39 40Aitia.Position.getPositionPadding = function(el,scroll) { 41 var pos = this.getPositionBorder(el,scroll); 42 pos.top += Aitia.Style.getStyle(el,"border-top-width",true); 43 pos.left += Aitia.Style.getStyle(el,"border-left-width",true); 44 return pos; 45} 46 47//scroll: 48//0 nem veszi figyelembe 49//1 hozzaadja 50//2 kivonja NS getEventRelativePos-hoz ez kell 51Aitia.Position.getPositionBorder = function(oriEl,scroll) { 52 var pos = {top: 0, left:0}; 53 var el = oriEl; 54 var absolute = false; 55 var i = 0; 56 var borderTopWidthSum = 0; 57 var borderLeftWidthSum = 0; 58 59 if (el) { 60 while(null != el) { 61 ++i; 62 if (1 != i) { 63 //nem az eredeti node-nal vagyunk mar 64 borderTopWidthSum += Aitia.Style.getStyle(el,"border-top-width",true); 65 borderLeftWidthSum += Aitia.Style.getStyle(el,"border-left-width",true); 66 } 67 pos.top += el.offsetTop; 68 pos.left += el.offsetLeft; 69 70 if (Aitia.Browser.nsDom && el != oriEl && "auto" == Aitia.Style.getStyle(el,"overflow")) { 71 pos.left = pos.left + 2 * Aitia.Style.getStyle(el,"border-left-width",true); 72 pos.top = pos.top + 2 * Aitia.Style.getStyle(el,"border-top-width",true); 73 } 74 75 if (1 == scroll) { 76 if (el.scrollLeft) { 77 pos.left += el.scrollLeft; 78 } 79 if (el.scrollTop) { 80 pos.top += el.scrollTop; 81 } 82 } else if (2 == scroll) { 83 if (el.scrollLeft) { 84 pos.left -= el.scrollLeft; 85 } 86 if (el.scrollTop) { 87 pos.top -= el.scrollTop; 88 } 89 } 90 91 //ha div-ben van absolute, akkor a div pozicioja lesz neki az origo, tehat nem kene absolute-nal megallni 92 // most ez disable 93 if (false && Aitia.Style.getStyle(el,"position") == "absolute") { 94 //itt lehetne offset ertekek helyett top es left getStyle is, de akkor meg a margint is hozza kellene adni 95 //szoval ez igy gyorsabb es jobb szerintem 96 absolute = true; 97 el = null; 98 } else { 99 el = el.offsetParent; 100 } 101 } 102 if (Aitia.Browser.ieDom || absolute) { 103 pos.left = pos.left + borderLeftWidthSum; 104 pos.top = pos.top + borderTopWidthSum; 105 //IE a max(parent.padding-top,el.margin-top) tavolsagot renderel fuggolegesen (vizszintesnel osszeadodnak) 106 //ezzel nem torodunk, ugy vesszuk, hogy megkapta a el.margin-top tavolsagot 107 } else if (Aitia.Browser.nsDom) { 108 //negativ, ha van border, egyszer lejott ezert ketszer hozza kell adni 109 pos.left = pos.left - 2 * document.body.offsetLeft; 110 pos.top = pos.top - 2 * document.body.offsetTop; 111 } else if (Aitia.Browser.operaDom) { 112 pos.left = pos.left + Aitia.Style.getStyle(document.body,"border-left-width",true); 113 pos.top = pos.top + Aitia.Style.getStyle(document.body,"border-top-width",true); 114 if ("textarea" == oriEl.tagName.toLowerCase() && Aitia.Style.getStyle(oriEl,"position") != "absolute") { 115 pos.left += 3; 116 pos.top += 3; 117 //2 table-ben levo textarea-ra meg mindig nem franko teljesen 118 } 119 } 120 } 121 return pos; 122} // getPositionBorder 123 124Aitia.Position.getPositionMargin = function(el,scroll,relative,scroll) { 125 var pos = this.getPositionBorder(el,scroll); 126 pos.top -= Aitia.Style.getStyle(el,"margin-top",true); 127 pos.left -= Aitia.Style.getStyle(el,"margin-left",true); 128 return pos; 129} // getPositionMargin 130 131 132 133 134 135//content poziciojat adja meg pos 136Aitia.Position.setPositionContent = function(el,pos,relative,scroll) { 137 pos.top -= Aitia.Style.getStyle(el,"padding-top",true); 138 pos.left -= Aitia.Style.getStyle(el,"padding-left",true); 139 return this.setPositionBorder(el,pos,relative,scroll); 140} // setPositionContent 141 142 143//padding poziciojat adja meg pos 144Aitia.Position.setPositionPadding = function(el,pos,relative,scroll) { 145 pos.top -= Aitia.Style.getStyle(el,"border-top-width",true); 146 pos.left -= Aitia.Style.getStyle(el,"border-left-width",true); 147 return this.setPositionBorder(el,pos,relative,scroll); 148} // setPositionPadding 149 150//border poziciojat adja meg pos 151Aitia.Position.setPositionBorder = function(el,pos,relative,scroll) { 152 pos.top -= Aitia.Style.getStyle(el,"margin-top",true); 153 pos.left -= Aitia.Style.getStyle(el,"margin-left",true); 154 return this.setPositionMargin(el,pos,relative,scroll); 155} // setPositionBorder 156 157//box poziciojat adja meg pos 158//ez a box-modelt mozgatja 159//mozgatas 160//ha relative=true, akkor szimplan egyenlove teszi a pozicioval 161//ha relative=false, akkor ugy veszi, hogy document 0,0-hoz szamit a pozicio (csak absolute eseten van ertelme) 162//scroll: 163// 0 nem veszi figyelembe 164// 1 kivonja 165// 2 hozzaadja 166Aitia.Position.setPositionMargin = function(el,pos,relative,scroll) { 167 relative = (relative == null ) ? false : relative; 168 //nem body-hoz adom meg a pos-t, hanem absolute parent-hez 169 //position:relative eseten is hasznos 170 scroll = (scroll == null) ? 0 : scroll; 171 172 var left = pos.left; 173 var top = pos.top; 174 var moved = true; 175 176 if (relative == false && Aitia.Style.getStyle(el,"position") == "absolute") { 177 var parent = el.offsetParent; 178 //elso absolute szulo poziciojat le kell vonni, mert absolute szulo bal felso sarka lesz az origo 179 while(parent) { 180 //scroll alapbol hozzaadodik 181 182 if (1 == scroll) { 183 if (parent.scrollLeft) { 184 left -= parent.scrollLeft; 185 } 186 if (parent.scrollTop) { 187 top -= parent.scrollTop; 188 } 189 } else if (2 == scroll) { 190 if (parent.scrollLeft) { 191 left += parent.scrollLeft; 192 } 193 if (parent.scrollTop) { 194 top += parent.scrollTop; 195 } 196 } 197 198 if (Aitia.Style.getStyle(parent,"position") == "absolute") { 199 var parentPos = this.getPositionContent(parent); 200 left -= parentPos.left; 201 top -= parentPos.top; 202 parent = null; 203 } else { 204 parent = parent.offsetParent; 205 } 206 } 207 } 208 el.style.left = left + "px"; 209 el.style.top = top + "px"; 210 211 return moved; 212} // setPositionMargin 213 214 215 216//aktualis scroll pozicio 217// parameter nelkul: aktualis ablak 218// parameterrel: adott element 219Aitia.Position.getScrollPosition = function(el) { 220 var pos={top: 0, left: 0}; 221 222 if (null == el) { 223 // ablak 224 if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) { 225 // Explorer 6 Strict and mozilla strict 226 pos.left = document.documentElement.scrollLeft; 227 pos.top = document.documentElement.scrollTop; 228 } else if (self.pageYOffset) {// all except Explorer 229 pos.left = self.pageXOffset; 230 pos.top = self.pageYOffset; 231 } else if (document.body) { // all other Explorers 232 pos.left = document.body.scrollLeft; 233 pos.top = document.body.scrollTop; 234 } 235 } else { 236 // element 237 pos.left = el.scrollLeft; 238 pos.top = el.scrollTop; 239 } 240 241 return pos; 242} // getScrollPosition 243 244 245// a böngészÅablak renderelési területének magasságát adja vissza 246Aitia.Position.getInnerHeight = function() { 247 var myHeight = 0; 248 if (typeof(window.innerWidth) == 'number') { 249 //Non-IE 250 myHeight = window.innerHeight; 251 } 252 else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 253 //IE 6+ in 'standards compliant mode' 254 myHeight = document.documentElement.clientHeight; 255 } 256 else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 257 //IE 4 compatible 258 myHeight = document.body.clientHeight; 259 } 260 return myHeight; 261} 262 263 264// a böngészÅablak renderelési területének szélességét adja vissza 265Aitia.Position.getInnerWidth = function() { 266 var myWidth = 0; 267 if (typeof(window.innerWidth) == 'number') { 268 //Non-IE 269 myWidth = window.innerWidth; 270 } 271 else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 272 //IE 6+ in 'standards compliant mode' 273 myWidth = document.documentElement.clientWidth; 274 } 275 else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 276 //IE 4 compatible 277 myWidth = document.body.clientWidth; 278 } 279 return myWidth; 280} // getScrollPosition 281
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.