﻿var aFilterLink = new Array();

//設定所有的Link計數
function setCounterLinkEvent() {
    $.ajax({
        type: "POST",
        url: "http://" + top.location.host + "/Common/LinkCounter.ashx",
        data: "action=getFilterLink",
        success: function (response) {
            addCounterLinkEvent(response);
        },
        error: function () {
            //alert("setCounterLinkEvent failured"); 
        }
    })
}

//加入LinkEvent
function addCounterLinkEvent(response) {
    aFilterLink = response.split(",");
    //var link = $("a").attr("href");
    if (aFilterLink.length > 0) {
        $("a[href]").click(clickCounterLink);
    }
}

//處理LinkEvent
var clickCounterLink = function (e) {
    var link = this.href;

    var host = "http://" + top.location.host;
    var hostChk = link.substr(0, host.length);
    //過濾要計數的Url
    if (link != "#" && host == hostChk) {
        if (aFilterLink.length > 0) {
            var linkUrl = link.substring(host.length, link.length); //依起始位置取
            var linkChk = linkUrl;
            if (linkUrl.indexOf("?") >= 0) {
                linkChk = linkUrl.substr(0, linkUrl.indexOf("?")); //截取指定長度
            } 
            var linkPath = linkUrl.substr(0, linkUrl.lastIndexOf("/") + 1);

            //完整比對及路徑比對
            if (inArray(linkChk, aFilterLink) || inArray(linkPath, aFilterLink)) {
                $.ajax({
                    type: "POST",
                    url: "http://" + top.location.host + "/Common/LinkCounter.ashx",
                    data: { "link": link }
                })
            }
        }
    }
    //e.preventDefault();
};

//===================================================================================================

//執行罕見字取代
function initFilterBody() {
    initFilterScan();
}

//特殊格式字
function initFilterScan() {
    var host = "http://" + top.location.host;
    var link = window.location.href;
    var currentUrl = link.substring(host.length, link.length); //依起始位置取
    if (link.indexOf("?") > 0) {
        currentUrl = currentUrl.substr(0, currentUrl.indexOf("?")); //截取指定長度
    }
    $.ajax({
        type: "POST",
        url: "http://" + top.location.host + "/Common/RareLetter.ashx",
        data: { "currentUrl": currentUrl },
        success: function (response) {
            setFilterScan(response);
        },
        error: function () {
            //alert("setFilterScan failured"); 
        }
    })
}
//處理特殊格式字
function setFilterScan(response) {
    var lstData = null;

    if (response != "") {
        if (typeof (JSON) == 'undefined') {
            lstData = eval("(" + response + ")"); //eval()要另外用括弧包住JSON
        }
        else {
            lstData = JSON.parse(response);
        }

        //依字掃描
        for (var i = 0; i < lstData.result.length; i++) {
            //依樣式掃描
            for (var j = 0; j < lstData.result[i].data.length; j++) {
                var keyword = lstData.result[i].keyword;
                var scanid = lstData.result[i].data[j].scanid;
                var img = lstData.result[i].data[j].img;
                var objScanid = document.getElementById(scanid);
                if (objScanid != null) {
                    filterBody(objScanid, keyword, img);
                }
            }
        }
    }

    initFilterDefault();
}

//預設黑體字
function initFilterDefault() {
    var currentUrl = "Default";
    $.ajax({
        type: "POST",
        url: "http://" + top.location.host + "/Common/RareLetter.ashx",
        data: { "currentUrl": currentUrl },
        success: function (response) {
            setFilterDefault(response);
        },
        error: function () {
            //alert("setFilterDefault failured"); 
        }
    })
}
//處理預設黑體字
function setFilterDefault(response) {
    var lstData = null;

    if (response != "") {
        if (typeof (JSON) == 'undefined') {
            lstData = eval("(" + response + ")"); //eval()要另外用括弧包住JSON
        }
        else {
            lstData = JSON.parse(response);
        }

        //依字掃描
        for (var i = 0; i < lstData.result.length; i++) {
            //依固定樣式掃描
            var keyword = lstData.result[i].keyword;
            var img = lstData.result[i].data[0].img;
            var objScanid = document.body;
            if (objScanid != null) {
                filterBody(objScanid, keyword, img);
            }
        }
    }
}

//遞迴處理罕見字
function filterBody(node, keyword, img) {
    for (var i = 0; i < node.childNodes.length; i++) {
        var childNode = node.childNodes[i];

        if (childNode.nodeType == 3) {
            //childNode is #text   
            var re = new RegExp(keyword, 'i');
            if (childNode.data.search(re) == -1) continue;
            re = new RegExp('(' + keyword + ')', 'gi');
            var forkNode = document.createElement('span'); //$1
            forkNode.innerHTML = childNode.data.replace(re, img);
            node.replaceChild(forkNode, childNode);
        }
        else if (childNode.nodeType == 1) {
            //childNode is element   
            filterBody(childNode, keyword, img);
        } else {
            //return;
        }
    }
}

//===================================================================================================
function AjaxReplaceDiv(ReplaceDivName, ReplaceUrl) {
    $.ajax({
        type: "POST",
        url: ReplaceUrl,
        data: "",
        beforeSend: function () {
            $("div#ProgressDiv").css("display", "block");
        },
        success: function (msg) {
            $("div#" + ReplaceDivName).html(msg);
        },
        complete: function () {
            $("div#ProgressDiv").css("display", "none");
        }
    });
}
//===================================================================================================

