/*
@author ssimj
@id /Qnavi/Resource/Scripts/order.js
@update 2005-02-28
*/

//order
var odr_url = '/Cart/insert_cart.php';
var disp_category = '';
var tana_code = '';
var shop_url = '';
var order_form_container = 'orderFormContainer';

var items  = new Array();
var types  = new Array();
var odr_ids = new Array();

var default_price = 0;

var items_ext = new Array();

var order_status = 0;

var odr_items = new Array();
// <!-- 供給リソース新引当対応 onodera add start
var iDate = new Array();
var lt = new Array();
var sYmd = new Array();
var cCal = new Array();
var st = new Array();
var myD = new Date();
//<!-- ACC start
var todayStartD = new Date((myD.getYear() < 2000) ? myD.getYear()+1900 : myD.getYear(),myD.getMonth(),myD.getDate());
// ACC end -->
var strToday;
var closeCalendar;
var isClCalFuncCall=false;
var prohibitFlg;
var uncalculatableStatusFlg;
var origin_date_store;
var production_transfer_lead_time_store;
var production_shitei_date_store;
var currentStandDateFutureFlg;
var standDateFutureFlg;
    //<!-- ACC start
var inStoreDateFutureFlg;
    // ACC end -->
var uncalculatable_status;
var uncalculatable_id;
var capaInfoLuckFlg;
//<!-- ACC start
var shipmentDate;
// ACC end -->
var html_msg;
var html_tag = 'deliver-date';
var kanjiStrYear='年';
var kanjiStrMonth='月';
var kanjiStrDay='日';
var defaultDateStr = '00000000';
var kanjiStrEarlySeason='上旬';
var kanjiStrMiddleSeason='中旬';
var kanjiStrLateSeason='下旬';
var statusCodeAvailableForSale='20';
var statusCodeStopAllocate='21';
var uncalculatablOnsaleDateFlg;
var kanjiAroundStr='頃';
var kanjiDeliverStr='お届け';
// 供給リソース新引当対応 onodera add end -->

var id_bdy = '';
var bdy_cnt = 0;
var qty_cto = 1;

var pr_sumA = 0;
var pr_sumB = 0;
// <!-- point
var pt_sumA = 0;
var pt_sumA_ordinary = 0;
var pt_sumA_campain = 0;
var pt_sumB = 0;
var pt_sumB_ordinary = 0;
var pt_sumB_campain = 0;
var pointDisplayFlg=true;
// point -->

//約款用フラグ
var yak_code = '';
var flg_yakkan = 0;

/**** ADDED BY ISS 20081009 START ****/
var cartAction = '';
var maxCtoGrp = 12;
var objButton = '';
/**** ADDED BY ISS 20081009 END   ****/

/**** ADDED BY ISS 20081229 START ****/
var directURL = 'https://shop.jp.sonystyle.com/NASApp/ssoe/MxMProduct';
var checkURL = directURL;
var cartURL = odr_url;
/**** ADDED BY ISS 20081229 END   ****/

/**** ADDED BY ISS 20090306 START ****/
var noprice_flg = 0;
/**** ADDED BY ISS 20090306 END   ****/
// <!-- カート対応 start
var cart_success_url = '';
var cart_failure_url = '';
var cart_link_url = '';
// カート対応 end -->
/* 初期化 */
function init(){
    setPricePBT();
/**** ADDED BY ISS 20081104 START ****/
    if(!document.getElementById("CART-CONTENT")){
        chgPurchasePage(); 
    }
/**** ADDED BY ISS 20081104 END   ****/
    calc();
}
ssonload_add('init();');

//function setOrderItem(type, code, price, stock, check, win){

function setOrderItem(){
    // <!-- 納期計算対応 2008/11/20 onodera update start
    // <!-- 2008/11/21 onodera update start
        var shitei_ymd;
      var instore_date;
      var lead_time;
    // 2008/11/21 onodera update end -->
    if(('' + arguments[3]) == '20'){
        type = arguments[0];
        code = arguments[1];
        price = arguments[2];
        stock = arguments[3];
        instore_date = arguments[4];
        lead_time= arguments[5];
        if(arguments.length == 8){
            check =arguments[6];
            win = arguments[7];
        }else{
            shitei_ymd = arguments[6];
            check =arguments[7];
            win = arguments[8];
        }
      // 納期計算対応 2008/11/20 onodera update end -->
    } else{
        type = arguments[0];
        code = arguments[1];
        price = arguments[2];
        stock = arguments[3];
        check =arguments[4];
        win = arguments[5];
    }

    code = '' + code;
    if(typeof(types[type]) == 'undefined'){
        types[type] = 0;
    }
    types[type] += 1;
    var id = type + '_' + (types[type] < 10 ? '0' + types[type] : types[type]);
    items[id]  = new Array();
    if(code.match(/\-9999$/)){
        type = 'cto-dummy';
        price = 0;
        stock = 0;
    }
    items[id]['type'] = type;
    items[id]['code'] = code;
    items[id]['price'] = price;
    items[id]['stock'] = (stock ? stock : '');
        // <!-- 納期計算対応 2008/11/14 onodera add start
    st[id]= (stock ? stock : '');
        // 納期計算対応 2008/11/14 onodera add end -->
    items[id]['check'] = (check ? check : '');
        items[id]['win'] = (win ? win : '');
    odr_ids[code] = id;
    // <!-- 納期計算対応 2008/11/14 onodera add start
    if(instore_date){
        iDate[id] = ""+instore_date+"";
        lt[id] = lead_time;
        if(instore_date){
            sYmd[id] = ""+shitei_ymd+"";
        }
    }
    // 納期計算対応 2008/11/14 onodera add end -->

    /* 本体のアイテム数 */

/* MODIFIED BY ISS 20090121 START */
    if(typeof(check) != 'undefined'){
/* MODIFIED BY ISS 20090121 END   */
        if(type.match(/bdy/)){
            bdy_cnt++;
        }
    /* デフォルトの価格＆在庫表示 */
        if(type.match(/bdy/) && check.match(/checked/)){
            default_price = price;
        }
/* MODIFIED BY ISS 20081204 START -- SELECTION_FLG非対応化でダブルカウント防止
   MODIFIED BY ISS 20081216 START -- SELECTION_FLG非対応化でダブルカウント防止 を撤去
*/
        if(type.match(/bdy|cto|rpr/) && check.match(/default/)){
            items_ext[id] = 1;
        }
/* MODIFIED BY ISS 20090121 START */
    }
/* MODIFIED BY ISS 20090121 END   */


}

function getOrderId(code){
    return (odr_ids[code] ? odr_ids[code] : '');
}

function getStock(code){
    var id = getOrderId(code);
    return (id ? items[id]['stock'] : '');
}

function getPrice(code){
    var id = getOrderId(code);
    return (id ? items[id]['price'] : '');
}

function outputRadio(name,code){
    var id = getOrderId(code);
    var value = '';
    var checked = '';
    var onclick = ' onclick="calc();"';
    if(id != ''){
        if(items[id]['type'] != 'cto-dummy'){
            value = id;
        }
        if(items[id]['check'].match(/checked/)){
            checked = ' checked="checked"';
        }
        if(items[id]['win'] != ''){
            onclick = ' onclick="orderWinOpen(this, \'' + items[id]['win'] + '\');calc();"';
        }
    }
/* MODIFIED BY ISS 20081020 START
    document.write('<input type="radio" name="' + name + '" value="' + value + '"' + checked + onclick + ' />');
*/
    document.write('<input type="radio" name="' + name + '" value="' + value + '"' + '" id="' + value + '"' + checked + onclick + ' />');
/* MODIFIED BY ISS 20081020 END */
}

function outputCheckbox(code){
    var id = getOrderId(code);
    var checked = '';
    var onclick = ' onclick="calc();"';
    if(id != ''){
        if(items[id]['check'].match(/checked/)){
            checked = ' checked="checked"';
        }
        if(items[id]['win'] != ''){
            onclick = ' onclick="orderWinOpen(this, \'' + items[id]['win'] + '\');calc();"';
        }
    }
    document.write('<input type="checkbox" name="' + id + '" value="1"' + checked + onclick + ' />');
}

orderWinOpened = new Array();
function orderWinOpen(obj, url){
    if(obj.checked){
        sswin_open(url,'orderWin',1,1,820,600);
        orderWinOpened[url] = 1;
    }
}

/* 税込価格に変換 */
function setPricePBT(){
    for(id in items){
        items[id]['price'] = getPBT(items[id]['price']);
    }
}

/* 価格計算 */
function calc(){
    order_status = 0;
    checkAll();
    var sum_cto = '';
    var sum_ttl = '';
                // <!-- point
    var sum_cto_point = '';
    var sum_ttl_point = '';
                var sum_ordinary_ttl_point = '';
                var sum_campain_ttl_point = '';
                pointDisplayFlg=true;
                // point -->
    if(id_bdy == ''){
        order_status = 2;
    }
    else if(isNaN(pr_sumA) || isNaN(pr_sumB)){
        sum_cto = '-----';
        sum_ttl = '-----';
                                // <!-- point
                                sum_cto_point = '-----';
                                sum_ttl_point = '-----';
                                pointDisplayFlg=false;
                                // point -->
        order_status = 1;
    }
    else{
        sum_cto = edComma(pr_sumA);
        sum_ttl = edComma(pr_sumA + pr_sumB);
        
                                // <!-- point
        if(isNaN(pt_sumA) || isNaN(pt_sumB)){
                                        sum_cto_point = '-----';
                                        sum_ttl_point = '-----';
                                pointDisplayFlg=false;
                          }else{
                                        sum_cto_point = pt_sumA;
                                        sum_ttl_point = pt_sumA + pt_sumB;
                                        sum_ordinary_ttl_point = pt_sumA_ordinary + pt_sumB_ordinary;
                                        sum_campain_ttl_point = pt_sumA_campain + pt_sumB_campain;
                          }
                                // point -->

/**** MODFIED BY ISS 20090309 START (noprice_flg added) ***/

/**** MODIFIED BY ISS 20090327 START ****/
/*** 暫定対応にて一時的に条件変更(noprice_flgをはずした。
        if(document.getElementById('INNER-SW-SELECTED') && noprice_flg != 1){
***/
        if(document.getElementById('INNER-SW-SELECTED')){
/**** MODIFIED BY ISS 20090327 END   ****/

/**** MODFIED BY ISS 20090309 END   ***/

            switching(document.getElementById('INNER-SW-EMPTY'), 'INNER-SW-SELECTED');
        }
                // <!-- 納期計算対応 2008/11/14 onodera add start
                dcCalcDeliverDate();
                // 納期計算対応 2008/11/14 onodera add end -->
    }
    if(document.getElementById('sum-cto')){
        document.getElementById('sum-cto').value = sum_cto;
    }
    if(document.getElementById('sum-ttl')){
/**** MODFIED BY ISS 20081022 START ***
        document.getElementById('sum-ttl').value = sum_ttl;
*/
/**** MODFIED BY ISS 20090306 START
  noprice_flg added  ***/

/**** MODIFIED BY ISS 20090327 START ****/
/*** 暫定対応にて一時的に条件変更(noprice_flgをはずした。
        if (sum_ttl != '' && sum_ttl != null && noprice_flg != '1'){
***/
        if (sum_ttl != '' && sum_ttl != null){
/**** MODIFIED BY ISS 20090327 END   ****/


/**** MODFIED BY ISS 20090306 END   ***/
            document.getElementById('price1').style.display = 'block';
            objButton.className = 'button';
        }
        document.getElementById('sum-ttl').innerHTML = sum_ttl;
/**** MODFIED BY ISS 20081022 START ****/
                                // <!-- point
                if(document.getElementById('point')){
                document.getElementById('point').innerHTML = getSelectedAreaPointHtml(sum_ordinary_ttl_point,sum_campain_ttl_point);
                }
                // point -->
    }
}

function checkAll(){
    // <!-- 納期計算対応 2008/11/14 onodera add start
    dcInitCondition();
    // 納期計算対応 2008/11/14 onodera add end -->
    /* 初期設定値 */
    id_bdy = '';
    pr_sumA = 0;
    pr_sumB = 0;
                // <!-- point
    pt_sumA = 0;
                pt_sumA_ordinary = 0;
                pt_sumA_campain = 0;
    pt_sumB = 0;
                pt_sumB_ordinary = 0;
                pt_sumB_campain = 0;
    // point -->
    odr_items = new Array();
    /* 本体個数 */
    if(document.getElementById('qty-cto')){
        qty_cto = document.getElementById('qty-cto').value;
    }
    /* formA確認 */
    if(document.getElementById('formA')){
        var formA = document.getElementById('formA');
        if(typeof(formA.elements) != 'undefined'){
            for(var i = 0; i < formA.elements.length; i++){
/* MODIFIED BY ISS 20090114 START 'default'のべた付け品の２重カウント防止 */
                if (!items_ext[formA.elements[i].id]){
                    pr_sumA += checkElement(formA.elements[i]);
                                                                                // <!-- point
                    addCombinedPointSelected(formA.elements[i],'formA');
                                                                // point -->
                }
/* MODIFIED BY ISS 20090114 END */
            }
        }
    }
    /* formB確認 */
    if(document.getElementById('formB')){
        var formB = document.getElementById('formB');
        if(typeof(formB.elements) != 'undefined'){
            for(var i = 0; i < formB.elements.length; i++){
                pr_sumB += checkElement(formB.elements[i]);
                                                                // <!-- point
                addCombinedPointSelected(formB.elements[i],'formB');
                                                // point -->
            }
        }
    }
    /* ベタ付け */
    if(items_ext.length > -1){
        for(var id in items_ext){
            if(items_ext[id] >= 1){
/* MODIFIED BY ISS 20081216 START 
　　-- SELECTION_FLG非対応化でダブルカウント防止 機能を「formA確認」に移動
*/
                pr_sumA += addOrderItem(id, qty_cto);
                                                                // <!-- point
                pt_sumA += addDetailPointSelected(id,'formA');
                                                                // point -->

                                // <!-- 納期計算対応 2008/11/14 onodera add start
                                dcUpdateDeliverInfo(id);
                                // 納期計算対応 2008/11/14 onodera add start -->
            }
        }
    }

    /* ローカル関数 */
    function checkElement(el){
        var qty = 0;
        var name = '';
        var sum = 0;
        if(el.type == 'hidden'){
            name = el.name;
            qty = (!el.value ? qty_cto : el.value);
        }
        else if(el.type == 'radio'){
            name = el.value;
            if(el.checked){
                qty = qty_cto;
            }
        }
        else if(el.type == 'checkbox'){
            name = el.name;
            if(el.checked){
                qty = (!el.value ? qty_cto : el.value);
            }
        }
        else if(el.type == 'select-one'){
            name = el.name;
            qty = el.options[el.selectedIndex].value;
        }
        if(name && qty > 0){
            sum = addOrderItem(name, qty);
                        // <!-- 納期計算対応 2008/11/14 onodera add start
                        dcUpdateDeliverInfo(name);
                        // 納期計算対応 2008/11/14 onodera end start -->
        }
        return sum;
    }
    
                // <!-- point
    function addCombinedPointSelected(el,fName){
            var qty = 0;
            var name = '';
            var sum = 0;
            if(el.type == 'hidden'){
              name = el.name;
              qty = (!el.value ? qty_cto : el.value);
            }
            else if(el.type == 'radio'){
              name = el.value;
              if(el.checked){
                qty = qty_cto;
              }
            }
            else if(el.type == 'checkbox'){
              name = el.name;
              if(el.checked){
                qty = (!el.value ? qty_cto : el.value);
              }
            }
            else if(el.type == 'select-one'){
              name = el.name;
              qty = el.options[el.selectedIndex].value;
            }
            if(name && qty > 0){
                                switch(fName){
                            case 'formA':
                        pt_sumA += addDetailPointSelected(name,'formA');
                        break;
                            case 'formB':
                        pt_sumB += addDetailPointSelected(name,'formB');
                        break;
                            default:
                              break;
                                }
            }
    }
    
    function addDetailPointSelected(id,fName){
                        switch(fName){
                    case 'formA':
                pt_sumA_ordinary += parseInt(items[id]['ordinarypointval']);
                                        pt_sumA_campain += parseInt(items[id]['campaignpointval']);
                break;
                    case 'formB':
                pt_sumB_ordinary += parseInt(items[id]['ordinarypointval']);
                                        pt_sumB_campain += parseInt(items[id]['campaignpointval']);
                break;
                    default:
                break;
                        }
                return parseInt(items[id]['ordinarypointval']) + parseInt(items[id]['campaignpointval']);
    }
                // point -->
    function addOrderItem(id, qty){
        odr_items[id] = new Array();
        odr_items[id]['code'] = items[id]['code'];
        odr_items[id]['type'] = items[id]['type'];
        odr_items[id]['qty'] = qty;
        if(items[id]['type'] == 'bdy'){
            id_bdy = id;
        }

        return items[id]['price'];
    }
}

/* フォーム作成 */
function execOrder(){
    if(order_status == 2){
        alert("本体を選択してください。");
        return void(0);
    }
    else if(order_status == 4){
        alert("長期保証サービスをお選びください。");
        return void(0);
    }
    else if(order_status == 1){
        alert("表示エラーが発生しております。\nしばらくしてから、再度おためしください。");
        return void(0);
    }

    var cnt = 0;
    var keys = new Array();
    for(var id in odr_items){
        var type = odr_items[id]['type'];
        var id_str = '';
        if(type == 'bdy'){
            id_str = '0' + id;
        }
        else if(type == 'rpr'){
            id_str = '1' + id;
        }
        else if(type == 'cto'){
            id_str = '2' + id;
        }
        else{
            id_str = '3' + id;
        }
        keys[cnt] = id_str;
        cnt++;
    }
    keys.sort();
    
    /* 本体 & CTO & 関連製品 */
    var prod_cnt = 0;
    var form_str = '';
    for(i = 0; i < keys.length; i++){
        var id = keys[i].slice(1);
        var type = odr_items[id]['type'];
        var qty  = odr_items[id]['qty'];
        if(qty > 0){
            var num_id = (prod_cnt < 10) ? '0' + prod_cnt : '' + prod_cnt;
            if(type == 'bdy'){
                form_str += getFormItem(id, num_id, 1, 1);
            }
            else if(type == 'rpr' || type == 'cto'){
                form_str += getFormItem(id, num_id, 1, 0);
            }
            else{
                form_str += getFormItem(id, num_id, '', '');
            }
            prod_cnt++;
        }
    }
    var page = '<form id="orderForm" method="post" action="' + odr_url + '">';
    page += '<input type="hidden" name="SHOP_ID" value="1">';
    page += '<input type="hidden" name="Action" value="sscjlogin_product" />';
    page += '<input type="hidden" name="DispType" value="">';
    page += '<input type="hidden" name="DISPCATEGORY" value="' + disp_category + '" />';
    page += '<input type="hidden" name="TANA_CODE" value="' + tana_code + '" />';
    page += '<input type="hidden" name="SHOP_URL" value="' + shop_url + '" />';
    page += '<input type="hidden" name="PROD_CNT" value="' + prod_cnt + '" />';
    page += form_str;
    page += '</form>';
    document.open();
    document.write(page);
    document.close();
    document.getElementById('orderForm').submit();
    
    /* ローカル関数 */
    function getFormItem(id, num_id, num1, num2){
        return '<input type="hidden" name="PRODUCT_ID_' + num_id + '" value="' + odr_items[id]['code'] +'" />'
        + '<input type="hidden" name="new_qty_' + num_id + '" value="' + odr_items[id]['qty'] + '" />'
        + '<input type="hidden" name="BUY_TEAM_CODE_' + num_id + '" value="' + num1 + '" />'
        + '<input type="hidden" name="BODY_FLG_' + num_id + '" value="' + num2 + '" />';
    }
}

function getFormItem(id, num_id, num1, num2){
    return '<input type="hidden" name="PRODUCT_ID_' + num_id + '" value="' + odr_items[id]['code'] +'" />'
    + '<input type="hidden" name="new_qty_' + num_id + '" value="' + odr_items[id]['qty'] + '" />'
    + '<input type="hidden" name="BUY_TEAM_CODE_' + num_id + '" value="' + num1 + '" />'
    + '<input type="hidden" name="BODY_FLG_' + num_id + '" value="' + num2 + '" />';
}


/* フォーム作成(禁則用今後こっちの関数を使います。) */
function execOrder_2(){
/**** MODIFIED BY ISS 20090306 START  noprice_flg added  ***/

/**** MODIFIED BY ISS 20090327 START ****/
/*** 暫定対応にて一時的に条件変更(noprice_flgをはずした。
    if(order_status == 2 && noprice_flg != 1){
***/
    if(order_status == 2){
/**** MODIFIED BY ISS 20090327 END   ****/

/**** MODIFIED BY ISS 20090306 END  ***/
        alert("本体を選択してください。");
        return void(0);
    }
    else if(order_status == 1){
        alert("表示エラーが発生しております。\nしばらくしてから、再度おためしください。");
        return void(0);
    }

/**** MODIFIED BY ISS 20090327 START ****/
/*** 暫定対応にて一時的にコメントアウト
    else if(noprice_flg == 1){
        alert("価格未定のため、本商品はご購入いただけません。");
        return void(0);
    }
***/
/**** MODIFIED BY ISS 20090327 END   ****/

/* ADDED BY ISS 20081113 START */
    var objReet = chkReetGeneral();
    if (order_status == 3){
        if (objReet != null) objReet.focus();
        alert("サービス特典を選択してください。");
        return void(0);
    }
    else if(order_status == 4){
        if (objReet != null) objReet.focus();
        alert("長期保証サービスをお選びください。");
        return void(0);
    }
    if(shop_url == "" || shop_url == null){
        shop_url = document.URL;
    }
/* ADDED BY ISS 20081113 END   */

    /* 約款用 */

/* MODIFIED BY ISS 20081105 START
 document.formA がNULLの時の処理を追加
*/
    if (document.formA != null){
        flg_yakkan = (document.formA.rpr == '[object]' ? 1 : 0); //ラジオボタンの有無を判別
    }
    function ChkYak(yak_code){
        if(flg_yakkan != 0 && document.formA != null){//長期保証のラジオボタンがある場合
            var rprArr_num = document.formA.rpr.length;
            for(i = 0; i < rprArr_num; i++){
                if(document.formA.rpr[i].checked){
                    var rpr_val = document.formA.rpr[i].value;
                }
            }
            if(rpr_val != ''){
                setOrderItem('cto',yak_code,"<?php echo sstyle_ecoss_price(yak_code);?>","<?php echo ssiv_cd(yak_code);?>",'default','');
            }
        } else{//長期保証のラジオボタンがない場合
            setOrderItem('cto',yak_code,"<?php echo sstyle_ecoss_price(yak_code);?>","<?php echo ssiv_cd(yak_code);?>",'default','');
        }
    }
    
    //約款チェック
    if(yak_code != ''){
        ChkYak(yak_code);
        calc();
    }

    //禁則チェック
    ctoFlg = 0;
/* MODIFIED BY ISS 20081202 START */
    if (typeof(ChkReet) == 'function'){ 
        ChkReet();
    }
/* MODIFIED BY ISS 20081202 END   */


    if(ctoFlg != 1){

        var cnt = 0;
        var keys = new Array();
        for(var id in odr_items){
            var type = odr_items[id]['type'];
            var id_str = '';
            if(type == 'bdy'){
                id_str = '0' + id;
            }
            else if(type == 'rpr'){
                id_str = '1' + id;
            }
            else if(type == 'cto'){
                id_str = '2' + id;
            }
            else{
                id_str = '3' + id;
            }
            keys[cnt] = id_str;
            cnt++;
        }
        keys.sort();
        
        /* 本体 & CTO & 関連製品 */
        var prod_cnt = 0;
        var form_str = '';
        for(i = 0; i < keys.length; i++){
            var id = keys[i].slice(1);
            var type = odr_items[id]['type'];
            var qty  = odr_items[id]['qty'];
            if(qty > 0){
                var num_id = (prod_cnt < 10) ? '0' + prod_cnt : '' + prod_cnt;
                if(type == 'bdy'){
                    form_str += getFormItem(id, num_id, 1, 1);
                }
                else if(type == 'rpr' || type == 'cto'){
                    form_str += getFormItem(id, num_id, 1, 0);
                }
                else{
                    form_str += getFormItem(id, num_id, '', '');
                }
                prod_cnt++;
            }
        }


/**** START added by ISS ****/
        odr_url = chgAction();
/**** end   added by ISS ****/

        var page = '<form id="orderForm" method="post" action="' + odr_url + '">';
        page += '<input type="hidden" name="SHOP_ID" value="1">';
        page += '<input type="hidden" name="Action" value="sscjlogin_product" />';
        page += '<input type="hidden" name="DispType" value="">';
        page += '<input type="hidden" name="DISPCATEGORY" value="' + disp_category + '" />';
        page += '<input type="hidden" name="TANA_CODE" value="' + tana_code + '" />';
        page += '<input type="hidden" name="SHOP_URL" value="' + shop_url + '" />';
        page += '<input type="hidden" name="PROD_CNT" value="' + prod_cnt + '" />';
				// <!-- カート対応 start
        if(odr_url == cartURL){
        	if(cart_success_url != ''){
						page += '<input type="hidden" name="SUCCESS_URL" value="'+cart_success_url+'">';
					}
					if(cart_failure_url !=''){
						page += '<input type="hidden" name="FAILURE_URL" value="'+cart_failure_url+'">';
					}
					if(cart_link_url !=''){
						page += '<input type="hidden" name="LINK_URL" value="'+cart_link_url+'">';
        	}
        }
				// カート対応 end -->
        page += form_str;
        page += '</form>';
        
                omn_scAdd();

        document.open();
        document.write(page);
        document.close();

        document.getElementById('orderForm').submit();
        
        /* ローカル関数 */
        function getFormItem(id, num_id, num1, num2){
            return '<input type="hidden" name="PRODUCT_ID_' + num_id + '" value="' + odr_items[id]['code'] +'" />'
            + '<input type="hidden" name="new_qty_' + num_id + '" value="' + odr_items[id]['qty'] + '" />'
            + '<input type="hidden" name="BUY_TEAM_CODE_' + num_id + '" value="' + num1 + '" />'
            + '<input type="hidden" name="BODY_FLG_' + num_id + '" value="' + num2 + '" />';
        }
    }
}

/**** START added by ISS ****/

function chgAction(){

  var result = chkCartChkCookie();
    
    cartAction = ''+cartAction;

  if(cartAction == "chk" || result){ // カートチェック
    return checkURL;
  }else if(cartAction == 'direct'){ // 緊急時直接投入
    return directURL;
  }else{ // 通常時カート投入
    return cartURL;
  }
}

function chkCartChkCookie(){
  var ck = document.cookie;
  var ck_a = new Array();
  var ck_b = new Array();

  ck_a = ck.split(";");
  for (var i=0; i<ck_a.length; i++){
    ck_b = ck_a[i].split("=");

    if((ck_b[0]).search(/CCF/gi) > 0){
      return 1;
    }
  }
  return 0;
}

function execOrder_3(cd){
  var id = getOrderId(cd);
  if(cd && typeof(items[id]['check']) != 'undefined'){
    items_ext[id] = 1;
    calc();
    execOrder_2();
  }
}
/**** END added by ISS ****/

/* ADDED BY ISS 20081113 START */
function chkReetGeneral(){

    for (var i=0; i<maxCtoGrp+1; i++){
        var flgChecked = 0;
        var inputRadioName = document.getElementsByName('cto'+i);

        if (inputRadioName != null) {
            for (var j=0; j<inputRadioName.length; j++) {
                if (inputRadioName[j].checked) {
                    flgChecked = 1;
                }
            }
/* MODIFIED BY ISS 20081217 START */
            if (navigator.appName.charAt(0) == "M" || navigator.appName.charAt(0) == "O") {
                if (flgChecked == 0 && inputRadioName.length >1) {
                    order_status = 3;
                    return inputRadioName.item(1);
                }
            } else if(navigator.appName.charAt(0) == "N") {
                if (flgChecked == 0 && inputRadioName.length >0) {
                    order_status = 3;
                    return inputRadioName[0];
                }
            }
/* MODIFIED BY ISS 20081217 START */
        }
        
    }
    if (document.getElementsByName('rpr')){
        var flgRprChecked = 0;
            var rprGrp = document.getElementsByName('rpr');
        for (var j=0; j<rprGrp.length; j++){
                        if (rprGrp[j].checked){
                                flgRprChecked = 1;
                        }
                }
        if (flgRprChecked == 0 && rprGrp.length >1) {
            order_status = 4;
//            return document.getElementById('rpr');
            if (rprGrp.length > 1){
                return (rprGrp[1] ? rprGrp[1] : rprGrp[0]);
            }else{
                return null;
            }
        }
    }
    return null;
}
/* ADDED BY ISS 20081113 END   */

// <!-- 納期計算対応 2008/11/14 ONDR add start

function dcInitCondition(){
    if(!isClCalFuncCall){
        return;
    }
    prohibitFlg = false;
    uncalculatableStatusFlg=false;
    myD = new Date();
    todayStartD = new Date((myD.getYear() < 2000) ? myD.getYear()+1900 : myD.getYear(),myD.getMonth(),myD.getDate());
    strToday=((myD.getYear() < 2000) ? myD.getYear()+1900 : myD.getYear())+fillZeroMonth((String)(myD.getMonth()+1))+fillZeroDate((String)(myD.getDate()));
    origin_date_store = defaultDateStr;
    origin_date = defaultDateStr;
    production_shitei_date_store = defaultDateStr;
    //<!-- ACC start
    shipmentDate = defaultDateStr;
    // ACC end -->
    production_transfer_lead_time_store = 0;
    currentStandDateFutureFlg = false;
    standDateFutureFlg = false;
    //<!-- ACC start
    inStoreDateFutureFlg = false;
    // ACC end -->
    uncalculatable_status = new Array();
    uncalculatable_id= new Array();
    capaInfoLuckFlg = false;
    html_msg ='';
    uncalculatablOnsaleDateFlg=false;
    dcSetDeliverText( html_tag, '' );
    //<!-- ACC start
    icon_html='';
    // ACC end -->
}

function dcCalcDeliverDate(){
    if(!isClCalFuncCall){
        return;
    }

    dcCheckConfig();

    if(!prohibitFlg){

        dcCalcDeliverDateByInstoreDate();

        if(dcCompareDate(production_shitei_date_store,origin_date_store)){
            //<!-- ACC start
                        if(dcCompareDateNotEqual(production_shitei_date_store,origin_date_store)){
                inStoreDateFutureFlg = true;
            }
            // ACC end -->
            origin_date_store=production_shitei_date_store;
            standDateFutureFlg = false;
        }

        dcSetMsgDate();
        //<!-- ACC start
        if(!inStoreDateFutureFlg){
                dcSetShippingIconInfo();
        }
        // ACC end -->

    }else if(uncalculatablOnsaleDateFlg){
        dcSetErrorMsgCauseInstoreDateLuck();

    }else   if(uncalculatableStatusFlg){

        dcSetErrorMsgCauseStatus();

    }else if(origin_date_store ==defaultDateStr){
        dcSetErrorMsgCauseHikiateProhibitStatus();

    }else{

        dcSetErrorMsgCauseOther();
    }
    dcShowDeliverInfo();
    //<!-- ACC start
    dcShowShippingIconInfo();
    // ACC end -->
}


function dcCheckConfig(){

    if( origin_date_store == defaultDateStr){
        prohibitFlg = true;
    }
}


function dcGetSeasonStr(dateStr){
    seasonStr="";
    dateInt = parseInt(dateStr,10);
    if(dateInt < 11){
        seasonStr=kanjiStrEarlySeason;
    }else if(dateInt < 21){
        seasonStr=kanjiStrMiddleSeason;
    }else{
        seasonStr=kanjiStrLateSeason;
    }
    return seasonStr;
}


function dcCalcDeliverDateByInstoreDate(){
        
        while(!dcIsWorkDay(origin_date_store)){
            origin_date_store=dcIncrementDate(origin_date_store);
        }

    for(var i=0; i<production_transfer_lead_time_store; i++){

        origin_date_store　=dcIncrementDate(origin_date_store);

        while(! dcIsWorkDay(origin_date_store)){
            origin_date_store = dcIncrementDate(origin_date_store);
        }
    }

    //<!-- ACC start
                shipmentDate=origin_date_store;
    // ACC end -->
    origin_date_store = dcIncrementDate(origin_date_store);
}


function dcIsWorkDay(dateStr){
    workFlg=true;
    for(i=0;i<closeCalendar.length ;i++){
        if(closeCalendar[i] == dateStr){
            workFlg=false;
            return workFlg;
        }
    }
    return workFlg;
}


function dcUpdateDeliverInfo(id){
    if(!isClCalFuncCall){
        return;
    }
    if(!prohibitFlg){

        if(!dcCheckOnstoreDate(id)){
            prohibitFlg = true;

        }else if(dcIsStatusCalculatable(id)){

            origin_date = dcCalculateStandDate(id);

            if(dcCompareDate(origin_date,origin_date_store)){
                origin_date_store = origin_date;
                if(currentStandDateFutureFlg){
                    standDateFutureFlg = true;
                }
            }

            production_transfer_lead_time = dcCalculateProductionTransferLeadTime(id);

            if(dcCompareQuantity(production_transfer_lead_time,production_transfer_lead_time_store)){

                production_transfer_lead_time_store = production_transfer_lead_time;
            }

            production_shitei_date = dcCalculateShiteiDate(id);

            if(dcCompareDate(production_shitei_date,production_shitei_date_store)){
                production_shitei_date_store = production_shitei_date;
            }

        }else{

            dcAddUncalculatableStatusInfo(id);
        }

    }else{
        if(!dcIsStatusCalculatable(id)){

            dcAddUncalculatableStatusInfo(id)
        }
    }
}


function dcIsStatusCalculatable(id){
    return (st[id] ==statusCodeAvailableForSale || st[id] == statusCodeStopAllocate);
}


function dcIsStatusOnSale(id){
    return (st[id] ==statusCodeAvailableForSale);
}


function dcAddUncalculatableStatusInfo(id){
    uncalculatableStatusFlg = true;
    uncalculatable_status[id]= st[id];
    uncalculatable_id.push(id);
    prohibitFlg = true;
}
function dcCheckOnstoreDate(id){
    flg = false;
    if(!dcIsStatusOnSale(id)){
        return true;
    }
    if(iDate[id]){

        if(iDate[id].length == 8){
            flg = true;
        }
    }
    if(!flg){
        uncalculatablOnsaleDateFlg=true;
    }
    return flg;
    
}


function dcCalculateStandDate(id){
    var standDate = defaultDateStr;
    if(dcIsStatusOnSale(id)){
        if(iDate[id]){

            standDate = dcGetStandDateById(id);
        }else{
            prohibitFlg=true;
        }
    }
    return standDate;
}


function dcCalculateShiteiDate(id){
    var standDate = defaultDateStr;
    if(dcIsStatusOnSale(id)){
        if(sYmd[id]){

            standDate = sYmd[id];
        }
    }
    return standDate;
}


function dcCalculateProductionTransferLeadTime(id){
    var productionTransferLeadTime = 0;
    if(dcIsStatusOnSale(id)){

        productionTransferLeadTime = lt[id];
    }
    return productionTransferLeadTime;
}


function dcCompareDate(date1,date2){
    var tData1 = dcGetDateArray(date1);
    oTData1 = new Date( parseInt(tData1[0],10),parseInt(tData1[1],10)-1,parseInt(tData1[2],10));
    var tData2 = dcGetDateArray(date2);
    oTData2 = new Date( parseInt(tData2[0],10),parseInt(tData2[1],10)-1,parseInt(tData2[2],10));
    return (oTData1.getTime() >= oTData2.getTime());
}
//<!-- ACC start
function dcCompareDateNotEqual(date1,date2){
    var tData1 = dcGetDateArray(date1);
    oTData1 = new Date( parseInt(tData1[0],10),parseInt(tData1[1],10)-1,parseInt(tData1[2],10));
    var tData2 = dcGetDateArray(date2);
    oTData2 = new Date( parseInt(tData2[0],10),parseInt(tData2[1],10)-1,parseInt(tData2[2],10));
    return (oTData1.getTime() > oTData2.getTime());
}
// ACC end -->


function dcCompareQuantity(qua1,qua2){
    return (qua1>=qua2);
}


function dcGetDateArray(dateStr){
    var tData = new Array();
    if(dateStr.length >= 8){
        tData[0]=dateStr.substring(0,4);
        tData[1]=dateStr.substring(4,6);
        tData[2]=dateStr.substring(6);
    }
    return tData;
}


function dcAddDate(addDayCount,standDate){
    var day = dcGetDateArray(standDate);
    year = (parseInt(day[0],10) < 2000) ? parseInt(day[0],10)+1900 : parseInt(day[0],10);
    tData = new Date( parseInt(year,10),parseInt(day[1],10)-1,parseInt(day[2],10));
    var addDays = parseInt(addDayCount,10);
    var addSec = addDays * 86400000;
    var baseSec = tData.getTime();
    var targetSec = baseSec + addSec;
    tData.setTime(targetSec);
    var dcAddDateStr = ((tData.getYear() < 2000) ? tData.getYear()+1900 : tData.getYear())+(fillZeroMonth((String)(tData.getMonth()+1)))+fillZeroDate((String)(tData.getDate()));
    return dcAddDateStr;
}


function dcIncrementDate(date_str){
    return dcAddDate(1,date_str);
}
function dcDecrementDate(date_str){
    return dcAddDate(-1,date_str);
}


function dcGetStandDateById(id){
    var mostLateDate= defaultDateStr;
    if((!iDate[id]) || iDate[id].length != 8){
        prohibitFlg=true;
        return mostLateDate;
    }
    mostLateDate= iDate[id];


    if(! dcIsDateFuture(iDate[id])){

        if(dcIsAfterNoon()){
            mostLateDate = dcIncrementDate(strToday);
        }else{
            mostLateDate = strToday;
        }
        currentStandDateFutureFlg = false;

    }else{

        currentStandDateFutureFlg = true;
        //<!-- ACC start
        inStoreDateFutureFlg = true;
        // ACC end -->
    }
    return mostLateDate;
}


function dcIsAfterNoon(){
        return (myD.getHours() >= 12);
}


function dcIsDateFuture(targetDate){
    var flg = false;
    var tData = dcGetDateArray(targetDate);
    oTData = new Date( ((parseInt(tData[0],10) < 2000) ? parseInt(tData[0],10)+1900 : parseInt(tData[0],10)),parseInt(tData[1],10)-1,parseInt(tData[2],10));// 対象の日の0時0分オブジェクト
    if(todayStartD.getTime() < oTData.getTime()){
        flg = true;
    }
    return flg;
}


function fillZeroMonth(monthStr){
    return fillZero(2,monthStr);
}


function fillZeroDate(dateStr){
    return fillZero(2,dateStr);
}


function fillZero(digit,str){
    var result ="";
    if(str.length < digit){
        for(i=0;i < digit - str.length;i++){
            result = result +"0";
        }
        result = result + str;
    }else{
        result = str;
    }
    return result;
}


function setCloseCalendar(str){
    closeCalendar = str.split(",");
    isClCalFuncCall=true;
}


function setCapacityInfo(id,str){
    cCal[id] = str.split(",");
}


function dcSetDeliverText( id, text ){
    var oElement = document.getElementById(id);
    if( oElement != null ) {
        oElement.innerHTML = text;
    }
}


function dcShowDeliverInfo() {
            dcSetDeliverText( html_tag, html_msg );
}


function dcSetErrorMsgCauseOutOfCapacityInfo(){

    html_msg = "";
}


function dcSetErrorMsgCauseStatus(){

    html_msg = "";
}

function dcSetErrorMsgCauseInstoreDateLuck(){
    html_msg = "";
}

function dcSetErrorMsgCauseHikiateProhibitStatus(){
    html_msg = "";
}


function dcSetErrorMsgCauseOther(){
    html_msg = "";
}


function dcSetMsgDate(){

    if(standDateFutureFlg){
        season = dcGetSeasonStr(origin_date_store.substring(6));
        displayStr=origin_date_store.substring(0,4)+kanjiStrYear+origin_date_store.substring(4,6)+kanjiStrMonth+season+kanjiDeliverStr;

    }else{
        displayStr=origin_date_store.substring(0,4)+kanjiStrYear+origin_date_store.substring(4,6)+kanjiStrMonth+origin_date_store.substring(6)+kanjiStrDay+kanjiAroundStr+kanjiDeliverStr;
    }

    html_msg = "お届け日の目安：<span>"+displayStr+"</span>";
}
// <!-- 納期計算対応 2008/11/14 ONDR add end

/* ADDED BY ECL 20081126（要削除）*/
function print_r(obj) {
    var count_obj = 0;
    
    function _output(str) {
        document.writeln(str + "<br/>");
    }
    
    function _print_r(obj, name, level) {
        var s = ""; 
        if (obj == undefined || level > 4) return;
        for (var i = 0; i < level; i++) { s += " | "; }
        s += " - " + name + ":" + typeof(obj) + "=" + obj;
        _output(s);
        
        if (name == "document" || typeof(obj) != "object") return;
        for ( key in obj ) {
            if (count_obj++ > 150) return;
            _print_r(obj[key], key, level + 1);
        }
    }

    _print_r(obj, "*", 0);
}
/* ADDED BY ECL 20081126（要削除）END */

//<!-- ACC start
var icon_html='';
var logiInfoCounter=0;
var ship_icon_arr = new Array();
var noshipicon_flg ='';

setShippingIncon();

function getIdByCode(code){
        var id = odr_ids[code];
        return id;
}

function isIdCalclatable(id){
        var result = true;
        if(!dcIsStatusOnSale(id)){
        result = false;
  }else if(! iDate[id]){
        result = false;
  }else if(iDate[id] && iDate[id].toString().length != 8){
        result = false;
  }else if(dcIsDateFuture(iDate[id])){
        result = false;
  }else if(lt[id] =='undefined'){
        result = false;
  }
        return result;
}

function qnaviOutputShippingTag(){
        var defDate= '29991231';
        var fastestShippingDate= defDate;
        var todayStr=((myD.getYear() < 2000) ? myD.getYear()+1900 : myD.getYear())+fillZeroMonth((String)(myD.getMonth()+1))+fillZeroDate((String)(myD.getDate()));
        var tmpDate;
        if(arguments.length < 2){
                return;
        }
        var iconSize=arguments[0];
        // for start
        for(var i=1;i < arguments.length; i++){
                var code = arguments[i];
                var id =getIdByCode(code);
                if(! isIdCalclatable(id)){
                        continue;
                }
    if(dcIsAfterNoon()){
        tmpDate = dcIncrementDate(todayStr);
    }else{
        tmpDate = todayStr;
    }
    // 基準日
    while(!dcIsWorkDay(tmpDate)){
        tmpDate=dcIncrementDate(tmpDate);
    }
    // 生産転送LT考慮
                for(j=0;j<lt[id];j++){
        tmpDate=dcIncrementDate(tmpDate);
            while(!dcIsWorkDay(tmpDate)){
                tmpDate=dcIncrementDate(tmpDate);
            }
    }
    // 納期指定日が計算出荷日より未来日付
    var lflg = true;
    if((sYmd[id] && dcCompareDateNotEqual(dcDecrementDate(sYmd[id]),tmpDate))){
                continue;
    }
        if(lflg && dcCompareDate(fastestShippingDate,tmpDate)){
                fastestShippingDate = tmpDate;
        }
        }
        // for end
        if(fastestShippingDate == defDate){
                return;
        }
        var answer = getDayCountToShipping(fastestShippingDate);
        var html_sentence=getShippingIconInfoBySizeAndDayCount(iconSize,answer.toString());
        document.write(html_sentence);
}

function getShippingIconInfoBySizeAndDayCount(size,dCount){
        var shippingIconInfo='';
        if(typeof(ship_icon_arr[size][dCount]) != 'undefined'){
                shippingIconInfo = ship_icon_arr[size][dCount];
        }
        return shippingIconInfo;
}

// アイコン情報を設定する
function dcSetShippingIconInfo(){
        var answer = getDayCountToShipping(shipmentDate);
        icon_html=getShippingIconInfoBySizeAndDayCount('s',answer.toString());
}

function dcShowShippingIconInfo(){
        if(! (noshipicon_flg && noshipicon_flg=='1') ){
                dcSetDeliverText( 'total-shipping', icon_html );
        }
}

/**
        * 本日日付からの日数差を返却する
        * 過去のものは負の値で返却
        */
function getDayCountToShipping(dateStr){
                //現在とdateStrの日数差を計算する
    todayObj = new Date();
    todayBeginObj = new Date((todayObj.getYear() < 2000) ? todayObj.getYear()+1900 : todayObj.getYear(),todayObj.getMonth(),todayObj.getDate());
    targetDayObj = new Date( parseInt(dateStr.substring(0,4),10), parseInt(dateStr.substring(4,6),10)-1, parseInt(dateStr.substring(6,8),10));
    daySecond=86400000;// ミリ秒
    dayDiff = (targetDayObj.getTime() - todayBeginObj.getTime())/daySecond;// 日数
    return dayDiff;
}

// 引数の数は5個で固定
function setLogiInfo(){
        var id = logiInfoCounter.toString();
        logiInfoCounter++;
  items[id]  = new Array();
        var shitei_ymd;
        var instore_date;
        var lead_time;
  var code = arguments[0];
  var stock = arguments[1];
  items[id]['code'] = code;
  items[id]['stock'] = (stock ? stock : '');
  items[id]['price'] = '';
  st[id]= (stock ? stock : '');
  odr_ids[code] = id;
  if(arguments[2] != ''){
        iDate[id] = arguments[2].toString();
  }
  if(arguments[3] != ''){
        lt[id]= arguments[3].toString();
  }
  if(arguments[4] != ''){
    sYmd[id]  = arguments[4].toString();
  }
}
// ACC end -->
// <!-- point
function setOrderItem2(){
    var shitei_ymd;
    var instore_date;
    var lead_time;
                var type;
                var code;
                var price;
                var ordinarypointrate=0;
                var ordinarypointval=0;
                var campaignpointval=0;
                var stock;
                var check;
                var win;
    type = arguments[0];
    code = arguments[1];
    if (!isNaN(parseInt(arguments[2]))){
        price = parseInt(arguments[2]);
    }else{
        price = arguments[2];
        }
    if(arguments[3] !=''){
        ordinarypointrate = arguments[3];
    }
    if(arguments[4] !=''){
        ordinarypointval = arguments[4];
    }
    if(arguments[5] !=''){
        campaignpointval = arguments[5];
    }
    stock = arguments[6];
                if(('' + arguments[6]) == '20'){
      instore_date = arguments[7];
      lead_time= arguments[8];
      if(arguments[9] !=''){
          shitei_ymd = arguments[9];
       }
                }
    check =arguments[10];
    win = arguments[11];
    code = '' + code;
    if(typeof(types[type]) == 'undefined'){
        types[type] = 0;
    }
    types[type] += 1;
    var id = type + '_' + (types[type] < 10 ? '0' + types[type] : types[type]);
    items[id]  = new Array();
    if(code.match(/\-9999$/)){
        type = 'cto-dummy';
        price = 0;
        stock = 0;
    }
    items[id]['type'] = type;
    items[id]['code'] = code;
    items[id]['price'] = price;
    items[id]['ordinarypointrate'] = ordinarypointrate;
    items[id]['ordinarypointval'] = ordinarypointval;
    items[id]['campaignpointval'] = campaignpointval;
    items[id]['stock'] = (stock ? stock : '');
    st[id]= (stock ? stock : '');
    items[id]['check'] = (check ? check : '');
    items[id]['win'] = (win ? win : '');
    odr_ids[code] = id;
    if(instore_date){
        iDate[id] = ""+instore_date+"";
        lt[id] = lead_time;
        if(instore_date){
            sYmd[id] = ""+shitei_ymd+"";
        }
    }
    /* 本体のアイテム数 */
    if(typeof(check) != 'undefined'){
        if(type.match(/bdy/)){
            bdy_cnt++;
        }
                /* デフォルトの価格＆在庫表示 */
        if(type.match(/bdy/) && check.match(/checked/)){
            default_price = price;
        }
        if(type.match(/bdy|cto|rpr/) && check.match(/default/)){
            items_ext[id] = 1;
        }
    }
}
function getPoint(code){
    var id = getOrderId(code);
    return (getOrdinaryPointRate(code)+","+getOrdinaryPointVal(code)+","+getCampaignPointVal(code));
}
function getOrdinaryPointVal(code){
    var id = getOrderId(code);
    return (id ? items[id]['ordinarypointval'] : '');
}
function getOrdinaryPointRate(code){
    var id = getOrderId(code);
    return (id ? items[id]['ordinarypointrate'] : '');
}
function getCampaignPointVal(code){
    var id = getOrderId(code);
    return (id ? items[id]['campaignpointval'] : '');
}
function getSelectedAreaPointHtml(normalVal,campainVal){
  var html ='';
  if(pointDisplayFlg){
                html = getPointAreaHtml('t','0','0',normalVal,campainVal);
        }
        return html;
}
// point -->