/**
 * 携帯メール判定
 */
function is_ktai_email(email) {
    if (email.match(/@docomo\.ne\.jp$/i)) {
        return true;
    }
    if (email.match(/@softbank\.ne\.jp$/i)) {
        return true;
    }
    if (email.match(/\.vodafone\.ne\.jp$/i)) {
        return true;
    }
    if (email.match(/@ezweb\.ne\.jp$/i)) {
        return true;
    }
    return false;
}

$(document).ready(function(){
    $('#UserNearbyLineId').change(function () {
        var railName = $('#UserNearbyLineId').children('optgroup').children('option:selected').val();
    });
});

function showAjaxStatus(id, mode)
{
    if( mode == 1 ) {
        $('span#ajax_status' + id).html("<img src='/img/common/bg_loadingS.gif' alt='ローディング' width='20' height='20' class='loading' /><span class='loadingText'>ローディング…</span>");

    }
    else if( mode == 2 ) {
        $("span#ajax_status" + id).html('');
    }
}

function onPrefectureChanged() {
    var prefecture_id = $('#UserPrefectureId').children('option:selected').val();

    //    loading cities' data
    showAjaxStatus(1, 1);
    $.ajax({
        url: '/ajax/location_city?areaID='+prefecture_id,
        success: function(data) {
            refreshMunicipalities(data);
            showAjaxStatus(1, 2);

            //    loading railways' data
            showAjaxStatus(2, 1);
            $.ajax({
                url: '/ajax/railways?mode=normal&areaID='+prefecture_id,
                success: function(data) {
                    refreshRailways(data);
                    showAjaxStatus(2, 2);
                }
            });
        }
    });
}

function onJobChanged() {
	

	var job_id = $('#ConditionJobType').children('option:selected').val();
	//准看護師選択時は看護師として処理をする
	if (job_id == 99) {
		job_id = 2;
	}
    //    loading cities' data
    showAjaxStatus( 4, 1 );
    showAjaxStatus( 5, 1 );
    $.ajax( {
        url: '/ajax/business_job?jobID='+job_id,
        success: function( data ) {
            //    loading business' data
            refreshBusiness( data );

            showAjaxStatus( 4, 2 );
            showAjaxStatus( 5, 2 );
        }
    });
}

function refreshBusiness( data ) {

    eval( "var jsonData=" + data );

    var new_html = "<option value=''>お選びください</option>";
    var aItem = "";
    var allLength = jsonData.point.length;

    for( var v = 0; v < allLength; v++ ) {
        aItem = "<option value='" + jsonData.point[v].key + "'>" + jsonData.point[v].title + "</option>";
        new_html = new_html + aItem;
    }
    $('select#ConditionBusinessType1').css("width", "auto");
    $('select#ConditionBusinessType2').css("width", "auto");
    $('select#ConditionBusinessType1').html( new_html );
    $('select#ConditionBusinessType2').html( new_html );
}

function refreshMunicipalities(data)
{
    eval("var jsonData="+data);

    var new_html = "<option value=''>市区町村</option>";
    var aItem = "";
    var allLength = jsonData.point.length;

    for (var v=0; v<allLength; v++) {
        aItem = "<option value='" + jsonData.point[v].key + "'>" + jsonData.point[v].title + "</option>";
        new_html = new_html + aItem;
    }
    $('select#UserAddress1Id').css("width", "auto");
    $('select#UserAddress1Id').html(new_html);
}

function refreshRailways(data)
{
    eval("var jsonData="+data);

    var new_html = "<option value='0'>お選びください</option>";
    var aItem = "";

    var countArea = jsonData.point.length;
    var countRailway = 0, j = 0;

    for (var i = 0; i<countArea; i++) {
        aItem = "<optgroup label='" + jsonData.point[i].group + "'>";
        new_html = new_html + aItem;
        countRailway = jsonData.point[i].railways.length;

        for (j=0; j<countRailway; j++) {
            aItem = "<option value='" + jsonData.point[i].railways[j].key + "'>" + jsonData.point[i].railways[j].title + "</option>";
            new_html = new_html + aItem;
        }
    }
    $('select#UserNearbyLineId').css("width", "auto");
    $('select#UserNearbyLineId').html(new_html);
}

function onRailwayChanged() {
    var railway_id = $('#UserNearbyLineId').children('optgroup').children('option:selected').val();

    showAjaxStatus(3, 1);
    $.ajax({
        type: 'POST',
        url: '/ajax/stations?railwayID=' + railway_id,
        success: function(data) {
            refreshStations(data);
            showAjaxStatus(3, 2);
        }
    });
}

function refreshStations(data)
{
    eval("var jsonData="+data);

    var new_html = "<option value='0'>お選びください</option>";
    var aItem = "";

    for ( var v in jsonData.point ) {
        aItem = "<option value='" + v + "'>" + jsonData.point[v].name + "</option>";
        new_html = new_html + aItem;
    }
    $('select#UserNearbyStationId').css("width", "auto");
    $('select#UserNearbyStationId').html(new_html);
}

function inputCheckAndSubmit( form_id ) {
    $('form#' + form_id).submit();
}

/*
 *   Created by KIH 20090218
 *   This disselects all checkboxes.
 */
function disselectAllCheckbox( item_count, pack_name ) {
    if(item_count > 0 ) {
        var i = 0;
        var packName = "";
        if( pack_name !== undefined )
            packName = pack_name;

        for( i = 1; i <= item_count; i++ ) {
            $('#' + packName + i).attr( 'checked', false );
        }
    }
}

/*
 *    Created by KIH 20090218
 */
function messageReplyConfirmAndSubmit( form_id, pack_name ) {

    var packName = "";
    if( pack_name !== undefined )
        packName = pack_name;

    if( $('textarea#' + packName).val() != "" ) {
        $('form#' + form_id).submit();
    } else {
        alert("内容を入力してください。");
    }
}

/*
 *    Created by KIH 20090218
 */
function messageCreateConfirmAndSubmit( form_id, subject_pack, receiver_pack, body_pack ) {

    if( $('#' + subject_pack).val() == "" ) {
        alert("件名を入力してください。");
    }
    else if( $('#' + receiver_pack).val() == "" ) {
        alert("宛先を入力してください。");
    }
    else if( $('#' + body_pack).val() == "" ) {
        alert("内容を入力してください。");
    } else {
        $('form#' + form_id).submit();
    }
    return;
}

function messageSimpleReply( body_pack, select_pack ) {

    if ($('#' + select_pack).val() != '') {
        var insert_str = $('#' + $('#' + select_pack).attr( 'selectedIndex' )).val();

        $('#' + body_pack).val( insert_str + "\n" + $('#' + body_pack).val() );
    }
    return;
}


function deleteJobHistory2( key ) {

    if( key < 0 || key >= 10 ) return;

    var state = $('div#jobHistoryBox'+key).css("display");

    if (state && ((state == "inline") || (state == "block") || (state == ""))) {
        $('div#jobHistoryBox'+key).css("display", "none");
        $('input#historystate'+key).val("0");
    }
    var i, b_hideAll = 1;
    for( i = 0; i < 10; i ++ ) {
        state = $('div#jobHistoryBox'+i).css("display");
        if (state != 'none') { b_hideAll = 0; break; }
    }
    if( b_hideAll == 1 ) {
        $('input#haveNoHistory').attr("checked", "checked");
    }
}

function addHistory() {
    $('#jobHistoryBox0').css( 'display', 'inline' );
    $('#historystate0').val( 1 );
}

function noHistory() {
    var i = 0;
    for( i = 10; i >= 0; i-- ) {
        if( $('#jobHistoryBox' + i).get(0) != null ) {
            $('#jobHistoryBox' + i).css( 'display', 'none' );
            $('#historystate' + i).val( 0 );
        }
    }
}

function checkAndGo( formId ) {
    $('form#' + formId).submit();
}

function goFormSubmit( formID, url ) {

    if( $('form#' + formID).get(0) != null ) {
        $('form#' + formID).attr( 'action', url );
        $('form#' + formID).submit();
    }
}

function genPdf( form_id, url, kind, size ) {
    $('#kind').val( kind );
    $('#size').val( size );
    $('form#' + form_id).attr( 'action', url );
    //var fm = $('#'+form_id);
    $('form#' + form_id).submit();
}

function openPdf( file ) {
    var newWnd = window.open( "", "UserHistory", "" );
    if( !newWnd ){
        location.href = file;
    }
    else{
        newWnd.location.href = file;
        newWnd.focus();
    }
     $.ajax({
            url: '/user/generate/userhistory',
            data:{'file':file},
            success: function(data) {
                $.ajax({
                    url: '/generate/delete',
                    data:{'file':file},
                    success: function(data) {
                    }
                });
            }
        });

}


function initForIE() {
    if( document.all ) {
        $(".navOne li").hoverClass( "sfHover" );
    }
}

function user_add_submit( form_id, mode ) {
    $('form#' + form_id).attr( 'action', '/user/add?mode=' + mode );
    $('form#' + form_id).submit();
}

function goToPage(page)
{
    var query = location.search;
    query = _deleteParam( query, 'page' );

    if( query == '' )
        query = '?';

    if( query.length > 1 )
        query = query + '&';

    query = query + 'page=' + page;
    location.href = location.pathname + query;
}

function sort(param)
{
    var query = location.search;
    query = _deleteParam( query, 'sort' );

    if( query == '' )
        query = '?';

    if( query.length > 1 )
        query = query + '&';

    query = query + 'sort=' + param;
    location.href = location.pathname + query;
}


//
// 利用規約確認をチェックするまでフォームに入力できないようにする
//
function attachBlockUI2FormUser(){
    var confirmButton, requireAgreementForm;
    requireAgreementForm = $('form.requireAgreementForm');
    confirmButton = $('form.requireAgreementForm div.unitBtn input:image');
    $.blockUI.defaults.css = {
        padding:        10,
        margin:         0,
        width:          '55%',
        top:            '10%',
        left:           '35%',
        textAlign:      'center',
        color:          '#000',
        border:         '3px solid #FF6600',
        backgroundColor:'#fff',
        cursor:         'default'
    };
     $.blockUI.defaults.overlayCSS = {
        backgroundColor: '#fff',
        opacity:         '0.7',
        cursor:         'default'
    };
    $.blockUI.defaults.centerY = false;

    function blockForm(){
        $('div#requireAgreement').block({message:false});
        // submitボタンを無効に
        requireAgreementForm.bind('submit.requireAgreement', function(){
            return false;
        })
        confirmButton.css('opacity', '0.5');
    }
    function unblockForm(){
        $('div#requireAgreement').unblock();
        // submitボタンを有効に
        requireAgreementForm.unbind('submit.requireAgreement');
        confirmButton.css('opacity', '1');
    }
    $('input#UserAgreement').bind('click', function(){
        if ($(this).attr('checked')) {
            unblockForm();
        } else {
            blockForm();
        }
    }).triggerHandler('click');
}

function displayPracticalNurse() {
	if ($('select#ConditionJobType').val() == 2) {
		$('p#practicalNurse').css('display', 'inline');
		$('input#ConditionPracticalNurse')
                    .val('disabled', '');
	} else {
		$('p#practicalNurse').css('display', 'none');
		$('input#ConditionPracticalNurse')
                    .val('disabled', 'disabled')
                    .attr('checked', '');
	}
}

/**
 * 職歴の複数チェックボックスのラベルをクリックしたときに必ず「職歴1」の
 * チェックボックスがクリックされる問題に対処する
 */
function fixCheckboxLabelClickBehavior() {
    $('label[for^=EmploymentRecordEmploymentType]').click(function(){
        // ラベルの直前のチェックボックスをクリックさせる
        $(this).prev().click();
        return false;
    });
}

/**
 * 資格の追加ボタンクリック時
 */
function addLicenseHistory() {
    var i=0;

    for (i=0; i<10; i++) {
        var state = $('div#licenseBox'+i).css("display");

        if (state == 'none') {
            $('div#licenseBox'+i).css("display", "inline");
            $('div#licenseBox'+i+' input select').attr('disabled', '');
            $('input#LicenseCount').val(i+1);
            break;
        }
    }
}

/**
 * 資格の削除ボタンクリック時
 */
function deleteLicenseHistory() {
    var i=0;
    for (i=9; i>-1; i--) {
        var state = $('div#licenseBox'+i).css("display");

        if ((state == "inline") || (state == "block") || (state == "")) {
            $('div#licenseBox'+i).css("display", "none");
            $('div#licenseBox'+i+' input select').attr('disabled', 'disabled');
            $('input#LicenseCount').val(i);
            break;
        }
    }
}

/**
 * 職歴の追加ボタンクリック時
 */
function addJobHistory() {
    var i=0;
    $('input#EmploymentRecordExists1').attr("checked", "checked");

    for (i=0; i<10; i++) {
        var state = $('div#jobHistoryBox'+i).css("display");

        if (state == 'none') {
            $('div#jobHistoryBox'+i).css("display", "inline");
            $('input#EmploymentRecordCount').val(i+1);
            break;
        }
    }
}

/**
 * 職歴の削除ボタンクリック時
 */
function deleteJobHistory() {
    var i=0;
    var b_hideAll = 1;
    for (i=9; i>-1; i--) {
        var state = $('div#jobHistoryBox'+i).css("display");

        if ((state == "inline") || (state == "block") || (state == "")) {
            $('div#jobHistoryBox'+i).css("display", "none");
            $('input#EmploymentRecordCount').val(i);
            break;
        }
    }
    for( i = 0; i < 10; i ++ ) {
        state = $('div#jobHistoryBox'+i).css("display");
        if (state != 'none') { b_hideAll = 0; break; }
    }
    if( b_hideAll == 1 ) {
        $('input#EmploymentRecordExists2').attr("checked", "checked");
    }
}

/**
 * 職種のあり・なしの切り替えを制御する
 */
function toggleInputJobHistory() {
    $('input:radio[id^=EmploymentRecordExists]').change(function(){
        if ($(this).val() == '1') {
            addJobHistory();
        } else {
            // 表示されている数だけ隠す＝すべて非表示に
            $('div[id^=jobHistoryBox]:not(:hidden)').each(function(){
                deleteJobHistory();
            });
        }
    });
}

/**
 * メールアドレスに携帯メールアドレスが入力された場合、携帯メールアドレスにコピー
 */
function copyIfKtaiMailAddress() {
    // プロフィール編集画面でのみ動作
    if (!location.pathname.match(/^\/profile\/edit/)) {
        return;
    }
    $('#UserMail').blur(function(){
        var email;
        // すでに入力されている場合はなにもしない
        if ($('#UserMobileMail').val() != '') {
            return false;
        }
        email = $(this).val();
        if (is_ktai_email(email)) {
            $('#UserMobileMail').val(email);
        }
    });
}

$(document).ready(function(){
    attachBlockUI2FormUser();
    //displayPracticalNurse();
    //addLicenseHistory();
    fixCheckboxLabelClickBehavior();
    toggleInputJobHistory();
    copyIfKtaiMailAddress();
});
