﻿// JScript 檔

//******************************************************
//說明: 
//          ◎ 在每一頁設定不同的Banner廣告訊息，當使用者瀏覽到不同頁面時，可以在Default.aspx上面Banner部分秀出不同的廣告
//          ◎ 在Default.aspx中有一個ID名稱為Content的iFrame。
//                 當使用者點選Menu Bar或氣球瀏覽其他資訊時。會透過iFrame中連結到不同頁面。
//                 這時管理者可以在每一頁設定不同的Banner資訊，當使用者瀏覽到其他頁面時，就會依照每個頁面所設定的Banner資訊秀出不同的廣告。
//備註:
//          ◎ 每一頁都要Include這個檔案
//          ◎ 在Default.aspx外的每一頁都要設定Banner相關資訊
//          ◎ 在Default.aspx取得Banner相關資訊後將Banner秀出來
//******************************************************

//Banner計數
var BannerNum;
//每頁要更換的Banner數量
var BannerCount;
//儲存BannerID資訊
var BannerID = new Array();
//儲存Banner圖示資訊
var BannerImg = new Array();
//儲存Banner連結資訊
var BannerLink = new Array();
//紀錄目前iFrame中目前存在的網頁名稱
var striFramePage;

//************************************
//設定Banner計數初始值
//除了Default.aspx外，給每一頁呼叫設定Banner計數初始值
//************************************
function SetBannerNum(value)
{
    BannerNum = value;
}

//************************************
//設定每頁要更換的Banner數量
//除了Default.aspx外，給每一頁呼叫設定Banner計數初始值
//************************************
function SetBannerCount(value)
{
    BannerCount = value;
}

//************************************
//取得Banner計數初始值
//給RotateBanner()函式使用
//目的在取得及判斷目前iFrame裡面頁面設定的BannerCount與Default.aspx中BannerNum + 1比較
//************************************
function GetBannerNum()
{
    //判斷Default.aspx中BannerNum + 1是否小於iFrame裡面頁面設定的BannerCount
    //若小於iFrame裡面頁面設定的BannerCount，則保留目前BannerNum值
    //若大於iFrame裡面頁面設定的BannerCount，則重新設定BannerNum值
    if (parseInt(BannerNum) + 1 < parseInt(document.getElementById('Content').contentWindow.BannerCount))
    {
        BannerNum = parseInt(BannerNum);
    }
    else
    {
        BannerNum = document.getElementById('Content').contentWindow.BannerNum;
    } 
}

//************************************
//取得每頁要更換的Banner數量
//給RotateBanner()函式使用
//************************************
function GetBannerCount()
{
    BannerCount = document.getElementById('Content').contentWindow.BannerCount;
}

//************************************
//設定一開始要顯示的Banner廣告
//除了Default.aspx外，給每一頁使用的，但目前沒用到
//************************************
function InitBanner(vImage)
{
    window.parent.document.getElementById("Img_Banner").src = vImage;
}

//************************************
//依序顯示Banner廣告
//在Default.aspx會呼叫這支涵式來更換Banner廣告訊息
//************************************
function RotateBanner()
{
    if (document.getElementById('Content').contentWindow.document.body != null)
    {
        //判斷目前iFrame裡面的頁面是否已經改變，若已經轉換成別頁，就要重新設定相關變數
        if (striFramePage != document.getElementById('Content').contentWindow.document.body.id)
        {
            striFramePage = document.getElementById('Content').contentWindow.document.body.id
            GetBannerNum();
            GetBannerCount();
        }
    }
    //這邊是Banner實際輪播的程式部份
    //偶爾在頁面上會有JavaScript的錯誤發生訊息的原因是iFrame裡面的頁面尚未Load完，這支函式就開始執行所造成
    //我已經加了if (document.all('Content').contentWindow.BannerImg != undefined)判斷式，應該不會有這個問題發生。
    //若還有錯誤訊息，可能就要再重新DeBug一下了
    if (BannerCount == 0)
    {
        BannerNum = 0;
        if (document.getElementById('Content').contentWindow.BannerImg != undefined)
        {
            document.getElementById("Img_Banner").src = document.getElementById('Content').contentWindow.BannerImg[BannerNum].src;
        }
    }
    else
    {
        BannerNum++;
        if (BannerNum > (BannerCount - 1))
        {
            BannerNum = 0;
        }
        if (document.getElementById('Content').contentWindow.BannerImg != undefined)
        {
            document.getElementById("Img_Banner").src = document.getElementById('Content').contentWindow.BannerImg[BannerNum].src;
        }
    }
}

//************************************
//點選Banner連結到指定網頁
//在Default.aspx。當使用者點選不同Banner廣告後，
//會連結到SaveClickBannerUserInfo.aspx紀錄使用者點選Banner的相關訊息。
//傳遞過去的參數為BannerID
//************************************
function ClickBanner()
{
    var XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    var strRequest;
    
    if (BannerNum == '' || BannerNum == undefined)
    {
        BannerNum = 0;
    }
    
    if (document.getElementById('Content').contentWindow.BannerLink[BannerNum] != '' && document.getElementById('Content').contentWindow.BannerLink[BannerNum] != undefined)
    {
        window.open(document.getElementById('Content').contentWindow.BannerLink[BannerNum]);
    }
    
    if (document.getElementById('Content').contentWindow.BannerID[BannerNum] != '' && document.getElementById('Content').contentWindow.BannerID[BannerNum] != undefined)
    {
        strRequest = "BannerID=" + document.getElementById('Content').contentWindow.BannerID[BannerNum];
            
        XmlHttp.open("POST", "SaveClickBannerUserInfo.aspx", false);
        XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        XmlHttp.send(strRequest);
    }
}
