﻿// JScript 檔
var aiProto = "https://";
var domain = "ssl.magv.com";
var website = "Advertisement_Analysis_System";
var API_1 = "Media_Log_Record.aspx";
var API_pv = "PageView_Record.aspx";
var API_visit = "Visit_Record.aspx";
var browser = navigator.appName;
var current_url_1 = location.href;
//偵測來源頁面
var page_referrer = document.referrer;
var isFirst = true; //定義是否第一次來到
var pageOpen = new Date();

document.write('<iframe id="myframe_1" src="blank.html" name="frame_1" style="height:0; width:0; border:0px;"></iframe>');
document.write('<iframe id="myframe_pv" src="blank.html" name="myframe_pv" style="height:0; width:0; border:0px;"></iframe>');
document.write('<iframe id="myframe_visit" src="blank.html" name="myframe_visit" style="height:0; width:0; border:0px;"></iframe>');

if (browser=="Microsoft Internet Explorer") {
    //ie中會發生 若dom讀取完成前就執行裡面的script網頁會當的問題, 這邊要處理    
    var wait_til_document_ready_1 = function () {        
        if(document.readyState != "complete") {
            setTimeout("wait_til_document_ready_1();", 100);
        }
        else {
            ///CALL API.    
            main_1();
        }
    };
    wait_til_document_ready_1();
}
else {
    ///CALL API.    
    setTimeout("main_1();", 1000);
}

window.onunload = function stay() {//定义一个函数。  
    pageClose = new Date();//定义一个新的日期对象，记录结束浏览页面时间。  
    
    var dif = new Date(pageClose -pageOpen);
    time = Math.floor((pageClose - pageOpen) / 1000);
    var start_time = null;
    var stay_time = null;
    //間隔時間 > 30 min, 視為新訪次(visit), record
    if(time > 30 * 60)
    {
       var last_move_time = new Date(unescape(readCookie("last_move_time")));
       start_time = new Date(unescape(readCookie("start_time")));
       stay_time = new Date(last_move_time - start_time);
       
       var stay_sec =Math.floor((last_move_time - start_time) / 1000);
       
       //post to server
       var str_start_time =changeDateTimeToString(start_time);
       var clientId=unescape(readCookie("client_id"));
       var send_object_1 = new Object();
       send_object_1.url = location.href;
       send_object_1.aiweb_src = get_cid("aiweb_source");    
       send_object_1.aiweb_index = get_cid("aiweb_index");    
       send_object_1.target_url = get_cid("target_url");
       send_object_1.client_id = clientId;
       send_object_1.current_page = getCurrentPage(window.location.pathname);
       send_object_1.isfirst = isFirst;
       send_object_1.start_time = str_start_time;
       send_object_1.stay_sec = stay_sec;
       send_object_1.museumid = get_museumid();
       send_object_1.browser = browser;
       send_object_1.visit_record_ma1 = convertStringToBoolean(unescape(readCookie("visit_record_ma1")));
       send_object_1.visit_record_ma2 = convertStringToBoolean(unescape(readCookie("visit_record_ma2")));
       send_object_1.visit_record_ks1 = convertStringToBoolean(unescape(readCookie("visit_record_ks1")));
       send_object_1.visit_record_ks2 = convertStringToBoolean(unescape(readCookie("visit_record_ks2")));
       if(page_referrer.indexOf(".magv.")==-1) {       
           post_to_url_visit(aiProto + domain+"/"+website+"/"+API_visit, send_object_1);
           //clear data
           SetCookie("visit_record", true); 
           SetCookie("visit_record_ma1", false); 
           SetCookie("visit_record_ma2", false); 
           SetCookie("visit_record_ks1", false); 
           SetCookie("visit_record_ks2", false); 
           SetCookie("aiweb_source", ""); 
           SetCookie("aiweb_index", ""); 
           SetCookie("target_url", ""); 
       }
    }

}

function convertStringToBoolean(str)
{
    if(str.toLowerCase() =="true")
        return true;
    else
        return false;
}

function main_1() {

    var clientId ="";
    var start_time = new Date();
    //var stay_sec = 0;
    var visit_record = false;
    var visit_record_ma1 = false;
    var visit_record_ma2 = false;
    var visit_record_ks1 = false;
    var visit_record_ks2 = false;
    //var start_time = new Date();
    if(!readCookie("client_id"))
    {
        clientId = generateGuid()+"dre"+pageOpen.getFullYear()+"-" + (pageOpen.getMonth() + 1)+ "-" + pageOpen.getDate() + "-" + pageOpen.getHours()  + "-" + pageOpen.getMinutes() + "-" +pageOpen.getSeconds();
        SetCookie("client_id",clientId);
    }
    else
    {
        isFirst = false;
        clientId=unescape(readCookie("client_id"));
        start_time =new Date(unescape(readCookie("start_time")));
        //stay_sec = parseInt(unescape(readCookie("stay_sec")))
        if(unescape(readCookie("visit_record")) =="true")
        {
            visit_record = true;
        }
    }
    
    var str_start_time =changeDateTimeToString(start_time);
    var send_object_1 = new Object();
    send_object_1.url = "";
    send_object_1.aiweb_src = get_cid("aiweb_source");    
    send_object_1.aiweb_index = get_cid("aiweb_index");    
    send_object_1.target_url = get_cid("target_url");
    send_object_1.client_id = clientId;
    send_object_1.current_page = getCurrentPage(window.location.pathname);
    send_object_1.isfirst = isFirst;
    send_object_1.start_time = str_start_time;
    send_object_1.stay_sec = 0;
    send_object_1.museumid = get_museumid();
    send_object_1.browser = browser;
    
    //判斷此訪次是否經過註冊頁
    if(send_object_1.current_page.toLowerCase() =="memberadd1.aspx")
    {
        visit_record_ma1 = true;
    }
    else if(send_object_1.current_page.toLowerCase() =="memberadd2.aspx")
    {
        visit_record_ma2 = true;
    }
    else if(send_object_1.current_page.toLowerCase() =="kidsstep01.aspx")
    {
        visit_record_ks1 = true;
    }
    else if(send_object_1.current_page.toLowerCase() =="kidsstep02.aspx")
    {
        visit_record_ks2 = true;
    }
    send_object_1.visit_record_ma1 = visit_record_ma1;
    send_object_1.visit_record_ma2 = visit_record_ma2;
    send_object_1.visit_record_ks1 = visit_record_ks1;
    send_object_1.visit_record_ks2 = visit_record_ks2;
    
    //calculate interval time, 判斷是否要記錄訪次
    var last_move_time = new Date(unescape(readCookie("last_move_time")));
    var interval = new Date(pageOpen - last_move_time);   //間隔時間(datetime)
    var interval_sec = Math.floor((pageOpen - last_move_time) / 1000);  //間隔時間(int)
    
    if(interval_sec > 30 * 60 && !visit_record)
    {
        interval = new Date(last_move_time - start_time);
        interval_sec = Math.floor((last_move_time - start_time) / 1000); 
        send_object_1.stay_sec = interval_sec;
        if(page_referrer.indexOf(".magv.")==-1) {        
            post_to_url_visit(aiProto + domain+"/"+website+"/"+API_visit, send_object_1);
            send_object_1.stay_sec = 0;
            send_object_1.start_time = changeDateTimeToString(pageOpen);
            visit_record_ma1 = false;
            visit_record_ma2 = false;
            visit_record_ks1 = false;
            visit_record_ks2 = false;
            SetCookie("aiweb_source", ""); 
            SetCookie("aiweb_index", ""); 
            SetCookie("target_url", ""); 
        }
    }
    else if(interval_sec > 30 * 60 && visit_record)
    {
        send_object_1.start_time = changeDateTimeToString(pageOpen);
        visit_record = false;
    }
    
    if(current_url_1.indexOf("target_url")!=-1) {
        current_url_1 = current_url_1.substring(0, current_url_1.indexOf("target_url=")-1);
    }
    if(current_url_1.indexOf("aiweb_source")!=-1) {
        current_url_1 = current_url_1.substring(0, current_url_1.indexOf("aiweb_source=")-1);
    }
    if(current_url_1.indexOf("aiweb_index")!=-1) {
        current_url_1 = current_url_1.substring(0, current_url_1.indexOf("aiweb_index=")-1);
    }
        
    send_object_1.url = current_url_1;
    
    ///如果參數中無法取得aiweb_index資訊, 則檢查cookie中是否已有存值
    if(send_object_1.aiweb_index=="" && send_object_1.aiweb_src=="") {
        ArrCookie = document.cookie.split("; ");
        for(i = 0;i < ArrCookie.length;i++) {
            ArrCookie[i] = ArrCookie[i].split("=");
            switch(ArrCookie[i][0]) {
                case "target_url":
                    send_object_1.target_url = unescape(ArrCookie[i][1]);  
                    break;          
                case "aiweb_src":
                    send_object_1.aiweb_src = unescape(ArrCookie[i][1]); 
                    break;
                case "aiweb_index":
                    send_object_1.aiweb_index = unescape(ArrCookie[i][1]); 
                    break;
            }
        }
    }
        
    ///若target_url此時不為"", 表示已從cookie得到值. 否則target_url指定為目前頁面
    if(send_object_1.target_url == "")
        send_object_1.target_url = send_object_1.url;
    
    ///Write Cookies
    SetCookie("target_url", send_object_1.target_url);
    SetCookie("aiweb_src", send_object_1.aiweb_src);
    SetCookie("aiweb_index", send_object_1.aiweb_index);
    SetCookie("client_id", send_object_1.client_id); 
    SetCookie("start_time", send_object_1.start_time); 
    SetCookie("visit_record", visit_record); 
    SetCookie("visit_record_ma1", visit_record_ma1); //記錄此訪次中是否已造MemmmberAdd1.aspx
    SetCookie("visit_record_ma2", visit_record_ma2); //記錄此訪次中是否已造MemmmberAdd2.aspx 
    SetCookie("visit_record_ks1", visit_record_ks1); //記錄此訪次中是否已造KidsStep01.aspx
    SetCookie("visit_record_ks2", visit_record_ks2); //記錄此訪次中是否已造KidsStep02.aspx
    SetCookie("last_move_time", changeDateTimeToString(new Date()));  
    
    ///初次抵達, 記log
    if(page_referrer.indexOf(".magv.")==-1) {        
        post_to_url_1(aiProto + domain+"/"+website+"/"+API_1, send_object_1);
        post_to_url_pv(aiProto + domain+"/"+website+"/"+API_pv, send_object_1);
    }
    
}

function changeDateTimeToString(date)
{
    var str = date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
    return str;
}

//generate id
function generateGuid()
{
    var result, i, j;
    result = '';
    for(j=0; j<32; j++)
    {
        if( j == 8 || j == 12|| j == 16|| j == 20)
            result = result + '-';
        i = Math.floor(Math.random()*16).toString(16).toUpperCase();
        result = result + i;
    }
    return result
}

function get_museumid()
{
    url = location.host;
    var museumid= -1;
    if(url == 'kids.magv.com')
        museumid =1
    else
        museumid =0;
    return museumid;
}

function get_cid(req_key) {
    url = location.search.substr(1);
    if (url.length > 0) {
        ar = url.split(/[&=]/);
        for (i = 0; i < ar.length; i += 2) {
            if(ar[i]==req_key)
                return ar[i+1];            
        }
    }
    return "";
}    

function readCookie(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
}

function getCurrentPage(path)
{
    var ca = path.split('/');
    var page = ca[ca.length-1];
    return page;
}

function SetCookie(cookieName,cookieValue) {
    var today = new Date();
    var expire = new Date();
    ///1 day expire.
    if(cookieName=="aiweb_source" || cookieName=="aiweb_index" || cookieName=="target_url")
        expire.setTime(today.getTime() + 3600*1000);
    else
        expire.setTime(today.getTime() + 3600*1000*24);
    document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString() + "; path=/";
}

function post_to_url_1(path, send_object) {   
  
    var my_iframe = document.getElementById('myframe_1');       
            
    var form = document.createElement("form");
    var hiddenField0 = document.createElement("input");
    var hiddenField1 = document.createElement("input");
    var hiddenField2 = document.createElement("input");
    var hiddenField3 = document.createElement("input");
    var hiddenField4 = document.createElement("input");
    var hiddenField5 = document.createElement("input");
    var hiddenField6 = document.createElement("input");
    var hiddenField7 = document.createElement("input");
    var hiddenField8 = document.createElement("input");
    
    form.method = "POST";
    form.action = path;    
    form.target = my_iframe.name;
    
    hiddenField0.type = "hidden";
    hiddenField0.name = "ref_page";    
    hiddenField0.value = escape(page_referrer);
    form.appendChild(hiddenField0);          
    
    hiddenField1.type = "hidden";
    hiddenField1.name = "url";    
    hiddenField1.value = escape(send_object.url);
    form.appendChild(hiddenField1);      
     
    hiddenField2.type = "hidden";
    hiddenField2.name = "aiweb_src";    
    hiddenField2.value = escape(send_object.aiweb_src);
    form.appendChild(hiddenField2);
    
    hiddenField3.type = "hidden";
    hiddenField3.name = "aiweb_index";    
    hiddenField3.value = escape(send_object.aiweb_index);
    form.appendChild(hiddenField3);

    document.body.appendChild(form);                
    form.submit();  
    
}  

function post_to_url_pv(path, send_object) {   
  
    var my_iframe_pv = document.getElementById('myframe_pv');       
            
    var form_pv = document.createElement("form");
    var hiddenFieldpv0 = document.createElement("input");
    var hiddenFieldpv1 = document.createElement("input");
    var hiddenFieldpv2 = document.createElement("input");
    var hiddenFieldpv3 = document.createElement("input");
    var hiddenFieldpv4 = document.createElement("input");
    var hiddenFieldpv5 = document.createElement("input");
    var hiddenFieldpv6 = document.createElement("input");
    var hiddenFieldpv7 = document.createElement("input");
    var hiddenFieldpv8 = document.createElement("input");
    
    form_pv.method = "POST";
    form_pv.action = path;    
    form_pv.target = my_iframe_pv.name;
    
    hiddenFieldpv0.type = "hidden";
    hiddenFieldpv0.name = "ref_page";    
    hiddenFieldpv0.value = escape(page_referrer);
    form_pv.appendChild(hiddenFieldpv0);          
    
    hiddenFieldpv1.type = "hidden";
    hiddenFieldpv1.name = "url";    
    hiddenFieldpv1.value = escape(send_object.url);
    form_pv.appendChild(hiddenFieldpv1);      
     
    hiddenFieldpv2.type = "hidden";
    hiddenFieldpv2.name = "aiweb_src";    
    hiddenFieldpv2.value = escape(send_object.aiweb_src);
    form_pv.appendChild(hiddenFieldpv2);
    
    hiddenFieldpv3.type = "hidden";
    hiddenFieldpv3.name = "aiweb_index";    
    hiddenFieldpv3.value = escape(send_object.aiweb_index);
    form_pv.appendChild(hiddenFieldpv3);
    
    hiddenFieldpv4.type = "hidden";
    hiddenFieldpv4.name = "client_id";    
    hiddenFieldpv4.value = escape(send_object.client_id);
    form_pv.appendChild(hiddenFieldpv4);
    
    hiddenFieldpv5.type = "hidden";
    hiddenFieldpv5.name = "current_page";    
    hiddenFieldpv5.value = escape(send_object.current_page);
    form_pv.appendChild(hiddenFieldpv5);
    
    hiddenFieldpv6.type = "hidden";
    hiddenFieldpv6.name = "isfirst";    
    hiddenFieldpv6.value = escape(send_object.isfirst);
    form_pv.appendChild(hiddenFieldpv6);
    
    hiddenFieldpv7.type = "hidden";
    hiddenFieldpv7.name = "museumid";    
    hiddenFieldpv7.value = escape(send_object.museumid);
    form_pv.appendChild(hiddenFieldpv7);
    
    hiddenFieldpv8.type = "hidden";
    hiddenFieldpv8.name = "browser";    
    hiddenFieldpv8.value = escape(send_object.browser);
    form_pv.appendChild(hiddenFieldpv8);
    
    document.body.appendChild(form_pv);                
    form_pv.submit();  
    
}  


function post_to_url_visit(path, send_object) {   
  
    var my_iframe_visit = document.getElementById('myframe_visit');       
            
    var form_visit = document.createElement("form");
    var hiddenFieldvisit0 = document.createElement("input");
    var hiddenFieldvisit1 = document.createElement("input");
    var hiddenFieldvisit2 = document.createElement("input");
    var hiddenFieldvisit3 = document.createElement("input");
    var hiddenFieldvisit4 = document.createElement("input");
    var hiddenFieldvisit5 = document.createElement("input");
    var hiddenFieldvisit6 = document.createElement("input");
    var hiddenFieldvisit7 = document.createElement("input");
    var hiddenFieldvisit8 = document.createElement("input");
    var hiddenFieldvisit9 = document.createElement("input");
    var hiddenFieldvisit10 = document.createElement("input");
    var hiddenFieldvisit11 = document.createElement("input");
    var hiddenFieldvisit12 = document.createElement("input");
    var hiddenFieldvisit13 = document.createElement("input");
    
    form_visit.method = "POST";
    form_visit.action = path;    
    form_visit.target = my_iframe_visit.name;
    
    hiddenFieldvisit0.type = "hidden";
    hiddenFieldvisit0.name = "ref_page";    
    hiddenFieldvisit0.value = escape(page_referrer);
    form_visit.appendChild(hiddenFieldvisit0);          
    
    hiddenFieldvisit1.type = "hidden";
    hiddenFieldvisit1.name = "url";    
    hiddenFieldvisit1.value = escape(send_object.url);
    form_visit.appendChild(hiddenFieldvisit1);      
     
    hiddenFieldvisit2.type = "hidden";
    hiddenFieldvisit2.name = "aiweb_src";    
    hiddenFieldvisit2.value = escape(send_object.aiweb_src);
    form_visit.appendChild(hiddenFieldvisit2);
    
    hiddenFieldvisit3.type = "hidden";
    hiddenFieldvisit3.name = "aiweb_index";    
    hiddenFieldvisit3.value = escape(send_object.aiweb_index);
    form_visit.appendChild(hiddenFieldvisit3);
    
    hiddenFieldvisit4.type = "hidden";
    hiddenFieldvisit4.name = "client_id";    
    hiddenFieldvisit4.value = escape(send_object.client_id);
    form_visit.appendChild(hiddenFieldvisit4);
    
    hiddenFieldvisit5.type = "hidden";
    hiddenFieldvisit5.name = "current_page";    
    hiddenFieldvisit5.value = escape(send_object.current_page);
    form_visit.appendChild(hiddenFieldvisit5);
    
    hiddenFieldvisit6.type = "hidden";
    hiddenFieldvisit6.name = "isfirst";    
    hiddenFieldvisit6.value = escape(send_object.isfirst);
    form_visit.appendChild(hiddenFieldvisit6);
    
    hiddenFieldvisit7.type = "hidden";
    hiddenFieldvisit7.name = "museumid";    
    hiddenFieldvisit7.value = escape(send_object.museumid);
    form_visit.appendChild(hiddenFieldvisit7);
    
    hiddenFieldvisit8.type = "hidden";
    hiddenFieldvisit8.name = "browser";    
    hiddenFieldvisit8.value = escape(send_object.browser);
    form_visit.appendChild(hiddenFieldvisit8);
    
    hiddenFieldvisit9.type = "hidden";
    hiddenFieldvisit9.name = "stay_time";    
    hiddenFieldvisit9.value = escape(send_object.stay_sec);
    form_visit.appendChild(hiddenFieldvisit9);
    
    hiddenFieldvisit10.type = "hidden";
    hiddenFieldvisit10.name = "visit_record_ma1";    
    hiddenFieldvisit10.value = escape(send_object.visit_record_ma1);
    form_visit.appendChild(hiddenFieldvisit10);
    
    hiddenFieldvisit11.type = "hidden";
    hiddenFieldvisit11.name = "visit_record_ma2";    
    hiddenFieldvisit11.value = escape(send_object.visit_record_ma2);
    form_visit.appendChild(hiddenFieldvisit11);
    
    hiddenFieldvisit12.type = "hidden";
    hiddenFieldvisit12.name = "visit_record_ks1";    
    hiddenFieldvisit12.value = escape(send_object.visit_record_ks1);
    form_visit.appendChild(hiddenFieldvisit12);
    
    hiddenFieldvisit13.type = "hidden";
    hiddenFieldvisit13.name = "visit_record_ks2";    
    hiddenFieldvisit13.value = escape(send_object.visit_record_ks2);
    form_visit.appendChild(hiddenFieldvisit13);
    
    document.body.appendChild(form_visit);                
    form_visit.submit();  
    
}  