// Æ¯º°ÇÑ ¸ñÀûÀÌ ¾Æ´Ï¶ó¸é ÀÌ°÷¿¡¼­ ÇÔ¼ö½ÇÇàÀº ÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù
 
// Browser name: BrowserDetect.browser  <=id
// Browser version: BrowserDetect.version
// OS name: BrowserDetect.OS
var BrowserDetect = {
    isMsIe : function () {
        if (!this.bIsInit) this.init();
        return (this.getBrNm() == 'Explorer' || !this.getBrNm());
    },
    getBrNm : function ()
    {
        if (!this.bIsInit) this.init();
        return this.browser;
    },
    getBrVersion : function ()
    {
        if (!this.bIsInit) this.init();
        return this.version;
    },
    init: function () {
        if (this.bIsInit) return;
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
            
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {   string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari",
            versionSearch: "Version"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {       // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {       // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
               string: navigator.userAgent,
               subString: "iPhone",
               identity: "iPhone/iPod"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]
};


var DebugJs = {
    show : function (sDebug)
    {
        var hObj = document.createElement('div');
        hObj.style.fontSize = '12px';
        document.body.appendChild(hObj);
        hObj.innerHTML += sDebug;
    },
    alertChild : function (target)
    {
        var str_rtn = "";
        for ( i in target )
        {
            str_rtn += i + ' = ' + target[i] + "<br>\n";
        }
        alert(str_rtn);
    }
}

var LayerCtl = {
    layerInit : function () {
        var hObj1 =  document.createElement('div'); hObj1.className = 'outerpair1';
        var hObj2 =  document.createElement('div'); hObj2.className = 'outerpair2';
        var hObj3 =  document.createElement('div'); hObj3.className = 'shadowbox';
        var hObj4 =  document.createElement('div'); hObj4.className = 'innerbox';
        hObj1.appendChild(hObj2);
        hObj2.appendChild(hObj3);
        hObj3.appendChild(hObj4);
        this.hObjLayerTop = hObj1;
        this.hObjLayerTop.id = 'ScCmLayer';
        this.hObjLayerBot = hObj4;
        this.hObjLayerTop.style.position = 'absolute';
        this.hObjLayerTop.style.left = '0px';
        this.hObjLayerTop.style.top = '0px';
        this.hObjLayerTop.style.zIndex = 200000;
        document.body.appendChild(this.hObjLayerTop);
        
        this.hObjLayerBtnClose = document.createElement('img');
        this.hObjLayerBtnClose.style.cursor = 'pointer';
        if (BrowserDetect.isMsIe() && BrowserDetect.getBrVersion() == 6) {
            PngIe6.applyImg(LayerCtl.hObjLayerBtnClose, '/images/layer_close_off.png', 35, 35);
        } else {
            this.hObjLayerBtnClose.src = '/images/layer_close_off.png';
        }
        this.hObjLayerBtnClose.onmouseover = function () {
            if (BrowserDetect.isMsIe() && BrowserDetect.getBrVersion() == 6) {
                PngIe6.applyImg(LayerCtl.hObjLayerBtnClose, '/images/layer_close_on.png', 35, 35);
            } else {
                LayerCtl.hObjLayerBtnClose.src = '/images/layer_close_on.png';
            }
        }
        this.hObjLayerBtnClose.onmouseout = function () {
            if (BrowserDetect.isMsIe() && BrowserDetect.getBrVersion() == 6) {
                PngIe6.applyImg(LayerCtl.hObjLayerBtnClose, '/images/layer_close_off.png', 35, 35);
            } else {
                LayerCtl.hObjLayerBtnClose.src = '/images/layer_close_off.png';
            }
        }
        this.hObjLayerBtnClose.onclick = function () {
            LayerCtl.layerHide();
        }
        this.hObjLayerBtnClose.style.position = 'absolute';
        this.hObjLayerBtnClose.style.left = '0';
        this.hObjLayerBtnClose.style.top = '0';
        this.hObjLayerBtnClose.style.zIndex = '300000';
        document.body.appendChild(this.hObjLayerBtnClose);
        
        var hObjBg = document.createElement('div');
        hObjBg.style.position = 'absolute';
        hObjBg.style.left = '0';
        hObjBg.style.top = '0';
        hObjBg.style.zIndex = '100000';
        hObjBg.style.filter = 'alpha(opacity=60)';
        hObjBg.style.opacity = '0.6';
        hObjBg.style.backgroundColor = '#666666';
        hObjBg.style.display = 'none';
        //hObjBg.innerHTML = 'dasdas';
        hObjBg.style.width = document.body.scrollWidth + 'px';
        hObjBg.style.height = document.body.scrollHeight + 'px';
        hObjBg.id = 'hDivLayerBg';
        document.body.appendChild(hObjBg);
        this.hObjBg = hObjBg;
        EvtCtl.add(window, 'onresize',
            function () {
                LayerCtl.hObjBg.style.width = document.body.scrollWidth + 'px';
                LayerCtl.hObjBg.style.height = document.body.scrollHeight + 'px';
            }
        );
        //alert(BrowserDetect.getBrVersion());
        try {
            if (BrowserDetect.isMsIe() && BrowserDetect.getBrVersion() == 6) {
                hObj1.style.background = 'none';
                hObj2.style.background = 'none';
                hObj3.style.background = 'none';
            }
        } catch (e) {}
        this.bIsWithBg = true;
        this.bIsWithFade = true;
        this.bIsWithShadow = true;
        
        this.bIsWithIfrm = false;
        this.bIsLayerInit = true;
        this.bIsInitIfrm = false;
    },
    layerShowIfrm : function (sUrl, iWidth, iHeight, sFlagFade, sFlagShadow, sWithBg) {
        if (!this.bIsLayerInit) this.layerInit();
        this.bIsWithFade = (sFlagFade == 'F') ? false : true;
        this.bIsWithShadow = (sFlagShadow == 'F') ? false : true;
        this.bIsWithBg = (sWithBg == 'F') ? false : true;
        this.ifrmInit(sUrl, iWidth, iHeight);
        this.layerShow();
    },
    layerShowHtml : function (sId, sFlagFade, sFlagShadow, sWithBg) {
        if (!this.bIsLayerInit) this.layerInit();
        this.bIsWithFade = (sFlagFade == 'F') ? false : true;
        this.bIsWithShadow = (sFlagShadow == 'F') ? false : true;
        this.bIsWithBg = (sWithBg == 'F') ? false : true;
        this.bIsWithIfrm = false;
        this.hObjViewOld = this.hObjView;
        this.hObjView = document.getElementById(sId);
        this.layerShow();
    },
    layerShow : function() {
        if (!this.bIsLayerInit) this.layerInit();
        var hBody = document.body;
        if (!this.bIsWithIfrm) {
            if (this.hObjViewOld) {
                this.hObjViewOld.style.display = 'none';
                document.body.appendChild(this.hObjViewOld);
                this.hObjLayerBot.appendChild(this.hObjView);
            } else {
                this.hObjLayerBot.appendChild(this.hObjView);
            }
            this.hObjView.style.display = '';
            this.hObjLayerTop.style.display = '';
            var iPosX = (parseInt(hBody.scrollLeft) + (parseInt(hBody.clientWidth) - parseInt(this.hObjView.offsetWidth)) / 2);
            var iPosY = (parseInt(hBody.scrollTop) + (parseInt(hBody.clientHeight) - parseInt(this.hObjView.offsetHeight)) / 2);
            this.hObjLayerTop.style.top = iPosY + 'px';
            this.hObjLayerTop.style.left = iPosX + 'px';
            this.hObjLayerBtnClose.style.top = (iPosY - 15) + 'px';
            this.hObjLayerBtnClose.style.left = (iPosX + this.hObjView.offsetWidth- 20) + 'px';
            EvtCtl.add(this.hObjView, 'onmouseover', LayerCtl.layerMouseOver);
            EvtCtl.add(this.hObjView, 'onmouseout', LayerCtl.layerMouseOut);
        } else if (this.bIsWithIfrm) {
            this.hObjLayerTop.style.display = '';
            this.ifrmShow()
            var iPosX = (parseInt(hBody.scrollLeft) + (parseInt(hBody.clientWidth) - parseInt(this.hIfrm.offsetWidth)) / 2);
            var iPosY = (parseInt(hBody.scrollTop) + (parseInt(hBody.clientHeight) - parseInt(this.hIfrm.offsetHeight)) / 2);
            this.hObjLayerTop.style.top = iPosY + 'px';
            this.hObjLayerTop.style.left = iPosX + 'px';
            this.hObjLayerBtnClose.style.top = (iPosY - 15) + 'px';
            this.hObjLayerBtnClose.style.left = (iPosX + this.iWidth- 20) + 'px';
            EvtCtl.add(this.hIfrm, 'onmouseover', LayerCtl.layerMouseOver);
            EvtCtl.add(this.hIfrm, 'onmouseout', LayerCtl.layerMouseOut);
        }
        if (this.bIsWithFade) {
            ScEffectCtl.doFadeIn(this.hObjLayerTop.id, 300);
        } else {
            this.hObjLayerTop.style.display = '';
        }
        EvtCtl.add(this.hObjBg, 'onmousedown', LayerCtl.layerHideByDoc);
        this.hObjBg.style.display = '';
        this.hObjLayerBtnClose.style.display = '';
    },
    layerHide : function ()
    {
        if (this.bIsWithIfrm) {
            var hdocIfrm = this.hIfrm.contentWindow || this.hIfrm.contentDocument;
            this.sUrl = 'about:blank';
            hdocIfrm.location.replace(this.sUrl);
            this.sUrlPrev = this.sUrl;
        }
        if (this.bIsWithFade) {
            ScEffectCtl.doFadeOut(this.hObjLayerTop.id, 300);
        } else {
            this.hObjLayerTop.style.display = 'none';
        }
        this.hObjBg.style.display = 'none';
        this.hObjLayerBtnClose.style.display = 'none';
        EvtCtl.remove(this.hObjBg, 'onmousedown', LayerCtl.layerHideByDoc);
    },
    layerHideByDoc : function ()
    {
        if (!LayerCtl.bIsMouseOverLayer) LayerCtl.layerHide();
    },
    layerMouseOver : function () { LayerCtl.bIsMouseOverLayer = true; },
    layerMouseOut : function () { LayerCtl.bIsMouseOverLayer = false; },
    htmlInit : function (sId, iWidth, iHeight) {
        this.hHtml = document.getElementById(sId);
    },
    htmlShow : function () {
        this.hHtml.style.display = '';
    },
    ifrmResize : function (iWidth, iHeight) {
        this.hIfrm.width = iWidth;
        this.hIfrm.height = iHeight;
        //this.hIfrm.style.visibility = 'visible';
    },
    ifrmInit : function (sUrl, iWidth, iHeight) {
        if (!this.bIsInitIfrm) {
            this.hIfrm = document.createElement('iframe');
            this.hIfrm.frameBorder = 'no';
            this.hIfrm.style.border = 'none';
            this.hIfrm.scrolling = 'no';
            this.hIfrm.id = 'iFrmLayer';
            this.hIfrm.allowTransparency ='true';
            this.hObjLayerBot.appendChild(this.hIfrm);
        }
        //this.hIfrm.style.visibility = 'hidden';
        //this.ipopup.allowTransparency ='true';
        this.bIsWithIfrm = true;
        this.bIsInitIfrm = true;
        this.sUrl = sUrl;
        this.ifrmResize(iWidth, iHeight);
        this.iWidth = iWidth ? iWidth : 100;
        this.iHeight = iHeight ? iHeight : 100;
        //this.hIfrm.style.display = 'block';
    },
    ifrmShow : function ()
    {
        if (this.iWidth && this.iHeight) this.ifrmResize(this.iWidth, this.iHeight);
        //this.hIfrm.style.visibility = 'visible';
        //if (this.hIfrm.src != this.sUrl) this.hIfrm.src = this.sUrl;
        var hdocIfrm = this.hIfrm.contentWindow || this.hIfrm.contentDocument;
        if (this.sUrlPrev != this.sUrl) {
            hdocIfrm.location.replace(this.sUrl);
            this.sUrlPrev = this.sUrl;
        }
    }
}


var EvtCtl = {
    add : function (hObj, sEvtName, fAction)
    {
        if (!hObj) return;
        var sEvtName = BrowserDetect.isMsIe() ? sEvtName : sEvtName.substring(2, sEvtName.length);
        if (BrowserDetect.isMsIe()) {
            hObj.attachEvent( sEvtName, fAction);
        } else {
            hObj.addEventListener(sEvtName, fAction, true);
        }
    },
    remove : function (hObj, sEvtName, fAction)
    {
        if (!hObj) return;
        var sEvtName = BrowserDetect.isMsIe() ? sEvtName : sEvtName.substring(2, sEvtName.length);
        if (BrowserDetect.isMsIe()) {
            hObj.detachEvent( sEvtName, fAction);
        } else {
            hObj.removeEventListener(sEvtName, fAction, true);
        }
    }
}

var PngIe6 = {
    clear : '/images/png_clear.gif',
    applyAll : function (el) {
        var els=document.getElementsByTagName('*');
        var ip=/\.png/i;
        var i=els.length;
        while(i-- >0) {
            var el=els[i];
            var es=el.style;
            if (el.src&&el.src.match(ip)&&!es.filter) {
                PngIe6.applyImg(el);
            } else {
                PngIe6.applyBg(el);
            }
        }
    },
    applyImg : function (el, sSrc, iWidth, iHeight) {
        var es=el.style;
        iWidth = iWidth ? iWidth : el.width;
        iHeight = iHeight ? iHeight : el.height;
        sSrc = sSrc ? sSrc : el.src;
        es.height=iHeight;
        es.width=iWidth;
        var sSrc = sSrc ? sSrc : el.src;
        es.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+sSrc+"',sizingMethod='crop')";
        el.src=this.clear;
    },
    applyBg : function (el) {
        var ip=/\.png/i;
        var elb=el.currentStyle.backgroundImage;
        if (elb.match(ip)) {
            var path=elb.split('"');
            var rep=(el.currentStyle.backgroundRepeat=='no-repeat')?'crop':'scale';
            es.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path[1]+"',sizingMethod='"+rep+"')";
            es.height=el.clientHeight+'px';es.backgroundImage='none';var elkids=el.getElementsByTagName('*');
            if (elkids) {
                var j=elkids.length;
                if (el.currentStyle.position!="absolute") es.position='static';
                while (j-- >0) if (!elkids[j].style.position) elkids[j].style.position="relative";
            }
        }
    }
}
var ScUiCtl = {
    createBox : function (sKey, iArrPosLeft, sType) {
        var sHtml = '';
        sHtml += '<table cellpadding="0" cellspacing="0" border="0">';
        sHtml += '<tr>';
        if (iArrPosLeft) {
            sHtml += '    <td colspan="3" align="left"><img style="margin-left:' + iArrPosLeft + 'px;" src="/images/ui/rbox1_arrow.gif"/></td>';
        } else {
            sHtml += '    <td colspan="3" align="center"><img src="/images/ui/rbox1_arrow.gif"/></td>';
        }
        sHtml += '</tr>';
        sHtml += '<tr>';
        sHtml += '    <td width="5"><img src="/images/ui/rbox1_1.gif"/></td>';
        sHtml += '    <td bgcolor="#ffffff" style="border-top:3px solid #fa0000;"><img src="/images/blank.gif"/></td>';
        sHtml += '    <td width="5"><img src="/images/ui/rbox1_2.gif"/></td>';
        sHtml += '</tr>';
        sHtml += '<tr>';
        sHtml += '    <td bgcolor="#ffffff" style="border-left:3px solid #fa0000;"><img src="/images/blank.gif"/></td>';
        sHtml += '    <td bgcolor="#ffffff" id= "ScUiBoxCont' + sKey + '" align="center" style="padding:0px;">';
        sHtml += '    </td>';
        sHtml += '    <td bgcolor="#ffffff" style="border-right:3px solid #fa0000;"><img src="/images/blank.gif"/></td>';
        sHtml += '</tr>';
        sHtml += '<tr>';
        sHtml += '    <td width="5"><img src="/images/ui/rbox1_3.gif"/></td>';
        sHtml += '    <td bgcolor="#ffffff" style="border-bottom:3px solid #fa0000;"><img src="/images/blank.gif"/></td>';
        sHtml += '    <td width="5"><img src="/images/ui/rbox1_4.gif"/></td>';
        sHtml += '</tr>';
        sHtml += '</table>';
        var hObj = document.createElement('div');
        hObj.id = 'ScUiBox' + sKey;
        hObj.style.position = 'absolute';
        hObj.style.zIndex = '100000';
        hObj.style.display = 'none';
        hObj.innerHTML = sHtml;
        document.body.appendChild(hObj);
        return hObj;
    },
    initBox : function () {
        this.bIsInit = true;
        this.aBoxList = new Array();
    },
    openBox : function (event, sId, sKey, iArrPosLeft, sType) {
        if (!this.bIsInit) this.initBox();
        if (!this.aBoxList[sKey]) {
            this.aBoxList[sKey] = this.createBox(sKey, iArrPosLeft, sType);
            var hObjBoxCont = document.getElementById('ScUiBoxCont' + sKey);
            hObjBoxCont.appendChild(document.getElementById(sId))
            document.getElementById(sId).style.display = '';
        }
        this.aBoxList[sKey].style.display = '';
        this.aBoxList[sKey].style.visibility = 'hidden';
        if (iArrPosLeft) {
            this.aBoxList[sKey].style.left = event.clientX - iArrPosLeft;
        } else {
            this.aBoxList[sKey].style.left = event.clientX - (this.aBoxList[sKey].offsetWidth / 2);
        }
        this.aBoxList[sKey].style.top = event.clientY + document.body.scrollTop + 20;
        this.aBoxList[sKey].style.display = 'none';
        ScEffectCtl.doFadeIn(this.aBoxList[sKey].id, 200);
        this.aBoxList[sKey].style.visibility = '';
    },
    closeBox : function (sKey) {
        if (this.aBoxList[sKey]) {
            ScEffectCtl.doFadeOut(this.aBoxList[sKey].id, 200);
            //this.aBoxList[sKey].style.display = 'none';
        }
    }
}
function openWin( page, name, width, height, scroll, resize ) {
    var dlg = window.open( page, name,
        'toolbar=no, location=no, directories=no, status=no, ' +
        'menubar=no, scrollbars='+ scroll +', resizable='+ resize + ', width=' +
        width + ', height=' + height ) ;
    dlg.focus();
    return dlg;
}
var ScWinCtl = {
    init : function () {
        this.aWinList = new Array();
        this.bIsInit = true;
    },
    openWin : function (sUrl, sName, iWidth, iHeight, sScroll, sResize) {
        if (!this.bIsInit) this.init();
         var oWin = null;
        if (!this.aWinList[sName] || this.aWinList[sName].closed) {
            oWin = window.open( sUrl, sName,
                'toolbar=no, location=no, directories=no, status=no, ' +
                'menubar=no, scrollbars='+ sScroll +', resizable='+ sResize + ', width=' +
                iWidth + ', height=' + iHeight ) ;
            this.aWinList[sName] = oWin; 
        } else {
            oWin = this.aWinList[sName];
        }
        oWin.focus();
        return oWin;
    }
}

//¹è¼ÛÁ¤º¸ ÆË¾÷Ã¢¶ç¿ì±â
function openShipPolicy() {
    var url = '/notice/popup_ship_policy.jsp' ;
    ScWinCtl.openWin( url, 'pop_ship_policy',625, 665, 'yes', 'no' ) ;
}

var EmInfoCtl = {
    openInfoCourse : function () {
        ScWinCtl.openWin( '/event/expmission/em_info_course.jsp',
            'openInfoCourse',370, 650, 'yes', 'no' ) ;
    },
    openInfoEvtRedirect : function () {
        ScWinCtl.openWin( '/event/expmission/em_info_evt_redirect.jsp',
            'openInfoEvtRedirect',380, 200, 'yes', 'no' ) ;
    },
    openInfoEvtCont : function () {
        window.open('/event/event_board_view.jsp?pk_idx=35&cate=1100&page_no=1');
    },
    openInfoApply : function () {
        ScWinCtl.openWin( '/event/expmission/em_info_apply.jsp',
            'openInfoApply',724, 650, 'yes', 'no' ) ;
    },
    openInfoMission : function () {
        ScWinCtl.openWin( '/event/expmission/em_info_mission.jsp',
            'openInfoMission',724, 650, 'yes', 'no' ) ;
    },
    openApplyFrm : function (sArg) {
    	var ema_apply_mission = '';
    	if (sArg){
    		ema_apply_mission = sArg;
    	}
        ScWinCtl.openWin( '/servlet/com.sure.smilecat.expmission.ExpMissionApplyServlet?cmd=procEmApplyFrm&ema_apply_mission='+ema_apply_mission,
            'openApplyFrm',790, 770, 'yes', 'no' ) ;
    },
    openCashback : function (idx) {
        var url_base = '/mall/cashback/cashback_full_list.jsp' ;    
        var url = url_base + '?no=' + idx ;
        ScWinCtl.openWin(url,
            'openApplyFrm',700, 700, 'yes', 'no' ) ;
    }
}
