﻿// JScript 파일
// 팝업 레이어 관련한 스크립트가 모여있따..
// 팝업이 호출 당하는 레이어에서 바디의 마지막에 스크립트 링크를 걸어주어야 한다..
// 2008-03-17일.. reapfox 가 만든다..
// 
// 공용변수
// 외부에서 호출하는 메서드..
// 콜백을 원할때는 var btn_mypage_callback = "<%= btnMaster.ClientID %>"; <-- 형식으로 btn_mypage_callback 값을 변경해 주어야 한다.
//


//  호출할때는 popup_toggle('유알엘',bit) ::> bit = true/false 이다.. 이것은 완전한 모달로 사용할 것이냐.. 아니냐를 판단한다..
//  -- bit 부분을 넣지 않아도 무관하며, 넣지않으면 기본적으로 false 이다.
//  -- bit 부분을 true 로 파라메터 넘기면.. 모달의 백그라운드 부분을 클릭해도 모달창이 닫기지 않는다.
//  -- 현재 팝업로그인 에서만 true 를 사용하고있다.

//  외부에서 호출하는 메서드.. 단순 닫기  aps.net용 버튼에서 : javascript:modalCancel();return false;
//                                       일반 html 버튼에서 : javascript:modalCancel();
//  부모창에서 포스트백 시켜야 할 경우에 사용한다.   일반 html 버튼 :: closePopup();




        var login_togg_temp = 0;
        var login_element = ["div_login_for", "ifrm_login","div_login_back", "ifrm_login_back"];
        var login_for_ob, login_for_frame, login_back_ob, login_back_frame;
        var screenY,screenX, bodyX, bodyY;
        var modalWidth=300, modalHeight=300;
        var modalValue = false;
        var modalFrameSrc = "about:blank";
        var tmp_mypage_callback;
        
        try{
            if(btn_mypage_callback)
            {
                tmp_mypage_callback = btn_mypage_callback;
            }else
            {
                tmp_mypage_callback = "";
            }
        }catch(Error){tmp_mypage_callback="";}
        resizebyFox(); // 페이지 로드시에 기본변수 셋팅한다.
        
        function resizebyFox()
        {
            ////// 스크린사이즈 와 .. 바디의 사이즈를 잰다.../////
            // wrap 는 이 사이트의 relative 포지션을 가지는 가장 바깥족 테그이며, 저것으로 인해서 이벤트의 offset 위치가 변경된다..
            // 그러므로 wrap 가 있을경우.. 전체 크기에서 / wrap의 크기를 빼고, 내가 얻어낸 left 값을 너으면 정상작동 된다.
            // 3항식으로 wrap 의 존재여부를 사용하는 이유는.. '현재사이트'에서 새창으로 뜨는 페이지들은, wrap가 없기 때문이다.
            
            if(document.all){
            screenY = (document.getElementById("wrap"))? document.getElementById("wrap").scrollHeight : document.documentElement.offsetHeight;
            bodyY = (document.getElementById("wrap"))? document.getElementById("wrap").scrollHeight :  document.documentElement.scrollHeight + 20;
            if(ie6_flag)
                bodyY = (document.getElementById("wrap"))? document.getElementById("wrap").scrollHeight :  document.body.scrollHeight + 20;
            ////screenX = (document.getElementById("wrap").scrollWidth)? document.getElementById("wrap").scrollWidth : document.documentElement.offsetWidth;
            screenX = document.documentElement.offsetWidth;
            bodyX =  document.body.scrollWidth + 0;
            //login_back_ob.style.opacity = 100;
            }else{
                screenY = window.innerWidth;
                screenX = window.innerHeight;
            }
        }
    
	    var login_pop = {
	
	    create: function(){
	    
	        
	        var cont_for = document.createElement("div"); // 표시될 iframe 을 감싸는 창
	        cont_for.id = "div_login_for";
	        document.body.appendChild(cont_for);
	        
	        
	        var cont_loading_div = document.createElement("div"); // 표시될 닫기버튼 감싸는 창
	        cont_loading_div.id = "div_login_loading";
	        document.body.appendChild(cont_loading_div);
	        
	        var cont_loading_frm = document.createElement("iframe"); // 표시될 iframe body
	        cont_loading_frm.id = "ifrm_loading";
	        cont_loading_frm.src = "/root/Loading.aspx";
	        cont_loading_frm.frameBorder= "0";
	        cont_loading_frm.marginwidth = "0";
	        cont_loading_frm.marginheight = "0";
	        cont_loading_frm.scrolling = "no";
	        cont_loading_frm.allowTransparency = "true";
	        document.getElementById("div_login_loading").appendChild(cont_loading_frm);
	        
	        document.getElementById("div_login_loading").style.display = "none";
	        
//	        var cont_close_btn = document.createElement("input"); // 표시될 iframe 위에있는 닫기버튼
//	        cont_close_btn.id = "modalCloseBtn";
//	        cont_close_btn.type = "image";
//	        cont_close_btn.src = "../img/partner/bt_close.gif";
//	        cont_close_btn.cssclass = "";
//	        document.getElementById("div_login_for_head_div").appendChild(cont_close_btn);
	        
	        
	        var cont_frm = document.createElement("iframe"); // 표시될 iframe body
	        cont_frm.id = "ifrm_login";
	        cont_frm.src = modalFrameSrc;
	        cont_frm.frameBorder= "0";
	        cont_frm.marginwidth = "0";
	        cont_frm.marginheight = "0";
	        cont_frm.scrolling = "no";
	        cont_frm.allowTransparency = "true";
	        document.getElementById("div_login_for").appendChild(cont_frm);
            
	        
	        var cont_back = document.createElement("div"); // 백그라운드 div
	        cont_back.id = "div_login_back";
	        document.body.appendChild(cont_back);
	        
	        var cont_back_frm = document.createElement("iframe"); // background iframe
	        cont_back_frm.id = "ifrm_login_back";
	        cont_back_frm.frameborder= 0;
	        cont_back_frm.marginwidth = 0;
	        cont_back_frm.marginheight = 0;
	        cont_back_frm.scrolling = "no";
	        document.body.appendChild(cont_back_frm);
	        
			login_pop.findObject();
			login_pop.setStyle();
			
	    },
	    remove: function(){
	        
	        // ie 6.0 에서 리무브 후에 .. 다시 시작한다...
	        var tmpNode = document.getElementById("div_login_for");
			// 김석경이 object exist 하는지 검사하는 소스 추가.	        
	        if (tmpNode != null)
	        {
	            while (tmpNode.childNodes.length > 0){ tmpNode.removeChild(tmpNode.childNodes[0])};
	        }
            tmpNode = document.getElementById("div_login_loading");
            if (tmpNode != null)
            {
	            while (tmpNode.childNodes.length > 0) {tmpNode.removeChild(tmpNode.childNodes[0])};
	        }
	        tmpNode = document.getElementById("div_login_back");
            if (tmpNode != null)
            {
	            while (tmpNode.childNodes.length > 0) {tmpNode.removeChild(tmpNode.childNodes[0])};
	        }
	        tmpNode = document.getElementById("ifrm_login_back");
	        if (tmpNode != null)
            {
	            while (tmpNode.childNodes.length > 0) {tmpNode.removeChild(tmpNode.childNodes[0])};
	        }
	        
	        
	        if (document.getElementById("div_login_for") != null)
	        {
	            document.body.removeChild(document.getElementById("div_login_for"));
	        }
	        if (document.getElementById("div_login_loading") != null)
	        {
	            document.body.removeChild(document.getElementById("div_login_loading"));
	        }
	        if (document.getElementById("div_login_back") != null)
	        {
	            document.body.removeChild(document.getElementById("div_login_back"));
	        }
	        if (document.getElementById("ifrm_login_back") != null)
	        {
	            document.body.removeChild(document.getElementById("ifrm_login_back"));
	        }
	        
	    },
		show:function(){
            login_togg_temp = 1;
            
            if(!login_pop.getElement)
            {login_pop.create;}
            
			for( var i =0; i < login_element.length; i++)
            {
                document.getElementById(login_element[i]).style.display = 'block';
            }
		},
		hide:function()
		{             
		    login_togg_temp = 0; // 토글상태 저장
		    
		    //////// 현재창 휠마우스 버튼 살리기////////////////
		    if(window.addEventListener)
            {
                //parent.window.addEventListener('DOMMouseScroll',function(){parent.event.returnValue = false;}, false); 
                window.addEventListener('DOMMouseScroll', wheel, false); 
                }
            else  /** IE/Opera. */
            {
                //parent.window.onmousewheel = parent.window.document.onmousewheel = function(){parent.event.returnValue = false;};
                window.onmousewheel = document.onmousewheel = wheel; 
                }
            //////// 현재창 휠마우스 버튼 살리기////////////////   
//			login_togg_temp = 0;
//			if(login_back_ob)
//			{
//			    login_back_ob.onclick = null;
//			}
//			if(!login_pop.getElement)
//            {login_pop.create;}
//			
//			for( var i =0; i < login_element.length; i++)
//            {
//                if(document.getElementById(login_element[i]))
//                {
//                    document.getElementById(login_element[i]).style.display = 'none';
//                    
//                }
//            }
            
            login_pop.remove();
		},
		getElement : function(){
		    for( var i =0; i < login_element.length; i++)
            {
                if(!document.getElementById(login_element[i]))
                    return false;
            }
            return true;
		},
		setStyle : function(){
            
            resizebyFox();
            //
            //login_for_ob.style.zIndex = '1003';
            login_for_ob.style.position = 'absolute';
            //login_for_ob.style.backgroundColor = '#fff';
            login_for_ob.style.backgroundColor = 'transparent';
            login_for_ob.style.backgroundImage = 'none';
            login_for_ob.style.textAlign = "right";
            //login_for_ob.style.border = 'solid 1px #dfdfdf';
            
            // 로딩 폼 뷰어되는 위치와 값 등을 설정한다.
            var login_loading_obj = document.getElementById("div_login_loading");
            login_loading_obj.style.position = "absolute";
            login_loading_obj.style.zIndex = '1005';
            var loading_left = ((document.documentElement.offsetWidth - 200) /2 + document.documentElement.scrollLeft);
            var loading_top = ((document.documentElement.offsetHeight - 100) /2 + document.documentElement.scrollTop);
            login_loading_obj.style.left = loading_left;
            login_loading_obj.style.top = loading_top;
            
            
            
            login_for_frame.style.backgroundColor = "transparent";
            login_for_frame.style.backgroundImage = "none";
            
//            var modal_close = document.getElementById("modalCloseBtn");
//            modal_close.style.height = 26;
//            modal_close.style.width = 125;
//            modal_close.onclick = this.hide;
            
            //var modal_header = document.getElementById("div_login_for_head_div");
            //modal_header.className = "spot_top";
            
            for_top = 10;
            for_left = 10;
            if(screenY - modalHeight > 10)
            {
                for_top = (screenY - modalHeight) / 2;
            }
            if(screenX - modalWidth > 10)
            {
                for_left = (screenX - modalWidth) / 2;
            }
            
            login_for_ob.style.left = for_left;
            login_for_ob.style.top = for_top;
			
			
			login_back_ob.style.zIndex = '1004';
            login_back_ob.style.position = 'absolute';
            login_back_ob.style.backgroundColor = '#000';
			login_back_ob.style.left = (document.getElementById("wrap")) ? 0 : 0;
            login_back_ob.style.top = 0;
            
            
            
            login_back_ob.style.width = bodyX;
            login_back_ob.style.height = bodyY ;
            //if(modalValue) // 모달창일경우 백그라운드 죽인다.
            //{
                login_back_ob.style.filter = "alpha(opacity=50)"; // 그냥 내맘대로 배경깔고 간다 ㅋㅋ 
                // 나중에 수정 편히 하기 위햇허 일단.. 그냥 백그라운드 흰색만들었떤거 주석처리 하고 간다...
            //}else // 아닐경우 백그라운드는 투명이다.
            //{
            //    login_back_ob.style.filter = "alpha(opacity=0)";
            //}
            
            login_back_frame.style.zIndex = '1003';
            login_back_frame.style.position = 'absolute';
            login_back_frame.style.backgroundColor = 'transparent';
            login_back_frame.style.backgroundImage = 'none';
			login_back_frame.style.left = (document.getElementById("wrap")) ? 0 : 0;
            login_back_frame.style.top = 0;
            login_back_frame.style.width = bodyX;
            login_back_frame.style.height = bodyY ;
            login_back_frame.style.filter = "alpha(opacity=0)";
            
            
			
			
		},
		findObject : function(){
		
		    login_for_ob = document.getElementById(login_element[0]);
		    login_for_frame = document.getElementById(login_element[1]);
            login_back_ob;
            if(document.all)
                login_back_ob = document.getElementById(login_element[2]);
            else
                login_back_ob = document.body;
            login_back_frame = document.getElementById(login_element[3]);
		}
	};
	
	
	function popup_toggle(body_Url, modal)
    {
        if(modal == true)
            modalValue = true;
        else 
            modalValue = false;
  
        if(login_togg_temp == 0)
        {
            if(document.getElementById("ifrm_login_back"))
            {
                setTimeout("popup_toggle("+body_Url+","+modal+")",100);
                return;
            }
            modalFrameSrc = body_Url;
            login_pop.create();
            document.getElementById("div_login_loading").style.display = "block";
            
            
            var tmpzindex = -5;
            for( var i =0; i < 2; i++)
            {
                document.getElementById(login_element[i]).style.filter = "alpha(opacity=0)";
                document.getElementById(login_element[i]).style.zIndex = tmpzindex;
                tmpzindex++;
            }
            
            
            login_togg_temp = 1;
            for( var i =0; i < login_element.length; i++)
            {
                document.getElementById(login_element[i]).style.display = 'block';
            }
            
            
            
            if(modal != true)
            {
                login_back_ob.onclick = login_pop.hide;
            }
            else
            {
                
            }
            
            //////// 현재창 휠마우스 버튼 죽이기////////////////
		    if(window.addEventListener)
            {
                window.addEventListener('DOMMouseScroll',function(){event.returnValue = false;}, false); 
                }
            else  /** IE/Opera. */
            {
                window.onmousewheel = this.window.document.onmousewheel = function(){event.returnValue = false;};
                }
                
            window.document.body.onkeydown = function(){ // esc키 누르면 모달창 닫기
                if(event.keyCode == 27)
                {
                    login_pop.hide();
                }
            };
            //////// 현재창 휠마우스 버튼 죽이기//////////////// 
            
            
        }else
        {
            
//            for( var i =0; i < login_element.length; i++)
//            {
//                document.getElementById(login_element[i]).style.display = 'none';
//            }
            
//            if(login_for_ob.removeEventListener)
//            {
//                login_back_ob.removeEventListener("click",login_pop.show,false);
//            }else if (login_for_ob.detachEvent)
//            {
//                login_back_ob.detachEvent("onclick",login_pop.show);
//            }else
//            {
//                login_back_ob["onclick"] = login_pop.show;
//            }
            //login_back_ob.onclick = null;
            // 업데이트패널 콜백하기 위해서
            //alert(tmp_mypage_callback);
            if(tmp_mypage_callback && tmp_mypage_callback != null && tmp_mypage_callback != "")
            {
                var modalLogin = document.getElementById(tmp_mypage_callback);
                modalLogin.click();
            }
            login_pop.hide();
        }
        
    }
    
//    Event.observe(window,"load",function()
//    {
////        setTimeout("login_pop.create()",1000);
////        setTimeout("login_pop.hide()",1000);
////        login_pop.create();
////        login_pop.hide();
//    });
    
    /// 윈도우 리사이즈 이벤트  ---- 자식창도 리사이즈 함께발생
//    if(window.addEventListener)
//    {
//        window.addEventListener("resize",resizeShow,false);
//    }else
//    {
//        window.onresize = resizeShow;
//    }
    
    //// window.onscroll() 스크롤시에 리사이즈 이벤트.....
    if(window.addEventListener)
    {
        window.addEventListener("scroll",scroll_move,false);
    }else
    {
        window.onscroll = scroll_move; 
    }
    
    function scroll_move()
    {
        if( document.getElementById("ifrm_login"))
        {
            var ifrm_height = document.getElementById("ifrm_login").contentWindow.document.documentElement.offsetHeight;
            var my_height = document.documentElement.offsetHeight;
            var scroll_top = document.documentElement.scrollTop;
            
            ifrm_height = parseInt( ifrm_height);
            my_height = parseInt( my_height);
            scroll_top = parseInt( scroll_top);
            
            document.getElementById("div_login_for").style.top = (scroll_top + (my_height - ifrm_height)/2 );
        }
    }
    
    
    function resizeShow()
    {
        if(login_togg_temp == 1)
        {
            login_pop.findObject();
            //document.getElementById("div_login_loading").style.display = "block"; // 로딩페이지 잠시 보여짐..   
            
            
            if(ie6_flag)
            {
                var tmpzindex = -5;
                for( var i =0; i < 2; i++)
                {
                    //document.getElementById(login_element[i]).style.filter = "alpha(opacity=0)";
                    document.getElementById(login_element[i]).style.zIndex = tmpzindex;
                    tmpzindex++;
                }
            }
            else
            {
                // 리사이즈 될때.. 팝업위치 움직이는거 보이지 않게 하기 위해서..
                
                document.getElementById("div_login_loading").style.display = "block"; // 로딩페이지 잠시 보여짐..   
                var tmpzindex = -5;
                for( var i =0; i < 2; i++)
                {
                    document.getElementById(login_element[i]).style.filter = "alpha(opacity=0)";
                    document.getElementById(login_element[i]).style.zIndex = tmpzindex;
                    tmpzindex++;
                }
            }
            if(login_for_ob){
                document.getElementById("ifrm_login").contentWindow.document.location.reload();
                login_pop.setStyle();
            }
            else{login_pop.create();login_pop.hide();}
        }

    }
    
    /////////////----------- 페어런트 이동안되게 하고 나만 이동하기..  모달에 모달 띄울때.. 상속문제 해결.. ---------------------------------//////
    function handle(delta) 
    {
        var sss = 0;
        if (delta < 0)
            sss = 120;
        else
            sss = -120;
        //document.getElementById("modalContent").scrollBy(sss,0); 
        if(document.getElementById("modalContent")) 
        {
            tmpFullHeight = document.getElementById("modalContent").scrollHeight;
            tmpRealHeight = parent.document.body.scrollTop + parseInt(document.getElementById("modalContent").style.height.replace("px","")) - 0;
            
            if( tmpFullHeight > tmpRealHeight)
            {
                document.getElementById("modalContent").scrollTop += sss;
                //alert(sss);
                event.returnValue = false;
            }
            else
            {
                event.returnValue = false;
            }
        }
        else
        {
            if(window.addEventListener)
            {
                window.addEventListener('DOMMouseScroll',null, false); 
                }
            else  /** IE/Opera. */
            {
                window.onmousewheel = this.window.document.onmousewheel = null;
                }
        }
    }
    /////////////----------- 페어런트 이동안되게 하고 나만 이동하기.. ---------------------------------//////
     
    function wheel(event){
            var delta = 0;
            if (!event) event = window.event;
            if (event.wheelDelta) {
                    delta = event.wheelDelta/120; 
                    if (window.opera) delta = -delta;
            } else if (event.detail) {
                    delta = -event.detail/3;
            }
            if (delta)
                    handle(delta);
    }
    
    
//	window.onload = function () {
//    login_pop.create();
//    login_pop.hide();
//};



////    // 모달창의 백그라운드가 윈도우 불려진 이후에 하기 위해서 사용된다.
////    if(document.all){
////    screenY = (document.getElementById("wrap"))? document.getElementById("wrap").scrollHeight : document.documentElement.offsetHeight;
////    bodyY = (document.getElementById("wrap"))? document.getElementById("wrap").scrollHeight :  document.body.scrollHeight;
////    ////screenX = (document.getElementById("wrap").scrollWidth)? document.getElementById("wrap").scrollWidth : document.documentElement.offsetWidth;
////    screenX = document.documentElement.offsetWidth;
////    bodyX =  document.body.scrollWidth;
////    //login_back_ob.style.opacity = 100;
////    }else{
////        screenY = window.innerWidth;
////        screenX = window.innerHeight;
////    }
////    
////    login_pop.findObject();
////    login_pop.setStyle();