/* ------------------------------------------------------------------------------------------------ class SCheckBrower { */ /* Return browser name: - IE5 - IE6 - Firefox - Netscape - Opera - Konqueror - Galeon - Epiphany - K-Meleon - Sylera - Safari - Shiira - OmniWeb - Mozilla - unknown */ function chkBrower() {// var ua = navigator.userAgent; if ( ua.indexOf("MSIE 7") != -1 ) { this.browser_name = "IE7"; } else if ( ua.indexOf("MSIE 6") != -1 ) { this.browser_name = "IE6"; } else if ( ua.indexOf("MSIE 5") != -1 ) { this.browser_name = "IE5"; } else if ( ua.indexOf("Firefox") != -1 ) { this.browser_name = "Firefox"; } else if ( ua.indexOf("Netscape") != -1 ) { this.browser_name = "Netscape"; } else if ( ua.indexOf("Opera") != -1 ) { this.browser_name = "Opera"; } else if ( ua.indexOf("Konqueror") != -1 ) { this.browser_name = "Konqueror"; } else if ( ua.indexOf("Galeon") != -1 ) { this.browser_name = "Galeon"; } else if ( ua.indexOf("Epiphany") != -1 ) { this.browser_name = "Epiphany"; } else if ( ua.indexOf("K-Meleon") != -1 ) { this.browser_name = "K-Meleon"; } else if ( ua.indexOf("Sylera") != -1 ) { this.browser_name = "Sylera"; } else if ( ua.indexOf("Safari") != -1 ) { this.browser_name = "Safari"; } else if ( ua.indexOf("Shiira") != -1 && ua.indexOf("Safari") != -1 ) { this.browser_name = "Shiira"; } else if ( ua.indexOf("OmniWeb") != -1 && ua.indexOf("Safari") != -1 ) { this.browser_name = "OmniWeb"; } else if ( ua.indexOf("Mozilla") != -1 ) { this.browser_name = "Mozilla"; } else { this.browser_name = "unknown"; } return this.browser_name; } function currentBrowser() { return this.browser_name; } /* ie body 1024 scroll bar size 28px 996 976 ys ff body 1024 scroll bar size 16px 1016(real ns) -> 1000(no scroll) <- 1000(real ys) -> 984(yes scroll) <- ie - ff = 8px op 1010 ff [inner size] 1016 644 // IE에서는 정의 되어 있지 않음 // window의 html이 표시되는 영역을 나타냄. 즉 브라우저의 내용 화면으로 // 페이지의 내용이 적어 브라우저의 크기 안에 모두 나타나더라도 height는 브라우저의 // 도큐멘트의 높이를 표시 alert(window.innerWidth); alert(window.innerHeight); // ie // 이는 명백히 body를 표시함으로 height가 내용에 의해 줄었다 늘었다 함. // width는 ie에서는 스크롤바가 처음부터 나타나있기 때문에 아무 문제 없었으나 // 그 외의 브라우터 ff, opera에서는(이외의 브라우저는 테스트 하지 않음)내용이 길면 // 스크롤 바가 표시되어 ie처럼 관계없이 스크롤 바가 있는 width로 인식하도록 하였다. alert(window.document.body.offsetWidth); alert(window.document.body.offsetHeight); IE와 FF이외의 브라우저도 지원하도록 해야 한다. 스크롤 바의 크기가 16인것은 FF뿐임으로 다른 브라우저에서는 어떻게 나올지 테스트 해야 한다. */ function browserWidth() { var documentWidth = null; // IE if ( this.browser_name.indexOf("IE") != -1 ) { documentWidth = window.document.body.offsetWidth; } else { // ff if ( (window.innerWidth - window.document.body.offsetWidth) == 16 ) { // No Scrollbar documentWidth = window.document.body.offsetWidth - 16; } else { documentWidth = window.document.body.offsetWidth; } } return documentWidth; } /* } end of SCheckBrower ------------------------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------------------------ 만들어진 레이어를 화면에 고정 할 수 있도록 만드는 함수 */ // var oldLayerTop = 0; function fixLayer(layerID, fixX, fixY) { // function fixLayer(layerID) { /* alert(document.documentElement.scrollTop); alert(document.body.scrollTop); */ var scrollLeft = document.documentElement.scrollLeft; var scrollTop = document.documentElement.scrollTop; if ( !scrollLeft ) scrollLeft = document.body.scrollLeft; if ( !scrollTop ) scrollTop = document.body.scrollTop; // var fixX = 100; // var fixY = 100; var xMenuFrom = parseInt(document.getElementById(layerID).style.left, 10); var xMenuTo = scrollLeft + fixX; var yMenuFrom = parseInt(document.getElementById(layerID).style.top, 10); var yMenuTo = scrollTop + fixY; // alert(scrollTop + "/" + fixY + "/" + yMenuTo + "--"+yMenuFrom); // alert("1:"+ oldLayerTop +"-"+ yMenuFrom + ":"+ yMenuTo); /* if ( oldLayerTop != yMenuFrom ) { yMenuTo = yMenuFrom; } */ // if ( yMenuFrom != yMenuTo ) { /* yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 20 ); if ( yMenuTo < yMenuFrom ) yOffset = -yOffset; document.getElementById(this.fixObjectLayer).style.top = parseInt(document.getElementById(this.fixObjectLayer).style.top, 10) + yOffset + "px"; timeoutNextCheck = 10; */ document.getElementById(layerID).style.left = xMenuTo + "px"; document.getElementById(layerID).style.top = yMenuTo + "px"; //alert("aaa"); // } // oldLayerTop = yMenuFrom; // alert("2:"+ oldLayerTop +"-"+ yMenuFrom + ":"+ yMenuTo); } function SFixLayer(X, Y, FixY, ObjectLayer) { // Same public value, but think private. this.startPointX = X; this.startPointY = Y; this.fixPointY = FixY; //alert(document.getElementById(ObjectLayer).style.left); //alert(parseInt(document.getElementById(ObjectLayer).style.top), 10); /* if ( document.getElementById(ObjectLayer).style.top != '' ) { this.fixPointY = parseInt(document.getElementById(ObjectLayer).style.top, 10); } else { this.fixPointY = FixY; } */ this.fixObjectLayer = ObjectLayer; // Same public Method, but think private. this.fixLayer = fixLayer; this.fixLayerLoad = fixLayerLoad; // To do. //this.chkBrower(); function fixLayer() { var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck; yMenuFrom = parseInt(document.getElementById(this.fixObjectLayer).style.top, 10); yMenuTo = document.documentElement.scrollTop + this.fixPointY; timeoutNextCheck = 200; // Time interval /* if ( Math.abs (yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom ) { setTimeout ("CheckUIElements()", timeoutNextCheck); return; } if ( yButtonFrom != yButtonTo ) { yOffset = Math.ceil( Math.abs( yButtonTo - yButtonFrom ) / 10 ); if ( yButtonTo < yButtonFrom ) yOffset = -yOffset; if ( bNetscape4plus ) document["divLinkButton"].top += yOffset; else if ( bExplorer4plus ) divLinkButton.style.top = parseInt (divLinkButton.style.top, 10) + yOffset; timeoutNextCheck = 10; } */ if ( yMenuFrom != yMenuTo ) { yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 20 ); if ( yMenuTo < yMenuFrom ) yOffset = -yOffset; document.getElementById(this.fixObjectLayer).style.top = parseInt(document.getElementById(this.fixObjectLayer).style.top, 10) + yOffset + "px"; timeoutNextCheck = 10; } //setTimeout ("fixLayer(" + this.fixPointY + ")", timeoutNextCheck); // Point!! setTimeout ("new SFixLayer(" + this.startPointX + ", " + this.startPointY + ", " + this.fixPointY + ", '" + this.fixObjectLayer + "').fixLayer();", timeoutNextCheck); } function fixLayerLoad() { //if ( top.frames.length ) { document.getElementById(this.fixObjectLayer).style.left = this.startPointX + "px"; // Start Point document.getElementById(this.fixObjectLayer).style.top = document.documentElement.scrollTop + this.startPointY + "px"; // Start Point document.getElementById(this.fixObjectLayer).style.visibility = "visible"; //} this.fixLayer(); return true; } }