var PostForumClass = {
    TotalWidth: 730,
    TotalHeight: 464,
    SectionInfo: [{SectionID:'message', WidthLimit:460}],
    Browser: identifyBrowser(),
    BrowserPNGfix: 'ie5,ie5mac,ie5.5,ie6,ie7,ie8',
    getFBWin: '',
    BlockAction: false,
    IntervalID: '',
    //method
    ImgResizeAction: function() {
        for (var i=0; i<this.SectionInfo.length; i++) {
            var SectionObj = this.SectionInfo[i];
            var WidthLimit = SectionObj.WidthLimit;
            if (!document.getElementById(SectionObj.SectionID)) continue;
            var GetSection = document.getElementById(SectionObj.SectionID);
            var GetOImg = GetSection.getElementsByTagName('img');
            for (var j=0; j<GetOImg.length; j++) {
                var SizeArray = [GetOImg[j].width, GetOImg[j].height];
                if (SizeArray[0] > WidthLimit) {
                    GetOImg[j].style.width = WidthLimit + 'px';
                    GetOImg[j].style.height = Math.floor((WidthLimit*SizeArray[1])/SizeArray[0]) + 'px';
                }//end if
            }//end for
        }//end for
    },
    VaryAction: function(Mode, ShowTarget, WinTitle) {
        if (this.BlockAction || (this.getFBWin.GoalO == 100 && Mode == 'On')) return;
        $A($$('div.FBWinTitle')).each(function(getTitle){getTitle.innerHTML = WinTitle;});
        if(ShowTarget == "ReportSection") {
            $('ReportSection').show();
            $('TextSection').hide();
        } else {
            $('ReportSection').hide();
            $('TextSection').show();
        }
        $$('select').each(function(getSelect) {getSelect.style.visibility = 'hidden';});
        var PageSize = getPageSize();
        var PageScroll = getPageScroll();
        this.getFBWin.OpacityFlag = false;
        this.getFBWin.GoalO = (Mode == 'On') ? 100 : 0;
        this.getFBWin.style.left = Math.floor(PageSize[2]/2 - (this.TotalWidth + 20)/2) + 'px';
        this.getFBWin.style.top = Math.floor(PageSize[3]/2 - (this.TotalHeight + 20)/2) + PageScroll[1] + 'px';
        if ($('FTollBarMain')) this.getFBWin.style.top = Math.floor(PageSize[3]/2 - (this.TotalHeight + 20)/2) + $('FTollBarMain').scrollTop + 'px';
        clearInterval(this.IntervalID);
        this.IntervalID = setInterval(function() { PostForumClass.realMove(5); }, 15);
    },
    realMove: function(speed) {
        var DirectObj = this.getFBWin;
        if (!DirectObj.OpacityFlag) {
            var ObjO = DirectObj.Opacity;
            var c = DirectObj.GoalO - ObjO;
            var speedo = c/speed;
            var SignO = (speedo < 0) ? -1 : 1;
            speedo = Number(SignO * ((Math.abs(speedo) <= 1) ? 1 : Math.abs(speedo)));

            if (Math.abs(ObjO-DirectObj.GoalO) <= Math.abs(speedo)) { DirectObj.Opacity = DirectObj.GoalO; DirectObj.OpacityFlag = true; }
            else DirectObj.Opacity = ObjO + speedo;
        }//end if

        DirectObj.style.filter = 'alpha(opacity=' + DirectObj.Opacity + ')';
        DirectObj.style.MozOpacity = DirectObj.Opacity / 100;
        DirectObj.style.opacity = DirectObj.Opacity / 100;

        if (DirectObj.OpacityFlag) {
            clearInterval(this.IntervalID);
            this.BlockAction = false;
            if (DirectObj.Opacity != 100) this.getFBWin.style.left = (this.TotalWidth + 10 + 10)*-1 + 'px';
            $$('select').each(function(getSelect) {getSelect.style.visibility = 'visible';});
            //alert('Done');

        }//end if
    },
    Constructor: function() {
        //LoginCheck
        if (document.cookie.indexOf('id_pchome=')< 0) {
            $A($$('a.BtnFBWinTrigger')).each( function(btn){
                btn.onclick = function() {
                    if (typeof(JWASet) == 'undefined') JWASet = {};
                    JWASet.DiscussConfirmAction = function() {
                        JumpWinClass.BtnClickAction();
                        window.location = "https://member.pchome.com.tw/login.html?ref="+encodeURI(location.href);
                    }
                    JWASet.DiscussCancelAction = function() {
                        JumpWinClass.BtnClickAction();
                        //Element.hide('BtnDiscuss');
                    }
                    var EventSet = [{id:'Confirm', Subject:'登入', Action:'DiscussConfirmAction'}, {id:'Cancel', Subject:'關閉', Action:'DiscussCancelAction'}];
                    JumpWinClass.Trigger({Msg:'這是會員獨享功能，請先登入', Events:EventSet, Closeable:false});
                };
            });
            $A($$('a.recmd_btn')).each( function(btn){
                btn.onclick = function() {
                    if (typeof(JWASet) == 'undefined') JWASet = {};
                    JWASet.DiscussConfirmAction = function() {
                        JumpWinClass.BtnClickAction();
                        window.location = "https://member.pchome.com.tw/login.html?ref="+encodeURI(location.href);
                    }
                    JWASet.DiscussCancelAction = function() {
                        JumpWinClass.BtnClickAction();
                        //Element.hide('BtnDiscuss');
                    }
                    var EventSet = [{id:'Confirm', Subject:'登入', Action:'DiscussConfirmAction'}, {id:'Cancel', Subject:'關閉', Action:'DiscussCancelAction'}];
                    JumpWinClass.Trigger({Msg:'這是會員獨享功能，請先登入', Events:EventSet, Closeable:false});
                };
            });
            $('ReportBtn').onclick = function() {
                if (typeof(JWASet) == 'undefined') JWASet = {};
                JWASet.DiscussConfirmAction = function() {
                    JumpWinClass.BtnClickAction();
                    window.location = "https://member.pchome.com.tw/login.html?ref="+encodeURI(location.href);
                }
                JWASet.DiscussCancelAction = function() {
                    JumpWinClass.BtnClickAction();
                    //Element.hide('BtnDiscuss');
                }
                var EventSet = [{id:'Confirm', Subject:'登入', Action:'DiscussConfirmAction'}, {id:'Cancel', Subject:'關閉', Action:'DiscussCancelAction'}];
                JumpWinClass.Trigger({Msg:'這是會員獨享功能，請先登入', Events:EventSet, Closeable:false});
            };
            return;
        }//end if
        //if (!$('TextAreaSection')) return;
        var FBWin = document.createElement('div');
        FBWin.className = 'FBWinSet';
        FBWin.style.width = this.TotalWidth + 10 + 10 + 'px';
        FBWin.style.height = this.TotalHeight + 10 + 10 + 'px';
        FBWin.style.left = (this.TotalWidth + 10 + 10)*-1 + 'px';
        FBWin.style.top = '0px';
        FBWin.Opacity = 0;
        FBWin.GoalO = 0;
        FBWin.OpacityFlag = false;
        if ($('FTollBarMain')) $('FTollBarMain').appendChild(FBWin);
        else $$('body')[0].appendChild(FBWin);
        this.getFBWin = FBWin;

        //FBWinTopSet
        var FBWinTopSet = document.createElement('div');
        FBWinTopSet.className = 'FBWinTopSet';
        FBWin.appendChild(FBWinTopSet);
        //FBWinTopSet - FBWinTLeftSet
        var FBWinTLeftSet = document.createElement('div');
        FBWinTLeftSet.className = 'FBWinTLeftSet';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinTLeftSet.style.background = 'url(/img/transparent.gif)';
            FBWinTLeftSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinTopSet.appendChild(FBWinTLeftSet);
        //FBWinTopSet - FBWinTMidSet
        var FBWinTMidSet = document.createElement('div');
        FBWinTMidSet.className = 'FBWinTMidSet';
        FBWinTMidSet.style.width = this.TotalWidth + 'px';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinTMidSet.style.background = 'url(/img/transparent.gif)';
            FBWinTMidSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinTopSet.appendChild(FBWinTMidSet);
        //FBWinTopSet - FBWinTRightSet
        var FBWinTRightSet = document.createElement('div');
        FBWinTRightSet.className = 'FBWinTRightSet';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinTRightSet.style.background = 'url(/img/transparent.gif)';
            FBWinTRightSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinTopSet.appendChild(FBWinTRightSet);

        //FBWinMidSet
        var FBWinMidSet = document.createElement('div');
        FBWinMidSet.className = 'FBWinMidSet';
        FBWin.appendChild(FBWinMidSet);
        //FBWinMidSet - FBWinMLeftSet
        var FBWinMLeftSet = document.createElement('div');
        FBWinMLeftSet.className = 'FBWinMLeftSet';
        FBWinMLeftSet.style.height = this.TotalHeight + 'px';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinMLeftSet.style.background = 'url(/img/transparent.gif)';
            FBWinMLeftSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinMidSet.appendChild(FBWinMLeftSet);
        //FBWinMidSet - FBWinTMidSet
        var FBWinMMidSet = document.createElement('div');
        FBWinMMidSet.className = 'FBWinMMidSet';
        FBWinMMidSet.style.width = this.TotalWidth + 'px';
        FBWinMMidSet.style.height = this.TotalHeight + 'px';
        FBWinMidSet.appendChild(FBWinMMidSet);
        FBWinMMidSet.appendChild($('TextAreaSection'));
        //FBWinMidSet - FBWinTRightSet
        var FBWinMRightSet = document.createElement('div');
        FBWinMRightSet.className = 'FBWinMRightSet';
        FBWinMRightSet.style.height = this.TotalHeight + 'px';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinMRightSet.style.background = 'url(/img/transparent.gif)';
            FBWinMRightSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinMidSet.appendChild(FBWinMRightSet);

        //FBWinBottomSet
        var FBWinBottomSet = document.createElement('div');
        FBWinBottomSet.className = 'FBWinBottomSet';
        FBWin.appendChild(FBWinBottomSet);
        //FBWinBottomSet - FBWinBLeftSet
        var FBWinBLeftSet = document.createElement('div');
        FBWinBLeftSet.className = 'FBWinBLeftSet';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinBLeftSet.style.background = 'url(/img/transparent.gif)';
            FBWinBLeftSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinBottomSet.appendChild(FBWinBLeftSet);
        //FBWinBottomSet - FBWinBMidSet
        var FBWinBMidSet = document.createElement('div');
        FBWinBMidSet.className = 'FBWinBMidSet';
        FBWinBMidSet.style.width = this.TotalWidth + 'px';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinBMidSet.style.background = 'url(/img/transparent.gif)';
            FBWinBMidSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinBottomSet.appendChild(FBWinBMidSet);
        //FBWinBottomSet - FBWinBRightSet
        var FBWinBRightSet = document.createElement('div');
        FBWinBRightSet.className = 'FBWinBRightSet';
        if (this.BrowserPNGfix.indexOf(this.Browser) != -1) {
            FBWinBRightSet.style.background = 'url(/img/transparent.gif)';
            FBWinBRightSet.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+'/img/fbpt.png'+', sizingMethod=scale)';
        }//end if
        FBWinBottomSet.appendChild(FBWinBRightSet);

        $A($$('a.BtnFBWinTrigger')).each( function(btn){
            btn.onclick = function() { PostForumClass.VaryAction('On','TextSection', '我要討論');};
        });
        $A($$('a.recmd_btn')).each( function(btn){
            btn.onclick = function() {
                new Ajax.Request("/recmd.php", {
                    parameters: $H({}),
                    asynchronous:false,
                    onSuccess: function(transport) {
                        if(transport.responseText.substr(0,1) == 1) {
                            if (typeof(JWASet) == 'undefined') JWASet = {};
                            JWASet.DiscussConfirmAction = function() {
                                JumpWinClass.BtnClickAction();
                                $A($$('span.recmd_num')).each(function(recmd_num){recmd_num.innerHTML = parseInt(recmd_num.innerHTML)+1;});
                            }
                            var EventSet = [{id:'Confirm', Subject:'確定', Action:'DiscussConfirmAction'}];
                            var TriggerObj = {Msg:"推薦成功, 請按確定繼續", Events:EventSet, Closeable:false};
                            JumpWinClass.Trigger(TriggerObj);
                        } else {
                            if (typeof(JWASet) == 'undefined') JWASet = {};
                            JWASet.DiscussConfirmAction = function() {
                                JumpWinClass.BtnClickAction();
                            }
                            var EventSet = [{id:'Confirm', Subject:'確定', Action:'DiscussConfirmAction'}];
                            var TriggerObj = {Msg:transport.responseText.substr(2,transport.responseText.length), Events:EventSet, Closeable:true};
                            JumpWinClass.Trigger(TriggerObj);
                        }
                    }
                });
            };
        });
        $('BtnFBWinCancel').onclick = function() { PostForumClass.VaryAction('Off'); };
        $('ReportBtn').onclick = function () {PostForumClass.VaryAction('On', 'ReportSection', '連結失效、更新回報');};
        $('ReportCancel').onclick = function() { PostForumClass.VaryAction('Off'); };
        $('ReportSend').onclick = function() {
            var err_msg = "";
            var rtype = "";
            $A($$('input.report_type')).each(function(obj){if(obj.checked == true){rtype = obj.value;}});
            if($('report_content').value == "") {
                if (typeof(JWASet) == 'undefined') JWASet = {};
                JWASet.DiscussConfirmAction = function() {
                    JumpWinClass.BtnClickAction();
                }
                var EventSet = [{id:'Confirm', Subject:'確定', Action:'DiscussConfirmAction'}];
                var TriggerObj = {Msg:"您尚未填寫附加訊息, 請按確定繼續", Events:EventSet, Closeable:false};
                JumpWinClass.Trigger(TriggerObj);
                return;
            }

            new Ajax.Request("/report.php", {
                parameters: $H({
                        subject:$('soft_name').innerHTML,
                        report_type:rtype,
                        content:$('report_content').value
                }),
                asynchronous:false,
                onSuccess: function(transport) {
                    //PostForumClass.VaryAction('Off');
                    if(transport.responseText.substr(0,1) == 1) {
                        if (typeof(JWASet) == 'undefined') JWASet = {};
                        JWASet.DiscussConfirmAction = function() {
                            JumpWinClass.BtnClickAction();
                            PostForumClass.VaryAction('Off');
                            $('report_content').value = "";
                        }
                        var EventSet = [{id:'Confirm', Subject:'確定', Action:'DiscussConfirmAction'}];
                        var TriggerObj = {Msg:"感謝您的回報, 請按確定繼續", Events:EventSet, Closeable:false};
                        JumpWinClass.Trigger(TriggerObj);
                    } else {
                        if (typeof(JWASet) == 'undefined') JWASet = {};
                        JWASet.DiscussConfirmAction = function() {
                            JumpWinClass.BtnClickAction();
                            //PostForumClass.VaryAction('On', 'ReportSection', '連結失效、更新回報');
                        }
                        var EventSet = [{id:'Confirm', Subject:'確定', Action:'DiscussConfirmAction'}];
                        var TriggerObj = {Msg:"系統忙碌中,請稍後再嘗試", Events:EventSet, Closeable:false};
                        JumpWinClass.Trigger(TriggerObj);
                    }
                }
            });
        };

        //TextArea inir
        initEditor();
    }
};

function PostForumClassInit() {
    try {
      document.execCommand("BackgroundImageCache", false, true);
    } catch(err) {}
    //ImgResizeAction
    PostForumClass.ImgResizeAction();

    if (!$('BtnFBWinTrigger') || !$('TextAreaSection')) return;
    setTimeout(function() { PostForumClass.Constructor(); }, 200);
}

addLoadListener(PostForumClassInit);
/*中文*/
