// test

function controlChildrenCheck(idKey, parentValue, childrenName, separator) {
    var parentObj = $(idKey + parentValue);

    var children = document.getElementsByName(childrenName);

    if(children.length) {
        for(var i = 0; i < children.length; i++) {
            var child = children[i];
            var value = child.value;
            if(parentValue == value.split(separator)[0]) {
                child.checked = parentObj.checked;
            }
        }
    } else {
        var value = children.value;
        if(parentValue == value.split(separator)[0]) {
            children.checked = parentObj.checked;
        }
    }
}

// 職種が属するカテゴリのチェック状態を、
// 属する職種のチェック状態に応じて変更する
function controlParentCheck(idKey, parentValue, childrenName, separator) {
    var parentObj = $(idKey + parentValue);
    var children = document.getElementsByName(childrenName);
    var isFalseExist = false;
    if(children.length) {
        // 配列の場合
        for(var i = 0; i < children.length; i++) {
            var child = children[i];
            var value = child.value;
            if(parentValue == value.split(separator)[0]) {
                if(child.checked == false) {
                    isFalseExist = true;
                    break;
                }
            }
        }
    } else {
        var value = children.value;
        if(parentValue == value.split(separator)[0]) {
            if(children.checked == false) {
                isFalseExist = true;
            }
        }
    }
    parentObj.checked = !isFalseExist;
}

function changeOptionList(obj, type, targetId, targetName, def, contextPath , afId) {

    // obj -- イベント元部品
    // type -- 種類
    // targetId -- 変更先のID
    // targetName -- 変更後の部品名
    // def -- 変更後のデフォルト値
    // contextPath -- コンテキストパス
    // afId -- 提携先ID

    // 複数箇所で使用しているので、
    // パラメータの順序を変える場合は注意が必要
    var path = contextPath + '/' + afId + '/dropDown';
    var _param = '';
    _param += 'name=' + targetName;
    _param += '&type=' + type;
    _param += '&_params=' + $(obj.id).value + ',';
    _param += 'true,';
    _param += def + ',';
    _param += 'default' + ',';
    _param += afId ;

    if($(targetName)) {
        $(targetName).disabled = true;
    }

    // 2008.04.02 #358
    // 現時点では、給与の場合のみActiveX無効時はdisabled = falseとする
    // （住所ドロップダウンはActiveX無効時は使えないまま）
    if (("salary" == type) || ("salaryMoney" == type) || ("prefecture" == type) || ("MDTV" == type)){

    // 2008.04.02 #358 
    // Ajax.Updaterでエラー、例外が発生した場合に$(targetName).disabled = falseの処理を追加
    new Ajax.Updater(targetId, path,
        {
            method: 'post',
                onFailure: function() { 
                    if($(targetName)) {
                        $(targetName).disabled = false;
                    }
                }, 
                onException: function () { 
                    if($(targetName)) {
                        $(targetName).disabled = false;
                    }
                },             
                insertion: Element.update,
                postBody: _param,
                requestHeaders: ['referer', contextPath]
            });
    }else{
        new Ajax.Updater(targetId, path,
            {
                method: 'post',
            insertion: Element.update,
            postBody: _param,
            requestHeaders: ['referer', contextPath]
        });
    }
    
}

// selectBoxDate 値変更時に呼ばれる処理
// 入力値をチェックし、判定結果を
// 後続処理に渡して実行する
function checkOnChange(name, callbackFunction, doCallBackFunctionWhenEmpty) {

    var year = $(name + 'Y').value;
    var month = $(name + 'M').value;
    var day = '';
    if($(name + 'D')) {
        day = $(name + 'D').value;
    } else {
        day = '01';
    }

    if(year == '' || month == '' || day == '') {
    
        if(doCallBackFunctionWhenEmpty == true) {
            if (callbackFunction != null) {
                callbackFunction(false);
            } else {
                defaultCallbackFunction(false);
            }
        }
    
        return;
    }
    
    // @see base.js
    var ret = year_chk(year, month, day);
    
    if (callbackFunction != null) {
        callbackFunction(ret);
    } else {
        defaultCallbackFunction(ret);
    }
}

// callbackFunction を指定しない場合に呼ばれる function
function defaultCallbackFunction(param) {
    if(param == false) {
        alert('日付が正しくありません。');
    } else {
    }
}
