    // setting
    var mysite = 'youkanman.com';  // My site domain. ( When changing from this domain, it doesn't process it. )
    var data_path = 'data.txt';             // Text file of TAB delimitation.
    var sub_str = /tagatamenisuz-22/g;            // Substituted character string. (Regular expression)
    var cookieName = 'RefMySiteUri';        // Preserved CookieName.
    
    // main
    window.onload = function(){
        ref = document.referrer;
        
        // cookie regist
        if(!ref.match(mysite)){
            // set cookie
            Cookie.set(cookieName, ref);
        }
        
        // get cookie
        refmysiteuri = Cookie.get(cookieName);
        if(refmysiteuri){
            // replace ID
            new Ajax.Request( 
                data_path, 
                {
                    method: "get", 
                    onSuccess:replaceRefMySiteId,
                    onFailure:function(){
                        // @todo 'default setting function' 
                    }
                }
            );
        }
    }
    
    function Site(uri, id){
        this.uri = uri;
        this.id  = id;
    }
    
    function replaceRefMySiteId(httpObj){
        var regex_g = sub_str;
        replaceStr = selectRefMySiteId(httpObj);
        // all replace
        if(replaceStr) document.body.innerHTML = document.body.innerHTML.replace(regex_g, replaceStr);
    }
    
    function selectRefMySiteId(httpObj){
        list = createList(httpObj);
        refmysiteuri = Cookie.get(cookieName);
        for(var i = 0; i < list.length; i++){
            if (refmysiteuri.match(list[i].uri)) {
                id = list[i].id;
                break;
            }
        }
        return id;
    }
    
    function createList(httpObj){
        var LF  = String.fromCharCode(10);
        var TAB = String.fromCharCode(9);
        
        list = new Array();
        
        recordset = httpObj.responseText;
        rows = recordset.split(LF);
        var j = 0;
        for(var i = 0; i < rows.length; i++){
            columns = rows[i].split(TAB);
            if(columns.length > 1){
                list[j] = new Site(columns[0], columns[1]);
                j++;
            }
        }
        return list;
    }
    