    var cookie_max = 4;

    function write_cookie(device, device_name, type) {
        cookie_data = read_cookie();
        count = count_cookie();
        
        device_count = 0;
        max_index = 0;
        if (cookie_data != null) {
            for (i = 0; i < count; i++) {
                if ((cookie_data[i]["device"] == device_name) && (cookie_data[i]["type"] == "mydevice") && (type == "mydevice")) {
                    // マイ家電設定ページで、同じ家電でマイ家電設定済みのものがあるときは書き換えるか確認する
                    // マイ家電の設定数は1(拡張の可能性あり)
                    if (window.confirm("My家電を設定済みです。置き換えますか?")) {
                        // クッキー削除
                        document.cookie = "cookieNo_" + cookie_data[i]["cookieNo"] + "=;expires=Thu, " + "01-Jan-70 00:00:01 GMT;path=/";        
                    } else {
                        return false;
                    }
                }
                if ((cookie_data[i]["model"] == device.model) && (cookie_data[i]["id"] == device.id)) {
                    // モデルとIDが同じときは（既に書き込み済みなので）書き込まない
                    window.alert("選択済みです。");
                    return false;
                }
                if ((cookie_data[i]["device"] == device_name) && (cookie_data[i]["type"] == "search") && (type == "search")) {
                    // 検索ページで、マイ家電以外の選択済みの家電の数をカウントする
                    device_count++;
                }
                if (eval(cookie_data[i]["cookieNo"]) > max_index) { // 最大のCookieインデックスを求める
                    max_index = eval(cookie_data[i]["cookieNo"]);
                }
            }
        }
        
        if (device_count >= cookie_max) { // 選択済みの家電は4個までで、それ以上になると書き込まない
            window.alert("選択できる上限を超えています。");
            return false;
        }
        
        new_index = max_index + 1;
        
        cookie_string = "cookieNo_" + new_index + "=device-" + escape(device_name)
                        + "&type-" + escape(type);
        cookie_string += "&id-" + escape(device["id"]);
        cookie_string += "&maker-" + escape(device["maker"]);
        cookie_string += "&series-" + escape(device["series"]);
        cookie_string += "&model-" + escape(device["model"]);
        cookie_string += "&image-" + escape(device["image"]);
        cookie_string += "&price-" + escape(device["price"]);
        cookie_string += "&period_bill-" + escape(device["period_bill"]);
        cookie_string += "&period_energy-" + escape(device["period_energy"]);
        cookie_string += "&eco_point-" + escape(device["eco_point"]);

        // 有効期限1年
        kigen = new Date();
        kigen.setTime(kigen.getTime() + (365 * 1000 * 60 * 60 * 24));
        kigen2 = kigen.toGMTString();
        document.cookie = cookie_string + "&end@; expires=" + kigen2 + ";path=/";

        return true;
    }
    
    function delete_cookie(index, page_type) {
        device_name = $("#device").val();
        cookie_data = read_cookie_for_device(device_name);
        
        for (i = 0; i < cookie_data.length; i++) {
            if (cookie_data[i]["cookieNo"] == index) {
                if (cookie_data[i]["type"] == "mydevice") { // マイ家電を削除しようとしたとき
                    if (window.confirm("My家電を削除します。よろしいですか？")) {
                        document.cookie = "cookieNo_" + index + "=;expires=Thu, " + "01-Jan-70 00:00:01 GMT;path=/";
                    }
                    else {
                        return;
                    }
                }
                else { // 検討リストの家電を削除するとき
                    document.cookie = "cookieNo_" + index + "=;expires=Thu, " + "01-Jan-70 00:00:01 GMT;path=/";
                }
                
                if (page_type == "search") {
                    refresh_select();
                    refresh_mydevice_forsearch();
                } else if (page_type == "mydevice") {
                    refresh_mydevice_setup();
                    refresh_mydevice_formydevice();
                }
                
                break;
                
            }
        }

    }
    
    function read_cookie() {
        document.cookie = "CAKEPHP=;expires=Thu, " + "01-Jan-70 00:00:01 GMT;path=/";
        data = document.cookie;
        
        if (data.indexOf("end") > 0) {
            cookie_array = data.split("end");
            count = cookie_array.length - 1;
            
            j = -1;
            cookie_data = new Array();
            for (i = 0; i < count; i++) {
                if(cookie_array[i].indexOf("cookieNo_") == -1) {
                    continue;
                } else {
                    j++;
                }
                cookie_data[j] = new Array();
                
                tmp_cookie_number = get_value_from_cookie(cookie_array[i], "_", "=device", "cookieNo");
                cookie_number_array = tmp_cookie_number.split("; ");
                cookie_number = cookie_number_array[cookie_number_array.length - 1].replace("cookieNo_", "");
                cookie_data[j]["cookieNo"] = cookie_number;
                cookie_data[j]["device"] = get_value_from_cookie(cookie_array[i], "-", "&", "device");
                cookie_data[j]["type"] = get_value_from_cookie(cookie_array[i], "-", "&", "type");
                cookie_data[j]["id"] = get_value_from_cookie(cookie_array[i], "-", "&", "id");
                cookie_data[j]["maker"] = get_value_from_cookie(cookie_array[i], "-", "&", "maker");
                cookie_data[j]["series"] = get_value_from_cookie(cookie_array[i], "-", "&", "series");
                cookie_data[j]["model"] = get_value_from_cookie(cookie_array[i], "-", "&", "model");
                cookie_data[j]["image"] = get_value_from_cookie(cookie_array[i], "-", "&", "image");
                cookie_data[j]["price"] = get_value_from_cookie(cookie_array[i], "-", "&", "price");
                cookie_data[j]["period_bill"] = get_value_from_cookie(cookie_array[i], "-", "&", "period_bill");
                cookie_data[j]["period_energy"] = get_value_from_cookie(cookie_array[i], "-", "&", "period_energy");
                cookie_data[j]["eco_point"] = get_value_from_cookie(cookie_array[i], "-", "&", "eco_point");
            }
            
            return cookie_data;
        }
        
        return null;
    }
    
    function read_cookie_for_device(device_name) {
        tmp_cookie_data = read_cookie();
        tmp_count = count_cookie();
        
        j = 0;
        var cookie_data = [];  
        for (i = 0; i < tmp_count; i++) {
            if (tmp_cookie_data[i]["device"] == device_name) { // ある家電についてのcookieだけを見る
                cookie_data[j] = tmp_cookie_data[i];
                j++;
            }
        }
        
        return cookie_data;
    
    }
    
    function count_cookie() {
        data = document.cookie;
        
        if (data.indexOf("end") > 0) {
            cookie_array = data.split("end"); // cookie_arrayはcookie中の家電の情報の数を調べるための配列で、データとしては使えない
            count = cookie_array.length - 1;
        } else {
            count = 0;
        }

        return count;
    }

    function get_cookie_id(device_name) {
        cookie_data = read_cookie_for_device(device_name);
        id_array = new Array();

        for (i = 0; i < cookie_data.length; i++) {
            id_array.push(cookie_data[i]["id"]);
        }

        return id_array;
    }

    function get_value_from_cookie(cookie, start_separator, end_separator, name) {
        name_first = cookie.indexOf(name, 0);
        sub_cookie = cookie.substring(name_first, cookie.length);
        start = sub_cookie.indexOf(start_separator, 0) + 1;
        end = sub_cookie.indexOf(end_separator, 0);
        value = sub_cookie.substring(start, end);
        
        return unescape(value);
    }