
//マイフォルダのキャラクター表示後、関連イベントのロード(リファクタリング)

function initMyCharacter() {
	var thumb_image_selecter = $('div#my_chara img.thumb_image');
	
    var chara = chara_now == 'new' ? new Array() : charas[chara_now];
    
	if (chara_now == 'new') {
		jsFunc('myCharaNew');
	} else {
//		jsFunc('myCharaSelect', chara_now);
	}
	
    //関連イベントリロード
	ajaxSubmit();
	
//    charaThumbAddEvent();
	
	//該当キャラのフル画像を別窓で表示
    $('p#chara_img_download').die('click').live('click', function(){
        $('div#expression_ctrl').hide();
        var param = $(this).attr('title').split('.');
        window.open(charaImgUrl(charas[param[0]]['chara_data'][param[1]]['img_name']), "_blank");
    });
	
	$('p#mychara_delete').click(function(){
		showConfirm('キャラクターを削除','一度消したデータは復活することができません。<br />本当にいいのですね！','/character/charadelete',
                    {'chara_id' : chara_now}, 'charaDeleteBefore', 'charaDeleteComplete');
	});
	
	$('div#my_chara img.chara_img_thumb').css('cursor', 'pointer').live('click', function(e){
		
		var img_pos = $(this).offset();
        $('#expression_ctrl').hide('fast', function(){
			var my_chara_pos = $('#my_folder').offset();
			
			$(this).css("left", (img_pos.left - my_chara_pos.left - 210) + "px")
                    .css("top", (img_pos.top - my_chara_pos.top) + "px");
//            $(this).css("left", e.pageX+"px")
//                    .css("top", e.pageY+"px");
        });
        jQuery.post('/character/ctrlpanel/',
                    {
                        'user_id'   : user_id,
                        'chara_id'  : chara_now,
                        'face'      : $(this).attr('id')
                    }, function(data){
                        pageRedirect(data);
                        $('#expression_ctrl').html(data)
                                             .show('fast');
                    });
    }).live('mouseover', function(){
		getMovieName("mychara_viewer").swfFunc('dispFace', $(this).attr('id'));
	});
	
	
	$('div#chara_type_view p').click(function(){
		var param = $(this).attr('id').split('_');
		
		if (param[0] == 'public') {
            var title = '共用キャラクターにする（共用）';
			var contents = '<p style="width:72px;margin:auto;"><img src="/img/alert.gif" alt="alert" align="center"/></p>このキャラクターを共用すると、他のユーザーがブックチャットで、キャラク ターを使ってチャットができるようになります。<p class="comfpoint">※制作者はいつでも何度でも編集を行えます。<p><p class="comfpoint">※共用キャラクターは、「トップページ」の「キャラクター」リストに自動的に 表示されます。<p><p class="comfpointred">※ご自身で描いたキャラクターのみ投稿して下さい。利用規約に違反する作品は 削除の対象となります。<p><p class="comfpointred">※背景が透過していないキャラクター、またはアバターシステムで作成したキャ ラクターは共用登録できません。<p>';
        }
        else if (param[0] == 'private') {
            var title = '専用キャラクターにする（非共用）';
            var contents = '作成した本人しか使えないキャラクターです。<br />※制作者が作成した「ブック」内では、他のユーザーが使うこともできます （制作者が「ブック設定」にある「登場人物」で設定することができます）。<br />※専用キャラクターは、「トップページ」のどのリストにも表示されません。';
        }
        else if (param[0] == 'roleplay') {
            var title = 'マスクキャラクターにする（非共用）';
            var contents = '作成した本人しか使えないキャラクターです。<br />「かぶる」事により、サービス内では「マスクキャラクター」が「ユーザー」になります。<br />ブックに入る場合も、キャラクター選択画面なしでチャットに入ります。 <br />マスクキャラクターを「かぶる」には、プロフィールにある「詳細設定」で作業を行ってください。<br />※トップページの「ユーザー」リストに自動的に表示されます';
        }
		
		showConfirm(title, contents, '/character/charatype',
                    {'chara_id' : chara_now, 'type' : param[0]},
                    'charaTypeBefore', 'charaTypeComplete');
		
	});
}

function charaThumbAddEvent() {
	$('div#my_chara img.chara_img_add').css('cursor', 'pointer').click(function(e){
                                        
        $('#pop_frame').hide('fast');
        jQuery.post('/character/addexpression/',
                    {
                        'chara_id'  : chara_now,
                        'face'      : $(this).attr('id')
                    }, function(data){
                        pageRedirect(data);
                        $('#pop_frame').html(data);
						showPopWindow();
                    });
    });
}

function charaSubmitCallback(id, key, data) {
	
	switch (key) {
		
		case 'chara_name':
            if (id == 'new' && data != '') {
				
	            $('p#chara_name input').attr('disabled', 'disabled');
	            $('div#my_chara div.mychara_hider').hide();
	            $('div#my_chara div.mychara_hider_step2, div#mychara_hider_bottom').show();
	            $('p#chara_name input').css('border', '0px');
	            $('div#my_chara div.tab_charav_left, div#my_chara div.tab_charav_rig').css('border', '1px solid red');
		        charaThumbAddEvent();
		        
			}
			$('#chara_name input').val(data);
            break;
		
		case 'chara_text':
            $('#chara_text textarea').val(data);
            break;
	}
		
    if (id != 'new') {
		
        charas[id][key] = data;
    }
}

function showCharaLikeList(elem) {
    if ($(elem).html() == '0') return;
    showListWindow(user_id, chara_now, 'chara', 0, 'pop');
}

flash.myCharaSelect = function (data) {
	chara_now = chara_id = data[0];

	$('div#expression_ctrl').hide('fast');
	$('div#my_chara div.mychara_hider').hide();
	
	$('p#chara_name input').css('border', '0px');
	$('div#my_chara div.tab_charav_left, div#my_chara div.tab_charav_rig').css('border', '0px');
	
	$('div#my_chara div.myf_face img').css('cursor', 'pointer').each(function () {
		var face = $(this).attr('alt');
		$(this).attr('class', 'chara_img_add')
                .attr('src', '/img/charav_' + face + '.gif');
	});
	
	var chara = charas[chara_now];
	for (var face in chara['chara_data']) {
		var d = new Date();
        $('#' + face).attr('class', 'chara_img_thumb')
                     .attr('src', charaThumbUrl(chara['chara_num'], chara['chara_data'][face]['face_num'], chara['chara_data'][face]['lr'])+'?'+d.getTime() );
    }
	
	$('p#chara_name input').val(chara['chara_name']);
	$('p#chara_text textarea').val(chara['chara_text']).removeAttr('disabled');
	
	$('#chara_used_cnt').html(chara['used_cnt']);
	$('#chara_like_count').html(chara['like_count']);
	
	$('div#chara_type_control').show();
	$('#chara_type_view .myf_chara_set').removeClass('chara_type_on_img').removeClass('chara_type_off_img');
	
	if (chara['chara_type'] == 'roleplay') {
		$('#roleplay_chara_type_view').addClass('chara_type_on_img');
		$('#public_chara_type_view').addClass('chara_type_off_img');
		$('#private_chara_type_view').addClass('chara_type_off_img');
	}
	else if (chara['chara_public'] == 1) {
        $('#roleplay_chara_type_view').addClass('chara_type_off_img');
        $('#public_chara_type_view').addClass('chara_type_on_img');
        $('#private_chara_type_view').addClass('chara_type_off_img');
	}
	else {
        $('#roleplay_chara_type_view').addClass('chara_type_off_img');
        $('#public_chara_type_view').addClass('chara_type_off_img');
        $('#private_chara_type_view').addClass('chara_type_on_img');
	}
	
    $('#chara_type_view').show();
	
	charaThumbAddEvent();
}

flash.myCharaNew = function () {
	chara_now = 'new';
	
	$('#chara_used_cnt').html('0');
	$('#chara_like_count').html('0');
	
	$('p#chara_text textarea').attr('disabled', 'disabled');
	
	$('p#chara_name input').css('border', '2px solid red').val('');
    $('p#chara_text textarea').val('');
	
	$('div#my_chara div.myf_face img').each(function () {
        var face = $(this).attr('alt');
        $(this).attr('class', 'chara_img_add')
                .attr('src', '/img/charav_' + face + '.gif');
    });
	
	$('div#chara_type_control').hide();
	
	$('div#my_chara div.mychara_hider_step1, div#mychara_hider_bottom').show();
}

flash.expressionComp = function (chara_id) {
	clearPopWindow('fast');
	$.post('/character/index',
	       {'chara_id' : chara_id},
		   function(data){
	            pageRedirect(data);
				$('div#my_folder').html(data);
				if ( charas[chara_id]) chara_now = chara_id;
				initMyCharacter();
		   });
}

flash.expressionCancel = function () {
	clearPopWindow('fast');
}

flash.getCharaData = function () {
	return charas;
}

flash.getBgData = function () {
    
    return back;
}

flash.dispCharaByID = function () {
	return chara_now;
}

ajax.myCharaBefore = function () {
//    $('#second_frame').hide('fast');
	hideSecondFrame('fast');
	
//	$('#my_folder').hide('fast', function(){
//		$('#my_back, #my_chara').hide();
//        $('#my_chara').show();
        $('#my_folder').show('fast');
//	});
}

ajax.myCharaComplete = function () {
    
    initMyCharacter();
    
//    $('#my_folder').show('fast');
}

ajax.expeditBefore = function () {
    
}

ajax.expeditComplete = function () {
    showPopWindow();
}

ajax.charaDeleteBefore = function () {
    
}

ajax.charaDeleteComplete = function (data) {
    if (data) {
        $('#my_folder').html(data);
        initMyCharacter();
    }
}

ajax.delexpBefore = function () {
    $('#expression_ctrl').hide('fast');
}

ajax.delexpComplete = function (data) {
    clearPopWindow('fast');
    if (data) {
        $('#my_folder').html(data);
        initMyCharacter();
    }
}


ajax.charaTypeBefore = function () {
	
}

ajax.charaTypeComplete = function (data) {
	var chara = charas[chara_now];
	
	if (data == 'public') {
        chara['chara_type'] = 'user';
		chara['chara_public'] = 1;
    }
    else if (data == 'private') {
        chara['chara_type'] = 'user';
        chara['chara_public'] = 0;
    }
    else if (data == 'roleplay') {
        chara['chara_type'] = 'roleplay';
        chara['chara_public'] = 0;
    }
	
	jsFunc('myCharaSelect', new Array(chara_now));
}

